diff --git a/.config/lingo.dic b/.config/lingo.dic new file mode 100644 index 0000000..b0db636 --- /dev/null +++ b/.config/lingo.dic @@ -0,0 +1,37 @@ +100 +Headstash +HeadstashConfig +Zcash +zcash +rseed +PRNG +Pedersen +decrypting +nullifier +nullifiers +CanonicalAddr +Merkle +Deserialize +cryptocurrencies +Terp +TerpNET +validator +DAO +LLC +enforceability +cypherpunk +deterministically +severable +Severability +diversifiers +PRNG +HKDF +keypair +UTXO +Sinsemilla +halo2 +Pedersen +zcash's +ecdsa +ETH +ECDSA \ No newline at end of file diff --git a/.config/spellcheck.toml b/.config/spellcheck.toml new file mode 100644 index 0000000..c500456 --- /dev/null +++ b/.config/spellcheck.toml @@ -0,0 +1,30 @@ +[Hunspell] +# lang and name of `.dic` file +lang = "en_US" + +search_dirs = ["."] +extra_dictionaries = ["lingo.dic"] + +skip_os_lookups = true +use_builtin = true + +[ZSpell] +# lang and name of `.dic` file +lang = "en_US" + +search_dirs = ["."] +extra_dictionaries = ["lingo.dic"] + +skip_os_lookups = true +use_builtin = true + +[Spellbook] +# lang and name of `.dic` file +lang = "en_US" + +search_dirs = ["."] +extra_dictionaries = ["lingo.dic"] + +skip_os_lookups = true +use_builtin = true + diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f9bf75d --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.rs] +indent_size = 4 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a7b5864 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +node_modules +.DS_Store + +# data from scripts to not nuke repo size +data +genesis/scripts-data/*.csv +genesis/scripts-data/*.json +headstash/scripts-data/*.csv +headstash/scripts-data/*.json + +target +zk-crates/submodules/* \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..5161e9c --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,8 @@ +# CLAUDE.md + +- crate layout exists in main readme, reference for orchestration. +- always complete agentic actions with unit tests verifying changes made are covered for basic sanity/insanity tests +- multi-agent spec making use of git worktrees and ahared todo-files can be invoked using a specif cconfig flag +- make use existing/new deep-wiki mpc dependent on +- ONLY put api examples in readmes of code logic to prevent tech debt as we iterate code. dont put raw function examples in readme as we agregate documentation for function in the comments of libraries files. +- 99.9% of type defintions are proto defined & generated for cross library compatibility. dont forget pls! this is our ideal setup for maximum modularity \ No newline at end of file diff --git a/CURRENT_TODO.md b/CURRENT_TODO.md new file mode 100644 index 0000000..6442fca --- /dev/null +++ b/CURRENT_TODO.md @@ -0,0 +1,337 @@ +# Refactor snap-n-pull to use HeadstashSuite + +## Objective + +finish snap-n-pull optimization to just what we need: + +- Specify our merkle path concretly four our custom circuit. + +- anchor: hashDomain root +- MerklePath + +use hashdomain as anchor to have the correct root calulated for our merkle path validaity check This will ensure that this note is a part of the headstash instance. +> - + +`hashDomain_root` +`spent_note` + +- generate new mnemonic/save to encrypted snap state (for ephemeral cosmos keys will ) +- optional `MsgAddAuthenticator` during claiming + +## Context + +## Tasks + +### 1. Type System Migration + +### 2. Key Management Integration + + + +### 3. Wallet Database Integration + +#### 3.1 Note Management + +- **Current**: `MemoryWalletDb` tracking Orchard/Sapling notes +- **Target**: Track Headstash `Note` instances (unspent/spent) +- **Files**: `src/wallet/wallet.rs` +- **Action**: + - Implement `HeadstashInstance::list_unspent_notes()` (suite.rs:66-68) + - Implement `HeadstashInstance::list_spent_notes()` (suite.rs:71-73) + - Store note-file & save spent-notes via standard metamask-storage plugin specification: MetaMask recommends using the `snap_manageState` API method to persist up to 100 MB of data to the user's disk. This is their recommended approach for long-term data storage in Snaps.By default, `snap_manageState` automatically encrypts data using a Snap-specific key before storing it on the user's disk, and automatically decrypts it when retrieved. + +Example: + +```javascript +// Store data (encrypted by default) +await snap.request({ + method: "snap_manageState", + params: { + operation: "update", + newState: { hello: "world" }, + }, +}); + +// Retrieve data +const persistedData = await snap.request({ + method: "snap_manageState", + params: { operation: "get" }, +}); +``` + +**Unencrypted Storage Option** +If you don't need encryption, you can set `encrypted: false`: + +```javascript +await snap.request({ + method: "snap_manageState", + params: { + operation: "update", + newState: { hello: "world" }, + encrypted: false, + }, +}); +``` + +### Important Considerations + + **Permission Required**: + +You must request the `snap_manageState` permission in your Snap's manifest file + + **Encrypted Access**: Accessing encrypted state requires MetaMask to be unlocked + +This approach provides flexibility for both sensitive and non-sensitive data storage needs in your Snap. + +#### 3.2 Headstash Discovery + + + +### 4. Synchronization Refactor + + +### 5. Transaction Building Refactor + + +### 6. WebWallet WASM Bindings Update + +- **Files**: `src/wallet/bindgen/wallet.rs` +- implment mvp function integration +- implement wasm-bindgen calls into egui front end wasm +- zk-packages::snap - make sure we document api functions access via wasm-bindgen rpc call + + +### 7. Testing and Validation + + +### 8. Documentation Updates + + +## Implementation Order + + +## Success Criteria + +- [ ] All Zcash-specific types replaced with Headstash equivalents +- [ ] HeadstashSuite traits successfully integrated +- [ ] WASM builds without errors with all features enabled +- [ ] Can discover headstashes via market contract +- [ ] Can generate notes client-side from tree +- [ ] Can claim notes and submit headstash actions +- [ ] MetaMask Snap loads in browser +- [ ] All unit tests pass +- [ ] Integration test covers full claim flow +- [ ] Documentation reflects current implementation + +## Notes + +- Maintain backward compatibility during refactor by feature-flagging old code +- Consider creating `feature = "headstash"` flag during transition +- Keep PCZT signing logic commented until decision on applicability +- Prioritize security review of key derivation changes +- Verify cryptographic randomness in WASM environment for `rho_from_secure_random()` + +## References + +- HeadstashSuite: `zk-crates/zk-headstash/src/deploy/suite.rs` +- Suite Spec: `docs/zk-headstash/suite.md` +- Snap Spec: `docs/zk-headstash/metamask-snap.md` +- Current Implementation: `zk-crates/snap-n-pull/` + + diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..c79cc14 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,4108 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addr2line" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "anybuf" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7658b7ea4a6843aad293ca2d3b0ba4d200b9720b18a5db0cea478dace9a9716" + +[[package]] +name = "anyhow" +version = "1.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + +[[package]] +name = "ark-bls12-381" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint", + "num-integer", + "num-traits", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std 0.5.0", + "arrayvec", + "digest", + "educe", + "itertools 0.13.0", + "num-bigint", + "num-traits", + "paste", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.111", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash", + "ark-ff", + "ark-serialize", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive", + "ark-std 0.5.0", + "arrayvec", + "digest", + "num-bigint", + "rayon", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "colored", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.5", + "rayon", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "axum" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" +dependencies = [ + "axum-core", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "serde_core", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "sync_wrapper", + "tower-layer", + "tower-service", +] + +[[package]] +name = "backtrace" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-link", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bech32" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32637268377fc7b10a8c6d51de3e7fba1ce5dd371a96e342b34e6078db558e7f" + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitcoin-io" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dee39a0ee5b4095224a0cfc6bf4cc1baf0f9624b96b367e53b66d974e51d953" + +[[package]] +name = "bitcoin_hashes" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26ec84b80c482df901772e931a9a681e26a1b9ee2302edeff23cb30328745c8b" +dependencies = [ + "bitcoin-io", + "hex-conservative", +] + +[[package]] +name = "bitflags" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bls12_381" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7bc6d6292be3a19e6379786dac800f551e5865a5bb51ebbe3064ab80433f403" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "bnum" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e31ea183f6ee62ac8b8a8cf7feddd766317adfb13ff469de57ce033efd6a790" + +[[package]] +name = "bs-controllers" +version = "0.4.0" +source = "git+https://github.com/permissionlessweb/bs-nfts?branch=feat%2Fcosmwasm%40v3#e292806afc4ccb6a1ee71a84efb6ab81e21e98aa" +dependencies = [ + "cosmwasm-schema 3.0.2", + "cosmwasm-std 3.0.2", + "cw-storage-plus 3.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cw-utils 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "schemars 0.8.22", + "serde", + "thiserror 1.0.69", +] + +[[package]] +name = "btsg-account" +version = "0.3.0" +source = "git+https://github.com/permissionlessweb/bs-accounts?branch=feat%2Fmvp#40a08ebd41134dbb869ca87865879af7f7065624" +dependencies = [ + "bech32", + "bs-controllers", + "btsg-auth", + "cosmwasm-crypto 3.0.3-dev", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-ownable", + "ecdsa", + "k256", + "ripemd", + "sha2", +] + +[[package]] +name = "btsg-auth" +version = "0.3.0" +source = "git+https://github.com/permissionlessweb/bs-accounts?branch=feat%2Fmvp#40a08ebd41134dbb869ca87865879af7f7065624" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-utils 3.0.0 (git+https://github.com/permissionlessweb/cw-minus?branch=mvp)", + "hex", + "schemars 0.8.22", + "serde", + "serde_json", + "sha2", + "thiserror 1.0.69", +] + +[[package]] +name = "bumpalo" +version = "3.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +dependencies = [ + "serde", +] + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.2.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f50d563227a1c37cc0a263f64eca3334388c01c5e4c4861a9def205c614383c" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + +[[package]] +name = "colored" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" +dependencies = [ + "lazy_static", + "windows-sys 0.59.0", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + +[[package]] +name = "core2" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239fa3ae9b63c2dc74bd3fa852d4792b8b305ae64eeede946265b6af62f1fff3" +dependencies = [ + "memchr", +] + +[[package]] +name = "cosmos-sdk-proto" +version = "0.28.0" +source = "git+https://github.com/permissionlessweb/cosmos-rust#2308b3422090d8c86ee0954ee7b19fbd7d09ccbc" +dependencies = [ + "bytes", + "http-body-util", + "prost", + "tendermint-proto", + "tonic", + "tonic-prost", +] + +[[package]] +name = "cosmwasm-core" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b0a718b13ffe224e32a8c1f68527354868f47d6cc84afe8c66cb05fbb3ced6e" + +[[package]] +name = "cosmwasm-core" +version = "3.0.3-dev" +source = "git+https://github.com/permissionlessweb/cosmwasm?branch=mvp#80c31d2a5b8bcb85f9fc306666ba3708f0988c9c" + +[[package]] +name = "cosmwasm-crypto" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c08dd7585b5c48fbcb947ada7a3fb49465fb735481ed295b54ca98add6dc17f" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-serialize", + "cosmwasm-core 3.0.2", + "curve25519-dalek", + "digest", + "ecdsa", + "ed25519-zebra", + "k256", + "num-bigint", + "num-traits", + "p256", + "rand_core 0.6.4", + "rayon", + "sha2", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmwasm-crypto" +version = "3.0.3-dev" +source = "git+https://github.com/permissionlessweb/cosmwasm?branch=mvp#80c31d2a5b8bcb85f9fc306666ba3708f0988c9c" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-serialize", + "cosmwasm-core 3.0.3-dev", + "curve25519-dalek", + "digest", + "ecdsa", + "ed25519-zebra", + "k256", + "num-bigint", + "num-traits", + "p256", + "rand_core 0.6.4", + "rayon", + "sha2", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmwasm-derive" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5677eed823a61eeb615b1ad4915a42336b70b0fe3f87bf3da4b59f3dcf9034af" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "cosmwasm-derive" +version = "3.0.3-dev" +source = "git+https://github.com/permissionlessweb/cosmwasm?branch=mvp#80c31d2a5b8bcb85f9fc306666ba3708f0988c9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "cosmwasm-schema" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52d8808bf9fb8f4d5ee62e808b3e1dcdf6a116e9e1fe934507a4e0a4135ae941" +dependencies = [ + "cosmwasm-schema-derive 3.0.2", + "cw-schema 3.0.2", + "schemars 0.8.22", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmwasm-schema" +version = "3.0.3-dev" +source = "git+https://github.com/permissionlessweb/cosmwasm?branch=mvp#80c31d2a5b8bcb85f9fc306666ba3708f0988c9c" +dependencies = [ + "cosmwasm-schema-derive 3.0.3-dev", + "cw-schema 3.0.3-dev", + "schemars 0.8.22", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmwasm-schema-derive" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9718a856ff5edb6537ac889ff695abc576304bc25cb7b16ef4c762e10a0149ba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "cosmwasm-schema-derive" +version = "3.0.3-dev" +source = "git+https://github.com/permissionlessweb/cosmwasm?branch=mvp#80c31d2a5b8bcb85f9fc306666ba3708f0988c9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "cosmwasm-std" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4881104f54871bcea6f30757bee13b7f09c0998d1b0de133cce5a52336a2ada" +dependencies = [ + "base64", + "bech32", + "bnum", + "cosmwasm-core 3.0.2", + "cosmwasm-crypto 3.0.2", + "cosmwasm-derive 3.0.2", + "cw-schema 3.0.2", + "derive_more", + "hex", + "rand_core 0.6.4", + "rmp-serde", + "schemars 0.8.22", + "serde", + "serde_json", + "sha2", + "static_assertions", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmwasm-std" +version = "3.0.3-dev" +source = "git+https://github.com/permissionlessweb/cosmwasm?branch=mvp#80c31d2a5b8bcb85f9fc306666ba3708f0988c9c" +dependencies = [ + "base64", + "bech32", + "bnum", + "cosmwasm-core 3.0.3-dev", + "cosmwasm-crypto 3.0.3-dev", + "cosmwasm-derive 3.0.3-dev", + "cw-schema 3.0.3-dev", + "derive_more", + "hex", + "rand_core 0.6.4", + "rmp-serde", + "schemars 0.8.22", + "serde", + "serde_json", + "sha2", + "static_assertions", + "thiserror 1.0.69", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crossbeam" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "cw-address-like" +version = "3.0.1" +source = "git+https://github.com/permissionlessweb/cw-plus-plus?branch=feat%2Fmvp#26e080d84d15c2e8e500d673e2f7495af0400af9" +dependencies = [ + "cosmwasm-std 3.0.3-dev", +] + +[[package]] +name = "cw-headstash" +version = "0.0.1" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-serialize", + "blake3", + "btsg-account", + "btsg-auth", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-storage-plus 3.0.1 (git+https://github.com/permissionlessweb/cw-storage-plus?branch=mvp)", + "halo2_proofs", + "hex", + "pasta_curves", + "rand_core 0.6.4", + "serde", + "sha2", + "token-bindings", + "zk-headstash", +] + +[[package]] +name = "cw-multi-test" +version = "3.0.1" +source = "git+https://github.com/permissionlessweb/cw-multi-test?branch=mvp#a378fab774b2d077055bd641b13ed9b532448d30" +dependencies = [ + "bech32", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-storage-plus 3.0.1 (git+https://github.com/permissionlessweb/cw-storage-plus?branch=mvp)", + "cw-utils 3.0.0 (git+https://github.com/permissionlessweb/cw-minus?branch=mvp)", + "itertools 0.14.0", + "prost", + "schemars 0.8.22", + "serde", + "sha2", +] + +[[package]] +name = "cw-ownable" +version = "3.0.1" +source = "git+https://github.com/permissionlessweb/cw-plus-plus?branch=feat%2Fmvp#26e080d84d15c2e8e500d673e2f7495af0400af9" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-address-like", + "cw-ownable-derive", + "cw-storage-plus 3.0.1 (git+https://github.com/permissionlessweb/cw-storage-plus?branch=mvp)", + "cw-utils 3.0.0 (git+https://github.com/permissionlessweb/cw-minus?branch=mvp)", + "thiserror 1.0.69", +] + +[[package]] +name = "cw-ownable-derive" +version = "3.0.1" +source = "git+https://github.com/permissionlessweb/cw-plus-plus?branch=feat%2Fmvp#26e080d84d15c2e8e500d673e2f7495af0400af9" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "cw-schema" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8f335d3f51e10260f4dfb0840f0526c1d25c6b42a9489c04ce41ed9aa54dd6d" +dependencies = [ + "cw-schema-derive 3.0.2", + "indexmap 2.12.1", + "schemars 1.1.0", + "serde", + "serde_with", + "siphasher", + "typeid", +] + +[[package]] +name = "cw-schema" +version = "3.0.3-dev" +source = "git+https://github.com/permissionlessweb/cosmwasm?branch=mvp#80c31d2a5b8bcb85f9fc306666ba3708f0988c9c" +dependencies = [ + "cw-schema-derive 3.0.3-dev", + "indexmap 2.12.1", + "schemars 1.1.0", + "serde", + "serde_with", + "siphasher", + "typeid", +] + +[[package]] +name = "cw-schema-derive" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aba2eb93f854caeacc5eda13d15663b7605395514fd378bfba8e7532f1fc5865" +dependencies = [ + "heck", + "itertools 0.13.0", + "owo-colors", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "cw-schema-derive" +version = "3.0.3-dev" +source = "git+https://github.com/permissionlessweb/cosmwasm?branch=mvp#80c31d2a5b8bcb85f9fc306666ba3708f0988c9c" +dependencies = [ + "heck", + "itertools 0.13.0", + "owo-colors", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "cw-storage-plus" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75d840d773b4ffd60ff005375e5e15e4be4fda54620574e861bfbb61a074f353" +dependencies = [ + "cosmwasm-std 3.0.2", + "schemars 0.8.22", + "serde", +] + +[[package]] +name = "cw-storage-plus" +version = "3.0.1" +source = "git+https://github.com/permissionlessweb/cw-storage-plus?branch=mvp#1c4197e54cd3c8f4c92eaf1c29bc50202e4f3dbd" +dependencies = [ + "cosmwasm-std 3.0.3-dev", + "schemars 0.8.22", + "serde", +] + +[[package]] +name = "cw-utils" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8667e96f2c65cf7f4c6c66bfd6ee46909c40827bc1caea0409234e34f03cf061" +dependencies = [ + "cosmwasm-schema 3.0.2", + "cosmwasm-std 3.0.2", + "schemars 0.8.22", + "serde", + "thiserror 2.0.17", +] + +[[package]] +name = "cw-utils" +version = "3.0.0" +source = "git+https://github.com/permissionlessweb/cw-minus?branch=mvp#72d7f4b3a06ec13ab4d3c1b1b20d047deaf8431a" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "schemars 0.8.22", + "serde", + "thiserror 2.0.17", +] + +[[package]] +name = "cw2" +version = "3.0.0" +source = "git+https://github.com/permissionlessweb/cw-minus?branch=mvp#72d7f4b3a06ec13ab4d3c1b1b20d047deaf8431a" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-storage-plus 3.0.1 (git+https://github.com/permissionlessweb/cw-storage-plus?branch=mvp)", + "schemars 0.8.22", + "semver", + "serde", + "thiserror 2.0.17", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.111", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.111", + "unicode-xid", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-zebra" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "hashbrown 0.14.5", + "hex", + "rand_core 0.6.4", + "sha2", + "zeroize", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-ordinalize" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "ergors-proto" +version = "0.0.1" +dependencies = [ + "anyhow", + "pbjson-build", + "prost-build", + "tonic-prost-build", +] + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "find-msvc-tools" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" + +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + +[[package]] +name = "flex-error" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b" +dependencies = [ + "paste", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "fpe" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26c4b37de5ae15812a764c958297cfc50f5c010438f60c6ce75d11b802abd404" +dependencies = [ + "cbc", + "cipher", + "libm", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", +] + +[[package]] +name = "getset" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf0fc11e47561d47397154977bc219f4cf809b2974facc3ccb3b89e2436f912" +dependencies = [ + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "gimli" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "memuse", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "h2" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.12.1", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "halo2-axiom" +version = "0.5.1" +source = "git+https://github.com/permissionlessweb/halo2-axiom?branch=mvp#5632df2dc947e689ab80195ae91947f1e156d555" +dependencies = [ + "blake2b_simd", + "crossbeam", + "ff", + "group", + "halo2curves-axiom", + "itertools 0.11.0", + "maybe-rayon", + "pairing", + "rand 0.8.5", + "rand_core 0.6.4", + "rayon", + "rustc-hash", + "sha3", + "tracing", +] + +[[package]] +name = "halo2-base" +version = "0.4.1" +source = "git+https://github.com/permissionlessweb/halo2-lib?branch=mvp#dc7da97420b6d5d4c3a22931491125126f300934" +dependencies = [ + "ark-std 0.3.0", + "getset", + "halo2-axiom", + "itertools 0.11.0", + "log", + "num-bigint", + "num-integer", + "num-traits", + "poseidon-primitives", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rayon", + "rustc-hash", + "serde", + "serde_json", +] + +[[package]] +name = "halo2_gadgets" +version = "0.4.0" +source = "git+https://github.com/permissionlessweb/halo2?branch=mvp#a331093234caf051613c44363a5f69b6ed2b0c1f" +dependencies = [ + "arrayvec", + "bitvec", + "ff", + "group", + "halo2_poseidon", + "halo2_proofs", + "lazy_static", + "pasta_curves", + "proptest", + "rand 0.8.5", + "sinsemilla", + "subtle", + "uint", +] + +[[package]] +name = "halo2_poseidon" +version = "0.1.0" +source = "git+https://github.com/permissionlessweb/halo2?branch=mvp#a331093234caf051613c44363a5f69b6ed2b0c1f" +dependencies = [ + "bitvec", + "ff", + "group", + "pasta_curves", +] + +[[package]] +name = "halo2_proofs" +version = "0.3.2" +source = "git+https://github.com/permissionlessweb/halo2?branch=mvp#a331093234caf051613c44363a5f69b6ed2b0c1f" +dependencies = [ + "backtrace", + "blake2b_simd", + "ff", + "group", + "indexmap 1.9.3", + "maybe-rayon", + "pasta_curves", + "rand_core 0.6.4", + "tracing", +] + +[[package]] +name = "halo2curves-axiom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0cd39c0df23c8b72cb7158ccb106341b078d5019b5478b3bfdaf14e898177d3" +dependencies = [ + "blake2b_simd", + "digest", + "ff", + "group", + "hex", + "lazy_static", + "num-bigint", + "num-traits", + "pairing", + "pasta_curves", + "paste", + "rand 0.8.5", + "rand_core 0.6.4", + "rayon", + "serde", + "serde_arrays", + "sha2", + "static_assertions", + "subtle", + "unroll", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + +[[package]] +name = "headstash-randomness" +version = "0.1.0" +dependencies = [ + "blake3", + "rand 0.8.5", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-conservative" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "hyper", + "libc", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "incrementalmerkletree" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30821f91f0fa8660edca547918dc59812893b497d07c1144f326f07fdd94aba9" +dependencies = [ + "either", + "proptest", + "rand 0.8.5", + "rand_core 0.6.4", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "is-terminal" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "is_ci" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010" + +[[package]] +name = "js-sys" +version = "0.3.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "jubjub" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8499f7a74008aafbecb2a2e608a3e13e4dd3e84df198b604451efe93f2de6e61" +dependencies = [ + "bitvec", + "bls12_381", + "ff", + "group", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "sha2", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] + +[[package]] +name = "libc" +version = "0.2.178" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" + +[[package]] +name = "libm" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" + +[[package]] +name = "linux-raw-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "matchit" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", + "rayon", +] + +[[package]] +name = "memchr" +version = "2.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" + +[[package]] +name = "memuse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d97bbf43eb4f088f8ca469930cde17fa036207c9a5e02ccc5107c4e8b17c964" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minicov" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4869b6a491569605d66d3952bcdf03df789e5b536e5f0cf7758a7f08a55ae24d" +dependencies = [ + "cc", + "walkdir", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "multimap" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" + +[[package]] +name = "nonempty" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "549e471b99ccaf2f89101bec68f4d244457d5a95a9c3d0672e9564124397741d" + +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "object" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "oorandom" +version = "11.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "owo-colors" +version = "4.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" +dependencies = [ + "supports-color 2.1.0", + "supports-color 3.0.2", +] + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff", + "group", + "lazy_static", + "rand 0.8.5", + "static_assertions", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pbjson-build" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ed4d5c6ae95e08ac768883c8401cf0e8deb4e6e1d6a4e1fd3d2ec4f0ec63200" +dependencies = [ + "heck", + "itertools 0.14.0", + "prost", + "prost-types", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "petgraph" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +dependencies = [ + "fixedbitset", + "indexmap 2.12.1", +] + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "poseidon-primitives" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4aaeda7a092e21165cc5f0cbc738e72a46f31c03c3cbd87b71ceae9d2d93bc" +dependencies = [ + "bitvec", + "ff", + "lazy_static", + "log", + "rand 0.8.5", + "rand_xorshift", + "thiserror 1.0.69", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.111", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "proc-macro2" +version = "1.0.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proptest" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags", + "lazy_static", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "prost" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" +dependencies = [ + "heck", + "itertools 0.14.0", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "pulldown-cmark", + "pulldown-cmark-to-cmark", + "regex", + "syn 2.0.111", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" +dependencies = [ + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "prost-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" +dependencies = [ + "prost", +] + +[[package]] +name = "pulldown-cmark" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" +dependencies = [ + "bitflags", + "memchr", + "unicase", +] + +[[package]] +name = "pulldown-cmark-to-cmark" +version = "21.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8246feae3db61428fd0bb94285c690b460e4517d83152377543ca802357785f1" +dependencies = [ + "pulldown-cmark", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "1.0.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.4", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rayon" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +dependencies = [ + "either", + "rayon-core", + "wasm_sync", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", + "wasm_sync", +] + +[[package]] +name = "reddsa" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78a5191930e84973293aa5f532b513404460cd2216c1cfb76d08748c15b40b02" +dependencies = [ + "blake2b_simd", + "byteorder", + "group", + "hex", + "jubjub", + "pasta_curves", + "rand_core 0.6.4", + "serde", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "regex" +version = "1.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest", +] + +[[package]] +name = "rmp" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "rusty-fork" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62049b2877bf12821e8f9ad256ee38fdc31db7387ec2d3b3f403024de2034aea" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "schemars_derive 0.8.22", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" +dependencies = [ + "dyn-clone", + "ref-cast", + "schemars_derive 1.1.0", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.111", +] + +[[package]] +name = "schemars_derive" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "301858a4023d78debd2353c7426dc486001bddc91ae31a76fb1f55132f7e2633" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.111", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" +dependencies = [ + "bitcoin_hashes", + "rand 0.9.2", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb913707158fadaf0d8702c2db0e857de66eb003ccfdda5924b5f5ac98efb38" +dependencies = [ + "cc", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-wasm-bindgen" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "serde_arrays" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38636132857f68ec3d5f3eb121166d2af33cb55174c4d5ff645db6165cbef0fd" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_bytes" +version = "0.11.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "serde_json" +version = "1.0.146" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "217ca874ae0207aac254aa02c957ded05585a90892cc8d87f9e5fa49669dadd8" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", + "serde_core", +] + +[[package]] +name = "serde_with" +version = "3.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shardtree" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "637e95dcd06bc1bb3f86ed9db1e1832a70125f32daae071ef37dcb7701b7d4fe" +dependencies = [ + "bitflags", + "either", + "incrementalmerkletree", + "tracing", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + +[[package]] +name = "sinsemilla" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d268ae0ea06faafe1662e9967cd4f9022014f5eeb798e0c302c876df8b7af9c" +dependencies = [ + "group", + "pasta_curves", + "subtle", +] + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "slab" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "snap-n-pull" +version = "0.0.1" +dependencies = [ + "cosmos-sdk-proto", + "getrandom 0.2.16", + "group", + "hex", + "js-sys", + "prost", + "rand 0.8.5", + "secp256k1", + "serde", + "serde-wasm-bindgen", + "serde_json", + "sha3", + "thiserror 1.0.69", + "tokio", + "tonic", + "tonic-web-wasm-client", + "tracing", + "tracing-subscriber", + "tracing-web", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-rayon", + "wasm-bindgen-test", + "zk-headstash", +] + +[[package]] +name = "socket2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "subtle-encoding" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" +dependencies = [ + "zeroize", +] + +[[package]] +name = "supports-color" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6398cde53adc3c4557306a96ce67b302968513830a77a95b2b17305d9719a89" +dependencies = [ + "is-terminal", + "is_ci", +] + +[[package]] +name = "supports-color" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64fc7232dd8d2e4ac5ce4ef302b1d81e0b80d055b9d77c7c4f51f6aa4c867d6" +dependencies = [ + "is_ci", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.111" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +dependencies = [ + "fastrand", + "getrandom 0.3.4", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "tendermint-proto" +version = "0.40.4" +source = "git+https://github.com/permissionlessweb/tendermint-rs#ead63760138b7f8f130aabcabd824c621f07abd3" +dependencies = [ + "bytes", + "flex-error", + "prost", + "serde", + "serde_bytes", + "subtle-encoding", + "time", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +dependencies = [ + "thiserror-impl 2.0.17", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "time" +version = "0.3.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +dependencies = [ + "deranged", + "num-conv", + "powerfmt", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" + +[[package]] +name = "time-macros" +version = "0.2.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "token-bindings" +version = "0.11.0" +source = "git+https://github.com/permissionlessweb/token-bindings?branch=mvp#68213699d7bafddbb464bb216db66b783a7394ed" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", +] + +[[package]] +name = "tokio" +version = "1.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "tokio-macros", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-macros" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tonic" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb7613188ce9f7df5bfe185db26c5814347d110db17920415cf2fbcad85e7203" +dependencies = [ + "async-trait", + "axum", + "base64", + "bytes", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "socket2", + "sync_wrapper", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c40aaccc9f9eccf2cd82ebc111adc13030d23e887244bc9cfa5d1d636049de3" +dependencies = [ + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "tonic-prost" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" +dependencies = [ + "bytes", + "prost", + "tonic", +] + +[[package]] +name = "tonic-prost-build" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a16cba4043dc3ff43fcb3f96b4c5c154c64cbd18ca8dce2ab2c6a451d058a2" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build", + "prost-types", + "quote", + "syn 2.0.111", + "tempfile", + "tonic-build", +] + +[[package]] +name = "tonic-web-wasm-client" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "898cd44be5e23e59d2956056538f1d6b3c5336629d384ffd2d92e76f87fb98ff" +dependencies = [ + "base64", + "byteorder", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "httparse", + "js-sys", + "pin-project", + "thiserror 2.0.17", + "tonic", + "tower-service", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 2.12.1", + "pin-project-lite", + "slab", + "sync_wrapper", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex-automata", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tracing-web" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e6a141feebd51f8d91ebfd785af50fca223c570b86852166caa3b141defe7c" +dependencies = [ + "js-sys", + "tracing-core", + "tracing-subscriber", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + +[[package]] +name = "unicode-ident" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "unroll" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "visibility" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "wait-timeout" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.111", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-rayon" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a16c60a56c81e4dc3b9c43d76ba5633e1c0278211d59a9cb07d61b6cd1c6583" +dependencies = [ + "crossbeam-channel", + "js-sys", + "rayon", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-bindgen-test" +version = "0.3.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25e90e66d265d3a1efc0e72a54809ab90b9c0c515915c67cdf658689d2c22c6c" +dependencies = [ + "async-trait", + "cast", + "js-sys", + "libm", + "minicov", + "nu-ansi-term", + "num-traits", + "oorandom", + "serde", + "serde_json", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-test-macro", +] + +[[package]] +name = "wasm-bindgen-test-macro" +version = "0.3.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7150335716dce6028bead2b848e72f47b45e7b9422f64cccdc23bedca89affc1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasm_sync" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff360cade7fec41ff0e9d2cda57fe58258c5f16def0e21302394659e6bbb0ea" +dependencies = [ + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "wit-bindgen" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "zcash_note_encryption" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77efec759c3798b6e4d829fcc762070d9b229b0f13338c40bf993b7b609c2272" +dependencies = [ + "chacha20", + "chacha20poly1305", + "cipher", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "zcash_spec" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded3f58b93486aa79b85acba1001f5298f27a46489859934954d262533ee2915" +dependencies = [ + "blake2b_simd", +] + +[[package]] +name = "zerocopy" +version = "0.8.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "zip32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b64bf5186a8916f7a48f2a98ef599bf9c099e2458b36b819e393db1c0e768c4b" +dependencies = [ + "bech32", + "blake2b_simd", + "memuse", + "subtle", + "zcash_spec", +] + +[[package]] +name = "zk-headstash" +version = "0.0.1" +dependencies = [ + "aes", + "anybuf", + "base64", + "bitvec", + "blake2b_simd", + "blake3", + "core2", + "ff", + "fpe", + "getset", + "group", + "halo2-base", + "halo2_gadgets", + "halo2_proofs", + "headstash-randomness", + "hex", + "incrementalmerkletree", + "lazy_static", + "memuse", + "nonempty", + "num-bigint", + "num-traits", + "pasta_curves", + "proptest", + "prost", + "rand 0.8.5", + "rand_core 0.6.4", + "rayon", + "reddsa", + "secp256k1", + "serde", + "serde_json", + "shardtree", + "sinsemilla", + "subtle", + "tonic", + "tonic-prost", + "tracing", + "visibility", + "zcash_note_encryption", + "zcash_spec", + "zip32", +] + +[[package]] +name = "zk-wasmvm-test" +version = "0.2.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-multi-test", + "cw-storage-plus 3.0.1 (git+https://github.com/permissionlessweb/cw-storage-plus?branch=mvp)", + "cw2", + "thiserror 2.0.17", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..6d6c413 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,91 @@ +[workspace] +resolver = "2" +members = [ + "proto", + "pub-crates/randomness", + "zk-crates/cw-headstash", + "zk-crates/snap-n-pull", + "zk-crates/zk-headstash", + "zk-crates/zk-wasmvm-test", +] + +exclude = [ + "zk-crates/submodules/*" +] +[workspace.package] +edition = "2024" +version = "0.0.1" + +[workspace.dependencies] +anybuf = "1.0.0" +zk-headstash = { path = "./zk-crates/zk-headstash" } +snap-n-pull = { path = "./zk-crates/snap-n-pull" } +headstash-randomness = { path = "./pub-crates/randomness" } +cw-headstash = { path = "./cw-headstash" } +# plume_rustcrypto = {path = "./zk-crates/submodules/zk-nullifier-sig/rust-k256"} + +cosmos-sdk-proto = { git = "https://github.com/permissionlessweb/cosmos-rust",features = ["std","cosmwasm","grpc"],default-features = false } +halo2_gadgets = { git = "https://github.com/permissionlessweb/halo2", branch = "mvp", default-features = false ,features = ["test-dependencies"] } +halo2_proofs = { git = "https://github.com/permissionlessweb/halo2", branch = "mvp", version = "0.3.1" , default-features = false,features = ["gadget-traces"] } +halo2-base = { git = "https://github.com/permissionlessweb/halo2-lib", branch = "mvp", package = "halo2-base"} +token-bindings = { git = "https://github.com/permissionlessweb/token-bindings", branch = "mvp", library = "bindings" } +btsg-account = { git = "https://github.com/permissionlessweb/bs-accounts", branch = "feat/mvp", library = "btsg-account" } +btsg-auth = { git = "https://github.com/permissionlessweb/bs-accounts", branch = "feat/mvp", library = "btsg-auth" } +cosmwasm-schema = { git = "https://github.com/permissionlessweb/cosmwasm", branch = "mvp", package = "cosmwasm-schema" } +cosmwasm-std = { git = "https://github.com/permissionlessweb/cosmwasm", branch = "mvp", features = ["cosmwasm_1_4", "stargate"] } +cw-storage-plus = { git = "https://github.com/permissionlessweb/cw-storage-plus", branch = "mvp" } +cw2 = { git = "https://github.com/permissionlessweb/cw-minus", branch = "mvp" , package = "cw2"} + +serde = { version = "1.0.228", features = ["derive"] } +bincode = " 2.0.1" +anyhow = "1.0" +sha2 = "0.10.9" +tempfile = "3.23.0" +secp256k1 = "0.31.1" +prost = { version = "0.14.1", default-features = false, features = ["derive"] } +tonic = "0.14.1" +tonic-prost = "0.14.1" +group = "0.13" +commonware-runtime = "0.0.64" +aes = "0.8" +tokio = "1.48.0" +base64 = "0.22.1" +bip39 = "2.2.0" +bitvec = { version = "1", default-features = false } +blake2b_simd = { version = "1", default-features = false } +blake3 = "1.8.2" +bls12_381 = "0.8.0" +core2 = { version = "0.3", default-features = false, features = ["alloc"] } +elliptic-curve = { version = "0.13.8", features = ["hash2curve"] } +ff = "0.13" +fpe = { version = "0.6", default-features = false, features = ["alloc"] } +hex = "0.4.3" +hex-literal = "1.0.0" +hkdf = "0.12.4" +jubjub = { version = "0.10", default-features = false, features = ["alloc"] } +k256 = { version = "0.13.4", features = ["hash2curve"] } +lazy_static = "1" +memuse = { version = "0.2.2", default-features = false } +num-bigint = "0.4.6" +num-traits = "0.2.19" +pasta_curves = "0.5" +reddsa = { version = "0.5", default-features = false } +poseidon-rs = "0.0.8" +rand = "0.8" +rand_core = { version = "0.6", default-features = false } +rayon = "1.11.0" +serde_json = "1.0.145" +sinsemilla = "0.1.0" +subtle = { version = "2.3", default-features = false } +zip32 = { version = "0.2.0", default-features = false } +sha3 = "0.10.8" +proptest = { version = ">=1.0.0, <1.7.0" } +nonempty = { version = "0.11", default-features = false } +zcash_note_encryption = "0.4" +incrementalmerkletree = "0.8.1" +zcash_spec = "0.2.1" +visibility = "0.1.1" +tracing = { version = "0.1", default-features = false } +# image = { version = "0.24" } +# plotters = { version = "0.3.0" } +getset = "0.1" \ No newline at end of file diff --git a/SESSION_05.md b/SESSION_05.md new file mode 100644 index 0000000..df51120 --- /dev/null +++ b/SESSION_05.md @@ -0,0 +1,27 @@ + +## STEP 2 + +- ensure we know the mapping of the headstash circuit (visualizer) +- ensure we will need to witness all of our private inputs we expect +- ensure we define all of the public input positions we also will have so we have a concrete location for writing the constraints throughout the rest of our session +- ensure to impelement each constraint step in our ciircuit spec, which you can find in the spec document. +- ensure we Define each of our [headstash suites implementations accurately](zk-crates/src/deploy/suite.rs), so that we can prepare circuit inputs and reuse specified logic in circuit library. + + 1. foreign-field key pairing (secp256k1), + 2. hkdf constraint as explained in the spec, + 3. nullifier derivation integrity constraint. + +- ensure we take into account the requirement config details for how we expect the inputs to exists for the forign field curbe for secp256 so we can implement this synthesise logic with precisoun and accuracy of the use of the pallas field: + - element rangelookup check chip that has 10bit decomposition on our 3(88bit) piecies of the + +## STEP 1 + +- we need to ensure we are using the correct existing logic wire into the foreign field chips to define the foreign field values during circuit synthesis, including the generator value for secp256k1 curve, +- finish constraining the hkdf keys for the nullifier within the circuit uysing the foriend field tooling + +## STEP 3 + +- [complete headstash circuit sythesisation](./zk-crates/src/circuit.rs): + - foreign-field-keypairing constraint + - `nk` derivation constraint + - leaf knowledge of genesis-hashdomain-tree diff --git a/SESSION_07.md b/SESSION_07.md new file mode 100644 index 0000000..414d5a4 --- /dev/null +++ b/SESSION_07.md @@ -0,0 +1,544 @@ +# Feeermville + +- display eligilbe headstash crops, different flavors (instances ), synced by headstash apis configured +- display claimed crops, maintain keys in custody kms for use (ledger/multisig/verifiable auth support) +- display miniapps to make use of (*bongs* rolling papers): + - ibc withdraw + - penumbra lp provide + - osmsois lp provide + - stargaze mint/infuse + - ibc-hook (swap, stake,...) + - minigames +- custom bdf font for app: +- custom design wrapper for egui app : + +## Core Design Logic + +egui's styling system is built around two main structures that control visual appearance and spatial layout: + +### 1. Style System (`Style` struct) + +The `Style` struct in `crates/egui/src/style.rs` is the central configuration for egui's appearance [1](#0-0) . It contains: + +- **`Visuals`**: Controls colors, strokes, fills, and visual properties [1](#0-0) +- **`Spacing`**: Controls distances, margins, padding, and sizes [2](#0-1) +- **`Widgets`**: Defines visual states (noninteractive, inactive, hovered, active, open) [3](#0-2) + +### 2. Layout System (`Layout` struct) + +The `Layout` struct in `crates/egui/src/layout.rs` controls spatial arrangement [4](#0-3) : + +- **`main_dir`**: Main axis direction (left-to-right, top-to-bottom, etc.) +- **`main_wrap`**: Whether to wrap content +- **`main_align`** and **`cross_align`**: Alignment on both axes +- **`main_justify`** and **`cross_justify`**: Whether to justify content + +## How to Modify the Skin + +### Accessing and Modifying Styles + +You can modify styles through the `Context`: + +1. **Change theme** (dark/light mode): Use `ctx.set_theme()` [5](#0-4) + +2. **Modify current style**: Use `ctx.style_mut()` or `ctx.all_styles_mut()` [6](#0-5) + +3. **Modify specific theme**: Use `ctx.style_mut_of(theme, |style| { ... })` [7](#0-6) + +### Key Visual Properties + +The `Visuals` struct defines the complete visual appearance [8](#0-7) : + +- **Colors**: `override_text_color`, `hyperlink_color`, `warn_fg_color`, `error_fg_color` +- **Backgrounds**: `panel_fill`, `window_fill`, `extreme_bg_color`, `faint_bg_color` +- **Widget states**: Defined in `Widgets::dark()` and `Widgets::light()` [9](#0-8) +- **Shapes**: `window_corner_radius`, `handle_shape`, `button_frame` + +### Widget Visual States + +Each widget has 5 visual states defined in `WidgetVisuals` [3](#0-2) : + +- **noninteractive**: Default appearance +- **inactive**: Not being interacted with but can be +- **hovered**: Mouse over the widget +- **active**: Being clicked/dragged +- **open**: For expandable widgets (menus, collapsing headers) + +Each state defines: `weak_bg_fill`, `bg_fill`, `bg_stroke`, `fg_stroke`, `corner_radius`, `expansion` [10](#0-9) + +## Design Philosophy + +egui's styling follows these principles [11](#0-10) : + +1. **Builder pattern**: Widgets use method chaining for configuration +2. **Immediate mode**: Styles are applied every frame, no retained state +3. **Single source of truth**: `Context` holds one `Style` that affects all widgets +4. **Theme-aware**: Separate dark and light mode styles that can be toggled + +## Notes + +The styling system is intentionally simpler than CSS but is being improved (see issue [#3284](https://github.com/emilk/egui/issues/3284)) [12](#0-11) . You can see a live example of custom styling in the demo app's style editor UI [13](#0-12) , which allows runtime modification of all style properties. + +Wiki pages you might want to explore: + +- [Overview (emilk/egui)](/wiki/emilk/egui#1) +- [Response and Interaction (emilk/egui)](/wiki/emilk/egui#2.4) + +### Citations + +**File:** crates/egui/src/style.rs (L919-1044) + +```rust +/// Controls the visual style (colors etc) of egui. +/// +/// You can change the visuals of a [`Ui`] with [`Ui::visuals_mut`] +/// and of everything with [`crate::Context::set_visuals_of`]. +/// +/// If you want to change fonts, use [`crate::Context::set_fonts`] instead. +#[derive(Clone, Debug, PartialEq)] +#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))] +#[cfg_attr(feature = "serde", serde(default))] +pub struct Visuals { + /// If true, the visuals are overall dark with light text. + /// If false, the visuals are overall light with dark text. + /// + /// NOTE: setting this does very little by itself, + /// this is more to provide a convenient summary of the rest of the settings. + pub dark_mode: bool, + + /// ADVANCED: Controls how we render text. + pub text_alpha_from_coverage: AlphaFromCoverage, + + /// Override default text color for all text. + /// + /// This is great for setting the color of text for any widget. + /// + /// If `text_color` is `None` (default), then the text color will be the same as the + /// foreground stroke color (`WidgetVisuals::fg_stroke`) + /// and will depend on whether or not the widget is being interacted with. + /// + /// In the future we may instead modulate + /// the `text_color` based on whether or not it is interacted with + /// so that `visuals.text_color` is always used, + /// but its alpha may be different based on whether or not + /// it is disabled, non-interactive, hovered etc. + pub override_text_color: Option, + + /// How strong "weak" text is. + /// + /// Ignored if [`Self::weak_text_color`] is set. + pub weak_text_alpha: f32, + + /// Color of "weak" text. + /// + /// If `None`, the color is [`Self::text_color`] + /// multiplied by [`Self::weak_text_alpha`]. + pub weak_text_color: Option, + + /// Visual styles of widgets + pub widgets: Widgets, + + pub selection: Selection, + + /// The color used for [`crate::Hyperlink`], + pub hyperlink_color: Color32, + + /// Something just barely different from the background color. + /// Used for [`crate::Grid::striped`]. + pub faint_bg_color: Color32, + + /// Very dark or light color (for corresponding theme). + /// Used as the background of text edits, scroll bars and others things + /// that needs to look different from other interactive stuff. + pub extreme_bg_color: Color32, + + /// The background color of [`crate::TextEdit`]. + /// + /// Defaults to [`Self::extreme_bg_color`]. + pub text_edit_bg_color: Option, + + /// Background color behind code-styled monospaced labels. + pub code_bg_color: Color32, + + /// A good color for warning text (e.g. orange). + pub warn_fg_color: Color32, + + /// A good color for error text (e.g. red). + pub error_fg_color: Color32, + + pub window_corner_radius: CornerRadius, + pub window_shadow: Shadow, + pub window_fill: Color32, + pub window_stroke: Stroke, + + /// Highlight the topmost window. + pub window_highlight_topmost: bool, + + pub menu_corner_radius: CornerRadius, + + /// Panel background color + pub panel_fill: Color32, + + pub popup_shadow: Shadow, + + pub resize_corner_size: f32, + + /// How the text cursor acts. + pub text_cursor: TextCursorStyle, + + /// Allow child widgets to be just on the border and still have a stroke with some thickness + pub clip_rect_margin: f32, + + /// Show a background behind buttons. + pub button_frame: bool, + + /// Show a background behind collapsing headers. + pub collapsing_header_frame: bool, + + /// Draw a vertical line left of indented region, in e.g. [`crate::CollapsingHeader`]. + pub indent_has_left_vline: bool, + + /// Whether or not Grids and Tables should be striped by default + /// (have alternating rows differently colored). + pub striped: bool, + + /// Show trailing color behind the circle of a [`Slider`]. Default is OFF. + /// + /// Enabling this will affect ALL sliders, and can be enabled/disabled per slider with [`Slider::trailing_fill`]. + pub slider_trailing_fill: bool, + + /// Shape of the handle for sliders and similar widgets. + /// + /// Changing this will affect ALL sliders, and can be enabled/disabled per slider with [`Slider::handle_shape`]. + pub handle_shape: HandleShape, + + /// Should the cursor change when the user hovers over an interactive/clickable item? + /// + /// This is consistent with a lot of browser-based applications (vscode, github +``` + +**File:** crates/egui/src/style.rs (L1524-1614) + +```rust +impl Widgets { + pub fn dark() -> Self { + Self { + noninteractive: WidgetVisuals { + weak_bg_fill: Color32::from_gray(27), + bg_fill: Color32::from_gray(27), + bg_stroke: Stroke::new(1.0, Color32::from_gray(60)), // separators, indentation lines + fg_stroke: Stroke::new(1.0, Color32::from_gray(140)), // normal text color + corner_radius: CornerRadius::same(2), + expansion: 0.0, + }, + inactive: WidgetVisuals { + weak_bg_fill: Color32::from_gray(60), // button background + bg_fill: Color32::from_gray(60), // checkbox background + bg_stroke: Default::default(), + fg_stroke: Stroke::new(1.0, Color32::from_gray(180)), // button text + corner_radius: CornerRadius::same(2), + expansion: 0.0, + }, + hovered: WidgetVisuals { + weak_bg_fill: Color32::from_gray(70), + bg_fill: Color32::from_gray(70), + bg_stroke: Stroke::new(1.0, Color32::from_gray(150)), // e.g. hover over window edge or button + fg_stroke: Stroke::new(1.5, Color32::from_gray(240)), + corner_radius: CornerRadius::same(3), + expansion: 1.0, + }, + active: WidgetVisuals { + weak_bg_fill: Color32::from_gray(55), + bg_fill: Color32::from_gray(55), + bg_stroke: Stroke::new(1.0, Color32::WHITE), + fg_stroke: Stroke::new(2.0, Color32::WHITE), + corner_radius: CornerRadius::same(2), + expansion: 1.0, + }, + open: WidgetVisuals { + weak_bg_fill: Color32::from_gray(45), + bg_fill: Color32::from_gray(27), + bg_stroke: Stroke::new(1.0, Color32::from_gray(60)), + fg_stroke: Stroke::new(1.0, Color32::from_gray(210)), + corner_radius: CornerRadius::same(2), + expansion: 0.0, + }, + } + } + + pub fn light() -> Self { + Self { + noninteractive: WidgetVisuals { + weak_bg_fill: Color32::from_gray(248), + bg_fill: Color32::from_gray(248), + bg_stroke: Stroke::new(1.0, Color32::from_gray(190)), // separators, indentation lines + fg_stroke: Stroke::new(1.0, Color32::from_gray(80)), // normal text color + corner_radius: CornerRadius::same(2), + expansion: 0.0, + }, + inactive: WidgetVisuals { + weak_bg_fill: Color32::from_gray(230), // button background + bg_fill: Color32::from_gray(230), // checkbox background + bg_stroke: Default::default(), + fg_stroke: Stroke::new(1.0, Color32::from_gray(60)), // button text + corner_radius: CornerRadius::same(2), + expansion: 0.0, + }, + hovered: WidgetVisuals { + weak_bg_fill: Color32::from_gray(220), + bg_fill: Color32::from_gray(220), + bg_stroke: Stroke::new(1.0, Color32::from_gray(105)), // e.g. hover over window edge or button + fg_stroke: Stroke::new(1.5, Color32::BLACK), + corner_radius: CornerRadius::same(3), + expansion: 1.0, + }, + active: WidgetVisuals { + weak_bg_fill: Color32::from_gray(165), + bg_fill: Color32::from_gray(165), + bg_stroke: Stroke::new(1.0, Color32::BLACK), + fg_stroke: Stroke::new(2.0, Color32::BLACK), + corner_radius: CornerRadius::same(2), + expansion: 1.0, + }, + open: WidgetVisuals { + weak_bg_fill: Color32::from_gray(220), + bg_fill: Color32::from_gray(220), + bg_stroke: Stroke::new(1.0, Color32::from_gray(160)), + fg_stroke: Stroke::new(1.0, Color32::BLACK), + corner_radius: CornerRadius::same(2), + expansion: 0.0, + }, + } + } +} +``` + +**File:** crates/egui/src/style.rs (L1749-1772) + +```rust + ui.collapsing("📏 Spacing", |ui| spacing.ui(ui)); + ui.collapsing("☝ Interaction", |ui| interaction.ui(ui)); + ui.collapsing("🎨 Visuals", |ui| visuals.ui(ui)); + ui.collapsing("🔄 Scroll animation", |ui| scroll_animation.ui(ui)); + + #[cfg(debug_assertions)] + ui.collapsing("🐛 Debug", |ui| debug.ui(ui)); + + ui.checkbox(compact_menu_style, "Compact menu style"); + + ui.checkbox(explanation_tooltips, "Explanation tooltips") + .on_hover_text( + "Show explanatory text when hovering DragValue:s and other egui widgets", + ); + + ui.checkbox(url_in_tooltip, "Show url when hovering links"); + + ui.checkbox(always_scroll_the_only_direction, "Always scroll the only enabled direction") + .on_hover_text( + "If scrolling is enabled for only one direction, allow horizontal scrolling without pressing shift", + ); + + ui.vertical_centered(|ui| reset_button(ui, self, "Reset style")); + } +``` + +**File:** crates/egui/src/style.rs (L1789-1812) + +```rust +impl Spacing { + pub fn ui(&mut self, ui: &mut crate::Ui) { + let Self { + item_spacing, + window_margin, + menu_margin, + button_padding, + indent, + interact_size, + slider_width, + slider_rail_height, + combo_width, + text_edit_width, + icon_width, + icon_width_inner, + icon_spacing, + default_area_size, + tooltip_width, + menu_width, + menu_spacing, + indent_ends_with_horizontal_line, + combo_height, + scroll, + } = self; +``` + +**File:** crates/egui/src/layout.rs (L118-156) + +```rust +// ---------------------------------------------------------------------------- + +/// The layout of a [`Ui`][`crate::Ui`], e.g. "vertical & centered". +/// +/// ``` +/// # egui::__run_test_ui(|ui| { +/// ui.with_layout(egui::Layout::right_to_left(egui::Align::TOP), |ui| { +/// ui.label("world!"); +/// ui.label("Hello"); +/// }); +/// # }); +/// ``` +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +// #[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))] +pub struct Layout { + /// Main axis direction + pub main_dir: Direction, + + /// If true, wrap around when reading the end of the main direction. + /// For instance, for `main_dir == Direction::LeftToRight` this will + /// wrap to a new row when we reach the right side of the `max_rect`. + pub main_wrap: bool, + + /// How to align things on the main axis. + pub main_align: Align, + + /// Justify the main axis? + pub main_justify: bool, + + /// How to align things on the cross axis. + /// For vertical layouts: put things to left, center or right? + /// For horizontal layouts: put things to top, center or bottom? + pub cross_align: Align, + + /// Justify the cross axis? + /// For vertical layouts justify mean all widgets get maximum width. + /// For horizontal layouts justify mean all widgets get maximum height. + pub cross_justify: bool, +} +``` + +**File:** crates/egui/src/context.rs (L2024-2026) + +```rust + pub fn set_theme(&self, theme_preference: impl Into) { + self.options_mut(|opt| opt.theme_preference = theme_preference.into()); + } +``` + +**File:** crates/egui/src/context.rs (L2062-2072) + +```rust + /// # let mut ctx = egui::Context::default(); + /// ctx.all_styles_mut(|style| { + /// style.spacing.item_spacing = egui::vec2(10.0, 20.0); + /// }); + /// ``` + pub fn all_styles_mut(&self, mut mutate_style: impl FnMut(&mut Style)) { + self.options_mut(|opt| { + mutate_style(Arc::make_mut(&mut opt.dark_style)); + mutate_style(Arc::make_mut(&mut opt.light_style)); + }); + } +``` + +**File:** crates/egui/src/context.rs (L2091-2091) + +```rust + pub fn style_mut_of(&self, theme: Theme, mutate_style: impl FnOnce(&mut Style)) { +``` + +**File:** README.md (L256-259) + +```markdown +### Can I customize the look of egui? +Yes! You can customize the colors, spacing, fonts and sizes of everything using `Context::set_style`. + +This is not yet as powerful as say CSS, [but this is going to improve](https://github.com/emilk/egui/issues/3284). +``` + +**File:** README.md (L313-325) + +```markdown +### Conventions and design choices + +All coordinates are in screen space coordinates, with (0, 0) in the top left corner + +All coordinates are in logical "points" which may consist of many physical pixels. + +All colors have premultiplied alpha, unless otherwise stated. + +egui uses the builder pattern for construction widgets. For instance: `ui.add(Label::new("Hello").text_color(RED));` I am not a big fan of the builder pattern (it is quite verbose both in implementation and in use) but until Rust has named, default arguments it is the best we can do. To alleviate some of the verbosity there are common-case helper functions, like `ui.label("Hello");`. + +Instead of using matching `begin/end` style function calls (which can be error prone) egui prefers to use `FnOnce` closures passed to a wrapping function. Lambdas are a bit ugly though, so I'd like to find a nicer solution to this. More discussion of this at . + +egui uses a single `RwLock` for short-time locks on each access of `Context` data. This is to leave implementation simple and transactional and allow users to run their UI logic in parallel. Instead of creating mutex guards, egui uses closures passed to a wrapping function, e.g. `ctx.input(|i| i.key_down(Key::A))`. This is to make it less likely that a user would accidentally double-lock the `Context`, which would lead to a deadlock. +``` + +You are an expert Rust developer specializing in egui for immediate-mode GUIs, integrating blockchain APIs (Cosmos SDK, IBC, Keplr wallet integration), custom font rendering, and retro/analog-themed UI design. Your task is to generate clean, idiomatic Rust code that extends an existing egui application (using eframe for cross-platform support) with a custom "Headstash Crop Manager" window. This window displays and interacts with eligible/claimed "crops" (NFT-like yield assets or airdrop claims) synced via Headstash APIs, manages key custody with KMS support (Ledger/multisig/verifiable auth), and embeds miniapps for Cosmos ecosystem actions. Incorporate a custom BDF (Bitmap Distribution Format) font for monospace text in menus and labels, and apply a custom egui "skin" with analog/retro styling: use bitmapped icons for characters (e.g., farmers, avatars) and plants (crop visuals), scheme an analog dashboard feel (e.g., rounded gauges for progress, faux-analog dials for LP yields, striped backgrounds like old CRTs). + +### Context and Assumptions + +- The base application is a standard egui app with a main `update` loop. Assume it's a Cosmos wallet companion app with Keplr integration for signing (via `cosmos-sdk` and `ibc` crates; add deps if needed: `egui`, `eframe`, `reqwest` for APIs, `image` for bitmaps, `fontdue` or `egui_extras` for BDF font loading). +- Headstash API: Assume a configured client (`HeadstashClient`) that exposes async methods like: + - `sync_eligible_crops(flavor: String) -> Vec` (crops are instances/flavors like "Sativa", "Indica"). + - `claim_crop(crop_id: String, key: KmsKey) -> Result`. + - `get_claimed_crops() -> Vec`. +- `CropInfo`: Struct with `id: String`, `flavor: String`, `eligibility_score: f32`, `bitmap_url: String` (for plant icon), `status: CropStatus` (Eligible, Pending, Expired). +- `ClaimedCrop`: Similar, plus `yield_value: f64`, `custody_key: KmsKey` (enum: Ledger, Multisig, Verifiable). +- KMS Custody: Use a simple `KmsManager` for key ops (generate/store/sign; mock for demo, integrate real Ledger via `ledger-rs` if needed). +- Miniapps: Embed as collapsible panels or modal dialogs triggered by buttons. Assume async handlers: + - `ibc_withdraw(amount: f64, dest_chain: String)`. + - `penumbra_lp_provide(token_a: String, token_b: String, amount: f64)`. + - `osmosis_lp_provide(...)` (similar). + - `stargaze_mint_infuse(nft_data: String)`. + - `ibc_hook_action(action: IbcHook, params: HashMap)` (swap/stake). + - `launch_minigame(game_id: String)` (e.g., simple egui-based puzzle). +- Custom BDF Font: Load the tiny monospace font from (assume downloaded as `tiny.bdf`; parse with `bdf` crate or manual bitmap loading into `egui::FontData`). +- Bitmaps: Load plant/character icons as `egui::TextureHandle` from URLs or embedded bytes (use `image::load`); display in grids with hover tooltips. +- Analog Scheme: Retro aesthetic – dark/greenish palette (e.g., #0a0a0a bg, #00ff41 accents like old terminals), analog gauges via `egui::plot` or custom painters (circular progress for yields), striped rows in tables, monospace BDF text for all menus/labels. +- Use egui's `Style` system: Override `Visuals` (dark_mode: true, custom colors/strokes from provided snippets), `Spacing` (compact: item_spacing: vec2(4.0, 2.0), indent: 8.0), `Widgets` states (hovered: expansion 1.5, fg_stroke thicker). Apply via `ctx.set_visuals()` in app init. For layout, use `Layout::top_down(Align::Center)` in panels for dashboard feel. +- Real-time sync: Poll Headstash API every 5s (use `tokio` for async); handle errors with toasts (egui notification crate if added). +- Window toggleable via main menu button. + +### Requirements for the Generated Code + +1. **Window Structure** (`HeadstashWindow` struct): + - Title: "Headstash Crop Dashboard". + - Size: ~1000x700, resizable, central. + - Tabs or sections (use `egui::Tab` or `CollapsingHeader` for analog "panels"): + - **Eligible Crops**: Grid/table of crops by flavor (columns: Flavor Icon (bitmap), ID, Score (analog gauge), Sync Status). Button: "Claim" → modal for KMS key selection (Ledger/Multisig dropdown + auth prompt). + - **Claimed Crops**: Similar grid, plus Yield Gauge (circular analog dial via custom painter or `egui::Circle`), Custody Status (colored badge: 🔒 Ledger, 🔑 Multisig). Button: "Use Crop" → enqueue for miniapp. + - **Miniapps (*Bongs & Rolling Papers*)**: Scrollable list of buttons/icons (retro paper textures as bg). Each opens a sub-window: + - IBC Withdraw: Form with amount slider, dest chain dropdown; sign via Keplr. + - LP Provide (Penumbra/Osmosis): Dual token selectors, ratio slider (analog needle), preview yield. + - Stargaze Mint/Infuse: NFT upload/input, infuse progress bar (plant growth animation with bitmaps). + - IBC-Hook: Dropdown (Swap/Stake), param fields; execute button. + - Minigames: Embed simple egui game (e.g., match-3 crops with bitmap tiles). + - **Settings**: API config (URL input), KMS toggle, Font reload button. + +2. **Interactions & Visuals**: + - Bitmaps: Load async into textures; display with `ui.image`; fallback to text icons (e.g., 🌱 for plants). + - Menus: All text in BDF font (set via `ctx.set_fonts(FontDefinitions::from_bdf("tiny.bdf"))`); monospace for code-like feel, e.g., "Claim: crop_42 [Sativa]". + - Analog Elements: Custom `AnalogGauge` widget (painter for arc/needle based on `progress: f32`); stripe tables with `faint_bg_color` alternating rows. + - Hover/Click: Context menus on crops (right-click: Inspect bitmap, Share key). Flash green on sync success. + - Auth: Verifiable prompts (e.g., "Sign with Ledger?"); mock multisig approval flow. + - Error Handling: Red tooltips, retry buttons. + +3. **egui Customization**: + - Init in `main`: `ctx.set_visuals(Visuals::dark().with_override_text_color(Some(green)), ...)` using snippets (e.g., Widgets::dark() with custom grays/greens: bg_fill: #001100, fg_stroke: #00ff41). + - Spacing: Compact retro (button_padding: vec2(2,1), interact_size: 16.0). + - Layout: Mostly vertical with centered aligns; wrap grids for responsive. + - Fonts: Load BDF as bytes, add to `FontDefinitions` with `FontData::Bytes`, set as default monospace. + +4. **Integration**: + - In main `update`: Button "Open Headstash Dashboard" toggles window. + - Async: Use `Arc>` for thread-safety; spawn tokio tasks for sync. + - Deps: Add `tokio`, `reqwest`, `serde`, `image`, `bdf-parser` (for font); assume Cosmos types from `cosmos-sdk-proto`. + - Edge Cases: Empty lists (show retro "No crops harvested" bitmap), API offline (cached data), long bitmaps (scale to 32x32). + +5. **Code Style**: + - Rust 1.80+. + - Modular: `headstash_window.rs` with `HeadstashWindow` impl `draw(ui: &mut Ui)`. + - Comments: Key sections, e.g., "// Load BDF font and apply analog visuals". + - Self-contained snippet + main.rs integration example. + - Adapt: If Headstash API differs, note placeholders. + +Generate the complete Rust code module (`headstash_window.rs`) with structs, custom widgets (e.g., `AnalogGauge`), font loader, and example `main.rs` integration. Include egui style setup from provided snippets (e.g., custom `Visuals` with dark_mode, weak_bg_fill: Color32::from_rgb(0,17,0)). Explain assumptions/extensions in comments. diff --git a/SUMMARY.md b/SUMMARY.md new file mode 100644 index 0000000..31cbffd --- /dev/null +++ b/SUMMARY.md @@ -0,0 +1,123 @@ + +# Concrete Technical Review of HeadstashCircuit Implementation + +Below is a concrete, technical review of the provided Rust implementation of the `HeadstashCircuit` against the given specification (\\\\"Spec: Zk-Airdrop Claiming\\\\"). I have focused exclusively on **accuracy** (i.e., does the implementation correctly reflect the spec's requirements, constraints, and cryptographic flows?) and **completeness** (i.e., are all required components implemented, or are there gaps?). I have **criticized** where the implementation is incomplete (e.g., missing constraints, derivations, or checks that are explicitly required by the spec) or misinterprets functionality (e.g., misuse of chips, incorrect handling of inputs/outputs, or deviations from described flows). Emotional concerns, opinions, or suggestions outside of correctness/completeness are omitted. + +My analysis is structured by key spec sections and circuit components, drawing direct comparisons to the spec's requirements. Key spec excerpts are referenced for context. Assumptions: The spec is authoritative; the code must fully enforce all constraints and derivations for security/privacy; tests are reviewed for correctness but do not substitute for missing constraints in `synthesize`. + +## 1. **Overall Circuit Structure and Configuration (Accuracy: Partial; Completeness: Incomplete)** + +- **Spec Reference**: The spec outlines a circuit with 7 private witnesses, 5 public inputs, constants, and derived values (e.g., `cm`, `recp`). It requires native Pallas operations, foreign field arithmetic (FFA) for secp256k1, Sinsemilla for hashing/trees, Poseidon for HKDF/nullifiers, and ECC for pairings. Public inputs include `nul` (nullifier), `nd`, `v`, `recp`, and `genesis_root` (anchor). Derived values like `hkdf_sk` from HKDF, `cm` from Poseidon, and leaf from Sinsemilla must be constrained in-circuit. + +- **Implementation Review**: + - The `HeadstashCircuit` struct includes most witnesses (e.g., `esk`, `epkx/y`, `rho`, `psi`, `cm`, `fdi`, `v`, `nd`, `recp`) and closely matches spec witnesses/inputs. However, `Instance` struct includes `anchor`, `nf_old`, `cmx`, but the circuit does not constrain all to public instances (see below). + - Configuration (`configure`): Chips (EccChip, Secp256k1Chip, PoseidonChip, SinsemillaChip, MerkleChip, NoteCommitChip) are correctly instantiated, with advice/column allocations matching spec (e.g., 10 advices, secp256k1 Fp/Fq chips on separate columns [0-2, 3-5]). Shared fixed columns for ECC/Poseidon reduce size correctly. AddChip and lookups are appropriate. **Completeness Issue**: Configuration is solid, but `synthesize` does not fully utilize all chips (e.g., NoteCommitChip is configured but unused in `synthesize`, despite spec requiring note commitments for `cm`). Sinsemilla and Merkle chips are partially used but not for the correct spec flows (genesis leaf derivation). + - **Misinterpretation**: Spec requires deriving `recp` as `Poseidon(recp_raw)` or similar, but `recp` is a direct witness with no in-circuit derivation/constraint. This violates spec's \\\\"Derived\\\\" section (e.g., \\\\"\\mathsf{recp}\\;:=\\;\\\\"). + +## 2. **Key Pairing and Proof of Ownership (Accuracy: Partial; Completeness: Incomplete)** + +- **Spec Reference**: \\\\"constrain a key pair (epk,esk) are paired by division with G\\\\" via secp256k1 operations. Ownership is proven via HKDF: derive `hkdf_sk` from `esk`, `leaf`, `recp`, `psi` (using Poseidon), then use in nullifier derivation. This ensures \\\\"users prove they know `esk` via nullifier as public input.\\\\" Derivation includes `m = poseidon_hash(dst_hkdf,[recp, v, nd, fdi,psi]); pallas_sk = poseidon_hash([DST_HKDF, esk_native, m]);`. + +- **Implementation Review**: + - Secp256k1 key pairing (Step 1 in `synthesize`): `Secp256k1Chip::prove_key_pairing` correctly constrains `epk = esk * G_secp256k1` using FFA (3x88-bit limbs, range-checked via 9x10-bit chunks reusing Sinsemilla table). This matches spec for ownership via pairing. + - HKDF/Nullifier: `nk` is witnessed (from external `NullifierDerivingKey::derive_from(esk, rho)`), and `gadget::derive_nullifier` hashes `(nk, rho, psi, cm)` via Poseidon, constraining `nf = DeriveNullifier_nk(rho,psi,m)`. **Misinterpretation**: Spec requires HKDF in-circuit to derive `hkdf_sk` from `esk` + other inputs (e.g., `recp`, `v`, `nd`, `fdi`, `psi`), using Poseidon for HKDF (e.g., `pallas_sk = poseidon_hash([DST_HKDF, esk_native, m])`). Code skips this, witnessing `nk` directly without constraining its derivation from `esk`. This breaks ownership proof—adversaries could use invalid `nk` without proving `esk` knowledge beyond pairing. Per spec questions (\\\\"have we constrained `nk` is hash-derived?\\\\"), this is missing. + - **Completeness Issue**: No in-circuit HKDF constraint on `nk`. `e_sk_crt` from pairing is unused (spec implies using derived `hkdf_sk` in nullifier flow). Tests check pairing but don't verify HKDF derivation. + +## 3. **Merkle Inclusion and Genesis Distribution Tree (Accuracy: Low; Completeness: Incomplete)** + +- **Spec Reference**: Genesis tree (Sinsemilla HashDomain) with leaves `H_DST_HKDF(elig_pk || nd || v || fdi)` (public bindings to balances). Root is `genesis_root` (public). Users prove inclusion of their leaf to claim eligibility. Leaf derivation includes `epk` (private in circuit but part of hash). Spec's \\\\"Genesis Distribution Tree\\\\" details leaf preparation: sinsemilla hash with DST_HKDF, epk, nd, v, fdi, padded. + +- **Implementation Review**: + - Merkle check (Step 2): `MerkleChip::calculate_root` from `path`, `pos`, and `leaf = cm.extract_p()`. **Major Misinterpretation**: Spec requires leaf as Sinsemilla hash of `(epk, nd, v, fdi)`, proving inclusion in genesis tree. Code uses `cm` (note commitment) as leaf, implying a note-commitment tree (spec mentions this as \\\\"futureproof\\\\" but not for MVP genesis inclusion). This mismatches spec—no genesis eligibility proof. Root isn't constrained to public `anchor` (spec requires public root). + - **Completeness Issue**: No in-circuit derivation of leaf from `epk`, `nd`, `v`, `fdi` (spec's \\\\"Leaf Input Preparation\\\\"). `cm` is witnessed but not derived/constrained (see next). Instance includes `anchor`, but no constraint `calculated_root == anchor`. Tests use dummy paths without enforcing correct root—invalid proofs could pass. + - SinsemillaChip: Correctly configured, but misused for note-commitment tree instead of genesis. + +## 4. **Note Commitments and Nullifiers (Accuracy: Partial; Completeness: Incomplete)** + +- **Spec Reference**: `cm = Poseidon(recp, v, rho, psi, rcm)` (derived in-circuit). Nullifier prevents double-spend, derived via HKDF/Poseidon (e.g., hash `hkdf_sk`, `rho`, `psi`, multiply by NullifierK). `cmx` (extracted `cm`) and `nf` are public. + +- **Implementation Review**: + - Note Commitments: `cm` is witnessed but not derived in-circuit (violates spec \\\\"Derived\\\\" section: `\\mathsf{cm}\\;:=\\;\\text{Poseidon}_{\\mathbb{F}_p}\\!\\bigl(\\mathsf{recp},\\,v,\\,\\rho,\\,\\psi,\\,\\mathsf{rcm}\\bigr)`). No constraint `cm == Poseidon(recp, v, rho, psi, rcm)`. `NoteCommitChip` is configured but unused. Per spec questions (\\\\"have we constrained `leaf` is derived from provided values?\\\\"), no. Tests generate `cm` outside. + - Nullifiers: Derived via `derive_nullifier` (Poseidon on `nk`, `rho`, `psi`, `cm`), constrained to public `NF`. But as above, `nk` derivation from `esk` (via HKDF) is not constrained in-circuit, weakening double-spend prevention. Spec's multiplication by NullifierK is absent. + - Public Constraints: Only `nf` is constrained to instance (correct). But `cmx` (spec's `cmx`) and `anchor` (root) are in `Instance` but unconstrained (spec requires them as public inputs). + - **Completeness Issue**: No in-circuit `cm` derivation or `rcm` PRF. No `cmx` extraction/constraint. `NoteCommitChip` (for decomposition/checking) is unused, despite spec needing it for `NoteCommit_new`. + +## 5. **Public Inputs, Witnesses, and Constraints (Accuracy: Low; Completeness: Incomplete)** + +- **Spec Reference**: Public inputs: `nul`, `nd`, `v`, `recp`, `genesis_root`. Private witnesses as listed. Constants like DSTs, generators. All derivations/constraints enforced. + +- **Implementation Review**: + - Witnesses (Step 2): Correctly assigned, but `recp` lacks derivation. `cm` assigned but not derived. + - Constraints: Key pairing, nullifier to public, but missing root-to-anchor, `cm` derivation, leaf derivation, and full HKDF. Per code questions, these are gaps (\\\\"q: have we constrained...\\\\"). + - Instance Columns: `ANCHOR`, `CV_NET_X/Y`, `NF`, `RK_X/Y`, `CMX` defined, but only `NF` constrained. `CMX` (spec's `cmx`) unconstrained. + - **Misinterpretation**: `CV_NET_X/Y`, `RK_X/Y` in offsets but unused—spec doesn't require these (focus on anchor, nf, cmx). + - TODO: Code has \\\\"// TODO: complete implement headstash circuit synthesisation\\\\", confirming incompleteness. + +## 6. **Chip Usage and FFA (Accuracy: Partial; Completeness: Adequate for Implemented Parts)** + +- **Spec Reference**: FFA for secp256k1 (3x88-bit limbs, 9x10-bit checks). Sinsemilla for trees, Poseidon for hashes/HKDF, ECC for pairings. + +- **Implementation Review**: FFA is correctly implemented (limbs/chunks via RangeChip). Chips are configured well, but underutilized (e.g., NoteCommitChip, full Sinsemilla/Poseidon flows incomplete). No misinterpretations in FFA itself. + +## 7. **Tests and Edge Cases (Accuracy: Low; Completeness: Partial)** + +- Valid test generates circuit but doesn't enforce missing constraints (e.g., invalid `nk` could pass without HKDF check). Invalid pairing test is correct but doesn't cover full spec gaps. Without witnesses test is trivial. Configurations/costs are checked but don't validate constraints. +- **Misinterpretation**: Tests assume valid circuit generation implies correctness, but missing constraints (e.g., root/leaf) allow invalid proofs. + +## Summary of Critical Issues + +- **Incomplete Implementation**: Major gaps in `synthesize` (e.g., no `cm` derivation, no leaf derivation for Merkle, no HKDF constraint, unconstrained public inputs like `anchor`/`cmx`). NoteCommitChip unused. TODO acknowledges this. +- **Misinterpretations**: Merkle treats `cm` as leaf instead of deriving genesis leaf from `epk`/`nd`/`v`/`fdi`. HKDF for `nk` not in-circuit. Nullifier flow deviates from spec's HKDF/Poseidon/multiplication. Public inputs not fully constrained. +- **Impact**: Circuit does not fully enforce spec's privacy/security (e.g., double-spend prevention, ownership proof, genesis inclusion). Proofs could be invalid without detection. To fix: Implement missing derivations/constraints in `synthesize`, correct Merkle leaf, add HKDF in-circuit. Tests must verify constraints post-fix. This is not a complete/provable implementation. + + + +___ + +you are an expert rust and TypeScript developer specializing in MetaMask Snaps, zk-SNARKs, elliptic curves, and cryptographic key derivation. Your task is to extend and modify the provided base MetaMask Snap code to create a new Snap plugin that integrates HKDF (HMAC-based Extract-and-Expand Key Derivation Function) for generating private keys from a secp256k1 (Ethereum-compatible) private key, derives a key pair on the Pallas curve (from the Halo2/Zcash ecosystem, using the twisted Edwards curve over the BLS12-381 scalar field), and generates a structured proof input object for zk-proof generation. The Snap will expose RPC methods for users to invoke these operations securely within MetaMask, treating the secp256k1 private key as a private input to HKDF. + + +HKDF Integration: Use HKDF (RFC 5869) with Posiedon as the hash function. Input: The user's secp256k1 private key (derived from the Snap's seed or Ethereum account, decomposed into 3x 88bit limbs on the pallas curve). Salt + DST: A user-provided or randomized 32-byte value (e.g., from entropy). Info: A fixed string like "pallas_keypair". Output: A 64-byte derived key, from which you'll extract a 32-byte private key for the Pallas curve. + +Proof Input Struct Generation: After key pair generation, create a JSON-serializable struct for zk-proof inputs. We should use the existing structure of notes, and return an encrypted note with its secret values. + + a highly skilled Rust software engineer specializing in ZK circuits, Halo2, Sinsemilla, Poseidon, and Cosmos WASM. Your goal is to update zk-crates/zk-headstash/src/deploy/suite.rs to fully implement the HeadstashBitwiseInstance trait for deriving proof pre-inputs per docs/zk-headstash/spec.md, add protobuf-based actions for note prepare/harvest/sign, and enable WASM-bindgen snap API integration for proof gen. + +Current State (from recent reads): + +suite.rs has partial HeadstashSuite impl for BitwiseInstance: derive_nd now blake3 masked, derive_v/fdi padded [u8;32], tree gen ready for uncomment. +value.rs NoteDenom new_for_proof fixed mask byte[31]. +spec.rs has decompose_biguint_simple for 3x88bit limbs, hdkf_pallas, prf_pallas_m, prf_nf. +note.rs Note struct with commitment, nullifier. +keys.rs EligibleSk/epk, NullifierDerivingKey. +circuit/gadget.rs derive_nullifier Poseidon(nk,rho) + psi * NullK + cm. +Todo list: gaps in limbs, nk HKDF, derive_m Poseidon, protobuf actions, prepare_note etc. +Step-by-Step Plan (use tools iteratively, one per message, wait for result): + +[x] Fixes done: derive_nd blake3, v/fdi pad, uses added. + +Add derive_secp256k1_limbs trait/impl: Decompose [u8;32] to [pallas::Base;3] 88bit using decompose_biguint_simple(BigUint::from_bytes_le(bytes), 3,88). + +Fix derive_limbs_sum_const_time: param limbs &[pallas::Base;3], return sum limb0 +1 +2. + +Uncomment/fix derive_leaf parallel: Use addr_bytes, derive_nd(token), derive_v(fixed), derive_fdi(idx). + +Implement derive_m: prf_pallas_m( fdi_base = Base::from(fdi), v_base = Base::from(v), nd_base = Base::from_repr(derive_nd(nd)), esk_base = derive_limbs_sum(derive_limbs(esk_bytes)) ) + +Implement derive_nk: Full HKDF per spec: m = derive_m(esk_bytes, fdi, v, nd), leaf = sinsemilla leaf_hash(epk_bytes, nd_bytes, v_pad, fdi_pad), recp_fp = spec::recp_to_fp(&RecpAddr), psi = PRF_psi(rseed, rho), hkdf_sk = poseidon(DST_HKDF, esk_fp, leaf, recp_fp, psi), then Poseidon(hkdf_sk, rho) or per spec. + +Add protobuf: Create proto/headstash.proto with HeadstashAction { oneof { prepare_note: PrepareNoteReq, harvest_note: HarvestNoteReq, sign_prompt: SignPromptReq } }, types matching PrivateWitnesses/PublicInputs/Constants from spec. + +Codegen: Add build.rs prost-build for proto, gen src/gen/. + +prepare_note action: Input eligible_sk_hex, recp_hex, nd_str, v_u64, fdi_u64, rseed_bytes, rho_base_hex; derive all preinputs JSON: esk_bytes, epk_bytes, fdi, leaf, rho, psi, rcm, merkle_path from tree, nf, cm; serialize protobuf. + +harvest_note: Serialize preinputs protobuf, prompt snap.prove wasm-bindgen call. + +sign_prompt: Generate signable msg = hash(recp, nf, cm?) for esk sign. + +Test: Add bin/bitwise_preinputs.rs gen JSON, verify tree gen with input JSON. + +Doc: Add Mermaid in suite.rs comments for lifecycle flow. + + diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..3172740 --- /dev/null +++ b/TODO.md @@ -0,0 +1,21 @@ +# TODO + +## Testing Suite + +- implmenet overall testing suite structure for all crates in workspace + +## Headstash Indexer/API + +- we need to store host, and retrieve data related to headstash distributions. Use cnardium + commonware node for storage and api (see ergors) +- canonical workflow for a pubkey to search for any headstashes they are eligible for (used when snap-pugin syncs on first install and any time plugin request to sync) + +## Snap-n-pull - MVP + +- refactor msg and proof input building logic with use of the HeadstashSuite orchestration client that has the headstash traits implemented (we are replacing the zcash specification that exists due tto this being a fork of an existing metamask-snap for zcash, but we are going to use it for our purposes) + +- broadcast msgs to network using the dedicated smart-account authenticator (using non_crititcal_tx_extension) (uses headstash contract address as authenticator) + +## HeadstashSuite + +- implement grpc request for headstash api +- sync with headstash api diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..28ad2e4 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,44 @@ + +# Docs + +## Airdrop Cycle 1: Genesis Distribution + +| Project | % Total Supply | # of addrs | +|---------------------------|------| -| +| ATOM | `6.1152%` | `163,855` | +| BCNA | `1.911%` | `1,219` | +| Terp OG & Genesis Scavenger Hunt | `0.0261%` | `25` | +| **TOTAL** | `8.0523%` | `164,599` *unique addrs* | + +Further details regarding how these values were determined can be found [here](./docs/genesis-distribution-patch.md). + +## Airdrop Cycle 2: Cannabis Culture Communities + +| Project | # of Addresses | Date Of Snapshot | Est. Total TERP | Average Token Per Point | % of headstash allocation | +| --- | --- | --- | --- | --- | --- | +| [buddah bears](./headstash/communities/buddah-bears/README.md) | `2453` | Oct 11th, 2022 | `8988296.42 TERP` | `3664.205633` | `11.35%` | +| [cannabuddies](./headstash/communities/cannabuddies/README.md) | `238` | Nov 18th, 2024 | `872080.94 TERP` | `3664.205633` | `3.54%` | +| [carta beta gang](./headstash/communities/carta-beta-gang/README.md) | `157` | Nov 19th, 2024 | `575280.28 TERP` | `3664.205633` | `2.87%` | +| [chronic token](./headstash/communities/chronic-token/README.md) | `1255` | Oct 11th, 2022 | `4598578.07 TERP` | `3664.205633` | `8.12%` | +| [crypto canna club](./headstash/communities/crypto-canna-club/README.md) | `4405` | Oct 11th, 2022 | `16140825.81 TERP` | `3664.205633` | `15.21%` | +| [cryptowizards](./headstash/communities/cryptowizards/README.md) | `55` | Nov 18th, 2024 | `201531.31 TERP` | `3664.205633` | `1.70%` | +| [galacktic gang](./headstash/communities/galacktic-gang/README.md) | `2568` | Oct 11th, 2022 | `9409680.07 TERP` | `3664.205633` | `11.61%` | +| [heady pipe society](./headstash/communities/heady-pipe-society/README.md) | `23` | Nov 18th, 2024 | `84276.73 TERP` | `3664.205633` | `1.10%` | +| [hippie life krew](./headstash/communities/hippie-life-krew/README.md) | `342` | Jun 16th, 2023 | `1253158.33 TERP` | `3664.205633` | `4.24%` | +| [monster buds](./headstash/communities/monster-buds/README.md) | `3385` | Oct 11th, 2022 | `12403336.07 TERP` | `3664.205633` | `13.34%` | +| [rebud](./headstash/communities/rebud/README.md) | `585` | Jan 23nd, 2024 | `2143560.30 TERP` | `3664.205633` | `5.54%` | +| [secret sesh](./headstash/communities/secret-sesh/README.md) | `527` | Oct 11th, 2022 | `1931036.37 TERP` | `3664.205633` | `5.26%` | +| [shurlok](./headstash/communities/shurlok/README.md) | `33` | Nov 26th, 2024 | `120918.79 TERP` | `3664.205633` | `1.32%` | +| [special k](./headstash/communities/special-k/README.md) | `46` | Nov 18th, 2024 | `168553.46 TERP` | `3664.205633` | `1.55%` | +| [stoned ape club](./headstash/communities/stoned-ape-club/README.md) | `2059` | Oct 24rd, 2024 | `7544599.40 TERP` | `3664.205633` | `10.40%` | +| [wake and bake](./headstash/communities/wake-and-bake/README.md) | `154` | Nov 18th, 2024 | `564287.67 TERP` | `3664.205633` | `2.84%` | +| |`18285`| | `66999999.999954 TERP & THIOL` ||| + +## Todo + +- testing library +- zk-circuit framework: public-private logic represenation of custom circuit requirements for descriptive functional programming framework. + +- use genesis file to determine difference + - still use export to provide bonus to active network users +- display metadata regarding difference between original genesis and patch distribution (via d3.js) diff --git a/docs/distribution.md b/docs/genesis/distribution.md similarity index 79% rename from docs/distribution.md rename to docs/genesis/distribution.md index facf554..80bc690 100644 --- a/docs/distribution.md +++ b/docs/genesis/distribution.md @@ -1,23 +1,25 @@ -# Distribution: +# Distribution Overview --- -## Overview + ## Supply -### TERP -- **Inital Supply:** 420,000,000 TERP -### PERSY -- **Initial Supply:** 710,000,000 PERSY -## Distribution -36% - Vested Airdrops\ +## Distribution + +34% - Vested Airdrops\ 50% - Treasury\ -24% - Foundation +16% - Foundation -## Minting Schedule ### TERP -No minting or inflation schedule set -### PERSY -93% first year, 1/3rd less each following year (Model based off of Osmosis Zones Thirdening Schedule) + +- **Inital Supply:** 420,000,000 TERP\ +- **Minting Schedule**: No minting or inflation schedule set + +### PERSY + +- **Initial Supply:** 710,000,000 PERSY +- **Minting Schedule**: 93% first year, 1/3rd less each following year (Model based off of Osmosis Zones Thirdening Schedule) + | year 0 | 710,000,000.00 | 93.00% | 660,300,000 | | |---------|:----------------:|:------:|:-----------:|---| | year 1 | 1,370,300,000.00 | 62.00% | 849,586,000 | | @@ -62,29 +64,17 @@ No minting or inflation schedule set | year 40 | 6,754,108,785.18 | 0.00% | 568 | | | year 41 | 6,754,109,353.24 | 0.00% | 379 | | | year 42 | 6,754,109,731.96 | 0.00% | 252 | | -## Airdrop [Link](https://github.com/terpnetwork/airdrop) + +## [Airdrop](https://github.com/terpnetwork/airdrop) **Calculations:** piecewise linear function: -``` +```math Reward(R)= func(p, a, b, min, max) =a ; if p < min =b ; if p > max =a + ((b-a) * (p-min)/(max-min)) ; otherwise ``` - -## Vesting - -**General Wallets:** - - - 6 months linear vesting -**Foundation Ownership (24% of Terp Supply) :** - - - 10% unlocked initially - - 5% unlocked 12 months following first unlock event - - 5% unlocked every 12 months, until 50 % of Foundation Tokens have been fully vested - - 25% unlocked after 72 months from 50% of inital Foundation DAO tokens - diff --git a/docs/genesis/genesis-distribution-patch.md b/docs/genesis/genesis-distribution-patch.md new file mode 100644 index 0000000..48c50f7 --- /dev/null +++ b/docs/genesis/genesis-distribution-patch.md @@ -0,0 +1,68 @@ +# Genesis Distribution Patch + +It has been determined that the genesis distribution proposed and deployed to morocco-1 was not accurately distributed. The intended distribution ratio was the following: + +- Cosmos Hub Holders: `6.11 % of 420 Million TERP` +- Bitcanna Holders: `1.911 % of 420 Million TERP` +- Terp Og participants: `53,508 TERP` +- Scavenger Hunt participants: `53,508 TERP` +- Terp Network Foundation: `16% of 420 Million TERP` + +> However, our analysis shows that ultimately the inital distribution fot Cosmos Hub & Bitcanna holders resulted in more closer to `7.04%` of the total supply. + +There are now scripts located in this repository that can calucate and verify the accurate distribution rate for our genesis. +This will lets anyone determe the additional allocations needed to respect the original communication during geneis. + +Some wallet addresses were even allocated more than 'what they should have recieved', with a maximum excess for a wallet being 3.2K tokens more than communicated. We will NOT propose to clawback these tokens, but rather compensate by burning the total excess from the foundation DAOs allocations. + +## Step 1: Patch Genesis Distribution Allocation + +The following script runs the entire workflow to generate an accurate representation of the genesis distribution for Terp Network. + +```sh +node main.js -1 +``` + +We have also separated each step to manually run for debugging purposes + +### A. Prepare Accurate Allocations + +```sh +node main.js -2 +``` + +Will take the snapshot distributions `gaia.csv` & `bcna_delegators.csv`, which were used to calculate the inital genesis distribution for Terp Network, and create a overview of points & token allocation for these projects, printing the results into `scripts-data/final-output.csv`. + +**This is our basis for determining what is an accurate distribution.** + +A `points-distribution.csv` file will be generated during this function, which displays the points allocated for each projects percentile range. Also, a `total-points.csv` file is generated that gives us a count of the total points, tokens per point based on desired % of supply, and the total amount of tokens actually to be distributed. + +#### Interchain Supporter Multiplier + +Included in this calculation are points allocated to those address that are found in overlaps between eligible projects. These also have a piecewise linear function, however unlike the individual projects tokens-per-points (which are static throughout the percentile ranges), these percentile ranges have dynamic token per point allocations. + +### B. Analyze genesis file & `morocco-1` export + +We can obtain an export of the data from a full node of Terp Network via `terpd export`. This will let us then compare the discrepencies from what acutally was distributed, to what should be distributed. Run the following: + +```sh +node main.js -3 +``` + +This will take the exported state, and sort the accounts by whether or not they have submitted atleast 1 transaction on-chain, `accounts-active.json` & `accounts-inactive.json`. This can let us create additional rewards for active network participants since the time of genesis, and also calculate the differences between the original amount allocated on block height 1 of Terp Network, with our new more accurate calculation. + +### C. Confirm Difference Between Expected And Acutal Allocation + +```sh +node main.js -4 +``` + +Calcualtes accurate allocations, flagging discrepancies between expected and original values for logging these descrepancies. + +### D. Summarize Results + +Creates the summary files highlighting changes between updated,accurate distribution and previous inaccurate distribution. + +```sh +node main.js -5 +``` diff --git a/docs/genesis-file.md b/docs/genesis/genesis-file.md similarity index 54% rename from docs/genesis-file.md rename to docs/genesis/genesis-file.md index 69fac71..2e37a25 100644 --- a/docs/genesis-file.md +++ b/docs/genesis/genesis-file.md @@ -14,18 +14,18 @@ The genesis_time is defined at the top of the genesis file. It is a UTC time The chain_id is a unique identifier for your chain. It helps differentiate between different chains using the same version of the software. - ## **Consensus Parameters** Next, the genesis file defines consensus parameters. Consensus parameters regroup all the parameters that are related to the consensus layer, which is Tendermint in the case of Chronic Chain. Let us look at these parameters: - - block - - max_bytes: Maximum number of bytes per block. - - max_gas: Gas limit per block. Each transaction included in the block will consume some gas. The total gas used by transactions included in a block cannot exceed this limit. - - evidence - - max_age: An evidence is a proof that a validator signed two different blocks at the same height (and round). This is an explicitly malicious behaviour that is punished at the state-machine level. The max_age defines the maximum number of  - - validator - - pub_key_types: The types of pubkey (ed25519, secp256k1, ...) that are accepted for validators. Currently only ed25519 is accepted. +- block + - max_bytes: Maximum number of bytes per block. + - max_gas: Gas limit per block. Each transaction included in the block will consume some gas. The total gas used by transactions included in a block cannot exceed this limit. +- evidence + - max_age: An evidence is a proof that a validator signed two different blocks at the same height (and round). This is an explicitly malicious behaviour that is punished at the state-machine level. The max_age defines the maximum number of +- validator + - pub_key_types: The types of pubkey (ed25519, secp256k1, ...) that are accepted for validators. Currently only ed25519 is accepted. + ## **Application State** The application state defines the initial state of the state-machine. @@ -34,19 +34,20 @@ The application state defines the initial state of the state-machine. In this section, initial allocation of tokens is defined. It is possible to add accounts manually by directly editing the genesis file, but it is also possible to use the following command: -``` +```sh terpd add-genesis-account ``` This command creates an item in the accounts list, under the app_state section. - - `sequence_number`: This number is used to count the number of transactions sent by this account. It is incremented each time a transaction is included in a block, and used to prevent replay attacks. Initial value is 0. - - `account_number`: Unique identifier for the account. It is generated the first time a transaction including this account is included in a block. - - `original_vesting`: Vesting is natively supported by terpd. You can define an amount of token owned by the account that needs to be vested for a period of time before they can be transferred. Vested tokens can be delegated. Default value is null. - - `delegated_free`: Amount of delegated tokens that can be transferred after they've been vested. Most of the time, will be null in genesis. - - `delegated_vesting`: Amount of delegated tokens that are still vesting. Most of the time, will be null in genesis. - - `start_time`: Block at which the vesting period starts. 0 most of the time in genesis. - - `end_time`: Block at which the vesting period ends. 0 if no vesting for this account. +- `sequence_number`: This number is used to count the number of transactions sent by this account. It is incremented each time a transaction is included in a block, and used to prevent replay attacks. Initial value is 0. +- `account_number`: Unique identifier for the account. It is generated the first time a transaction including this account is included in a block. +- `original_vesting`: Vesting is natively supported by terpd. You can define an amount of token owned by the account that needs to be vested for a period of time before they can be transferred. Vested tokens can be delegated. Default value is null. +- `delegated_free`: Amount of delegated tokens that can be transferred after they've been vested. Most of the time, will be null in genesis. +- `delegated_vesting`: Amount of delegated tokens that are still vesting. Most of the time, will be null in genesis. +- `start_time`: Block at which the vesting period starts. 0 most of the time in genesis. +- `end_time`: Block at which the vesting period ends. 0 if no vesting for this account. + ### **Bank** The bank module handles tokens. The only parameter that needs to be defined in this section is whether transfers are enabled at genesis or not. @@ -60,100 +61,107 @@ Let us break down the parameters: -`pool` - `not_bonded_tokens:` Defines the amount of tokens not bonded (i.e. delegated) in genesis. Generally, it equals the total supply of the staking token (uatom in this example). - `bonded_tokens:` Amount of bonded tokens in genesis. Generally 0. - - `params` - - `unbonding_time:` Time in  - - `max_validators:` Maximum number of active validators. - - `max_entries:` Maximum unbonding delegations and redelegations between a particular pair of delegator / validator. - - `bond_denom:` Denomination of the staking token. - - `last_total_power:` Total amount of voting power. Generally 0 in genesis (except if genesis was generated using a previous state). - - `last_validator_powers:` Power of each validator in last known state. Generally null in genesis (except if genesis was generated using a previous state). - - `validators:` List of last known validators. Generally null in genesis (except if genesis was generated using a previous state). - - `bonds:` List of last known delegation. Generally null in genesis (except if genesis was generated using a previous state). - - `unbonding_delegations:` List of last known unbonding delegations. Generally null in genesis (except if genesis was generated using a previous state). - - `redelegations:` List of last known redelegations. Generally null in genesis (except if genesis was generated using a previous state). - - `exported:` Wether this genesis was generated using the export of a previous state. + +- `params` + - `unbonding_time:` Time in + - `max_validators:` Maximum number of active validators. + - `max_entries:` Maximum unbonding delegations and redelegations between a particular pair of delegator / validator. + - `bond_denom:` Denomination of the staking token. +- `last_total_power:` Total amount of voting power. Generally 0 in genesis (except if genesis was generated using a previous state). +- `last_validator_powers:` Power of each validator in last known state. Generally null in genesis (except if genesis was generated using a previous state). +- `validators:` List of last known validators. Generally null in genesis (except if genesis was generated using a previous state). +- `bonds:` List of last known delegation. Generally null in genesis (except if genesis was generated using a previous state). +- `unbonding_delegations:` List of last known unbonding delegations. Generally null in genesis (except if genesis was generated using a previous state). +- `redelegations:` List of last known redelegations. Generally null in genesis (except if genesis was generated using a previous state). +- `exported:` Wether this genesis was generated using the export of a previous state. + ### **Mint** The mint module governs the logic of inflating the supply of token. The mint section in the genesis file looks like the follwing: Let us break down the parameters: - - `minter` - - `inflation:` Initial yearly percentage of increase in the total supply of staking token, compounded weekly. A 0.070000000000000000 value means the target is 7% yearly inflation, compounded weekly. - - `annual_provisions:` Calculated each block. Initialize at 0.000000000000000000. - - params - - `mint_denom:` Denom of the staking token that is inflated. - - `inflation_rate_change:` Max yearly change in inflation. - - `inflation_max:` Maximum level of inflation. - - `inflation_min:` Minimum level of inflation. - - `goal_bonded:` Percentage of the total supply that is targeted to be bonded. If the percentage of bonded staking tokens is below this target, the inflation increases (following inflation_rate_change) until it reaches inflation_max. If the percentage of bonded staking tokens is above this target, the inflation decreases (following inflation_rate_change) until it reaches inflation_min. - - `blocks_per_year:` Estimation of the amount of blocks per year. Used to compute the block reward coming from inflated staking token (called block provisions). +- `minter` + - `inflation:` Initial yearly percentage of increase in the total supply of staking token, compounded weekly. A 0.070000000000000000 value means the target is 7% yearly inflation, compounded weekly. + - `annual_provisions:` Calculated each block. Initialize at 0.000000000000000000. +- params + - `mint_denom:` Denom of the staking token that is inflated. + - `inflation_rate_change:` Max yearly change in inflation. + - `inflation_max:` Maximum level of inflation. + - `inflation_min:` Minimum level of inflation. + - `goal_bonded:` Percentage of the total supply that is targeted to be bonded. If the percentage of bonded staking tokens is below this target, the inflation increases (following inflation_rate_change) until it reaches inflation_max. If the percentage of bonded staking tokens is above this target, the inflation decreases (following inflation_rate_change) until it reaches inflation_min. + - `blocks_per_year:` Estimation of the amount of blocks per year. Used to compute the block reward coming from inflated staking token (called block provisions). + ### **Distribution** The distribution module handles the logic of distribution block provisions and fees to validators and delegators. The distribution section in the genesis file looks like the follwing: Let us break down the parameters: - - `fee_pool` - - `community_pool:` The community pool is a pool of tokens that can be used to pay for bounties. It is allocated via governance proposals. Generally null in genesis. - - `community_tax:` The tax percentage on fees and block rewards that goes to the community pool. - - `base_proposer_reward:` Base bonus on transaction fees collected in a valid block that goes to the proposer of block. If value is 0.010000000000000000, 1% of the fees go to the proposer. - - `bonus_proposer_reward:` Max bonus on transaction fees collected in a valid block that goes to the proposer of block. The bonus depends on the number of precommits the proposer includes. If the proposer includes 2/3rd precommits weighted by voting power (minimum for the block to be valid), they get a bonus of base_proposer_reward. This bonus increases linearly up to bonus_proposer_reward if the proposer includes 100% of precommits. - - `withdraw_addr_enabled:` If true, delegators can set a different address to withdraw their rewards. Set to false if you want to disable transfers at genesis, as it can be used as a way to get around the restriction. - - `delegator_withdraw_infos:` List of delegators withdraw address. Generally null if genesis was not exported from previous state. - - `previous_proposer:` Proposer of the previous block. Set to "" if genesis was not exported from previous state. - - `outstanding_rewards:` Outstanding (un-withdrawn) rewards. Set to null if genesis was not exported from previous state. - - `validator_accumulated_commission:` Outstanding (un-withdrawn) commission of validators. Set to null if genesis was not exported from previous state. - - `validator_historical_rewards:` Set of information related to the historical rewards of validators and used by the distribution module for various computation. Set to null if genesis was not exported from previous state. - - `validators_current_rewards:` Set of information related to the current rewards of validators and used by the distribution module for various computation. Set to null if genesis was not exported from previous state. - - `delegator_starting_infos:` Tracks the previous validator period, the delegation's amount of staking token, and the creation height (to check later on if any slashes have occurred). Set to null if genesis was not exported from previous state. - - `validator_slash_events:` Set of information related to the past slashing of validators. Set to null if genesis was not exported from previous state. +- `fee_pool` + - `community_pool:` The community pool is a pool of tokens that can be used to pay for bounties. It is allocated via governance proposals. Generally null in genesis. +- `community_tax:` The tax percentage on fees and block rewards that goes to the community pool. +- `base_proposer_reward:` Base bonus on transaction fees collected in a valid block that goes to the proposer of block. If value is 0.010000000000000000, 1% of the fees go to the proposer. +- `bonus_proposer_reward:` Max bonus on transaction fees collected in a valid block that goes to the proposer of block. The bonus depends on the number of precommits the proposer includes. If the proposer includes 2/3rd precommits weighted by voting power (minimum for the block to be valid), they get a bonus of base_proposer_reward. This bonus increases linearly up to bonus_proposer_reward if the proposer includes 100% of precommits. +- `withdraw_addr_enabled:` If true, delegators can set a different address to withdraw their rewards. Set to false if you want to disable transfers at genesis, as it can be used as a way to get around the restriction. +- `delegator_withdraw_infos:` List of delegators withdraw address. Generally null if genesis was not exported from previous state. +- `previous_proposer:` Proposer of the previous block. Set to "" if genesis was not exported from previous state. +- `outstanding_rewards:` Outstanding (un-withdrawn) rewards. Set to null if genesis was not exported from previous state. +- `validator_accumulated_commission:` Outstanding (un-withdrawn) commission of validators. Set to null if genesis was not exported from previous state. +- `validator_historical_rewards:` Set of information related to the historical rewards of validators and used by the distribution module for various computation. Set to null if genesis was not exported from previous state. +- `validators_current_rewards:` Set of information related to the current rewards of validators and used by the distribution module for various computation. Set to null if genesis was not exported from previous state. +- `delegator_starting_infos:` Tracks the previous validator period, the delegation's amount of staking token, and the creation height (to check later on if any slashes have occurred). Set to null if genesis was not exported from previous state. +- `validator_slash_events:` Set of information related to the past slashing of validators. Set to null if genesis was not exported from previous state. + ### **Governance** The gov module handles all governance-related transactions. The initial state of the gov section looks like the following: Let us break down the parameters: - - `starting_proposal_id:` This parameter defines the ID of the first proposal. Each proposal is identified by a unique ID. - - `deposits:` List of deposits for each proposal ID. Set to null if genesis was not exported from previous state. - - `votes:` List of votes for each proposal ID. Set to null if genesis was not exported from previous state. - - `proposals:` List of proposals for each proposal ID: Set to null if genesis was not exported from previous state. - - `deposit_params` - - `min_deposit:` The minimum deposit required for the proposal to enter Voting Period. If multiple denoms are provided, the OR operator applies. - - `max_deposit_period:` The maximum period (in  - - voting_params - - `voting_period:` Length of the voting period in  - - tally_params - - `quorum:` Minimum percentage of bonded staking tokens that needs to vote for the result to be valid. - - `threshold:` Minimum percentage of votes that need to be YES for the result to be valid. - - `veto:` Maximum percentage NO_WITH_VETO votes for the result to be valid. - - `governance_penalty:` Penalty for validators that do not vote on a given proposal. +- `starting_proposal_id:` This parameter defines the ID of the first proposal. Each proposal is identified by a unique ID. +- `deposits:` List of deposits for each proposal ID. Set to null if genesis was not exported from previous state. +- `votes:` List of votes for each proposal ID. Set to null if genesis was not exported from previous state. +- `proposals:` List of proposals for each proposal ID: Set to null if genesis was not exported from previous state. +- `deposit_params` + - `min_deposit:` The minimum deposit required for the proposal to enter Voting Period. If multiple denoms are provided, the OR operator applies. + - `max_deposit_period:` The maximum period (in +- voting_params + - `voting_period:` Length of the voting period in +- tally_params + - `quorum:` Minimum percentage of bonded staking tokens that needs to vote for the result to be valid. + - `threshold:` Minimum percentage of votes that need to be YES for the result to be valid. + - `veto:` Maximum percentage NO_WITH_VETO votes for the result to be valid. + - `governance_penalty:` Penalty for validators that do not vote on a given proposal. + ### **Slashing** The slashing module handles the logic to slash delegators if their validator misbehave. The slashing section in genesis looks as follows: Let us break down the parameters: - - params - - `max_evidence_age:` Maximum age of the evidence in  - - `signed_blocks_window:` Moving window of blocks to figure out offline validators. - - `min_signed_per_window:` Minimum percentage of precommitsthat must be present in the block window for the validator to be considered online. - - `downtime_jail_duration:` Duration in  - - `slash_fraction_double_sign:` Percentage of delegators bonded stake slashed when their validator double signs. - - `slash_fraction_downtime:` Percentage of delegators bonded stake slashed when their validator is down. - - `signing_infos:` Various infos per validator needed by the slashing module. Set to {} if genesis was not exported from previous state. - - `missed_blocks:` Various infos related to missed blocks needed by the slashing module. Set to {} if genesis was not exported from previous state. +- params + - `max_evidence_age:` Maximum age of the evidence in + - `signed_blocks_window:` Moving window of blocks to figure out offline validators. + - `min_signed_per_window:` Minimum percentage of precommitsthat must be present in the block window for the validator to be considered online. + - `downtime_jail_duration:` Duration in + - `slash_fraction_double_sign:` Percentage of delegators bonded stake slashed when their validator double signs. + - `slash_fraction_downtime:` Percentage of delegators bonded stake slashed when their validator is down. +- `signing_infos:` Various infos per validator needed by the slashing module. Set to {} if genesis was not exported from previous state. +- `missed_blocks:` Various infos related to missed blocks needed by the slashing module. Set to {} if genesis was not exported from previous state. + ### **Genesis Transactions** -By default, the genesis file do not contain any gentxs. A gentx is a transaction that bonds staking token present in the genesis file under accounts to a validator, essentially creating a validator at genesis. The chain will start as soon as more than 2/3rds of the validators (weighted by voting power) that are the recipient of a valid gentx come online after genesis_time. +By default, the genesis file do not contain any gentxs. A gentx is a transaction that bonds staking token present in the genesis file under accounts to a validator, essentially creating a validator at genesis. The chain will start as soon as more than 2/3rds of the validators (weighted by voting power) that are the recp of a valid gentx come online after genesis_time. A gentx can be added manually to the genesis file, or via the following command: Copy `terpd collect-gentxs` -This command will add all the gentxs stored in \~/.terp/config/gentx to the genesis file. In order to create a genesis transaction, click [here](https://hub.cosmos.network/main/validators/validator-setup.html#participate-in-genesis-as-a-validator). +This command will add all the gentxs stored in \~/.terp/config/gentx to the genesis file. Learn how to [create a genesis transaction](https://hub.cosmos.network/main/validators/validator-setup.html#participate-in-genesis-as-a-validator). ## Current Proposed Genesis Parameters Configuration + ```json { "genesis_time": "2022-07-10T00:00:00.0000000Z", @@ -397,15 +405,17 @@ This command will add all the gentxs stored in \~/.terp/config/gentx to the } } ``` + ### Genesis File Creation Process + The steps to recreate the genesis file is as follows: + - Export [Cosmos Hub](https://github.com/cosmos/testnets/blob/master/public/UPGRADES.md) -- Export [BCNA]() +- Export BCNA snapshot - Extract addresses of both exports via [the drop tooling](https://github.com/da0-da0/drop) -- Extract holders of Scavenger Hunt +- Extract holders of Scavenger Hunt - Extract holders of Terp OG Challenges - Add Treasury Depositor - Calculate [points](../points/README.md) for each genesis address - Add genesis accounts to genesis.json - Add all validator gentxs - diff --git a/docs/genesis/og-and-scavenger-hunt.md b/docs/genesis/og-and-scavenger-hunt.md new file mode 100644 index 0000000..2e7cd9e --- /dev/null +++ b/docs/genesis/og-and-scavenger-hunt.md @@ -0,0 +1,53 @@ +--- +title: "Introduction" +sidebar_position: 1 +--- +As a truly decentralized community, Terp needs your support to materialize our vision of empowering the architects and foundation of our culture with greater access, freedom, and efficiency to create products that improve the human experience. + +In these early days, we want you to join and help us establish the foundation for a valuable and engaged community. In this effort, we're excited to announce the TerpNET Founding Member Rewards Program! + +## Overview + +109555.630000 TERP & 109555.630000 PERSY tokens were allocated to a reward program for early contributors in our community. This reward program is inspired by projects from the community, such as Solana [Tour de Sol](https://solana.com/tds), Cosmos [Game of Stakes](https://github.com/cosmos/game-of-stakes), Kava [Founder Rewards](https://github.com/Kava-Labs/kava/blob/master/docs/REWARDS.md), And Akash [Founding Member Program](https://akash.network/). + +> There is two genesis rewards programs to share: +> +> 1) Terp Founding OG Member Onboarding Process +> 2) Terp Incentivized Staking TestNET Program (Scavenger Hunt) + +### Terp Founding OG Member Rewards Program + +Our Founding Member Rewards Program focuses on TerpNET TestNET scavenger hunt participation. The program is limited to only 100 members and involves 3 challenges. Each challenge has a corresponding reward, for a total of **109555.630000 TERPs & 109555.630000 PERSY**: + +#### Challenge 1: Create Proposal From Template + +Participants were instructed to perform the expected govenrance workflow for Terp Network, from creating a post in the discord opening up discussion to using the cli to broadcast the proposal to the test network. + +#### Challenge 2: Deploy & interact with your own DAO + +The goal of this challenge is to create and interact with a DAO on the DAO-DAO testnet by deploying it, creating three proposals and a subDAO, then submitting a governance proposal to qualify for rewards. + +#### Challenge 3: Deploy & interact with your own DAO + +The goal of this final challenge is to become a member of the TerpNET OG DAO by staking tokens on the DAO platform, completing the onboarding process for founding members. Participants who complete this step will earn ! TERP & ! PERSY tokens and secure the Terp OG Founder Level 3 badge, with rewards distributed via batch transaction to eligible users. + +### Terp Scavenger Hunt Challenge + +### Challenge 1: Infrastructure Testing + +The goal of this first challenge was to set up a Terp Network validator, collect your node’s P2P and team information in a specified JSON format, and submit it via a GitHub pull request to the scavenger hunt repository. The first 100 participants whose submissions meet the criteria will earn ! TERP & PERSY tokens as a reward. + +### Challenge 2: Reflection + +The goal of this challenge was to document and submit your contributions to the Terp Network testnet phase by creating a JSON file with your social and infrastructure activities, then forking the repository and opening a pull request to add it. + +### Challenge 3: Join the Scavenger Hunt DAO + +The goal of this third challenge was to complete the scavenger hunt by joining the Scavenger Hunt DAO on the Terp Network testnet. Participants who completed prior challenges will receive tokens via batch transaction, which they must stake to become official members and qualify for final rewards. + +## Qualification Criteria + +Although we do not limit anyone from participating, to claim TERP rewards: + +- You must not be a resident of any of the[OFAC sanctioned](https://home.treasury.gov/policy-issues/office-of-foreign-assets-control-sanctions-programs-and-information) countries. +- You must pass KYC/AML verification when collecting the reward. The details for which will be posted at a later time. diff --git a/docs/tos.md b/docs/genesis/tos.md similarity index 64% rename from docs/tos.md rename to docs/genesis/tos.md index 6b22884..3a98e90 100644 --- a/docs/tos.md +++ b/docs/genesis/tos.md @@ -1,10 +1,10 @@ -#Terms of Service +# Terms of Service --- **1. Introduction** -Terp Network is a decentralized peer-to-peer Layer 1 blockchain network maintained by decentralized team of developers on the Cosmos blockchain ("Terp Network", "we", "us", or "our"). Discover Decentralization LLC, and the TerpNET Foundation DAO developed the initial code for Terp Network, however it does not own or control the Terp Network protocol, which is run by a decentralized validator set. These Terms of Service (“Terms”) govern your access to and use of the Terp Networks website(s) and our APIs (the “Website”), and any other software, tools, features, or functionalities provided on or in connection with our services; including without limitation using our services to view, explore, interact, and use our tools, at your own discretion, to connect directly with others to upload, instantiate, and interact with logic on public blockchains (collectively, the "service")."NFTs, NFCs, or tokens",or "tokens", or "NFCs" means a non-fungible token or similar digital item implemented on a blockchain (such as the Cosmos blockchain),which uses smart contracts to link to or otherwise be associated with certain content or data. +Terp Network is a decentralized peer-to-peer Layer 1 blockchain network maintained by decentralized team of developers on the Cosmos blockchain ("Terp Network", "we", "us", or "our"). Discover Decentralization LLC, and the TerpNET Foundation DAO developed the initial code for Terp Network, however it does not own or control the Terp Network protocol, which is run by a decentralized validator set. These Terms of Service (“Terms”) govern your access to and use of the Terp Networks website(s) and our APIs (the “Website”), and any other software, tools, features, or functionalities provided on or in connection with our services; including without limitation using our services to view, explore, interact, and use our tools, at your own discretion, to connect directly with others to upload, instantiate, and interact with logic on public blockchains (collectively, the "service")."NFTs, NFCs, or tokens",or "tokens", or "NFCs" means a non-fungible token or similar digital item implemented on a blockchain (such as the Cosmos blockchain),which uses smart contracts to link to or otherwise be associated with certain content or data. For purposes of these Terms, “user”, “you”, and “your” means you as the user of the Service. If you use the Service on behalf of a company or other entity then “you” includes you and that entity, and you represent and warrant that (a) you are an authorized representative of the entity with the authority to bind the entity to these Terms, and (b) you agree to these Terms on the entity’s behalf. @@ -24,9 +24,9 @@ Terp Network reserves the right to change or modify these Terms at any time and Your blockchain address functions as your identity on Terp Network. Accordingly, you will need a blockchain address and a third-party wallet to access the Service. Your account on the service (“Account”) will be associated with your blockchain address. Your Account on Terp Network will be associated with your linked blockchain address and display the tokens for that blockchain address (and, if applicable, any content associated with such tokens or NFTs, NFCs, or tokens). By using your wallet in connection with the Service, you agree that you are using that wallet under the terms and conditions of the applicable provider of the wallet. Wallets are not operated by, maintained by, or affiliated with Terp Network, and Terp Network does not have custody or control over the contents of your wallet and has no ability to retrieve or transfer its contents. -Terp Network accepts no responsibility for, or liability to you, in connection with your use of a wallet and makes no representations or warranties regarding how the Service will operate with any specific wallet. You are solely responsible for keeping your wallet secure and you should never share your wallet credentials or seed phrase with anyone. If you discover an issue related to your wallet, please contact your wallet provider. Likewise, you are solely responsible for your Account and any associated wallet, and we are not liable for any acts or omissions by you in connection with your Account or as a result of your Account or wallet being compromised. You agree to immediately notify us if you discover or otherwise suspect any security issues related to the Service or your Account to +Terp Network accepts no responsibility for, or liability to you, in connection with your use of a wallet and makes no representations or warranties regarding how the Service will operate with any specific wallet. You are solely responsible for keeping your wallet secure and you should never share your wallet credentials or seed phrase with anyone. If you discover an issue related to your wallet, please contact your wallet provider. Likewise, you are solely responsible for your Account and any associated wallet, and we are not liable for any acts or omissions by you in connection with your Account or as a result of your Account or wallet being compromised. You agree to immediately notify us if you discover or otherwise suspect any security issues related to the Service or your Account to -terpnetwork@protonmail.com. +. You also represent and warrant that you will comply with all applicable laws (e.g., local, state, federal and other laws) when using the Service. Without limiting the foregoing, by using the Service, you represent and warrant that: (a) you are not located in a country that is subject to a U.S. Government embargo; and (b) you have not been identified as a Specially Designated National or placed on any U.S. Government list of prohibited, sanctioned, or restricted parties. If you access or use the Service outside the United States, you are solely responsible for ensuring that your access and use of the Service in such country, territory or jurisdiction does not violate any applicable laws. @@ -60,36 +60,36 @@ To protect the Terp Network community and comply with our legal obligations, we You agree that you will not violate any law, contract, intellectual property, or other third-party right, and that you are solely responsible for your conduct and content, while accessing or using the Service. You also agree that you will not: - - Use or attempt to use another user’s Account without authorization from such user; - - Pose as another person or entity; - - Claim a Terp Network username for the purpose of reselling it or otherwise engage in name squatting; - - Access the Service from a different blockchain address if we’ve blocked any of your other blockchain addresses from accessing the Service, unless you have our written permission first; - - Distribute spam, including through sending unwanted NFTs, NFCs, or tokens to other users; - - Use the Service – including through disseminating any software or interacting with any API – that could damage, disable, overburden, or impair the functioning of the Service in any manner; - - Bypass or ignore instructions that control access to the Service, including attempting to circumvent any rate limiting systems by using multiple API keys, directing traffic through multiple IP addresses, or otherwise obfuscating the source of traffic you send to Terp Network; - - Use any data mining, robot, spider, crawler, scraper, script, browser extension, offline reader, or other automated means or interface not authorized by us to access the Service, extract data, or otherwise interfere with or modify the rendering of Service pages or functionality; - - Reverse engineer, duplicate, decompile, disassemble, or decode any aspect of the Service, or do anything that might discover source code or bypass or circumvent measures employed to prevent or limit access to any service, area, or code of the Service; - - Sell or resell the Service or attempt to circumvent any Terp Network fee systems; - - Engage in behaviors that have the intention or the effect of artificially causing an item or collection to appear at the top of search results, or artificially increasing view counts, favorites, or other metrics that Terp Network might use to sort search results; - - Use the Service or data collected from our Service for any advertising or direct marketing activity (including without limitation, email marketing, SMS marketing, and telemarketing); - - Use the Service for money laundering, terrorist financing, or other illicit finance; - - Use the Service from a country sanctioned by the government of the United States or to facilitate transactions involving individuals sanctioned by the government of the United States or located in sanctioned countries; - - Use the Service to carry out any financial activities subject to registration or licensing, including but not limited to creating, selling, or buying securities, commodities, options, or debt instruments; - - Use the Service to create, sell, or buy NFTs, NFCs, or tokens or other items that give owners rights to participate in an ICO or any securities offering, or that are redeemable for securities, commodities, or other financial instruments; - - Use the Service to engage in price manipulation, fraud, or other deceptive, misleading, or manipulative activity; - - Use the Service to buy, sell, or transfer stolen items, fraudulently obtained items, items taken without authorization, and/or any other illegally obtained items; - - Infringe or violate the intellectual property rights or any other rights of others; - - Create or display illegal or harmful content, such as content that may involve child sexual exploitation; - - Create or display NFTs, NFCs, or tokens or other items that promote suicide or self-harm, incites hate or violence against others, or doxes another individual; - - Use the Service for any illegal or unauthorized purpose, including creating or displaying illegal content, such as content that may involve child sexual exploitation, or encouraging or promoting any activity that violates the Terms of Service; - - Use the Service in any manner that could interfere with, disrupt, negatively affect or inhibit other users from fully enjoying the Service. - - We allow users to post NSFW content, but that content and other associated material is subject to being marked NSFW and may be handled differently than non-NSFW content in navigation menus and search results. - - Finally, by using the Service, you understand the importance of DYOR – doing your own research. You bear full responsibility for verifying the authenticity, legitimacy, identity, and other details about any NFT, collection, or account that you view or otherwise interact with in conjunction with our Service. We make no guarantees or promises about the identity, legitimacy, or authenticity of any NFT, collection, or account on the Service. +- Use or attempt to use another user’s Account without authorization from such user; +- Pose as another person or entity; +- Claim a Terp Network username for the purpose of reselling it or otherwise engage in name squatting; +- Access the Service from a different blockchain address if we’ve blocked any of your other blockchain addresses from accessing the Service, unless you have our written permission first; +- Distribute spam, including through sending unwanted NFTs, NFCs, or tokens to other users; +- Use the Service – including through disseminating any software or interacting with any API – that could damage, disable, overburden, or impair the functioning of the Service in any manner; +- Bypass or ignore instructions that control access to the Service, including attempting to circumvent any rate limiting systems by using multiple API keys, directing traffic through multiple IP addresses, or otherwise obfuscating the source of traffic you send to Terp Network; +- Use any data mining, robot, spider, crawler, scraper, script, browser extension, offline reader, or other automated means or interface not authorized by us to access the Service, extract data, or otherwise interfere with or modify the rendering of Service pages or functionality; +- Reverse engineer, duplicate, decompile, disassemble, or decode any aspect of the Service, or do anything that might discover source code or bypass or circumvent measures employed to prevent or limit access to any service, area, or code of the Service; +- Sell or resell the Service or attempt to circumvent any Terp Network fee systems; +- Engage in behaviors that have the intention or the effect of artificially causing an item or collection to appear at the top of search results, or artificially increasing view counts, favorites, or other metrics that Terp Network might use to sort search results; +- Use the Service or data collected from our Service for any advertising or direct marketing activity (including without limitation, email marketing, SMS marketing, and telemarketing); +- Use the Service for money laundering, terrorist financing, or other illicit finance; +- Use the Service from a country sanctioned by the government of the United States or to facilitate transactions involving individuals sanctioned by the government of the United States or located in sanctioned countries; +- Use the Service to carry out any financial activities subject to registration or licensing, including but not limited to creating, selling, or buying securities, commodities, options, or debt instruments; +- Use the Service to create, sell, or buy NFTs, NFCs, or tokens or other items that give owners rights to participate in an ICO or any securities offering, or that are redeemable for securities, commodities, or other financial instruments; +- Use the Service to engage in price manipulation, fraud, or other deceptive, misleading, or manipulative activity; +- Use the Service to buy, sell, or transfer stolen items, fraudulently obtained items, items taken without authorization, and/or any other illegally obtained items; +- Infringe or violate the intellectual property rights or any other rights of others; +- Create or display illegal or harmful content, such as content that may involve child sexual exploitation; +- Create or display NFTs, NFCs, or tokens or other items that promote suicide or self-harm, incites hate or violence against others, or doxes another individual; +- Use the Service for any illegal or unauthorized purpose, including creating or displaying illegal content, such as content that may involve child sexual exploitation, or encouraging or promoting any activity that violates the Terms of Service; +- Use the Service in any manner that could interfere with, disrupt, negatively affect or inhibit other users from fully enjoying the Service. +- We allow users to post NSFW content, but that content and other associated material is subject to being marked NSFW and may be handled differently than non-NSFW content in navigation menus and search results. +- Finally, by using the Service, you understand the importance of DYOR – doing your own research. You bear full responsibility for verifying the authenticity, legitimacy, identity, and other details about any NFT, collection, or account that you view or otherwise interact with in conjunction with our Service. We make no guarantees or promises about the identity, legitimacy, or authenticity of any NFT, collection, or account on the Service. **7. Intellectual Property Rights** You are solely responsible for your use of the Service and for any information you provide, including compliance with applicable laws, rules, and regulations, as well as these Terms, including the User Conduct requirements outlined above. -All users of the Service acknowledge and agree that their work shall be licensed pursuant to the Creative Commons (CC BY 4.0) international public license allowing initial purchasers and secondary-market purchasers of NFT’s through the Service the right to distribute, remix, adapt, and build upon the material in any medium or format, so long as attribution is given to the creator. The license allows for commercial use and can be found here: https://creativecommons.org/licenses/by/4.0/legalcode. +All users of the Service acknowledge and agree that their work shall be licensed pursuant to the Creative Commons (CC BY 4.0) international public license allowing initial purchasers and secondary-market purchasers of NFT’s through the Service the right to distribute, remix, adapt, and build upon the material in any medium or format, so long as attribution is given to the creator. The license allows for commercial use and can be found here: . By using the Service in conjunction with creating, submitting, posting, promoting, or displaying content, or by complying with Terp Network’s metadata standards in your metadata API responses, you grant us a worldwide, non-exclusive, sublicensable, royalty-free license to use, copy, modify, and display any content, including but not limited to text, materials, images, files, communications, comments, feedback, suggestions, ideas, concepts, questions, data, or otherwise, that you submit or post on or through the Service for our current and future business purposes, including to provide, promote, and improve the Service. This includes any digital file, art, or other material linked to or associated with any NFTs, NFCs, or tokens that are displayed on the Service. @@ -97,18 +97,18 @@ Terp Network does not claim that submitting, posting, or displaying this content You represent and warrant that you have, or have obtained, all rights, licenses, consents, permissions, power and/or authority necessary to grant the rights granted herein for any content that you create, submit, post, promote, or display on or through the Service. You represent and warrant that such content does not contain material subject to copyright, trademark, publicity rights, or other intellectual property rights, unless you have necessary permission or are otherwise legally entitled to post the material and to grant Terp Network Parties the license described above, and that the content does not violate any laws. -Terp Network will take down works in response to Digital Millennium Copyright Act (“DMCA”) takedown notices and/or other intellectual property infringement claims and will terminate a user's access to the Service if the user is determined to be a repeat infringer. If you believe that your content has been copied in a way that constitutes copyright or trademark infringement, or violates your publicity or other intellectual property rights, please submit written notice to terpnetwork@protonmail.com. +Terp Network will take down works in response to Digital Millennium Copyright Act (“DMCA”) takedown notices and/or other intellectual property infringement claims and will terminate a user's access to the Service if the user is determined to be a repeat infringer. If you believe that your content has been copied in a way that constitutes copyright or trademark infringement, or violates your publicity or other intellectual property rights, please submit written notice to . For us to process your infringement claim regarding content on the Service, you must be the rightsholder or someone authorized to act on behalf of the rightsholder. Your notice must include: - - Identification of the copyrighted work(s), trademark, publicity rights, or other intellectual property rights that you claim is being infringed; - - Identification of the allegedly infringing material that is requested to be removed, including a description of the specific location (i.e., URLs) on the Service of the material claimed to be infringing, so that we may locate the material; - - Your contact information – at a minimum, your full legal name (not pseudonym) and email address; - - A declaration that contains all of the following: - - A statement that you have a good faith belief that use of the material in the manner complained of is not authorized by the intellectual property rights owner, its agent, or the law; - - A statement that the information in the notice is accurate; and - - A statement under penalty of perjury that you are authorized to act on behalf of the intellectual property owner of the intellectual property that is allegedly being infringed. - - Your physical or electronic signature (of your full legal name). +- Identification of the copyrighted work(s), trademark, publicity rights, or other intellectual property rights that you claim is being infringed; +- Identification of the allegedly infringing material that is requested to be removed, including a description of the specific location (i.e., URLs) on the Service of the material claimed to be infringing, so that we may locate the material; +- Your contact information – at a minimum, your full legal name (not pseudonym) and email address; +- A declaration that contains all of the following: + - A statement that you have a good faith belief that use of the material in the manner complained of is not authorized by the intellectual property rights owner, its agent, or the law; + - A statement that the information in the notice is accurate; and + - A statement under penalty of perjury that you are authorized to act on behalf of the intellectual property owner of the intellectual property that is allegedly being infringed. +- Your physical or electronic signature (of your full legal name). Please note that we will forward your notice of intellectual property infringement, including your contact information, to the party who will have their content removed so they understand why it is no longer available on Terp Network and can also contact you to resolve any dispute. This is about a service that you might use where you can make and share things like pictures, videos, and other stuff. It says that you are responsible for following the rules and laws when you use it, and that anything you make and share can be used by other people, as long as they give credit to you. @@ -141,16 +141,16 @@ Some jurisdictions do not allow the exclusion of implied warranties in contracts You accept and acknowledge: - - The value of an NFTs, NFCs, or tokens is subjective. Prices of NFTs, NFCs, or tokens are subject to volatility and fluctuations in the price of cryptocurrency can also materially and adversely affect NFT prices. You acknowledge that you fully understand this subjectivity and volatility and that you may lose money. - - A lack of use or public interest in the creation and development of distributed ecosystems could negatively impact the development of those ecosystems and related applications and could therefore also negatively impact the potential utility of NFTs, NFCs, or tokens. - - The regulatory regime governing blockchain technologies, non-fungible tokens, cryptocurrency, and other crypto-based items is uncertain, and new regulations or policies may materially adversely affect the development of the Service and the utility of NFTs, NFCs, or tokens. - - You are solely responsible for determining what, if any, taxes apply to your transactions. Terp Network is not responsible for determining the taxes that apply to your NFTs, NFCs, or tokens. - - There are risks associated with purchasing items associated with content created by third parties through peer-to-peer transactions, including but not limited to, the risk of purchasing counterfeit items, mislabeled items, items that are vulnerable to metadata decay, items on smart contracts with bugs, and items that may become untransferable. You represent and warrant that you have done sufficient research before making any decisions to sell, obtain, transfer, or otherwise interact with any NFTs, NFCs, or tokens or accounts/collections. - - We do not control the public blockchains that you are interacting with, and we do not control certain smart contracts and protocols that may be integral to your ability to complete transactions on these public blockchains. Additionally, blockchain transactions are irreversible and Terp Network has no ability to reverse any transactions on the blockchain. - - There are risks associated with using Internet and blockchain based products, including, but not limited to, the risk associated with hardware, software, and Internet connections, the risk of malicious software introduction, and the risk that third parties may obtain unauthorized access to your third-party wallet or Account. You accept and acknowledge that Terp Network will not be responsible for any communication failures, disruptions, errors, distortions or delays you may experience when using the Service or any Blockchain network, however caused. - - The Service relies on third-party platforms and/or vendors. If we are unable to maintain a good relationship with such platform providers and/or vendors; if the terms and conditions or pricing of such platform providers and/or vendors change; if we violate or cannot comply with the terms and conditions of such platforms and/or vendors; or if any of such platforms and/or vendors loses market share or falls out of favor or is unavailable for a prolonged period of time, access to and use of the Service will suffer. - - Terp Network reserves the right to hide collections, contracts, and items affected by any of these issues or by other issues. Items you purchase may become inaccessible on Terp Network. Under no circumstances shall the inability to view items on Terp Network or an inability to use the Service in conjunction with the purchase, sale, or transfer of items available on any blockchains serve as grounds for a claim against Terp Network. - - If you have a dispute with one or more users, YOU RELEASE TERP NETWORK PARTIES FROM CLAIMS, DEMANDS, AND DAMAGES OF EVERY KIND AND NATURE, KNOWN AND UNKNOWN, ARISING OUT OF OR IN ANY WAY CONNECTED WITH SUCH DISPUTES. IN ENTERING INTO THIS RELEASE, YOU EXPRESSLY WAIVE ANY PROTECTIONS (WHETHER STATUTORY OR OTHERWISE) THAT WOULD OTHERWISE LIMIT THE COVERAGE OF THIS RELEASE TO INCLUDE THOSE CLAIMS WHICH YOU MAY KNOW OR SUSPECT TO EXIST IN YOUR FAVOR AT THE TIME OF AGREEING TO THIS RELEASE. +- The value of an NFTs, NFCs, or tokens is subjective. Prices of NFTs, NFCs, or tokens are subject to volatility and fluctuations in the price of cryptocurrency can also materially and adversely affect NFT prices. You acknowledge that you fully understand this subjectivity and volatility and that you may lose money. +- A lack of use or public interest in the creation and development of distributed ecosystems could negatively impact the development of those ecosystems and related applications and could therefore also negatively impact the potential utility of NFTs, NFCs, or tokens. +- The regulatory regime governing blockchain technologies, non-fungible tokens, cryptocurrency, and other crypto-based items is uncertain, and new regulations or policies may materially adversely affect the development of the Service and the utility of NFTs, NFCs, or tokens. +- You are solely responsible for determining what, if any, taxes apply to your transactions. Terp Network is not responsible for determining the taxes that apply to your NFTs, NFCs, or tokens. +- There are risks associated with purchasing items associated with content created by third parties through peer-to-peer transactions, including but not limited to, the risk of purchasing counterfeit items, mislabeled items, items that are vulnerable to metadata decay, items on smart contracts with bugs, and items that may become untransferable. You represent and warrant that you have done sufficient research before making any decisions to sell, obtain, transfer, or otherwise interact with any NFTs, NFCs, or tokens or accounts/collections. +- We do not control the public blockchains that you are interacting with, and we do not control certain smart contracts and protocols that may be integral to your ability to complete transactions on these public blockchains. Additionally, blockchain transactions are irreversible and Terp Network has no ability to reverse any transactions on the blockchain. +- There are risks associated with using Internet and blockchain based products, including, but not limited to, the risk associated with hardware, software, and Internet connections, the risk of malicious software introduction, and the risk that third parties may obtain unauthorized access to your third-party wallet or Account. You accept and acknowledge that Terp Network will not be responsible for any communication failures, disruptions, errors, distortions or delays you may experience when using the Service or any Blockchain network, however caused. +- The Service relies on third-party platforms and/or vendors. If we are unable to maintain a good relationship with such platform providers and/or vendors; if the terms and conditions or pricing of such platform providers and/or vendors change; if we violate or cannot comply with the terms and conditions of such platforms and/or vendors; or if any of such platforms and/or vendors loses market share or falls out of favor or is unavailable for a prolonged period of time, access to and use of the Service will suffer. +- Terp Network reserves the right to hide collections, contracts, and items affected by any of these issues or by other issues. Items you purchase may become inaccessible on Terp Network. Under no circumstances shall the inability to view items on Terp Network or an inability to use the Service in conjunction with the purchase, sale, or transfer of items available on any blockchains serve as grounds for a claim against Terp Network. +- If you have a dispute with one or more users, YOU RELEASE TERP NETWORK PARTIES FROM CLAIMS, DEMANDS, AND DAMAGES OF EVERY KIND AND NATURE, KNOWN AND UNKNOWN, ARISING OUT OF OR IN ANY WAY CONNECTED WITH SUCH DISPUTES. IN ENTERING INTO THIS RELEASE, YOU EXPRESSLY WAIVE ANY PROTECTIONS (WHETHER STATUTORY OR OTHERWISE) THAT WOULD OTHERWISE LIMIT THE COVERAGE OF THIS RELEASE TO INCLUDE THOSE CLAIMS WHICH YOU MAY KNOW OR SUSPECT TO EXIST IN YOUR FAVOR AT THE TIME OF AGREEING TO THIS RELEASE. 12\. Limitation of Liability TO THE FULLEST EXTENT PERMITTED BY LAW, YOU AGREE THAT IN NO EVENT WILL TERP NETWORK PARTIES OR ITS SERVICE PROVIDERS (I.E. HOSTING SERVICES) BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY LOST PROFIT OR ANY INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES ARISING FROM THESE TERMS OR THE SERVICE, PRODUCTS OR THIRD-PARTY SITES AND PRODUCTS, OR FOR ANY DAMAGES RELATED TO LOSS OF REVENUE, LOSS OF PROFITS, LOSS OF BUSINESS OR ANTICIPATED SAVINGS, LOSS OF USE, LOSS OF GOODWILL, OR LOSS OF DATA, AND WHETHER CAUSED BY STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE), BREACH OF CONTRACT, OR OTHERWISE, EVEN IF FORESEEABLE AND EVEN IF TERP NETWORK PARTIES OR ITS SERVICE PROVIDERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES; OR (B) FOR ANY OTHER CLAIM, DEMAND, OR DAMAGES WHATSOEVER RESULTING FROM OR ARISING OUT OF OR IN CONNECTION WITH THESE TERMS OF THE DELIVERY, USE, OR PERFORMANCE OF THE SERVICE. ACCESS TO, AND USE OF, THE SERVICE, PRODUCTS OR THIRD-PARTY SITES, AND PRODUCTS ARE AT YOUR OWN DISCRETION AND RISK, AND YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR MOBILE DEVICE OR LOSS OF DATA RESULTING THEREFROM. @@ -169,16 +169,16 @@ When you use the Terp Network interface, the only information we collect from yo 15\. Dispute Resolution; Arbitration - - Dispute Resolution. Please read the following arbitration agreement in this Section (“Arbitration Agreement”) carefully. It requires you to arbitrate disputes with Terp Network Parties and limits the way you can seek relief from us. This section does not govern disputes between users or between users and third parties. Terp Network does not provide dispute resolution services for such disagreements and the parties must resolve those disputes directly. - - Applicability of Arbitration Agreement. You agree that any dispute, controversy, or claim relating in any way to your access or use of the Service, to any products sold or distributed through the Service, or to any aspect of your relationship with Terp Network, will be resolved by binding arbitration, rather than in court, including threshold questions of the arbitrability of such dispute, controversy, or claim except that (1) you or Terp Network may assert claims in small claims court, but only if the claims qualify, the claims remain only in such court, and the claims remain on an individual, non-representative, and non-class basis; and (2) you or Terp Network Parties may seek injunctive or equitable relief in a court of proper jurisdiction if the claim relates to intellectual property infringement or other misuse of intellectual property rights. - - Dispute resolution process. You and Terp Network Parties both agree to engage in good-faith efforts to resolve disputes prior to either party initiating an arbitration, small claims court proceeding, or equitable relief for intellectual property infringement. You must initiate this dispute resolution process by sending a letter describing the nature of your claim and desired resolution to Terp Network (terpnetwork@protonmail.com). Both parties agree to meet and confer personally, by telephone, or by videoconference (hereinafter “Conference”) to discuss the dispute and attempt in good faith to reach a mutually beneficial outcome that avoids the expenses of arbitration or, where applicable, litigation. If you are represented by counsel, your counsel may participate in the Conference as well, but you agree to fully participate in the Conference. Likewise, if Terp Network is represented by counsel, its counsel may participate in the Conference as well, but Terp Network agrees to have a company representative fully participate in the Conference. The statute of limitations and any filing fee deadlines shall be tolled while the parties engage in the informal dispute resolution process and Conference required by this paragraph. If the parties do not reach agreement to resolve the dispute within thirty (30) days after initiation of this dispute resolution process, either party may commence arbitration, file an action in small claims court, or file a claim for injunctive or equitable relief in a court of proper jurisdiction for matters relating to intellectual property infringement, if the claims qualify. - - Arbitration Rules and Forum. The Federal Arbitration Act governs the interpretation and enforcement of this Arbitration Agreement. To begin an arbitration proceeding after participating in the dispute resolution process, you must send a message requesting arbitration and describing your claim to terpnetwork@protonmail.com. The arbitration will be conducted by JAMS, an established alternative dispute resolution provider. Disputes involving claims and counterclaims under $250,000, not inclusive of attorneys’ fees and interest, shall be subject to JAMS’s most current version of the Streamlined Arbitration Rules and the JAMS Consumer Minimum Standards then in effect; all other claims shall be subject to JAMS’s most current version of the Comprehensive Arbitration Rules and Procedures and the JAMS Consumer Minimum Standards then in effect. JAMS’s rules are available at jamsadr.com or by calling JAMS at 800-352- 5267. If JAMS is not available to arbitrate, the parties will select an alternative arbitral forum. You are responsible for all costs that you incur in the arbitration, including without limitation, fees for attorneys or expert witnesses. You may choose to have the arbitration conducted by telephone or videoconference, based on written submissions. Any judgment on the award rendered by the arbitrator may be entered in any court of competent jurisdiction. - - Authority of Arbitrator. The arbitrator shall have exclusive authority to (a) determine the scope and enforceability of this Arbitration Agreement and (b) resolve any dispute related to the interpretation, applicability, enforceability, or formation of this Arbitration Agreement including, but not limited to, any claim that all or any part of this Arbitration Agreement is void or voidable. The arbitration will decide the rights and liabilities, if any, of you and Terp Network Parties. The arbitration proceeding will not be consolidated with any other matters or joined with any other cases or parties. The arbitrator shall have the authority to grant motions dispositive of all or part of any claim. The arbitrator shall have the authority to award monetary damages and to grant any non-monetary remedy or relief available to an individual under applicable law, the arbitral forum’s rules, and these Terms. The arbitrator shall issue a written award and statement of decision describing the essential findings and conclusions on which the award is based, including the calculation of any damages awarded. The arbitrator has the same authority to award relief on an individual basis that a judge in a court of law would have. The award of the arbitrator is final and binding upon you and us. - - Waiver of Jury Trial. YOU AND TERP NETWORK PARTIES HEREBY WAIVE ANY CONSTITUTIONAL AND STATUTORY RIGHTS TO SUE IN COURT AND HAVE A TRIAL IN FRONT OF A JUDGE OR A JURY. You and Terp Network Parties are instead electing that all claims and disputes shall be resolved by arbitration under this Arbitration Agreement, except as specified in the second bullet of this Section 15, above (“Applicability of Arbitration Agreement”). An arbitrator can award on an individual basis the same damages and relief as a court and must follow these Terms as a court would. However, there is no judge or jury in arbitration, and court review of an arbitration award is subject to very limited review. - - Waiver of Class Actions and Class Arbitrations. ALL CLAIMS AND DISPUTES WITHIN THE SCOPE OF THIS ARBITRATION AGREEMENT MUST BE ARBITRATED ON AN INDIVIDUAL BASIS AND NOT ON A REPRESENTATIVE OR COLLECTIVE CLASS BASIS. ONLY INDIVIDUAL RELIEF IS AVAILABLE, AND CLAIMS OF MORE THAN ONE USER, PERSON, OR ENTITY CANNOT BE ARBITRATED OR CONSOLIDATED WITH THOSE OF ANY OTHER USER, PERSON, OR ENTITY. Accordingly, under the arbitration procedures outlined in this section, an arbitrator shall not combine or consolidate more than one party’s claims without the written consent of all affected parties to an arbitration proceeding. Without limiting the generality of the foregoing, you and Terp Network Parties agree that no dispute shall proceed by way of class arbitration without the written consent of all affected parties. If a decision is issued stating that applicable law precludes enforcement of any part of this subsection’s limitations as to a given claim for relief, then that claim must be severed from the arbitration and brought in the state or federal courts located in the State of Delaware. All other claims shall be arbitrated. - - Severability. Except as provided in this Section, if any part or parts of this Arbitration Agreement are found under the law to be invalid or unenforceable, then such specific part or parts shall be of no force and effect and shall be severed and the remainder of the Arbitration Agreement shall continue in full force and effect. - - Survival of Agreement. This Arbitration Agreement will survive the termination of your relationship with Terp Network. - - Modification. Notwithstanding any provision in these Terms to the contrary, we agree that if Terp Network makes any future material change to this Arbitration Agreement, you may reject that change within thirty (30) days of such change becoming effective by writing to terpnetwork@protonmail.com. +- Dispute Resolution. Please read the following arbitration agreement in this Section (“Arbitration Agreement”) carefully. It requires you to arbitrate disputes with Terp Network Parties and limits the way you can seek relief from us. This section does not govern disputes between users or between users and third parties. Terp Network does not provide dispute resolution services for such disagreements and the parties must resolve those disputes directly. +- Applicability of Arbitration Agreement. You agree that any dispute, controversy, or claim relating in any way to your access or use of the Service, to any products sold or distributed through the Service, or to any aspect of your relationship with Terp Network, will be resolved by binding arbitration, rather than in court, including threshold questions of the arbitrability of such dispute, controversy, or claim except that (1) you or Terp Network may assert claims in small claims court, but only if the claims qualify, the claims remain only in such court, and the claims remain on an individual, non-representative, and non-class basis; and (2) you or Terp Network Parties may seek injunctive or equitable relief in a court of proper jurisdiction if the claim relates to intellectual property infringement or other misuse of intellectual property rights. +- Dispute resolution process. You and Terp Network Parties both agree to engage in good-faith efforts to resolve disputes prior to either party initiating an arbitration, small claims court proceeding, or equitable relief for intellectual property infringement. You must initiate this dispute resolution process by sending a letter describing the nature of your claim and desired resolution to Terp Network (). Both parties agree to meet and confer personally, by telephone, or by videoconference (hereinafter “Conference”) to discuss the dispute and attempt in good faith to reach a mutually beneficial outcome that avoids the expenses of arbitration or, where applicable, litigation. If you are represented by counsel, your counsel may participate in the Conference as well, but you agree to fully participate in the Conference. Likewise, if Terp Network is represented by counsel, its counsel may participate in the Conference as well, but Terp Network agrees to have a company representative fully participate in the Conference. The statute of limitations and any filing fee deadlines shall be tolled while the parties engage in the informal dispute resolution process and Conference required by this paragraph. If the parties do not reach agreement to resolve the dispute within thirty (30) days after initiation of this dispute resolution process, either party may commence arbitration, file an action in small claims court, or file a claim for injunctive or equitable relief in a court of proper jurisdiction for matters relating to intellectual property infringement, if the claims qualify. +- Arbitration Rules and Forum. The Federal Arbitration Act governs the interpretation and enforcement of this Arbitration Agreement. To begin an arbitration proceeding after participating in the dispute resolution process, you must send a message requesting arbitration and describing your claim to . The arbitration will be conducted by JAMS, an established alternative dispute resolution provider. Disputes involving claims and counterclaims under $250,000, not inclusive of attorneys’ fees and interest, shall be subject to JAMS’s most current version of the Streamlined Arbitration Rules and the JAMS Consumer Minimum Standards then in effect; all other claims shall be subject to JAMS’s most current version of the Comprehensive Arbitration Rules and Procedures and the JAMS Consumer Minimum Standards then in effect. JAMS’s rules are available at jamsadr.com or by calling JAMS at 800-352- 5267. If JAMS is not available to arbitrate, the parties will select an alternative arbitral forum. You are responsible for all costs that you incur in the arbitration, including without limitation, fees for attorneys or expert witnesses. You may choose to have the arbitration conducted by telephone or videoconference, based on written submissions. Any judgment on the award rendered by the arbitrator may be entered in any court of competent jurisdiction. +- Authority of Arbitrator. The arbitrator shall have exclusive authority to (a) determine the scope and enforceability of this Arbitration Agreement and (b) resolve any dispute related to the interpretation, applicability, enforceability, or formation of this Arbitration Agreement including, but not limited to, any claim that all or any part of this Arbitration Agreement is void or voidable. The arbitration will decide the rights and liabilities, if any, of you and Terp Network Parties. The arbitration proceeding will not be consolidated with any other matters or joined with any other cases or parties. The arbitrator shall have the authority to grant motions dispositive of all or part of any claim. The arbitrator shall have the authority to award monetary damages and to grant any non-monetary remedy or relief available to an individual under applicable law, the arbitral forum’s rules, and these Terms. The arbitrator shall issue a written award and statement of decision describing the essential findings and conclusions on which the award is based, including the calculation of any damages awarded. The arbitrator has the same authority to award relief on an individual basis that a judge in a court of law would have. The award of the arbitrator is final and binding upon you and us. +- Waiver of Jury Trial. YOU AND TERP NETWORK PARTIES HEREBY WAIVE ANY CONSTITUTIONAL AND STATUTORY RIGHTS TO SUE IN COURT AND HAVE A TRIAL IN FRONT OF A JUDGE OR A JURY. You and Terp Network Parties are instead electing that all claims and disputes shall be resolved by arbitration under this Arbitration Agreement, except as specified in the second bullet of this Section 15, above (“Applicability of Arbitration Agreement”). An arbitrator can award on an individual basis the same damages and relief as a court and must follow these Terms as a court would. However, there is no judge or jury in arbitration, and court review of an arbitration award is subject to very limited review. +- Waiver of Class Actions and Class Arbitrations. ALL CLAIMS AND DISPUTES WITHIN THE SCOPE OF THIS ARBITRATION AGREEMENT MUST BE ARBITRATED ON AN INDIVIDUAL BASIS AND NOT ON A REPRESENTATIVE OR COLLECTIVE CLASS BASIS. ONLY INDIVIDUAL RELIEF IS AVAILABLE, AND CLAIMS OF MORE THAN ONE USER, PERSON, OR ENTITY CANNOT BE ARBITRATED OR CONSOLIDATED WITH THOSE OF ANY OTHER USER, PERSON, OR ENTITY. Accordingly, under the arbitration procedures outlined in this section, an arbitrator shall not combine or consolidate more than one party’s claims without the written consent of all affected parties to an arbitration proceeding. Without limiting the generality of the foregoing, you and Terp Network Parties agree that no dispute shall proceed by way of class arbitration without the written consent of all affected parties. If a decision is issued stating that applicable law precludes enforcement of any part of this subsection’s limitations as to a given claim for relief, then that claim must be severed from the arbitration and brought in the state or federal courts located in the State of Delaware. All other claims shall be arbitrated. +- Severability. Except as provided in this Section, if any part or parts of this Arbitration Agreement are found under the law to be invalid or unenforceable, then such specific part or parts shall be of no force and effect and shall be severed and the remainder of the Arbitration Agreement shall continue in full force and effect. +- Survival of Agreement. This Arbitration Agreement will survive the termination of your relationship with Terp Network. +- Modification. Notwithstanding any provision in these Terms to the contrary, we agree that if Terp Network makes any future material change to this Arbitration Agreement, you may reject that change within thirty (30) days of such change becoming effective by writing to . **16. Governing Law and Venue** These Terms and your access to and use of the Service shall be governed by and construed and enforced in accordance with the laws of the State of Delaware (without regard to conflict of law rules or principles of the State of Delaware, or any other jurisdiction that would cause the application of the laws of any other jurisdiction). Any dispute between the parties that is not subject to arbitration as set forth in Section 15 or cannot be heard in small claims court, shall be resolved in the state or federal courts in the State of Delaware, and the United States, respectively, sitting in the State of Delaware. diff --git a/docs/zk-headstash/circuit.md b/docs/zk-headstash/circuit.md new file mode 100644 index 0000000..9e4590d --- /dev/null +++ b/docs/zk-headstash/circuit.md @@ -0,0 +1,93 @@ +# Circuit Specs + +## TLDFR + +- each action requires us to constrain the "internal action steps" as math (easy cuz all data in computers are just 1 & 0, and if you split them up (and remember the order) very precisely, letting us form numbers in binary representation, ). +- **headstash has 3 main internal actions: + +1. key-pairing +2. note-merkle-tree-inclusion +3. nullifier/note-commitment integrity + +## Canonicity Gates + +The note-commit circuit uses the Sinsemilla hash function to commit to a note's constituent data (recp, fdi, nd, v, rho, esk, psi). Sinsemilla processes data in 10-bit chunks. + +Canonicity in this context has two primary goals: + +Unique Representation: Ensure that every unique set of input values produces a unique sequence of bits to be hashed. There should be no two different sets of inputs that could be decomposed into the same bit string for the commitment. This is fundamental to the security of the commitment scheme. +Range Constraints: Prove that the values are within their expected bit lengths (e.g., v is 64 bits, rho is 254 bits) without having to perform an expensive full-range check. This is done by proving the values can be correctly decomposed into their constituent bits. +The "10-bit gate canonicity" refers to the custom gates that enforce the correct decomposition of values at the boundaries between these 10-bit Sinsemilla message pieces. Since a single field value (like the 254-bit rho) is split across multiple message pieces, the circuit must ensure the pieces fit together perfectly to reconstruct the original value. + +The gates achieve this by: + +Decomposing a value into smaller, constrained sub-pieces (e.g., `b_0, b_1, b_2, b_3` for message piece `b`). +Constraining the sub-pieces to their correct bit lengths (using lookup tables and boolean checks). +Reconstructing the original value from the sub-pieces with a constraint like `b = b_0 + (2^4) *b_1 + (2^5)* b_2 + (2^6) * b_3`. +Linking across gates to ensure the value in one piece correctly connects to the next piece, forming a continuous bit string. + +### Design + +### Instances + +Instances are the public values involved in generating and verifying a proof. An example would be a public known root of a merkle tree, or a notes intended recipients for ownership of an nft being transferred. + +### Witnesses + +Witenesses are the private values involved in the statement we are trying to proove. These are the values that a proof generated along with the required public instances we can proove we know without ever revealing any information about them. + +### Verifying Key + +Verifying keys verifying generated proof bytes with a given set of public instances. + +### Proving Key + +Proving keys are the circuits keys used to generate proofs given a set of public witness and private instances. + +### Serializing And Deserializing Keys + +We specifically define how do serialize and deserialize circuit proving & verification keys. WE implement this via the logic defined in this pr: + +#### Writing + +| bytes | value | description | | +|--------|-----------|--------|--------------| +| 0..1 | `0x01` | version byte checked on read ||| +| 1..`fixed_commitments.len()` | `vk.fixed_commitments` |||| +| `fixed_commitments.len()`..`permutation.len()` | `vk.permutation` |||| +| `permutation.len()`..`selectors.len()` | `vk.selectors` |||| + +#### Reading + +Reading requires the vk deserialized params, or manually deserializing each value composing the key via knowledge of the byte positions set upon serialization. Below are the values needed to reconstruct and what knowledge we need to do so: + +| Offset | Size | Value | Description | Label | +|--------|------|-------|-------------|-------| +| 0 | 1 byte | `0x01` | Version byte | | +| 1 | 4 bytes | `u32` (little-endian) | Number of fixed columns | `num_fixed_columns` | +| 5 | `num_fixed_columns * commitment_size` | `Vec` | Fixed commitments (each commitment is typically 64 bytes) | `fixed_commitments` | +| ... | 4 bytes | `u32` (little-endian) | Number of permutation commitments | `permutation.num_commitments` | +| ... | `num_commitments * commitment_size` | `Vec` | Permutation commitments (each typically 64 bytes) | `permutation.commitments` | +| ... | 4 bytes | `u32` (little-endian) | Number of selectors | `num_selectors` | +| ... | `sum((selector.len() + 7) / 8)` | `Vec>` | Selectors (packed as bits, 8 bools per byte) | `selectors` | + +## Generating Proof + +**What you need to provide:** + +1. **Params**: The universal setup parameters +2. **Proving Key**: Generated earlier +3. **Circuit Instances**: Your actual circuit with witness data filled in +4. **Public inputs**: The instance values (public inputs to your circuit) +5. **RNG**: For generating random challenges + +### **Proof Size** + +- **Typical size**: 1-5 KB for most circuits +- **Fixed components** (don't scale much with circuit size): + - Advice commitments: 32 bytes each + - Lookup commitments: 32 bytes each + - Opening proofs: ~64 bytes each + - Evaluations: 32 bytes each (field elements) + + ``` diff --git a/docs/zk-headstash/crypto.md b/docs/zk-headstash/crypto.md new file mode 100644 index 0000000..f720abd --- /dev/null +++ b/docs/zk-headstash/crypto.md @@ -0,0 +1,173 @@ +# Cryptography + +## Pedersen Commitments (Perfect Secrecy) + +```mermaid +graph LR + A[Secret s] --> B[Commitment: c] + B <--> C[Alice checks: c] + D[Random r] --> B + B --> E[Perfect Secrecy: c reveals no info about s] + A -.-> C + style B fill:#1b0d33,stroke:#333 + style C fill:#0d3323,stroke:#333,color:#fff +``` + +```math +c = g^s * h^r +``` + +## Key Pairing + +## Sinsemilla + +### HashDomain + +### CommitDomain + +## Proof-Input Serialization + +## Halo2-Circuit Field + +## Proof Circuit Key & Witness Proof Verification + +## Recursive Proofs: pallas:: Curves + + + +## HKDF + Pallas + +## Commit Merkle Tree + +```mermaid + +flowchart LR + subgraph Leaves [Leaf Layer ] + L0[Hash 0] + L1[Hash 1] + L2[Hash 2] + L3[Hash 3] + L4[...] + L5[Hash n] + end + + subgraph Tree [Non-Leaf Layers ] + H1_0["H(H0 + H1)"] + H1_1["H(H2 + H3)"] + H1_2[...] + H1_3["H(Hn-1 + Hn)"] + + H2_0["H(H1_0 + H1_1)"] + H2_1[...] + + H30_0["H(...)"] + H30_1["H(...)"] + + Root["Merkle Root"] + end + + subgraph Proof [Merkle Proof for Hash 0] + direction LR + P1["Sibling Hash 1"] + P2["Sibling Hash H(H2+H3)"] + P3["Sibling Hash ..."] + P32["Sibling Hash at each layer
all the way to the root"] + end + + L0 --> H1_0 + L1 -.-> P1 + L1 --> H1_0 + + L2 --> H1_1 + L3 --> H1_1 + H1_1 -.-> P2 + + H1_0 --> H2_0 + H1_1 --> H2_0 + H2_1 -.-> P3 + + H30_0 --> Root + H30_1 --> Root + + linkStyle 0,2,4,5,7,8,9,10 stroke:red,stroke-width:3px; + linkStyle 1,3,6 stroke:blue,stroke-width:2px,stroke-dasharray: 5 5; +``` diff --git a/docs/zk-headstash/frontend.md b/docs/zk-headstash/frontend.md new file mode 100644 index 0000000..3174413 --- /dev/null +++ b/docs/zk-headstash/frontend.md @@ -0,0 +1,1073 @@ +# Headstash Dashboard + +# egui headstash : front end tools + +- dedicated wasm-bindgen api library: complete,reusable,lightweight wasm-bindgen crate powering headstash note-nullifier data preparation & proof generation via web communication through wasm-bindgeen. +- snap-n-pull: Metamask-snap plugin powered by wasm-bindgen crate + +## Front End DashBoard: Headstash + +- **layer-climb-core**: Full-featured QueryClient with middleware system already implemented +- **AppClient**: Wraps QueryClient with network management and gRPC/REST fallback +- **Smart Account Authentication**: Fully implemented with ETH offline signer integration +- **Chain Registry**: Network configuration management with multi-environment support +- **Wallet Integration**: Complete wallet connection and transaction signing capabilities + - retrieve data from & and snap cosmos wallet window to ront for seamless experience for wallet use between windows + - native account offline signing: metamask, keplr phantom, ledger, penumbra wallet, others + - js-bindgen for app comms with wallet in windows. + - switch for smart-account authentication use: implement support for defining dedicated smart account id and specification injection for signing actions. + +## Requirements Clarification + +### What We're Building + +1. **reusable Window Components egui:** + +- **Easy-to-use egui macros and traits for proof/chain/vm client UIs** macro derived components: modular middleware, indexer,authentication,client defintions per window, for modular definition of new windows we want to wrap into access of global app layer integrated with wallets wasm-bingen statefulness, modular wallet-powered window support + - drect smart contract ypes will be used for queries entrypoints: because we are in rust, we will use smart contract query definitions encoded directly to vec for protobuf serialization support, for queries and actions. + +2. **Smart Account Authentication Manager** + +- register,manage,use authentication via smart_account panel +- view authenticators: use smart account service to query connected wallets registered accounts for authentication +- integration for template authenticators +- visualize authenticator widget appropriately with respect to their recursive definition: `AllOf`,`AnyOf`,`AnyOfBlend` are able to be configured for authenticators, so front end should register/visualize this when registreing authetnicators in a intuitive manner so that we can depyct the layers of authenitcation in a neat manner. this should eb done in th emodules where th parameter forms will be for each authenticator being added, and also as a review chart underneath for viusal ques of confirmation of layerout and structure. + +3. 1-click decentralization support: + +4. **Zk-Headstash** Airdrop Distribution Portal + +## egui: web-control panel + +### Cosmos Clients Specification: Layer-Climb + +### Chain & Indexer Config + +- define chain & indexerconfigs statically +- prioritize indexer query, fallback manual chain rpc via middleware support +- canonical template for defining knwon chains, contracts, app-frameworks + +### Headstash Marketplace + +### Template Macro Defintions + +### Sovereign Authentication And Custody Support + +#### Authenticator Panel + +### metamask snaps: metamask plugin + +- generates hash to curve for pallas field & proof in metamask wallet +- simple install for metamask snaps, publicly accountably trustless code + +### development libraries: js,rust,python + +# Web Wallet Integration Specification + +## egui + WASM + Browser Wallet Extensions + +**Version:** 1.0 +**Last Updated:** 2025-01-19 +**Status:** Production-Ready (Connect, Disconnect, View Account Data) + +--- + +## Overview + +This specification defines the complete architecture for integrating browser-based cryptocurrency wallets (Keplr, MetaMask) with egui applications compiled to WebAssembly. The system provides a reactive, stateful wallet connection interface that works seamlessly in web browsers. + +### Supported Wallets + +| Wallet | Chain Type | Status | Capabilities | +|--------|-----------|--------|--------------| +| **Keplr** | Cosmos/Terp | ✅ Production | Connect, Disconnect, View Account, Chain Selection | +| **MetaMask** | Ethereum | ✅ Production | Connect, Disconnect, View Account | + +### Current Capabilities + +✅ **Wallet Detection** - Automatic detection of installed browser extensions +✅ **Connection Flow** - User-initiated connection with approval prompt +✅ **Disconnect Flow** - Clean disconnection with state cleanup +✅ **Account Display** - Address and public key display +✅ **Chain Selection** - Multi-chain support with registry +✅ **Reactive UI** - Real-time state updates with proper repaint triggers +✅ **Error Handling** - User-friendly error messages and recovery +✅ **Logging** - Comprehensive debug logging across JS/Rust boundary + +--- + +## Architecture Overview + +### Component Layers + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ User Interface │ +│ egui Windows (CosmosWindow) → WalletConnectionComponent │ +└────────────────────────┬────────────────────────────────────────┘ + │ +┌────────────────────────┴────────────────────────────────────────┐ +│ State Management Layer │ +│ WalletConnectionManager (State Machine) │ +│ States: Disconnected → Connecting → Querying → Active │ +└────────────────────────┬────────────────────────────────────────┘ + │ +┌────────────────────────┴────────────────────────────────────────┐ +│ WASM Bridge Layer (Rust) │ +│ wallet/bridge.rs (wasm-bindgen bindings) │ +│ Functions: connect::keplr(), connect::metamask() │ +└────────────────────────┬────────────────────────────────────────┘ + │ + JS Boundary + │ +┌────────────────────────┴────────────────────────────────────────┐ +│ JavaScript Bridge (Browser Context) │ +│ static/wallet_bridge.js (window functions) │ +│ Functions: requestKeplrEnable(), getKeplrAccount(), etc. │ +└────────────────────────┬────────────────────────────────────────┘ + │ +┌────────────────────────┴────────────────────────────────────────┐ +│ Browser Wallet Extensions │ +│ window.keplr, window.ethereum (injected) │ +└─────────────────────────────────────────────────────────────────┘ +``` + +--- + +## Core Components + +### 1. JavaScript Bridge (`static/wallet_bridge.js`) + +**Purpose:** Provides window-scoped functions for WASM to call browser wallet APIs. + +**Key Functions:** + +```javascript +// Wallet Detection +window.isKeplrInstalled() → boolean +window.isMetaMaskInstalled() → boolean + +// Keplr Wallet +window.requestKeplrEnable(chainId: string) → Promise +window.getKeplrAccount(chainId: string) → Promise +window.signKeplrAmino(chainId, signer, signDoc) → Promise + +// MetaMask Wallet +window.requestMetaMaskAccounts() → Promise +window.getMetaMaskAccounts() → Promise +window.signMetaMaskPersonal(message, address) → Promise +window.signMetaMaskTypedData(address, typedData) → Promise + +// Event Listeners +window.setupKeplrListeners(onKeystoreChange) +window.setupMetaMaskListeners(onAccountsChanged, onChainChanged, onDisconnect) +``` + +**Design Principles:** + +- All functions attached to `window` object (not ES6 modules) +- Compatible with `--target no-modules` WASM build flag +- Comprehensive `[BRIDGE]` prefixed logging for debugging +- Explicit error handling with descriptive messages +- Promise-based async interface + +**Example:** + +```javascript +window.requestKeplrEnable = async function(chainId) { + console.log('[BRIDGE] requestKeplrEnable called for chain:', chainId); + + if (!window.keplr) { + console.error('[BRIDGE] Keplr not found on window object'); + throw new Error('Keplr extension is not installed'); + } + + try { + console.log('[BRIDGE] Calling window.keplr.enable()...'); + await window.keplr.enable(chainId); + console.log('[BRIDGE] Keplr enable() completed successfully'); + return; + } catch (error) { + console.error('[BRIDGE] Failed to enable Keplr for chain', chainId, error); + throw error; + } +} +``` + +### 2. Rust Bridge (`wallet/bridge.rs`) + +**Purpose:** wasm-bindgen declarations and high-level connection logic. + +**Structure:** + +```rust +#[cfg(target_arch = "wasm32")] +#[wasm_bindgen] +extern "C" { + /// Declarations of JS functions from wallet_bridge.js + #[wasm_bindgen(js_namespace = window)] + pub fn isKeplrInstalled() -> bool; + + #[wasm_bindgen(js_namespace = window, catch)] + pub async fn requestKeplrEnable(chain_id: &str) -> Result; + + #[wasm_bindgen(js_namespace = window, catch)] + pub async fn getKeplrAccount(chain_id: &str) -> Result; + + // ... more declarations +} + +/// High-level connection functions +pub mod connect { + /// Connect to Keplr wallet + pub async fn keplr(chain_id: &str) -> Result { + log::info!("[BRIDGE_RS] Starting Keplr connection for chain: {}", chain_id); + + if !is_keplr_installed() { + return Err("Keplr wallet is not installed".to_string()); + } + + // Enable chain + request_keplr_enable(chain_id).await?; + + // Get account + let account_js = get_keplr_account(chain_id).await?; + let key: KeplrKey = serde_wasm_bindgen::from_value(account_js)?; + + Ok(WalletConnection { + address: key.bech32_address, + public_key: Some(key.pubkey), + wallet_type: WalletType::Keplr, + }) + } + + /// Connect to MetaMask wallet + pub async fn metamask() -> Result { /* ... */ } +} +``` + +**Key Types:** + +```rust +pub struct WalletConnection { + pub address: String, + pub public_key: Option>, + pub wallet_type: WalletType, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum WalletType { + Keplr, + MetaMask, + Direct, // Future: mnemonic-based +} +``` + +### 3. Connection Manager (`wallet/connection_manager.rs`) + +**Purpose:** State machine managing wallet connection lifecycle. + +**State Machine:** + +```rust +#[derive(Debug, Clone, PartialEq)] +pub enum ConnectionState { + Disconnected, // No wallet connected + Detecting, // Checking wallet availability + Connecting, // User approving in wallet popup + Querying, // Fetching initial account data + Active, // Fully connected (WASM-compatible, no Instant) + Error { message: String, retry_count: u32 }, + Disconnecting, // Cleanup in progress +} + +impl ConnectionState { + pub fn is_connected(&self) -> bool { + matches!(self, ConnectionState::Active) + } + + pub fn is_transitioning(&self) -> bool { + matches!( + self, + ConnectionState::Detecting + | ConnectionState::Connecting + | ConnectionState::Querying + | ConnectionState::Disconnecting + ) + } +} +``` + +**Key Methods:** + +```rust +impl WalletConnectionManager { + /// Start connection flow + pub async fn connect( + &self, + wallet_type: WalletType, + chain_config: ChainConfig, + ) -> Result<(), String> { + // 1. Update state to Connecting + self.update_state(ConnectionState::Connecting); + + // 2. Call bridge function (keplr or metamask) + let connection = match wallet_type { + WalletType::Keplr => connect::keplr(&chain_config.chain_id).await?, + WalletType::MetaMask => connect::metamask().await?, + _ => return Err("Unsupported wallet type".to_string()), + }; + + // 3. Update state to Querying + self.update_state(ConnectionState::Querying); + + // 4. Store account info + let account = AccountInfo { + address: connection.address, + public_key: connection.public_key, + balance: None, + sequence: None, + account_number: None, + }; + self.update_account(account); + + // 5. Set active state + self.update_state(ConnectionState::Active); + + // 6. Start background polling + self.start_polling(); + + Ok(()) + } + + /// Disconnect wallet + pub async fn disconnect(&self) -> Result<(), String> { + self.update_state(ConnectionState::Disconnecting); + self.clear_account(); + self.update_state(ConnectionState::Disconnected); + Ok(()) + } + + /// Refresh account data (stub for now) + pub async fn refresh(&self) -> Result<(), String> { + // TODO: Query balance using layer-climb QueryClient + Ok(()) + } +} +``` + +**Account Info:** + +```rust +#[derive(Debug, Clone)] +pub struct AccountInfo { + pub address: String, + pub public_key: Option>, + pub balance: Option>, + pub sequence: Option, + pub account_number: Option, +} + +#[derive(Debug, Clone)] +pub struct Coin { + pub denom: String, + pub amount: String, +} +``` + +### 4. UI Component (`components/wallet.rs`) + +**Purpose:** Reactive egui component rendering wallet connection UI. + +**Structure:** + +```rust +pub struct WalletConnectionComponent { + connection_manager: WalletConnectionManager, + chain_registry: ChainRegistry, + selected_chain_id: Option, + selected_wallet: Option, + refreshing: bool, +} + +impl WalletConnectionComponent { + /// Public API for external integration + pub fn is_connected(&self) -> bool { /* ... */ } + pub fn get_address(&self) -> Option { /* ... */ } + pub fn get_state(&self) -> ConnectionState { /* ... */ } + pub fn get_chain_config(&self) -> Option { /* ... */ } + + /// Main UI entry point + pub fn ui(&mut self, ui: &mut Ui) { + // Request repaint during transitions + if self.connection_manager.get_state().is_transitioning() { + ui.ctx().request_repaint(); + } + + match self.connection_manager.get_state() { + ConnectionState::Disconnected => self.render_disconnected(ui), + ConnectionState::Connecting => self.render_connecting(ui), + ConnectionState::Active => self.render_active(ui), + ConnectionState::Error { .. } => self.render_error(ui), + // ... + } + } +} +``` + +**Critical: egui Repaint Triggers** + +```rust +#[cfg(target_arch = "wasm32")] +fn initiate_connection(&mut self, ctx: &egui::Context) { + use wasm_bindgen_futures::spawn_local; + + let manager = self.connection_manager.clone(); + let ctx = ctx.clone(); // Clone for async task + + spawn_local(async move { + match manager.connect(wallet_type, chain_config).await { + Ok(()) => { + log::info!("Connection successful!"); + ctx.request_repaint(); // ⚠️ CRITICAL for UI update + } + Err(e) => { + log::error!("Connection failed: {}", e); + manager.set_error(e); + ctx.request_repaint(); // ⚠️ CRITICAL for UI update + } + } + }); +} +``` + +**Why `request_repaint()` is Required:** + +egui is an **immediate mode** GUI framework. When async tasks complete in `spawn_local`, they run outside the normal render loop. Without explicit `ctx.request_repaint()`, the UI won't update until the next user interaction (mouse move, click, etc.), causing the "stuck on Connecting" issue. + +### 5. Chain Registry (`chain_registry.rs`) + +**Purpose:** Type-safe chain configuration management. + +**Structure:** + +```rust +#[derive(Debug, Clone, PartialEq)] +pub struct ChainConfig { + pub id: String, + pub name: String, + pub chain_id: String, + pub rpc_endpoint: String, + pub rest_endpoint: String, + pub grpc_web_endpoint: Option, + pub gas_price: f64, + pub gas_denom: String, + pub bech32_prefix: String, + pub coin_type: u32, + pub explorer_url: Option, + pub features: Vec, +} + +pub struct ChainRegistry { + chains: HashMap, +} + +impl ChainRegistry { + /// Load from static/config.json + pub fn new() -> Self { /* ... */ } + + /// Get chain by ID + pub fn get(&self, id: &str) -> Option<&ChainConfig> { /* ... */ } + + /// Get all testnets + pub fn testnets(&self) -> Vec<&ChainConfig> { /* ... */ } + + /// Get all mainnets + pub fn mainnets(&self) -> Vec<&ChainConfig> { /* ... */ } + + /// Add custom chain at runtime + pub fn add_chain(&mut self, config: ChainConfig) -> Result<(), String> { /* ... */ } +} +``` + +--- + +## Data Flow + +### Connection Flow + +``` +1. User Action + ├─ User selects chain from dropdown + ├─ User clicks "Keplr" button + └─ initiate_connection() called + +2. State Transition: Disconnected → Connecting + ├─ UI shows spinner + "Connecting..." message + └─ Cancel button available + +3. Async Task Spawned (spawn_local) + ├─ manager.connect(WalletType::Keplr, chain_config) + └─ Runs in background + +4. WASM → JS Bridge Call + ├─ connect::keplr(chain_id) + ├─ request_keplr_enable(chain_id) + └─ Calls window.requestKeplrEnable() + +5. JavaScript → Browser Extension + ├─ window.keplr.enable(chain_id) + └─ Keplr popup appears + +6. User Approval in Wallet + ├─ User clicks "Approve" in Keplr popup + └─ Promise resolves + +7. JS → WASM: Account Data + ├─ window.keplr.getKey(chain_id) + ├─ Returns KeplrKey object + └─ Serialized via serde_wasm_bindgen + +8. State Transition: Connecting → Querying + ├─ Account info stored + └─ public_key, address extracted + +9. State Transition: Querying → Active + ├─ Connection complete + └─ Background polling started + +10. UI Update Trigger + ├─ ctx.request_repaint() called + └─ UI re-renders with "Connected" state + +11. UI Shows Connected State + ├─ Green "● Connected" indicator + ├─ Wallet address displayed + ├─ Disconnect button available + └─ Balance queries begin (background) +``` + +### Disconnect Flow + +``` +1. User Action + └─ User clicks "Disconnect" button + +2. Async Disconnect + ├─ manager.disconnect() + └─ State: Active → Disconnecting + +3. Cleanup + ├─ Stop background polling + ├─ Clear account info + └─ Clear wallet type and chain config + +4. State Transition + └─ Disconnecting → Disconnected + +5. UI Update + ├─ ctx.request_repaint() called + └─ UI shows "● Disconnected" +``` + +--- + +## Configuration + +### HTML Setup (`web_demo/index.html`) + +```html + + + + + egui Cosmos Demo + + + + + + + + + + + + +``` + +⚠️ **Critical:** `wallet_bridge.js` must load before the WASM module initializes, otherwise `window.isKeplrInstalled()` will be undefined. + +### Build Script (`scripts/build_demo_web.sh`) + +```bash +#!/bin/bash +set -eu + +# Build WASM +./scripts/build_web.sh + +# Copy static files to web_demo/ +echo "Copying wallet bridge and config files…" +cp -f crates/egui_demo_lib/src/cosmos/static/wallet_bridge.js web_demo/ +cp -f crates/egui_demo_lib/src/cosmos/static/config.json web_demo/ + +echo "Build complete! Run ./scripts/start_server.sh to test" +``` + +### Chain Configuration (`static/config.json`) + +```json +{ + "chains": [ + { + "id": "terp-testnet", + "name": "Terp Testnet", + "chain_id": "morocco-1", + "rpc_endpoint": "https://rpc-testnet.terp.network", + "rest_endpoint": "https://api-testnet.terp.network", + "grpc_web_endpoint": "https://grpc-web-testnet.terp.network", + "gas_price": 0.025, + "gas_denom": "uterpx", + "bech32_prefix": "terp", + "coin_type": 118, + "explorer_url": "https://explorer-testnet.terp.network", + "features": ["smartaccount", "fantoken"] + } + ] +} +``` + +--- + +## Error Handling + +### Error Types and Recovery + +| Error | Cause | User Message | Recovery | +|-------|-------|--------------|----------| +| `Wallet not installed` | Extension not detected | "Keplr is not installed" | Show install link | +| `User rejected` | User clicked "Reject" | "Connection rejected by user" | Retry button | +| `Chain not found` | Invalid chain_id | "Chain not configured" | Check config.json | +| `Enable failed` | keplr.enable() threw | "Failed to enable chain: {error}" | Retry or add chain | +| `Account fetch failed` | getKey() threw | "Failed to get account: {error}" | Retry button | +| `Parse error` | Invalid JS response | "Failed to parse account data" | Debug bridge.js | + +### Error State Display + +```rust +fn render_error(&mut self, ui: &mut Ui) { + ui.horizontal(|ui| { + ui.label(RichText::new("●").color(Color32::RED).size(20.0)); + ui.label(RichText::new("Connection Error").strong().color(Color32::RED)); + }); + + if let Some(error) = self.connection_manager.get_error() { + ui.group(|ui| { + ui.colored_label(Color32::RED, &error); + }); + } + + ui.horizontal(|ui| { + if ui.button("🔄 Retry").clicked() { + self.connection_manager.clear_error(); + self.initiate_connection(ui.ctx()); + } + + if ui.button("Cancel").clicked() { + self.disconnect(ui.ctx()); + } + }); +} +``` + +--- + +## Debugging + +### Log Sequence (Successful Keplr Connection) + +``` +[INFO] Starting connection to Keplr +[INFO] Connection manager: Starting connection to Keplr +[INFO] Connection manager: State updated to Connecting +[BRIDGE_RS] Starting Keplr connection for chain: morocco-1 +[BRIDGE_RS] Keplr detected +[BRIDGE_RS] Requesting Keplr enable for chain... +[BRIDGE] requestKeplrEnable called for chain: morocco-1 +[BRIDGE] Calling window.keplr.enable()... + +// ⏳ User approves in Keplr popup + +[BRIDGE] Keplr enable() completed successfully +[BRIDGE_RS] Keplr enable() completed +[BRIDGE_RS] Requesting account info... +[BRIDGE] getKeplrAccount called for chain: morocco-1 +[BRIDGE] Calling window.keplr.getKey()... +[BRIDGE] Keplr getKey() returned: {name: "Account 1", algo: "secp256k1", ...} +[BRIDGE] Returning account: terp1xxx... +[BRIDGE_RS] Received account data from JS +[BRIDGE_RS] Parsing account data... +[BRIDGE_RS] Successfully parsed account: terp1xxx... +[INFO] Connection manager: Wallet approved! Address: terp1xxx... +[INFO] Connection manager: State updated to Querying +[INFO] Connection manager: Account info stored +[INFO] Connection manager: State updated to Active +[INFO] Connection successful! + +// ✅ UI updates to "● Connected" +``` + +### Browser DevTools Checklist + +**Console Tab:** + +- [ ] No JavaScript errors on page load +- [ ] `wallet_bridge.js` loaded successfully +- [ ] `window.isKeplrInstalled()` returns `true` (if Keplr installed) +- [ ] Full log sequence appears during connection +- [ ] `[BRIDGE]` and `[BRIDGE_RS]` logs interleaved correctly + +**Network Tab:** + +- [ ] `wallet_bridge.js` - 200 OK +- [ ] `config.json` - 200 OK +- [ ] `egui_demo_app.js` - 200 OK +- [ ] `egui_demo_app.wasm` - 200 OK + +**Application Tab:** + +- [ ] No CORS errors +- [ ] Service worker not interfering (if testing locally) + +### Common Issues + +**Issue:** UI stuck on "Connecting..." + +**Cause:** Missing `ctx.request_repaint()` in async callback + +**Fix:** Ensure all `spawn_local` async blocks call `ctx.request_repaint()` on completion + +--- + +**Issue:** `panicked at time not implemented on this platform` + +**Cause:** Using `std::time::Instant` in WASM (not supported) + +**Fix:** Remove `Instant` fields from `ConnectionState::Active` or use `web-time` crate + +--- + +**Issue:** `isKeplrInstalled is not a function` + +**Cause:** `wallet_bridge.js` not loaded or loaded after WASM + +**Fix:** Ensure `` comes before `egui_demo_app.js` + +--- + +**Issue:** Wallet shows connected but UI shows disconnected + +**Cause:** State desync, likely from hot reload or page refresh + +**Fix:** Full page refresh, check wallet extension shows correct dapp connection + +--- + +## Integration Example + +### Adding Wallet Connection to Your egui Window + +```rust +use crate::cosmos::components::WalletConnectionComponent; + +pub struct MyWindow { + wallet_connection: WalletConnectionComponent, +} + +impl Default for MyWindow { + fn default() -> Self { + Self { + wallet_connection: WalletConnectionComponent::new(), + } + } +} + +impl MyWindow { + pub fn ui(&mut self, ui: &mut egui::Ui) { + // Render wallet connection UI + self.wallet_connection.ui(ui); + + ui.separator(); + + // Only show other features if connected + if self.wallet_connection.is_connected() { + if let Some(address) = self.wallet_connection.get_address() { + ui.heading("Your Account"); + ui.monospace(&address); + + // Access chain config + if let Some(chain) = self.wallet_connection.get_chain_config() { + ui.label(format!("Chain: {}", chain.name)); + ui.label(format!("RPC: {}", chain.rpc_endpoint)); + } + } + } else { + ui.label("Connect wallet to continue"); + } + } +} +``` + +--- + +## WASM Compatibility Notes + +### ⚠️ Platform-Specific Issues + +1. **Time APIs:** `std::time::Instant` **NOT** supported in WASM + - ✅ Use: Simple state flags, frame counters + - ❌ Avoid: `Instant::now()`, `Duration::elapsed()` + +2. **Threading:** `std::thread` **NOT** supported + - ✅ Use: `spawn_local` for async tasks + - ❌ Avoid: `thread::spawn`, `std::sync::mpsc` + +3. **File I/O:** Direct file system access **NOT** supported + - ✅ Use: Embedded assets via `include_str!()`, web fetch APIs + - ❌ Avoid: `std::fs::read`, `File::open` + +4. **Module System:** ES6 modules require `--target web` flag + - ✅ Use: `window` object functions with `--target no-modules` + - ❌ Avoid: ES6 `export`/`import` with `--target no-modules` + +### Cargo.toml Features + +```toml +[target.'cfg(target_arch = "wasm32")'.dependencies] +wasm-bindgen = "0.2" +wasm-bindgen-futures = "0.4" +web-sys = { version = "0.3", features = ["Window", "Navigator"] } +serde-wasm-bindgen = "0.6" + +[dependencies] +# Ensure tokio doesn't pull in unsupported features +tokio = { version = "1.47", default-features = false } +``` + +--- + +## Future Enhancements + +### Phase 2: Transaction Signing + +```rust +pub async fn sign_transaction( + &self, + msgs: Vec, + fee: Fee, + memo: String, +) -> Result { + let wallet_type = self.get_wallet_type() + .ok_or("No wallet connected")?; + + match wallet_type { + WalletType::Keplr => { + // Use signKeplrAmino from bridge + let sign_doc = create_amino_sign_doc(msgs, fee, memo)?; + let signature = sign_keplr_amino(chain_id, signer, sign_doc).await?; + Ok(build_tx_raw(signature)?) + } + WalletType::MetaMask => { + Err("MetaMask signing not yet implemented".to_string()) + } + _ => Err("Unsupported wallet type".to_string()), + } +} +``` + +### Phase 3: Balance Queries (layer-climb Integration) + +```rust +pub async fn query_balance( + &self, + address: &str, + denom: &str, +) -> Result { + use layer_climb::prelude::*; + + let chain = self.get_chain_config() + .ok_or("No chain configured")?; + + let grpc_web = chain.grpc_web_endpoint + .ok_or("Chain missing gRPC-web endpoint")?; + + let client = QueryClient::new(&grpc_web).await?; + let balance = client.bank_balance(address, denom).await?; + + Ok(Coin { + denom: balance.denom, + amount: balance.amount, + }) +} +``` + +### Phase 4: Multi-Wallet Support + +Allow connecting both Keplr and MetaMask simultaneously: + +```rust +pub struct MultiWalletManager { + keplr_connection: Option, + metamask_connection: Option, +} + +impl MultiWalletManager { + pub fn connect_keplr(&mut self, chain: ChainConfig) { /* ... */ } + pub fn connect_metamask(&mut self) { /* ... */ } + pub fn get_primary_signer(&self) -> Option<&WalletConnectionManager> { /* ... */ } +} +``` + +### Phase 5: Local Test Wallet + +Browser localStorage-based test wallet for development: + +```rust +pub async fn generate_test_wallet() -> Result { + let mnemonic = bip39::Mnemonic::generate(24)?; + let seed = mnemonic.to_seed(""); + let key = derive_cosmos_key(seed, 118, 0, 0)?; + + // Store in localStorage + store_encrypted_mnemonic(&mnemonic, password)?; + + Ok(WalletConnection { + address: key.address, + public_key: Some(key.pubkey), + wallet_type: WalletType::Direct, + }) +} +``` + +--- + +## Testing Checklist + +### Manual Testing + +- [ ] **Build:** `./scripts/build_demo_web.sh` completes without errors +- [ ] **Serve:** `./scripts/start_server.sh` starts local server +- [ ] **Load:** Open `http://localhost:8765/index.html` with no console errors +- [ ] **Detect:** Keplr button shows enabled (if installed) +- [ ] **Select:** Chain selector shows all configured chains +- [ ] **Connect:** Click Keplr → popup appears +- [ ] **Approve:** Approve in Keplr → UI updates to "● Connected" (green) +- [ ] **Display:** Address shows correctly +- [ ] **Disconnect:** Click disconnect → UI updates to "● Disconnected" +- [ ] **Reconnect:** Can reconnect successfully +- [ ] **Error:** Reject connection → shows error state with retry +- [ ] **MetaMask:** Same flow works for MetaMask + +### Automated Testing (Future) + +```rust +#[cfg(test)] +mod tests { + use super::*; + use wasm_bindgen_test::*; + + #[wasm_bindgen_test] + async fn test_keplr_connection() { + let manager = WalletConnectionManager::new(); + let config = ChainConfig::testnet(); + + let result = manager.connect(WalletType::Keplr, config).await; + assert!(result.is_ok()); + assert!(manager.get_state().is_connected()); + } +} +``` + +--- + +## API Reference Summary + +### JavaScript Bridge API + +| Function | Parameters | Returns | Description | +|----------|-----------|---------|-------------| +| `isKeplrInstalled()` | - | `boolean` | Check if Keplr installed | +| `isMetaMaskInstalled()` | - | `boolean` | Check if MetaMask installed | +| `requestKeplrEnable(chainId)` | `string` | `Promise` | Enable Keplr for chain | +| `getKeplrAccount(chainId)` | `string` | `Promise` | Get Keplr account info | +| `requestMetaMaskAccounts()` | - | `Promise` | Request MetaMask accounts | + +### Rust Public API + +| Method | Description | +|--------|-------------| +| `WalletConnectionComponent::new()` | Create component | +| `is_connected()` | Check if wallet connected | +| `get_address()` | Get connected address | +| `get_state()` | Get current connection state | +| `ui(&mut self, ui)` | Render UI | + +### State Transitions + +``` +Disconnected → Connecting → Querying → Active + ↑ ↓ ↓ + └────────────┴────── Error ──────────┘ +``` + +--- + +## File Structure + +``` +crates/egui_demo_lib/src/cosmos/ +├── static/ +│ ├── wallet_bridge.js # JS bridge functions +│ └── config.json # Chain configurations +├── wallet/ +│ ├── mod.rs +│ ├── bridge.rs # wasm-bindgen declarations +│ └── connection_manager.rs # State machine +├── components/ +│ ├── mod.rs +│ └── wallet.rs # UI component +├── chain_registry.rs # Chain config management +└── window.rs # Main Cosmos window + +web_demo/ +├── index.html # Entry point (loads wallet_bridge.js) +├── wallet_bridge.js # Copied from static/ +└── config.json # Copied from static/ + +scripts/ +├── build_demo_web.sh # Build + copy static files +└── start_server.sh # Local development server +``` + +--- + +## Conclusion + +This specification documents a **production-ready** wallet integration system for egui + WASM applications. The architecture is: + +✅ **Modular** - Clean separation between JS bridge, state management, and UI +✅ **Type-Safe** - Rust type system enforces correctness +✅ **Reactive** - UI updates automatically via proper repaint triggers +✅ **Debuggable** - Comprehensive logging across JS/Rust boundary +✅ **Extensible** - Easy to add new wallets, chains, and features + +**Current Status:** Connect, Disconnect, View Account Data (Keplr + MetaMask) + +**Next Steps:** Transaction signing, balance queries, multi-wallet support + +--- + +**Version History:** + +- **v1.0** (2025-01-19) - Initial production specification after fixing WASM `Instant` issue and repaint triggers diff --git a/docs/zk-headstash/mesh-api.md b/docs/zk-headstash/mesh-api.md new file mode 100644 index 0000000..f61346b --- /dev/null +++ b/docs/zk-headstash/mesh-api.md @@ -0,0 +1,245 @@ +# Mesh-API + +we are tasked to implement a group of new features to our node. These features + introduce new server api routes, and are described at a high level here[Pasted text + #1 +111 lines]. lets start with the proof verification. in + packages/cw-ho/src/headstash/claim.rs ive defined the method that will verify proofs + and then save them to storage to be processed if valid. we expect ethe proto defined + MsgClaimHeadstash to be used that carries the proof public inputs and the proof + itself being verified, and we expect the proof circuiit keys to be accessable in our + nodes storage. This means headstashes had to have been registered to the node before + proofs can be claimed. lets implement functions that register a new headsatsh + instance into our storage node and perform all of the actions needed when a new + headstash is registered. specifically, we will need to query an ipfs cid that will + contain the verifying keys and metadata about the headstash, and then save a + reference to a headstash by the contract addr + + *A Verifiable Service mesh of nodes acting an a proxy for broadcasting proofs and other data.* + +- verifiable api powered by WAVS +- opt-in data provisioning for headstash instances metadata (ipfs wrapper compaitible) +- makes use of network and mesh design of ergors nodes for tick-like network consensus on actions. +- keep client server lightweight, define server query and msg as one server in proto file +- out of bounds for wavs runtime verification for cosmos-chain web-socket with rpc node for stateful updates to db (for recording new headstash instances and performing stateful updates when contracts are funded) +- dedicated API for broadcasting claims +- minimizing fee-grants +- delayed claiming support + +## WAVS + +### Verifiable Proof Verification + +Cosmwasm cant perform pallas curve ops on-chain effeciently, so we validate proof in wavs, and then bind wavs-operator set msg to proofs via hashing so we pair a wavs action with a set of stateful events the wavs operator set authorizes each block. + +`validate-proofs --> sign-hash of set of nullifier,msg tuples --> verify-in contract --> stateful events` + +- mempool that allows for pre-verification/storage of proof verification and nullifier preparation + +## Headstash Storage + IPFS Compatible + +Node operators are able to enable an ipfs server wrapper around their nodes, and participate in providing storage of the headstash instance metadata files and other extended markets. + +- API definition for uploading files to store for headstashes +- API definition for granting users access to upload files to store (default to anyone able to access api) +- feature to pin to ipfs gateway & respond with metadata + +new storage layers: + + - headstash metadata classification + - pending headstashes to claim + - + +### Mesh Consensus + +commonware network for node identity and communication + +## Vote-Extension Server + +*we are going to doing something fun.* + +were going to make use of a side-car service that will allow any validator to participate in enhancing the censorship resistant to tx settlement of claiming headsatshes, by operating vote-extension servers that create binding hashes via blake3 of the nullifiers and msgs to be verified on chain much more effeciently. + +*because we are using a wavs service, this proof verification can be done off-chain without worry that the verifcation process was corrupted* + +### Design + +- oracle connected to validator and curates the voteExtension containing sets of nullifiers to submit to headstash contracts +- allows smart-contracts to be designed for async-claiming *(provide proof via vote-extension, claim via authentication channel/manual smart-contract claim)* + +### `ExtendVoteHandler` + +`ExtendVoteHandler` returns a handler that extends a vote with the sidecars +pending nullifiers to store. In the case where oracle data is unable to be fetched +or correctly marshalled, the handler will return an empty vote extension to +ensure liveness. + +```rs +// `abci/ve/vote_extension.go`: `ExtendVoteHandler() ` + +``` + +### `VerifyVoteExtensionHandler` + +`VerifyVoteExtensionHandler` returns a handler that verifies the vote extension provided by +a validator is valid. In the case when the vote extension is empty, we return ACCEPT. This means +that the validator may have been unable to fetch nullifiers from the oracle and is voting an empty vote extension. + +### Lightweight Client Server Interface + +### Cosmos-Indexer + +- Allows subscription of specific events for cosmos node +- Ensure we are always in sync with latests blocks via peer check of other rpc nodes +- fallback/retry on different peer via reuqesting for previous blocks + +### Delayed Write Buffer Market + +Allow users to particiapte in enchancing privacy by delay between network call and transaction settlement without compromise integrity of privacy during claim pending + + + +## commonware_runtime Usage Guide + +## Overview + +`commonware_runtime` provides configurable async runtimes for executing tasks: + +- **Production**: `tokio::Runner` (backed by [Tokio](https://tokio.rs)). +- **Testing/Simulation**: `deterministic::Runner` (deterministic execution with fixed seed; mocks time/network/storage). + +**Status**: ALPHA – expect breaking changes. + +Key traits: + +- [`Runner`]: Starts root tasks synchronously: `runner.start(|ctx| async { ... }) -> Output`. +- [`Spawner`]: Spawns supervised child tasks (abort cascades on parent abort/completion/panic). +- [`Clock`]: Time ops (mockable). +- [`Network`/`Storage`]: I/O (mockable). +- [`Metrics`]: Prometheus integration. + +All tasks supervised; panics/aborts propagate. + +## Sync Binary with Async Task (e.g., CLI Tools) + +Bridge async code (e.g., proving) to sync `main()` **without** `#[tokio::main]` or full Tokio: + +### Cargo.toml + +```toml +[dependencies] +commonware_runtime = { version = "0.1", features = ["tokio"] } # Adjust version/path +zk_headstash = { ... } # Your async crate +``` + +### src/bin/gen_headstash_circuit.rs + +```rust +use std::error::Error; +use zk_headstash::deploy::suite::*; +use commonware_runtime::tokio::Runner; + +/// # Create Headstash circuit proof from a note +/// +/// Generates default Headstash [VerifyingKey] and [ProvingKey]. +/// +/// ```bash +/// cargo run --bin gen_headstash_circuit +/// ``` +fn main() -> Result<(), Box> { + Runner::default().start(|_| HeadstashSuite::new().create_headstash_proof())?; + Ok(()) +} +``` + +**How it works**: + +- `Runner::start(self, f: F) -> Fut::Output` where `F: FnOnce(Context) -> Fut`. +- Injects `Context` (ignore with `|_|` if unused). +- Drives async root task to completion synchronously. +- Returns future's `Output` (e.g., `Result<(), E>` → propagates `?`). + +## Advanced Usage + +### Spawning Tasks + +```rust +Runner::default().start(|ctx| async move { + let handle = ctx.spawn(|_| async { /* child */ }); + handle.await?; // Err(Error::Closed) if aborted +}); +``` + +### Shutdown + +```rust +let handle = ctx.spawn(|_| async move { /* long task */ }); +ctx.stop(9, None).await?; // Signals all tasks; waits for cleanup +handle.await; // Closed if not finished +``` + +### Metrics + +```rust +ctx.register("my_counter", "Help", Counter::default()); +let metrics = ctx.encode(); // Prometheus text +``` + +### Testing (Deterministic) + +```rust +use commonware_runtime::deterministic::Runner; + +// Exact same API; time advances predictably +Runner::default().start(|ctx| async move { + ctx.sleep(Duration::from_secs(1)).await; + assert!(ctx.current() >= start + 1s); +}); +``` + +## Full API Docs + +Extracted from `lib.rs`: + +> [!Execute asynchronous tasks with a configurable scheduler.] +> +> - [Runner], [Spawner], [Clock], [Network], [Storage], [Metrics], [Pacer]. +> - Supervision: Children abort on parent exit/panic/abort. +> - Metrics prefix: `runtime_*`. + +## Errors + +Common: `Error::Exited`, `Closed`, `Timeout`, `Io(...)`. + +## Features + +- `tokio`: Tokio runtime (non-WASM). +- `deterministic`: Testing runtime. +- `iouring-*`: io_uring storage/network (if enabled). + +For source/traits: See crate repo/docs.rs/commonware_runtime. diff --git a/docs/zk-headstash/metamask-snap.md b/docs/zk-headstash/metamask-snap.md new file mode 100644 index 0000000..99f1b7d --- /dev/null +++ b/docs/zk-headstash/metamask-snap.md @@ -0,0 +1,784 @@ +# Snap-n-Pull: MetaMask Snap Plugin for Headstash Interaction + +**Version:** 2.0 +**Status:** Production Implementation +**Last Updated:** 2025-01-20 + +## Overview + +The `snap-n-pull` MetaMask Snap plugin provides secure, client-side nullifier generation for Headstash airdrop claims. It enables users to prove ownership of eligible addresses and claim allocations without revealing their private keys or creating on-chain associations between eligible and recipient addresses. + +**Core Principle:** "A good UX does not require the user to learn anything they do not already know." + +### Key Capabilities + +✅ **Nullifier Generation** - Generate note nullifiers from private keys without revealing them +✅ **Note Commitment** - Create cryptographic commitments to notes +✅ **Public Key Derivation** - Derive public keys for verification +✅ **Zero Private Key Storage** - Private keys are NEVER stored, only used transiently +✅ **MetaMask Integration** - Seamless integration with MetaMask's secure environment +✅ **WASM-Powered** - Rust cryptographic core compiled to WebAssembly + +--- + +## Architecture + +### High-Level Flow + +``` +┌─────────────────────────────────────────────────────────────┐ +│ dApp (Frontend) │ +│ - User selects headstash to claim │ +│ - Provides public note inputs (recp, nd, v, fdi, rho, rseed)│ +│ - Calls snap via window.ethereum.request() │ +└───────────────────────────────┬─────────────────────────────┘ + │ + │ JSON-RPC: generateNullifier + │ + ▼ +┌─────────────────────────────────────────────────────────────┐ +│ MetaMask Snap Plugin (Isolated) │ +│ │ +│ ┌───────────────────────────────────────────────────────┐ │ +│ │ index.tsx (RPC Handler) │ │ +│ │ - Validates requests │ │ +│ │ - Initializes WASM │ │ +│ │ - Routes to gn() handler │ │ +│ └────────────────────────┬──────────────────────────────┘ │ +│ │ │ +│ ▼ │ +│ ┌───────────────────────────────────────────────────────┐ │ +│ │ rpc/gn.tsx (Generate Nullifier) │ │ +│ │ 1. Show user confirmation dialog │ │ +│ │ 2. Request user approval │ │ +│ │ 3. Call getSk() to retrieve private key │ │ +│ └────────────────────────┬──────────────────────────────┘ │ +│ │ │ +│ ▼ │ +│ ┌──────────────────────────────┐ │ +│ │ getSk() (BIP-32 Derivation) │ │ +│ │ - snap_getBip32Entropy() │ │ +│ │ - Path: m/44'/133'/0'/0'/0' │ │ +│ │ - Returns: 32-byte esk │ │ +│ └──────────┬───────────────────┘ │ +│ │ │ +│ │ esk (TRANSIENT - never stored!) │ +│ │ │ +│ ┌──────────▼───────────────────┐ │ +│ │ getPk(esk) │ │ +│ │ - Derives secp256k1 pubkey │ │ +│ │ - Returns: 33-byte pk (hex) │ │ +│ └──────────┬───────────────────┘ │ +│ │ │ +│ │ pk (PUBLIC - safe to reveal) │ +│ │ │ +│ ┌──────────▼────────────────────────────────┐ │ +│ │ generateNullifier(wasm, esk, noteInputs) │ │ +│ │ │ │ +│ │ Sequential Derivation (esk is root): │ │ +│ │ 1. nk = HKDF(esk, rho) │ │ +│ │ 2. nullifier = PRF_nf(nk, rho, psi) │ │ +│ │ 3. commitment = NoteCommit(esk, ...) │ │ +│ └──────────┬────────────────────────────────┘ │ +│ │ │ +│ ▼ │ +│ ┌────────────────────────────┐ │ +│ │ WASM Module (snap-n-pull) │ │ +│ │ - Rust cryptographic core │ │ +│ │ - HeadstashWallet │ │ +│ │ - generate_note_data() │ │ +│ └────────────┬───────────────┘ │ +│ │ │ +│ ▼ │ +│ ┌──────────────┐ │ +│ │ esk.fill(0) │ │ +│ │ Clear secret │ │ +│ │ from memory │ │ +│ └──────────────┘ │ +└───────────────────────────────┬─────────────────────────────┘ + │ + │ Returns: { nullifier, commitment, pk } + │ + ▼ +┌─────────────────────────────────────────────────────────────┐ +│ dApp (Frontend) │ +│ - Receives nullifier + commitment + pk │ +│ - Generates ZK proof (separate step) │ +│ - Broadcasts claim transaction to chain │ +└─────────────────────────────────────────────────────────────┘ +``` + +**Critical Security Note:** The secret key (esk) is the root of all cryptographic operations. It must be obtained first from MetaMask's BIP-32 derivation, then used to derive both the nullifier and commitment sequentially. The key is never stored and is cleared from memory immediately after use. + +--- + +## Core Components + +### 1. MetaMask Snap Package (`zk-packages/snap`) + +**Location:** `zk-packages/snap/src/` + +#### File Structure + +``` +zk-packages/snap/src/ +├── index.tsx # RPC entry point, WASM initialization +├── rpc/ +│ └── gn.tsx # generateNullifier RPC handler +├── utils/ +│ ├── getSk.tsx # BIP-32 key retrieval from MetaMask +│ ├── getPk.tsx # Public key derivation +│ ├── nullifier.tsx # Nullifier generation via WASM +│ └── initialiseWasm.ts # WASM module initialization +└── package.json # Snap manifest +``` + +#### Key Functions + +**`index.tsx` - RPC Router** + +```typescript +export const onRpcRequest: OnRpcRequestHandler = async ({ request, origin }) => { + const wasmModule = await ensureWasmInitialized(); + + switch (request.method) { + case 'generateNullifier': { + // Validate params + const params = request.params as GenerateNullifierParams; + // Generate nullifier + return await gn(wasmModule, params, origin); + } + default: + throw new Error(`Method not found: ${request.method}`); + } +}; +``` + +**`rpc/gn.tsx` - Nullifier Generation Handler** + +```typescript +export async function gn( + wasm: InitOutput, + params: GenerateNullifierParams, + origin: string, +): Promise { + // 1. Show confirmation dialog + const approved = await snap.request({ method: 'snap_dialog', ... }); + if (!approved) throw new Error('User rejected'); + + // 2. Retrieve secret key (TRANSIENT) + const sk = await getSk(); + + // 3. Derive public key + const pk = await getPk(sk); + + // 4. Generate nullifier and commitment + const nullifierData = await generateNullifier(wasm, sk, noteInputs); + + // 5. Clear secret key from memory + sk.fill(0); + + // 6. Return only public data + return { + nullifier: nullifierData.nullifier, + commitment: nullifierData.commitment, + pk, // Public key - safe to reveal + }; +} +``` + +**`utils/getSk.tsx` - Secret Key Retrieval** + +Uses `snap_getBip32Entropy` as per [MetaMask Snaps API Reference](https://docs.metamask.io/snaps/reference/snaps-api/#snap_getbip32entropy): + +```typescript +export async function getSk(): Promise { + // Request BIP-32 entropy from MetaMask + const entropyResult = await snap.request({ + method: 'snap_getBip32Entropy', + params: { + path: ['m', "44'", "133'", "0'", "0'", "0'"], + curve: 'secp256k1', + }, + }); + + // Convert hex to bytes + const privateKeyBytes = new Uint8Array(32); + for (let i = 0; i < 32; i++) { + privateKeyBytes[i] = parseInt(entropyResult.privateKey.substr(i * 2, 2), 16); + } + + return privateKeyBytes; +} +``` + +**Path Explanation:** `m/44'/133'/0'/0'/0'` + +- `44'` - BIP-44 purpose +- `133'` - Zcash coin type (placeholder for Terp Network) +- `0'` - Account index +- `0'` - Change index +- `0'` - Address index + +**`utils/getPk.tsx` - Public Key Derivation** + +```typescript +export async function getPk(sk: Uint8Array): Promise { + const { secp256k1 } = await import('@noble/curves/secp256k1'); + const publicKey = secp256k1.getPublicKey(sk, true); // compressed + return Buffer.from(publicKey).toString('hex'); +} + +export async function pkToAddress(pk: string): Promise { + const { secp256k1 } = await import('@noble/curves/secp256k1'); + const { keccak_256 } = await import('@noble/hashes/sha3'); + + // Get uncompressed public key + const pkBytes = Buffer.from(pk, 'hex'); + const uncompressed = secp256k1.ProjectivePoint.fromHex(pkBytes).toRawBytes(false); + + // Keccak256 hash (Ethereum-style) + const hash = keccak_256(uncompressed.slice(1)); + + // Take last 20 bytes + const address = hash.slice(-20); + return '0x' + Buffer.from(address).toString('hex'); +} +``` + +**`utils/nullifier.tsx` - Nullifier Generation** + +```typescript +export async function generateNullifier( + wasm: InitOutput, + esk: Uint8Array, + noteInputs: NoteInputs, +): Promise { + const eskHex = Buffer.from(esk).toString('hex'); + const { WebWallet } = wasm; + + // Create temporary wallet instance + const wallet = await WebWallet.new('test', 'http://localhost:8080', null, null); + + // Store note (triggers generation) + await wallet.gen_claim( + 'temp_headstash_id', + eskHex, + noteInputs.rho, + noteInputs.fdi, + noteInputs.recp, + noteInputs.v.toString(), + noteInputs.nd, + noteInputs.rseed, + ); + + // Retrieve generated note data + const notesJson = await wallet.list_unspent_notes('temp_headstash_id'); + const notes = JSON.parse(notesJson); + const note = notes[0]; + + return { + nullifier: note.nullifier, + commitment: note.commitment, + nk: note.nk, + }; +} +``` + +--- + +### 2. WASM Cryptographic Core (`zk-crates/snap-n-pull`) + +**Location:** `zk-crates/snap-n-pull/src/` + +#### Module Structure + +``` +zk-crates/snap-n-pull/src/ +├── lib.rs # Root module, Network enum +├── wallet/ +│ ├── mod.rs # Wallet module exports +│ ├── wallet.rs # HeadstashWallet implementation +│ ├── headstash.rs # NoteData, HeadstashApiDbInstance +│ └── bindgen/ +│ ├── mod.rs +│ └── headstash.rs # WebWallet WASM bindings +├── client.rs # HeadstashClient (gRPC) +└── crypto.rs # Encryption/decryption for nullifier sync +``` + +#### Core Types + +**`HeadstashWallet` - Main Wallet Structure** + +```rust +pub struct HeadstashWallet { + /// Internal database for note data + pub(crate) db: Arc>, + /// Network configuration + pub(crate) network: Network, + /// gRPC client for headstash API + pub(crate) client: Option, +} + +impl HeadstashWallet { + /// Generate nullifier and commitment for a note + pub fn generate_note_data( + &self, + esk: EligibleSk, + rho: Rho, + fdi: u64, + recp: &[u8], + hv: HeadstashValue, + rseed: [u8; 32], + ) -> Result<(NullifierDerivingKey, Nullifier, NoteCommitment), Error> { + // Derive nullifier key: nk = HKDF(esk, rho) + let nk = NullifierDerivingKey::derive_from(esk, rho); + + // Create note + let recp = RecpAddr::try_from(recp)?; + let rseed = RandomSeed::from_bytes(rseed, &rho)?; + let (v, nd) = hv.into_parts(); + let note = Note::from_parts(recp, v, nd, fdi, esk, rho, rseed)?; + + // Derive nullifier and commitment + let nullifier = note.nullifier(); + let commitment = note.commitment(); + + Ok((nk, nullifier, commitment)) + } +} +``` + +**`WebWallet` - WASM Bindings** + +```rust +#[wasm_bindgen] +pub struct WebWallet { + inner: HeadstashWallet, +} + +#[wasm_bindgen] +impl WebWallet { + #[wasm_bindgen(constructor)] + pub async fn new( + network: &str, + headstash_api_url: &str, + cosmos_grpc_url: Option, + db_bytes: Option>, + ) -> Result { ... } + + /// Store note and generate nullifier/commitment + pub async fn gen_claim( + &self, + headstash_id: String, + esk_hex: String, + rho_hex: String, + fdi: u64, + recp_hex: String, + value_amount: u64, + value_denom: String, + rseed_hex: String, + ) -> Result<(), Error> { ... } + + /// List unspent notes (includes nullifiers) + pub async fn list_unspent_notes(&self, headstash_id: String) -> Result { ... } +} +``` + +**`NoteData` - Note Information** + +```rust +#[derive(Debug, Clone)] +pub struct NoteData { + /// Nullifier deriving key + pub nk: NullifierDerivingKey, + /// The nullifier + pub nullifier: Nullifier, + /// The note commitment + pub commitment: NoteCommitment, + /// The value + pub hv: HeadstashValue, + /// Fixed denomination index + pub fdi: u64, + /// Spent status + pub spent: bool, +} +``` + +--- + +## Cryptographic Flow + +### Sequential Derivation (Critical Security Property) + +**The secret key (esk) must be used FIRST to derive all other values:** + +``` +esk (secret key - 32 bytes from BIP-32) + │ + │ ← MUST obtain esk before any derivations + │ + ├─────────────────────────────────────┐ + │ │ + ▼ ▼ +getPk(esk) generateNullifier(esk, ...) + │ │ + │ │ ← esk is input to both paths + │ │ + │ ▼ + │ nk = HKDF(esk, rho) + │ │ + │ │ (Poseidon-based HKDF) + │ │ + │ ▼ + │ nullifier = PRF_nf(nk, rho, psi) + │ │ + │ │ (Poseidon PRF) + │ │ + ▼ ▼ +pk (public key) commitment = NoteCommit(esk, fdi, nd, v, recp, rho, rseed) + │ │ + │ │ (Sinsemilla CommitDomain) + │ │ + └─────────────┬───────────────────────┘ + │ + ▼ + esk.fill(0) ← Clear secret key from memory + │ + ▼ + Return: { nullifier, commitment, pk } +``` + +### Key Derivations + +**1. Nullifier Deriving Key (nk)** + +```rust +// HKDF using Poseidon +nk = hdkf_pallas(esk_to_base(&esk), rho.into_inner()) +``` + +**2. Nullifier** + +```rust +// PRF using Poseidon +nullifier = prf_nf(nk.inner(), rho.into_inner(), psi) +``` + +**3. Note Commitment** + +```rust +// Sinsemilla CommitDomain +commitment = SinsemillaCommitDomain::commit( + recp, v, nd, fdi, esk, rho, rseed, rcm +) +``` + +**Important:** Both nullifier and commitment depend on `esk`. The secret key must be retrieved once and used for both derivations, not retrieved separately for each. + +--- + +## API Reference + +### JSON-RPC Methods + +#### `generateNullifier` + +Generate note nullifier and commitment for a headstash claim. + +**Request:** + +```typescript +{ + method: 'wallet_invokeSnap', + params: { + snapId: 'npm:@terpnetwork/headstash-snap', + request: { + method: 'generateNullifier', + params: { + headstashId: string, + noteInputs: { + recp: string, // Recipient address (hex) + nd: string, // Denomination (e.g., "uterp") + v: string, // Value amount + fdi: number, // Fixed denomination index + rho: string, // Randomness (32 bytes hex) + rseed: string // Random seed (32 bytes hex) + } + } + } + } +} +``` + +**Response:** + +```typescript +{ + nullifier: string, // Note nullifier (32 bytes hex) + commitment: string, // Note commitment (32 bytes hex) + pk: string // Public key (33 bytes hex) - SAFE TO REVEAL +} +``` + +**Example:** + +```javascript +const response = await window.ethereum.request({ + method: 'wallet_invokeSnap', + params: { + snapId: 'npm:@terpnetwork/headstash-snap', + request: { + method: 'generateNullifier', + params: { + headstashId: 'terp1contract123...', + noteInputs: { + recp: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', + nd: 'uterp', + v: '1000000', + fdi: 42, + rho: 'a1b2c3d4e5f6...', // 64 hex chars (32 bytes) + rseed: 'f1e2d3c4b5a6...', // 64 hex chars (32 bytes) + }, + }, + }, + }, +}); + +// response = { nullifier, commitment, pk } +``` + +--- + +## Security Guarantees + +### What the Snap NEVER Does + +❌ **Store the secret key** - Keys are only requested when needed +❌ **Log the secret key** - No logging of sensitive material +❌ **Return the secret key** - Only public outputs returned +❌ **Transmit the secret key** - Never sent over network +❌ **Store the seed phrase** - Managed by MetaMask only +❌ **Persist keys to disk** - All operations in-memory +❌ **Reveal the secret key in note records** - Only public key is stored + +### What the Snap DOES + +✅ **Request key transiently** - Only when generating nullifiers +✅ **Use key temporarily** - For cryptographic operations only +✅ **Clear key immediately** - `esk.fill(0)` after use +✅ **Return public outputs** - nullifier, commitment, pk only +✅ **Show user confirmation** - Before every operation +✅ **Derive public key** - For verification purposes only +✅ **Store only public key** - In spent note records for verification + +### Privacy Properties + +**Unlinkability:** The nullifier reveals nothing about: + +- The eligible address (epk) +- The secret key (esk) +- Other nullifiers generated by the same user +- The recipient address (recp) - binding happens via proof + +**Double-Spend Prevention:** Each note has a unique nullifier: + +- Derived deterministically from esk + note data +- Impossible to alter inputs and reuse a nullifier +- Tracked on-chain in spent-nullifier list + +**No On-Chain Association:** The claiming transaction reveals: + +- Nullifier (unlinkable to epk) +- Commitment (unlinkable to note details) +- Public key (unlinkable to epk) +- Recipient (recp) - intentionally public + +But does NOT reveal: + +- Eligible address (epk) +- Secret key (esk) +- Which specific allocation is being claimed +- Link between multiple claims by the same user + +--- + +## Workspace Integration + +### Cohesive Product Suite + +The MetaMask Snap is part of a larger workspace providing complete headstash interaction: + +``` +┌─────────────────────────────────────────────────────────────┐ +│ HEADSTASH PRODUCT SUITE │ +├─────────────────────────────────────────────────────────────┤ +│ │ +│ ┌───────────────────────────────────────────────────────┐ │ +│ │ 1. ZK-Headstash Circuit (zk-crates/zk-headstash) │ │ +│ │ - Halo2 circuit implementation │ │ +│ │ - Key pairing verification (esk, epk) │ │ +│ │ - HKDF derivation (nk from esk + rho) │ │ +│ │ - Nullifier generation (PRF_nf) │ │ +│ │ - Note commitment (Sinsemilla) │ │ +│ │ - Merkle tree inclusion proofs │ │ +│ └───────────────────────────────────────────────────────┘ │ +│ │ │ +│ │ proving key, verification key │ +│ │ │ +│ ┌───────────────────────────────────────────────────────┐ │ +│ │ 2. Snap-n-Pull WASM (zk-crates/snap-n-pull) │ │ +│ │ - Rust cryptographic core │ │ +│ │ - HeadstashWallet │ │ +│ │ - Note management │ │ +│ │ - Nullifier generation (without proof) │ │ +│ │ - wasm-bindgen exports for browser use │ │ +│ └───────────────────────────────────────────────────────┘ │ +│ │ │ +│ │ WebWallet API │ +│ │ │ +│ ┌───────────────────────────────────────────────────────┐ │ +│ │ 3. MetaMask Snap (zk-packages/snap) │ │ +│ │ - TypeScript snap implementation │ │ +│ │ - BIP-32 key derivation via snap_getBip32Entropy │ │ +│ │ - User confirmation dialogs │ │ +│ │ - WASM integration │ │ +│ │ - JSON-RPC interface (generateNullifier) │ │ +│ └───────────────────────────────────────────────────────┘ │ +│ │ │ +│ │ snap API │ +│ │ │ +│ ┌───────────────────────────────────────────────────────┐ │ +│ │ 4. Frontend Dashboard (egui/web) │ │ +│ │ - Headstash marketplace │ │ +│ │ - Wallet connection (Keplr, MetaMask) │ │ +│ │ - Smart account authentication │ │ +│ │ - Claim interface │ │ +│ │ - Transaction broadcasting │ │ +│ └───────────────────────────────────────────────────────┘ │ +│ │ +│ ┌───────────────────────────────────────────────────────┐ │ +│ │ 5. Headstash Smart Contract (Rust/CosmWasm) │ │ +│ │ - Merkle root storage │ │ +│ │ - Spent nullifier tracking │ │ +│ │ - Proof verification │ │ +│ │ - Token distribution │ │ +│ └───────────────────────────────────────────────────────┘ │ +│ │ +│ ┌───────────────────────────────────────────────────────┐ │ +│ │ 6. Headstash API (Verifiable Service) │ │ +│ │ - Merkle tree queries │ │ +│ │ - Note discovery │ │ +│ │ - Nullifier state sync │ │ +│ │ - Fee grant support │ │ +│ └───────────────────────────────────────────────────────┘ │ +│ │ +└─────────────────────────────────────────────────────────────┘ +``` + +### Integration Flow + +**1. User discovers eligible headstash (Frontend)** + +- Query headstash API for available instances +- Check merkle tree for eligible allocations +- Display claimable notes + +**2. User initiates claim (Frontend → Snap)** + +- Frontend calls `generateNullifier` RPC method +- Provides public note inputs (recp, nd, v, fdi, rho, rseed) + +**3. Snap generates nullifier (Snap → WASM)** + +- Retrieves esk from MetaMask BIP-32 derivation +- Calls WASM `generate_note_data()` +- Returns nullifier, commitment, pk + +**4. Frontend generates proof (Frontend → Circuit)** + +- Uses nullifier/commitment as public inputs +- Generates ZK proof of ownership and merkle inclusion +- Proof verifies: knows esk for epk, note is in tree + +**5. Frontend broadcasts claim (Frontend → Chain)** + +- Submits: nullifier, commitment, proof, publicInputs +- Smart contract verifies proof +- Contract checks nullifier uniqueness +- Contract distributes tokens to recp + +--- + +## Build and Deploy + +### Prerequisites + +- Node.js 18+ +- Yarn or npm +- wasm-pack +- Rust toolchain + +### Build WASM Module + +```bash +cd zk-crates/snap-n-pull +wasm-pack build --target web --out-dir ../../zk-packages/snap/wasm +``` + +### Build Snap + +```bash +cd zk-packages/snap +yarn install +yarn build +``` + +### Test Locally + +```bash +# Serve snap locally +yarn serve + +# In another terminal, run test dApp +cd examples/test-dapp +yarn dev +``` + +### Deploy to npm + +```bash +# Update version in package.json +yarn version --new-version 1.0.0 + +# Publish +yarn publish --access public +``` + +--- + +## References + +**Documentation:** + +- [MetaMask Snaps API](https://docs.metamask.io/snaps/) +- [BIP-32 Entropy API](https://docs.metamask.io/snaps/reference/snaps-api/#snap_getbip32entropy) +- [Headstash Spec](./spec.md) +- [Frontend Guide](./frontend.md) + +**Research:** + +- [Zcash Orchard Protocol](https://zips.z.cash/protocol/protocol.pdf#orchard) +- [ZK-ECDSA (0xPARC)](https://0xparc.org/blog/zk-ecdsa-1) +- [Stealthdrop](https://github.com/stealthdrop/stealthdrop) +- [Halo2 ECC](https://github.com/axiom-crypto/halo2-lib) + +**Copyright:** Based on ChainSafe Systems' Zcash WebWallet (Apache-2.0, MIT) + +--- + +**Version History:** + +- **v2.0** (2025-01-20) - Complete rewrite for Headstash integration with actual implementation +- **v1.0** (2024) - Initial Zcash-based specification (deprecated) diff --git a/docs/zk-headstash/on-chain-verification.md b/docs/zk-headstash/on-chain-verification.md new file mode 100644 index 0000000..c062519 --- /dev/null +++ b/docs/zk-headstash/on-chain-verification.md @@ -0,0 +1,22 @@ + +# On-Chain Verification + +## Option 1: Custom WasmVM + + + + +## Option 2: Vote-Extension + Custom Module + +- x/headstash + - interface with wasm module + vote extensions + - stored headstash contract proofs recorded by vote-extensions to state, accessable by cosmwasm contract queries + - calls sudo entrypoint for headstash contract to process claims each block + +headstash-api: + +- api service performing proof validation and signature aggreagation. + +headstsah-sidecar: + +- lightweight runtime validators use that communicates with headstash-api aggregates proof claims , includes and diff --git a/docs/zk-headstash/smart-contracts.md b/docs/zk-headstash/smart-contracts.md new file mode 100644 index 0000000..7eafd93 --- /dev/null +++ b/docs/zk-headstash/smart-contracts.md @@ -0,0 +1,144 @@ +# **Cw-Headstash – on-chain manifold + +**A modular, BLS12-381 threshold-authenticated smart contract authenticator on a custom Cosmos SDK chain using CosmWasm Authenticators (AnteHandler extension)** + +### Core Purpose + +- off-chain service operator set signature authentication +- proof verification +- headstash instance nullifier set storage medium +- token factory middleware for escrow and distribution + +--- + +### Architecture Overview + +``` +[CosmWasm Authenticator] ←─── Custom AnteHandler (x/authenticator) + │ + ├── BLS12-381 Threshold Signature Verification: Off-chain proof verification + ├── Proof verification + └── State Management (nullifiers, roots, aggregated keys) +[Headstash Instance] ←─── Instantiated per distribution campaign + ├── Genesis Merkle Root (SinsemillaHashDomain) + ├── Nullifier Set (double-spend prevention) + ├── Token Strategy: New (TokenFactory) or Existing denom + └── Funds held or minted on-demand + +``` + +--- + +### Key Features & Precise Behavior + +#### 1. CosmWasm Authenticator Lifecycle (Modular Authentication) + +The contract implements the full `btsg_account::traits::BtsgAccountTrait` (or equivalent `CosmWasmAuthenticator` interface) and responds to these sudo callbacks: + +| Callback | Purpose | Implementation Detail | +|---------------------------|---------------------------------------------------------------------------------------------|-----------------------| +| `OnAuthenticatorAdded` | Register new BLS aggregate keyset + proof-of-possession | Validates each operator's PoP, stores `WavsOperatorSet` | +| `OnAuthenticatorRemoved` | Clean up params on removal | Clears state | +| `Authenticate` | **Fast path**: Verify BLS12-381 aggregate signature over tx messages | Uses `bls12_381_aggregate_g1/g2` + pairing check | +| `Track` | No-op (can be used for analytics) | Returns OK | +| `ConfirmExecution` | **Slow path**: Execute + verify zk-proof batch (nullifier claims) | Calls `extended_authenticate` → verifies Halo2/Plonk proofs + nullifiers | + +> This enables **dual-mode authentication**: simple txs use fast BLS, private claims use zk + BLS. + +#### 2. BLS12-381 Aggregated Threshold Key Management + +- Uses **non-programmable aggregation** (simple sum in G1) – sufficient for known operator sets. +- Each operator submits: + - `pubkey ∈ G1` (hex-encoded compressed) + - `proof_of_possession = sk · H(pk)` in G2 +- On rotation: requires **signed message by current threshold** approving new keyset + new PoPs. +- `WavsOperatorSet` stored immutably per nonce → supports **key rotation with versioning**. + +#### 3. Token Strategy: New vs Existing (Fully Enforced) + +```rust +#[cw_serde] +pub enum TokenStrategy { + NewFungible(NewTokenConfig), // Uses TokenFactory → creates + mints + ExistingFungible(String), // Uses pre-existing denom → must pre-fund +} +``` + +**Strict Enforcement at Instantiate & Claim Time**: + +| Strategy | Instantiate Behavior | Claim-Time Checks | +|--------------------|-----------------------------------------------------------|---------------------------------------------------------| +| `NewFungible` | Emits `CreateDenom` + `MintTokens` via TokenFactory msgs | No balance check needed (mints on demand) | +| `ExistingFungible` | Requires contract pre-funded with exact denom | `query_balance(contract, denom) >= total_claim_amount` | + +→ **Fails early** if insufficient balance for `ExistingFungible` before processing any claims. + +#### 4. Privacy-Preserving Distribution (Headstash Core) + +Each `HeadstashNote` contains: + +```rust +pub struct HeadstashNote { + pub nullifier: Binary, // zk-SNARK nullifier (prevents double claim) + pub recipient: String, // bech32 address to receive funds + pub amount: Coin, // amount + denom + pub proof: Binary, // Halo2/Plonk proof (groth16 or ultra-plonk) + pub public_inputs_hash: Binary, // Recommended: single Poseidon/Keccak hash of all public inputs +} +``` + +**Execution Flow in `ProcessHeadstash` / `ConfirmExecution`**: + +1. For each claim: + - Verify nullifier not in `NULLIFIERS` map → insert atomically + - (Optional) Verify Merkle inclusion proof against `GENESIS_TREE_ROOT` + - Verify zk-proof using pre-loaded verifying key (stored in contract or passed) + - **Critical**: Use **single hashed public input** (see optimization below) +2. Aggregate all `BankMsg::Send` or `TokenFactoryMsg::MintTokens` +3. Revert entire tx on any failure (nullifier duplicate, bad proof, insufficient balance) + +#### 5. On-Chain Verification Optimization (Mandatory for Mainnet) + +**Problem**: Original circuit had 254+ public inputs → ~700k–1M gas per verification +**Solution**: Hash all public inputs into **one** → reduces to ~120–180k gas + +**Recommended Public Inputs Hash (inside circuit)**: + +```rust +let public_inputs = [ + genesis_root, + nullifier, + commitment, + recipient_commitment, + amount, + token_denom_hash, + merkle_path_hint, + // ... all other public values +]; + +let public_hash = poseidon_hash(public_inputs); // or keccak256 +layouter.constrain_instance(public_hash.cell(), primary, 0)?; +``` + +→ Contract verifies only **one** public input = hash of all values +→ Off-chain verifier reconstructs and re-hashes to validate correctness + +**75–80% gas reduction** → enables mainnet-scale private airdrops. + +#### 6. Smart Account & DAO Integration + +- Contract self-registers as authenticator in `instantiate()` via: + + ```rust + MsgAddAuthenticator { + authenticator_type: "CosmwasmAuthenticatorV1", + data: CosmwasmAuthenticatorInitData { contract: self, params: WavsOperatorSet } + } + ``` + +- Any DAO or smart account can now use **BLS threshold signatures** instead of EOAs. +- Supports **AllOf(passkey, wallet, DAO vote)** composite authenticators via macro injection. + +### Proving Keys + +We store the viewing keys of a headstash circuit inside a cosmwasm contract for proof verification. diff --git a/docs/zk-headstash/spec.md b/docs/zk-headstash/spec.md new file mode 100644 index 0000000..b17113a --- /dev/null +++ b/docs/zk-headstash/spec.md @@ -0,0 +1,630 @@ + +# Spec: Zk-Airdrop Claiming +> +> **GOAL: Allow eligible headstash members to use zk-proofs to claim partial amounts of their rewards over time.** + +## Context + +The Headstash Contract is our airdrop framework designed to let users claim tokens based on their ownership of addresses from other blockchain networks (like Ethereum or Solana). These external addresses are pre-mapped as "eligible" for claiming specific token allocations, allowing cross-chain airdrops without requiring users to hold native tokens on the claiming chain. In order to claim, users must prove they own the secret of any eligible addresses secret key `esk`. Creating a message `m` that includes the recipient address `recp` —the address on the native chain where they'll receive the claimed tokens. + +```math +\sigma = \text{Sign}_{\text{elig}_{\text{sk}}}\big( H(m) \big), \quad \text{where } \text{recp} \in m +``` + +
+ +> **This method creates an on-chain association between the eligible account `epk`, and the claiming address `recp`, which reveals who is claiming what. we want to prevent this.** + +
+ +*In order to prevent this association between verifying ownership & claiming tokens, there are 3 major obstacles:* + +### Q: How Does Someone Prove They Own An Eligible Wallet Without Revealing Their Signature? + +**A: proof of ownership**: A circuit can provide certainty that an individual knows a private key paired with a public key of an eligible account with certainty, via deterministic properties of a hash-based key deriving function (hkdf). + +### Q: How can someone prevent leaking where their claimed funds end up, if the total amount & distributions allocated are public? + +**A: Fixed Denomination Notes**: notes function as private UTXNs (Unspent Transaction Notes) that represent claims to portions of the airdropped tokens. Each note contains sensitive data that must remain private except for certain public components used for verification and transaction processing. Predetermined sets of notes are bootstrapped (generated) in a non-interative manner, allowing for partial claims of genesis allocations, where eligble claimers can distribute allocations over a span of time rather than immediately, to multiple different accounts as they choose. + +### Q: How are users prevented from claiming more funds then they are allocated? + +**A:nullifiers**: Deriving from private data within a note, collision-resistant nullifiers paired with note-commitments will prevent notes from being double-spent.note nullifiers derive from completely deterministic sources, such that it is impossible to alter one of the PRF inputs, that will result in the ability to reuse a note that has been spent. + +> **Notes About Design** +> These obstacles are not unique to our requirements, and have been solved concretely by multiple teams, one for example is the zcash's sprout, sapling, and orchard protocols. We are designing our protocol for private airdrops so that we can leverage a large majority of the work done by the cypherpunk community, however there are some discrepancies we need to design around. Specifically: +> +> **1. Actions will be sending tokens to destination on a transparent ledger** +> When someone is claiming, they will be revealing how much and to whom the claimed tokens are going to *(along with the other crucial components like nullifiers & note commitments)*. +> +> **2. Viewing key magic is simplified for this iteration** +> We do not use diversifiers, viewing-keys & spending-keys as defined in multiple Zcash protocols, which is how note-commitments and nullifiers are +> derived. We instead implement a simplified version that satisfies our requirements, without sacraficing the core privacy +> guarantees that are available with use of halo2 circuits. +> +## Requirements + +- **Proof Of Ownership: Hkdf + key pairing:** +we must constrain a reproducible hash-based key derivation was used to generate & derive keys unique to each notes from entropy & known inputs. +we must constrain a derived key is know from given inputs for proof of ownership, and also constrain a key pair (epk,esk) are paired together by divison of curves known G to expected constant. +- **Proof Of Inclusion: Sinsemilla Merkle Trees:** +we must constrain a note is included in a root path for a specific headstash distribution instance, and in future can implement respendable note-commitments + global nullifier store for multiple headstashes. + +- **Nullifier & Note Commitments: Private Double Spend Prevention** +- **On-Chain Verification: Zk-WasmVm:** Application layer state machine for spent-nullifiers list, token mint & distribution list, and verification key storage,access,and use by wasmvm. +- **Verifiable Service in TEE:** Certainty in transport & offchain runtime +- **Randomness Generators:** Middleware for generating or acessing randomness oracles during proof generation. +- **Metamask Snap Support:** Metamask plugin for deterministic proof-input preparation & generation wallet API. + +___ + +## Hashes,Keys,Fields,Curves + +### Keys + +We have 3 main types of keys involved in this process. + +1. **Eligible Keys:** *the keys that has a public allocation set for them, and is what we must keep any signature or hash derived from private, in order to retain privacy.* +2. **Recipient Keys:** *the keys that will be recieving the public allocations claimed by the eligible keys* +3. **HKDF keys:** *the keys that are deterministically derived from private inputs of a circuit* + +> HKDF keys are specifically used to make our proof of ownership step effecient & feasable in-circuit. + +| # | Key type | Curve used | Primary crate | Public / Private usage | Typical Rust type (example) | Key‑derivation notes | +|---|------------------|------------|--------------|------------------------|-----------------------------|----------------------| +| 1 | **Eligible Key** | `secp256k1` | `k256` (or `secp256k1`) | Public key is **published** in the allocation; **private key + any signatures / hashes must stay secret** to preserve privacy. | `k256::ecdsa::SigningKey` / `k256::ecdsa::VerifyingKey` | - | +| 2 | **Recipient Key** | secp256k1 | `cosmwasm_std` | Public key is **the recp** key the claimed allocation. This is the raw bech32 bytes of an account for the chain we are claiming a headstash on.| May be pre‑generated or created on‑the‑fly; no HKDF involved. | In-circuit we constrain a poseidon hash of a raw canonical bech32 addr represented in 2x16 byte limbs | +| 3 | **HKDF‑derived Key** | `pallas` | `pasta-curves` | Keys derived from hashing input values. Used for encrypting data & *"pivoting"* from one cryptographic field to anothe.r | | Deterministically derived via **poseidon-based** HKDF from circuit‑private inputs (e.g., a seed, a note commitment, a nullifier). The derived scalar is mapped to a pallas point using the crate’s `generator` | + +> NOTE: zcash orchard protocol implements key derivation for viewing, authorization, and privacy retention purposes. Our initial scope removed the use of viewing or authorization keys,however upcoming interations will reimplement viewing keys for full disclosure selection to note data. + +### Curves + + Our circuits primary curve is Pallas. We must mask forien curves field elements as expected field elements of our circuit native curve, and use Foreign Field Arithmetic aware logic. + +| Chip | Field | Curve| Value | | +|----------|-------------|--------------------------------------|--------------------------------------|------------| +| **Sinsemilla**| **Base(`Fp`)** | **Pallas** | `p = 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001`| | +| **Sinsemilla**| **Scalar(`Fq`)** | **Pallas** | `q = 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001`| | +| **Sinsemilla**| **Point(`Ep`)** | **Pallas** | - | | +| **Hkdf_Fp** | **Base(`Fp`)** |**Secp256k1** | `p = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f`| | +| **Hkdf_Fq**| **Scalar(`Fq`)** | **Secp256k1** |`q = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141`| | + +## Hashes: Nullifier Key Generation Via HKDF + +- *every note must have a way to derive a unique identifier that proves the note has been spent, without revealing which note it was or linking multiple spends together.* + +Two core business logic requirement in the headstash circuit are to have a feasable way to verify that the owner of the `epk` is authorizing the spend of a specific note in a headstash instance, and prevent double-spending of headstash allocations. Normal ECDSA verification for field curves are computationally heavy in circuit, & generate extremely large proof sizes not compatible with on-chain gas limits & a nice UX. + +> ### **To prevent double-spending of headstash allocations, a nullifier must be:** +> +> - **unique per note** +> - **unlinkable to the owner’s address** +> - **computable only by the note owner** +> - **resistant to tampering, especially against attacks where an adversary might attempt to redirect funds during transmission.** + +When a note is is being spent, the owner generates a nullifier & note commitment, using carefully structured derivation process that results in two values `nc` & `null` that be shared publically without revealing any association about the sensitive data we are keeping private that note represents and was derived from. + +Headstashes use a HKDF generated nullifier key `nk` seeded from private input, powering the key separation, verifiablility, & cryptographic binding of the nullifier and note commitment. +**Users end up proving they know the key pair `esk,epk` by providing the nullifier as a public input into the circuit when generating a proof.** + +This lets the circuit use the known curve equation & generator points to constrain that the public and private key are either mathematically paired together or not. + +### Derivation + +> `TLDR:` +> +> 1. **select note**: this determines `v`,`nd`,`fdi`,`epk||esk`, `recp`, `rho` & `psi` +> 2. **prepare inputs**: values need some packaging into formats comaptible with our circuit. All clients generating proofs must prepare: +> - `v`: fully padded `u64` value +> - `fdi`: fully padded `u64` value +> - `nd`: Blake3 Hash of token denomination, with top-most byte cleared to fit as Pallas field element. +> - `recp`: Posiedon Hash of the recipients canonical bech32 addr in 2x16 byte chunks. +> - `esk`: the Posiedon Hash of `esk`, where `esk` is a 3x88 bit pallas base field elemements representing the esk. +> +> 3. **derive note-commitment**: deriving `cm` requires `nd`, `v`, `fdi`,`recp`,`esk`, `rho`,`psi`,and blinded to r with`rcm`.\ +> Specifically, we use the sinsemilla CommitDomain hashing function to commit these values for creating a note commitment in that specified order. +> 4. **derive nullifier**: deriving the nullifier requires `nk`, `rho`,`psi`, and `cm`. Specifically: +> +> - a. hash the `(nk,hkdf_sk)` with `rho` via Posiedon +> - b. add hash output to `psi` +> - c. multiply scalar by NullifierK +> - d. add product to note-commitment + +**Headstashes derive from `esk`,*along with other private inputs a keypair `(nk)` that is on the pallas curve*.** + +Specifically, we hash the 3 88-bit limbs of an esk using poseidon,and hash this value `esk_pallas` along with `rho` using a domain-separated posideon hasher, cryptographically bind the nullifier to a specific fund destination. *This defends against a subtle but serious class of attacks man-in-the-middle modifications where an adversary intercepts a transaction and attempts to redirect funds to a different address. Because the nullifier is determined by the exact allocation & destination, any such alteration would result in a different derived `nk`, causing the proof to fail verification.* + +The following are inputs in the pseduo-random-function (prf) of deriving a nullifier key: + +```math +\begin{array}{lcl} +\begin{array}{ } +\textbf{Nullifier Key `nk` Derivation} +\end{array} +\\[10pt] +\textbf{Private Inputs} & +\begin{cases} +\mathsf{esk}\in \mathbb{F}_p &\text{Posiedon hash of 3x88bit limb representation of `esk` }\text{}\\[2pt] +\mathsf{rho}\in \mathbb{F}_p &\text{note randomness}\\[2pt] +% \mathsf{recp}^{\ast}\in \mathbb{F}_p &\text{(Posiedon Hash of recipient of notes token }nd\text{)}\\[2pt] +\end{cases} +\end{array} +``` + +```math +\begin{array}{lcl} +\begin{array}{ } +\textbf{NoteCommitment Derivation} +\end{array} +\\[10pt] +\textbf{Public (Instances)} & +\begin{cases} +\mathsf{nd}\in \mathbb{F}_p &\text{Blake3 hash $nd$, top 3 bits to fit on pallas curve }\text{}\\[2pt] +\mathsf{v}\in \mathbb{F}_p &\text{(fully padded u64 of value being spent in note)}\\[2pt] +\mathsf{recp}\in \mathbb{F}_p &\text{(recipient addr)}\\[2pt] +\end{cases} +\end{array} +``` + +```math +\begin{array}{lcl} +\textbf{Private (Witnesses)} & +\begin{cases} +\mathsf{fdi}\in \mathbb{F}_p &\text{fully padded u64 of fixed denomination index }fdi\text{}\\[2pt] +\mathsf{esk}\in\mathbb{F}_{\ell}&\text{( Posiedon hash of 3x88bit limb representation of `esk`)}\\[2pt] +\mathsf{{\psi }}\in \{0,1\}^{256}&:= \text{PRF}_{\text{PSI}}\!\bigl(\mathsf{rseed},\,\rho\bigr) \in \mathbb{F}_p,\\[4pt] +\mathsf{rho} & \text{note randomness} \\[6pt] +\mathsf{psi} & \text{private note randomness derived from rho} \\[6pt] +\mathsf{rcm} & \text{commitment trapdoor used for blinding} \\[6pt] +\end{cases} +\end{array} +``` + +```math +\begin{array}{lcl} +\begin{array}{ } +\textbf{Nullifier Derivation} +\end{array} +\\[10pt] +\textbf{Private Inputs} & +\begin{cases} +\mathsf{nk}\in\mathbb{F}_{\ell}&\text{( key derived from $ek$ for generating nullifier)}\\[2pt] +\mathsf{{\psi }}\in \{0,1\}^{256}&:= \text{PRF}_{\text{PSI}}\!\bigl(\mathsf{rseed},\,\rho\bigr) \in \mathbb{F}_p,\\[4pt] +\mathsf{rho}\\[6pt] +\mathsf{rcm} &:= \text{PRF}_{\text{RCM}}\!\bigl(\mathsf{rseed},\,\rho\bigr) \in \mathbb{F}_p,\\[6pt] +\end{cases} +\end{array} +``` + +### Hashing Functions + +#### Posiedon + +For effecieny in-circuit hashing, we are using Posiedon as the hkdf hashing algorithm. Poseidon is a ZK-friendly hash function used for nullifier derivation, note commitments. + + + +| use | context | | | || +|----------|---------------------------------|--------------------------------------|--------------------------------------|------------|--| +| `prf_nf` | |||| +| `esk_to_base` | |||| +| `recp_to_fp` | Convert `RecpAddr` into field element by hashing 2 part pallas represenation |||| +| `hdkf_pallas` | |||| + + +#### Blake3 + +For effecieny out of circuit, used as abci-like interface between token-denominations and inputs for `nd` into the circuit. Extremely , and we specifically drop 3 bits from the hash when describing an input, since the hashed values is a public known value we do not worry about the impact of collison resisance that occurs, and just specificy protocols to keep a map dedicated to the original values and their trimmed-hash representations. + + + +| use | context | | | || +|----------|---------------------------------|--------------------------------------|--------------------------------------|------------|--| +| `ultra_secure_random` | |||| +| `rho_from_secure_random` | |||| +| `NoteDenom::hash` | padded value used in proof generation |||| + +### Derivation Inputs + +| Components | Meaning | Type | Public / Private / Constant / Output | Derivation |Use | +|----------|---------------------------------|--------------------------------------|--------------------------------------|------------|--| +| `DST_HEADSTASH`| genesis tree dst hash | | **Constant** | constant in library | Genesis Trees | +| `DST_HKDF`| nullififer input dst hash | | **Constant** | constant in library | `hdkf_pallas` | +| `SECP256_GENERATOR` | generator point for secp256k1 curve | | **Constant** | constant in library | hkdf-Keypair | +| `PrfExpand::ORCHARD_ESK` | used for deriving a note `rseed` | | **Constant** | constant in library | `RandomSeed::esk_inner()` | +| `PrfExpand::ORCHARD_RCM` | deriving a notes cm trapdoor (used for blinding) |. | **Constant** | constant in library | `RandomSeed::rcm()` | +| `LEAF_PERSONALIZATION`| leaf hasher dst for sinsemilla hashdomain | | **Constant** | genesis merkle-tree | `leaf_hash` | +| `MERKLE_CRH_PERSONALIZATION`| hashing leaves | | **Constant** | constant in library | `MerkleHashOrchard::combine()`\ `HeadstashSuite::merkle_crh()` | +| `root` | Genesis Distribution Tree Root | `u64` | **Constant** | *sinsemilla::HashDomain* | +| `path` | leaf path to root of note being spent | [vestas::Affine;32] | **Private** | *sinsemilla::HashDomain* | +| `rho` | | | **Private** | generated by user | +| `rseed` | | | **Private** | generated by user || +| `psi` | Note Randomness | ` ` | **Private** |generated by user |Nullifier,hkdf-Keypair| +| `esk`| Eligible secret key | `bytes[32]` | **Private** | 3x 88bit limbs | Key-Pairing | +| `epk`| Eligible public key | `bytes[32]` | **Private** | 3x 88bit limbs | Key-Pairing | +| `fdi` | Fixed Denomination Index | `u64` | **Private** | *fully padded u64* | Nullifier | +| `v` | Note Value | `NoteValue(u64)` | **Public** | *fully padded u64* | Nullifier | +| `nd` | Note Denomination | `NoteDenom([u8; <128])` | **Public** | **blake3 Hash + top 3 bits** || +| `leaf` | Note Leaf | `bytes[32]` | **Private** | *sinsemilla::HashDomain* | +| `recp` | Recipient Address | `bytes[32]` | **Public** | | + +> in order to derive `psi` & `rcm`, we have a `rseed` that is a randomness source in a PRF, that expends into each. + +## Sinsemilla Merkle Trees: Inclusion Constraints + +Sinsemilla is a ZK-friendly hash function designed specifically for Pallas/Vesta curves. We use it for both genesis distribution tree (HashDomain) and note commitment tree (CommitDomain). + +### 1. Genesis Distribution Tree: `HashDomain` + +**This is the static, starting state of the headstash before any claims happen.** Its purpose is to allow a user to prove a specific address `epk` is how we mesh key ownership constraints with airdrop instance eligibility, without revealing which specific address or note being claimed exactly is. Each leaf is a commitment to the `HashDomain`,that is public & binding an eligible recipients balance for a single token balance, so we can derive the expected hash result in circuit. + +```math +\begin{array}{lcl} + \mathsf{m}=\text{Leaf}_{i,j}&= H_{\text{DST\_HKDF}}{\text{leaf}}\!\Bigl( + \underbrace{\text{epk}_{i}}_{\text{public address (sum of 3x88 Fp)}}\;\parallel\; + \underbrace{\text{nd}_{j}}_{\text{token identifier}}\;\parallel\; + \underbrace{\text{v}_{i,j}}_{\text{amount for addr}_{i}}\;\parallel\; + \underbrace{\text{fdi}_{j}}_{\text{fixed\_denom\_index}}\Bigr) +\end{array} +``` + +```math +\begin{aligned} + +\text{Root} + &= H_{\text{root}}\!\Bigl( + \{\,\text{Leaf}_{i,j}\mid + \text{addr}_{i}\in\text{Elig}, + \text{nd}_{j}\in\mathcal{T}\,\} + \Bigr) +\end{aligned} +``` + +
+ +| Symbol | Meaning | +|--------|---------| +| $$\text{Elig}$$ | Set of all public addresses receiving tokens | +| $$\mathcal{T}$$ | Set of token names being distributed | +| $$\text{epk}_{i}$$ | The *i*‑th address in `Elig`, expected as the sum of the 3x88 bit limb representation of itself | +| $$\text{nd}_{j}$$ | The *j*‑th token $\mathcal{T}$ hashed using a note denomination separation tag curve | +| $$\text{v}_{i,j}$$ | Amount of token *j* sent to address *i* | +| $$\text{fdi}_{j}$$ | Fixed denomination index for token *j*, always kept private and never revealed | +| $$H_{\text{DST\_HKDF}}{\text{leaf}}$$ | Hash function that creates a leaf from the concatenated fields | +| $$H_{\text{root}}$$ | (Merkle‑tree) hash that aggregates all leaves into the root | + +
+ +### Tree Genesis: Leaf Input Preparation + +A leaf is computed using the sinsemilla hashing function with the following input specification. Notice that we must perform some preparation before input into the hashing sequence expected, so that we can have optimized proofs: + +
+ +| Components | Meaning | Type | Public / Private / Constant / Output | Derivation | +|----------|---------------------------------|--------------------------------------|--------------------------------------|------------| +| `DST_HKDF` | | | **Constant** | | +| `epk` | Eligible public key | `bytes[32]` | **Public** | *sum of 3x88 pallas field element representation* | +| `fdi` | Fixed Denomination Index | `u64` | **Public** | *fully padded u64* | +| `v` | Note Value | `NoteValue(u64)` | **Public** | *fully padded u64* | +| `nd` | Note Denomination | `NoteDenom([u8])` | **Public** | *blake3 Hash + top 3 bits | + +
+ +> - **Denomination hashing** – Since the length of a denomination is unknown, we hash `nd` with **blake3** to obtain a 32‑byte digest. *Sinsemilla* expects a +> 253‑bit domain, so we simply clear the top three bits of the digest. The denomination is public, so smart contracts can map `nd` → `blake3(nd) & +> 0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` in O(1) time. +> +> - **Padding for `v` and `fdi`** – Both values are `u64` (max 160 bits when concatenated). For table look‑ups we left‑pad each to the byte length required by the hashDomain of Sinsemilla (e.g., 32 bytes). This ensures the inputs line up with the fixed‑size field elements used inside the circuit. +> +> - **`epk` handling for Sinsemilla compatibility** – `epk` is a 32‑byte public‑key representation. The value is interpreted as a set of foriegn field element limbs; since we are focused on secp256k1 curve, we can expect the sum of 3 limbs of 88 bits to always fit within the pallas curve, to then allow reduction for each 88bit string for linear operations within the curve structure. +> - **The Full key is required in‑circuit:** Even though `epk` is private for the prover, the circuit must receive the entire key as we need to enforce the relationship of the +> `hkd_sk` being derived from a `esk` thyat is paired with an `epk`. This guarantees that the HKDF‑derived key used in the protocol is indeed tied to +> the secret key `esk`. + + +> *This is how we enable non-interactive instances of headstash deployments, and can be optimized to bring more composability to these genesis distributions.* + +### Account Headstash Instance Yaml + +each accounts progress for claiming a headstash instance can be summed up into a single yaml definition: + +```yaml +id: "0" +balance: + - nd: "value1" + v: "value2" + - nd: "value3" + v: "value4" +spent: + - nd: "value5" + v: "value6" +``` + +This can be viewed as a "private key", as it contains sensitive information related to your headstash transactions that can break the privacy properties of your headstash claims. Its purpose is to keep accounts in sync across user devices, encrypting and transporting this file across devices. + +### note-commitments: futureproof system + +Note Commitments `cm` are also is disclosed publicly during claiming. They are derived from the private and public inputs of a note, allowing the origin of the claiming address to be private. note commitments are derived from both deterministic and non-deterministic inputs of a note, as we do not use `cm` for preventing double spends (this is what nullifiers are for). For our use, this note commitment tree can be expand on to rely on more, as for things such as true utxo function of headstash notes and other future iterations. +> +> q: how can we actually implement a note-commitment tree given our specification, and taking into account possible discrepencies with +> note-commitment generation timing between multiple parties?\ +> a: nullifiers are provided with note-commitments, and are batched process via vote-extensions, allow us to update the merkle root each block. + +> **q: do we damage the blinding of the rest of the inputs to the hashing function due to some being public and some being private?** +> +> a: no! thanks to the hardness of hashing functions, its unfeasable to retroactively derive the private inputs given all of the public inputs and the output hash. + +## Circuit: Chip Specs + +Our circuit currently is `K=17`. +Proof Size: Note expected proof size (~5KB for single proof) in verification section. + +### Foreign Field Arithmetic (FFA): Two-Level Representation + + Our circuit operates natively over the **Pallas base field** (`~255 bits`), but for the headstash contracts we need to verify operations on **secp256k1** keys, which use fields of size `~256 bits`. Since secp256k1 field elements **do not fit** natively in the Pallas field, we use **Chinese Remainder Theorem (CRT) representation** with limb decomposition. + +Each secp256k1 field element is represented using a **dual representation**: + +#### 1. **Arithmetic Representation (88-bit limbs, each making use of 9x 10-bit decomposition for foreign field arithmetic )** + + For field arithmetic (addition, multiplication, etc.), we decompose 256-bit values into **3 limbs of 88 bits each** `value = limb[0] + limb[1] *2^88 + limb[2]* 2^176`, as 3x88 is sufficient to represent secp256k1 field elements comfortably in Pallas field capacity (254 bits), Allows efficient carry handling during multi-precision arithmetic. **Arithmetic operations** (add, sub, mul, div) are performed on these 88-bit + +#### 2. **Range Check Representation (10-bit chunks)** + + To **constrain** that each limb is actually < 2^88, we use **lookup range checks**. Since our circuit has an existing **10-bit lookup table** (from Sinsemilla, with K=10), each 88-bit limb is **decomposed + into 9 × 10-bit chunks** for range checking: + + limb = chunk[0] + chunk[1] *2^10 + chunk[2]* 2^20 + ... + chunk[8] * 2^80 + + **Why 10-bit chunks?** + +- Reuses the existing Sinsemilla lookup table (`table_idx` column with 2^10 entries) +- Avoids adding a new lookup argument (minimal proof overhead) +- 9 chunks × 10 bits = 90 bits > 88 bits (sufficient coverage) + + **Important:** The 10-bit decomposition is **only used for range checks**, not for arithmetic operations. + +#### CRT Integer Representation + +Each foreign field element is represented as a `ProperCrtUint` where `F = Pallas::Base`: + +```rust +pub struct ProperCrtUint { + // Limb representation: value = Σ(limb[i] * 2^(limb_bits * i)) + pub truncation: OverflowInteger, + // Native field representation: value mod modulus::() + pub native: AssignedValue, + // Maximum limb value + pub max_limb_bits: usize, +} +``` + +**How It Works:** + +1. Limb decomposition (for arithmetic): + - A 256-bit secp256k1 field element is split into 3 limbs of 88 bits + - Arithmetic operations (add, mul, etc.) work on these 88-bit limbs in 9x 10x bits +2. Chunk decomposition (for range checks): + - Each 88-bit limb is further decomposed into 9 chunks of 10 bits + - Each 10-bit chunk is looked up in the existing Sinsemilla table + - This constrains each limb to be < 2^90 (which implies < 2^88) +3. Native reduction: + - The value is also stored as value mod Pallas::Fq in native representation + - This enables efficient equality checks without limb-by-limb comparison +4. Dual representation consistency: + - Both representations are constrained to be equivalent via: + `native ≡ limb[0] + limb[1] *2^88 + limb[2]* 2^176 (mod Pallas::Fq)` + +#### Constraining Foreign Fields in Circuit + +**Operation Flow:** + +1. Load foreign field element as witness:\ + `FpChip::load_private( secp_value) → ProperCrtUint` + +2. **Perform operations in CRT representation:** + - Addition: Add limbs element-wise, handle overflow via carry propagation + - Multiplication: Multiply limbs using multi-precision algorithm, reduce modulo secp256k1 prime + - Division: Compute modular inverse, multiply + - All operations maintain the 88-bit limb structure +3. **Range check all limbs:** + - Decomposes each 88-bit limb into 9 × 10-bit chunks + - Looks up each chunk in the Sinsemilla table (K=10) + - Constrains: limb = chunk[0] + chunk[1]*2^10 + ... + chunk[8]*2^80 + - This ensures limb < 2^90 (sufficient since 2^90 > 2^88) +4. **Verify CRT consistency**: + - Constrain native value matches limb decomposition: + `native ≡ Σ(limb[i] *2^(88*i)) (mod Pallas::Fq)` + +**Critical Constraints:** + +1. **Limb Bounds:** Each limb must be < 2^88 (enforced by RangeChip lookups) +2. **Modular Reduction:** After operations, values must be reduced mod foreign_prime +3. **Native Consistency:** `native ≡ Σ limbs (mod Pallas::Fq)` +4. **Carry Propagation:** Multi-limb arithmetic must handle carries correctly + +```rust +let m = poseidon_hash(dst_hkdf,[recp, v, nd, fdi,psi]); +let pallas_sk = poseidon_hash([DST_HKDF, esk_native, m]); +let pallas_pk = pallas_sk * G_pallas; +``` + +### In-Circuit Constraint Flow + +**1. Secp256k1 Key Pairing (Foreign Field)** +**2. HKDF Derivation (Native - In-Circuit!)** +**3. Genesis Distribution Inclusion(Sinsemilla HashDomain)** +**4. Note Commitment Integrity (Sinsemilla CommitDomain)** + +### PallasLookupRangeCheck + +There are 3 chips that use the lookup range check: + +| Chip| Use| limb-bits| +|-------------------------------|--|-| +| **ecc chip**| constraining object is within field bounds| | +| **foreign field chip**| constraining objects (limbs) are within field bounds || +| **sinsemilla chip**| Sinsemilla operations require range checks on bit decompositions and intermediate values | + +**Key Configuration Constants:foreign field chip** + +```rust +// From halo2-ecc/configs/secp256k1/ecdsa_circuit.config +const LIMB_BITS: usize = 88; +const NUM_LIMBS: usize = 3; +const LOOKUP_BITS: usize = 17; +const DEGREE: u32 = 18; // Circuit size: 2^18 rows +``` + +The `RangeChip` is the foundation for foreign field arithmetic in our Pallas-based circuit. It provides lookup tables for efficient range checking of limb values, ensuring that our BigInt representations don't overflow when emulating non-native field arithmetic. + +**Limb Parameters (Secp256k1 → Pallas)** + +| Parameter | Value / Details | +|-------------------------------|-------------------------------------------------------------------------------------------| +| **limb_bits** | 88 | +| **num_limbs** | 3 | +| **Total bits** | 264 (covers 256‑bit secp256k1 fields with an 8‑bit overflow buffer) | +| **Lookup bits** | 17 → lookup table size = 2⁷¹⁷ = 131,072 entries | +| **Rationale** | 88‑bit limbs fit comfortably within the Pallas field capacity while minimizing limbs | +| **RangeChip enforcement** | `0 ≤ limb_i < 2^88` via lookup tables | + +### Ecc (Secp256k1 chip) + +The `EccChip` performs elliptic curve operations over `secp256k1` using foreign field arithmetic. It's essential for both key pairing verification (`pk = sk·G`) and HKDF constraints. + +#### Key Operations + +**1. Fixed-Base Scalar Multiplication** (for `pk = sk·G`) +**Optimization:** Fixed-base multiplication uses precomputed multiples of G (windowed method) to reduce constraints compared to variable-base. + +### FpChip (Secp256k1::Fp) + +**Purpose:** Represents and operates on secp256k1 base field elements within the Pallas circuit. + +**Type Signature:** + +```rust +pub type FpChip<'range, F> = fp::FpChip<'range, F, Secp256k1::Fp>; +// where F = Pallas::Base (our native field) +``` + +**Construction:** + +```rust +let fp = FpChip::::new( + range, // RangeChip for lookup tables + 88, // limb_bits + 3, // num_limbs +); +``` + +**Core Operations:** + +- `load_private( value)` - Load Fp element as witness +- `load_constant( value)` - Load Fp constant +- `mul( a, b)` - Multiply two Fp elements +- `add( a, b)` - Add two Fp elements +- `sub( a, b)` - Subtract Fp elements +- `assert_equal( a, b)` - Constrain equality +- `enforce_less_than_p( a)` - Ensure a < secp256k1_p + +**Used For:** + +- Public key x, y coordinates +- Elliptic curve point arithmetic + +### FqChip (Secp256k1::Fq) + +**Purpose:** Represents and operates on secp256k1 scalar field elements (the curve order). + +**Type Signature:** + +```rust +pub type FqChip<'range, F> = fp::FpChip<'range, F, Secp256k1::Fq>; +``` + +**Construction:** Same as FpChip but parameterized with `Secp256k1::Fq` + +**Used For:** + +- Secret key `sk` + +**Critical Difference from FpChip:** + +- Modulus is `Secp256k1::Fq` (curve order) not `Secp256k1::Fp` (base field) +- Used for scalars, not point coordinates +- Operations are mod `0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141` + +### Ecc (Pallas curve chip) + +### Sinsemilla Chip + +The sinsemilla chip constrains the note-commitment derivation,decomposition,and canonicity. This requires strictly following the specification requiremnts of the sinsemilla hash domain function, resulting in the following bitrange composition of inputs: + +| Parameter | Value / Details | +| ---| --- | +| **nd** || +| **v** || +| **fdi** || +| **recp** || +| **esk** | | +| **rho** | | +| **psi** | | +| **padding** || + +### Merkle Chip + +We are constraining that a prover knows the path for a note leaf by having them provide the two sibling leafs to the specific note leaf they are spending. The circuit will reconsturct the notes being spent leaf and confirm the leaf is within the specific headstash instance. + + + + +### NoteCommitChip Chip + +Note commit chip constrains the derivation of the `cm` value, via decomposition & canonicity bounds. This chip uses sinsemilla CommitDomain, and expects the following structure: + +- each MessagePiece for a Message to be composed must be: + - < 64 bytes +- simming MessagePiece bytes ubti a Message requires: + - < 260 total bytes + - total bytes multiple of 10 + +#### Headstash Sinsemilla Running Sum Bitrange + +## Metamask Snap: Headstash + +Metamask snap plugin powering interface for importing/managin circuit proving keys, generating proofs, and for syncing with network for accounts current state across multiple devices. For documentation, [check here.](./metamask-snap.md) + +## Headstash Suite: Orchestration Library + +For documentation on our standard suite for interacting and managing headstashes, [check here](./suite.md) + +## Research + +- +- +- +- +- += +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- diff --git a/docs/zk-headstash/suite.md b/docs/zk-headstash/suite.md new file mode 100644 index 0000000..ef4dc87 --- /dev/null +++ b/docs/zk-headstash/suite.md @@ -0,0 +1,88 @@ +# HeadstashSuite: singular, highly efficient manifold for interacting with Headstashes + +**Location**: `zk-crates/zk-headstash/src/deploy/suite.rs` + +## Overview + +> ### The HeadstashSuite provides a comprehensive framework for client-side interaction with headstash airdrops +> + +## Feature flags + +- circuit-build: flag used when library is compiling circuits +- api-build: flag used when library is used with headstash-api nodes +- wavs-build: flag for enabling wavs wasi build features +- cosmwasm-build: flag for isolating dependencies when used in cosmwasm for optimization + + +# Creating A New Headstash - Step-by-Step + +## Step 0. Specify Inital Parameters + +## Step 1: Generate Headstash.Yaml + +### a. Collect Eligible Public Keys + +### b. Determine Piecewise-Linear-Curves within each collection of eligible keys + +### c. Determine Weighted Token Per Point for all eligible keys + +## Step 2: Upload Parameters to IPFS + +### Step 3. Register Headstash On-Chain + +# Step-By-Step: Claiming A Headstash + +## 0. Verifying Source Code Authenticity & Integrity + +## 1. Download Wallet Extensions: Metamask Snap & Cosmos Compatible Wallet + +> +> - preinstalled with Terp Network headstash circuit proving and verification keys. +> - support to browse/import verification keys + +## 2. Go to `https://app.terp.network` + +## 3. Approve Retrieval Of Headstash.yaml + +## 4. Connect Metamask & View Balances + +## 5. Determine Spent Note Destination + +## 6. Generate Spent Note Instance & Proof + +## 7. Broadcast Spent Proof + +### 1. Genesis Distribution Tree Construction + +First, the tree is constructed by separating separating all distributions into the smallest amount of fixed denomination notes, for each token allocated (The Headstash Airdrop distributes TERP & THIOL, so there is a set of leaves for each address due to their allocation including 2 tokens.). We generate leaves in an non-interactive manner using the pre-known public information available: + +### 2. Compiling Circuit `ProvingKey` & `VerifyKey` + +### 2: Deploy Verifiable Proxy Service + +This steps involves deploying the verifiable service used to route claiming actions on-chain for proof validation,nullifier & note commitment storage, and also token distributions. + +#### Upload/Instantiate Zk-Headstash Contract + +#### Create/Seed Tokens To Distribute + +#### Register Service Owned Address w/ Smart-Account + +The proxy service must control an on-chain account, in order to register the zk-headstash contract as its on-chain authenticator. + +- **single feegrant/payment address**: Instead of allocating feegrants to each public address claiming headstashes, we can allocate a single feegrant to the services owned account. + +- **granularizes sequence of operations**: authenticators require specific steps of a tx broadcasted to be performed within the scope defined by the x/smart-account authentication module. This allows us to separate the signature verification coming from the off-chain service from the users proof verification sequence. + +### Step 3: Eligible Addresses Generate Proofs for claiming + +In the proof circuit, the user generates a proof that essentially encodes the following statements: + +- They own `addr_eligible` via `epk` `esk` pairing. +- The note being spent corresponds to an unclaimed entry in the genesis Merkle tree. +- The nullifier for the note being spent has been accurately defined to this note. + +### Step 4: Claim Spent Note By Contract Call + +A user will broadcast their proof generated to the verifiable service, which has feegrants registered under an account it controls to cover gas cost to broadcast to a chain state. The smart contract will enforce that a nullifier doesnt yet exist diff --git a/docs/zk-headstash/trustless.md b/docs/zk-headstash/trustless.md new file mode 100644 index 0000000..c05c890 --- /dev/null +++ b/docs/zk-headstash/trustless.md @@ -0,0 +1,55 @@ +# Charcute: Trustless & Scalable Orchestration Framework + +## Versioning + +### Verifying What You Are Using On Your Device + +### Reviewing Centralization Surface Area + +### Communicating Fees + +## Permissionless Specs + +### Developing + +### Compiling + +### Deployment + +### Publishing + +### Interacting + +### Proof Verification + +```mermaid + +flowchart TD + subgraph Off-Chain [Off-Chain Setup & Proof Generation] + direction TB + A[Halo2 Circuit Code] --> B[Trusted Setup Ceremony
Performed Once] + B -- Generates --> C[Verification Key.vkey
Large, ~10s of KB] + B -- Generates --> D[Proving Key.pkey
Very Large, ~100s of KB] + C -- Stored on --> E[IPFS] + E -- Yields --> F[Content Identifier CID] + + G[User's Private Data] -- Creates --> H[Witness] + D & H -- Used by --> I[Wasm-Bindgen Prover] + I -- Generates --> J[Proof π + Public Inputs] + end + + subgraph OnChain [On-Chain Verification] + K[Verifier Smart Contract] + L[Transaction with
Proof π + Public Inputs + CID] + + F -- Fetched via --> M[IPFS Gateway] + M -- Supplies --> N[VK Data] + + L --> K + N --> K + K -- Verifies Proof --> O[Verification Result
True/False] + end + + F -- Stored in --> P[Contract State
mapping CID => bool] + +``` \ No newline at end of file diff --git a/eth/README.md b/eth/README.md deleted file mode 100644 index b159882..0000000 --- a/eth/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# Airdrop - Cannabis Culture Projects - -## The Goal -**Allocate ownership to those pre-invested in web3 & cannabis communities.** - -This event has been pre-organized by community members, and will be voted on via the terp network governance process. - -It is believed that those who are owners of existing cannabis brands & communities tokens that are using blockchain technology are not just acquiring ownership of these projects tokens for the brands potential fiscal return, but more broadly due to the nature of the benefit’s these technologies provide, specifically in permissionless sovereignty. - -## Process -### 1. Data Collection -First, any community to potentially be included in the airdrop must have their token holders data exported and provided in the [holders](./holders/) folder, with the timestamp of the snapshot taken. If you would like to suggest a community to be included in the airdrop, please open a new PR on this repo. - -### 2. Point Allocation -Once the holder information has been aggregated and added to this repository, we can utilize a piecewise linear function to find a [fair-tiered distribution](./points/) of token holders within each community. - -A piecewise liner curve was used to generalize ranges in each community, to which we then allocated points. This was used as a data point helping to determine a fair point distribution between communities and the range of how invested various token holders are. - -Piecewise linear curves also help minimize over-allocating ownership to massive whales & project owners. - - -### 4. Eth to Terp Wallet Address Conversion - -A UI for users to connect to & verify their airdrop allocation will be available, and will utilize the Metamask Snap Functionality now available thanks to a number of teams in the cosmos! - -To determine the public address associated with an existing address, there are a number of tools to handle [bech32](https://github.com/atmoner/cosmos-bech32) & [address converters](https://www.npmjs.com/package/@evmos/address-converter). - -### 5. Governance Proposal - -We are able to propose a network upgrade that handles the distribution of tokens to individual addresses. You can find the logic tested on the test network [here](https://github.com/terpnetwork/terp-core/blob/main/app/upgrades/v3/headstash.go) - -### 6. Verify Community Consensus -This is when all data and steps can be verified using the on-chain governance procedure. To learn more, check our [Governance Proposal Framework](https://docs.terp.network/overview/governance). diff --git a/eth/addresses/cht_erc20_holders.md b/eth/addresses/cht_erc20_holders.md deleted file mode 100644 index 20e4408..0000000 --- a/eth/addresses/cht_erc20_holders.md +++ /dev/null @@ -1,1258 +0,0 @@ -# CHT Holder Address Conversion -| Terp Public Address | Ethereum Public Address | Tokens Held | Points | Airdrop Allocation | -|----------------------|--------------------------|---------------|-------------|--------------------| -| terp1gjvcy3wz02gc9kwaxgtjd575j0n29lleyksw7q | 0x44998245c27a9182d9dd321726d3d493e6a2fff9 | 52,230,931.14 | 24 | 23,365.785814 | -| terp16tnvaktt26d6v6zu96rv5z5cclk9q2yaxg6r6j | 0xd2e6ced96b569ba6685c2e86ca0a98c7ec50289d | 30,201,017.67 | 24 | 23,365.785814 | -| terp1lnt8am5q774l400526hya05v8czq7329kl9fkw | 0xfcd67eee80f7abfabdf456ae4ebe8c3e040f4545 | 25,525,476.67 | 24 | 23,365.785814 | -| terp1r8at3a7lllecy6ryf6ht602n3a5qxcqqz3xzmq | 0x19fab8f7dffff38268644eaebd3d538f68036000 | 20,109,025.22 | 24 | 23,365.785814 | -| terp1hx7z6lvqcz2xdeep95szk07nk7u6kkv7fe8rgn | 0xb9bc2d7d80c09466e7212d202b3fd3b7b9ab599e | 12,146,295.61 | 24 | 23,365.785814 | -| terp19fjwvss50qvnpuh7lr9yfk3l3mxupn40ex2hde | 0x2a64e64214781930f2fef8ca44da3f8ecdc0ceaf | 10,750,316.07 | 24 | 23,365.785814 | -| terp134u3gltynp2kdjxhyxpkzt5487txa7qly52k6s | 0x8d79147d64985566c8d72183612e953f966ef81f | 8,824,600.85 | 24 | 23,365.785814 | -| terp1qsuj4zux80kjqsvk4v68x7t9085tzqugem4d74 | 0x04392a8b863bed204196ab3473796579e8b10388 | 8,166,564.52 | 24 | 23,365.785814 | -| terp1pps0yhy08036nrd54h8exu000x7u9cevcwz92w | 0x0860f25c8f3be3a98db4adcf9371ef79bdc2e32c | 7,669,428.47 | 24 | 23,365.785814 | -| terp1cjujq3e4ghacw8d8gwsvawm6f6yvu4e8vykuts | 0xc4b920473545fb871da743a0cebb7a4e88ce5727 | 6,641,710.85 | 24 | 23,365.785814 | -| terp1rv9ut5pqscz3gx99vm6qdaf9jtekt77s3v38fg | 0x1b0bc5d02086051418a566f406f52592f365fbd0 | 6,564,871.94 | 24 | 23,365.785814 | -| terp10ll27v8r8d04dgkgjatd4r29sp62xg52pmacfw | 0x7ffeaf30e33b5f56a2c89756da8d458074a3228a | 4,476,217.81 | 24 | 23,365.785814 | -| terp1gkzj47razn3q9q06z5j658myhqmexuq0pccz4y | 0x45852af87d14e20281fa1525aa1f64b83793700f | 4,370,768.47 | 24 | 23,365.785814 | -| terp1lryvql3wuvhqpknz7qg0449l68rqkl2sr40jya | 0xf8c8c07e2ee32e00da62f010fad4bfd1c60b7d50 | 4,251,787.06 | 24 | 23,365.785814 | -| terp1xch55lnlmskkndarm750nyl0patn0hfmtyt08u | 0x362f4a7e7fdc2d69b7a3dfa8f993ef0f5737dd3b | 3,870,625.52 | 24 | 23,365.785814 | -| terp1upzew7xhwneuz5u6kyqwx7yxegprgmq0hf034n | 0xe0459778d774f3c1539ab100e37886ca02346c0f | 3,239,286.22 | 24 | 23,365.785814 | -| terp1qxmgfqr9wlv559mf2d0n20a386m4um23ne0c7c | 0x01b684806577d94a1769535f353fb13eb75e6d51 | 3,129,960.71 | 24 | 23,365.785814 | -| terp1alakrf6z8rzmmmq0ts5sf9sv8c4x0x44zaqrdy | 0xeffb61a74238c5bdec0f5c2904960c3e2a679ab5 | 3,066,786.74 | 24 | 23,365.785814 | -| terp1qcn0gmxgc4an2als2qjahs6v4v4ht9zr9xqzxh | 0x0626f46cc8c57b3577f05025dbc34cab2b759443 | 2,282,002.70 | 24 | 23,365.785814 | -| terp1teaw276wpanr6xl84hnwxlccqhwfrrq2vnq0su | 0x5e7ae57b4e0f663d1be7ade6e37f1805dc918c0a | 2,066,556.21 | 24 | 23,365.785814 | -| terp14l37zlc4a0rt45vh0rkm0ae4ken3dd8jyu4wpk | 0xafe3e17f15ebc6bad19778edb7f735b66716b4f2 | 2,055,661.99 | 24 | 23,365.785814 | -| terp15u3tyfyrq9tehnp0gkr7ur5cze4kgw6cehmvsy | 0xa722b2248301579bcc2f4587ee0e98166b643b58 | 2,041,820.87 | 24 | 23,365.785814 | -| terp1tpqxct3aww9t0jscjmt4zz7dskhl0w50a72wnv | 0x58406c2e3d738ab7ca1896d7510bcd85aff7ba8f | 1,810,928.12 | 24 | 23,365.785814 | -| terp1ghu7gy67zlgh4c2gn6fdqy9tkug4qplsgrrx5r | 0x45f9e4135e17d17ae1489e92d010abb7115007f0 | 1,571,879.05 | 24 | 23,365.785814 | -| terp1frnef9vssxdxanvk2g5nufhwcafxwujq9x0wrr | 0x48e7949590819a6ecd9652293e26eec752677240 | 1,536,849.11 | 24 | 23,365.785814 | -| terp18f9sy0sjqh2xfcy8e9ekzq7rf5w7kulrtz8gn2 | 0x3a4b023e1205d464e087c9736103c34d1deb73e3 | 1,517,840.48 | 24 | 23,365.785814 | -| terp13cq76tsfc3m66q0qfjh2wd0cjlfuds4lwpak3a | 0x8e01ed2e09c477ad01e04caea735f897d3c6c2bf | 1,446,966.19 | 24 | 23,365.785814 | -| terp190y8kqj7qw4nkg2fas9qc7ugchq2nkne2v007s | 0x2bc87b025e03ab3b2149ec0a0c7b88c5c0a9da79 | 1,398,545.85 | 24 | 23,365.785814 | -| terp1a977gyy74dhxnkdn0qhgd7hm57dzcwk4e39mz7 | 0xe97de4109eab6e69d9b3782e86fafba79a2c3ad5 | 1,304,933.75 | 24 | 23,365.785814 | -| terp1aewxquch24fmyxcey5up4lay8wc7u4yh6g8lv3 | 0xee5c6073175553b21b1925381affa43bb1ee5497 | 1,297,389.94 | 24 | 23,365.785814 | -| terp1ga47t2qdtgdvjw5caf9trt7y7yt05th6deuys3 | 0x476be5a80d5a1ac93a98ea4ab1afc4f116fa2efa | 1,269,599.53 | 24 | 23,365.785814 | -| terp1nsdpfz7vtq4alu8lc3qypxwc6eyqtmjz2pl7v6 | 0x9c1a148bcc582bdff0ffc4404099d8d64805ee42 | 1,145,752.72 | 24 | 23,365.785814 | -| terp1u229x3hj0h5000npds8sl5lfkvw4vw29fhy6qz | 0xe2945346f27de8f7be616c0f0fd3e9b31d563945 | 1,135,588.47 | 24 | 23,365.785814 | -| terp1aj5drzy52du6azfka2z090zkjfdrxfqkxh3vqy | 0xeca8d188945379ae8936ea84f2bc56925a332416 | 1,106,849.66 | 24 | 23,365.785814 | -| terp1awgy5hlw2j7stkuqkr3w0dpur08ppw7y3x33de | 0xeb904a5fee54bd05db80b0e2e7b43c1bce10bbc4 | 1,075,266.72 | 24 | 23,365.785814 | -| terp1f5z32rsraktxegmruhajaad54v6cpqdjanv68j | 0x4d05150e03ed966ca363e5fb2ef5b4ab358081b2 | 1,018,028.84 | 24 | 23,365.785814 | -| terp1pcu7vmvlun6yxyzpendydke36cn9kkz6a78j3a | 0x0e39e66d9fe4f4431041ccda46db31d6265b585a | 1,016,541.85 | 24 | 23,365.785814 | -| terp18wl0pvcypufr6ydkkl3u39c3sh4n3jhl0ccwd3 | 0x3bbef0b3040f123d11b6b7e3c8971185eb38caff | 1,016,322.14 | 24 | 23,365.785814 | -| terp1ptdztny7n0jsl79d99uea4jnaxeac6fgtjx3yx | 0x0ada25cc9e9be50ff8ad29799ed653e9b3dc6928 | 1,006,878.94 | 24 | 23,365.785814 | -| terp1tejkj2ken2gp0t360kvhhuavznsyfvxzgt06wr | 0x5e65692ad99a9017ae3a7d997bf3ac14e044b0c2 | 1,005,924.36 | 24 | 23,365.785814 | -| terp1y4rk34rulz2c56py9nj65xkmgq0plmetmfjeyq | 0x254768d47cf8958a68242ce5aa1adb401e1fef2b | 1,001,295.78 | 24 | 23,365.785814 | -| terp1tgcl4ney8skrj4cq5dckglg8yp8w08p9v8hae0 | 0x5a31facf243c2c395700a371647d07204ee79c25 | 999,500.66 | 24 | 23,365.785814 | -| terp1erdh2mpz7xjnvs60l07hwkdmz0z7wydx7naf2n | 0xc8db756c22f1a536434ffbfd7759bb13c5e711a6 | 928,343.15 | 24 | 23,365.785814 | -| terp14x2s2ujmeqar3k52x7r2q6sawz00vsk0rt9342 | 0xa99505725bc83a38da8a3786a06a1d709ef642cf | 926,537.83 | 24 | 23,365.785814 | -| terp1pn086h8l4m6sp8gvwu3fd0usgrfz7lmyqh65x8 | 0x0cde7d5cffaef5009d0c772296bf9040d22f7f64 | 915,785.11 | 24 | 23,365.785814 | -| terp1cnjew9z7qy9h2rhlth3j3cyxp4e5mlp87cjnmk | 0xc4e597145e010b750eff5de328e0860d734dfc27 | 907,496.26 | 24 | 23,365.785814 | -| terp1wrplwr64jpgutqdxsuw2hl7ht3g0qqv6a6006p | 0x70c3f70f559051c581a6871cabffd75c50f0019a | 865,586.46 | 24 | 23,365.785814 | -| terp1urnj8l3s4frnv9pjqe5gd5dhxg2vpjkz0m6e7n | 0xe0e723fe30aa47361432066886d1b73214c0cac2 | 851,485.30 | 24 | 23,365.785814 | -| terp1depjazkc5f9vdda7a63vgrzn09qr07yc2fcr0r | 0x6e432e8ad8a24ac6b7beeea2c40c53794037f898 | 797,366.63 | 24 | 23,365.785814 | -| terp1sefqjlwkapmkzsejmje2hn9vuyepfkgwcz9wjt | 0x8652097dd6e877614332dcb2abccace13214d90e | 769,371.48 | 24 | 23,365.785814 | -| terp1a4mg68u7dk3l03jj254sg577yqxs78ztra5t70 | 0xed768d1f9e6da3f7c652552b0453de200d0f1c4b | 713,146.31 | 24 | 23,365.785814 | -| terp1kh7hhlaewvc5h730jrwnhf6daca6nv3wxnnw04 | 0xb5fd7bffb973314bfa2f90dd3ba74dee3ba9b22e | 710,796.91 | 24 | 23,365.785814 | -| terp1pv0r3ue9qrerdd582xslhazzp6en92nkrjggvp | 0x0b1e38f32500f236b68751a1fbf4420eb332aa76 | 701,480.85 | 24 | 23,365.785814 | -| terp1p65y9aeh7k08rwpcarn4rj7x0pqpm54vuelq06 | 0x0ea842f737f59e71b838e8e751cbc678401dd2ac | 686,895.28 | 24 | 23,365.785814 | -| terp1hsam7c2cjc0rv2khpmy5uk80g6celwfxatxyy7 | 0xbc3bbf6158961e362ad70ec94e58ef46b19fb926 | 682,802.12 | 24 | 23,365.785814 | -| terp1r8plrghr7nfgcz745n4vrrwanvq6rrkdwrs0j3 | 0x19c3f1a2e3f4d28c0bd5a4eac18ddd9b01a18ecd | 677,179.00 | 24 | 23,365.785814 | -| terp1t2mnz49yukkk2yh9kge602pkf2qpzxn2dah9pr | 0x5ab73154a4e5ad6512e5b233a7a8364a80111a6a | 674,938.50 | 24 | 23,365.785814 | -| terp1drtvp430wasgnazxdfpxx5qaskt6t6nfsrhwwk | 0x68d6c0d62f776089f4466a4263501d8597a5ea69 | 661,889.41 | 24 | 23,365.785814 | -| terp1l3vrzkrax7tfyfk6t0wchypzv5629sr2h0wd9x | 0xfc5831587d37969226da5bdd8b90226534a2c06a | 654,803.41 | 24 | 23,365.785814 | -| terp1xeclq29mwn0czsenh8uldgfz29fkdng5j0y5mk | 0x3671f028bb74df814333b9f9f6a122515366cd14 | 653,398.68 | 24 | 23,365.785814 | -| terp1s8xc5j9clwt45lf64l78rvn38k0u56aetcptsc | 0x81cd8a48b8fb975a7d3aaffc71b2713d9fca6bb9 | 645,024.43 | 24 | 23,365.785814 | -| terp1wc9xx99p6grnwun3j9c8t7yw2gq5r427m37m67 | 0x760a6314a1d207377271917075f88e520141d55e | 644,087.17 | 24 | 23,365.785814 | -| terp1f22wfvhs5t2q6wfy9asjgsu3afhvdam5fydet2 | 0x4a94e4b2f0a2d40d39242f61244391ea6ec6f774 | 636,041.19 | 24 | 23,365.785814 | -| terp1wfd2gu9rrlfld8xzjyr3msgn3dc38ses2qeepc | 0x725aa470a31fd3f69cc291071dc1138b7113c330 | 631,620.69 | 24 | 23,365.785814 | -| terp1mgty20ycgdp3zqnhfcpla5yusj7tax9rcauzvk | 0xda16453c9843431102774e03fed09c84bcbe98a3 | 630,824.74 | 24 | 23,365.785814 | -| terp150az9zrvzscw26qjr7cdf9tvz0vzzcmrfcul7t | 0xa3fa22886c1430e568121fb0d4956c13d8216363 | 626,572.62 | 24 | 23,365.785814 | -| terp19ju3ks6kuz84nehz3wx5qzjlmhtsvp8hdh6r9q | 0x2cb91b4356e08f59e6e28b8d400a5fddd70604f7 | 604,017.72 | 24 | 23,365.785814 | -| terp1hhe8esrht2hythvdygm35w4sd608j02evyrx43 | 0xbdf27cc0775aae45dd8d22371a3ab06e9e793d59 | 583,835.27 | 24 | 23,365.785814 | -| terp1vf37ehrj5wkaaq8jg3c9yc9zd0f9vzxywcvhq5 | 0x6263ecdc72a3adde80f244705260a26bd25608c4 | 553,274.64 | 24 | 23,365.785814 | -| terp1g906al4s8r4kntx3m7x6qeqsu97ygl3ff5zwuq | 0x415faefeb038eb69acd1df8da06410e17c447e29 | 537,668.32 | 24 | 23,365.785814 | -| terp162z7274egn9uaccdqx8pug06fzquvkw0z5j8rj | 0xd285e57ab944cbcee30d018e1e21fa4881c659cf | 533,836.90 | 24 | 23,365.785814 | -| terp1gn7fq5j4cm5vmgyyh6f0525l55n7zdhzvykn5h | 0x44fc905255c6e8cda084be92fa2a9fa527e136e2 | 531,717.91 | 24 | 23,365.785814 | -| terp1m6hz3djxw5q9z9xeq2034mke55fx8wazmd49v2 | 0xdeae28b64675005114d9029f1aeed9a51263bba2 | 526,264.46 | 24 | 23,365.785814 | -| terp1ljt05tfv2h0evuwr7f8cefklzvml7r8srf6ulq | 0xfc96fa2d2c55df9671c3f24f8ca6df1337ff0cf0 | 521,718.04 | 24 | 23,365.785814 | -| terp1w6qk6l3vlcq5qtr6cm69ursxdmtqevak9e9tpq | 0x76816d7e2cfe01402c7ac6f45e0e066ed60cb3b6 | 521,133.50 | 18 | 17,524.339360 | -| terp1t9a2y4pj0qskadhskud6svflungxlqtajh6uz5 | 0x597aa2543278216eb6f0b71ba8313fe4d06f817d | 518,702.55 | 18 | 17,524.339360 | -| terp10e8dt6ymlf9dl0ypg070ue8jp6d9kz0e8qscvx | 0x7e4ed5e89bfa4adfbc8143fcfe64f20e9a5b09f9 | 514,176.56 | 18 | 17,524.339360 | -| terp1xygedzsqu3f8gg3kaqw0u29r34kudjc9ln4lx2 | 0x3111968a00e452742236e81cfe28a38d6dc6cb05 | 512,662.43 | 18 | 17,524.339360 | -| terp1v9fr4rg4v82tl4fecwpa29syup9mk7vmdnhlp2 | 0x61523a8d1561d4bfd539c383d51604e04bbb799b | 508,781.90 | 18 | 17,524.339360 | -| terp1euzpstys2stqu77th0qvxadsgtk7kpjjgh65ux | 0xcf04182c9054160e7bcbbbc0c375b042edeb0652 | 502,331.87 | 18 | 17,524.339360 | -| terp196sw4hx3d9t5n2q88ez8g46mjx4xnjkd4uc5xq | 0x2ea0eadcd1695749a8073e4474575b91aa69cacd | 500,353.08 | 18 | 17,524.339360 | -| terp1fca8z0c2v3sr8vvcrcsuc4mnjfzx39k7n6ffsf | 0x4e3a713f0a646033b1981e21cc577392446896de | 479,264.56 | 18 | 17,524.339360 | -| terp1hjtmr4asjj6wnrvt6ycs0jgffa7ssumjdmp7ag | 0xbc97b1d7b094b4e98d8bd13107c9094f7d087372 | 475,976.17 | 18 | 17,524.339360 | -| terp1fd4tqjgkmnasugzpmxdjkcv8xq72g7jzhptxar | 0x4b6ab04916dcfb0e2041d99b2b6187303ca47a42 | 474,739.35 | 18 | 17,524.339360 | -| terp18qahjjaurckq3pgegl8fnjm5ndpwfwwshguhtm | 0x383b794bbc1e2c08851947ce99cb749b42e4b9d0 | 474,375.94 | 18 | 17,524.339360 | -| terp18wy6amuc4aw3dmwwdeadzd8505ap35su62tssj | 0x3b89aeef98af5d16edce6e7ad134f47d3a18d21c | 468,169.69 | 18 | 17,524.339360 | -| terp1uffw8s933dkmxjn635ascy5tgdapptuen3999u | 0xe252e3c0b18b6db34a7a8d3b0c128b437a10af99 | 450,271.55 | 18 | 17,524.339360 | -| terp18cwwh6gh7fh6xcyg093rn9w4hwurjdhxzlnjvg | 0x3e1cebe917f26fa3608879623995d5bbb83936e6 | 449,975.84 | 18 | 17,524.339360 | -| terp1l3dvyjq636nxk8gfapa8pl30mn9w32f7pqrx06 | 0xfc5ac2481a8ea66b1d09e87a70fe2fdccae8a93e | 439,379.04 | 18 | 17,524.339360 | -| terp1qjahsjfugxnzxtgpffppae6p0ykp45jsg2ncqx | 0x04bb78493c41a6232d014a421ee741792c1ad250 | 426,758.63 | 18 | 17,524.339360 | -| terp1sec8yqnv33sw6f2smlcnzjq78vamrlv0sdulvu | 0x867072026c8c60ed2550dff131481e3b3bb1fd8f | 418,069.70 | 18 | 17,524.339360 | -| terp13tqu4vu2lpmj6z70c4twu3jps6jm7wtzeusuml | 0x8ac1cab38af8772d0bcfc556ee464186a5bf3962 | 414,770.58 | 18 | 17,524.339360 | -| terp1m4ysjt835p6g9h25xtsmqjq9x3qpucjrf0sug4 | 0xdd49092cf1a07482dd5432e1b0480534401e6243 | 394,633.58 | 18 | 17,524.339360 | -| terp1uv0277vy08lj0anz78ldxh6qg9psyg86pq2vmf | 0xe31eaf798479ff27f662f1fed35f4041430220fa | 393,489.99 | 18 | 17,524.339360 | -| terp18xj4xgmpmrr4q6vaupacn32djjxah2086u66c2 | 0x39a5532361d8c750699de07b89c54d948ddba9e7 | 390,958.19 | 18 | 17,524.339360 | -| terp1apeurxene2cp0nspqt05eyhkwzd57k3qf2d28m | 0xe873c19b33cab017ce0102df4c92f6709b4f5a20 | 388,233.33 | 18 | 17,524.339360 | -| terp129w78n2n2m50uk5h8km7qkh3ss0dne0ssjlf6l | 0x515de3cd5356e8fe5a973db7e05af1841ed9e5f0 | 381,966.79 | 18 | 17,524.339360 | -| terp148d6ft4t77h3cryldr088qde8lq8ck3j244dxy | 0xa9dba4aeabf7af1c0c9f68de7381b93fc07c5a32 | 379,747.98 | 18 | 17,524.339360 | -| terp1yygcp9jcc5svnwaletr6anuyuukce9dhrxezra | 0x2111809658c520c9bbbfcac7aecf84e72d8c95b7 | 377,933.25 | 18 | 17,524.339360 | -| terp19klur4duhjnwpr5a2zkmjaxv28sue79h3qa87d | 0x2dbfc1d5bcbca6e08e9d50adb974cc51e1ccf8b7 | 374,964.93 | 18 | 17,524.339360 | -| terp1ascfjqk4whsasraukc8ugkdglmgnemc9xfrvsv | 0xec309902d575e1d80fbcb60fc459a8fed13cef05 | 366,083.13 | 18 | 17,524.339360 | -| terp1qq5taqaw5f332cuws83g5t7d8lfh3e7mxrfcc8 | 0x0028be83aea26315638e81e28a2fcd3fd378e7db | 361,149.48 | 18 | 17,524.339360 | -| terp12pdpkakxw80uwz3ww2vjkemww36qfktlmn7vfl | 0x505a1b76c671dfc70a2e72992b676e747404d97f | 352,507.14 | 18 | 17,524.339360 | -| terp162cx807et5z74vgffmndeddfxukq02r8x843pp | 0xd2b063bfd95d05eab1094ee6dcb5a9372c07a867 | 351,290.55 | 18 | 17,524.339360 | -| terp1tu0nwj8e2vh7w0umsn4swxyeu0v4qummkq5jlz | 0x5f1f3748f9532fe73f9b84eb071899e3d950737b | 348,744.21 | 18 | 17,524.339360 | -| terp16etupg4ywa2etaq6njzgqrdcgx5mrn2a7tq8uq | 0xd657c0a2a4775595f41a9c84800db841a9b1cd5d | 346,834.13 | 18 | 17,524.339360 | -| terp1nznaqhamdccaly0ukzynuh5u9800ymnjlc90hf | 0x98a7d05fbb6e31df91fcb0893e5e9c29def26e72 | 336,638.88 | 18 | 17,524.339360 | -| terp178wcmz38cfr5mrr2hgu5kz0zrtsp0e29jljcjz | 0xf1dd8d8a27c2474d8c6aba394b09e21ae017e545 | 331,323.53 | 18 | 17,524.339360 | -| terp1mee0lshwfak578l67ngwhncjll9f6sclqhjzze | 0xde72ffc2ee4f6d4f1ffaf4d0ebcf12ffca9d431f | 330,909.08 | 18 | 17,524.339360 | -| terp1c7slud3h4nqlfs28ex8je32tappq69f3czxrjf | 0xc7a1fe3637acc1f4c147c98f2cc54be8420d1531 | 329,706.61 | 18 | 17,524.339360 | -| terp1mzqmuqdu90dc4lnau8sws2vaf6lfkqa3tg00lc | 0xd881be01bc2bdb8afe7de1e0e8299d4ebe9b03b1 | 324,042.70 | 18 | 17,524.339360 | -| terp1v0zel2rsdqfwkedrfruh9d43tnlp03p4uu7zwz | 0x63c59fa8706812eb65a348f972b6b15cfe17c435 | 320,777.40 | 18 | 17,524.339360 | -| terp1smd954e4ntgzfkdr7s9nrnsj44jn2mcvxakjdr | 0x86da5a57359ad024d9a3f40b31ce12ad65356f0c | 318,842.91 | 18 | 17,524.339360 | -| terp1ce06qq80vy6pd3dzzuhj3r3fgtxrn7uzqjmgje | 0xc65fa000ef613416c5a2172f288e2942cc39fb82 | 317,318.28 | 18 | 17,524.339360 | -| terp1ctw9avu34afdfydxv2mj3fpdd98np0jd9pprt9 | 0xc2dc5eb391af52d491a662b728a42d694f30be4d | 311,741.26 | 18 | 17,524.339360 | -| terp185sg57ranjmy7km2jwvhmw03gvl2llet2su3vt | 0x3d208a787d9cb64f5b6a93997db9f1433eafff2b | 302,753.20 | 18 | 17,524.339360 | -| terp1vc27p25ymcrgj7sshjnnen65dltjk2sj3xercl | 0x6615e0aa84de06897a10bca73ccf546fd72b2a12 | 299,243.49 | 18 | 17,524.339360 | -| terp1jze6equt9zs43ezsmxl40gyswltz4zrp849hla | 0x90b3ac838b28a158e450d9bf57a09077d62a8861 | 299,210.73 | 18 | 17,524.339360 | -| terp1l7u4lcsxrqkphhe46xf2r7p4n5skj3ncjnj3jt | 0xffb95fe206182c1bdf35d192a1f8359d21694678 | 297,418.42 | 18 | 17,524.339360 | -| terp1z5jesxmeyc0ce34y7cudxvqupj08n50esmkla4 | 0x1525981b79261f8cc6a4f638d3301c0c9e79d1f9 | 295,673.86 | 18 | 17,524.339360 | -| terp19nc9gs07fgkne5ctj94fsu48x647zkqynl8d6h | 0x2cf05441fe4a2d3cd30b916a9872a736abe15804 | 294,450.53 | 18 | 17,524.339360 | -| terp14tk2ef9u27v97yrwqepv09rdcvup43c8gj8fuw | 0xaaecaca4bc57985f106e0642c7946dc3381ac707 | 283,610.19 | 18 | 17,524.339360 | -| terp1qltmunsdjp0etw0587vjr7lvzr9nle538hmuad | 0x07d7be4e0d905f95b9f43f9921fbec10cb3fe691 | 278,277.90 | 18 | 17,524.339360 | -| terp190xz95y5kaqqwp72c9qk8ku394xrwt5rgcsnx4 | 0x2bcc22d094b7400707cac14163db912d4c372e83 | 277,603.13 | 18 | 17,524.339360 | -| terp1j6209583jmkuvrcdmmm00gdx2pe23h56n3g49q | 0x9694f2d0f196edc60f0ddef6f7a1a65072a8de9a | 276,068.94 | 18 | 17,524.339360 | -| terp1tgnkwm5em53sxgut6gsn5rfrnnkt43vspg83cd | 0x5a27676e99dd2303238bd2213a0d239cecbac590 | 274,079.26 | 18 | 17,524.339360 | -| terp1xftj4duk3ughe249sge7fdnyuy97j4kcu427jd | 0x32572ab7968f117caaa58233e4b664e10be956d8 | 272,098.96 | 18 | 17,524.339360 | -| terp10mzq5xn6kd5tp3xdg3nqtncqm4kxesx7ul47yu | 0x7ec40a1a7ab368b0c4cd446605cf00dd6c6cc0de | 268,473.94 | 18 | 17,524.339360 | -| terp1ey3dzk0e36lsce9r680g5dld52z4g3pdkglx5j | 0xc922d159f98ebf0c64a3d1de8a37eda28554442d | 267,742.10 | 18 | 17,524.339360 | -| terp1uwqp593t6acet3vr5k2pe7temjv5kvwelwuf4j | 0xe3801a162bd77195c583a5941cf979dc994b31d9 | 261,277.97 | 18 | 17,524.339360 | -| terp1fjg3jhs47gvjeeyv5hdawjl4y2upqp8ntafh2w | 0x4c91195e15f2192ce48ca5dbd74bf522b81004f3 | 261,039.38 | 18 | 17,524.339360 | -| terp12gz77fgke79cc0d9tky98aya2mdel7gr4t28zp | 0x5205ef2516cf8b8c3da55d8853f49d56db9ff903 | 261,008.86 | 18 | 17,524.339360 | -| terp13v04ned0p5n394ng76jksagjwzgh276vfexsca | 0x8b1f59e5af0d2712d668f6a56875127091757b4c | 258,636.21 | 18 | 17,524.339360 | -| terp1aq97wncllvx7c2muvjd852gdttwwfrhkydlued | 0xe80be74f1ffb0dec2b7c649a7a290d5adce48ef6 | 257,051.66 | 18 | 17,524.339360 | -| terp1fv4jslhqq3ksyttll5teujhv5p0vaqrp8u8nwy | 0x4b2b287ee0046d022d7ffd179e4aeca05ece8061 | 255,984.30 | 18 | 17,524.339360 | -| terp1zcwyna6lx7j0fy3drxalrwfvpzjpp285sqm0ek | 0x161c49f75f37a4f4922d19bbf1b92c08a410a8f4 | 254,524.44 | 18 | 17,524.339360 | -| terp1pvm4y377vt0af9azeq8zsxgv4taatyrldak5f4 | 0x0b375247de62dfd497a2c80e28190caafbd5907f | 253,442.19 | 18 | 17,524.339360 | -| terp19hwvagf3ssvx6jdsph0q9rpwzz6thrn0s5c3j3 | 0x2ddccea13184186d49b00dde028c2e10b4bb8e6f | 249,270.19 | 18 | 17,524.339360 | -| terp1yf7mksap8seemk2rquveq29qchgv92mw63c05u | 0x227dbb43a13c339dd94307199028a0c5d0c2ab6e | 248,658.07 | 18 | 17,524.339360 | -| terp15my52lc0etxxkpfl2zm33zh5tylenektp726pl | 0xa6c9457f0fcacc6b053f50b7188af4593f99e6cb | 248,321.79 | 18 | 17,524.339360 | -| terp16d3elay9m9v07yexcpskud3qs56kq6fe69t7na | 0xd3639ff485d958ff1326c0616e36208535606939 | 247,343.86 | 18 | 17,524.339360 | -| terp1a4y8nevfn0dtqepwrzxd8hj7qf27x44ndf7u5x | 0xed4879e5899bdab0642e188cd3de5e0255e356b3 | 244,189.18 | 18 | 17,524.339360 | -| terp1kk9n74vmvnjva4ahmjd0ly2nzrrze54tcaz7wp | 0xb58b3f559b64e4ced7b7dc9aff915310c62cd2ab | 242,598.26 | 18 | 17,524.339360 | -| terp1y7mkx7xm4ql2j9kspg770rq7e3474uwxal3mph | 0x27b76378dba83ea916d00a3de78c1ecc6beaf1c6 | 238,520.19 | 18 | 17,524.339360 | -| terp1hmx9wn9hxhk7pre6w39dqzvfwrv966n6sfvea8 | 0xbecc574cb735ede08f3a744ad0098970d85d6a7a | 233,591.76 | 18 | 17,524.339360 | -| terp1pzawvj3nmr00k5lwnhm900e5832ewxxy0ueptu | 0x08bae64a33d8defb53ee9df657bf343c559718c4 | 231,214.23 | 18 | 17,524.339360 | -| terp1jpf6jgstezw6pzvpjszhm4aucwlnd6gvg9xr5z | 0x9053a9220bc89da0898194057dd7bcc3bf36e90c | 230,144.77 | 18 | 17,524.339360 | -| terp1w2szmyw53jjkdlstsdnhxphgln8jsjkkp3jmht | 0x72a02d91d48ca566fe0b83677306e8fccf284ad6 | 229,384.14 | 18 | 17,524.339360 | -| terp1f90235whws6cayfd44sk86wrkm3hqaae05pnjm | 0x495ea8d1d774358e912dad6163e9c3b6e37077b9 | 222,450.50 | 18 | 17,524.339360 | -| terp1cftz2lp5fzqzmvtlx39d6dw38s2d5na2n2gsnd | 0xc256257c3448802db17f344add35d13c14da4faa | 219,577.35 | 18 | 17,524.339360 | -| terp1jenldssssezq6gdns8plj8p8t8ce9jz5nah9y7 | 0x9667f6c21086440d21b381c3f91c2759f192c854 | 217,797.58 | 18 | 17,524.339360 | -| terp1hl7fjmcjcwjkt2wslgc4w76axr4mek3m6pdtyr | 0xbffc996f12c3a565a9d0fa31577b5d30ebbcda3b | 216,758.94 | 18 | 17,524.339360 | -| terp1gjjywjlfvxmks03572eqges2ssh9vljgcxtktj | 0x44a4474be961b7683e34f2b204660a842e567e48 | 214,721.34 | 18 | 17,524.339360 | -| terp17dn9v8zu04jssfyvzmurvd5rjt7hwgafmccl43 | 0xf366561c5c7d6508248c16f836368392fd7723a9 | 212,460.70 | 18 | 17,524.339360 | -| terp1a6gftaunfyltxv3qfjyr3uen02nwtq4h8k6zfl | 0xee9095f793493eb332204c8838f3337aa6e582b7 | 208,662.81 | 18 | 17,524.339360 | -| terp1q8lf7zehgyjf30rz7gyxva9vj7rdylnll26tyu | 0x01fe9f0b37412498bc62f2086674ac9786d27e7f | 208,659.67 | 18 | 17,524.339360 | -| terp169wdjdurrmek3mrdu628hvlzw9r93cwvzzqu4y | 0xd15cd937831ef368ec6de6947bb3e2714658e1cc | 204,570.77 | 18 | 17,524.339360 | -| terp10sp08r0z2cgcslqkkgy0shefee397358pkxuw6 | 0x7c02f38de25611887c16b208f85f29ce625f4687 | 203,654.12 | 18 | 17,524.339360 | -| terp1m50hf2duv7n568qdynuazllegtpps9mkx2tn8m | 0xdd1f74a9bc67a74d1c0d24f9d17ff942c2181776 | 203,608.41 | 18 | 17,524.339360 | -| terp1jx8m6peqxe9wep7qy8mrez7nm4nr32kgngg4er | 0x918fbd0720364aec87c021f63c8bd3dd6638aac8 | 203,154.42 | 18 | 17,524.339360 | -| terp1vxxccr0hjzu4c8c24yurqnvstyphjukan8vfw0 | 0x618d8c0df790b95c1f0aa938304d9059037972dd | 200,574.73 | 18 | 17,524.339360 | -| terp1cgmqf74pap64e8hrj8wgjwpe8s3vg9un374785 | 0xc23604faa1e8755c9ee391dc8938393c22c41793 | 200,206.37 | 18 | 17,524.339360 | -| terp1fje83kx7axs9nqskpe8ns5w55cngpnkj0p35px | 0x4cb278d8dee9a05982160e4f3851d4a62680ced2 | 200,000.05 | 18 | 17,524.339360 | -| terp1kmf82lck88ec99y726uvwhx7kgah9x64q8zrrx | 0xb6d2757f1639f382949e56b8c75cdeb23b729b55 | 199,438.19 | 18 | 17,524.339360 | -| terp1m7mqej05d7rcg6znv74cf3nqx7k5ycw0aw0d0s | 0xdfb60cc9f46f8784685367ab84c66037ad4261cf | 195,398.71 | 18 | 17,524.339360 | -| terp1xyt5kar4fzjkqqld69g8lug3ryghaaekcy3f2l | 0x31174b747548a56003edd1507ff11119117ef736 | 193,850.83 | 18 | 17,524.339360 | -| terp1a2p5qntkr9kgnqsamjapf57uzyga4l5ptwj3za | 0xea83404d76196c89821ddcba14d3dc1111dafe81 | 192,546.19 | 18 | 17,524.339360 | -| terp1ysf8yt43rj45qgasj70hnavg8xekf2nps25cxx | 0x2412722eb11cab4023b0979f79f58839b364aa61 | 192,238.75 | 18 | 17,524.339360 | -| terp14enjmjjyvnqu94d8nup3ggyzsfxc35p32x6pn6 | 0xae672dca4464c1c2d5a79f03142082824d88d031 | 191,539.37 | 18 | 17,524.339360 | -| terp1kv0gura9x8dcux9xewwfmwplgkje33m2huq2r8 | 0xb31e8e0fa531db8e18a6cb9c9db83f45a598c76a | 189,813.09 | 18 | 17,524.339360 | -| terp1qw8j3gu4t80xckr89rtq537ezjyqtz03m2hg36 | 0x038f28a39559de6c586728d60a47d914880589f1 | 184,235.83 | 18 | 17,524.339360 | -| terp1m7220sdefr28kv7syyz2rwfpv9yhndlpywcyfl | 0xdf94a7c1b948d47b33d02104a1b921614979b7e1 | 181,945.57 | 18 | 17,524.339360 | -| terp1uz7726az0gs42lyudvcdxrahuk7q08v2kpdlah | 0xe0bde56ba27a21557c9c6b30d30fb7e5bc079d8a | 180,210.16 | 18 | 17,524.339360 | -| terp1ysmq74tvnhv9wv8sfxfau5dlksktun0k76r7f0 | 0x24360f556c9dd85730f04993de51bfb42cbe4df6 | 180,040.33 | 18 | 17,524.339360 | -| terp1cwgp9pzk7h34a24j34qxrmx2urq6caegwyq6ed | 0xc390128456f5e35eaab28d4061eccae0c1ac7728 | 179,416.71 | 18 | 17,524.339360 | -| terp1ge0q653q0vxhwt4t5sdcfs0clxwdvf9qtd5nuz | 0x465e0d52207b0d772eaba41b84c1f8f99cd624a0 | 178,779.87 | 18 | 17,524.339360 | -| terp1hlaq4kl65r3qku62cdj7vwhlaw50rhgvrjda7d | 0xbffa0adbfaa0e20b734ac365e63affeba8f1dd0c | 177,984.43 | 18 | 17,524.339360 | -| terp1wztfhpph364dcgmhc6662fc26873dqa93ld0kz | 0x70969b84378eaadc2377c6b5a5270ad1fd1683a5 | 177,747.21 | 18 | 17,524.339360 | -| terp1zun6spnwevd4fcflq7mrxg2s4vhffukx8sskee | 0x1727a8066ecb1b54e13f07b6332150ab2e94f2c6 | 177,706.38 | 18 | 17,524.339360 | -| terp17hhdxskdlmlhfr0tu8jsla9velejtylnxr42hh | 0xf5eed342cdfeff748debe1e50ff4accff32593f3 | 176,325.25 | 18 | 17,524.339360 | -| terp1ts3y3qvvdn98ja8t0dvsrl2dcrjlp7yhtznl24 | 0x5c2248818c6cca7974eb7b5901fd4dc0e5f0f897 | 175,850.35 | 18 | 17,524.339360 | -| terp1jasyuax7tkdvg6ww2z98g6j2m5gcsxy3hteaw6 | 0x97604e74de5d9ac469ce508a746a4add11881891 | 171,757.93 | 18 | 17,524.339360 | -| terp1d5kkdqqfuqcqql76x4vfpas7e555jhkjvsctc3 | 0x6d2d668009e030007fda355890f61ecd29495ed2 | 170,907.58 | 18 | 17,524.339360 | -| terp10fkvzkmppfeq484t4s07988ehvdxae4plye26r | 0x7a6cc15b610a720a9eabac1fe29cf9bb1a6ee6a1 | 169,610.15 | 18 | 17,524.339360 | -| terp1l0dj2ratx6pytgrmqgu8ukhl9mt2f0dzlp8gv7 | 0xfbdb250fab368245a07b02387e5aff2ed6a4bda2 | 167,151.04 | 18 | 17,524.339360 | -| terp14aqpjk6gjucgts7qhqp3qv3aelknjga2rtfu6m | 0xaf40195b48973085c3c0b80310323dcfed3923aa | 166,945.44 | 18 | 17,524.339360 | -| terp1p2t9xney3jdesvcwxal3pyt39njs4ysxvl7pv6 | 0x0a96534f248c9b98330e377f1091712ce50a9206 | 166,776.74 | 18 | 17,524.339360 | -| terp180fywr4tcs07veje3mjgltxvzjruzs9lt88zpx | 0x3bd2470eabc41fe666598ee48faccc1487c140bf | 162,877.76 | 18 | 17,524.339360 | -| terp1kn8lzy2w38jnmpl460pr8ke6w6yzpckmergtvs | 0xb4cff1114e89e53d87f5d3c233db3a768820e2db | 161,391.10 | 18 | 17,524.339360 | -| terp1jxkc4lm7hf9fy5rf8m554yh8lpfaea0xtxyqtn | 0x91ad8aff7eba4a9250693ee94a92e7f853dcf5e6 | 161,268.24 | 18 | 17,524.339360 | -| terp1k8ykayrpqxlj07y4neqvgwfweww5jl5f3d7yfn | 0xb1c96e906101bf27f8959e40c4392ecb9d497e89 | 160,221.69 | 18 | 17,524.339360 | -| terp1twyyg5hws9x4ncvxnj5veql9mlyejkst2ktuu0 | 0x5b884452ee814d59e1869ca8cc83e5dfc9995a0b | 159,986.95 | 18 | 17,524.339360 | -| terp19mupr7twvuggk2ljyj7rp9z2ta6gpj068kc54r | 0x2ef811f96e67108b2bf224bc30944a5f7480c9fa | 158,516.40 | 18 | 17,524.339360 | -| terp1utrqfypyeezdcvayxg3wytygd8uu6ulqvwpnuk | 0xe2c6049024ce44dc33a43222e22c8869f9cd73e0 | 156,442.47 | 18 | 17,524.339360 | -| terp16kqecz2j9w025yeej84un95gqcs7lf9esn8t8n | 0xd5819c09522b9eaa133991ebc996880621efa4b9 | 155,789.67 | 18 | 17,524.339360 | -| terp10tp268qk6v90wl6j583u02adscfwxc7ndwxjjk | 0x7ac2ad1c16d30af77f52a1e3c7abad8612e363d3 | 152,306.03 | 18 | 17,524.339360 | -| terp14qp22gpqvg9hslfxreg4k4vnzhplnx3hw4szde | 0xa802a52020620b787d261e515b559315c3f99a37 | 149,251.84 | 18 | 17,524.339360 | -| terp104mnxs8f6h6myuq30et8t9yt5xcccl0q2eaasr | 0x7d773340e9d5f5b270117e5675948ba1b18c7de0 | 148,984.71 | 18 | 17,524.339360 | -| terp1jwz9a53p4pla7mky5t58xx0p9cdxd6p7345pxg | 0x93845ed221a87fdf6ec4a2e87319e12e1a66e83e | 148,194.07 | 18 | 17,524.339360 | -| terp1rh0tp3hzmqfraapccryvh9jddm3umjf4d4pqx8 | 0x1ddeb0c6e2d8123ef438c0c8cb964d6ee3cdc935 | 147,175.31 | 18 | 17,524.339360 | -| terp1s7cq7nurdcx967p9tth2ccjkdk09rtm2swzrxr | 0x87b00f4f836e0c5d78255aeeac62566d9e51af6a | 146,172.26 | 18 | 17,524.339360 | -| terp185qxmr36d6umhctslt7g5xag9lz0u8zuclmdu8 | 0x3d006d8e3a6eb9bbe170fafc8a1ba82fc4fe1c5c | 144,068.86 | 18 | 17,524.339360 | -| terp1sjvxf8dkv30p5w0n9e2gsfkkad8x4llj00cqmk | 0x8498649db6645e1a39f32e548826d6eb4e6afff2 | 141,373.67 | 18 | 17,524.339360 | -| terp15dg8yjvwc2h80jqyh270dyhm660acf3dmv2muu | 0xa35072498ec2ae77c804babcf692fbd69fdc262d | 141,123.29 | 18 | 17,524.339360 | -| terp1du5phvrnv9puc0dm22qerrtdclf4xw0s5jeznf | 0x6f281bb0736143cc3dbb5281918d6dc7d35339f0 | 140,997.89 | 18 | 17,524.339360 | -| terp187z4p3h0zrkee9w2s5x7u55dyhlgvtt5fhjcsq | 0x3f8550c6ef10ed9c95ca850dee528d25fe862d74 | 139,769.36 | 18 | 17,524.339360 | -| terp135yhngq4dhp9u9qrfwl3n80agpfw2aer4rfydv | 0x8d0979a0156dc25e14034bbf199dfd4052e57723 | 139,524.31 | 18 | 17,524.339360 | -| terp1vsec57gm4rc9sngqt8k7exnt6frdgxayqg0pq0 | 0x64338a791ba8f0584d0059edec9a6bd246d41ba4 | 139,246.92 | 18 | 17,524.339360 | -| terp1xln08evnf3569c97lezvse0wuljjzajfdajsdh | 0x37e6f3e5934c69a2e0befe44c865eee7e5217649 | 134,413.96 | 18 | 17,524.339360 | -| terp1yedrxhaamt2jhplnk55h4ng3z8stc007ren3wd | 0x265a335fbddad52b87f3b5297acd1111e0bc3dfe | 132,288.84 | 18 | 17,524.339360 | -| terp1u5s7ujple300md97pa49plhjj24umvauj7vhnq | 0xe521ee483fcc5efdb4be0f6a50fef292abcdb3bc | 129,524.73 | 18 | 17,524.339360 | -| terp1h9vmh73ja8s8g5qcag34smtphyhxzqtnlz0pqr | 0xb959bbfa32e9e0745018ea23586d61b92e610173 | 129,004.26 | 18 | 17,524.339360 | -| terp1sv9sgm2y9kdlxl3z38lulr8vfghd7uqsfndymg | 0x830b046d442d9bf37e2289ffcf8cec4a2edf7010 | 128,061.39 | 18 | 17,524.339360 | -| terp1aymrd2kxfqu0h6nf9rzsq4sfp9nfqx45xwlq9k | 0xe93636aac64838fbea6928c50056090966901ab4 | 127,328.33 | 18 | 17,524.339360 | -| terp16a8l3zdkt20sa3uu30jy4c83r5me6n0e858fkx | 0xd74ff889b65a9f0ec79c8be44ae0f11d379d4df9 | 126,425.37 | 18 | 17,524.339360 | -| terp12605p7cnmxherq086ymjfa6wjc5czvfkc0e87m | 0x569f40fb13d9af9181e7d13724f74e9629813136 | 126,015.09 | 18 | 17,524.339360 | -| terp1al8hgu64xp4wgmc0yj734p3nfx9zhuy8wszqu8 | 0xefcf747355306ae46f0f24bd1a8633498a2bf087 | 124,618.70 | 18 | 17,524.339360 | -| terp1qhvs7ltdpgwuvlpt3lnrq39hrgy7z32fw26pdw | 0x05d90f7d6d0a1dc67c2b8fe63044b71a09e14549 | 124,008.13 | 18 | 17,524.339360 | -| terp15tgc7mzvemmmsthfyrzudn3v4cwgwz4ufrdpkp | 0xa2d18f6c4ccef7b82ee920c5c6ce2cae1c870abc | 122,707.00 | 18 | 17,524.339360 | -| terp14nypuk9ayrcvlttsys4wr9dcpwvjzzu2px0y3t | 0xacc81e58bd20f0cfad70242ae195b80b99210b8a | 122,236.28 | 18 | 17,524.339360 | -| terp147mpjyzq4pzat5rzfph6nkwtsu2uhnjxd66eku | 0xafb6191040a845d5d062486fa9d9cb8715cbce46 | 121,552.61 | 18 | 17,524.339360 | -| terp1uvhm3ezus6hc5v6zgc5dz4u4th77hm4jdw6tap | 0xe32fb8e45c86af8a33424628d157955dfdebeeb2 | 119,806.73 | 18 | 17,524.339360 | -| terp1nw4klv7h5sp9hcdv7pgpjd3n0dd7cpwdx8fm6u | 0x9bab6fb3d7a4025be1acf0501936337b5bec05cd | 119,735.64 | 18 | 17,524.339360 | -| terp156xlfcec0vjc8gz0gmm5axzl08xg748a466wep | 0xa68df4e3387b2583a04f46f74e985f79cc8f54fd | 119,143.44 | 18 | 17,524.339360 | -| terp1ljr6zqthzxmghfy2zxspyf9ex2w6tlflu8gagr | 0xfc87a1017711b68ba48a11a01224b9329da5fd3f | 117,298.01 | 18 | 17,524.339360 | -| terp1ykhu2dv526lz05s8nkuwmsunuep4rjepuemshz | 0x25afc5359456be27d2079db8edc393e64351cb21 | 116,485.64 | 18 | 17,524.339360 | -| terp1zh8lau0z0zdgj5c7suud8g0pzsw2fhqehz78wy | 0x15cffef1e2789a89531e8738d3a1e1141ca4dc19 | 115,783.67 | 18 | 17,524.339360 | -| terp1r8gt7zyuxzelht0s5cf0v6tjcted68p98vz5qe | 0x19d0bf089c30b3fbadf0a612f66972c2f2dd1c25 | 113,678.89 | 18 | 17,524.339360 | -| terp1jj56ceq8u5ldk3fek0ds7gtx3z9p2ta6086858 | 0x94a9ac6407e53edb4539b3db0f2166888a152fba | 112,929.32 | 18 | 17,524.339360 | -| terp1tjveh5t4740lcvf588s0ztm6fe3kq44jv44h42 | 0x5c999bd175f55ffc313439e0f12f7a4e636056b2 | 112,527.11 | 18 | 17,524.339360 | -| terp1rmnjk5fda0m3w4ujpqeup0sdg4af8xfxse907l | 0x1ee72b512debf71757920833c0be0d457a939926 | 112,472.91 | 18 | 17,524.339360 | -| terp1cu3au573xzuc5u6fzpulxaddvcn9h42rlm04rq | 0xc723de53d130b98a73491079f375ad66265bd543 | 111,428.30 | 18 | 17,524.339360 | -| terp1sts3uavn2c6snzk4a9zjum7gxjjeyyjf6jzzye | 0x82e11e75935635098ad5e9452e6fc834a5921249 | 110,506.73 | 18 | 17,524.339360 | -| terp19yw4424c7n878tewjlzdv6g4knpyuu43km7986 | 0x291d5aaab8f4cfe3af2e97c4d66915b4c24e72b1 | 110,240.98 | 18 | 17,524.339360 | -| terp1d09smq7vzztxwz465turmrfdg6m9g80j53h4cv | 0x6bcb0d83cc1096670abaa2f83d8d2d46b6541df2 | 109,394.84 | 18 | 17,524.339360 | -| terp1s375djvdwgpvynzsy26dzyppders07ur0stn5m | 0x847d46c98d7202c24c5022b4d110216e4707fb83 | 108,357.32 | 18 | 17,524.339360 | -| terp1esf3j6zjpxnhprpee0cmcythjqatx0aq8v6hyc | 0xcc1319685209a7708c39cbf1bc1177903ab33fa0 | 108,335.84 | 18 | 17,524.339360 | -| terp1nxsnlr4u07km2w5jc69ngamq79rquz22yrauch | 0x99a13f8ebc7fadb53a92c68b347760f1460e094a | 107,687.77 |12 | 11,682.892907 -| terp1akhdq530u6lvvjjphh9dzdjzc6sr39a6va9mjy | 0xedaed0522fe6bec64a41bdcad13642c6a03897ba | 107,540.84 |12 | 11,682.892907 -| terp1mc8zqead9gwk60gpyhchlw9t98qq276tzqtddl | 0xde0e2067ad2a1d6d3d0125f17fb8ab29c0057b4b | 107,371.15 |12 | 11,682.892907 -| terp1c499t0h6rlgku8hcl5sqtgyys89wln6tk324yk | 0xc54a55befa1fd16e1ef8fd2005a08481caefcf4b | 107,254.73 |12 | 11,682.892907 -| terp16fxdkyarrgyk38cz8s0lnszh0l84rn0f9yu63a | 0xd24cdb13a31a09689f023c1ff9c0577fcf51cde9 | 106,988.99 |12 | 11,682.892907 -| terp13e42jy84j08e22u77t4kjauyj5em20akd720ly | 0x8e6aa910f593cf952b9ef2eb6977849533b53fb6 | 106,958.71 |12 | 11,682.892907 -| terp1e96x2cz846rk63l52y0thkxu3skexlyvrh267t | 0xc974656047ae876d47f4511ebbd8dc8c2d937c8c | 106,676.91 |12 | 11,682.892907 -| terp1kfs6j4msv06ha0w8vclw9scth8gpvt0thzushu | 0xb261a9577063f57ebdc7663ee2c30bb9d0162deb | 104,679.65 |12 | 11,682.892907 -| terp1uczktxapdsslecrs9xsacj4uzqmnqlvue67jzy | 0xe605659ba16c21fce07029a1dc4abc1037307d9c | 103,816.06 |12 | 11,682.892907 -| terp1rn8gxlz2ktva6386hegr6gfunyhtvl9mpjvcah | 0x1cce837c4ab2d9dd44fabe503d213c992eb67cbb | 103,281.73 |12 | 11,682.892907 -| terp1x37nv8jqr7l9ypr5lmatc9g0t7g5a5c6e8uysy | 0x347d361e401fbe520474fefabc150f5f914ed31a | 101,467.23 |12 | 11,682.892907 -| terp1v58jdmmypzldlzkkecj44n3knvvuaue3jwkh5y | 0x650f26ef6408bedf8ad6ce255ace369b19cef331 | 101,213.50 |12 | 11,682.892907 -| terp17q9azxlhcp4dspnk5z8nnx6e9w9cwdgzjtwkqt | 0xf00bd11bf7c06ad80676a08f399b592b8b873502 | 101,178.89 |12 | 11,682.892907 -| terp1898ps2c8dn4mnun6v0qaqv3jtl09598mv0tujm | 0x394e182b076cebb9f27a63c1d032325fde5a14fb | 100,554.32 |12 | 11,682.892907 -| terp1ynm8m8d3ks94j85ms0shmsh5g4hnrwe8x668xh | 0x24f67d9db1b40b591e9b83e17dc2f4456f31bb27 | 100,490.93 |12 | 11,682.892907 -| terp1s0ndkafwra0v30gng8zg7c8pjd5fqd0cdc5gdg | 0x83e6db752e1f5ec8bd1341c48f60e193689035f8 | 98,398.30 |12 | 11,682.892907 -| terp10n7d2jdgzsh7hhs7avq9xpl3gd6rypezws4drg | 0x7cfcd549a8142febde1eeb005307f14374320722 | 98,113.65 |12 | 11,682.892907 -| terp1t6sfjygv3h5m8xhgdcv3tnvf5q23dqjg50al0m | 0x5ea099110c8de9b39ae86e1915cd89a015168248 | 97,495.67 |12 | 11,682.892907 -| terp1m857y2ess3uw9eced4h6w2uczuzc22a9knt9kp | 0xd9e9e22b308478e2e7196d6fa72b981705852ba5 | 97,482.48 |12 | 11,682.892907 -| terp1tegde3t99laa000mc0js5l6cwxt2s4k2svj5zc | 0x5e50dcc5652ffbd7bdfbc3e50a7f587196a856ca | 96,771.41 |12 | 11,682.892907 -| terp12vp4kgqmqs29yfneqwcyscl99tewlsehwz87z8 | 0x53035b201b041452267903b04863e52af2efc337 | 96,449.87 |12 | 11,682.892907 -| terp160tnklev7ezawjxjwc4vx963qmavvuwluf229w | 0xd3d73b7f2cf645d748d2762ac3175106fac671df | 96,327.92 |12 | 11,682.892907 -| terp1nga3xmp4jzv5v3glrr4r2kjpr0mfe3x6qke8yc | 0x9a3b136c35909946451f18ea355a411bf69cc4da | 96,077.86 |12 | 11,682.892907 -| terp1acmqqr2awx26ddzjedzpj877efy7tm0nvrkpka | 0xee36000d5d7195a6b452cb44191fdeca49e5edf3 | 95,315.45 |12 | 11,682.892907 -| terp1natkwvt9q2zujr7nlusfe3zj5sj45dfcfaamh7 | 0x9f576731650285c90fd3ff209cc452a4255a3538 | 95,302.53 |12 | 11,682.892907 -| terp1ph7k5glu2ze9sqghqax3h5d6cfkykgr6p6vaqf | 0x0dfd6a23fc50b2580117074d1bd1bac26c4b207a | 94,810.86 |12 | 11,682.892907 -| terp1k9wf8r9cze6eenk7jf4dg0ly38zdppsmyhvrtu | 0xb15c938cb816759ccede926ad43fe489c4d0861b | 94,542.69 |12 | 11,682.892907 -| terp1aspwvazxpw25y3l7wwma2j087huj2zvrsffj8z | 0xec02e674460b954247fe73b7d549e7f5f9250983 | 94,194.02 |12 | 11,682.892907 -| terp12euxuy7a6lx53lkgu4cwqv0wg6dfytqkpvxynd | 0x56786e13ddd7cd48fec8e570e031ee469a922c16 | 93,868.65 |12 | 11,682.892907 -| terp1k52uf39udpdnac8pds75xppdx7m68v5sg97g0z | 0xb515c4c4bc685b3ee0e16c3d43042d37b7a3b290 | 93,854.07 |12 | 11,682.892907 -| terp1rf7epey49gqgtsnsfsh2qaw2ghcrdazexhcdmg | 0x1a7d90e4952a0085c2704c2ea075ca45f036f459 | 93,619.24 |12 | 11,682.892907 -| terp1hfm600d3t9qdmkvp6fn2upf0t0y6p6snr6ka0j | 0xba77a7bdb15940ddd981d266ae052f5bc9a0ea13 | 93,337.16 |12 | 11,682.892907 -| terp1350efgt7areuvz2v76ayluwwmq2j499ayr7ftl | 0x8d1f94a17ee8f3c6094cf6ba4ff1ced8152a94bd | 92,449.23 |12 | 11,682.892907 -| terp13qju78fnelmu2xqp5kzws9wjg4s9wmv7p3dfx6 | 0x8825cf1d33cff7c51801a584e815d24560576d9e | 92,021.81 |12 | 11,682.892907 -| terp1mmfpdfd3uzcrdvx6seyf7gdamn80z9zc6ur7f9 | 0xded216a5b1e0b036b0da86489f21bddccef11458 | 91,793.11 |12 | 11,682.892907 -| terp1s3g0zy8zxy0lzy065g2c97s3gkx09fylnre6n2 | 0x8450f110e2311ff111faa21582fa11458cf2a49f | 90,100.25 |12 | 11,682.892907 -| terp1jgjfua3r0xrl9lm8nuep3xhfpl49pzap7j8nf7 | 0x92249e76237987f2ff679f32189ae90fea508ba1 | 89,857.53 |12 | 11,682.892907 -| terp1zwd8x69st4de8psgag9y5ufxn6mup6qcyf9wz5 | 0x139a7368b05d5b938608ea0a4a71269eb7c0e818 | 88,511.69 |12 | 11,682.892907 -| terp1jc4e3yhy49sfm367fwshq8slgr4w0yf8ep2ljc | 0x962b9892e4a9609dc75e4ba1701e1f40eae79127 | 87,885.43 |12 | 11,682.892907 -| terp1zf3j7nkpjehechkatxaluvykk8dnhz74atm0zf | 0x12632f4ec1966f9c5edd59bbfe3096b1db3b8bd5 | 87,799.99 |12 | 11,682.892907 -| terp1hsxcymejaqat0zndxaj2vyyaxd7r0pgydphhkl | 0xbc0d826f32e83ab78a6d3764a6109d337c378504 | 87,784.60 |12 | 11,682.892907 -| terp1x4kqg07pkqd6vftmgs4pwjg8k0x03uv2ncvwp2 | 0x356c043fc1b01ba6257b442a174907b3ccf8f18a | 87,300.19 |12 | 11,682.892907 -| terp1ve7w2h0elztpl4w5attqlftwtn9fyx2s2q9xey | 0x667ce55df9f8961fd5d4ead60fa56e5cca921950 | 87,125.68 |12 | 11,682.892907 -| terp1ckq3mk75lw2adfqndsdltrxhmqcqfqvda59gnq | 0xc5811ddbd4fb95d6a4136c1bf58cd7d83004818d | 86,929.47 |12 | 11,682.892907 -| terp1xvg09x76u42eagae6f9s7a3zmkeqv4g0kc2ewh | 0x3310f29bdae5559ea3b9d24b0f7622ddb206550f | 86,535.13 |12 | 11,682.892907 -| terp1vzmf47dvgxqxuyc3gr9xnvfxejc6kwnl3y3y98 | 0x60b69af9ac41806e131140ca69b126ccb1ab3a7f | 84,671.73 |12 | 11,682.892907 -| terp1t4zrrxny80rqwxuvcjaqlm9f45z0eya2cjya5d | 0x5d44319a643bc6071b8cc4ba0feca9ad04fc93aa | 84,466.06 |12 | 11,682.892907 -| terp1sy3yztvucahmln0sc0k7wq7rn4uvtk0gdzqg34 | 0x8122412d9cc76fbfcdf0c3ede703c39d78c5d9e8 | 83,785.29 |12 | 11,682.892907 -| terp1zsfuq2htu3k2f8ajw8myvrrf2fnm8v0rcquczg | 0x1413c02aebe46ca49fb271f6460c695267b3b1e3 | 82,650.49 |12 | 11,682.892907 -| terp1qgf8k7j956uckaacraaytu7gt2jrsdtee74gz0 | 0x02127b7a45a6b98b77b81f7a45f3c85aa4383579 | 82,405.09 |12 | 11,682.892907 -| terp1428tckz5pahe5t49zfr9uyux8h6uxf7hzf997g | 0xaa8ebc58540f6f9a2ea512465e13863df5c327d7 | 81,727.32 |12 | 11,682.892907 -| terp12ns5aa8m796eeq90lz38g55z4095x8qm4u66zj | 0x54e14ef4fbf1759c80aff8a2745282abcb431c1b | 81,552.71 |12 | 11,682.892907 -| terp1e7fgul2r80s62qhlr47fnrn6zc5xhylnuka3ax | 0xcf928e7d433be1a502ff1d7c998e7a16286b93f3 | 81,483.30 |12 | 11,682.892907 -| terp1m5776gscuea7jldp0elzgp3h37se3mafurm2na | 0xdd3ded2218e67be97da17e7e2406378fa198efa9 | 81,240.03 |12 | 11,682.892907 -| terp1yvjhc6vqfzl0dc7l3qmpc4yu02pt90yhyt0fsy | 0x23257c698048bef6e3df88361c549c7a82b2bc97 | 81,137.70 |12 | 11,682.892907 -| terp16al8gv6zkx93tl7dcx464fmrk0ts2c26y0h62s | 0xd77e743342b18b15ffcdc1abaaa763b3d705615a | 81,024.61 |12 | 11,682.892907 -| terp148t526ezzyp64g7anewgufantsl7jl9yxdlgau | 0xa9d7456b221103aaa3dd9e5c8e27b35c3fe97ca4 | 80,865.71 |12 | 11,682.892907 -| terp1zjekmct3xne0wxs9gx0wfl4crxra2wymgh2vnf | 0x14b36de17134f2f71a05419ee4feb81987d5389b | 78,501.40 |12 | 11,682.892907 -| terp14tvvzktgv6rhus46fn9gxvzud60d0ars7fsq4k | 0xaad8c1596866877e42ba4cca83305c6e9ed7f470 | 77,634.18 |12 | 11,682.892907 -| terp1pp8a2yn7zk8lsgnajhlk3xfst4gat02kg27xx4 | 0x084fd5127e158ff8227d95ff6899305d51d5bd56 | 77,203.52 |12 | 11,682.892907 -| terp103smxt4wz44cyxt92y3n74lekg80vwnsyrqjce | 0x7c61b32eae156b82196551233f57f9b20ef63a70 | 77,147.56 |12 | 11,682.892907 -| terp1cynhavzpt7vtmjud5k56lywvk4p7lehmklq523 | 0xc1277eb0415f98bdcb8da5a9af91ccb543efe6fb | 76,781.58 |12 | 11,682.892907 -| terp1r80vmemu37ernjccsvcysepyusnn95kv0ljc5j | 0x19decde77c8fb239cb188330486424e42732d2cc | 76,213.77 |12 | 11,682.892907 -| terp1jd5c6qt9ntdlahexyp7020fjqmfvus9kem6sz0 | 0x93698d01659adbfedf26207cf53d3206d2ce40b6 | 76,207.09 |12 | 11,682.892907 -| terp1husp4tn7qy33pv4q66zt63tqy7seuetrxdqdf4 | 0xbf201aae7e012310b2a0d684bd456027a19e6563 | 76,022.94 |12 | 11,682.892907 -| terp1q8tglwr7n3mpppfkujmnfg6zxfrh2hgfhay4cy | 0x01d68fb87e9c76108536e4b734a3423247755d09 | 75,583.95 |12 | 11,682.892907 -| terp1ktd6vc5l3v05zdfqtah64007gca3yerlraeycl | 0xb2dba6629f8b1f4135205f6faabdfe463b12647f | 75,448.50 |12 | 11,682.892907 -| terp13pjrcgj0xlete62n9w5vjajuj89k62tnzmtcek | 0x88643c224f37f2bce9532ba8c9765c91cb6d2973 | 75,312.53 |12 | 11,682.892907 -| terp1fejg59crql3xh4wxeyh2qmlhkfjjhua2qkl59l | 0x4e648a170307e26bd5c6c92ea06ff7b2652bf3aa | 75,200.61 |12 | 11,682.892907 -| terp1hnv2ngcmpagw8p2e844zd29a375tyvr87n7f00 | 0xbcd8a9a31b0f50e385593d6a26a8bd8fa8b23067 | 74,620.77 |12 | 11,682.892907 -| terp1gz85qunfs4smqclyxm2sef4afw7ky82wacf9r5 | 0x408f4072698561b063e436d50ca6bd4bbd621d4e | 74,247.37 |12 | 11,682.892907 -| terp1e6s2z3vkw2507qx9r8nzcyx3wt290qvdh2zdrf | 0xcea0a1459672a8ff00c519e62c10d172d457818d | 74,073.25 |12 | 11,682.892907 -| terp1pdlrqwa2v4lahgzx6ylqz4ytkzezady9lwa8xs | 0x0b7e303baa657fdba046d13e01548bb0b22eb485 | 73,673.46 |12 | 11,682.892907 -| terp15wy60khaqaszagaevn6nsxd5p64ppvwrjfsl62 | 0xa389a7dafd07602ea3b964f53819b40eaa10b1c3 | 73,571.26 |12 | 11,682.892907 -| terp1zyd0dzxshgrxjnl9tka2mxa2lsdrzm6846dtf0 | 0x111af688d0ba06694fe55dbaad9baafc1a316f47 | 72,939.84 |12 | 11,682.892907 -| terp1cwnae333gw8su6fh6unxwgvy4x2gzj946wcj94 | 0xc3a7dcc631438f0e6937d726672184a9948148b5 | 72,915.72 |12 | 11,682.892907 -| terp1qpt93jdp69za2p4er4t074qwwwph3p5ejkqjng | 0x005658c9a1d145d506b91d56ff540e7383788699 | 72,574.45 |12 | 11,682.892907 -| terp1ljq6g3mwpxw9wjf2v27a3aylvfs9tvvvjwuayf | 0xfc81a4476e099c57492a62bdd8f49f626055b18c | 72,376.73 |12 | 11,682.892907 -| terp162756xg3ul0c0l6szyzfmpe3dw7y3063geuxmu | 0xd2bd4d1911e7df87ff5011049d87316bbc48bf51 | 72,108.91 |12 | 11,682.892907 -| terp1es48rk7xhtrg7xuxsy5p977sx9ayayaahjn3fg | 0xcc2a71dbc6bac68f1b86812812fbd0317a4e93bd | 71,852.52 |12 | 11,682.892907 -| terp16qghewpswx6l6v8kwt5w9dwdfe2j8u27dgldvq | 0xd0117cb83071b5fd30f672e8e2b5cd4e5523f15e | 71,509.58 |12 | 11,682.892907 -| terp1f5gp7esp2hus40mcpn2uzt8wjuekk3lf9k8qrl | 0x4d101f660155f90abf780cd5c12cee97336b47e9 | 71,411.56 |12 | 11,682.892907 -| terp1yc4ddg5eqfaph7yv39n4hpq8t2ypgkvgzxke2z | 0x262ad6a299027a1bf88c89675b84075a88145988 | 71,391.87 |12 | 11,682.892907 -| terp1da0tvp6xsezjdqa3lrslf45q7w67tuynzvy47x | 0x6f5eb6074686452683b1f8e1f4d680f3b5e5f093 | 71,019.32 |12 | 11,682.892907 -| terp1yr4q346d2p83pcptnzhefzj8r8t83ghkc3367m | 0x20ea08d74d504f10e02b98af948a4719d678a2f6 | 71,004.22 |12 | 11,682.892907 -| terp1h4tge7pxkxu0sac9vmpf8jkla2pj03hjrgxhsh | 0xbd568cf826b1b8f8770566c293cadfea8327c6f2 | 70,395.70 |12 | 11,682.892907 -| terp15h3kugg8zadfd92cgla9uc4t32r2f9etamafsz | 0xa5e36e2107175a96955847fa5e62ab8a86a4972b | 70,356.31 |12 | 11,682.892907 -| terp1mhct7ffcaqastdlr9eksvkdr4vvuvcuv4qrdu8 | 0xddf0bf2538e83b05b7e32e6d0659a3ab19c6638c | 70,257.38 |12 | 11,682.892907 -| terp1zeprxp62agk9h9qzrcaff2c026cq4pfujl0jy9 | 0x164233074aea2c5b94021e3a94ab0f56b00a853c | 70,234.75 |12 | 11,682.892907 -| terp18yvgjfzr5lplsw4m4r3d3d294knfe4tan4pv3v | 0x3918892443a7c3f83abba8e2d8b545ada69cd57d | 69,927.40 |12 | 11,682.892907 -| terp16mj7pf4nwaanyp6l4auu0r2n0cex978qqst3za | 0xd6e5e0a6b3777b32075faf79c78d537e3262f8e0 | 69,675.79 |12 | 11,682.892907 -| terp1wydfe9nm5lxv26cs67erejjhgvn5sjd34v54pz | 0x711a9c967ba7ccc56b10d7b23cca5743274849b1 | 69,304.32 |12 | 11,682.892907 -| terp10qcrsu3vkvhtm5h5rnqh4dk8g5kgs3cuu2drp9 | 0x783038722cb32ebdd2f41cc17ab6c7452c88471c | 68,561.46 |12 | 11,682.892907 -| terp1226sxpfcguzsxn7fdf8rup8h0ak7chsqt7gqqc | 0x52b50305384705034fc96a4e3e04f77f6dec5e00 | 68,131.68 |12 | 11,682.892907 -| terp1w4kjn95nk63u37qwt343vmtwjtzm6qln26wvy0 | 0x756d299693b6a3c8f80e5c6b166d6e92c5bd03f3 | 67,715.90 |12 | 11,682.892907 -| terp1s468xxe9faa7nhskathlnj4ak5anevr0sq5lgh | 0x8574731b254f7be9de16eaeff9cabdb53b3cb06f | 67,671.98 |12 | 11,682.892907 -| terp1vquygf6dwzym8d6yhwxrvr0kxf6k9l4600hmlr | 0x603844274d7089b3b744bb8c360df6327562feba | 67,170.06 |12 | 11,682.892907 -| terp1mzzfanhzl8n8epwxc9tzamqqfyfrkl3sgv2ra2 | 0xd8849ecee2f9e67c85c6c1562eec0049123b7e30 | 66,798.88 |12 | 11,682.892907 -| terp1mlwk4vq9850ce274zma34wfa68m058fjx3lr3m | 0xdfdd6ab0053d1f8cabd516fb1ab93dd1f6fa1d32 | 66,633.49 |12 | 11,682.892907 -| terp14nu9declaqt969sd7jfpxv493lz0vct772k8zc | 0xacf856e71fe8165d160df4921332a58fc4f6617e | 65,733.86 |12 | 11,682.892907 -| terp1jrl8u9e0mucwpee5q3xmyx7fdzl34ptg2755c4 | 0x90fe7e172fdf30e0e734044db21bc968bf1a8568 | 65,511.62 |12 | 11,682.892907 -| terp12avy8ekav5pdmquznfqtrer47v8py8pzh7nvaf | 0x575843e6dd6502dd83829a40b1e475f30e121c22 | 65,431.97 |12 | 11,682.892907 -| terp1suzck2zmkjntvejqphrsuqw80d8ql80e3z63st | 0x87058b285bb4a6b666400dc70e01c77b4e0f9df9 | 64,020.10 |12 | 11,682.892907 -| terp1autlu0hdmm8rc60sr5g0u98apc44j8zg5jjk45 | 0xef17fe3eeddece3c69f01d10fe14fd0e2b591c48 | 63,202.58 |12 | 11,682.892907 -| terp1f2rstnx3htqngzx08rrjcx5cdnfn3una7hkfmd | 0x4a8705ccd1bac13408cf38c72c1a986cd338f27d | 62,842.74 |12 | 11,682.892907 -| terp12m9uf5skg0trk80gdu33rhj6cleje5mrv0qu5m | 0x56cbc4d21643d63b1de86f2311de5ac7f32cd363 | 62,781.63 |12 | 11,682.892907 -| terp1kacwg8t686d3f4qhv8lddvsqapwd0llstnhyjt | 0xb770e41d7a3e9b14d41761fed6b200e85cd7fff0 | 62,614.13 |12 | 11,682.892907 -| terp1pjq4lanejs4s3mn26qpe29xj3mfvtju0fl72qp | 0x0c815ff679942b08ee6ad0039514d28ed2c5cb8f | 62,579.59 |12 | 11,682.892907 -| terp1m69q6dn650vrducxws03d6zcn8cdlskm22rvja | 0xde8a0d367aa3d836f306741f16e85899f0dfc2db | 62,517.69 |12 | 11,682.892907 -| terp1kmg3fhayhf87p8842mwa77dgpsayq0ynatmnre | 0xb6d114dfa4ba4fe09cf556dddf79a80c3a403c93 | 62,036.50 |12 | 11,682.892907 -| terp1umfq8sm90a0xm568ceqsf0rk36plxpj2huk37z | 0xe6d203c3657f5e6dd347c64104bc768e83f3064a | 61,988.83 |12 | 11,682.892907 -| terp1h2tzxd6nuya4hs28hfqf0pfs9tclhn6zdqr8s8 | 0xba96233753e13b5bc147ba409785302af1fbcf42 | 61,026.80 |12 | 11,682.892907 -| terp1tykwkeddepp6qv8wkc2zg4w30uxqzgwcc40lka | 0x592ceb65adc843a030eeb6142455d17f0c0121d8 | 60,443.33 |12 | 11,682.892907 -| terp15ku4fszvhgr3l2yk8a4qamxxrcv7hdty526lgp | 0xa5b954c04cba071fa8963f6a0eecc61e19ebb564 | 60,432.39 |12 | 11,682.892907 -| terp154jxtdeeac32wrajqy45jualxekgye098l4fsf | 0xa56465b739ee22a70fb2012b4973bf366c8265e5 | 60,415.76 |12 | 11,682.892907 -| terp1pd3s08wmc9vxtvqrrvpwntj8c63j3zd2zd5zct | 0x0b63079ddbc15865b0031b02e9ae47c6a32889aa | 60,001.42 |12 | 11,682.892907 -| terp1az0kta302t6jkchf73alzuacyewl8ema3q3sgw | 0xe89f65f62f52f52b62e9f47bf173b8265df3e77d | 59,844.16 |12 | 11,682.892907 -| terp13uh02j88rfv3j3qckl2vcum9mdt8nhp7xv80wg | 0x8f2ef548e71a59194418b7d4cc7365db5679dc3e | 59,035.75 |12 | 11,682.892907 -| terp1se7m56sek8ev7za9kkpryu7r4sj9mhh35kg37h | 0x867dba6a19b1f2cf0ba5b5823273c3ac245ddef1 | 58,809.32 |12 | 11,682.892907 -| terp1vgx4ta0vug7hu4el6k3gc85hz8dq0xse9s9xa2 | 0x620d55f5ece23d7e573fd5a28c1e9711da079a19 | 58,693.29 |12 | 11,682.892907 -| terp1pu4hw8nu7tdjup8fckqhwagl8quatm8wkwd3m8 | 0x0f2b771e7cf2db2e04e9c58177751f3839d5ecee | 58,643.22 |12 | 11,682.892907 -| terp1va60vtxfmqfp3a0cyujteyxdvnc0fgnd7mysf7 | 0x6774f62cc9d81218f5f82724bc90cd64f0f4a26d | 58,196.56 |12 | 11,682.892907 -| terp1est5av20mnxp4wqw5mvx2vzzlvj5cwtnr77we5 | 0xcc174eb14fdccc1ab80ea6d8653042fb254c3973 | 58,114.58 |12 | 11,682.892907 -| terp1wjtlqgz8aylmmqcl4cjqw4xfepw0grtqxmyzd8 | 0x7497f02047e93fbd831fae240754c9c85cf40d60 | 58,098.87 |12 | 11,682.892907 -| terp1llw0vcspsggyq6uuaxpt95tpe0y2sxkpmezjva | 0xffdcf662018210406b9ce982b2d161cbc8a81ac1 | 57,977.79 |12 | 11,682.892907 -| terp1758yp0wvj2ws6qtx5s80jxz22uar8k6lljvrz5 | 0xf50e40bdcc929d0d0166a40ef9184a573a33db5f | 57,846.44 |12 | 11,682.892907 -| terp12drxa3uu6yrqatuv7kt7x9xknq2fesmwtjkmy9 | 0x53466ec79cd1060eaf8cf597e314d698149cc36e | 57,755.34 |12 | 11,682.892907 -| terp13dsecnjsu59x0pn2w465457ux06h98wy3mykrr | 0x8b619c4e50e50a67866a75754ad3dc33f5729dc4 | 57,327.55 |12 | 11,682.892907 -| terp1mpfgnvxe4hhf354rxqhmnwappewn5vx9aypxgl | 0xd85289b0d9adee98d2a3302fb9bba10e5d3a30c5 | 56,958.33 |12 | 11,682.892907 -| terp18jwu6s54vhjpk25kfsyflrvtm6cpykssfhn2td | 0x3c9dcd429565e41b2a964c089f8d8bdeb0125a10 | 56,923.79 |12 | 11,682.892907 -| terp1atsz4mjh2gj89hvs73kjh7vjs422xmwyrg4u4u | 0xeae02aee57522472dd90f46d2bf9928554a36dc4 | 56,077.13 |12 | 11,682.892907 -| terp1gn9ydxudd54vxv8wdhh9054gwv2f85hw4kve8y | 0x44ca469b8d6d2ac330ee6dee57d2a8731493d2ee | 56,005.64 |12 | 11,682.892907 -| terp1tez2xtgkayxngmayns7h6dd4zxr580282uanee | 0x5e44a32d16e90d346fa49c3d7d35b5118743bd47 | 55,640.41 |12 | 11,682.892907 -| terp1rz6lvtpcxpng6e8ctxj6w9g3kgfjqa03c75c4l | 0x18b5f62c3830668d64f859a5a71511b2132075f1 | 55,214.10 |12 | 11,682.892907 -| terp1qead3z75ahz6kw0muns6t9wl9lwvwqzldf8sfn | 0x067ad88bd4edc5ab39fbe4e1a595df2fdcc7005f | 55,008.58 |12 | 11,682.892907 -| terp1af5ltwrjvg8nh3vymm2vumfcgmhfcklda74j4x | 0xea69f5b872620f3bc584ded4ce6d3846ee9c5bed | 54,772.96 |12 | 11,682.892907 -| terp1spq8v773xp9ayy92e29n7slv6wshz72f3fdsme | 0x8040767bd1304bd210aaca8b3f43ecd3a1717949 | 54,594.76 |12 | 11,682.892907 -| terp14c3eanz39uftl7l7lqa3yvhp7t2nvstt24rxtp | 0xae239ecc512f12bffbfef83b1232e1f2d536416b | 54,362.11 |12 | 11,682.892907 -| terp1htmxu8crmps20y9smektntkzw2jm82ajm0m0wg | 0xbaf66e1f03d860a790b0de6cb9aec272a5b3abb2 | 54,207.08 |12 | 11,682.892907 -| terp14q5kgtywavqw6v4u99ncsu9e5sr54u2vrn3uzf | 0xa829642c8eeb00ed32bc29678870b9a4074af14c | 54,063.30 |12 | 11,682.892907 -| terp15ap8r3v3lnp36mhx03h0jw5zxvtrkl35y86wc0 | 0xa74271c591fcc31d6ee67c6ef93a8233163b7e34 | 53,940.01 |12 | 11,682.892907 -| terp159x655lp3plxtkfmzk78jfrymxhtcss7gkcdg5 | 0xa14daa53e1887e65d93b15bc792464d9aebc421e | 53,539.71 |12 | 11,682.892907 -| terp18f45x06tf9l36h2f7drz6n2qny3g3lvw3pat5f | 0x3a6b433f4b497f1d5d49f3462d4d40992288fd8e | 53,354.81 |12 | 11,682.892907 -| terp1usfdt0lm7y692j0hpsh4d9syxasm27f636w8jj | 0xe412d5bffbf1345549f70c2f5696043761b5793a | 53,350.07 |12 | 11,682.892907 -| terp16kllftukxdyk60hprhu44skpyc2purqkrlymdz | 0xd5bff4af9633496d3ee11df95ac2c126141e0c16 | 53,318.91 |12 | 11,682.892907 -| terp1y3ny69cjxmdmlt6lazhqtqfng8nr7dkmqkhvhx | 0x24664d171236dbbfaf5fe8ae05813341e63f36db | 53,055.76 |12 | 11,682.892907 -| terp1mp2t8r97kg3dz6zqslq9zc00hek0nu2tfm3xfg | 0xd854b38cbeb222d1684087c05161efbe6cf9f14b | 52,766.98 |12 | 11,682.892907 -| terp1aladt0fz5qhe9cg57yre632fye0rdj55d0cdnj | 0xeffad5bd22a02f92e114f1079d4549265e36ca94 | 52,740.52 |12 | 11,682.892907 -| terp1xrm520mlewyl5m7g5gcfl9uxawjryskhl083ds | 0x30f7453f7fcb89fa6fc8a2309f9786eba43242d7 | 52,632.66 |12 | 11,682.892907 -| terp1kz77dvhygrxuakta5w8hl98ghuwq0mm4nkfzcp | 0xb0bde6b2e440cdced97da38f7f94e8bf1c07ef75 | 52,339.97 |12 | 11,682.892907 -| terp1gmppu9kdwr4987etejz8su0dttwq3rszfaxzas | 0x46c21e16cd70ea53fb2bcc847871ed5adc088e02 | 52,052.96 |12 | 11,682.892907 -| terp1sx3znhlu3729sk99nrgex4h6l7cu3fjrtsfler | 0x81a229dffc8f945858a598d19356faffb1c8a643 | 51,303.13 |12 | 11,682.892907 -| terp1z26nzu03zslghdc9r0w0qy3dc2ks9su804vjsj | 0x12b53171f1143e8bb7051bdcf0122dc2ad02c387 | 51,292.56 |12 | 11,682.892907 -| terp1stp4ukvwgzcmsascm7cdxyuk6a4uy408rfu2nm | 0x82c35e598e40b1b87618dfb0d31396d76bc255e7 | 51,162.52 |12 | 11,682.892907 -| terp1m6psy8gjntdnqxrf286jpa9d34y5x05de4j3cq | 0xde83021d129adb30186951f520f4ad8d49433e8d | 51,118.18 |12 | 11,682.892907 -| terp1knzyecnv2fref60h7apc98wy4kvgfy9y8m78kn | 0xb4c44ce26c524794e9f7f743829dc4ad988490a4 | 51,075.07 |12 | 11,682.892907 -| terp1rlf60a70r3s9qdaza6zea3y04jenacgmeln0yx | 0x1fd3a7f7cf1c605037a2ee859ec48facb33ee11b | 51,036.74 |12 | 11,682.892907 -| terp1yfyhgqukzrpzmwyxuwh4erc9xvvsl6l67esqct | 0x224974039610c22db886e3af5c8f0533190febfa | 51,026.34 |12 | 11,682.892907 -| terp1qn79jp48z4djpk62lkpxd72ek2jauqyx246ptr | 0x04fc5906a7155b20db4afd8266f959b2a5de0086 | 50,820.04 |12 | 11,682.892907 -| terp1qnt8sx5xgcacapucjstcppjtxa5rx7jye44cw3 | 0x04d6781a86463b8e8798941780864b3768337a44 | 50,613.68 |12 | 11,682.892907 -| terp1nllmwwzxht7c6q4rsz3h5nu5paflzdp46dtta2 | 0x9fffb73846bafd8d02a380a37a4f940f53f13435 | 50,580.31 |12 | 11,682.892907 -| terp1kwkqnnzwkjlauqpd9gqt0frhr4e2hx6y7zqy0k | 0xb3ac09cc4eb4bfde002d2a00b7a4771d72ab9b44 | 50,444.90 |12 | 11,682.892907 -| terp1ffqtx0fgza3ksd7recq3qyrqanwd484d2y45ed | 0x4a40b33d2817636837c3ce01101060ecdcda9ead | 50,219.72 |12 | 11,682.892907 -| terp1y5wuekgaxprfdv5le0yw74xnd0fjg06yf6c5mf | 0x251dccd91d304696b29fcbc8ef54d36bd3243f44 | 50,096.11 |12 | 11,682.892907 -| terp1kcmh68qtkjc95xzqv0gj42p559hmpuu4wsnw5e | 0xb6377d1c0bb4b05a184063d12aa834a16fb0f395 | 49,899.62 |12 | 11,682.892907 -| terp1e8aarun76qw33uu284r78a9eav8srhycaepp8f | 0xc9fbd1f27ed01d18f38a3d47e3f4b9eb0f01dc98 | 49,724.62 |12 | 11,682.892907 -| terp1y8lk8h9jkh3f0gddgcqd9dv2als9tsjm57kr7m | 0x21ff63dcb2b5e297a1ad4600d2b58aefe055c25b | 49,508.55 |12 | 11,682.892907 -| terp1t5gchprvgywavxc4vy0h6y02ashtlxxmmxfcwa | 0x5d118b846c411dd61b15611f7d11eaec2ebf98db | 49,219.09 |12 | 11,682.892907 -| terp13phe5wsn9f8kjf4puh82s46kg73ndavlcyrj3k | 0x886f9a3a132a4f6926a1e5cea8575647a336f59f | 49,167.54 |12 | 11,682.892907 -| terp1f699z8c30jqtjld3207s4hmhnps83ct4zzwnjt | 0x4e8a511f117c80b97db153fd0adf77986078e175 | 48,927.89 |12 | 11,682.892907 -| terp1ca20xaahmsa9c4y5fmzule4qunstar2dnzff3m | 0xc754f377b7dc3a5c54944ec5cfe6a0e4e0be8d4d | 48,680.11 |12 | 11,682.892907 -| terp1ejngyhc7km0hq4s8f5y2raqhrffv4sey2fsppe | 0xcca6825f1eb6df7056074d08a1f4171a52cac324 | 48,606.47 |12 | 11,682.892907 -| terp1al6lxp9qjp8yfykkqyhgtjclwl28dcpya2j7tc | 0xeff5f304a0904e4492d6012e85cb1f77d476e024 | 48,500.06 |12 | 11,682.892907 -| terp1z09vt6wkvq33r3rux3kwhuwl76mkdgnx07zmyj | 0x13cac5e9d6602311c47c346cebf1dff6b766a266 | 48,448.15 |12 | 11,682.892907 -| terp1skk37vje46y8u5alq7s6894qgqvk07akqjxnfw | 0x85ad1f3259ae887e53bf07a1a396a0401967fbb6 | 48,066.00 |12 | 11,682.892907 -| terp18f7w9k8w6m2296xp3zcyj9qhyr57znlcsu6r99 | 0x3a7ce2d8eed6d4a2e8c188b049141720e9e14ff8 | 47,686.69 |12 | 11,682.892907 -| terp1essfaa9s20k04sp9h3mk59z07yaqw5e6lhzc0h | 0xcc209ef4b053ecfac025bc776a144ff13a07533a | 47,381.46 |12 | 11,682.892907 -| terp19rj8kqh2ued9759k8tdxskm7cwycm6836h7ler | 0x28e47b02eae65a5f50b63ada685b7ec3898de8f1 | 47,339.21 |12 | 11,682.892907 -| terp1e8aflsahd6wwvqmx55q565dnfxslaa785uvged | 0xc9fa9fc3b76e9ce60366a5014d51b349a1fef7c7 | 47,221.89 |12 | 11,682.892907 -| terp1u4ye07ywsj628a9j5y2el29rkwvcfajchs42g7 | 0xe54997f88e84b4a3f4b2a1159fa8a3b39984f658 | 47,034.19 |12 | 11,682.892907 -| terp1f7hz08rnlvdauzdxp3zs8m43rdv5aydg2zjvhx | 0x4fae279c73fb1bde09a60c4503eeb11b594e91a8 | 46,343.21 |12 | 11,682.892907 -| terp1tmfkdcmzm8p6u24zlplga24phzvz28c0hhev5h | 0x5ed366e362d9c3ae2aa2f87e8eaaa1b898251f0f | 46,015.85 |12 | 11,682.892907 -| terp1je5w066lejxc6lnmnc0yauya232pg9uyjz85uy | 0x9668e7eb5fcc8d8d7e7b9e1e4ef09d5454141784 | 46,013.44 |12 | 11,682.892907 -| terp1z704saadxsl5kl89e9sfd93wft0m9auu3fvtep | 0x179f5877ad343f4b7ce5c96096962e4adfb2f79c | 46,009.38 |12 | 11,682.892907 -| terp1kru49cdaystxmkqekthvcpz4hm76y3d7q03ta8 | 0xb0f952e1bd24166dd819b2eecc0455befda245be | 45,775.07 |12 | 11,682.892907 -| terp1qq0gnhq4c08h8tcl3pxmc95d7p434d5fpcumuz | 0x001e89dc15c3cf73af1f884dbc168df06b1ab689 | 45,113.48 |12 | 11,682.892907 -| terp1sgcjje9rmm96a9fsd2fzn29ymstjz4n3d9ytjq | 0x82312964a3decbae95306a9229a8a4dc17215671 | 44,584.22 |12 | 11,682.892907 -| terp15medh5cvrgpemxpz7ljd0afngvsda8he56h00d | 0xa6f2dbd30c1a039d9822f7e4d7f5334320de9ef9 | 44,564.26 |12 | 11,682.892907 -| terp1yqhaxxashrtna3u8ra67za8szw5502tp9z9ppl | 0x202fd31bb0b8d73ec7871f75e174f013a947a961 | 44,176.52 |12 | 11,682.892907 -| terp15rg69tpfa45fs53xvukep34z3rum60y228gj3t | 0xa0d1a2ac29ed68985226672d90c6a288f9bd3c8a | 44,006.73 |12 | 11,682.892907 -| terp136dle5rnmwnshaps7kfketyxgsnp8jc9rjxgjl | 0x8e9bfcd073dba70bf430f5936cac86442613cb05 | 43,925.04 |12 | 11,682.892907 -| terp13znauxz2pvslvntxs2dknnavlrylk5jdf4sk7x | 0x88a7de184a0b21f64d66829b69cfacf8c9fb524d | 43,810.16 |12 | 11,682.892907 -| terp18ysmm8t8fxch686twyrvz5tnaj30mr7v4q58t9 | 0x3921bd9d6749b17d1f4b7106c15173eca2fd8fcc | 43,205.28 |12 | 11,682.892907 -| terp16ckppcagv7j9n0alvqsfundq20c4sxzmul2u0s | 0xd62c10e3a867a459bfbf60209e4da053f158185b | 42,344.65 |12 | 11,682.892907 -| terp1hsd960wpprpg7fe3fnlj229dla73teg5vkpgeq | 0xbc1a5d3dc108c28f27314cff2528adff7d15e514 | 42,260.60 |12 | 11,682.892907 -| terp14m93apzuzvqrgtww7d20ej74n9cuhyevx6gu73 | 0xaecb1e845c1300342dcef354fccbd59971cb932c | 41,876.07 |12 | 11,682.892907 -| terp1fqsuzv3h9slvr66229h47khd6dyhsszvyt9k38 | 0x4821c132372c3ec1eb4a516f5f5aedd34978404c | 41,829.80 |12 | 11,682.892907 -| terp134mk5px0u80vj90efrsxqz8fnt84wfz9h73v0d | 0x8d776a04cfe1dec915f948e06008e99acf572445 | 41,812.78 |12 | 11,682.892907 -| terp1ld43247k0nhy7maqfssruz3m79pvuj59r5fnyr | 0xfb6b1557d67cee4f6fa04c203e0a3bf142ce4a85 | 41,557.41 |12 | 11,682.892907 -| terp1awn829txelqc6jj3lcnmap5jexdtycs6456ucm | 0xeba6751566cfc18d4a51fe27be8692c99ab2621a | 41,332.16 |12 | 11,682.892907 -| terp182psjuvp75e37zz4nn0nsn7rhk5kzkznes3y62 | 0x3a83097181f5331f08559cdf384fc3bda9615853 | 41,079.97 |12 | 11,682.892907 -| terp1scw7pqrwp9f5k8577c3msrsj5tgzfj34ujyazj | 0x861de0806e09534b1e9ef623b80e12a2d024ca35 | 40,868.23 |12 | 11,682.892907 -| terp1g3fj7ny9nyrvn26xy9x3e9zz25805cs9y79exv | 0x44532f4c859906c9ab46214d1c9442550efa6205 | 40,838.89 |12 | 11,682.892907 -| terp1dw60mh2x0p0jhqj3cp4vvwm85673ln40wrdkey | 0x6bb4fddd46785f2b8251c06ac63b67a6bd1fceaf | 40,388.17 |12 | 11,682.892907 -| terp16sle5eqjtx5emwy5eartr0c6nxep8awymp9j4k | 0xd43f9a641259a99db894cf46b1bf1a99b213f5c4 | 40,377.01 |12 | 11,682.892907 -| terp18cyckrlz42n9stvjz4ggyplmemkkxy7phnn6jt | 0x3e098b0fe2aaa6582d9215508207fbceed6313c1 | 40,351.09 |12 | 11,682.892907 -| terp1zme9tg804gxef4xcmkfgvvmxpuqrvx3tl5u5y0 | 0x16f255a0efaa0d94d4d8dd928633660f00361a2b | 40,238.25 |12 | 11,682.892907 -| terp1nvvhe72nanudgymlsatgzun2upmw4x5xw63l4u | 0x9b197cf953ecf8d4137f875681726ae076ea9a86 | 40,044.94 |12 | 11,682.892907 -| terp170sm2k3gqv94zc3xaefm95thwv9h6d268zuuvt | 0xf3e1b55a28030b516226ee53b2d177730b7d355a | 39,808.94 |12 | 11,682.892907 -| terp1chh3sxyjfne8ayj96687gv7w960acjn8c905km | 0xc5ef1818924cf27e9245d68fe433ce2e9fdc4a67 | 39,739.61 |12 | 11,682.892907 -| terp16al2cvjkaten2hq6f34yljcgh0s3gjhgkwlzqh | 0xd77eac3256eaf3355c1a4c6a4fcb08bbe1144ae8 | 39,479.56 |12 | 11,682.892907 -| terp1fxfa9t35m3we35j59p96tm0kv4gp4x9c4vcdxj | 0x4993d2ae34dc5d98d254284ba5edf665501a98b8 | 39,310.78 |12 | 11,682.892907 -| terp1gjykv3lwh7vwmu8jlpzsscl07tgjmq2wqhevw2 | 0x44896647eebf98edf0f2f8450863eff2d12d814e | 39,108.35 |12 | 11,682.892907 -| terp15zkzqzgfh0w8qmxhtaw5030vmrv8laxd54mm66 | 0xa0ac200909bbdc706cd75f5d47c5ecd8d87ff4cd | 39,015.22 |12 | 11,682.892907 -| terp137m5uaxyu4wyse9vdzcru276anentyl8207rkv | 0x8fb74e74c4e55c4864ac68b03e2bdaecf33593e7 | 38,804.49 |12 | 11,682.892907 -| terp1mmypt4lr4c55grh44fddjc2lvfv9jjpsmz3nww | 0xdec815d7e3ae29440ef5aa5ad9615f6258594830 | 38,530.28 |12 | 11,682.892907 -| terp1a7hze70uw3zkp0ttaxjtwxrq2uz04qnv2aquef | 0xefae2cf9fc744560bd6be9a4b718605704fa826c | 37,888.18 |12 | 11,682.892907 -| terp1ju4ftfdfktpe0requguwgfrpyhmyj0r647dwgn | 0x972a95a5a9b2c3978f20e238e4246125f6493c7a | 37,417.19 |12 | 11,682.892907 -| terp1fjlvtasu86gtqcqthzjlp566j8dejz76mu4lle | 0x4cbec5f61c3e90b0600bb8a5f0d35a91db990bda | 37,259.47 |12 | 11,682.892907 -| terp1swdk04ghpyftkhfuvhyzd58qdyqdjjhg2rp9my | 0x839b67d5170912bb5d3c65c826d0e06900d94ae8 | 37,117.18 |12 | 11,682.892907 -| terp109axmyv0l0a34dvqw2h4x076xn0jf6x6xgums4 | 0x797a6d918ffbfb1ab58072af533fda34df24e8da | 36,702.84 |12 | 11,682.892907 -| terp185zs7tye54pkx06vrnw7wks95gzxnxawn8umhk | 0x3d050f2c99a543633f4c1cdde75a05a204699bae | 36,506.71 |12 | 11,682.892907 -| terp1me3p5kgdfz755d5zm9evwt970n23sdn0t77luf | 0xde621a590d48bd4a3682d972c72cbe7cd518366f | 36,239.22 |12 | 11,682.892907 -| terp1u9phq6msdng64sduvvqgsne3ylnvj26nuh6xcn | 0xe143706b706cd1aac1bc6300884f3127e6c92b53 | 36,234.00 |12 | 11,682.892907 -| terp1t749sue0vc5lwsvpxp7ldm0uuearmz0clvgyky | 0x5faa58732f6629f74181307df6edfce67a3d89f8 | 36,233.63 |12 | 11,682.892907 -| terp173qnza2rwces2ukj2qlm7asyrfecae6c6f0uxx | 0xf44131754376330572d2503fbf76041a738ee758 | 36,231.56 |12 | 11,682.892907 -| terp16k6k9jhngf0ju87p4fwxuugq4qd2yx0ts8ceyp | 0xd5b562caf3425f2e1fc1aa5c6e7100a81aa219eb | 36,118.80 |12 | 11,682.892907 -| terp1ty70cs76uva8yaavapckc22malpxqtu23gz6yu | 0x593cfc43dae33a7277ace8716c295befc2602f8a | 36,062.90 |12 | 11,682.892907 -| terp1tx2x0jqw0ezn8vv5ne45rmywpl8r7vn6ec4m35 | 0x599467c80e7e4533b1949e6b41ec8e0fce3f327a | 36,025.41 |12 | 11,682.892907 -| terp186n9a0pgzcug8g3apyd8u2gzspeg7j96mgt7ss | 0x3ea65ebc28163883a23d091a7e290280728f48ba | 36,014.02 |12 | 11,682.892907 -| terp1qe90rcttzg9ul6ffc87fmluhr76td8lxzxwan6 | 0x064af1e16b120bcfe929c1fc9dff971fb4b69fe6 | 35,934.31 |12 | 11,682.892907 -| terp1cp3t07h62fjlzntv0zlmd2flnj23nyfltrrm2a | 0xc062b7fafa5265f14d6c78bfb6a93f9c9519913f | 35,449.57 |12 | 11,682.892907 -| terp1ez3a38nw9a5m24c8alyud958pw64e778234nsp | 0xc8a3d89e6e2f69b55707efc9c696870bb55cfbc7 | 35,185.57 |12 | 11,682.892907 -| terp1jm2lx4s7lmjythqvt9x383jfa5hedpw76htjfp | 0x96d5f3561efee445dc0c594d13c649ed2f9685de | 34,912.87 |12 | 11,682.892907 -| terp1dkgm76c7a2966g75xycyuvj8vv024eqdkvmttt | 0x6d91bf6b1eea8bad23d431304e3247631eaae40d | 34,891.12 |12 | 11,682.892907 -| terp1ake567crl9grs7vskxg9lz9vdk0pk0uh67wxh8 | 0xedb34d7b03f950387990b1905f88ac6d9e1b3f97 | 34,576.25 |12 | 11,682.892907 -| terp1h7l9sg4gszjpcgr4m3lpmynxxuuu7yv7pytsxa | 0xbfbe5822a880a41c2075dc7e1d92663739cf119e | 34,028.04 |12 | 11,682.892907 -| terp1l9h82er9dj69wpf8ph3dfz5xumxujtcxzw5kpl | 0xf96e7564656cb45705270de2d48a86e6cdc92f06 | 33,889.73 |12 | 11,682.892907 -| terp1av4c0yz03anfkqucdxusdmj64l64rcq4dpkjdx | 0xeb2b87904f8f669b039869b906ee5aaff551e015 | 33,590.16 |12 | 11,682.892907 -| terp1a3qjfajde46sada22ed9787vn6pvu874j0r6t8 | 0xec4124f64dcd750eb7aa565a5f1fcc9e82ce1fd5 | 33,312.29 |12 | 11,682.892907 -| terp1jtwlh5dtelqv40hfw0c8zfkf8jp9xnw652ukl7 | 0x92ddfbd1abcfc0cabee973f07126c93c82534dda | 33,173.44 |12 | 11,682.892907 -| terp1rmnrljsuamfp24e0v59vgzauvejdhpwrwr96ka | 0x1ee63fca1ceed215572f650ac40bbc6664db85c3 | 33,018.84 |12 | 11,682.892907 -| terp1tzt6vcm78u3az8ggunk3mrf3j5w4sekfvax35f | 0x5897a6637e3f23d11d08e4ed1d8d31951d5866c9 | 32,866.50 |12 | 11,682.892907 -| terp13pwr225fqjf94yspksctq4tk9jedzmx7wvrqxj | 0x885c352a8904925a9201b430b055762cb2d16cde | 32,720.34 |12 | 11,682.892907 -| terp1cpa5zncr6a3uatwd6533krewdjw0hzlv7dxaze | 0xc07b414f03d763ceadcdd5231b0f2e6c9cfb8bec | 32,628.06 |12 | 11,682.892907 -| terp12vpyx2v5f3stjs4pud2suj6n5cd9rd4z0wwdtn | 0x53024329944c60b942a1e3550e4b53a61a51b6a2 | 32,469.86 |12 | 11,682.892907 -| terp1vvc6p8t45rxkdl073krxz0lcsqvchn9vv5kzxd | 0x6331a09d75a0cd66fdfe8d86613ff880198bccac | 32,385.35 |12 | 11,682.892907 -| terp1h5csc7z6pq4245kxlanxws02sut2s3azz65yyg | 0xbd310c785a082aaad2c6ff666741ea8716a847a2 | 32,346.54 |12 | 11,682.892907 -| terp1jwgu5g0gr7dmzlzpjqrens8e7k9cq6v2jskmhz | 0x9391ca21e81f9bb17c41900799c0f9f58b80698a | 32,089.49 |12 | 11,682.892907 -| terp194ggapl9azryxwa5p2t89nrr2egs3hvle9dayz | 0x2d508e87e5e886433bb40a9672cc63565108dd9f | 32,061.41 |12 | 11,682.892907 -| terp1n7x2xkt7sr5q9dfgvaadsqct5q6kmm745cqrps | 0x9f8ca3597e80e802b528677ad8030ba0356defd5 | 31,837.15 |12 | 11,682.892907 -| terp1k2pvvkr84hlezqav0yzaut09tvvg4rgkw25wk3 | 0xb282c65867adff9103ac7905de2de55b188a8d16 | 31,721.00 |12 | 11,682.892907 -| terp15au63npddx6c2h56llzhry8sx9ncer0xl3zsp2 | 0xa779a8cc2d69b5855e9affc57190f031678c8de6 | 31,687.94 |12 | 11,682.892907 -| terp1kpxyjgqqrvhwy0jdhpvvmjs4prnsv00ya7jgw9 | 0xb04c4920001b2ee23e4db858cdca1508e7063de4 | 31,657.15 |12 | 11,682.892907 -| terp13arcp7cr35vwscz4gav23etftfxhf905t8tltu | 0x8f4780fb038d18e860554758a8e5695a4d7495f4 | 31,584.02 |12 | 11,682.892907 -| terp1qw9yzktkjlxu6kke20xl7l96m2y68nph6kevlk | 0x038a41597697cdcd5ad953cdff7cbada89a3cc37 | 31,467.45 |12 | 11,682.892907 -| terp15jm8lg04rsgmgwc3jyxz4gt5l674rn3azc6vpt | 0xa4b67fa1f51c11b43b11910c2aa174febd51ce3d | 31,338.11 |12 | 11,682.892907 -| terp13aspeuwmv9hpcrl85ar0nystuc6xrtgyc7jtcp | 0x8f601cf1db616e1c0fe7a746f9920be63461ad04 | 30,943.49 |12 | 11,682.892907 -| terp1ax4k9et2ax2m84qry87uplyrxjmucnduxr96xn | 0xe9ab62e56ae995b3d40321fdc0fc8334b7cc4dbc | 30,822.67 |12 | 11,682.892907 -| terp1qjgt5tsgnjdgedzuwkqkcdxgvryy7mg0juj08p | 0x0490ba2e089c9a8cb45c75816c34c860c84f6d0f | 30,669.58 |12 | 11,682.892907 -| terp1g7ggkmg9tefcl5h302fygr0clq39mlyecwlzeg | 0x47908b6d055e538fd2f17a92440df8f8225dfc99 | 30,591.81 |12 | 11,682.892907 -| terp1al22gvk9tcxf77y6n0nl2qxvje78ftnzxmrsrn | 0xefd4a432c55e0c9f789a9be7f500cc967c74ae62 | 30,442.62 |12 | 11,682.892907 -| terp1emmwaqpdjm4dt7z2vrps9mvlnn5fv6uc8uwh7t | 0xcef6ee802d96ead5f84a60c302ed9f9ce8966b98 | 30,345.77 |12 | 11,682.892907 -| terp1fsnv6u795kgqnkwea07td8wxap77nc0gkf509w | 0x4c26cd73c5a59009d9d9ebfcb69dc6e87de9e1e8 | 30,325.58 |12 | 11,682.892907 -| terp1xcrkukjqrhkvv8qrm2t7wvkg785cfnmpceslyl | 0x36076e5a401decc61c03da97e732c8f1e984cf61 | 29,982.06 |12 | 11,682.892907 -| terp1nvwl269uhef2h66vn63qj5l5v5vyj9ky8mzd4j | 0x9b1df568bcbe52abeb4c9ea20953f465184916c4 | 29,907.26 |12 | 11,682.892907 -| terp1ark8t6u3f8ksxmht9pzxhn7pwe7acc8hmvngfh | 0xe8ec75eb9149ed036eeb28446bcfc1767ddc60f7 | 29,654.99 |12 | 11,682.892907 -| terp1x92635dqpmj3tvd0yvj4t67vpc2wuge22kya69 | 0x3155a8d1a00ee515b1af232555ebcc0e14ee232a | 29,640.25 |12 | 11,682.892907 -| terp1h4s30yplt7dq8kdvh5tn5e8y2ztd82fmrklwyz | 0xbd6117903f5f9a03d9acbd173a64e45096d3a93b | 29,604.83 |12 | 11,682.892907 -| terp17jz2kg8ah0t9fc9gnfqqrqsx9xq505g6xcsa73 | 0xf484ab20fdbbd654e0a89a40018206298147d11a | 29,597.53 |12 | 11,682.892907 -| terp1f7q0fc3d7gl9cmah2ns7jq6ns2aa42d687lkt4 | 0x4f80f4e22df23e5c6fb754e1e9035382bbdaa9ba | 29,544.00 |12 | 11,682.892907 -| terp18lv3zqq5ddjjfrmhtdasxngmh6fnzqgqusl6ll | 0x3fd91100146b65248f775b7b034d1bbe93310100 | 29,504.79 |12 | 11,682.892907 -| terp14lt352nch9flwajzdx7n7m7nv30xrwh58n6avw | 0xafd71a2a78b953f7764269bd3f6fd3645e61baf4 | 29,496.12 |12 | 11,682.892907 -| terp1aenaysg6j2cpl9ktev9vtp7d3frfe28qgewut7 | 0xee67d2411a92b01f96cbcb0ac587cd8a469ca8e0 | 29,377.62 |12 | 11,682.892907 -| terp1xt6vn2kehcgq72ftclrk4w6ejyauwjrtj04476 | 0x32f4c9aad9be100f292bc7c76abb59913bc7486b | 29,275.40 |12 | 11,682.892907 -| terp1e96d27hxh2gl9x65p4t9j5uy3h33xa5dz3qdkh | 0xc974d57ae6ba91f29b540d565953848de313768d | 29,211.53 |12 | 11,682.892907 -| terp124cmz3t9ht8a8rs8h8zj4rp38jd5yfj0pyapuh | 0x5571b14565bacfd38e07b9c52a8c313c9b42264f | 29,169.80 |12 | 11,682.892907 -| terp1kynl4yd7mc5qr0u7xpyuehvnjrv072y9q29ap7 | 0xb127fa91bede2801bf9e3049ccdd9390d8ff2885 | 29,110.70 |12 | 11,682.892907 -| terp1e82u5yk87zchg5gfdp40j69j2ythv93sfcmenq | 0xc9d5ca12c7f0b1745109686af968b25117761630 | 29,100.02 |12 | 11,682.892907 -| terp1fu7kskrzswnjhl7zm5luzz5mj9lx0rjfyhrl02 | 0x4f3d68586283a72bffc2dd3fc10a9b917e678e49 | 29,092.05 |12 | 11,682.892907 -| terp18ntwjn2sg8xrl4022659pnu4w0x7gh48x8ylrv | 0x3cd6e94d5041cc3fd5ea56a850cf9573cde45ea7 | 28,945.15 |12 | 11,682.892907 -| terp18yn0vgcpjfxafxd80xn03nl0mka7pdy4dzjmjh | 0x3926f62301924dd499a779a6f8cfefddbbe0b495 | 28,942.63 |12 | 11,682.892907 -| terp10h93f4epndz6esmtpz3nfym5ugzkhhyqgzgl46 | 0x7dcb14d7219b45acc36b08a3349374e2056bdc80 | 28,937.83 |12 | 11,682.892907 -| terp1uhn56yrj5qz2ql02rv8lfstfgf9qkgrchqpdh8 | 0xe5e74d1072a004a07dea1b0ff4c169424a0b2078 | 28,933.85 |12 | 11,682.892907 -| terp159382qv50t8mtekynqh4s5dat7vzaswqlxust8 | 0xa1627501947acfb5e6c4982f5851bd5f982ec1c0 | 28,539.53 |12 | 11,682.892907 -| terp1yr50zz0hvkg6kpz62qpmzkadrumqjl4q9gsphl | 0x20e8f109f76591ab045a5003b15bad1f36097ea0 | 28,461.51 |12 | 11,682.892907 -| terp1xhfysqnndh3ysyda44llcwtkdu758mf3hmxsdk | 0x35d24802736de24811bdad7ffc39766f3d43ed31 | 28,254.74 |12 | 11,682.892907 -| terp1rpt8pg3qtge9kdlk2727ffp4mvsnfr4jem44v5 | 0x185670a2205a325b37f65795e4a435db21348eb2 | 28,190.29 |12 | 11,682.892907 -| terp1z3894w22qv7xz5jg4l4e9nmtlujsfh80247re4 | 0x144e5ab94a033c615248afeb92cf6bff2504dcef | 27,911.29 |12 | 11,682.892907 -| terp195r3ak8u96lw0shq2luwydu84wyxqm59ymwj2k | 0x2d071ed8fc2ebee7c2e057f8e23787ab88606e85 | 27,889.59 |12 | 11,682.892907 -| terp1zqz7fdav36jjtwxy4czwx5wveyhcjaaw9r7wrw | 0x1005e4b7ac8ea525b8c4ae04e351ccc92f8977ae | 27,793.99 |12 | 11,682.892907 -| terp1g9dpgu2rns0dngx70zke6kfjgsmtjq86dwnnet | 0x415a1471439c1ed9a0de78ad9d59324436b900fa | 27,763.12 |12 | 11,682.892907 -| terp1m5c6035fax4spgt0tvst3rwep4nftnxvrxdd83 | 0xdd31a7c689e9ab00a16f5b20b88dd90d6695cccc | 27,637.47 |12 | 11,682.892907 -| terp1lqyvtzz4h4zrsm3dkneddylwqgvcyzk7eg6cwz | 0xf808c58855bd44386e2db4f2d693ee0219820ade | 27,551.04 |12 | 11,682.892907 -| terp13uf36em4hl38d6vgpqu7nugp4j5ue8tnk4ssz6 | 0x8f131d6775bfe276e9880839e9f101aca9cc9d73 | 27,446.71 |12 | 11,682.892907 -| terp16hwsyur99n4uz4rlqnss8q25js2v2hkmwr7xmz | 0xd5dd0270652cebc1547f04e10381549414c55edb | 26,886.19 |12 | 11,682.892907 -| terp1z9y7xgj8gd0xyn564a335a85psqyfx2vvsdq4s | 0x1149e32247435e624e9aaf631a74f40c0044994c | 26,870.81 |12 | 11,682.892907 -| terp13kaa6qu3ev239h0snhvmndd2vr5qls57p89uu2 | 0x8dbbdd0391cb1512ddf09dd9b9b5aa60e80fc29e | 26,829.40 |12 | 11,682.892907 -| terp18lcn8vlll87fj4tzvw9azal7mq2xcue5feaxxj | 0x3ff133b3fff9fc995562638bd177fed8146c7334 | 26,711.67 |12 | 11,682.892907 -| terp1raqpc53lzvuae296kk9yd9r0t86qzrdt2st064 | 0x1f401c523f1339dca8bab58a46946f59f4010dab | 26,545.96 |12 | 11,682.892907 -| terp1mv7kmezp7cspyktnwa3g59xgtv8f3ptyu7yhck | 0xdb3d6de441f62012597377628a14c85b0e988564 | 26,492.61 |12 | 11,682.892907 -| terp109wx9ggkm3f5hvtl6w0ltaurrc40x79r4jwfme | 0x795c62a116dc534bb17fd39ff5f7831e2af378a3 | 26,373.74 |12 | 11,682.892907 -| terp1fj6pntjt6meg7dul4drzuyfq5t5g6jj2y0nqal | 0x4cb419ae4bd6f28f379fab462e1120a2e88d4a4a | 26,230.84 |12 | 11,682.892907 -| terp1lr5g8ep0gv22vewymw669tnx4nukdlh2v7dtl4 | 0xf8e883e42f4314a665c4dbb5a2ae66acf966feea | 25,858.60 |12 | 11,682.892907 -| terp1u02emhzgh4fg0awdtv7lt45k3ytnn2cdnrkwtg | 0xe3d59ddc48bd5287f5cd5b3df5d696891739ab0d | 25,704.91 |12 | 11,682.892907 -| terp1urtrk77da34du3efquvepluwnclzgstrvjzggn | 0xe0d63b7bcdec6ade4729071990ff8e9e3e244163 | 25,667.15 |12 | 11,682.892907 -| terp1qxwj20e9r2yp33ktny8r0e8unz9w0n5ayt6q9g | 0x019d253f251a8818c6cb990e37e4fc988ae7ce9d | 25,606.27 |12 | 11,682.892907 -| terp14vcds0ah5rp00v2kc3rllk7cjlzcf8840z82e3 | 0xab30d83fb7a0c2f7b156c447ffdbd897c5849cf5 | 25,558.30 |12 | 11,682.892907 -| terp1s9zxv8mwdr3yxzm6s3qc8l0308ugznc2gmw7jq | 0x8144661f6e68e2430b7a844183fdf179f8814f0a | 25,489.75 |12 | 11,682.892907 -| terp1v5z53stzfn9s8fyypw3jtsnltcw555xam8z8ky | 0x650548c1624ccb03a4840ba325c27f5e1d4a50dd | 25,412.89 |12 | 11,682.892907 -| terp1ty6dl804f2297wyfkuz2ljf655tsdc4xvgqgec | 0x5934df9df54a945f3889b704afc93aa51706e2a6 | 25,403.07 |12 | 11,682.892907 -| terp1tsy3u3aj9cuuez77ye26g0j06ehr52jf235dj2 | 0x5c091e47b22e39cc8bde2655a43e4fd66e3a2a49 | 25,398.73 |12 | 11,682.892907 -| terp1u02mfq766fcngrgmqu2v6flnzz8glhhlg5zfxg | 0xe3d5b483dad271340d1b0714cd27f3108e8fdeff | 25,395.60 |12 | 11,682.892907 -| terp1ah8gzuad07wq7mjzz063yay25u4ygnr7swrhcl | 0xedce8173ad7f9c0f6e4213f512748aa72a444c7e | 25,371.77 |12 | 11,682.892907 -| terp1qm7ce72xzcwunxmj3uaxt5utsysmqd6yzqeyh3 | 0x06fd8cf946161dc99b728f3a65d38b8121b03744 | 25,340.13 |12 | 11,682.892907 -| terp12xpferhw6dhmgclpzaaukezw8gnw4ghkegrgeq | 0x51829c8eeed36fb463e1177bcb644e3a26eaa2f6 | 25,233.44 |12 | 11,682.892907 -| terp1ugjj557l7jslxckuqp95eahzs57sfcv2cegewe | 0xe2252a53dff4a1f362dc004b4cf6e2853d04e18a | 24,960.06 |12 | 11,682.892907 -| terp1pfev85dxlj3axe70q42wwxa7a7uvplk6j9eqq3 | 0x0a72c3d1a6fca3d367cf0554e71bbeefb8c0feda | 24,881.78 |12 | 11,682.892907 -| terp1y0qk0wsfv68qstejeylsnyed8q5dww9k93ytww | 0x23c167ba09668e082f32c93f09932d3828d738b6 | 24,879.88 |12 | 11,682.892907 -| terp1qwnwe80rlyhqw3qur3x6zezuwftf3tpefdnkpt | 0x03a6ec9de3f92e07441c1c4da1645c725698ac39 | 24,842.61 |12 | 11,682.892907 -| terp1wwr75zpyprz5lqv04lnc2qrnccezryajv8yhdn | 0x7387ea082408c54f818fafe7850073c6322193b2 | 24,731.14 |12 | 11,682.892907 -| terp14v36ggd92yffsfdm92hccgm5kymzgnvtenahlp | 0xab23a421a551129825bb2aaf8c2374b136244d8b | 24,521.12 |12 | 11,682.892907 -| terp1aa962809psd4shhlhm9wkl43vehwecu72wggh6 | 0xef4ba51de50c1b585effbecaeb7eb1666eece39e | 24,255.21 |12 | 11,682.892907 -| terp1cgsy4xxwy68z5kddz3y9d2tyg0pq02jf0gfka8 | 0xc2204a98ce268e2a59ad144856a96443c207aa49 | 24,250.01 |12 | 11,682.892907 -| terp18m88dwt9wrvlgyuf5lywuc7393v0qkgnjvgvgm | 0x3ece76b96570d9f41389a7c8ee63d12c58f05913 | 24,196.06 |12 | 11,682.892907 -| terp1hdxq3383dexqhgm9zel6ekwp52mz6t0qw82a6j | 0xbb4c08c4f16e4c0ba365167facd9c1a2b62d2de0 | 24,078.66 |12 | 11,682.892907 -| terp1w4q77trhfmkd5j5xm8744mkw9fkmsnr2zq9u3e | 0x7541ef2c774eecda4a86d9fd5aeece2a6db84c6a | 24,038.76 |12 | 11,682.892907 -| terp1yar2rnf4cf9zq2xdkqx8tt9a707ctc32ytxlg5 | 0x2746a1cd35c24a2028cdb00c75acbdf3fd85e22a | 24,012.88 |12 | 11,682.892907 -| terp1wt5lm6kx76je66k6vae3r43aue4azwfwc2ufmh | 0x72e9fdeac6f6a59d6ada677311d63de66bd1392e | 23,964.39 |12 | 11,682.892907 -| terp1pmgegf0uz493ftqynakgf03ucj25pp3vml0gs9 | 0x0ed19425fc154b14ac049f6c84be3cc49540862c | 23,898.47 |12 | 11,682.892907 -| terp1s4zjj8w7sm6qrwelqddj9044rymvymnlaejz22 | 0x8545291dde86f401bb3f035b22beb51936c26e7f | 23,667.24 |12 | 11,682.892907 -| terp1ccqt0g0n6rujyfk5k2ztk5lqqxn7f8ta0dqe3v | 0xc600b7a1f3d0f92226d4b284bb53e001a7e49d7d | 23,651.86 |12 | 11,682.892907 -| terp1ylmz83p6e4gnsnkrqhdkh3kcus2ndhw0alnf0e | 0x27f623c43acd51384ec305db6bc6d8e41536ddcf | 23,604.96 |12 | 11,682.892907 -| terp1e8a0exxcfqhm4l2vdznja2ypgqaqqdpqh3cf2p | 0xc9fafc98d8482fbafd4c68a72ea881403a003420 | 23,541.35 |12 | 11,682.892907 -| terp1dyu6rma38khq8866ajqm7sxvenfge9rk3se5dc | 0x6939a1efb13dae039f5aec81bf40ccccd28c9476 | 23,538.72 |12 | 11,682.892907 -| terp1lqs07lqv2yp28kg4hwzpe2au3tgwa69pm59s59 | 0xf820ff7c0c5102a3d915bb841cabbc8ad0eee8a1 | 23,523.63 |12 | 11,682.892907 -| terp1zdtul2vaepda60v88m857aqh5qa0k2vwmqqc27 | 0x1357cfa99dc85bdd3d873ecf4f7417a03afb298e | 23,325.48 |12 | 11,682.892907 -| terp1qkalm23n95630sggkq0s2d6g3a5e0czljugkta | 0x05bbfdaa332d3517c108b01f0537488f6997e05f | 23,281.17 |12 | 11,682.892907 -| terp1xr2avxd83sgywk6ljqc2k4zn02tf22sa34lcud | 0x30d5d619a78c10475b5f9030ab54537a96952a1d | 23,268.41 |12 | 11,682.892907 -| terp13cym4uczfpc62g6yx8gqnrcxh5y368tppfafk5 | 0x8e09baf3024871a5234431d0098f06bd091d1d61 | 23,146.07 |12 | 11,682.892907 -| terp173hf7myamtj0qv6483y8h2wjuxttgatqp5pnvt | 0xf46e9f6c9ddae4f033553c487ba9d2e196b47560 | 22,934.65 |12 | 11,682.892907 -| terp1v9525j8s99lhhtntp0w9k42kuureat0zmtdl3n | 0x6168aa48f0297f7bae6b0bdc5b5556e7079eade2 | 22,891.55 |12 | 11,682.892907 -| terp1tx8xfxys863tf5k2un527kjf0lk3guy2t2nx3w | 0x598e6498903ea2b4d2cae4e8af5a497fed14708a | 22,760.40 |12 | 11,682.892907 -| terp14k2s526tym6sue3vdm6t7fwnlr0sme3ghykw6n | 0xad950a2b4b26f50e662c6ef4bf25d3f8df0de628 | 22,683.26 |12 | 11,682.892907 -| terp1nx7j5x80pmtsgahhzg5hym64xxqaerq6z3k5ma | 0x99bd2a18ef0ed70476f71229726f553181dc8c1a | 22,621.22 |12 | 11,682.892907 -| terp1zhq7rjlmj4u057tlwn3d86pny9y4g08xucqp3c | 0x15c1e1cbfb9578fa797f74e2d3e8332149543ce6 | 22,411.84 |12 | 11,682.892907 -| terp1e8w6jlrkmj54kx6m2sk0lstur5elechxfsxazz | 0xc9dda97c76dca95b1b5b542cffc17c1d33fce2e6 | 22,398.38 |12 | 11,682.892907 -| terp1dwv3030vkt4hprfazrhgr3etx65da9q55ljquc | 0x6b9917c5ecb2eb708d3d10ee81c72b36a8de9414 | 22,391.24 |12 | 11,682.892907 -| terp152fjjdjqnfdreggvyywsvkd3yqk8nzhxy4tq9a | 0xa2932936409a5a3ca10c211d0659b1202c798ae6 | 22,389.20 |12 | 11,682.892907 -| terp13pk4y6zdwrxwujs76l052s50k3has3s8hsmwlq | 0x886d52684d70ccee4a1ed7df45428fb46fd84607 | 21,739.24 |12 | 11,682.892907 -| terp1zkzdsr2snyq6qh2sdz7g99x7g76xpsj7smgkax | 0x1584d80d509901a05d5068bc8294de47b460c25e | 21,642.25 |12 | 11,682.892907 -| terp1gsnqr7f286y4kpacc9w722yacm5nrt0ap7tfu7 | 0x442601f92a3e895b07b8c15de5289dc6e931adfd | 21,602.05 |12 | 11,682.892907 -| terp1yu4w35vaaqgx42wjyve985z43tjus4l5wy4d09 | 0x272ae8d19de8106aa9d2233253d0558ae5c857f4 | 21,385.84 |12 | 11,682.892907 -| terp1a4x7reaxu5kdq5pugv6rqh6s0we5ugmxelmqkg | 0xed4de1e7a6e52cd0503c4334305f507bb34e2366 | 21,340.01 |12 | 11,682.892907 -| terp1v3vez5n7zggv9wsv9cfwwktnlqjvescn702tsd | 0x645991527e1210c2ba0c2e12e75973f824ccc313 | 21,244.85 | 6 | 5,841.446453 -| terp1aznv7vadyf5g8ulqyevuk3jmw9rpg40tfm4glk | 0xe8a6cf33ad226883f3e02659cb465b71461455eb | 21,213.96 | 6 | 5,841.446453 -| terp1vlgxvmar377tufqxlqn5l04aum5k86u7xh2ctl | 0x67d0666fa38fbcbe2406f8274fbebde6e963eb9e | 21,180.60 | 6 | 5,841.446453 -| terp153sc35gc5yhz56r3u69ejar6n83sv3lhvnjf24 | 0xa46188d118a12e2a6871e68b99747a99e30647f7 | 21,064.32 | 6 | 5,841.446453 -| terp1lu2fdujvy2mujmkth7n7ckecxxj9p0snqacack | 0xff1496f24c22b7c96ecbbfa7ec5b3831a450be13 | 20,987.35 | 6 | 5,841.446453 -| terp1jkltum6rx7ettyvuk9eq9kzr5d6m23dzdcecyu | 0x95bebe6f4337b2b5919cb17202d843a375b545a2 | 20,934.33 | 6 | 5,841.446453 -| terp1ufqkrn9yglclpv49clgw3axzsaqksaelpe93ak | 0xe24161cca447f1f0b2a5c7d0e8f4c2874168773f | 20,887.99 | 6 | 5,841.446453 -| terp1wxu4zu24x4anzumzcvw683dldg8fe9xvr8e25f | 0x71b9517155357b317362c31da3c5bf6a0e9c94cc | 20,633.44 | 6 | 5,841.446453 -| terp1chmxyyg55e6sxu0dz6tnkhauzrmm697zzxs690 | 0xc5f6621114a6750371ed16973b5fbc10f7bd17c2 | 20,631.59 | 6 | 5,841.446453 -| terp1cgw6nhh7wlnc547p7hglw4mly00y3evxu2m7nl | 0xc21da9defe77e78a57c1f5d1f7577f23de48e586 | 20,567.12 | 6 | 5,841.446453 -| terp14xkc6p90se88sekez0j900l7r96u4qrnhed49d | 0xa9ad8d04af864e7866d913e457bffe1975ca8073 | 20,554.20 | 6 | 5,841.446453 -| terp1w882klqpvukd4e9hky44qju5pjykyxc9lz3z0x | 0x71ceab7c01672cdae4b7b12b504b940c89621b05 | 20,441.35 | 6 | 5,841.446453 -| terp1cvwlg302usw40u77cs8l4tku4j6au6wwj5r29m | 0xc31df445eae41d57f3dec40ffaaedcacb5de69ce | 20,370.01 | 6 | 5,841.446453 -| terp1lwk865er8tgv2je0p4mw4cznkwq2qqfuvgsdqu | 0xfbac7d53233ad0c54b2f0d76eae053b380a0013c | 20,228.39 | 6 | 5,841.446453 -| terp1nuz4qk33226tn2u2hur2e66jkgzkt8e2dtz80r | 0x9f05505a3152b4b9ab8abf06aceb52b205659f2a | 20,157.84 | 6 | 5,841.446453 -| terp13hylyelydv0p08cucfcvejm5aucssfe8spkrjk | 0x8dc9f267e46b1e179f1cc270cccb74ef31082727 | 20,108.81 | 6 | 5,841.446453 -| terp13wld23asw39p2t3ngtunva0a8purn00txfntjd | 0x8bbed547b0744a152e3342f93675fd387839bdeb | 20,094.81 | 6 | 5,841.446453 -| terp1xdl7mq27l53cy6sckyv4xuymvwlxcxj8jkq70m | 0x337fed815efd23826a18b11953709b63be6c1a47 | 20,072.61 | 6 | 5,841.446453 -| terp1z7jp2q4zzceckp4qkchfx0af9702cdt4t90f02 | 0x17a41502a216338b06a0b62e933fa92f9eac3575 | 20,066.13 | 6 | 5,841.446453 -| terp1ktk7cjp9aypkun24aex7remgyp8vthpjj5ep43 | 0xb2edec4825e9036e4d55ee4de1e768204ec5dc32 | 20,061.77 | 6 | 5,841.446453 -| terp12u65drjjzeaf4z7cenv38wz0w7pv65cstcxhc5 | 0x5735468e52167a9a8bd8ccd913b84f7782cd5310 | 20,055.75 | 6 | 5,841.446453 -| terp102rrvq9dmtvnhx9tnxxu4whuy5gk4f4ezjcmkl | 0x7a863600addad93b98ab998dcabafc25116aa6b9 | 20,055.29 | 6 | 5,841.446453 -| terp1eauan3w80n6pxusnrn6ahl9u92m442hvs3e4wr | 0xcf79d9c5c77cf41372131cf5dbfcbc2ab75aaaec | 20,036.90 | 6 | 5,841.446453 -| terp1dsn3hs4khnzffn3jlhc6wyj6szvuvp90jklud6 | 0x6c271bc2b6bcc494ce32fdf1a7125a8099c604af | 19,992.68 | 6 | 5,841.446453 -| terp1yap949jvn5t4ckmmu2tlka2zu7dyevhqw9tmp3 | 0x27425a964c9d175c5b7be297fb7542e79a4cb2e0 | 19,962.30 | 6 | 5,841.446453 -| terp1jj8npx0jzs77e4k5l3t3qgha94fn6t8w42vw68 | 0x948f3099f2143decd6d4fc571022fd2d533d2cee | 19,950.66 | 6 | 5,841.446453 -| terp1hm0dvznqkcfgtf382mlcgfq490rwcv5l0g9048 | 0xbeded60a60b61285a62756ff8424152bc6ec329f | 19,855.73 | 6 | 5,841.446453 -| terp1m5vdt8qrqlzj3n6jh7nec98etpw64v96g5s56f | 0xdd18d59c0307c528cf52bfa79c14f9585daab0ba | 19,826.67 | 6 | 5,841.446453 -| terp1gy5f8zv68tqw5p686gsnrk0fh2335u4yw38y9f | 0x412893899a3ac0ea0747d22131d9e9baa31a72a4 | 19,664.08 | 6 | 5,841.446453 -| terp1av7zj8ej8ffknp20z7jsgu574ysc0yz07qtl5w | 0xeb3c291f323a5369854f17a504729ea92187904f | 19,660.48 | 6 | 5,841.446453 -| terp1r7v39kcfcc3yn6gxp4hv9s2nxukjl58x76cjek | 0x1f9912db09c62249e9060d6ec2c153372d2fd0e6 | 19,640.97 | 6 | 5,841.446453 -| terp1dm5tkvs6vcdr2sds300gj86rjd5h2gxzzpatvs | 0x6ee8bb321a661a3541b08bde891f4393697520c2 | 19,523.91 | 6 | 5,841.446453 -| terp1hr99xt0df0tchygnvdt8zgeg09z4juf2ry9m46 | 0xb8ca532ded4bd78b91136356712328794559712a | 19,475.21 | 6 | 5,841.446453 -| terp1c7hqcuekrx788v0a2a2c8cmje68h0ylheya35m | 0xc7ae0c733619bc73b1fd575583e372ce8f7793f7 | 19,463.01 | 6 | 5,841.446453 -| terp1sq34jplgs70z2dvk2mqzt9n089f2vfpytzufq3 | 0x80235907e8879e25359656c025966f3952a62424 | 19,400.01 | 6 | 5,841.446453 -| terp1vua8d23c2sqg8zef9x2k98s3saktrrhufgwx29 | 0x673a76aa385400838b292995629e11876cb18efc | 19,400.01 | 6 | 5,841.446453 -| terp12hy8c804048vn9447mrq4equnxalpvj06tcz5q | 0x55c87c1df57d4ec996b5f6c60ae41c99bbf0b24f | 19,366.26 | 6 | 5,841.446453 -| terp1e08spa9n2jptns2xk5acv66qnu3tpj743pna9k | 0xcbcf00f4b35482b9c146b53b866b409f22b0cbd5 | 19,222.53 | 6 | 5,841.446453 -| terp15mdr0964uffmwrtlqswkmgzw4uawl97ylecgxd | 0xa6da379755e253b70d7f041d6da04eaf3aef97c4 | 19,200.01 | 6 | 5,841.446453 -| terp1rhy024wtdtj6mp9mmt8d763wxk6u936efld648 | 0x1dc8f555cb6ae5ad84bbdacedf6a2e35b5c2c759 | 19,195.41 | 6 | 5,841.446453 -| terp1mqtzm2cvejyhlmycwdlg92pmqg8jn5p67f2mpg | 0xd8162dab0ccc897fec98737e82a83b020f29d03a | 19,178.55 | 6 | 5,841.446453 -| terp1u2pd6lsswc7kdd0e8clpuqt993fncuu2pestu9 | 0xe282dd7e10763d66b5f93e3e1e01652c533c738a | 19,171.75 | 6 | 5,841.446453 -| terp1ra7vqanlf7quyj98mg99970mx6eev9caa228j5 | 0x1f7cc0767f4f81c248a7da0a52f9fb36b396171d | 19,046.80 | 6 | 5,841.446453 -| terp1vjxcrztjy49s6mj4pxvt68taj8dthll095dwdk | 0x648d818972254b0d6e550998bd1d7d91dabbffef | 19,035.10 | 6 | 5,841.446453 -| terp1g4u4rhqza7zhpj5s3xe2v5sruryzacanx9we4f | 0x457951dc02ef8570ca9089b2a65203e0c82ee3b3 | 18,987.71 | 6 | 5,841.446453 -| terp1tg6mujkeu4mq3pzug8klmd2rcylaw3u7uewwgh | 0x5a35be4ad9e57608845c41edfdb543c13fd7479e | 18,808.29 | 6 | 5,841.446453 -| terp1njjlvmejl8pjjxf6ntukrsrpz7wxuh697dux2t | 0x9ca5f66f32f9c329193a9af961c061179c6e5f45 | 18,770.43 | 6 | 5,841.446453 -| terp1sjcpdmxefe9gc87fkcjc2z0p4n9hghka4y4ns4 | 0x84b016ecd94e4a8c1fc9b6258509e1accb745edd | 18,728.70 | 6 | 5,841.446453 -| terp1xvuw4kve7jv4sp98qrx7ykydenvjs5tysqksgt | 0x3338ead999f4995804a700cde2588dccd9285164 | 18,725.33 | 6 | 5,841.446453 -| terp17768mwx35fx2ve5fvkrvl5mrv7lyw0rae2ftn7 | 0xf7b47db8d1a24ca666896586cfd36367be473c7d | 18,679.08 | 6 | 5,841.446453 -| terp1kuv2w5ffdegjrxp0zr45kzwldphm4d8g5uzw7n | 0xb718a751296e5121982f10eb4b09df686fbab4e8 | 18,656.87 | 6 | 5,841.446453 -| terp166geqjp97g3md03gf6s3pg7vzt42nudaxsjast | 0xd691904825f223b6be284ea110a3cc12eaa9f1bd | 18,634.18 | 6 | 5,841.446453 -| terp1xr5tqtsdkks9h07yampcmk9s0ndujmcjf0echj | 0x30e8b02e0db5a05bbfc4eec38dd8b07cdbc96f12 | 18,606.43 | 6 | 5,841.446453 -| terp17ppm570fpjq7kkefl6t6w3syhvsm8glkqv4gge | 0xf043ba79e90c81eb5b29fe97a74604bb21b3a3f6 | 18,471.67 | 6 | 5,841.446453 -| terp1tzwy6p5jy39esa7te2j6edk6m6r9ahzqg0vx3x | 0x589c4d0692244b9877cbcaa5acb6dade865edc40 | 18,037.49 | 6 | 5,841.446453 -| terp1qgepqm6vkzn3hg2w057x9ymar3dqm305e6uzdm | 0x0232106f4cb0a71ba14e7d3c62937d1c5a0dc5f4 | 18,019.20 | 6 | 5,841.446453 -| terp1dsgysqea92sz4asx6hxlg8lhfaw9nexzvag5jr | 0x6c1048033d2aa02af606d5cdf41ff74f5c59e4c2 | 18,014.83 | 6 | 5,841.446453 -| terp18kgk0mjv6xvqphsj9ppa4844t4edz2l9tkhlne | 0x3d9167ee4cd19800de122843da9eb55d72d12be5 | 17,994.99 | 6 | 5,841.446453 -| terp1v5jqtevp2cpv9f5n8tu63uw6fvgaj97myk0sld | 0x652405e5815602c2a6933af9a8f1da4b11d917db | 17,761.57 | 6 | 5,841.446453 -| terp1lgqs54fd5hl3c8f40jnvpss89kdgds97dtfdj5 | 0xfa010a552da5ff1c1d357ca6c0c2072d9a86c0be | 17,741.82 | 6 | 5,841.446453 -| terp12tmyrjxznuug8wzn2udltmdulvvwrp4ywemdk7 | 0x52f641c8c29f3883b853571bf5edbcfb18e186a4 | 17,633.29 | 6 | 5,841.446453 -| terp1evtcnnl76jy06tpl62zs97e4eaw32scxul3yyz | 0xcb1789cffed488fd2c3fd28502fb35cf5d154306 | 17,620.58 | 6 | 5,841.446453 -| terp14sqa8gkusx6l4yhmuzwdqvc879j7h4jsycvsw3 | 0xac01d3a2dc81b5fa92fbe09cd03307f165ebd650 | 17,460.01 | 6 | 5,841.446453 -| terp1tjamgapvctr6sa8ev0zlzpmldp9pfl8764vrs3 | 0x5cbbb4742cc2c7a874f963c5f1077f684a14fcfe | 17,393.85 | 6 | 5,841.446453 -| terp1le35cjndeelr4qt2zjjapj2cs6eg0r6fw80pky | 0xfe634c4a6dce7e3a816a14a5d0c95886b2878f49 | 17,366.71 | 6 | 5,841.446453 -| terp1r3n52paux3lkzzuhsmh62amc2esufcvc74xgtv | 0x1c674507bc347f610b9786efa577785661c4e198 | 17,323.38 | 6 | 5,841.446453 -| terp1vujhvaq9hxlpyzm5tvq8q0pweqd8pvta6f6qz4 | 0x6725767405b9be120b745b00703c2ec81a70b17d | 16,922.48 | 6 | 5,841.446453 -| terp15uzvp5r2ry2w6vd3uh4fk6hht4tur5rych290d | 0xa704c0d06a1914ed31b1e5ea9b6af75d57c1d064 | 16,899.27 | 6 | 5,841.446453 -| terp180m748c46ftu2p25659mlq7xvrlzggf9cpxmuv | 0x3bf7ea9f15d257c50554d50bbf83c660fe242125 | 16,810.66 | 6 | 5,841.446453 -| terp1lsqmefr0rvfldvjnynngundfuwnwj82f0hygpg | 0xfc01bca46f1b13f6b25324e68e4da9e3a6e91d49 | 16,689.45 | 6 | 5,841.446453 -| terp1tv09dpz7h2ycv3r8qkseuehr4m3e2ykphx7dse | 0x5b1e56845eba8986446705a19e66e3aee39512c1 | 16,577.05 | 6 | 5,841.446453 -| terp1dztxv6k6tzx4v5sawvtfwfqa7mklnukzfycqx8 | 0x6896666ada588d56521d731697241df6edf9f2c2 | 16,574.82 | 6 | 5,841.446453 -| terp1m2ma2vltqf7k0dwr5d3hu88jasdrdhqwje5e0a | 0xdab7d533eb027d67b5c3a3637e1cf2ec1a36dc0e | 16,487.26 | 6 | 5,841.446453 -| terp1lnhs4n8cz5xg8jg206glyns589dtwyl2tghfg9 | 0xfcef0accf8150c83c90a7e91f24e14395ab713ea | 16,374.68 | 6 | 5,841.446453 -| terp1n53eka7lthtnkq4zm6u5k54fdne2z76l4lxz34 | 0x9d239b77df5dd73b02a2deb94b52a96cf2a17b5f | 16,345.58 | 6 | 5,841.446453 -| terp18lfez0lvavr6fxn6f9clpka23guxzn9438pdak | 0x3fd3913feceb07a49a7a4971f0dbaa8a38614cb5 | 16,287.97 | 6 | 5,841.446453 -| terp1egqmem4tam8ztvduf6lthlqlacy8lje7l47xn4 | 0xca01bceeabeece25b1bc4ebebbfc1fee087fcb3e | 16,176.68 | 6 | 5,841.446453 -| terp1sa7p72qkz05j6a3acfeecj52f8qddl0c25q92n | 0x877c1f281613e92d763dc2739c4a8a49c0d6fdf8 | 16,082.05 | 6 | 5,841.446453 -| terp1lvhc00pkpe7d6zzmjh9zym7s5hlncpcql2xsp6 | 0xfb2f87bc360e7cdd085b95ca226fd0a5ff3c0700 | 16,075.30 | 6 | 5,841.446453 -| terp1e3xzec34ahr6wgth2y92m5jtyfzcenku5vlx9y | 0xcc4c2ce235edc7a72177510aadd24b22458ccedc | 16,065.63 | 6 | 5,841.446453 -| terp1nt8nefcc3eff4p28et8lzyt7e45lk89e2kq0ke | 0x9acf3ca7188e529a8547cacff1117ecd69fb1cb9 | 16,065.00 | 6 | 5,841.446453 -| terp18qcy8t9uenfn83kt8rkwww3ggrmfwwny4k4nvx | 0x383043acbcccd333c6cb38ece73a2840f6973a64 | 16,002.51 | 6 | 5,841.446453 -| terp1c6ktpyqmt8em0mfhkr53uv36ggxkqlat38pyuf | 0xc6acb0901b59f3b7ed37b0e91e323a420d607fab | 15,921.75 | 6 | 5,841.446453 -| terp136n2vzhf49rny7dxs6wpzgeq264k37drlpgacv | 0x8ea6a60ae9a9473279a6869c11232056ab68f9a3 | 15,870.40 | 6 | 5,841.446453 -| terp10ts84scwnz9gkycwnk4lm7ckrmwumlc2e3nxak | 0x7ae07ac30e988a8b130e9dabfdfb161eddcdff0a | 15,842.86 | 6 | 5,841.446453 -| terp1yg7kqte746y6uaymwfpdmh5pafun6dl2aaaz3v | 0x223d602f3eae89ae749b7242ddde81ea793d37ea | 15,718.79 | 6 | 5,841.446453 -| terp13myevdjqva4dtfkjctndafqeneasv54vfve7yf | 0x8ec9963640676ad5a6d2c2e6dea4199e7b0652ac | 15,702.02 | 6 | 5,841.446453 -| terp1462p243eld070qgtz5926fxt6rq7ynz5e4rad6 | 0xae94155639fb5fe7810b150aad24cbd0c1e24c54 | 15,677.63 | 6 | 5,841.446453 -| terp1gprkm6066wrfg2wq7rykm4wdsvk2gdynhf7a57 | 0x40476de9fad3869429c0f0c96dd5cd832ca43493 | 15,530.64 | 6 | 5,841.446453 -| terp1awhqy2m59gt8wrpwtft9vj9u6haxe2d875tjun | 0xebae022b742a16770c2e5a565648bcd5fa6ca9a7 | 15,513.07 | 6 | 5,841.446453 -| terp18n9xv6y7ut29nycavjpk034j7ukmmy44n90dmc | 0x3cca66689ee2d459931d648367c6b2f72dbd92b5 | 15,359.90 | 6 | 5,841.446453 -| terp1h9mdmw28zm3uzdam2qk5xkeerq2pr0wp7ddgmk | 0xb976ddb94716e3c137bb502d435b39181411bdc1 | 15,344.64 | 6 | 5,841.446453 -| terp1n7xccrl0vq78zfcclvw4m38ga76pgsjz57fstp | 0x9f8d8c0fef603c712718fb1d5dc4e8efb4144242 | 15,341.54 | 6 | 5,841.446453 -| terp12vzzgevvl0fm4xmqe42h0mvdy3z0nkfnl20z5z | 0x530424658cfbd3ba9b60cd5577ed8d2444f9d933 | 15,325.57 | 6 | 5,841.446453 -| terp1n47gf8xlfkacacg7pn5hn5gp74dywn6dzta3nm | 0x9d7c849cdf4dbb8ee11e0ce979d101f55a474f4d | 15,266.02 | 6 | 5,841.446453 -| terp1836uj0gdjrx8xh9yxcfdzmathncrquw2r3xv6u | 0x3c75c93d0d90cc735ca43612d16fabbcf03071ca | 15,228.48 | 6 | 5,841.446453 -| terp13xd3rzqljaawkhvl43gstnnzepmlz9mr54z2dh | 0x899b11881f977aeb5d9fac5105ce62c877f11763 | 15,054.16 | 6 | 5,841.446453 -| terp15qq6vdku2sqc7lzdnlml06znwte40ty7l8z0hy | 0xa001a636dc54018f7c4d9ff7f7e85372f357ac9e | 15,028.73 | 6 | 5,841.446453 -| terp1gwcmppkaz3mf9ns9c5sql8thz88c5ljsxumya5 | 0x43b1b086dd147692ce05c5200f9d7711cf8a7e50 | 15,028.11 | 6 | 5,841.446453 -| terp1k69f55ym0n7qr39nlk5fmm4jdu5prykvetypk8 | 0xb68a9a509b7cfc01c4b3fda89deeb26f281192cc | 15,027.64 | 6 | 5,841.446453 -| terp16xw627de8z5rqtqd458cdf9jpjcfuf6n9ck6r7 | 0xd19da579b938a8302c0dad0f86a4b20cb09e2753 | 14,974.72 | 6 | 5,841.446453 -| terp1gfk58ujh3vflwqpltmvh6c06zlp3erfv9hcvje | 0x426d43f2578b13f7003f5ed97d61fa17c31c8d2c | 14,958.80 | 6 | 5,841.446453 -| terp1nyhklsk66p7etw8zfr7anlrztf6afe029ksacu | 0x992f6fc2dad07d95b8e248fdd9fc625a75d4e5ea | 14,828.64 | 6 | 5,841.446453 -| terp1swhpq4vu6h4rzyps4gt7rfq7drtp9vpee8cc6h | 0x83ae10559cd5ea311030aa17e1a41e68d612b039 | 14,825.06 | 6 | 5,841.446453 -| terp14dn4d259twqsfxhw94hywmmdwy9ly62t9stykd | 0xab6756aa855b81049aee2d6e476f6d710bf2694b | 14,824.70 | 6 | 5,841.446453 -| terp1m3syh0v7dcd8sepfhchtcn4spe9zr88yqa72k6 | 0xdc604bbd9e6e1a786429be2ebc4eb00e4a219ce4 | 14,609.67 | 6 | 5,841.446453 -| terp1sn8kalvmtmdwxhtw58ncpah4d0r6hslpdald4a | 0x84cf6efd9b5edae35d6ea1e780f6f56bc7abc3e1 | 14,550.01 | 6 | 5,841.446453 -| terp1uzmtmj9rvmd8mc4yhwa5rwrxr6nwtj3xzmpk2u | 0xe0b6bdc8a366da7de2a4bbbb41b8661ea6e5ca26 | 14,521.30 | 6 | 5,841.446453 -| terp1gpu3rev4jen6dr097ejnes5gwxr4d8s3cl9em8 | 0x407911e5959667a68de5f6653cc2887187569e11 | 14,477.83 | 6 | 5,841.446453 -| terp15jd7wd4gx8t9gt3n7v9x2uczdukkat2r24pwnr | 0xa49be736a831d6542e33f30a6573026f2d6ead43 | 14,464.27 | 6 | 5,841.446453 -| terp1lpvxq30urxd09y4hg5pfcvrpt9a8nm6mfp9qfj | 0xf8586045fc199af292b745029c3061597a79ef5b | 14,331.28 | 6 | 5,841.446453 -| terp1q9dk3cm72gxtkh5hh5e08ecr5tsy8huuqgelvg | 0x015b68e37e520cbb5e97bd32f3e703a2e043df9c | 14,329.90 | 6 | 5,841.446453 -| terp1dfgw48wlmmlty9ngtw4c95nx5dpg562499qlgw | 0x6a50ea9ddfdefeb216685bab82d266a3428a6955 | 14,302.15 | 6 | 5,841.446453 -| terp1m0e7cf772xrn7c85ll09eevhz7tmvnaturv3ta | 0xdbf3ec27de51873f60f4ffde5ce5971797b64fab | 14,259.33 | 6 | 5,841.446453 -| terp1tzz3fxhq86j75vg9pta3g0z643uy2e9gyh4lzn | 0x5885149ae03ea5ea31050afb143c5aac784564a8 | 14,240.87 | 6 | 5,841.446453 -| terp1k9f0v4qv5cgt2q8d60zlg6gl3nn5q5d4llem4n | 0xb152f6540ca610b500edd3c5f4691f8ce74051b5 | 14,240.52 | 6 | 5,841.446453 -| terp1vuvd6s9kw33vzdaeydze8htsq0vy7f5lctvqmn | 0x6718dd40b67462c137b9234593dd7003d84f269f | 14,193.52 | 6 | 5,841.446453 -| terp19u66hpj30ytq92mn6lvlsjfasdh9h58y6slfv4 | 0x2f35ab8651791602ab73d7d9f8493d836e5bd0e4 | 14,162.23 | 6 | 5,841.446453 -| terp1snazdrasmc6pjf8f7av5da67ce49c6kavy349e | 0x84fa268fb0de341924e9f75946f75ec66a5c6add | 13,929.51 | 6 | 5,841.446453 -| terp1d33sz5tstafzs3jvvxa3tgj56nazn749ygtpng | 0x6c630151705f5228464c61bb15a254d4fa29faa5 | 13,820.43 | 6 | 5,841.446453 -| terp17upz37acfw2za8h2lxx39utm02ax6vad2g95t9 | 0xf70228fbb84b942e9eeaf98d12f17b7aba6d33ad | 13,773.59 | 6 | 5,841.446453 -| terp1wedwfcj0xsqgjs26f66t9mg7eq0et4zh86swzz | 0x765ae4e24f340089415a4eb4b2ed1ec81f95d457 | 13,736.39 | 6 | 5,841.446453 -| terp1c2x0veghekmfrex639k5r55q5t37xlgzdqffk8 | 0xc28cf66517cdb691e4da896d41d280a2e3e37d02 | 13,580.20 | 6 | 5,841.446453 -| terp1h6xlfh67nknt0f3j9vx9t9xyd0sf42tcdte4js | 0xbe8df4df5e9da6b7a6322b0c5594c46be09aa978 | 13,580.00 | 6 | 5,841.446453 -| terp1w955fxpeezae25za5lrsm9xswqvfd9nmrcsrlt | 0x7169449839c8bb95505da7c70d94d0701896967b | 13,549.60 | 6 | 5,841.446453 -| terp1rugw4l356g6c9m9vl6ypexlvpvcgf7pupf8p7y | 0x1f10eafe34d23582ecacfe881c9bec0b3084f83c | 13,522.99 | 6 | 5,841.446453 -| terp1a8nrdef3vjpqgpapjgvpscn0ujjfas806sfqk2 | 0xe9e636e53164820407a1921818626fe4a49ec0ef | 13,503.97 | 6 | 5,841.446453 -| terp1c0fsa58j3wgl5smtn8k6sgs388sg0g70jkhexm | 0xc3d30ed0f28b91fa436b99eda8221139e087a3cf | 13,433.86 | 6 | 5,841.446453 -| terp1gex77npuyudv5avtgn767ujdtzn5kxfn8j9szq | 0x464def4c3c271aca758b44fdaf724d58a74b1933 | 13,405.09 | 6 | 5,841.446453 -| terp1jyhu3mvq5rwjgsckk3k60hshnc2z29zmz4kj0g | 0x912fc8ed80a0dd244316b46da7de179e1425145b | 13,384.71 | 6 | 5,841.446453 -| terp1e88ackmmm2dem9x2p2cpluc4m4kja80mh4w0du | 0xc9cfdc5b7bda9b9d94ca0ab01ff315dd6d2e9dfb | 13,357.55 | 6 | 5,841.446453 -| terp1zxp3zqtxl8zh2uh2vvpp75nls2qc043d05ac9q | 0x1183110166f9c57572ea63021f527f828187d62d | 13,355.67 | 6 | 5,841.446453 -| terp1xh8d7pdpr63h9napep08z9sz5nw5u4k9apxmrc | 0x35cedf05a11ea372cfa1c85e711602a4dd4e56c5 | 13,280.12 | 6 | 5,841.446453 -| terp1jf07ftglg7p8la33f3halxem00ld2f2nckrcnl | 0x925fe4ad1f47827ff6314c6fdf9b3b7bfed52553 | 13,212.17 | 6 | 5,841.446453 -| terp1l6w2wpzpk36357rtvsasm0qvvnfu9s3pmadasw | 0xfe9ca70441b4751a786b643b0dbc0c64d3c2c221 | 13,210.90 | 6 | 5,841.446453 -| terp1nj5wpnr45nrq889m7vxmk35mappaewlvuthkda | 0x9ca8e0cc75a4c6039cbbf30dbb469be843dcbbec | 13,152.52 | 6 | 5,841.446453 -| terp1j2rexjwkmzgvqrvhu7v5qvwy3v5h2w85ha98t6 | 0x92879349d6d890c00d97e7994031c48b297538f4 | 13,145.46 | 6 | 5,841.446453 -| terp13u5elc5dz2qhq4d04huqsu0n0zagqv9mma2ews | 0x8f299fe28d12817055afadf80871f378ba8030bb | 13,124.55 | 6 | 5,841.446453 -| terp1mk6s8epymqjwwvvm2u6zk4rpxget7araz0ek4m | 0xddb503e424d824e7319b57342b54613232bf747d | 13,060.55 | 6 | 5,841.446453 -| terp150jjtatnv6976r7zfpqgf52s2xy7uw4ryg8k9q | 0xa3e525f573668bed0fc2484084d1505189ee3aa3 | 13,017.57 | 6 | 5,841.446453 -| terp1evf0cy5rzcnfjp0uk9wj5ma03wp59lv4ffw0k7 | 0xcb12fc128316269905fcb15d2a6faf8b8342fd95 | 12,980.53 | 6 | 5,841.446453 -| terp1ska2th6g2u8m2293qm4gkzx9fzseqfsjayhmek | 0x85baa5df48570fb528b106ea8b08c548a1902612 | 12,972.00 | 6 | 5,841.446453 -| terp18nqlfrpd0empmjesvngw97uwh796gd7utj76w3 | 0x3cc1f48c2d7e761dcb3064d0e2fb8ebf8ba437dc | 12,918.66 | 6 | 5,841.446453 -| terp1phlwl7n2mecdqegpgr92n26pf9p9ynzvv4qrdu | 0x0dfeeffa6ade70d0650140caa9ab414942524c4c | 12,843.62 | 6 | 5,841.446453 -| terp1h4yrj3pnjkw29rqm7zmfvcazqeglvjgwmygk5d | 0xbd48394433959ca28c1bf0b69663a20651f6490e | 12,842.30 | 6 | 5,841.446453 -| terp19sslvhh494562c2lt7cd7f9pex5g5cmaj23p6q | 0x2c21f65ef52d69a5615f5fb0df24a1c9a88a637d | 12,807.14 | 6 | 5,841.446453 -| terp1wa8qutzuw7vt0pnq7wjh0lhteqj0yt6rnm7m98 | 0x774e0e2c5c7798b78660f3a577feebc824f22f43 | 12,757.44 | 6 | 5,841.446453 -| terp1sxck6d8rta3c7wyf09zcj3rgtxy2fzh294m9yf | 0x81b16d34e35f638f388979458944685988a48aea | 12,753.02 | 6 | 5,841.446453 -| terp1vtx33hpw43h5uln3p2gfk6dg78vq4q3tm4n044 | 0x62cd18dc2eac6f4e7e710a909b69a8f1d80a822b | 12,723.33 | 6 | 5,841.446453 -| terp1p6q36usk2ch2r7wag5y7d9z3tkn605vus2pwtd | 0x0e811d7216562ea1f9dd4509e694515da7a7d19c | 12,706.67 | 6 | 5,841.446453 -| terp1337m6zwjh7yxc2zar3sl9ae0tm0rkee2xt7a5u | 0x8c7dbd09d2bf886c285d1c61f2f72f5ede3b672a | 12,690.66 | 6 | 5,841.446453 -| terp1eldazw8y2eafyt0r8g2c29p9ph4tq5slugu6vr | 0xcfdbd138e4567a922de33a158514250deab0521f | 12,537.54 | 6 | 5,841.446453 -| terp1k5qu3wx4atq8nxsk2x84lxfnr3esd3ez2t4f0r | 0xb501c8b8d5eac0799a16518f5f99331c7306c722 | 12,268.26 | 6 | 5,841.446453 -| terp1z7n5puucnvnzk4sl45246l9mwwey0qzd00yvmu | 0x17a740f3989b262b561fad155d7cbb73b247804d | 12,218.97 | 6 | 5,841.446453 -| terp1sa7uapymcl9sfqss845n0s4g85pf7jjt7lzmed | 0x877dce849bc7cb0482103d6937c2a83d029f4a4b | 12,183.60 | 6 | 5,841.446453 -| terp1c904nn9zzf57pd55mkxq3vu0f6rjvk6qccrvlp | 0xc15f59cca21269e0b694dd8c08b38f4e87265b40 | 12,125.00 | 6 | 5,841.446453 -| terp1269zsch36mpjnk0wqlrc0qmkcaqahececvjfc7 | 0x568a2862f1d6c329d9ee07c7878376c741dbe719 | 12,077.44 | 6 | 5,841.446453 -| terp139wl944q583ncztdgs2usc6zv4mdxs59wedwe7 | 0x895df2d6a0a1e33c096d4415c863426576d34285 | 11,899.10 | 6 | 5,841.446453 -| terp14jee98y5tmch9n9nevttlvg54tv0d975td2jut | 0xacb3929c945ef172ccb3cb16bfb114aad8f697d4 | 11,891.05 | 6 | 5,841.446453 -| terp1cnwqqyk2l03ynn577uswql3j9jn4ak5wc8kgxr | 0xc4dc0012cafbe249ce9ef720e07e322ca75eda8e | 11,869.15 | 6 | 5,841.446453 -| terp1v65gk3zjcg8f3enwjwm7lchk407uu5ryv3wdfx | 0x66a88b4452c20e98e66e93b7efe2f6abfdce5064 | 11,790.85 | 6 | 5,841.446453 -| terp1cj4wckcfte8xgr7nj7gx8d2y4rwesl97kswv6s | 0xc4aaec5b095e4e640fd3979063b544a8dd987cbe | 11,770.33 | 6 | 5,841.446453 -| terp1xtwltxywat8cpl67dmrdssdylr0ctsz6yrgj0k | 0x32ddf5988eeacf80ff5e6ec6d841a4f8df85c05a | 11,755.41 | 6 | 5,841.446453 -| terp1e3384xap8j8dceay99q9ur8t9t72q349d2ftrk | 0xcc627a9ba13c8edc67a429405e0ceb2afca046a5 | 11,693.97 | 6 | 5,841.446453 -| terp1av7zftw5024regwps2336hj98zluh34c8jsxn4 | 0xeb3c24add47aaa3ca1c182a31d5e4538bfcbc6b8 | 11,640.05 | 6 | 5,841.446453 -| terp13wh4xgw238ep9ttff097j4y9swx85evtfl4zmx | 0x8baf5321ca89f212ad694bcbe95485838c7a658b | 11,640.00 | 6 | 5,841.446453 -| terp1jd2qw9zyks6nr6243pyv3mmw2q2cv25nu9m7y4 | 0x9354071444b43531e9558848c8ef6e5015862a93 | 11,604.28 | 6 | 5,841.446453 -| terp18unz8e9pqd5dn3n2vnmmhyfdjgj2cz60qvtdtm | 0x3f2623e4a10368d9c66a64f7bb912d9224ac0b4f | 11,539.47 | 6 | 5,841.446453 -| terp180zqqdypm2jq4kqxcyumw8qk7nda9s2208z3fv | 0x3bc4003481daa40ad806c139b71c16f4dbd2c14a | 11,455.29 | 6 | 5,841.446453 -| terp1mdcpjsxhxkpfxl2y07wt6xa5w9840q402tuftz | 0xdb701940d73582937d447f9cbd1bb4714f5782af | 11,443.32 | 6 | 5,841.446453 -| terp193kzy8fhvx6xm4xepayvxelagl3q0vuw7fkpu4 | 0x2c6c221d3761b46dd4d90f48c367fd47e207b38e | 11,432.28 | 6 | 5,841.446453 -| terp1uvjvqe0msrwfdds5jhp9prqxr7svupx45x0fxs | 0xe324c065fb80dc96b61495c2508c061fa0ce04d5 | 11,396.80 | 6 | 5,841.446453 -| terp1lpjkk9js2jgmzxvqzmxjlh0pjlydtm35ekaczt | 0xf8656b16505491b1198016cd2fdde197c8d5ee34 | 11,395.31 | 6 | 5,841.446453 -| terp16ervk945jkqwqreyetjdqfd90x3wav7t03f9hh | 0xd646cb16b49580e00f24cae4d025a579a2eeb3cb | 11,343.76 | 6 | 5,841.446453 -| terp1ld82tdj7wfkshjm686gthhm937nm62ejm7ek5a | 0xfb4ea5b65e726d0bcb7a3e90bbdf658fa7bd2b32 | 11,181.92 | 6 | 5,841.446453 -| terp1pymp5uxysj5m7zkuu3nngf7nlc9sw520najkme | 0x09361a70c484a9bf0adce4673427d3fe0b07514f | 11,181.01 | 6 | 5,841.446453 -| terp1ddeqvwf98ntzksgyt7l9fyur8uswrp2p9yp74x | 0x6b720639253cd62b41045fbe5493833f20e18541 | 11,134.88 | 6 | 5,841.446453 -| terp1hyg8fmzcln7hac3zcd49hjh0ck2cayv3xyzx0m | 0xb91074ec58fcfd7ee222c36a5bcaefc5958e9191 | 11,068.72 | 6 | 5,841.446453 -| terp1mr4lrsgs60y66cvh5nr604h9758jks7tkjf4v7 | 0xd8ebf1c110d3c9ad6197a4c7a7d6e5f50f2b43cb | 11,041.15 | 6 | 5,841.446453 -| terp178mta7yv2ylkucjxunyfcs0r0p8ax90knvmtzj | 0xf1f6bef88c513f6e6246e4c89c41e3784fd315f6 | 11,034.27 | 6 | 5,841.446453 -| terp1xuejky8axpt2nffdygy0t75mwx7h0npp3wpsmd | 0x37332b10fd3056a9a52d2208f5fa9b71bd77cc21 | 11,009.45 | 6 | 5,841.446453 -| terp1uxtf3ul8kzuccvxyzhs9pxpzv3e0ca3jy3ajlq | 0xe19698f3e7b0b98c30c415e05098226472fc7632 | 11,002.71 | 6 | 5,841.446453 -| terp1mjf8ns4g67ev4kqnjjfxyzrlu6a7l4cgkpa39z | 0xdc9279c2a8d7b2cad813949262087fe6bbefd708 | 10,981.02 | 6 | 5,841.446453 -| terp1wekpkrz5ugmpma2t89th3mn9pj6uhspsgkptk5 | 0x766c1b0c54e2361df54b395778ee650cb5cbc030 | 10,963.82 | 6 | 5,841.446453 -| terp10tkynjew3eql0wf0jumej3dgfqpwu860y540v0 | 0x7aec49cb2e8e41f7b92f97379945a84802ee1f4f | 10,928.74 | 6 | 5,841.446453 -| terp14fhkhxceu5jksgc7em8phxdnrm9scjezka35n7 | 0xaa6f6b9b19e52568231ecece1b99b31ecb0c4b22 | 10,892.50 | 6 | 5,841.446453 -| terp17jhwzc7m8668yhnw7exkw2wd9vu3xtwaq43xeq | 0xf4aee163db3eb4725e6ef64d6729cd2b39132ddd | 10,849.91 | 6 | 5,841.446453 -| terp1a8ps4smyjfr9sntqcaj4jhcayw35g2aawq2h5w | 0xe9c30ac3649246584d60c765595f1d23a3442bbd | 10,799.43 | 6 | 5,841.446453 -| terp1hvykwtm99lhm3tkyjsc5j6y3zvjxu4s6vwp5z9 | 0xbb09672f652fefb8aec4943149689113246e561a | 10,751.66 | 6 | 5,841.446453 -| terp1s5yddd9qrqwtxljepqt745x965r69w4me8u9uz | 0x8508d6b4a0181cb37e590817ead0c5d507a2babb | 10,627.82 | 6 | 5,841.446453 -| terp1v6gjryhmn8vdq44x64h3st3arud85p2efnhyqc | 0x66912192fb99d8d056a6d56f182e3d1f1a7a0559 | 10,515.04 | 6 | 5,841.446453 -| terp16wcfeww4kvnxnamg0asqf2e8n4f00u6th7k4k9 | 0xd3b09cb9d5b32669f7687f6004ab279d52f7f34b | 10,504.53 | 6 | 5,841.446453 -| terp1ekhep4nl8d4sfx0kg4wpms48jhp7llupz26kvg | 0xcdaf90d67f3b6b0499f6455c1dc2a795c3efff81 | 10,497.92 | 6 | 5,841.446453 -| terp1rcykspd4a59v2k2utvpqamjs59mfqcf96taejq | 0x1e096805b5ed0ac5595c5b020eee50a176906125 | 10,497.88 | 6 | 5,841.446453 -| terp1emwsh0dzg2fd0ngwz9q7y532r5ujhy9tgnp9cd | 0xcedd0bbda24292d7cd0e1141e2522a1d392b90ab | 10,453.69 | 6 | 5,841.446453 -| terp15sny0whcgtxkchehr8c6smvu4eclhzffun8sta | 0xa42647baf842cd6c5f3719f1a86d9cae71fb8929 | 10,408.10 | 6 | 5,841.446453 -| terp1f8dufccfvync36uyhh62mekrkp98hql02kn5ca | 0x49dbc4e309612788eb84bdf4ade6c3b04a7b83ef | 10,339.52 | 6 | 5,841.446453 -| terp19nq9ae6wurlx65zs8evpupy6fdfyplptt5uw3d | 0x2cc05ee74ee0fe6d50503e581e049a4b5240fc2b | 10,306.49 | 6 | 5,841.446453 -| terp1fqrevpe9utw9ypxxfse2ke27lalhpslq87l60m | 0x4807960725e2dc5204c64c32ab655eff7f70c3e0 | 10,275.57 | 6 | 5,841.446453 -| terp1qa9eaz4mvn46mltx6vlj0mzd420jgjkunc7ml3 | 0x074b9e8abb64ebadfd66d33f27ec4daa9f244adc | 10,242.64 | 6 | 5,841.446453 -| terp18szx03ca0zykzzg67gq48sdey36euuzkp94y6j | 0x3c0467c71d788961091af20153c1b924759e7056 | 10,221.96 | 6 | 5,841.446453 -| terp1geyhmezq9r2w2e3ev9wvg9pwaruvg32vzqqegw | 0x46497de44028d4e56639615cc4142ee8f8c4454c | 10,161.95 | 6 | 5,841.446453 -| terp1pcnww5873zaf527pyvmnqq8hf049yxdqpy9955 | 0x0e26e750fe88ba9a2bc123373000f74bea5219a0 | 10,150.72 | 6 | 5,841.446453 -| terp160wa5rh9r0tlv94d6xdqf9xhc3deq8d6qlpmtv | 0xd3ddda0ee51bd7f616add19a0494d7c45b901dba | 10,120.74 | 6 | 5,841.446453 -| terp1lzwlerg8cjs3zdpy3qwq8ln08fyd025f9prnlk | 0xf89dfc8d07c4a1113424881c03fe6f3a48d7aa89 | 10,106.28 | 6 | 5,841.446453 -| terp1rd437tlrdk4dv4z7mrm5rquuxe6y9zqfv5wvsm | 0x1b6b1f2fe36daad6545ed8f741839c3674428809 | 10,086.53 | 6 | 5,841.446453 -| terp1rkpetzqg77ts8q90n34cmtlksvw8tcyewkvudu | 0x1d83958808f7970380af9c6b8daff6831c75e099 | 10,081.53 | 6 | 5,841.446453 -| terp1ef0nve0j0w4qje7q2hd52ufa4vd7rs3angd0dj | 0xca5f3665f27baa0967c055db45713dab1be1c23d | 10,057.31 | 6 | 5,841.446453 -| terp1t4pspj6k82te2wq0xej5hqfjh48fqxavdcj8sv | 0x5d4300cb563a9795380f36654b8132bd4e901bac | 10,055.49 | 6 | 5,841.446453 -| terp19j9y32mpkr6ud4j94ed3j7n93agv838dmx4cvg | 0x2c8a48ab61b0f5c6d645ae5b197a658f50c3c4ed | 10,013.88 | 6 | 5,841.446453 -| terp1u3eg5pj6lcswf6ull8u94ylysl4z9q3wes3zpz | 0xe4728a065afe20e4eb9ff9f85a93e487ea22822e | 10,004.69 | 6 | 5,841.446453 -| terp1x9fkhh3a7kcxwzqegzn8fp8nvvt5yarxg2wzar | 0x31536bde3df5b067081940a67484f36317427466 | 9,998.20 | 6 | 5,841.446453 -| terp1985anwu3dj2rmwd4uv7h44yc2dc7zdm22j9hk6 | 0x29e9d9bb916c943db9b5e33d7ad4985371e1376a | 9,981.17 | 6 | 5,841.446453 -| terp1z5szsv5l6j65khksxc82hhd7a88wpykwr485en | 0x152028329fd4b54b5ed0360eabddbee9cee092ce | 9,909.38 | 6 | 5,841.446453 -| terp1jpf8w69y4rquftw68g7r3k58yxddy0sepnuhv9 | 0x90527768a4a8c1c4adda3a3c38da87219ad23e19 | 9,859.20 | 6 | 5,841.446453 -| terp1w7gpdzx0u6vhzzp4jvkralqq2nuzfef8g9ud7y | 0x77901688cfe699710835932c3efc0054f824e527 | 9,843.31 | 6 | 5,841.446453 -| terp1h8xswfvxdzjuewv8h7a0ygeldflz28ry59w8e4 | 0xb9cd07258668a5ccb987bfbaf2233f6a7e251c64 | 9,843.12 | 6 | 5,841.446453 -| terp1hcmac6eljsw9m2v789p9cd0eqqx9cdagyy457h | 0xbe37dc6b3f941c5da99e39425c35f9000c5c37a8 | 9,838.77 | 6 | 5,841.446453 -| terp14xhk4pk36g4tawzllsr0q24evtn4k6uf4r9mwk | 0xa9af6a86d1d22abeb85ffc06f02ab962e75b6b89 | 9,806.16 | 6 | 5,841.446453 -| terp15z9kll4gxnl4d4fg4zgpyepxkgxp4d3eap4yk4 | 0xa08b6ffea834ff56d528a890126426b20c1ab639 | 9,785.13 | 6 | 5,841.446453 -| terp13wek0x6yzzv28sv83y22l4qrfmhg3d68u42wdd | 0x8bb3679b441098a3c1878914afd4034eee88b747 | 9,773.67 | 6 | 5,841.446453 -| terp156p3jcrdh3t3yua85dq328tz3sunzpaa2hejj9 | 0xa68319606dbc571273a7a341151d628c393107bd | 9,700.00 | 6 | 5,841.446453 -| terp1w7sz2mffmj49kgmp90vjmwx92kny8lgvyz9tpw | 0x77a0256d29dcaa5b23612bd92db8c555a643fd0c | 9,700.00 | 6 | 5,841.446453 -| terp1vt4r3szzw62nyclp63u9rguuqyl0khzmcrzyhg | 0x62ea38c04276953263e1d47851a39c013efb5c5b | 9,695.19 | 6 | 5,841.446453 -| terp14ntmfuf5kw27n4wvq9kaze430nr4dngw3pcj8g | 0xacd7b4f134b395e9d5cc016dd166b17cc756cd0e | 9,687.80 | 6 | 5,841.446453 -| terp1vllax5z58jdq4tk8jjah3z80az0qnpepvt8dkv | 0x67ffd350543c9a0aaec794bb7888efe89e098721 | 9,678.64 | 6 | 5,841.446453 -| terp1qtgu74aq7u9ptyme3j5ym6dthd6cvdjwd6554q | 0x02d1cf57a0f70a1593798ca84de9abbb7586364e | 9,616.29 | 6 | 5,841.446453 -| terp136ntud3xranzjyl3eutcn5vzn9k43saq9h02yd | 0x8ea6be36261f662913f1cf1789d182996d58c3a0 | 9,578.76 | 6 | 5,841.446453 -| terp16sna2qaqt7cwdvhwwspham7puhvd98zqrnrlpm | 0xd427d503a05fb0e6b2ee74037eefc1e5d8d29c40 | 9,527.51 | 6 | 5,841.446453 -| terp1p367wl2vv4jqn8469sp68exs9nkjz6rx6xnk9f | 0x0c75e77d4c6564099eba2c03a3e4d02ced216866 | 9,345.80 | 6 | 5,841.446453 -| terp1hayyylx0y3yfl7tsw7lywrfcwczyw3509z4hhq | 0xbf48427ccf24489ff97077be470d38760447468f | 9,337.45 | 6 | 5,841.446453 -| terp120swmfqrdydxn5zswpwgs7ck0w687vd99g6cxl | 0x53e0eda403691a69d050705c887b167bb47f31a5 | 9,260.87 | 6 | 5,841.446453 -| terp12gwr3j3e0xdgnf9zcvcewgyqz9vqx8fduk8gvy | 0x521c38ca39799a89a4a2c3319720801158031d2d | 9,222.69 | 6 | 5,841.446453 -| terp16cxe8nx4z80s6pch53t95k702jyn6r85y5plmc | 0xd60d93ccd511df0d0717a4565a5bcf54893d0cf4 | 9,184.19 | 6 | 5,841.446453 -| terp1neushtmsm6zpxrgdkeh5cdfjulmf5e4gq2cmpd | 0x9e790baf70de84130d0db66f4c3532e7f69a66a8 | 9,164.79 | 6 | 5,841.446453 -| terp1mkudewr84u67l4au06jd589jvzncym8pymv3qm | 0xddb8dcb867af35efd7bc7ea4da1cb260a7826ce1 | 9,129.18 | 6 | 5,841.446453 -| terp1pn9g2p7trx5x328ku4wmu60vnxrvyjg7q2ketc | 0x0cca8507cb19a868a8f6e55dbe69ec9986c2491e | 9,111.43 | 6 | 5,841.446453 -| terp14evj7ecmzhfsepukaaylhsp9qmgl3h673eg7yx | 0xae592f671b15d30c8796ef49fbc02506d1f8df5e | 9,082.66 | 6 | 5,841.446453 -| terp14r0jtsdzgfwgm7sqelm2klyfflx5096vn3wppt | 0xa8df25c1a2425c8dfa00cff6ab7c894fcd47974c | 9,043.00 | 6 | 5,841.446453 -| terp1a09fauv4u73u4g6ar37uth3j8q9smxr2v40cv4 | 0xebca9ef195e7a3caa35d1c7dc5de32380b0d986a | 9,032.32 | 6 | 5,841.446453 -| terp1c9l5drvq664mdl4p5qaa9kqh7hut2zevax3n5y | 0xc17f468d80d6abb6fea1a03bd2d817f5f8b50b2c | 9,016.16 | 6 | 5,841.446453 -| terp1hjw0c2uegyzln4npkjmk8w0ztt69ksy3aeyu43 | 0xbc9cfc2b994105f9d661b4b763b9e25af45b4091 | 8,958.27 | 6 | 5,841.446453 -| terp1ajwu55h0szr6327q66kw8s9rv7qn00pv70rkc3 | 0xec9dca52ef8087a8abc0d6ace3c0a3678137bc2c | 8,771.27 | 6 | 5,841.446453 -| terp1nkq8qkxjn0y6u9ekum0kf82y5kvfmqc2qpjmdr | 0x9d807058d29bc9ae1736e6df649d44a5989d830a | 8,759.83 | 6 | 5,841.446453 -| terp14adf7xqcs2xy6kzt6fcd8v8qcr8gcqpzltcrec | 0xaf5a9f1818828c4d584bd270d3b0e0c0ce8c0022 | 8,743.49 | 6 | 5,841.446453 -| terp1dv03nj55hj5sqtv5wkzsehk4nle4hfkfv8msnm | 0x6b1f19ca94bca9002d9475850cded59ff35ba6c9 | 8,691.99 | 6 | 5,841.446453 -| terp1x3jfa93mchync36k339rrqmmv360je0dnefpfx | 0x34649e963bc5c93c47568c4a31837b6474f965ed | 8,688.05 | 6 | 5,841.446453 -| terp1hqh9qfagwuy7uqpfdlmshadja8yttryyddyk0h | 0xb82e5027a87709ee00296ff70bf5b2e9c8b58c84 | 8,651.86 | 6 | 5,841.446453 -| terp1qg9exkpsq05g7p0gckvdppjqwuhpkkqe4fyvr7 | 0x020b93583003e88f05e8c598d08640772e1b5819 | 8,648.52 | 6 | 5,841.446453 -| terp1gahw63tlkjwe5twkrz04f4nfe4sw62weclpdvm | 0x476eed457fb49d9a2dd6189f54d669cd60ed29d9 | 8,576.30 | 6 | 5,841.446453 -| terp1el7gdk7ja6x4fl598rdf4l0ft84qax40jpasv4 | 0xcffc86dbd2ee8d54fe8538da9afde959ea0e9aaf | 8,532.16 | 6 | 5,841.446453 -| terp1ccxkazjkanjqsp9zrw85ttawaqh2j84kd68eql | 0xc60d6e8a56ece40804a21b8f45afaee82ea91eb6 | 8,466.21 | 6 | 5,841.446453 -| terp1d0k60pke9gkw70nnf2qjcvd7ejrrt0ha4wwaax | 0x6beda786d92a2cef3e734a812c31becc8635befd | 8,351.70 | 6 | 5,841.446453 -| terp1keah73ejyqatv5p8atekly70h4yv8f620hcfr9 | 0xb67b7f4732203ab65027eaf36f93cfbd48c3a74a | 8,327.47 | 6 | 5,841.446453 -| terp1p3u9t0fk6lmzx2fe0nndh9wquj2dkqhht8dvhk | 0x0c7855bd36d7f62329397ce6db95c0e494db02f7 | 8,313.53 | 6 | 5,841.446453 -| terp18y2nz0adqa9qjztzvsvyzk6tgccqcx786lr6n9 | 0x3915313fad074a0909626418415b4b46300c1bc7 | 8,297.97 | 6 | 5,841.446453 -| terp1p2cz6r7a5600hhes92u5c2x66894j4kcahms5p | 0x0ab02d0fdda69efbdf302ab94c28dad1cb5956d8 | 8,280.32 | 6 | 5,841.446453 -| terp1az4d06nwcjwmnpj4dy8jm8m4qreu7jdhxl4938 | 0xe8aad7ea6ec49db98655690f2d9f7500f3cf49b7 | 8,257.61 | 6 | 5,841.446453 -| terp12zmgf9y2uqc2ckan5gz4wjmgdxvgd582nmqu0k | 0x50b684948ae030ac5bb3a205574b68699886d0ea | 8,245.00 | 6 | 5,841.446453 -| terp16v0d40kykmlq07trc84pg3ju7p34adsjrvmjv9 | 0xd31edabec4b6fe07f963c1ea14465cf0635eb612 | 8,243.47 | 6 | 5,841.446453 -| terp1305n5swsyyegt3z5alemvf7vz03jkzxfymxdth | 0x8be93a41d0213285c454eff3b627cc13e32b08c9 | 8,207.68 | 6 | 5,841.446453 -| terp1kmfuge8jzchq7c88gkmte3775hwxxlry4q4e43 | 0xb6d3c464f2162e0f60e745b6bcc7dea5dc637c64 | 8,202.79 | 6 | 5,841.446453 -| terp1ea8m6jp8q3hgrmwzzzzrqzmvtjsp8jwag69ycu | 0xcf4fbd4827046e81edc21084300b6c5ca013c9dd | 8,137.65 | 6 | 5,841.446453 -| terp13pvvvdn8h706s6k9fjwvzxdx2r7trsy5qlmdue | 0x8858c63667bf9fa86ac54c9cc119a650fcb1c094 | 8,057.22 | 6 | 5,841.446453 -| terp1avnzngnnfcnjhnq8hk54np3lx9h5h4x0007yxu | 0xeb2629a2734e272bcc07bda959863f316f4bd4cf | 8,037.37 | 6 | 5,841.446453 -| terp1jgpqstz0x2t3x90pn8pr2yc2655qg2erakznjq | 0x9202082c4f32971315e199c235130ad528042b23 | 8,035.01 | 6 | 5,841.446453 -| terp1anq5h7s4k0uexs8qexr36a44el5m9wlakyu8s3 | 0xecc14bfa15b3f99340e0c9871d76b5cfe9b2bbfd | 8,007.16 | 6 | 5,841.446453 -| terp1fpm33e7tynsnut7vr30ku8myrw7eg4z6yxqr60 | 0x487718e7cb24e13e2fcc1c5f6e1f641bbd94545a | 8,000.02 | 6 | 5,841.446453 -| terp1vxq4lvvkx3np4q8q7x5u30zmdje74vstc0vtka | 0x61815fb19634661a80e0f1a9c8bc5b6cb3eab20b | 7,987.81 | 6 | 5,841.446453 -| terp1suh4mkycuhytq8gh5j52jgzm3rpachauy0q6r0 | 0x872f5dd898e5c8b01d17a4a8a9205b88c3dc5fbc | 7,972.00 | 6 | 5,841.446453 -| terp1qas743jsq0vcf5na0k290f02jfayxngd2fckkt | 0x0761eac65003d984d27d7d9457a5ea927a434d0d | 7,960.33 | 6 | 5,841.446453 -| terp1rx3x92lhpg0taz4mgg56rpgqnmd7cew4204xmt | 0x19a262abf70a1ebe8abb4229a185009edbec65d5 | 7,927.03 | 6 | 5,841.446453 -| terp1fdq3hsexdg0fjajr9j3ddhzq72ap3jr7fvqgjh | 0x4b411bc3266a1e9976432ca2d6dc40f2ba18c87e | 7,902.91 | 6 | 5,841.446453 -| terp16sam49kkvmluhmhga55rstygu7g8hxps7nxuus | 0xd43bba96d666ffcbeee8ed28382c88e7907b9830 | 7,839.01 | 6 | 5,841.446453 -| terp13pqryz4tsngxnlhx7yuu0v2swvxppq0qr5cy7f | 0x8840320aab84d069fee6f139c7b150730c1081e0 | 7,815.41 | 6 | 5,841.446453 -| terp13yw93wdr5thd5ddafrx78027ck7g7av59cwdrq | 0x891c58b9a3a2eeda35bd48cde3bd5ec5bc8f7594 | 7,781.80 | 6 | 5,841.446453 -| terp1x8smtdy0ujmz5hedd6lqx0r7cyksw9m8447e49 | 0x31e1b5b48fe4b62a5f2d6ebe033c7ec12d071767 | 7,777.93 | 6 | 5,841.446453 -| terp1zf0jxqs57d7at8whw4npx6zyrq0xvjxh7nznp2 | 0x125f230214f37dd59dd77566136844181e6648d7 | 7,762.29 | 6 | 5,841.446453 -| terp1mtepdhehlpa9g5ls8l06htfd0hl9q9nzdyc5je | 0xdaf216df37f87a5453f03fdfabad2d7dfe501662 | 7,717.09 | 6 | 5,841.446453 -| terp1vep0lhrcy6sdjfzfyckx8pthvtlmjgpt4awqdu | 0x6642ffdc7826a0d92449262c63857762ffb9202b | 7,710.19 | 6 | 5,841.446453 -| terp1hdf8jpcmdcapruupcqhcgyr4zva2t0ula7tlyn | 0xbb5279071b6e3a11f381c02f841075133aa5bf9f | 7,709.38 | 6 | 5,841.446453 -| terp12ygd8z9z2tatmh6lamqhrqtyxzrqwuqvnj8a9z | 0x5110d388a252fabddf5feec1718164308607700c | 7,655.02 | 6 | 5,841.446453 -| terp14hpns9nre26aluwy7pq7t7aju07umhmyy6j6zq | 0xadc3381663cab5dff1c4f041e5fbb2e3fdcddf64 | 7,645.44 | 6 | 5,841.446453 -| terp13hyxknhsf76pwh4fezd6nc4f53lrhpjxqt7n04 | 0x8dc86b4ef04fb4175ea9c89ba9e2a9a47e3b8646 | 7,574.64 | 6 | 5,841.446453 -| terp13lwc0x23u2uhqmsv5evav4ltwpfsqxyce0p8e9 | 0x8fdd879951e2b9706e0ca659d657eb7053001898 | 7,568.21 | 6 | 5,841.446453 -| terp1re3sj2x4hs7tjs03vuz5lukkreu264t7wejrlh | 0x1e630928d5bc3cb941f167054ff2d61e78ad557e | 7,553.86 | 6 | 5,841.446453 -| terp14q0gayavqqg83vrrkahetuz40uhn83cmmxtyla | 0xa81e8e93ac001078b063b76f95f0557f2f33c71b | 7,536.39 | 6 | 5,841.446453 -| terp1whsh6293cn2kc4vzyeefz4pr30ayjtqeccwhk0 | 0x75e17d28b1c4d56c558226729154238bfa492c19 | 7,525.11 | 6 | 5,841.446453 -| terp1ky6fy4f9yd9gsl72vz6e44tyafhghtems98jen | 0xb134925525234a887fca60b59ad564ea6e8baf3b | 7,521.38 | 6 | 5,841.446453 -| terp10l8upqs8rj3c8hfsuyv93dyyxu8t0z58qmtnt5 | 0x7fcfc082071ca383dd30e11858b484370eb78a87 | 7,469.04 | 6 | 5,841.446453 -| terp14x46nyxkhxwjcqsyjcg7txvcxrs0tdephrmcdr | 0xa9aba990d6b99d2c02049611e5999830e0f5b721 | 7,469.00 | 6 | 5,841.446453 -| terp18q27he5nlffvaa5e4cuflfanzc3qtv5xdluhcy | 0x3815ebe693fa52cef699ae389fa7b3162205b286 | 7,443.24 | 6 | 5,841.446453 -| terp1anld760lfp7q5eeksjhkzcd4wdats0d0ffrl67 | 0xecfedf69ff487c0a673684af6161b5737ab83daf | 7,430.89 | 6 | 5,841.446453 -| terp15j8aeqmym3f74lnq2ajw9cyjqnvaqsks9nl456 | 0xa48fdc8364dc53eafe605764e2e09204d9d042d0 | 7,320.59 | 6 | 5,841.446453 -| terp1a8twc87kz9t7fjfksz09e40ngqlutgtdhl2xvh | 0xe9d6ec1fd61157e4c936809e5cd5f3403fc5a16d | 7,310.60 | 6 | 5,841.446453 -| terp195ayuzu0ddja8v05p2egraqvfm20kjy0en4ur3 | 0x2d3a4e0b8f6b65d3b1f40ab281f40c4ed4fb488f | 7,285.97 | 6 | 5,841.446453 -| terp1zvtjn376x62mtxfgy2nygg5llewce34l4z4puw | 0x131729c7da3695b5992822a644229ffe5d8cc6bf | 7,264.51 | 6 | 5,841.446453 -| terp1l7366hr4ptha6g26qkk434pa9ukr9jk8dejqp2 | 0xffa3ad5c750aefdd215a05ad58d43d2f2c32cac7 | 7,191.75 | 6 | 5,841.446453 -| terp16n7xpdytmk3rrf3swcrmve3z7urah093pzzmhy | 0xd4fc60b48bdda231a6307607b66622f707dbbcb1 | 7,049.92 | 6 | 5,841.446453 -| terp1et8swaz3x682q4lvdxgaq6y03yjpkza0dlfmlq | 0xcacf077451368ea057ec6991d0688f89241b0baf | 7,034.79 | 6 | 5,841.446453 -| terp1q79jce9c6cv0h2pk8v354xx53wwu9g25ll8alq | 0x078b2c64b8d618fba8363b234a98d48b9dc2a154 | 7,004.56 | 6 | 5,841.446453 -| terp1qe7dv9nm4hm8748xlen3v5flt65rywfz2n3sf3 | 0x067cd6167badf67f54e6fe6716513f5ea8323922 | 6,981.99 | 6 | 5,841.446453 -| terp1gkyzglt82r4k5xqg9cv86vvtsgjqrwpus25yfk | 0x4588247d6750eb6a18082e187d318b822401b83c | 6,851.69 | 6 | 5,841.446453 -| terp1e8zcwn3rjm7v6nxp376fdedr397txs0l9u749u | 0xc9c5874e2396fccd4cc18fb496e5a3897cb341ff | 6,847.36 | 6 | 5,841.446453 -| terp1s606pyx5pwjrxmr6s3nnsgz75n9gdjv6wpwuzn | 0x869fa090d40ba4336c7a846738205ea4ca86c99a | 6,801.03 | 6 | 5,841.446453 -| terp10l9ccmdt8d467eheuxpnxsxmaamqr40dl488eh | 0x7fcb8c6dab3b6baf66f9e1833340dbef7601d5ed | 6,782.68 | 6 | 5,841.446453 -| terp1sq287xfmufvfvgg6actm82wn606rl9wddjlt0z | 0x80147f193be25896211aee17b3a9d3d3f43f95cd | 6,759.71 | 6 | 5,841.446453 -| terp17r6c9ytrryyurtxw689hhn3dxvrgntzp3gjqgh | 0xf0f58291631909c1acced1cb7bce2d330689ac41 | 6,757.69 | 6 | 5,841.446453 -| terp1stdm5d2zjq08k9rzl589avvy3jpfq9zahgtler | 0x82dbba3542901e7b1462fd0e5eb1848c8290145d | 6,713.01 | 6 | 5,841.446453 -| terp1h2dw920zej936nltwmchp6mzez7uttgez2scw9 | 0xba9ae2a9e2cc8b1d4feb76f170eb62c8bdc5ad19 | 6,649.64 | 6 | 5,841.446453 -| terp142kj5aphvmdvsch2hqw95n9pa0jakg0j3xvukf | 0xaaad2a743766dac862eab81c5a4ca1ebe5db21f2 | 6,649.64 | 6 | 5,841.446453 -| terp1lkqjjly7uzymuf69h3dcwcnvja5t3u6yumdvh2 | 0xfd81297c9ee089be2745bc5b87626c9768b8f344 | 6,633.78 | 6 | 5,841.446453 -| terp1tuhw6g7ce6wn2r6meet3he5t4jhavyfrsvrhsh | 0x5f2eed23d8ce9d350f5bce571be68bacafd61123 | 6,561.11 | 6 | 5,841.446453 -| terp1tge9x8n8ljn0qm3ql66gujverj8x0yjr0edtc9 | 0x5a32531e67fca6f06e20feb48e49991c8e679243 | 6,555.98 | 6 | 5,841.446453 -| terp1720ceue7ulldj7kum7mzzj94s5kd9e4r8mj5u0 | 0xf29f8cf33ee7fed97adcdfb62148b5852cd2e6a3 | 6,516.84 | 6 | 5,841.446453 -| terp1tz8p20r2pyfmzcx8cmtyhpsma3vcvfe58v3us4 | 0x588e153c6a0913b160c7c6d64b861bec59862734 | 6,480.92 | 6 | 5,841.446453 -| terp1tj3kvzts2tmzsqqvtd43ec8gyhltjcd3v02r0d | 0x5ca366097052f628000c5b6b1ce0e825feb961b1 | 6,457.08 | 6 | 5,841.446453 -| terp1z280zc9h645agkx8prk2ywu2yn9xuc3dfxutwv | 0x128ef160b7d569d458c708eca23b8a24ca6e622d | 6,402.70 | 6 | 5,841.446453 -| terp1e9v54j3axne6r2hn4z3qp3l5fd947xw96ea023 | 0xc9594aca3d34f3a1aaf3a8a200c7f44b4b5f19c5 | 6,394.91 | 6 | 5,841.446453 -| terp1gdcjen2sqv8enukvswd3mvlj0pwrcnc5t2t9ll | 0x43712ccd50030f99f2cc839b1db3f2785c3c4f14 | 6,381.16 | 6 | 5,841.446453 -| terp1fdxgezlyra28fgswgvm3vfdae20afrmr8ft03k | 0x4b4c8c8be41f5474a20e43371625bdca9fd48f63 | 6,350.09 | 6 | 5,841.446453 -| terp1hq690rf0qwt8cdd9s6z7ca2rnddcdcw823sfaj | 0xb834578d2f03967c35a58685ec75439b5b86e1c7 | 6,297.38 | 6 | 5,841.446453 -| terp1p9rnpu5z3k7esjav2lxnucjym6zy3qvcvyzpst | 0x094730f2828dbd984bac57cd3e6244de84488198 | 6,291.96 | 6 | 5,841.446453 -| terp1khnk44z2vafecju287zvmsrylscgv5y0gerlnp | 0xb5e76ad44a67539c4b8a3f84cdc064fc3086508f | 6,275.55 | 6 | 5,841.446453 -| terp1k8sdaneg7rqpyv3e9fnejxfe9xrna0pparse3e | 0xb1e0decf28f0c01232392a6799193929873ebc21 | 6,275.44 | 6 | 5,841.446453 -| terp1nqap77k6vfnlp9gg74rk9qps6hmqzpzj78uszc | 0x983a1f7ada6267f09508f547628030d5f6010452 | 6,250.05 | 6 | 5,841.446453 -| terp15p3zvjyretmsykdqtmcyvwqa2vfkchx3g5c0ht | 0xa062264883caf70259a05ef046381d53136c5cd1 | 6,235.41 | 6 | 5,841.446453 -| terp1wng3vq0rqxet2eg3nf9nddtw6cp79kt7g5v2su | 0x74d11601e301b2b565119a4b36b56ed603e2d97e | 6,226.39 | 6 | 5,841.446453 -| terp1u73f9g2lhq9ggakkpkatpmve58fq7vc3pvfm2r | 0xe7a292a15fb80a8476d60dbab0ed99a1d20f3311 | 6,223.80 | 6 | 5,841.446453 -| terp1aulpzvau2ggwau3p03zvnqhryk0vku2r8t0kyc | 0xef3e1133bc5210eef2217c44c982e3259ecb7143 | 6,129.44 | 6 | 5,841.446453 -| terp14nqr4zm9tlpapmg6nhjjz8dtd6unzw4v5jgxj2 | 0xacc03a8b655fc3d0ed1a9de5211dab6eb9313aac | 6,124.82 | 6 | 5,841.446453 -| terp1xwljxhveer9ullsw46rzqfc7anm2heucfjg57r | 0x33bf235d99c8cbcffe0eae8620271eecf6abe798 | 6,066.75 | 6 | 5,841.446453 -| terp1fc0hz3yrna5u79cfkun0zj6vyjfpnwxdz3de5k | 0x4e1f7144839f69cf1709b726f14b4c249219b8cd | 6,051.07 | 6 | 5,841.446453 -| terp1uftecq02gqv4mdxg5pmtly2reztaymcg6tvq5p | 0xe2579c01ea40195db4c8a076bf9143c897d26f08 | 6,024.87 | 6 | 5,841.446453 -| terp174mhy6fe5g2t4p99tsmz0sksvehfvfphx72c3y | 0xf577726939a214ba84a55c3627c2d0666e962437 | 6,024.22 | 6 | 5,841.446453 -| terp17jjj5su48nmwjw2dnkmhc3lf4n9rgm4tq48p7u | 0xf4a52a43953cf6e9394d9db77c47e9acca346eab | 6,017.63 | 6 | 5,841.446453 -| terp1xqrwjkvjwxg4xvmdwefwhh479tw8k2t859lw86 | 0x3006e95992719153336d7652ebdebe2adc7b2967 | 6,002.16 | 6 | 5,841.446453 -| terp13c05eukjytdzm3lv26p33qyaw0dnxhzuqz5m9g | 0x8e1f4cf2d222da2dc7ec568318809d73db335c5c | 5,985.16 | 6 | 5,841.446453 -| terp1nv7jtuyxcjzq8exm2tc2sr7huzlletgwp48gl3 | 0x9b3d25f086c48403e4db52f0a80fd7e0bffcad0e | 5,973.32 | 6 | 5,841.446453 -| terp1ra7k0nqx5zq6tpsgxx9r8xh40k7trhsyau9yrg | 0x1f7d67cc06a081a58608318a339af57dbcb1de04 | 5,873.90 | 6 | 5,841.446453 -| terp18xtwy7g4ljegped2tufpm6n29aj49p960nvrq8 | 0x3996e27915fcb280e5aa5f121dea6a2f655284ba | 5,828.98 | 6 | 5,841.446453 -| terp1udy28cgn9asl4dn955lqy8n6jkhfvpxaxq0ct4 | 0xe348a3e1132f61fab665a53e021e7a95ae9604dd | 5,820.35 | 6 | 5,841.446453 -| terp12tzmu08qx0al89mzvkwhy00eact4h36dra4hgc | 0x52c5be3ce033fbf39762659d723df9ee175bc74d | 5,735.90 | 6 | 5,841.446453 -| terp1kguxaxs59tsytz2l9rv08g9lva6ve80jy7ylu0 | 0xb2386e9a142ae045895f28d8f3a0bf6774cc9df2 | 5,663.86 | 6 | 5,841.446453 -| terp1wze2y2fdz6snz7p9yyzles0vl26wpdy9clxa3v | 0x70b2a2292d16a13178252105fcc1ecfab4e0b485 | 5,644.43 | 6 | 5,841.446453 -| terp130p39lnt9z0fts3uvj2dhuc953h3cfmp25zcn7 | 0x8bc312fe6b289e95c23c6494dbf305a46f1c2761 | 5,637.17 | 6 | 5,841.446453 -| terp1zqctzll6zaxgmvk22et772hteuks66evmwpp3q | 0x1030b17ffa174c8db2ca5657ef2aebcf2d0d6b2c | 5,552.44 | 6 | 5,841.446453 -| terp1lnunazlhxg73vzv34j2pr4xg08m0jgnwvtvalq | 0xfcf93e8bf7323d160991ac9411d4c879f6f9226e | 5,550.03 | 6 | 5,841.446453 -| terp1zrg2s2ryqqpq79gedh3xu5sw4kquevc9p9p6tc | 0x10d0a8286400020f15196de26e520ead81ccb305 | 5,506.94 | 6 | 5,841.446453 -| terp1z8p80lf57nv2u4j0fkevfm8q6fszpc9pcx468m | 0x11c277fd34f4d8ae564f4db2c4ece0d26020e0a1 | 5,500.06 | 6 | 5,841.446453 -| terp1actq0e8tqg70gxa2ntmy7nulqpj6u0akrns05y | 0xee1607e4eb023cf41baa9af64f4f9f0065ae3fb6 | 5,488.03 | 6 | 5,841.446453 -| terp1fxnvk294v4r33zeufe7ygym2e6sela8f4lv8yt | 0x49a6cb28b56547188b3c4e7c44136acea19ff4e9 | 5,480.65 | 6 | 5,841.446453 -| terp18p3mflgu4wm4j00r8enu55jhe828ceulw5g7wv | 0x3863b4fd1cabb7593de33e67ca5257c9d47c679f | 5,452.16 | 6 | 5,841.446453 -| terp1wvc97gghjtwlrced0ew6mz6ldyhktg3s8etq06 | 0x73305f211792ddf1e32d7e5dad8b5f692f65a230 | 5,406.94 | 6 | 5,841.446453 -| terp13c3982e8w62u5fq8ftaur668qykg8e3d8rc4v2 | 0x8e2253ab277695ca24074afbc1eb47012c83e62d | 5,401.30 | 6 | 5,841.446453 -| terp15pmqsc8celh6ug2lrd4pfpklhyl8h5cs3fsssc | 0xa0760860f8cfefae215f1b6a1486dfb93e7bd310 | 5,387.04 | 6 | 5,841.446453 -| terp1xjzj5s7mxv8e654grvharmfs78cgfms4w0fg7e | 0x34852a43db330f9d52a81b2fd1ed30f1f084ee15 | 5,361.48 | 6 | 5,841.446453 -| terp1033zl6tkk50mwmvn9dj6u4uegsg9j4jkcy050j | 0x7c622fe976b51fb76d932b65ae57994410595656 | 5,323.44 | 6 | 5,841.446453 -| terp1dwfy3t9mpqd5kqvj4wzsf6j9qtxwsdcp3fvd86 | 0x6b9248acbb081b4b0192ab8504ea4502cce83701 | 5,304.87 | 6 | 5,841.446453 -| terp1cw8xvwlvtzu85h94kh5m479prmf4urlfr060mj | 0xc38e663bec58b87a5cb5b5e9baf8a11ed35e0fe9 | 5,283.67 | 6 | 5,841.446453 -| terp17qykrcexw6w6t2k97aw8kvg84vuuhpqrlddqsj | 0xf00961e326769da5aac5f75c7b3107ab39cb8403 | 5,273.72 | 6 | 5,841.446453 -| terp1s6dttff8hqahdycstpyct08mt7kae959sarjc2 | 0x869ab5a527b83b769310584985bcfb5faddc9685 | 5,222.02 | 6 | 5,841.446453 -| terp1vhur7ty2jvk6u6h4a7eq76ecaurcgepnmyzw2h | 0x65f83f2c8a932dae6af5efb20f6b38ef07846433 | 5,209.39 | 6 | 5,841.446453 -| terp1wjchgeg0stkal0gt4jdlr48sp2enm0x5lxk7tx | 0x74b174650f82eddfbd0bac9bf1d4f00ab33dbcd4 | 5,207.36 | 6 | 5,841.446453 -| terp1slsu5vrlt046qw4wtv82u9w0qv9xsm3eygy0vn | 0x87e1ca307f5beba03aae5b0eae15cf030a686e39 | 5,165.35 | 6 | 5,841.446453 -| terp1r2pdqp2yuwgv9lhz7xmuh3sjusk3pxl6cg83w9 | 0x1a82d00544e390c2fee2f1b7cbc612e42d109bfa | 5,154.15 | 6 | 5,841.446453 -| terp1x520j5awgtef99z97uphhpaf6h5zng225nflqd | 0x3514f953ae42f2929445f7037b87a9d5e829a14a | 5,130.37 | 6 | 5,841.446453 -| terp1rru5ndnrq4u77k2ueg8awu4atwldx2nnkm259x | 0x18f949b6630579ef595cca0fd772bd5bbed32a73 | 5,129.13 | 6 | 5,841.446453 -| terp15nk6meuhk0zzncr4y76xav9f7c9y6juwfwjqxq | 0xa4edade797b3c429e07527b46eb0a9f60a4d4b8e | 5,080.62 | 6 | 5,841.446453 -| terp1qlls2ztypsrlwjk2ggw28vrkf2m7tgww88ts7z | 0x07ff0509640c07f74aca421ca3b0764ab7e5a1ce | 5,054.89 | 6 | 5,841.446453 -| terp1m6wg5knye09m05uy7f6vfzdk5wddenp44r0wq6 | 0xde9c8a5a64cbcbb7d384f274c489b6a39adccc35 | 5,032.51 | 6 | 5,841.446453 -| terp1pp32hr7ku9dmw7k88df2m5vlsvk96mx2a6jslx | 0x0862ab8fd6e15bb77ac73b52add19f832c5d6cca | 5,027.08 | 6 | 5,841.446453 -| terp1ua0xd36zmvy2x3lsyx6qxvys946gn5mquk7v5h | 0xe75e66c742db08a347f021b40330902d7489d360 | 5,026.23 | 6 | 5,841.446453 -| terp1l9cudhg5vlry8qsv2n9e9nv8e95ftdttfyfdsk | 0xf971c6dd1467c643820c54cb92cd87c96895b56b | 5,013.06 | 6 | 5,841.446453 -| terp10cagwgmuzpp7f6ar5xmu4tydau9pmuaxg3rrej | 0x7e3a87237c1043e4eba3a1b7caac8def0a1df3a6 | 5,010.27 | 6 | 5,841.446453 -| terp1ddcvwpu4ukgfkaev4rnsgn79vs877yqefaunuk | 0x6b70c70795e5909b772ca8e7044fc5640fef1019 | 5,000.00 | 6 | 5,841.446453 -| terp1g0ht7y99zxmzan0ysyxcl6cgftx06sgc7r7r5x | 0x43eebf10a511b62ecde4810d8feb084accfd4118 | 4,976.73 | 6 | 5,841.446453 -| terp1h0yewc67ygu646d4zm8m78nkamfqlez0qpd6vj | 0xbbc997635e2239aae9b516cfbf1e76eed20fe44f | 4,947.00 | 6 | 5,841.446453 -| terp1yd0am87ak2mljvaaguwl4vyyj7cjucdacluxda | 0x235fdd9fddb2b7f933bd471dfab08497b12e61bd | 4,942.50 | 6 | 5,841.446453 -| terp1hm3fgcnhvskeaj4t2qj89hxddedd4qjaf6wec8 | 0xbee2946277642d9ecaab502472dccd6e5ada825d | 4,898.89 | 6 | 5,841.446453 -| terp1hw5mjdrw33pq0ghh8fk9krwurgkdylqukq34p7 | 0xbba9b9346e8c4207a2f73a6c5b0ddc1a2cd27c1c | 4,859.70 | 6 | 5,841.446453 -| terp1n3h4ptlq2hntd3vkjs5ajd7lvwlud7xa790yaq | 0x9c6f50afe055e6b6c5969429d937df63bfc6f8dd | 4,850.66 | 6 | 5,841.446453 -| terp19cfd22yanqqpzug5s8vxg7vrl5yn3xptsldgu2 | 0x2e12d5289d980011711481d8647983fd0938982b | 4,850.00 | 6 | 5,841.446453 -| terp1e6krmcdmavsm4gy276smn0ha6ns58duemqzfyg | 0xceac3de1bbeb21baa08af6a1b9befdd4e143b799 | 4,850.00 | 6 | 5,841.446453 -| terp13yywc2q3hacxjf9qq7lfcnke3aysgs0kwkumu6 | 0x8908ec2811bf706924a007be9c4ed98f490441f6 | 4,850.00 | 6 | 5,841.446453 -| terp1e0e08fy9m2ghfp2vk66qr034efgsxxky6pkjxk | 0xcbf2f3a485da9174854cb6b401be35ca51031ac4 | 4,798.82 | 6 | 5,841.446453 -| terp17trd9x9r9yc0h7nve0hcczxqd2md5w64txw5sn | 0xf2c6d298a32930fbfa6ccbef8c08c06ab6da3b55 | 4,785.09 | 6 | 5,841.446453 -| terp1uur8unn79tqr39lj2rgvnm8yg78ra6c6874xy4 | 0xe7067e4e7e2ac03897f250d0c9ece4478e3eeb1a | 4,665.07 | 6 | 5,841.446453 -| terp1n39cyu6qppnz5syl9wn26w80z3jy56fjw6a7hm | 0x9c4b82734008662a409f2ba6ad38ef14644a6932 | 4,656.34 | 6 | 5,841.446453 -| terp1g5kumazlea07zglctk7zcley340mjw488g78lr | 0x452dcdf45fcf5fe123f85dbc2c7f248d5fb93aa7 | 4,642.58 | 6 | 5,841.446453 -| terp1w5yc7f3sk56mqgeq6rwdea3nlavspplfgh34kf | 0x75098f2630b535b02320d0dcdcf633ff590087e9 | 4,626.43 | 6 | 5,841.446453 -| terp1nlamzg6ztaa34y53d468hemh6azgnsgnjaqgd4 | 0x9ffbb123425f7b1a92916d747be777d74489c113 | 4,614.47 | 6 | 5,841.446453 -| terp1q7dyds3dml8pszdd0xqpqlay6aqwl64njfyg39 | 0x079a46c22ddfce1809ad7980107fa4d740efeab3 | 4,593.14 | 6 | 5,841.446453 -| terp17j6u4aakv9v0vyh5mvgjcxl46z4nyxv20h5yqx | 0xf4b5caf7b66158f612f4db112c1bf5d0ab32198a | 4,592.14 | 6 | 5,841.446453 -| terp19g4h2rycn5h0yjvsqa625st9e4e27ayx5u589j | 0x2a2b750c989d2ef249900774aa4165cd72af7486 | 4,578.29 | 6 | 5,841.446453 -| terp1qkr2cyqnzf3g5y6rpjad5sa3gpkzvsvgz0v6qf | 0x0586ac101312628a13430cbada43b1406c264188 | 4,568.58 | 6 | 5,841.446453 -| terp17n9fjnuzj2xhzqv28dma274he6pmkhxr294u9p | 0xf4ca994f82928d71018a3b77d57ab7ce83bb5cc3 | 4,528.05 | 6 | 5,841.446453 -| terp1zef56axtasvn59cgeww5z237qs5efq3wuyx8r3 | 0x16534d74cbec193a1708cb9d412a3e042994822e | 4,516.97 | 6 | 5,841.446453 -| terp1krnfky9xydvnnlprntdhdtz334l96c06glg62y | 0xb0e69b10a6235939fc239adb76ac518d7e5d61fa | 4,403.85 | 6 | 5,841.446453 -| terp1q3vf6nd0rvr75ek0hxkmnc9kkxdfzxykf62hdu | 0x04589d4daf1b07ea66cfb9adb9e0b6b19a911896 | 4,371.38 | 6 | 5,841.446453 -| terp1ua4u2pxnvkk02gwzlhcv2yv8w6xx3ja0accmtv | 0xe76bc504d365acf521c2fdf0c51187768c68cbaf | 4,360.69 | 6 | 5,841.446453 -| terp1gsjshp72k0eq42xvsqs4cc6g3h26lzsh6h3fw3 | 0x44250b87cab3f20aa8cc80215c63488dd5af8a17 | 4,288.99 | 6 | 5,841.446453 -| terp1j5tumv07ukqhh0v5gt28xutd5yxlhdvzy4a3zj | 0x9517cdb1fee5817bbd9442d473716da10dfbb582 | 4,287.93 | 6 | 5,841.446453 -| terp1fvqxjm6wd7825fmx3zjr6vtzaqxkallxdvv77s | 0x4b00696f4e6f8eaa276688a43d3162e80d6effe6 | 4,264.43 | 6 | 5,841.446453 -| terp1sr3whluzx9p0vejdfmztyesnc8ataf7m569rhf | 0x80e2ebff823142f6664d4ec4b26613c1fabea7db | 4,254.97 | 6 | 5,841.446453 -| terp1n54ex67vflvhy0usfwfqkttgemmqvvfnhwtq83 | 0x9d2b936bcc4fd9723f904b920b2d68cef6063133 | 4,252.69 | 6 | 5,841.446453 -| terp12axhq3fls80zeven6anmh8v7jvqh9t69tqlgdn | 0x574d70453f81de2cb333d767bb9d9e930172af45 | 4,247.82 | 6 | 5,841.446453 -| terp1ntntxs0s7qt35kjqpekguwmqtmryusvq6p960u | 0x9ae6b341f0f0171a5a400e6c8e3b605ec64e4180 | 4,194.41 | 6 | 5,841.446453 -| terp120pgq99cjndk2zxhualut9tmndath3tp4ngw78 | 0x53c28014b894db6508d7e77fc5957b9b7abbc561 | 4,135.39 | 6 | 5,841.446453 -| terp1nswfgv7darw4lnp598xvhs2xlgq3qsvlnnm2v8 | 0x9c1c9433cde8dd5fcc3429cccbc146fa0110419f | 4,130.39 | 6 | 5,841.446453 -| terp18d85dtc6jjy3wgnpmzux448jm6rh6l66jz3r5w | 0x3b4f46af1a9489172261d8b86ad4f2de877d7f5a | 4,127.28 | 6 | 5,841.446453 -| terp19x5lrqnwerveyuxp7k88xspcx9t7jf7rkccv5e | 0x29a9f1826ec8d99270c1f58e7340383157e927c3 | 4,094.29 | 6 | 5,841.446453 -| terp1v4y28usz755etq9ruywgfvnwpffxtw6v79elhg | 0x6548a3f202f5299580a3e11c84b26e0a5265bb4c | 4,078.88 | 6 | 5,841.446453 -| terp1eute8040g3l8ntgtqqyghhak3l64wh89efhg32 | 0xcf1793beaf447e79ad0b00088bdfb68ff5575ce5 | 4,032.63 | 6 | 5,841.446453 -| terp14ykqwn0px5wgf0zvrltp8kz67ksgc4yqggtpyj | 0xa92c074de1351c84bc4c1fd613d85af5a08c5480 | 4,030.41 | 6 | 5,841.446453 -| terp1ffye8hrpe2meyeq660sfx9e8pgqd8hzr8p6fst | 0x4a4993dc61cab792641ad3e09317270a00d3dc43 | 4,008.38 | 6 | 5,841.446453 -| terp1lj7fhxydy8hp2nd8k03xmqhutu92tu9v4tsq8e | 0xfcbc9b988d21ee154da7b3e26d82fc5f0aa5f0ac | 4,007.64 | 6 | 5,841.446453 -| terp1lfyxx28h6mvnzgnu4mdz3565pywxdhcgtz2g9s | 0xfa486328f7d6d931227caeda28d354091c66df08 | 4,001.18 | 6 | 5,841.446453 -| terp1ve442y9zmfz39knsr4ynnpuj984m7t38hk9la3 | 0x666b5510a2da4512da701d4939879229ebbf2e27 | 3,994.31 | 6 | 5,841.446453 -| terp16cq532rj0hzkzgmg028xl9lsz4zthfytmn8ray | 0xd60148a8727dc56123687a8e6f97f01544bba48b | 3,988.86 | 6 | 5,841.446453 -| terp1wfdneraakvuwgc5fl63yuf4xles2ek37xnfghr | 0x725b3c8fbdb338e46289fea24e26a6fe60acda3e | 3,983.92 | 6 | 5,841.446453 -| terp1atgwvlz66gd4t9vku96k4yj2cvhwdag8p9vqk9 | 0xead0e67c5ad21b559596e1756a924ac32ee6f507 | 3,977.00 | 6 | 5,841.446453 -| terp1jqwtftveehucyplmw545wjpvmuz0kjsg8e4aml | 0x901cb4ad99cdf98207fb752b47482cdf04fb4a08 | 3,961.13 | 6 | 5,841.446453 -| terp15ptpy79f7tvgrgdgkl8pwr6t73g4ela66pwy2t | 0xa0561278a9f2d881a1a8b7ce170f4bf4515cffba | 3,955.15 | 6 | 5,841.446453 -| terp1qqlwuamrc6lalrvk6wnj5tpu6jm5va8gt2dt4k | 0x003eee7763c6bfdf8d96d3a72a2c3cd4b74674e8 | 3,928.07 | 6 | 5,841.446453 -| terp1v5cevp9ghlmu5dsc64vvsn2ytafye5u4errlme | 0x65319604a8bff7ca3618d558c84d445f524cd395 | 3,920.20 | 6 | 5,841.446453 -| terp14xl5d2h4f20rvh2tguqsqu4hpaz0trz3952h3s | 0xa9bf46aaf54a9e365d4b47010072b70f44f58c51 | 3,895.85 | 6 | 5,841.446453 -| terp1jnzqh6292dh656v9frepwka92edh0nprj7jfut | 0x94c40be945536faa698548f2175ba5565b77cc23 | 3,855.76 | 6 | 5,841.446453 -| terp1ekh79lm3d6xdxvfyqww3d3nthtdqngcptrgjen | 0xcdafe2ff716e8cd33124039d16c66bbada09a301 | 3,852.41 | 6 | 5,841.446453 -| terp1espktzff796s30rhp6asmfawm5r9xdmj646lj3 | 0xcc03658929f17508bc770ebb0da7aedd06533772 | 3,844.17 | 6 | 5,841.446453 -| terp102mhxmt47xz7k0gftyhf469mm4uf6tzzl2x49p | 0x7ab7736d75f185eb3d09592e9ae8bbdd789d2c42 | 3,827.88 | 6 | 5,841.446453 -| terp1fvp39n7lv9akydjqn4kfq0avjy89pfuhj0k5fd | 0x4b0312cfdf617b6236409d6c903fac910e50a797 | 3,817.84 | 6 | 5,841.446453 -| terp14hcdzhw0qktuvd48sf37acl5fw8mja27f3wdn8 | 0xadf0d15dcf0597c636a78263eee3f44b8fb9755e | 3,731.34 | 6 | 5,841.446453 -| terp1myhaz7gfzw5a322h7mmyjm52s3sm0xegaurcqf | 0xd92fd1790913a9d8a957f6f6496e8a8461b79b28 | 3,723.45 | 6 | 5,841.446453 -| terp1ts8rzznt265rhk2pdus4sef5whdj9c52z7dphy | 0x5c0e310a6b56a83bd9416f2158653475db22e28a | 3,720.22 | 6 | 5,841.446453 -| terp17cfcctrqaxjr2ljclmz57a2d8gp4p67da49q7g | 0xf6138c2c60e9a4357e58fec54f754d3a0350ebcd | 3,664.47 | 6 | 5,841.446453 -| terp1vjf7t6nfx2arywke6yp4nusws67cwqmaj56z6v | 0x6493e5ea6932ba323ad9d10359f20e86bd87037d | 3,660.81 | 6 | 5,841.446453 -| terp1ues2k2p36enrjdpufdml4wh4nvzr2d4t83grny | 0xe660ab2831d66639343c4b77fabaf59b043536ab | 3,649.67 | 6 | 5,841.446453 -| terp1k3gcqg9wmkg4ggpfp4qhtf3qljf3fd4tqwl3nm | 0xb4518020aedd915420290d4175a620fc9314b6ab | 3,646.10 | 6 | 5,841.446453 -| terp1dqa0uqaxavnmec5e92cwpkpe4swkp425y4mv7n | 0x683afe03a6eb27bce2992ab0e0d839ac1d60d554 | 3,644.07 | 6 | 5,841.446453 -| terp10kunwrghcrxv9gpr5nyweqqv5lmfra53k7q6e0 | 0x7db9370d17c0ccc2a023a4c8ec800ca7f691f691 | 3,629.46 | 6 | 5,841.446453 -| terp1ax4040lcygqqvauy0rka73748r8yrfa0j7v9zx | 0xe9aafabff8220006778478eddf47d538ce41a7af | 3,627.76 | 6 | 5,841.446453 -| terp1mu9g43yy546ppfgqpxh9e8xv4wznh60jtt96e0 | 0xdf0a8ac484a57410a50009ae5c9cccab853be9f2 | 3,622.93 | 6 | 5,841.446453 -| terp1mzz49d00tx2y796yw8u3yxrz5rrncz9klewrsp | 0xd88552b5ef59944f174471f9121862a0c73c08b6 | 3,612.28 | 6 | 5,841.446453 -| terp1s43e3c5496hyuvl0ek79776ecvzpc4pa3u4skx | 0x856398e2952eae4e33efcdbc5f7b59c3041c543d | 3,612.28 | 6 | 5,841.446453 -| terp17utggfj98zx2yd4364k2mspvy8dhsy9qe409jc | 0xf716842645388ca236b1d56cadc02c21db7810a0 | 3,612.28 | 6 | 5,841.446453 -| terp1dpqk8p0u7hk79xwh840738aa678xzjtne2rduw | 0x68416385fcf5ede299d73d5fe89fbdd78e614973 | 3,612.28 | 6 | 5,841.446453 -| terp1vudtsah5pp8wj9szca2kyevqnu76mqpmfr8w0n | 0x671ab876f4084ee91602c7556265809f3dad803b | 3,587.97 | 6 | 5,841.446453 -| terp1u2hfu2qm8fdm2lm5s8sms0668fuf0f4t4yf5vs | 0xe2ae9e281b3a5bb57f7481e1b83f5a3a7897a6ab | 3,574.37 | 6 | 5,841.446453 -| terp1lc6kdgcpt8sg9aqzxtzah5axjxfj9l73r5dstz | 0xfe3566a30159e082f40232c5dbd3a6919322ffd1 | 3,564.10 | 6 | 5,841.446453 -| terp1fnx0xwcunxalgwu7hz03q4dc7zxcwhdtrlc74l | 0x4cccf33b1c99bbf43b9eb89f1055b8f08d875dab | 3,555.24 | 6 | 5,841.446453 -| terp1p8fph3s2fsm07hpvj5hadxm4r0djdt4nl0l02c | 0x09d21bc60a4c36ff5c2c952fd69b751bdb26aeb3 | 3,522.83 | 6 | 5,841.446453 -| terp1nhf5kd2r8dvrasvax3jljmgmlxl3hztwzumeqd | 0x9dd34b35433b583ec19d3465f96d1bf9bf1b896e | 3,435.46 | 6 | 5,841.446453 -| terp17xvmy0w9jxdks2rpte8yl7vjumlnscfg9vgguy | 0xf199b23dc5919b6828615e4e4ff992e6ff386128 | 3,427.00 | 6 | 5,841.446453 -| terp1pc5vf8wqsl4ahtqy64fkcq32qyayj5mysuyejh | 0x0e28c49dc087ebdbac04d5536c022a013a495364 | 3,397.13 | 6 | 5,841.446453 -| terp1r4vs8gaywz6aapng0hm7gsxpuvk8getq4ltsrl | 0x1d5903a3a470b5de86687df7e440c1e32c746560 | 3,395.68 | 6 | 5,841.446453 -| terp1ksry0p2c4rxs70m6l8s7vfvdlaezarx5qgrc8x | 0xb406478558a8cd0f3f7af9e1e6258dff722e8cd4 | 3,374.38 | 6 | 5,841.446453 -| terp1cypcqjw9hyx3kc3kez64xpq7uwrehdhej9y2wh | 0xc1038049c5b90d1b6236c8b553041ee3879bb6f9 | 3,374.04 | 6 | 5,841.446453 -| terp1ge6lgnkl0js9u6amk9vvdwq0q0wnmn86rt8j35 | 0x4675f44edf7ca05e6bbbb158c6b80f03dd3dccfa | 3,372.36 | 6 | 5,841.446453 -| terp1empstkgpy8nyaj4zsmn2hhrx4688p3txq4yqf0 | 0xcec305d90121e64ecaa286e6abdc66ae8e70c566 | 3,311.31 | 6 | 5,841.446453 -| terp1v7e4yv0tu72xaed3kdsxf5jn0cyk8yqdrlk03r | 0x67b35231ebe7946ee5b1b36064d2537e0963900d | 3,305.53 | 6 | 5,841.446453 -| terp1katusa2w9xt6tmuywfgx4r56mmm8znet4ykgch | 0xb757c8754e2997a5ef8472506a8e9adef6714f2b | 3,300.45 | 6 | 5,841.446453 -| terp1whvhsftxcrdjqp0qg0flzn505qk99wa6h8z6yx | 0x75d9782566c0db2005e043d3f14e8fa02c52bbba | 3,298.25 | 6 | 5,841.446453 -| terp1w2nswgy7fsc42m4a2ley9s8pgcwfwjgsvkah6d | 0x72a707209e4c31556ebd57f242c0e1461c974910 | 3,297.82 | 6 | 5,841.446453 -| terp172wnl4vhfwfqhxjexxtlrj8mdzs5qxuk23quhu | 0xf29d3fd5974b920b9a593197f1c8fb68a1401b96 | 3,290.07 | 6 | 5,841.446453 -| terp1ku23ne8zzyy9m2frxtmqxcutugt2v3xaqp0n6p | 0xb71519e4e211085da92332f603638be216a644dd | 3,272.10 | 6 | 5,841.446453 -| terp1lh322ggh47l9l4pccgpte3xt34wvhxt3ak8yp2 | 0xfde2a52117afbe5fd438c202bcc4cb8d5ccb9971 | 3,244.56 | 6 | 5,841.446453 -| terp1xtk2gpvss27z0hzpr8vkgm5c70uzdfy90t4mu8 | 0x32eca4059082bc27dc4119d9646e98f3f826a485 | 3,230.39 | 6 | 5,841.446453 -| terp1rly9rtfh94klc6c5whzsfys9czwz3a9s4nl979 | 0x1fc851ad372d6dfc6b1475c5049205c09c28f4b0 | 3,228.13 | 6 | 5,841.446453 -| terp1zeezktsddrkpcd9aqqq42yyevyzrr5qkpem9ax | 0x16722b2e0d68ec1c34bd0001551099610431d016 | 3,224.33 | 6 | 5,841.446453 -| terp1xlrl2rf327x6s2vsyhz2n5xhkkflml673j0jsm | 0x37c7f50d31578da8299025c4a9d0d7b593fdff5e | 3,207.55 | 6 | 5,841.446453 -| terp1ela5ul78sctzy7s0fugnq9mswg79t838ck2rda | 0xcffb4e7fc78616227a0f4f11301770723c559e27 | 3,166.30 | 6 | 5,841.446453 -| terp1da5ncv8jnej7w9u79gw33e2kutzqs062rk9tfs | 0x6f693c30f29e65e7179e2a1d18e556e2c4083f4a | 3,165.57 | 6 | 5,841.446453 -| terp1srx0xz2zgynryzdvhxu2r3gcnfjdz5l4tjccy0 | 0x80ccf3094241263209acb9b8a1c5189a64d153f5 | 3,163.76 | 6 | 5,841.446453 -| terp10j0p8ar3jya3y6xedrcyn54fc4zupsfqajnqh5 | 0x7c9e13f471913b1268d968f049d2a9c545c0c120 | 3,143.70 | 6 | 5,841.446453 -| terp1glal80y34w2ut8qk4ppxyjhfqgs2jqsh6vdpq6 | 0x47fbf3bc91ab95c59c16a842624ae90220a90217 | 3,135.69 | 6 | 5,841.446453 -| terp1q5gl3zsvkawkr4sm0dxydpntkc73dj3sh2e2w4 | 0x0511f88a0cb75d61d61b7b4c46866bb63d16ca30 | 3,126.90 | 6 | 5,841.446453 -| terp1dwyaxklh0negvxmcezk033vtt3he6gwqgeprzq | 0x6b89d35bf77cf2861b78c8acf8c58b5c6f9d21c0 | 3,124.69 | 6 | 5,841.446453 -| terp1pgwdak885zvncj57v3h36l3hwzykjl5l6xgmeq | 0x0a1cded8e7a0993c4a9e646f1d7e377089697e9f | 3,118.80 | 6 | 5,841.446453 -| terp1zp574ru2cpvjq06md26mz9830jvwl9uvhw0uh7 | 0x1069ea8f8ac059203f5b6ab5b114f17c98ef978c | 3,118.78 | 6 | 5,841.446453 -| terp1sks8h82h0gz5f3p5ryr3y3y6sxv0p34swhq5ra | 0x85a07b9d577a0544c434190712449a8198f0c6b0 | 3,076.43 | 6 | 5,841.446453 -| terp1p2kyfm8xs7yxfevyvpc3rz867ud6t6h08rl0ql | 0x0aac44ece6878864e58460711188faf71ba5eaef | 3,057.27 | 6 | 5,841.446453 -| terp1wwm6gy7xf8fmyxh0k8dtazp9ds3elx5s9mzhx2 | 0x73b7a413c649d3b21aefb1dabe88256c239f9a90 | 3,055.38 | 6 | 5,841.446453 -| terp1nze4w88rl772w2zn7gqljqvtcvvhuvd6yet48v | 0x98b3571ce3ffbca72853f201f9018bc3197e31ba | 3,053.58 | 6 | 5,841.446453 -| terp10rjy2td45ftqpnums0w7nymhtu98qpzsh8f5v7 | 0x78e4452db5a25600cf9b83dde993775f0a700450 | 3,040.49 | 6 | 5,841.446453 -| terp1ru5amnjgym5ja8zla94wzj7m5p3h9kgghfuq0j | 0x1f29ddce4826e92e9c5fe96ae14bdba06372d908 | 3,000.00 | 6 | 5,841.446453 -| terp1qzpuskngfrgw7qu2vx5td8nkcagl7tp3e3z9zs | 0x0083c85a6848d0ef038a61a8b69e76c751ff2c31 | 2,986.47 | 6 | 5,841.446453 -| terp13s73wh56vnz7m00cefz5xellz37u6kx86w0ylm | 0x8c3d175e9a64c5edbdf8ca454367ff147dcd58c7 | 2,957.53 | 6 | 5,841.446453 -| terp1rwrn4shxkr0nsgf5lzzh00jvqw6p3zgyeay4kr | 0x1b873ac2e6b0df382134f88577be4c03b4188904 | 2,938.28 | 6 | 5,841.446453 -| terp1ust2ae5wmn3yfzxun2jrhhr8vrzkjqsceq3f9n | 0xe416aee68edce24488dc9aa43bdc6760c5690218 | 2,923.13 | 6 | 5,841.446453 -| terp1hz6wr2r4psj0z0sscds70wq36ra6nwpllfk9qr | 0xb8b4e1a8750c24f13e10c361e7b811d0fba9b83f | 2,912.47 | 6 | 5,841.446453 -| terp1g63lml665y8wxyd5wt576f7kjtgjdf0ap78w6j | 0x46a3fdff5aa10ee311b472e9ed27d692d126a5fd | 2,895.14 | 6 | 5,841.446453 -| terp1vuw4r6xnglthpk6xcfqutadqswr5qz3qe2sjlf | 0x671d51e8d347d770db46c241c5f5a08387400a20 | 2,881.26 | 6 | 5,841.446453 -| terp13zmvtly7fre3npfnynft425ggsymyp9g37t8np | 0x88b6c5fc9e48f319853324d2baaa884409b204a8 | 2,875.28 | 6 | 5,841.446453 -| terp1vskz76m7sf6s7dngt90jdvwmn6vr2jnx8k8gpa | 0x642c2f6b7e82750f3668595f26b1db9e98354a66 | 2,863.15 | 6 | 5,841.446453 -| terp17p5cxuzsyjsdw4wr0qxr6t2dn4jnes4a0j2st6 | 0xf06983705024a0d755c3780c3d2d4d9d653cc2bd | 2,860.45 | 6 | 5,841.446453 -| terp1n2pc8822e5223cmq4jzax3xgdfhd8smhkav4f5 | 0x9a83839d4acd14a8e360ac85d344c86a6ed3c377 | 2,859.00 | 6 | 5,841.446453 -| terp103qrrs9khe9y3mx32yuwad97yj46j442xz53z2 | 0x7c4031c0b6be4a48ecd15138eeb4be24aba956aa | 2,854.48 | 6 | 5,841.446453 -| terp1gksltdw0qa04378c5hqju4q09s6pfu4cvzt50n | 0x45a1f5b5cf075f58f8f8a5c12e540f2c3414f2b8 | 2,850.95 | 6 | 5,841.446453 -| terp13zd6ycl6qc2cl0wc5q9fqqvsdyj7sw96d8lkmu | 0x889ba263fa06158fbdd8a00a9001906925e838ba | 2,848.03 | 6 | 5,841.446453 -| terp18a75lzvq4whfdqlsljt227wv5dceku7tw959w7 | 0x3f7d4f8980abae9683f0fc96a579cca3719b73cb | 2,828.87 | 6 | 5,841.446453 -| terp1rduqlzp09uday65jggvddqm6q6ydnmqyzqf9hu | 0x1b780f882f2f1bd26a924218d6837a0688d9ec04 | 2,813.90 | 6 | 5,841.446453 -| terp1rtgecgmdnfrquxw6jfjdarctentkfyhwklgd7x | 0x1ad19c236d9a460e19da9264de8f0bccd76492ee | 2,773.04 | 6 | 5,841.446453 -| terp1zatk5gg0zy055j2swggfmsjrk5nlh24d3jzsvh | 0x17576a210f111f4a495072109dc243b527fbaaad | 2,733.07 | 6 | 5,841.446453 -| terp1jt86zx449q49lw8ck3jvgnzkw8c2alc2x9ckmm | 0x92cfa11ab5282a5fb8f8b464c44c5671f0aeff0a | 2,720.51 | 6 | 5,841.446453 -| terp14m4qjs9h52keye0ryfz4atw9k5ng3g6p7d64xe | 0xaeea0940b7a2ad9265e322455eadc5b52688a341 | 2,695.41 | 6 | 5,841.446453 -| terp1cx02ywfl960v2nre8lrn92k3wa4t80y9qwhf7m | 0xc19ea2393f2e9ec54c793fc732aad1776ab3bc85 | 2,637.97 | 6 | 5,841.446453 -| terp140x3hewru3yd8euhyqagaza9tqmaeqn64jjlfr | 0xabcd1be5c3e448d3e797203a8e8ba55837dc827a | 2,635.23 | 6 | 5,841.446453 -| terp1l8l6h3ppjvsuakfsr0uruy24tdwgyph44uw0ge | 0xf9ffabc4219321ced9301bf83e11555b5c8206f5 | 2,607.41 | 6 | 5,841.446453 -| terp1dfwfk4pmk5y7nn3dsm4d7kn55ajs4lxjl3xu8t | 0x6a5c9b543bb509e9ce2d86eadf5a74a7650afcd2 | 2,594.90 | 6 | 5,841.446453 -| terp1htee82c8vdufqkz9frfvvh9qv62rzfvdlkpm9t | 0xbaf393ab07637890584548d2c65ca0669431258d | 2,593.93 | 6 | 5,841.446453 -| terp1506tds80k534cjes3fn4gynxlzasv3hzs6c3vd | 0xa3f4b6c0efb5235c4b308a67541266f8bb0646e2 | 2,567.37 | 6 | 5,841.446453 -| terp1ek6tm8jf7la8psd64jgu4rllagwkyh88vvth6z | 0xcdb4bd9e49f7fa70c1baac91ca8fffea1d625ce7 | 2,547.74 | 6 | 5,841.446453 -| terp1krxafm77rln32grelqk0tmmwaeclv4hkjjtzsu | 0xb0cdd4efde1fe7152079f82cf5ef6eee71f656f6 | 2,545.66 | 6 | 5,841.446453 -| terp1lyjglj7mw5227mpmlntejmwv4fsfdajazalmx4 | 0xf9248fcbdb7514af6c3bfcd7996dccaa6096f65d | 2,539.02 | 6 | 5,841.446453 -| terp19cgdgtuargg6mt40fpc3yyaf5gv4yc2h9h5a0j | 0x2e10d42f9d1a11adaeaf48711213a9a219526157 | 2,517.66 | 6 | 5,841.446453 -| terp1nazlg2dgv40fg53253l43ltp4w0ltxlg9fqnj2 | 0x9f45f429a8655e94522aa47f58fd61ab9ff59be8 | 2,516.44 | 6 | 5,841.446453 -| terp1hgqeayew3zpehszn5z0za8uww0tzpwp2rthmq3 | 0xba019e932e88839bc053a09e2e9f8e73d620b82a | 2,495.89 | 6 | 5,841.446453 -| terp134yu7ws94ddghwxamsd6j3vrua58ksnwfm65e8 | 0x8d49cf3a05ab5a8bb8dddc1ba94583e7687b426e | 2,458.02 | 6 | 5,841.446453 -| terp12huds3sry6kqqhf04qxxtpmzj0tkg7z0zaezf4 | 0x55f8d8460326ac005d2fa80c65876293d764784f | 2,455.74 | 6 | 5,841.446453 -| terp1c9nvgvuqj5h9vrtlgwfc3kgfeh6c094m8lr62v | 0xc166c43380952e560d7f439388d909cdf58796bb | 2,452.63 | 6 | 5,841.446453 -| terp1f02vqgr8mss7qm5r9mfd8457pejf56fxkj8e94 | 0x4bd4c02067dc21e06e832ed2d3d69e0e649a6926 | 2,451.31 | 6 | 5,841.446453 -| terp1wm5pdrszdl4gyeancweqzn4exx0w4prj73aapr | 0x76e8168e026fea8267b3c3b2014eb9319eea8472 | 2,444.92 | 6 | 5,841.446453 -| terp1g9n5mayurunrmhj9004ggy0lpgt6jjphalrg7r | 0x41674df49c1f263dde457bea8411ff0a17a94837 | 2,429.21 | 6 | 5,841.446453 -| terp1wgyr50tene0qsgvn3qjqrvx6cuqgzdrfec6dky | 0x72083a3d799e5e082193882401b0dac700813469 | 2,425.04 | 6 | 5,841.446453 -| terp155n5rlvexmqu0ud893fxq49k8c4xvaurp9l8k9 | 0xa52741fd9936c1c7f1a72c526054b63e2a667783 | 2,425.00 | 6 | 5,841.446453 -| terp1ley9y8zlkular5a5dx39a0yun43n73elmv0lrh | 0xfe48521c5fb73fd1d3b469a25ebc9c9d633f473f | 2,425.00 | 6 | 5,841.446453 -| terp10kgssmd5g6pmeeup5kkvswf4m63umcqkp44apw | 0x7d91086db44683bce781a5acc83935dea3cde016 | 2,418.95 | 6 | 5,841.446453 -| terp1d909xwskxz88rcjzpjvlj3pfy8s5cng0lkl6hn | 0x695e533a16308e71e2420c99f9442921e14c4d0f | 2,415.63 | 6 | 5,841.446453 -| terp1puxw4qqs9ldxydk509mcgn49dnrd0ckejfddjp | 0x0f0cea80102fda6236d47977844ea56cc6d7e2d9 | 2,379.19 | 6 | 5,841.446453 -| terp1uf2gw96a9wulpundysw7z4va6zhg74ervzx44f | 0xe25487175d2bb9f0f26d241de1559dd0ae8f5723 | 2,369.92 | 6 | 5,841.446453 -| terp1xvjmy2ukn3vsl4tuvqyrveezjzqyyqug8fy9nx | 0x3325b22b969c590fd57c60083667229080420388 | 2,345.38 | 6 | 5,841.446453 -| terp1c79xjlr4a8yut9wd9s5c6jzx2nh9jeg25yst7x | 0xc78a697c75e9c9c595cd2c298d484654ee59650a | 2,331.40 | 6 | 5,841.446453 -| terp1e4c05wq5dcg6xqxdwjcj0xv5c93f9w8yk9mxqh | 0xcd70fa38146e11a300cd74b1279994c16292b8e4 | 2,285.17 | 6 | 5,841.446453 -| terp183xwae8dac4gnun2yf4q7g625ee23f8ldt44jc | 0x3c4ceee4edee2a89f26a226a0f234aa672a8a4ff | 2,192.20 | 6 | 5,841.446453 -| terp17k2sj53juthl7hw8zqkx4m0ye3gjwtnymtkc5u | 0xf595095232e2efff5dc7102c6aede4cc51272e64 | 2,173.54 | 6 | 5,841.446453 -| terp1qmrx8fuv3j8y7g0x9s33jl7uwxe7eh04mwdjn7 | 0x06c663a78c8c8e4f21e62c23197fdc71b3ecddf5 | 2,157.95 | 6 | 5,841.446453 -| terp1ycpk9ewfraa6svkykv3wk5wtc5qsjh80gh20pl | 0x260362e5c91f7ba832c4b322eb51cbc501095cef | 2,156.78 | 6 | 5,841.446453 -| terp1ua9k8skes90l58sp9aywfw2y9swwj83pz3wc9x | 0xe74b63c2d9815ffa1e012f48e4b9442c1ce91e21 | 2,136.59 | 6 | 5,841.446453 -| terp13s7xm0tunfhpe7tqpxgu9886q89ler4ysz05df | 0x8c3c6dbd7c9a6e1cf9600991c29cfa01cbfc8ea4 | 2,134.68 | 6 | 5,841.446453 -| terp1y6czqnltlfsc2eyjx90gscdctdll34upwgys96 | 0x26b0204febfa61856492315e8861b85b7ff8d781 | 2,127.21 | 6 | 5,841.446453 -| terp1k2cy9mzyn2r0q5yk23z4sycay89tmxr5tv705c | 0xb2b042ec449a86f05096544558131d21cabd9874 | 2,112.52 | 6 | 5,841.446453 -| terp1wqn2lha6l293rtx8kelx96dnhe259xg2v73rrw | 0x7026afdfbafa8b11acc7b67e62e9b3be5542990a | 2,109.03 | 6 | 5,841.446453 -| terp1a6c7vzwpcrnxlpxcn4fxa484ln7yrsw9klsas5 | 0xeeb1e609c1c0e66f84d89d526ed4f5fcfc41c1c5 | 2,107.12 | 6 | 5,841.446453 -| terp1us3077gqvh3eluvvwljh3h6vfh0hpxrpdfjt2v | 0xe422ff790065e39ff18c77e578df4c4ddf709861 | 2,088.68 | 6 | 5,841.446453 -| terp12dcrpwff8wtpttgcwxzmu25rksp4t57v9c5nar | 0x537030b9293b9615ad187185be2a83b40355d3cc | 2,075.81 | 6 | 5,841.446453 -| terp1d0l0waxzmrywmw6h69apla7nuvseu7mwjq2h0k | 0x6bfef774c2d8c8edbb57d17a1ff7d3e3219e7b6e | 2,056.98 | 6 | 5,841.446453 -| terp144mz779gmakp0yjnc2hglt3eyuv0f5mzxh5kkx | 0xad762f78a8df6c179253c2ae8fae392718f4d362 | 2,043.91 | 6 | 5,841.446453 -| terp18cfkxjdxx884qeku72c624yda89q7thjxsksv5 | 0x3e136349a631cf5066dcf2b1a5548de9ca0f2ef2 | 2,038.46 | 6 | 5,841.446453 -| terp1jtakwrvpwg666xr48we68m46tuma6daegk05a8 | 0x92fb670d817235ad18753bb3a3eeba5f37dd37b9 | 2,018.99 | 6 | 5,841.446453 -| terp1xdthvtc5dgqyhnpvnplg6a4zsm6fxlq6svf9s5 | 0x3357762f146a004bcc2c987e8d76a286f4937c1a | 2,017.43 | 6 | 5,841.446453 -| terp1967mqj6dqvg6f8q28sfx8cg538uvvedc8j3e8m | 0x2ebdb04b4d0311a49c0a3c1263e11489f8c665b8 | 2,012.20 | 6 | 5,841.446453 -| terp1qj6m2jpykps03u24ez87kqhfm48s38kv8nfycf | 0x04b5b54824b060f8f155c88feb02e9dd4f089ecc | 2,000.35 | 6 | 5,841.446453 -| terp177mk2vplm22a9rs482erelkq9rtled07y66aun | 0xf7b765303fda95d28e153ab23cfec028d7fcb5fe | 1,973.90 | 6 | 5,841.446453 -| terp1mpyvzv0h8g4mjaa6l7uet4u6sv4kvejcxsqukg | 0xd848c131f73a2bb977baffb995d79a832b666658 | 1,971.58 | 6 | 5,841.446453 -| terp1dp6ud5pkvdmfynj2qsj3ulhm228getf9xm6sf0 | 0x6875c6d0366376924e4a04251e7efb528e8cad25 | 1,966.35 | 6 | 5,841.446453 -| terp1aev8hk7njvzddpksfsvmshy9kghjs0vveq0jvx | 0xee587bdbd39304d686d04c19b85c85b22f283d8c | 1,955.56 | 6 | 5,841.446453 -| terp1an4fpwjvfwsac4lnsc8zyqsyg3p77yc3yjew84 | 0xecea90ba4c4ba1dc57f3860e2202044443ef1311 | 1,950.56 | 6 | 5,841.446453 -| terp1a5j7j2ngtv46znp6dy2wpme6jk2mh07520m3nh | 0xed25e92a685b2ba14c3a6914e0ef3a9595bbbfd4 | 1,940.13 | 6 | 5,841.446453 -| terp13egeggjllvv85la80rxz5d5llfqyt9gclg9r6l | 0x8e5194225ffb187a7fa778cc2a369ffa40459518 | 1,940.00 | 6 | 5,841.446453 -| terp1shtqcpl8pfvdduasm53faj6mqe2k4j94pnfx4t | 0x85d60c07e70a58d6f3b0dd229ecb5b06556ac8b5 | 1,938.42 | 6 | 5,841.446453 -| terp1gpergedwvk3md35fcdc39lql9v68dtkzwxm5l6 | 0x40723465ae65a3b6c689c37112fc1f2b3476aec2 | 1,920.00 | 6 | 5,841.446453 -| terp1zqnjepgrmaps8hsww0nqxufvklgtmmyg7ry80p | 0x10272c8503df4303de0e73e603712cb7d0bdec88 | 1,916.75 | 6 | 5,841.446453 -| terp1trtzsex7z8gtda5fnwvvrkaslpahax7lw7kcww | 0x58d62864de11d0b6f6899b98c1dbb0f87b7e9bdf | 1,907.33 | 6 | 5,841.446453 -| terp1wxvjvkjf63z3avnks5j9ul5lwdku8fvcy4a6jf | 0x7199265a49d4451eb27685245e7e9f736dc3a598 | 1,857.96 | 6 | 5,841.446453 -| terp12v98n8xtlg3vclw6fnjvhl9klnlz9u3z7ecus3 | 0x530a799ccbfa22cc7dda4ce4cbfcb6fcfe22f222 | 1,843.00 | 6 | 5,841.446453 -| terp1sqmfq8tqf7s4vmy0delzj0x9z2js44w4r75t0w | 0x8036901d604fa1566c8f6e7e293cc512a50ad5d5 | 1,817.42 | 6 | 5,841.446453 -| terp1s7atv0jl4hflng2a9j4xh6vkfsrcrwegpssv04 | 0x87bab63e5fadd3f9a15d2caa6be9964c0781bb28 | 1,811.15 | 6 | 5,841.446453 -| terp1cr9nqp6gyuupqjx9aev4s38rufzlz7rhcvejre | 0xc0cb30074827381048c5ee595844e3e245f17877 | 1,810.01 | 6 | 5,841.446453 -| terp1ywh5frgw5ye6dy4ux3x56vxa0y392pk4mxnde2 | 0x23af448d0ea133a692bc344d4d30dd79225506d5 | 1,805.72 | 6 | 5,841.446453 -| terp1nf570gca9rjzmude6evt9jm6lyhq54zxz9hqrk | 0x9a69e7a31d28e42df1b9d658b2cb7af92e0a5446 | 1,794.57 | 6 | 5,841.446453 -| terp1url6p705xnjfv9x3zjjxt0grw3u0z2sa44kz7m | 0xe0ffa0f9f434e49614d114a465bd037478f12a1d | 1,770.59 | 6 | 5,841.446453 -| terp1an4zg8msz2maxqzzk4m5dl8gm9uwd974rjy4ml | 0xecea241f7012b7d30042b57746fce8d978e697d5 | 1,754.66 | 6 | 5,841.446453 -| terp15st5fc4uje4vr4ldjj54dvlne9xnckkuu902fa | 0xa41744e2bc966ac1d7ed94a956b3f3c94d3c5adc | 1,728.24 | 6 | 5,841.446453 -| terp17lds7sxfhe4ra8005qlqs0qv4tnh5g0czwtxvs | 0xf7db0f40c9be6a3e9defa03e083c0caae77a21f8 | 1,721.80 | 6 | 5,841.446453 -| terp17cr5wzpyjxwj43nfr6rha6vs6rdf9adva0v2xv | 0xf607470824919d2ac6691e877ee990d0da92f5ac | 1,719.89 | 6 | 5,841.446453 -| terp1y4welznqaeruthmwtcytpdhkcx2ayk9sghyslz | 0x255d9f8a60ee47c5df6e5e08b0b6f6c195d258b0 | 1,717.34 | 6 | 5,841.446453 -| terp1ydceldgal7a4pakfn84fnvfcj8pf095k807e30 | 0x23719fb51dffbb50f6c999ea99b13891c2979696 | 1,675.17 | 6 | 5,841.446453 -| terp1l5d8v8ydrw4tpc6jr5tejaf0rqwkkhj662haz9 | 0xfd1a761c8d1baab0e3521d1799752f181d6b5e5a | 1,662.82 | 6 | 5,841.446453 -| terp1sg2a950z598chl0s3enkq6yef6cztu0xeq8lwq | 0x8215d2d1e2a14f8bfdf08e676068994eb025f1e6 | 1,622.69 | 6 | 5,841.446453 -| terp1gwf3jn7z86k9g8jw5ky0l2v93ryplmmz44x5wt | 0x4393194fc23eac541e4ea588ffa98588c81fef62 | 1,606.26 | 6 | 5,841.446453 -| terp1x9f8uj8zvuagnd6dtk89hc255w9f3j4c4fzqdr | 0x31527e48e2673a89b74d5d8e5be154a38a98cab8 | 1,605.68 | 6 | 5,841.446453 -| terp1llwh8kcwgv9alwpjq9ha2pntyssvap9qmlafgj | 0xffdd73db0e430bdfb832016fd5066b2420ce84a0 | 1,507.34 | 6 | 5,841.446453 -| terp1hkk0gyerak0akwheq2kjm83ccg8sqgmqnzmujn | 0xbdacf41323ed9fdb3af902ad2d9e38c20f002360 | 1,492.80 | 6 | 5,841.446453 -| terp1hqej5cvxdkm2y33acdj5j4dygw9sv0mlnq6k4e | 0xb8332a61866db6a2463dc3654955a4438b063f7f | 1,492.29 | 6 | 5,841.446453 -| terp1nn054vn5thr3lwlu8t9zr3r5ez0sl3p2v6ry24 | 0x9cdf4ab2745dc71fbbfc3aca21c474c89f0fc42a | 1,491.79 | 6 | 5,841.446453 -| terp16mctk0r5rz93em0pfjgkl76cxmly80m8j6m0sx | 0xd6f0bb3c74188b1cede14c916ffb5836fe43bf67 | 1,473.72 | 6 | 5,841.446453 -| terp1y4ad6dlm3hcddmfhvux3zmvl2up6yq39vms2tl | 0x257add37fb8df0d6ed37670d116d9f5703a20225 | 1,463.34 | 6 | 5,841.446453 -| terp1242q299kccmuevrh6986cup4efqgemdutptctr | 0x55540514b6c637ccb077d14fac7035ca408cedbc | 1,451.21 | 6 | 5,841.446453 -| terp1l3j4sk0vqd4ta8da05jk6tt79pkyeuj93j608q | 0xfc655859ec036abe9dbd7d256d2d7e286c4cf245 | 1,440.00 | 6 | 5,841.446453 -| terp1aqznpzx76tydfe9xkqzmgzmmqw8y0hexj33lh3 | 0xe8053088ded2c8d4e4a6b005b40b7b038e47df26 | 1,423.39 | 6 | 5,841.446453 -| terp19zt9nhej9jyfsz0swwdqvyqr40wgx0sn2ue4lu | 0x289659df322c889809f0739a061003abdc833e13 | 1,402.34 | 6 | 5,841.446453 -| terp1eqtd4rt7eky8tzy4ynuajcmk8emgx4c0zu2q5h | 0xc816da8d7ecd8875889524f9d963763e7683570f | 1,344.18 | 6 | 5,841.446453 -| terp1m3acuyx2mvd6x4pufd94d0vuvalpqxzyvf8l5f | 0xdc7b8e10cadb1ba3543c4b4b56bd9c677e101844 | 1,327.57 | 6 | 5,841.446453 -| terp1vajtraz3dtpphyf9rneeht9a78z7kskslpra90 | 0x6764b1f4516ac21b91251cf39bacbdf1c5eb42d0 | 1,316.92 | 6 | 5,841.446453 -| terp1s39uw6g68j2fm6g0cw7yz2gfhx8enwd5x5vh2u | 0x844bc7691a3c949de90fc3bc412909b98f99b9b4 | 1,293.41 | 6 | 5,841.446453 -| terp1esftc9ntdamdgxw359esetyfhhnvt26qyy2t40 | 0xcc12bc166b6f76d419d1a1730cac89bde6c5ab40 | 1,260.08 | 6 | 5,841.446453 -| terp1va7dwrlzetrd0vhc8gjq385g2shxeyhzhc0m3g | 0x677cd70fe2cac6d7b2f83a24089e88542e6c92e2 | 1,243.15 | 6 | 5,841.446453 -| terp18epusuk7nt8tf7uthrwlvng908ujdcuud4ffpx | 0x3e43c872de9aceb4fb8bb8ddf64d0579f926e39c | 1,192.81 | 6 | 5,841.446453 -| terp1fkycrxahyf40grfk3hj9hg009uyna69l07q0kh | 0x4d89819bb7226af40d368de45ba1ef2f093ee8bf | 1,192.79 | 6 | 5,841.446453 -| terp1td00e00acse2uktp8dxk48l8u9n60vpgfyvnvu | 0x5b5efcbdfdc432ae59613b4d6a9fe7e167a7b028 | 1,160.67 | 6 | 5,841.446453 -| terp1s75mg8hhhk777gaxl30uvajpae0qt33jzfudm3 | 0x87a9b41ef7bdbdef23a6fc5fc67641ee5e05c632 | 1,121.04 | 6 | 5,841.446453 -| terp1yykl5wqga0hlvwleh8tf4m802kw589u0j06evh | 0x212dfa3808ebeff63bf9b9d69aecef559d43978f | 1,106.16 | 6 | 5,841.446453 -| terp1nc6vjhccrfagff0gm70jjzzwzdrgxd687mzq59 | 0x9e34c95f181a7a84a5e8df9f29084e1346833747 | 1,078.26 | 6 | 5,841.446453 -| terp18ld56egj04y6ungtftqv5r5ar4um32fac5xxa7 | 0x3fdb4d65127d49ae4d0b4ac0ca0e9d1d79b8a93d | 1,076.58 | 6 | 5,841.446453 -| terp1luveuuktp7uy226axhkle7dnwfdjgll83a5dyu | 0xff199e72cb0fb8452b5d35edfcf9b3725b247fe7 | 1,067.73 | 6 | 5,841.446453 -| terp1y54tp4g50kfsht6a2ueuudtd0jsjs8zx7hrkhc | 0x252ab0d5147d930baf5d5733ce356d7ca1281c46 | 1,065.26 | 6 | 5,841.446453 -| terp1exg9jgz57zrtvqjrrx3vwr50ax6l7c5wyscf57 | 0xc990592054f086b6024319a2c70e8fe9b5ff628e | 1,064.03 | 6 | 5,841.446453 -| terp1mcpklpkjpk6h8vmy74fz4055kcgnkcr0098lxd | 0xde036f86d20db573b364f5522abe94b6113b606f | 1,056.70 | 6 | 5,841.446453 -| terp1ze9zqwckxnpytkm6p9xlt8h04hap22pntp0lcp | 0x164a203b1634c245db7a094df59eefadfa152833 | 1,056.23 | 6 | 5,841.446453 -| terp19ja7c904eskjrhlez85wqy7pzg4plxwn8tss06 | 0x2cbbec15f5cc2d21dff911e8e013c1122a1f99d3 | 1,030.45 | 6 | 5,841.446453 -| terp1cmsgrdj5cndmztdrctdxuje6n6pspa0pm024ee | 0xc6e081b654c4dbb12da3c2da6e4b3a9e8300f5e1 | 1,000.07 | 6 | 5,841.446453 -| terp1kaz24at4ujgdqfrv0pkcjw9vje8n8hlfp6cea5 | 0xb744aaf575e490d0246c786d8938ac964f33dfe9 | 1,000.00 | 6 | 5,841.446453 -| terp1n4jvry379lsw406nj8es5hhy9wrvt6yjf8c98x | 0x9d64c1923e2fe0eabf5391f30a5ee42b86c5e892 | 993.84 | 6 | 5,841.446453 -| terp1hqnm73rpntl7l55dp6px22hgsh2vahnyu7pl94 | 0xb827bf44619affefd28d0e82652ae885d4cede64 | 992.51 | 6 | 5,841.446453 -| terp1ckla0ysveq2ju8r47dgfnuqmd5hn979xsxjqhl | 0xc5bfd7920cc8152e1c75f35099f01b6d2f32f8a6 | 991.30 | 6 | 5,841.446453 -| terp197v45uz3zcdlmqgqqf90pgvdvluma3q850mjmg | 0x2f995a7051161bfd8100024af0a18d67f9bec407 | 970.00 | 6 | 5,841.446453 -| terp1edzs8mf8pvqh3kmdw6yl8hhz2rx45yuu6728ss | 0xcb4503ed270b0178db6d7689f3dee250cd5a139c | 960.00 | 6 | 5,841.446453 -| terp1u29ycjx7kdjlkkkxach8f56jek0xps9h778cny | 0xe28a4c48deb365fb5ac6ee2e74d352cd9e60c0b7 | 950.87 | 6 | 5,841.446453 -| terp1x0j8s403mrqx9cxsvu284e20ujk78j85mew23n | 0x33e47855f1d8c062e0d067147ae54fe4ade3c8f4 | 940.83 | 6 | 5,841.446453 -| terp15tf65e49wvycuypcjv6w9jh9n42et7lvjj08qk | 0xa2d3aa66a573098e10389334e2cae59d5595fbec | 931.91 | 6 | 5,841.446453 -| terp15qfu60c7zajdp6mu89sr8r4krmc56777utx6mu | 0xa013cd3f1e1764d0eb7c3960338eb61ef14d7bde | 929.59 | 6 | 5,841.446453 -| terp1xhq46d89vas5yteefhr7n0al40uktchs220dxv | 0x35c15d34e56761422f394dc7e9bfbfabf965e2f0 | 929.06 | 6 | 5,841.446453 -| terp1vlvntwyzwmxcpppus6t3r8xaw5c6zg5ym838eu | 0x67d935b88276cd80843c8697119cdd7531a12284 | 924.51 | 6 | 5,841.446453 -| terp1khxetr7cs9yl93g0wwd4uahydm98qnt3f42ax0 | 0xb5cd958fd88149f2c50f739b5e76e46eca704d71 | 921.99 | 6 | 5,841.446453 -| terp18vm4rua0m684m9vfmlzv8qfftscd3nhu8wtyfz | 0x3b3751f3afde8f5d9589dfc4c381295c30d8cefc | 906.98 | 6 | 5,841.446453 -| terp19q7qnezq8h5j9v5lvyq4n2mnguqr9fdzk8axsm | 0x283c09e4403de922b29f610159ab73470032a5a2 | 864.36 | 6 | 5,841.446453 -| terp12xma90l0y2cpfgf2prw7rxj5j7kutlusx69473 | 0x51b7d2bfef22b014a12a08dde19a5497adc5ff90 | 834.91 | 6 | 5,841.446453 -| terp1la6pexg5s67jxhktmtju9f8kgnxa24fap3jrqj | 0xff741c991486bd235ecbdae5c2a4f644cdd5553d | 832.64 | 6 | 5,841.446453 -| terp12v6g0mhgcm3d97gzzn6t6c8tjp5ht256hq580a | 0x533487eee8c6e2d2f90214f4bd60eb906975aa9a | 806.88 | 6 | 5,841.446453 -| terp1qee62qn4ky4upqtpl0vgrmdpgjw54kjkre9flm | 0x0673a50275b12bc08161fbd881eda1449d4ada56 | 805.48 | 6 | 5,841.446453 -| terp1x7dfyjcu5nzf3g9ant3mxr8q49eu5j22drgqhu | 0x379a924b1ca4c498a0bd9ae3b30ce0a973ca494a | 781.61 | 6 | 5,841.446453 -| terp1rwu4tvmfnx7s689jwt7dy6j2a29lyjyg0kvlg5 | 0x1bb955b36999bd0d1cb272fcd26a4aea8bf24888 | 757.61 | 6 | 5,841.446453 -| terp1atr2hp9xdcwurr03jl5tg0pqjaf0l7e34eyyd8 | 0xeac6ab84a66e1dc18df197e8b43c209752fffb31 | 728.11 | 6 | 5,841.446453 -| terp177a4c46y2xe4vy2e8nldnzjtq5rlgnl6g0qrag | 0xf7bb5c574451b35611593cfed98a4b0507f44ffa | 686.77 | 6 | 5,841.446453 -| terp1l93w87jywc9khp6zr8t4et5lpj4lsfz8rr9zxf | 0xf962e3fa44760b6b874219d75cae9f0cabf82447 | 654.26 | 6 | 5,841.446453 -| terp1krj3qqvxyxrrgq55panf8d5s3603u63ntu9tzn | 0xb0e510018621863402940f6693b6908e9f1e6a33 | 605.67 | 6 | 5,841.446453 -| terp1mlsrs04yatvu72whqsc87kcme206snfmpd624l | 0xdfe0383ea4ead9cf29d704307f5b1bca9fa84d3b | 604.31 | 6 | 5,841.446453 -| terp1wl98s6nr7xwc93d2m05xau529k5lppre62tdqr | 0x77ca786a63f19d82c5aadbe86ef28a2da9f08479 | 577.98 | 6 | 5,841.446453 -| terp1gccs6k56ap2mffmqjvtpe00fy0j5gjfjyglrc2 | 0x46310d5a9ae855b4a76093161cbde923e5444932 | 566.72 | 6 | 5,841.446453 -| terp1hfwqnmlzkf7kzcwnajnpntm5u2awyj27j5eg3z | 0xba5c09efe2b27d6161d3eca619af74e2bae2495e | 532.08 | 6 | 5,841.446453 -| terp14f8tpx5qkwlje7ds4agrqdhwt0yt6stfwtykpv | 0xaa4eb09a80b3bf2cf9b0af503036ee5bc8bd4169 | 514.03 | 6 | 5,841.446453 -| terp1zmp9tua99rfukhrfkqpkrt88n9g39aktxcsjmy | 0x16c255f3a528d3cb5c69b00361ace7995112f6cb | 488.66 | 6 | 5,841.446453 -| terp1zs4c3vx5qw75kzdaf5585kghs0hhu0f4lq6fqv | 0x142b88b0d403bd4b09bd4d287a591783ef7e3d35 | 485.00 | 6 | 5,841.446453 -| terp1vxwakg8r9a2hahwfqhwney48ty8pl65lexnsnw | 0x619ddb20e32f557eddc905dd3c92a7590e1fea9f | 485.00 | 6 | 5,841.446453 -| terp1qetvn3mfhfp2zhnlkrgecqccuslqxw4ch3z2ze | 0x0656c9c769ba42a15e7fb0d19c0318e43e033ab8 | 473.90 | 6 | 5,841.446453 -| terp1lysxq2sjqqd0cv8vlnsljh9gvmn3zkpcu5zgm9 | 0xf920602a12001afc30ecfce1f95ca866e7115838 | 451.70 | 6 | 5,841.446453 -| terp1levq6d5g48x067w6rvt05d9rtkpnd74km5epxu | 0xfe580d3688a9ccfd79da1b16fa34a35d8336fab6 | 389.80 | 6 | 5,841.446453 -| terp1p44ezd7yvzek5n8jk3nmha52w3qn0pdqxhzx6t | 0x0d6b9137c460b36a4cf2b467bbf68a74413785a0 | 381.41 | 6 | 5,841.446453 -| terp1fu6w4rmpt40cqyrwerglwaj8h9fqdjhdtktmge | 0x4f34ea8f615d5f80106ec8d1f77647b95206caed | 376.55 | 6 | 5,841.446453 -| terp1g80yg8hhsdghfwd5fz34fge7x0tkaka653dq8n | 0x41de441ef7835174b9b448a354a33e33d76edbba | 341.71 | 6 | 5,841.446453 -| terp1f4dqgvelm6mdnp2df3mxed9cp9u5tv75m3t0pm | 0x4d5a04333fdeb6d9854d4c766cb4b8097945b3d4 | 341.00 | 6 | 5,841.446453 -| terp13q9ps90zgluc9f0v6m6nxhf9kh8stwm5x5h6ze | 0x880a1815e247f982a5ecd6f5335d25b5cf05bb74 | 335.90 | 6 | 5,841.446453 -| terp1jw2tkcru8l0wlqh0enx984jmrz5h3zwwf9a3f7 | 0x9394bb607c3fdeef82efcccc53d65b18a97889ce | 335.56 | 6 | 5,841.446453 -| terp1ma3y95crtrvx7tsurknz82tkhk6zn7muj7c90k | 0xdf6242d30358d86f2e1c1da623a976bdb429fb7c | 283.39 | 6 | 5,841.446453 -| terp1sud4pwr6h84zufxegka4ghj7mtjyd3c9wp2fuq | 0x871b50b87ab9ea2e24d945bb545e5edae446c705 | 278.53 | 6 | 5,841.446453 -| terp1q3j5d0c3enxa7q0cwup6v93ct53kwgkwm9pxn8 | 0x046546bf11cccddf01f87703a616385d236722ce | 274.45 | 6 | 5,841.446453 -| terp18z6xl5rrlyesfl4gt6hp7r0jvngwwed43vl7y3 | 0x38b46fd063f93304fea85eae1f0df264d0e765b5 | 261.54 | 6 | 5,841.446453 -| terp1ncpavsxpnzv9uh7gvn26tpekythsgcprukmp97 | 0x9e03d640c198985e5fc864d5a5873622ef046023 | 250.93 | 6 | 5,841.446453 -| terp1hgrs4gs3v5eks6xxx3g79ptnafcvw35g8skwt8 | 0xba070aa21165336868c63451e28573ea70c74688 | 246.24 | 6 | 5,841.446453 -| terp1st56t5rmq0c4l0rf26g2hals2emz3grltx6rz3 | 0x82e9a5d07b03f15fbc695690abf7f0567628a07f | 242.50 | 6 | 5,841.446453 -| terp1fn68lgqnklkaputgvu35f7t0u00sv3hxg89rcy | 0x4cf47fa013b7edd0f168672344f96fe3df0646e6 | 168.15 | 6 | 5,841.446453 -| terp1qqqqqqzspch7ecn6wcqyxhgvfrtyurqqz26std | 0x00000000500e2fece27a7600435d0c48d64e0c00 | 145.82 | 6 | 5,841.446453 -| terp1kqrzn8kusulsmn2m24ud9w3dlggyrv5fa25c0p | 0xb006299edc873f0dcd5b5578d2ba2dfa1041b289 | 133.41 | 6 | 5,841.446453 \ No newline at end of file diff --git a/eth/addresses/crypto_canna_club.md b/eth/addresses/crypto_canna_club.md deleted file mode 100644 index 79db185..0000000 --- a/eth/addresses/crypto_canna_club.md +++ /dev/null @@ -1,4408 +0,0 @@ -# Crypto Canna Club Address Conversion -| Terp Public Address | Ethereum Public Address | Tokens Held | Points | Airdrop Allocation | -|----------------------|--------------------------|---------------|-------------|--------------------| -| terp1mgdfg8ez2erfgy03s9c8jjluwuq8s9cmd5epe0 | 0xda1a941f2256469411f18170794bfc770078171b | 300 | 6 | 5389.358009 | -| terp19g6sl2e2zdh48ann3my2hpgkl8rnug6ggd6je9 | 0x2a350fab2a136f53f6738ec8ab8516f9c73e2348 | 205 | 6 | 5389.358009 | -| terp1c6tmuz6msg5y8ydg0zezdche4lrtj3csg8sq9s | 0xc697be0b5b82284391a878b226e2f9afc6b94710 | 121 | 6 | 5389.358009 | -| terp1c9trhh6hhkuepjyswz489nd90l5ddyfafrx4an | 0xc1563bdf57bdb990c89070aa72cda57fe8d6913d | 99 | 6 | 5389.358009 | -| terp1e9etk4a3msn34unlecmgdultnd4pak9hr22ue8 | 0xc972bb57b1dc271af27fce3686f3eb9b6a1ed8b7 | 61 | 6 | 5389.358009 | -| terp1jrrgtsce20ptye6lwgl8lf6wljpl4r72kdqvn6 | 0x90c685c31953c2b2675f723e7fa74efc83fa8fca | 61 | 6 | 5389.358009 | -| terp1hru7x0lq5j3pums0wrvg66gyl6qn0fl744cgth | 0xb8f9e33fe0a4a21e6e0f70d88d6904fe8137a7fe | 60 | 6 | 5389.358009 | -| terp1u6wk5j4jdgp5cnnlzquwnhlypw6zxjrtxhz0kx | 0xe69d6a4ab26a034c4e7f1038e9dfe40bb423486b | 58 | 6 | 5389.358009 | -| terp1hhd8p64na5jffd7uyxv4r24d03dhkphpl9ey8s | 0xbdda70eab3ed2494b7dc219951aaad7c5b7b06e1 | 48 | 6 | 5389.358009 | -| terp1r0ym9wz632dtjmyrt5g5xf5a7e3vs7s8x7s240 | 0x1bc9b2b85a8a9ab96c835d1143269df662c87a07 | 46 | 6 | 5389.358009 | -| terp15xhc53aeqacs2aed8mj0qxfd4gejxptng2nu7c | 0xa1af8a47b9077105772d3ee4f0192daa33230573 | 45 | 6 | 5389.358009 | -| terp1p62mlf6s0rrr5zg3wug9f9xp09vzhm0kwu684y | 0x0e95bfa75078c63a091177105494c179582bedf6 | 43 | 6 | 5389.358009 | -| terp1np3qfny5g2p4fzz7yd7c0hq0lxpkmlyfym8nuf | 0x986204cc94428354885e237d87dc0ff9836dfc89 | 35 | 6 | 5389.358009 | -| terp1rmmmesuhvptd8upr3dhcv5eg04xjagjwaqey6u | 0x1ef7bcc3976056d3f0238b6f8653287d4d2ea24e | 35 | 6 | 5389.358009 | -| terp1m8gpyzg3h28xzlglwyfl7kz8s92nt3yegy6r3z | 0xd9d0120911ba8e617d1f7113ff5847815535c499 | 34 | 6 | 5389.358009 | -| terp1selnc7avxgqjy5h7dpswfav2ms90n43cfzcuvv | 0x867f3c7bac32012252fe6860e4f58adc0af9d638 | 31 | 6 | 5389.358009 | -| terp177a9tye6zk44cw2x5v4dlna9e3ljtxhwmp0gnz | 0xf7ba55933a15ab5c3946a32adfcfa5cc7f259aee | 31 | 6 | 5389.358009 | -| terp1cezkwl8ywhntk8g55sksheza5f9kxmyeagpg5s | 0xc645677ce475e6bb1d14a42d0be45da24b636c99 | 28 | 6 | 5389.358009 | -| terp1zjekn6pu7meej26lq2uluxsenzpq7twzzt0pns | 0x14b369e83cf6f3992b5f02b9fe1a1998820f2dc2 | 27 | 6 | 5389.358009 | -| terp1j7gkufmr9mzlrax9fxa8haxgs5p5fget2fcqlw | 0x97916e27632ec5f1f4c549ba7bf4c8850344a32b | 25 | 6 | 5389.358009 | -| terp1j360pr9shq5x8gztmnfxyw8zwja24ep2shh9q7 | 0x9474f08cb0b82863a04bdcd26238e274baaae42a | 25 | 6 | 5389.358009 | -| terp1y6rlme4636skgp66heltan4v89076rdl8lldss | 0x2687fde6ba8ea164075abe7ebeceac395fed0dbf | 25 | 6 | 5389.358009 | -| terp120wtz9pl0uk6dj0pst2dgtkytv8l54extdupak | 0x53dcb1143f7f2da6c9e182d4d42ec45b0ffa5726 | 23 | 6 | 5389.358009 | -| terp16qys25w7yzqxhsfcnhczed76v3y0cy6795lr89 | 0xd0090551de20806bc1389df02cb7da6448fc135e | 23 | 6 | 5389.358009 | -| terp1pfskjwf9lqyjqsxruhle2rd2truw7f37q59fxy | 0x0a61693925f8092040c3e5ff950daa58f8ef263e | 23 | 6 | 5389.358009 | -| terp12w56jwps4cfh8qekneusuwcd5ry84vyel7f9nw | 0x53a9a93830ae137383369e790e3b0da0c87ab099 | 23 | 6 | 5389.358009 | -| terp1j5nj4nzsqrukjg24pzc6r5uype367p5qrgvh85 | 0x95272acc5000f969215508b1a1d3840e63af0680 | 23 | 6 | 5389.358009 | -| terp1z40jd6atsfe5axf3zzzdp0jcsnqmntj7mrdmk2 | 0x155f26ebab82734e99311084d0be5884c1b9ae5e | 22 | 6 | 5389.358009 | -| terp1davrc3uwv8cglhsqj77uhzh84z9zsf2mqc0ufu | 0x6f583c478e61f08fde0097bdcb8ae7a88a28255b | 21 | 6 | 5389.358009 | -| terp1jc3k4kmypmrzp2zcnqmcxawwmupu5g0lqjtclv | 0x96236adb640ec620a85898378375cedf03ca21ff | 21 | 6 | 5389.358009 | -| terp1ar03twq4qchh5fgkhdw5z78tnjxe4e2j4e9xy9 | 0xe8df15b815062f7a2516bb5d4178eb9c8d9ae552 | 21 | 6 | 5389.358009 | -| terp10tjqpawjz7ad7jcn99t3n0g32rqs6qyq35ceeg | 0x7ae400f5d217badf4b13295719bd1150c10d0080 | 21 | 6 | 5389.358009 | -| terp14aee9fkh9r0csrlffc7cu3frtgklm602cl4auc | 0xaf7392a6d728df880fe94e3d8e45235a2dfde9ea | 20 | 6 | 5389.358009 | -| terp1n4xpc5vyg2keav3uk7dy0yk4pz6feqd0x67w0j | 0x9d4c1c518442ad9eb23cb79a4792d508b49c81af | 20 | 6 | 5389.358009 | -| terp1svsj4gcck8t3uy5jz9kj2y83c0an3jvcfcqx3w | 0x83212aa318b1d71e1292116d2510f1c3fb38c998 | 20 | 6 | 5389.358009 | -| terp13jxvrqc6wtd4acjg9tva0cdufghpt20tg3k4vg | 0x8c8cc1831a72db5ee2482ad9d7e1bc4a2e15a9eb | 20 | 6 | 5389.358009 | -| terp1ae79c8fh95ue26qpsdjr8tanql7g6nppu0wevy | 0xee7c5c1d372d39956801836433afb307fc8d4c21 | 20 | 6 | 5389.358009 | -| terp1j8ssmllj90ykf0zk8qtk7rzwg2yc5drs07y8f5 | 0x91e10dfff22bc964bc5638176f0c4e42898a3470 | 20 | 6 | 5389.358009 | -| terp15gtlzvwqmskdq6uk6ruj3lr3vzjt749gzd7dq0 | 0xa217f131c0dc2cd06b96d0f928fc7160a4bf54a8 | 19 | 6 | 5389.358009 | -| terp1gskuemnggfvz3sgx5dnzq9957yc780vmu6q3md | 0x442dccee68425828c106a3662014b4f131e3bd9b | 19 | 6 | 5389.358009 | -| terp10aptpvd2q7pezmacpqpjnq49atn567xmt4aksm | 0x7f42b0b1aa0783916fb808032982a5eae74d78db | 19 | 6 | 5389.358009 | -| terp1qa45ymk4cq50xlz3x6rz2h9n0zuw5ly2mnjea2 | 0x076b426ed5c028f37c513686255cb378b8ea7c8a | 19 | 6 | 5389.358009 | -| terp19wp265qrxd3lllpu7qqhg09mhwpumsg6h8sna9 | 0x2b82ad50033363fffc3cf001743cbbbb83cdc11a | 18 | 6 | 5389.358009 | -| terp1zqg9jhuk4d3txxl743q3a30c7cxmthprmvs09u | 0x1010595f96ab62b31bfeac411ec5f8f60db5dc23 | 18 | 6 | 5389.358009 | -| terp1mre4auy96gp05l9dpcxxrknn0dswr7z435z39f | 0xd8f35ef085d202fa7cad0e0c61da737b60e1f855 | 18 | 6 | 5389.358009 | -| terp1nuu8gqdjc4n0vgggrxylwafm0j7arlnhxxaj6r | 0x9f387401b2c566f621081989f7753b7cbdd1fe77 | 18 | 6 | 5389.358009 | -| terp12yk67wnt350vgvrv7l7zyz5n3m5u7zndwsdsqg | 0x512daf3a6b8d1ec4306cf7fc220a938ee9cf0a6d | 17 | 6 | 5389.358009 | -| terp18wzynya7enmexhry8hp4m3998zmeqdczes9hd7 | 0x3b844993beccf7935c643dc35dc4a538b7903702 | 17 | 6 | 5389.358009 | -| terp1872a0lwwg06s22s0n0faxak75mfzcftqt002at | 0x3f95d7fdce43f5052a0f9bd3d376dea6d22c2560 | 17 | 6 | 5389.358009 | -| terp1vpzszsplf08yfchr0nu7gttqtug6zew9xf44qx | 0x604501403f4bce44e2e37cf9e42d605f11a165c5 | 17 | 6 | 5389.358009 | -| terp1nlr8djs5um23wc4h9xd2902rmspqwlysxuc7rp | 0x9fc676ca14e6d51762b7299aa2bd43dc02077c90 | 17 | 6 | 5389.358009 | -| terp1tg4kap86m25ty088st9kyfhc05d6qfqkjmnqul | 0x5a2b6e84fadaa8b23ce782cb6226f87d1ba02416 | 16 | 6 | 5389.358009 | -| terp1fw0q2e43jukj7f6ujfhwarve28gzk9envsv4kz | 0x4b9e0566b1972d2f275c926eee8d9951d02b1733 | 16 | 6 | 5389.358009 | -| terp1xysmuvn270ts6cwmhmegnyr8sc4tzfacjttgg8 | 0x3121be326af3d70d61dbbef2899067862ab127b8 | 16 | 6 | 5389.358009 | -| terp1hqvzvghruck26l48prr6fl4hv7rau4aspqzgp4 | 0xb8182622e3e62cad7ea708c7a4feb76787de57b0 | 15 | 6 | 5389.358009 | -| terp1f8cerquu35n3dfdv7u8rjya2pmpuqy4racttul | 0x49f191839c8d2716a5acf70e3913aa0ec3c012a3 | 15 | 6 | 5389.358009 | -| terp1u0jmtykjsdgyxyhqw7zd82z3z54smfknrd7pt7 | 0xe3e5b592d283504312e07784d3a851152b0da6d3 | 15 | 6 | 5389.358009 | -| terp1zydm92kfmxkjc3xk0hpzqryzr8k2v2feuuuk2x | 0x111bb2aac9d9ad2c44d67dc2200c8219eca62939 | 15 | 6 | 5389.358009 | -| terp16ggdc8wjvag4q09lrwxfz4pzgurcyrdgpt9qrp | 0xd210dc1dd26751503cbf1b8c9154224707820da8 | 15 | 6 | 5389.358009 | -| terp1ky6n9e74l38nng2ev6h0cv2ttpp79cpkacvghd | 0xb13532e7d5fc4f39a15966aefc314b5843e2e036 | 15 | 6 | 5389.358009 | -| terp17rwnpg90adpe6xj48anx3v8l39v6lhpd25lu32 | 0xf0dd30a0afeb439d1a553f6668b0ff8959afdc2d | 15 | 6 | 5389.358009 | -| terp1fjvn5h6qgvvr3w3nskzph98ax5v60k7aftmj9u | 0x4c993a5f40431838ba3385841b94fd3519a7dbdd | 14 | 6 | 5389.358009 | -| terp1uyrhtt05fj2mzzdfjywjf2wwduwpk4txtwvrnq | 0xe10775adf44c95b109a9911d24a9ce6f1c1b5566 | 14 | 6 | 5389.358009 | -| terp1s9xkqjvm6sq7efpxephwndqk09nal7xaq5s7ag | 0x814d60499bd401eca426c86ee9b4167967dff8dd | 14 | 6 | 5389.358009 | -| terp17leywksgv6hy4za3cea5ugnhh5e3nggpst55sj | 0xf7f2475a0866ae4a8bb1c67b4e2277bd3319a101 | 14 | 6 | 5389.358009 | -| terp18zuhh8al0rzzxxtw5rx6fyxdyjt0j24cm8ustq | 0x38b97b9fbf78c423196ea0cda490cd2496f92ab8 | 14 | 6 | 5389.358009 | -| terp10evv0ckgp75s02ksc9fspq90yjd3shcsd8pyff | 0x7e58c7e2c80fa907aad0c1530080af249b185f10 | 14 | 6 | 5389.358009 | -| terp10hz8ym0qfte3aygdl7hy3a8mpxnm3yls42ut0q | 0x7dc4726de04af31e910dffae48f4fb09a7b893f0 | 14 | 6 | 5389.358009 | -| terp1sht3jae2y4t0uauqyvs9g9q3t5ga29sv20zp3k | 0x85d719772a2556fe778023205414115d11d5160c | 13 | 6 | 5389.358009 | -| terp1zr7y8v7k95hg0wsvtzlrn5gwhgwmuuut683xa5 | 0x10fc43b3d62d2e87ba0c58be39d10eba1dbe738b | 13 | 6 | 5389.358009 | -| terp1tpuwrhqejjxvtvsy65zrslncm6vytp5zqnzlxz | 0x5878e1dc19948cc5b204d504387e78de98458682 | 13 | 6 | 5389.358009 | -| terp1yptuhu3n92exj7jjhrdus46k2dw4wl3j047gjm | 0x2057cbf2332ab2697a52b8dbc85756535d577e32 | 13 | 6 | 5389.358009 | -| terp1yzjszn5l0frzn9xqeafyplssclgnykhndnn0h3 | 0x20a5014e9f7a462994c0cf5240fe10c7d1325af3 | 13 | 6 | 5389.358009 | -| terp1je4sjt2h9eg7zmr96y6vhknmye7kg0gzceehv9 | 0x966b092d572e51e16c65d134cbda7b267d643d02 | 13 | 6 | 5389.358009 | -| terp1cxvrjfk2k2q9jlzpqm9dq3c2kys78tmlt02qxp | 0xc1983926cab280597c4106cad0470ab121e3af7f | 13 | 6 | 5389.358009 | -| terp1sg23fz8lv489q42jpcvghtqgu64s4uls6lzm73 | 0x82151488ff654e5055520e188bac08e6ab0af3f0 | 13 | 6 | 5389.358009 | -| terp1k0h6kvaht64ektnlr36hjkhjkpxulk66urt9m4 | 0xb3efab33b75eab9b2e7f1c75795af2b04dcfdb5a | 13 | 6 | 5389.358009 | -| terp16q7vfmwmy2vf7r8ag0yx57cevrx757z049ky6u | 0xd03cc4eddb22989f0cfd43c86a7b1960cdea784f | 13 | 6 | 5389.358009 | -| terp1fly7jz2rxzaxf0d5lq54uvuqne3mt9q24vlnuj | 0x4fc9e9094330ba64bdb4f8295e33809e63b5940a | 13 | 6 | 5389.358009 | -| terp1vrpz3npm20wr2ygpuutcmqvgdx7qkw28af7fgv | 0x60c228cc3b53dc351101e7178d818869bc0b3947 | 13 | 6 | 5389.358009 | -| terp1dcmy50fc0l886234cxv7mka9z6q0c7aq8qdn44 | 0x6e364a3d387fce7d2a35c199eddba51680fc7ba0 | 13 | 6 | 5389.358009 | -| terp1s9nnpvnk9cgdtqwykg92752l8ast4tmy3t70x6 | 0x816730b2762e10d581c4b20aaf515f3f60baaf64 | 12 | 6 | 5389.358009 | -| terp1ycc04735qavwq8atu63qd55jvq00xv7ukv5n63 | 0x2630fafa340758e01fabe6a206d292601ef333dc | 12 | 6 | 5389.358009 | -| terp1n99jkvjnpj2u6j76crkquz6pkxrnsku5ef3v4k | 0x994b2b32530c95cd4bdac0ec0e0b41b187385b94 | 12 | 6 | 5389.358009 | -| terp13qfa7yw0thwye7erfmtm779je756v089y26qns | 0x8813df11cf5ddc4cfb234ed7bf78b2cfa9a63ce5 | 12 | 6 | 5389.358009 | -| terp1mjhcfctmkpsf5xf4q9uqrze8s5d95ftrtge00s | 0xdcaf84e17bb0609a19350178018b27851a5a2563 | 12 | 6 | 5389.358009 | -| terp17caaah5d6y7jkk2zce2v5ezmvy2yr02v9wzgrh | 0xf63bdede8dd13d2b5942c654ca645b611441bd4c | 12 | 6 | 5389.358009 | -| terp1kaykuhvhlqvjgftp22k3a53d36gety6rm6uykp | 0xb7496e5d97f81924256152ad1ed22d8e91959343 | 12 | 6 | 5389.358009 | -| terp1zj4h4e869qstaz7rypz0u5nek4kvhnp53p5p77 | 0x14ab7ae4fa2820be8bc32044fe5279b56ccbcc34 | 12 | 6 | 5389.358009 | -| terp1gnw60sy3tsjj858d09ths5fjua4nfqly8cj3j0 | 0x44dda7c0915c2523d0ed7957785132e76b3483e4 | 12 | 6 | 5389.358009 | -| terp1vpnkuggdxytuapyusk93awjzek4gmz2f3pkxk2 | 0x60676e210d3117ce849c858b1eba42cdaa8d8949 | 12 | 6 | 5389.358009 | -| terp1lr7rr84qq8qe8arjwk4lr3nzdycv4q86j65msm | 0xf8fc319ea001c193f47275abf1c6626930ca80fa | 12 | 6 | 5389.358009 | -| terp1th44sucsynh3sc3eurjdrwp3pg3q7nmqarcma5 | 0x5deb58731024ef186239e0e4d1b8310a220f4f60 | 11 | 6 | 5389.358009 | -| terp1zwyquj3xhfn92s76np0wqnkltac924azhw9ahy | 0x13880e4a26ba665543da985ee04edf5f705557a2 | 11 | 6 | 5389.358009 | -| terp1j8hwefx8xpdk0udvlljrutgpj04xq24l7tzm65 | 0x91eeeca4c7305b67f1acffe43e2d0193ea602abf | 11 | 6 | 5389.358009 | -| terp1ssflvh5n6v04yurvxqduephqwfla0sp99jg6yv | 0x8413f65e93d31f52706c301bcc86e0727fd7c025 | 11 | 6 | 5389.358009 | -| terp1prg4nu65f8xxva3g433rxnzud99n3eqdpfhce3 | 0x08d159f35449cc667628ac62334c5c694b38e40d | 11 | 6 | 5389.358009 | -| terp12tnssvrct7ez6m4fwkj02m6k8m7xzld055y9rv | 0x52e70830785fb22d6ea975a4f56f563efc617daf | 11 | 6 | 5389.358009 | -| terp17zlvmnyfdfsupexaxawfys7myvy434lnmklkp4 | 0xf0becdcc896a61c0e4dd375c9243db230958d7f3 | 11 | 6 | 5389.358009 | -| terp1vp6sygtvlcalapq8ae00vt56fnl0ednvy0kmzu | 0x607502216cfe3bfe8407ee5ef62e9a4cfefcb66c | 11 | 6 | 5389.358009 | -| terp1x4f7hh5g20uf55he64qacju7uan2cwsnffxfz2 | 0x3553ebde8853f89a52f9d541dc4b9ee766ac3a13 | 11 | 6 | 5389.358009 | -| terp1fm9lf6ez0478rc9k24fh8e4ds8zvh5yph0lr6a | 0x4ecbf4eb227d7c71e0b6555373e6ad81c4cbd081 | 11 | 6 | 5389.358009 | -| terp1qxeuwgpvdqp8r4lypy0sdvcnvmtgdqx8s2wpsv | 0x01b3c7202c680271d7e4091f06b31366d68680c7 | 11 | 6 | 5389.358009 | -| terp1h7vff8stml5205m27hwce5kr6nr9nwnzn32td5 | 0xbf98949e0bdfe8a7d36af5dd8cd2c3d4c659ba62 | 11 | 6 | 5389.358009 | -| terp1tjkfpua4vdpxw2rh3c58uepcj5juuaxa6rz67x | 0x5cac90f3b563426728778e287e64389525ce74dd | 11 | 6 | 5389.358009 | -| terp1f72svx554hn88d057z5hq9k4u46jsgvvy0c3tx | 0x4f95061a94ade673b5f4f0a97016d5e57528218c | 11 | 6 | 5389.358009 | -| terp1un3sce99p4xg76xmu6plqzea9epfaa6qd936tj | 0xe4e30c64a50d4c8f68dbe683f00b3d2e429ef740 | 11 | 6 | 5389.358009 | -| terp1s8wsvc2w6lqmjgs7j2d58sx0n6rprt4seymcul | 0x81dd06614ed7c1b9221e929b43c0cf9e8611aeb0 | 11 | 6 | 5389.358009 | -| terp1t387jcy4pwswpxnjs6wr6507wrc8tq8q74xuqw | 0x5c4fe960950ba0e09a72869c3d51fe70f07580e0 | 11 | 6 | 5389.358009 | -| terp1ghajzdkgm73mpqpztu87sukpejfu59w5lzen7x | 0x45fb2136c8dfa3b080225f0fe872c1cc93ca15d4 | 11 | 6 | 5389.358009 | -| terp1vrqta0xr05w3fp4uxujc237hhndj0554k5lw54 | 0x60c0bebcc37d1d1486bc37258547d7bcdb27d295 | 11 | 6 | 5389.358009 | -| terp1xlhzra7r0l8xjm5l52rgx9vqha4aatqe8pm2vj | 0x37ee21f7c37fce696e9fa286831580bf6bdeac19 | 11 | 6 | 5389.358009 | -| terp15zp5hr8gr8xfsn8k7hm3qx37hjww8lsu4ug4zx | 0xa0834b8ce819cc984cf6f5f7101a3ebc9ce3fe1c | 11 | 6 | 5389.358009 | -| terp1yfnck9r6g6lws6me4jaauq9h7tnvqtd8qd57d2 | 0x22678b147a46bee86b79acbbde00b7f2e6c02da7 | 10 | 6 | 5389.358009 | -| terp1fw5rcn5ajeg5wul6njn89hjv8rya6p7e9uqqpa | 0x4ba83c4e9d96514773fa9ca672de4c38c9dd07d9 | 10 | 6 | 5389.358009 | -| terp1a4vywcun9rka8rnuay6ygtl5a688znmud55a55 | 0xed5847639328edd38e7ce934442ff4ee8e714f7c | 10 | 6 | 5389.358009 | -| terp1c0r2pa9hnlsv8dces83mrxrtwld2svfwzs3pt5 | 0xc3c6a0f4b79fe0c3b71981e3b1986b77daa8312e | 10 | 6 | 5389.358009 | -| terp1rhk6t760ck2kaftqc0ehn06jl2dks6edkzf5t3 | 0x1deda5fb4fc5956ea560c3f379bf52fa9b686b2d | 10 | 6 | 5389.358009 | -| terp1ypnm44y5xeacvr20tuwz5wrzzy9wf467zgzwam | 0x2067bad494367b860d4f5f1c2a3862110ae4d75e | 10 | 6 | 5389.358009 | -| terp1q4hun7r6ufa6qkpg3f8gye80l3cg9ws6xdjgev | 0x056fc9f87ae27ba058288a4e8264effc7082ba1a | 10 | 6 | 5389.358009 | -| terp1l9zqw2ehvl0zpdx6grykzfwntk8jansmncaxrh | 0xf944072b3767de20b4da40c96125d35d8f2ece1b | 10 | 6 | 5389.358009 | -| terp18ku9xdf4952z2qlv27k90mgm4fdcvcsgwvs9xg | 0x3db85335352d142503ec57ac57ed1baa5b866208 | 10 | 6 | 5389.358009 | -| terp1a9wxf6ygpp5tgfpdvwtxfrv7tsjdpmpxtx9vel | 0xe95c64e8880868b4242d6396648d9e5c24d0ec26 | 10 | 6 | 5389.358009 | -| terp1zjhyt4x6xp3vmpd6nx5k03w38wwgee2n5ygmv8 | 0x14ae45d4da3062cd85ba99a967c5d13b9c8ce553 | 10 | 6 | 5389.358009 | -| terp1w2umsepmqzpypakl5rrggc2dhdsytrfcz27t4w | 0x72b9b8643b008240f6dfa0c684614dbb60458d38 | 10 | 6 | 5389.358009 | -| terp1ztcksce5xpsmm7lc22f2g99pt8we9khmzdgx9f | 0x12f16863343061bdfbf85292a414a159dd92dafb | 10 | 6 | 5389.358009 | -| terp1f08cfvgux6l7sx6qll2v43tzlauu5xs6zgeuxe | 0x4bcf84b11c36bfe81b40ffd4cac562ff79ca1a1a | 10 | 6 | 5389.358009 | -| terp1gjxh0xyd2v2yn6yd3k7gz8kh9qte7u440uq2zx | 0x448d77988d531449e88d8dbc811ed728179f72b5 | 10 | 6 | 5389.358009 | -| terp1tvf0rny9m229tqqw5ertu6fs8wfnggcfwm39tw | 0x5b12f1cc85da9455800ea646be69303b93342309 | 10 | 6 | 5389.358009 | -| terp1ve2vs3w07q05v5hml2sjxex926f5v44v2jqra2 | 0x6654c845cff01f4652fbfaa12364c556934656ac | 10 | 6 | 5389.358009 | -| terp17vdgrz6ws2a5c5y43ftnc5cy62j72ul0rrsg8r | 0xf31a818b4e82bb4c50958a573c5304d2a5e573ef | 9 | 6 | 5389.358009 | -| terp1tst2z7vhjxktswgeu4u8q7lhx67l4lhuenwve8 | 0x5c16a1799791acb83919e578707bf736bdfafefc | 9 | 6 | 5389.358009 | -| terp1nfwl3g3lkc0uds070qrjjzlapeth4f8v4y445g | 0x9a5df8a23fb61fc6c1fe7807290bfd0e577aa4ec | 9 | 6 | 5389.358009 | -| terp1jyyl90j395gdxlll7qsfugp5k5whvu0wfnzeu7 | 0x9109f2be512d10d37ffff0209e2034b51d7671ee | 9 | 6 | 5389.358009 | -| terp1lnjjfs423jszf8zrll8q4er8zlqw3pel0nd8gs | 0xfce524c2aa8ca0249c43ffce0ae46717c0e8873f | 9 | 6 | 5389.358009 | -| terp15fzmdyjulvyt7e7z2t9m08z47jeh2dk2zvk84q | 0xa245b6925cfb08bf67c252cbb79c55f4b37536ca | 9 | 6 | 5389.358009 | -| terp1hjk3w0uqfepyttv99lrqqam24n32fwdr5qvmgt | 0xbcad173f804e4245ad852fc600776aace2a4b9a3 | 9 | 6 | 5389.358009 | -| terp18wk4s522nr7dhfavpvqs5p25u0tjfup3cj0t90 | 0x3bad58514a98fcdba7ac0b010a0554e3d724f031 | 9 | 6 | 5389.358009 | -| terp1l7dprnk2nuledenpe32fjc5cf4mskc2u0vzc67 | 0xff9a11ceca9f3f96e661cc549962984d770b615c | 9 | 6 | 5389.358009 | -| terp1ss9lvts925qwqmkrpuxu9fcs4tkq47ux6vsgg4 | 0x840bf62e055500e06ec30f0dc2a710aaec0afb86 | 9 | 6 | 5389.358009 | -| terp1vgy39kw39xnayysntyw62tzzuvatpcjsrmdgt8 | 0x620912d9d129a7d21213591da52c42e33ab0e250 | 9 | 6 | 5389.358009 | -| terp1rqpa9yqpgx6c6y68spkng5t34qfpea8duzyhdh | 0x1803d2900141b58d1347806d345171a8121cf4ed | 8 | 6 | 5389.358009 | -| terp1nge6cxl9sv7d42pa3rsjrjkra0z6002ltzvfy5 | 0x9a33ac1be5833cdaa83d88e121cac3ebc5a7bd5f | 8 | 6 | 5389.358009 | -| terp1vh7urp36xn23h4qtur59sf25aep8d82ta7s5zw | 0x65fdc1863a34d51bd40be0e8582554ee42769d4b | 8 | 6 | 5389.358009 | -| terp17fvql8299s0t7yfu5hrfkhzmekfxa6f90txckr | 0xf2580f9d452c1ebf113ca5c69b5c5bcd926ee925 | 8 | 6 | 5389.358009 | -| terp1x6cesqtv5fl0s2m9m7uxgu65wvjwsgq0tg2at0 | 0x36b198016ca27ef82b65dfb86473547324e8200f | 8 | 6 | 5389.358009 | -| terp1f6lyshqa7ps0dlrw8sajqr4uy8lpr22dwnf527 | 0x4ebe485c1df060f6fc6e3c3b200ebc21fe11a94d | 8 | 6 | 5389.358009 | -| terp1uxfswkarjasqcpea7tspgmljaglrrslxcxefr4 | 0xe193075ba397600c073df2e0146ff2ea3e31c3e6 | 8 | 6 | 5389.358009 | -| terp19hgx84lg89z4xlg0dzfp8mv3an3sm94jwpyrue | 0x2dd063d7e83945537d0f689213ed91ece30d96b2 | 8 | 6 | 5389.358009 | -| terp17ejznxyfxasjt6rj6mvp422y2u28n94t6z4lx3 | 0xf664299889376125e872d6d81aa94457147996ab | 8 | 6 | 5389.358009 | -| terp1g2nq6te0lgs4p3tgqy9g6sjlp2kjsn7j5as8ca | 0x42a60d2f2ffa2150c568010a8d425f0aad284fd2 | 8 | 6 | 5389.358009 | -| terp1dcwe43y0qewaq2vhuhdr7r3dlktg0juluwsgmr | 0x6e1d9ac48f065dd02997e5da3f0e2dfd9687cb9f | 8 | 6 | 5389.358009 | -| terp1j5wdu73hc2zss93y5n8mfe2svjup4fkwtfmmg5 | 0x951cde7a37c285081624a4cfb4e55064b81aa6ce | 8 | 6 | 5389.358009 | -| terp14ucnv0n582mfae7j5f7pcwrycehcnqa85q78lt | 0xaf31363e743ab69ee7d2a27c1c3864c66f8983a7 | 8 | 6 | 5389.358009 | -| terp1kccc3kvfy8czq2ep3w54mrtlne3ny7u3jmgnh5 | 0xb63188d98921f0202b218ba95d8d7f9e63327b91 | 8 | 6 | 5389.358009 | -| terp1p4rqas630hh9jf7uaqe205kly264nfvlu2vmhs | 0x0d460ec3517dee5927dce832a7d2df22b559a59f | 8 | 6 | 5389.358009 | -| terp1uvvzurh4qavfk9pxq6khsaywhuuynv3gnsa4ul | 0xe3182e0ef507589b142606ad78748ebf3849b228 | 8 | 6 | 5389.358009 | -| terp1urvn3d5ey9sztrhwzc7j5lynrl5ujw2x2kjht6 | 0xe0d938b6992160258eee163d2a7c931fe9c93946 | 8 | 6 | 5389.358009 | -| terp18m3apn802z7f56ky8emrrqxqepc06fu8xa050q | 0x3ee3d0ccef50bc9a6ac43e763180c0c870fd2787 | 8 | 6 | 5389.358009 | -| terp1qpjn6qa3g7nxxwgd6hzmrf2ae8xqh5hau6t8u9 | 0x00653d03b147a663390dd5c5b1a55dc9cc0bd2fd | 8 | 6 | 5389.358009 | -| terp1kjfa77nz488hpfjh9c07jxm3aztw9j90fs53lg | 0xb493df7a62a9cf70a6572e1fe91b71e896e2c8af | 8 | 6 | 5389.358009 | -| terp104f7xu02e3tuaqkcud7h5z6eahnpku97d6r0jv | 0x7d53e371eacc57ce82d8e37d7a0b59ede61b70be | 8 | 6 | 5389.358009 | -| terp1vh2sljqjj9xh36jgc2vau6c3dqqxggpxhuzduu | 0x65d50fc812914d78ea48c299de6b116800642026 | 8 | 6 | 5389.358009 | -| terp1xvr93mfwahuv44w7s0x509c4vmn4eq9r796g95 | 0x330658ed2eedf8cad5de83cd47971566e75c80a3 | 8 | 6 | 5389.358009 | -| terp1tm7mdkx8nrpv9049kxtpnq49j38e9fwpx8ae0u | 0x5efdb6d8c798c2c2bea5b1961982a5944f92a5c1 | 8 | 6 | 5389.358009 | -| terp1zvnaz8fahn4wltv4jzat9z5pr44uquacdc5vh0 | 0x1327d11d3dbceaefad9590bab28a811d6bc073b8 | 8 | 6 | 5389.358009 | -| terp1ktk0pgx5xc0zg0wv2grtwx409hlshqzak3gfvl | 0xb2ecf0a0d4361e243dcc5206b71aaf2dff0b805d | 7 | 6 | 5389.358009 | -| terp18x7rh7gja9nza0x23jlzp0cu9geqfz2ku42mx7 | 0x39bc3bf912e9662ebcca8cbe20bf1c2a32048956 | 7 | 6 | 5389.358009 | -| terp1wg88hc6sdxjxt9kedhqwtr95qe67hn7lvz4az2 | 0x720e7be35069a46596d96dc0e58cb40675ebcfdf | 7 | 6 | 5389.358009 | -| terp108mt8c5gyta6s8228pte74xfmvseem2c6vkxkt | 0x79f6b3e28822fba81d4a38579f54c9db219ced58 | 7 | 6 | 5389.358009 | -| terp1mcrszm2zl4tfw7jcmds9dl6rkn3pw60h66rt7x | 0xde07016d42fd56977a58db6056ff43b4e21769f7 | 7 | 6 | 5389.358009 | -| terp1qmgx5j2uc63ews7sseyl62r20rrn4daj45kr6z | 0x06d06a495cc6a39743d08649fd286a78c73ab7b2 | 7 | 6 | 5389.358009 | -| terp1cdfnuj422xqeadfe5egcjs6kenwy0vn084ujyq | 0xc3533e4aaa51819eb539a651894356ccdc47b26f | 7 | 6 | 5389.358009 | -| terp17ffrs0hftr43sv698f4zh8vtunxfyw6y02vs0l | 0xf252383ee958eb1833453a6a2b9d8be4cc923b44 | 7 | 6 | 5389.358009 | -| terp172568avm2vnmunl2eq8xv6898wkrhdlewpznw3 | 0xf2a9a3f59b5327be4feac80e6668e53bac3bb7f9 | 7 | 6 | 5389.358009 | -| terp12ldjfnhvjspynhqe6nealvvxlygtn894g5hh3j | 0x57db24ceec940249dc19d4f3dfb186f910b99cb5 | 7 | 6 | 5389.358009 | -| terp1zqa598purrfwglamlrsfkcv77vj48ysevhqdva | 0x103b429c3c18d2e47fbbf8e09b619ef325539219 | 7 | 6 | 5389.358009 | -| terp14hjynywex89x9e94dav6028fzcqx0ay27lv8my | 0xade44991d931ca62e4b56f59a7a8e9160067f48a | 7 | 6 | 5389.358009 | -| terp1z6q230g0awqd60va0ejahul9y8fcaavcvx80dj | 0x1680a8bd0feb80dd3d9d7e65dbf3e521d38ef598 | 7 | 6 | 5389.358009 | -| terp1e325qh8dqdem8rzn67nf8xfm9kff8sgd8qs5qv | 0xcc55405ced0373b38c53d7a693993b2d9293c10d | 7 | 6 | 5389.358009 | -| terp1sgv5w5rql4vpkumlq2jljywse6urwh0c7kk0m8 | 0x8219475060fd581b737f02a5f911d0ceb8375df8 | 7 | 6 | 5389.358009 | -| terp1kmp2zw9pl3w7t7el22utqtr0ewuyv8865rzss9 | 0xb6c2a138a1fc5de5fb3f52b8b02c6fcbb8461cfa | 7 | 6 | 5389.358009 | -| terp1f8ha9a53wdsr9rmu0x68a8zmr8j0sp6800a6th | 0x49efd2f6917360328f7c79b47e9c5b19e4f80747 | 7 | 6 | 5389.358009 | -| terp1dz0quk6pyl975ktcuexq2wqg2sgcgnud333s9h | 0x689e0e5b4127cbea5978e64c0538085411844f8d | 7 | 6 | 5389.358009 | -| terp1cczygwzr5zglr092j8fhg8k6m32fpqeddc2aat | 0xc604443843a091f1bcaa91d3741edadc5490832d | 7 | 6 | 5389.358009 | -| terp1a5tvqjjjjk75p2fqe90cz6p25zvyet0hzwsatp | 0xed16c04a5295bd40a920c95f81682aa0984cadf7 | 7 | 6 | 5389.358009 | -| terp1wpe40ukenazrygj3jh2nqj33zgsq6t8u0sfjux | 0x707357f2d99f4432225195d5304a3112200d2cfc | 7 | 6 | 5389.358009 | -| terp14uj90jarwh7wzcxmv63c5pna32rrtra6rkfdzs | 0xaf2457cba375fce160db66a38a067d8a86358fba | 7 | 6 | 5389.358009 | -| terp1f724xj6rwxj8s8kwnqds84emtp9fjkc9rp2jlz | 0x4f95534b4371a4781ece981b03d73b584a995b05 | 7 | 6 | 5389.358009 | -| terp1q9husv0eexyyhstmny6pm2dqk6wm5866uthvdm | 0x016fc831f9c9884bc17b99341da9a0b69dba1f5a | 7 | 6 | 5389.358009 | -| terp1v80lc83v85jejtavzfydj8upujuhuq7mdsjfgw | 0x61dffc1e2c3d25992fac1248d91f81e4b97e03db | 7 | 6 | 5389.358009 | -| terp1t69sj5h47k563df3rlne9dm5nds42e6mg7nanj | 0x5e8b0952f5f5a9a8b5311fe792b7749b6155675b | 7 | 6 | 5389.358009 | -| terp1uykzk4s6f0hqxcpe8cft9grkap7xylva85uuhy | 0xe12c2b561a4bee0360393e12b2a076e87c627d9d | 7 | 6 | 5389.358009 | -| terp158g393s4gjah9jp6se4qs927rvvgxypg835jcu | 0xa1d112c61544bb72c83a866a08155e1b18831028 | 6 | 6 | 5389.358009 | -| terp1r788ur9wecw7t2js2yeh42kh6npyv6wy69s2ae | 0x1f8e7e0caece1de5aa5051337aaad7d4c24669c4 | 6 | 6 | 5389.358009 | -| terp1nrhlthhw9c9fyp2z8uhhjmkg35wenvke96nnjn | 0x98eff5deee2e0a9205423f2f796ec88d1d99b2d9 | 6 | 6 | 5389.358009 | -| terp1qw4t6f028j287aj2z472g7lj025y0d4qga3vj7 | 0x03aabd25ea3c947f764a157ca47bf27aa847b6a0 | 6 | 6 | 5389.358009 | -| terp14w2gdzl807453wqgs6m69ld6nsmvpqrdwrunk2 | 0xab94868be77fab48b80886b7a2fdba9c36c0806d | 6 | 6 | 5389.358009 | -| terp1m626vf5kpr7fx3y39sm08qpfzvyjuqkjswn8pw | 0xde95a6269608fc9344912c36f3802913092e02d2 | 6 | 6 | 5389.358009 | -| terp10ggwu6cvsfch3al2ttjgh9m5kts39x3khvv4yu | 0x7a10ee6b0c827178f7ea5ae48b9774b2e1129a36 | 6 | 6 | 5389.358009 | -| terp1s64cgm4trkuw6m6ppj78c4yhmc9hk3fk776mcw | 0x86ab846eab1db8ed6f410cbc7c5497de0b7b4536 | 6 | 6 | 5389.358009 | -| terp15slq7flqcqlkwjlh5uk2lsl23s69cwfhg26tyk | 0xa43e0f27e0c03f674bf7a72cafc3ea8c345c3937 | 6 | 6 | 5389.358009 | -| terp1qchcjvh5de8kt83mgvwlxj9xv93r9u4742lhq6 | 0x062f8932f46e4f659e3b431df348a6616232f2be | 6 | 6 | 5389.358009 | -| terp14ehnf8l6n3f3u6y6evanl408gx4algt24y7a9y | 0xae6f349ffa9c531e689acb3b3fd5e741abdfa16a | 6 | 6 | 5389.358009 | -| terp1uqzh5s9r78ul92rp3w4fhh90skteuef804pr9a | 0xe0057a40a3f1f9f2a8618baa9bdcaf85979e6527 | 6 | 6 | 5389.358009 | -| terp18d5allzdr37kcqp0zn79uahq8rrnc0sqwdqu52 | 0x3b69dffc4d1c7d6c002f14fc5e76e038c73c3e00 | 6 | 6 | 5389.358009 | -| terp1rrnvyclv6s9dx8vs0xeqwv8sffva6uasfcpyk9 | 0x18e6c263ecd40ad31d9079b20730f04a59dd73b0 | 6 | 6 | 5389.358009 | -| terp1g58t03pr48xtjxfe7dqffrjgm6dm2kr9fh3uc0 | 0x450eb7c423a9ccb91939f340948e48de9bb55865 | 6 | 6 | 5389.358009 | -| terp1cszd68x3w2h02vxm0xfv9cfs8ul56v7y47r7j9 | 0xc404dd1cd172aef530db7992c2e1303f3f4d33c4 | 6 | 6 | 5389.358009 | -| terp1mgp4nhmz9wkt8mymjj07a2h8gg9qsnyt47uw5u | 0xda0359df622bacb3ec9b949feeaae7420a084c8b | 6 | 6 | 5389.358009 | -| terp1dz4thu3vep6030rpdtwdm3pq8vz2l5fszcwvkx | 0x68aabbf22cc874f8bc616adcddc4203b04afd130 | 6 | 6 | 5389.358009 | -| terp17awwcu2xn33mv8ke3t79wtndqcu4e4z2twrmju | 0xf75cec71469c63b61ed98afc572e6d06395cd44a | 6 | 6 | 5389.358009 | -| terp12jx6u30erftenst4rqwpkxar0f36zarl3zxg8f | 0x548dae45f91a5799c175181c1b1ba37a63a1747f | 6 | 6 | 5389.358009 | -| terp1lnxn93kknmlqx9zpc9uj94kvcchaffrrwwg4h3 | 0xfccd32c6d69efe031441c17922d6ccc62fd4a463 | 6 | 6 | 5389.358009 | -| terp1knhwjea5v8e86lqzdlyjx0rx0xrnk3ephrwgrv | 0xb4eee967b461f27d7c026fc9233c6679873b4721 | 6 | 6 | 5389.358009 | -| terp10fu0zjn0v9vyv26lll3nunyrhc3fycssd9qr5e | 0x7a78f14a6f6158462b5fffe33e4c83be22926210 | 6 | 6 | 5389.358009 | -| terp1p7usk98yhuazu5vzhxeuh5p735emtwrrw96204 | 0x0fb90b14e4bf3a2e5182b9b3cbd03e8d33b5b863 | 6 | 6 | 5389.358009 | -| terp1dnx9vm2kv3djsea65gkmp6kvw5e9frj222peky | 0x6ccc566d56645b2867baa22db0eacc7532548e4a | 6 | 6 | 5389.358009 | -| terp15k5g5gvfd7tr7k0jc0swugj82ewanujh9t3yc3 | 0xa5a88a21896f963f59f2c3e0ee2247565dd9f257 | 6 | 6 | 5389.358009 | -| terp1w4wenwc2t3tz057jrkhqplcmdf0me69kg6zhy4 | 0x755d99bb0a5c5627d3d21dae00ff1b6a5fbce8b6 | 6 | 6 | 5389.358009 | -| terp1wukfqlv2a9aeyhp8xt0sm4u3qprlqgypt0te97 | 0x772c907d8ae97b925c2732df0dd7910047f02081 | 6 | 6 | 5389.358009 | -| terp1ka223w07lv2xccmyhhlrnlqjc3ksrv7rylvmy3 | 0xb754a8b9fefb146c6364bdfe39fc12c46d01b3c3 | 6 | 6 | 5389.358009 | -| terp12248hs8s3p0x7vak3em96sr8kxfrapg9hesagj | 0x52aa7bc0f0885e6f33b68e765d4067b1923e8505 | 6 | 6 | 5389.358009 | -| terp17ds7tnfmhdu4j750chrtfpl4w5ex7tglgcdmfq | 0xf361e5cd3bbb79597a8fc5c6b487f575326f2d1f | 6 | 6 | 5389.358009 | -| terp1ww9n0u52crs0gjn6eh66zq6vgjxpfnq7enkd95 | 0x738b37f28ac0e0f44a7acdf5a1034c448c14cc1e | 6 | 6 | 5389.358009 | -| terp1a75cur6yefwsxn5wn8ltqtgywnshql2xc0x9zr | 0xefa98e0f44ca5d034e8e99feb02d0474e1707d46 | 6 | 6 | 5389.358009 | -| terp1l5697sj7cwupfxcvv3uy7sfzgw5c8zs53t2klg | 0xfd345f425ec3b8149b0c64784f412243a9838a14 | 6 | 6 | 5389.358009 | -| terp1zl0gtygk829fke6ja7uaqh9h9y8gs7nvet3x7z | 0x17de8591163a8a9b6752efb9d05cb7290e887a6c | 6 | 6 | 5389.358009 | -| terp15pa7l4vtsdz4gneqsk2m9yk07hgvrkzpw4c9sk | 0xa07befd58b8345544f208595b292cff5d0c1d841 | 6 | 6 | 5389.358009 | -| terp1wmmkj72dx8vr29xm8nycwp27elhnaa4xwhlvnz | 0x76f769794d31d83514db3cc987055ecfef3ef6a6 | 6 | 6 | 5389.358009 | -| terp1yftz9rf4qrl553yg22gy69nvl3py2g5mc2jeuh | 0x2256228d3500ff4a448852904d166cfc4245229b | 6 | 6 | 5389.358009 | -| terp1hddljk36kkf80lyduny2jqnnhll9ggqegx28kd | 0xbb5bf95a3ab59277fc8de4c8a90273bffe542019 | 6 | 6 | 5389.358009 | -| terp1rxhrqed6ktga4nmqc95pgg4d5du05kpr3udxmx | 0x19ae3065bab2d1dacf60c1681422ada378fa5823 | 6 | 6 | 5389.358009 | -| terp1fpaaz36827nv7vklv3ndc7af53kqrwkqu0juhf | 0x487bd1474757a6cf32df6466dc7ba9a46c01bac0 | 6 | 6 | 5389.358009 | -| terp1k3np2arln2l77qmelljf3ensy5hxa6vrhxy4tm | 0xb46615747f9abfef0379ffe498e670252e6ee983 | 6 | 6 | 5389.358009 | -| terp15gnjg6wgynftx3q8czxpkdmlxqn5qml2x0np4f | 0xa2272469c824d2b34407c08c1b377f3027406fea | 6 | 6 | 5389.358009 | -| terp1dpn8lxehzap0cftn2un6ygxsgnmg2vn2lzgr78 | 0x68667f9b371742fc25735727a220d044f685326a | 6 | 6 | 5389.358009 | -| terp1dlvqkxxh8nf0t7tjk0pg99zkestdd42rfmr5y7 | 0x6fd80b18d73cd2f5f972b3c2829456cc16d6d543 | 6 | 6 | 5389.358009 | -| terp1pttenz3c5shtd8gkdwscle2l6yccath0ynhlng | 0x0ad7998a38a42eb69d166ba18fe55fd1318eaeef | 6 | 6 | 5389.358009 | -| terp1yxwdpfk3vxutdlt684anvz0mpk50ghf6y6j898 | 0x219cd0a6d161b8b6fd7a3d7b3609fb0da8f45d3a | 6 | 6 | 5389.358009 | -| terp1hmwgdjjwxq503f0eygltlpdqgykg2mprup6w05 | 0xbedc86ca4e3028f8a5f9223ebf85a0412c856c23 | 6 | 6 | 5389.358009 | -| terp128y3tjam84wv365g4l8rdyn9crm4n4dg47ws8l | 0x51c915cbbb3d5cc8ea88afce369265c0f759d5a8 | 6 | 6 | 5389.358009 | -| terp1qxqcaay98ulrjn8tduresp3u05c37e2wagxv3w | 0x01818ef4853f3e394ceb6f0798063c7d311f654e | 6 | 6 | 5389.358009 | -| terp1ps2u7rkhuxglzdn3dwt542saxd3qar7jkv3rz8 | 0x0c15cf0ed7e191f136716b974aaa1d33620e8fd2 | 6 | 6 | 5389.358009 | -| terp1d6z7wk9w6r32g5nq03a6rz26q0y9qp6sl5m4d6 | 0x6e85e758aed0e2a452607c7ba1895a03c8500750 | 5 | 4 | 3592.905339 | -| terp14xpjrw892n2zdklvqkv84uzyrtsws7gsm83wp9 | 0xa98321b8e554d426dbec05987af0441ae0e87910 | 5 | 4 | 3592.905339 | -| terp1fheqsy0kx5v4xtgvdhrgmm6npafvfcrwuyp6y4 | 0x4df20811f63519532d0c6dc68def530f52c4e06e | 5 | 4 | 3592.905339 | -| terp14wv5fzmsl5zq3wspzsrqueqsk4k0k9z67vwxd8 | 0xab99448b70fd0408ba0114060e6410b56cfb145a | 5 | 4 | 3592.905339 | -| terp1gnr8pdqftt48jx49jp6xlxtq6l52nxuqu9v5mx | 0x44c670b4095aea791aa590746f9960d7e8a99b80 | 5 | 4 | 3592.905339 | -| terp1lhptyfxvrlt96mxuehvfv5g20ky6lqwrjf43qz | 0xfdc2b224cc1fd65d6cdccdd896510a7d89af81c3 | 5 | 4 | 3592.905339 | -| terp1ygwzl8l9nakkm4tfew8uj364ufr6lscfxy3kze | 0x221c2f9fe59f6d6dd569cb8fc94755e247afc309 | 5 | 4 | 3592.905339 | -| terp1kxheyffpv6l2ze8zku82er088rg83md5rq5pwh | 0xb1af92252166bea164e2b70eac8de738d078edb4 | 5 | 4 | 3592.905339 | -| terp1p4dz956s7pu6wt4mf4z7emyp2z4mvzajf0e0mj | 0x0d5a22d350f079a72ebb4d45ecec8150abb60bb2 | 5 | 4 | 3592.905339 | -| terp10g9qx6sacsh572xurqe9w3z82cjrx8uyk958sq | 0x7a0a036a1dc42f4f28dc18325744475624331f84 | 5 | 4 | 3592.905339 | -| terp1yqm4p49e09u7rm226zpahqc6ttfr9stfkvrds6 | 0x203750d4b97979e1ed4ad083db831a5ad232c169 | 5 | 4 | 3592.905339 | -| terp1pc0ktm2azk58yw49uu2xemda8pmfg2eeh9cp64 | 0x0e1f65ed5d15a8723aa5e7146cedbd3876942b39 | 5 | 4 | 3592.905339 | -| terp1fa7hfnwjqjncke7g6fjuc9ep326a3lltazs6ua | 0x4f7d74cdd204a78b67c8d265cc17218ab5d8ffeb | 5 | 4 | 3592.905339 | -| terp1cvhlv4r8ktzydu37c6txa9yjfxldkde3l53qys | 0xc32ff65467b2c446f23ec6966e949249bedb3731 | 5 | 4 | 3592.905339 | -| terp1sflgn0rd6hnvw4zsapu0x690q6dhlp45w64yhp | 0x827e89bc6dd5e6c75450e878f368af069b7f86b4 | 5 | 4 | 3592.905339 | -| terp1kax47z5pe6v6cxzhzvly3x7zkj25jd0l78y2rd | 0xb74d5f0a81ce99ac1857133e489bc2b4954935ff | 5 | 4 | 3592.905339 | -| terp1l75hsca9qm6kpukql9rmfyay267d0jv62hf9u3 | 0xffa97863a506f560f2c0f947b493a456bcd7c99a | 5 | 4 | 3592.905339 | -| terp158ee7x5spfzdmlrs97g8rqy2q7uyrumh034r9t | 0xa1f39f1a900a44ddfc702f9071808a07b841f377 | 5 | 4 | 3592.905339 | -| terp1yf792h07gqy764szlc26fvws39c59hqvxc74ap | 0x227c555dfe4009ed5602fe15a4b1d0897142dc0c | 5 | 4 | 3592.905339 | -| terp19aqxhlwcq0q8q8u6vf9cr86ywzedme6lt3j5uy | 0x2f406bfdd803c0701f9a624b819f4470b2dde75f | 5 | 4 | 3592.905339 | -| terp1fhs346cgh2dvfaug0720uhkmg8qgz3gmv7e3qa | 0x4de11aeb08ba9ac4f7887f94fe5edb41c081451b | 5 | 4 | 3592.905339 | -| terp10a6twx6u8gsqm8lnylgld78md9fe8mzu29j08s | 0x7f74b71b5c3a200d9ff327d1f6f8fb695393ec5c | 5 | 4 | 3592.905339 | -| terp1x595aevfsxpwdayp4rwtv20y9wljytgngz7xdr | 0x350b4ee5898182e6f481a8dcb629e42bbf222d13 | 5 | 4 | 3592.905339 | -| terp18da5runm38c8y6dqtx03t7a8y0ep7fzzs2svpq | 0x3b7b41f27b89f07269a0599f15fba723f21f2442 | 5 | 4 | 3592.905339 | -| terp1xkfm6766gdmy25mcc7cnxsr5tdcte6ggyh99le | 0x3593bd7b5a4376455378c7b13340745b70bce908 | 5 | 4 | 3592.905339 | -| terp1ufu486zeyq6eswredrcy740azv9zxnr8m7k5dg | 0xe27953e859203598387968f04f55fd130a234c67 | 5 | 4 | 3592.905339 | -| terp1d6dmdrhp5ekp3lm79lymrk6kwynmyfzwhtr5zm | 0x6e9bb68ee1a66c18ff7e2fc9b1db567127b2244e | 5 | 4 | 3592.905339 | -| terp1k2ws7wmlam4rzpjt3u45hjzn2adyzzd7eh49fp | 0xb29d0f3b7feeea31064b8f2b4bc853575a4109be | 5 | 4 | 3592.905339 | -| terp1v7nxmet6d0f0v9993hsyhpem7ssa8xwnp5mne6 | 0x67a66de57a6bd2f614a58de04b873bf421d399d3 | 5 | 4 | 3592.905339 | -| terp136mt03us05xnuxta63jx0l09tk9wn6y9ahv745 | 0x8eb6b7c7907d0d3e197dd46467fde55d8ae9e885 | 5 | 4 | 3592.905339 | -| terp1k4seeg9a63vwh77zhz6tsglz84t306n8hfj7rm | 0xb5619ca0bdd458ebfbc2b8b4b823e23d5717ea67 | 5 | 4 | 3592.905339 | -| terp1acwtq6kx0alpr87l0f0hsel4fh8ksgz04gge2d | 0xee1cb06ac67f7e119fdf7a5f7867f54dcf68204f | 5 | 4 | 3592.905339 | -| terp1rz6dm2erfqmhptctzp0zz9zalk4qg744f2msf8 | 0x18b4ddab23483770af0b105e21145dfdaa047ab5 | 5 | 4 | 3592.905339 | -| terp1tcs8cc8ljwawrhfhvgn39keg9f9q2mch8hylrz | 0x5e207c60ff93bae1dd37622712db282a4a056f17 | 5 | 4 | 3592.905339 | -| terp1496ux48apqdwp398p6hwsh2zaqh555hknqj4p5 | 0xa975c354fd081ae0c4a70eaee85d42e82f4a52f6 | 5 | 4 | 3592.905339 | -| terp1cya628fx6xeqyta9rcjjgwa5nf2vf22n0ewlku | 0xc13ba51d26d1b2022fa51e25243bb49a54c4a953 | 5 | 4 | 3592.905339 | -| terp1x2p002xnjm7n0yn6vwyhl2w2nqtca3yq7d4n9v | 0x3282f7a8d396fd37927a63897fa9ca98178ec480 | 5 | 4 | 3592.905339 | -| terp1vfpyu9q7uqfgl50d9lfxlpw92mcm6qwqpjgqht | 0x62424e141ee0128fd1ed2fd26f85c556f1bd01c0 | 5 | 4 | 3592.905339 | -| terp18ne0ldesrz0gpr9frk5eqayslwkr66n4wd0wgr | 0x3cf2ffb730189e808ca91da9907490fbac3d6a75 | 5 | 4 | 3592.905339 | -| terp14f3ph9s0y2g3gcj4psrcmancfy7z9v4whre2jp | 0xaa621b960f22911462550c078df678493c22b2ae | 5 | 4 | 3592.905339 | -| terp10l8y2wxv04wh37f76nrufxjx3a737xqvwtuema | 0x7fce4538cc7d5d78f93ed4c7c49a468f7d1f180c | 5 | 4 | 3592.905339 | -| terp18fynfmfqvclz5xevsr3sx3697u3la56zya8q79 | 0x3a4934ed20663e2a1b2c80e3034745f723fed342 | 5 | 4 | 3592.905339 | -| terp12sctgypfj9ktxxczhpwu0p26m7mrk8vkkmcdf9 | 0x5430b41029916cb31b02b85dc7855adfb63b1d96 | 5 | 4 | 3592.905339 | -| terp1j8pf6vqfp3m7en0fwl49xrtrs4zesuwe0grxvr | 0x91c29d30090c77eccde977ea530d6385459871d9 | 5 | 4 | 3592.905339 | -| terp1txtg2qfag25p69c4vluvwwx535e4r526x49wxl | 0x599685013d42a81d171567f8c738d48d3351d15a | 5 | 4 | 3592.905339 | -| terp16t33awwvpc6hk5g0vlqzrwn3vsfv2jqxswdza9 | 0xd2e31eb9cc0e357b510f67c021ba716412c54806 | 5 | 4 | 3592.905339 | -| terp1cg7nppdxcyewk7lvqzj8rg46zpjc6lku2n6g20 | 0xc23d3085a6c132eb7bec00a471a2ba10658d7edc | 5 | 4 | 3592.905339 | -| terp1hpyx7fcme434fa6jq9auq62yqynmkk2jpudckj | 0xb8486f271bcd6354f752017bc069440127bb5952 | 5 | 4 | 3592.905339 | -| terp1c7t6xeevpnzve2trajeg9gpg2gvgz8v6n5tfcv | 0xc797a3672c0cc4cca963ecb282a0285218811d9a | 5 | 4 | 3592.905339 | -| terp1h0yyhwk2aftlrdmgjpdq3cnysdf9ag5xc3qmeq | 0xbbc84bbacaea57f1b768905a08e26483525ea286 | 5 | 4 | 3592.905339 | -| terp1rxwlhs55ws9jzpm54cuy2d9ay9k7zjwmz6rk62 | 0x199dfbc294740b210774ae384534bd216de149db | 5 | 4 | 3592.905339 | -| terp1z6e4vahpd4xhzt0gyxz6mxq5qs5ltnhpz0azyv | 0x16b35676e16d4d712de82185ad98140429f5cee1 | 5 | 4 | 3592.905339 | -| terp1hen7gvy7vkah8dd23hfmmp6gu9qh25l3lxnlmw | 0xbe67e4309e65bb73b5aa8dd3bd8748e1417553f1 | 5 | 4 | 3592.905339 | -| terp1cax3wtefgnrcgg64mdgcmk8rxevkusx7269vp2 | 0xc74d172f2944c7842355db518dd8e336596e40de | 5 | 4 | 3592.905339 | -| terp1nwngz0tf7dm90re7v595t6u9zqcm3kf3r695q4 | 0x9ba6813d69f376578f3e650b45eb851031b8d931 | 5 | 4 | 3592.905339 | -| terp1am4ng0yvuygfcmg8c4ym7mzmseqp0g29040m0x | 0xeeeb343c8ce1109c6d07c549bf6c5b864017a145 | 5 | 4 | 3592.905339 | -| terp14w0gqvklnpqpdwd9mdp0sma64pdv395hyxqyhr | 0xab9e8032df984016b9a5db42f86fbaa85ac89697 | 5 | 4 | 3592.905339 | -| terp1ffktwftpvge8r2zyjqv37fpfawmprh23pjp3d5 | 0x4a6cb72561623271a84490191f2429ebb611dd51 | 5 | 4 | 3592.905339 | -| terp13uug6pvjew2m9w6fn0z8k3h3jt947syxkk6tjx | 0x8f388d0592cb95b2bb499bc47b46f192cb5f4086 | 5 | 4 | 3592.905339 | -| terp1n2slfga22hfjm8f2059h8z69dyuucyxtdmkngz | 0x9aa1f4a3aa55d32d9d2a7d0b738b456939cc10cb | 5 | 4 | 3592.905339 | -| terp1dlsn37hvj3yvjgvmvl9np8jzeq7fehehr7ua00 | 0x6fe138faec9448c9219b67cb309e42c83c9cdf37 | 5 | 4 | 3592.905339 | -| terp1ah5as4qyajeqkg5xckvm6puxdk7xugvdnn37u2 | 0xede9d85404ecb20b2286c599bd07866dbc6e218d | 5 | 4 | 3592.905339 | -| terp1hh7yaa6uwkatzf97jc60l0un55pl26kczwfjwz | 0xbdfc4ef75c75bab124be9634ffbf93a503f56ad8 | 5 | 4 | 3592.905339 | -| terp1h29t8fhr4gtyszr7w9xxuv5xwtnuvg58jcl26l | 0xba8ab3a6e3aa1648087e714c6e328672e7c62287 | 5 | 4 | 3592.905339 | -| terp1esm442gqqg62a85g5p9m852qdp7y420ducnpkx | 0xcc375aa9000234ae9e88a04bb3d140687c4aa9ed | 5 | 4 | 3592.905339 | -| terp1mta8uecw9ygflcw6guqllpggc0lnqqs5lhq6xr | 0xdafa7e670e29109fe1da4701ff8508c3ff300214 | 5 | 4 | 3592.905339 | -| terp1qqqqqqq8lwercgcfjtmq3gsfkafv33tr0ypxtr | 0x0000000007fbb23c230992f608a209b752c8c563 | 5 | 4 | 3592.905339 | -| terp1rad8u707f2umr6syz0hgk38g5ah007d83ehtlv | 0x1f5a7e79fe4ab9b1ea0413ee8b44e8a76ef7f9a7 | 5 | 4 | 3592.905339 | -| terp1efgvcdat4fvdr836y0xtpph307pcfjeutzaj8r | 0xca50cc37abaa58d19e3a23ccb086f17f8384cb3c | 5 | 4 | 3592.905339 | -| terp1y0humm2v3ng2uwp8jllcj04kr27r6tvqp6lmwg | 0x23efcded4c8cd0ae382797ff893eb61abc3d2d80 | 5 | 4 | 3592.905339 | -| terp122m9aldu3sudfnys0rjv4wdhqmm2kd4jhqg635 | 0x52b65efdbc8c38d4cc9078e4cab9b706f6ab36b2 | 5 | 4 | 3592.905339 | -| terp10uk22gveffgqml0p0u8u46lpfycwztteq5ce0y | 0x7f2ca521994a500dfde17f0fcaebe14930e12d79 | 5 | 4 | 3592.905339 | -| terp1jczc0xjv6tzrq7p90q8pfxr2q3syle5dy7qwp5 | 0x9605879a4cd2c4307825780e14986a04604fe68d | 5 | 4 | 3592.905339 | -| terp19vgvp79wan7766ytcq44q6adlfe68e2k2242f8 | 0x2b10c0f8aeecfded688bc02b506badfa73a3e556 | 5 | 4 | 3592.905339 | -| terp1h7z09x2whwef8h6d5w6z4cu06zvsgcvwsd5gpk | 0xbf84f2994ebbb293df4da3b42ae38fd09904618e | 5 | 4 | 3592.905339 | -| terp1zdhcutjdu0cclt2648hkzear40t53kxx5pzyle | 0x136f8e2e4de3f18fad5aa9ef6167a3abd748d8c6 | 5 | 4 | 3592.905339 | -| terp1kn8hlu4xx6fxydts4cu2s67s7dgsy8fa3m8q8n | 0xb4cf7ff2a63692623570ae38a86bd0f351021d3d | 5 | 4 | 3592.905339 | -| terp18678yecqda3tljeyg6hazxmujadtuep43nuv4f | 0x3ebc7267006f62bfcb2446afd11b7c975abe6435 | 5 | 4 | 3592.905339 | -| terp1q0ae0dntunc5nkuwejjp0ctky6rh8g6693xhmt | 0x03fb97b66be4f149db8ecca417e176268773a35a | 5 | 4 | 3592.905339 | -| terp1lu5c2yjckm4haxgz7xx8nsqwc4fwsd3nqalwp4 | 0xff29851258b6eb7e9902f18c79c00ec552e83633 | 5 | 4 | 3592.905339 | -| terp1fdusmvsyd2uweemc22hx7ckl9jdwv4v622lrpd | 0x4b790db2046ab8ece77852ae6f62df2c9ae6559a | 5 | 4 | 3592.905339 | -| terp1nza4flat2gv5qkvyektspu9jlavv0aht7qmxsu | 0x98bb54ffab5219405984cd9700f0b2ff58c7f6eb | 5 | 4 | 3592.905339 | -| terp1dkkvj23nth7vtrt9un525ddrgnmnc54ew3ya9p | 0x6dacc92a335dfcc58d65e4e8aa35a344f73c52b9 | 5 | 4 | 3592.905339 | -| terp1qfks9qcmeezy6p3n2j3gzgnun7smndfwme93tw | 0x026d02831bce444d063354a281227c9fa1b9b52e | 5 | 4 | 3592.905339 | -| terp1whrjcq03afnpy60d3cqa77wzy246nwj3mgmafe | 0x75c72c01f1ea661269ed8e01df79c222aba9ba51 | 5 | 4 | 3592.905339 | -| terp1d5t2kh79eutqkp9c4kgt7325l3e2t5v2ch4uyf | 0x6d16ab5fc5cf160b04b8ad90bf4554fc72a5d18a | 5 | 4 | 3592.905339 | -| terp1hsaf35ntcqfn2mlqratn3pnm9nff9g28ph0yyt | 0xbc3a98d26bc013356fe01f5738867b2cd292a147 | 5 | 4 | 3592.905339 | -| terp1uqymhzhvucgawardkgxyqpnre2jxdpg92qxlwh | 0xe009bb8aece611d7746db20c400663caa4668505 | 5 | 4 | 3592.905339 | -| terp1529humjvj9kqjgupp5sy07p2vwunzfynuuct9l | 0xa28b7e6e4c916c0923810d2047f82a63b9312493 | 5 | 4 | 3592.905339 | -| terp1yrs5g9hmpte3kyaucnlep9crqgr534e37ctkm6 | 0x20e14416fb0af31b13bcc4ff909703020748d731 | 5 | 4 | 3592.905339 | -| terp19t45rgvz4sc7du6g2yr54985j6vcgeekxrhalc | 0x2aeb41a182ac31e6f34851074a94f49699846736 | 5 | 4 | 3592.905339 | -| terp1eemm6u9x098h70szc7cjsdrw7v0uudkpu4z7ur | 0xce77bd70a6794f7f3e02c7b128346ef31fce36c1 | 5 | 4 | 3592.905339 | -| terp15xgfhhzvkettu9ffge6hmeesk9z25w4xxf7x7f | 0xa1909bdc4cb656be152946757de730b144aa3aa6 | 5 | 4 | 3592.905339 | -| terp1rrdw7sz7h5wlcqj7950agrumrum7cqmdfn9anq | 0x18daef405ebd1dfc025e2d1fd40f9b1f37ec036d | 5 | 4 | 3592.905339 | -| terp1mqqmhzuvp0xq6muqxlus8763jk5fue0q2s3260 | 0xd801bb8b8c0bcc0d6f8037f903fb5195a89e65e0 | 5 | 4 | 3592.905339 | -| terp1gngrduktautr7frjmfdprvhaxfh8grx78elwu2 | 0x44d036f2cbef163f2472da5a11b2fd326e740cde | 5 | 4 | 3592.905339 | -| terp1ncflgqx37nmdevmdezm6hee262z3nup6cs2w3h | 0x9e13f400d1f4f6dcb36dc8b7abe72ad28519f03a | 5 | 4 | 3592.905339 | -| terp1wr2j334jetwvnqc5pxj8z66tlttetw6jfmgt4e | 0x70d528c6b2cadcc9831409a4716b4bfad795bb52 | 5 | 4 | 3592.905339 | -| terp1m5j46ac3twa4y7t2032hg3u7c4nd8c4va8gg0m | 0xdd255d77115bbb52796a7c5574479ec566d3e2ac | 5 | 4 | 3592.905339 | -| terp1y8n375mwp7ff7vx5s8lag42t6q0fk2d7px8fmg | 0x21e71f536e0f929f30d481ffd4554bd01e9b29be | 5 | 4 | 3592.905339 | -| terp1xyrwvejw8ltlz0qnxegnkj2mv6fk5u6sa6enye | 0x3106e6664e3fd7f13c1336513b495b66936a7350 | 5 | 4 | 3592.905339 | -| terp1ktds7wwxyq779zzvmusexqx424405gmgswcjt6 | 0xb2db0f39c6203de2884cdf219300d5556afa2368 | 5 | 4 | 3592.905339 | -| terp13g0zs2ppedgr985mpqvqae6td8ved57ylft7s4 | 0x8a1e282821cb50329e9b08180ee74b69d996d3c4 | 5 | 4 | 3592.905339 | -| terp1zlf7rkt5e80aut8ywn9nlhy4w425u6nmggjdy5 | 0x17d3e1d974c9dfde2ce474cb3fdc9575554e6a7b | 5 | 4 | 3592.905339 | -| terp1dhlg5m39rr7x9whhzpys7d5sde259k0l434909 | 0x6dfe8a6e2518fc62baf710490f36906e5542d9ff | 5 | 4 | 3592.905339 | -| terp15qwhun5ys3nuh5k2seq4pun6n55xepkgf73vj3 | 0xa01d7e4e848467cbd2ca864150f27a9d286c86c8 | 5 | 4 | 3592.905339 | -| terp15ffmv0d3znl25agmj63p50smu973w25yny6u6y | 0xa253b63db114feaa751b96a21a3e1be17d172a84 | 5 | 4 | 3592.905339 | -| terp1lcp00jdrpt7m8yn7rfa8glkj47qwzadh6ue5zp | 0xfe02f7c9a30afdb3927e1a7a747ed2af80e175b7 | 5 | 4 | 3592.905339 | -| terp1d4uamdqukfn8tkhxay6d7afga0s33uez87v6pv | 0x6d79ddb41cb26675dae6e934df7528ebe118f322 | 5 | 4 | 3592.905339 | -| terp1tvk5qkju0a82cthtn60g73mq48m6x0jt9tqscu | 0x5b2d405a5c7f4eac2eeb9e9e8f4760a9f7a33e4b | 5 | 4 | 3592.905339 | -| terp1p9n5cxxhxukc0348u97xqppruse5h50t5234cd | 0x09674c18d7372d87c6a7e17c600423e4334bd1eb | 5 | 4 | 3592.905339 | -| terp1f8qr7zc7kg0mvc0ak6g3ce5ykrtfgep2tranln | 0x49c03f0b1eb21fb661fdb6911c6684b0d694642a | 5 | 4 | 3592.905339 | -| terp1x7gg920xcgcemmwjmjss4xv7cxmdwcgkp4fswd | 0x379082a9e6c2319dedd2dca10a999ec1b6d76116 | 5 | 4 | 3592.905339 | -| terp140md3x6wz0t8rs39fmama8amulc8l54jfj9mxs | 0xabf6d89b4e13d671c2254efbbe9fbbe7f07fd2b2 | 5 | 4 | 3592.905339 | -| terp1qmu4ve8zw0nwzjus9yea0lg0j8udtkj6d84ljj | 0x06f95664e273e6e14b902933d7fd0f91f8d5da5a | 5 | 4 | 3592.905339 | -| terp1z5mjsaz63y097r0zzs4q850n8uwwvlrp4ctyyy | 0x153728745a891e5f0de2142a03d1f33f1ce67c61 | 5 | 4 | 3592.905339 | -| terp16tyffcawnre5yasal4906lfr5dcu49wxuucc4j | 0xd2c894e3ae98f342761dfd4afd7d23a371ca95c6 | 5 | 4 | 3592.905339 | -| terp1ts9jnwha8wsm5u26y2fuac45ztuf3snjnwncm3 | 0x5c0b29bafd3ba1ba715a2293cee2b412f898c272 | 5 | 4 | 3592.905339 | -| terp1xqzmxtqczlgyy4emcrkjlu27gujj7fytfzjv7h | 0x3005b32c1817d042573bc0ed2ff15e47252f248b | 5 | 4 | 3592.905339 | -| terp1ehq3dcj8lxcyvkr9wxu222c5q2xugvglwvlhfn | 0xcdc116e247f9b046586571b8a52b14028dc4311f | 5 | 4 | 3592.905339 | -| terp1cuyfnygdq0pjpyl5yyjjmwxa4mpqec9wvzgsq8 | 0xc70899910d03c32093f421252db8ddaec20ce0ae | 5 | 4 | 3592.905339 | -| terp1vxmmw7w7k0gzq4xhuy8gcnns69sfckcqajx3lp | 0x61b7b779deb3d02054d7e10e8c4e70d1609c5b00 | 5 | 4 | 3592.905339 | -| terp1n8p34n3yvm7utap9ygy68s9vq7wjvzm26ll9ru | 0x99c31ace2466fdc5f4252209a3c0ac079d260b6a | 5 | 4 | 3592.905339 | -| terp1ecw95hgkgz3xw62t7qccdgzpakyqlk3z5azpqm | 0xce1c5a5d1640a267694bf03186a041ed880fda22 | 5 | 4 | 3592.905339 | -| terp18jys0h70u9szut8a6r44z3dl9ft3agt0epyzgk | 0x3c8907dfcfe1602e2cfdd0eb5145bf2a571ea16f | 5 | 4 | 3592.905339 | -| terp1rv7rnzuqgk7yal6l7fp872fzk792yv3ee0xkwd | 0x1b3c398b8045bc4eff5ff2427f2922b78aa23239 | 4 | 4 | 3592.905339 | -| terp1wt4w99lc7hem7wt5ekc3fpvna58u72gdtrzfee | 0x72eae297f8f5f3bf3974cdb1148593ed0fcf290d | 4 | 4 | 3592.905339 | -| terp1v8tnew3fzgy9q7ywu7t7d3flza4xcj5m3psc6a | 0x61d73cba29120850788ee797e6c53f176a6c4a9b | 4 | 4 | 3592.905339 | -| terp1a7vyh6gncgnyt0whmsfc3v7jh8zhgsyjqxu4hv | 0xef984be913c22645bdd7dc1388b3d2b9c5744092 | 4 | 4 | 3592.905339 | -| terp1xev6w3xuj4xu7e3kagdhtjqn4dg2f0z9fjks02 | 0x3659a744dc954dcf6636ea1b75c813ab50a4bc45 | 4 | 4 | 3592.905339 | -| terp1t7cy858f7k3n0eu8tx4h2e8gacs43jpg78p0u5 | 0x5fb043d0e9f5a337e78759ab7564e8ee2158c828 | 4 | 4 | 3592.905339 | -| terp144wf25n5k7mxxvxqwpqhc7093946j8n4d0fyjf | 0xad5c955274b7b66330c070417c79e5896ba91e75 | 4 | 4 | 3592.905339 | -| terp1t65ks8p6hx6h8xqslzu34ej7c377vggekdavvw | 0x5ea9681c3ab9b5739810f8b91ae65ec47de62119 | 4 | 4 | 3592.905339 | -| terp1f89fv0hht08t4rj2taxw4d0axf477cfrqwv7lg | 0x49ca963ef75bceba8e4a5f4ceab5fd326bef6123 | 4 | 4 | 3592.905339 | -| terp15j5dg3jxut6vff6t3y3s8gfushacwcecp4x5m8 | 0xa4a8d44646e2f4c4a74b892303a13c85fb876338 | 4 | 4 | 3592.905339 | -| terp1j73c6m2s2z0pv2rm2tcytzg5at29xgxwu3yj6v | 0x97a38d6d50509e16287b52f0458914ead45320ce | 4 | 4 | 3592.905339 | -| terp1mntyy6kp0lrhs90lkq9yfc5tg8r9ze5e4auwgu | 0xdcd6426ac17fc77815ffb00a44e28b41c6516699 | 4 | 4 | 3592.905339 | -| terp1ng5lvunra0hmn3hpkz55e3q9jfypjyyf5t2nlg | 0x9a29f67263ebefb9c6e1b0a94cc4059248191089 | 4 | 4 | 3592.905339 | -| terp1a7dgpmzfppkrjw72j6af9fu0wumh6jqqlyl9gm | 0xef9a80ec49086c393bca96ba92a78f77377d4800 | 4 | 4 | 3592.905339 | -| terp1vtwnd82smy0ek5av7dtt66myxt2gw49apuf6zf | 0x62dd369d50d91f9b53acf356bd6b6432d48754bd | 4 | 4 | 3592.905339 | -| terp1xawg6v82yd37xay3tlp5ruzp95qptp7t48kfpz | 0x375c8d30ea2363e374915fc341f0412d001587cb | 4 | 4 | 3592.905339 | -| terp18wcdplp36hyvcssp2rl56akg4vgrx0ygxfep7n | 0x3bb0d0fc31d5c8cc420150ff4d76c8ab10333c88 | 4 | 4 | 3592.905339 | -| terp1jdgqyun6d6au4uq6qquakrntr7wpwhct3fnvtt | 0x935002727a6ebbcaf01a0039db0e6b1f9c175f0b | 4 | 4 | 3592.905339 | -| terp1fepmz7num4uffvft5aaqkuh4c9hc60s2setem0 | 0x4e43b17a7cdd7894b12ba77a0b72f5c16f8d3e0a | 4 | 4 | 3592.905339 | -| terp1xm7x8gvy5gvxdw2mv5jzlscj4ajpgq07unu35t | 0x36fc63a184a21866b95b65242fc312af641401fe | 4 | 4 | 3592.905339 | -| terp1n4jrc3axhk7d77eyznkc880cw3ncpcuhaskxyl | 0x9d643c47a6bdbcdf7b2414ed839df8746780e397 | 4 | 4 | 3592.905339 | -| terp1775deztpdpaxqvn2u26hdvfcy2qs7k5na7tz7j | 0xf7a8dc8961687a60326ae2b576b13822810f5a93 | 4 | 4 | 3592.905339 | -| terp13uywuh37gj7u9qf8upg0evflter8zsea6sy86c | 0x8f08ee5e3e44bdc28127e050fcb13f5e4671433d | 4 | 4 | 3592.905339 | -| terp1wlvmw8xj75hf5xtpsgtrcht405eaww3m0c57el | 0x77d9b71cd2f52e9a196182163c5d757d33d73a3b | 4 | 4 | 3592.905339 | -| terp1ay34dszaq07wsyrre240eg2f8mmxr9z9zajrwa | 0xe92356c05d03fce81063caaafca1493ef6619445 | 4 | 4 | 3592.905339 | -| terp18au79vjhm2kwdg6l8juh40dvqqa6t9g4559q0c | 0x3f79e2b257daace6a35f3cb97abdac003ba59515 | 4 | 4 | 3592.905339 | -| terp1lf529vmxtv008nndze4sdhq9qruw23ewy6xnqe | 0xfa68a2b3665b1ef3ce6d166b06dc0500f8e5472e | 4 | 4 | 3592.905339 | -| terp1edemgm2gymanq4qga4ajlwesh8ye0qe938f062 | 0xcb73b46d4826fb305408ed7b2fbb30b9c9978325 | 4 | 4 | 3592.905339 | -| terp1u8yr63y83zhsxpyuwgua57gqw5m03tla5ejfze | 0xe1c83d448788af03049c7239da79007536f8affd | 4 | 4 | 3592.905339 | -| terp1d299cj5y8uwarua8d8r4cugjhc49dzme2wa053 | 0x6a8a5c4a843f1dd1f3a769c75c7112be2a568b79 | 4 | 4 | 3592.905339 | -| terp1xvwylw36a6jdy9mzf3g0gv7uarmtl7wvyzueyl | 0x331c4fba3aeea4d217624c50f433dce8f6bff9cc | 4 | 4 | 3592.905339 | -| terp1g7yx756raw7qv7q9qwpuu8925syxrn8fsx565m | 0x47886f5343ebbc0678050383ce1caaa40861cce9 | 4 | 4 | 3592.905339 | -| terp14zj6zlv97m58w3juctp57z9x0mzacyhd6m5uje | 0xa8a5a17d85f6e877465cc2c34f08a67ec5dc12ed | 4 | 4 | 3592.905339 | -| terp18mda2csnx3cjp0vtrndzkt66zzde8pw5yqwfga | 0x3edbd56213347120bd8b1cda2b2f5a109b9385d4 | 4 | 4 | 3592.905339 | -| terp1nwmypgpcrs0cn8fs7v0e3v6qzakqn4t3pw0shp | 0x9bb640a0381c1f899d30f31f98b340176c09d571 | 4 | 4 | 3592.905339 | -| terp1sp35ddprmk68ylqlthr33zryxz48e6w0lmun27 | 0x806346b423ddb4727c1f5dc718886430aa7ce9cf | 4 | 4 | 3592.905339 | -| terp1xlscndz5uurpzpp2chz3z70704u4653c26l0t8 | 0x37e189b454e70611042ac5c51179fe7d795d5238 | 4 | 4 | 3592.905339 | -| terp12pr8dyqn9v96pt8nxea2wr4xk8jgfd3ttlyfpc | 0x50467690132b0ba0acf3367aa70ea6b1e484b62b | 4 | 4 | 3592.905339 | -| terp1un0sfzke3yukhjmljk37scrw37u0z6332qwhyj | 0xe4df048ad989396bcb7f95a3e8606e8fb8f16a31 | 4 | 4 | 3592.905339 | -| terp1ymf23zhzv9eny06492m30l6kc4dpqqufxxxf6h | 0x26d2a88ae26173323f552ab717ff56c55a100389 | 4 | 4 | 3592.905339 | -| terp1lz42nw6xqhe06sazyryvxw3dna2ems6xskc5gg | 0xf8aaa9bb4605f2fd43a220c8c33a2d9f559dc346 | 4 | 4 | 3592.905339 | -| terp1zqfu3r9u7sukhz07y0rn2fnnc6lv68lsez7a64 | 0x1013c88cbcf4396b89fe23c7352673c6becd1ff0 | 4 | 4 | 3592.905339 | -| terp18030wyawaycjpk85u685w8es282rh964m23st9 | 0x3be2f713aee93120d8f4e68f471f3051d43b9755 | 4 | 4 | 3592.905339 | -| terp1rjt0uw7h4ew3z30e4n3sv0pvevf226u7acwuel | 0x1c96fe3bd7ae5d1145f9ace3063c2ccb12a56b9e | 4 | 4 | 3592.905339 | -| terp1xg6xh9wkspz2vrq2tgsh9574d6v2r2j78zpnwz | 0x32346b95d68044a60c0a5a2172d3d56e98a1aa5e | 4 | 4 | 3592.905339 | -| terp1p97r7njynn5yah4yejhs4pcs9jj0wh8lc72rmz | 0x097c3f4e449ce84edea4ccaf0a87102ca4f75cff | 4 | 4 | 3592.905339 | -| terp148yxvrh6esgxhz4ya83yjpz49wfzulrt2qtmjl | 0xa9c8660efacc106b8aa4e9e24904552b922e7c6b | 4 | 4 | 3592.905339 | -| terp1t3hv26zrrqh7qsn3w9wxhczth3ld7ruygemt5d | 0x5c6ec56843182fe04271715c6be04bbc7edf0f84 | 4 | 4 | 3592.905339 | -| terp163y3w5sgya9kmyyyaklcncars70eh2ajfj9x2k | 0xd449175208274b6d9084edbf89e3a3879f9babb2 | 4 | 4 | 3592.905339 | -| terp1n0cqz25w35nh8s7lvy4weckxmgd6l4yfefpx06 | 0x9bf0012a8e8d2773c3df612aece2c6da1bafd489 | 4 | 4 | 3592.905339 | -| terp1fh3qun7nsscxdrhv03qtpusddd6myjtqc87fgd | 0x4de20e4fd38430668eec7c40b0f20d6b75b24960 | 4 | 4 | 3592.905339 | -| terp1kzcfy3yt5quksk30247evfyhrfdl5gs446z7uy | 0xb0b092448ba039685a2f557d9624971a5bfa2215 | 4 | 4 | 3592.905339 | -| terp1mkz4lzfpj6ngtj05mqxtr42k78eq74k5gchgqg | 0xdd855f892196a685c9f4d80cb1d556f1f20f56d4 | 4 | 4 | 3592.905339 | -| terp1jd406t2x6p547kyqhfw5986ks93j6hncmlyxp8 | 0x936afd2d46d0695f5880ba5d429f5681632d5e78 | 4 | 4 | 3592.905339 | -| terp19hyy4a5462q4mrjks29plkg70vf4mahw38zk9t | 0x2dc84af695d2815d8e56828a1fd91e7b135df6ee | 4 | 4 | 3592.905339 | -| terp1uuplyvdtq4hvhxwf9gfr9nqsyzk0cuhcs3swnh | 0xe703f231ab056ecb99c92a1232cc1020acfc72f8 | 4 | 4 | 3592.905339 | -| terp13xvcaj7546essq9kasnnt094vj9r7cvjv4kzxt | 0x89998ecbd4aeb30800b6ec2735bcb5648a3f6192 | 4 | 4 | 3592.905339 | -| terp108yqpk34wlx04zqnahz6hkgax29ugjlwemfsc5 | 0x79c800da3577ccfa8813edc5abd91d328bc44bee | 4 | 4 | 3592.905339 | -| terp1358avaemtkq888wld80g58gvhau5ql6avaw63q | 0x8d0fd6773b5d80739ddf69de8a1d0cbf79407f5d | 4 | 4 | 3592.905339 | -| terp1c9ste7dyq5ew8swye6psyprfewz3pqwv8ta9p6 | 0xc160bcf9a40532e3c1c4ce83020469cb851081cc | 4 | 4 | 3592.905339 | -| terp1ufx6c75g9r2dsc4e8z0mp6vtdu079r65llgg2f | 0xe24dac7a8828d4d862b9389fb0e98b6f1fe28f54 | 4 | 4 | 3592.905339 | -| terp17ga0hpn6a8055eyhrscmrwzsun75csqah7greu | 0xf23afb867ae9df4a64971c31b1b850e4fd4c401d | 4 | 4 | 3592.905339 | -| terp1dn2rnrv2nhvwl0k2zun5a9e5f9p9nq94g99cm2 | 0x6cd4398d8a9dd8efbeca17274e973449425980b5 | 4 | 4 | 3592.905339 | -| terp1p468sxvrfhdj0cpuc2k0zaqfdc39tnl7uqzdam | 0x0d747819834ddb27e03cc2acf174096e2255cffe | 4 | 4 | 3592.905339 | -| terp1xwqqdt7drlrm2tgnax00jdk3z36asqlsmtjs6l | 0x338006afcd1fc7b52d13e99ef936d11475d803f0 | 4 | 4 | 3592.905339 | -| terp1mckh63vr0nh5ahde7yfv3sql7u9m90gflv67kg | 0xde2d7d45837cef4eddb9f112c8c01ff70bb2bd09 | 4 | 4 | 3592.905339 | -| terp1cudt4jlm9gdxxjw5nltl40uk6ka7yn59lur98t | 0xc71abacbfb2a1a6349d49fd7fabf96d5bbe24e85 | 4 | 4 | 3592.905339 | -| terp1x7g43g5dq2lfmft3rvqg0dmgy2vqhrr4c7mvaw | 0x379158a28d02be9da5711b0087b76822980b8c75 | 4 | 4 | 3592.905339 | -| terp1ee6dmy97djf0qnl5uhlq8lrh2lmpq2svkalhft | 0xce74dd90be6c92f04ff4e5fe03fc7757f6102a0c | 4 | 4 | 3592.905339 | -| terp1h3tqmu5n0e3k2fkcz5t52cy8v8t7jwdk8l473s | 0xbc560df2937e636526d8151745608761d7e939b6 | 4 | 4 | 3592.905339 | -| terp1xggeknr9rvxwzmcshte4n8u5dljff44h9s8dyc | 0x32119b4c651b0ce16f10baf3599f946fe494d6b7 | 4 | 4 | 3592.905339 | -| terp1cs37ezr3sw6atpzm4ffzc562kmxpg38xt62tv7 | 0xc423ec887183b5d5845baa522c534ab6cc1444e6 | 4 | 4 | 3592.905339 | -| terp12uz6ah4vhykszgw4pq9z3k560cjxjyel9sekqf | 0x5705aedeacb92d0121d5080a28da9a7e2469133f | 4 | 4 | 3592.905339 | -| terp109rvmw3n4pyqtfnvsrklgzr3ycgar0pgrpsvze | 0x7946cdba33a84805a66c80edf408712611d1bc28 | 4 | 4 | 3592.905339 | -| terp1xayx783t8v74qs3yjxj3ev6fxf6xruyfzek0gj | 0x37486f1e2b3b3d50422491a51cb349327461f089 | 4 | 4 | 3592.905339 | -| terp1s0d5jnj9hv7e8mym2vj06hld4trtat5t4mgv0h | 0x83db494e45bb3d93ec9b5324fd5fedaac6beae8b | 4 | 4 | 3592.905339 | -| terp12zffrmhj3y2ekqd77a6g7tsut4v6x4nx3gjx7y | 0x509291eef289159b01bef7748f2e1c5d59a35666 | 4 | 4 | 3592.905339 | -| terp1wp6qtah2ghj9d5jr280pw4c8qufm4n6uyyymk0 | 0x707405f6ea45e456d24351de1757070713bacf5c | 4 | 4 | 3592.905339 | -| terp17qf7ta5hapxxsvfzpgs6je2kyshwntvxqsqgd8 | 0xf013e5f697e84c6831220a21a96556242ee9ad86 | 4 | 4 | 3592.905339 | -| terp1xhyzytf0awjtg020ug7qt9afsum5mn8vs72kyh | 0x35c8222d2feba4b43d4fe23c0597a987374dccec | 4 | 4 | 3592.905339 | -| terp18hug8q9yp9dcfx3rhnnuvkd4dxflv0vts62296 | 0x3df88380a4095b849a23bce7c659b56993f63d8b | 4 | 4 | 3592.905339 | -| terp1sgvq0jxh5nhpfyp6qshzsrgl7rukg6ss8a8dwe | 0x821807c8d7a4ee14903a042e280d1ff0f9646a10 | 4 | 4 | 3592.905339 | -| terp1n3xev6p67gefah2fcfta2sgaall5hr2udk9er6 | 0x9c4d96683af2329edd49c257d5411defff4b8d5c | 4 | 4 | 3592.905339 | -| terp1jeknt9svqrpqcxg3hunf9sncyead6yua7mk0xe | 0x966d35960c00c20c1911bf2692c278267add139d | 4 | 4 | 3592.905339 | -| terp1yjj57s26ajcda3cev6v7p26sm9aph9ttmn4jzk | 0x24a54f415aecb0dec7196699e0ab50d97a1b956b | 4 | 4 | 3592.905339 | -| terp1law2hv8a9mvuzqyvcup6fzx2ezk5wf9f3zdplg | 0xff5cabb0fd2ed9c1008cc703a488cac8ad4724a9 | 4 | 4 | 3592.905339 | -| terp1r90ua9q6uryh9wxus9xjqk2n0dnlzspcj89vdr | 0x195fce941ae0c972b8dc814d2059537b67f14038 | 4 | 4 | 3592.905339 | -| terp1yhkj57q5yngqvmzyeqrnyar2tqzw65pzvuweuj | 0x25ed2a781424d0066c44c80732746a5804ed5022 | 4 | 4 | 3592.905339 | -| terp1umwldcukykf9jzyr6gh7f29jz44j8ca2laczk8 | 0xe6ddf6e3962592590883d22fe4a8b2156b23e3aa | 4 | 4 | 3592.905339 | -| terp1sfca8ghltexwmwzlg9wfw77rwnxn87lwm6h5y5 | 0x8271d3a2ff5e4cedb85f415c977bc374cd33fbee | 4 | 4 | 3592.905339 | -| terp1zjdct5tn7cccx9d8k55xw2uyd9y0h4xjlmnju8 | 0x149b85d173f6318315a7b528672b846948fbd4d2 | 4 | 4 | 3592.905339 | -| terp1av9s8whp6urltd5c4z6u9kw6h9j8adus6zry8c | 0xeb0b03bae1d707f5b698a8b5c2d9dab9647eb790 | 4 | 4 | 3592.905339 | -| terp16w3r4as35e94mkva4f38t9vt7cl9n4mx2ljuer | 0xd3a23af611a64b5dd99daa6275958bf63e59d766 | 4 | 4 | 3592.905339 | -| terp1k6fx6jq4pfvpvkgz5ae3ryvpad8uzlsyxyzray | 0xb6926d48150a58165902a773119181eb4fc17e04 | 4 | 4 | 3592.905339 | -| terp1e6qzy44y8snyg6f468auty2q4c8n0v2rd9yqjz | 0xce802256a43c26446935d1fbc59140ae0f37b143 | 4 | 4 | 3592.905339 | -| terp1fxcne4hqahkad6unkcnueqmy6ew7xutk3tyk90 | 0x49b13cd6e0ededd6eb93b627cc8364d65de37176 | 4 | 4 | 3592.905339 | -| terp17qazg7u6hmnwz438a7ncr2g34hx5zprxqhl4zy | 0xf03a247b9abee6e15627efa781a911adcd410466 | 4 | 4 | 3592.905339 | -| terp18aav2a0nc657sj9378kr55ddyjljk93yesvptq | 0x3f7ac575f3c6a9e848b1f1ec3a51ad24bf2b1624 | 4 | 4 | 3592.905339 | -| terp1qez7t68fmnv375ruhfzphagnd6hc50yymkjzys | 0x0645e5e8e9dcd91f507cba441bf5136eaf8a3c84 | 4 | 4 | 3592.905339 | -| terp1hjj7j72s98dphvwq35s0pguhwekuhefmktj3cg | 0xbca5e9795029da1bb1c08d20f0a397766dcbe53b | 4 | 4 | 3592.905339 | -| terp1khqg5dr684gew8t5t8sfwn0jkutk9pj3ejjdqs | 0xb5c08a347a3d51971d7459e0974df2b717628651 | 4 | 4 | 3592.905339 | -| terp1c4zh9enhktkngxcfkcjgt663zepazj3mspt0x7 | 0xc54572e677b2ed341b09b62485eb511643d14a3b | 4 | 4 | 3592.905339 | -| terp1al705ckjh8m2jq9x5xr09837sd7gs573m984ur | 0xeffcfa62d2b9f6a900a6a186f29e3e837c8853d1 | 4 | 4 | 3592.905339 | -| terp13tk9vnh45daukhaa2nhz94kp29teep3gzu4w6k | 0x8aec564ef5a37bcb5fbd54ee22d6c151579c8628 | 4 | 4 | 3592.905339 | -| terp19vscnrqtqc54zcpchp436wevepwrc6qwelp4xd | 0x2b21898c0b0629516038b86b1d3b2cc85c3c680e | 4 | 4 | 3592.905339 | -| terp17fzpljlug439pglewp22t9gcmfkwmvfwsruja4 | 0xf2441fcbfc456250a3f97054a59518da6cedb12e | 4 | 4 | 3592.905339 | -| terp1uh9g7v30yu86sff0kcktz00k7dun6a32qvc2dl | 0xe5ca8f322f270fa8252fb62cb13df6f3793d762a | 4 | 4 | 3592.905339 | -| terp1sjfe83t5sq3c9rypd38kxnvqe43kx6qrn2n3km | 0x849393c5748023828c816c4f634d80cd63636803 | 4 | 4 | 3592.905339 | -| terp1uqu48ae5yaa7daarhtmq3ln2grmq4fj7k865gk | 0xe03953f734277be6f7a3baf608fe6a40f60aa65e | 4 | 4 | 3592.905339 | -| terp14pvacrufytkm9vu8c7gmyztetgthezcknw7pjt | 0xa859dc0f8922edb2b387c791b209795a177c8b16 | 4 | 4 | 3592.905339 | -| terp12esf4rsxqxu6l27fpy3m7gxlq53ej09x66atsr | 0x56609a8e0601b9afabc90923bf20df0523993ca6 | 4 | 4 | 3592.905339 | -| terp19pr3jklrznl4k0fcv2r6fus8kt67ghpcfuga0a | 0x2847195be314ff5b3d386287a4f207b2f5e45c38 | 4 | 4 | 3592.905339 | -| terp10c4x0m8uuwkz740tm5vphymn2ry7r3uvm2rtkt | 0x7e2a67ecfce3ac2f55ebdd181b937350c9e1c78c | 3 | 4 | 3592.905339 | -| terp1vz38397dc28fkgp48zk6grxqllzmq6eff5798w | 0x60a27897cdc28e9b203538ada40cc0ffc5b06b29 | 3 | 4 | 3592.905339 | -| terp15sqm89eu4f3zhaeenw3xv5ydf42ylgfdzue3m8 | 0xa401b3973caa622bf7399ba266508d4d544fa12d | 3 | 4 | 3592.905339 | -| terp1ay38c063zrruc4kk4nm6zxetjgakzuct0q2ufd | 0xe9227c3f5110c7cc56d6acf7a11b2b923b61730b | 3 | 4 | 3592.905339 | -| terp139m4vpmlx8yul3ss8xedx8vyarurlt96xvcc2v | 0x897756077f31c9cfc61039b2d31d84e8f83facba | 3 | 4 | 3592.905339 | -| terp1nrhkrfe60xnp6t4trj0m8zzkdjh2z87qx7r3rw | 0x98ef61a73a79a61d2eab1c9fb388566caea11fc0 | 3 | 4 | 3592.905339 | -| terp1jtatg5hz79x8wv8hjqceqmsxxfkfz62xtfxh02 | 0x92fab452e2f14c7730f79031906e06326c916946 | 3 | 4 | 3592.905339 | -| terp1n4xq5pv63vk3uayeg9ud32fat07eyh6c7ufk2s | 0x9d4c0a059a8b2d1e74994178d8a93d5bfd925f58 | 3 | 4 | 3592.905339 | -| terp1uuhc7ce7c3hkczrgyr3lnktd2x9dgvazptrqm9 | 0xe72f8f633ec46f6c086820e3f9d96d518ad433a2 | 3 | 4 | 3592.905339 | -| terp1aq4ps3hgyagjgql6aphc9v8efl3cmxp5eh2r3z | 0xe82a1846e827512403fae86f82b0f94fe38d9834 | 3 | 4 | 3592.905339 | -| terp1p7xxz8ker2zcdm2svwk5vue940068gq4gncp0y | 0x0f8c611ed91a8586ed5063ad467325abdfa3a015 | 3 | 4 | 3592.905339 | -| terp1c27e2mw2eqngefu02httxwa6jth2c3pa9wz4jh | 0xc2bd956dcac8268ca78f55d6b33bba92eeac443d | 3 | 4 | 3592.905339 | -| terp1q8zx8h7t62zu73en7mkpujl436qc9vyg5d9eky | 0x01c463dfcbd285cf4733f6ec1e4bf58e8182b088 | 3 | 4 | 3592.905339 | -| terp1eua424efsg4e82u0qhy3yjcsys7dxay0ujth79 | 0xcf3b555729822b93ab8f05c9124b10243cd3748f | 3 | 4 | 3592.905339 | -| terp1c2gdvect8wj7eamygqvxsl853f8rvg2vgwapyj | 0xc290d6670b3ba5ecf7644018687cf48a4e36214c | 3 | 4 | 3592.905339 | -| terp1l5eey83qdt62t5yxvc4hua6557jul4enmt8en7 | 0xfd33921e206af4a5d086662b7e7754a7a5cfd733 | 3 | 4 | 3592.905339 | -| terp1ctp57m9ml6qed64x04ewjtgjrg7uuxf6t2rs9r | 0xc2c34f6cbbfe8196eaa67d72e92d121a3dce193a | 3 | 4 | 3592.905339 | -| terp12kmakvx2wjg6f542cdex3xfc9ah2m4d8dgu83u | 0x55b7db30ca7491a4d2aac3726899382f6eadd5a7 | 3 | 4 | 3592.905339 | -| terp135aughtmxqqncd7pg8mvulycrvnp8ma2fhkj7d | 0x8d3bc45d7b30013c37c141f6ce7c981b2613efaa | 3 | 4 | 3592.905339 | -| terp1l3k0humgn28a5e39slv2s2w2sg9encr23dstz2 | 0xfc6cfbf3689a8fda662587d8a829ca820b99e06a | 3 | 4 | 3592.905339 | -| terp1392n0egjy4rk437jgls2qsutz73ex8z8r3f0ve | 0x895537e51225476ac7d247e0a0438b17a3931c47 | 3 | 4 | 3592.905339 | -| terp1jsd5cq6yd6kq9ypvxp25a35rh2eagrlecnjh8u | 0x941b4c03446eac02902c30554ec683bab3d40ff9 | 3 | 4 | 3592.905339 | -| terp17yutqqhh752fx6rnpqdem7jkvukd4ept7rp38x | 0xf138b002f7f514936873081b9dfa56672cdae42b | 3 | 4 | 3592.905339 | -| terp1p0cj60ur4hw0nh6leksc7d3ezwufv4x2r8qs4t | 0x0bf12d3f83addcf9df5fcda18f363913b89654ca | 3 | 4 | 3592.905339 | -| terp1udw5jvjhz69l6w3nf34u3pfgse3cu58crqatrv | 0xe35d493257168bfd3a334c6bc8852886638e50f8 | 3 | 4 | 3592.905339 | -| terp1ncq5fr2pws337xvhte89jew2yrzhhyvytqkdhl | 0x9e01448d4174231f19975e4e5965ca20c57b9184 | 3 | 4 | 3592.905339 | -| terp1xzmu22x5edwndjr24rnhupftne9huafeq6nyrv | 0x30b7c528d4cb5d36c86aa8e77e052b9e4b7e7539 | 3 | 4 | 3592.905339 | -| terp1qf7a8dafv5eq96r6tvazknjvtpuzg0lspw0c0j | 0x027dd3b7a9653202e87a5b3a2b4e4c5878243ff0 | 3 | 4 | 3592.905339 | -| terp1h2f0wevyk4y9yp4e62km857sd2qnutx7sc94kv | 0xba92f76584b5485206b9d2adb3d3d06a813e2cde | 3 | 4 | 3592.905339 | -| terp16fcrx4yecdepv4dlwqde7jnrmgdxhpupcl6smd | 0xd270335499c3721655bf701b9f4a63da1a6b8781 | 3 | 4 | 3592.905339 | -| terp1ewlzsmz3r8enzp37cc204dmk763hnymg4xqv8e | 0xcbbe286c5119f331063ec614fab776f6a3799368 | 3 | 4 | 3592.905339 | -| terp1kz8etk7x893pmwh53frj468uurm026nwd97tzw | 0xb08f95dbc639621dbaf48a472ae8fce0f6f56a6e | 3 | 4 | 3592.905339 | -| terp1npqcq5xgqj4208lda2fj2kxx9rtprw4emln5hp | 0x98418050c804aaa79fedea932558c628d611bab9 | 3 | 4 | 3592.905339 | -| terp1fmggahgsas0z7ym33xcrsqwzqdckdlwdkyl7ky | 0x4ed08edd10ec1e2f137189b03801c2037166fdcd | 3 | 4 | 3592.905339 | -| terp10v3nx5dekdxpa4v5v37ds5z43lhauxswmw5flr | 0x7b233351b9b34c1ed594647cd850558fefde1a0e | 3 | 4 | 3592.905339 | -| terp1zs3a0wn5s9azv9l68e5mvzd9fex67mmehj8sp5 | 0x1423d7ba74817a2617fa3e69b609a54e4daf6f79 | 3 | 4 | 3592.905339 | -| terp1tdr89nl7uhny52nazlq4027mfm0lhc7l7eh7d3 | 0x5b4672cffee5e64a2a7d17c157abdb4edffbe3df | 3 | 4 | 3592.905339 | -| terp1kfgfuyysa2t9xkhe62uttam4an7kxmcdzqld9v | 0xb2509e1090ea96535af9d2b8b5f775ecfd636f0d | 3 | 4 | 3592.905339 | -| terp1j7awfn2lg9amrfkrh76wt4cpkaea80uxneyp4v | 0x97bae4cd5f417bb1a6c3bfb4e5d701b773d3bf86 | 3 | 4 | 3592.905339 | -| terp1z2w4wavmjgvdhjmjqs9jpxh3dq60kuy3wunp6l | 0x129d57759b9218dbcb72040b209af16834fb7091 | 3 | 4 | 3592.905339 | -| terp13raxt9a3l3ha0kcv99zk5ayfhy84a5ws6lelss | 0x88fa6597b1fc6fd7db0c29456a7489b90f5ed1d0 | 3 | 4 | 3592.905339 | -| terp15y0c8jas0lgryaq4h4pyhxrpxtsqnajrvh7fmq | 0xa11f83cbb07fd0327415bd424b986132e009f643 | 3 | 4 | 3592.905339 | -| terp1kvukndrgzc3v6newsqhc009n8rn6zuw9jsxe9v | 0xb33969b4681622cd4f2e802f87bcb338e7a171c5 | 3 | 4 | 3592.905339 | -| terp1ga7e0dd74utvdkddkk77x0apr0ghkulfxm9mzy | 0x477d97b5beaf16c6d9adb5bde33fa11bd17b73e9 | 3 | 4 | 3592.905339 | -| terp1la8jcsd0dwkxwgtyx4m8w3nda44e9kkqa2xzyv | 0xff4f2c41af6bac672164357677466ded6b92dac0 | 3 | 4 | 3592.905339 | -| terp1ve7xdgwauth45tujg99w28s84rv3uy6a07yphh | 0x667c66a1dde2ef5a2f92414ae51e07a8d91e135d | 3 | 4 | 3592.905339 | -| terp1rf7t2lqyz4d8uztk0jt6ynapwk86z2we2rscwf | 0x1a7cb57c04155a7e09767c97a24fa1758fa129d9 | 3 | 4 | 3592.905339 | -| terp12allrhuvx0u4ccvqhntm2cj348glxs3v9lep8h | 0x577ff1df8c33f95c6180bcd7b56251a9d1f3422c | 3 | 4 | 3592.905339 | -| terp1kkwfgasc0f7w6e3f57zwzshvpukl2vyak3lucs | 0xb59c9476187a7ced6629a784e142ec0f2df5309d | 3 | 4 | 3592.905339 | -| terp1ch45agqwlgmj2hvljg3kpfu2vzsw33u7qjs6ge | 0xc5eb4ea00efa37255d9f922360a78a60a0e8c79e | 3 | 4 | 3592.905339 | -| terp1lxe4aquxusxj8gzgfkp30tvz8hag9vmgthvx42 | 0xf9b35e8386e40d23a0484d8317ad823dfa82b368 | 3 | 4 | 3592.905339 | -| terp1urzreuntpwktgzxxxdzxsuqp08rp4m4lwvy0uu | 0xe0c43cf26b0bacb408c6334468700179c61aeebf | 3 | 4 | 3592.905339 | -| terp1a8dnrjkcyannwhcy7ucy5rsg83lgptnkx9hgfp | 0xe9db31cad82767375f04f7304a0e083c7e80ae76 | 3 | 4 | 3592.905339 | -| terp1pg4uyv7jy0aqjydy4dpfumyfvpe5u96h9u7c3l | 0x0a2bc233d223fa0911a4ab429e6c8960734e1757 | 3 | 4 | 3592.905339 | -| terp14yn3xzcxwrj5a2p0ma6v6e6f0vas0p0dgnm2qw | 0xa927130b0670e54ea82fdf74cd67497b3b0785ed | 3 | 4 | 3592.905339 | -| terp1hk38pmdpvgshe3wmslav4cwjq8858zclkvml99 | 0xbda270eda162217cc5db87facae1d201cf438b1f | 3 | 4 | 3592.905339 | -| terp1sw9pctcv462qwgejcdr9xwkdcmzep9cls7aduj | 0x838a1c2f0cae94072332c346533acdc6c590971f | 3 | 4 | 3592.905339 | -| terp1n6chw7z6avp5harys8lhc4h5a98c3j0rag2cgq | 0x9eb177785aeb034bf46481ff7c56f4e94f88c9e3 | 3 | 4 | 3592.905339 | -| terp1u0tfhj44m2h289u8a6h5cqmfmcmx6udaewmqsk | 0xe3d69bcab5daaea39787eeaf4c0369de366d71bd | 3 | 4 | 3592.905339 | -| terp1pkyc2cgdpx2e47u2c0uwlme3a3wec2kv22tnna | 0x0d8985610d09959afb8ac3f8efef31ec5d9c2acc | 3 | 4 | 3592.905339 | -| terp1rsuzwfelstuvuucyv34lqcn3y4qjtxvx48mxlf | 0x1c3827273f82f8ce7304646bf062712541259986 | 3 | 4 | 3592.905339 | -| terp154phe8f0vtme4c3trk7s5u6lamruaa48p8mu9g | 0xa5437c9d2f62f79ae22b1dbd0a735feec7cef6a7 | 3 | 4 | 3592.905339 | -| terp1naq76yzgpyvlfpk0x40gs44h79xqv8tvqyf4ll | 0x9f41ed10480919f486cf355e8856b7f14c061d6c | 3 | 4 | 3592.905339 | -| terp1pksd7jlyvu2quax8vftaqqh49625hexn2rzqm3 | 0x0da0df4be467140e74c76257d002f52e954be4d3 | 3 | 4 | 3592.905339 | -| terp19hnc07hxe3zj6puywe7jqeslx4cn2y96ptgv8k | 0x2de787fae6cc452d0784767d20661f35713510ba | 3 | 4 | 3592.905339 | -| terp1udrcfqaf5lkd3nw7yj82gw6gr9a3ncy7r446cc | 0xe3478483a9a7ecd8cdde248ea43b48197b19e09e | 3 | 4 | 3592.905339 | -| terp1we7mcyvhsw38q0y8pngfex54zanmhdw75uf9ax | 0x767dbc119783a2703c870cd09c9a951767bbb5de | 3 | 4 | 3592.905339 | -| terp1qz36m2tg4zd47kv7f33jfsq4qzwgtfhya3wj8m | 0x00a3ada968a89b5f599e4c6324c015009c85a6e4 | 3 | 4 | 3592.905339 | -| terp12697jh5khgh0w2hwv7tavsy47wjpgltjc56ux6 | 0x568be95e96ba2ef72aee6797d64095f3a4147d72 | 3 | 4 | 3592.905339 | -| terp1ne7mlge97z0uwhcyklvagldelj673ty3egcm25 | 0x9e7dbfa325f09fc75f04b7d9d47db9fcb5e8ac91 | 3 | 4 | 3592.905339 | -| terp1vv8mp8knyh5s80gfed0uhvctwdkppt6ddqkuyj | 0x630fb09ed325e903bd09cb5fcbb30b736c10af4d | 3 | 4 | 3592.905339 | -| terp153vv0ttgvkyudwmj8yfgc9dmzfrkpstnnedx3p | 0xa458c7ad686589c6bb7239128c15bb124760c173 | 3 | 4 | 3592.905339 | -| terp18qf85v4hmyxzfjlf4c55t3z99y0yxya75yye4m | 0x38127a32b7d90c24cbe9ae2945c445291e4313be | 3 | 4 | 3592.905339 | -| terp1r5fm4sn0t6qm4qmvnj93zzcs4gsdlw8gkk7ftg | 0x1d13bac26f5e81ba836c9c8b110b10aa20dfb8e8 | 3 | 4 | 3592.905339 | -| terp1wz5n3eedf4rf8z920ee5rsptwdmjkalvkca3m6 | 0x70a938e72d4d469388aa7e7341c02b73772b77ec | 3 | 4 | 3592.905339 | -| terp1he2fa2zmsq9fzzccqekrpy55getpl4xwchx5dc | 0xbe549ea85b800a910b18066c30929446561fd4ce | 3 | 4 | 3592.905339 | -| terp1jj4zrvw6nqc57xu0nk92kmlm95qfnftyqxf6xf | 0x94aa21b1da98314f1b8f9d8aab6ffb2d0099a564 | 3 | 4 | 3592.905339 | -| terp13fx5jwyzhfhjz0p067tkgrpxs2dhsn2t5hkyj6 | 0x8a4d493882ba6f213c2fd797640c26829b784d4b | 3 | 4 | 3592.905339 | -| terp1farwvkp0qut44dvun5hrtrf6lkl0pdr5mk484q | 0x4f46e6582f07175ab59c9d2e358d3afdbef0b474 | 3 | 4 | 3592.905339 | -| terp1w9rv46g478xeppc7e35enxl0lh908rle40k2az | 0x7146cae915f1cd90871ecc69999beffdcaf38ff9 | 3 | 4 | 3592.905339 | -| terp1pg6rfgwsa9yl7f5pkkj8x0pf7ravpph4huh5x8 | 0x0a3434a1d0e949ff2681b5a4733c29f0fac086f5 | 3 | 4 | 3592.905339 | -| terp1a0gs97sctv549whgyhh99extj32np4y3x68evf | 0xebd102fa185b2952bae825ee52e4cb945530d491 | 3 | 4 | 3592.905339 | -| terp10rs8me386zkv2kad6x0t57up3g5768cpv4nngj | 0x78e07de627d0acc55badd19eba7b818a29ed1f01 | 3 | 4 | 3592.905339 | -| terp13yjysd9kmmal4p5ceafdg9pusne45mpqu8wqf5 | 0x89244834b6defbfa8698cf52d4143c84f35a6c20 | 3 | 4 | 3592.905339 | -| terp14kyagnzqs8sw6dkjfg79zl7p86uelqlfr3f0uz | 0xad89d44c4081e0ed36d24a3c517fc13eb99f83e9 | 3 | 4 | 3592.905339 | -| terp16ucjyqaxpruhhl0uszpkn4uukazl3nckctp50n | 0xd7312203a608f97bfdfc808369d79cb745f8cf16 | 3 | 4 | 3592.905339 | -| terp1nk6ejgxnwakzmz365r9a0vtds872kz3tfa6qvv | 0x9db59920d3776c2d8a3aa0cbd7b16d81fcab0a2b | 3 | 4 | 3592.905339 | -| terp1nrg8x99gt6ehe0kscek87r2e20r4t3lewjqkd8 | 0x98d07314a85eb37cbed0c66c7f0d5953c755c7f9 | 3 | 4 | 3592.905339 | -| terp1vcsnd24e6zlth40ycrm9584fzaf2acxr3f7skm | 0x662136aab9d0bebbd5e4c0f65a1ea91752aee0c3 | 3 | 4 | 3592.905339 | -| terp1rpsat27w98yakcg9sp6sqsky3p38nq0gvc8rqs | 0x1861d5abce29c9db610580750042c488627981e8 | 3 | 4 | 3592.905339 | -| terp14a4wcpxk4xfclx7fldwwk5cap4hn953cz5h096 | 0xaf6aec04d6a9938f9bc9fb5ceb531d0d6f32d238 | 3 | 4 | 3592.905339 | -| terp1vtfztzs6yka0p8rlupsukd2ffsx34d9pnyzwpp | 0x62d2258a1a25baf09c7fe061cb35494c0d1ab4a1 | 3 | 4 | 3592.905339 | -| terp1lf735hatsdhm744k53w8vyj6hj8cnt5e9w90fw | 0xfa7d1a5fab836fbf56b6a45c76125abc8f89ae99 | 3 | 4 | 3592.905339 | -| terp10e2h8qmrj8pjgry4k95caclczklsrjgyhg5pxy | 0x7e5573836391c3240c95b1698ee3f815bf01c904 | 3 | 4 | 3592.905339 | -| terp1q8a4r79xvnc09d703ahwaz0hcxm7qkaprh6sq9 | 0x01fb51f8a664f0f2b7cf8f6eee89f7c1b7e05ba1 | 3 | 4 | 3592.905339 | -| terp1jdq6re7xktuz428yrn2qht8uunkdmf3ygxvz23 | 0x9341a1e7c6b2f82aa8e41cd40bacfce4ecdda624 | 3 | 4 | 3592.905339 | -| terp1tytrz2zlzlsw8t3rcf54kce9wkey2ksulsh70a | 0x591631285f17e0e3ae23c2695b632575b2455a1c | 3 | 4 | 3592.905339 | -| terp1y6ap85ud6jjcyjwkuzmskgvwhav9386d58rz9d | 0x26ba13d38dd4a58249d6e0b70b218ebf58589f4d | 3 | 4 | 3592.905339 | -| terp1v5rwny0cgxpdjxl86g0m7snmjhs7068v63gtau | 0x6506e991f84182d91be7d21fbf427b95e1e7e8ec | 3 | 4 | 3592.905339 | -| terp1w22rdw54mg8d4mjevtx6yv9updvhmd8s3hkxaa | 0x729436ba95da0edaee5962cda230bc0b597db4f0 | 3 | 4 | 3592.905339 | -| terp14cz3uvkl97ktrvw2ukpl6yzgrdk74trnn38mdf | 0xae051e32df2facb1b1cae583fd10481b6deaac73 | 3 | 4 | 3592.905339 | -| terp1wtfxamfk02z4p5kuhcq50ye974c2gqlt6x70t3 | 0x72d26eed367a8550d2dcbe01479325f570a403eb | 3 | 4 | 3592.905339 | -| terp1fge69xk7wejcpman80uvxkma6jfvgl3hxwwews | 0x4a33a29ade766580efb33bf8c35b7dd492c47e37 | 3 | 4 | 3592.905339 | -| terp1lu80e3xd0r7cuftwwxv2asakx5ha0vxnng2se6 | 0xff0efcc4cd78fd8e256e7198aec3b6352fd7b0d3 | 3 | 4 | 3592.905339 | -| terp1c9eg2cpe0m0hwsxz7wqk0jcy9gsdr2n6hg839s | 0xc1728560397edf7740c2f38167cb042a20d1aa7a | 3 | 4 | 3592.905339 | -| terp1lk06v5x897z375flqkpesmzqhrmmk66edgr50c | 0xfd9fa650c72f851f513f0583986c40b8f7bb6b59 | 3 | 4 | 3592.905339 | -| terp1pls8f07afsedxezqyxahy8wm9nfdf6x58s5cmm | 0x0fe074bfdd4c32d3644021bb721ddb2cd2d4e8d4 | 3 | 4 | 3592.905339 | -| terp1d5j5z4tf2fx7k9uqanymdanqjuf54u57g5zqd5 | 0x6d25415569524deb1780ecc9b6f66097134af29e | 3 | 4 | 3592.905339 | -| terp1kugv4vfahz5luy705fsmx3fy68p6u2prtu37ne | 0xb710cab13db8a9fe13cfa261b34524d1c3ae2823 | 3 | 4 | 3592.905339 | -| terp1yzl7j8wj87lakv87k5ynyge54037m9v9n7ggnm | 0x20bfe91dd23fbfdb30feb509322334abe3ed9585 | 3 | 4 | 3592.905339 | -| terp146kda0agj22ej4txm0kt0h3fhkrqdp44tyqvwu | 0xaeacdebfa89295995566dbecb7de29bd860686b5 | 3 | 4 | 3592.905339 | -| terp1mdghdyx708hvzwrvww06p0m7mv5fx30pvvgff6 | 0xdb517690de79eec1386c739fa0bf7edb289345e1 | 3 | 4 | 3592.905339 | -| terp1ceuqrjfw7hnjw8z9c0rfm23kp425t02fefmhm8 | 0xc67801c92ef5e7271c45c3c69daa360d5545bd49 | 3 | 4 | 3592.905339 | -| terp1fjz7eedm7xga8cdhdy6vsdedft3m76f8395z7p | 0x4c85ece5bbf191d3e1b76934c8372d4ae3bf6927 | 3 | 4 | 3592.905339 | -| terp1egnp0sxpdfudczefefe23pu9u4uh4esl8zqsnz | 0xca2617c0c16a78dc0b29ca72a88785e5797ae61f | 3 | 4 | 3592.905339 | -| terp129nuwehm7kv6zgczslrh55rfmu2qwumgmhfgef | 0x5167c766fbf599a1230287c77a5069df14077368 | 3 | 4 | 3592.905339 | -| terp1t69wszhlslhs44lakk29f2xwzevjccnjvft4kq | 0x5e8ae80aff87ef0ad7fdb59454a8ce16592c6272 | 3 | 4 | 3592.905339 | -| terp1lpjmmdgg6uzgl0egmz8wjgxklsyq4txtr58ch3 | 0xf865bdb508d7048fbf28d88ee920d6fc080aaccb | 3 | 4 | 3592.905339 | -| terp1xlhmtlv8ep4eta53qexjdan9th6ktfvmang7x5 | 0x37efb5fd87c86b95f691064d26f6655df565a59b | 3 | 4 | 3592.905339 | -| terp1x6r2fvnjcerw7ma7xsmhxd7etkmn2mnrr8xqhg | 0x3686a4b272c646ef6fbe34377337d95db7356e63 | 3 | 4 | 3592.905339 | -| terp1n77xtfuwztrx6mwsznu9ee6z4japmfzactdaza | 0x9fbc65a78e12c66d6dd014f85ce742acba1da45d | 3 | 4 | 3592.905339 | -| terp1mmz4nc0v02zldpnppupt0jmjzqcpjlmupe0rkl | 0xdec559e1ec7a85f686610f02b7cb721030197f7c | 3 | 4 | 3592.905339 | -| terp1m9etkl8qc3tes0a50097jprxsxz5hlyvevc6n0 | 0xd972bb7ce0c457983fb47bcbe9046681854bfc8c | 3 | 4 | 3592.905339 | -| terp1tlym36kzl98wzgjftrpvezm3z2m3g7rwl3cukw | 0x5fc9b8eac2f94ee1224958c2cc8b7112b714786e | 3 | 4 | 3592.905339 | -| terp1skwdr0s27gtctl0acfwym2wgr9ep4u3sykj0h0 | 0x859cd1be0af21785fdfdc25c4da9c819721af230 | 3 | 4 | 3592.905339 | -| terp1pavltucrnls4ch8saswsje4vs33sc207fe9tqp | 0x0f59f5f3039fe15c5cf0ec1d0966ac84630c29fe | 3 | 4 | 3592.905339 | -| terp1tpvd2g7u5kqyna5tch0408wgg39uz96r4ctyv0 | 0x5858d523dca58049f68bc5df579dc8444bc11743 | 3 | 4 | 3592.905339 | -| terp1cev4ztgqghr3sdfcpcf3f05weyaw3aecevgemt | 0xc659512d0045c71835380e1314be8ec93ae8f738 | 3 | 4 | 3592.905339 | -| terp1at4javzdd3q78w4e5h4fwxjx99wdpgwsnw662e | 0xeaeb2eb04d6c41e3bab9a5ea971a46295cd0a1d0 | 3 | 4 | 3592.905339 | -| terp1w0dghzd0u3e26ln5mdt35ql6vg0qmfh9wvx78g | 0x73da8b89afe472ad7e74db571a03fa621e0da6e5 | 3 | 4 | 3592.905339 | -| terp1yvy7ly8j24m54latvjmcz0ddn2ekj4uj7cv6gj | 0x2309ef90f255774affab64b7813dad9ab3695792 | 3 | 4 | 3592.905339 | -| terp14yfjllm3dfphvtseltf6k98x8dcu50v245g6ct | 0xa9132fff716a43762e19fad3ab14e63b71ca3d8a | 3 | 4 | 3592.905339 | -| terp1l6x39wusfe5xsslq9alte95k2x5q4nx7fwchcj | 0xfe8d12bb904e686843e02f7ebc969651a80accde | 3 | 4 | 3592.905339 | -| terp13pessnt4aaecnj5dnkrwc4zesd756z0s8uvuzj | 0x8873084d75ef7389ca8d9d86ec5459837d4d09f0 | 3 | 4 | 3592.905339 | -| terp1s6a94gsxhed584hvqq2ad868s6a8cl5hfd7y22 | 0x86ba5aa206be5b43d6ec0015d69f4786ba7c7e97 | 3 | 4 | 3592.905339 | -| terp1aje9cfp8agmhtz256t6rldmxxpsjcj4rwetnsk | 0xecb25c2427ea37758954d2f43fb76630612c4aa3 | 3 | 4 | 3592.905339 | -| terp1hmw76mhdgy2fkycx8hhehdxxj7tkpk5le93g00 | 0xbedded6eed41149b13063def9bb4c6979760da9f | 3 | 4 | 3592.905339 | -| terp1t95kmenlyhjn3px20mev5edykv9t8kylutqh2h | 0x59696de67f25e53884ca7ef2ca65a4b30ab3d89f | 3 | 4 | 3592.905339 | -| terp128f8hme9vxrgksqd2ymqdhzgq6dnsvdyrqh560 | 0x51d27bef2561868b400d513606dc48069b3831a4 | 3 | 4 | 3592.905339 | -| terp1kraakv0rs2m3smvdprz2p8yntge6pxtwlpr6mu | 0xb0fbdb31e382b7186d8d08c4a09c935a33a0996e | 3 | 4 | 3592.905339 | -| terp1nuum9jmcml0emwla07t86jtj8ekvf0v9ppm9l6 | 0x9f39b2cb78dfdf9dbbfd7f967d49723e6cc4bd85 | 3 | 4 | 3592.905339 | -| terp1706ej9xrw87a3zj8h5klen2k230xxq5d5n06kz | 0xf3f59914c371fdd88a47bd2dfccd56545e63028d | 3 | 4 | 3592.905339 | -| terp15uayrj3ydzunal97kushdr003a7443uv79jsja | 0xa73a41ca2468b93efcbeb721768def8f7d5ac78c | 3 | 4 | 3592.905339 | -| terp1j3klmzzta2x7l8axr2zv24rpeyzrp8mmtk3wty | 0x946dfd884bea8def9fa61a84c55461c904309f7b | 3 | 4 | 3592.905339 | -| terp1dpv0yf9ctha275ele7xjzu46wy4ql56jkvnlhg | 0x6858f224b85dfaaf533fcf8d2172ba712a0fd352 | 3 | 4 | 3592.905339 | -| terp15g63kwzrsnsdvvncrt05y0t6z3zcmqm4wv9yzw | 0xa2351b384384e0d632781adf423d7a14458d8375 | 3 | 4 | 3592.905339 | -| terp1ucu3c63k9wpp29692uju0sd4sg63lk65zc5c2q | 0xe6391c6a362b821517455725c7c1b582351fdb54 | 3 | 4 | 3592.905339 | -| terp1g9rhvvq2v4278f5vtcf39s2umlh4lrjg36puvn | 0x414776300a6555e3a68c5e1312c15cdfef5f8e48 | 3 | 4 | 3592.905339 | -| terp1d67t4z3v54lu0r3mg7lxmak2cw4sfrjn2c3qcl | 0x6ebcba8a2ca57fc78e3b47be6df6cac3ab048e53 | 3 | 4 | 3592.905339 | -| terp1s8j0krryhayl3x6h7ejg2chunfu3kt5j4u2827 | 0x81e4fb0c64bf49f89b57f6648562fc9a791b2e92 | 3 | 4 | 3592.905339 | -| terp1zk4c3av4f33vfptxjxvs73r4yax0k0k7zx3s4j | 0x15ab88f5954c62c4856691990f4475274cfb3ede | 3 | 4 | 3592.905339 | -| terp1uv9smva3fyscvm7y62ufg5ltpa6pmn8gm8fp44 | 0xe30b0db3b14921866fc4d2b89453eb0f741dcce8 | 3 | 4 | 3592.905339 | -| terp12a0wvnp50jcxwhezahx6yrlfp2plt2t9n2w74h | 0x575ee64c347cb0675f22edcda20fe90a83f5a965 | 3 | 4 | 3592.905339 | -| terp1xuf6arw9wdn4xmg3a6z6qzuhxc6srrut8suh3x | 0x3713ae8dc57367536d11ee85a00b973635018f8b | 3 | 4 | 3592.905339 | -| terp157k599ke7s2rf5vc9fxyekvdlzqjrpv0pqfe87 | 0xa7ad4296d9f41434d1982a4c4cd98df88121858f | 3 | 4 | 3592.905339 | -| terp1lzh6myq044ce2mjw3j6th52r55vhg2rdprpzra | 0xf8afad900fad71956e4e8cb4bbd143a51974286d | 3 | 4 | 3592.905339 | -| terp1dvgay0suypu8szcy9s6mjh33ertgxjyr5znvgd | 0x6b11d23e1c2078780b042c35b95e31c8d6834883 | 3 | 4 | 3592.905339 | -| terp1xzva320dgke9sxaspf88hlk3t3hzzqt07u6cva | 0x3099d8a9ed45b2581bb00a4e7bfed15c6e21016f | 3 | 4 | 3592.905339 | -| terp1q8s842jgqplvz5ztcjvq9tngeq0ez6cn6yvgss | 0x01e07aaa48007ec1504bc49802ae68c81f916b13 | 3 | 4 | 3592.905339 | -| terp13ecazzrkfrt6xm98z3glsfdsjrckf25lunwawz | 0x8e71d1087648d7a36ca71451f825b090f164aa9f | 3 | 4 | 3592.905339 | -| terp1urate8zy4qhqu033wa28ffjytj6zkj2276enh9 | 0xe0fabc9c44a82e0e3e31775474a6445cb42b494a | 3 | 4 | 3592.905339 | -| terp1xmnmjq7vrrc9zwtru9za7jdzu7kz0r2n7td9f3 | 0x36e7b903cc18f0513963e145df49a2e7ac278d53 | 3 | 4 | 3592.905339 | -| terp1yx509ygr4msmus0djhllxw0qa0u482v7c7rdqe | 0x21a8f29103aee1be41ed95fff339e0ebf953a99e | 3 | 4 | 3592.905339 | -| terp1uflgny8zn8e95qzjk6u67t58keu5l5j6pej4yv | 0xe27e8990e299f25a0052b6b9af2e87b6794fd25a | 3 | 4 | 3592.905339 | -| terp1d0kuyrf99gdwydcly5x4dxnqyhdqyg47k7jqd7 | 0x6bedc20d252a1ae2371f250d569a6025da0222be | 3 | 4 | 3592.905339 | -| terp1zq5k0tlg6x6jgex3ys6jga2lw93c3ulwrk3053 | 0x102967afe8d1b52464d1243524755f716388f3ee | 3 | 4 | 3592.905339 | -| terp16u7ckwqcgnszgr3u0550uc2neml3s4r3yr0cc2 | 0xd73d8b381844e0240e3c7d28fe6153ceff185471 | 3 | 4 | 3592.905339 | -| terp154tjhwky5ve8qz6w6ckd5tc24p4c34txhgm4aj | 0xa5572bbac4a332700b4ed62cda2f0aa86b88d566 | 3 | 4 | 3592.905339 | -| terp15ar0f0zz2kf3au6sjeuys40u4g6llmsy86ss8z | 0xa746f4bc4255931ef35096784855fcaa35ffee04 | 3 | 4 | 3592.905339 | -| terp1hz6ux54vjz5nhkemef9unlyp0gyl77cq49fvxj | 0xb8b5c352ac90a93bdb3bca4bc9fc817a09ff7b00 | 3 | 4 | 3592.905339 | -| terp15eta83vjw5nahk8nuyu99t9m7j7c8pt7h474ra | 0xa657d3c5927527dbd8f3e13852acbbf4bd83857e | 3 | 4 | 3592.905339 | -| terp14cqswx2n2u53qzcsuktyl25szfxvvjntpmcvcy | 0xae010719535729100b10e5964faa90124cc64a6b | 3 | 4 | 3592.905339 | -| terp124t2jg8jpxd5gzmfnyleqtelh3q92wgyqyvxwf | 0x5556a920f2099b440b69993f902f3fbc40553904 | 3 | 4 | 3592.905339 | -| terp12pw6jkuwd5xn9ql8x78k8ull8rpuyxpq6n43e4 | 0x505da95b8e6d0d3283e7378f63f3ff38c3c21820 | 3 | 4 | 3592.905339 | -| terp14k3fla2aswegknuqsrajauyshaa2vru37h743w | 0xada29ff55d83b28b4f8080fb2ef090bf7aa60f91 | 3 | 4 | 3592.905339 | -| terp1lwh8u0grh6zuzv5ssg55hjnl3wu8u26776xm4j | 0xfbae7e3d03be85c1329082294bca7f8bb87e2b5e | 3 | 4 | 3592.905339 | -| terp1en5nwrf29l2mg6uakxfp86gy3dd5tsaml3urrj | 0xcce9370d2a2fd5b46b9db19213e9048b5b45c3bb | 3 | 4 | 3592.905339 | -| terp1kx30ftle2z4wlqgf4s0nhl5ajanl8ssvadkzsd | 0xb1a2f4aff950aaef8109ac1f3bfe9d9767f3c20c | 3 | 4 | 3592.905339 | -| terp105zrhx8kt50sauctm52a4y2fhp53vtnchq25x8 | 0x7d043b98f65d1f0ef30bdd15da9149b869162e78 | 3 | 4 | 3592.905339 | -| terp1l4djlnpfs6vcxxs5e653xygjkddwhe768wacdn | 0xfd5b2fcc298699831a14cea9131112b35aebe7da | 3 | 4 | 3592.905339 | -| terp1dhdfd9nms3zdz690q70hd3f5k9lzycs0u8keyc | 0x6dda96967b8444d168af079f76c534b17e22620f | 3 | 4 | 3592.905339 | -| terp1jhzvqxdvd7sz5sm24xwgacmcuv548yc67w6zr8 | 0x95c4c019ac6fa02a436aa99c8ee378e32953931a | 3 | 4 | 3592.905339 | -| terp1h3c3zvyfsfwr0r3mmx6ju9hd29lh07g27z8f9l | 0xbc71113089825c378e3bd9b52e16ed517f77f90a | 3 | 4 | 3592.905339 | -| terp1t2pru2why9ejkpzxcgvfv4efj93mtymrnmgu7r | 0x5a823e29d721732b0446c2189657299163b59363 | 3 | 4 | 3592.905339 | -| terp1gtlrl269ayywc548qse9cqqp35av784pmdjutq | 0x42fe3fab45e908ec52a704325c00018d3acf1ea1 | 3 | 4 | 3592.905339 | -| terp152n6m32qn7xuay4txz4xykvdaasyap5as4mc6u | 0xa2a7adc5409f8dce92ab30aa62598def604e869d | 3 | 4 | 3592.905339 | -| terp1f4dnke5m2mykenacewyzluns06mp36z59duvxw | 0x4d5b3b669b56c96ccfb8cb882ff2707eb618e854 | 3 | 4 | 3592.905339 | -| terp1p8dmhl2vuws2rapap2w3qry22du8qvp8m70atm | 0x09dbbbfd4ce3a0a1f43d0a9d100c8a5378703027 | 3 | 4 | 3592.905339 | -| terp1xqhnpvrhy57vgpgrsyuwea44pqykdlhptfsl3h | 0x302f30b077253cc405038138ecf6b5080966fee1 | 3 | 4 | 3592.905339 | -| terp1h6nm07n0sq0h0p9amv5vvdksylucjy30vd7n3g | 0xbea7b7fa6f801f7784bddb28c636d027f989122f | 3 | 4 | 3592.905339 | -| terp1v4j5zyku3ja85j9efsmz70qgxrsjecg7fnusp3 | 0x65654112dc8cba7a48b94c362f3c0830e12ce11e | 3 | 4 | 3592.905339 | -| terp1gdf7xwne85746uxhq3cad4kwtc3f7xu2hes3ll | 0x4353e33a793d3d5d70d70471d6d6ce5e229f1b8a | 3 | 4 | 3592.905339 | -| terp18kckyy78ekav6yhejgvaukmdnd7w2298qmt3f0 | 0x3db16213c7cdbacd12f99219de5b6d9b7ce528a7 | 3 | 4 | 3592.905339 | -| terp1gs8kv8hrxwjsf8nlrp4rlpdj6daqnvkfx3w7kr | 0x440f661ee333a5049e7f186a3f85b2d37a09b2c9 | 3 | 4 | 3592.905339 | -| terp1jtxjvvzvgaw8vwqs0hhgc6n7s06fn2n0253558 | 0x92cd26304c475c7638107dee8c6a7e83f499aa6f | 3 | 4 | 3592.905339 | -| terp1svns6tteul9xlllmxr87f55n7s03wrhsyqs8mg | 0x83270d2d79e7ca6ffffb30cfe4d293f41f170ef0 | 3 | 4 | 3592.905339 | -| terp1uremqd2angajj0peq6jzpxcl8qh099j0q0vphp | 0xe0f3b0355d9a3b293c3906a4209b1f382ef2964f | 3 | 4 | 3592.905339 | -| terp122t5x57658rwqtu5nkhla3aj7mgxrtefh7wa5l | 0x52974353daa1c6e02f949daffec7b2f6d061af29 | 3 | 4 | 3592.905339 | -| terp1q040pxp0g2htf2gtua43dd7ksuy5er2sfn0m0w | 0x03eaf0982f42aeb4a90be76b16b7d687094c8d50 | 3 | 4 | 3592.905339 | -| terp1dhmfnz6u9kcr96aqerqnkeuzdc4a3smecrn43c | 0x6df6998b5c2db032eba0c8c13b67826e2bd8c379 | 3 | 4 | 3592.905339 | -| terp1zywzqs4jlklj46tkqsfkw4dcschgknkkdssj37 | 0x111c2042b2fdbf2ae97604136755b8862e8b4ed6 | 3 | 4 | 3592.905339 | -| terp14sr223d9d7rkpfmdqurntjjp2uxp8rhauna55c | 0xac06a545a56f8760a76d070735ca41570c138efd | 3 | 4 | 3592.905339 | -| terp1zqren0nw9mt0lc3gck525l8fp349vuq7ckt3zs | 0x100799be6e2ed6ffe228c5a8aa7ce90c6a56701e | 3 | 4 | 3592.905339 | -| terp1vzp6ksvtx6qapsvhkxed9u45354xjw0utryrp9 | 0x6083ab418b3681d0c197b1b2d2f2b48d2a6939fc | 3 | 4 | 3592.905339 | -| terp1gsx4ptyc540e5e903ma0nlhqq7nzz0pkfvznqz | 0x440d50ac98a55f9a64af8efaf9fee007a6213c36 | 3 | 4 | 3592.905339 | -| terp1t3e9hpwxpus8ekwx3cmzjvrnu5crz3arxe6ngr | 0x5c725b85c60f207cd9c68e36293073e5303147a3 | 3 | 4 | 3592.905339 | -| terp129cr5hkpah9fmy2yd37yjcf8ny26jhl7qn3qss | 0x51703a5ec1edca9d91446c7c4961279915a95ffe | 3 | 4 | 3592.905339 | -| terp1m5hrs8l5qp9jjgp0dctdwwv87cyns34ygek78x | 0xdd2e381ff4004b29202f6e16d73987f6093846a4 | 3 | 4 | 3592.905339 | -| terp1ftyktgt6dw6r6v9g3vlnhs6lculuwfa8wfygw7 | 0x4ac965a17a6bb43d30a88b3f3bc35fc73fc727a7 | 3 | 4 | 3592.905339 | -| terp15wxw47cgemrc0akag5p3enwyzw3fcwwjrkzst3 | 0xa38ceafb08cec787f6dd45031ccdc413a29c39d2 | 3 | 4 | 3592.905339 | -| terp1xwt4kh8h2azq4kplxpfxaw9t6jngq6hswfa7v8 | 0x33975b5cf757440ad83f30526eb8abd4a6806af0 | 3 | 4 | 3592.905339 | -| terp1usswsatz7u9dlu9xfa730xmthyv7fjvxxd6gch | 0xe420e87562f70adff0a64f7d179b6bb919e4c986 | 3 | 4 | 3592.905339 | -| terp1ywmdhtmrn9cg0epledquj5ex7zlg0pajjhye6a | 0x23b6dbaf63997087e43fcb41c95326f0be8787b2 | 3 | 4 | 3592.905339 | -| terp17nn9g6rl04c3wqn8rtauua3my0lakfvlt76c64 | 0xf4e654687f7d711702671afbce763b23ffdb259f | 3 | 4 | 3592.905339 | -| terp1jaedyxksj2gc6gf0qtlqfnf4c3gwm8jztcrm3m | 0x9772d21ad092918d212f02fe04cd35c450ed9e42 | 3 | 4 | 3592.905339 | -| terp1adhxf37nck8dawpfm7zl4zmgg5h2jlzmdxmtqw | 0xeb6e64c7d3c58edeb829df85fa8b68452ea97c5b | 3 | 4 | 3592.905339 | -| terp1s4ur2pyx4hswr8nddpwew0tu2agkeumwshd6jq | 0x8578350486ade0e19e6d685d973d7c57516cf36e | 3 | 4 | 3592.905339 | -| terp1cyhzxy2tftfq2hl7fxlahvma6adjahw05jzevc | 0xc12e23114b4ad2055ffe49bfdbb37dd75b2eddcf | 3 | 4 | 3592.905339 | -| terp1v9qe59862cfllgegd6aljhzukdctn3n3fj8rjv | 0x61419a14fa5613ffa3286ebbf95c5cb370b9c671 | 3 | 4 | 3592.905339 | -| terp104cvcgwssjp40q2ux9h846k6jpgkzaslguaqmr | 0x7d70cc21d0848357815c316e7aeada905161761f | 3 | 4 | 3592.905339 | -| terp1rg56wyykwe0fcq7lax2lz7g2r68sqlzgpmhnpa | 0x1a29a71096765e9c03dfe995f1790a1e8f007c48 | 3 | 4 | 3592.905339 | -| terp13jm7fgzr22qq7m9mchz30j06kfme5r06sl6x62 | 0x8cb7e4a04352800f6cbbc5c517c9fab2779a0dfa | 3 | 4 | 3592.905339 | -| terp1ust6r2wremtnx3avxnc6dfdvqqv6yfnpr6a7j0 | 0xe417a1a9c3ced73347ac34f1a6a5ac0019a22661 | 3 | 4 | 3592.905339 | -| terp1aly5rn843cxsz99has3l7vt3mpk2jacysfm56r | 0xefc941ccf58e0d0114b7ec23ff3171d86ca97704 | 3 | 4 | 3592.905339 | -| terp1hkh9xhlg345rzm7fw05eqhntuvw454etckjc67 | 0xbdae535fe88d68316fc973e9905e6be31d5a572b | 3 | 4 | 3592.905339 | -| terp1u2m9dzl0cxhjjqylchetrfj7l7l6m73yeytgap | 0xe2b6568befc1af29009fc5f2b1a65effbfadfa24 | 3 | 4 | 3592.905339 | -| terp1l6ldvm7ufwa40rn46guxa3ukmvskhnuwjxtmkf | 0xfebed66fdc4bbb578e75d2386ec796db216bcf8e | 3 | 4 | 3592.905339 | -| terp1wtjxg5muj489g50fdde9lhezzpwu7nl5zp96yw | 0x72e464537c954e5451e96b725fdf22105dcf4ff4 | 3 | 4 | 3592.905339 | -| terp1yf8yf3yx8chvd330dq5t0jymnvkgetv7lz5tmx | 0x224e44c4863e2ec6c62f6828b7c89b9b2c8cad9e | 3 | 4 | 3592.905339 | -| terp1r3g6gpudvq9ju0gqwkue5nykr5j7esr4w0fqls | 0x1c51a4078d600b2e3d0075b99a4c961d25ecc075 | 3 | 4 | 3592.905339 | -| terp1ms460ryxgu5csjhezgl3xcr6vj8sx8fsyevne8 | 0xdc2ba78c864729884af9123f13607a648f031d30 | 3 | 4 | 3592.905339 | -| terp19hmhxvp8xwyc9j03ghk49k5lkqnt0llvvrzx0j | 0x2df7733027338982c9f145ed52da9fb026b7ffec | 3 | 4 | 3592.905339 | -| terp1hq6msp9f2ttavcgacznfkcyfrzp5jmwwkjrugl | 0xb835b804a952d7d6611dc0a69b60891883496dce | 3 | 4 | 3592.905339 | -| terp1rdq4j9gqz550yzu3fzhmtyk4g3d3zg9238ryjs | 0x1b415915001528f20b9148afb592d5445b1120aa | 3 | 4 | 3592.905339 | -| terp1yaq00ptmnsrk3feslwgxgd82y06csdfqjk97gl | 0x2740f7857b9c0768a730fb906434ea23f5883520 | 3 | 4 | 3592.905339 | -| terp12hjwyxctzzj4wpg20u2hqz0lm6kca86mtudpj5 | 0x55e4e21b0b10a557050a7f157009ffdead8e9f5b | 3 | 4 | 3592.905339 | -| terp13humywge5x8rjsjeagtyagx9tta70fvnfnf5k7 | 0x8df9b23919a18e394259ea164ea0c55afbe7a593 | 3 | 4 | 3592.905339 | -| terp1d3cesdsstpuhsdmqaths828qq3yza5eu2a7llf | 0x6c719836105879783760eaef03a8e004482ed33c | 3 | 4 | 3592.905339 | -| terp1knsz0cy4v0txlypk8t9t4a0z5mx5q70a5ky605 | 0xb4e027e09563d66f90363acabaf5e2a6cd4079fd | 3 | 4 | 3592.905339 | -| terp1hd5plq7hsc079c63mmnpq2f04747xst4ay9yq2 | 0xbb681f83d7861fe2e351dee610292fafabe34175 | 3 | 4 | 3592.905339 | -| terp1jtdekfe7m4na43u64d9fe5xew0u2thzu5d230c | 0x92db9b273edd67dac79aab4a9cd0d973f8a5dc5c | 3 | 4 | 3592.905339 | -| terp14fcya34qklcq9c4wg3ru2tkq265wkm6qsstydj | 0xaa704ec6a0b7f002e2ae4447c52ec056a8eb6f40 | 3 | 4 | 3592.905339 | -| terp1h2r6j9v423dsn5plp4ly4c0374704tdhuadccs | 0xba87a91595545b09d03f0d7e4ae1f1f57cfaadb7 | 3 | 4 | 3592.905339 | -| terp1eqqc7udme3pvdfgdfyntr2g8xjpfqe54ws2wqh | 0xc8018f71bbcc42c6a50d4926b1a9073482906695 | 3 | 4 | 3592.905339 | -| terp1k5l8p5pn2xuj8yytagr6a5acshxxshu8sxq6e4 | 0xb53e70d03351b923908bea07aed3b885cc685f87 | 3 | 4 | 3592.905339 | -| terp17y59yk93ly9ljsj89jppezersyffs68feldjfe | 0xf1285258b1f90bf942472c821c8b2381129868e9 | 3 | 4 | 3592.905339 | -| terp1xt30xyxa9xt2cdl7pn39tewwrs0leknkx3ysrs | 0x32e2f310dd2996ac37fe0ce255e5ce1c1ffcda76 | 3 | 4 | 3592.905339 | -| terp1farn2k2j4t843s8lyhvkez9hrredk2ccf4xuhh | 0x4f47355952aacf58c0ff25d96c88b718f2db2b18 | 3 | 4 | 3592.905339 | -| terp1xw052vgmg5s0x87dq4qaf3ypl0addl3j7c5h67 | 0x339f45311b4520f31fcd0541d4c481fbfad6fe32 | 3 | 4 | 3592.905339 | -| terp1yam2qtlgq3k7c4d3m785sfwatw6qmjkll3xfhk | 0x2776a02fe8046dec55b1df8f4825dd5bb40dcadf | 3 | 4 | 3592.905339 | -| terp1eqgnhlgqtdxzmc6jzt482q6hqq5xs4y0tq4fvz | 0xc8113bfd005b4c2de35212ea750357002868548f | 3 | 4 | 3592.905339 | -| terp1kqmww2zf2ydys8tdz3nm478xkxllgrvfxdtwcv | 0xb036e72849511a481d6d1467baf8e6b1bff40d89 | 3 | 4 | 3592.905339 | -| terp122ejeqelsvl2hdms8dge9h4aaphm0cjw7529n8 | 0x52b32c833f833eabb7703b5192debde86fb7e24e | 3 | 4 | 3592.905339 | -| terp1l0q324un900gdanjkmd5sscuxzlnvdtr0rlqjz | 0xfbc11557932bde86f672b6db48431c30bf363563 | 3 | 4 | 3592.905339 | -| terp1xhv2h4f99kvp9lytkpfwxwprardvyuxeesvaf6 | 0x35d8abd5252d9812fc8bb052e33823e8dac270d9 | 3 | 4 | 3592.905339 | -| terp15qew44fhrj9gzgvf2qhd0yecgfl0ueyd8gyml7 | 0xa032ead5371c8a812189502ed79338427efe648d | 3 | 4 | 3592.905339 | -| terp1xua29jg6sh9evsnjluln6fw5tk3gnk6llgwzn6 | 0x373aa2c91a85cb964272ff3f3d25d45da289db5f | 3 | 4 | 3592.905339 | -| terp1js33pc2es48tgq7ysjz07ylgmckpsruyqcvwte | 0x942310e159854eb403c48484ff13e8de2c180f84 | 3 | 4 | 3592.905339 | -| terp1yh3zfmu2vw9la50plds58lwyjeh9swdn83f7kc | 0x25e224ef8a638bfed1e1fb6143fdc4966e5839b3 | 3 | 4 | 3592.905339 | -| terp1vddgr24k9e8dap2820a653zyj99gqremwhl9wx | 0x635a81aab62e4ede854753fbaa4444914a800f3b | 3 | 4 | 3592.905339 | -| terp1whly0ykgq99n3amxa59lyjx7r4yvanhmrkss4y | 0x75fe4792c8014b38f766ed0bf248de1d48cecefb | 3 | 4 | 3592.905339 | -| terp1u65aqtk4hgt6w3zqhr2teqk3hntf3h9relcuhj | 0xe6a9d02ed5ba17a74440b8d4bc82d1bcd698dca3 | 3 | 4 | 3592.905339 | -| terp1fu7qnrjj5avrgv63c7qc0xyhf6e7lxggmftj5v | 0x4f3c098e52a758343351c7818798974eb3ef9908 | 3 | 4 | 3592.905339 | -| terp1ljcqr6mvrpeakjgwxsdcqmtrt29fu0fsq4pwkw | 0xfcb001eb6c1873db490e341b806d635a8a9e3d30 | 2 | 4 | 3592.905339 | -| terp1xq07n3vycdc55kvzhq9q5m0av4j7n8yt39mheh | 0x301fe9c584c3714a5982b80a0a6dfd6565e99c8b | 2 | 4 | 3592.905339 | -| terp1unv8vftu9tgg2uehydx4dh6jnrqj6yfjgvty8r | 0xe4d876257c2ad0857337234d56df5298c12d1132 | 2 | 4 | 3592.905339 | -| terp1j8j5tuy6s5vuc42kw2tyhr7rsyr5p8n9ay7ul7 | 0x91e545f09a8519cc555672964b8fc38107409e65 | 2 | 4 | 3592.905339 | -| terp17skypm45jxpkqc9dy3md96xy4z00qacgrug6ps | 0xf42c40eeb491836060ad2476d2e8c4a89ef07708 | 2 | 4 | 3592.905339 | -| terp15sdyhpxhfcy9h4rr8pk4tsakmhn25f6etkfhjx | 0xa41a4b84d74e085bd463386d55c3b6dde6aa2759 | 2 | 4 | 3592.905339 | -| terp1ps60jms08994gve69qs7pedxyu8phqskfd9rxw | 0x0c34f96e0f394b54333a2821e0e5a6270e1b8216 | 2 | 4 | 3592.905339 | -| terp166v7vunvuqjcuwy4l4ypv0x7xcgxxzfyx55gyl | 0xd699e6726ce0258e3895fd48163cde3610630924 | 2 | 4 | 3592.905339 | -| terp1v9h00lh2mztvec29g7kl0fj5fds3njp3uxjrme | 0x616ef7feead896cce14547adf7a6544b6119c831 | 2 | 4 | 3592.905339 | -| terp18w7099ezn8nd5hhcxzhhs7g78fldwfudendqfz | 0x3bbcf2972299e6da5ef830af78791e3a7ed7278d | 2 | 4 | 3592.905339 | -| terp123lz88nwlnn8uttk07q55ehu5v3fm9ytagnvs4 | 0x547e239e6efce67e2d767f814a66fca3229d948b | 2 | 4 | 3592.905339 | -| terp1lylq68gqgmdddmuelwjjg9g6gm6z5p8gy5gp86 | 0xf93e0d1d0046dad6ef99fba524151a46f42a04e8 | 2 | 4 | 3592.905339 | -| terp13uhvlw6d52hnkqltm3fhpcua982ks97fg8gdnl | 0x8f2ecfbb4da2af3b03ebdc5370e39d29d56817c9 | 2 | 4 | 3592.905339 | -| terp1ymysj3f5e05fmce5un6jd9h6u8pxha8lp654ey | 0x26c9094534cbe89de334e4f52696fae1c26bf4ff | 2 | 4 | 3592.905339 | -| terp1sksyepscky9avqhg87qtrkz0u6c82wjaj44zhn | 0x85a04c8618b10bd602e83f80b1d84fe6b0753a5d | 2 | 4 | 3592.905339 | -| terp1desc2x4yxyhph6sgucl0vqmu246clv6vdnprys | 0x6e61851aa4312e1bea08e63ef6037c55758fb34c | 2 | 4 | 3592.905339 | -| terp1my326xlwsyajjwxdxsyyz8h3xd65w0f2cqn3rx | 0xd922ad1bee813b2938cd3408411ef13375473d2a | 2 | 4 | 3592.905339 | -| terp1h6kpku7exsdd4fzdca8dxkmln92mlhghulydl6 | 0xbeac1b73d9341adaa44dc74ed35b7f9955bfdd17 | 2 | 4 | 3592.905339 | -| terp1u4dwzxwruf6h0xnqyfrds2qk4pjdqe8wt6r7ct | 0xe55ae119c3e275779a602246d82816a864d064ee | 2 | 4 | 3592.905339 | -| terp130nh70wv98n28m7mawagpkqj2ucj2fwyvuapj9 | 0x8be77f3dcc29e6a3efdbebba80d81257312525c4 | 2 | 4 | 3592.905339 | -| terp1dr9487z26hujh6gtkg0ygzftp674r9lztzqu84 | 0x68cb53f84ad5f92be90bb21e44092b0ebd5197e2 | 2 | 4 | 3592.905339 | -| terp10vq598j6mc3vtdqq9ux69pm3069dq5m44gjazt | 0x7b01429e5ade22c5b4002f0da287717e8ad05375 | 2 | 4 | 3592.905339 | -| terp1z34gvpdu972nkvwqf9cfpkalmlss8ajugutuam | 0x146a8605bc2f953b31c0497090dbbfdfe103f65c | 2 | 4 | 3592.905339 | -| terp1rnexv0uhu4fp95glj9up9m723f3nycs8qeqg6w | 0x1cf2663f97e55212d11f917812efca8a63326207 | 2 | 4 | 3592.905339 | -| terp15hcvdxx20pvt0nhrzcfl7tqn8ehfdpy9eu4upv | 0xa5f0c698ca7858b7cee31613ff2c133e6e968485 | 2 | 4 | 3592.905339 | -| terp17r8erp5redkfctdufrmhl4fh0aqpu3mdyhfvae | 0xf0cf918683cb6c9c2dbc48f77fd5377f401e476d | 2 | 4 | 3592.905339 | -| terp1vft7csjua2g8ljugsxvy7mq7vt98tqxrhshp3t | 0x6257ec425cea907fcb8881984f6c1e62ca7580c3 | 2 | 4 | 3592.905339 | -| terp1h5a8zxfw00t7cszvquqdja9tmew5urvpz7u52r | 0xbd3a71192e7bd7ec404c0700d974abde5d4e0d81 | 2 | 4 | 3592.905339 | -| terp16ujdekgufqgtsauv4yhfh8qfxk5ask3qkpahg3 | 0xd724dcd91c4810b8778ca92e9b9c0935a9d85a20 | 2 | 4 | 3592.905339 | -| terp17g6yes8gu2k9k3h8cara8yd90q6ryjgedqtrky | 0xf2344cc0e8e2ac5b46e7c747d391a57834324919 | 2 | 4 | 3592.905339 | -| terp1c2fypn0yrj2e68kdxf84e3uk89xsftrqpqjdq2 | 0xc29240cde41c959d1ecd324f5cc796394d04ac60 | 2 | 4 | 3592.905339 | -| terp1rfhqxphrmzeje6glt93fxq6t8gtwffza74h4vm | 0x1a6e0306e3d8b32ce91f596293034b3a16e4a45d | 2 | 4 | 3592.905339 | -| terp1m0cp5ac9g5ghpcger565a60tssj97jrpzjkzln | 0xdbf01a7705451170e1191d354ee9eb84245f4861 | 2 | 4 | 3592.905339 | -| terp1xwwzmkhj2vk5p76n3ptjvy5npaw5z5suj6mmtf | 0x339c2ddaf2532d40fb5388572612930f5d41521c | 2 | 4 | 3592.905339 | -| terp1d9k98ukzza5765dxkeg56ftkxs3fsp23h9v636 | 0x696c53f2c21769ed51a6b6514d25763422980551 | 2 | 4 | 3592.905339 | -| terp1d64mn0xmz2gvu2ye2zel0dzkde6qv8nlv976gd | 0x6eabb9bcdb1290ce289950b3f7b4566e74061e7f | 2 | 4 | 3592.905339 | -| terp18h5k5v99l6xhj2v9wc8lmt76x92e67uq2qkhts | 0x3de96a30a5fe8d792985760ffdafda31559d7b80 | 2 | 4 | 3592.905339 | -| terp1c7ftrgwdg433k7uayy70zz9pdh35a6wfcngwxd | 0xc792b1a1cd45631b7b9d213cf108a16de34ee9c9 | 2 | 4 | 3592.905339 | -| terp1rz5cykl2c68g7unanvwawsle7gmyxulw65ghx9 | 0x18a9825beac68e8f727d9b1dd743f9f2364373ee | 2 | 4 | 3592.905339 | -| terp1jtc43j7mwvwsrlmvqtaxql83pxrfzhm8tzjpff | 0x92f158cbdb731d01ff6c02fa607cf10986915f67 | 2 | 4 | 3592.905339 | -| terp1allax8tnymwfwftwrhsf5e5m5v9ej40j5upyrz | 0xefffd31d7326dc97256e1de09a669ba30b9955f2 | 2 | 4 | 3592.905339 | -| terp1k5mdh2av0c7a3qagjq9jfg5mvh2g6vlwh0z2ku | 0xb536dbabac7e3dd883a8900b24a29b65d48d33ee | 2 | 4 | 3592.905339 | -| terp16ylclg5d96p97qwtv923ld6mk8xpvjyyjzqvje | 0xd13f8fa28d2e825f01cb61551fb75bb1cc164884 | 2 | 4 | 3592.905339 | -| terp1smfnhwlkekal4w48a6wfjv3dpuahpdnrw50w2m | 0x86d33bbbf6cdbbfabaa7ee9c99322d0f3b70b663 | 2 | 4 | 3592.905339 | -| terp1qn0sjq2z9qecykh34ypznz46uc7rzlxny3kks2 | 0x04df0901422833825af1a902298abae63c317cd3 | 2 | 4 | 3592.905339 | -| terp13wr6w8urk0k2nm3synnennn68ltxpl4hq0k0wj | 0x8b87a71f83b3eca9ee3024e799ce7a3fd660feb7 | 2 | 4 | 3592.905339 | -| terp1dtvnkta6zl5fuqyrrnf558ee4cy3mmcvj0a2kq | 0x6ad93b2fba17e89e00831cd34a1f39ae091def0c | 2 | 4 | 3592.905339 | -| terp1axcqe2lfg6a9lj5yt3wv3e0gzvured253nzlx8 | 0xe9b00cabe946ba5fca845c5cc8e5e813383cb554 | 2 | 4 | 3592.905339 | -| terp1rqw0vdn98dhy3dav8tuzuem4qcxu9na2yekr8j | 0x181cf636653b6e48b7ac3af82e6775060dc2cfaa | 2 | 4 | 3592.905339 | -| terp1ly4ykdvvqajnnzm5mqwkrhjqzl7j7gqwze3a2x | 0xf92a4b358c0765398b74d81d61de4017fd2f200e | 2 | 4 | 3592.905339 | -| terp19w7wtrhefzxxn0wgnpq2qfm48qqtxc6tm3slv9 | 0x2bbce58ef9488c69bdc89840a027753800b3634b | 2 | 4 | 3592.905339 | -| terp14lv0u03z7yndmh7q7h2d230wnzf6wmq6jtes02 | 0xafd8fe3e22f126dddfc0f5d4d545ee9893a76c1a | 2 | 4 | 3592.905339 | -| terp16qalfsej9excvxpdwa9cyst902kuf4nxgs6v80 | 0xd03bf4c3322e4d86182d774b8241657aadc4d666 | 2 | 4 | 3592.905339 | -| terp12ur49yt8ethce0l6hckyhxssnxwx6lnl9fej4m | 0x5707529167caef8cbffabe2c4b9a10999c6d7e7f | 2 | 4 | 3592.905339 | -| terp1yc497lrxaa9frgpjjdsv5w63gsrwpw0yc327vf | 0x262a5f7c66ef4a91a0329360ca3b514406e0b9e4 | 2 | 4 | 3592.905339 | -| terp1lt7khax8ve7kuwgkg7n5lfrt03l9letg5mfpmk | 0xfafd6bf4c7667d6e391647a74fa46b7c7e5fe568 | 2 | 4 | 3592.905339 | -| terp1svd5unj6whffrpve2a2u3psz8z63m2wfxhgds2 | 0x831b4e4e5a75d29185995755c8860238b51da9c9 | 2 | 4 | 3592.905339 | -| terp1zm0805t589sw26d2kyll5pgzdmvm5vqp3vt4qx | 0x16de77d1743960e569aab13ffa05026ed9ba3001 | 2 | 4 | 3592.905339 | -| terp1mthm0lq283vc5ufcencmkvww0tta59k2lyl89x | 0xdaefb7fc0a3c598a7138ccf1bb31ce7ad7da16ca | 2 | 4 | 3592.905339 | -| terp1ettqp3hgr2wrl9synuquy2c2pj0sn8e7st70lm | 0xcad600c6e81a9c3f96049f01c22b0a0c9f099f3e | 2 | 4 | 3592.905339 | -| terp1jtdhf0dvkzmqh68ae9wwmpts80w7ssewaqnyad | 0x92db74bdacb0b60be8fdc95ced85703bdde8432e | 2 | 4 | 3592.905339 | -| terp12uy043tua8wrav4sj2k0z9gjrezcnysww70xk3 | 0x5708fac57ce9dc3eb2b092acf115121e4589920e | 2 | 4 | 3592.905339 | -| terp1j423ea3l272zs74j4d8lmvas0v7lx9czk84dtp | 0x95551cf63f5794287ab2ab4ffdb3b07b3df31702 | 2 | 4 | 3592.905339 | -| terp13gr8kwe5nsesnqpeqjtuxqff5pdrqn8x4x4wje | 0x8a067b3b349c330980390497c30129a05a304ce6 | 2 | 4 | 3592.905339 | -| terp1jjaglzg6vy0r0qh3zddc4ddq6q39m9jrn47l6f | 0x94ba8f891a611e3782f1135b8ab5a0d0225d9643 | 2 | 4 | 3592.905339 | -| terp1spa5as62gkmucq6cc2sdqm4ramx3vgk5q6zs6u | 0x807b4ec34a45b7cc0358c2a0d06ea3eecd1622d4 | 2 | 4 | 3592.905339 | -| terp1leaplx8tvszuzejyfqe4klmthym5890z4a25rx | 0xfe7a1f98eb6405c1664448335b7f6bb9374395e2 | 2 | 4 | 3592.905339 | -| terp19jueeaf23fgxyhz663dj7l6xfwe9nu9axudey8 | 0x2cb99cf52a8a50625c5ad45b2f7f464bb259f0bd | 2 | 4 | 3592.905339 | -| terp1wdessl3eq8dy9g565h2ct7f5xwzlc2ggas7f8w | 0x7373087e3901da42a29aa5d585f9343385fc2908 | 2 | 4 | 3592.905339 | -| terp1vlrvmzr0du5656cjg6vdsnf7gush0w3fagucdj | 0x67c6cd886f6f29aa6b124698d84d3e472177ba29 | 2 | 4 | 3592.905339 | -| terp17usq77j8tdf5g6ssggw749ffn75nrx59jmanuu | 0xf7200f7a475b53446a10421dea95299fa9319a85 | 2 | 4 | 3592.905339 | -| terp1757z2afrwa647p4hr5xxhyt874zs3ahkgwwv99 | 0xf53c25752377755f06b71d0c6b9167f54508f6f6 | 2 | 4 | 3592.905339 | -| terp10m96y5dkxq7w0ze0ek74aaytq6f6a5su82gdkr | 0x7ecba251b6303ce78b2fcdbd5ef48b0693aed21c | 2 | 4 | 3592.905339 | -| terp1hfsmg6mfq7nlm28u6knwn9u0z4yytf3a7g9yr0 | 0xba61b46b6907a7fda8fcd5a6e9978f154845a63d | 2 | 4 | 3592.905339 | -| terp1vdqnv04d62g7jgfarnuaju69yam7c4ymjhwmdx | 0x6341363eadd291e9213d1cf9d973452777ec549b | 2 | 4 | 3592.905339 | -| terp10uu9wza58xrer8hyr9hkdj479dpkzlm0dmz2ll | 0x7f38570bb43987919ee4196f66cabe2b43617f6f | 2 | 4 | 3592.905339 | -| terp1p3sa85yec630c6ke7rhlae97l29q62wl9zzymv | 0x0c61d3d099c6a2fc6ad9f0effee4befa8a0d29df | 2 | 4 | 3592.905339 | -| terp1pk6k96s42uhue7rp4sydsalj28kc4kwg9wv6sl | 0x0db562ea15572fccf861ac08d877f251ed8ad9c8 | 2 | 4 | 3592.905339 | -| terp13u04ylvkn8qlcgqveq4g2hnkghldyh5jvgvym6 | 0x8f1f527d9699c1fc200cc82a855e7645fed25e92 | 2 | 4 | 3592.905339 | -| terp12jqudhx0afn7cntzvqr880pasnl726fg0evhas | 0x5481c6dccfea67ec4d62600673bc3d84ffe56928 | 2 | 4 | 3592.905339 | -| terp1w2mcdlu77m2k52edmh8llxlh3u6nk9zm4vnm7j | 0x72b786ff9ef6d56a2b2dddcfff9bf78f353b145b | 2 | 4 | 3592.905339 | -| terp1zvd2dqufr3f5s29wnrz0wsat5v68dym3c8vqk6 | 0x131aa683891c534828ae98c4f743aba334769371 | 2 | 4 | 3592.905339 | -| terp1vxrzjzeg65gml7t3vvwfzcjy48798887gf4y0c | 0x6186290b28d511bff971631c916244a9fc539cfe | 2 | 4 | 3592.905339 | -| terp1tjzmu48epyrv0xece7suu542fw2z4u36lukz85 | 0x5c85be54f90906c79b38cfa1ce52aa4b942af23a | 2 | 4 | 3592.905339 | -| terp17fz5kcelm2rh2ykvx6z57axxtdmdfjgc0swv2l | 0xf2454b633fda877512cc36854f74c65b76d4c918 | 2 | 4 | 3592.905339 | -| terp1ykeak0ngqvdmd0f3zhppr9r5z26lxdd44k0j39 | 0x25b3db3e68031bb6bd3115c211947412b5f335b5 | 2 | 4 | 3592.905339 | -| terp1dp5s0eyxdac62gp0syllt2xs5k4hgkl57useur | 0x686907e4866f71a5202f813ff5a8d0a5ab745bf4 | 2 | 4 | 3592.905339 | -| terp1wsjkt3llj65frpcx9fewzk37wymmxmwl2zrgkq | 0x742565c7ff96a89187062a72e15a3e7137b36ddf | 2 | 4 | 3592.905339 | -| terp1s6397m5puteaqhf2xtg50qs2n5wdwh234h3te8 | 0x86a25f6e81e2f3d05d2a32d147820a9d1cd75d51 | 2 | 4 | 3592.905339 | -| terp12pzqslds7w8ws3fke78vs5ktx8xmf2x48kmwsg | 0x5044087db0f38ee84536cf8ec852cb31cdb4a8d5 | 2 | 4 | 3592.905339 | -| terp1l46wy76h0mdkp8f5h488567whchgsrtka2ea6g | 0xfd74e27b577edb609d34bd4e7a6bcebe2e880d76 | 2 | 4 | 3592.905339 | -| terp1jle77234zgsrl2ntjt78xx4ep0dmvv06lugfwx | 0x97f3ef2a3512203faa6b92fc731ab90bdbb631fa | 2 | 4 | 3592.905339 | -| terp1pphs7hfvajqlnltfxv4z4tygwgvglhvd2f6evt | 0x086f0f5d2cec81f9fd69332a2aac8872188fdd8d | 2 | 4 | 3592.905339 | -| terp1n6dhwt8av5pjxj6tuv0rj85stlh024m8965cxg | 0x9e9b772cfd6503234b4be31e391e905feef55767 | 2 | 4 | 3592.905339 | -| terp1x5swpxj3zgm0jt3u3f99q5asdjxeqymxe6jd7m | 0x3520e09a511236f92e3c8a4a5053b06c8d901366 | 2 | 4 | 3592.905339 | -| terp1l9c6x2scxaa2epsrnrgpp4mvfzdnuj6v8jhkmk | 0xf971a32a18377aac860398d010d76c489b3e4b4c | 2 | 4 | 3592.905339 | -| terp1n5serr374c73scwg4ee3a0xpk6us6ea032k7gy | 0x9d21918e3eae3d1861c8ae731ebcc1b6b90d67af | 2 | 4 | 3592.905339 | -| terp1q2l6rh5wm09kyd5jr5ztw9gjh0lpjudx8q5s6n | 0x02bfa1de8edbcb6236921d04b71512bbfe1971a6 | 2 | 4 | 3592.905339 | -| terp1wwxld07hz8gyg9k659d3pccflh6a6k29thun6r | 0x738df6bfd711d04416daa15b10e309fdf5dd5945 | 2 | 4 | 3592.905339 | -| terp1c3kyay24lmtgtyprmyhesepl4hzfkck9m9h8qt | 0xc46c4e9155fed6859023d92f98643fadc49b62c5 | 2 | 4 | 3592.905339 | -| terp1g0c0uyxcmj48sjrmdw97mq7a8v3s52fu9trwn3 | 0x43f0fe10d8dcaa78487b6b8bed83dd3b230a293c | 2 | 4 | 3592.905339 | -| terp147cnz75ee53pwhas3e68xfz7r50vw94xxmd026 | 0xafb1317a99cd22175fb08e7473245e1d1ec716a6 | 2 | 4 | 3592.905339 | -| terp1muu9ze5v7mepyh9kp4kg6v7mrz7tgnrflhfqpk | 0xdf3851668cf6f2125cb60d6c8d33db18bcb44c69 | 2 | 4 | 3592.905339 | -| terp1l54lzwlsuft8h7eyf3mvfcru5uw4u20k2t55gh | 0xfd2bf13bf0e2567bfb244c76c4e07ca71d5e29f6 | 2 | 4 | 3592.905339 | -| terp1393pkqmumtek9x4e4fs8nlqt6a76k3h7x8y9ud | 0x89621b037cdaf3629ab9aa6079fc0bd77dab46fe | 2 | 4 | 3592.905339 | -| terp1hhdwdea8k9swtyc8hjpsv7v47l3ss2yxye3fmf | 0xbddae6e7a7b160e59307bc83067995f7e3082886 | 2 | 4 | 3592.905339 | -| terp16eg7933xacsslsuxwcfy65q84jpz446fxpatxd | 0xd651e2c626ee210fc38676124d5007ac822ad749 | 2 | 4 | 3592.905339 | -| terp1kwdwwwvacv2ae3y4jzc6g8nls47qx65mqrpyh9 | 0xb39ae7399dc315dcc49590b1a41e7f857c036a9b | 2 | 4 | 3592.905339 | -| terp1l5vxp9a4qdc0gqxsks5tn40lxz6ytgdd465cvu | 0xfd186097b50370f400d0b428b9d5ff30b445a1ad | 2 | 4 | 3592.905339 | -| terp1wg3wf9k50vy0e0rgdkzl9vve3gsud50wdppksa | 0x7222e496d47b08fcbc686d85f2b1998a21c6d1ee | 2 | 4 | 3592.905339 | -| terp1uy6539s2sg462mrx6hnh8kmfe3s8cdfhjmlqzw | 0xe13548960a822ba56c66d5e773db69cc607c3537 | 2 | 4 | 3592.905339 | -| terp1yjfus6mzarljvgyrny2ys9l09zvvt9rq9fgvsg | 0x2493c86b62e8ff26208399144817ef2898c59460 | 2 | 4 | 3592.905339 | -| terp14zpmvrz745806cztgxnuq5yu834czuu7fd2l8n | 0xa883b60c5ead0efd604b41a7c0509c3c6b81739e | 2 | 4 | 3592.905339 | -| terp1kljj7g9wjudmsgts6ts9wj0rx9cv4mt2xzan3n | 0xb7e52f20ae971bb82170d2e05749e33170caed6a | 2 | 4 | 3592.905339 | -| terp1sxhu7mwhnztuhfyggu0vash5r0el0j5m9p3uyv | 0x81afcf6dd79897cba488471ecec2f41bf3f7ca9b | 2 | 4 | 3592.905339 | -| terp1m5zu7kvc3skzppkmnf03x0yqusm2zuj2zmetwx | 0xdd05cf59988c2c2086db9a5f133c80e436a1724a | 2 | 4 | 3592.905339 | -| terp1n9jyaqsv3jmmvnej7cjf9kex4tulx48vhan75l | 0x99644e820c8cb7b64f32f62492db26aaf9f354ec | 2 | 4 | 3592.905339 | -| terp1ga2fk5h2n2502p3mcakuwj4qgnjwjn442xjn80 | 0x47549b52ea9aa8f5063bc76dc74aa044e4e94eb5 | 2 | 4 | 3592.905339 | -| terp1s7wvufkfdlusts5xr8425amw2dlf279v99x8g6 | 0x879cce26c96ff905c28619eaaa776e537e9578ac | 2 | 4 | 3592.905339 | -| terp18m3za7ajylmrd3ap5p0qc6dq38s2avzkwtf285 | 0x3ee22efbb227f636c7a1a05e0c69a089e0aeb056 | 2 | 4 | 3592.905339 | -| terp1lnag749n24xxeuw8ddwxmxzkf59zs55ftqrqsz | 0xfcfa8f54b3554c6cf1c76b5c6d98564d0a285289 | 2 | 4 | 3592.905339 | -| terp1l27mhqjgyj4arenw9zy8wz7ggd5lmu9mgdj7ps | 0xfabdbb824824abd1e66e2888770bc84369fdf0bb | 2 | 4 | 3592.905339 | -| terp137qg46fjuwtcwdu49vg3h5fnrcz309hpr6upfs | 0x8f808ae932e3978737952b111bd1331e051796e1 | 2 | 4 | 3592.905339 | -| terp1v7n6982csx0s6c36gkgjhv94428zlevx7zww78 | 0x67a7a29d58819f0d623a45912bb0b5aa8e2fe586 | 2 | 4 | 3592.905339 | -| terp1atnmd9a08dpu68zmfwcpa0tz74wg6k34wkprn3 | 0xeae7b697af3b43cd1c5b4bb01ebd62f55c8d5a35 | 2 | 4 | 3592.905339 | -| terp1ks5am83a93y6u4yymx62qjy8gy5ulgne5650qu | 0xb429dd9e3d2c49ae5484d9b4a048874129cfa279 | 2 | 4 | 3592.905339 | -| terp1a2jlkzznhyul0jgv8pytf9u0yvcftz9ueu7acs | 0xeaa5fb0853b939f7c90c3848b4978f23309588bc | 2 | 4 | 3592.905339 | -| terp1934jnlvvuya59w7znp4gwy6g4nrrscte749jcp | 0x2c6b29fd8ce13b42bbc2986a871348acc6386179 | 2 | 4 | 3592.905339 | -| terp1z6t7zped34xjn9rghuwedsph2wgl468lc4qy9d | 0x1697e1072d8d4d299468bf1d96c0375391fae8ff | 2 | 4 | 3592.905339 | -| terp1ksqymeq2ye9m0u0ux8m96esrcz2yec6l02yjn5 | 0xb4004de40a264bb7f1fc31f65d6603c0944ce35f | 2 | 4 | 3592.905339 | -| terp1xf6d38zuylpnhaz073xqy7n0nphyu77ckff96r | 0x3274d89c5c27c33bf44ff44c027a6f986e4e7bd8 | 2 | 4 | 3592.905339 | -| terp18ftmdarldr7rwg030lwgjkmqk8xp5tjqrrs67k | 0x3a57b6f47f68fc3721f17fdc895b60b1cc1a2e40 | 2 | 4 | 3592.905339 | -| terp187vvklm90c5d0rgrrzpyfkffqdmhq8kdhmy6zj | 0x3f98cb7f657e28d78d03188244d9290377701ecd | 2 | 4 | 3592.905339 | -| terp1qcgzcl9vz2p9yz8qucdxs892cp5x53ftne8gkw | 0x06102c7cac12825208e0e61a681caac0686a452b | 2 | 4 | 3592.905339 | -| terp16hmlw0yhlrfz50mtl8cqgasysxgurpygu0mk4u | 0xd5f7f73c97f8d22a3f6bf9f00476048191c18488 | 2 | 4 | 3592.905339 | -| terp1jvpuhvhpeehjexkqlm7u8f6urjpp4dk363j3ke | 0x9303cbb2e1ce6f2c9ac0fefdc3a75c1c821ab6d1 | 2 | 4 | 3592.905339 | -| terp14juqlhf0mzsv3gxhyuehaw8rfcnxwddkj566xc | 0xacb80fdd2fd8a0c8a0d727337eb8e34e266735b6 | 2 | 4 | 3592.905339 | -| terp19498c6l8adp3jmluwqcny5mfs8zl6rfhncqvhu | 0x2d4a7c6be7eb43196ffc703132536981c5fd0d37 | 2 | 4 | 3592.905339 | -| terp1l4h3psxlkqqpj24e8yqnpn87h7x37wf0sx4rm3 | 0xfd6f10c0dfb000192ab9390130ccfebf8d1f392f | 2 | 4 | 3592.905339 | -| terp1p9ahyd5g9a4lxa55275wmzx6rntcqv2pgvtvyy | 0x097b7236882f6bf3769457a8ed88da1cd7803141 | 2 | 4 | 3592.905339 | -| terp1s8q65jle8m9qy2fvkr0634kcd5hm8w34l57ysv | 0x81c1aa4bf93eca02292cb0dfa8d6d86d2fb3ba35 | 2 | 4 | 3592.905339 | -| terp1r47avwhrcykju3k0s09d8rrr5rs3j4cg8ryrgd | 0x1d7dd63ae3c12d2e46cf83cad38c63a0e1195708 | 2 | 4 | 3592.905339 | -| terp1y0vp07s08j0h0ezcsrd7n8kalta4j9pvqylhx7 | 0x23d817fa0f3c9f77e45880dbe99eddfafb59142c | 2 | 4 | 3592.905339 | -| terp17z3mdk4v9zs0ecy57t8jvnsyqdeasmelmz7j85 | 0xf0a3b6daac28a0fce094f2cf264e040373d86f3f | 2 | 4 | 3592.905339 | -| terp1enf593dq9qz7uesnrzlp7tgx9f5dc69p5zl583 | 0xccd342c5a02805ee661318be1f2d062a68dc68a1 | 2 | 4 | 3592.905339 | -| terp19kgz2l5hgpt4mleky20lemsgtksrqhjxklyf6x | 0x2d90257e9740575dff36229ffcee085da0305e46 | 2 | 4 | 3592.905339 | -| terp12efrn7tr6nham5cg8gk4au8naxe4ltz678gpwe | 0x565239f963d4efddd3083a2d5ef0f3e9b35fac5a | 2 | 4 | 3592.905339 | -| terp13sxvsu9j088nu0hm0sk22w3jx8wejhyvz0vmlf | 0x8c0cc870b279cf3e3efb7c2ca53a3231dd995c8c | 2 | 4 | 3592.905339 | -| terp1h9j8lxcvl7vkczkpea4v2ah3z7lunwge42w7z5 | 0xb9647f9b0cff996c0ac1cf6ac576f117bfc9b919 | 2 | 4 | 3592.905339 | -| terp1dssmhk6mpd3jeut6tkuy38xq29x085yl4k35ft | 0x6c21bbdb5b0b632cf17a5db8489cc0514cf3d09f | 2 | 4 | 3592.905339 | -| terp1psaqp6rrhqvde0fmqap23rry39jq6c49cfpl5p | 0x0c3a00e863b818dcbd3b0742a88c6489640d62a5 | 2 | 4 | 3592.905339 | -| terp13wkfla5u4hddcnx6h5hhpmdprzgppkm4ek2uzh | 0x8bac9ff69caddadc4cdabd2f70eda1189010db75 | 2 | 4 | 3592.905339 | -| terp1dlaux3qc3szmss9ak963mclzcktgzwcu7t4f5y | 0x6ffbc344188c05b840bdb1751de3e2c596813b1c | 2 | 4 | 3592.905339 | -| terp1fa2drvz5a6ph0am3ve7q69e5myupuyes8lnrvm | 0x4f54d1b054ee8377f771667c0d1734d9381e1330 | 2 | 4 | 3592.905339 | -| terp10faz42vqxrv8awcvs9d2jccgy9gn2ycsys2yr2 | 0x7a7a2aa98030d87ebb0c815aa963082151351310 | 2 | 4 | 3592.905339 | -| terp1rrw4p9yxsk9vvgkwy97ea54d38jqqhug68aznr | 0x18dd509486858ac622ce217d9ed2ad89e4005f88 | 2 | 4 | 3592.905339 | -| terp1he44mwar6k06dgxr6kahs7496hhy756apvuhd7 | 0xbe6b5dbba3d59fa6a0c3d5bb787aa5d5ee4f535d | 2 | 4 | 3592.905339 | -| terp157aww2xmdnj0xfy40damj0a8svl3nkf9nvd3sa | 0xa7bae728db6ce4f324957b7bb93fa7833f19d925 | 2 | 4 | 3592.905339 | -| terp1vxj0eypgqj89v2e2f8vdener0zmyfhcr4ghtg0 | 0x61a4fc9028048e562b2a49d8dccf2378b644df03 | 2 | 4 | 3592.905339 | -| terp1uahx0rgnxv5ky9syzkdpxpa2wd5nxax5ezrczx | 0xe76e678d133329621604159a1307aa73693374d4 | 2 | 4 | 3592.905339 | -| terp1a46ykexmgslcduzag8fumt6swknnteuj74vf6e | 0xed744b64db443f86f05d41d3cdaf5075a735e792 | 2 | 4 | 3592.905339 | -| terp1tne8s92pr582er4hymnjyllqnq52s4uqth0ldj | 0x5cf27815411d0eac8eb726e7227fe09828a85780 | 2 | 4 | 3592.905339 | -| terp1xekq4c0dhe7xfzak8lp58ygtfe2wuhu8nk9pqd | 0x366c0ae1edbe7c648bb63fc343910b4e54ee5f87 | 2 | 4 | 3592.905339 | -| terp1ucqf3sgaztx0w3ldfdnxp4f0x6tmptvek6jfre | 0xe60098c11d12ccf747ed4b6660d52f3697b0ad99 | 2 | 4 | 3592.905339 | -| terp1jc6v7c0mh8wqthj7va3l599q39y4t6gjp9396p | 0x9634cf61fbb9dc05de5e6763fa14a0894955e912 | 2 | 4 | 3592.905339 | -| terp1wga50edxec32vtlz9xa6t3dgfyllttf5ypwxla | 0x723b47e5a6ce22a62fe229bba5c5a8493ff5ad34 | 2 | 4 | 3592.905339 | -| terp1w592yc0f2dl0y7dlnjr7ulm6rdvm0hnzmtd3t4 | 0x750aa261e9537ef279bf9c87ee7f7a1b59b7de62 | 2 | 4 | 3592.905339 | -| terp1d5nwnshemcxum6ka46lvyh73xwr83t8qp38r2e | 0x6d26e9c2f9de0dcdeaddaebec25fd1338678ace0 | 2 | 4 | 3592.905339 | -| terp1dr042g3xhc6tls2tljwcptl54qlhnvnmtvvvn4 | 0x68df552226be34bfc14bfc9d80aff4a83f79b27b | 2 | 4 | 3592.905339 | -| terp1y2rgy66q89sm7897za6qjuf5u08lctufcjhqty | 0x2286826b403961bf1cbe1774097134e3cffc2f89 | 2 | 4 | 3592.905339 | -| terp1gpj3fygg5c2exqg5hdg3sx8upyy64ynfwwxkpa | 0x4065149108a615930114bb511818fc0909aa9269 | 2 | 4 | 3592.905339 | -| terp1sdvrq5enew6kg9yvl8a5fucnfu3qsss6w4d86u | 0x8358305333cbb564148cf9fb44f3134f2208421a | 2 | 4 | 3592.905339 | -| terp1rgq0ych5t6et2qarjff6jfe5qnuauklhn56fd2 | 0x1a00f262f45eb2b503a39253a9273404f9de5bf7 | 2 | 4 | 3592.905339 | -| terp14lf9cuvww2hnv7026cxsxgmt7x8dr4kvndyq4u | 0xafd25c718e72af3679ead60d03236bf18ed1d6cc | 2 | 4 | 3592.905339 | -| terp1dca2shdetwarvfm2xlke8vft02c8s2hmrddyqt | 0x6e3aa85db95bba36276a37ed93b12b7ab0782afb | 2 | 4 | 3592.905339 | -| terp1x7p3r92n5prp5tkv7cyhm2gpupjt4v4c2fptqf | 0x3783119553a0461a2eccf6097da901e064bab2b8 | 2 | 4 | 3592.905339 | -| terp1y7r5c00syksz3wl9alnlh2ltffw53qhr45vt8q | 0x27874c3df025a028bbe5efe7fbabeb4a5d4882e3 | 2 | 4 | 3592.905339 | -| terp1pf827ewgeadx5qsjh6xh36qy65sl9sy4mmaqqg | 0x0a4eaf65c8cf5a6a0212be8d78e804d521f2c095 | 2 | 4 | 3592.905339 | -| terp1364v305sugg3x5vq9wj47lax3yr5p83fwfay7c | 0x8eaac8be90e2111351802ba55f7fa68907409e29 | 2 | 4 | 3592.905339 | -| terp1yludq5mmf4pvdtr97z2ukrsslsa35mnl3zzxqy | 0x27f8d0537b4d42c6ac65f095cb0e10fc3b1a6e7f | 2 | 4 | 3592.905339 | -| terp1dq3n5sf6ddytxj8j4clxg6a242peegj9ww266v | 0x68233a413a6b48b348f2ae3e646baaaa839ca245 | 2 | 4 | 3592.905339 | -| terp1qyhpdzktnlwfpf8dnltv52p5mxl4k4u7duz4vn | 0x012e168acb9fdc90a4ed9fd6ca2834d9bf5b579e | 2 | 4 | 3592.905339 | -| terp1fq77a9cvqeaxuvessjmykw62a5ckf5h0403vfp | 0x483dee970c067a6e333084b64b3b4aed3164d2ef | 2 | 4 | 3592.905339 | -| terp1nnrracj5nzs6dkrn4mm0y60xhs8mx5937ur335 | 0x9cc63ee25498a1a6d873aef6f269e6bc0fb350b1 | 2 | 4 | 3592.905339 | -| terp19xuqrnrlcl2ua733pvw5gnfcyl4n8hvycpatnz | 0x29b801cc7fc7d5cefa310b1d444d3827eb33dd84 | 2 | 4 | 3592.905339 | -| terp1nhzxxplaggvyjwuyx9vseqa6gn00eeps0wdxyg | 0x9dc46307fd4218493b8431590c83ba44defce430 | 2 | 4 | 3592.905339 | -| terp1ewtrhj628af8frur7mjddel3gc0xnlrrxe4v2k | 0xcb963bcb4a3f52748f83f6e4d6e7f1461e69fc63 | 2 | 4 | 3592.905339 | -| terp1lmpn4yrnwf2de7d2xvvg5y0ny7t3jlunzvcezp | 0xfec33a90737254dcf9aa33188a11f32797197f93 | 2 | 4 | 3592.905339 | -| terp14kgc22ws74wduy4lsqj33q0drnmd457nkz3h2g | 0xad918529d0f55cde12bf80251881ed1cf6dad3d3 | 2 | 4 | 3592.905339 | -| terp1hpl242y5a7hh57lj0r6w4lkszw6vvtjjaufltz | 0xb87eaaa894efaf7a7bf278f4eafed013b4c62e52 | 2 | 4 | 3592.905339 | -| terp1j9aue8ywxgqcl7xuulur7tvs9cudrgfg3ztd9c | 0x917bcc9c8e32018ff8dce7f83f2d902e38d1a128 | 2 | 4 | 3592.905339 | -| terp1ezys3v3n2qw2sjxlx9t0mvc27s0v9x5t7q0lat | 0xc88908b233501ca848df3156fdb30af41ec29a8b | 2 | 4 | 3592.905339 | -| terp1wf8mt2f85ns6h7kprgtgarpll5vgltrp02ctz9 | 0x724fb5a927a4e1abfac11a168e8c3ffd188fac61 | 2 | 4 | 3592.905339 | -| terp1qm7h7jw2t0re9x5jk8rmgculqjd5zwpqtty472 | 0x06fd7f49ca5bc7929a92b1c7b4639f049b413820 | 2 | 4 | 3592.905339 | -| terp1k5zs72p8cr8vhxyg7jxquhc5rkjy6w72kdzvf9 | 0xb5050f2827c0cecb9888f48c0e5f141da44d3bca | 2 | 4 | 3592.905339 | -| terp1knx03el8kxc8f9vdt08ex7ddr9uflt6s5uz5u8 | 0xb4ccf8e7e7b1b074958d5bcf9379ad19789faf50 | 2 | 4 | 3592.905339 | -| terp1l84ta4w0hpdqa89w6txdzt8udf70e9gpjly52l | 0xf9eabed5cfb85a0e9caed2ccd12cfc6a7cfc9501 | 2 | 4 | 3592.905339 | -| terp1g2pp2qcxu6l2emvkzv0arupfc44hd457ljy4mx | 0x4282150306e6beaced96131fd1f029c56b76d69e | 2 | 4 | 3592.905339 | -| terp1hf9lwtll5eu252exca806w6wdne5nf6urhntta | 0xba4bf72fffa678aa2b26c74efd3b4e6cf349a75c | 2 | 4 | 3592.905339 | -| terp1fztethrsy5k0ggqh0ak2ngl7kgv45dxacgmr3p | 0x489795dc70252cf420177f6ca9a3feb2195a34dd | 2 | 4 | 3592.905339 | -| terp18zthffzmjuertctthktz49vr9kzljet8aarcde | 0x389774a45b973235e16bbd962a95832d85f96567 | 2 | 4 | 3592.905339 | -| terp1jn3eqnjhwek9s8sj3963lynmqdgalvgk4apawa | 0x94e3904e57766c581e1289751f927b0351dfb116 | 2 | 4 | 3592.905339 | -| terp126wjh8x2c28823s8kyt26ax2ut2tnzq4en0w8k | 0x569d2b9ccac28e754607b116ad74cae2d4b98815 | 2 | 4 | 3592.905339 | -| terp1jfegd5d0tcz6ss988qzrgfjtvuj90ys2y8g8cq | 0x927286d1af5e05a840a7380434264b672457920a | 2 | 4 | 3592.905339 | -| terp1j209hwkya3slhjx7d6zlc3q7ysdc3atgy3seyj | 0x929e5bbac4ec61fbc8de6e85fc441e241b88f568 | 2 | 4 | 3592.905339 | -| terp1ezegtwj4qu2u2gd5agaw6jkl6unwscsyqlptjg | 0xc8b285ba550715c521b4ea3aed4adfd726e86204 | 2 | 4 | 3592.905339 | -| terp1mp5cqn2rg370f2eawjla8pjszdf0urfymqm8l2 | 0xd869804d43447cf4ab3d74bfd386501352fe0d24 | 2 | 4 | 3592.905339 | -| terp157h0u3suf0gmg3yklnnr9gvvas9vqstjzknw7d | 0xa7aefe461c4bd1b44496fce632a18cec0ac04172 | 2 | 4 | 3592.905339 | -| terp1ygcz6ms89llfvlj396n75ut342ezrknk8aztal | 0x22302d6e072ffe967e512ea7ea7171aab221da76 | 2 | 4 | 3592.905339 | -| terp1lzt0u2q6hhz966ux3rq8ynrwnmqdkrsp6tp9t8 | 0xf896fe281abdc45d6b8688c0724c6e9ec0db0e01 | 2 | 4 | 3592.905339 | -| terp1frlynd7qqtnvkxdhnhpt7js2yn27yjjqgaayp6 | 0x48fe49b7c002e6cb19b79dc2bf4a0a24d5e24a40 | 2 | 4 | 3592.905339 | -| terp1r5mj5fvnrpydmn0j0ujdqe8f6z0ygdp725u923 | 0x1d372a25931848ddcdf27f24d064e9d09e44343e | 2 | 4 | 3592.905339 | -| terp1awtqk6yjg856klpz4fen7jt0dq4h0emzgj9a4j | 0xeb960b689241e9ab7c22aa733f496f682b77e762 | 2 | 4 | 3592.905339 | -| terp10h5f674t5ysr4qjvpju645wl5g3f8gmrw6uxyy | 0x7de89d7aaba1203a824c0cb9aad1dfa22293a363 | 2 | 4 | 3592.905339 | -| terp1zj7kz068cgzgevhh3pf6kjdav4x27246q20ufw | 0x14bd613f47c2048cb2f78853ab49bd654caf2aba | 2 | 4 | 3592.905339 | -| terp1jzqpjcvz7aacnw6mpmhrmk6ge7n3d3xrkhlhup | 0x9080196182f77b89bb5b0eee3ddb48cfa716c4c3 | 2 | 4 | 3592.905339 | -| terp1k3t3f0t8hz9p0zcehkqnapdnd6cxs0ssvsdpdm | 0xb45714bd67b88a178b19bd813e85b36eb0683e10 | 2 | 4 | 3592.905339 | -| terp1xj8mf5ckknl867ch9knh4duxk02mumc663h876 | 0x348fb4d316b4fe7d7b172da77ab786b3d5be6f1a | 2 | 4 | 3592.905339 | -| terp1mvgphenvjqvjs3rvlnft47vyljctujgqmw4v8x | 0xdb101be66c901928446cfcd2baf984fcb0be4900 | 2 | 4 | 3592.905339 | -| terp1fvcsq380fjq20jr7nhv9qk8jfc7nptxkd9lvcv | 0x4b310044ef4c80a7c87e9dd85058f24e3d30acd6 | 2 | 4 | 3592.905339 | -| terp1vjrtwk0hdr5hukg89p2f56aqshpsqcv2x3sa28 | 0x6486b759f768e97e590728549a6ba085c300618a | 2 | 4 | 3592.905339 | -| terp1hs9wja3fvdasfv9tsqkacza5rjy42lshxn0qkm | 0xbc0ae97629637b04b0ab802ddc0bb41c89557e17 | 2 | 4 | 3592.905339 | -| terp14zs485yp2d3t5sxpx7f7t37vlqze28af2cuqdr | 0xa8a153d0815362ba40c13793e5c7ccf805951fa9 | 2 | 4 | 3592.905339 | -| terp1tfhypv5m7g8y7c88hm94wxh444tedg7yxzgh28 | 0x5a6e40b29bf20e4f60e7becb571af5ad5796a3c4 | 2 | 4 | 3592.905339 | -| terp1c92clk66xr9myanrzcuhtwm36nhudvckfzh76u | 0xc1558fdb5a30cbb27663163975bb71d4efc6b316 | 2 | 4 | 3592.905339 | -| terp1pqgzlx906n0mgqg36xw6pfpgpcg8vwz4p9t7qn | 0x08102f98afd4dfb40111d19da0a4280e10763855 | 2 | 4 | 3592.905339 | -| terp13vcmmvefqle80u90x0wlu7vmtnn2cu4qjc93ns | 0x8b31bdb32907f277f0af33ddfe799b5ce6ac72a0 | 2 | 4 | 3592.905339 | -| terp18u5xc9uklky2t8awyjx60km6le6gnwncpj59cy | 0x3f286c1796fd88a59fae248da7db7afe7489ba78 | 2 | 4 | 3592.905339 | -| terp1d2m9l4f2t68k4zzzgcrvpzpw7lv3ggwdmalw3u | 0x6ab65fd52a5e8f6a88424606c0882ef7d91421cd | 2 | 4 | 3592.905339 | -| terp1hulcy70mr6t3393mset7wqfd5ska56n7at904h | 0xbf3f8279fb1e9718963b8657e7012da42dda6a7e | 2 | 4 | 3592.905339 | -| terp1gacarnpck3zml0zwgqgun8c2wykutppaa027q9 | 0x4771d1cc38b445bfbc4e4011c99f0a712dc5843d | 2 | 4 | 3592.905339 | -| terp1m5arvy52v6zku8xjd9g0mvumyhy6l8hckuavrv | 0xdd3a36128a66856e1cd26950fdb39b25c9af9ef8 | 2 | 4 | 3592.905339 | -| terp1e4x7j72hmmyvyyf7thk6h5ltql0qkw26ln6k0d | 0xcd4de97957dec8c2113e5dedabd3eb07de0b395a | 2 | 4 | 3592.905339 | -| terp1dfhtrvdp70e666n3r8g549vynal7ag7fvyexvm | 0x6a6eb1b1a1f3f3ad6a7119d14a95849f7feea3c9 | 2 | 4 | 3592.905339 | -| terp1plw3fmc274xy7qaxumww0wenxau7yxfzfy8ruj | 0x0fdd14ef0af54c4f03a6e6dce7bb333779e21922 | 2 | 4 | 3592.905339 | -| terp1hzwz76akwj7k4t8z5838f4qwdhz8wkc488dsst | 0xb89c2f6bb674bd6aace2a1e274d40e6dc4775b15 | 2 | 4 | 3592.905339 | -| terp1gdsaymt8xgpvzh00t7slwxf864g42n0k6sphjx | 0x4361d26d673202c15def5fa1f71927d551554df6 | 2 | 4 | 3592.905339 | -| terp1n9hz4v89wdk3nzpqtste9737um004342uu0mwu | 0x996e2ab0e5736d1988205c1792fa3ee6defac6aa | 2 | 4 | 3592.905339 | -| terp16kwmwxy0d43439sjrka74jcd43gly9hvygd3rr | 0xd59db7188f6d635896121dbbeacb0dac51f216ec | 2 | 4 | 3592.905339 | -| terp1lpzqxwwa84yxcx7pdzarrwagjvyzuhwexd2nu4 | 0xf8440339dd3d486c1bc168ba31bba893082e5dd9 | 2 | 4 | 3592.905339 | -| terp1ljzq4au2f9449cmcm755swzq9cdh7uwaeszryq | 0xfc840af78a496b52e378dfa94838402e1b7f71dd | 2 | 4 | 3592.905339 | -| terp147xyq9pu9sfk6m93zkfdjzj7e9thgnle39mg73 | 0xaf8c40143c2c136d6cb11592d90a5ec957744ff9 | 2 | 4 | 3592.905339 | -| terp1gcgc0s2hthl23hhsryst6vkkjmd8qv8t35za9u | 0x461187c1575dfea8def01920bd32d696da7030eb | 2 | 4 | 3592.905339 | -| terp1lanjky9seaycjfyn3d4r9k0hkz86xtq9fcxxdq | 0xff672b10b0cf498924938b6a32d9f7b08fa32c05 | 2 | 4 | 3592.905339 | -| terp10f2krrxx9wk226rpekatrjek2hnavkanz77wm6 | 0x7a55618cc62baca56861cdbab1cb3655e7d65bb3 | 2 | 4 | 3592.905339 | -| terp1xyna5jcn0zrctkd8g7tzp07g8s3rd7j8wjv5eh | 0x3127da4b13788785d9a7479620bfc83c2236fa47 | 2 | 4 | 3592.905339 | -| terp1g7uj08kdesg2n638cup2dge3c5czah6evjkf9h | 0x47b9279ecdcc10a9ea27c702a6a331c5302edf59 | 2 | 4 | 3592.905339 | -| terp1dkdxsdwh2cksgkxgy84hk9pc5vfmntsn8jrzj9 | 0x6d9a6835d7562d0458c821eb7b1438a313b9ae13 | 2 | 4 | 3592.905339 | -| terp1kpfs0klxaatdqxrf7xp6g3jktnssfxzl756yrj | 0xb05307dbe6ef56d01869f183a446565ce104985f | 2 | 4 | 3592.905339 | -| terp1pkje284wt230n5lhgdq7mc82ty97m6ngwj0254 | 0x0da5951eae5aa2f9d3f74341ede0ea590bedea68 | 2 | 4 | 3592.905339 | -| terp1t0a3t0txcsh02fnjf0zxj86sjle7asgz5m44hy | 0x5bfb15bd66c42ef526724bc4691f5097f3eec102 | 2 | 4 | 3592.905339 | -| terp1gyumm6m7y3t8n6ylgsnjagw7pwhtmek4d9xwzp | 0x4139bdeb7e245679e89f44272ea1de0baebde6d5 | 2 | 4 | 3592.905339 | -| terp1h7xgqlxx0e64rtremleefy7f7hrp52plsqymny | 0xbf8c807cc67e7551ac79dff39493c9f5c61a283f | 2 | 4 | 3592.905339 | -| terp1kl4t4a2q8a5llcsrnkeydnpan299m6zvqqrpmp | 0xb7eabaf5403f69ffe2039db246cc3d9a8a5de84c | 2 | 4 | 3592.905339 | -| terp17znga7m4dp638tcrnyux54na84zxfng5yd7xjd | 0xf0a68efb75687513af0399386a567d3d4464cd14 | 2 | 4 | 3592.905339 | -| terp1s3hu9e2ywjq9hw9lq63esv8mhvvprsta7he2rm | 0x846fc2e54474805bb8bf06a39830fbbb1811c17d | 2 | 4 | 3592.905339 | -| terp1wz3smvdpjyu3gk2sna0adcx48dk6lzflddnj8a | 0x70a30db1a191391459509f5fd6e0d53b6daf893f | 2 | 4 | 3592.905339 | -| terp1lt25glwqk759wdvk8yjt4n5mv5gt4f2afpqker | 0xfad5447dc0b7a85735963924bace9b6510baa55d | 2 | 4 | 3592.905339 | -| terp1qgwddcscvhy3j9jdwm33pvf4yfft334dnphdgr | 0x021cd6e21865c919164d76e310b1352252b8c6ad | 2 | 4 | 3592.905339 | -| terp1d2qj8fj3xgnlu0c97recz6c7eewwl28nnukwec | 0x6a8123a6513227fe3f05f0f3816b1ece5cefa8f3 | 2 | 4 | 3592.905339 | -| terp1cp2tjm9vnx82kct7unshu2p429um4wq3kjcxap | 0xc054b96cac998eab617ee4e17e28355179bab811 | 2 | 4 | 3592.905339 | -| terp1vnc6estujud832v9gm0s62du03kcgzutj7qyhf | 0x64f1acc17c971a78a98546df0d29bc7c6d840b8b | 2 | 4 | 3592.905339 | -| terp1v69w6z02hys2hpm2jx54mw85wajh5hfndr88zd | 0x668aed09eab920ab876a91a95db8f477657a5d33 | 2 | 4 | 3592.905339 | -| terp1gut2vpvw0yttu5yldkf63xrgvln2er77sz33gg | 0x4716a6058e7916be509f6d93a8986867e6ac8fde | 2 | 4 | 3592.905339 | -| terp1xlsqz4frpajfc9nz4xpfv5yr4aqy0kwjzf6hv5 | 0x37e00155230f649c1662a982965083af4047d9d2 | 2 | 4 | 3592.905339 | -| terp1f5jmlea8a4agu4ctz93ra6s09tdn2sfyxdjeyz | 0x4d25bfe7a7ed7a8e570b11623eea0f2adb354124 | 2 | 4 | 3592.905339 | -| terp1p7rweug3v6dweglppaqf3v6czas9um9j4ccscd | 0x0f86ecf111669aeca3e10f4098b35817605e6cb2 | 2 | 4 | 3592.905339 | -| terp1su6gcqpvdfpn6n93spqyu68cyantjzz0dqpld0 | 0x87348c002c6a433d4cb180404e68f82766b9084f | 2 | 4 | 3592.905339 | -| terp1t5hmt600auhh0aaxwdc4462snawrpdemajldpx | 0x5d2fb5e9efef2f77f7a673715ae9509f5c30b73b | 2 | 4 | 3592.905339 | -| terp1mpnxl0dp9pq6ppucejrqetj4w95a39lwz7v5zu | 0xd8666fbda12841a08798cc860cae557169d897ee | 2 | 4 | 3592.905339 | -| terp1axc9hs06s6zwu0spgc92ctnyceutnkjad4qxsf | 0xe9b05bc1fa8684ee3e01460aac2e64c678b9da5d | 2 | 4 | 3592.905339 | -| terp1k8n2pq38red7nh6z079eyj236vvjnhnzdtfgjk | 0xb1e6a082271e5be9df427f8b924951d31929de62 | 2 | 4 | 3592.905339 | -| terp1q9ddeltdx7tf74fnxpuxmjtgcsa8pg5mlunrwk | 0x015adcfd6d37969f553330786dc968c43a70a29b | 2 | 4 | 3592.905339 | -| terp1emazyxg7f8fa2qw90jdgx8gp5z0hcygjjtgwl7 | 0xcefa22191e49d3d501c57c9a831d01a09f7c1112 | 2 | 4 | 3592.905339 | -| terp1c3zpmra92kwe02nhf8k470mzghn6h9xd77wgyp | 0xc4441d8fa5559d97aa7749ed5f3f6245e7ab94cd | 2 | 4 | 3592.905339 | -| terp1syjl2z9sw4u7hnp4erve07u4vv2h5dmjcwlmk3 | 0x8125f508b07579ebcc35c8d997fb9563157a3772 | 2 | 4 | 3592.905339 | -| terp1leaejfdtkz2gxks4lkry4xrtmhz39xq3cmxmj2 | 0xfe7b9925abb094835a15fd864a986bddc5129811 | 2 | 4 | 3592.905339 | -| terp144lmshuwc4wr5w9pqflrkc0efl3de6x026dpym | 0xad7fb85f8ec55c3a38a1027e3b61f94fe2dce8cf | 2 | 4 | 3592.905339 | -| terp1r044d5r77evrsz5fp6x6xfk2zytueunatfr7kh | 0x1beb56d07ef658380a890e8da326ca1117ccf27d | 2 | 4 | 3592.905339 | -| terp1x6a69925jr6x89hg0akmq5hpzpk74t9p07tnyc | 0x36bba2955490f46396e87f6db052e1106deaaca1 | 2 | 4 | 3592.905339 | -| terp1xlg0cksaj4wmzv47cmzc35s4ljg49wk54u7f4r | 0x37d0fc5a1d955db132bec6c588d215fc9152bad4 | 2 | 4 | 3592.905339 | -| terp155sd6fn58lc34jdwa74ahqwptrf7jascqgqd5j | 0xa520dd26743ff11ac9aeefabdb81c158d3e97618 | 2 | 4 | 3592.905339 | -| terp1l35xhp03vwrc33plduclmzc2xnafl4g3r0v5qu | 0xfc686b85f1638788c43f6f31fd8b0a34fa9fd511 | 2 | 4 | 3592.905339 | -| terp1nmuuw0tasgumj0ly3v66d96zjtp078sumh4tlv | 0x9ef9c73d7d8239b93fe48b35a6974292c2ff1e1c | 2 | 4 | 3592.905339 | -| terp1hccnx8vcpmavlxppycmm2llmll9za9t3l3fqhe | 0xbe31331d980efacf98212637b57ffbffca2e9571 | 2 | 4 | 3592.905339 | -| terp12kr9k3mvaqefppyzcfnjne8jhcyafkhrv69my7 | 0x55865b476ce832908482c26729e4f2be09d4dae3 | 2 | 4 | 3592.905339 | -| terp1kuh0prnal39x6s384esd8fd768lmut9lut8ayk | 0xb72ef08e7dfc4a6d4227ae60d3a5bed1ffbe2cbf | 2 | 4 | 3592.905339 | -| terp1nc2hrzvfwqs5nwwrnfpzaekmm8ympvsu0jv0ky | 0x9e15718989702149b9c39a422ee6dbd9c9b0b21c | 2 | 4 | 3592.905339 | -| terp1x2lph09nvcvsyg5ufe5h0nfnvzzng264q23lc3 | 0x32be1bbcb3661902229c4e6977cd336085342b55 | 2 | 4 | 3592.905339 | -| terp126p49zz3a054zcg9jxprgta836tcnt05dxkuav | 0x5683528851ebe95161059182342fa78e9789adf4 | 2 | 4 | 3592.905339 | -| terp18q457z2yqggv0zf3wwwqj20kzeh7xj00frqesl | 0x382b4f09440210c78931739c0929f6166fe349ef | 2 | 4 | 3592.905339 | -| terp1hwmk7sya7w05jrj4vgh8hcmvh3w9d43jq2dp5j | 0xbbb76f409df39f490e55622e7be36cbc5c56d632 | 2 | 4 | 3592.905339 | -| terp1n4yengyu0vmdzlwz97eqatfrdcm0sur8lgn5rw | 0x9d4999a09c7b36d17dc22fb20ead236e36f87067 | 2 | 4 | 3592.905339 | -| terp14cewsdv7sneuysykcpeh33e98exyu94u47fca0 | 0xae32e8359e84f3c24096c07378c7253e4c4e16bc | 2 | 4 | 3592.905339 | -| terp1vm53yrndr6dxwkp0yt6zmj38whh6gx6xm78mf4 | 0x66e9120e6d1e9a67582f22f42dca2775efa41b46 | 2 | 4 | 3592.905339 | -| terp1zheyjhrpvn90qz42lvhlju8nm6d624hnhnahju | 0x15f2495c6164caf00aaafb2ff970f3de9ba556f3 | 2 | 4 | 3592.905339 | -| terp1vprfgatle5rq0m8kp2cl34jx9eaq879nalr9ud | 0x604694757fcd0607ecf60ab1f8d6462e7a03f8b3 | 2 | 4 | 3592.905339 | -| terp1q9xvuqm7td0w5jmd42sk5qaekddgxawqvgp02y | 0x014cce037e5b5eea4b6daaa16a03b9b35a8375c0 | 2 | 4 | 3592.905339 | -| terp1y5zyquqj2kvsn6u75xp885np05xxtqjrnhpwu6 | 0x2504407012559909eb9ea18273d2617d0c658243 | 2 | 4 | 3592.905339 | -| terp1gm09fn8z7rc6jqaecxfn4q62zel0jsrmvecvvq | 0x46de54cce2f0f1a903b9c1933a834a167ef9407b | 2 | 4 | 3592.905339 | -| terp1g4vmxq2ag2pgwajr6nu7e6am9r4qtn44xp0x8l | 0x4559b3015d4282877643d4f9ecebbb28ea05ceb5 | 2 | 4 | 3592.905339 | -| terp1qxg2u49syyv60qk5yqau79ddqm57h4ans4ule3 | 0x0190ae54b02119a782d4203bcf15ad06e9ebd7b3 | 2 | 4 | 3592.905339 | -| terp1fmpzqfcq29wsk5hn7rlttatf98fv432er9nwem | 0x4ec2202700515d0b52f3f0feb5f56929d2cac559 | 2 | 4 | 3592.905339 | -| terp1mf4ukapllylz7zqk94q3spxnqh2r7da858ufst | 0xda6bcb743ff93e2f08162d411804d305d43f37a7 | 2 | 4 | 3592.905339 | -| terp1cxva2jl8pjvrw3ym3hk5fdkfvrw7nhlruv3ygp | 0xc199d54be70c9837449b8ded44b6c960dde9dfe3 | 2 | 4 | 3592.905339 | -| terp1gxfe8utye8ys5wkz6ea9q4ja74uhd2u440aa69 | 0x419393f164c9c90a3ac2d67a50565df57976ab95 | 2 | 4 | 3592.905339 | -| terp1eyute7ydckczyq5pftv6e3uwjespj3ej2xtvd7 | 0xc938bcf88dc5b02202814ad9acc78e9660194732 | 2 | 4 | 3592.905339 | -| terp1dlwu24thctaekem4m4f7qusuzgvjptpqxden93 | 0x6fddc55577c2fb9b6775dd53e0721c121920ac20 | 2 | 4 | 3592.905339 | -| terp125tdtheea0czwl5wnd2edslltmkzzw5maadksn | 0x5516d5df39ebf0277e8e9b5596c3ff5eec213a9b | 2 | 4 | 3592.905339 | -| terp1k7evfszya0a0dtxvf5l8647wm0lmduran58sj7 | 0xb7b2c4c044ebfaf6accc4d3e7d57cedbffb6f07d | 2 | 4 | 3592.905339 | -| terp17vwyhqc46hmdspr9e2vqtlrj3fk3794qwxamjf | 0xf31c4b8315d5f6d80465ca9805fc728a6d1f16a0 | 2 | 4 | 3592.905339 | -| terp1f5fzyrx70qw8nl0xc5ev4c5q7xp64dzzweknpu | 0x4d12220cde781c79fde6c532cae280f183aab442 | 2 | 4 | 3592.905339 | -| terp1g88kgcczh4e80npp6ts30v28ljdx66u4ndfs9t | 0x41cf646302bd7277cc21d2e117b147fc9a6d6b95 | 2 | 4 | 3592.905339 | -| terp1l7nz36k44ragz5ca2znt2ufg0avge8dpgeye0j | 0xffa628ead5a8fa81531d50a6b571287f588c9da1 | 2 | 4 | 3592.905339 | -| terp1m8eslakp268aa9u7usn2nrhpc9utelstgrzjqn | 0xd9f30ff6c1568fde979ee426a98ee1c178bcfe0b | 2 | 4 | 3592.905339 | -| terp1taeqv75r2we7p5d2jajrv4edpz90ay7e507smp | 0x5f72067a8353b3e0d1aa976436572d088afe93d9 | 2 | 4 | 3592.905339 | -| terp1q35xm7m6csk7szuns6kt68lzp323uguav49qnj | 0x04686dfb7ac42de80b9386acbd1fe20c551e239d | 2 | 4 | 3592.905339 | -| terp14g2eqzmpeq9whthucdvtctgc92d07jhpfgj6qk | 0xaa15900b61c80aebaefcc358bc2d182a9aff4ae1 | 2 | 4 | 3592.905339 | -| terp1mpmv2anvfjeyr2vp5ml2v3fvwy8lvxexhraqsj | 0xd876c5766c4cb241a981a6fea6452c710ff61b26 | 2 | 4 | 3592.905339 | -| terp1kn8s7he0lm2ytj5qfzvx2smxx9ks5au6jl8kxv | 0xb4cf0f5f2ffed445ca804898654366316d0a779a | 2 | 4 | 3592.905339 | -| terp1py28mkzzf8436vp5ddwlejlwtwazdscsshvcpp | 0x09147dd84249eb1d30346b5dfccbee5bba26c310 | 2 | 4 | 3592.905339 | -| terp1zjdhml2t2234chxr7afk3l2t6vqqg2rjgtl4gu | 0x149b7dfd4b52a35c5cc3f75368fd4bd300042872 | 2 | 4 | 3592.905339 | -| terp1m06rj87hp4s3rkl4t4dkz0gvy7z2kcve3vw8d3 | 0xdbf4391fd70d6111dbf55d5b613d0c2784ab6199 | 2 | 4 | 3592.905339 | -| terp1ppsuwp4zxsct5evaz82e7uqwpnjrnksg6flt77 | 0x0861c706a23430ba659d11d59f700e0ce439da08 | 2 | 4 | 3592.905339 | -| terp1srrrxevee9pay3yr9fcszmp4vpa57kawu3dcfl | 0x80c6336599c943d244832a71016c35607b4f5bae | 2 | 4 | 3592.905339 | -| terp1y2guzrrr0h7m0z053u4cjett7247wzcu6cgrfw | 0x2291c10c637dfdb789f48f2b89656bf2abe70b1c | 2 | 4 | 3592.905339 | -| terp1js7zzrd8metkeunfza2xck8tr08qg6mjttup9s | 0x943c210da7de576cf26917546c58eb1bce046b72 | 2 | 4 | 3592.905339 | -| terp16aegcm798wfxk8asggapmphpvj78vlg9mvzkxq | 0xd7728c6fc53b926b1fb0423a1d86e164bc767d05 | 2 | 4 | 3592.905339 | -| terp13f5m0x78uuaja7de7ydd8ctm62y35d9wc4crak | 0x8a69b79bc7e73b2ef9b9f11ad3e17bd2891a34ae | 2 | 4 | 3592.905339 | -| terp1lr8f7x7sd364nl69xdk4tvwfmervuqva8lhf4h | 0xf8ce9f1bd06c7559ff45336d55b1c9de46ce019d | 2 | 4 | 3592.905339 | -| terp17lvex9rld8eczt6lrm6sqe7a0677j05tl47v8r | 0xf7d993147f69f3812f5f1ef50067dd7ebde93e8b | 2 | 4 | 3592.905339 | -| terp1kxtvmnyrm8576sx73qqm30dlj8qdjgyyn9fvuf | 0xb196cdcc83d9e9ed40de8801b8bdbf91c0d92084 | 2 | 4 | 3592.905339 | -| terp1e6uda87820mm6q62ylu89p930nc6llawmjrlgy | 0xceb8de9fc753f7bd034a27f87284b17cf1afffae | 2 | 4 | 3592.905339 | -| terp1m0zr0dkyahshwwmqxywmujrvjyw2h0l22tjl7c | 0xdbc437b6c4ede1773b60311dbe486c911cabbfea | 2 | 4 | 3592.905339 | -| terp1uz04yrshzvdfrw45qf8l9duaen69uxhmum2jq4 | 0xe09f520e17131a91bab4024ff2b79dccf45e1afb | 2 | 4 | 3592.905339 | -| terp1d3e3j976r00t50grr482xqpf7vkwa8vrmtc68x | 0x6c731917da1bdeba3d031d4ea30029f32cee9d83 | 2 | 4 | 3592.905339 | -| terp1sda55zs4fp7rc2zjfyvrhz43cmfnayl6g2h0x2 | 0x837b4a0a15487c3c285249183b8ab1c6d33e93fa | 2 | 4 | 3592.905339 | -| terp16vpfyf0v7qymr94cxkxeaztngnq0vyxqw9l2cc | 0xd3029225ecf009b196b8358d9e897344c0f610c0 | 2 | 4 | 3592.905339 | -| terp1vy0yquhez4s2sr330n7gcfzck2c922der2mj4t | 0x611e4072f91560a80e317cfc8c2458b2b05529b9 | 2 | 4 | 3592.905339 | -| terp1uukqr8t9qvgcg23gskz3737ytgkxt3uyj9jcjt | 0xe72c019d650311842a2885851f47c45a2c65c784 | 2 | 4 | 3592.905339 | -| terp18fmce5f0y3p88vlz05h8d0n3lse32l0twc8rtx | 0x3a778cd12f244273b3e27d2e76be71fc33157deb | 2 | 4 | 3592.905339 | -| terp1h2qt5avspwwt082huzascaswvd3mvfyrut746x | 0xba80ba75900b9cb79d57e0bb0c760e6363b62483 | 2 | 4 | 3592.905339 | -| terp1jywr565jkry9pdkrux96vptla6636mfg29dkyn | 0x911c3a6a92b0c850b6c3e18ba6057feeb51d6d28 | 2 | 4 | 3592.905339 | -| terp1j2emdmhgeu4j8x0qefhhg6u2z942gvndgpfxtx | 0x92b3b6eee8cf2b2399e0ca6f746b8a116aa4326d | 2 | 4 | 3592.905339 | -| terp19zkqr6lj3y5j0q704tvmhuk8lcnxdhaamnns8c | 0x28ac01ebf289292783cfaad9bbf2c7fe2666dfbd | 2 | 4 | 3592.905339 | -| terp1cluwz75y4zcclkl988rz5q4zwzdqgnr99s9za9 | 0xc7f8e17a84a8b18fdbe539c62a02a2709a044c65 | 2 | 4 | 3592.905339 | -| terp1tna5cex6zqe5ahfwzf463xn7dm5t4ddj4sl966 | 0x5cfb4c64da10334edd2e126ba89a7e6ee8bab5b2 | 2 | 4 | 3592.905339 | -| terp1ptxmx89jyg8tevsvm2z0p9rhu66jlepy9xyvf8 | 0x0acdb31cb2220ebcb20cda84f09477e6b52fe424 | 2 | 4 | 3592.905339 | -| terp196rwqumqw58ynqxpat0l2nksu68jnzhceskwf2 | 0x2e86e07360750e4980c1eadff54ed0e68f298af8 | 2 | 4 | 3592.905339 | -| terp1m5zxegpncaec2qrncdkvu9xs4j4esshhmnauvp | 0xdd046ca033c773850073c36cce14d0acab9842f7 | 2 | 4 | 3592.905339 | -| terp1tmru70s7cc2gsam4zr3p5x5uykvdxz40jmvx2s | 0x5ec7cf3e1ec61488777510e21a1a9c2598d30aaf | 2 | 4 | 3592.905339 | -| terp1fm4n78gdyc87tzu9vmdpm5p9qvvqf8n9w8svuc | 0x4eeb3f1d0d260fe58b8566da1dd0250318049e65 | 2 | 4 | 3592.905339 | -| terp1lfcuvh4986ne2p6afv2xfqcahl7527w3ttjt43 | 0xfa71c65ea53ea795075d4b1464831dbffd4579d1 | 2 | 4 | 3592.905339 | -| terp1l5pd30sykvgg0nre660y0egpp8dm8f0wec2vru | 0xfd02d8be04b31087cc79d69e47e50109dbb3a5ee | 2 | 4 | 3592.905339 | -| terp13ka5wx6f9mxwkz3vvfkjkpzk45cp546nunl3dx | 0x8dbb471b492ecceb0a2c626d2b0456ad301a5753 | 2 | 4 | 3592.905339 | -| terp1ztfq3awpy7hgh4lfvhjng4jzt2cwx9hx8q22wm | 0x12d208f5c127ae8bd7e965e53456425ab0e316e6 | 2 | 4 | 3592.905339 | -| terp19gwnnrf06qc4jc7esxua6vv6ujdh98e0zjh9a3 | 0x2a1d398d2fd0315963d981b9dd319ae49b729f2f | 2 | 4 | 3592.905339 | -| terp10f9sxujx5ktuh4x4fy4v9el7ztqn24r00xswgv | 0x7a4b037246a597cbd4d5492ac2e7fe12c135546f | 2 | 4 | 3592.905339 | -| terp1ghqv6l28en4605gsfefu3938agmeae62qct4hy | 0x45c0cd7d47cceba7d1104e53c89627ea379ee74a | 2 | 4 | 3592.905339 | -| terp1mg8qff3kl24etzl4wyhuz46j7mdy2y6xn8e5pc | 0xda0e04a636faab958bf5712fc15752f6da451346 | 2 | 4 | 3592.905339 | -| terp10w9s6f5algpqu0qx4jrllhfe9e4m6693klj3jn | 0x7b8b0d269dfa020e3c06ac87ffdd392e6bbd68b1 | 2 | 4 | 3592.905339 | -| terp194yh7flyslkjxc8exxzhjz4p4ahnwz9ldl4cpk | 0x2d497f27e487ed2360f93185790aa1af6f3708bf | 2 | 4 | 3592.905339 | -| terp17r0em2gs7d5cd2u3g8xjkqer85rgc8qy4c5y7q | 0xf0df9da910f36986ab9141cd2b03233d068c1c04 | 2 | 4 | 3592.905339 | -| terp14g7lefnu0ac5c2j7z89q9ef2vjezc23h6zw75c | 0xaa3dfca67c7f714c2a5e11ca02e52a64b22c2a37 | 2 | 4 | 3592.905339 | -| terp1zylwg8vhg9ks47efzh5ufmtdff8fc2vmusqmc4 | 0x113ee41d97416d0afb2915e9c4ed6d4a4e9c299b | 2 | 4 | 3592.905339 | -| terp1tpurqc8h5zg73a4wqsuzvgy5zctcak5r2le9ze | 0x58783060f7a091e8f6ae043826209416178eda83 | 2 | 4 | 3592.905339 | -| terp1gr6fwcw0w6nke0xtfey6k3y4df6f2326jhkqtx | 0x40f49761cf76a76cbccb4e49ab44956a7495455a | 2 | 4 | 3592.905339 | -| terp1tmaz2wl6333xqqpe83kx23s3yeexrk2znk6k4h | 0x5efa253bfa8c626000393c6c654611267261d942 | 2 | 4 | 3592.905339 | -| terp1sg0dv9eauajql70lqactm5pqc20twudxgfytzh | 0x821ed6173de7640ff9ff0770bdd020c29eb771a6 | 2 | 4 | 3592.905339 | -| terp1yk9u4date9vaqvl93zpgj94vghq2mk5x0qwj3e | 0x258bcab7abc959d033e588828916ac45c0adda86 | 2 | 4 | 3592.905339 | -| terp15sampxl2xt0uz3adn2jwuefsrf3czgtlahwjhd | 0xa43bb09bea32dfc147ad9aa4ee65301a6381217f | 2 | 4 | 3592.905339 | -| terp1lm4mwfgcy75fzscyn4qq2ulhra2xw6kl6fmlak | 0xfeebb7251827a89143049d400573f71f54676adf | 2 | 4 | 3592.905339 | -| terp1023huyr6wxc80nd4s6h3utan303ezxk2hu678g | 0x7aa37e107a71b077cdb586af1e2fb38be3911aca | 2 | 4 | 3592.905339 | -| terp1v4naswps3ug7lkc7lu5wvwumaexk3c467gnwwj | 0x6567d838308f11efdb1eff28e63b9bee4d68e2ba | 2 | 4 | 3592.905339 | -| terp10g64erwpvqz588n6txke6qyxvsxvtmzg7jm489 | 0x7a355c8dc16005439e7a59ad9d0086640cc5ec48 | 2 | 4 | 3592.905339 | -| terp1asf5xaegjjxlfd068gal7v2x9cdn8wul0hwqly | 0xec13437728948df4b5fa3a3bff31462e1b33bb9f | 2 | 4 | 3592.905339 | -| terp1j99l6vtr2nc7jx87l758wceekan3y3hgs5aakp | 0x914bfd316354f1e918feffa8776339b7671246e8 | 2 | 4 | 3592.905339 | -| terp1d3vdk2j9tv3ekfmytkly4jtzjsjtd6yex365xq | 0x6c58db2a455b239b27645dbe4ac9629424b6e899 | 2 | 4 | 3592.905339 | -| terp170arp3ezfll2j63a05meml34mxt2h7qs3ha4zf | 0xf3fa30c7224ffea96a3d7d379dfe35d996abf810 | 2 | 4 | 3592.905339 | -| terp10prmrj9dqwscsqmdaf2vu7z8ldqcayshkj7w2g | 0x7847b1c8ad03a188036dea54ce7847fb418e9217 | 2 | 4 | 3592.905339 | -| terp1n02tscfz5sn9ppu27de340y24yq32hmzaxa86g | 0x9bd4b86122a42650878af3731abc8aa901155f62 | 2 | 4 | 3592.905339 | -| terp1egduckhae3z7s7cmwwkuefvx8uquge3fn5hh3e | 0xca1bcc5afdcc45e87b1b73adcca5863f01c46629 | 2 | 4 | 3592.905339 | -| terp1m6jqhemnegwrrfglurpk8l6ksq0ctpgvawdpcw | 0xdea40be773ca1c31a51fe0c363ff56801f85850c | 2 | 4 | 3592.905339 | -| terp1358nnzxcv36hhdpfkzxlj2uncxzmesh26h9jm3 | 0x8d0f3988d864757bb429b08df92b93c185bcc2ea | 2 | 4 | 3592.905339 | -| terp1s3z3v4phed36l7e0zseh358vv0szf9vzurjrwy | 0x8445165437cb63affb2f143378d0ec63e0249582 | 2 | 4 | 3592.905339 | -| terp15y4604gqaf7772lavx7dlntj4yujaw80dc0uj8 | 0xa12ba7d500ea7def2bfd61bcdfcd72a9392eb8ef | 2 | 4 | 3592.905339 | -| terp1gne37dhh9rqpe7weytum3p76weg6y4h85t3nc7 | 0x44f31f36f728c01cf9d922f9b887da7651a256e7 | 2 | 4 | 3592.905339 | -| terp1ktygasmqsk54hqs8yn7c5fdq23xpkzg85s0ctr | 0xb2c88ec36085a95b820724fd8a25a0544c1b0907 | 2 | 4 | 3592.905339 | -| terp1y5ftttrg8gejt323rvj6vfkw7etdf8dx385dxf | 0x2512b5ac683a3325c5511b25a626cef656d49da6 | 2 | 4 | 3592.905339 | -| terp17ctg99cydjn0552gxnpsz68x8frj26h5t84cf3 | 0xf6168297046ca6fa514834c30168e63a47256af4 | 2 | 4 | 3592.905339 | -| terp17k769ewdcnexktsv6vgrwgfafuhgln3u5q82yr | 0xf5bda2e5cdc4f26b2e0cd31037213d4f2e8fce3c | 2 | 4 | 3592.905339 | -| terp16eay0z59atm8z9mvsjqfg0ppawldmdp64gv85f | 0xd67a478a85eaf671176c8480943c21ebbeddb43a | 2 | 4 | 3592.905339 | -| terp1j6h0lvrkh84meh052jahhgq4mmlsjtymveu2tu | 0x96aeffb076b9ebbcddf454bb7ba015deff092c9b | 2 | 4 | 3592.905339 | -| terp14hvklruw472m3z4t9agz5qdq2jypg5dyawhkav | 0xadd96f8f8eaf95b88aab2f502a01a054881451a4 | 2 | 4 | 3592.905339 | -| terp1nexrzjy3s7fhdkyylmuwg4r9ny9gzt693walec | 0x9e4c314891879376d884fef8e45465990a812f45 | 2 | 4 | 3592.905339 | -| terp1ekhph26jre4dqat0gytxuxkx3494hf263cx7v8 | 0xcdae1bab521e6ad0756f41166e1ac68d4b5ba55a | 2 | 4 | 3592.905339 | -| terp1flx3vjmnzm7redkcns0fg9v3kr8sdjt6gcl75z | 0x4fcd164b7316fc3cb6d89c1e941591b0cf06c97a | 2 | 4 | 3592.905339 | -| terp106y6j7hhut80pdlrwwslmntu92zs3u66dre7fx | 0x7e89a97af7e2cef0b7e373a1fdcd7c2a8508f35a | 2 | 4 | 3592.905339 | -| terp142frqcsrp4zn8mxjhyxvn8t7v9n4na2jhzrar4 | 0xaa923062030d4533ecd2b90cc99d7e616759f552 | 2 | 4 | 3592.905339 | -| terp10mt6hqwva772max2m4ycyluy5krjxywm46rqca | 0x7ed7ab81ccefbcadf4cadd49827f84a5872311db | 2 | 4 | 3592.905339 | -| terp1eynjx5vveywvq0cg28udwyf7983zhvghzps4dm | 0xc92723518cc91cc03f0851f8d7113e29e22bb117 | 2 | 4 | 3592.905339 | -| terp1ku6clg0rpluf32pepkfampyy5wg89ecujer497 | 0xb7358fa1e30ff898a8390d93dd8484a39072e71c | 2 | 4 | 3592.905339 | -| terp17cyf9ny2et32dyxfvt8q7c97f47rzzr9d8p6dx | 0xf60892cc8acae2a690c962ce0f60be4d7c310865 | 2 | 4 | 3592.905339 | -| terp1e3u5yd93amuw7uhglffmcu9x8p4xpj7g4c07dk | 0xcc794234b1eef8ef72e8fa53bc70a6386a60cbc8 | 2 | 4 | 3592.905339 | -| terp14lz3gn0h9yrfzv8pavxdwmz9gg9yycmltszd92 | 0xafc5144df729069130e1eb0cd76c45420a42637f | 2 | 4 | 3592.905339 | -| terp1yxpxld5vqnn8w3xzctws4fs6ekhv9u5hvzlaxd | 0x21826fb68c04e67744c2c2dd0aa61acdaec2f297 | 2 | 4 | 3592.905339 | -| terp1tnrqwywqnslhtzutu06l6ma9qzy2l686e5l586 | 0x5cc60711c09c3f758b8be3f5fd6fa50088afe8fa | 2 | 4 | 3592.905339 | -| terp1n4jmzn4eru8eax7fhd6l470aqxw9p5d68fcvz5 | 0x9d65b14eb91f0f9e9bc9bb75faf9fd019c50d1ba | 2 | 4 | 3592.905339 | -| terp1hrp79c4rgedhfda907yjrgwr7mnfxqhzjdavya | 0xb8c3e2e2a3465b74b7a57f8921a1c3f6e69302e2 | 2 | 4 | 3592.905339 | -| terp1cvpwula9ya0txh6zvphgahhnkp5smc248vehxj | 0xc302ee7fa5275eb35f42606e8edef3b0690de155 | 2 | 4 | 3592.905339 | -| terp1pk670yjdslfwcfu8dzpw0tu3rfvq2rw3q4whdz | 0x0db5e7924d87d2ec27876882e7af911a58050dd1 | 2 | 4 | 3592.905339 | -| terp1fdlze6q49jck5x58v9ws7jz58x070alg9yfd4l | 0x4b7e2ce8152cb16a1a87615d0f4854399fe7f7e8 | 2 | 4 | 3592.905339 | -| terp19yl5zfguhxfsuxp7pxpkf6ul93gup2mxhvx5f2 | 0x293f41251cb9930e183e098364eb9f2c51c0ab66 | 2 | 4 | 3592.905339 | -| terp1cfg272htcdxyx8ecg658yzywtx6eqmh070t4gg | 0xc250af2aebc34c431f3846a872088e59b5906eef | 2 | 4 | 3592.905339 | -| terp1z53xzml4jarnrs4e7862zvf3e9ac073p7gshe6 | 0x1522616ff5974731c2b9f1f4a13131c97b87fa21 | 2 | 4 | 3592.905339 | -| terp16tgxckel32ksxadxufrpns2ntu7wrsmyf3sv48 | 0xd2d06c5b3f8aad0375a6e24619c1535f3ce1c364 | 2 | 4 | 3592.905339 | -| terp1ny6ay3jec05flqa8hd23e9fedepdjcvcc68lzj | 0x9935d24659c3e89f83a7bb551c95396e42d96198 | 2 | 4 | 3592.905339 | -| terp1z3jqjgk3m5rzy4m2c7gdhr3q6ec6yuym5vgptj | 0x14640922d1dd0622576ac790db8e20d671a2709b | 2 | 4 | 3592.905339 | -| terp1pyqxj0k474pt84nmdjvw8hrxfnfrwgdxt94m9n | 0x0900693ed5f542b3d67b6c98e3dc664cd23721a6 | 2 | 4 | 3592.905339 | -| terp1t60ednkr3d5yhmnkxsjy53neefma7naw7ehj8r | 0x5e9f96cec38b684bee7634244a4679ca77df4fae | 2 | 4 | 3592.905339 | -| terp1gymw82se4twnda0hpwrxtrrjc049pmk224xufd | 0x4136e3aa19aadd36f5f70b86658c72c3ea50eeca | 2 | 4 | 3592.905339 | -| terp1nqak5t7l2z4dkekznv2eqs8gre4602ztvyvtf7 | 0x983b6a2fdf50aadb66c29b159040e81e6ba7a84b | 2 | 4 | 3592.905339 | -| terp1helfch46xj6aklnqvgel6tvadg0myk3wp679sd | 0xbe7e9c5eba34b5db7e606233fd2d9d6a1fb25a2e | 2 | 4 | 3592.905339 | -| terp1yfdej6thl4ewfywzmat8jpm0p2k2nutp5e69wv | 0x225b996977fd72e491c2df5679076f0aaca9f161 | 2 | 4 | 3592.905339 | -| terp1n98vape2hv3xehye0vu48huzm33997ymmn2tlh | 0x994ece872abb226cdc997b3953df82dc6252f89b | 2 | 4 | 3592.905339 | -| terp1xs7gqxp7zsvrqfxn5tyzycft0ry5a5kedl2tzw | 0x343c80183e14183024d3a2c822612b78c94ed2d9 | 2 | 4 | 3592.905339 | -| terp13tvygexufdds0k5fjl7mauhfewnwcx0sshpq47 | 0x8ad84464dc4b5b07da8997fdbef2e9cba6ec19f0 | 2 | 4 | 3592.905339 | -| terp1mf86dlvyr60ne4rzrrcyzzhqzkdvxyjec3hekg | 0xda4fa6fd841e9f3cd46218f0410ae0159ac31259 | 2 | 4 | 3592.905339 | -| terp1xzfs65nl4efe0ln4znunaqctageptup3l0pfca | 0x30930d527fae5397fe7514f93e830bea3215f031 | 2 | 4 | 3592.905339 | -| terp1e3gdjf2gd0g6n6p2x6hmyth6z7469jjpczjnl4 | 0xcc50d925486bd1a9e82a36afb22efa17aba2ca41 | 2 | 4 | 3592.905339 | -| terp1v2dny35966yjx5cfa89g0tg0vsr2ffyhyav3ta | 0x629b324685d689235309e9ca87ad0f6406a4a497 | 2 | 4 | 3592.905339 | -| terp1ftmqkmecjvfaylu0lletxcdnmtp2z8x36lulyl | 0x4af60b6f389313d27f8ffff2b361b3dac2a11cd1 | 2 | 4 | 3592.905339 | -| terp1u80ksyar37gwhsa2p2n2eujt5tsjmxwwl44s82 | 0xe1df6813a38f90ebc3aa0aa6acf24ba2e12d99ce | 2 | 4 | 3592.905339 | -| terp1g9uc82rwakjazj60xcg0j29qcc8f7purd0ew6q | 0x417983a86eeda5d14b4f3610f928a0c60e9f0783 | 2 | 4 | 3592.905339 | -| terp1qq76nnpvwjyu0wxtu64qu0hx908szu4p2v3qsk | 0x003da9cc2c7489c7b8cbe6aa0e3ee62bcf0172a1 | 2 | 4 | 3592.905339 | -| terp187gs6jq0xlrkrh8t86mtr9x3sxqvckr6mw7986 | 0x3f910d480f37c761dceb3eb6b194d18180cc587a | 2 | 4 | 3592.905339 | -| terp1hx8p4f6aqrdgxyu0wynjzzf4mmha4wav9a9e7a | 0xb98e1aa75d00da83138f7127210935deefdabbac | 2 | 4 | 3592.905339 | -| terp1fejn9w58w0ndvqk73hq77t0hevde00vkpnkl0a | 0x4e6532ba8773e6d602de8dc1ef2df7cb1b97bd96 | 2 | 4 | 3592.905339 | -| terp1n0njzgx9sndu59aqr9cs3kzz6598a475mknkv7 | 0x9be72120c584dbca17a0197108d842d50a7ed7d4 | 2 | 4 | 3592.905339 | -| terp1enxgm0qkad7urewcrcujx5ghll9km80ga4nqjh | 0xcccc8dbc16eb7dc1e5d81e39235117ffcb6d9de8 | 2 | 4 | 3592.905339 | -| terp1amkedpx9k0ctd4jmkatttwf26uphfvnrvnkaaf | 0xeeed9684c5b3f0b6d65bb756b5b92ad70374b263 | 2 | 4 | 3592.905339 | -| terp1aeqcf63pa3ejshaf847hpeqmwz835526jtn0ek | 0xee4184ea21ec73285fa93d7d70e41b708f1a515a | 2 | 4 | 3592.905339 | -| terp1jkyecgckz0agex24fcz749wsh6g234j4vapdhn | 0x95899c231613fa8c99554e05ea95d0be90a8d655 | 2 | 4 | 3592.905339 | -| terp1q6ydz3l0n2mkngythtmmh44p5ynaclygx6vdhw | 0x0688d147ef9ab769a08bbaf7bbd6a1a127dc7c88 | 2 | 4 | 3592.905339 | -| terp15kqa4xv2a4e0nu0ys4nuapyvhpr030zfzdj2xj | 0xa581da998aed72f9f1e48567ce848cb846f8bc49 | 2 | 4 | 3592.905339 | -| terp1ml524w7ps627ynj7k9pl2p5fwnt5mq0tmeq9mc | 0xdfe8aabbc18695e24e5eb143f5068974d74d81eb | 2 | 4 | 3592.905339 | -| terp175l730yf6u08d399g0mmp34y6xkq9j37p4cp5q | 0xf53fe8bc89d71e76c4a543f7b0c6a4d1ac02ca3e | 2 | 4 | 3592.905339 | -| terp1ajl8yuuc6jy920scejkur35ew5rvtu03l82pxm | 0xecbe727398d488553e18ccadc1c6997506c5f1f1 | 2 | 4 | 3592.905339 | -| terp1ff4w7uj6usdj85x4ypfhhpf2qday6y36yz463u | 0x4a6aef725ae41b23d0d520537b852a037a4d123a | 2 | 4 | 3592.905339 | -| terp1n6gscrvwhyz74msrzl5addcqfp306vd45pnmhj | 0x9e910c0d8eb905eaee0317e9d6b7004862fd31b5 | 2 | 4 | 3592.905339 | -| terp14xc7y8da8h2tky560tjyy8wekzv7ggcahx5ynz | 0xa9b1e21dbd3dd4bb129a7ae4421dd9b099e4231d | 2 | 4 | 3592.905339 | -| terp120g7x3ejfm00l4q6u8nklhyf47r4p6647tff0x | 0x53d1e347324edeffd41ae1e76fdc89af8750eb55 | 2 | 4 | 3592.905339 | -| terp1xmqt5wnwxr2kxlvs7lrh35l7c2hvcwvs8asctu | 0x36c0ba3a6e30d5637d90f7c778d3fec2aecc3990 | 2 | 4 | 3592.905339 | -| terp15pa6sje3vcwpqh9kmr04ppkw8hdll60glty24j | 0xa07ba84b31661c105cb6d8df5086ce3ddbffe9e8 | 2 | 4 | 3592.905339 | -| terp1msq92m5znc05h54e22rvkqqu4fac47nkwvh3x0 | 0xdc00556e829e1f4bd2b95286cb001caa7b8afa76 | 2 | 4 | 3592.905339 | -| terp14ztjsxy0rwfnd2ch88v6k3xv4krpqv8cav958a | 0xa89728188f1b9336ab1739d9ab44ccad861030f8 | 2 | 4 | 3592.905339 | -| terp1zxsyw5yc8e9q5mza7hq05dycjzsglyqp75cdrd | 0x11a04750983e4a0a6c5df5c0fa349890a08f9001 | 2 | 4 | 3592.905339 | -| terp1t4f8u332hdfwml6hnwywq7qlz2q9znu4shwhkc | 0x5d527e462abb52edff579b88e0781f1280514f95 | 2 | 4 | 3592.905339 | -| terp1ap232m2dmkxuh58447ws2dejpv0g7jaz832jh5 | 0xe855156d4ddd8dcbd0f5af9d0537320b1e8f4ba2 | 2 | 4 | 3592.905339 | -| terp15t2jpyjy0jnus3g9c74xlf2vyvasxyljzf9c54 | 0xa2d52092447ca7c84505c7aa6fa54c233b0313f2 | 2 | 4 | 3592.905339 | -| terp1mv0dk2e899x8j9848tcmtamx4f8erptnjka00c | 0xdb1edb2b27294c7914f53af1b5f766aa4f918573 | 2 | 4 | 3592.905339 | -| terp100q2fy54qsj9f3pawgun2c7xfaan9c58xg4pmp | 0x7bc0a49295042454c43d72393563c64f7b32e287 | 2 | 4 | 3592.905339 | -| terp15muvp08tqd7zx68hwlxhe4cfd0wvfjsqkzfz8n | 0xa6f8c0bceb037c2368f777cd7cd7096bdcc4ca00 | 2 | 4 | 3592.905339 | -| terp12d50954atcmlx9798wh357vkkhjr9u6v0vaeag | 0x5368f2d2bd5e37f317c53baf1a7996b5e432f34c | 2 | 4 | 3592.905339 | -| terp1m242yvcfkrnna9nyl26n870v3hucemq8fgsrhf | 0xdaaaa23309b0e73e9664fab533f9ec8df98cec07 | 2 | 4 | 3592.905339 | -| terp1r5qjc2vmk9tz8csnaddxee2wxx8wjqfh5jfmau | 0x1d012c299bb15623e213eb5a6ce54e318ee90137 | 2 | 4 | 3592.905339 | -| terp12rx7wuzxrm6nkchqsvcn6e94kf6tfwmc6d00f2 | 0x50cde770461ef53b62e083313d64b5b274b4bb78 | 2 | 4 | 3592.905339 | -| terp15jjjq63mnsxgqerme9v6s6yeqpldeya6d3mdfz | 0xa4a5206a3b9c0c80647bc959a86899007edc93ba | 2 | 4 | 3592.905339 | -| terp12jqvcyx2w84gnc66qu3vt802dcj9gx9zk4gztw | 0x5480cc10ca71ea89e35a0722c59dea6e245418a2 | 2 | 4 | 3592.905339 | -| terp1djec68g0v3p8xgwgsapt85aeff6spkxpm2mm25 | 0x6cb38d1d0f64427321c88742b3d3b94a7500d8c1 | 2 | 4 | 3592.905339 | -| terp1gk6xwap04dczn73c88s5amcntykmjnwmkv7qc6 | 0x45b467742fab7029fa3839e14eef13592db94ddb | 2 | 4 | 3592.905339 | -| terp1a2757ncs2fy5fhv2gyrgrhvhpnm6um5xfggk70 | 0xeabd4f4f10524944dd8a410681dd970cf7ae6e86 | 2 | 4 | 3592.905339 | -| terp1nmldz3pth4qjyt4hmd8qw22ruznwsm9m2n0e33 | 0x9efed1442bbd41222eb7db4e072943e0a6e86cbb | 2 | 4 | 3592.905339 | -| terp14h09h5ad4ggwdv6ayxejp8klm4vdxn52zjleqj | 0xadde5bd3adaa10e6b35d21b3209edfdd58d34e8a | 2 | 4 | 3592.905339 | -| terp1y8ryecsm4a256q0ve2p348se0xd9g7fq5rl4vu | 0x21c64ce21baf554d01ecca831a9e19799a547920 | 2 | 4 | 3592.905339 | -| terp1h43w3r2zk3l26qrd8tw78uxnnf343n7xqk78xe | 0xbd62e88d42b47ead006d3adde3f0d39a6358cfc6 | 2 | 4 | 3592.905339 | -| terp1h76rwlwy44e00ujs2sqxv67x2ljr3nt0yup3j9 | 0xbfb4377dc4ad72f7f2505400666bc657e438cd6f | 2 | 4 | 3592.905339 | -| terp1dl27zgxu3tcaevhvku77fm2q3f8dgetfmk4muk | 0x6fd5e120dc8af1dcb2ecb73de4ed408a4ed46569 | 2 | 4 | 3592.905339 | -| terp14c2ju3fe2atvmvjfduqycqv7k8493eh0ng7h8u | 0xae152e45395756cdb2496f004c019eb1ea58e6ef | 2 | 4 | 3592.905339 | -| terp1fuyxyrzn72ujljnpc78w2q4d2rxwevgda4dxne | 0x4f08620c53f2b92fca61c78ee502ad50ccecb10d | 2 | 4 | 3592.905339 | -| terp1yjpghx8k5n5n7c0t3s0rnlu0ygveftepvcsqsh | 0x24828b98f6a4e93f61eb8c1e39ff8f221994af21 | 2 | 4 | 3592.905339 | -| terp1ksh4aua4trwy28wp7fu488kdm6yfyldptkqzl2 | 0xb42f5ef3b558dc451dc1f279539ecdde88927da1 | 2 | 4 | 3592.905339 | -| terp1pcyxylc5v95lztfx4cfhqkkvjgulk7tggs2mln | 0x0e08627f146169f12d26ae13705acc9239fb7968 | 2 | 4 | 3592.905339 | -| terp1te8yxnpvrm8w6l68rzyek38s2nk9pu632qg3xr | 0x5e4e434c2c1eceed7f4718899b44f054ec50f351 | 2 | 4 | 3592.905339 | -| terp12fcv8s879dcq64fsem87gvqdxpt8m4hqns5afr | 0x5270c3c0fe2b700d5530cecfe4300d30567dd6e0 | 2 | 4 | 3592.905339 | -| terp1tsruh0flwjf95d32e2ckd6d3ckd9ydwrjhff5t | 0x5c07cbbd3f74925a362acab166e9b1c59a5235c3 | 2 | 4 | 3592.905339 | -| terp18ktzu42zx9wjtryc3t3fnqd3n6frnrhfgmurhv | 0x3d962e5542315d258c988ae29981b19e92398ee9 | 2 | 4 | 3592.905339 | -| terp1w3a58423uf424hzpcmr4m0m3d6f32l62cdmjrx | 0x747b43d551e26aaadc41c6c75dbf716e93157f4a | 2 | 4 | 3592.905339 | -| terp1kaxa5h7fn5dnh8ynphevhs6zt4uhu23ffvcg8t | 0xb74dda5fc99d1b3b9c930df2cbc3425d797e2a29 | 2 | 4 | 3592.905339 | -| terp177x6z96wndrfs9fp4g6dj7amvkjfm87w370w3p | 0xf78da1174e9b46981521aa34d97bbb65a49d9fce | 2 | 4 | 3592.905339 | -| terp1htlxelqtym6jvzsk9axe8z6da50cnvppy0span | 0xbafe6cfc0b26f5260a162f4d938b4ded1f89b021 | 2 | 4 | 3592.905339 | -| terp1evfk2sladnjmkw8q4mzv5qqdgsyq90h6ek6ed9 | 0xcb136543fd6ce5bb38e0aec4ca000d440802befa | 2 | 4 | 3592.905339 | -| terp1aq4d5zlywx0w228ev6ym5kgwrgg0w576e706vv | 0xe82ada0be4719ee528f96689ba590e1a10f753da | 2 | 4 | 3592.905339 | -| terp10etnr9egkh66dn92rcttne679p8u7an2dvg3n4 | 0x7e57319728b5f5a6ccaa1e16b9e75e284fcf766a | 2 | 4 | 3592.905339 | -| terp1rcepnsdqmmpvf9vdmtxjfg3lt3uv748mts6rjh | 0x1e3219c1a0dec2c4958ddacd24a23f5c78cf54fb | 2 | 4 | 3592.905339 | -| terp10s6vvt40p2yq06fpmz2zears4pzwvmyl2t06gj | 0x7c34c62eaf0a8807e921d8942cf470a844e66c9f | 2 | 4 | 3592.905339 | -| terp1s67gc3aqymryexrpzkqx0hdggtk6epysvwh8cp | 0x86bc8c47a026c64c9861158067dda842edac8490 | 2 | 4 | 3592.905339 | -| terp1c0cyj66e7us2qrq2xx63zjkqdx8a7zykhhkr5a | 0xc3f0496b59f720a00c0a31b5114ac0698fdf0896 | 2 | 4 | 3592.905339 | -| terp17t204l562wgmen0dmqhutjfknn8m7samevetu3 | 0xf2d4fafe9a5391bccdedd82fc5c9369ccfbf43bb | 2 | 4 | 3592.905339 | -| terp16dyca8zte3j0ge3usnzcq530ttlnl2heeees0q | 0xd3498e9c4bcc64f4663c84c580522f5aff3faaf9 | 2 | 4 | 3592.905339 | -| terp1a73auaxnf0jteacmn28xph5jk6ndtkmjhdgyd4 | 0xefa3de74d34be4bcf71b9a8e60de92b6a6d5db72 | 2 | 4 | 3592.905339 | -| terp1hprzl74lsq620sh32hsajhsxyx7ngu0nfal8vn | 0xb8462ffabf8034a7c2f155e1d95e0621bd3471f3 | 2 | 4 | 3592.905339 | -| terp1nrugtz7andmt6dhdq9jd247wf2v65v0fr6muke | 0x98f8858bdd9b76bd36ed0164d557ce4a99aa31e9 | 2 | 4 | 3592.905339 | -| terp1fehm3rjgwywe76ffggcy6j9r4lyy86v6krell3 | 0x4e6fb88e48711d9f692942304d48a3afc843e99a | 2 | 4 | 3592.905339 | -| terp12zurm7gqktwrphwzgcc5jn85xgpd8parp77nct | 0x50b83df900b2dc30ddc24631494cf43202d387a3 | 2 | 4 | 3592.905339 | -| terp1xpxt8u87vtg8vzy77dh9v6cuzgnja5at4ahaej | 0x304cb3f0fe62d076089ef36e566b1c12272ed3ab | 2 | 4 | 3592.905339 | -| terp13kugevr935rj55zymzzu9lyrjxcdzzju59s8hn | 0x8db88cb0658d072a5044d885c2fc8391b0d10a5c | 2 | 4 | 3592.905339 | -| terp1vvsdfh2x6tzfcxxcf9g49atmrl38nn2wef3ajl | 0x6320d4dd46d2c49c18d8495152f57b1fe279cd4e | 2 | 4 | 3592.905339 | -| terp1psygxv5ufteffcfw9gssqepy9wcn5mg7uhhpdt | 0x0c0883329c4af294e12e2a210064242bb13a6d1e | 2 | 4 | 3592.905339 | -| terp1z7anvwvrl2dvadg3m42yk8ca0d9a2803aa2gfd | 0x17bb363983fa9aceb511dd544b1f1d7b4bd51df1 | 2 | 4 | 3592.905339 | -| terp10uwx6qqhj90jms2qe9hlauhwu8vae6k5k50swv | 0x7f1c6d0017915f2dc140c96ffef2eee1d9dcead4 | 2 | 4 | 3592.905339 | -| terp17n4hp46d6kwq5at4tpvkhy73cdj73exmuchvhn | 0xf4eb70d74dd59c0a757558596b93d1c365e8e4db | 2 | 4 | 3592.905339 | -| terp1ljdqdlj88t233d7gzul8rfmdxa7c4xhuyz9z7r | 0xfc9a06fe473ad518b7c8173e71a76d377d8a9afc | 2 | 4 | 3592.905339 | -| terp1svh6j8cecceppw2em4e024el595zszmnhn4088 | 0x832fa91f19c63210b959dd72f5573fa168280b73 | 2 | 4 | 3592.905339 | -| terp16qtplh0hnusz3s7qy77h3y4dryzl208twhp5hc | 0xd0161fddf79f2028c3c027bd7892ad1905f53ceb | 2 | 4 | 3592.905339 | -| terp1wmsjcrffa9ug59qqmeha338p9z9jxdgknlkeux | 0x76e12c0d29e9788a1400de6fd8c4e1288b233516 | 2 | 4 | 3592.905339 | -| terp1au0j5pfa397q3lt8crewp7u6r0qr0x0y5dryk5 | 0xef1f2a053d897c08fd67c0f2e0fb9a1bc03799e4 | 2 | 4 | 3592.905339 | -| terp12p7ep2wtdr9pgjcl3r7wgn8g4anc4j0y83pedp | 0x507d90a9cb68ca144b1f88fce44ce8af678ac9e4 | 2 | 4 | 3592.905339 | -| terp1jmjhz5q933mf5mnv29m2jse7xrenymxextxr28 | 0x96e57150058c769a6e6c5176a9433e30f3326cd9 | 2 | 4 | 3592.905339 | -| terp1j96jf629f3jtpq3g2qvmc2ns0x4vhp5kl0e6mm | 0x917524e9454c64b082285019bc2a7079aacb8696 | 2 | 4 | 3592.905339 | -| terp144q3ygyvyd3g45glqjatkc5344s7u3y030w299 | 0xad4112208c23628ad11f04babb6291ad61ee448f | 2 | 4 | 3592.905339 | -| terp15076e7yxnytag9tnppdxxgz3rgnzh92dlvzv59 | 0xa3fdacf8869917d41573085a6320511a262b954d | 2 | 4 | 3592.905339 | -| terp10zl89qurz59vkkzfefnjzxlh87tmpwusntc5ph | 0x78be728383150acb5849ca67211bf73f97b0bb90 | 2 | 4 | 3592.905339 | -| terp1q8vsp5sar7zzgyyg2jkyl8sy4klendvyqlud5q | 0x01d900d21d1f8424108854ac4f9e04adbf99b584 | 2 | 4 | 3592.905339 | -| terp1tt3tq08e29k066ksnwakmljy4wh8z5622rmmnv | 0x5ae2b03cf9516cfd6ad09bbb6dfe44abae71534a | 2 | 4 | 3592.905339 | -| terp1sjx8yesf2k7ecdsznz7r7zfj7z5agzdye6t8dt | 0x848c72660955bd9c360298bc3f0932f0a9d409a4 | 2 | 4 | 3592.905339 | -| terp1mh4shz4x4a6a79lslvk0sg20wyv3efp08ygvd3 | 0xddeb0b8aa6af75df17f0fb2cf8214f71191ca42f | 2 | 4 | 3592.905339 | -| terp1clfv80htzmfmjvmhhw59qduxzp3vn89mvrlrql | 0xc7d2c3beeb16d3b93377bba85037861062c99cbb | 2 | 4 | 3592.905339 | -| terp1ee2twl80raf7j6zqd5wc0v294pq08n8ukdxaee | 0xce54b77cef1f53e968406d1d87b145a840f3ccfc | 2 | 4 | 3592.905339 | -| terp192y3zx4j2nrjxpedwwelhw2h95a9qnzfywxl9v | 0x2a89111ab254c723072d73b3fbb9572d3a504c49 | 2 | 4 | 3592.905339 | -| terp13l9237y2n4xg8frny72z0hqa0rvy3mq6ues6nu | 0x8fcaa8f88a9d4c83a473279427dc1d78d848ec1a | 2 | 4 | 3592.905339 | -| terp175errmkpzdyqnd05jhdyymlhmzvq6rcvecf0wg | 0xf53231eec1134809b5f495da426ff7d8980d0f0c | 2 | 4 | 3592.905339 | -| terp125qnu7wu376hxkytyfz8vv7qf8snlu0n5rp96z | 0x55013e79dc8fb573588b22447633c049e13ff1f3 | 2 | 4 | 3592.905339 | -| terp1n9x6t524gwnvy64s50ed2k476yn3pudkls5c84 | 0x994da5d15543a6c26ab0a3f2d55abed12710f1b6 | 2 | 4 | 3592.905339 | -| terp13w333npjs5vl4l8r8nceqzfhzfsq66p7xz6ve9 | 0x8ba318cc328519fafce33cf190093712600d683e | 2 | 4 | 3592.905339 | -| terp1uqyyx7aq4ku6ah6ddkff7z3x5th3hh9qvhygqq | 0xe008437ba0adb9aedf4d6d929f0a26a2ef1bdca0 | 2 | 4 | 3592.905339 | -| terp12vcrdu00zzpuej7fl2pl495r8mx3lmlx0k2hej | 0x533036f1ef1083cccbc9fa83fa96833ecd1fefe6 | 2 | 4 | 3592.905339 | -| terp1emscxl7htsyelsxsuzfe5nphd7y9dlvwvpdf84 | 0xcee1837fd75c099fc0d0e0939a4c376f8856fd8e | 2 | 4 | 3592.905339 | -| terp1c8kzq90kd8c0eznzhfryvz2l3ftf3z5k89xvdr | 0xc1ec2015f669f0fc8a62ba4646095f8a56988a96 | 2 | 4 | 3592.905339 | -| terp1xuggknqnmrkjzvj3d08ujg4g95yp9n5gzd2aph | 0x37108b4c13d8ed2132516bcfc922a82d0812ce88 | 2 | 4 | 3592.905339 | -| terp139xq4c4wryhz6v2jghkxqjvww07xw8htfhrx42 | 0x894c0ae2ae192e2d315245ec60498e73fc671eeb | 2 | 4 | 3592.905339 | -| terp1udyfyzyjlwm7aky5rldzrhdyyz6ts934mfmjgj | 0xe348920892fbb7eed8941fda21dda420b4b81635 | 2 | 4 | 3592.905339 | -| terp16w3gqxsack0m5lmrdxl37tzj3f28hj27lkaxmj | 0xd3a2801a1dc59fba7f6369bf1f2c528a547bc95e | 2 | 4 | 3592.905339 | -| terp1pljwuz6n6m5497lqrnwqgerpc655stmjmqpxhv | 0x0fe4ee0b53d6e952fbe01cdc046461c6a9482f72 | 2 | 4 | 3592.905339 | -| terp1szqjg3pwwg9xyx2s34uj9pzutw6wl47308ea97 | 0x808124442e720a6219508d7922845c5bb4efd7d1 | 2 | 4 | 3592.905339 | -| terp106z7ymw68nnp3zzehdqv6fhqsjxpgue9ft97xw | 0x7e85e26dda3ce6188859bb40cd26e0848c147325 | 2 | 4 | 3592.905339 | -| terp1n5s267qzfq6e2kj8683mrlqng80xnqncy3dych | 0x9d20ad78024835955a47d1e3b1fc1341de698278 | 2 | 4 | 3592.905339 | -| terp1dzaqytve6x4mmh6nya96q7t4uuu6rc7wn3y68k | 0x68ba022d99d1abbddf53274ba07975e739a1e3ce | 2 | 4 | 3592.905339 | -| terp1w88xxc904qu8erk6y5p2l6aw2ty3hhtj9yqt8a | 0x71ce6360afa8387c8eda2502afebae52c91bdd72 | 2 | 4 | 3592.905339 | -| terp1rcnlug543v788sdxqurrjwgtn3g3ddqwaupxz7 | 0x1e27fe22958b3c73c1a6070639390b9c5116b40e | 2 | 4 | 3592.905339 | -| terp1udp2pc4jtrqg393h6zmf2g27u0smm9wwgugsff | 0xe342a0e2b258c0889637d0b695215ee3e1bd95ce | 2 | 4 | 3592.905339 | -| terp1a9h3zxjhtwg5cp2m6vcl4d0duluv8rg5myhwtz | 0xe96f111a575b914c055bd331fab5ede7f8c38d14 | 2 | 4 | 3592.905339 | -| terp1twm5rpvse82snluynr6nr0fvd2767a5mnr5n3c | 0x5bb7418590c9d509ff8498f531bd2c6abdaf769b | 2 | 4 | 3592.905339 | -| terp1rdxyhuf83u64r3wml9sfgp40zvmk36ecyj77gv | 0x1b4c4bf1278f3551c5dbf9609406af133768eb38 | 2 | 4 | 3592.905339 | -| terp1fwww26apqdgu5gu4u93nyzucv0dg59prury3dc | 0x4b9ce56ba10351ca2395e163320b9863da8a1423 | 2 | 4 | 3592.905339 | -| terp10jldgvxtx9fwflggg274qar4t8kq96k40rn5ps | 0x7cbed430cb3152e4fd0842bd50747559ec02ead5 | 2 | 4 | 3592.905339 | -| terp1sndm0kuke4w5vd0vvf5ksfyca7nc250wqq69pw | 0x84dbb7db96cd5d4635ec6269682498efa78551ee | 2 | 4 | 3592.905339 | -| terp1mzr34qamw4897rfxqh0najrgjvcdnph9ljn3sv | 0xd8871a83bb754e5f0d2605df3ec8689330d986e5 | 2 | 4 | 3592.905339 | -| terp1azamwn66qu6gr85q7kjkqfg0aust8dy2544s32 | 0xe8bbb74f5a0734819e80f5a560250fef20b3b48a | 2 | 4 | 3592.905339 | -| terp1rf4fh09f3p9xxem6n6zj58tm0p89c7cdpqtpce | 0x1a6a9bbca9884a63677a9e852a1d7b784e5c7b0d | 2 | 4 | 3592.905339 | -| terp1g5j0dsderu4225zuat272a26p7d3qp2xsgkjsp | 0x4524f6c1b91f2aa5505cead5e5755a0f9b100546 | 2 | 4 | 3592.905339 | -| terp1f7rwyqvml0jv30f824d8ye9g2x88kmhpsjy5fj | 0x4f86e2019bfbe4c8bd27555a7264a8518e7b6ee1 | 2 | 4 | 3592.905339 | -| terp1tp0vs4vfzrll437ucpugcmtat0s9c2pmtv9c5l | 0x585ec8558910fffac7dcc0788c6d7d5be05c283b | 2 | 4 | 3592.905339 | -| terp12jfadgl6u2jfmufhvmvphuh6cef2fkfxxsj629 | 0x5493d6a3fae2a49df13766d81bf2fac652a4d926 | 2 | 4 | 3592.905339 | -| terp1fnkdgd2jp2vkqf8wklah0vuvpzpssdz6jmpm9h | 0x4cecd435520a996024eeb7fb77b38c088308345a | 2 | 4 | 3592.905339 | -| terp14hxn9cku4r43qx73f9krf0l5dlrkaz6c7496sk | 0xadcd32e2dca8eb101bd1496c34bff46fc76e8b58 | 2 | 4 | 3592.905339 | -| terp14gs5z8tfrqm0gvmshacq0aphgd32hnqywjq9ny | 0xaa21411d691836f43370bf7007f4374362abcc04 | 2 | 4 | 3592.905339 | -| terp15q7aqk4t3tdsgvjx9dpr80tr6ercv2t0krvudf | 0xa03dd05aab8adb0432462b4233bd63d64786296f | 2 | 4 | 3592.905339 | -| terp1rec0s0rl53afywpsqza8gz9le32e6xkusvxx6q | 0x1e70f83c7fa47a92383000ba7408bfcc559d1adc | 2 | 4 | 3592.905339 | -| terp15xe58f35jvh0qmg0ms40jex9gzf93kqauh3s5x | 0xa1b343a634932ef06d0fdc2af964c5409258d81d | 2 | 4 | 3592.905339 | -| terp1rkq2le5f2dngznwqsj5wncvvrcgg7d6zxalhmg | 0x1d80afe6895366814dc084a8e9e18c1e108f3742 | 2 | 4 | 3592.905339 | -| terp15mud9pcl0hq5mffrsp2uprp9apzuxc5xjhfy4r | 0xa6f8d2871f7dc14da5238055c08c25e845c36286 | 2 | 4 | 3592.905339 | -| terp12huz4vxm38a9sfvl6zx02w45nfgnm99e727d60 | 0x55f82ab0db89fa58259fd08cf53ab49a513d94b9 | 2 | 4 | 3592.905339 | -| terp1ewpulhs83zjmnhmfak930h7n66xjfja2w0arsc | 0xcb83cfde0788a5b9df69ed8b17dfd3d68d24cbaa | 2 | 4 | 3592.905339 | -| terp1rxezd4f9qupz3m7xh6v4p3n7w24c8rq38y4sdw | 0x19b226d525070228efc6be9950c67e72ab838c11 | 2 | 4 | 3592.905339 | -| terp1c4gdx6c9fzesas6lugl6dw39qpts6a3henvwga | 0xc550d36b0548b30ec35fe23fa6ba2500570d7637 | 2 | 4 | 3592.905339 | -| terp195v5e7jfkhekqsn5sjy6fzux0z4pcszg2tre7g | 0x2d194cfa49b5f36042748489a48b8678aa1c4048 | 2 | 4 | 3592.905339 | -| terp1kf9euetf45y8w4xgsdygknpqq2uh7aaxwxt5hw | 0xb24b9e6569ad087754c883488b4c2002b97f77a6 | 2 | 4 | 3592.905339 | -| terp1wtvxdsse55g6mnuz4gwlhuttp7ty6c5j53qvsh | 0x72d866c219a511adcf82aa1dfbf16b0f964d6292 | 2 | 4 | 3592.905339 | -| terp1hdkzkk95uys3lt2c57f73q0z3pdp8z547aduxn | 0xbb6c2b58b4e1211fad58a793e881e2885a138a95 | 2 | 4 | 3592.905339 | -| terp1jlvjy4qc5l5047725qt4wwcyw6unnwh7j7tg9q | 0x97d9225418a7e8fafbcaa017573b0476b939bafe | 2 | 4 | 3592.905339 | -| terp1kealp0ha59ms5965p4kgfu3z07qj7rewange7p | 0xb67bf0befda1770a17540d6c84f2227f812f0f2e | 2 | 4 | 3592.905339 | -| terp1gyck33zrgvjhfdwks7uvejxnmepmn6le9jk4rh | 0x413168c443432574b5d687b8ccc8d3de43b9ebf9 | 2 | 4 | 3592.905339 | -| terp1ksmnjs3xukqupkdvuv65gumdmlvwctmf67sk5h | 0xb437394226e581c0d9ace33544736ddfd8ec2f69 | 2 | 4 | 3592.905339 | -| terp1hfq9vk2gjvjakpksz0xegegh08pvfey9q4kug0 | 0xba405659489325db06d013cd94651779c2c4e485 | 2 | 4 | 3592.905339 | -| terp1rzumlgkckf8v9js6yr2z89djeggep09sa4knrd | 0x18b9bfa2d8b24ec2ca1a20d42395b2ca1190bcb0 | 2 | 4 | 3592.905339 | -| terp13a4dsuge4eefmm0d5shn9jzz70qpq0kpmcx2jv | 0x8f6ad87119ae729dededa42f32c842f3c0103ec1 | 2 | 4 | 3592.905339 | -| terp1764ywungdqhf6sqz3jzkp0ysxpkjkzqnyltdr6 | 0xf6aa477268682e9d40028c8560bc90306d2b0813 | 2 | 4 | 3592.905339 | -| terp1gjx5hxw54ayff8veh799jk77ngev593an05dsp | 0x448d4b99d4af48949d99bf8a595bde9a32ca163d | 2 | 4 | 3592.905339 | -| terp1hzgr6vujfvgtnnd8lk2stcu47xhqhpfjwec0jy | 0xb8903d33924b10b9cda7fd9505e395f1ae0b8532 | 2 | 4 | 3592.905339 | -| terp1t5k6er4vxv4vnuap68ju5hh85pglpmt6qlayrv | 0x5d2dac8eac332ac9f3a1d1e5ca5ee7a051f0ed7a | 2 | 4 | 3592.905339 | -| terp1s2eyx3eygpv624pnurpg3gl0dfuqh6laawmu98 | 0x82b24347244059a55433e0c288a3ef6a780bebfd | 2 | 4 | 3592.905339 | -| terp1u3ahkxxaj5esjmx3hwl59xtuqnl62f5hvgtu4a | 0xe47b7b18dd9533096cd1bbbf42997c04ffa52697 | 2 | 4 | 3592.905339 | -| terp1ay8ux7xnjat98ajmwaqktttw75rrvnl4ag5qhc | 0xe90fc378d3975653f65b774165ad6ef506364ff5 | 2 | 4 | 3592.905339 | -| terp13z3ytq7jadqpk49qrczwrhgklr6neyeej34pfh | 0x88a24583d2eb401b54a01e04e1dd16f8f53c9339 | 2 | 4 | 3592.905339 | -| terp1ysk33te0j8wucpwcx98f4t5ed8cxpmxjr2hqs9 | 0x242d18af2f91ddcc05d8314e9aae9969f060ecd2 | 2 | 4 | 3592.905339 | -| terp12ft49sd49dlch088k9mv6gtunymqq0lz2d28x9 | 0x525752c1b52b7f8bbce7b176cd217c9936003fe2 | 2 | 4 | 3592.905339 | -| terp1xzrldlm8acdrhe65avzkm7pthgflttey99k29d | 0x3087f6ff67ee1a3be754eb056df82bba13f5af24 | 2 | 4 | 3592.905339 | -| terp1ggpsx7kuwe6d7dhmd94j3029jqws7k6zutclps | 0x4203037adc7674df36fb696b28bd45901d0f5b42 | 2 | 4 | 3592.905339 | -| terp1qmfsgrwzmzs3egy9rk0eddcjtw7rj6s44dc6pm | 0x06d3040dc2d8a11ca0851d9f96b7125bbc396a15 | 2 | 4 | 3592.905339 | -| terp19kvfly7dnuj2tmj7jqr3tm0hhxr7evhj5ly7t2 | 0x2d989f93cd9f24a5ee5e900715edf7b987ecb2f2 | 2 | 4 | 3592.905339 | -| terp1f0s7zv9a7qu0a7glvawcp3fycpy8xfhtqlx9c8 | 0x4be1e130bdf038fef91f675d80c524c0487326eb | 2 | 4 | 3592.905339 | -| terp1wc8wv3540np3fs4fehs8as939gatgddyjazgll | 0x760ee646957cc314c2a9cde07ec0b12a3ab435a4 | 2 | 4 | 3592.905339 | -| terp1m3v5cqqels4jgmggx4cpd66f3fmmth2fphh6m4 | 0xdc594c0019fc2b246d08357016eb498a77b5dd49 | 2 | 4 | 3592.905339 | -| terp1egephm03v03g9ng0lc6q3hf2a3k62kmk2pzpnl | 0xca321bedf163e282cd0ffe3408dd2aec6da55b76 | 2 | 4 | 3592.905339 | -| terp1vqvaq4zx5q8qjzgercxflh9qyz8puzxph4r8u4 | 0x6019d05446a00e0909191e0c9fdca0208e1e08c1 | 2 | 4 | 3592.905339 | -| terp1vgenuzp0jkdnqnhf344w0zk8x8lrhyzjhm0c7h | 0x62333e082f959b304ee98d6ae78ac731fe3b9052 | 2 | 4 | 3592.905339 | -| terp1985kaf99jayaqf6jrqenwz9sc0n2vfn7z9ujzs | 0x29e96ea4a59749d0275218333708b0c3e6a6267e | 2 | 4 | 3592.905339 | -| terp1jlqmawnprht02pqnc3ca93nrh0t58zckm3yyrp | 0x97c1beba611dd6f50413c471d2c663bbd7438b16 | 2 | 4 | 3592.905339 | -| terp1k6d5h8x00qxywn7te30qpywddhurgt56g7ej6h | 0xb69b4b9ccf780c474fcbcc5e0091cd6df8342e9a | 2 | 4 | 3592.905339 | -| terp18fq8new2wn74lduuczchkygdy3k9hnzasscl0z | 0x3a4079e5ca74fd5fb79cc0b17b110d246c5bcc5d | 2 | 4 | 3592.905339 | -| terp1cnx2wpylhgqnxyl40cqnnw25jy74gxkjm0u7je | 0xc4cca7049fba013313f57e0139b954913d541ad2 | 2 | 4 | 3592.905339 | -| terp1e9ylfduvmd42mv65j6dcfm4zd2uhh75vu0ndc6 | 0xc949f4b78cdb6aadb354969b84eea26ab97bfa8c | 2 | 4 | 3592.905339 | -| terp1xss4dumlqv70xv27ge08pttrs3mq43uv7ekxpf | 0x342156f37f033cf3315e465e70ad6384760ac78c | 2 | 4 | 3592.905339 | -| terp1wemwczsscf4qnnglygph9x7v9tg3h7n6z46uly | 0x7676ec0a10c26a09cd1f2203729bcc2ad11bfa7a | 2 | 4 | 3592.905339 | -| terp19dk0gk6m82a7rwjfkl6leajfhar4xvl0ej9akx | 0x2b6cf45b5b3abbe1ba49b7f5fcf649bf475333ef | 2 | 4 | 3592.905339 | -| terp1ep439kzslkalxfs20w4wschctpt64ka68fq5vf | 0xc86b12d850fdbbf3260a7baae862f85857aadbba | 2 | 4 | 3592.905339 | -| terp1ag39ejdguxv6u8acnd5sktwkvtx9676kw46kuc | 0xea225cc9a8e199ae1fb89b690b2dd662cc5d7b56 | 2 | 4 | 3592.905339 | -| terp1jcgcxuu8quy99atl8lvp92pxu39kkapz27m3y5 | 0x9611837387070852f57f3fd812a826e44b6b7422 | 2 | 4 | 3592.905339 | -| terp1e77s7jnjpex5xp7anm958wsx5zxk4wzd66407d | 0xcfbd0f4a720e4d4307dd9ecb43ba06a08d6ab84d | 2 | 4 | 3592.905339 | -| terp1n0wdhawrgcxeg7myfyyq9wf7f8v305fs5vnsr9 | 0x9bdcdbf5c3460d947b64490802b93e49d917d130 | 2 | 4 | 3592.905339 | -| terp1mgqpwyxdcnzhm4apk0rl0g0dyd7f9xy8p8pc7k | 0xda001710cdc4c57dd7a1b3c7f7a1ed237c929887 | 2 | 4 | 3592.905339 | -| terp1rljzq9xmmzny6zacdehmekhcuvxyu8p5yua4x7 | 0x1fe42014dbd8a64d0bb86e6fbcdaf8e30c4e1c34 | 2 | 4 | 3592.905339 | -| terp1k6pke64he6vdunl8jvdudkufp54wv0plv7tscz | 0xb6836ceab7ce98de4fe7931bc6db890d2ae63c3f | 2 | 4 | 3592.905339 | -| terp1rc6qxewmppcecshv6qv2dmcph43uduta3j7g9v | 0x1e340365db08719c42ecd018a6ef01bd63c6f17d | 2 | 4 | 3592.905339 | -| terp1kerpaz8v07jxa3l9haauzjh0rvzq8fcs92r9qh | 0xb6461e88ec7fa46ec7e5bf7bc14aef1b0403a710 | 2 | 4 | 3592.905339 | -| terp1eymv9p3fl07ekel5e4vg7al6s5akv6dsufqs79 | 0xc936c28629fbfd9b67f4cd588f77fa853b6669b0 | 2 | 4 | 3592.905339 | -| terp1ap7sds75jcyjcwafhl83jjnxfw52k389znuwdr | 0xe87d06c3d496092c3ba9bfcf194a664ba8ab44e5 | 2 | 4 | 3592.905339 | -| terp1qjdwm4ynv0pxmfprarqfa7hwq4zu977907xnyf | 0x049aedd49363c26da423e8c09efaee0545c2fbc5 | 2 | 4 | 3592.905339 | -| terp1wgks4qj7vn842nc9ymwv30s4l6c7hvq6l7sqmu | 0x722d0a825e64cf554f0526dcc8be15feb1ebb01a | 2 | 4 | 3592.905339 | -| terp1p2x4ys2e8gvt32k09wzlk5yg6nhkkm700qyqx5 | 0x0a8d5241593a18b8aacf2b85fb5088d4ef6b6fcf | 2 | 4 | 3592.905339 | -| terp1vx62zjlud8csc6tksr2edd6x9cr8pwnx3mshdk | 0x61b4a14bfc69f10c697680d596b7462e0670ba66 | 2 | 4 | 3592.905339 | -| terp15wfnxj6td8rg0yfr5tcg66rczwhmk9aj0zgr5m | 0xa393334b4b69c6879123a2f08d687813afbb17b2 | 2 | 4 | 3592.905339 | -| terp13ee2u48v932kquxp6w26p05rj7s7ver5fqky4r | 0x8e72ae54ec2c556070c1d395a0be8397a1e66474 | 2 | 4 | 3592.905339 | -| terp1mdltgcreupdeaav038tyhvdqwtf3rc78j2vag3 | 0xdb7eb46079e05b9ef58f89d64bb1a072d311e3c7 | 2 | 4 | 3592.905339 | -| terp1jh5u77sp0w30jcj7ql0s94dv3tz5tyltg6l938 | 0x95e9cf7a017ba2f9625e07df02d5ac8ac54593eb | 2 | 4 | 3592.905339 | -| terp1ly9j3qtvzt78cyvqtfepne9rh4cvzxlurl4p0f | 0xf90b28816c12fc7c11805a7219e4a3bd70c11bfc | 2 | 4 | 3592.905339 | -| terp10vuaymq4kp5jlz0nafcsncxg50laqn7eprakza | 0x7b39d26c15b0692f89f3ea7109e0c8a3ffd04fd9 | 2 | 4 | 3592.905339 | -| terp13ncg0748uxtdhl7m0j0d2kuv9y2tt60alhxukk | 0x8cf087faa7e196dbffdb7c9ed55b8c2914b5e9fd | 2 | 4 | 3592.905339 | -| terp1ysu9t29n5wt0meks4dj9huucuux3p82zkhdfza | 0x243855a8b3a396fde6d0ab645bf398e70d109d42 | 2 | 4 | 3592.905339 | -| terp14u2qyrthudmrfhpj6ssqd7ugezg7cc7vduq9xl | 0xaf14020d77e37634dc32d42006fb88c891ec63cc | 2 | 4 | 3592.905339 | -| terp1734swmlc4j9wzclu6mv6dcrkjquytngfjsdlsc | 0xf46b076ff8ac8ae163fcd6d9a6e076903845cd09 | 2 | 4 | 3592.905339 | -| terp14202jrerf4ev58mtpe7vuu34tgwsqwu60aufpv | 0xaa9ea90f234d72ca1f6b0e7cce72355a1d003b9a | 2 | 4 | 3592.905339 | -| terp1qwudfw7mk2c7g6d6p4znwq74ws6myxesasl2kr | 0x03b8d4bbdbb2b1e469ba0d453703d57435b21b30 | 2 | 4 | 3592.905339 | -| terp1d7kd6s4km2sn7dvusjeazgkrnk3e2a7umkjcgh | 0x6facdd42b6daa13f359c84b3d122c39da39577dc | 2 | 4 | 3592.905339 | -| terp1hd939jn0dgaef9fv0v2r8ttlj7nc5z9ddxwm9z | 0xbb4b12ca6f6a3b94952c7b1433ad7f97a78a08ad | 2 | 4 | 3592.905339 | -| terp12g56cm24lcmculgzl47wwd7tq7wdzfzqg9fwv8 | 0x5229ac6d55fe378e7d02fd7ce737cb079cd12440 | 2 | 4 | 3592.905339 | -| terp1xnndkpvncj2r3v5x6304w2jentlv0lw7fck2d3 | 0x34e6db0593c49438b286d45f572a599afec7fdde | 2 | 4 | 3592.905339 | -| terp12zpslh33fdqnp8n274zmuw5jd43d5nl66x8uq5 | 0x50830fde314b41309e6af545be3a926d62da4ffa | 2 | 4 | 3592.905339 | -| terp1g0yym70hszflu3tczz5lv00vatwgl6y0lgw4vy | 0x43c84df9f78093fe457810a9f63deceadc8fe88f | 2 | 4 | 3592.905339 | -| terp1k0cdld5pd0hghqkdqmgl0hs0dzyltrrjh5w265 | 0xb3f0dfb6816bee8b82cd06d1f7de0f6889f58c72 | 2 | 4 | 3592.905339 | -| terp1jcg4ny3u5skqyq0mn2pdahmc3lcsmsqtt477at | 0x961159923ca42c0201fb9a82dedf788ff10dc00b | 2 | 4 | 3592.905339 | -| terp1qxjxudwk6jr9qlv6mt9zue2cczzfj6c88suw44 | 0x01a46e35d6d486507d9adaca2e6558c084996b07 | 2 | 4 | 3592.905339 | -| terp1jhf0ghcgprl8wjf45aav5nxrjfysw5gtv7qv0j | 0x95d2f45f0808fe774935a77aca4cc3924907510b | 2 | 4 | 3592.905339 | -| terp1akhnwk60v0c2h0xpwae5echru886yecvru7g05 | 0xedaf375b4f63f0abbcc177734ce2e3e1cfa2670c | 2 | 4 | 3592.905339 | -| terp14frmjl6jp6smt76kvr34nlvhlurjd25h8dcweh | 0xaa47b97f520ea1b5fb5660e359fd97ff0726aa97 | 2 | 4 | 3592.905339 | -| terp13klvfwj29pe9tg2l8nx5r77shr4snkvgn28aj9 | 0x8dbec4ba4a287255a15f3ccd41fbd0b8eb09d988 | 2 | 4 | 3592.905339 | -| terp19vsvdw7elc8asc4kwkzryracqk4d57vmc0ag72 | 0x2b20c6bbd9fe0fd862b67584320fb805aada799b | 2 | 4 | 3592.905339 | -| terp1rx78v043gqh72u8kyn7q0r842pvjtw8z6mjav9 | 0x19bc763eb1402fe570f624fc078cf5505925b8e2 | 2 | 4 | 3592.905339 | -| terp1d3yzeg44tm87njck32d8c4yut7r0g03ugncv9l | 0x6c482ca2b55ecfe9cb168a9a7c549c5f86f43e3c | 2 | 4 | 3592.905339 | -| terp1ent508dc64jcx2fventd7j9sn7pqqlnp0h6t4h | 0xccd7479db8d56583292cccd6df48b09f82007e61 | 2 | 4 | 3592.905339 | -| terp1gzmmcjwlpemekmuuvemmuw2f9kaqvzthmj8vrh | 0x40b7bc49df0e779b6f9c6677be39492dba060977 | 2 | 4 | 3592.905339 | -| terp1a9jxtfnddd5wuxjqhuuxtxlyel872a52744shu | 0xe96465a66d6b68ee1a40bf38659be4cfcfe5768a | 2 | 4 | 3592.905339 | -| terp1der6r7dnzce98kptuwrkam06uztrp0rhz3zdmy | 0x6e47a1f9b3163253d82be3876eedfae09630bc77 | 2 | 4 | 3592.905339 | -| terp1dmkae9wgsfezq09n85vzpp8l5fh53ke4p9jp24 | 0x6eeddc95c88272203cb33d182084ffa26f48db35 | 2 | 4 | 3592.905339 | -| terp15srx2djathuaep4kpg5armjx9slvdu0ffc29ru | 0xa40665365d5df9dc86b60a29d1ee462c3ec6f1e9 | 2 | 4 | 3592.905339 | -| terp19t07zqyfvsnpy4p6pd3hfmg2cqz6fpgwr4c4ar | 0x2adfe10089642612543a0b6374ed0ac005a4850e | 2 | 4 | 3592.905339 | -| terp1gacpfcgj74qz556fr5d2kztzmjjz637rjl6x0t | 0x477014e112f5402a53491d1aab0962dca42d47c3 | 2 | 4 | 3592.905339 | -| terp1psnndzvk4weaya63hlt05ms3g4ql4j9yjceqaq | 0x0c27368996abb3d27751bfd6fa6e114541fac8a4 | 2 | 4 | 3592.905339 | -| terp1s6eehpw5l63h3qmnu76tgplt9s3hta5gd562fu | 0x86b39b85d4fea3788373e7b4b407eb2c2375f688 | 2 | 4 | 3592.905339 | -| terp1gf7x99v3m43laq9a0e96s06l4qz4gtq6py2wrn | 0x427c629591dd63fe80bd7e4ba83f5fa805542c1a | 2 | 4 | 3592.905339 | -| terp1halc6dc39pwf6mhryw9unvtf5zazhj0dm6tp2a | 0xbf7f8d3711285c9d6ee3238bc9b169a0ba2bc9ed | 2 | 4 | 3592.905339 | -| terp1z7ku3vevsycllac8lp3sfr8j09324utrjp42lt | 0x17adc8b32c8131fff707f863048cf27962aaf163 | 2 | 4 | 3592.905339 | -| terp19n6plp60fdsds7f2u9h9udp7mch4ws6ngsqvyj | 0x2cf41f874f4b60d8792ae16e5e343ede2f574353 | 2 | 4 | 3592.905339 | -| terp1vrqusz78gcmlmepcy0t4g4d4szlfc64tgnvhar | 0x60c1c80bc74637fde43823d75455b580be9c6aab | 2 | 4 | 3592.905339 | -| terp18vrdga2j2qpvvlhv739r63a8tdm5gf4py2ztl0 | 0x3b06d475525002c67eecf44a3d47a75b774426a1 | 2 | 4 | 3592.905339 | -| terp1zuquk5tyk7334z0juvtngc2tusmprpam38r3qx | 0x1701cb5164b7a31a89f2e31734614be4361187bb | 2 | 4 | 3592.905339 | -| terp17qzf9sj3re6e9uhd3s9vn3n2cn8umf3wfsv7am | 0xf00492c2511e7592f2ed8c0ac9c66ac4cfcda62e | 2 | 4 | 3592.905339 | -| terp1hrxk4fvew4s26yrhk8xjuy6tf0krpu73un06ln | 0xb8cd6aa5997560ad1077b1cd2e134b4bec30f3d1 | 2 | 4 | 3592.905339 | -| terp10x5jhx7wqlmukarqacytvtv0ncwg07dlgsxu92 | 0x79a92b9bce07f7cb7460ee08b62d8f9e1c87f9bf | 2 | 4 | 3592.905339 | -| terp12yaxy70m4gtke6w0kc60d7u4dj54u0j2zdlvt6 | 0x513a6279fbaa176ce9cfb634f6fb956ca95e3e4a | 2 | 4 | 3592.905339 | -| terp1n4seemegvxlnahm6ra7rym7zv5x6rjk3l2u9es | 0x9d619cef2861bf3edf7a1f7c326fc2650da1cad1 | 2 | 4 | 3592.905339 | -| terp10gtuyxqygexwk765xam4tsawlz2wche93ehmk9 | 0x7a17c21804464ceb7b54377755c3aef894ec5f25 | 2 | 4 | 3592.905339 | -| terp1w89r99rl3f9resvc0tve7pt3y7rk8nl9kdwpcv | 0x71ca32947f8a4a3cc1987ad99f0571278763cfe5 | 2 | 4 | 3592.905339 | -| terp14zpjwydh6a8rsgwap0jy0rsv5s2zwmrzutn4rz | 0xa8832711b7d74e3821dd0be4478e0ca414276c62 | 2 | 4 | 3592.905339 | -| terp1cdjmfqwdnsafsrhf9vllf365z59rfu4w7nsrzk | 0xc365b481cd9c3a980ee92b3ff4c754150a34f2ae | 2 | 4 | 3592.905339 | -| terp17ejdsg9485ly98s327f0uud69q62w3eul76xrn | 0xf664d820b53d3e429e115792fe71ba2834a7473c | 2 | 4 | 3592.905339 | -| terp17jf4430gp4x2965ph72f5eykmy27h79a3ly906 | 0xf4935ac5e80d4ca2ea81bf949a6496d915ebf8bd | 2 | 4 | 3592.905339 | -| terp1hlvw8a3g87jx9tnd43w7emgxaluxl9zw789edf | 0xbfd8e3f6283fa462ae6dac5deced06eff86f944e | 2 | 4 | 3592.905339 | -| terp1cuzka6lmfdrjdewgk2vjkmqaerw5y7nx2j4ugx | 0xc7056eebfb4b4726e5c8b2992b6c1dc8dd427a66 | 2 | 4 | 3592.905339 | -| terp1mh3vr9lchpfxkrswtvqgl4fygt2dy5lycp9eu4 | 0xdde2c197f8b8526b0e0e5b008fd52442d4d253e4 | 2 | 4 | 3592.905339 | -| terp1ldrwwdpqcxr2jczr6xv78f5wykweqtf0rkdva0 | 0xfb46e73420c186a96043d199e3a68e259d902d2f | 2 | 4 | 3592.905339 | -| terp1mk9mn03zdhtecwa3f05a74jz7wwdpqwmw7vqdw | 0xdd8bb9be226dd79c3bb14be9df5642f39cd081db | 2 | 4 | 3592.905339 | -| terp1fmpu4c4adje90xe5qjphdd96vlh62ywqzax0a7 | 0x4ec3cae2bd6cb2579b34048376b4ba67efa511c0 | 2 | 4 | 3592.905339 | -| terp1wg9swkdrkqwtcpspzgl25gv5n3k7c6r3k636ym | 0x720b0759a3b01cbc0601123eaa21949c6dec6871 | 2 | 4 | 3592.905339 | -| terp1zz9ztfu0mqjt344t8uj0sdtmfu8cqk7wr6fhjh | 0x108a25a78fd824b8d6ab3f24f8357b4f0f805bce | 2 | 4 | 3592.905339 | -| terp1xeqqmq3skcrm8zdeqhetl03u3s0pfmj5yzq6lw | 0x36400d8230b607b389b905f2bfbe3c8c1e14ee54 | 2 | 4 | 3592.905339 | -| terp19nw3n80x2v04kjxtemhkkn989rmh8752zr46cn | 0x2cdd199de6531f5b48cbceef6b4ca728f773fa8a | 2 | 4 | 3592.905339 | -| terp109sug0j8elzy0s2zmzn7hsvaan5eh0e34lvxzw | 0x7961c43e47cfc447c142d8a7ebc19dece99bbf31 | 2 | 4 | 3592.905339 | -| terp1s024vsx77jwtvj927w74sqv2v6p76yvhqjsxdz | 0x83d55640def49cb648aaf3bd58018a6683ed1197 | 2 | 4 | 3592.905339 | -| terp1q82uhgm5egf9hpl0df87hhyp4fu9q09audk0qu | 0x01d5cba374ca125b87ef6a4febdc81aa78503cbd | 2 | 4 | 3592.905339 | -| terp1up8gs36273xaa5747pr3ndlqq9vcgc2kazpvky | 0xe04e88474af44dded3d5f04719b7e00159846156 | 2 | 4 | 3592.905339 | -| terp1gggxervyetfn5f9sqpjd74sgpcecpqhemy4q23 | 0x42106c8d84cad33a24b00064df56080e338082f9 | 2 | 4 | 3592.905339 | -| terp1ghp68zg3ahz9sshuump8aev7zev4jd6737hedx | 0x45c3a38911edc45842fce6c27ee59e165959375e | 2 | 4 | 3592.905339 | -| terp1dry23vd0cmnls83ursrh0zjmhrvgd4wfcdld08 | 0x68c8a8b1afc6e7f81e3c1c07778a5bb8d886d5c9 | 2 | 4 | 3592.905339 | -| terp18n02mqjhqhwwnpygs70lxju4z8vfzk2cdxqex3 | 0x3cdead825705dce98488879ff34b9511d8915958 | 2 | 4 | 3592.905339 | -| terp1g5krrn90pmmxs9yx77x9dm890sv5mpwzk8dwk6 | 0x452c31ccaf0ef6681486f78c56ece57c194d85c2 | 2 | 4 | 3592.905339 | -| terp1xafgx2lxgqcydfty0reqkllvtqyvvmpldvj7qn | 0x3752832be6403046a56478f20b7fec5808c66c3f | 2 | 4 | 3592.905339 | -| terp1w3tsll34dqldz47wv5zx6639suee3ayz8slm0v | 0x74570ffe35683ed157ce65046d6a25873398f482 | 2 | 4 | 3592.905339 | -| terp12ep8zvug0nwcrk5kdqq3ymfcy626wgsu0t3gqh | 0x56427133887cdd81da966801126d382695a7221c | 2 | 4 | 3592.905339 | -| terp193uq9qvkxuvfxwynpey57lhyqvk5wejq8edaxl | 0x2c7802819637189338930e494f7ee4032d476640 | 2 | 4 | 3592.905339 | -| terp1nphy9a6zmjd384l4me0t6qaxmzsvk69js27lt9 | 0x986e42f742dc9b13d7f5de5ebd03a6d8a0cb68b2 | 2 | 4 | 3592.905339 | -| terp1eucrht73cef9vv74hglkqhygmfpqtt9z5tqnfk | 0xcf303bafd1c6525633d5ba3f605c88da4205aca2 | 2 | 4 | 3592.905339 | -| terp17s6xu5xmqx63027c66xd9wdk7yguwydjjsq29g | 0xf4346e50db01b517abd8d68cd2b9b6f111c711b2 | 1 | 2 | 1796.45267 | -| terp1sgfedpl6469znpgeqfuruqhxn80quzzxarhmyd | 0x82139687faae8a29851902783e02e699de0e0846 | 1 | 2 | 1796.45267 | -| terp1m6m34edk22y9kwhfnladvwjhs7njyjdz4ga56s | 0xdeb71ae5b652885b3ae99ffad63a5787a72249a2 | 1 | 2 | 1796.45267 | -| terp1x37kp9qnq27t969vhgaa0z5pqfqn69x55agzg0 | 0x347d60941302bcb2e8acba3bd78a8102413d14d4 | 1 | 2 | 1796.45267 | -| terp1gkqm92dym35dpprzf65kdmj07tmjhwp2fl7569 | 0x4581b2a9a4dc68d084624ea966ee4ff2f72bb82a | 1 | 2 | 1796.45267 | -| terp1u54acms4j2ewn5cq44a56wzjeequ7jnsc0cs62 | 0xe52bdc6e1592b2e9d300ad7b4d3852ce41cf4a70 | 1 | 2 | 1796.45267 | -| terp1hkzpx6gpem83lzyrlwqcnhkadw0s9c8kljyavp | 0xbd84136901cecf1f8883fb8189dedd6b9f02e0f6 | 1 | 2 | 1796.45267 | -| terp1ytw92sf3s9q82ldcahjyc57h23e43d0n67kvmu | 0x22dc5541318140757db8ede44c53d7547358b5f3 | 1 | 2 | 1796.45267 | -| terp17lyu4eftx30nerwgzp2h06rl0ygm2t6dwr8s8m | 0xf7c9cae52b345f3c8dc8105577e87f7911b52f4d | 1 | 2 | 1796.45267 | -| terp12k37t2nsxd32f6yk2hu4zjyssj8h7g9ay04xf6 | 0x55a3e5aa703362a4e89655f9514890848f7f20bd | 1 | 2 | 1796.45267 | -| terp1hdagx2xpw3me37rcywtdeqwf94knargahfk4pl | 0xbb7a8328c1747798f8782396dc81c92d6d3e8d1d | 1 | 2 | 1796.45267 | -| terp1xvy9xa5g0698rfs7zmqnkycwjvlvsgyzdhxm9k | 0x33085376887e8a71a61e16c13b130e933ec82082 | 1 | 2 | 1796.45267 | -| terp1mwgxs6glt6u6wcayp0sruvxgczfwvqzp9rq2xl | 0xdb9068691f5eb9a763a40be03e30c8c092e60041 | 1 | 2 | 1796.45267 | -| terp165z67a75yxhlz256sg8gewj8sn363jeyy3g5kv | 0xd505af77d421aff12a9a820e8cba4784e3a8cb24 | 1 | 2 | 1796.45267 | -| terp1z0x63jnufrgxgnz95rl462pthl7xmrypvqf4zr | 0x13cda8ca7c48d0644c45a0ff5d282bbffc6d8c81 | 1 | 2 | 1796.45267 | -| terp1pngse6wxakekvmlaueqnpp82ysa977gtk5grx0 | 0x0cd10ce9c6edb3666ffde6413084ea243a5f790b | 1 | 2 | 1796.45267 | -| terp19sdk90kdw699hv8jdt5ga75px0fwpjr80wlswq | 0x2c1b62becd768a5bb0f26ae88efa8133d2e0c867 | 1 | 2 | 1796.45267 | -| terp12pfsp9tsy4fwn7ncrrmqu67l7hg9gzh48590hg | 0x50530095702552e9fa7818f60e6bdff5d0540af5 | 1 | 2 | 1796.45267 | -| terp1eu9k35c0067uaxz5fjdlqgwl865dvfe32akhpx | 0xcf0b68d30f7ebdce98544c9bf021df3ea8d62731 | 1 | 2 | 1796.45267 | -| terp17t0u46877k6u6hvf55nary762ea96c5hyrysdy | 0xf2dfcae8fef5b5cd5d89a527d193da567a5d6297 | 1 | 2 | 1796.45267 | -| terp10hmr0rgpawk46s0hdnknq8v384zr7trltkmtwr | 0x7df6378d01ebad5d41f76ced301d913d443f2c7f | 1 | 2 | 1796.45267 | -| terp1wx3c3wy8ppyaj26534882tnmpeesrh3urvgzvz | 0x71a388b8870849d92b548d4e752e7b0e7301de3c | 1 | 2 | 1796.45267 | -| terp1kc23mntk2ceygug6l9rfcxh87x3wqc33lrtkkx | 0xb6151dcd76563244711af9469c1ae7f1a2e06231 | 1 | 2 | 1796.45267 | -| terp18wk0dd0dxdcvy78zkde44nnllydvz2wjpk4zlg | 0x3bacf6b5ed3370c278e2b3735ace7ff91ac129d2 | 1 | 2 | 1796.45267 | -| terp1aum0f54z7pxe9p93wkz332dcccm34n82n2u4c8 | 0xef36f4d2a2f04d9284b1758518a9b8c6371accea | 1 | 2 | 1796.45267 | -| terp1rxxf5r90g963q5hzf2039g0hfwn7e0p2hgtgy6 | 0x198c9a0caf41751052e24a9f12a1f74ba7ecbc2a | 1 | 2 | 1796.45267 | -| terp1qnet54nux7xx4ps89ess0937sry2d2kyqd6h3k | 0x04f2ba567c378c6a86072e6107963e80c8a6aac4 | 1 | 2 | 1796.45267 | -| terp1hp0uefap38s2an5ejnd7hlx4hcuxu943j28ds2 | 0xb85fcca7a189e0aece9994dbebfcd5be386e16b1 | 1 | 2 | 1796.45267 | -| terp1cagzc9yt0nclnl570gj45alec87hmn90ws522p | 0xc7502c148b7cf1f9fe9e7a255a77f9c1fd7dccaf | 1 | 2 | 1796.45267 | -| terp1kjevg65xpjm7n3wjg7mrpx5z9408hwsgzz84mm | 0xb4b2c46a860cb7e9c5d247b6309a822d5e7bba08 | 1 | 2 | 1796.45267 | -| terp1fzcdfagj7hwxzmwhsre34u4jfyjldj5zdyr3ta | 0x48b0d4f512f5dc616dd780f31af2b24925f6ca82 | 1 | 2 | 1796.45267 | -| terp1prahcwnsj02dqqrxm0lynlq89wg8jqf7uhg8e8 | 0x08fb7c3a7093d4d00066dbfe49fc072b9079013e | 1 | 2 | 1796.45267 | -| terp14wh538thcp9e3qw0ehdhpxjlh5zxxaq2qrk6wr | 0xabaf489d77c04b9881cfcddb709a5fbd0463740a | 1 | 2 | 1796.45267 | -| terp1zj436gzlday2u3q2d6q575mhhxyg7t7zdvecq3 | 0x14ab1d205f6f48ae440a6e814f5377b9888f2fc2 | 1 | 2 | 1796.45267 | -| terp1x3ncetyucr2eu4qlr06gjhyfzy4y4m703jcmgq | 0x34678cac9cc0d59e541f1bf4895c89112a4aefcf | 1 | 2 | 1796.45267 | -| terp1l6wq6jdz0jpqhj24arr0mtlw00333kv2drcfuw | 0xfe9c0d49a27c820bc955e8c6fdafee7be318d98a | 1 | 2 | 1796.45267 | -| terp15euuv92t34rpntuls0ctlxsn56qwq8k0nx9cup | 0xa679c6154b8d4619af9f83f0bf9a13a680e01ecf | 1 | 2 | 1796.45267 | -| terp12jlr572zstqrpv27gwhzhvvzu9xyp8z7uvvqq0 | 0x54be3a794282c030b15e43ae2bb182e14c409c5e | 1 | 2 | 1796.45267 | -| terp1gmhm4mwfypn7d4swsnkk89gfju3j2fykr9v32n | 0x46efbaedc92067e6d60e84ed6395099723252496 | 1 | 2 | 1796.45267 | -| terp1fe0u7yk3wkgn7mykz8lesltydyd9gsmck87lgz | 0x4e5fcf12d175913f6c9611ff987d64691a544378 | 1 | 2 | 1796.45267 | -| terp1dhk465gv4hwhayta6scc092gmkqshak6f0qvrp | 0x6ded5d510caddd7e917dd431879548dd810bf6da | 1 | 2 | 1796.45267 | -| terp1rh6z3qel9j0mrmcfsa2wt4csgvj9p4cxm05uvn | 0x1df428833f2c9fb1ef098754e5d710432450d706 | 1 | 2 | 1796.45267 | -| terp16zy9g5t9fjwkc5qhtqk4gn5ezmux5fzaxqcp70 | 0xd0885451654c9d6c5017582d544e9916f86a245d | 1 | 2 | 1796.45267 | -| terp1xjxdc023vplrugse3eeykxz630rlf8mux8yaz2 | 0x348cdc3d51607e3e22198e724b185a8bc7f49f7c | 1 | 2 | 1796.45267 | -| terp1cr0m2gqwhqsa2exg3xf4jxy2r0anjhcml0pkg0 | 0xc0dfb5200eb821d564c8899359188a1bfb395f1b | 1 | 2 | 1796.45267 | -| terp16mg3f9gzjc0skrses5jnv34fu77sdjlguh2m4z | 0xd6d1149502961f0b0e1985253646a9e7bd06cbe8 | 1 | 2 | 1796.45267 | -| terp1uq84lxxwqezgfscwg5qzvxxyducjw27ud8phq5 | 0xe00f5f98ce064484c30e45002618c46f31272bdc | 1 | 2 | 1796.45267 | -| terp1qy02drq47j5rzmdyts08s3p3rnwshg2fqrtu05 | 0x011ea68c15f4a8316da45c1e7844311cdd0ba149 | 1 | 2 | 1796.45267 | -| terp1945rddwcncce7w9v8szc7nyrtuxxnvucfygqf8 | 0x2d6836b5d89e319f38ac3c058f4c835f0c69b398 | 1 | 2 | 1796.45267 | -| terp164jpspgdatm7sw87j8hfgkhkz5y486kq384aeq | 0xd56418050deaf7e838fe91ee945af6150953eac0 | 1 | 2 | 1796.45267 | -| terp1gy6hlxrta30y0cvkaypy89fgmls665z37sspdt | 0x41357f986bec5e47e196e902439528dfe1ad5051 | 1 | 2 | 1796.45267 | -| terp1lwq8rk9wasdj4jy78nrq7yu4vltws8sg8vh2uc | 0xfb8071d8aeec1b2ac89e3cc60f139567d6e81e08 | 1 | 2 | 1796.45267 | -| terp1q9m3twd8rk476tw6uzamk6cgjegfeqsje4t2e7 | 0x017715b9a71dabed2ddae0bbbb6b0896509c8212 | 1 | 2 | 1796.45267 | -| terp10q2rqt6kulzv7p0dtpcz8zfw2ek3k9u9p5x9n4 | 0x7814302f56e7c4cf05ed587023892e566d1b1785 | 1 | 2 | 1796.45267 | -| terp1mq7a3g5gyuz39w9ydavp4qj5ekt3mjcfp03gu8 | 0xd83dd8a288270512b8a46f581a8254cd971dcb09 | 1 | 2 | 1796.45267 | -| terp1qqn0uqrgvsjj2v4g2pzfhmk5nur6k3efhanx98 | 0x0026fe006864252532a850449beed49f07ab4729 | 1 | 2 | 1796.45267 | -| terp1t68858jtjxwy2jqgt0ywdglg4sj5799fhaamez | 0x5e8e7a1e4b919c4548085bc8e6a3e8ac254f14a9 | 1 | 2 | 1796.45267 | -| terp1982uaf74zxqs70lh2jyxhzv0ect2dk8az39d67 | 0x29d5cea7d511810f3ff754886b898fce16a6d8fd | 1 | 2 | 1796.45267 | -| terp17nfgrl88zm27esjylrpy0wmrrvd7zczavsmap5 | 0xf4d281fce716d5ecc244f8c247bb631b1be1605d | 1 | 2 | 1796.45267 | -| terp13ywh4ap2sn7j4mk2c948mar2826xdz00n5xmwv | 0x891d7af42a84fd2aeecac16a7df46a3ab46689ef | 1 | 2 | 1796.45267 | -| terp1h0e7egjrvlqtnxkzla6xdf6j78pjsgvf6h3lh8 | 0xbbf3eca24367c0b99ac2ff7466a752f1c3282189 | 1 | 2 | 1796.45267 | -| terp1x5wnj4y5u957rzlgal994zznr53umv2w642xxw | 0x351d395494e169e18be8efca5a88531d23cdb14e | 1 | 2 | 1796.45267 | -| terp1923gmgnmu0jvjvqyu6gnxpas8d3jx3rn364qav | 0x2aa28da27be3e4c93004e6913307b03b63234473 | 1 | 2 | 1796.45267 | -| terp1nr5ue6p69ajpxym85qff6a6j6pv3n5dzfj7ps7 | 0x98e9cce83a2f64131367a0129d7752d05919d1a2 | 1 | 2 | 1796.45267 | -| terp1gwe8v9xfrtyr3k0pky6n4z5m2cdp6a2g3vrlyw | 0x43b27614c91ac838d9e1b1353a8a9b561a1d7548 | 1 | 2 | 1796.45267 | -| terp1s4k8up6wtpgdfmhnjh48uzhmkv3rer45vj9ksr | 0x856c7e074e5850d4eef395ea7e0afbb3223c8eb4 | 1 | 2 | 1796.45267 | -| terp1ttz2ju0paw2njv3ffafagedmeu8ugkv9nhlekk | 0x5ac4a971e1eb953932294f53d465bbcf0fc45985 | 1 | 2 | 1796.45267 | -| terp1jep4w7t43ennz4g05m46825gx60pw3lu43sn3e | 0x96435779758e6731550fa6eba3aa88369e1747fc | 1 | 2 | 1796.45267 | -| terp1khqu4ze90nztthmkrnxhszpaaw6682esfxmt9a | 0xb5c1ca8b257cc4b5df761ccd78083debb5a3ab30 | 1 | 2 | 1796.45267 | -| terp1vut6ml5ezxcvl7zcvfdm2yluknn869je9wn9jp | 0x6717adfe9911b0cff858625bb513fcb4e67d1659 | 1 | 2 | 1796.45267 | -| terp17qt5cua9ht0jqy4cqc3mavm7hep46077zznqfx | 0xf0174c73a5badf2012b80623beb37ebe435d3fde | 1 | 2 | 1796.45267 | -| terp1gs9aywzcu5y33z23w8ey6ns59edp403e5339w9 | 0x440bd23858e50918895171f24d4e142e5a1abe39 | 1 | 2 | 1796.45267 | -| terp1guz968hfyjkkl7yse69494kp7z9dgg34d92prn | 0x47045d1ee924ad6ff890ce8b52d6c1f08ad42235 | 1 | 2 | 1796.45267 | -| terp144kdvgr87dng52t0g364waupp07uxweh03envz | 0xad6cd62067f3668a296f44755777810bfdc33b37 | 1 | 2 | 1796.45267 | -| terp1l5x8uuay2l2ud0wsd678hx3jcz8at3nr4z2j72 | 0xfd0c7e73a457d5c6bdd06ebc7b9a32c08fd5c663 | 1 | 2 | 1796.45267 | -| terp1vddxxgur5gn7mtc35grkf0ksgckjludtzz32sk | 0x635a632383a227edaf11a20764bed0462d2ff1ab | 1 | 2 | 1796.45267 | -| terp1j0fpsjhh7cqt3r8rhgpyp9gcfc73056qkptpju | 0x93d2184af7f600b88ce3ba024095184e3d17d340 | 1 | 2 | 1796.45267 | -| terp16ck723nu7v3ansgymdp8lysf7pk7325fd8cq8l | 0xd62de5467cf323d9c104db427f9209f06de8aa89 | 1 | 2 | 1796.45267 | -| terp1f69uwql5tjyvfk7fznqmtah3l8dkmjket7gspx | 0x4e8bc703f45c88c4dbc914c1b5f6f1f9db6dcad9 | 1 | 2 | 1796.45267 | -| terp1rn2zpa2s3swvqnsdpyzu78cy660wjttfxk7p2w | 0x1cd420f5508c1cc04e0d0905cf1f04d69ee92d69 | 1 | 2 | 1796.45267 | -| terp1kahkts0esa3vs3vk4urzt9lkzuafh54d8gksaf | 0xb76f65c1f98762c84596af062597f6173a9bd2ad | 1 | 2 | 1796.45267 | -| terp1wqm9w8dgph2fksck82jkw3tcy5k0h7v386psge | 0x7036571da80dd49b43163aa5674578252cfbf991 | 1 | 2 | 1796.45267 | -| terp1tvgajk7cgnjaayaujav6xh7gndqp2gfnt209ys | 0x5b11d95bd844e5de93bc9759a35fc89b40152133 | 1 | 2 | 1796.45267 | -| terp1fg6c3qf2nkn69vwn7h462lr3dyqg7lpcgm998k | 0x4a3588812a9da7a2b1d3f5eba57c7169008f7c38 | 1 | 2 | 1796.45267 | -| terp1e3yg2ujzzswv0a8c240c502ma5p42mqer7mcjx | 0xcc48857242141cc7f4f8555f8a3d5bed03556c19 | 1 | 2 | 1796.45267 | -| terp1t9eng8hjz65pumr4e9ar2kzd9j7jt2gvxsrmfr | 0x5973341ef216a81e6c75c97a35584d2cbd25a90c | 1 | 2 | 1796.45267 | -| terp15ur8wagal09jt5enx2c2c97e6qpyu70dfwdtca | 0xa70677751dfbcb25d33332b0ac17d9d0024e79ed | 1 | 2 | 1796.45267 | -| terp1uwe4jh6pzza3mt296xc9kt5xdw5r76ee0eex3h | 0xe3b3595f4110bb1dad45d1b05b2e866ba83f6b39 | 1 | 2 | 1796.45267 | -| terp1a5wxfk99wxh3yhhrmas8v7rmz7w2ws2wce78pw | 0xed1c64d8a571af125ee3df6076787b179ca7414e | 1 | 2 | 1796.45267 | -| terp1nh7sqgm5fyqswwughv9sreprfll7j877yzsjk3 | 0x9dfd0023744901073b88bb0b01e4234fffe91fde | 1 | 2 | 1796.45267 | -| terp193qkm7pycefa89r3hgavnsmgjn7jwvdqru5e6g | 0x2c416df824c653d39471ba3ac9c36894fd2731a0 | 1 | 2 | 1796.45267 | -| terp1us8rha0yhpz67ux3s60ewkcvky4wnc5zax7nnj | 0xe40e3bf5e4b845af70d1869f975b0cb12ae9e282 | 1 | 2 | 1796.45267 | -| terp1fq0xrs6nh4m4vsa2r08ejh9aatkfrpjc96y7au | 0x481e61c353bd775643aa1bcf995cbdeaec918658 | 1 | 2 | 1796.45267 | -| terp1xrzl2mmp355v0tnxhe6rj88858gyg9hfk0ye4m | 0x30c5f56f618d28c7ae66be74391ce7a1d04416e9 | 1 | 2 | 1796.45267 | -| terp1ghtemqu79wjjttss8yhpyss46kp7ee54u05tt3 | 0x45d79d839e2ba525ae10392e124215d583ece695 | 1 | 2 | 1796.45267 | -| terp1m3yg7ykvq4jmq2wz7fq8x0245cxtyp02fxnqrk | 0xdc488f12cc0565b029c2f240733d55a60cb205ea | 1 | 2 | 1796.45267 | -| terp1whytpcsl08ng3wjthn4keh5v4ekwkx6mhwtf0e | 0x75c8b0e21f79e688ba4bbceb6cde8cae6ceb1b5b | 1 | 2 | 1796.45267 | -| terp1xnvfqrml6ssw4pz3z3f0x9fpys582ly0nsp55x | 0x34d8900f7fd420ea84511452f315212428757c8f | 1 | 2 | 1796.45267 | -| terp1hspydjqs28a52uza9jgt2t8amjhmjwxjafpe60 | 0xbc0246c81051fb45705d2c90b52cfddcafb938d2 | 1 | 2 | 1796.45267 | -| terp1axnc3kkd8hju7jlw0mp0k0xnvyggy4ry883pdg | 0xe9a788dacd3de5cf4bee7ec2fb3cd36110825464 | 1 | 2 | 1796.45267 | -| terp1je6mvdshf42809kvx87ckelzf330saw6m30v84 | 0x9675b636174d547796cc31fd8b67e24c62f875da | 1 | 2 | 1796.45267 | -| terp1yx6j23kkkfz3u3sasxm68jyamaxktnfw5u3hgf | 0x21b52546d6b2451e461d81b7a3c89ddf4d65cd2e | 1 | 2 | 1796.45267 | -| terp1g7szhu8dc73t86lldflspnjswxk683vspx34sf | 0x47a02bf0edc7a2b3ebff6a7f00ce5071ada3c590 | 1 | 2 | 1796.45267 | -| terp1gkgk08yn3y39yfsvt3xhxc4dllzdaqj86x955a | 0x4591679c93892252260c5c4d7362adffc4de8247 | 1 | 2 | 1796.45267 | -| terp1jnfy49nym36lk3rumfd6c49cksfvalxj7jfluz | 0x94d24a9664dc75fb447cda5bac54b8b412cefcd2 | 1 | 2 | 1796.45267 | -| terp1kl2gw8yt2qwc4wy4k6gmuljuugwffg74zkjdts | 0xb7d4871c8b501d8ab895b691be7e5ce21c94a3d5 | 1 | 2 | 1796.45267 | -| terp1wa9vxvfrc7c7x2vh492zc3k6wqy2vfteq5ddjd | 0x774ac33123c7b1e32997a9542c46da7008a62579 | 1 | 2 | 1796.45267 | -| terp1svx0ahzguq835u7pck3dxpnnym996her39sm6y | 0x830cfedc48e00f1a73c1c5a2d3067326ca5d5f23 | 1 | 2 | 1796.45267 | -| terp1xe69wqg5swcusqx3pr0j7czgpfqxay2aa2u5kw | 0x367457011483b1c800d108df2f60480a406e915d | 1 | 2 | 1796.45267 | -| terp1yck28p3gu9f7604yphk5pp707rd0wnf7z4tqyk | 0x262ca38628e153ed3ea40ded4087cff0daf74d3e | 1 | 2 | 1796.45267 | -| terp12agcng0eyl0g749rvmnej749ay5qp0nfzlj6hn | 0x575189a1f927de8f54a366e7997aa5e92800be69 | 1 | 2 | 1796.45267 | -| terp18lj0grp24ms9y66zrqqv7cg56aqdvyshc7wqcv | 0x3fe4f40c2aaee0526b421800cf6114d740d61217 | 1 | 2 | 1796.45267 | -| terp1w54pn56g8xghpata8wd7s85z8hqtvvdz8wvuwz | 0x752a19d348399170f57d3b9be81e823dc0b631a2 | 1 | 2 | 1796.45267 | -| terp1pxcujqz8le5esajqs8nuf0wk3s7q7rpgaelz40 | 0x09b1c90047fe6998764081e7c4bdd68c3c0f0c28 | 1 | 2 | 1796.45267 | -| terp17an3rwdpwuwcapxcpcy7x7zc0hlwlrvwef723h | 0xf76711b9a1771d8e84d80e09e378587dfeef8d8e | 1 | 2 | 1796.45267 | -| terp1ujsfp58efsuyazmfh6hvr37wuvujrwup5pvlz6 | 0xe4a090d0f94c384e8b69beaec1c7cee33921bb81 | 1 | 2 | 1796.45267 | -| terp190686jx4hvxt7ca3p6mqkp8clvyhzwzz2dc9ve | 0x2bf47d48d5bb0cbf63b10eb60b04f8fb09713842 | 1 | 2 | 1796.45267 | -| terp1hwlanrzvp03s4egmn3dqpxlvejn2mr9fk7t0zz | 0xbbbfd98c4c0be30ae51b9c5a009beccca6ad8ca9 | 1 | 2 | 1796.45267 | -| terp1zm2vsqmr58pf34ec3na82e6mq4l3cj0v30k40c | 0x16d4c80363a1c298d7388cfa75675b057f1c49ec | 1 | 2 | 1796.45267 | -| terp17f52zvyvc337p2q3qtjpc6fayc4xxsz2vm4ax7 | 0xf268a1308cc463e0a81102e41c693d262a63404a | 1 | 2 | 1796.45267 | -| terp1kww4zpujgl669vqj6k4ez9t6nmekytka3nr8am | 0xb39d51079247f5a2b012d5ab91157a9ef3622edd | 1 | 2 | 1796.45267 | -| terp1m5thq5aeyutzwrl29gtaj83am9lu6uu4zaqh0m | 0xdd177053b92716270fea2a17d91e3dd97fcd7395 | 1 | 2 | 1796.45267 | -| terp1406j02p3svgygdzme0aqlsue0zj53e0hvnfjw4 | 0xabf527a831831044345bcbfa0fc39978a548e5f7 | 1 | 2 | 1796.45267 | -| terp1nh3a0gq3zt5mvn25fdzsqsdgr6nremrk8qrlal | 0x9de3d7a01112e9b64d544b450041a81ea63cec76 | 1 | 2 | 1796.45267 | -| terp1fhqh7g68sjnzcrmwqseskmh3ptggwng02ajp57 | 0x4dc17f234784a62c0f6e04330b6ef10ad0874d0f | 1 | 2 | 1796.45267 | -| terp1yuaf8h23gymau5kezajf8pvttvvlfqxgd7na4j | 0x273a93dd514137de52d9176493858b5b19f480c8 | 1 | 2 | 1796.45267 | -| terp1kq90fsh2z0wm6kezmmm53u5l9eff6psqp2433j | 0xb00af4c2ea13ddbd5b22def748f29f2e529d0600 | 1 | 2 | 1796.45267 | -| terp1dukz23n5uepel29ct2lznk8azwl46mtmasa27l | 0x6f2c254674e6439fa8b85abe29d8fd13bf5d6d7b | 1 | 2 | 1796.45267 | -| terp14glw2jlatke074mvmndlmk2jme4ntzetsuzggy | 0xaa3ee54bfd5db2ff576cdcdbfdd952de6b358b2b | 1 | 2 | 1796.45267 | -| terp1xfn3qq56lzmp74hu265qns2jrwh9ndjreh2hxh | 0x326710029af8b61f56fc56a809c1521bae59b643 | 1 | 2 | 1796.45267 | -| terp1m56rcec6hdcxmrj0tk5um9nzw5lyfgq73tywar | 0xdd343c671abb706d8e4f5da9cd9662753e44a01e | 1 | 2 | 1796.45267 | -| terp14d7au4qdjvsejpkvgvwv4qmjxcgnz2prqa9n7x | 0xab7dde540d93219906cc431cca83723611312823 | 1 | 2 | 1796.45267 | -| terp12xeysue4r7hgqgw2yrm9lxfqcxqz3cyq9cwthp | 0x51b24873351fae8021ca20f65f9920c18028e080 | 1 | 2 | 1796.45267 | -| terp1ttf96xtrsvyeqljs27m0fl8eh6yel84c87m2yj | 0x5ad25d19638309907e5057b6f4fcf9be899f9eb8 | 1 | 2 | 1796.45267 | -| terp1ed4tqk9r7kdxasd40dj6zhy6a2j2m99x208ut0 | 0xcb6ab058a3f59a6ec1b57b65a15c9aeaa4ad94a6 | 1 | 2 | 1796.45267 | -| terp1y0zmgl593sp776g9sq7whlj8kwq9gp37zlm3mv | 0x23c5b47e858c03ef6905803cebfe47b38054063e | 1 | 2 | 1796.45267 | -| terp1vts3m9gla95sz0m77a2tdn3mc280em90mwynnw | 0x62e11d951fe969013f7ef754b6ce3bc28efcecaf | 1 | 2 | 1796.45267 | -| terp1t9yq6vq2633dw2vgu3a59n7w7mdkugj37w8w5n | 0x59480d300ad462d72988e47b42cfcef6db6e2251 | 1 | 2 | 1796.45267 | -| terp1st9jkaysan8kue9t7d00zeqzvt594tkd0gx5lr | 0x82cb2b7490eccf6e64abf35ef1640262e85aaecd | 1 | 2 | 1796.45267 | -| terp1jlugerf59xym3tgkn4r6xxj8mfqqfayv96jjeg | 0x97f88c8d342989b8ad169d47a31a47da4004f48c | 1 | 2 | 1796.45267 | -| terp1m96g48tfhwd56mzksk7jpguzemv7aj3uu74eqa | 0xd9748a9d69bb9b4d6c5685bd20a382ced9eeca3c | 1 | 2 | 1796.45267 | -| terp12j0pada5mc0nzpvrxx0n4h3hfga448lk2ymzn4 | 0x549e1eb7b4de1f310583319f3ade374a3b5a9ff6 | 1 | 2 | 1796.45267 | -| terp1cev7dr7hlp0f3p64fj72c37p8jt7nhl49f2k2u | 0xc659e68fd7f85e9887554cbcac47c13c97e9dff5 | 1 | 2 | 1796.45267 | -| terp196myy56azzgv6ykupnpqd3jpqa4zhhr9gjd0hm | 0x2eb642535d1090cd12dc0cc206c641076a2bdc65 | 1 | 2 | 1796.45267 | -| terp1fwalceynxj8u56xhmczf0j8wg6w3jlm9wcheur | 0x4bbbfc6493348fca68d7de0497c8ee469d197f65 | 1 | 2 | 1796.45267 | -| terp14c9u89tq20w420zkqfes4eyerg2mtrjcfkmpcs | 0xae0bc3956053dd553c5602730ae4991a15b58e58 | 1 | 2 | 1796.45267 | -| terp1nuy85jrq7uknn7ak63haq28yjzararu5ysquka | 0x9f087a4860f72d39fbb6d46fd028e490ba3e8f94 | 1 | 2 | 1796.45267 | -| terp1ux9p6sh9fklgfay59qp8wltjkdah6gw4pfg6k7 | 0xe18a1d42e54dbe84f4942802777d72b37b7d21d5 | 1 | 2 | 1796.45267 | -| terp16t59xrese3p7m6dsgqljgcfjp4crfmvt6ueyt7 | 0xd2e8530f30cc43ede9b0403f2461320d7034ed8b | 1 | 2 | 1796.45267 | -| terp10f4uk84yc3x0zajwvn0mskj4fpads6cjpdyjz0 | 0x7a6bcb1ea4c44cf1764e64dfb85a55487ad86b12 | 1 | 2 | 1796.45267 | -| terp1g6p3dx7pxd0l66xnrkcs83wjjc6akws63zupty | 0x4683169bc1335ffd68d31db103c5d29635db3a1a | 1 | 2 | 1796.45267 | -| terp1352vfewgmxql9df9q8cw4jg62unpdpexdvefvh | 0x8d14c4e5c8d981f2b52501f0eac91a5726168726 | 1 | 2 | 1796.45267 | -| terp12kassg3hsyvmh224f7d96y6lvczjhnd0gl49c2 | 0x55bb0822378119bba9554f9a5d135f66052bcdaf | 1 | 2 | 1796.45267 | -| terp1ws9ja2dkcjuft59sf3mz2zwqmh4lt3ss8x42cp | 0x740b2ea9b6c4b895d0b04c762509c0ddebf5c610 | 1 | 2 | 1796.45267 | -| terp1yhy6hu8rzdfk34wha0pmst556kfr84w7wwarml | 0x25c9abf0e3135368d5d7ebc3b82e94d59233d5de | 1 | 2 | 1796.45267 | -| terp1rpdcud4uwvtncvtr2ukjk48g7ynwrw3dx8mccx | 0x185b8e36bc73173c3163572d2b54e8f126e1ba2d | 1 | 2 | 1796.45267 | -| terp10tgaqdxmqkmkk9w5j9fz4ppgpmv4nvrlrmau25 | 0x7ad1d034db05b76b15d491522a84280ed959b07f | 1 | 2 | 1796.45267 | -| terp1a5ggrhuy35gv38ukzyekgukktupxr5gq4fpf09 | 0xed1081df848d10c89f9611336472d65f0261d100 | 1 | 2 | 1796.45267 | -| terp1rc0qle0k98lt0n65jqwvcuf0frav6tnq9wlqzq | 0x1e1e0fe5f629feb7cf54901ccc712f48facd2e60 | 1 | 2 | 1796.45267 | -| terp1ffmhgkuezyhwqyhlwewkww99vjz29msgwgxkh2 | 0x4a77745b99112ee012ff765d6738a56484a2ee08 | 1 | 2 | 1796.45267 | -| terp1c46xrpgvke4jhqsg7sk7073rstgjw67jfag2uj | 0xc57461850cb66b2b8208f42de7fa2382d1276bd2 | 1 | 2 | 1796.45267 | -| terp1mr9tr5jwdphyl6uhs9mj68u6tw4e7pj9q4d5w8 | 0xd8cab1d24e686e4feb9781772d1f9a5bab9f0645 | 1 | 2 | 1796.45267 | -| terp1ttj30hwelxj4hsupa8qsm24fp85e9p6a7nukk5 | 0x5ae517ddd9f9a55bc381e9c10daaa909e992875d | 1 | 2 | 1796.45267 | -| terp1ddktg62ctmjyryq0xv73qe8h2z2shupqzwl75c | 0x6b6cb469585ee441900f333d1064f750950bf020 | 1 | 2 | 1796.45267 | -| terp1g6rwnc9ay07z5d3avwwuqzcjztntulw8amfgg2 | 0x4686e9e0bd23fc2a363d639dc00b1212e6be7dc7 | 1 | 2 | 1796.45267 | -| terp18pk06pxq3ut965z46ta2v7ax8450nwed9pn8qv | 0x386cfd04c08f165d5055d2faa67ba63d68f9bb2d | 1 | 2 | 1796.45267 | -| terp1kqgd0j5rugmzngqr25n7jzy6letcnud0m2qp7g | 0xb010d7ca83e23629a0035527e9089afe5789f1af | 1 | 2 | 1796.45267 | -| terp1743z9zfuqwp0s0y9th7zdqafdd8raful7h9z52 | 0xf56222893c0382f83c855dfc2683a96b4e3ea79f | 1 | 2 | 1796.45267 | -| terp12k7g7kcq0v5uttqfcqtedpueslmt2hexvur5mv | 0x55bc8f5b007b29c5ac09c01796879987f6b55f26 | 1 | 2 | 1796.45267 | -| terp12k6j78vq574qjyxpcdtaqyhk7h0fe07ew328wa | 0x55b52f1d80a7aa0910c1c357d012f6f5de9cbfd9 | 1 | 2 | 1796.45267 | -| terp1lv7pqdxp9rmmv9vcnr39999dcw02sa7es5ewhy | 0xfb3c1034c128f7b6159898e25294adc39ea877d9 | 1 | 2 | 1796.45267 | -| terp1x0c8f6tksh735s6ezv6srwhqecjz4ddzdr8q4l | 0x33f074e97685fd1a4359133501bae0ce242ab5a2 | 1 | 2 | 1796.45267 | -| terp1pe438ph9xlncfdj39rrphfjgam6hcwa0lvhkqd | 0x0e6b1386e537e784b65128c61ba648eef57c3baf | 1 | 2 | 1796.45267 | -| terp19f4cd2sujpfsvwn84p95zueay0v6p48l4y7z6w | 0x2a6b86aa1c9053063a67a84b41733d23d9a0d4ff | 1 | 2 | 1796.45267 | -| terp1pad07ky7u6my29rsvqq260ajjsasat6tk97tsf | 0x0f5aff589ee6b64514706000ad3fb2943b0eaf4b | 1 | 2 | 1796.45267 | -| terp1as3wasg4pcj26w5lqljz7zw52q75zgadaxmnj7 | 0xec22eec1150e24ad3a9f07e42f09d4503d4123ad | 1 | 2 | 1796.45267 | -| terp1g4xxv9f2zy8twkdjlsyam3fv6axu5065234g42 | 0x454c66152a110eb759b2fc09ddc52cd74dca3f54 | 1 | 2 | 1796.45267 | -| terp1jkm88ftl68lxn496rlq6vqdye34gs92569af50 | 0x95b673a57fd1fe69d4ba1fc1a601a4cc6a881554 | 1 | 2 | 1796.45267 | -| terp13tgy88z8jpy07r858qe5dchyn3gakussjkd3us | 0x8ad0439c479048ff0cf4383346e2e49c51db7210 | 1 | 2 | 1796.45267 | -| terp1sw0mkdh3yqxfrv04l2x3a0sans5lzy9k0rj9sl | 0x839fbb36f1200c91b1f5fa8d1ebe1d9c29f110b6 | 1 | 2 | 1796.45267 | -| terp1jszznq0maqnjx7k0p4ymhdgl4rqu264pv29rfk | 0x94042981fbe827237acf0d49bbb51fa8c1c56aa1 | 1 | 2 | 1796.45267 | -| terp1jzd6t9jvnd2smtxprzqyvcpwr6nx9z6ceaxm42 | 0x909ba5964c9b550dacc1188046602e1ea6628b58 | 1 | 2 | 1796.45267 | -| terp1v526gcrfhp8ugjepmedp00r5pjmna9nktfa036 | 0x6515a46069b84fc44b21de5a17bc740cb73e9676 | 1 | 2 | 1796.45267 | -| terp1snkd3whqllupku32yn2wqzcpp0gzdyw5d8fv7u | 0x84ecd8bae0fff81b722a24d4e00b010bd02691d4 | 1 | 2 | 1796.45267 | -| terp1sn23zw4fugjtzp93kzphf26qa74r03nng2eeet | 0x84d5113aa9e224b104b1b08374ab40efaa37c673 | 1 | 2 | 1796.45267 | -| terp1hlecx9w83hvhj93dklgka052jyfehzykyt7yhj | 0xbff38315c78dd979162db7d16ebe8a91139b8896 | 1 | 2 | 1796.45267 | -| terp1s3lh6f3mue4je9advr3us4p7t08ystprtqyccm | 0x847f7d263be66b2c97ad60e3c8543e5bce482c23 | 1 | 2 | 1796.45267 | -| terp1yc23eze5lumsug6lnz3y5fu2eptkl60yg0rf08 | 0x26151c8b34ff370e235f98a24a278ac8576fe9e4 | 1 | 2 | 1796.45267 | -| terp1fmekppeuu5wxrmywsnqejjz76rvcxchynft45p | 0x4ef360873ce51c61ec8e84c199485ed0d98362e4 | 1 | 2 | 1796.45267 | -| terp1qjq8s0qk0t4j05djtr3p7706c6t2gt48yaa5h8 | 0x0480783c167aeb27d1b258e21f79fac696a42ea7 | 1 | 2 | 1796.45267 | -| terp1tuvel9mg7v0gchp736r4nq5430fwjj4c6ge8zw | 0x5f199f9768f31e8c5c3e8e875982958bd2e94ab8 | 1 | 2 | 1796.45267 | -| terp1vll8m8f02k7w4c4ezcmpn479563s87qm8asufu | 0x67fe7d9d2f55bceae2b9163619d7c5a6a303f81b | 1 | 2 | 1796.45267 | -| terp1030mg6l2xt2atq6sy8sdpr7kqluykvg3v5fn0f | 0x7c5fb46bea32d5d5835021e0d08fd607f84b3111 | 1 | 2 | 1796.45267 | -| terp16nh657kfy995askvvrjyrj6t5wewvxtsve6m6j | 0xd4efaa7ac9214b4ec2cc60e441cb4ba3b2e61970 | 1 | 2 | 1796.45267 | -| terp1nuejkvk3s53yvlhx8urp2zr49l0yr7h8hcqe9d | 0x9f332b32d18522467ee63f061508752fde41fae7 | 1 | 2 | 1796.45267 | -| terp1kh357evrf2g8s883x4scraun96peaswew9vnwh | 0xb5e34f65834a90781cf1356181f7932e839ec1d9 | 1 | 2 | 1796.45267 | -| terp1uxvnflzwpgh9sn6y97dtpc29ghwyjav0dfq8my | 0xe19934fc4e0a2e584f442f9ab0e14545dc49758f | 1 | 2 | 1796.45267 | -| terp195rccfmx5l7j7xwgk9mscgr93uwzvfw2leyzla | 0x2d078c2766a7fd2f19c8b1770c20658f1c2625ca | 1 | 2 | 1796.45267 | -| terp1q4lw2njd9eu2zrpdqv78nnf4kq4y6j3xvdeuhl | 0x057ee54e4d2e78a10c2d033c79cd35b02a4d4a26 | 1 | 2 | 1796.45267 | -| terp1axasg3qmdrucced7agtna2f6a4xa33tqqtm5uu | 0xe9bb04441b68f98c65beea173ea93aed4dd8c560 | 1 | 2 | 1796.45267 | -| terp1qmq0wkrksh30thnue2lf7sjdc6ad9tuuwekdgd | 0x06c0f7587685e2f5de7ccabe9f424dc6bad2af9c | 1 | 2 | 1796.45267 | -| terp1uvgjcf4k5pjl6x67r07y0hlxlvej5uhtlutdp9 | 0xe3112c26b6a065fd1b5e1bfc47dfe6fb332a72eb | 1 | 2 | 1796.45267 | -| terp14drc0vtmlvsqf39swn4xfpcalg3ch4gvnzcnf0 | 0xab4787b17bfb2004c4b074ea64871dfa238bd50c | 1 | 2 | 1796.45267 | -| terp1qfhw4r6vfqlw2na7829yl8w29ag8yl3jawana9 | 0x026eea8f4c483ee54fbe3a8a4f9dca2f50727e32 | 1 | 2 | 1796.45267 | -| terp192j6tartgqsk6l84fdffs3qyc520k045wf8g3s | 0x2aa5a5f46b40216d7cf54b52984404c514fb3eb4 | 1 | 2 | 1796.45267 | -| terp12gpfxfdtvsxfx05xl654qqkphxnhff44ppsx8m | 0x52029325ab640c933e86fea95002c1b9a774a6b5 | 1 | 2 | 1796.45267 | -| terp1pryx0drc964pvf8fhvgv9mur6vj3sfqec96lwu | 0x08c867b4782eaa1624e9bb10c2ef83d325182419 | 1 | 2 | 1796.45267 | -| terp1tl5z30gkl50ctt8cjfuqm9nmzulnlarg3gx57c | 0x5fe828bd16fd1f85acf892780d967b173f3ff468 | 1 | 2 | 1796.45267 | -| terp1p30fzycwk0sqyxsxssndpwn22sakc98k537he4 | 0x0c5e91130eb3e0021a068426d0ba6a543b6c14f6 | 1 | 2 | 1796.45267 | -| terp1zgplff9vq4edtzhy6mcchrk2kh5pxl79g23hpv | 0x1203f4a4ac0572d58ae4d6f18b8ecab5e8137fc5 | 1 | 2 | 1796.45267 | -| terp1ymm58fe8z5me6pys78pk2tczfmzc3k2n247dva | 0x26f743a72715379d0490f1c3652f024ec588d953 | 1 | 2 | 1796.45267 | -| terp1vzr8pqslrs6dcp0rgxjp2a85ugmcqckc0pjena | 0x608670821f1c34dc05e341a41574f4e2378062d8 | 1 | 2 | 1796.45267 | -| terp1wkk9vqnp36nhyvejvdrek4jqc7wthsqg90ka92 | 0x75ac5602618ea772333263479b5640c79cbbc008 | 1 | 2 | 1796.45267 | -| terp13yg69txzfasyynaggshw9n33ys02ldfyfgcw7u | 0x8911a2acc24f60424fa8442ee2ce31241eafb524 | 1 | 2 | 1796.45267 | -| terp1c3zst5g3rmzzy7dwmcfz5a7t59e4jsudcjj8dh | 0xc44505d1111ec42279aede122a77cba17359438d | 1 | 2 | 1796.45267 | -| terp1p6vycvq0wt0a75vj727m7ulhe0guvwqz6pt056 | 0x0e984c300f72dfdf5192f2bdbf73f7cbd1c63802 | 1 | 2 | 1796.45267 | -| terp17utnw9x37syh4wrjyepmqdx79wlecu9cnqvgwn | 0xf7173714d1f4097ab8722643b034de2bbf9c70b8 | 1 | 2 | 1796.45267 | -| terp1qqx9kvxk0haueyv7m3qht49juy09eqcnwq8252 | 0x000c5b30d67dfbcc919edc4175d4b2e11e5c8313 | 1 | 2 | 1796.45267 | -| terp1c6623yjr8f5zawtah4kwhkfh9v8slczls4008l | 0xc6b4a892433a682eb97dbd6cebd9372b0f0fe05f | 1 | 2 | 1796.45267 | -| terp14vzlulcaaexdk4jq6707s3l0sqsyg503w3htnx | 0xab05fe7f1dee4cdb5640d79fe847ef80204451f1 | 1 | 2 | 1796.45267 | -| terp14mx76rq7h5xhjxynld3n7y2zarkcht6jezczrt | 0xaecded0c1ebd0d791893fb633f1142e8ed8baf52 | 1 | 2 | 1796.45267 | -| terp10x8l29xs3ef4mn52jwmss5nw4zmarndrv5evt5 | 0x798ff514d08e535dce8a93b708526ea8b7d1cda3 | 1 | 2 | 1796.45267 | -| terp10geysdusy6tsh44vj7phpdwjx58pg2ssr0pasm | 0x7a3248379026970bd6ac978370b5d2350e142a10 | 1 | 2 | 1796.45267 | -| terp136murruwvnkev76092jj3wv24f2j6g6wnhlex4 | 0x8eb7c18f8e64ed967b4f2aa528b98aaa552d234e | 1 | 2 | 1796.45267 | -| terp1mtmrn79ss6jy3md2afvwy6qxvd7vuy22cq9fgu | 0xdaf639f8b086a448edaaea58e26806637cce114a | 1 | 2 | 1796.45267 | -| terp1z8yzjp0we8jzhpr0t939yyepvhtk83j39j04cr | 0x11c82905eec9e42b846f596252132165d763c651 | 1 | 2 | 1796.45267 | -| terp1kr6jlvs8wkrqzqa674ck7g5l7s4aw0dg82jn0m | 0xb0f52fb20775860103baf5716f229ff42bd73da8 | 1 | 2 | 1796.45267 | -| terp1a27l044d4wrq5r7rxg6jeqlv40fsf5tkyj6crl | 0xeabdf7d6adab860a0fc332352c83ecabd304d176 | 1 | 2 | 1796.45267 | -| terp1y8nxrqgn4cewy2fpc8cdaf49vxrtuveykgkat0 | 0x21e6618113ae32e22921c1f0dea6a56186be3324 | 1 | 2 | 1796.45267 | -| terp12vhaxm4g0nulx9h66s9njwz6gutqvkuvrgwxm2 | 0x532fd36ea87cf9f316fad40b39385a4716065b8c | 1 | 2 | 1796.45267 | -| terp1ycjwd0wwjs2kd9fnpfpkzl09xagcq5hsglhlgy | 0x2624e6bdce94156695330a43617de537518052f0 | 1 | 2 | 1796.45267 | -| terp1av0x9azyk7fldvrerk7uhtyz6ldzz8kx6pmlmp | 0xeb1e62f444b793f6b0791dbdcbac82d7da211ec6 | 1 | 2 | 1796.45267 | -| terp1aprffe03887r8jyhwelm02d2gr5u72k635d37p | 0xe84694e5f139fc33c897767fb7a9aa40e9cf2ada | 1 | 2 | 1796.45267 | -| terp1hh5klufjzzqqssmynk7s30f498zydw4yrym9rr | 0xbde96ff13210800843649dbd08bd3529c446baa4 | 1 | 2 | 1796.45267 | -| terp1g7myg94p6zh8x79jfpx7qqalnj3f69pys97t9j | 0x47b64416a1d0ae7378b2484de003bf9ca29d1424 | 1 | 2 | 1796.45267 | -| terp19s9tvch2d5lkh8fqw8rhhr4c2mmqmux9g9x8qh | 0x2c0ab662ea6d3f6b9d2071c77b8eb856f60df0c5 | 1 | 2 | 1796.45267 | -| terp14arfcjsfzjfcuc2fea3pc48mfv0vpsszegl0hv | 0xaf469c4a0914938e6149cf621c54fb4b1ec0c202 | 1 | 2 | 1796.45267 | -| terp1rnx69qu99j2y3lfeqx5y6eakp04j33wwn68l50 | 0x1ccda283852c9448fd3901a84d67b60beb28c5ce | 1 | 2 | 1796.45267 | -| terp13ekn6xgqrgtmly2z3g77c33uyp0r5ledc3n57h | 0x8e6d3d19001a17bf91428a3dec463c205e3a7f2d | 1 | 2 | 1796.45267 | -| terp1z7mn0cc5yvct0ssjjptg7s76re6u2hrmdlg78g | 0x17b737e3142330b7c21290568f43da1e75c55c7b | 1 | 2 | 1796.45267 | -| terp1397npxm8fg74kf7zyrrtm98xk3e59wfzpwyzys | 0x897d309b674a3d5b27c220c6bd94e6b47342b922 | 1 | 2 | 1796.45267 | -| terp18ln5jvu9a2h8ajvdcvlh0d8muudwkhka58n9fe | 0x3fe7493385eaae7ec98dc33f77b4fbe71aeb5edd | 1 | 2 | 1796.45267 | -| terp1s5tzkd27a6p7mrffc09d5fdcpj5xaqx3zu2w48 | 0x85162b355eee83ed8d29c3cada25b80ca86e80d1 | 1 | 2 | 1796.45267 | -| terp1rr58hsj4qsypp0k7p9q6v4mgajet6hgw9gvv6j | 0x18e87bc255040810bede0941a65768ecb2bd5d0e | 1 | 2 | 1796.45267 | -| terp1ruqnnmeq2xwtp63dxkyawgksl37mc5ak3vjfug | 0x1f0139ef20519cb0ea2d3589d722d0fc7dbc53b6 | 1 | 2 | 1796.45267 | -| terp1v83q3n4nlq96u2uv58a3at88u2233hv64g40sl | 0x61e208ceb3f80bae2b8ca1fb1eace7e29518dd9a | 1 | 2 | 1796.45267 | -| terp1t5vxypx8c45thjn6epsw59xs85le96j44mwd9p | 0x5d186204c7c568bbca7ac860ea14d03d3f92ea55 | 1 | 2 | 1796.45267 | -| terp172x5q42w8fhqwam7ru3ls228nejqt6yl2cfqvl | 0xf28d40554e3a6e07777e1f23f829479e6405e89f | 1 | 2 | 1796.45267 | -| terp1027e4vayzjfqdaevzhlnt0vlhwcp048a5esrl2 | 0x7abd9ab3a4149206f72c15ff35bd9fbbb017d4fd | 1 | 2 | 1796.45267 | -| terp17z45pvd9w6zlgveq5klths07vt92sl2fenlj85 | 0xf0ab40b1a57685f43320a5bebbc1fe62caa87d49 | 1 | 2 | 1796.45267 | -| terp1fh46t56xy2dfgmw2pd4732kzvadue8e7al9n6f | 0x4deba5d346229a946dca0b6be8aac2675bcc9f3e | 1 | 2 | 1796.45267 | -| terp1mw25wgy0ruspp2vns7cldk5veluzmqjxz2dr5f | 0xdb9547208f1f2010a99387b1f6da8ccff82d8246 | 1 | 2 | 1796.45267 | -| terp1ymm42yedd8dfutptyl8cpej6ura8n0c4q9dk8e | 0x26f755132d69da9e2c2b27cf80e65ae0fa79bf15 | 1 | 2 | 1796.45267 | -| terp1787w6kcywk5ntdymj4ux4k7694q8jnfduvl2fg | 0xf1fced5b0475a935b49b95786adbda2d40794d2d | 1 | 2 | 1796.45267 | -| terp1z0cud255sr6e2r6sxl2kc4vzkm5rj43ysg6kx7 | 0x13f1c6aa9480f5950f5037d56c5582b6e8395624 | 1 | 2 | 1796.45267 | -| terp1egza5ew8lqarq4t0llasxhjchtdym8x0n2z6p6 | 0xca05da65c7f83a30556ffffb035e58bada4d9ccf | 1 | 2 | 1796.45267 | -| terp16d7f6q4pfqrwrjttvl75pew98ds9an8y7xawhg | 0xd37c9d02a14806e1c96b67fd40e5c53b605ecce4 | 1 | 2 | 1796.45267 | -| terp19kfzzjz4lz8350eykx3l3ak4x0xsut3h0ejwvk | 0x2d92214855f88f1a3f24b1a3f8f6d533cd0e2e37 | 1 | 2 | 1796.45267 | -| terp14nqkz9lm3zuye82k0dskp9zyanvy0y3uy29hrm | 0xacc16117fb88b84c9d567b61609444ecd847923c | 1 | 2 | 1796.45267 | -| terp10c5lzzsgf4ayd78t7jqp99xsa29xke84ss27xt | 0x7e29f10a084d7a46f8ebf4801294d0ea8a6b64f5 | 1 | 2 | 1796.45267 | -| terp1g5vrg3f96vjptultmgvxhkevxawegs7krg38t6 | 0x4518344525d32415f3ebda186bdb2c375d9443d6 | 1 | 2 | 1796.45267 | -| terp1fjt7henq0ac2hkdc4fwqxep635mtktcxz9dvl8 | 0x4c97ebe6607f70abd9b8aa5c03643a8d36bb2f06 | 1 | 2 | 1796.45267 | -| terp1c6x37zmf8qfr3xje6dsj3fgag3sfu3rkmshmk5 | 0xc68d1f0b693812389a59d36128a51d44609e4476 | 1 | 2 | 1796.45267 | -| terp15cavwnrxyczwpfgsmex8c6mm40ktgl6m9fg5u3 | 0xa63ac74c662604e0a510de4c7c6b7babecb47f5b | 1 | 2 | 1796.45267 | -| terp1c7lhclg5d4a3nvjgnzwqz45y46pz3dsc824h28 | 0xc7bf7c7d146d7b19b248989c015684ae8228b618 | 1 | 2 | 1796.45267 | -| terp1w39402ryf68kyj6e3unedqtudc5m850pp529q7 | 0x744b57a8644e8f624b598f2796817c6e29b3d1e1 | 1 | 2 | 1796.45267 | -| terp1zgf686pjejhhv2hna3t59wrphavln0mw5nea6f | 0x1213a3e832ccaf762af3ec5742b861bf59f9bf6e | 1 | 2 | 1796.45267 | -| terp1gjem0jwkfrv43ah86cl8a4kgmr6eydmpsu7dja | 0x44b3b7c9d648d958f6e7d63e7ed6c8d8f5923761 | 1 | 2 | 1796.45267 | -| terp17x230e6p2tjcc2muxvq54g4r8lyr0m98wglr2h | 0xf19517e74152e58c2b7c33014aa2a33fc837eca7 | 1 | 2 | 1796.45267 | -| terp1sjlkylrvp5z0hzeteg8xgs6jlw09r0ajqvtdxm | 0x84bf627c6c0d04fb8b2bca0e644352fb9e51bfb2 | 1 | 2 | 1796.45267 | -| terp1rl2wen2g3wlq3vscmy5yltyy2mxqxmmcawtd2g | 0x1fd4eccd488bbe08b218d9284fac8456cc036f78 | 1 | 2 | 1796.45267 | -| terp1ytfwdaxxg93jgg4fqq9a4dxe38nn6lw9hy7lwr | 0x22d2e6f4c641632422a9000bdab4d989e73d7dc5 | 1 | 2 | 1796.45267 | -| terp1mq4apqhnju97dqankqsgxu0qadcwkkf7ue8jtf | 0xd82bd082f3970be683b3b0208371e0eb70eb593e | 1 | 2 | 1796.45267 | -| terp1yp2fzh26s5swrfuap6uvn2vh4en4uwllaxq4ac | 0x2054915d5a8520e1a79d0eb8c9a997ae675e3bff | 1 | 2 | 1796.45267 | -| terp150k6qxqrurm2kqm20y2y0qn3evfkv4s0zgw3jt | 0xa3eda01803e0f6ab036a7914478271cb1366560f | 1 | 2 | 1796.45267 | -| terp1dumtq0gnhxh504z0smdjckrn0v5nh73set78u4 | 0x6f36b03d13b9af47d44f86db2c58737b293bfa30 | 1 | 2 | 1796.45267 | -| terp1dhn52tvhal6sq4g4ruwecpdgfu7qsdg0hykynf | 0x6de7452d97eff50055151f1d9c05a84f3c08350f | 1 | 2 | 1796.45267 | -| terp1gw0trk865gwr5fx646ncs7q4zswrqu8h5s5ayq | 0x439eb1d8faa21c3a24daaea7887815141c3070f7 | 1 | 2 | 1796.45267 | -| terp17gxk3ys03dmy4r20xrvh2p8jsqw4c9hjzfjqzt | 0xf20d68920f8b764a8d4f30d97504f2801d5c16f2 | 1 | 2 | 1796.45267 | -| terp14fmsmjzfmajvtrrstajez4k5e2j830azpu587v | 0xaa770dc849df64c58c705f659156d4caa478bfa2 | 1 | 2 | 1796.45267 | -| terp1x6j5nq9shvpmuh63hfzrqsj552eqnk9qec23re | 0x36a54980b0bb03be5f51ba44304254a2b209d8a0 | 1 | 2 | 1796.45267 | -| terp133p3vw0pedxzd34r8rerf3xtw5qdlfqhcza824 | 0x8c431639e1cb4c26c6a338f234c4cb7500dfa417 | 1 | 2 | 1796.45267 | -| terp1pftqgx56qfxz6pmm8u45p04qcwwk2ljh382907 | 0x0a56041a9a024c2d077b3f2b40bea0c39d657e57 | 1 | 2 | 1796.45267 | -| terp1h4327ngeahae3a8neskzdtre4fdu573ul6q67n | 0xbd62af4d19edfb98f4f3cc2c26ac79aa5bca7a3c | 1 | 2 | 1796.45267 | -| terp170vjs8apswm57v4edcw9y3zevpzlfm0ggv8g76 | 0xf3d9281fa183b74f32b96e1c5244596045f4ede8 | 1 | 2 | 1796.45267 | -| terp1p0pd4wt0gldv03vdh9rfgqk083mhtffhjgdt06 | 0x0bc2dab96f47dac7c58db9469402cf3c7775a537 | 1 | 2 | 1796.45267 | -| terp1kv5753kdsprynn7qcg4y9vvgyx6knmsn02mj6n | 0xb329ea46cd804649cfc0c22a42b18821b569ee13 | 1 | 2 | 1796.45267 | -| terp1smwd4jdvp93n926ahgwq8tzsadj422qd94qwd2 | 0x86dcdac9ac096332ab5dba1c03ac50eb6555280d | 1 | 2 | 1796.45267 | -| terp1plmdvswffy9up89yj3ptgf9yaprglzrmhfxg48 | 0x0ff6d641c9490bc09ca49442b424a4e8468f887b | 1 | 2 | 1796.45267 | -| terp18lf9mmkacwxevc7fmrtg4p3v7g2sdqrcdecf00 | 0x3fd25deeddc38d9663c9d8d68a862cf215068078 | 1 | 2 | 1796.45267 | -| terp1ega73lxqhv0fv64dp76hqkaprdghh5sexzcy66 | 0xca3be8fcc0bb1e966aad0fb5705ba11b517bd219 | 1 | 2 | 1796.45267 | -| terp1t0lllphemaju7stswwpzt442quyh2l8gnmm8vw | 0x5bffff86f9df65cf4170738225d6aa0709757ce8 | 1 | 2 | 1796.45267 | -| terp1nv07af6gh6xs67rmww3r4e75xtdglhfwc3d3yz | 0x9b1feea748be8d0d787b73a23ae7d432da8fdd2e | 1 | 2 | 1796.45267 | -| terp13yys3t2t2zzgln5ncalstgm8c9ehf2gr6498ht | 0x890908ad4b50848fce93c77f05a367c17374a903 | 1 | 2 | 1796.45267 | -| terp1vvtsult88x8j99m45ptuaw4yud76vklpqs83z4 | 0x63170e7d67398f229775a057cebaa4e37da65be1 | 1 | 2 | 1796.45267 | -| terp1qs5ppf8kr2r0j45fsyz73cygrxlmua54lfndgk | 0x042810a4f61a86f956898105e8e08819bfbe7695 | 1 | 2 | 1796.45267 | -| terp13s82e5mx55y94za7uxmvrr3pd2x8ys9nhvaqx8 | 0x8c0eacd366a5085a8bbee1b6c18e216a8c7240b3 | 1 | 2 | 1796.45267 | -| terp10puajteegf0vtsr2z2kzjxytd0avyqyh4tncc3 | 0x7879d92f39425ec5c06a12ac29188b6bfac20097 | 1 | 2 | 1796.45267 | -| terp1pr5je6y35yv4xfq5a2sj5d7auscua78fz49ywg | 0x08e92ce891a119532414eaa12a37dde431cef8e9 | 1 | 2 | 1796.45267 | -| terp1nghg2aysd0yhvd2eetrl93q7cd5qwumju44g56 | 0x9a2e8574906bc9763559cac7f2c41ec368077372 | 1 | 2 | 1796.45267 | -| terp1vx2snygd5yrp384mh05s53ef8zvperr8sv9sng | 0x619509910da106189ebbbbe90a472938981c8c67 | 1 | 2 | 1796.45267 | -| terp1a4820jsnfdy58l30fdum4af4yxq0d93c6h4cdv | 0xed4ea7ca134b4943fe2f4b79baf5352180f69638 | 1 | 2 | 1796.45267 | -| terp1ptg4tzpxnl3sh9cxvjp58qu7etlfd26g7g5x7l | 0x0ad15588269fe30b9706648343839ecafe96ab48 | 1 | 2 | 1796.45267 | -| terp1js69jv086mxc28gwhzqge95vlnwetsj5m4p7wj | 0x94345931e7d6cd851d0eb8808c968cfcdd95c254 | 1 | 2 | 1796.45267 | -| terp1rh0tfxwt4x63tunu7jqpv8n6pch7fm7t3h95sp | 0x1ddeb499cba9b515f27cf480161e7a0e2fe4efcb | 1 | 2 | 1796.45267 | -| terp1x23lwx8rs387rr8xg4nyy98ckc4nklv5ape4yy | 0x32a3f718e3844fe18ce645664214f8b62b3b7d94 | 1 | 2 | 1796.45267 | -| terp199z5w6dzd4eqzlgmt59w6e92yxpf68wsnv42p6 | 0x29454769a26d72017d1b5d0aed64aa21829d1dd0 | 1 | 2 | 1796.45267 | -| terp1ztd3q94hs5mj3l5d6k4d0tgry9p6nmjmtu5svt | 0x12db1016b7853728fe8dd5aad7ad032143a9ee5b | 1 | 2 | 1796.45267 | -| terp1xyd2cnt29js8j95udk5e4wjls57xaj4q7jxrl5 | 0x311aac4d6a2ca079169c6da99aba5f853c6ecaa0 | 1 | 2 | 1796.45267 | -| terp16vjt63qzlyhg528q3w34mwj2nygzu3ehcdq26d | 0xd324bd4402f92e8a28e08ba35dba4a99102e4737 | 1 | 2 | 1796.45267 | -| terp10zdfqsym3ga9tqkrpre3vyes4hsq5eapemf7hs | 0x789a90409b8a3a5582c308f3161330ade00a67a1 | 1 | 2 | 1796.45267 | -| terp16ue6r64sl8um58m5dkampx79mg89l784vl09jk | 0xd733a1eab0f9f9ba1f746dbbb09bc5da0e5ff8f5 | 1 | 2 | 1796.45267 | -| terp18jyt5qes5d5y4l2l75a4pv96lugqf0wrns42v8 | 0x3c88ba0330a3684afd5ff53b50b0baff1004bdc3 | 1 | 2 | 1796.45267 | -| terp1x8d75x2a389kvlu83035gyfupzvcedhgcdjegq | 0x31dbea195d89cb667f878be344113c08998cb6e8 | 1 | 2 | 1796.45267 | -| terp17yat6ulmh900lggxf6qe288gazulshjw340vyz | 0xf13abd73fbb95effa1064e81951ce8e8b9f85e4e | 1 | 2 | 1796.45267 | -| terp1x7mka87vyennhhl08l9neu8g2wdlza44s8p24e | 0x37b76e9fcc26673bdfef3fcb3cf0e8539bf176b5 | 1 | 2 | 1796.45267 | -| terp1ltglp3uv66nyy8dmp7a3us5gdjsyqz0yy8lwgx | 0xfad1f0c78cd6a6421dbb0fbb1e42886ca04009e4 | 1 | 2 | 1796.45267 | -| terp18rcalh909uxhps5aftm2f257jg80azccd8ye87 | 0x38f1dfdcaf2f0d70c29d4af6a4aa9e920efe8b18 | 1 | 2 | 1796.45267 | -| terp1qxj97lalw3fsjtjfkmd3xatgl886hr4dcw4tj4 | 0x01a45f7fbf7453092e49b6db137568f9cfab8ead | 1 | 2 | 1796.45267 | -| terp13rd69nufzx5qe3g2rvujkhlkk3aexqesu9nmkm | 0x88dba2cf8911a80cc50a1b392b5ff6b47b930330 | 1 | 2 | 1796.45267 | -| terp1etlarr3xajjtn7qxvj7rru0a7fhfrh6j65eddh | 0xcaffd18e26eca4b9f80664bc31f1fdf26e91df52 | 1 | 2 | 1796.45267 | -| terp1rcel52r4xlcctuxt38uw76dm7487vnkz6vzjrw | 0x1e33fa287537f185f0cb89f8ef69bbf54fe64ec2 | 1 | 2 | 1796.45267 | -| terp1l0qdky5wglexsh2j6vww34welmmkrcrryggmv2 | 0xfbc0db128e47f2685d52d31ce8d5d9fef761e063 | 1 | 2 | 1796.45267 | -| terp14nekc7h7e342aqx7v9g5z0m0u8rh3c8amxg6r5 | 0xacf36c7afecc6aae80de6151413f6fe1c778e0fd | 1 | 2 | 1796.45267 | -| terp1etfawycgdxfxm59mf7d7u6eeffshlvspjn6q2x | 0xcad3d7130869926dd0bb4f9bee6b394a617fb201 | 1 | 2 | 1796.45267 | -| terp1avct4s6ya74fr9jm4c3xpatkx9amagg636qfu3 | 0xeb30bac344efaa91965bae2260f576317bbea11a | 1 | 2 | 1796.45267 | -| terp1pd6j8e55lthtcwmecrcrn3c3t9dd35uz9sjydw | 0x0b7523e694faeebc3b79c0f039c711595ad8d382 | 1 | 2 | 1796.45267 | -| terp1xm5am8npcrea9afexy8pkrgwdxfmyh0r8kxqu4 | 0x36e9dd9e61c0f3d2f539310e1b0d0e6993b25de3 | 1 | 2 | 1796.45267 | -| terp148v0eq4gzlzqs4dt4hg3j5cnl2gau9neapqrwj | 0xa9d8fc82a817c40855abadd1195313fa91de1679 | 1 | 2 | 1796.45267 | -| terp1gc9phf6q6pvrfa9dftsfa3xvqk76m5zstgcyd4 | 0x460a1ba740d05834f4ad4ae09ec4cc05bdadd050 | 1 | 2 | 1796.45267 | -| terp1ur5vr4e4dxqxq3m70x5wfsszwm7za3a83pmed2 | 0xe0e8c1d735698060477e79a8e4c20276fc2ec7a7 | 1 | 2 | 1796.45267 | -| terp1vcuewkfz7ryxrjgvkp7cgzfdk9n9yhnrhfedu8 | 0x6639975922f0c861c90cb07d84092db166525e63 | 1 | 2 | 1796.45267 | -| terp1mq70ed5qtf4006em0x0wwxgmnpn7tgtdrdr9n4 | 0xd83cfcb6805a6af7eb3b799ee7191b9867e5a16d | 1 | 2 | 1796.45267 | -| terp10g6f4yfjg0yyks5vetnn7xnxxc34k9g6nqpuhz | 0x7a349a913243c84b428ccae73f1a6636235b151a | 1 | 2 | 1796.45267 | -| terp1t54mmzcpz02u5w6ktt0mv92u207n75n6s0r45t | 0x5d2bbd8b0113d5ca3b565adfb6155c53fd3f527a | 1 | 2 | 1796.45267 | -| terp1nggkhxu9x8vrcts6ccd6h48a7c3t9kaeen4ujq | 0x9a116b9b8531d83c2e1ac61babd4fdf622b2dbb9 | 1 | 2 | 1796.45267 | -| terp165gl0krn3egesg85usv5hhdj20quu5tmp62wky | 0xd511f7d8738e519820f4e4194bddb253c1ce517b | 1 | 2 | 1796.45267 | -| terp10wrvamn7l7qxj06t92vd5gy7lu54x82sp4k7a7 | 0x7b86ceee7eff80693f4b2a98da209eff29531d50 | 1 | 2 | 1796.45267 | -| terp1tktkwdwj3zv6zcx74ax2cjpczq9n33qy2t5ptm | 0x5d976735d28899a160deaf4cac4838100b38c404 | 1 | 2 | 1796.45267 | -| terp1nau7z734hu5sjfgezfz7rgd52yx52ayh7aem9h | 0x9f79e17a35bf290925191245e1a1b4510d457497 | 1 | 2 | 1796.45267 | -| terp1zc5fd8sgv0wh5pduzthnjys3pc94a7y74awtqd | 0x1628969e0863dd7a05bc12ef3912110e0b5ef89e | 1 | 2 | 1796.45267 | -| terp1anuf3caq7hwyujy5m7a2ut3tsvp6sd3m6eej7z | 0xecf898e3a0f5dc4e4894dfbaae2e2b8303a8363b | 1 | 2 | 1796.45267 | -| terp1hegay63rvfmuhglm89q5evtjg2vwx2rch07v6l | 0xbe51d26a236277cba3fb39414cb1724298e32878 | 1 | 2 | 1796.45267 | -| terp1qz9z9rf4kjzmnq839epz9gku2p27k9a6sm9hu9 | 0x008a228d35b485b980f12e4222a2dc5055eb17ba | 1 | 2 | 1796.45267 | -| terp14pypa98wmfs70l0vd6t83khtva740cfklrpjtx | 0xa8481e94eeda61e7fdec6e9678daeb677d57e136 | 1 | 2 | 1796.45267 | -| terp1dwff833zdmmeyg0zv27yu2yw9md88p4wqkr06r | 0x6b9293c6226ef79221e262bc4e288e2eda7386ae | 1 | 2 | 1796.45267 | -| terp16eyz3ytppd6fkku5nra6khhk9lenzqq0mdqdf7 | 0xd6482891610b749b5b9498fbab5ef62ff331000f | 1 | 2 | 1796.45267 | -| terp173sm0ekvxskjjs3hnj44xvn8r49eamlw5r2pzn | 0xf461b7e6cc342d2942379cab5332671d4b9eefee | 1 | 2 | 1796.45267 | -| terp1t370tfwltj5cus67vmaslsz2nw5g82xyle6tjq | 0x5c7cf5a5df5ca98e435e66fb0fc04a9ba883a8c4 | 1 | 2 | 1796.45267 | -| terp15234nhra4aexsx3x60f2xakax4ndy8h928l42n | 0xa2a359dc7daf72681a26d3d2a376dd3566d21ee5 | 1 | 2 | 1796.45267 | -| terp1y8yvz44ccv2tqyccsaq85t7a4w0w93sfcex496 | 0x21c8c156b8c314b0131887407a2fddab9ee2c609 | 1 | 2 | 1796.45267 | -| terp1l0878xp5hd6k3y6xz9ykt7kvxstsxrkxw94x5h | 0xfbcfe39834bb75689346114965facc3417030ec6 | 1 | 2 | 1796.45267 | -| terp1sgcp2reat6mspfmkwx8w0zsge3t0p7mn763tku | 0x8230150f3d5eb700a776718ee78a08cc56f0fb73 | 1 | 2 | 1796.45267 | -| terp1n2344lqd5hydwt5gkgffjvfgl69nrred9vxkva | 0x9aa35afc0da5c8d72e88b212993128fe8b318f2d | 1 | 2 | 1796.45267 | -| terp1kylqw42spe5y2n4z78l6mcpwqyph62ynsd5k3a | 0xb13e0755500e68454ea2f1ffade02e01037d2893 | 1 | 2 | 1796.45267 | -| terp1n7a75uhks7fs0wdlzt3tkelm9heu8rtk9lrtxt | 0x9fbbea72f6879307b9bf12e2bb67fb2df3c38d76 | 1 | 2 | 1796.45267 | -| terp12srajx8u9s2ymcl7c5l8nkursk6ddqu506pxxr | 0x5407d918fc2c144de3fec53e79db8385b4d68394 | 1 | 2 | 1796.45267 | -| terp1mh35d6hvajvl7c4cg48m6us4j02qutaufwrrgw | 0xdde346eaecec99ff62b8454fbd721593d40e2fbc | 1 | 2 | 1796.45267 | -| terp16ejf6g36uk8ygp6at9j4s0vppejda8kmq2wvvz | 0xd6649d223ae58e44075d5965583d810e64de9edb | 1 | 2 | 1796.45267 | -| terp1twfset80e33z694xguc8vnvqtzws3t5vap4zl3 | 0x5b930cacefcc622d16a64730764d80589d08ae8c | 1 | 2 | 1796.45267 | -| terp1py6rmaeelj727nlajamt2mfvvuehq93dyhtjlu | 0x09343df739fcbcaf4ffd9776b56d2c673370162d | 1 | 2 | 1796.45267 | -| terp1709cs3jl0l6vkk6snf8aaywczvk9c84ad0lk77 | 0xf3cb88465f7ff4cb5b509a4fde91d8132c5c1ebd | 1 | 2 | 1796.45267 | -| terp1mwxqp8eflz3hdeaw9lr4640gcyh3px456wsf9v | 0xdb8c009f29f8a376e7ae2fc75d55e8c12f109ab4 | 1 | 2 | 1796.45267 | -| terp1ltltsv0mxfn03qxwmrr9j599wzel7jg9cxj6ap | 0xfafeb831fb3266f880ced8c65950a570b3ff4905 | 1 | 2 | 1796.45267 | -| terp1wdm82u8ta3vqpd66frxw9lq235grrpca457jau | 0x73767570ebec5800b75a48cce2fc0a8d1031871d | 1 | 2 | 1796.45267 | -| terp13psdktld05z48kuqsqxlgtmp7qxk72epmx8r9w | 0x8860db2fed7d0553db80800df42f61f00d6f2b21 | 1 | 2 | 1796.45267 | -| terp1rmxdv8yl55ag6t5z8gnv6u48altap6fwhpajgh | 0x1eccd61c9fa53a8d2e823a26cd72a7efd7d0e92e | 1 | 2 | 1796.45267 | -| terp17naczjcgljdj9guzm89j7vln49swnqyzg4q5w4 | 0xf4fb814b08fc9b22a382d9cb2f33f3a960e98082 | 1 | 2 | 1796.45267 | -| terp165ymkaf0e4mlwda9ycsjscv94uz05tnph74qw3 | 0xd509bb752fcd77f737a52621286185af04fa2e61 | 1 | 2 | 1796.45267 | -| terp1mhgq95a9pu6xkxush33cmxalne2d28wj9yqrn8 | 0xddd002d3a50f346b1b90bc638d9bbf9e54d51dd2 | 1 | 2 | 1796.45267 | -| terp1l6lvxx7lr9evgtngx3mt3x6qmxr35ch4x7s0f5 | 0xfebec31bdf1972c42e683476b89b40d9871a62f5 | 1 | 2 | 1796.45267 | -| terp1g46lc23zh79zs9jp5ewykntng8wlxe7jyxlm6z | 0x4575fc2a22bf8a281641a65c4b4d7341ddf367d2 | 1 | 2 | 1796.45267 | -| terp16f99kwjfashdpkkwyhcaa0ks0c6qhm7f4494vr | 0xd24a5b3a49ec2ed0dace25f1debed07e340befc9 | 1 | 2 | 1796.45267 | -| terp1pa79frpuzq8p444p7zfdjkyye3xuaa9m6k4dky | 0x0f7c548c3c100e1ad6a1f092d95884cc4dcef4bb | 1 | 2 | 1796.45267 | -| terp1g5yyf2crc0y6aa8gr2nctannphkv97nyue3qpm | 0x450844ab03c3c9aef4e81aa785f6730decc2fa64 | 1 | 2 | 1796.45267 | -| terp1t84rln8f0ag0gnf0aykgadfg2r9edg0aurts2k | 0x59ea3fcce97f50f44d2fe92c8eb52850cb96a1fd | 1 | 2 | 1796.45267 | -| terp1ht4a3hjvpq6nzpdkau3kcr3f8xw2l45ellmrdh | 0xbaebd8de4c08353105b6ef236c0e29399cafd699 | 1 | 2 | 1796.45267 | -| terp18xdclsqmuucj2mp77l03jxqt38kyxej9xquqhv | 0x399b8fc01be731256c3ef7df19180b89ec436645 | 1 | 2 | 1796.45267 | -| terp1j7759eps4kq2r8w4h6g2rm5z4tlgt0ducezax2 | 0x97bd42e430ad80a19dd5be90a1ee82aafe85bdbc | 1 | 2 | 1796.45267 | -| terp18fdp69qh7zj9myrjc7n9m0ryhcrvfm2sd7g9v7 | 0x3a5a1d1417f0a45d9072c7a65dbc64be06c4ed50 | 1 | 2 | 1796.45267 | -| terp1sgq7l4cajrkhtsqpqj8kwna6dmqc24fn5p962k | 0x8201efd71d90ed75c001048f674fba6ec1855533 | 1 | 2 | 1796.45267 | -| terp1r2za29f7etym50gl3hkslau5ma9urkj3s2uufe | 0x1a85d5153ecac9ba3d1f8ded0ff794df4bc1da51 | 1 | 2 | 1796.45267 | -| terp12zpxy90vdneanc4fxk9wtcf9kzl972xfra7u8d | 0x50826215ec6cf3d9e2a9358ae5e125b0be5f28c9 | 1 | 2 | 1796.45267 | -| terp1l2q8w5shperp00erjugts629468cgkc5dn2m6e | 0xfa807752170e4617bf239710b86945ae8f845b14 | 1 | 2 | 1796.45267 | -| terp18xwwa7yf25z7xk9lr3mld8f3hp66yqk3qy55d7 | 0x399ceef8895505e358bf1c77f69d31b875a202d1 | 1 | 2 | 1796.45267 | -| terp1mq78hnk4pw5x78qlhu56hw383cm9nae282rsxu | 0xd83c7bced50ba86f1c1fbf29abba278e3659f72a | 1 | 2 | 1796.45267 | -| terp1dk0ztlqr74z9yvh6fcyujw3llwx4r03ytjv3nf | 0x6d9e25fc03f5445232fa4e09c93a3ffb8d51be24 | 1 | 2 | 1796.45267 | -| terp14p04p6q7vrmpnpmp8x2vzv67ha4aaxa0e84lgq | 0xa85f50e81e60f61987613994c1335ebf6bde9baf | 1 | 2 | 1796.45267 | -| terp1jlhzpqmkle58kk4swxt6ug5mts6gu070xgu5tg | 0x97ee208376fe687b5ab07197ae229b5c348e3fcf | 1 | 2 | 1796.45267 | -| terp1w0hxpu9648dx5f9ez4pdrfdvc279al0j92tg9u | 0x73ee60f0baa9da6a24b91542d1a5acc2bc5efdf2 | 1 | 2 | 1796.45267 | -| terp1z2954lxu5zrarmx29tgdq9wkm9yzq4fqykh9hm | 0x128b4afcdca087d1ecca2ad0d015d6d948205520 | 1 | 2 | 1796.45267 | -| terp15sagkh9grn87meyuws6a9nvfe5fwz2z9ga0u9j | 0xa43a8b5ca81ccfede49c7435d2cd89cd12e12845 | 1 | 2 | 1796.45267 | -| terp1anqv6tq0h52xr83tuwpuw8nr7za0jjt8flpsmm | 0xecc0cd2c0fbd14619e2be383c71e63f0baf94967 | 1 | 2 | 1796.45267 | -| terp1m43ke4533yvky7m4an43zmn9wwz7kskkzcfdte | 0xdd636cd6918919627b75eceb116e657385eb42d6 | 1 | 2 | 1796.45267 | -| terp15udcug72uwm9s45rrd4d7aejclfqrpq3jdsdrk | 0xa71b8e23cae3b65856831b6adf7732c7d2018411 | 1 | 2 | 1796.45267 | -| terp1k2qst8n0ff29sj5624lgwesgte90hclqzgsnsx | 0xb281059e6f4a54584a9a557e8766085e4afbe3e0 | 1 | 2 | 1796.45267 | -| terp1n9nlcr5jhl8sgs9camypwr938hlqvucrzxkdy9 | 0x9967fc0e92bfcf0440b8eec8170cb13dfe067303 | 1 | 2 | 1796.45267 | -| terp19yf9mpmycu6q732chkr0ry0jauemdk43cfu9rc | 0x29125d8764c7340f4558bd86f191f2ef33b6dab1 | 1 | 2 | 1796.45267 | -| terp1tesl5wsrt9xyj6av2xvh4a5ud2lcd0nyc2rpax | 0x5e61fa3a03594c496bac51997af69c6abf86be64 | 1 | 2 | 1796.45267 | -| terp1r4prtla7lhgqkujqjvnl3w3hkfe3s83ntukwd8 | 0x1d4235ffbefdd00b72409327f8ba37b273181e33 | 1 | 2 | 1796.45267 | -| terp1f8fq7xu94n9x5kxy3njk7hhdnq9sglq2festlm | 0x49d20f1b85acca6a58c48ce56f5eed980b047c0a | 1 | 2 | 1796.45267 | -| terp1ysyfkxh9gedr2yesr6sr8p2r2cwwaa7u9le3l6 | 0x24089b1ae5465a3513301ea0338543561ceef7dc | 1 | 2 | 1796.45267 | -| terp1szjtsrr9xyft0z2306eg4sg32xdkpzce6nynrm | 0x80a4b80c653112b789517eb28ac111519b608b19 | 1 | 2 | 1796.45267 | -| terp10l8usvh286n25ehll6q8glr8k36nym69t4mm07 | 0x7fcfc832ea3ea6aa66fffe80747c67b475326f45 | 1 | 2 | 1796.45267 | -| terp1qx3yjnfnqpjds2gjtdv4frjy6s4m7r8fh46je7 | 0x01a2494d330064d829125b59548e44d42bbf0ce9 | 1 | 2 | 1796.45267 | -| terp1805mnmcyyexj2mzpzgrafvv06np2fglvp6wfsj | 0x3be9b9ef04264d256c411207d4b18fd4c2a4a3ec | 1 | 2 | 1796.45267 | -| terp1uvkhnw20hkpzejacah33halyq7jx6z8m2j6uzx | 0xe32d79b94fbd822ccbb8ede31bf7e407a46d08fb | 1 | 2 | 1796.45267 | -| terp1he49nykjtxvsmh6rm0tgz45dk2ft537hdjamf7 | 0xbe6a5992d259990ddf43dbd681568db292ba47d7 | 1 | 2 | 1796.45267 | -| terp1dqdxgct7zzpuxm97h0v2e8nyjwxncfv3ncv8ue | 0x681a64617e1083c36cbebbd8ac9e64938d3c2591 | 1 | 2 | 1796.45267 | -| terp1dz3a2z57vcysullhh75sh2xn0lsljwh26s0987 | 0x68a3d50a9e66090e7ff7bfa90ba8d37fe1f93aea | 1 | 2 | 1796.45267 | -| terp19ql7a0zem0rapwphtmpytsccq2ne8w06s6sa3y | 0x283feebc59dbc7d0b8375ec245c31802a793b9fa | 1 | 2 | 1796.45267 | -| terp1drw645dy9ewkvx3vplyxw40v990n8kef26askp | 0x68ddaad1a42e5d661a2c0fc86755ec295f33db29 | 1 | 2 | 1796.45267 | -| terp1huadc3298mpydvhyrxrtdv6h7nsj78wy64htu5 | 0xbf3adc45453ec246b2e41986b6b357f4e12f1dc4 | 1 | 2 | 1796.45267 | -| terp1c60wl9fyjfus0ctpdv06w4mdd3tfqw6zwvc27v | 0xc69eef9524927907e1616b1fa7576d6c56903b42 | 1 | 2 | 1796.45267 | -| terp180k2j8smss9f50qfhm8p5t5zvgyw388nhcmftd | 0x3beca91e1b840a9a3c09bece1a2e826208e89cf3 | 1 | 2 | 1796.45267 | -| terp1gez2ntlztvq5qkusn8pjl0cj87ge6jpc85uy5e | 0x4644a9afe25b01405b9099c32fbf123f919d4838 | 1 | 2 | 1796.45267 | -| terp1ag4wqev0p0g3z0l4tzshl428sa298ue9wgd8s6 | 0xea2ae0658f0bd1113ff558a17fd547875453f325 | 1 | 2 | 1796.45267 | -| terp1u7rgzrdafvxfscs9nfmxmq6d758m7nsmmgnu9x | 0xe786810dbd4b0c9862059a766d834df50fbf4e1b | 1 | 2 | 1796.45267 | -| terp1gulqsype70dd0u0lzy08u2gce90a0qey60zwdc | 0x473e081039f3dad7f1ff111e7e2918c95fd78324 | 1 | 2 | 1796.45267 | -| terp1px33025v4a9e9rvadp5l6t775mdch40maaqs4c | 0x09a317aa8caf4b928d9d6869fd2fdea6db8bd5fb | 1 | 2 | 1796.45267 | -| terp1p52yj208xk8jgx0wegts0ryvel5sx8akc96xqg | 0x0d144929e7358f2419eeca17078c8ccfe9031fb6 | 1 | 2 | 1796.45267 | -| terp18ul842lehr8z69mxvm9a4fyc9eypmphjx20j9e | 0x3f3e7aabf9b8ce2d176666cbdaa4982e481d86f2 | 1 | 2 | 1796.45267 | -| terp1nydtxyn949hed8l6ya5stwl9ty5g2l4pvugzdm | 0x991ab31265a96f969ffa276905bbe55928857ea1 | 1 | 2 | 1796.45267 | -| terp122vaskd6c8phpfpre0l2y5p5chh8suzr5xj6k4 | 0x5299d859bac1c370a423cbfea25034c5ee787043 | 1 | 2 | 1796.45267 | -| terp13cl2rm9n4dh4eff86wz7fvq8n579cjvjz54kc0 | 0x8e3ea1ecb3ab6f5ca527d385e4b0079d3c5c4992 | 1 | 2 | 1796.45267 | -| terp1lhyt9jfz8xxf4s3e9wfawj4fevny2jwwfw503k | 0xfdc8b2c922398c9ac2392b93d74aa9cb264549ce | 1 | 2 | 1796.45267 | -| terp1p5p8fl7vsvlsm354qxq6zy62gpyusvkp8wdqt5 | 0x0d0274ffcc833f0dc6950181a1134a4049c832c1 | 1 | 2 | 1796.45267 | -| terp1gwal52ppknduy558jmvwcj8yv4qllzn00gvplu | 0x43bbfa2821b4dbc2528796d8ec48e46541ff8a6f | 1 | 2 | 1796.45267 | -| terp1rxf2zd6e8eqkndgsrxuuavvhvduvgj5m3cvuyg | 0x1992a137593e4169b51019b9ceb1976378c44a9b | 1 | 2 | 1796.45267 | -| terp1w5eufswcsx42wh2tqwfjtpnt979cchkfr08w77 | 0x7533c4c1d881aaa75d4b039325866b2f8b8c5ec9 | 1 | 2 | 1796.45267 | -| terp186vjcj5wfvmxckpmvqax5m39cnnraycs0zdp6h | 0x3e992c4a8e4b366c583b603a6a6e25c4e63e9310 | 1 | 2 | 1796.45267 | -| terp1g3n0rgtq4k2l3ask707qm5x4vkz4ewz0qvw4tk | 0x4466f1a160ad95f8f616f3fc0dd0d565855cb84f | 1 | 2 | 1796.45267 | -| terp13a2jvv5w47c8gar39gmpykfcdvprrqfm9yqeyn | 0x8f5526328eafb07474712a361259386b0231813b | 1 | 2 | 1796.45267 | -| terp16wpl48ahgwavwhputjj3lakwgvdjjqt2hq77dz | 0xd383fa9fb743bac75c3c5ca51ff6ce431b29016a | 1 | 2 | 1796.45267 | -| terp1k2e2q486vqelyua9gqgkrts7hl4f7drm3eeyq9 | 0xb2b2a054fa6033f273a5401161ae1ebfea9f347b | 1 | 2 | 1796.45267 | -| terp1rzg2726p25vls4fkdsu6dwx92lug96l50w0u0n | 0x1890af2b415519f855366c39a6b8c557f882ebf4 | 1 | 2 | 1796.45267 | -| terp1qnaqv4nerlsvf6a7lvl8nyz6cweqs2g8lr2w99 | 0x04fa0656791fe0c4ebbefb3e79905ac3b2082907 | 1 | 2 | 1796.45267 | -| terp18cqeuyl5mu28u5qlgxr044cca4aqcv5p6c0alh | 0x3e019e13f4df147e501f4186fad718ed7a0c3281 | 1 | 2 | 1796.45267 | -| terp1mraeupqa8jsvaat8pevv3ys6xhny0awkv6ppxc | 0xd8fb9e041d3ca0cef5670e58c8921a35e647f5d6 | 1 | 2 | 1796.45267 | -| terp1rscydux2h0sastem0remwaru5ykvyu0uqufqrs | 0x1c3046f0cabbe1d82f3b78f3b7747ca12cc271fc | 1 | 2 | 1796.45267 | -| terp1yejgu0mu0vfw2hmxxl6tkk7h2v22l9p64gym2r | 0x26648e3f7c7b12e55f6637f4bb5bd75314af943a | 1 | 2 | 1796.45267 | -| terp1dsangdlzquupreddd5cggucz2tclmtxslm3m8z | 0x6c3b3437e2073811e5ad6d3084730252f1fdacd0 | 1 | 2 | 1796.45267 | -| terp1v2470attsl5ugxj65ze529kfkg0w0de9wv0saq | 0x62abe7f56b87e9c41a5aa0b34516c9b21ee7b725 | 1 | 2 | 1796.45267 | -| terp1vq3wcpygtan3sx9yla6zdyywzupzuh3fz4hz80 | 0x6022ec04885f671818a4ff7426908e17022e5e29 | 1 | 2 | 1796.45267 | -| terp1gtmu2f66csmjz4sz0kfess7fcsjj8hewsjyhhf | 0x42f7c5275ac4372156027d939843c9c42523df2e | 1 | 2 | 1796.45267 | -| terp1y4dlng0huvydh4uznf4eu64m934sx8ga6wsctt | 0x255bf9a1f7e308dbd7829a6b9e6abb2c6b031d1d | 1 | 2 | 1796.45267 | -| terp1w6hg02nh2dju3944h0dm80waezut26xypy3sce | 0x76ae87aa775365c896b5bbdbb3bdddc8b8b568c4 | 1 | 2 | 1796.45267 | -| terp19lharpx3wvht5nn9w2749xu84vcus8lgat7yr8 | 0x2fefd184d1732eba4e6572bd529b87ab31c81fe8 | 1 | 2 | 1796.45267 | -| terp1wdudzffs5yenrsmslftepm5wulwuc7tqfzxlsz | 0x7378d12530a13331c370fa5790ee8ee7ddcc7960 | 1 | 2 | 1796.45267 | -| terp1gz7a2dcrgj8v4t0sd7435wq5ze7lwxtc488elw | 0x40bdd53703448ecaadf06fab1a3814167df71978 | 1 | 2 | 1796.45267 | -| terp1kn8azpd5cvzf835u32cvtk3g3lwg7e2n3rngzd | 0xb4cfd105b4c30493c69c8ab0c5da288fdc8f6553 | 1 | 2 | 1796.45267 | -| terp18f3vluye6x5n7ezm63g5gnk5n77zkjmtmvlhkr | 0x3a62cff099d1a93f645bd451444ed49fbc2b4b6b | 1 | 2 | 1796.45267 | -| terp15eru6xy8sktvwf8htnl8cmn5dn087hk7kl9dal | 0xa647cd18878596c724f75cfe7c6e746cde7f5ede | 1 | 2 | 1796.45267 | -| terp1tw9utxasagz2q8g2dfdnfppyqs8cdpm9gvc8ry | 0x5b8bc59bb0ea04a01d0a6a5b348424040f868765 | 1 | 2 | 1796.45267 | -| terp1ea3s2zs6l2d2p7paa057q3we3araea70und786 | 0xcf63050a1afa9aa0f83debe9e045d98f47dcf7cf | 1 | 2 | 1796.45267 | -| terp1n8cykyhgsc6premhj5ezaq9w92hefr064q0k3w | 0x99f04b12e8863411e77795322e80ae2aaf948dfa | 1 | 2 | 1796.45267 | -| terp10px6lcz9pfreaadw4zg7us9txk3ce3lnre77kl | 0x784dafe0450a479ef5aea891ee40ab35a38cc7f3 | 1 | 2 | 1796.45267 | -| terp1z38p23ad00jna40h29qx5es4gzuxp4fz76gpql | 0x144e1547ad7be53ed5f751406a661540b860d522 | 1 | 2 | 1796.45267 | -| terp1kfrk0p5ec92drh43dlppt0ap57k6cr5aqqu5gk | 0xb247678699c154d1deb16fc215bfa1a7adac0e9d | 1 | 2 | 1796.45267 | -| terp125x7r7aw7n34zwzczdxpwh6g7mtqgrc5863yz8 | 0x550de1fbaef4e3513858134c175f48f6d6040f14 | 1 | 2 | 1796.45267 | -| terp1cp2fppen8duhyzy08thjkpl2e0sgxj6y0qchal | 0xc0549087333b7972088f3aef2b07eacbe0834b44 | 1 | 2 | 1796.45267 | -| terp1m7kxdxjzplxepfjtk4ulmfdj0wlwyfhttry968 | 0xdfac669a420fcd90a64bb579fda5b27bbee226eb | 1 | 2 | 1796.45267 | -| terp1w2ttnv6d57csevc30q6ms9ykh0n2fq6uude9zk | 0x7296b9b34da7b10cb3117835b81496bbe6a4835c | 1 | 2 | 1796.45267 | -| terp1h6hzd5p8swze7yezwhhxaq99fhru3y98w707qq | 0xbeae26d02783859f132275ee6e80a54dc7c890a7 | 1 | 2 | 1796.45267 | -| terp1aeeyryp6a6tzc49p9htutf9tzzd27eu2jwsnfk | 0xee7241903aee962c54a12dd7c5a4ab109aaf678a | 1 | 2 | 1796.45267 | -| terp1uakmer00dnu6993kvwrt3aef2522r66h60kjde | 0xe76dbc8def6cf9a296366386b8f7295514a1eb57 | 1 | 2 | 1796.45267 | -| terp1g90hs4nugvdfytcjlg5mc9z4apzelm4ky6rhfh | 0x415f78567c431a922f12fa29bc1455e8459feeb6 | 1 | 2 | 1796.45267 | -| terp182jje32j33gj4h7lr4vnele6ldylhcj5jw6w0x | 0x3aa52cc5528c512adfdf1d593cff3afb49fbe254 | 1 | 2 | 1796.45267 | -| terp16cqykwef84spp2yuquseftd9nshrg59mchlf88 | 0xd6004b3b293d6010a89c072194ada59c2e3450bb | 1 | 2 | 1796.45267 | -| terp1d80hm55namlnp8v05ysjd03lt5htyalz22vwph | 0x69df7dd293eeff309d8fa12126be3f5d2eb277e2 | 1 | 2 | 1796.45267 | -| terp1ghmz3qyn76dnxwjc6cv4ump63qwd0gasa5s5cz | 0x45f6288093f69b333a58d6195e6c3a881cd7a3b0 | 1 | 2 | 1796.45267 | -| terp1255kksdjm8ehuyc5rtsd3ks0nqwd7m38699uz0 | 0x55296b41b2d9f37e13141ae0d8da0f981cdf6e27 | 1 | 2 | 1796.45267 | -| terp1e9v0q2x3hpc6kt3jc24a548nwxg7lcxzytltdt | 0xc958f028d1b871ab2e32c2abda54f37191efe0c2 | 1 | 2 | 1796.45267 | -| terp1c5fschet8p3klj92kra4xknehh7ld3c6lng2gs | 0xc5130c5f2b38636fc8aab0fb535a79bdfdf6c71a | 1 | 2 | 1796.45267 | -| terp1wjptxd3gxpqns62zlsgxl4rlnxtk6xsxkqtxju | 0x7482b336283041386942fc106fd47f99976d1a06 | 1 | 2 | 1796.45267 | -| terp1ndjyxp7hxk4llzts6x5r8zwyy9e0qgsdkh4wlx | 0x9b644307d735abff8970d1a83389c42172f0220d | 1 | 2 | 1796.45267 | -| terp1sez443wtu73vapf8vw9lj6glhd96eeap2dax6d | 0x86455ac5cbe7a2ce8527638bf9691fbb4bace7a1 | 1 | 2 | 1796.45267 | -| terp1mm7qshpun4wndj6yvyfsu4pk77xazkqqr65enx | 0xdefc085c3c9d5d36cb4461130e5436f78dd15800 | 1 | 2 | 1796.45267 | -| terp1rzxrp6dx2fl47rpl0ljeku4vwffuvteg7ums4f | 0x188c30e9a6527f5f0c3f7fe59b72ac7253c62f28 | 1 | 2 | 1796.45267 | -| terp1slujgcrcmts5u3mn59pv3glj6udakrzfj0x95a | 0x87f9246078dae14e4773a142c8a3f2d71bdb0c49 | 1 | 2 | 1796.45267 | -| terp1wxn4pacqxxfchefghe3pqpv6pkef0wtcg5rx8u | 0x71a750f70031938be528be6210059a0db297b978 | 1 | 2 | 1796.45267 | -| terp1qdfz8trap9kk4cm6l276j5wjgtte5xvd403sar | 0x035223ac7d096d6ae37afabda951d242d79a198d | 1 | 2 | 1796.45267 | -| terp1f7valuql907uqg7tvtwungwm2t0rjg7dyfqdpl | 0x4f99dff01f2bfdc023cb62ddc9a1db52de3923cd | 1 | 2 | 1796.45267 | -| terp1ymzq0w745ggfaha8dnjl99mvy946js8vrnxu0f | 0x26c407bbd5a2109edfa76ce5f2976c216ba940ec | 1 | 2 | 1796.45267 | -| terp1ekrhm82r9aqmx4kekhe67rs4lwaakasme36vn5 | 0xcd877d9d432f41b356d9b5f3af0e15fbbbdb761b | 1 | 2 | 1796.45267 | -| terp1x25mukqyy026vxzngx30j4tzlxwzdkqlspdh5m | 0x32a9be580423d5a6185341a2f95562f99c26d81f | 1 | 2 | 1796.45267 | -| terp1nvc6280n2trucqmjkqf3wtddzm95pcc5ny70g3 | 0x9b31a51df352c7cc0372b013172dad16cb40e314 | 1 | 2 | 1796.45267 | -| terp15qp6t9spnwajjdad5guwtxksx0etywh5pkcl9p | 0xa003a596019bbb2937ada238e59ad033f2b23af4 | 1 | 2 | 1796.45267 | -| terp18y7363ergnak0kex50vw2a0xw8qpfv0np92sv3 | 0x393d1d472344fb67db26a3d8e575e671c014b1f3 | 1 | 2 | 1796.45267 | -| terp187wmthcs4x3zjrethfqjrlg4vd8hcl3pxt4gmq | 0x3f9db5df10a9a2290f2bba4121fd15634f7c7e21 | 1 | 2 | 1796.45267 | -| terp1zwcjxclnxsq208f33v2l9tycvluc4lh54gg50w | 0x13b12363f33400a79d318b15f2ac9867f98afef4 | 1 | 2 | 1796.45267 | -| terp1wmy4qesehc4zvrx0ezyrhe9mwugjxgqslqfsy4 | 0x76c9506619be2a260ccfc8883be4bb7711232010 | 1 | 2 | 1796.45267 | -| terp1cfh6ht9cscj4q3jqkmzdyf3qqutcqjtj6pqeng | 0xc26fabacb88625504640b6c4d226200717804972 | 1 | 2 | 1796.45267 | -| terp1gh3hsywtxqrj0sxfngx7q2shdl5vtsjflnh349 | 0x45e37811cb300727c0c99a0de02a176fe8c5c249 | 1 | 2 | 1796.45267 | -| terp1z2sl7vwscmf27njjchamvjq730k2nxvu59vfxr | 0x12a1ff31d0c6d2af4e52c5fbb6481e8beca9999c | 1 | 2 | 1796.45267 | -| terp1d86679vjjjxprzgpwam0gqjuhd86yp4rxvnvd9 | 0x69f5af1592948c1189017776f4025cbb4fa206a3 | 1 | 2 | 1796.45267 | -| terp129jetnk2ytkte276gp0haznye4z6mmlxusn6ed | 0x516595ceca22ecbcabda405f7e8a64cd45adefe6 | 1 | 2 | 1796.45267 | -| terp16jk2j0uzennpsu04yh02qsle8zc82tdm5uf973 | 0xd4aca93f82cce61871f525dea043f938b0752dbb | 1 | 2 | 1796.45267 | -| terp1vamwtvu5hhn7wua2ljhlquw35957fm0wq7unen | 0x6776e5b394bde7e773aafcaff071d1a169e4edee | 1 | 2 | 1796.45267 | -| terp1u5xr586zmlgwyxnt9pxn5ekyudn8lgw33e9v8y | 0xe50c3a1f42dfd0e21a6b284d3a66c4e3667fa1d1 | 1 | 2 | 1796.45267 | -| terp1ke743nl6ucaft7ecpw2jued34r4vgngt76uv8p | 0xb67d58cffae63a95fb380b952e65b1a8eac44d0b | 1 | 2 | 1796.45267 | -| terp1rcqjtud926ad34rv7ap2s7un8uxan52gkyn6pj | 0x1e0125f1a556bad8d46cf742a87b933f0dd9d148 | 1 | 2 | 1796.45267 | -| terp123wxk2wfrrzlxm5ua53lms0e3p8x54433zxqra | 0x545c6b29c918c5f36e9ced23fdc1f9884e6a56b1 | 1 | 2 | 1796.45267 | -| terp1pjvkg6zv3ll0ltan3athr724mktwlpfahtjnf7 | 0x0c9964684c8ffeffafb38f5771f955dd96ef853d | 1 | 2 | 1796.45267 | -| terp1m6geel9279a5xkxlhr6t44tm7yxvh7v6vldw0m | 0xde919cfcaaf17b4358dfb8f4bad57bf10ccbf99a | 1 | 2 | 1796.45267 | -| terp1rte50sqy68rz5m4zq8plj8udexrc2m2k64kdxk | 0x1af347c004d1c62a6ea201c3f91f8dc987856d56 | 1 | 2 | 1796.45267 | -| terp14az4jlqxdnh2adr9fwmtptsx7u3v498afmmckn | 0xaf45597c066ceeaeb4654bb6b0ae06f722ca94fd | 1 | 2 | 1796.45267 | -| terp12tm3ksv9gkpy3s8q5am6agfsmy3yv2stpl8aa7 | 0x52f71b4185458248c0e0a777aea130d922462a0b | 1 | 2 | 1796.45267 | -| terp1zj3ulntfxvwttt50yxr0urkj2uexxn9uq7clqu | 0x14a3cfcd69331cb5ae8f2186fe0ed25732634cbc | 1 | 2 | 1796.45267 | -| terp1z3xxvqqj0d0hgj3jc0yf80u5r4sdhzphk0s6y5 | 0x144c6600127b5f744a32c3c893bf941d60db8837 | 1 | 2 | 1796.45267 | -| terp1pu6czfahmky3xxw5c8gav89r3dsfx0taj9jdyr | 0x0f358127b7dd891319d4c1d1d61ca38b60933d7d | 1 | 2 | 1796.45267 | -| terp1rzvk9wuskgrm2sk7f7af3zjxwxcvwq4gy5uery | 0x189962bb90b207b542de4fba988a4671b0c702a8 | 1 | 2 | 1796.45267 | -| terp1m6khf8x46djcnvmmm6vqzjgqsw3fu60zshmg4j | 0xdead749cd5d36589b37bde9801490083a29e69e2 | 1 | 2 | 1796.45267 | -| terp1lpyw8p8yr5yaec7u4mfhu9c5gx8x36nlz40vfr | 0xf848e384e41d09dce3dcaed37e1714418e68ea7f | 1 | 2 | 1796.45267 | -| terp1uzf5cux8cyckp3lncgde9s2q2aev7j3ywezwhx | 0xe0934c70c7c13160c7f3c21b92c1405772cf4a24 | 1 | 2 | 1796.45267 | -| terp10y9vf468qddxxyfjzmk3al92udge6gf7m2wg62 | 0x790ac4d747035a63113216ed1efcaae3519d213e | 1 | 2 | 1796.45267 | -| terp1puhpxmljzks95ewat6rkt37af8dmr9ghljd22v | 0x0f2e136ff215a05a65dd5e8765c7dd49dbb19517 | 1 | 2 | 1796.45267 | -| terp199vkrn0nrhjxzljs22820qezzs7x77mlwme4mu | 0x295961cdf31de4617e50528ea78322143c6f7b7f | 1 | 2 | 1796.45267 | -| terp1ehslq7sxaslcf383c46fs034clvd8mjzymk7te | 0xcde1f07a06ec3f84c4f1c574983e35c7d8d3ee42 | 1 | 2 | 1796.45267 | -| terp1xctxftjqa8jsag2pzw248wv6dd8nhyqtmgndl5 | 0x361664ae40e9e50ea141139553b99a6b4f3b900b | 1 | 2 | 1796.45267 | -| terp15xdrp5fx4ch8ln8q4c8yg5t3jg70pcghxctzfl | 0xa19a30d126ae2e7fcce0ae0e445171923cf0e117 | 1 | 2 | 1796.45267 | -| terp14fhaps7ast35kxsvu7jjvg6nxezzl4ncekfvux | 0xaa6fd0c3dd82e34b1a0ce7a526235336442fd678 | 1 | 2 | 1796.45267 | -| terp1u9hv90df2jrx3ld5unh4sgjlv73vjf260z53lm | 0xe16ec2bda9548668fdb4e4ef58225f67a2c9255a | 1 | 2 | 1796.45267 | -| terp17er6728q5gxsz9nkg9mm0vwstvfpg08dw03yt2 | 0xf647af28e0a20d0116764177b7b1d05b12143ced | 1 | 2 | 1796.45267 | -| terp17lxkcf3zgjnfmzelvx73w2y8rglhjygd8lktel | 0xf7cd6c262244a69d8b3f61bd1728871a3f79110d | 1 | 2 | 1796.45267 | -| terp1jxzxas5298k6nlz20rg7qy9hda0mvq5wpzq4wq | 0x91846ec28a29eda9fc4a78d1e010b76f5fb6028e | 1 | 2 | 1796.45267 | -| terp1rjxsqa5hs5qwe692q2jsyjkznyxwm3ge6tkch3 | 0x1c8d0076978500ece8aa02a5024ac2990cedc519 | 1 | 2 | 1796.45267 | -| terp13dkgvswfnr4cx2fx4qgfrds8ulj7meyfpn7tl6 | 0x8b6c8641c998eb832926a81091b607e7e5ede489 | 1 | 2 | 1796.45267 | -| terp18h9cyu7zx2tx2jj0xuhglqvy4vhuvraskzznqf | 0x3dcb8273c23296654a4f372e8f8184ab2fc60fb0 | 1 | 2 | 1796.45267 | -| terp12904gkncak56kp8zzp5hs7hx8hkpj3rmw4hwll | 0x515f545a78eda9ab04e21069787ae63dec19447b | 1 | 2 | 1796.45267 | -| terp1a9k7ew2zhz6ud02h7z83gm72zfmjev00kq3fpp | 0xe96decb942b8b5c6bd57f08f146fca12772cb1ef | 1 | 2 | 1796.45267 | -| terp1c806jxqyst6mkv3zqzffmzcmhsus5hptvru78x | 0xc1dfa9180482f5bb322200929d8b1bbc390a5c2b | 1 | 2 | 1796.45267 | -| terp1atddjyne4qgedrjlywajv97rddzgshqmqv6s8h | 0xeadad91279a811968e5f23bb2617c36b44885c1b | 1 | 2 | 1796.45267 | -| terp1fdgy38gnfjgcl5msa6q9ls0u6fqrnvx2f6dqv4 | 0x4b50489d134c918fd370ee805fc1fcd24039b0ca | 1 | 2 | 1796.45267 | -| terp1ea5ecnreefgw5fdqvtj5tqa6q3ezmgxt06kpsk | 0xcf699c4c79ca50ea25a062e54583ba04722da0cb | 1 | 2 | 1796.45267 | -| terp1njhd3gqusaep2ux739dfwffnfg9qekmstmgxnf | 0x9caed8a01c87721570de895a9725334a0a0cdb70 | 1 | 2 | 1796.45267 | -| terp1cwkle2zjfwu5v7xamwvwkh63hlq5xrw50yl2ss | 0xc3adfca8524bb94678dddb98eb5f51bfc1430dd4 | 1 | 2 | 1796.45267 | -| terp18yu0vv2cmcj0mmdclz2nmvfm6kq3rruf95u8y0 | 0x3938f63158de24fdedb8f8953db13bd581118f89 | 1 | 2 | 1796.45267 | -| terp1ja2hmvt9c2vkv0h3xnccu8an7zf6ru27t937nu | 0x97557db165c299663ef134f18e1fb3f093a1f15e | 1 | 2 | 1796.45267 | -| terp1ava566nhhgaq7cfa3yssyektvpg9n4jzge0mkx | 0xeb3b4d6a77ba3a0f613d89210266cb605059d642 | 1 | 2 | 1796.45267 | -| terp10jhqufjnfva74jpq3g4cwy0xnr048mqdhcpskv | 0x7cae0e26534b3beac8208a2b8711e698df53ec0d | 1 | 2 | 1796.45267 | -| terp12yf2qkavjau6ycp4rxgpsr87u0v0r7h9myl4m8 | 0x5112a05bac9779a260351990180cfee3d8f1fae5 | 1 | 2 | 1796.45267 | -| terp1v7zgxw4w8axhqxuy9ye7yu4tsxrs7f2um73n83 | 0x6784833aae3f4d701b842933e272ab81870f255c | 1 | 2 | 1796.45267 | -| terp1qp3kvnftd3pxdj8h29dwm7nk95a4mn865mu2an | 0x0063664d2b6c4266c8f7515aedfa762d3b5dccfa | 1 | 2 | 1796.45267 | -| terp1pp9kescv5t8mjskqpdp38mfkwcwqtsjnayymuu | 0x084b6cc30ca2cfb942c00b4313ed36761c05c253 | 1 | 2 | 1796.45267 | -| terp1dd5p9s2kzp5c4mv3kncyxk5cykjatlzgmg7md2 | 0x6b6812c15610698aed91b4f0435a9825a5d5fc48 | 1 | 2 | 1796.45267 | -| terp1z399rhtucsdq2kax6n8s4v99j3zuxrxwhzxrh5 | 0x144a51dd7cc41a055ba6d4cf0ab0a59445c30cce | 1 | 2 | 1796.45267 | -| terp1m7ds6u3hw6tjch9wyl7mful2sfa9eu5r4dr7z0 | 0xdf9b0d723776972c5cae27fdb4f3ea827a5cf283 | 1 | 2 | 1796.45267 | -| terp1l0ulfkudkyuxge9wlrgfhn8uy6te4l6xlu7g57 | 0xfbf9f4db8db1386464aef8d09bccfc26979aff46 | 1 | 2 | 1796.45267 | -| terp17faq29u63fp75xw9q9q47ygr3nq4wuqd6ulapn | 0xf27a05179a8a43ea19c501415f11038cc157700d | 1 | 2 | 1796.45267 | -| terp1zny9c6gxwycdtfqqxy90du8ht7syy5am7gyxjw | 0x14c85c69067130d5a400310af6f0f75fa04253bb | 1 | 2 | 1796.45267 | -| terp1s5slfjmxlctxlqf3tne344mdg4zxrv4zpee8am | 0x8521f4cb66fe166f81315cf31ad76d454461b2a2 | 1 | 2 | 1796.45267 | -| terp1ed3au4snmcad6v4y33nndu6wrjx722qmqh84wr | 0xcb63de5613de3add32a48c6736f34e1c8de5281b | 1 | 2 | 1796.45267 | -| terp1uc0rekcc70qa8jayqua7xtvvfqazsgcvpsag2y | 0xe61e3cdb18f3c1d3cba4073be32d8c483a28230c | 1 | 2 | 1796.45267 | -| terp1vrzm6vee4yn0c7afvuvjz4efa98vpkmdrry4w4 | 0x60c5bd3339a926fc7ba96719215729e94ec0db6d | 1 | 2 | 1796.45267 | -| terp12gdunw66kaqktrjgaatc62g6aczahg6ctkz587 | 0x521bc9bb5ab741658e48ef578d291aee05dba358 | 1 | 2 | 1796.45267 | -| terp1pvn08qk4mtgev02y7tyvrzlf6ca6q2rsqk5w27 | 0x0b26f382d5dad1963d44f2c8c18be9d63ba02870 | 1 | 2 | 1796.45267 | -| terp1ru7l2vdkpqlhf3fqc2tfcedp8w7nyxclxwq3cp | 0x1f3df531b6083f74c520c2969c65a13bbd321b1f | 1 | 2 | 1796.45267 | -| terp134q6gyr8744a6y04kvah3upu7d23cw0pxqclky | 0x8d41a41067f56bdd11f5b33b78f03cf3551c39e1 | 1 | 2 | 1796.45267 | -| terp1cwv48vrqnlpeq4r8hnt5yx47j83xfv5hlr87lf | 0xc39953b0609fc3905467bcd7421abe91e264b297 | 1 | 2 | 1796.45267 | -| terp14rz3zhywgs63k27z6sq6rupnhdz398w90yfgj4 | 0xa8c5115c8e44351b2bc2d401a1f033bb45129dc5 | 1 | 2 | 1796.45267 | -| terp1jlypxv0hx2qt5k30wx5f97s4y8tfz2p7puzug5 | 0x97c81331f73280ba5a2f71a892fa1521d691283e | 1 | 2 | 1796.45267 | -| terp1twa9vlxk26dndksc0jv7qa99mtym5enzkehzq9 | 0x5bba567cd6569b36da187c99e074a5dac9ba6662 | 1 | 2 | 1796.45267 | -| terp1qy4v7u9j8m4hauzjyz6m32ekh6ugp4kw56weu5 | 0x012acf70b23eeb7ef05220b5b8ab36beb880d6ce | 1 | 2 | 1796.45267 | -| terp1jgcldp93x85ag2898zjqenpr6jyesfhffs9nrx | 0x9231f684b131e9d428e538a40ccc23d4899826e9 | 1 | 2 | 1796.45267 | -| terp15m35wh3df2vn0dsmuyc5qavca5vgk48n0mkj55 | 0xa6e3475e2d4a9937b61be131407598ed188b54f3 | 1 | 2 | 1796.45267 | -| terp14tz8mf2nguxmpgddqn6dnc4hks37dkpauknxq9 | 0xaac47da553470db0a1ad04f4d9e2b7b423e6d83d | 1 | 2 | 1796.45267 | -| terp1t27u8juzdlqzwlty9j0m2ta8dl36hd88lpqkn5 | 0x5abdc3cb826fc0277d642c9fb52fa76fe3abb4e7 | 1 | 2 | 1796.45267 | -| terp1lm2e9dj28v9l55fp5h53jpckvpdhad4lh2c38r | 0xfed592b64a3b0bfa5121a5e9190716605b7eb6bf | 1 | 2 | 1796.45267 | -| terp14604faesjlyw6lc37cqwy6ywrvpsua4yafzd9t | 0xae9f54f73097c8ed7f11f600e2688e1b030e76a4 | 1 | 2 | 1796.45267 | -| terp1przfncmrujce77cn90ydrzvde5lsu4h2nlpgrq | 0x08c499e363e4b19f7b132bc8d1898dcd3f0e56ea | 1 | 2 | 1796.45267 | -| terp1lqk28wp8mm05dug3z3fwxq0qeqllyfu0v6ra4g | 0xf82ca3b827dedf46f1111452e301e0c83ff2278f | 1 | 2 | 1796.45267 | -| terp1eht62unyhtly5uwwa56gvzfg0c8wyy6u8qgcn6 | 0xcdd7a57264bafe4a71ceed348609287e0ee2135c | 1 | 2 | 1796.45267 | -| terp1ttw87yyperaceacqmtnrpvxgmxcvcpshwf4fgn | 0x5adc7f1081c8fb8cf700dae630b0c8d9b0cc0617 | 1 | 2 | 1796.45267 | -| terp1fe73trjamtqfkzttvw84j5ndmu96xyfvs86nsw | 0x4e7d158e5ddac09b096b638f59526ddf0ba3112c | 1 | 2 | 1796.45267 | -| terp1r5tkmy6a4eaau0ugmcr0f7653t935l5t6qltqj | 0x1d176d935dae7bde3f88de06f4fb548acb1a7e8b | 1 | 2 | 1796.45267 | -| terp1xauqkumad96gtam3gv7nvaer2z7y7nwnv8ut38 | 0x37780b737d697485f771433d36772350bc4f4dd3 | 1 | 2 | 1796.45267 | -| terp1cxl95ty49dcgg6qzcl46203mc2z2mg3w56v449 | 0xc1be5a2c952b70846802c7eba53e3bc284ada22e | 1 | 2 | 1796.45267 | -| terp1jm0uqksusr0pxney733h4fvgg2t58u53alck7y | 0x96dfc05a1c80de134f24f4637aa588429743f291 | 1 | 2 | 1796.45267 | -| terp1chp82py4nrakch8vzj7ft2z4svsu9fdrvfx49m | 0xc5c275049598fb6c5cec14bc95a8558321c2a5a3 | 1 | 2 | 1796.45267 | -| terp19r4xmylpxycesgl2djd5glrxhwn08umekedruh | 0x28ea6d93e131319823ea6c9b447c66bba6f3f379 | 1 | 2 | 1796.45267 | -| terp1xev9f4tkd25tlzs68npc8ulv3zyqfrpqyurmcd | 0x365854d5766aa8bf8a1a3cc383f3ec8888048c20 | 1 | 2 | 1796.45267 | -| terp1ck69cuu0saachu7dehwhvfyqjmyzxhtle4575g | 0xc5b45c738f877b8bf3cdcddd76248096c8235d7f | 1 | 2 | 1796.45267 | -| terp1xlh4kzjp9nvxfcmgc5lh0gx7ftryhyl3886l3k | 0x37ef5b0a412cd864e368c53f77a0de4ac64b93f1 | 1 | 2 | 1796.45267 | -| terp1qqvfk2qawfye2rktuu6k2dfkcjscyy63surl6s | 0x00189b281d7249950ecbe735653536c4a1821351 | 1 | 2 | 1796.45267 | -| terp1s2cl98zkpq3cmunp37vksfun8sxcgsreku32dn | 0x82b1f29c5608238df2618f996827933c0d844079 | 1 | 2 | 1796.45267 | -| terp1w0kcr3acaqke323ps0jwjhju7gk8cenq7pkgpw | 0x73ed81c7b8e82d98aa2183e4e95e5cf22c7c6660 | 1 | 2 | 1796.45267 | -| terp1kgcxvn39w3w7z5hwt6sqw78f63uvntt4f3fju3 | 0xb230664e25745de152ee5ea00778e9d478c9ad75 | 1 | 2 | 1796.45267 | -| terp1jplm93yhjdraldfha4860pevyq0v5qxgeq0srx | 0x907fb2c4979347dfb537ed4fa7872c201eca00c8 | 1 | 2 | 1796.45267 | -| terp1yj7wln3w90ey3865qgtumrh8hy8m3a4jqqj23x | 0x24bcefce2e2bf2489f540217cd8ee7b90fb8f6b2 | 1 | 2 | 1796.45267 | -| terp10v8wpjemfgm37dek3py3lahcqpalc3ndywu3l3 | 0x7b0ee0cb3b4a371f373688491ff6f8007bfc466d | 1 | 2 | 1796.45267 | -| terp1t46glyxk97vldshyh9txfc58et8mqczjy7d065 | 0x5d748f90d62f99f6c2e4b95664e287cacfb06052 | 1 | 2 | 1796.45267 | -| terp1dr782th3ma7m3rmfnx250alxwv6sdvdlse088h | 0x68fc752ef1df7db88f69999547f7e6733506b1bf | 1 | 2 | 1796.45267 | -| terp10gj4xhdunpw2ycgmptd9m7z3069gr9d0ftmxp4 | 0x7a25535dbc985ca2611b0ada5df8517e8a8195af | 1 | 2 | 1796.45267 | -| terp1pwedxgh9q6m4t5sgpq38wa6zxtaecgmzlz0z0j | 0x0bb2d322e506b755d208082277774232fb9c2362 | 1 | 2 | 1796.45267 | -| terp1emcxg2j42lr7wzef3rcv9xh4j2896x7u6slled | 0xcef0642a5557c7e70b2988f0c29af5928e5d1bdc | 1 | 2 | 1796.45267 | -| terp1l85x65sakp5jklqt2nyjddark8u4jkykpmp3wk | 0xf9e86d521db0692b7c0b54c926b7a3b1f9595896 | 1 | 2 | 1796.45267 | -| terp1xpgnakdv9ctx3kpv3ak0s62zl4g8s4h068kcw2 | 0x30513ed9ac2e1668d82c8f6cf86942fd507856ef | 1 | 2 | 1796.45267 | -| terp1qsg70g4zgctcge5wxzdmcc6q95sw6f4jf53grh | 0x0411e7a2a2461784668e309bbc63402d20ed26b2 | 1 | 2 | 1796.45267 | -| terp182pum2wuk5aufgrtpf0kk37kepekkst0k3lphw | 0x3a83cda9dcb53bc4a06b0a5f6b47d6c8736b416f | 1 | 2 | 1796.45267 | -| terp1dukwc4c23m7nn8nkyp7dgc53239hg9e45hnxxs | 0x6f2cec570a8efd399e76207cd46291544b741735 | 1 | 2 | 1796.45267 | -| terp1a65x4g335rw3xtfgmammqja9f6khd4qq5vwh6d | 0xeea86aa231a0dd132d28df77b04ba54ead76d400 | 1 | 2 | 1796.45267 | -| terp1s4kuzevzv0l9ruypmazp8dny06k437qmrfwkt7 | 0x856dc1658263fe51f081df4413b6647ead58f81b | 1 | 2 | 1796.45267 | -| terp1hv29jajxy62x2g4pf7pugjjvm0cvtdupywfk3r | 0xbb1459764626946522a14f83c44a4cdbf0c5b781 | 1 | 2 | 1796.45267 | -| terp16xewx3gw58pn07325su6at07wreu5x9x4jjx7v | 0xd1b2e3450ea1c337fa2aa439aeadfe70f3ca18a6 | 1 | 2 | 1796.45267 | -| terp1mr5xtff4mh22kymq0sqd0e5u9t2gf5k37st3xa | 0xd8e865a535ddd4ab13607c00d7e69c2ad484d2d1 | 1 | 2 | 1796.45267 | -| terp1amrheam3vateyx2tqj55rtpl2vntscfsmnevrj | 0xeec77cf771675792194b04a941ac3f5326b86130 | 1 | 2 | 1796.45267 | -| terp1vu8e5avq4raepy7e04s4jzpcme7ka3htln2lw3 | 0x670f9a7580a8fb9093d97d61590838de7d6ec6eb | 1 | 2 | 1796.45267 | -| terp1lr0chng9vugjp6dcfccs74e775nzdcwkw5yy00 | 0xf8df8bcd05671120e9b84e310f573ef52626e1d6 | 1 | 2 | 1796.45267 | -| terp1jk0ngsz27h60fpm6mq95qsq4wwuknev23a7vz4 | 0x959f34404af5f4f4877ad80b40401573b969e58a | 1 | 2 | 1796.45267 | -| terp1fn2s70panxj49uldrekjfckw7ld5aynfpqry27 | 0x4cd50f3c3d99a552f3ed1e6d24e2cef7db4e9269 | 1 | 2 | 1796.45267 | -| terp1q27z8ps8lcez6f6grjv3t5xlscgj8cw44q2m7a | 0x02bc238607fe322d27481c9915d0df861123e1d5 | 1 | 2 | 1796.45267 | -| terp1ezyxz9enngm0gc4jcuedrcdvmeklaayjsaaaft | 0xc8886117339a36f462b2c732d1e1acde6dfef492 | 1 | 2 | 1796.45267 | -| terp1xqaqx953z65j500dap9pua99h9ur3yd26escs3 | 0x303a03169116a92a3dede84a1e74a5b9783891aa | 1 | 2 | 1796.45267 | -| terp1mtl8herxygjywcj5scefp3fspule5s3gl2dk0u | 0xdafe7be4662224476254863290c5300f3f9a4228 | 1 | 2 | 1796.45267 | -| terp13hxlplqejltw9t9kuaapmaprpfkzenz5zyg3ln | 0x8dcdf0fc1997d6e2acb6e77a1df4230a6c2ccc54 | 1 | 2 | 1796.45267 | -| terp1fmu28z8vu2xaxklznfmvq9tza7trzaznc0zhk4 | 0x4ef8a388ece28dd35be29a76c01562ef96317453 | 1 | 2 | 1796.45267 | -| terp1x6japnj2d4mgvc9vw6lv9la7ef7prd0rzmdkse | 0x36a5d0ce4a6d768660ac76bec2ffbeca7c11b5e3 | 1 | 2 | 1796.45267 | -| terp1j7myp2wssgucak578kl3hxaea9rnappurnz5qx | 0x97b640a9d082398eda9e3dbf1b9bb9e9473e843c | 1 | 2 | 1796.45267 | -| terp1s4y207hylzuw2s3y7ze46jgtm8awmrp3cem576 | 0x8548a7fae4f8b8e54224f0b35d490bd9faed8c31 | 1 | 2 | 1796.45267 | -| terp1kfptk3xwexpt78t9grqgvr0wlx28jg22djhkcf | 0xb242bb44cec982bf1d6540c0860deef99479214a | 1 | 2 | 1796.45267 | -| terp1pth536lrl7nknvkcd7c5p5y0q3cxhm073hwsm7 | 0x0aef48ebe3ffa769b2d86fb140d08f04706bedfe | 1 | 2 | 1796.45267 | -| terp15sdruams08pkqqulhfc9syhc3f5025mf5nzvue | 0xa41a3e777079c360039fba705812f88a68f55369 | 1 | 2 | 1796.45267 | -| terp1fytlmnttdjxau8vupy0sw6zcmngfskur5d00pl | 0x4917fdcd6b6c8dde1d9c091f076858dcd0985b83 | 1 | 2 | 1796.45267 | -| terp1vadjngjp8ymua6ks2mhl5m9tckrm7r2wxmx4aa | 0x675b29a2413937ceead056effa6cabc587bf0d4e | 1 | 2 | 1796.45267 | -| terp1x6wtydpx93nnsvy4xxsq09jc4x68sj8a5taneg | 0x369cb234262c6738309531a0079658a9b47848fd | 1 | 2 | 1796.45267 | -| terp1272an48t9ejzpaajtg0qt9j6rkc72c5xxpyw6n | 0x5795d9d4eb2e6420f7b25a1e05965a1db1e56286 | 1 | 2 | 1796.45267 | -| terp186e23jj6dx237s426gyfn2f9ka4jntexudyeep | 0x3eb2a8ca5a69951f42aad20899a925b76b29af26 | 1 | 2 | 1796.45267 | -| terp102p8lgq66jv9ef7l7623xxeg59sqhyfs3lsksw | 0x7a827fa01ad4985ca7dff695131b28a1600b9130 | 1 | 2 | 1796.45267 | -| terp1u2dunvke02jl4gheu0g5rgumpnxlu6pd03xamx | 0xe29bc9b2d97aa5faa2f9e3d141a39b0ccdfe682d | 1 | 2 | 1796.45267 | -| terp1l4tvsc0g6r0k5us8rqe3x0vdlk9f97eknfv6fq | 0xfd56c861e8d0df6a72071833133d8dfd8a92fb36 | 1 | 2 | 1796.45267 | -| terp1hlwzfvjapmr33lzsgm38eyyhfl8zcg444czw28 | 0xbfdc24b25d0ec718fc5046e27c90974fce2c22b5 | 1 | 2 | 1796.45267 | -| terp1ntmfjrknjp333gg8wc9kt4g6tpalex94yzy876 | 0x9af6990ed3906318a107760b65d51a587bfc98b5 | 1 | 2 | 1796.45267 | -| terp15dgu93luk7yva5yzwtjs8wl2u7z4q0pzrw8ru5 | 0xa351c2c7fcb788ced08272e503bbeae785503c22 | 1 | 2 | 1796.45267 | -| terp1z5m3e58sjsgpdpv853d6gvsq25gc3zggdj0gkl | 0x15371cd0f09410168587a45ba432005511888908 | 1 | 2 | 1796.45267 | -| terp1ntwm3zgehndrdzj0zal4at29j3744mtwvqnxkk | 0x9addb88919bcda368a4f177f5ead45947d5aed6e | 1 | 2 | 1796.45267 | -| terp14620hkxh9930ylmfsm9a56gw8yrcm8cu8r82tt | 0xae94fbd8d72962f27f6986cbda690e39078d9f1c | 1 | 2 | 1796.45267 | -| terp1j7zrqdvm4dkppesmkkzj8pshhe6qhd8qnwzk7y | 0x978430359bab6c10e61bb585238617be740bb4e0 | 1 | 2 | 1796.45267 | -| terp1kr0lqxm5zjhmznsa973vf9p6efwxdpk9eu26tk | 0xb0dff01b7414afb14e1d2fa2c4943aca5c6686c5 | 1 | 2 | 1796.45267 | -| terp1a2xxglrnwzv70t4px5ysas5k75tezshz3ly8cn | 0xea8c647c737099e7aea135090ec296f5179142e2 | 1 | 2 | 1796.45267 | -| terp1krl2ytan2ccupj7wng7xen4xrr0fmh7cppzu8n | 0xb0fea22fb35631c0cbce9a3c6ccea618de9ddfd8 | 1 | 2 | 1796.45267 | -| terp13u4zj5c03tsqqcpgkcsjd8t77fjxqnr4qsqwmj | 0x8f2a29530f8ae0006028b621269d7ef264604c75 | 1 | 2 | 1796.45267 | -| terp16kv5re6nmc9xmy0mxh6q778arh30r7ngufk4ce | 0xd59941e753de0a6d91fb35f40f78fd1de2f1fa68 | 1 | 2 | 1796.45267 | -| terp10xq9304aaetrgthps4u9gqzkflj8fe5jve66xq | 0x798058bebdee56342ee185785400564fe474e692 | 1 | 2 | 1796.45267 | -| terp105vkvldc6mfdf74up0pt9jw8mm0a8fdgzkl2p4 | 0x7d19667db8d6d2d4fabc0bc2b2c9c7dedfd3a5a8 | 1 | 2 | 1796.45267 | -| terp168fwegax8sp7ctndz7gacy4w7pzet0nw3yg692 | 0xd1d2eca3a63c03ec2e6d1791dc12aef04595be6e | 1 | 2 | 1796.45267 | -| terp19t7hzrv9wf3r0rh7n9nknypd6n8erqqhue6hql | 0x2afd710d857262378efe996769902dd4cf918017 | 1 | 2 | 1796.45267 | -| terp19vmpqrszwq4eqyduz7kp63gux9zd8829e427py | 0x2b36100e02702b9011bc17ac1d451c3144d39d45 | 1 | 2 | 1796.45267 | -| terp1e706zqv2uc8xdefdc36uetsxxl2py2qm9vdtsu | 0xcf9fa1018ae60e66e52dc475ccae0637d412281b | 1 | 2 | 1796.45267 | -| terp17tqnpwt4tn3hpxztytpn4t9r38j47qly57qdnw | 0xf2c130b9755ce370984b22c33aaca389e55f03e4 | 1 | 2 | 1796.45267 | -| terp1fa693pm5m625nv43n5eupnpjch208nykr5qv97 | 0x4f74588774de9549b2b19d33c0cc32c5d4f3cc96 | 1 | 2 | 1796.45267 | -| terp1gwdh68zrztrdafhp74pgjtsnszmryypqae44pf | 0x439b7d1c4312c6dea6e1f542892e1380b6321020 | 1 | 2 | 1796.45267 | -| terp14r0u5etfrzayv407uv5w35y2fx6pdw0taazcng | 0xa8dfca656918ba4655fee328e8d08a49b416b9eb | 1 | 2 | 1796.45267 | -| terp1uuex25mdrnnmq6encmu3zrhpy694h8n04mvywv | 0xe73265536d1ce7b06b33c6f9110ee1268b5b9e6f | 1 | 2 | 1796.45267 | -| terp194an3n8kplglte6t6y3ezg96c4cha33yaa96ed | 0x2d7b38ccf60fd1f5e74bd1239120bac5717ec624 | 1 | 2 | 1796.45267 | -| terp1nx7gwqcc3dmmv2fk0z56yj5j6uazdp9nmx4cna | 0x99bc8703188b77b6293678a9a24a92d73a2684b3 | 1 | 2 | 1796.45267 | -| terp1qj9xh9h2h9nqgjl8c5kk9c6yee55mapcu3af8d | 0x048a6b96eab966044be7c52d62e344ce694df438 | 1 | 2 | 1796.45267 | -| terp19nc49jqqewcru4ep8derq7qznsal40fac4ufk7 | 0x2cf152c800cbb03e57213b723078029c3bfabd3d | 1 | 2 | 1796.45267 | -| terp1h2lhgm0w26avq7xcu2pvd8hu3ufq054zrygcma | 0xbabf746dee56bac078d8e282c69efc8f1207d2a2 | 1 | 2 | 1796.45267 | -| terp1lp3s3zuy6j0vhy3qcc7kq7fqgktzn93q9k4n69 | 0xf863088b84d49ecb9220c63d6079204596299620 | 1 | 2 | 1796.45267 | -| terp1pw5krdrtc26gvk8mtc55vsk2kv6rksylydjwgc | 0x0ba961b46bc2b48658fb5e294642cab3343b409f | 1 | 2 | 1796.45267 | -| terp1cdkkc4u4ht4ga6lx6f4hg2npsv36cj8nmcxlae | 0xc36d6c5795baea8eebe6d26b742a618323ac48f3 | 1 | 2 | 1796.45267 | -| terp1snn2arh9hmtx8wvwagd390324cgd6ktljl5c86 | 0x84e6ae8ee5bed663b98eea1b12be2aae10dd597f | 1 | 2 | 1796.45267 | -| terp1zyu0kht8ahastxsxzvjwrxlxq9p34j8l52t2d9 | 0x1138fb5d67edfb059a061324e19be601431ac8ff | 1 | 2 | 1796.45267 | -| terp1rvqdwmt9ng7wv53uxmxl5zypjmfy0wgdgs5q2s | 0x1b00d76d659a3ce6523c36cdfa088196d247b90d | 1 | 2 | 1796.45267 | -| terp14f205lpp4fgc0peq3y3a35tn72ezvk8l7lkm49 | 0xaa54fa7c21aa518787208923d8d173f2b22658ff | 1 | 2 | 1796.45267 | -| terp1z6txh33r80fr4dh25fm54enc8w8ynwqgj7n3ps | 0x16966bc6233bd23ab6eaa2774ae6783b8e49b808 | 1 | 2 | 1796.45267 | -| terp1zujgntaqhp29c4e8p0t69stka3uvejzmn9pkf9 | 0x172489afa0b8545c57270bd7a2c176ec78ccc85b | 1 | 2 | 1796.45267 | -| terp18p7t5ajeuwycz5au7m9dsls0p9wrswgxdgqfwy | 0x387cba7659e3898153bcf6cad87e0f095c383906 | 1 | 2 | 1796.45267 | -| terp1397wveauh26x3l055mc93eemlqn2m7dvjhn3j8 | 0x897ce667bcbab468fdf4a6f058e73bf826adf9ac | 1 | 2 | 1796.45267 | -| terp1pyk07u7802w709xjtvqg3hksusc8x0dmy542c7 | 0x092cff73c77a9de794d25b0088ded0e430733dbb | 1 | 2 | 1796.45267 | -| terp1rerxu6sm9fvttzhrywt6sc2h2gk5kq8x94fx8f | 0x1e466e6a1b2a58b58ae32397a86157522d4b00e6 | 1 | 2 | 1796.45267 | -| terp1zmvrgu5r9gdwjkn2qcfya93kvmv5hd9azzdjd3 | 0x16d83472832a1ae95a6a06124e963666d94bb4bd | 1 | 2 | 1796.45267 | -| terp1s5s27cue6s9tmvfww79tu2yrnkswd87farfnu5 | 0x8520af6399d40abdb12e778abe28839da0e69fc9 | 1 | 2 | 1796.45267 | -| terp1js6g0ef6rfps00h4z3y9wd3zyfxp5u4xz48ch3 | 0x943487e53a1a4307bef51448573622224c1a72a6 | 1 | 2 | 1796.45267 | -| terp14wrumc4ppg98duy20mpfv4w096jzl73qkfxwmf | 0xab87cde2a10a0a76f08a7ec29655cf2ea42ffa20 | 1 | 2 | 1796.45267 | -| terp1t84h22h5y3lykffnus7u24zqdacx2flv32ek37 | 0x59eb752af4247e4b2533e43dc554406f706527ec | 1 | 2 | 1796.45267 | -| terp19kg5w5yg0f8yy3mznke4tw7fxq3hp32fmzae56 | 0x2d914750887a4e4247629db355bbc9302370c549 | 1 | 2 | 1796.45267 | -| terp14m5ngveskh6qc4m5vnvup57na7rklyya672aes | 0xaee9343330b5f40c577464d9c0d3d3ef876f909d | 1 | 2 | 1796.45267 | -| terp1rtrle7pa2e26ermrel869qa9l6drex9hefrsu4 | 0x1ac7fcf83d5655ac8f63cfcfa283a5fe9a3c98b7 | 1 | 2 | 1796.45267 | -| terp1kxmy4m0rj8mwxellx07c9nvnq97v92j3suj8p2 | 0xb1b64aede391f6e367ff33fd82cd93017cc2aa51 | 1 | 2 | 1796.45267 | -| terp1k6h2n0ns3cccvs9f3f6mupctyrtqml05l72tch | 0xb6aea9be708e318640a98a75be070b20d60dfdf4 | 1 | 2 | 1796.45267 | -| terp1m0gkr05c3w2a9vnrlr4vgvfxgfqzyuf80a8yt2 | 0xdbd161be988b95d2b263f8eac431264240227127 | 1 | 2 | 1796.45267 | -| terp183yh2tsmyzxg75rfxlvf8n76kmz2ta3tpj37m3 | 0x3c49752e1b208c8f506937d893cfdab6c4a5f62b | 1 | 2 | 1796.45267 | -| terp19zm20n459lnz4mk8td4r2a73hcxq8s09tu97qz | 0x28b6a7ceb42fe62aeec75b6a3577d1be0c03c1e5 | 1 | 2 | 1796.45267 | -| terp1c62emt88vpk5v2vw5hvu9chsnu4u87lty7a4e3 | 0xc6959dace7606d46298ea5d9c2e2f09f2bc3fbeb | 1 | 2 | 1796.45267 | -| terp1vp0cxtl87n7jzpkqrpeam6vkpurvakgfyyjdmc | 0x605f832fe7f4fd2106c01873dde9960f06ced909 | 1 | 2 | 1796.45267 | -| terp17wvnq9f6h2474f00v9pjf7544hctl8l0mntjzh | 0xf39930153abaabeaa5ef614324fa95adf0bf9fef | 1 | 2 | 1796.45267 | -| terp13rwenx3vjllhhh8nu7aw5wek3gq6rvmn2t5lq3 | 0x88dd999a2c97ff7bdcf3e7baea3b368a01a1b373 | 1 | 2 | 1796.45267 | -| terp1qsettwh26rfrpsw0gc8lp9e2fxx6c67t2nsvn0 | 0x0432b5baead0d230c1cf460ff0972a498dac6bcb | 1 | 2 | 1796.45267 | -| terp1najmqc230eeqjjrrmj9a3uq8l5rfnyece40jap | 0x9f65b061517e72094863dc8bd8f007fd06999338 | 1 | 2 | 1796.45267 | -| terp1vnn750ykztv6h20kuxhx8238v7xllekfl9l76l | 0x64e7ea3c9612d9aba9f6e1ae63aa27678dffe6c9 | 1 | 2 | 1796.45267 | -| terp1f66fealav56d8c4mycemxs8cpemn39axjcxgcc | 0x4eb49cf7fd6534d3e2bb2633b340f80e773897a6 | 1 | 2 | 1796.45267 | -| terp106ek4x4cjjjumux5gh8vadzyhgf0gvp74lx8jk | 0x7eb36a9ab894a5cdf0d445ceceb444ba12f4303e | 1 | 2 | 1796.45267 | -| terp12gs53tzr3fxksygvykwsfkk2tdp9hc8ffhd6sk | 0x522148ac438a4d68110c259d04daca5b425be0e9 | 1 | 2 | 1796.45267 | -| terp1pufxtdsvrmg6y8mgn67pu5kd8sj8y3jfsv3agn | 0x0f1265b60c1ed1a21f689ebc1e52cd3c24724649 | 1 | 2 | 1796.45267 | -| terp1380r3z62zqtd3jvsthxx78jfka32awl25r6wmp | 0x89de388b4a1016d8c9905dcc6f1e49b762aebbea | 1 | 2 | 1796.45267 | -| terp1s6vmpllljymd7hldq96m4a9k23mn0z3alra6pe | 0x8699b0ffff9136df5fed0175baf4b65477378a3d | 1 | 2 | 1796.45267 | -| terp16vnslc7gahvzj4fj7lngcej6h6ezushjw6e0e4 | 0xd3270fe3c8edd8295532f7e68c665abeb22e42f2 | 1 | 2 | 1796.45267 | -| terp1rj0h4x48wmv8tkywws9qgdk6vfcfeyq9nandwd | 0x1c9f7a9aa776d875d88e740a0436da62709c9005 | 1 | 2 | 1796.45267 | -| terp1rrvtvhuqg498gjg6zfjhx6jhf9ean3up9h3raq | 0x18d8b65f80454a74491a1265736a574973d9c781 | 1 | 2 | 1796.45267 | -| terp1h67fq84pczc4h654fgalmy5kcwmsl39d7wsh9l | 0xbebc901ea1c0b15bea954a3bfd9296c3b70fc4ad | 1 | 2 | 1796.45267 | -| terp1fw8xtjug4pqpf8w3w050qupvkp7cudqpan7et9 | 0x4b8e65cb88a840149dd173e8f0702cb07d8e3401 | 1 | 2 | 1796.45267 | -| terp18ys8zk5x4jzwlje0cd9gy6dqnhzjpvpy7zanv5 | 0x3920715a86ac84efcb2fc34a8269a09dc520b024 | 1 | 2 | 1796.45267 | -| terp106ztjtn2mtlepzfylk33rrv0zqgdnp407r9v98 | 0x7e84b92e6adaff908924fda3118d8f1010d986af | 1 | 2 | 1796.45267 | -| terp10ljffh522g4zx4fsdjedxp2yp95nnm9apvh4tm | 0x7fe494de8a522a2355306cb2d30544096939ecbd | 1 | 2 | 1796.45267 | -| terp1jqrtfnps4zn77qa4hkxg4mgf2chny9rdawqd75 | 0x9006b4cc30a8a7ef03b5bd8c8aed09562f32146d | 1 | 2 | 1796.45267 | -| terp137h6lwpdld2gl756xtzyx0c6kv92920ahf5ak9 | 0x8fafafb82dfb548ffa9a32c4433f1ab30aa2a9fd | 1 | 2 | 1796.45267 | -| terp1xpgl52qjedsg5e9qmckmnplulscz7d48en9au3 | 0x3051fa2812cb608a64a0de2db987fcfc302f36a7 | 1 | 2 | 1796.45267 | -| terp1tnkc3ern2zcepl2pfly7qv04062zhz36g9qmjc | 0x5ced88e47350b190fd414fc9e031f57e942b8a3a | 1 | 2 | 1796.45267 | -| terp1zwwv6p59cgqu4x9cfsfe4dl86q2r4epkneur8e | 0x139ccd0685c201ca98b84c139ab7e7d0143ae436 | 1 | 2 | 1796.45267 | -| terp19g3e5rws6cvfxzqrhf2q79nfcrs8v6rhkew4g9 | 0x2a239a0dd0d618930803ba540f1669c0e0766877 | 1 | 2 | 1796.45267 | -| terp1snraeuxha237gkz2nqvu9j6n56clplrmzd63gn | 0x84c7dcf0d7eaa3e4584a9819c2cb53a6b1f0fc7b | 1 | 2 | 1796.45267 | -| terp1h62j4n5l72cllumjx8v56u5s9u6uasmzy6nszm | 0xbe952ace9ff2b1fff37231d94d72902f35cec362 | 1 | 2 | 1796.45267 | -| terp1fmag68sne6598ycjvjpu0v9q6n6vsn3s8qe6e7 | 0x4efa8d1e13cea85393126483c7b0a0d4f4c84e30 | 1 | 2 | 1796.45267 | -| terp1jhul5uf8weyqmuyx80nn6r2j5jwwz8xnuas0sn | 0x95f9fa712776480df0863be73d0d52a49ce11cd3 | 1 | 2 | 1796.45267 | -| terp1mcvf4emqw69ucnh77j3hs0sc2uxssvgctqdluu | 0xde189ae760768bcc4efef4a3783e18570d083118 | 1 | 2 | 1796.45267 | -| terp18xjhzs5tped75qadkf89ckhx3zlp9q65f8v57s | 0x39a571428b0e5bea03adb24e5c5ae688be128354 | 1 | 2 | 1796.45267 | -| terp15uwyyrlvy8pl27jj8tm8259fm20j7se3wwxw03 | 0xa71c420fec21c3f57a523af67550a9da9f2f4331 | 1 | 2 | 1796.45267 | -| terp12jqsxtkvqphtmhpeu3utj4zt5p8d3s40nvwaac | 0x5481032ecc006ebddc39e478b9544ba04ed8c2af | 1 | 2 | 1796.45267 | -| terp1k78wvvzeehzuma7ds3yx6c9yf87qd8qwpz3t23 | 0xb78ee63059cdc5cdf7cd84486d60a449fc069c0e | 1 | 2 | 1796.45267 | -| terp17snqv6z3jl9hf7q9k8snen7k2g5693nj9mpn70 | 0xf42606685197cb74f805b1e13ccfd65229a2c672 | 1 | 2 | 1796.45267 | -| terp14nsur27xwahjmd7kwfu3erslgp8jatt6k9n5kt | 0xace1c1abc6776f2db7d672791c8e1f404f2ead7a | 1 | 2 | 1796.45267 | -| terp12pv277uz0cnp5myp7u0z5wyr4ydqq7ward8wkl | 0x5058af7b827e261a6c81f71e2a3883a91a0079dd | 1 | 2 | 1796.45267 | -| terp1r35ws2tz899zm58vpfvzjtp274y3j2t8vz9urz | 0x1c68e82962394a2dd0ec0a58292c2af549192967 | 1 | 2 | 1796.45267 | -| terp1m2u7vetj632acwmpcfakkh6fxdhveu0wqu485y | 0xdab9e66572d455dc3b61c27b6b5f49336eccf1ee | 1 | 2 | 1796.45267 | -| terp1vrz2t4qfcf8fdskn4uthj7suntpryf4uacu9yr | 0x60c4a5d409c24e96c2d3af17797a1c9ac23226bc | 1 | 2 | 1796.45267 | -| terp1g20042kfus76ur54wlkftsdk27k34hyryl6hdn | 0x429efaaac9e43dae0e9577ec95c1b657ad1adc83 | 1 | 2 | 1796.45267 | -| terp1ggheys45rqf5st5v0t9derlkk0pksmejdrjdx4 | 0x422f9242b41813482e8c7acadc8ff6b3c3686f32 | 1 | 2 | 1796.45267 | -| terp1u3a7pmcey8fmrzc8dphpax65wdtczlyyr5fmjs | 0xe47be0ef1921d3b18b07686e1e9b547357817c84 | 1 | 2 | 1796.45267 | -| terp15uj67p8sj03qkezumqwwmjazy3n97e4vh5zxen | 0xa725af04f093e20b645cd81cedcba224665f66ac | 1 | 2 | 1796.45267 | -| terp14akwdwhqlmgcchj7266k6c7d63tkgm0vtv8vz9 | 0xaf6ce6bae0fed18c5e5e56b56d63cdd457646dec | 1 | 2 | 1796.45267 | -| terp1y7yl9vlmuep8tjy5afjkgm5kknvfjnvmaal23j | 0x2789f2b3fbe64275c894ea65646e96b4d8994d9b | 1 | 2 | 1796.45267 | -| terp1c6jllqqe3d2tmysulz60ldad3x7ypaf8h5cccf | 0xc6a5ff80198b54bd921cf8b4ffb7ad89bc40f527 | 1 | 2 | 1796.45267 | -| terp14303cmx320fs8fzzl7fmvpfpw59n3yx5hl9q94 | 0xac5f1c6cd153d303a442ff93b60521750b3890d4 | 1 | 2 | 1796.45267 | -| terp1427yqv08kx3dqt52f7xtq7lu4dng2rssm8xek0 | 0xaabc4031e7b1a2d02e8a4f8cb07bfcab66850e10 | 1 | 2 | 1796.45267 | -| terp1gkvs2avl2cwmgplrkpgjekakxe9nu3jk8v6vxr | 0x459905759f561db407e3b0512cdbb6364b3e4656 | 1 | 2 | 1796.45267 | -| terp1ev2v3q7tgu0mxk6sk2vz7qhgyqxkvft6u2y6mv | 0xcb14c883cb471fb35b50b2982f02e8200d66257a | 1 | 2 | 1796.45267 | -| terp135d37ua9s306jnlejwlvn3560ae04gn9kxejyf | 0x8d1b1f73a5845fa94ff993bec9c69a7f72faa265 | 1 | 2 | 1796.45267 | -| terp1n93jadyhssl4tdalhrvgssax3zdrwuejwzr9nt | 0x99632eb497843f55b7bfb8d88843a6889a377332 | 1 | 2 | 1796.45267 | -| terp1r6stl0950p37rg27tj8p0u73ycny2vq5xrwu2u | 0x1ea0bfbcb47863e1a15e5c8e17f3d12626453014 | 1 | 2 | 1796.45267 | -| terp1tlnel6eyjqf8w0dpaa6gfs56f38uvfzuzr79z2 | 0x5fe79feb249012773da1ef7484c29a4c4fc6245c | 1 | 2 | 1796.45267 | -| terp1gcd6m4ecphgr9cs6f2krdf8snt7z4fvfl44n3a | 0x461badd7380dd032e21a4aac36a4f09afc2aa589 | 1 | 2 | 1796.45267 | -| terp1tda7kv9zqzw3kmfc3n33j4e926eyscd0nuwh3t | 0x5b7beb30a2009d1b6d388ce319572556b24861af | 1 | 2 | 1796.45267 | -| terp1r28xkdyuzq8jjudqczd7q22k07ckpw00qpj0ly | 0x1a8e6b349c100f2971a0c09be029567fb160b9ef | 1 | 2 | 1796.45267 | -| terp15289sm3yumtc6p0gygvgmhq33tp0kq6tgda5gu | 0xa28e586e24e6d78d05e822188ddc118ac2fb034b | 1 | 2 | 1796.45267 | -| terp1hlwzju4jfe2vawhf2wd7ftzcg784ymhjwf2svj | 0xbfdc2972b24e54cebae9539be4ac58478f526ef2 | 1 | 2 | 1796.45267 | -| terp16tnh5p6w3v83t34wraculm7j4h4hqxyuvl8aye | 0xd2e77a074e8b0f15c6ae1f71cfefd2adeb70189c | 1 | 2 | 1796.45267 | -| terp133kepceksqzxt2phtuanruufrgvty4m8kekj4u | 0x8c6d90e336800465a8375f3b31f3891a18b25767 | 1 | 2 | 1796.45267 | -| terp1ercczm5evgm02w4dw0g6aylap4andu3ue73n2j | 0xc8f1816e996236f53aad73d1ae93fd0d7b36f23c | 1 | 2 | 1796.45267 | -| terp1mca6rdq7d3sj509ryyacf0d0txxllkumttdj3t | 0xde3ba1b41e6c612a3ca3213b84bdaf598dffdb9b | 1 | 2 | 1796.45267 | -| terp1hyd0evxft5vzq0fgtpgpg44ekr5u06nt2g9255 | 0xb91afcb0c95d18203d2858501456b9b0e9c7ea6b | 1 | 2 | 1796.45267 | -| terp1wenhnfvwff7mjvx0y6xx06dtute6t4wmhlugjz | 0x766779a58e4a7db930cf268c67e9abe2f3a5d5db | 1 | 2 | 1796.45267 | -| terp1q433qey7094v9eun99wmw2aas0x2l06k7ty28l | 0x056310649e796ac2e793295db72bbd83ccafbf56 | 1 | 2 | 1796.45267 | -| terp1c0w44ezhezf99vkved8weut8h9a9qnae9fxlmq | 0xc3dd5ae457c89252b2cccb4eecf167b97a504fb9 | 1 | 2 | 1796.45267 | -| terp10udreugwy34sm2yun8svl0lh4vngrhr98sjpt6 | 0x7f1a3cf10e246b0da89c99e0cfbff7ab2681dc65 | 1 | 2 | 1796.45267 | -| terp1zpv3lnvj0zmuf8s4yvm6fhw4xhfxrn93grguf7 | 0x10591fcd9278b7c49e152337a4ddd535d261ccb1 | 1 | 2 | 1796.45267 | -| terp15g5wcjjw6y7edhgm74h7sw7jxhefay3dv5946y | 0xa228ec4a4ed13d96dd1bf56fe83bd235f29e922d | 1 | 2 | 1796.45267 | -| terp15ayxt5vw59qlxc4c98sse26rlc7rt6fspc8tyu | 0xa74865d18ea141f362b829e10cab43fe3c35e930 | 1 | 2 | 1796.45267 | -| terp1ra4dwk6fl6jyq7ce37h74pxn7myc62ynm38lyu | 0x1f6ad75b49fea4407b198fafea84d3f6c98d2893 | 1 | 2 | 1796.45267 | -| terp1f8n5uvtcwu6vx4p7nxl6e4zhewpgdv3eezh0me | 0x49e74e31787734c3543e99bfacd457cb8286b239 | 1 | 2 | 1796.45267 | -| terp1njyevnetqf9hsahv2545v7q2kc34ltex4nsahh | 0x9c89964f2b024b7876ec552b46780ab6235faf26 | 1 | 2 | 1796.45267 | -| terp1r6hvll39t5nkpydpsrkjxrplp06suhl8v0fjpq | 0x1eaecffe255d276091a180ed230c3f0bf50e5fe7 | 1 | 2 | 1796.45267 | -| terp1xehre6ytjtpew0e4ytkfr4hu6yda4rxurvnkd0 | 0x366e3ce88b92c3973f3522ec91d6fcd11bda8cdc | 1 | 2 | 1796.45267 | -| terp1pxwr3mstkjdtdjgcpy2j6dfwd55zpul5ee0cpt | 0x099c38ee0bb49ab6c91809152d352e6d2820f3f4 | 1 | 2 | 1796.45267 | -| terp1q7zcvp7075kk056cpvqncqy8ngxrt48d086zsm | 0x07858607cff52d67d3580b013c00879a0c35d4ed | 1 | 2 | 1796.45267 | -| terp138jq0nr4vx6warsap6drwsu8p9chvcdcd2mvfh | 0x89e407cc7561b4ee8e1d0e9a37438709717661b8 | 1 | 2 | 1796.45267 | -| terp129yv947wl3xf5726srvmlljf6wdesw90mgmmsv | 0x5148c2d7cefc4c9a795a80d9bffe49d39b9838af | 1 | 2 | 1796.45267 | -| terp1y2nj7fuf5rqmpsq2fsm7e75de3u4fc79nnx0w4 | 0x22a72f2789a0c1b0c00a4c37ecfa8dcc7954e3c5 | 1 | 2 | 1796.45267 | -| terp1q9sch6zce74ehvgm734pdgkrmxs0uqx84hpzuc | 0x01618be858cfab9bb11bf46a16a2c3d9a0fe00c7 | 1 | 2 | 1796.45267 | -| terp12t9am8nspjl35ugv9ezr9dhnz3ezrqnp458tc5 | 0x52cbdd9e700cbf1a710c2e4432b6f31472218261 | 1 | 2 | 1796.45267 | -| terp1ln4ephf54ddqcsy6rrerhu4lue6n3zuh4wtz8l | 0xfceb90dd34ab5a0c409a18f23bf2bfe675388b97 | 1 | 2 | 1796.45267 | -| terp169vc24lxk45ewqwfyu099t46mltd50065qruxq | 0xd1598557e6b5699701c9271e52aebadfd6da3dfa | 1 | 2 | 1796.45267 | -| terp1na9wpdsfv3gzwymmh92fr0f3mut2ca7h8s02sv | 0x9f4ae0b609645027137bb95491bd31df16ac77d7 | 1 | 2 | 1796.45267 | -| terp1yg55ktl2pevxdavnswe37vd3ddlusm0kw9e6rl | 0x22294b2fea0e5866f59383b31f31b16b7fc86df6 | 1 | 2 | 1796.45267 | -| terp1srdx6yxwgzqt45flnxygf0n64l2n0fl6ej7fg3 | 0x80da6d10ce4080bad13f998884be7aafd537a7fa | 1 | 2 | 1796.45267 | -| terp13lh3f2aqpxs69rj3m4mv8e0g2js68qasdg6nsq | 0x8fef14aba009a1a28e51dd76c3e5e854a1a383b0 | 1 | 2 | 1796.45267 | -| terp1nkhl6pw9d89tuxwn83ysqlfj4jm2eenrsu7eut | 0x9daffd05c569cabe19d33c49007d32acb6ace663 | 1 | 2 | 1796.45267 | -| terp14nufqwyl7u6dywh2ar4ghj7pedaelmsgzzy6vd | 0xacf890389ff734d23aeae8ea8bcbc1cb7b9fee08 | 1 | 2 | 1796.45267 | -| terp169y9ue70rr5jcsekcmxudvvfks9afwwsy83jat | 0xd1485e67cf18e92c4336c6cdc6b189b40bd4b9d0 | 1 | 2 | 1796.45267 | -| terp1nxz9qd0n9d372mffft69ukal96clkzkvamtd6v | 0x99845035f32b63e56d294af45e5bbf2eb1fb0acc | 1 | 2 | 1796.45267 | -| terp1dla6pac2s30atec5y4a5cjuxyhcs3mwx3fjukx | 0x6ffba0f70a845fd5e714257b4c4b8625f108edc6 | 1 | 2 | 1796.45267 | -| terp1rehwdng40ftnhwhgmeyv5dxcmyh3flyh0hq78s | 0x1e6ee6cd157a573bbae8de48ca34d8d92f14fc97 | 1 | 2 | 1796.45267 | -| terp1h074c6sajj067lqyyy34qlqfne75ha3ugzsc30 | 0xbbfd5c6a1d949faf7c042123507c099e7d4bf63c | 1 | 2 | 1796.45267 | -| terp1vzj234zdzjg40qa62vl42ayg7rcl4qk5jxmqqv | 0x60a4a8d44d14915783ba533f557488f0f1fa82d4 | 1 | 2 | 1796.45267 | -| terp1umrgwd0gmcsz3xd3p9hnqs9xv4p4lewvltazkq | 0xe6c68735e8de202899b1096f3040a665435fe5cc | 1 | 2 | 1796.45267 | -| terp1r6wfa9jaur89lpmm6r067mrqugss29f9kz5szx | 0x1e9c9e965de0ce5f877bd0dfaf6c60e221051525 | 1 | 2 | 1796.45267 | -| terp1acl4xrhkmt5w3phtcdgvgne5ks43n87s93ew2h | 0xee3f530ef6dae8e886ebc350c44f34b42b199fd0 | 1 | 2 | 1796.45267 | -| terp1736kcx62kmkafute2u9gqdscu2p9jgj0ymldsa | 0xf4756c1b4ab6edd4f179570a803618e28259224f | 1 | 2 | 1796.45267 | -| terp15yrqtjuqeqgsa7nqvt4dsrzskj6zxzcnej6drw | 0xa10605cb80c8110efa6062ead80c50b4b4230b13 | 1 | 2 | 1796.45267 | -| terp1sd4zmd9fr9duyytcx224lx8vnsk4uus3nfh9xc | 0x836a2db4a9195bc2117832955f98ec9c2d5e7211 | 1 | 2 | 1796.45267 | -| terp1kcs7hndyehqkhfv8mzfjgx3r7zqamlghs9hymc | 0xb621ebcda4cdc16ba587d893241a23f081ddfd17 | 1 | 2 | 1796.45267 | -| terp1qv6c0v24mdx6xeds8gay9fnnxswuach3n3a6hy | 0x033587b155db4da365b03a3a42a673341dcee2f1 | 1 | 2 | 1796.45267 | -| terp1gxvxwr43zd53nasey3w3j3g8zsr0wknq04tvfa | 0x4198670eb1136919f619245d1945071406f75a60 | 1 | 2 | 1796.45267 | -| terp1ekvydn9j3uf7t77j3s4ufuhcwvadnnqqnzxu7c | 0xcd9846ccb28f13e5fbd28c2bc4f2f8733ad9cc00 | 1 | 2 | 1796.45267 | -| terp1ncsls5ujyj2nayjzum3hz54h7k2jydmzhq7g86 | 0x9e21f8539224953e9242e6e37152b7f595223762 | 1 | 2 | 1796.45267 | -| terp1qf9f0prqddzgfufmdzgrww9fxrs2k3pw9u94t0 | 0x024a9784606b4484f13b68903738a930e0ab442e | 1 | 2 | 1796.45267 | -| terp1szgckr4vq0gfrsyayptqf5sr0zuzh9lwxde7lx | 0x80918b0eac03d091c09d205604d20378b82b97ee | 1 | 2 | 1796.45267 | -| terp1z60kutlugz7eh0acvqqq2la0zraprq7t8xpjka | 0x169f6e2ffc40bd9bbfb86000057faf10fa1183cb | 1 | 2 | 1796.45267 | -| terp17s0fmz9xtrhvrl5crxr6gwj37pewphu35k73xh | 0xf41e9d88a658eec1fe981987a43a51f072e0df91 | 1 | 2 | 1796.45267 | -| terp1xelu96tyg76353t8va64x9hz85ajwwgx60lvgk | 0x367fc2e96447b51a456767755316e23d3b273906 | 1 | 2 | 1796.45267 | -| terp1x8x9vxa9uwxjjmk72qcu95wuz0zmgpny3lylxe | 0x31cc561ba5e38d296ede5031c2d1dc13c5b40664 | 1 | 2 | 1796.45267 | -| terp1pp532858mppszz0e8ttfjv9krm560m863d4rxu | 0x0869151e87d8430109f93ad69930b61ee9a7ecfa | 1 | 2 | 1796.45267 | -| terp1enxkhjdwny7mcautz3h9h6q3vf55pwx44hgf9z | 0xcccd6bc9ae993dbc778b146e5be811626940b8d5 | 1 | 2 | 1796.45267 | -| terp1f7e2zz38ef3jd0qkkp8tg5p5att5htfg3kx8jh | 0x4fb2a10a27ca6326bc16b04eb45034ead74bad28 | 1 | 2 | 1796.45267 | -| terp1ytjlsa9kq2rq2gmca4ngfzxxxtew2usmhwyg6c | 0x22e5f874b60286052378ed668488c632f2e5721b | 1 | 2 | 1796.45267 | -| terp1evd9g8csr5qgx8qg6n6jp8s8myg8mmd50f04zc | 0xcb1a541f101d00831c08d4f5209e07d9107dedb4 | 1 | 2 | 1796.45267 | -| terp1enx2s4vxdjll6wxyh8s4z3qmlaq5zahsz8ue85 | 0xcccca855866cbffd38c4b9e151441bff414176f0 | 1 | 2 | 1796.45267 | -| terp1gc3pt234eamfq79s5y94yjz59l5x7dlvm0k7rk | 0x462215aa35cf769078b0a10b5248542fe86f37ec | 1 | 2 | 1796.45267 | -| terp1e0rguekehsxecdp699ppwa0x3ncq38d39aucqw | 0xcbc68e66d9bc0d9c343a29421775e68cf0089db1 | 1 | 2 | 1796.45267 | -| terp1kvqm7hzpt20hp6xxw20j8azjhrg38vxnhpvwgv | 0xb301bf5c415a9f70e8c6729f23f452b8d113b0d3 | 1 | 2 | 1796.45267 | -| terp17ckfkcpfn4admk8zmvug5snzs0fywe64a2wf4n | 0xf62c9b60299d7addd8e2db388a426283d2476755 | 1 | 2 | 1796.45267 | -| terp1hz8sqf35e4enlfg7an6fqk7dmq79k2klsxcp0e | 0xb88f002634cd733fa51eecf4905bcdd83c5b2adf | 1 | 2 | 1796.45267 | -| terp1nwzag294xfatqczgdr2xe7kjsq4kdyvd2wzfl2 | 0x9b85d428b5327ab0604868d46cfad2802b66918d | 1 | 2 | 1796.45267 | -| terp17a2w8u5hwwy2c9upymlncvwlru5lggy59usurv | 0xf754e3f2977388ac178126ff3c31df1f29f42094 | 1 | 2 | 1796.45267 | -| terp16ua0sqxgus4r8xu6479va5a3nmjufygye9ppw6 | 0xd73af800c8e42a339b9aaf8aced3b19ee5c49104 | 1 | 2 | 1796.45267 | -| terp10n9xedc8enh4s63jgl9p53nvq006truj2825rp | 0x7cca6cb707ccef586a3247ca1a466c03dfa58f92 | 1 | 2 | 1796.45267 | -| terp1s7mhllpjkcv9mhdaf9ya2ulz0m9zx74cy8twrc | 0x87b77ffc32b6185dddbd4949d573e27eca237ab8 | 1 | 2 | 1796.45267 | -| terp1dst4skgzt0dv479l66drc8rmxpp26mgyfekz37 | 0x6c175859025bdacaf8bfd69a3c1c7b3042ad6d04 | 1 | 2 | 1796.45267 | -| terp1pnq6zhry2gs44phj99xx80phye6hgwq6tml57n | 0x0cc1a15c6452215a86f2294c63bc37267574381a | 1 | 2 | 1796.45267 | -| terp1cjw8puxg0fspzrzkg4vrgj89tc8uuh4v8yyl4p | 0xc49c70f0c87a60110c5645583448e55e0fce5eac | 1 | 2 | 1796.45267 | -| terp1jaav4m5m6und9nd3um3fgwnrdht96ua3244fs5 | 0x977acaee9bd726d2cdb1e6e2943a636dd65d73b1 | 1 | 2 | 1796.45267 | -| terp15jw2cuumfz5veq238n3zmpzh3tkaashwlu9mcj | 0xa49cac739b48a8cc81513ce22d84578aeddec2ee | 1 | 2 | 1796.45267 | -| terp18rueqhytu6c7q2cysq3wxj909syu4885laze0c | 0x38f9905c8be6b1e02b048022e348af2c09ca9cf4 | 1 | 2 | 1796.45267 | -| terp1gfvqrvlzjg0jjfxx252c6zdtpntcuasc28d2m0 | 0x425801b3e2921f2924c655158d09ab0cd78e7618 | 1 | 2 | 1796.45267 | -| terp1grk9lv6jg9ucsqvv34f6vs8wpky83aq565chcc | 0x40ec5fb352417988018c8d53a640ee0d8878f414 | 1 | 2 | 1796.45267 | -| terp1rkv6jwuem0gnyxjqytmth2at6pavfpwe9jckg2 | 0x1d99a93b99dbd1321a4022f6bbababd07ac485d9 | 1 | 2 | 1796.45267 | -| terp1m7mmnywd35mww3lczj2a5satg22gn0uaw2ecdu | 0xdfb7b991cd8d36e747f81495da43ab429489bf9d | 1 | 2 | 1796.45267 | -| terp1c4809reyt9d49ev9jv60ljmqzsfc7wmgafpr0m | 0xc54ef28f24595b52e5859334ffcb6014138f3b68 | 1 | 2 | 1796.45267 | -| terp1wqclk375vnkqnr0a0yuyhs6he5jvche508a3z4 | 0x7031fb47d464ec098dfd79384bc357cd24cc5f34 | 1 | 2 | 1796.45267 | -| terp1yjv2fz7epsfdd25zccsf989u70g2yqzakap4cy | 0x2498a48bd90c12d6aa82c620929cbcf3d0a2005d | 1 | 2 | 1796.45267 | -| terp14rlw0nxpgwx22zle2edgsf4qsk3454ekclfehf | 0xa8fee7ccc1438ca50bf9565a8826a085a35a5736 | 1 | 2 | 1796.45267 | -| terp1f5z8m9600045hl8al92elsuc7ktdvakf4hjzxw | 0x4d047d974f7beb4bfcfdf9559fc398f596d676c9 | 1 | 2 | 1796.45267 | -| terp1mug0ml70cy2vvvyawwzrskx8gwslv9eh2qwt9l | 0xdf10fdffcfc114c6309d73843858c743a1f61737 | 1 | 2 | 1796.45267 | -| terp18tannnrs6pmnt03y4mwd24m5ah65qu8kqnktxx | 0x3afb39cc70d07735be24aedcd55774edf54070f6 | 1 | 2 | 1796.45267 | -| terp1vyhhfu3d4qtjs5j8ha2sku3yejrxgd38jm7qcg | 0x612f74f22da817285247bf550b7224cc86643627 | 1 | 2 | 1796.45267 | -| terp14m5kuaqc6kcel5sv3k257n7nag964vf26xypmv | 0xaee96e7418d5b19fd20c8d954f4fd3ea0baab12a | 1 | 2 | 1796.45267 | -| terp13gl60j2xk5sqjyqq9mskvnsnwg4qxx5gyft8lv | 0x8a3fa7c946b5200910002ee1664e13722a031a88 | 1 | 2 | 1796.45267 | -| terp15dqeve88cf29aseeyeauz0zmgmz2etpwgmaa0q | 0xa3419664e7c2545ec339267bc13c5b46c4acac2e | 1 | 2 | 1796.45267 | -| terp1jnguuftpgwk73njn7cgewdvcz4q8xsltsju4kr | 0x94d1ce256143ade8ce53f61197359815407343eb | 1 | 2 | 1796.45267 | -| terp19u8yv65k5hlfg3unp8msp0rfcgt857mauvv5x9 | 0x2f0e466a96a5fe94479309f700bc69c2167a7b7d | 1 | 2 | 1796.45267 | -| terp1enz3x8d4pd33urrvgjgtzywznrdup37f406t6v | 0xccc5131db50b631e0c6c4490b111c298dbc0c7c9 | 1 | 2 | 1796.45267 | -| terp1zg5xm8qj80r7w24yqt90my9394sh9ssf44l7pc | 0x12286d9c123bc7e72aa402cafd90b12d6172c209 | 1 | 2 | 1796.45267 | -| terp1c62296ajt3j2maslgrw4hptkz0cqx704g8z55t | 0xc694a2ebb25c64adf61f40dd5b857613f00379f5 | 1 | 2 | 1796.45267 | -| terp10zal6gumde80q34yxgqxhtjsggtqxwz4e7wsf4 | 0x78bbfd239b6e4ef046a432006bae504216033855 | 1 | 2 | 1796.45267 | -| terp1s4nw082c8y0a9qelf4e99ndhzvjsxdpnur5pne | 0x8566e79d58391fd2833f4d7252cdb71325033433 | 1 | 2 | 1796.45267 | -| terp1u296dz8608lze64sv59y28qpy8n3c9nzhw203y | 0xe28ba688fa79fe2ceab0650a451c0121e71c1662 | 1 | 2 | 1796.45267 | -| terp19hc3vvlu6qnwd4t69xkyq96shml0yetzn9svxu | 0x2df11633fcd026e6d57a29ac401750befef26562 | 1 | 2 | 1796.45267 | -| terp1uw0h6d4ayu3syes42xlw49xq2sqq5hrn04jm69 | 0xe39f7d36bd272302661551beea94c054000a5c73 | 1 | 2 | 1796.45267 | -| terp1sec3ecduj7mdwvh7xp4pxgclma27vjzkgyqqmg | 0x86711ce1bc97b6d732fe306a13231fdf55e64856 | 1 | 2 | 1796.45267 | -| terp1wqlz5alm83kpxtv4mq4mkrjccx9t69dj7up9e2 | 0x703e2a77fb3c6c132d95d82bbb0e58c18abd15b2 | 1 | 2 | 1796.45267 | -| terp1y8eru3xpwczdlx57ggvhuxgxtq9cuv0jgaz732 | 0x21f23e44c17604df9a9e42197e1906580b8e31f2 | 1 | 2 | 1796.45267 | -| terp12273e5vegjr7stkfax9j53wj07r9puqnvw6yek | 0x52bd1cd1994487e82ec9e98b2a45d27f8650f013 | 1 | 2 | 1796.45267 | -| terp1shxzkys9e57hmkcdpwfyt7kc2zeprtu42jm648 | 0x85cc2b1205cd3d7ddb0d0b9245fad850b211af95 | 1 | 2 | 1796.45267 | -| terp12fsc28mqyjnzmlyqfenj669ultjekryy2avxt0 | 0x5261851f6024a62dfc804e672d68bcfae59b0c84 | 1 | 2 | 1796.45267 | -| terp12yfkc0dcqyd8captkpl087c8pl96pkwvhchl0u | 0x51136c3db8011a7c742bb07ef3fb070fcba0d9cc | 1 | 2 | 1796.45267 | -| terp1kapmx7wv9433kpt99h9cvg7wvd7v85nmwug0f6 | 0xb743b379cc2d631b05652dcb8623ce637cc3d27b | 1 | 2 | 1796.45267 | -| terp1ze6t7pyc6unwqd8gj0kxm28685xm2q7kqf6sl3 | 0x1674bf0498d726e034e893ec6da8fa3d0db503d6 | 1 | 2 | 1796.45267 | -| terp1lr7wzkv6ezwr7zuxq9wu7cu4r5yye37za2hpmc | 0xf8fce1599ac89c3f0b86015dcf63951d084cc7c2 | 1 | 2 | 1796.45267 | -| terp1868qychye5mhxxq7yqanl2e8853jfy7rt4ly3m | 0x3e8e0262e4cd3773181e203b3fab273d232493c3 | 1 | 2 | 1796.45267 | -| terp10aackaamtm2f9u8z8htnzl940ppzynqakx6y6e | 0x7f7b8b77bb5ed492f0e23dd7317cb57842224c1d | 1 | 2 | 1796.45267 | -| terp1734ca8u7qxad448q6yuzwla78fsaqlqcfnkjy3 | 0xf46b8e9f9e01badad4e0d138277fbe3a61d07c18 | 1 | 2 | 1796.45267 | -| terp1cvvy58xa8mxplja3pqjmgarvdzucq2hdw2muyg | 0xc3184a1cdd3ecc1fcbb10825b4746c68b9802aed | 1 | 2 | 1796.45267 | -| terp1ywv323nejkwmjeru99evx2u59sxxprslqr9mf8 | 0x2399154679959db9647c2972c32b942c0c608e1f | 1 | 2 | 1796.45267 | -| terp1q9qm9fjwzkr99ru8us6yew242msjyhzkc7rhzf | 0x0141b2a64e1586528f87e4344cb95556e1225c56 | 1 | 2 | 1796.45267 | -| terp1fz8d2n9q4ekkg6pjscnch6v7nsafcgp7wlwzej | 0x488ed54ca0ae6d64683286278be99e9c3a9c203e | 1 | 2 | 1796.45267 | -| terp15vd8w2fu4pkd7rjzme8g6xx2spaup6gv8k7yyc | 0xa31a77293ca86cdf0e42de4e8d18ca807bc0e90c | 1 | 2 | 1796.45267 | -| terp12kcqw7d4zx936jwtqr8vn2adsse9dcmrletwxj | 0x55b00779b5118b1d49cb00cec9abad843256e363 | 1 | 2 | 1796.45267 | -| terp1klnfr62nx0ueylqav3jszf72fekmtqqdhp2m07 | 0xb7e691e95333f9927c1d64650127ca4e6db5800d | 1 | 2 | 1796.45267 | -| terp1e5ste45t3pzfmc48xfy58fkm4czvp46s7ve8zd | 0xcd20bcd68b88449de2a7324943a6dbae04c0d750 | 1 | 2 | 1796.45267 | -| terp1vx4pgvqn3qj2h5xp7zrc50dzhgvqw85vkt3hrg | 0x61aa1430138824abd0c1f0878a3da2ba18071e8c | 1 | 2 | 1796.45267 | -| terp1m4hdhymlu7ww5v827usc5h7nq7j7mjp3l4nj5t | 0xdd6edb937fe79cea30eaf7218a5fd307a5edc831 | 1 | 2 | 1796.45267 | -| terp1yss2jdw8pqmux7ckgfshvgx59prl9w7camkw69 | 0x2420a935c70837c37b1642617620d42847f2bbd8 | 1 | 2 | 1796.45267 | -| terp1ses64mfcw3uap7l3h0th3gqj8kcjlew0wrd5ts | 0x8661aaed387479d0fbf1bbd778a0123db12fe5cf | 1 | 2 | 1796.45267 | -| terp12s6kp94xldacsarmxhp4lq9gf772uclxt8cpwt | 0x54356096a6fb7b88747b35c35f80a84fbcae63e6 | 1 | 2 | 1796.45267 | -| terp1582ljqztx7a4czc3ada85a96lslgfj3avgtfn2 | 0xa1d5f9004b37bb5c0b11eb7a7a74bafc3e84ca3d | 1 | 2 | 1796.45267 | -| terp17kkffy9mqp7enm0nq3yctc4fj05r8pzt7qwdpw | 0xf5ac9490bb007d99edf3044985e2a993e833844b | 1 | 2 | 1796.45267 | -| terp13j87vu4gffn4ezjmfs9s9wv9xsd0n6pmwggrvg | 0x8c8fe672a84a675c8a5b4c0b02b985341af9e83b | 1 | 2 | 1796.45267 | -| terp1d9guxwkp2scjqhsru889jtlj06t3ewhc8clwht | 0x6951c33ac15431205e03e1ce592ff27e971cbaf8 | 1 | 2 | 1796.45267 | -| terp1hutwdqye2wew9m2hyfmnkn75uee2sp2x4r87tk | 0xbf16e6809953b2e2ed5722773b4fd4e672a80546 | 1 | 2 | 1796.45267 | -| terp1d5swvfj28z7dqpr4xezyv4nu7hwh89hny740ha | 0x6d20e6264a38bcd00475364446567cf5dd7396f3 | 1 | 2 | 1796.45267 | -| terp1qnp4htw3tyu24zh745pl32kg9rjd9mewuv2s4k | 0x04c35badd15938aa8afead03f8aac828e4d2ef2e | 1 | 2 | 1796.45267 | -| terp1sr7ak3p5dymtx0npg7tade2ewps4ry79tvtxc9 | 0x80fddb44346936b33e614797d6e55970615193c5 | 1 | 2 | 1796.45267 | -| terp1udckkzvxqqzcmj9wmwhlwtqswdjzr5efclw4mm | 0xe3716b098600058dc8aedbaff72c10736421d329 | 1 | 2 | 1796.45267 | -| terp103mykf47r0ldc9ef4vf0mp5ptwqf8mmfdrazu7 | 0x7c764b26be1bfedc1729ab12fd86815b8093ef69 | 1 | 2 | 1796.45267 | -| terp123nfefvt7wjeet4g4egntk6frern3aj6dm253x | 0x54669ca58bf3a59caea8ae5135db491e4738f65a | 1 | 2 | 1796.45267 | -| terp1k5sa2d5uap5q5m8cxvg72ze58awhfrenthg8yu | 0xb521d5369ce8680a6cf83311e50b343f5d748f33 | 1 | 2 | 1796.45267 | -| terp1397uh25yd0zzphjuljnsxx7nxca32dp0dst2u3 | 0x897dcbaa846bc420de5cfca7031bd3363b15342f | 1 | 2 | 1796.45267 | -| terp1jev29p3zu422apty6cppc7kzcjxye9wlrw7ty4 | 0x9658a28622e554ae8564d6021c7ac2c48c4c95df | 1 | 2 | 1796.45267 | -| terp1xc3z8ukx2rq76tf8cu0xmy0ktvqpy39jaj08uj | 0x362223f2c650c1ed2d27c71e6d91f65b001244b2 | 1 | 2 | 1796.45267 | -| terp1nj4z8vlvmvnwuwz747ag58fzgg9s47shcsu8c8 | 0x9caa23b3ecdb26ee385eafba8a1d22420b0afa17 | 1 | 2 | 1796.45267 | -| terp179ny4d6ly3j680257hqaqvrd38k2d2m9vy9vwj | 0xf1664ab75f2465a3bd54f5c1d0306d89eca6ab65 | 1 | 2 | 1796.45267 | -| terp1lmluhtjy2x3xhlpvs8w04khekflt3ecrfa5feq | 0xfeffcbae4451a26bfc2c81dcfadaf9b27eb8e703 | 1 | 2 | 1796.45267 | -| terp1k47fvtm7z7e64je4m6qtm908kjefz5n434muls | 0xb57c962f7e17b3aacb35de80bd95e7b4b2915275 | 1 | 2 | 1796.45267 | -| terp13xqhnakkt84y2nc26dda3zne8z20v2ncjghr4n | 0x898179f6d659ea454f0ad35bd88a793894f62a78 | 1 | 2 | 1796.45267 | -| terp14lgpajmlsdx6tkwma59u85e0f4c2u0d8wvxg49 | 0xafd01ecb7f834da5d9dbed0bc3d32f4d70ae3da7 | 1 | 2 | 1796.45267 | -| terp12au5uptrm094dh42vzvq67t289j46j6ashde26 | 0x57794e0563dbcb56deaa60980d796a39655d4b5d | 1 | 2 | 1796.45267 | -| terp18ggzp9ztxlc0saszyhddzxpnx0vgwzqlljks28 | 0x3a1020944b37f0f8760225dad1183333d887081f | 1 | 2 | 1796.45267 | -| terp1gumtgwxhdk027gt9v84l3dn6d6cnvr0nd8gapt | 0x4736b438d76d9eaf216561ebf8b67a6eb1360df3 | 1 | 2 | 1796.45267 | -| terp1pkpwhs880x488g8t3xf997wcx9ncw2grxx82zq | 0x0d82ebc0e779aa73a0eb899252f9d83167872903 | 1 | 2 | 1796.45267 | -| terp17yk9k4shq682yzzlknvqrg7v3l6zgvn9dm7qzr | 0xf12c5b5617068ea2085fb4d801a3cc8ff4243265 | 1 | 2 | 1796.45267 | -| terp1fsd9thznzke06hkgma3y5lssztecs506wfa5w5 | 0x4c1a55dc5315b2fd5ec8df624a7e1012f38851fa | 1 | 2 | 1796.45267 | -| terp1glxkvz23adzwuhqf7te4pvvd6cvzlug8pk9fnd | 0x47cd660951eb44ee5c09f2f350b18dd6182ff107 | 1 | 2 | 1796.45267 | -| terp1tu3alk7z2zev82mnjzg0xwcq9qt832un6mr764 | 0x5f23dfdbc250b2c3ab739090f33b00281678ab93 | 1 | 2 | 1796.45267 | -| terp1t97egfyv2xqjxt5racz5ka8sz4yqjrendk8uhz | 0x597d94248c5181232e83ee054b74f01548090f33 | 1 | 2 | 1796.45267 | -| terp1kar05w57ryzd8xl4u5z22p8nqaxur3k428lqd5 | 0xb746fa3a9e1904d39bf5e504a504f3074dc1c6d5 | 1 | 2 | 1796.45267 | -| terp1r6qmh8t2wdk6ja02jv56lzup5f0mmsswnn0y2y | 0x1e81bb9d6a736da975ea9329af8b81a25fbdc20e | 1 | 2 | 1796.45267 | -| terp1cgud5735066lw9mgtztq39sh56wy89ekgmtvp3 | 0xc238da7a347eb5f717685896089617a69c439736 | 1 | 2 | 1796.45267 | -| terp1427cwtz95q48veud92kxy8gz3hguprdlwn8uey | 0xaabd872c45a02a76678d2aac621d028dd1c08dbf | 1 | 2 | 1796.45267 | -| terp178ezk4hfnxq57mg7u2vhxkwfgpneqqf02s0hv3 | 0xf1f22b56e999814f6d1ee2997359c9406790012f | 1 | 2 | 1796.45267 | -| terp14fdml88h3rrvd56uls3v5vnc7fu0dylrvh5uxf | 0xaa5bbf9cf788c6c6d35cfc22ca3278f278f693e3 | 1 | 2 | 1796.45267 | -| terp10hcyqx72em6emu3maxxle2ttq9pzl3rfpdrnyv | 0x7df0401bcacef59df23be98dfca96b01422fc469 | 1 | 2 | 1796.45267 | -| terp10xtgzjnx7dn8nwmylg46522wn027zn7epkqdcu | 0x7996814a66f36679bb64fa2baa294e9bd5e14fd9 | 1 | 2 | 1796.45267 | -| terp1krzv7hery2zr3tq5w4susadp0yuh4nzw3789t2 | 0xb0c4cf5f23228438ac147561c875a179397acc4e | 1 | 2 | 1796.45267 | -| terp1y8zegzt95ec3m6rtuusrjesz8f5ygxkfxgffmv | 0x21c5940965a6711de86be7203966023a68441ac9 | 1 | 2 | 1796.45267 | -| terp12hk3qrw5vxvky86gfujlay9hk78scvkgaqcpe9 | 0x55ed100dd46199621f484f25fe90b7b78f0c32c8 | 1 | 2 | 1796.45267 | -| terp14hd0nxvskejas4flppjnjeh63x2ucysfff2uh8 | 0xaddaf99990b665d8553f08653966fa8995cc1209 | 1 | 2 | 1796.45267 | -| terp1zmscyywmn3l8tu8t7z9283kygjm0y3p6a8ty3j | 0x16e18211db9c7e75f0ebf08aa3c6c444b6f2443a | 1 | 2 | 1796.45267 | -| terp1hz368kgwtxu9txcsude73056l8k5ma42ys897c | 0xb8a3a3d90e59b8559b10e373e8be9af9ed4df6aa | 1 | 2 | 1796.45267 | -| terp1f7mj2w02a5v5j984xu4238ce8pez4g78n6ljk6 | 0x4fb72539eaed194914f5372aa89f1938722aa3c7 | 1 | 2 | 1796.45267 | -| terp1m58s3kk4ev4fyrm0nfet9k05g6va7ws2g4zmdv | 0xdd0f08dad5cb2a920f6f9a72b2d9f44699df3a0a | 1 | 2 | 1796.45267 | -| terp1jnm2d9eh6jls04wq3eeyc5zd6n4zcn2rw5uqsk | 0x94f6a69737d4bf07d5c08e724c504dd4ea2c4d43 | 1 | 2 | 1796.45267 | -| terp1v7qtvxg95a60n2lccxanhs3wwzavveqsgg483x | 0x6780b61905a774f9abf8c1bb3bc22e70bac66410 | 1 | 2 | 1796.45267 | -| terp1hlungmqp2jju3pqnuv0vdnru87dxxej87d9lyg | 0xbff9346c0154a5c88413e31ec6cc7c3f9a636647 | 1 | 2 | 1796.45267 | -| terp1wtkxdqd9zemkr03s4jfny532dk3sqjcmhg4fgf | 0x72ec6681a5167761be30ac9332522a6da3004b1b | 1 | 2 | 1796.45267 | -| terp1fgugze5gvs87u2jylawcn7mnampkdnyevjuxa8 | 0x4a38816688640fee2a44ff5d89fb73eec366cc99 | 1 | 2 | 1796.45267 | -| terp1tv23tgspxdu3vhqjwg65ueeqff6uu5nny38eu6 | 0x5b1515a2013379165c1272354e67204a75ce5273 | 1 | 2 | 1796.45267 | -| terp1rshlnachnyujuky00y0zl586y2vn3w9z2ytgu3 | 0x1c2ff9f71799392e588f791e2fd0fa229938b8a2 | 1 | 2 | 1796.45267 | -| terp1f9an2gnlwcyg4lwmf6ktnhn20c38p0a6dgsveg | 0x497b35227f76088afddb4eacb9de6a7e2270bfba | 1 | 2 | 1796.45267 | -| terp179vxv2duvm7sfay7lqrntcllvyau7x60mksmsl | 0xf1586629bc66fd04f49ef80735e3ff613bcf1b4f | 1 | 2 | 1796.45267 | -| terp1wpycwypep9lxrvdwsfl802a3exstzsrpm6cy5c | 0x7049871039097e61b1ae827e77abb1c9a0b14061 | 1 | 2 | 1796.45267 | -| terp1t42dhtzjfmkelerqdajlcrcxnecyxgax6tc0tu | 0x5d54dbac524eed9fe4606f65fc0f069e704323a6 | 1 | 2 | 1796.45267 | -| terp1m2njkkadn8z0xjv06xvs7l96k7w5vsy8qjgvc2 | 0xdaa72b5bad99c4f3498fd1990f7cbab79d464087 | 1 | 2 | 1796.45267 | -| terp1nux0v98jwehrffjmjw8p7ca8kpykgc45ql07uc | 0x9f0cf614f2766e34a65b938e1f63a7b0496462b4 | 1 | 2 | 1796.45267 | -| terp199g9lz73flsdm02433tcvkf4vc9vjfyar67weu | 0x29505f8bd14fe0ddbd558c57865935660ac9249d | 1 | 2 | 1796.45267 | -| terp1c7s8wwfywa76kxphg07cuwu9n62lp3d5pr9fxc | 0xc7a0773924777dab183743fd8e3b859e95f0c5b4 | 1 | 2 | 1796.45267 | -| terp1myr0acz3fmdmnfcqsd58zyq7z7gpd2dzwqluvr | 0xd906fee0514edbb9a700836871101e179016a9a2 | 1 | 2 | 1796.45267 | -| terp1p9ye2tdzc7pwlj0uqdtn35ya8ey5xz4rj92nfw | 0x0949952da2c782efc9fc035738d09d3e49430aa3 | 1 | 2 | 1796.45267 | -| terp1e4ufn363m0t959rv2r57gupnhtysergqexu2x9 | 0xcd7899c751dbd65a146c50e9e47033bac90c8d00 | 1 | 2 | 1796.45267 | -| terp1rwpq0hcvw39ss0c8e48kgdz80astvpgsat2kzf | 0x1b8207df0c744b083f07cd4f6434477f60b60510 | 1 | 2 | 1796.45267 | -| terp15pf33j7k978mqg7s27j453py2cc3qgszvq2rjz | 0xa05318cbd62f8fb023d057a55a44245631102202 | 1 | 2 | 1796.45267 | -| terp17n63qqxv65evw9ndde8pt0u0p5qgp00uansz65 | 0xf4f51000ccd532c7166d6e4e15bf8f0d0080bdfc | 1 | 2 | 1796.45267 | -| terp1j8usc5uxs6ynw5n79z7s40zz6m0scyd4v3jczf | 0x91f90c5386868937527e28bd0abc42d6df0c11b5 | 1 | 2 | 1796.45267 | -| terp1zcneqty25etj39xwv7xswql260dlwn27yyjev9 | 0x1627902c8aa6572894ce678d0703ead3dbf74d5e | 1 | 2 | 1796.45267 | -| terp1sh7zhjv080w8l6kx5zzsgdaypml5gpje9acn2l | 0x85fc2bc98f3bdc7feac6a0850437a40eff440659 | 1 | 2 | 1796.45267 | -| terp1p047h9ahvf86f7yhzq9fskqqua77vfr4deftv0 | 0x0bebeb97b7624fa4f897100a985800e77de62475 | 1 | 2 | 1796.45267 | -| terp1scwpuy3ap7pwyww5zngqy3x3umf4hgk7ndf4vl | 0x861c1e123d0f82e239d414d00244d1e6d35ba2de | 1 | 2 | 1796.45267 | -| terp1v5n5wvz2mac6jk7vmsfmymxdacgvdxraveypdw | 0x652747304adf71a95bccdc13b26ccdee10c6987d | 1 | 2 | 1796.45267 | -| terp1pvuuw4jaww2m34xkj20yzmch4sdc89uthenvs6 | 0x0b39c7565d7395b8d4d6929e416f17ac1b83978b | 1 | 2 | 1796.45267 | -| terp1lga586k0ss5rqcak85vs67aapu8cp29jxyd3dr | 0xfa3b43eacf84283063b63d190d7bbd0f0f80a8b2 | 1 | 2 | 1796.45267 | -| terp1wuqkga9nllervywtsfl0htdw5383qcmugfd2k7 | 0x77016474b3fff23611cb827efbadaea44f10637c | 1 | 2 | 1796.45267 | -| terp194pevyqxa4rp8r7xg2xm9dpyw0s5pj0pvuz37e | 0x2d43961006ed46138fc6428db2b42473e140c9e1 | 1 | 2 | 1796.45267 | -| terp1cyf2h9lz4tanylpwrv0mcp87pfg34gl3fm26ar | 0xc112ab97e2aafb327c2e1b1fbc04fe0a511aa3f1 | 1 | 2 | 1796.45267 | -| terp1g3t78ld0csfrvh9wuhksehh8la7tmezllgre64 | 0x4457e3fdafc412365caee5ed0cdee7ff7cbde45f | 1 | 2 | 1796.45267 | -| terp1wy3lzl290j7kde5xgxufj0l8z9028ls6j6aj8h | 0x7123f17d457cbd66e68641b8993fe7115ea3fe1a | 1 | 2 | 1796.45267 | -| terp1wsknwxngdgsw6ytrgmnnzkhwwdg4atw2kxd2cy | 0x742d371a686a20ed116346e7315aee73515eadca | 1 | 2 | 1796.45267 | -| terp1uut4sesfqnt5vxxq7uxkvp4uyuqfdjyex0zxl0 | 0xe71758660904d74618c0f70d6606bc270096c899 | 1 | 2 | 1796.45267 | -| terp13qs7pfx36hwdp44k7u679nkw0nxrvk4jvs0ra2 | 0x8821e0a4d1d5dcd0d6b6f735e2cece7ccc365ab2 | 1 | 2 | 1796.45267 | -| terp10ednn839gej4jqnx434fu2s7xvm9wmxqqx8587 | 0x7e5b399e254665590266ac6a9e2a1e3336576cc0 | 1 | 2 | 1796.45267 | -| terp10t0pnhhukyj97gxj3aqut7ur6znmvk8xlqnpwk | 0x7ade19defcb1245f20d28f41c5fb83d0a7b658e6 | 1 | 2 | 1796.45267 | -| terp1fa4cv94dc33hqhkaj8u6ceuck0wl4te6rpvkrt | 0x4f6b8616adc463705edd91f9ac6798b3ddfaaf3a | 1 | 2 | 1796.45267 | -| terp1g5zwa5d9lrgqdx79403pdmk3yap9w3rdxa3s35 | 0x4504eed1a5f8d0069bc5abe216eed1274257446d | 1 | 2 | 1796.45267 | -| terp1a70fd4sxsa7dlh6caswvzt7d0qcxgp3lncl0eg | 0xef9e96d606877cdfdf58ec1cc12fcd783064063f | 1 | 2 | 1796.45267 | -| terp1tq9574mgzj82yg8gvhewr77snp8se69c59gjx5 | 0x580b4f5768148ea220e865f2e1fbd0984f0ce8b8 | 1 | 2 | 1796.45267 | -| terp1x2qzat43xmjtxj4scqces8dvw7ucs4h8av3gyl | 0x32802eaeb136e4b34ab0c031981dac77b98856e7 | 1 | 2 | 1796.45267 | -| terp1xwl8tjzl62nllpxj33tpx563ky3d7j5dj2ydn2 | 0x33be75c85fd2a7ff84d28c56135351b122df4a8d | 1 | 2 | 1796.45267 | -| terp1hvywa9t4ctmg5negk33rxqjlsys5dmhn7sl233 | 0xbb08ee9575c2f68a4f28b46233025f812146eef3 | 1 | 2 | 1796.45267 | -| terp1z2yqfcdj5npqguhxhcrperhd8kvx4jm6645dqe | 0x128804e1b2a4c20472e6be061c8eed3d986acb7a | 1 | 2 | 1796.45267 | -| terp14wpejm848dhtw730kflmzqdj0pnse4zqqprfhz | 0xab83996cf53b6eb77a2fb27fb101b278670cd440 | 1 | 2 | 1796.45267 | -| terp152vm8dc92qj9jl5pjfmeks5wqffxe5dvy29en8 | 0xa299b3b7055024597e8192779b428e02526cd1ac | 1 | 2 | 1796.45267 | -| terp1ra45nqhuy2yhdx6sdsf4q6tsmqwvt9jgavx008 | 0x1f6b4982fc2289769b506c13506970d81cc59648 | 1 | 2 | 1796.45267 | -| terp1ewarc723sfu3jyl67q8e5uezvqk8w4pp6cpsgx | 0xcbba3c795182791913faf00f9a7322602c775421 | 1 | 2 | 1796.45267 | -| terp1hqrgkj88rreww8m4lcwle5dlurjprudjktqkk3 | 0xb8068b48e718f2e71f75fe1dfcd1bfe0e411f1b2 | 1 | 2 | 1796.45267 | -| terp1436ums6zsdqxkpgv4h6w5kgz4ycskyuwel02xs | 0xac75cdc34283406b050cadf4ea5902a9310b138e | 1 | 2 | 1796.45267 | -| terp1w8r0jemcgrlm2s9kvl2vptvxpck0v8eu6dykhl | 0x71c6f9677840ffb540b667d4c0ad860e2cf61f3c | 1 | 2 | 1796.45267 | -| terp1gkea4uck2y6cgl8kwawmmt7ppjc0xsukn2l2zl | 0x45b3daf3165135847cf6775dbdafc10cb0f34396 | 1 | 2 | 1796.45267 | -| terp1nj7ncpc2jp84facwnw7s80azvpcm3j65c4zz05 | 0x9cbd3c070a904f54f70e9bbd03bfa26071b8cb54 | 1 | 2 | 1796.45267 | -| terp1f5qlxusx0st0y7fc6vmuj8x0m0ewqpkrs4c9rq | 0x4d01f372067c16f27938d337c91ccfdbf2e006c3 | 1 | 2 | 1796.45267 | -| terp1ry08r4clcnt5qv5tt5dz44gkc87jd3p3fs8682 | 0x191e71d71fc4d740328b5d1a2ad516c1fd26c431 | 1 | 2 | 1796.45267 | -| terp1esvvp57h0u77tt6h6he2kmhymcp59wr53jkx5z | 0xcc18c0d3d77f3de5af57d5f2ab6ee4de0342b874 | 1 | 2 | 1796.45267 | -| terp1yvskgnjv4886k3um9nyq0axs475qtjankm7ghu | 0x2321644e4ca9cfab479b2cc807f4d0afa805cbb3 | 1 | 2 | 1796.45267 | -| terp17vaj78fzs28esc4nwa2el0nkx6t7nk2m39cdrv | 0xf33b2f1d22828f9862b377559fbe763697e9d95b | 1 | 2 | 1796.45267 | -| terp1jywh2ue6p69vm8sf447dmsgfsun829wv82usff | 0x911d75733a0e8acd9e09ad7cddc10987267515cc | 1 | 2 | 1796.45267 | -| terp1ujetygmjtmu2k5lxe6zll23cqw2hf3g564auz6 | 0xe4b2b223725ef8ab53e6ce85ffaa38039574c514 | 1 | 2 | 1796.45267 | -| terp1kzgqn847f6h4z340rzhfsqtkmmy37muc3jgf2p | 0xb090099ebe4eaf5146af18ae980176dec91f6f98 | 1 | 2 | 1796.45267 | -| terp102q36u7a30qtcep3k4md7x99rvgc2l46xvrm5c | 0x7a811d73dd8bc0bc6431b576df18a51b11857eba | 1 | 2 | 1796.45267 | -| terp1fzzurz3q9m8nsa7k55942rukejvggdrcscw97d | 0x4885c18a202ecf3877d6a50b550f96cc98843478 | 1 | 2 | 1796.45267 | -| terp1xh7rv2vmjl0ekzhvpc0zd2gmncxzsm2866lt6l | 0x35fc36299b97df9b0aec0e1e26a91b9e0c286d47 | 1 | 2 | 1796.45267 | -| terp1t9vz0egqvxxzez2esya3qee0eqfu5skpznqx6t | 0x595827e500618c2c8959813b10672fc813ca42c1 | 1 | 2 | 1796.45267 | -| terp1qpx8preenj4c6s7xn99szsvd2c9v4k9rusk6nr | 0x004c708f399cab8d43c6994b01418d560acad8a3 | 1 | 2 | 1796.45267 | -| terp17nueldqzegnf66yfhwr3mgljgdccmy4jwa2nqq | 0xf4f99fb402ca269d6889bb871da3f243718d92b2 | 1 | 2 | 1796.45267 | -| terp1fus2glw3dqhhxmtzw6rwx39tztcjml005h3h85 | 0x4f20a47dd1682f736d627686e344ab12f12dfdef | 1 | 2 | 1796.45267 | -| terp17yx64u8lefjfja7npla62eqylh6zyj86k8lgwf | 0xf10daaf0ffca649977d30ffba56404fdf42248fa | 1 | 2 | 1796.45267 | -| terp1q3p7kvchqcaqrgy8yh0ucu4pem0e5ksa55flms | 0x0443eb3317063a01a08725dfcc72a1cedf9a5a1d | 1 | 2 | 1796.45267 | -| terp15kz9jgekpptkrj8g45fl75dhmpnlt3qzcyxg9y | 0xa584592336085761c8e8ad13ff51b7d867f5c402 | 1 | 2 | 1796.45267 | -| terp1s0fdc2d932nnttsf08kaxjjq33mr5239w42nse | 0x83d2dc29a58aa735ae0979edd34a408c763a2a25 | 1 | 2 | 1796.45267 | -| terp1tsu5r5fgw5r3jq07jqwuhvn8sn78ggdfj0gnll | 0x5c3941d12875071901fe901dcbb26784fc7421a9 | 1 | 2 | 1796.45267 | -| terp108r43nkdaquw0ey7nlpfaq3wr68hjk6mc2xpmj | 0x79c758cecde838e7e49e9fc29e822e1e8f795b5b | 1 | 2 | 1796.45267 | -| terp1p9a9x38tgck4mhhhhrwfcqjsduchuf3fhlpjx9 | 0x097a5344eb462d5ddef7b8dc9c02506f317e2629 | 1 | 2 | 1796.45267 | -| terp1zfgkzpejv774zd4pryp3uqmx283j5ecu3768sj | 0x125161073267bd5136a119031e036651e32a671c | 1 | 2 | 1796.45267 | -| terp1gvpegetxry2sm7cuhyy2krssnvmjhj2w9e3slr | 0x430394656619150dfb1cb908ab0e109b372bc94e | 1 | 2 | 1796.45267 | -| terp1st89a8x2xud5vqxc3pkfrazj7m20kvxmk9qem5 | 0x82ce5e9cca371b4600d8886c91f452f6d4fb30db | 1 | 2 | 1796.45267 | -| terp1f6en79vv565ucut4zqg2f5hw74cyu0lv006nrc | 0x4eb33f158ca6a9cc71751010a4d2eef5704e3fec | 1 | 2 | 1796.45267 | -| terp1n2ukl8sytyl884lxsvlk4h4t08ptdlfsw3ztuc | 0x9ab96f9e04593e73d7e6833f6adeab79c2b6fd30 | 1 | 2 | 1796.45267 | -| terp1v0u76ge9camxc53fu4u7tsyplavxau3gjnaexj | 0x63f9ed2325c7766c5229e579e5c081ff586ef228 | 1 | 2 | 1796.45267 | -| terp1dkq6c8vxh7gstrfjz9s7mfa5dn90836gnsw34q | 0x6d81ac1d86bf91058d321161eda7b46ccaf3c748 | 1 | 2 | 1796.45267 | -| terp1c2zuvluxwn3hufpc4e25c7nn65yyw0n4j9vjtz | 0xc285c67f8674e37e2438ae554c7a73d508473e75 | 1 | 2 | 1796.45267 | -| terp17u80fqk0dhyjpl98fudel3ch7nf4dmd2wp3080 | 0xf70ef482cf6dc920fca74f1b9fc717f4d356edaa | 1 | 2 | 1796.45267 | -| terp1v9dk35gx9x5yf7r2w0d070wy85delnwrwp89c4 | 0x615b68d10629a844f86a73daff3dc43d1b9fcdc3 | 1 | 2 | 1796.45267 | -| terp194u9cefnrxdr3awpny4u2n7fhta5pzvpjzckpt | 0x2d785c6533199a38f5c1992bc54fc9bafb408981 | 1 | 2 | 1796.45267 | -| terp1lg6rj2fuqjp53tmwa8ffnmsyt4g9hdcdchn3nr | 0xfa3439293c048348af6ee9d299ee045d505bb70d | 1 | 2 | 1796.45267 | -| terp1yn8fm7w3gm3k5gznzw5j844lk4h38j9cur9ejd | 0x24ce9df9d146e36a205313a923d6bfb56f13c8b8 | 1 | 2 | 1796.45267 | -| terp1rwq3l2ekrrnj04wn34lxxwpx9j3h9g72y58u5v | 0x1b811fab3618e727d5d38d7e6338262ca372a3ca | 1 | 2 | 1796.45267 | -| terp1kv7z02t568he7wd96mjsc9ak4mm3epv5wnr78c | 0xb33c27a974d1ef9f39a5d6e50c17b6aef71c8594 | 1 | 2 | 1796.45267 | -| terp1m6rp4lnq9l0v8fv9fgsax34n60c9dmf86u0cwr | 0xde861afe602fdec3a5854a21d346b3d3f056ed27 | 1 | 2 | 1796.45267 | -| terp1r60w4p5gzvx8rerv967uqs92xspy5r68qa74k6 | 0x1e9eea8688130c71e46c2ebdc040aa34024a0f47 | 1 | 2 | 1796.45267 | -| terp1fp6cmyfp4d8n0mmuchpuje080fkgs00hwcsl98 | 0x48758d9121ab4f37ef7cc5c3c965e77a6c883df7 | 1 | 2 | 1796.45267 | -| terp18ragmsd6l3vnadvp890ghlqvk6f97ghavrfsxa | 0x38fa8dc1bafc593eb581395e8bfc0cb6925f22fd | 1 | 2 | 1796.45267 | -| terp1j8cnmtkqphshqeze43zkwj7lpafekmcww444yr | 0x91f13daec00de1706459ac45674bdf0f539b6f0e | 1 | 2 | 1796.45267 | -| terp1pnts96usx7u6n4cqtk08v65l4zhs6py4m6l6z9 | 0x0cd702eb9037b9a9d7005d9e766a9fa8af0d0495 | 1 | 2 | 1796.45267 | -| terp1nt4znelx7uhk3802q43l225ae375s409h44qra | 0x9aea29e7e6f72f689dea0563f52a9dcc7d4855e5 | 1 | 2 | 1796.45267 | -| terp1484v0kt4rjuq9648nl2vxtdzctrz4uctt26ju8 | 0xa9eac7d9751cb802eaa79fd4c32da2c2c62af30b | 1 | 2 | 1796.45267 | -| terp1t7yl6qq4hwwnl4sv20zzz2m9h7z3lxsy3g75ce | 0x5f89fd0015bb9d3fd60c53c4212b65bf851f9a04 | 1 | 2 | 1796.45267 | -| terp1lpdf7tt2228ln4d9s0vwuy4s4m4m49clczxs74 | 0xf85a9f2d6a528ff9d5a583d8ee12b0aeebba971f | 1 | 2 | 1796.45267 | -| terp17el04trpsjpr5mn62ej2mny0zpmn4vxts0kyw5 | 0xf67efaac6184823a6e7a5664adcc8f10773ab0cb | 1 | 2 | 1796.45267 | -| terp15e5vp0x7wh6durw7em9pp7sp2p49azssehlzkf | 0xa668c0bcde75f4de0ddececa10fa01506a5e8a10 | 1 | 2 | 1796.45267 | -| terp1mugtk7yt5f0pw0y7cr0c9epqf5x34y89adfq4d | 0xdf10bb788ba25e173c9ec0df82e4204d0d1a90e5 | 1 | 2 | 1796.45267 | -| terp1gmf907wx7dr6hc5l0jtfmew8x6ns8gkse8xtx5 | 0x46d257f9c6f347abe29f7c969de5c736a703a2d0 | 1 | 2 | 1796.45267 | -| terp1exzwutsysv0959zqgsarlnv22wwmqxeajz2t36 | 0xc984ee2e04831e5a1440443a3fcd8a539db01b3d | 1 | 2 | 1796.45267 | -| terp196yyxhuckuasycsaysgusx6ums0mjumym6xs3l | 0x2e88435f98b73b02621d2411c81b5cdc1fb97364 | 1 | 2 | 1796.45267 | -| terp1s7y5dv55f9zpeplklcwytxmzlstp84zudj8lkc | 0x878946b29449441c87f6fe1c459b62fc1613d45c | 1 | 2 | 1796.45267 | -| terp1j3zn6xhngh0yfm0esstak8cgqfw3h3rngc2axs | 0x94453d1af345de44edf98417db1f08025d1bc473 | 1 | 2 | 1796.45267 | -| terp1d88f5f8mfd622d05er3u9eu4tpsqdugapefz3h | 0x69ce9a24fb4b74a535f4c8e3c2e795586006f11d | 1 | 2 | 1796.45267 | -| terp10r26t5yhmaq8sh4p9wrqg4c46wy84aq3ngwp57 | 0x78d5a5d097df40785ea12b86045715d3887af411 | 1 | 2 | 1796.45267 | -| terp127s42x9s4dfsn4j9nhpj4zkdr6y7fuenkx6ynt | 0x57a15518b0ab5309d6459dc32a8acd1e89e4f333 | 1 | 2 | 1796.45267 | -| terp1s967weflruynzmkp3kh8q069tjkrdpl2znvphw | 0x8175e7653f1f09316ec18dae703f455cac3687ea | 1 | 2 | 1796.45267 | -| terp1ctypka7tvj2lna5c76ap252z6chyjdpjgs72q2 | 0xc2c81b77cb6495f9f698f6ba155142d62e493432 | 1 | 2 | 1796.45267 | -| terp19648m7gfy9cfdygcynutlausqn7ks3senwjp0k | 0x2eaa7df909217096911824f8bff79004fd684619 | 1 | 2 | 1796.45267 | -| terp1gh9j8pcxjykj5d46gv6gpqtla6syrrvlhz5rlr | 0x45cb238706912d2a36ba433480817feea0418d9f | 1 | 2 | 1796.45267 | -| terp1nxexfzlrxutgqdgs8hcqmpp305d09hk4fc206f | 0x99b2648be337168035103df00d84317d1af2ded5 | 1 | 2 | 1796.45267 | -| terp1q20qvxd4hgrzxd8t3n5kaeyz2lkl5lufrxrm24 | 0x029e0619b5ba062334eb8ce96ee48257edfa7f89 | 1 | 2 | 1796.45267 | -| terp12m48zwj2e9mg02y2gkv6yw98ztrcsln4276ks6 | 0x56ea713a4ac97687a88a4599a238a712c7887e75 | 1 | 2 | 1796.45267 | -| terp1vcc3h5ktwhpsl4rjqy7px5en87aucw6yn2m076 | 0x66311bd2cb75c30fd472013c1353333fbbcc3b44 | 1 | 2 | 1796.45267 | -| terp1van6w2tw5w773sq6zeuwpw3mav530nyqrdhyqe | 0x6767a7296ea3bde8c01a1678e0ba3beb2917cc80 | 1 | 2 | 1796.45267 | -| terp1d03xy2tz6dzyu0dm04zct5uw7c25hdgxa0xkk6 | 0x6be2622962d3444e3dbb7d4585d38ef6154bb506 | 1 | 2 | 1796.45267 | -| terp15rtj3p5ffjjg2xqvg3sp8n07mxf0sw43qwt3dy | 0xa0d72886894ca485180c446013cdfed992f83ab1 | 1 | 2 | 1796.45267 | -| terp13qn2e3krg9yerdyk3zc97ja0xwcjknf5sz60ue | 0x8826acc6c3414991b49688b05f4baf33b12b4d34 | 1 | 2 | 1796.45267 | -| terp10raxq66tt4m3zjmlsmrfkufmzq7z8rz4428hy6 | 0x78fa606b4b5d77114b7f86c69b713b103c238c55 | 1 | 2 | 1796.45267 | -| terp16ukd9u09p5ekutsyxf8eu97r4zef325754wxyj | 0xd72cd2f1e50d336e2e04324f9e17c3a8b298aa9e | 1 | 2 | 1796.45267 | -| terp1c34ynl223p2w07vjqefep83qjgjgncw7p78fvf | 0xc46a49fd4a8854e7f9920653909e20922489e1de | 1 | 2 | 1796.45267 | -| terp1mtzhfr3qchvat6y0j2m3qu3z85hudpqahxqu6s | 0xdac5748e20c5d9d5e88f92b71072223d2fc6841d | 1 | 2 | 1796.45267 | -| terp13dextyt3xhr7qdsp8e2wd34zxfzerazyzeumlr | 0x8b7265917135c7e036013e54e6c6a2324591f444 | 1 | 2 | 1796.45267 | -| terp1cqnawwe646lxy8c0qknlkd9rmjjhqtamhkjxak | 0xc027d73b3aaebe621f0f05a7fb34a3dca5702fbb | 1 | 2 | 1796.45267 | -| terp13d927vanzpjknpk9tc2fpme79wnhje7xtlkqwz | 0x8b4aaf33b310656986c55e1490ef3e2ba77967c6 | 1 | 2 | 1796.45267 | -| terp1u44rvfgj8jeql86f2j3qzkupzmnsaxjwektdat | 0xe56a3625123cb20f9f4954a2015b8116e70e9a4e | 1 | 2 | 1796.45267 | -| terp1fyt6tzjyqyljzp7j87xmg9xmw3dquu7ly3rnwe | 0x4917a58a44013f2107d23f8db414db745a0e73df | 1 | 2 | 1796.45267 | -| terp1dskjac5jnqnm7xm3s82tlws3k4yamn3j3ea7e7 | 0x6c2d2ee2929827bf1b7181d4bfba11b549ddce32 | 1 | 2 | 1796.45267 | -| terp13s5y3z6f8e98elehw969vqmfxldsz0ul82jmrq | 0x8c28488b493e4a7cff37717456036937db013f9f | 1 | 2 | 1796.45267 | -| terp1vuwakaugzcu3l4cxl5xz4848xq53g0ch4w0rts | 0x671ddb778816391fd706fd0c2a9ea73029143f17 | 1 | 2 | 1796.45267 | -| terp1ktujnmz3gckmz2hsmfhsll00h7msean8xj64jj | 0xb2f929ec51462db12af0da6f0ffdefbfb70cf667 | 1 | 2 | 1796.45267 | -| terp1zvx3lzt47anx3nz4mf4yfse20r29a2w3eng5hr | 0x130d1f8975f76668cc55da6a44c32a78d45ea9d1 | 1 | 2 | 1796.45267 | -| terp1txsntru8lkygd3g8evc8xa0nqayc283t8k7tl2 | 0x59a1358f87fd8886c507cb307375f30749851e2b | 1 | 2 | 1796.45267 | -| terp176uyes5u7qc3ewulht6nz05ltvu6plfzgkf0x6 | 0xf6b84cc29cf0311cbb9fbaf5313e9f5b39a0fd22 | 1 | 2 | 1796.45267 | -| terp1tzr7uzjxh7acazt2m8p0up28sere3y84sghx2d | 0x5887ee0a46bfbb8e896ad9c2fe054786479890f5 | 1 | 2 | 1796.45267 | -| terp1ma4sc5nzjtkj890x0sftmh8tulrrhf4czgaw3j | 0xdf6b0c526292ed2395e67c12bddcebe7c63ba6b8 | 1 | 2 | 1796.45267 | -| terp1u0fltnahs3autm7jg06rxsls259ytncuayqp0g | 0xe3d3f5cfb7847bc5efd243f43343f0550a45cf1c | 1 | 2 | 1796.45267 | -| terp1h8029ded6jfru24ry9t74lx8fk2gz6tu2lcqje | 0xb9dea2b72dd4923e2aa32157eafcc74d9481697c | 1 | 2 | 1796.45267 | -| terp1x3n7m706vay0xqt4tfryvkt50a8ntqrlww6uz0 | 0x3467edf9fa6748f301755a464659747f4f35807f | 1 | 2 | 1796.45267 | -| terp1qhf7gw67ur6gvewr2ajck6hhk8ugqqzfm0qknr | 0x05d3e43b5ee0f48665c357658b6af7b1f8800049 | 1 | 2 | 1796.45267 | -| terp1fufu4f0942x58hy36wfxt7urecd34dr5lr2p54 | 0x4f13caa5e5aa8d43dc91d39265fb83ce1b1ab474 | 1 | 2 | 1796.45267 | -| terp1npdsrjzzzff2ud0z7n0ucjrzhwzkh0axp9djvu | 0x985b01c8421252ae35e2f4dfcc4862bb856bbfa6 | 1 | 2 | 1796.45267 | -| terp1h846gl7xqnmgkza0cp96v2t0u0re2664mn22v6 | 0xb9eba47fc604f68b0bafc04ba6296fe3c7956b55 | 1 | 2 | 1796.45267 | -| terp12l68z3y8a5evf908wz3n2ees8zdessluwkjpv7 | 0x57f4714487ed32c495e770a3356730389b9843fc | 1 | 2 | 1796.45267 | -| terp1mvtne9c793z9g6xfu5jkrr0d69scel4tah8alg | 0xdb173c971e2c445468c9e525618dedd1618cfeab | 1 | 2 | 1796.45267 | -| terp19l8lw5mcgsztxzn5k5yswq7fsmf5xjt7y5zj2e | 0x2fcff753784404b30a74b5090703c986d343497e | 1 | 2 | 1796.45267 | -| terp1v2drapw8krx8xwlfm6pqdvn3yamzjqjcurqhsk | 0x629a3e85c7b0cc733be9de8206b2712776290258 | 1 | 2 | 1796.45267 | -| terp1h066lldgua6asw9xs480kmuywlmrpdx86ucee9 | 0xbbf5affda8e775d838a6854efb6f8477f630b4c7 | 1 | 2 | 1796.45267 | -| terp1zwlzexls4mwx093jz4c9vw62pw3xl4flnmds23 | 0x13be2c9bf0aedc6796321570563b4a0ba26fd53f | 1 | 2 | 1796.45267 | -| terp142aakqafjk4c796fkk48lfru7vud08ch3pnh3e | 0xaabbdb03a995ab8f1749b5aa7fa47cf338d79f17 | 1 | 2 | 1796.45267 | -| terp19rfa6n58g3kmjjz6mj7n9aqz62sjy3npl4t0pd | 0x28d3dd4e87446db9485adcbd32f402d2a1224661 | 1 | 2 | 1796.45267 | -| terp1g230g5gu9vqxvudln3ahrafa5tflxdzykfs2gp | 0x42a2f4511c2b006671bf9c7b71f53da2d3f33444 | 1 | 2 | 1796.45267 | -| terp1fyhdgenfpqwmq4fsyfdd6669lyh9pw6wf66fg9 | 0x492ed46669081db05530225add6b45f92e50bb4e | 1 | 2 | 1796.45267 | -| terp19hea2t7va59at84lt82tvlmdm0qaaz76j02u7l | 0x2df3d52fcced0bd59ebf59d4b67f6ddbc1de8bda | 1 | 2 | 1796.45267 | -| terp1nzvh62jqrl0lhzmy79t4yrwq8w8w8sdm285634 | 0x98997d2a401fdffb8b64f157520dc03b8ee3c1bb | 1 | 2 | 1796.45267 | -| terp1um4k5fdr9exnsw06a7vkq3zma8jpmttpzk6xv5 | 0xe6eb6a25a32e4d3839faef9960445be9e41dad61 | 1 | 2 | 1796.45267 | -| terp137e09levuljdfz7pzzaswshl49p0n6uz0hgsth | 0x8fb2f2ff2ce7e4d48bc110bb0742ffa942f9eb82 | 1 | 2 | 1796.45267 | -| terp1pa7rkqvrglhtlw3kkyk48y5tqrwf2vnu99qumn | 0x0f7c3b018347eebfba36b12d53928b00dc95327c | 1 | 2 | 1796.45267 | -| terp10nwkwwusf7rzn3uwwxy7ffpsgc0m39mvwrwzr0 | 0x7cdd673b904f8629c78e7189e4a430461fb8976c | 1 | 2 | 1796.45267 | -| terp1tntzgy7nrwgwddhzsjj80xhy4962hl05732e26 | 0x5cd62413d31b90e6b6e284a4779ae4a974abfdf4 | 1 | 2 | 1796.45267 | -| terp1qvjhp73gjhagwmhl2lzp0eezfksyjrx99wn8qw | 0x032570fa2895fa876eff57c417e7224da0490cc5 | 1 | 2 | 1796.45267 | -| terp1h4vyeevsklwdhwfmz8sftk0p6kyqk3xea2pwhy | 0xbd584ce590b7dcdbb93b11e095d9e1d5880b44d9 | 1 | 2 | 1796.45267 | -| terp1cjdeljycavyu62r5r7qvvkhassg84xnkyxzz9x | 0xc49b9fc898eb09cd28741f80c65afd84107a9a76 | 1 | 2 | 1796.45267 | -| terp1edygufm8uquphy8us6tyw6rls00e6qp8m2ngrv | 0xcb488e2767e0381b90fc869647687f83df9d0027 | 1 | 2 | 1796.45267 | -| terp178yg33mrckzheyjlejy49dknzqgmfhsd4k2f97 | 0xf1c888c763c5857c925fcc8952b6d31011b4de0d | 1 | 2 | 1796.45267 | -| terp1zxjstuwqst2u6rsyvmhx7mcfkcsu3l3h3vw8c2 | 0x11a505f1c082d5cd0e0466ee6f6f09b621c8fe37 | 1 | 2 | 1796.45267 | -| terp1e3lkw43r8fu84s2kpxphus50ys75ysjvqf0j67 | 0xcc7f6756233a787ac15609837e428f243d42424c | 1 | 2 | 1796.45267 | -| terp1ymzg9rjpr3xqxfra3mvvmfdv5jzvm48fhjjfa2 | 0x26c4828e411c4c03247d8ed8cda5aca484cdd4e9 | 1 | 2 | 1796.45267 | -| terp1wml7dw4d8ap6vqkexw3ru5j7zq5qdwge8typqv | 0x76ffe6baad3f43a602d933a23e525e102806b919 | 1 | 2 | 1796.45267 | -| terp1g9hmxtu3y90h59l6xzualfhpqw826q22akryps | 0x416fb32f91215f7a17fa30b9dfa6e1038ead014a | 1 | 2 | 1796.45267 | -| terp1fe3y92s7746vl20aywmeqhp5wkydm3cxmdwapt | 0x4e6242aa1ef574cfa9fd23b7905c347588ddc706 | 1 | 2 | 1796.45267 | -| terp1zsyfzu57epvxvafu6d33wm0r8tdd74hrnsy5sp | 0x140891729ec85866753cd363176de33adadf56e3 | 1 | 2 | 1796.45267 | -| terp10vcq394uhhgujhfcqknkez2tm7dt4frnvmpuw2 | 0x7b300896bcbdd1c95d3805a76c894bdf9abaa473 | 1 | 2 | 1796.45267 | -| terp1tatc5psx3ufa6xnjj9ufp5mtj7vgkqa5acnqkw | 0x5f578a06068f13dd1a72917890d36b97988b03b4 | 1 | 2 | 1796.45267 | -| terp1rxgd5sq47wdx48st48fnf62q67sp0neesd23ym | 0x1990da4015f39a6a9e0ba9d334e940d7a017cf39 | 1 | 2 | 1796.45267 | -| terp1sfxw7u5xatym7ggzxc4u2lmkx2l2g3rhyk49l5 | 0x824cef7286eac9bf2102362bc57f7632bea44477 | 1 | 2 | 1796.45267 | -| terp1qaurwxjh9dtp33l2j7u6mpp9zry264tgqflt0x | 0x0778371a572b5618c7ea97b9ad842510c8ad5568 | 1 | 2 | 1796.45267 | -| terp1ln49zae82kagfxeexahsr7y6h3njzvtmy8amhf | 0xfcea51772755ba849b39376f01f89abc6721317b | 1 | 2 | 1796.45267 | -| terp1yyn5w3zwaytqh5kv7wwqh6w8g9yhhays02en5f | 0x212747444ee9160bd2ccf39c0be9c741497bf490 | 1 | 2 | 1796.45267 | -| terp10cpj58xql5sg950j0xfwglc3wevzw263rnlr2z | 0x7e032a1cc0fd2082d1f27992e47f117658272b51 | 1 | 2 | 1796.45267 | -| terp1gpav2jfef7n0qk35fvks9f9wtp87rs7ugkhzuh | 0x407ac549394fa6f05a344b2d02a4ae584fe1c3dc | 1 | 2 | 1796.45267 | -| terp19d8vkg9n0z0nmvhwkswv4nr5hn7gnvu8sh534t | 0x2b4ecb20b3789f3db2eeb41ccacc74bcfc89b387 | 1 | 2 | 1796.45267 | -| terp12t9e0c23yuep7uk39qvmaqmf0xwwn2m2l5ax00 | 0x52cb97e15127321f72d12819be8369799ce9ab6a | 1 | 2 | 1796.45267 | -| terp1wn9jeasknsn3nzhyyyjp4nfcnxqt0dfq2pqp7w | 0x74cb2cf6169c27198ae421241acd389980b7b520 | 1 | 2 | 1796.45267 | -| terp1zh78lpp3c05rgep9ldqrh49qqkfdz3qu8t5amy | 0x15fc7f8431c3e8346425fb403bd4a00592d1441c | 1 | 2 | 1796.45267 | -| terp16jsrqcydc79hdvqujg7h8tp4v56hgxd4yml4za | 0xd4a030608dc78b76b01c923d73ac3565357419b5 | 1 | 2 | 1796.45267 | -| terp15jq96e80gvrke7yc324dglj4frqdkla4mu4drr | 0xa4805d64ef43076cf8988aaad47e5548c0db7fb5 | 1 | 2 | 1796.45267 | -| terp1mavfdfamv85t24rqvzxrgypff27wz3v9plm90p | 0xdf5896a7bb61e8b55460608c3410294abce14585 | 1 | 2 | 1796.45267 | -| terp1r2hmu5j0nsxxdk8lsn8asewczv6yjagcc3hnzy | 0x1aafbe524f9c0c66d8ff84cfd865d81334497518 | 1 | 2 | 1796.45267 | -| terp1fp7sca2nervg2qqgt2q96vtw6kccx4lcemjjtt | 0x487d0c7553c8d88500085a805d316ed5b18357f8 | 1 | 2 | 1796.45267 | -| terp1d86dzxkv9xsze370xg0jv2rd5vjx8vfcn8la77 | 0x69f4d11acc29a02cc7cf321f26286da32463b138 | 1 | 2 | 1796.45267 | -| terp1fcm95mscqdmpmjftc0zammr04aksnc8xv7td9c | 0x4e365a6e1803761dc92bc3c5ddec6faf6d09e0e6 | 1 | 2 | 1796.45267 | -| terp1gzfrpyj5j90fahgu0yusyf8709atmqht9us4sg | 0x4092309254915e9edd1c79390224fe797abd82eb | 1 | 2 | 1796.45267 | -| terp194qd7a0c8czexk350c6lsjrwvqxgc7yj05cw40 | 0x2d40df75f83e05935a347e35f8486e600c8c7892 | 1 | 2 | 1796.45267 | -| terp1e4p46ezyq8srg9rkkcy2y9z26g7le5jfldqf4y | 0xcd435d644401e0341476b608a2144ad23dfcd249 | 1 | 2 | 1796.45267 | -| terp19ws5aj0amgkskelch43vukylsvgyq6aypzx3vx | 0x2ba14ec9fdda2d0b67f8bd62ce589f8310406ba4 | 1 | 2 | 1796.45267 | -| terp1l0wlnty5r05nwmdympz5vl9nvrprrwcah99pff | 0xfbddf9ac941be9376da4d845467cb360c231bb1d | 1 | 2 | 1796.45267 | -| terp13m4s4j3297rlmz6ls95q2kxgcdc4hv59tanc4f | 0x8eeb0aca2a2f87fd8b5f81680558c8c3715bb285 | 1 | 2 | 1796.45267 | -| terp10l04a9yxd5lhrve097uq9pswehj42e5ynuu4rt | 0x7fdf5e94866d3f71b32f2fb802860ecde5556684 | 1 | 2 | 1796.45267 | -| terp1ph36d58n9a9zxjh0xlnelvuxx5gxw220zwfwwn | 0x0de3a6d0f32f4a234aef37e79fb386351067294f | 1 | 2 | 1796.45267 | -| terp1n8z7yrceasulpf2p7yfrv6ssz4s05l9ugghapc | 0x99c5e20f19ec39f0a541f112366a101560fa7cbc | 1 | 2 | 1796.45267 | -| terp1us9z5nrdlsglgretacu6x7zl9seur5emj4c0jp | 0xe40a2a4c6dfc11f40f2bee39a3785f2c33c1d33b | 1 | 2 | 1796.45267 | -| terp1uk7tqhtqg35zq2sr8md6a7d5qtrm9xqsvxva0t | 0xe5bcb05d604468202a033edbaef9b402c7b29810 | 1 | 2 | 1796.45267 | -| terp1a7hrscmgejtkh4jnh9amlf8zyvyvw9xdnpef3f | 0xefae386368cc976bd653b97bbfa4e22308c714cd | 1 | 2 | 1796.45267 | -| terp1f3nkwvrqqzgqsqqz6paaalqcvz3l8xqhc5mell | 0x4c676730600090080002d07bdefc1860a3f39817 | 1 | 2 | 1796.45267 | -| terp1wndj9lh32hase35s497tgdf7mm04xmuc9lmkp5 | 0x74db22fef155fb0cc690a97cb4353ededf536f98 | 1 | 2 | 1796.45267 | -| terp1hu4yy23qf2dcfppwn43ag0fcea5nrwj4nrjszk | 0xbf2a422a204a9b84842e9d63d43d38cf6931ba55 | 1 | 2 | 1796.45267 | -| terp18d5xhv9u68tr7k8g85jd0r9stc57e230k6hjt7 | 0x3b686bb0bcd1d63f58e83d24d78cb05e29ecaa2f | 1 | 2 | 1796.45267 | -| terp1ygwvrhsnpzgkmmmfwlnjsz36de3nhggdlpexm6 | 0x221cc1de1308916def6977e7280a3a6e633ba10d | 1 | 2 | 1796.45267 | -| terp1l6z70eqa0lrx22vfudyn9kzqvmjew4sapx4shz | 0xfe85e7e41d7fc6652989e34932d84066e597561d | 1 | 2 | 1796.45267 | -| terp16wy2lltp3awdfha53xnh6lncjxds6aewflhdl5 | 0xd388affd618f5cd4dfb489a77d7e78919b0d772e | 1 | 2 | 1796.45267 | -| terp1dvs8ekg6ez2pjrhp2mdyd5yqqs9r47wshatgw8 | 0x6b207cd91ac894190ee156da46d080040a3af9d0 | 1 | 2 | 1796.45267 | -| terp1kyxn28x0v3jg6f6800kuyu32e2y96e048jurew | 0xb10d351ccf64648d27477bedc2722aca885d65f5 | 1 | 2 | 1796.45267 | -| terp1hdzhrtzzw6gvs60mnrgwus0rr0fwuvejjs569h | 0xbb4571ac427690c869fb98d0ee41e31bd2ee3332 | 1 | 2 | 1796.45267 | -| terp1zxlh8rtj3395rjq98gn77zh3ztffs9rzg5canc | 0x11bf738d728c4b41c8053a27ef0af112d2981462 | 1 | 2 | 1796.45267 | -| terp1qpfd9e90g4ywdnceaqtmj3xwmv36uzwl08njl3 | 0x0052d2e4af4548e6cf19e817b944cedb23ae09df | 1 | 2 | 1796.45267 | -| terp1vqj8730w6e3h8m6pr4uv7nwlvkjda3h5tahn2w | 0x60247f45eed66373ef411d78cf4ddf65a4dec6f4 | 1 | 2 | 1796.45267 | -| terp1npu3d8yl8fr5a7cnsdgh6rps5y9lvaccuclpqu | 0x9879169c9f3a474efb1383517d0c30a10bf67718 | 1 | 2 | 1796.45267 | -| terp10xvqq0quarynxnkc29g52ex5h4hay0v00082ms | 0x7998003c1ce8c9334ed851514564d4bd6fd23d8f | 1 | 2 | 1796.45267 | -| terp19c5fh3fwa0cjj4p9qdcmwd85ht7urplg9gx8v8 | 0x2e289bc52eebf12954250371b734f4bafdc187e8 | 1 | 2 | 1796.45267 | -| terp1k37389drzp65s5relelkest7ses2tg2gg9z3hv | 0xb47d1395a31075485079fe7f6cc17e8660a5a148 | 1 | 2 | 1796.45267 | -| terp1c4wyyzt83hlshl8qyquly0l9ntl2q68heg88uq | 0xc55c4209678dff0bfce02039f23fe59afea068f7 | 1 | 2 | 1796.45267 | -| terp13fz8jn9k0dztcut750v9fsn9jzhzga70hlw556 | 0x8a44794cb67b44bc717ea3d854c26590ae2477cf | 1 | 2 | 1796.45267 | -| terp136mgdrzq9v52v7dh7jh54ewphqgpfqpt64hc7f | 0x8eb6868c402b28a679b7f4af4ae5c1b81014802b | 1 | 2 | 1796.45267 | -| terp1ny645k4kqtzfazh8ca6jdrjcpnnq2nka8pfvus | 0x99355a5ab602c49e8ae7c775268e580ce6054edd | 1 | 2 | 1796.45267 | -| terp1nmgwnr55l7qmwqglk2ht4pgcapnuwzfmm6rz5w | 0x9ed0e98e94ff81b7011fb2aeba8518e867c7093b | 1 | 2 | 1796.45267 | -| terp1hkkdaavzpldemyy873gmqxl85ffrh9qfl7k8gl | 0xbdacdef5820fdb9d9087f451b01be7a2523b9409 | 1 | 2 | 1796.45267 | -| terp1u9zf7lsszvs486ajysgvwx0m6hctla429ufv7w | 0xe1449f7e10132153ebb22410c719fbd5f0bff6aa | 1 | 2 | 1796.45267 | -| terp143gwcqvqmvxvzn3w9av2dcyk3t0h5jgk8zamw7 | 0xac50ec0180db0cc14e2e2f58a6e0968adf7a4916 | 1 | 2 | 1796.45267 | -| terp1rzpk4nk77dw55mqq4tjx5dh6mcfwuhlhwwe9rt | 0x18836acedef35d4a6c00aae46a36fade12ee5ff7 | 1 | 2 | 1796.45267 | -| terp19k635g0y5530nk9r3fpyljgdjq06n3z03enjcs | 0x2db51a21e4a522f9d8a38a424fc90d901fa9c44f | 1 | 2 | 1796.45267 | -| terp13lxds732wc73dha3ac7dyms5j7u3efynapdwf2 | 0x8fccd87a2a763d16dfb1ee3cd26e1497b91ca493 | 1 | 2 | 1796.45267 | -| terp1lwjtqs5hczs9s78yk34jhnnxq34sj25qsp9tpq | 0xfba4b04297c0a05878e4b46b2bce66046b092a80 | 1 | 2 | 1796.45267 | -| terp1t5utlnz0ddz72w3cgzc9hu6x7j06dmqg93rgpu | 0x5d38bfcc4f6b45e53a3840b05bf346f49fa6ec08 | 1 | 2 | 1796.45267 | -| terp1tpzx8grq88dhfglhvwzqz7u08za7wphaphxv5j | 0x584463a06039db74a3f76384017b8f38bbe706fd | 1 | 2 | 1796.45267 | -| terp1emc6q4l8y27ulyrw36kpg98ch2jwtfvqz78wd4 | 0xcef1a057e722bdcf906e8eac1414f8baa4e5a580 | 1 | 2 | 1796.45267 | -| terp1z62kp8k0s8gslxcjyl8dr2zwkdk0l4t6r98reg | 0x1695609ecf81d10f9b1227ced1a84eb36cffd57a | 1 | 2 | 1796.45267 | -| terp1qjs28kjmzpzrxcjmhv6wlvrw5ap0e28rqkyf4q | 0x04a0a3da5b104433625bbb34efb06ea742fca8e3 | 1 | 2 | 1796.45267 | -| terp1erud2l0tgv0ncjnahssy34lt4edhdxdmqmst56 | 0xc8f8d57deb431f3c4a7dbc2048d7ebae5b7699bb | 1 | 2 | 1796.45267 | -| terp1ge485a7vs00ytgzwjx5f7k7wzqunsrl6pr7wag | 0x466a7a77cc83de45a04e91a89f5bce1039380ffa | 1 | 2 | 1796.45267 | -| terp1cn2ews4awqhf9e6x639n4g4hexd8sqe9f9h05l | 0xc4d59742bd702e92e746d44b3aa2b7c99a780325 | 1 | 2 | 1796.45267 | -| terp1ttex3n33tnx2d4vup3d3p609u8vywapntk6qw9 | 0x5af268ce315ccca6d59c0c5b10e9e5e1d8477433 | 1 | 2 | 1796.45267 | -| terp17nl3nscvnpfnl4knem8snv7ksqhywrws3yassh | 0xf4ff19c30c98533fd6d3cecf09b3d6802e470dd0 | 1 | 2 | 1796.45267 | -| terp13s80ddp6krtv7kmgyzsgdu0ghta04tmy3hm0px | 0x8c0ef6b43ab0d6cf5b6820a086f1e8bafafaaf64 | 1 | 2 | 1796.45267 | -| terp1rmjp7rw3tzhp4erf9cdn69kanrry7wukd3fsmf | 0x1ee41f0dd158ae1ae4692e1b3d16dd98c64f3b96 | 1 | 2 | 1796.45267 | -| terp1m5syxheknm6f6wpcdwumcc57ghe840hzma03af | 0xdd20435f369ef49d38386bb9bc629e45f27abee2 | 1 | 2 | 1796.45267 | -| terp1hrcxf0g9qlc5nf2eup2p457q7nqkahwnd2qws8 | 0xb8f064bd0507f149a559e0541ad3c0f4c16eddd3 | 1 | 2 | 1796.45267 | -| terp1gpurgaaxnkzjpuuvtuntduv5ygxz0uxq9xaest | 0x40783477a69d8520f38c5f26b6f194220c27f0c0 | 1 | 2 | 1796.45267 | -| terp1q8qawv6w9nldwv64nm07cv4wevqczv2y6qmzgh | 0x01c1d7334e2cfed733559edfec32aecb01813144 | 1 | 2 | 1796.45267 | -| terp1h9900lhsd5y7n4rhsdr0ucpslv990z05jysfcz | 0xb94af7fef06d09e9d4778346fe6030fb0a5789f4 | 1 | 2 | 1796.45267 | -| terp13ey620cfyfhkxdq9y98f64ns05fdj7hc67h5pu | 0x8e49a53f09226f633405214e9d56707d12d97af8 | 1 | 2 | 1796.45267 | -| terp19kyxsf665uufdwmcfwtz87ej6a24zytt0w3c66 | 0x2d8868275aa73896bb784b9623fb32d75551116b | 1 | 2 | 1796.45267 | -| terp1v8nlvq43ltnmslnaha2khmjfrvmqpsj8wu9jv7 | 0x61e7f602b1fae7b87e7dbf556bee491b3600c247 | 1 | 2 | 1796.45267 | -| terp1xy777qa7yy0p4lh3sfumegxwjhuyvymlp4h4c6 | 0x313def03be211e1afef18279bca0ce95f846137f | 1 | 2 | 1796.45267 | -| terp1dhk3a4hng9vlkc2hdjytgamrsry0c3rqtvrakr | 0x6ded1ed6f34159fb61576c88b4776380c8fc4460 | 1 | 2 | 1796.45267 | -| terp1w6agva8s3vfadaudwj4qp3v5ej0djew4s6a83m | 0x76ba8674f08b13d6f78d74aa00c594cc9ed965d5 | 1 | 2 | 1796.45267 | -| terp154lrhn8mjvlxkvjqjxd8rtjsap8v0tj7tufqyf | 0xa57e3bccfb933e6b3240919a71ae50e84ec7ae5e | 1 | 2 | 1796.45267 | -| terp138tsq7cc2hkec90fh0ehxnl3pjcg95tkryefa4 | 0x89d7007b1855ed9c15e9bbf3734ff10cb082d176 | 1 | 2 | 1796.45267 | -| terp13ncjzwxea5x50ye4qg6tmsgervxqnjq5jqrqjh | 0x8cf12138d9ed0d4793350234bdc1191b0c09c814 | 1 | 2 | 1796.45267 | -| terp1c4n6sjnsfsyx0tcjr6t0xqpnr3j0yh5p55ltdg | 0xc567a84a704c0867af121e96f300331c64f25e81 | 1 | 2 | 1796.45267 | -| terp1ddrmpew7zxjv0v4gszaacdw2z93p5e578lld96 | 0x6b47b0e5de11a4c7b2a880bbdc35ca11621a669e | 1 | 2 | 1796.45267 | -| terp1t8y22jxqewsa3xu7z0gecv0vgkt8k3ja88wqmh | 0x59c8a548c0cba1d89b9e13d19c31ec45967b465d | 1 | 2 | 1796.45267 | -| terp16u3mx9d0alc26rxhy3khyu0u9lt82nhgzlmu3g | 0xd723b315afeff0ad0cd7246d7271fc2fd6754ee8 | 1 | 2 | 1796.45267 | -| terp1dhmch5cl08vf7sfqskvyz8kunvmnjm2r84xhts | 0x6df78bd31f79d89f41208598411edc9b37396d43 | 1 | 2 | 1796.45267 | -| terp10tvyuzt6eqnplwnmfvd0uglds32n5cvdhac0tx | 0x7ad84e097ac8261fba7b4b1afe23ed84553a618d | 1 | 2 | 1796.45267 | -| terp1234kkag0jhzl6mh5l4gkpccq8zh5j4a8rprv3t | 0x546b6b750f95c5fd6ef4fd5160e30038af4957a7 | 1 | 2 | 1796.45267 | -| terp1cjg9qps8s3hf6x9kd8grg5dtl4ggzl635j46u8 | 0xc490500607846e9d18b669d03451abfd50817f51 | 1 | 2 | 1796.45267 | -| terp1ddc8umjqw7tjuushtw8adrq40n2rp5v6d3s3yp | 0x6b707e6e4077972e72175b8fd68c157cd430d19a | 1 | 2 | 1796.45267 | -| terp1kadsjxhg2yruj59eqs3g0w9dzyrs6m3c3e63f4 | 0xb75b091ae85107c950b9042287b8ad11070d6e38 | 1 | 2 | 1796.45267 | -| terp1xxsd545mgcdd7jzkfv29d9z3vhqx07cyhlfrrr | 0x31a0da569b461adf48564b1456945165c067fb04 | 1 | 2 | 1796.45267 | -| terp1e8uehsuem3pe5gp243nda0m8urqjaq8t56429q | 0xc9f99bc399dc439a202aac66debf67e0c12e80eb | 1 | 2 | 1796.45267 | -| terp1gpjd293msdstuwhzn6j3p0mr5eyfgqf3zycdms | 0x4064d5163b8360be3ae29ea510bf63a648940131 | 1 | 2 | 1796.45267 | -| terp1rnxw4azcw0s6j3jtfylwsye3t2x7qec8p6ecq6 | 0x1ccceaf45873e1a9464b493ee813315a8de06707 | 1 | 2 | 1796.45267 | -| terp1kv3hc946xmwfnq8fmvdjny5q0gqgf3x4a8rspc | 0xb3237c16ba36dc9980e9db1b2992807a0084c4d5 | 1 | 2 | 1796.45267 | -| terp13yz7uj7qd3dkmdrv4y8vnw4h8d3qrs8yyumx06 | 0x8905ee4bc06c5b6db46ca90ec9bab73b6201c0e4 | 1 | 2 | 1796.45267 | -| terp1zqxeaylcqe5h90m827022w66cp8ng0rq7cer4u | 0x100d9e93f8066972bf67579ea53b5ac04f343c60 | 1 | 2 | 1796.45267 | -| terp1td2pmgfr8jkg7kesv84r52m8f6nvpdjgt9s0th | 0x5b541da1233cac8f5b3061ea3a2b674ea6c0b648 | 1 | 2 | 1796.45267 | -| terp1cq8ktzng4l7yws4nr8xlmm52trak6xwwxn9mmc | 0xc00f658a68affc4742b319cdfdee8a58fb6d19ce | 1 | 2 | 1796.45267 | -| terp1u025tcqa3xrxkrx86jarglcy5t9gv2wlf46s7m | 0xe3d545e01d89866b0cc7d4ba347f04a2ca8629df | 1 | 2 | 1796.45267 | -| terp1f56mtx3uravatlu5m4ajkws3nqmcc3nc3rqc8a | 0x4d35b59a3c1f59d5ff94dd7b2b3a1198378c4678 | 1 | 2 | 1796.45267 | -| terp1jw44j82rezxhvv80eplelavdh7ukxd3ces3q75 | 0x93ab591d43c88d7630efc87f9ff58dbfb9633638 | 1 | 2 | 1796.45267 | -| terp1e7ud3673cnw3mza24rqwr227dpjtqk60x3j79w | 0xcfb8d8ebd1c4dd1d8baaa8c0e1a95e6864b05b4f | 1 | 2 | 1796.45267 | -| terp18nuq4mfj6pqsdsckkrmd9v2eyhculn5ypeh00m | 0x3cf80aed32d04106c316b0f6d2b15925f1cfce84 | 1 | 2 | 1796.45267 | -| terp1ldt6ma4fyuhgc4zzq8xasqyge7heh7lq2tptdm | 0xfb57adf6a9272e8c544201cdd80088cfaf9bfbe0 | 1 | 2 | 1796.45267 | -| terp1uj0364akh9rl25xhsz43u8lvpsdjsdkvmpy862 | 0xe49f1d57b6b947f550d780ab1e1fec0c1b2836cc | 1 | 2 | 1796.45267 | -| terp1tu795q2x483smr8kzfcund5mt6608kffzkagan | 0x5f3c5a0146a9e30d8cf61271c9b69b5eb4f3d929 | 1 | 2 | 1796.45267 | -| terp1zvxng0grxlyxuekdp42nu820du2kchqjryyjc4 | 0x130d343d0337c86e66cd0d553e1d4f6f156c5c12 | 1 | 2 | 1796.45267 | -| terp1upjxwul34a5qt4jdkqrw5d66t4kzq5v5m8f23m | 0xe0646773f1af6805d64db006ea375a5d6c205194 | 1 | 2 | 1796.45267 | -| terp1js9sdcw74w220929ltfxljqtqkfu70hkvrg75p | 0x940b06e1deab94a79545fad26fc80b0593cf3ef6 | 1 | 2 | 1796.45267 | -| terp1exaaafs8clh3nergyzrj0cefku6m8hjetwzg0m | 0xc9bbdea607c7ef19e468208727e329b735b3de59 | 1 | 2 | 1796.45267 | -| terp1975west0plj3gr2wkvtglgywjzw3zgw2unrmld | 0x2fa8ecc16f0fe5140d4eb3168fa08e909d1121ca | 1 | 2 | 1796.45267 | -| terp1ffhwz46y6tlm6delwmardgs77uguw5ls87dfhs | 0x4a6ee15744d2ffbd373f76fa36a21ef711c753f0 | 1 | 2 | 1796.45267 | -| terp1wat4rvmmrtsh4pdeswtslqr7xj979d3nj8wg4j | 0x775751b37b1ae17a85b983970f807e348be2b633 | 1 | 2 | 1796.45267 | -| terp1x6sr3srqvxvqrztxd9m4az282zfuweredvcyy9 | 0x36a038c060619801896669775e89475093c76479 | 1 | 2 | 1796.45267 | -| terp1d5g2hxcrsy3pyn0zzw3t4ry7vg60702vwwahjz | 0x6d10ab9b038122124de213a2ba8c9e6234ff3d4c | 1 | 2 | 1796.45267 | -| terp1eps2x73ghu66ggck5v2ezsk25r9ejwwalx6p3p | 0xc860a37a28bf35a42316a3159142caa0cb9939dd | 1 | 2 | 1796.45267 | -| terp1cn7hlllkwrtcld982u5p8kgkh3a3esuzwxqghn | 0xc4fd7ffff670d78fb4a7572813d916bc7b1cc382 | 1 | 2 | 1796.45267 | -| terp1hlaqhau3s4t87yeltu7kr8jww9lcmzu0342ahn | 0xbffa0bf79185567f133f5f3d619e4e717f8d8b8f | 1 | 2 | 1796.45267 | -| terp1xfsq9dltwquy25wx2yrz67s202c42tmeyuzjrd | 0x326002b7eb70384551c651062d7a0a7ab1552f79 | 1 | 2 | 1796.45267 | -| terp1ufzzdrg3xey9zqwr8pvchhsstkvfmkhw2vcwyc | 0xe244268d1136485101c338598bde105d989ddaee | 1 | 2 | 1796.45267 | -| terp1jqfprvw40n6flch9lmsqx9s5wcyhs3smutvahh | 0x901211b1d57cf49fe2e5fee0031614760978461b | 1 | 2 | 1796.45267 | -| terp1jvlmj9tn4vrazn2q7fvl5gzldvks6knvghzuzv | 0x933fb91573ab07d14d40f259fa205f6b2d0d5a6c | 1 | 2 | 1796.45267 | -| terp16k6xpydghm3fsrsxjerlr3w70qd4wwvxyqhzke | 0xd5b46091a8bee2980e069647f1c5de781b573986 | 1 | 2 | 1796.45267 | -| terp1quxw8x6mplhfa4w9yq0mzaudzagn00srmt07vw | 0x070ce39b5b0fee9ed5c5201fb1778d175137be03 | 1 | 2 | 1796.45267 | -| terp1uuv9nf7sqpjg6wtmdudr8dy3h5u0ymhnqqs6x3 | 0xe71859a7d000648d397b6f1a33b491bd38f26ef3 | 1 | 2 | 1796.45267 | -| terp19sqa2xtwyet65yn8p5fg5d2x5uwdkf9k0n3jj0 | 0x2c01d5196e2657aa12670d128a3546a71cdb24b6 | 1 | 2 | 1796.45267 | -| terp1auk5uh5h3s2lrzug0n578jqc2qqa60zeq5dsze | 0xef2d4e5e978c15f18b887ce9e3c8185001dd3c59 | 1 | 2 | 1796.45267 | -| terp1ejqmgccufvepggfx0sw5ksl8kttu223r2xl8qr | 0xcc81b4631c4b321421267c1d4b43e7b2d7c52a23 | 1 | 2 | 1796.45267 | -| terp18gvndhjul4yqgnurxz2vk35vk44q7uv2ukprvl | 0x3a1936de5cfd48044f833094cb468cb56a0f718a | 1 | 2 | 1796.45267 | -| terp1r4xkdrg7dgamd7qxfvwl9m0f70s33f0mq9kj2e | 0x1d4d668d1e6a3bb6f8064b1df2ede9f3e118a5fb | 1 | 2 | 1796.45267 | -| terp1y3t7ymyf4shp3lemzupmggr846c8s09g3vwg4l | 0x2457e26c89ac2e18ff3b1703b42067aeb0783ca8 | 1 | 2 | 1796.45267 | -| terp180uzvs2a5yxtyk56369fuqde007gsadvgrhkl7 | 0x3bf826415da10cb25a9a8e8a9e01b97bfc8875ac | 1 | 2 | 1796.45267 | -| terp18tzpv8wqwrdycee5ca2n3wm2ce9q7rnrp7kw2e | 0x3ac4161dc070da4c6734c75538bb6ac64a0f0e63 | 1 | 2 | 1796.45267 | -| terp1qvgm07mcrwva7yjqdjzg67yp3w273crdc7q36f | 0x0311b7fb781b99df12406c848d78818b95e8e06d | 1 | 2 | 1796.45267 | -| terp1a0tq0s83les55k34gkx6c04gf4v46taxtmz0zm | 0xebd607c0f1fe614a5a35458dac3ea84d595d2fa6 | 1 | 2 | 1796.45267 | -| terp16ecttwszu7gak7y5j5j8up3pjm2wt0jsuqtc0f | 0xd670b5ba02e791db789495247e062196d4e5be50 | 1 | 2 | 1796.45267 | -| terp1673k8jrryve69s306ny8cxm0gms4m0skva3vm0 | 0xd7a363c8632333a2c22fd4c87c1b6f46e15dbe16 | 1 | 2 | 1796.45267 | -| terp1vhqx9v6sh59hpfnkyt58dgmkdz3qtlpht72xgj | 0x65c062b350bd0b70a67622e876a37668a205fc37 | 1 | 2 | 1796.45267 | -| terp1waze5llkl3w3lhhxcxn9ru3cl590674rqx8hsg | 0x77459a7ff6fc5d1fdee6c1a651f238fd0afd7aa3 | 1 | 2 | 1796.45267 | -| terp1skgqyj6hnkt6r9t6jzp7acla6hqsa6j2th8xlu | 0x8590024b579d97a1957a9083eee3fdd5c10eea4a | 1 | 2 | 1796.45267 | -| terp1j7xp3r4s44mr5k9m070akf222yc3p2jlqkl93h | 0x978c188eb0ad763a58bb7f9fdb254a513110aa5f | 1 | 2 | 1796.45267 | -| terp1je2xzu3quqsljshggjz4vg0dpzkfz4xpxa9dqt | 0x9654617220e021f942e844855621ed08ac9154c1 | 1 | 2 | 1796.45267 | -| terp1guu3dkykads9glqzcvnhl9cfk6tvcf8yp6442w | 0x473916d896eb60547c02c3277f9709b696cc24e4 | 1 | 2 | 1796.45267 | -| terp198juhhrs02055lkf22ul9grjdtpqlscgzwt64a | 0x29e5cbdc707a9f4a7ec952b9f2a0726ac20fc308 | 1 | 2 | 1796.45267 | -| terp1wc60jwppyn2yzqy8rx0cu40ymp7th6d3z2atct | 0x7634f9382124d4410087199f8e55e4d87cbbe9b1 | 1 | 2 | 1796.45267 | -| terp192val2yvvfvvp7uqp5pa993vjrlpd3nfxva0sg | 0x2a99dfa88c6258c0fb800d03d2962c90fe16c669 | 1 | 2 | 1796.45267 | -| terp1tlq0uahw7rr2uvxneqcfhx96j2a8xs8vh3cjl8 | 0x5fc0fe76eef0c6ae30d3c8309b98ba92ba7340ec | 1 | 2 | 1796.45267 | -| terp1zqg0qu70qmte5jtumyugz4fuqu4duqu80lfnk7 | 0x1010f073cf06d79a497cd93881553c072ade0387 | 1 | 2 | 1796.45267 | -| terp1xqsqpvq38erze3f0d79h7eqjpt8mhl4qpx38rl | 0x302000b0113e462cc52f6f8b7f64120acfbbfea0 | 1 | 2 | 1796.45267 | -| terp14dr559x8snvsptsnx7cl2etl4qxejq3qw3clrx | 0xab474a14c784d900ae1337b1f5657fa80d990220 | 1 | 2 | 1796.45267 | -| terp198t2krnrzmuswekq59vwkgz290mq4s3apfvcfv | 0x29d6ab0e6316f90766c0a158eb204a2bf60ac23d | 1 | 2 | 1796.45267 | -| terp1xptmvvrqf0hxrsy3wwkrywzmjupgs4haphu7g4 | 0x3057b630604bee61c09173ac32385b97028856fd | 1 | 2 | 1796.45267 | -| terp10mazcalwktna4d0c4pgl70g872zwfnrhj6hmnk | 0x7efa2c77eeb2e7dab5f8a851ff3d07f284e4cc77 | 1 | 2 | 1796.45267 | -| terp1z93pl2n672uaxv9par7wx2edggksch9ekxpshg | 0x11621faa7af2b9d330a1e8fce32b2d422d0c5cb9 | 1 | 2 | 1796.45267 | -| terp1uccjg88j6zpdgjzw3klu5kzmq4dv5ghse87c56 | 0xe631241cf2d082d4484e8dbfca585b055aca22f0 | 1 | 2 | 1796.45267 | -| terp1ll360990aw8ga4tcjwvarmdx35tpqzx0k9n7mq | 0xffe3a794afeb8e8ed5789399d1eda68d161008cf | 1 | 2 | 1796.45267 | -| terp1qysemyx0v0pctc2h3d4afrwqjajx9gzzqrjtds | 0x01219d90cf63c385e1578b6bd48dc0976462a042 | 1 | 2 | 1796.45267 | -| terp1v5xtdxp2lkep0pmteu3hnrzwm2gfd5h9vx2np4 | 0x650cb6982afdb217876bcf23798c4eda9096d2e5 | 1 | 2 | 1796.45267 | -| terp18sfwxaay7eavawfsp7jz8w3x4jlyp6a38jnn46 | 0x3c12e377a4f67aceb9300fa423ba26acbe40ebb1 | 1 | 2 | 1796.45267 | -| terp1lpguhg8d5840lwsms6zdw3acr06stgk7wvmcnj | 0xf851cba0eda1eaffba1b8684d747b81bf505a2de | 1 | 2 | 1796.45267 | -| terp1pqj0j57gy5azahuchr0pz6mmmn8hcv7t6rjge3 | 0x0824f953c8253a2edf98b8de116b7bdccf7c33cb | 1 | 2 | 1796.45267 | -| terp1yxkp2zyawhy3c79dqgm3fyk60txgr0nxa92tpv | 0x21ac15089d75c91c78ad02371492da7acc81be66 | 1 | 2 | 1796.45267 | -| terp1k9etmaflw2mnet7xyz86pchhkf3567qqwmualh | 0xb172bdf53f72b73cafc6208fa0e2f7b2634d7800 | 1 | 2 | 1796.45267 | -| terp1uf4teddxf64g48ljt3g7dvd6dasflf06wa7k4n | 0xe26abcb5a64eaa8a9ff25c51e6b1ba6f609fa5fa | 1 | 2 | 1796.45267 | -| terp1z8ya57mw0lc6jd627a0tgk9jzewyg844ls975d | 0x11c9da7b6e7ff1a9374af75eb458b2165c441eb5 | 1 | 2 | 1796.45267 | -| terp1d0wsxsj8mu6z4sd7jp6wfmksajfmr60qp4yg0e | 0x6bdd034247df342ac1be9074e4eed0ec93b1e9e0 | 1 | 2 | 1796.45267 | -| terp17738k93tx2klpr4jdxqna5a0pum3hmy72w2rra | 0xf7a27b162b32adf08eb269813ed3af0f371bec9e | 1 | 2 | 1796.45267 | -| terp1eqmvj735gshh7v970trh7ksnkcn9xgjpd4408y | 0xc836c97a34442f7f30be7ac77f5a13b626532241 | 1 | 2 | 1796.45267 | -| terp1pjm6qmkgghku5xhkmd4k2wxyegy5yqv6f4zwy6 | 0x0cb7a06ec845edca1af6db6b6538c4ca0942019a | 1 | 2 | 1796.45267 | -| terp1nnkkeq3jd37mcg3d69ak2ulxnnlrnqljr0zv9q | 0x9ced6c82326c7dbc222dd17b6573e69cfe3983f2 | 1 | 2 | 1796.45267 | -| terp1lh9yqag8y70p6ehnse3xn7395w7fxgykuj9q7c | 0xfdca407507279e1d66f3866269fa25a3bc932096 | 1 | 2 | 1796.45267 | -| terp1hs2mgejkx0kxtyjsgratv8g0c8zwa74t0ffg30 | 0xbc15b4665633ec65925040fab61d0fc1c4eefaab | 1 | 2 | 1796.45267 | -| terp1evlk3d49sesav4l2r6gdnwlzma4pcj3gupvjkr | 0xcb3f68b6a58661d657ea1e90d9bbe2df6a1c4a28 | 1 | 2 | 1796.45267 | -| terp1mtc5p069sz9rqt9vf4g67xyudr00zllv8fdf4l | 0xdaf140bf45808a302cac4d51af189c68def17fec | 1 | 2 | 1796.45267 | -| terp13xlm5g8z76pfxvwszctdk3xufsu5wtr896tyc6 | 0x89bfba20e2f6829331d01616db44dc4c39472c67 | 1 | 2 | 1796.45267 | -| terp1cu2tsxhupsq046smwh59yedtc9r2dt3nl0myrq | 0xc714b81afc0c00faea1b75e85265abc146a6ae33 | 1 | 2 | 1796.45267 | -| terp12r04aweh60nf4zehfqy5nkaha7t26u0ffz6flj | 0x50df5ebb37d3e69a8b37480949dbb7ef96ad71e9 | 1 | 2 | 1796.45267 | -| terp185umks2spvvwdjysex858s9ht46y3pztyk8cl8 | 0x3d39bb41500b18e6c890c98f43c0b75d7448844b | 1 | 2 | 1796.45267 | -| terp1cagf0j58mtnucdylfl3xlr6qk2u4yugm9y8sg6 | 0xc75097ca87dae7cc349f4fe26f8f40b2b952711b | 1 | 2 | 1796.45267 | -| terp1njn6r0pjv2pehs4tgjyp4vrvvmtwmteetfv5dj | 0x9ca7a1bc3262839bc2ab44881ab06c66d6edaf39 | 1 | 2 | 1796.45267 | -| terp1mclrkcxhu5f6j3ut5d2w0xdhply76e0vz6mecs | 0xde3e3b60d7e513a9478ba354e799b70fc9ed65ec | 1 | 2 | 1796.45267 | -| terp13kcn9pa29q39fzwre0wgacmamrdf9ernz89nvh | 0x8db13287aa28225489c3cbdc8ee37dd8da92e473 | 1 | 2 | 1796.45267 | -| terp1uvs4sju70x2ze0tq8jwxra6qwt8umjmvz6s38z | 0xe321584b9e79942cbd603c9c61f74072cfcdcb6c | 1 | 2 | 1796.45267 | -| terp1a0zw99zq3dmyahjmsdznttn7utvel0d2vss2g9 | 0xebc4e294408b764ede5b834535ae7ee2d99fbdaa | 1 | 2 | 1796.45267 | -| terp1mzwe6gu62eta5a7wfxfnj2zr0k83tgud93nwwe | 0xd89d9d239a5657da77ce49933928437d8f15a38d | 1 | 2 | 1796.45267 | -| terp1tkkhgg97k4q832r2l3c2p3z6j4pyam6rua0q87 | 0x5dad7420beb54078a86afc70a0c45a95424eef43 | 1 | 2 | 1796.45267 | -| terp10xeraue82fcf25yc06h2pqf4r22h0vpplggelh | 0x79b23ef32752709550987eaea081351a9577b021 | 1 | 2 | 1796.45267 | -| terp1g428rmj9jjvsvf8whkffd6h7qjlsxapnykj4p8 | 0x455471ee4594990624eebd9296eafe04bf037433 | 1 | 2 | 1796.45267 | -| terp1sg742lpvwevtgs2q8n936a5avdyp6d9wlk5gly | 0x823d557c2c7658b441403ccb1d769d63481d34ae | 1 | 2 | 1796.45267 | -| terp1alz7j6w25uq5efvuq9j08v9rzscwa4nczz8wx6 | 0xefc5e969caa7014ca59c0164f3b0a31430eed678 | 1 | 2 | 1796.45267 | -| terp1tr3xfmxechvps2ktw0zkd7jgmlpj97f2xk2akh | 0x58e264ecd9c5d8182acb73c566fa48dfc322f92a | 1 | 2 | 1796.45267 | -| terp10mhfadg9trd5w29hhmh0j4t7ugrgcmaucpy3vf | 0x7eee9eb50558db4728b7beeef9557ee2068c6fbc | 1 | 2 | 1796.45267 | -| terp1qk9lp8gvt7rx6he0s6t2yf03yxq97kmdpfg0lu | 0x058bf09d0c5f866d5f2f8696a225f121805f5b6d | 1 | 2 | 1796.45267 | -| terp12xq56psxn8hfjx06ukglrhgdunwesqalp3432l | 0x51814d060699ee9919fae591f1dd0de4dd9803bf | 1 | 2 | 1796.45267 | -| terp17ckcg8n79zqf7cmetk0aaacl7tsltanvzfx5v5 | 0xf62d841e7e28809f63795d9fdef71ff2e1f5f66c | 1 | 2 | 1796.45267 | -| terp1h5d28mfwpwu6fdc9p2gyvtp2qrzkkm697qjn40 | 0xbd1aa3ed2e0bb9a4b7050a90462c2a00c56b6f45 | 1 | 2 | 1796.45267 | -| terp1u7r57uwjwvrhmxthcddydfc3fdnvur239yv485 | 0xe7874f71d273077d9977c35a46a7114b66ce0d51 | 1 | 2 | 1796.45267 | -| terp177zvggvq2y0y5rdsnunsd8ndm6el0x4eucqfws | 0xf784c42180511e4a0db09f27069e6ddeb3f79ab9 | 1 | 2 | 1796.45267 | -| terp1j22az70pr3q3d630pv87hzu5emjyyvsnqrpsdd | 0x9295d179e11c4116ea2f0b0feb8b94cee4423213 | 1 | 2 | 1796.45267 | -| terp1dfscz72dmhpg0a2v7uunmq2nn03gn88arhfw8j | 0x6a6181794dddc287f54cf7393d81539be2899cfd | 1 | 2 | 1796.45267 | -| terp1jy64gxl5dflqlh2w7hp9e0mfxgmxgqsjwxqtf2 | 0x9135541bf46a7e0fdd4ef5c25cbf693236640212 | 1 | 2 | 1796.45267 | -| terp18yl5apk0xyczxsn5fkan7ppefjn0egl2skvfl0 | 0x393f4e86cf31302342744dbb3f04394ca6fca3ea | 1 | 2 | 1796.45267 | -| terp1k4ryvtzvwwj4zdpzae7a3cfez0zms25rrudhaq | 0xb546462c4c73a5513422ee7dd8e13913c5b82a83 | 1 | 2 | 1796.45267 | -| terp19ann0f7tzrqx7lzwq9flt6us3wsn83c45u33k6 | 0x2f6737a7cb10c06f7c4e0153f5eb908ba133c715 | 1 | 2 | 1796.45267 | -| terp1cz9pz8mn030lcpaz2kx92n0ufhjkjnkq6sxudl | 0xc08a111f737c5ffc07a2558c554dfc4de5694ec0 | 1 | 2 | 1796.45267 | -| terp1u5344xhh67dmuw5r07mcjs4pe3yswv47m3hkc9 | 0xe5235a9af7d79bbe3a837fb78942a1cc490732be | 1 | 2 | 1796.45267 | -| terp1gh2k7va7u9a86lq8pnsqsf38n793mgznehyr4n | 0x45d56f33bee17a7d7c070ce00826279f8b1da053 | 1 | 2 | 1796.45267 | -| terp1egnae7dw0ym9p8w73a5dq84w32z8jcm9cgjrse | 0xca27dcf9ae7936509dde8f68d01eae8a84796365 | 1 | 2 | 1796.45267 | -| terp1vv8vqhwtrnlh3eqnaqflgkxrf8fyhhr629v42y | 0x630ec05dcb1cff78e413e813f458c349d24bdc7a | 1 | 2 | 1796.45267 | -| terp1gmze8dn6y9lv5k09p6a4jxzkd88keccp3dry7n | 0x46c593b67a217eca59e50ebb59185669cf6ce301 | 1 | 2 | 1796.45267 | -| terp16uuzmedg2jza56ne3p0xw4a3pr47h36cm0a0sj | 0xd7382de5a85485da6a79885e6757b108ebebc758 | 1 | 2 | 1796.45267 | -| terp1kaspdgvvklkeg43cf07gc85xvjj79y6ehv92gt | 0xb76016a18cb7ed9456384bfc8c1e8664a5e29359 | 1 | 2 | 1796.45267 | -| terp17k52c9xqpmywzs3hqpt5nf532n0hgvsrr7wj8n | 0xf5a8ac14c00ec8e14237005749a69154df743203 | 1 | 2 | 1796.45267 | -| terp1x8netvkjwuuzgmzg9ngnmtupvy58ggj7j68t52 | 0x31e795b2d27738246c482cd13daf81612874225e | 1 | 2 | 1796.45267 | -| terp1l2z07y6f3k54pd7twyd9lj4d72c6vwezazh88a | 0xfa84ff13498da950b7cb711a5fcaadf2b1a63b22 | 1 | 2 | 1796.45267 | -| terp1xfp7lxqp26v9lwcfm0kgmmw8ey5mg5mwj3cdje | 0x3243ef980156985fbb09dbec8dedc7c929b4536e | 1 | 2 | 1796.45267 | -| terp1lfzme9jfasw22d44z8nqegmx0nkzfca30dausv | 0xfa45bc9649ec1ca536b511e60ca3667cec24e3b1 | 1 | 2 | 1796.45267 | -| terp1kqmdj8cxus8xe9nta24cfsrd7nhafmmxht50zc | 0xb036d91f06e40e6c966beaab84c06df4efd4ef66 | 1 | 2 | 1796.45267 | -| terp1fmfsh66252lyd2ypgl97z4gc9s55f72ryjauxc | 0x4ed30beb4aa2be46a88147cbe155182c2944f943 | 1 | 2 | 1796.45267 | -| terp1vwhwph0n5kj5r6n2jlqd2jlps2zfqydekgee8h | 0x63aee0ddf3a5a541ea6a97c0d54be182849011b9 | 1 | 2 | 1796.45267 | -| terp109fa73fdxhz36yxg0zjehqnzntt3d2uu9ve9tq | 0x7953df452d35c51d10c878a59b82629ad716ab9c | 1 | 2 | 1796.45267 | -| terp1j7tk4j7ypm58hm0grvrasshxp4qqecunxqd5xs | 0x97976acbc40ee87bede81b07d842e60d400ce393 | 1 | 2 | 1796.45267 | -| terp162nzqakv6jpjagtwjm6ea0sa9dgxxr0jz854ep | 0xd2a62076ccd4832ea16e96f59ebe1d2b50630df2 | 1 | 2 | 1796.45267 | -| terp1m2rry8pzzd84h47ya4wagqncm28k4w4ety4wur | 0xda86321c22134f5bd7c4ed5dd40278da8f6abab9 | 1 | 2 | 1796.45267 | -| terp1y9l4jnzmcf3h9f5gjl9g9pcszypkm5yleetr93 | 0x217f594c5bc26372a68897ca82871011036dd09f | 1 | 2 | 1796.45267 | -| terp1x3g8anz76p794kqhgy68383j9svlgycs0ejc4r | 0x34507ecc5ed07c5ad8174134789e322c19f41310 | 1 | 2 | 1796.45267 | -| terp107c94lcyxk6vjve95le7xjpehxztuey56ryg7t | 0x7fb05aff0435b4c93325a7f3e34839b984be6494 | 1 | 2 | 1796.45267 | -| terp1mdwfndkk2fffgztyzt2suenl7m8v0f6x6yeu0n | 0xdb5c99b6d6525294096412d50e667ff6cec7a746 | 1 | 2 | 1796.45267 | -| terp1av40dswx6g78xx2l99skf4l7s3rvkz64wz0eq3 | 0xeb2af6c1c6d23c73195f296164d7fe8446cb0b55 | 1 | 2 | 1796.45267 | -| terp127cgkyq776806qftnrakc50jsde0g6zec44dx6 | 0x57b08b101ef68efd012b98fb6c51f28372f46859 | 1 | 2 | 1796.45267 | -| terp1vv4qxylqm2wl0znly4gnyheflmahar7zj6r2jp | 0x632a0313e0da9df78a7f2551325f29fefb7e8fc2 | 1 | 2 | 1796.45267 | -| terp16p8q4djf3mhn39urzjqq4vcru5sf7500lxuqa7 | 0xd04e0ab6498eef38978314800ab303e5209f51ef | 1 | 2 | 1796.45267 | -| terp1upx8705p7n54f5mcw98v460egksxffu7ghd6hs | 0xe04c7f3e81f4e954d378714ecae9f945a064a79e | 1 | 2 | 1796.45267 | -| terp1q542kdrucxt86jpqmp6fquk7tntkjmmk03ll9q | 0x052aab347cc1967d4820d8749072de5cd7696f76 | 1 | 2 | 1796.45267 | -| terp1vtgdql9jk8zx32eh5q6a33w860fywxpsdws77v | 0x62d0d07cb2b1c468ab37a035d8c5c7d3d2471830 | 1 | 2 | 1796.45267 | -| terp1xudt07zmrn6jdrf002sl3u6glazt52m77ymnw3 | 0x371ab7f85b1cf5268d2f7aa1f8f348ff44ba2b7e | 1 | 2 | 1796.45267 | -| terp1yd4jglr8jm56ae5r5tzlqsvj97akchuqfr3xhd | 0x236b247c6796e9aee683a2c5f041922fbb6c5f80 | 1 | 2 | 1796.45267 | -| terp10d2ctkzy5khsdcn5cltxecf29g7jg60s5hmmf8 | 0x7b5585d844a5af06e274c7d66ce12a2a3d2469f0 | 1 | 2 | 1796.45267 | -| terp149nl3ar97va0fwxqkuh08my2mgku0c7n2may2k | 0xa967f8f465f33af4b8c0b72ef3ec8ada2dc7e3d3 | 1 | 2 | 1796.45267 | -| terp10w3mdhqn5dcwm8e8sjwqeznesfa9t8h7wt3cj4 | 0x7ba3b6dc13a370ed9f27849c0c8a79827a559efe | 1 | 2 | 1796.45267 | -| terp1r6q6t2t3tvfehd37cwshdf464q4zyp5jk5qqrj | 0x1e81a5a9715b139bb63ec3a176a6baa82a220692 | 1 | 2 | 1796.45267 | -| terp17lfvmf0aafd598l3gv8x238w9tngzw5qat8al6 | 0xf7d2cda5fdea5b429ff1430e6544ee2ae6813a80 | 1 | 2 | 1796.45267 | -| terp1r9q56mhvsw689a2e34nnlsy49enqlntu2qgc65 | 0x19414d6eec83b472f5598d673fc0952e660fcd7c | 1 | 2 | 1796.45267 | -| terp1j60hlkj47txueg6gcxaj962vrd42s9qz6yaw42 | 0x969f7fda55f2cdcca348c1bb22e94c1b6aa81402 | 1 | 2 | 1796.45267 | -| terp1gd9lrdr2jxaq2fzemf9d7umqdkgamwdkzx8vv8 | 0x434bf1b46a91ba052459da4adf73606d91ddb9b6 | 1 | 2 | 1796.45267 | -| terp1vds8757e0hq4x6hn3ugqfp27rzdxzps2mvs4pk | 0x63607f53d97dc1536af38f1004855e189a61060a | 1 | 2 | 1796.45267 | -| terp1lvmpy45qcqgqz7zrutj28ja2stfl393nx45tx0 | 0xfb36125680c010017843e2e4a3cbaa82d3f89633 | 1 | 2 | 1796.45267 | -| terp13cmryap3v0m2f5u2d9f7quv4372a3rana2kdy6 | 0x8e3632743163f6a4d38a6953e071958f95d88fb3 | 1 | 2 | 1796.45267 | -| terp1wkmlup0d2tuqgn9wwje0k8cs85y9hale4hckk3 | 0x75b7fe05ed52f8044cae74b2fb1f103d085bf7f9 | 1 | 2 | 1796.45267 | -| terp1qwv8w4ege6t094wcek5zjrm67efc30n9f6cvu3 | 0x0398775728ce96f2d5d8cda8290f7af65388be65 | 1 | 2 | 1796.45267 | -| terp13wv2vkte2uxydvxn9n95xtdcskr8ecnhyqx5h8 | 0x8b98a65979570c46b0d32ccb432db885867ce277 | 1 | 2 | 1796.45267 | -| terp1l4n923da99y0y6s3zrfld2tfrcsv06kgg8gp7k | 0xfd665545bd2948f26a1110d3f6a9691e20c7eac8 | 1 | 2 | 1796.45267 | -| terp1q5dqykf9nkcw27zuk24sfaev48n4gwqaukehfm | 0x051a0259259db0e5785cb2ab04f72ca9e754381d | 1 | 2 | 1796.45267 | -| terp12g8rlazusju8m7lx44dhc8sdmuyld7ce50ne3h | 0x520e3ff45c84b87dfbe6ad5b7c1e0ddf09f6fb19 | 1 | 2 | 1796.45267 | -| terp1l78vxk5zpunga7x85nf2z3z2p9fn56jkp5gqus | 0xff8ec35a820f268ef8c7a4d2a1444a09533a6a56 | 1 | 2 | 1796.45267 | -| terp17x8jyfmp29c0jyenj9y4eahahcd0n470xaz3p4 | 0xf18f2227615170f9133391495cf6fdbe1af9d7cf | 1 | 2 | 1796.45267 | -| terp18yyutf2quc4lwx9lek598h63se6fpswg7q52ll | 0x3909c5a540e62bf718bfcda853df51867490c1c8 | 1 | 2 | 1796.45267 | -| terp1p3dscjqhtrvzk70mlwu4l2sllknhzwj3d0xm8n | 0x0c5b0c481758d82b79fbfbb95faa1ffda7713a51 | 1 | 2 | 1796.45267 | -| terp1k4paa4danhej2vu6x2vcr0jkmzhx4ut40563cf | 0xb543ded5bd9df325339a329981be56d8ae6af175 | 1 | 2 | 1796.45267 | -| terp1qlfz20q7nmpt3tzuutl67pnkcn6uf4zv0lp8ug | 0x07d2253c1e9ec2b8ac5ce2ffaf0676c4f5c4d44c | 1 | 2 | 1796.45267 | -| terp1cf2mhaexj8mrv0rljmj8tay8smnzmex9ykkmjw | 0xc255bbf72691f6363c7f96e475f48786e62de4c5 | 1 | 2 | 1796.45267 | -| terp1kq9q4a0d8h8v2h3zyt3959g6ud2q3c8x0pcgxh | 0xb00a0af5ed3dcec55e2222e25a151ae35408e0e6 | 1 | 2 | 1796.45267 | -| terp1pt93dyynvewlm456lrh3x9zfnl88urkanshh82 | 0x0acb169093665dfdd69af8ef1314499fce7e0edd | 1 | 2 | 1796.45267 | -| terp1edjpt45zcwuny8w6hqnm2azrzh8hdgkwk3s8l4 | 0xcb6415d682c3b9321ddab827b5744315cf76a2ce | 1 | 2 | 1796.45267 | -| terp18pgd0l05fk6m4zk4hshq2he4xxc5vhhp8lvyp4 | 0x3850d7fdf44db5ba8ad5bc2e055f3531b1465ee1 | 1 | 2 | 1796.45267 | -| terp1g9twtr6c8djcnukw4c427dejpf96egk7h6sp9q | 0x4156e58f583b6589f2ceae2aaf37320a4baca2de | 1 | 2 | 1796.45267 | -| terp127vg9254n848emsvj2fpdzwjjsultr280zvr2w | 0x579882aa9599ea7cee0c92921689d29439f58d47 | 1 | 2 | 1796.45267 | -| terp1aclm524aem3mdaqgwzzwxxwvhthg5hp6vmhk47 | 0xee3fba2abdcee3b6f4087084e319ccbaee8a5c3a | 1 | 2 | 1796.45267 | -| terp1m52kedj49t898tupavkxgugsh4zgvgj2cv3n86 | 0xdd156cb6552ace53af81eb2c647110bd4486224a | 1 | 2 | 1796.45267 | -| terp1dndl3fvdrt4vy39addy5tzmvxp2y9f2zwcvx3h | 0x6cdbf8a58d1aeac244bd6b49458b6c305442a542 | 1 | 2 | 1796.45267 | -| terp1aaqgy33mlp7wf2z9x6gg3z8xq4hglleuwkew0g | 0xef4082463bf87ce4a84536908888e6056e8fff3c | 1 | 2 | 1796.45267 | -| terp19m84rsuf0ugae39wu7fsgzvyytmwfpkx70ryjp | 0x2ecf51c3897f11dcc4aee79304098422f6e486c6 | 1 | 2 | 1796.45267 | -| terp17dyhsn2jes643d5pk2qu82ngfpkakh6wf4j8cw | 0xf349784d52cc3558b681b281c3aa68486ddb5f4e | 1 | 2 | 1796.45267 | -| terp15auktvqfpx7lfvcw8wtsgq42mgv09qtpwq3vh5 | 0xa77965b00909bdf4b30e3b970402aada18f28161 | 1 | 2 | 1796.45267 | -| terp1jl6x9qnyd53vjy3tddpea30007z2zqzgd900cv | 0x97f46282646d22c9122b6b439ec5ef7f84a10048 | 1 | 2 | 1796.45267 | -| terp1md88cnguqnl47jek2kqpqp4hm7njjdh7mjsxz8 | 0xdb4e7c4d1c04ff5f4b3655801006b7dfa72936fe | 1 | 2 | 1796.45267 | -| terp1flqp8lhyk0cpz89jhlthrs8fvmxlufnnc0peyx | 0x4fc013fee4b3f0111cb2bfd771c0e966cdfe2673 | 1 | 2 | 1796.45267 | -| terp1w8zs2jtwm86heux4casvqp2rd5r3h2pyzk9pxh | 0x71c505496ed9f57cf0d5c760c005436d071ba824 | 1 | 2 | 1796.45267 | -| terp17246gtw07mu39g4xkjjjcfu66vjxk9aedwcun0 | 0xf2aba42dcff6f912a2a6b4a52c279ad3246b17b9 | 1 | 2 | 1796.45267 | -| terp1njz8ayxsffnwsrcjpmvdmmffhk4x7687lyg8pv | 0x9c847e90d04a66e80f120ed8dded29bdaa6f68fe | 1 | 2 | 1796.45267 | -| terp1ckn3708dktaqctyypzdqxsl4hkf75l7wgru8gd | 0xc5a71f3cedb2fa0c2c84089a0343f5bd93ea7fce | 1 | 2 | 1796.45267 | -| terp1sgutnll4a9kdmlzkss6g8qyupn6k53hk9gwl0u | 0x8238b9fff5e96cddfc56843483809c0cf56a46f6 | 1 | 2 | 1796.45267 | -| terp18hutev7x2qtwykhq77nj7rkuj88fcqw0ycqg0m | 0x3df8bcb3c65016e25ae0f7a72f0edc91ce9c01cf | 1 | 2 | 1796.45267 | -| terp1saygf0w300amrgh72f9wpwpcsfwra7th939uwx | 0x874884bdd17bfbb1a2fe524ae0b838825c3ef977 | 1 | 2 | 1796.45267 | -| terp1kvwufx4r7rzczjfgdtlyqx46japq34lwnu5jxu | 0xb31dc49aa3f0c58149286afe401aba974208d7ee | 1 | 2 | 1796.45267 | -| terp1g68zmq2eyn6jkn3khm56fw9l9hj6at3a59gk85 | 0x468e2d815924f52b4e36bee9a4b8bf2de5aeae3d | 1 | 2 | 1796.45267 | -| terp1q0wfh5trys5y9ng9ek367u73mu0tvmggasalng | 0x03dc9bd163242842cd05cda3af73d1df1eb66d08 | 1 | 2 | 1796.45267 | -| terp139hnj4cl6a5zh37x7g097nrz7pcvrj0kc8vvkv | 0x896f39571fd7682bc7c6f21e5f4c62f070c1c9f6 | 1 | 2 | 1796.45267 | -| terp1y2cmdgae5t3lxukpeaqfs7k9dylqj35r0k606v | 0x22b1b6a3b9a2e3f372c1cf40987ac5693e094683 | 1 | 2 | 1796.45267 | -| terp13ccuzqhrhcvwnp07ts6q9gey4qnvkqnsh8kul2 | 0x8e31c102e3be18e985fe5c3402a324a826cb0270 | 1 | 2 | 1796.45267 | -| terp1lwr46n7660d9dls3udfzpencfq20kke5ljd0fg | 0xfb875d4fdad3da56fe11e35220e6784814fb5b34 | 1 | 2 | 1796.45267 | -| terp1ggg2w7x92ltvpxgltz08wcfq0dfqsr79l5j242 | 0x4210a778c557d6c0991f589e7761207b52080fc5 | 1 | 2 | 1796.45267 | -| terp1299z522nelh5d4na55tdxesyqm77t3z9jgp4qd | 0x514a2a2953cfef46d67da516d3660406fde5c445 | 1 | 2 | 1796.45267 | -| terp1zcsev2pqsqh6t2qx22mc97p9gnkj6geyx9wdwt | 0x1621962820802fa5a80652b782f82544ed2d2324 | 1 | 2 | 1796.45267 | -| terp10tu09l5a250ge7exvtxel6n6qlga4lgmg7gzsp | 0x7af8f2fe9d551e8cfb2662cd9fea7a07d1dafd1b | 1 | 2 | 1796.45267 | -| terp19rwtnm7j4hl6qt5vaua3h0g3kzaupl6uyudu7w | 0x28dcb9efd2adffa02e8cef3b1bbd11b0bbc0ff5c | 1 | 2 | 1796.45267 | -| terp1epncvagv6tj8zv063p4a2ajcmuds8gz0e5u925 | 0xc86786750cd2e47131fa886bd57658df1b03a04f | 1 | 2 | 1796.45267 | -| terp1wlnf8j0uz0rryrtnyv0dqsu66vtzxktut6hw8k | 0x77e693c9fc13c6320d73231ed0439ad31623597c | 1 | 2 | 1796.45267 | -| terp1z7h70tqxqg5u70nzn3z469zkcqkvzwge86967q | 0x17afe7ac060229cf3e629c455d1456c02cc13919 | 1 | 2 | 1796.45267 | -| terp1eaypchsq78vcn92euvpylpkadpcacvp4xfaymh | 0xcf481c5e00f1d9899559e3024f86dd6871dc3035 | 1 | 2 | 1796.45267 | -| terp1crjmfmp6mpefreyherjg3h96fvhqetxs6wu2sd | 0xc0e5b4ec3ad87291e497c8e488dcba4b2e0cacd0 | 1 | 2 | 1796.45267 | -| terp1zxhznrn55alv2c49lunzaczcv45wkq79swkske | 0x11ae298e74a77ec562a5ff262ee0586568eb03c5 | 1 | 2 | 1796.45267 | -| terp1lntp4tpwp4se8xe5j9g5svzx6v335slqj2s54a | 0xfcd61aac2e0d61939b349151483046d3231a43e0 | 1 | 2 | 1796.45267 | -| terp14jyxh2kfedfq2acvaddanlhzgkmddtpq82g7z6 | 0xac886baac9cb5205770ceb5bd9fee245b6d6ac20 | 1 | 2 | 1796.45267 | -| terp1wj9l8s2du0vvgreucyy2kgzvj3s3ry9r6f39jf | 0x748bf3c14de3d8c40f3cc108ab204c94611190a3 | 1 | 2 | 1796.45267 | -| terp1z0yrqejdsqxjhej7gskf8v0yuy449qefyrvn6n | 0x13c830664d800d2be65e442c93b1e4e12b528329 | 1 | 2 | 1796.45267 | -| terp1cs9tmjjucrjvcncptsrefwgyegcv92lcfyvtxy | 0xc40abdca5cc0e4cc4f015c0794b904ca30c2abf8 | 1 | 2 | 1796.45267 | -| terp1curwdlgy4gh9czdamnwgash2s0pl9rvhlf2fg3 | 0xc706e6fd04aa2e5c09bddcdc8ec2ea83c3f28d97 | 1 | 2 | 1796.45267 | -| terp1w6jzz47fugd92rejme7zzehuf80q5wxz23fqn2 | 0x76a42157c9e21a550f32de7c2166fc49de0a38c2 | 1 | 2 | 1796.45267 | -| terp1e4l9rm69qjdsk0tjcupc0cpulxsa4eg9tjtdmh | 0xcd7e51ef45049b0b3d72c70387e03cf9a1dae505 | 1 | 2 | 1796.45267 | -| terp1lgzxekf8v39xwhxvdysg5mk9xn94g6qhkd934s | 0xfa046cd927644a675ccc69208a6ec534cb546817 | 1 | 2 | 1796.45267 | -| terp1dhnzhnkxx449slkja9jklpwqljhlc9z588yfpu | 0x6de62bcec6356a587ed2e9656f85c0fcaffc1454 | 1 | 2 | 1796.45267 | -| terp1f9pjkvhjvjrpxhjkejfdk6pkpw98set7vtpwgz | 0x49432b32f26486135e56cc92db68360b8a78657e | 1 | 2 | 1796.45267 | -| terp1pw00q5n4yj2az5kdecag0g0ql0c2au0p8v3m3e | 0x0b9ef052752495d152cdce3a87a1e0fbf0aef1e1 | 1 | 2 | 1796.45267 | -| terp1095h02xzclj2eclm67xu29jajpasw2fyst8kn0 | 0x796977a8c2c7e4ace3fbd78dc5165d907b072924 | 1 | 2 | 1796.45267 | -| terp1spwlfa4aw20n5pnp8kq3u378z9rzhfywzr4usa | 0x805df4f6bd729f3a06613d811e47c711462ba48e | 1 | 2 | 1796.45267 | -| terp16l07fku0skp39qknmmu44v22q69twrz7p5egtt | 0xd7dfe4db8f85831282d3def95ab14a068ab70c5e | 1 | 2 | 1796.45267 | -| terp1p3x30aj8vf0wxkkuf0qh3m94upl08v97alzugk | 0x0c4d17f647625ee35adc4bc178ecb5e07ef3b0be | 1 | 2 | 1796.45267 | -| terp1njs2e4jyz4m6w89vvr2ujkwjkp6qrqfgh5shfx | 0x9ca0acd6441577a71cac60d5c959d2b074018128 | 1 | 2 | 1796.45267 | -| terp1w3up5rkr36xnss9zyxkjpt75arcdgpuwykfazx | 0x74781a0ec38e8d3840a221ad20afd4e8f0d4078e | 1 | 2 | 1796.45267 | -| terp18r4yvx7f8cndt63gv835uufc6lpc3fzc04l75n | 0x38ea461bc93e26d5ea2861e34e7138d7c388a458 | 1 | 2 | 1796.45267 | -| terp1kphu6f69903egzt8tsxqw03c3sjtgmgyxulqnu | 0xb06fcd27452be39409675c0c073e388c24b46d04 | 1 | 2 | 1796.45267 | -| terp14d2jjvw4qrzxx5qrqcyg20kt954n8lxz9829sj | 0xab552931d500c46350030608853ecb2d2b33fcc2 | 1 | 2 | 1796.45267 | -| terp14gu7jfmucf5g0aayxua6htmssfejan6s9klxh6 | 0xaa39e9277cc26887f7a4373babaf7082732ecf50 | 1 | 2 | 1796.45267 | -| terp1575c60fav9uz6hmmz484pj5779zq609jm46nj9 | 0xa7a98d3d3d61782d5f7b154f50ca9ef1440d3cb2 | 1 | 2 | 1796.45267 | -| terp1qj8xv6l7k9p8t6zfe36dhtxly7up7rn2dp84xn | 0x048e666bfeb14275e849cc74dbacdf27b81f0e6a | 1 | 2 | 1796.45267 | -| terp162v2e4e6fez0a65rzvkdxw9vaa8dj0n9x99cuv | 0xd298acd73a4e44feea83132cd338acef4ed93e65 | 1 | 2 | 1796.45267 | -| terp1900gpex88hjaxnuew8aewr83l04jtj2njlrdtr | 0x2bde80e4c73de5d34f9971fb970cf1fbeb25c953 | 1 | 2 | 1796.45267 | -| terp1zljpev3fw3t9f37zpcqmglhepn5kkcxwt06at7 | 0x17e41cb229745654c7c20e01b47ef90ce96b60ce | 1 | 2 | 1796.45267 | -| terp19qnztwh4tzdlw8z5zxxe66sqdgww3gr0u8w3lt | 0x282625baf5589bf71c54118d9d6a006a1ce8a06f | 1 | 2 | 1796.45267 | -| terp1ddvjawgv0fje4fagmlakl4x2qfy34j0t7kkny6 | 0x6b592eb90c7a659aa7a8dffb6fd4ca02491ac9eb | 1 | 2 | 1796.45267 | -| terp1yqgqlqejwrn7gzj2399htp4x20kf0lvx2mug69 | 0x20100f833270e7e40a4a894b7586a653ec97fd86 | 1 | 2 | 1796.45267 | -| terp170vy4mm0z42mpad83djjs83r5jfqcks400tzmk | 0xf3d84aef6f1555b0f5a78b65281e23a4920c5a15 | 1 | 2 | 1796.45267 | -| terp132sv75zgv45u0a595q4aac64rpeyzz5ljd36v2 | 0x8aa0cf50486569c7f685a02bdee3551872410a9f | 1 | 2 | 1796.45267 | -| terp1gfc4zedh0wsksyv5v5xde58twfrx8hsdxnsjp0 | 0x42715165b77ba1681194650cdcd0eb724663de0d | 1 | 2 | 1796.45267 | -| terp1p3708ymzgsw5vd7fgd98vsjp6me3v692dgtzhe | 0x0c7cf39362441d4637c9434a764241d6f31668aa | 1 | 2 | 1796.45267 | -| terp1et9u0nqdhdek4x4plcvrr9wx6cneytkkgzpnje | 0xcacbc7cc0dbb736a9aa1fe183195c6d627922ed6 | 1 | 2 | 1796.45267 | -| terp1z5kr66k7wsjwgdmras49stw5z9zekg5umr73dr | 0x152c3d6ade7424e43763ec2a582dd411459b229c | 1 | 2 | 1796.45267 | -| terp1k8m6wtnzu60qw26dtv33hx5umwuahjqh5z0leg | 0xb1f7a72e62e69e072b4d5b231b9a9cdbb9dbc817 | 1 | 2 | 1796.45267 | -| terp150hcq35a8x87r4ut4kvj4qsgl0yv6fml4y4rs6 | 0xa3ef80469d398fe1d78bad992a8208fbc8cd277f | 1 | 2 | 1796.45267 | -| terp1fnngmtlv3gxmf9pmwmcz6mft0maet8mqt4jgua | 0x4ce68dafec8a0db4943b76f02d6d2b7efb959f60 | 1 | 2 | 1796.45267 | -| terp1apj7tk3xuga05qw42tzjhev32mmg4wjqp8rxan | 0xe865e5da26e23afa01d552c52be59156f68aba40 | 1 | 2 | 1796.45267 | -| terp1mhxptkj30vumk2juxjgpry7gtsv2un8gak3ssy | 0xddcc15da517b39bb2a5c34901193c85c18ae4ce8 | 1 | 2 | 1796.45267 | -| terp1a8mp55wnmj3td3rt6pp5763vmc3gzn9w66cz3k | 0xe9f61a51d3dca2b6c46bd0434f6a2cde22814cae | 1 | 2 | 1796.45267 | -| terp1h7w6lkvpde5merhmjsfgje6yacwruqgmdqyj68 | 0xbf9dafd9816e69bc8efb9412896744ee1c3e011b | 1 | 2 | 1796.45267 | -| terp1ksr88jetq9dtce5yhy62aezkh3r6q6hjn2ym4w | 0xb40673cb2b015abc6684b934aee456bc47a06af2 | 1 | 2 | 1796.45267 | -| terp1rfqjemgd9exe3glkpprcl6vf360h3kz7s67e7r | 0x1a412ced0d2e4d98a3f608478fe9898e9f78d85e | 1 | 2 | 1796.45267 | -| terp1nu40dwzzdt7hztu3aypstfdhjqlzkqw4vr9vee | 0x9f2af6b8426afd712f91e90305a5b7903e2b01d5 | 1 | 2 | 1796.45267 | -| terp12l5kagx7yu7t43zk90rc97gkpcrfrdf33genxx | 0x57e96ea0de273cbac4562bc782f9160e0691b531 | 1 | 2 | 1796.45267 | -| terp1y7gx0f44a40vx72ww50tqqpqe6hteevnnsknf0 | 0x279067a6b5ed5ec3794e751eb00020ceaebce593 | 1 | 2 | 1796.45267 | -| terp1ast88sulnzjhs2a3ky878440gjma72ruk9f005 | 0xec1673c39f98a5782bb1b10fe3d6af44b7df287c | 1 | 2 | 1796.45267 | -| terp1fzk3sra6kxd6akrc3qeqsx0a3cjtl2vtzk3r7y | 0x48ad180fbab19baed87888320819fd8e24bfa98b | 1 | 2 | 1796.45267 | -| terp1y68jcfw2fr9cw546h29l0746w7h0xva2u5a5qp | 0x268f2c25ca48cb8752baba8bf7faba77aef333aa | 1 | 2 | 1796.45267 | -| terp1s2qf8kwnhgw59ersssarw2w4npjnnrv58adn58 | 0x828093d9d3ba1d42e470843a3729d59865398d94 | 1 | 2 | 1796.45267 | -| terp1va20a0gfshjnwl9yuj27lty0rznhra7vf9xm2w | 0x6754febd0985e5377ca4e495efac8f18a771f7cc | 1 | 2 | 1796.45267 | -| terp1u64mk5k3fc3t72e6f4m4yc5d3stuyhm70ugp86 | 0xe6abbb52d14e22bf2b3a4d7752628d8c17c25f7e | 1 | 2 | 1796.45267 | -| terp1qx2eujgam5a6vq5hgtkj0a9vd0lqfc6p0m5gfl | 0x01959e491ddd3ba6029742ed27f4ac6bfe04e341 | 1 | 2 | 1796.45267 | -| terp16w6x7ah9mqg0g9fjt4wdj0qyuaxr4ms64hqnsm | 0xd3b46f76e5d810f415325d5cd93c04e74c3aee1a | 1 | 2 | 1796.45267 | -| terp14v86df5ej4xz994lw6xe27duzx4l4nmhzl49zz | 0xab0fa6a699954c2296bf768d9579bc11abfacf77 | 1 | 2 | 1796.45267 | -| terp1eefae72wnkku366kkel9s85qqvfcgc9apx5q02 | 0xce53dcf94e9dadc8eb56b67e581e8003138460bd | 1 | 2 | 1796.45267 | -| terp1dyhs79wj35p8gkzye3zff5sma2xks3n00wmvlg | 0x692f0f15d28d02745844cc4494d21bea8d68466f | 1 | 2 | 1796.45267 | -| terp199zzjg9y6en6f0frmgge6l2erk8xzhjpc4kkwq | 0x29442920a4d667a4bd23da119d7d591d8e615e41 | 1 | 2 | 1796.45267 | -| terp1qmczzpvyyhr8ln9dqe6dfq88nczm7n2um2l3xg | 0x06f021058425c67fccad0674d480e79e05bf4d5c | 1 | 2 | 1796.45267 | -| terp12ey4vpfsam7k5gk4wm0wx3twl3vdc7symw2ck4 | 0x5649560530eefd6a22d576dee3456efc58dc7a04 | 1 | 2 | 1796.45267 | -| terp1tlcjwxz07k6lkhlzc79k46nsfujltjrr7lnjrc | 0x5ff127184ff5b5fb5fe2c78b6aea704f25f5c863 | 1 | 2 | 1796.45267 | -| terp15wntxfcyskpetyvvfd259htduc6y4h0jrc47lr | 0xa3a6b32704858395918c4b5542dd6de6344addf2 | 1 | 2 | 1796.45267 | -| terp1pv8w495c2zlf8he4tuudfdg2msp0g6gc7drvjp | 0x0b0eea969850be93df355f38d4b50adc02f46918 | 1 | 2 | 1796.45267 | -| terp1je7hw3efu0gfugss3teygxxaj0vamatnkt02dn | 0x967d774729e3d09e22108af24418dd93d9ddf573 | 1 | 2 | 1796.45267 | -| terp1gwepf4635zhhn8th56ac8ayjj3qpd903m8c2pj | 0x43b214d751a0af799d77a6bb83f49294401695f1 | 1 | 2 | 1796.45267 | -| terp1epl89mlu0auf85h98felqq3qh2ejvkjrjqh296 | 0xc87e72effc7f7893d2e53a73f00220bab3265a43 | 1 | 2 | 1796.45267 | -| terp1mt6uy64fmp6kcrpwku455j2xpzkfpsp5cyl2d5 | 0xdaf5c26aa9d8756c0c2eb72b4a494608ac90c034 | 1 | 2 | 1796.45267 | -| terp109lp5wlt5hnyfrzgddfk29c3s9ekc3ljrc5l2v | 0x797e1a3beba5e6448c486b5365171181736c47f2 | 1 | 2 | 1796.45267 | -| terp142fk29e3wyr59pavs0qnv0eage5m4w062s2vyu | 0xaa9365173171074287ac83c1363f3d4669bab9fa | 1 | 2 | 1796.45267 | -| terp1tqp09n3ama654p9fvqsf2sgtf8x6g35zhq309z | 0x5802f2ce3ddf754a84a9602095410b49cda44682 | 1 | 2 | 1796.45267 | -| terp1ewlhkh36kuyel7fzyp3fm0yksfaqq9cdcl4mle | 0xcbbf7b5e3ab7099ff92220629dbc96827a00170d | 1 | 2 | 1796.45267 | -| terp13tn5rf4fwv4w8tx9f4ph40d35ndn4r490h8ayf | 0x8ae741a6a9732ae3acc54d437abdb1a4db3a8ea5 | 1 | 2 | 1796.45267 | -| terp1khth2fjeyf7swwgfs889m8gxnsprzax0w3ufmm | 0xb5d7752659227d07390981ce5d9d069c023174cf | 1 | 2 | 1796.45267 | -| terp1lcjchd4zrlelqrqr756qlutxg0nfdl4235dd7k | 0xfe258bb6a21ff3f00c03f5340ff16643e696feaa | 1 | 2 | 1796.45267 | -| terp14e9rkfdhpr84azaet06k4z8jh7lk8mftzvzu3l | 0xae4a3b25b708cf5e8bb95bf56a88f2bfbf63ed2b | 1 | 2 | 1796.45267 | -| terp1hprx6lxkmdrl88f6t8xka7ua3wyegypjm8yee5 | 0xb8466d7cd6db47f39d3a59cd6efb9d8b89941032 | 1 | 2 | 1796.45267 | -| terp1nxnx4fs0afxcrhnaych46lw5vlwzc8nlkpd5mx | 0x99a66aa60fea4d81de7d262f5d7dd467dc2c1e7f | 1 | 2 | 1796.45267 | -| terp1duuc9gsa0ctqprmn9gmz4ra2naptlj4h75hkfg | 0x6f3982a21d7e16008f732a362a8faa9f42bfcab7 | 1 | 2 | 1796.45267 | -| terp1ccuftkk46n3lt2pel89vn9chxc57470x5g7t7q | 0xc63895dad5d4e3f5a839f9cac997173629eaf9e6 | 1 | 2 | 1796.45267 | -| terp1u7x6h9uq45qnvkqu5j5pwawhu5jcmgpkrzcymt | 0xe78dab9780ad0136581ca4a81775d7e5258da036 | 1 | 2 | 1796.45267 | -| terp1elgw5yvzyfyckz3nrjuyazfazj0g5gsfhuxm7q | 0xcfd0ea118222498b0a331cb84e893d149e8a2209 | 1 | 2 | 1796.45267 | -| terp1tqj9qg9c0qw6l5st55fsc2y6a89suvsuey26gh | 0x58245020b8781dafd20ba5130c289ae9cb0e321c | 1 | 2 | 1796.45267 | -| terp1tua0vz756769cjarx47x8xt2u2fw6pyc5gal2a | 0x5f3af60bd4d7b45c4ba3357c63996ae292ed0498 | 1 | 2 | 1796.45267 | -| terp1yv2zpgc3dmsulgxe7ucf80ze3f8x85u3sft2w0 | 0x231420a3116ee1cfa0d9f73093bc598a4e63d391 | 1 | 2 | 1796.45267 | -| terp1npfyq6jr8zpyrxpz49e4v2hu9w8tddkp7qt8js | 0x9852406a433882419822a973562afc2b8eb6b6c1 | 1 | 2 | 1796.45267 | -| terp1m75qr8cud3lmqzmzmlgajzsgqhlral5xaaztm0 | 0xdfa8019f1c6c7fb00b62dfd1d90a0805fe3efe86 | 1 | 2 | 1796.45267 | -| terp1myvdujuenlr443fthypn5sd5crs5r5z3p0nsus | 0xd918de4b999fc75ac52bb9033a41b4c0e141d051 | 1 | 2 | 1796.45267 | -| terp1s52fs2g94w3rp6sk70la0tkvvekedruqcdzsy5 | 0x8514982905aba230ea16f3ffd7aecc666d968f80 | 1 | 2 | 1796.45267 | -| terp1pws3kxdjfllg9fsul84f9yj5079ath5zwqcv2e | 0x0ba11b19b24ffe82a61cf9ea9292547f8bd5de82 | 1 | 2 | 1796.45267 | -| terp1lenvk5w6xgwvaznwp7fn7njstphepae72eq3le | 0xfe66cb51da321cce8a6e0f933f4e50586f90f73e | 1 | 2 | 1796.45267 | -| terp1zeef7dxvazrrnuc2jscscrzgc30e6hwc3r45dt | 0x16729f34cce88639f30a94310c0c48c45f9d5dd8 | 1 | 2 | 1796.45267 | -| terp1r68y4fwl3hyhjx3vj63qr2mw0j6yuh0u5awfzl | 0x1e8e4aa5df8dc9791a2c96a201ab6e7cb44e5dfc | 1 | 2 | 1796.45267 | -| terp1mat33d8yhdk0u9yd3fuvfl0wevfxnc7fmf5xql | 0xdf5718b4e4bb6cfe148d8a78c4fdeecb1269e3c9 | 1 | 2 | 1796.45267 | -| terp1mplte3p2lqjjnfcjhk20qdpk9fl2kry3ykdg3a | 0xd87ebcc42af82529a712bd94f034362a7eab0c91 | 1 | 2 | 1796.45267 | -| terp178jkd276l7zjnzpzmzxtsssap0plg6chtdxaqg | 0xf1e566abdaff85298822d88cb8421d0bc3f46b17 | 1 | 2 | 1796.45267 | -| terp12mh7xg63gyd5xgprt7t7ezjdflx3n4tmynus0e | 0x56efe32351411b4320235f97ec8a4d4fcd19d57b | 1 | 2 | 1796.45267 | -| terp1gvrm37t968gsuvatmw4ammxq0t7uquenutwpdd | 0x4307b8f965d1d10e33abdbabddecc07afdc07333 | 1 | 2 | 1796.45267 | -| terp146z4yqkums4hjhcqqc6c0u9xjewp7d6yyut9af | 0xae855202dcdc2b795f00063587f0a6965c1f3744 | 1 | 2 | 1796.45267 | -| terp1td0cwd8cm07k5ca3xf7vsa3jf3h6970wz8u7hw | 0x5b5f8734f8dbfd6a63b1327cc876324c6fa2f9ee | 1 | 2 | 1796.45267 | -| terp1eyfhsdkhxx5x5ndwsz5efutqqher8ja9seec69 | 0xc9137836d731a86a4dae80a994f16005f233cba5 | 1 | 2 | 1796.45267 | -| terp1kejgu257jfnngvh9qn25fxjvwp3n8n5zr4f0vd | 0xb6648e2a9e92673432e504d5449a4c706333ce82 | 1 | 2 | 1796.45267 | -| terp1gv7944ujgprp9sfhxjd0ycfnfx2zfq0d0t98qv | 0x433c5ad792404612c137349af2613349942481ed | 1 | 2 | 1796.45267 | -| terp1l4qp634ulv6yfj3yk60pm54vruu7kn950zyu2s | 0xfd401d46bcfb3444ca24b69e1dd2ac1f39eb4cb4 | 1 | 2 | 1796.45267 | -| terp1q9p6ryyc2y4gg5s4cmgnz5r5hzvcgqrzwcr83f | 0x0143a19098512a845215c6d1315074b899840062 | 1 | 2 | 1796.45267 | -| terp1c4gn4suzuf2ryjedchw75wpcakylfjew2xeu5n | 0xc5513ac382e254324b2dc5ddea3838ed89f4cb2e | 1 | 2 | 1796.45267 | -| terp102ztsp9zns39uk6sndmlrym26m3yyn7sccean2 | 0x7a84b804a29c225e5b509b77f1936ad6e2424fd0 | 1 | 2 | 1796.45267 | -| terp1u5ctf5ychqsz3y5cewmu6axhsqavpt3ezgm53e | 0xe530b4d098b820289298cbb7cd74d7803ac0ae39 | 1 | 2 | 1796.45267 | -| terp1ke2aaawl8u7l9tph6vjnusreksku8dg7u5uee9 | 0xb655def5df3f3df2ac37d3253e4079b42dc3b51e | 1 | 2 | 1796.45267 | -| terp1v9r9tgkga998yle89kwzr7uha83xr8uag6ahy3 | 0x614655a2c8e94a727f272d9c21fb97e9e2619f9d | 1 | 2 | 1796.45267 | -| terp1e86gjyh9llvdfk29thtfhcd9urvrpuenlqdcac | 0xc9f48912e5ffd8d4d9455dd69be1a5e0d830f333 | 1 | 2 | 1796.45267 | -| terp1evcvcrqsuan59w04aeh03u8nq6y59vsdlfcfr0 | 0xcb30cc0c10e76742b9f5ee6ef8f0f3068942b20d | 1 | 2 | 1796.45267 | -| terp1dnxx6h4ccskrers96mg9xnsk5lq5zraudd5ws2 | 0x6ccc6d5eb8c42c3c8e05d6d0534e16a7c1410fbc | 1 | 2 | 1796.45267 | -| terp1a9ds4n8rm4p395wal0xa3773swavr2zx8avzdp | 0xe95b0acce3dd4312d1ddfbcdd8fbd183bac1a846 | 1 | 2 | 1796.45267 | -| terp18u68k95kustg646h2mzuse2dvxwqx4m0arzdak | 0x3f347b1696e4168d575756c5c8654d619c03576f | 1 | 2 | 1796.45267 | -| terp1nwljnv76f4ev09qqyxma042ucsfzka8kdx9g90 | 0x9bbf29b3da4d72c7940021b7d7d55cc4122b74f6 | 1 | 2 | 1796.45267 | -| terp157tytr4f7gr2wl4r8zkauz0u3rgu9mc4v57kku | 0xa796458ea9f206a77ea338adde09fc88d1c2ef15 | 1 | 2 | 1796.45267 | -| terp1pzyxmq2jltq65lmxd99es2upwsu69aqzhqk2th | 0x08886d8152fac1aa7f66694b982b817439a2f402 | 1 | 2 | 1796.45267 | -| terp1anurzedaegprpmx7rmpk72zdr9kpurptg0txys | 0xecf83165bdca0230ecde1ec36f284d196c1e0c2b | 1 | 2 | 1796.45267 | -| terp16g9flfw2tkuy32me49w0u95562fy6lxnyfqlqj | 0xd20a9fa5ca5db848ab79a95cfe1694d2924d7cd3 | 1 | 2 | 1796.45267 | -| terp1v0wtf2yvj223dnqjn4pstdqpptqyqt48jwv5sh | 0x63dcb4a88c929516cc129d4305b4010ac0402ea7 | 1 | 2 | 1796.45267 | -| terp18uh6l7r3npw8vhcp4e8lwe70er37gt2zl2ryvp | 0x3f2faff871985c765f01ae4ff767cfc8e3e42d42 | 1 | 2 | 1796.45267 | -| terp19yz3rxwuk5xm8zzffq27z3mr3jzwgtey5p7ht3 | 0x29051199dcb50db388494815e147638c84e42f24 | 1 | 2 | 1796.45267 | -| terp18x6ls9majwta98hkns0lg7p9awxgpxwpng0khw | 0x39b5f8177d9397d29ef69c1ff47825eb8c8099c1 | 1 | 2 | 1796.45267 | -| terp14a2amhpfsamnjt72588rhsmzkfusqcwxk3azhr | 0xaf55dddc298777392fcaa1ce3bc362b2790061c6 | 1 | 2 | 1796.45267 | -| terp19pzg2hjshjdvrgjvgsw3yx5mm3y3ayvghnazze | 0x2844855e50bc9ac1a24c441d121a9bdc491e9188 | 1 | 2 | 1796.45267 | -| terp18cpncg4haf4qhp0vn5x5gmu32fw84y6kx5cu4u | 0x3e033c22b7ea6a0b85ec9d0d446f91525c7a9356 | 1 | 2 | 1796.45267 | -| terp15ugjcvsl05ak42jw8zcll58ryfpx05d26cjp93 | 0xa7112c321f7d3b6aaa4e38b1ffd0e3224267d1aa | 1 | 2 | 1796.45267 | -| terp1x788ceh5rhfwdj9u2vxd6ltfaw8ye8r3q5p5tz | 0x378e7c66f41dd2e6c8bc530cdd7d69eb8e4c9c71 | 1 | 2 | 1796.45267 | -| terp17dtjhur0yrvuv25f5jku5mtzkapr9zahctvtn2 | 0xf3572bf06f20d9c62a89a4adca6d62b742328bb7 | 1 | 2 | 1796.45267 | -| terp1tvdlex6x5j2k73n33etz52gac6uphwpt5k6k8l | 0x5b1bfc9b46a4956f46718e562a291dc6b81bb82b | 1 | 2 | 1796.45267 | -| terp1yxsq9t86c635x0e38m2kyt9tqk44fx0skgxgue | 0x21a002acfac6a3433f313ed5622cab05ab5499f0 | 1 | 2 | 1796.45267 | -| terp1vyv98zksdeg6chv509h9sspdw0kqa3awqmy5la | 0x6118538ad06e51ac5d94796e58402d73ec0ec7ae | 1 | 2 | 1796.45267 | -| terp1pxpk3c64fnwhknefhr4phmrmt9ej7cm3qck2yj | 0x098368e3554cdd7b4f29b8ea1bec7b59732f6371 | 1 | 2 | 1796.45267 | -| terp14vpva5rw34tgzwguqptazyvu8u6ulthca0tk7n | 0xab02ced06e8d5681391c0057d1119c3f35cfaef8 | 1 | 2 | 1796.45267 | -| terp1ve770ttu2gn299zvsqnuz07fjdqg5reecq934s | 0x667de7ad7c5226a2944c8027c13fc993408a0f39 | 1 | 2 | 1796.45267 | -| terp1tagw5vz5506mt547dj7c0ke58tudz7em6yqjtl | 0x5f50ea3054a3f5b5d2be6cbd87db343af8d17b3b | 1 | 2 | 1796.45267 | -| terp1895d7s9hufm9rcwgyexpv8vzmtj2d3fv8s8mms | 0x3968df40b7e27651e1c8264c161d82dae4a6c52c | 1 | 2 | 1796.45267 | -| terp1r6sxkpsvqmf8hf4rc6n8xtezh7ruasrmdufa9u | 0x1ea06b060c06d27ba6a3c6a6732f22bf87cec07b | 1 | 2 | 1796.45267 | -| terp1zqflhuz9rj2tfnhensnkc2t8ndgmpxgz0dpnkx | 0x1013fbf0451c94b4cef99c276c29679b51b09902 | 1 | 2 | 1796.45267 | -| terp1h2nwrzr9c02xfk9ltrqjphdy4uvazz6l75kv2c | 0xbaa6e18865c3d464d8bf58c120dda4af19d10b5f | 1 | 2 | 1796.45267 | -| terp13c7yy3sn0ty9l43qm2a095u7evflymc8l39psc | 0x8e3c4246137ac85fd620dabaf2d39ecb13f26f07 | 1 | 2 | 1796.45267 | -| terp1h05g3rhlfh8mk5mkphx6s4vxjws85faqvkgelu | 0xbbe8888eff4dcfbb53760dcda8558693a07a27a0 | 1 | 2 | 1796.45267 | -| terp1jy4cszqfg4587cusslztxgwux8qsaruvlvr7rp | 0x912b88080945687f639087c4b321dc31c10e8f8c | 1 | 2 | 1796.45267 | -| terp1sxtz448cwl7l95xclqgdjw9e9jhsdarqp6g9js | 0x81962ad4f877fdf2d0d8f810d938b92caf06f460 | 1 | 2 | 1796.45267 | -| terp1e9pkydjupa5hk5m3kgtvdjt8hku56vmc8gc7h2 | 0xc94362365c0f697b5371b216c6c967bdb94d3378 | 1 | 2 | 1796.45267 | -| terp1jnnn6746tuzc9xth2e5vxh3k5smxuv2x9q7zk9 | 0x94e73d7aba5f058299775668c35e36a4366e3146 | 1 | 2 | 1796.45267 | -| terp1juswarax2mvq6qdg66lkn5mv8qhxdny005gxk2 | 0x9720ee8fa656d80d01a8d6bf69d36c382e66cc8f | 1 | 2 | 1796.45267 | -| terp1vjm5tunrwwf74gkcgnzgyqdfcnqzssq2j59e4d | 0x64b745f2637393eaa2d844c48201a9c4c028400a | 1 | 2 | 1796.45267 | -| terp1sha2fdxmjxtfhv08z0x9vpdc6wcynzlv6uk875 | 0x85faa4b4db91969bb1e713cc5605b8d3b0498bec | 1 | 2 | 1796.45267 | -| terp14qfzxs848jqyxjyrx4c9ryd0t3daq6wq9z2zzr | 0xa8122340f53c8043488335705191af5c5bd069c0 | 1 | 2 | 1796.45267 | -| terp1vuhyxalty50a0nqu2qtpr63emc50u8gag5zfay | 0x672e4377eb251fd7cc1c501611ea39de28fe1d1d | 1 | 2 | 1796.45267 | -| terp1ljw7yhhzx3xddu9089k5kcuamu6j4qfszcskuk | 0xfc9de25ee2344cd6f0af396d4b639ddf352a8130 | 1 | 2 | 1796.45267 | -| terp12d8auaem632fwafw49829q3zlq94xee4mz0ty5 | 0x534fde773bd45497752ea94ea28222f80b536735 | 1 | 2 | 1796.45267 | -| terp1a9eqglj4fqwz7m52s5p5ffc4zvhljnhhn7dz6q | 0xe972047e55481c2f6e8a850344a715132ff94ef7 | 1 | 2 | 1796.45267 | -| terp16kx5zrag97ge9es8dq84ugexzvqegxssvjqeke | 0xd58d410fa82f9192e607680f5e23261301941a10 | 1 | 2 | 1796.45267 | -| terp1f2c7y9xray70ucagxg3xyhyw4x7dw5v3xxpe89 | 0x4ab1e214c3e93cfe63a83222625c8ea9bcd75191 | 1 | 2 | 1796.45267 | -| terp17fpcd0yx0v76q972pqtt39uahfxm40r24gtqug | 0xf24386bc867b3da017ca0816b8979dba4dbabc6a | 1 | 2 | 1796.45267 | -| terp1gdmzrez993wtxjrx72jvhctp8qykd0fee9ke2d | 0x437621e4452c5cb34866f2a4cbe161380966bd39 | 1 | 2 | 1796.45267 | -| terp109z74y9lrckjfftns83579cnmncf9pmh70pht4 | 0x7945ea90bf1e2d24a57381e34f1713dcf0928777 | 1 | 2 | 1796.45267 | -| terp14x409pvye6klap68w5kka78l4cphn2vzwuayt0 | 0xa9aaf28584ceadfe8747752d6ef8ffae0379a982 | 1 | 2 | 1796.45267 | -| terp10fk69eycz22mzah5wuygkdvz6d6ehhc55dfpj2 | 0x7a6da2e4981295b176f477088b3582d3759bdf14 | 1 | 2 | 1796.45267 | -| terp14a74tktdgsnjtpqlx38rznp6hxpy64nn8nenvx | 0xaf7d55d96d442725841f344e314c3ab9824d5673 | 1 | 2 | 1796.45267 | -| terp16m2gtx3z68xnzlq0jfk8l263te4gjwswnllg06 | 0xd6d4859a22d1cd317c0f926c7fab515e6a893a0e | 1 | 2 | 1796.45267 | -| terp15rvpel520sqcfd2m7r0gfpzrs5agkl93kqnawj | 0xa0d81cfe8a7c0184b55bf0de848443853a8b7cb1 | 1 | 2 | 1796.45267 | -| terp1ks6uny98x7xjw94a54fp3773zmv9tpf6vmat2u | 0xb435c990a7378d2716bda55218fbd116d855853a | 1 | 2 | 1796.45267 | -| terp1l4qycmaalkyyvhfhew9zd0jm70fwr8knwfrnt7 | 0xfd404c6fbdfd88465d37cb8a26be5bf3d2e19ed3 | 1 | 2 | 1796.45267 | -| terp1ytke8lp7ptqglve5lx9c5tcr3wdhdl20mvxyz2 | 0x22ed93fc3e0ac08fb334f98b8a2f038b9b76fd4f | 1 | 2 | 1796.45267 | -| terp1utauh0sdkv5pq6mkae9d3weqk3x6vuy32fcnvf | 0xe2fbcbbe0db328106b76ee4ad8bb20b44da67091 | 1 | 2 | 1796.45267 | -| terp1gjdyy6kdrgtkmylj2er59jycfqkt370h3ntdtu | 0x449a426acd1a176d93f2564742c898482cb8f9f7 | 1 | 2 | 1796.45267 | -| terp15g83cnep0knpr5t7fr8yj55xnrfrv6fafxgpmd | 0xa20f1c4f217da611d17e48ce49528698d236693d | 1 | 2 | 1796.45267 | -| terp1d52kaguxr0xh6em86udur6n4ltgq70am5rmwgs | 0x6d156ea3861bcd7d6767d71bc1ea75fad00f3fbb | 1 | 2 | 1796.45267 | -| terp148mkxuxnttpz6whlawyy7pnf9a98a7j97flmpt | 0xa9f76370d35ac22d3affeb884f06692f4a7efa45 | 1 | 2 | 1796.45267 | -| terp1xj0dpakne758ep67empaz8t4ucft3g63qnp64t | 0x349ed0f6d3cfa87c875ecec3d11d75e612b8a351 | 1 | 2 | 1796.45267 | -| terp190adg2eldqyj6q034c38d2ysdt4vltcw56j4n0 | 0x2bfad42b3f68092d01f1ae2276a8906aeacfaf0e | 1 | 2 | 1796.45267 | -| terp1n97ucnck383cwzwg3pvk2uktums5xz4cmhzc8d | 0x997dcc4f1689e38709c888596572cbe6e1430ab8 | 1 | 2 | 1796.45267 | -| terp1uqdkzyhg4wcj594me6x6ftdwunw5t3frfz9xxv | 0xe01b6112e8abb12a16bbce8da4adaee4dd45c523 | 1 | 2 | 1796.45267 | -| terp15xv39eld03ffat9kdae69cx8t6h4wz96lvd0xa | 0xa19912e7ed7c529eacb66f73a2e0c75eaf5708ba | 1 | 2 | 1796.45267 | -| terp1c77fd5tl0wvzgtz5rpehy6mnd9qqcmc68n36zy | 0xc7bc96d17f7b98242c541873726b7369400c6f1a | 1 | 2 | 1796.45267 | -| terp19uah5g9umspla8v4hxqrxsjrv9a672rsk3mfwx | 0x2f3b7a20bcdc03fe9d95b980334243617baf2870 | 1 | 2 | 1796.45267 | -| terp1yyvkw24yd356hlhqjpgra4352anujf4lr682d0 | 0x2119672aa46c69abfee090503ed6345767c926bf | 1 | 2 | 1796.45267 | -| terp1upt59qzngfplnz0ttfuhdwz450ykgw0ejrj3ac | 0xe0574280534243f989eb5a7976b855a3c96439f9 | 1 | 2 | 1796.45267 | -| terp1sf2yn5sp4w8mkflr8y2p6z7htsh00n3p0yzkyl | 0x825449d201ab8fbb27e339141d0bd75c2ef7ce21 | 1 | 2 | 1796.45267 | -| terp156xq9qa6tj458szr9epefxf89mfrgxgcqw7yhg | 0xa68c0283ba5cab43c0432e439499272ed2341918 | 1 | 2 | 1796.45267 | -| terp19qa5qrn5gcq7fq6px2w8r34chmncp3da0agnsn | 0x283b400e744601e48341329c71c6b8bee780c5bd | 1 | 2 | 1796.45267 | -| terp1praflv8wnp6nvd937jp5ls0fzlns3wxyu7evq0 | 0x08fa9fb0ee98753634b1f4834fc1e917e708b8c4 | 1 | 2 | 1796.45267 | -| terp1wze9ts8lg0djpck6eystv9acn5h0tv2phmhjma | 0x70b255c0ff43db20e2dac920b617b89d2ef5b141 | 1 | 2 | 1796.45267 | -| terp1cs80jqaft4lkfz0d8p7q2yy9ajn90ghay65ypg | 0xc40ef903a95d7f6489ed387c051085eca657a2fd | 1 | 2 | 1796.45267 | -| terp18ed9qjpxe7rkxer8sgl238kygk8a44tvngwadp | 0x3e5a504826cf87636467823ea89ec4458fdad56c | 1 | 2 | 1796.45267 | -| terp13dgynavquqy3em4s5mjk3j56pecgnlqjfn0f3j | 0x8b5049f580e0091ceeb0a6e568ca9a0e7089fc12 | 1 | 2 | 1796.45267 | -| terp1u0t63tshnuh704nuj0grxuhy0zqtxem4tay9dm | 0xe3d7a8ae179f2fe7d67c93d03372e47880b36775 | 1 | 2 | 1796.45267 | -| terp1y4uxevy0exwc473yyalvp0uyd20revv8ratfnk | 0x25786cb08fc99d8afa24277ec0bf846a9e3cb187 | 1 | 2 | 1796.45267 | -| terp1sy29nhdvkdxkynm5mtvgdt3z8jenec0h86nasa | 0x811459ddacb34d624f74dad886ae223cb33ce1f7 | 1 | 2 | 1796.45267 | -| terp1js9vmym4k3hv97nup692m8tjg8asrcs9w8asqt | 0x940acd9375b46ec2fa7c0e8aad9d7241fb01e205 | 1 | 2 | 1796.45267 | -| terp17sdhl80tzfm0z6l5kxlae0sz3ypxp8cj3sanzv | 0xf41b7f9deb1276f16bf4b1bfdcbe028902609f12 | 1 | 2 | 1796.45267 | -| terp1rp63gj5yf423d0xrh5lxplumy266ft4syaf87m | 0x1875144a844d5516bcc3bd3e60ff9b22b5a4aeb0 | 1 | 2 | 1796.45267 | -| terp1pauwtqf39j0pmt384ufccyv5tu5avq4vq7ma99 | 0x0f78e581312c9e1dae27af138c11945f29d602ac | 1 | 2 | 1796.45267 | -| terp1hfau8m0ypxhc3j7l05qxzu825zmsjdkygg84ut | 0xba7bc3ede409af88cbdf7d006170eaa0b70936c4 | 1 | 2 | 1796.45267 | -| terp1q7r526egmmv8s76xcqcve49qcl4sn6nhj968cd | 0x0787456b28ded8787b46c030ccd4a0c7eb09ea77 | 1 | 2 | 1796.45267 | -| terp1l7s62g5se2rx20r4r3vnm3xejm9rlkkg9d0ewh | 0xffa1a52290ca86653c751c593dc4d996ca3fdac8 | 1 | 2 | 1796.45267 | -| terp1dxq8wmt6hsqcsasccjcj45xf0nl5ru4uakq8d0 | 0x6980776d7abc01887618c4b12ad0c97cff41f2bc | 1 | 2 | 1796.45267 | -| terp10qnhtfeeel82svxqlzg7mvc40t2ukjcmccwtx0 | 0x782775a739cfcea830c0f891edb3157ad5cb4b1b | 1 | 2 | 1796.45267 | -| terp1d9d470j2pdnhk0a4lac6p4gaacyqurr9x086mq | 0x695b5f3e4a0b677b3fb5ff71a0d51dee080e0c65 | 1 | 2 | 1796.45267 | -| terp1xrdezqkqdm403jlns78zh5jqem3dl5y3r4nghk | 0x30db9102c06eeaf8cbf3878e2bd240cee2dfd091 | 1 | 2 | 1796.45267 | -| terp1evz6c09lp420q8gze2n94qf42r6qtpkmxhkwzx | 0xcb05ac3cbf0d54f01d02caa65a813550f40586db | 1 | 2 | 1796.45267 | -| terp1e20ckysqp4urx7t4kynqw42wclw3d3m84572zm | 0xca9f8b12000d78337975b12607554ec7dd16c767 | 1 | 2 | 1796.45267 | -| terp1tzkpvnlx87ayuzl3v8zpjc5jwp3rwtypy670ud | 0x58ac164fe63fba4e0bf161c41962927062372c81 | 1 | 2 | 1796.45267 | -| terp1qeq9yyjmkng9a22xaaq8g20m084u8eehp4jy0p | 0x064052125bb4d05ea946ef407429fb79ebc3e737 | 1 | 2 | 1796.45267 | -| terp1cmw9nusheuss7dp0xlr5365g3x68fm272d66lt | 0xc6dc59f217cf210f342f37c748ea8889b474ed5e | 1 | 2 | 1796.45267 | -| terp17t8rhqfqv0cj2pwd3m7emjvjqu34kk3efuf448 | 0xf2ce3b812063f12505cd8efd9dc99207235b5a39 | 1 | 2 | 1796.45267 | -| terp1epv8yxawqc5ppj8mpvveqmvc38vg5f0flk2z9v | 0xc858721bae062810c8fb0b19906d9889d88a25e9 | 1 | 2 | 1796.45267 | -| terp1q03drlxuxh5gescxjf5aljuk9y2u2gmq7cfmeq | 0x03e2d1fcdc35e88cc3069269dfcb962915c52360 | 1 | 2 | 1796.45267 | -| terp1zw0lludj455uyry0h79cvvdcstycwsk5kvt7jr | 0x139ffff1b2ad29c20c8fbf8b8631b882c98742d4 | 1 | 2 | 1796.45267 | -| terp1waje9pztn5eqj2wjvtm5jxtyfp2jjlmst98cdc | 0x776592844b9d320929d262f74919644855297f70 | 1 | 2 | 1796.45267 | -| terp1mqagu3e4mjw5fdj8sw39623xvd4hehcpm0jjva | 0xd83a8e4735dc9d44b64783a25d2a26636b7cdf01 | 1 | 2 | 1796.45267 | -| terp1ukvgpgk8jpsahwaa3c6tg3mh46zglnuqcepkhp | 0xe59880a2c79061dbbbbd8e34b44777ae848fcf80 | 1 | 2 | 1796.45267 | -| terp1568kjmvsykalq2e6f5ukhkqxw0p03rs95k5vcy | 0xa68f696d9025bbf02b3a4d396bd80673c2f88e05 | 1 | 2 | 1796.45267 | -| terp1209uug7lnvunnkg382dh6hkx2lcy6h6nlxthun | 0x53cbce23df9b3939d9113a9b7d5ec657f04d5f53 | 1 | 2 | 1796.45267 | -| terp1cypuxk6dvj4ga9ngym99knramjfl2g2gayaphk | 0xc103c35b4d64aa8e966826ca5b4c7ddc93f52148 | 1 | 2 | 1796.45267 | -| terp17zspenu66uyjxq0razp7s6mmfvcy575wagrpfr | 0xf0a01ccf9ad7092301e3e883e86b7b4b304a7a8e | 1 | 2 | 1796.45267 | -| terp1ce53dpgxqr8y4myprdptnguv6dful33652pp7g | 0xc66916850600ce4aec811b42b9a38cd353cfc63a | 1 | 2 | 1796.45267 | -| terp1nuzdv5xarzdvckc56jmfx84xvq0n4gj8ws0uw5 | 0x9f04d650dd189acc5b14d4b6931ea6601f3aa247 | 1 | 2 | 1796.45267 | -| terp17v97r8qmgqcq4ce0dw83977c5gglh84yac9ttj | 0xf30be19c1b40300ae32f6b8f12fbd8a211fb9ea4 | 1 | 2 | 1796.45267 | -| terp1vrjyuh2gud3z6cyqdp6lyc32dq50jum0f2cf6g | 0x60e44e5d48e3622d60806875f2622a6828f9736f | 1 | 2 | 1796.45267 | -| terp1w32tup33hd5gkdkdvhkvgyvan460h3fvktjwtc | 0x7454be0631bb688b36cd65ecc4119d9d74fbc52c | 1 | 2 | 1796.45267 | -| terp1ts5t6pv2j8pk687x3yxy4sy63v30c2xzgmn0fh | 0x5c28bd058a91c36d1fc6890c4ac09a8b22fc28c2 | 1 | 2 | 1796.45267 | -| terp1j9gd7pfvnnj6dran5qpg5et6ya9tgvjcraxrr9 | 0x9150df052c9ce5a68fb3a0028a657a274ab43258 | 1 | 2 | 1796.45267 | -| terp1ve46ug2jtyjymdywre3a8dt3ygzhyjjf83h5aq | 0x666bae215259244db48e1e63d3b5712205724a49 | 1 | 2 | 1796.45267 | -| terp1tgdyu6mxjcvtsc5nhyw97fareltc4awnthj6m3 | 0x5a1a4e6b669618b86293b91c5f27a3cfd78af5d3 | 1 | 2 | 1796.45267 | -| terp1nmpzztv39ns3g2vy8px2lf6ce48f262jvrztkh | 0x9ec2212d912ce1142984384cafa758cd4e956952 | 1 | 2 | 1796.45267 | -| terp1my4c3c0nd9te6zcjls904c3f0v0yln39rvmn9z | 0xd92b88e1f369579d0b12fc0afae2297b1e4fce25 | 1 | 2 | 1796.45267 | -| terp1x7mnexjx8w2gwexyvpja655f67cwkzyyesmksp | 0x37b73c9a463b948764c46065dd5289d7b0eb0884 | 1 | 2 | 1796.45267 | -| terp1zne3yc3w8v09qv92crs0c0zhxfu8zydcr3rn50 | 0x14f312622e3b1e5030aac0e0fc3c5732787111b8 | 1 | 2 | 1796.45267 | -| terp1nyqs4mudexzd7ak3hgu9mr3ywqqumm3rg7lcct | 0x99010aef8dc984df76d1ba385d8e247001cdee23 | 1 | 2 | 1796.45267 | -| terp1ctyhaverrjwp3pj39lxwk6u2nmvxt0pednc7va | 0xc2c97eb3231c9c1886512fcceb6b8a9ed865bc39 | 1 | 2 | 1796.45267 | -| terp150j6vlxdvnpsldqulgwagyqwr9lf3k9sv7r6ms | 0xa3e5a67ccd64c30fb41cfa1dd4100e197e98d8b0 | 1 | 2 | 1796.45267 | -| terp12lfctkjyp66f03a9exwa0y595dnq9qr5ttnuzu | 0x57d385da440eb497c7a5c99dd79285a366028074 | 1 | 2 | 1796.45267 | -| terp1g6yvh370qxe4fdyagvf8y5tjyvq6fnfdjdac9w | 0x4688cbc7cf01b354b49d43127251722301a4cd2d | 1 | 2 | 1796.45267 | -| terp1rqfd4w86sys2x34l46h696t87ls6culaf447p7 | 0x1812dab8fa8120a346bfaeafa2e967f7e1ac73fd | 1 | 2 | 1796.45267 | -| terp1h50d7jdwx5g67uxag2ag89vapg87hk2ta5hngt | 0xbd1edf49ae3511af70dd42ba83959d0a0febd94b | 1 | 2 | 1796.45267 | -| terp1v6lvjx8klrr48ghty3jd236khg63vw9vcs4zsh | 0x66bec918f6f8c753a2eb2464d54756ba351638ac | 1 | 2 | 1796.45267 | -| terp1pckgkhshnh4w2h7kupupu5l8l9h8dkl7q4fzkk | 0x0e2c8b5e179deae55fd6e0781e53e7f96e76dbfe | 1 | 2 | 1796.45267 | -| terp1tagj5a7hul6x7v74url08zjjwp3y9vevtd4k0z | 0x5f512a77d7e7f46f33d5e0fef38a52706242b32c | 1 | 2 | 1796.45267 | -| terp1ay0xfl7895ldjqqrylqk5805mk7qxlkdernfw6 | 0xe91e64ffc72d3ed9000327c16a1df4ddbc037ecd | 1 | 2 | 1796.45267 | -| terp1gxfaeu6fql5l9zqxjk28zftx0jy3j49h79q2qq | 0x4193dcf34907e9f2880695947125667c891954b7 | 1 | 2 | 1796.45267 | -| terp1wcmyfma7d6ljc7xytvuw4n57vlszz7pqrpx2jj | 0x763644efbe6ebf2c78c45b38eace9e67e0217820 | 1 | 2 | 1796.45267 | -| terp17t08q2e4gunmn4ygarpjhuadwr6uwlztmtyd75 | 0xf2de702b354727b9d488e8c32bf3ad70f5c77c4b | 1 | 2 | 1796.45267 | -| terp1aj6uz6zhkypkhptjzvluahmy4x09y4f5kcaxsy | 0xecb5c16857b1036b8572133fcedf64a99e525534 | 1 | 2 | 1796.45267 | -| terp1j0ujqguk9ngkxc7d798j43un6k5gry0fkqhxx0 | 0x93f92023962cd16363cdf14f2ac793d5a88191e9 | 1 | 2 | 1796.45267 | -| terp14xff7hgxyc654lvz6kx6whdxd92nqkdlr93rxx | 0xa9929f5d0626354afd82d58da75da669553059bf | 1 | 2 | 1796.45267 | -| terp1sq6m2vsessz85g5hhejag408d84ed6yh9x3rgj | 0x8035b5321984047a2297be65d455e769eb96e897 | 1 | 2 | 1796.45267 | -| terp1sq6gk0c66nmtexek6pwd4m53f56qay73yxxx4t | 0x80348b3f1ad4f6bc9b36d05cdaee914d340e93d1 | 1 | 2 | 1796.45267 | -| terp1rxeuwalwxxt5p9z33nlcy2xxujq7unw83ly3vd | 0x19b3c777ee31974094518cff8228c6e481ee4dc7 | 1 | 2 | 1796.45267 | -| terp1htptgxv95dmjsjqfcgqatkf6vmv5mnz02ztgjy | 0xbac2b41985a377284809c201d5d93a66d94dcc4f | 1 | 2 | 1796.45267 | -| terp12shyjcrhmm20m4pjq4qpzuna5dnze07k6rm4tn | 0x542e496077ded4fdd432054011727da3662cbfd6 | 1 | 2 | 1796.45267 | -| terp1j2fylhsh7t9urj9e0z9c2cxm79dyv0lldym9ts | 0x92924fde17f2cbc1c8b9788b8560dbf15a463fff | 1 | 2 | 1796.45267 | -| terp1sqn8pgsk757vp7u79h250354hx2ya9vae75t2y | 0x802670a216f53cc0fb9e2dd547c695b9944e959d | 1 | 2 | 1796.45267 | -| terp1cvvw9wwg0n4vhpllvya6fejcjyjyz9z8raatc6 | 0xc318e2b9c87ceacb87ff613ba4e6589124411447 | 1 | 2 | 1796.45267 | -| terp12xcfmusmw42dndar5fv6lm73lfh5tzhxa36u08 | 0x51b09df21b7554d9b7a3a259afefd1fa6f458ae6 | 1 | 2 | 1796.45267 | -| terp1rrpemagmltpn0mk60x8gqmlwegqhz08kwqpljp | 0x18c39df51bfac337eeda798e806feeca01713cf6 | 1 | 2 | 1796.45267 | -| terp1wa9d7kq37ajs2ntw7lysw72n3sfy55j4u8tfse | 0x774adf5811f765054d6ef7c90779538c124a5255 | 1 | 2 | 1796.45267 | -| terp1waymxx96tzse7zzjp7smjsgnxlpx7luxu5f3gq | 0x7749b318ba58a19f08520fa1b9411337c26f7f86 | 1 | 2 | 1796.45267 | -| terp1qnx975zcqc0spz5qz2dl3edfqk4yts829mpptn | 0x04cc5f5058061f008a80129bf8e5a905aa45c0ea | 1 | 2 | 1796.45267 | -| terp19gcs570fgwpy8ukp8kfxyseh9u0tpdmlu8gf8p | 0x2a310a79e9438243f2c13d926243372f1eb0b77f | 1 | 2 | 1796.45267 | -| terp1uhptjx552sxese8852ydupxxyj57extj5tdmjj | 0xe5c2b91a94540d9864e7a288de04c624a9ec9972 | 1 | 2 | 1796.45267 | -| terp1d5zc2tt30q9tj3ynudqpwxn2p9l77we2ff0uay | 0x6d05852d71780ab94493e340171a6a097fef3b2a | 1 | 2 | 1796.45267 | -| terp1c35kywjr5ssxvn50tck96xcy3er02pldpz5lgr | 0xc469623a43a420664e8f5e2c5d1b048e46f507ed | 1 | 2 | 1796.45267 | -| terp14zps9sx3ufsgql5tr7v8k2xkh5ep2dzrtcvqhf | 0xa88302c0d1e260807e8b1f987b28d6bd32153443 | 1 | 2 | 1796.45267 | -| terp1hl8mmjrhsrq3578fjkkz7v93zhyszhe3qphtpy | 0xbfcfbdc87780c11a78e995ac2f30b115c9015f31 | 1 | 2 | 1796.45267 | -| terp1ek26w8fuax6ht0klcdcjpqvygkdqd2lkggy2t9 | 0xcd95a71d3ce9b575bedfc371208184459a06abf6 | 1 | 2 | 1796.45267 | -| terp12x7g4jxhxsypgqeqdplu68msxfvfc79mrdh2lx | 0x51bc8ac8d73408140320687fcd1f7032589c78bb | 1 | 2 | 1796.45267 | -| terp1k6rvc3yng9x8cln8j23xlaj2x2xh7lxrzkgamg | 0xb686cc4493414c7c7e6792a26ff64a328d7f7cc3 | 1 | 2 | 1796.45267 | -| terp1jwgn3d7q8y2uqrxet5mq0tmw7p2s863lqy7wfs | 0x939138b7c03915c00cd95d3607af6ef05503ea3f | 1 | 2 | 1796.45267 | -| terp1hdlmc2azxjnaasskzntf55h0e7evz8rxdzs25a | 0xbb7fbc2ba234a7dec21614d69a52efcfb2c11c66 | 1 | 2 | 1796.45267 | -| terp1pvjsk6wurr7wavzsk582cmrr26zdycr8m555n5 | 0x0b250b69dc18fceeb050b50eac6c635684d26067 | 1 | 2 | 1796.45267 | -| terp1cda4qpyfw7su4krhe3vhfx26m7xfzd9atsr8fq | 0xc37b50048977a1cad877cc5974995adf8c9134bd | 1 | 2 | 1796.45267 | -| terp1lu67lxwdc7qpy833m3svwd2jj9vcr4twlrddcd | 0xff35ef99cdc780121e31dc60c73552915981d56e | 1 | 2 | 1796.45267 | -| terp18ndjtvhd0kmr4ynud3zek5a9ajteqdcctgpgrt | 0x3cdb25b2ed7db63a927c6c459b53a5ec97903718 | 1 | 2 | 1796.45267 | -| terp1nc2k4df79qqsss29u59vshc8q87khf7vvtlstd | 0x9e156ab53e2801084145e50ac85f0701fd6ba7cc | 1 | 2 | 1796.45267 | -| terp1n4fdrnf0y0f35le04lpvq0vkfv8nxz9mqldqmu | 0x9d52d1cd2f23d31a7f2fafc2c03d964b0f3308bb | 1 | 2 | 1796.45267 | -| terp1u72sznz0ne453ynunqgh9y272pcq3jm2n8drqm | 0xe795014c4f9e6b48927c981172915e507008cb6a | 1 | 2 | 1796.45267 | -| terp1vefysws8a8ghwzyw8attc07tuqyg2hklj5p2k0 | 0x6652483a07e9d177088e3f56bc3fcbe008855edf | 1 | 2 | 1796.45267 | -| terp1uma863d58uxz6gkpr4g9efhtpcapjl2zx7elgz | 0xe6fa7d45b43f0c2d22c11d505ca6eb0e3a197d42 | 1 | 2 | 1796.45267 | -| terp1g9frzcsayalgpmkw4ra48f3h53pafm4a2e2kcy | 0x415231621d277e80eecea8fb53a637a443d4eebd | 1 | 2 | 1796.45267 | -| terp1v9dkctt6wvw37hmel3n8ejt79r2sgj55n7j4fa | 0x615b6c2d7a731d1f5f79fc667cc97e28d5044a94 | 1 | 2 | 1796.45267 | -| terp1vl77r8cp0rn34we6pf3d9lfnguxnyzxjex6l6e | 0x67fde19f0178e71abb3a0a62d2fd33470d3208d2 | 1 | 2 | 1796.45267 | -| terp1rmwt724ngumq32sw9qact6cptna3nuveeg58ta | 0x1edcbf2ab3473608aa0e283b85eb015cfb19f199 | 1 | 2 | 1796.45267 | -| terp1scm4wm4alzuvh9k7dgevn89chknp62s3s3mqku | 0x8637576ebdf8b8cb96de6a32c99cb8bda61d2a11 | 1 | 2 | 1796.45267 | -| terp1wp2a9vcfq47n89hh6qzu3cwkzf5mnyaqvfs5f6 | 0x7055d2b309057d3396f7d005c8e1d61269b993a0 | 1 | 2 | 1796.45267 | -| terp1m5hnelrrzrcrvh5rmkty6w9qdcgvef5708c3ru | 0xdd2f3cfc6310f0365e83dd964d38a06e10cca69e | 1 | 2 | 1796.45267 | -| terp1gzgg8wpmuykgz9seh7m62kzfjhws5jtkvjkgcd | 0x409083b83be12c811619bfb7a5584995dd0a4976 | 1 | 2 | 1796.45267 | -| terp1tz5dj3adlmanx22kcn3pcp225wzregtwr8xxhf | 0x58a8d947adfefb332956c4e21c054aa3843ca16e | 1 | 2 | 1796.45267 | -| terp1j5mru53axzujvgdwsxg9sm8nrtgnfr6rgpvk8r | 0x95363e523d30b92621ae8190586cf31ad1348f43 | 1 | 2 | 1796.45267 | -| terp1gy0pze0xa00me6ejljuw7aqm2yjp2g9phu3jgm | 0x411e1165e6ebdfbceb32fcb8ef741b51241520a1 | 1 | 2 | 1796.45267 | -| terp1avqn6tqqcnknhwu0ss63s2g4uj25sa9uk2yguy | 0xeb013d2c00c4ed3bbb8f8435182915e4954874bc | 1 | 2 | 1796.45267 | -| terp1fanw9cyrkfuqjtl7w3esqvzzwujfadrlch8uad | 0x4f66e2e083b278092ffe747300304277249eb47f | 1 | 2 | 1796.45267 | -| terp1v05prcv9lc6uzhfr7arjy64gh8dxw6hsxkxf9r | 0x63e811e185fe35c15d23f747226aa8b9da676af0 | 1 | 2 | 1796.45267 | -| terp1px83jftxp7hls74pxjc4kspj7jzvhsrepahv6g | 0x098f1925660faff87aa134b15b4032f484cbc079 | 1 | 2 | 1796.45267 | -| terp1yv380y272lrkcn4up0lx0jfhv978vf26aup2p5 | 0x232277915e57c76c4ebc0bfe67c937617c76255a | 1 | 2 | 1796.45267 | -| terp1psx5wkz5u0dykg5gnsgqvshru02y86n9evhfld | 0x0c0d475854e3da4b22889c100642e3e3d443ea65 | 1 | 2 | 1796.45267 | -| terp1se7s0ryrd3h5psckmga2faw8nu503efm52yqh7 | 0x867d078c836c6f40c316da3aa4f5c79f28f8e53b | 1 | 2 | 1796.45267 | -| terp1ks66w4pk855q0252mhwmgnm43dd8dfclutr3az | 0xb435a754363d2807aa8addddb44f758b5a76a71f | 1 | 2 | 1796.45267 | -| terp1d6y52dv7tjx5tsk372aw389ru5pkgdejtrlzhv | 0x6e8945359e5c8d45c2d1f2bae89ca3e503643732 | 1 | 2 | 1796.45267 | -| terp18vv258kn5r9eq3xd57uzsx3l2nz43pkcdz8uqf | 0x3b18aa1ed3a0cb9044cda7b8281a3f54c55886d8 | 1 | 2 | 1796.45267 | -| terp13q93x6j73xuwwrhdatdkskd8z3zd22y9dra4d4 | 0x880b136a5e89b8e70eedeadb6859a71444d52885 | 1 | 2 | 1796.45267 | -| terp18s0emf6jalcwsmp5avpuq9fvs2w22ckyt7le0m | 0x3c1f9da752eff0e86c34eb03c0152c829ca562c4 | 1 | 2 | 1796.45267 | -| terp1wtslc5plwwurz6jkp5fmrdflzyywdch586yjsv | 0x72e1fc503f73b8316a560d13b1b53f1108e6e2f4 | 1 | 2 | 1796.45267 | -| terp1fs34lt34zrrxypcvz05cz673ftcgvjknkv6wtr | 0x4c235fae3510c662070c13e9816bd14af0864ad3 | 1 | 2 | 1796.45267 | -| terp1y6p8ug8hsn0d80m0jqnvatwepc8ydvgru8lpa4 | 0x26827e20f784ded3bf6f9026ceadd90e0e46b103 | 1 | 2 | 1796.45267 | -| terp1h003frdvd92t2df47heenm0crasxgqzuwm9nvk | 0xbbdf148dac6954b53535f5f399edf81f6064005c | 1 | 2 | 1796.45267 | -| terp1euqyg7lpvfhrhwm4hc2wxtz8u322q7lwvamymk | 0xcf00447be1626e3bbb75be14e32c47e454a07bee | 1 | 2 | 1796.45267 | -| terp1s676zzfa923uw0a9q04z8jdn8y6r9y32slvuhz | 0x86bda1093d2aa3c73fa503ea23c9b3393432922a | 1 | 2 | 1796.45267 | -| terp14ymyuv00y08mtpj9kt5nycr9m0a78dkyrcv5tl | 0xa9364e31ef23cfb58645b2e9326065dbfbe3b6c4 | 1 | 2 | 1796.45267 | -| terp1408gpscgp47lvt4mm3gdp34jfz77e9ypfc8ewa | 0xabce80c3080d7df62ebbdc50d0c6b248bdec9481 | 1 | 2 | 1796.45267 | -| terp1e9v32avetwzsegv97v2qrlffd7ldy7j39g3aeq | 0xc9591575995b850ca185f31401fd296fbed27a51 | 1 | 2 | 1796.45267 | -| terp1arsgapm4emkd4rpngunzq2jp9fjx6tm9uvglgw | 0xe8e08e8775ceecda8c334726202a412a646d2f65 | 1 | 2 | 1796.45267 | -| terp1jx2zqf533lfpn34k9aeecndtsrwkvuakeahqsw | 0x91942026918fd219c6b62f739c4dab80dd6673b6 | 1 | 2 | 1796.45267 | -| terp1wfu9zu2f9wanjh475rckkvq6wucv0j7n2tvq7v | 0x72785171492bbb395ebea0f16b301a7730c7cbd3 | 1 | 2 | 1796.45267 | -| terp1fwh3up2wsxjv3facsplgwranxfkzey8csvdu4t | 0x4baf1e054e81a4c8a7b8807e870fb3326c2c90f8 | 1 | 2 | 1796.45267 | -| terp1tnnf23l69prpv88lkavfneeedyegswfzh0m6ps | 0x5ce69547fa2846161cffb75899e7396932883922 | 1 | 2 | 1796.45267 | -| terp1572qg3p9jd8hfn2e6zlecvr0wclgsy20agk5ya | 0xa794044425934f74cd59d0bf9c306f763e88114f | 1 | 2 | 1796.45267 | -| terp13r8c6uptjnuwm685wahyxphxc48e0nd8sermp0 | 0x88cf8d702b94f8ede8f4776e4306e6c54f97cda7 | 1 | 2 | 1796.45267 | -| terp195prchx9atrsnzgkl5p8p5rluyw64fj8rlfdyl | 0x2d023c5cc5eac7098916fd0270d07fe11daaa647 | 1 | 2 | 1796.45267 | -| terp1w2tqwlyym4fynvhr4elu84yus64u8rqrdxjs8y | 0x7296077c84dd5249b2e3ae7fc3d49c86abc38c03 | 1 | 2 | 1796.45267 | -| terp177f4n2e78h79a6sa5c7qdknd8uyup3elfnrld8 | 0xf79359ab3e3dfc5eea1da63c06da6d3f09c0c73f | 1 | 2 | 1796.45267 | -| terp15zz3gxyqng3kqcvdrkaj42k7qa08h9xs29r84l | 0xa0851418809a2360618d1dbb2aaade075e7b94d0 | 1 | 2 | 1796.45267 | -| terp1fywtgvur4jmeapjjusf6eyf67z6hut3gju2fnu | 0x491cb43383acb79e8652e413ac913af0b57e2e28 | 1 | 2 | 1796.45267 | -| terp17lrq4husp55d5cfxdg5tn5qyym8q92mqnfldmu | 0xf7c60adf900d28da61266a28b9d00426ce02ab60 | 1 | 2 | 1796.45267 | -| terp1lfr4szvd4meuup5fdxy2kzc0y5tz5s97msaa3q | 0xfa4758098daef3ce06896988ab0b0f25162a40be | 1 | 2 | 1796.45267 | -| terp1vdp8r4wspmqvy6r4clzp0ejmfkkzu6kvpjuk7l | 0x634271d5d00ec0c26875c7c417e65b4dac2e6acc | 1 | 2 | 1796.45267 | -| terp15lrj82urnktxyyq8jn22fmv6xwd26r7l7l5sp4 | 0xa7c723ab839d9662100794d4a4ed9a339aad0fdf | 1 | 2 | 1796.45267 | -| terp1hplech4qn5ycglmhqyrzj66qe4483p03crwre6 | 0xb87f9c5ea09d09847f770106296b40cd6a7885f1 | 1 | 2 | 1796.45267 | -| terp107kvyhfedmr5qqxd850tcej4t22z55x4kp4g52 | 0x7facc25d396ec74000cd3d1ebc66555a942a50d5 | 1 | 2 | 1796.45267 | -| terp1fh50j5vaz39zfdc36jxp4vv37uf0tmzlp8hnh4 | 0x4de8f9519d144a24b711d48c1ab191f712f5ec5f | 1 | 2 | 1796.45267 | -| terp1hjz4qzel8lr069m8gcv8yygyx7svfl7s0mmzup | 0xbc85500b3f3fc6fd1767461872110437a0c4ffd0 | 1 | 2 | 1796.45267 | -| terp1ew6uly6dlhdkak4wym9v4v3pks4hkp4sru2ugh | 0xcbb5cf934dfddb6edaae26cacab221b42b7b06b0 | 1 | 2 | 1796.45267 | -| terp1t6844nc6xrwpvjz7jn63n9mw5lgjlkf6syed2a | 0x5e8f5acf1a30dc16485e94f519976ea7d12fd93a | 1 | 2 | 1796.45267 | -| terp1qvzhrnx8myzwz92rp4laczcg0gr2rnea79627p | 0x030571ccc7d904e115430d7fdc0b087a06a1cf3d | 1 | 2 | 1796.45267 | -| terp1hjfcxhsrkj6syj22s6mhyznw255na23skgw3zn | 0xbc93835e03b4b502494a86b7720a6e55293eaa30 | 1 | 2 | 1796.45267 | -| terp15swwpkv9w5p7updst90ua6yst444w62rwjfkfh | 0xa41ce0d9857503ee05b0595fcee8905d6b576943 | 1 | 2 | 1796.45267 | -| terp1qpuf0r2f8fdqmdl0xl6u6z6w3xk7h76z9308q7 | 0x0078978d493a5a0db7ef37f5cd0b4e89adebfb42 | 1 | 2 | 1796.45267 | -| terp1tlty099d49cpkgr8qpuw40h7r8v65thgh79fa0 | 0x5fd64794ada9701b20670078eabefe19d9aa2ee8 | 1 | 2 | 1796.45267 | -| terp15ux8uzhxvkkzk2azfqda2cqk28nfqcf472pg6n | 0xa70c7e0ae665ac2b2ba2481bd5601651e6906135 | 1 | 2 | 1796.45267 | -| terp129p8609cgy5m6mg9a5tr2wujmu48wzhlyww0cz | 0x51427d3cb84129bd6d05ed16353b92df2a770aff | 1 | 2 | 1796.45267 | -| terp1jrwgt906skxfvxdudleklyyf8pgejzdgw8hvyp | 0x90dc8595fa858c9619bc6ff36f908938519909a8 | 1 | 2 | 1796.45267 | -| terp1nw4txruemfdv84anlm0syawjhuf9g6k8sdrfyv | 0x9baab30f99da5ac3d7b3fedf0275d2bf12546ac7 | 1 | 2 | 1796.45267 | -| terp17c9xanchz0wn8xen79x0ezrczu7dxr30jjpl7k | 0xf60a6ecf1713dd339b33f14cfc8878173cd30e2f | 1 | 2 | 1796.45267 | -| terp1q7dfdzsgk7r2kgu2q2pc95v3srljcsnwqjdvc7 | 0x079a968a08b786ab238a028382d19180ff2c426e | 1 | 2 | 1796.45267 | -| terp1c4w585fmdqr4n6l72nsmgh0vw2kmzkwpln5d49 | 0xc55d43d13b680759ebfe54e1b45dec72adb159c1 | 1 | 2 | 1796.45267 | -| terp1j5yvaldf45kdyp3r0m7zyp8dat6ujj3c3as257 | 0x9508cefda9ad2cd206237efc2204edeaf5c94a38 | 1 | 2 | 1796.45267 | -| terp1cf5cdjz2j779vufsw2edhfxhfrjpetpavmn37a | 0xc26986c84a97bc56713072b2dba4d748e41cac3d | 1 | 2 | 1796.45267 | -| terp1dvc2j0rqev7kl90d68qkyyexnspk5g476y28ye | 0x6b30a93c60cb3d6f95edd1c16213269c036a22be | 1 | 2 | 1796.45267 | -| terp1xu0d559sx72860pzn7jsjrsf2k83fl2zfskfg8 | 0x371eda50b037947d3c229fa5090e09558f14fd42 | 1 | 2 | 1796.45267 | -| terp1kr4dyllevjzgh3h599sz6267xuzknd2ehhzz36 | 0xb0ead27ff964848bc6f429602d2b5e370569b559 | 1 | 2 | 1796.45267 | -| terp1p683x92jex5kmwqgjkhx0d3vg0llsf26xren8d | 0x0e8f131552c9a96db80895ae67b62c43fff8255a | 1 | 2 | 1796.45267 | -| terp1fcxwzd26ak6v75cnjn0jjxnk2p4tyg6uxfqlrm | 0x4e0ce1355aedb4cf531394df291a76506ab2235c | 1 | 2 | 1796.45267 | -| terp1jk42p7jesgr444ej6j5ymmz2fvvy80an66hajx | 0x95aaa0fa5982075ad732d4a84dec4a4b1843bfb3 | 1 | 2 | 1796.45267 | -| terp1jnq0cu5y6lqp9kywhrv8098duxhwtgcsv5yus5 | 0x94c0fc7284d7c012d88eb8d87794ede1aee5a310 | 1 | 2 | 1796.45267 | -| terp1r26y64u0c9lzvjcdw8ec99qx6sdu2x2jtr9me7 | 0x1ab44d578fc17e264b0d71f3829406d41bc51952 | 1 | 2 | 1796.45267 | -| terp12kvynrp2nrtd85pmfpxlrl2tka3kkn2x97gk6w | 0x5598498c2a98d6d3d03b484df1fd4bb7636b4d46 | 1 | 2 | 1796.45267 | -| terp1j75emg2lezwedvlmueellk8knakw0jd3pd4wll | 0x97a99da15fc89d96b3fbe673ffd8f69f6ce7c9b1 | 1 | 2 | 1796.45267 | -| terp1glwtman3mjyq35fe00df9vk25jnuf62380uafv | 0x47dcbdf671dc8808d1397bda92b2caa4a7c4e951 | 1 | 2 | 1796.45267 | -| terp1lc8yhdevh64me8zxr5kqucgtandsj6dp42ues7 | 0xfe0e4bb72cbeabbc9c461d2c0e610becdb0969a1 | 1 | 2 | 1796.45267 | -| terp1vxe57fcmes6rkmqaz8l6dnsts40m4rn7vs8elh | 0x61b34f271bcc343b6c1d11ffa6ce0b855fba8e7e | 1 | 2 | 1796.45267 | -| terp16n5q4xup4d55ne2vkwclrkhdg8gyvy6n5nsyqn | 0xd4e80a9b81ab6949e54cb3b1f1daed41d0461353 | 1 | 2 | 1796.45267 | -| terp142gjqyyuqt6g6f9e7j8kefkmgm8c9shgv55tqq | 0xaa9120109c02f48d24b9f48f6ca6db46cf82c2e8 | 1 | 2 | 1796.45267 | -| terp1683gk6cne2cuyaeehghknmw3csdj4zlu672g8p | 0xd1e28b6b13cab1c27739ba2f69edd1c41b2a8bfc | 1 | 2 | 1796.45267 | -| terp1ucphmj9fulvem095hmwwmda8g2spgfvy473x8t | 0xe6037dc8a9e7d99dbcb4bedcedb7a742a0142584 | 1 | 2 | 1796.45267 | -| terp1a3xwmquup7dpywers0eawuw2vgx0kfh5k3zug4 | 0xec4ced839c0f9a123b2383f3d771ca620cfb26f4 | 1 | 2 | 1796.45267 | -| terp1elrth7elskzv0lc2avpjzuhwguhdfe7u52xfl7 | 0xcfc6bbfb3f8584c7ff0aeb032172ee472ed4e7dc | 1 | 2 | 1796.45267 | -| terp1trgstfvtg8ead95d79ems5gmhvyyrxksgqjgz5 | 0x58d105a58b41f3d6968df173b8511bbb08419ad0 | 1 | 2 | 1796.45267 | -| terp1wxjwlnjfmnvhu2cw79mwfra38u2gjh2tmj2pun | 0x71a4efce49dcd97e2b0ef176e48fb13f14895d4b | 1 | 2 | 1796.45267 | -| terp1ql5hu8mf33hn9qzhen506rejpjawgwwnrhtm58 | 0x07e97e1f698c6f328057cce8fd0f320cbae439d3 | 1 | 2 | 1796.45267 | -| terp12aaech80tzjkmq0tk2w5u084gn0slnam8a488x | 0x577b9c5cef58a56d81ebb29d4e3cf544df0fcfbb | 1 | 2 | 1796.45267 | -| terp1s6ht5f3vjq00lutcsfpru59tef8e6xcs7l5t0d | 0x86aeba262c901efff17882423e50abca4f9d1b10 | 1 | 2 | 1796.45267 | -| terp1l0vsuu08gpl0cuxa78rftnn5vhtrmpw0nx8f3q | 0xfbd90e71e7407efc70ddf1c695ce7465d63d85cf | 1 | 2 | 1796.45267 | -| terp17v4pe2y8cjsc0g5cn6u78ncaxqvpv6z6kz6pe0 | 0xf32a1ca887c4a187a2989eb9e3cf1d301816685a | 1 | 2 | 1796.45267 | -| terp1kpnv00qekry679shd9k275rnpukxz5vak2nnnq | 0xb066c7bc19b0c9af1617696caf50730f2c61519d | 1 | 2 | 1796.45267 | -| terp1kvgfjfrkh3nn6n9chp6psng40m2wzhy7hwzuzg | 0xb310992476bc673d4cb8b874184d157ed4e15c9e | 1 | 2 | 1796.45267 | -| terp19au9aa84znmt0pdtjvrzupw0ejfhltykvx383u | 0x2f785ef4f514f6b785ab93062e05cfcc937fac96 | 1 | 2 | 1796.45267 | -| terp1y2srqgtdjtxef7u8a2fwej6tfy59g3sw5k25xl | 0x22a030216d92cd94fb87ea92eccb4b492854460e | 1 | 2 | 1796.45267 | -| terp1et79m2trl92atfg5dvq89jrk7vyke4fwfv34mw | 0xcafc5da963f955d5a5146b0072c876f3096cd52e | 1 | 2 | 1796.45267 | -| terp12vyen75x3r7qwv8drtvjtwcjxk6qdrqhfwkp6s | 0x530999fa8688fc0730ed1ad925bb1235b4068c17 | 1 | 2 | 1796.45267 | -| terp1tx9gm3avuxp9hpqyy8q9fays5htvy2p7r5hvdd | 0x598a8dc7ace1825b840421c054f490a5d6c2283e | 1 | 2 | 1796.45267 | -| terp1vlfpjrluf4l5myjvn74y6vrqdd0f803a3ma8wx | 0x67d2190ffc4d7f4d924c9faa4d30606b5e93be3d | 1 | 2 | 1796.45267 | -| terp1fqsyltemcwzk2tw4ecqsumkdexzndg602fn8tt | 0x48204faf3bc385652dd5ce010e6ecdc98536a34f | 1 | 2 | 1796.45267 | -| terp18ln7g4law4qdg7wr8ry58ags6305xarxdhw50h | 0x3fe7e457fd7540d479c338c943f510d45f437466 | 1 | 2 | 1796.45267 | -| terp1282ya3r5uws3thhlfcfpke943upwndj9yvvym0 | 0x51d44ec474e3a115deff4e121b64b58f02e9b645 | 1 | 2 | 1796.45267 | -| terp1ja45r9yjf7sf3nj2u437pq0jmvqucdxsnq3d73 | 0x976b4194924fa098ce4ae563e081f2db01cc34d0 | 1 | 2 | 1796.45267 | -| terp145f4qj4fz85snll0jwz0zgq7vxaj092694st00 | 0xad13504aa911e909ffef9384f1201e61bb27955a | 1 | 2 | 1796.45267 | -| terp1fsvnwj2fmf4j2a56n6f57v5fdgssvcdndjesm3 | 0x4c19374949da6b25769a9e934f32896a210661b3 | 1 | 2 | 1796.45267 | -| terp1v84apxsdyg4frxe06nxlf3ffxn2pwvdlnhqxmh | 0x61ebd09a0d222a919b2fd4cdf4c52934d41731bf | 1 | 2 | 1796.45267 | -| terp1zgf9sf32g4gpsxwj59zenhp5ct68xah2fj26a2 | 0x121258262a45501819d2a14599dc34c2f47376ea | 1 | 2 | 1796.45267 | -| terp1rf7plwm8t9gld66rwl6j97t94dfuwrvn48x4pm | 0x1a7c1fbb675951f6eb4377f522f965ab53c70d93 | 1 | 2 | 1796.45267 | -| terp1tfn0fwaw40x07t5elvtg3xtga4pk7awxmwk7y3 | 0x5a66f4bbaeabccff2e99fb16889968ed436f75c6 | 1 | 2 | 1796.45267 | -| terp1ryndkq85uzt06d36v5zqnrtxx02gx9ta40dds9 | 0x1926db00f4e096fd363a6504098d6633d483157d | 1 | 2 | 1796.45267 | -| terp10crmedfsgl4hnyz5umafl6azv62kdfqdpavqh6 | 0x7e07bcb53047eb799054e6fa9feba2669566a40d | 1 | 2 | 1796.45267 | -| terp1uuh3fqf0dfluv0200e4k8pmc4qlwu8aq9g5c73 | 0xe72f14812f6a7fc63d4f7e6b638778a83eee1fa0 | 1 | 2 | 1796.45267 | -| terp1mvvqz0k50j7pq8vuqpkqw36ckpyynthmtr6vnw | 0xdb18013ed47cbc101d9c006c074758b04849aefb | 1 | 2 | 1796.45267 | -| terp1lnt8am5q774l400526hya05v8czq7329kl9fkw | 0xfcd67eee80f7abfabdf456ae4ebe8c3e040f4545 | 1 | 2 | 1796.45267 | -| terp1c2kee93kyjvyvgdrfj6arr0khfevrpzh263l5n | 0xc2ad9c963624984621a34cb5d18df6ba72c18457 | 1 | 2 | 1796.45267 | -| terp1sgrdwfcp3q0xdhe0y5956lw95lngpvdmspxf9q | 0x8206d72701881e66df2f250b4d7dc5a7e680b1bb | 1 | 2 | 1796.45267 | -| terp1j7908363z8n6lyufw062d9t9fyhpgl6j8fq0fx | 0x978af3c75111e7af938973f4a69565492e147f52 | 1 | 2 | 1796.45267 | -| terp10x0zqdf4r9xl2a9dm63rum8kxhpntdk2n5hkxl | 0x799e203535194df574addea23e6cf635c335b6ca | 1 | 2 | 1796.45267 | -| terp1adcufqzqvg7l5dvzm3mdng8nwkn385a69phru7 | 0xeb71c48040623dfa3582dc76d9a0f375a713d3ba | 1 | 2 | 1796.45267 | -| terp18sw7sn0pes8uxln64mel9wq6r3e3kmle92ct6v | 0x3c1de84de1cc0fc37e7aaef3f2b81a1c731b6ff9 | 1 | 2 | 1796.45267 | -| terp1fm8j6wjp7raz86jx9dh6u69egrz9x7gmpn0d7u | 0x4ecf2d3a41f0fa23ea462b6fae68b940c453791b | 1 | 2 | 1796.45267 | -| terp1nsnf7ajk6ekj526p5r5zzsdzxeukfn96ef7zxd | 0x9c269f7656d66d2a2b41a0e82141a2367964ccba | 1 | 2 | 1796.45267 | -| terp1cs2n5f6wul59zxs4x643cdqyncmsqt4zvg59qm | 0xc4153a274ee7e8511a1536ab1c34049e37002ea2 | 1 | 2 | 1796.45267 | -| terp1yxrym0yu2cfau2cdln5qa77tqqaqu3s4e9wu02 | 0x21864dbc9c5613de2b0dfce80efbcb003a0e4615 | 1 | 2 | 1796.45267 | -| terp1her4vcr55pgjx9ju6pspu5cqgsuyyfjauy3s39 | 0xbe47566074a05123165cd0601e5300443842265d | 1 | 2 | 1796.45267 | -| terp1r9ll0lme6mefjfrzr0r02xd0xux6zf929qy4c2 | 0x197ff7ff79d6f29924621bc6f519af370da124aa | 1 | 2 | 1796.45267 | -| terp1r3vf9lhgv8zwjwlafzxe3zkv563ccnvv87fle9 | 0x1c5892fee861c4e93bfd488d988acca6a38c4d8c | 1 | 2 | 1796.45267 | -| terp1fhaqgw3qujk7tttgvnf4lkj60qvnedtvxhn2g6 | 0x4dfa043a20e4ade5ad6864d35fda5a78193cb56c | 1 | 2 | 1796.45267 | -| terp1l7z0pdjezezw0q5l9f5z3vu327q7pa0l8u8rjg | 0xff84f0b6591644e7829f2a6828b3915781e0f5ff | 1 | 2 | 1796.45267 | -| terp1u055cavd3lrevwuzqtxayr74ac6yhn5hpqsxtj | 0xe3e94c758d8fc7963b8202cdd20fd5ee344bce97 | 1 | 2 | 1796.45267 | -| terp1dk24k2ag9h2c6v9l4juklxtu5q3xh5aa00e5ha | 0x6d955b2ba82dd58d30bfacb96f997ca0226bd3bd | 1 | 2 | 1796.45267 | -| terp1vt4nayrfd5czlqxy3kzejslsufzgydpk4qmlqq | 0x62eb3e90696d302f80c48d859943f0e244823436 | 1 | 2 | 1796.45267 | -| terp14yw02tu0x3av5ky3uhv7fqzqhzfqgyqgu2kk7q | 0xa91cf52f8f347aca5891e5d9e48040b892041008 | 1 | 2 | 1796.45267 | -| terp132wt7zrjvw07zpydpn4kenhwqcaxaldwgjtkh3 | 0x8a9cbf0872639fe1048d0ceb6cceee063a6efdae | 1 | 2 | 1796.45267 | -| terp1g35nesw5rdkwy02gr7h88eh8nzdvec4zr6r23k | 0x44693cc1d41b6ce23d481fae73e6e7989acce2a2 | 1 | 2 | 1796.45267 | -| terp1c57tmx028fedl6fphv2ux7ptka6zslzw4wad7w | 0xc53cbd99ea3a72dfe921bb15c3782bb774287c4e | 1 | 2 | 1796.45267 | -| terp1lp7487ml03t90wf6jsvjm7p2l2tsd95c90m82l | 0xf87d53fb7f7c5657b93a94192df82afa97069698 | 1 | 2 | 1796.45267 | -| terp1xsgvgaga6ak3qwx4m6ar52rpvfu6s43fx0t663 | 0x3410c4751dd76d1038d5deba3a28616279a85629 | 1 | 2 | 1796.45267 | -| terp18tzptwdyzfy5cdeynkjs7067nq256g0dy28xkg | 0x3ac415b9a412494c37249da50f3f5e98154d21ed | 1 | 2 | 1796.45267 | -| terp1lwkr29n80nzsm63h30ry2gmhuw7l4e7urpsaq4 | 0xfbac3516677cc50dea378bc6452377e3bdfae7dc | 1 | 2 | 1796.45267 | -| terp1t2k8s49aw2wyefw3mn9grxrjt4xkej60g65n9y | 0x5aac7854bd729c4ca5d1dcca8198725d4d6ccb4f | 1 | 2 | 1796.45267 | -| terp1zk2znt3qdtzjjqd406lvz94an5zmtevty4rff5 | 0x159429ae206ac52901b57ebec116bd9d05b5e58b | 1 | 2 | 1796.45267 | -| terp1tn5yuupjjthju9epm0qn28hyu8rvm0jfr72e56 | 0x5ce84e703292ef2e1721dbc1351ee4e1c6cdbe49 | 1 | 2 | 1796.45267 | -| terp1xflvgs39f6wurhv3cg2kwf0q553uq6zs5cm9tx | 0x327ec442254e9dc1dd91c2156725e0a523c06850 | 1 | 2 | 1796.45267 | -| terp1ylpytsf7h7z8wsagr6lpgf6998hwx7lzlw8d69 | 0x27c245c13ebf847743a81ebe14274529eee37be2 | 1 | 2 | 1796.45267 | -| terp13hmn280qc4zjrussj7c5tsvnleamj0grlcwwg8 | 0x8df7351de0c54521f21097b145c193fe7bb93d03 | 1 | 2 | 1796.45267 | -| terp17j20stgmchp92c9fzp7axkmx8n6uy0g6fwwtlt | 0xf494f82d1bc5c25560a9107dd35b663cf5c23d1a | 1 | 2 | 1796.45267 | -| terp1prvpv5ntmjwswlwksk7elfyltzj6hrjgay7mcn | 0x08d816526bdc9d077dd685bd9fa49f58a5ab8e48 | 1 | 2 | 1796.45267 | -| terp1rz8xhncj8h4j7y9v29qjzk6pydprcme4y29f6f | 0x188e6bcf123deb2f10ac5141215b4123423c6f35 | 1 | 2 | 1796.45267 | -| terp1knds97xyk52eu5mgeer5nlvngj3n8xvhpnguj4 | 0xb4db02f8c4b5159e5368ce4749fd9344a3339997 | 1 | 2 | 1796.45267 | -| terp1fe6qjyxfx3qkx2vdwqcfu4m56xu7sjuk4y7qle | 0x4e740910c9344163298d70309e5774d1b9e84b96 | 1 | 2 | 1796.45267 | -| terp1ru6pzlpy2lnlcwcsau047qd684z9zd5cagmcdp | 0x1f34117c2457e7fc3b10ef1f5f01ba3d44513698 | 1 | 2 | 1796.45267 | -| terp1xfc3vrdgxy0nm52zjexsnc3g2jzwl9dcpnjrlv | 0x3271160da8311f3dd142964d09e2285484ef95b8 | 1 | 2 | 1796.45267 | -| terp1tzmquxsygljkjkgxzq2mweq8hthxny9vwp9jqt | 0x58b60e1a0447e56959061015b76407baee6990ac | 1 | 2 | 1796.45267 | -| terp1hu9exexea75wft3al2t6juthd2f3249qqw0n3y | 0xbf0b9364d9efa8e4ae3dfa97a971776a931554a0 | 1 | 2 | 1796.45267 | -| terp1kw4mrnjrwy5e05p3q2fyuz5gd3msxc2e3h3kg6 | 0xb3abb1ce43712997d03102924e0a886c77036159 | 1 | 2 | 1796.45267 | -| terp1wz6wrqqdqx6f2jp3lt8zq5t8csdhtqs8rke60e | 0x70b4e1800d01b4954831face205167c41b758207 | 1 | 2 | 1796.45267 | -| terp1glhqpvap2nswzy9jgx7rqp98xfxq70jz6fn44n | 0x47ee00b3a154e0e110b241bc3004a7324c0f3e42 | 1 | 2 | 1796.45267 | -| terp1tnwrgv2l4m9t0jsqzqrn4edkmhu4neeudk7u04 | 0x5cdc34315faecab7ca0010073ae5b6ddf959e73c | 1 | 2 | 1796.45267 | -| terp16mxpzlfk8kr38sp4jfugtes4eplxhafjverftc | 0xd6cc117d363d8713c035927885e615c87e6bf532 | 1 | 2 | 1796.45267 | -| terp18tyut4we3fe989hlw4mzwumtpmc3c2cd5q8hm3 | 0x3ac9c5d5d98a725396ff757627736b0ef11c2b0d | 1 | 2 | 1796.45267 | -| terp15jt9xp3374xduq7xptqnguhuyk0n5kn6r5tchm | 0xa496530631f54cde03c60ac13472fc259f3a5a7a | 1 | 2 | 1796.45267 | -| terp19vclkxt3xhaj82sagn0y06k7v5r78nyg59tc3e | 0x2b31fb197135fb23aa1d44de47eade6507e3cc88 | 1 | 2 | 1796.45267 | -| terp18xxyvthz8ef85ds2emfxal7h8h4f56rqa40rql | 0x398c462ee23e527a360aced26effd73dea9a6860 | 1 | 2 | 1796.45267 | -| terp12vsztjqtqyg6m2rvn8jvv440syng4pfhd00l9e | 0x532025c80b0111ada86c99e4c656af81268a8537 | 1 | 2 | 1796.45267 | -| terp1daxqwetxzlukt36njsw0jmqzudjnaeqwzhwj2d | 0x6f4c07656617f965c753941cf96c02e3653ee40e | 1 | 2 | 1796.45267 | -| terp14av3c6u2amfm6gd46kuxgsfh2qj9cvhh3zq6mc | 0xaf591c6b8aeed3bd21b5d5b864413750245c32f7 | 1 | 2 | 1796.45267 | -| terp13n59nwluxw6e46mnc2kj54r4lqp3e7zjk3rrrl | 0x8ce859bbfc33b59aeb73c2ad2a5475f8031cf852 | 1 | 2 | 1796.45267 | -| terp16u8xurzjsp8aw4wy54lx0e7husxruy58rj32qd | 0xd70e6e0c52804fd755c4a57e67e7d7e40c3e1287 | 1 | 2 | 1796.45267 | -| terp1f9tsx9y29ak3ncynl96sjxxvsw4g0zl7ru4r0r | 0x495703148a2f6d19e093f9750918cc83aa878bfe | 1 | 2 | 1796.45267 | -| terp1npde6jee047srmejj4qds2dzjhw9u6ye3ur0qp | 0x985b9d4b397d7d01ef329540d829a295dc5e6899 | 1 | 2 | 1796.45267 | -| terp1wr3mnzlkl6wdsw3gmjkxkagjnaql67542ev2pv | 0x70e3b98bf6fe9cd83a28dcac6b75129f41fd7a95 | 1 | 2 | 1796.45267 | -| terp1rlacl9y8w73lxuqlwgvyhwdemhrrz27xuts0su | 0x1ffb8f948777a3f3701f72184bb9b9ddc6312bc6 | 1 | 2 | 1796.45267 | -| terp156s703kgd2ucs8ggu80pxkqtl2wjyvtl4nvfmx | 0xa6a1e7c6c86ab9881d08e1de13580bfa9d22317f | 1 | 2 | 1796.45267 | -| terp1dkc69vpys0mg4xpefmwtm7rxaxpvd700xvlhgs | 0x6db1a2b02483f68a98394edcbdf866e982c6f9ef | 1 | 2 | 1796.45267 | -| terp15dgts0gteqk4qts28d9n8agm77l6pz522qwyjn | 0xa350b83d0bc82d502e0a3b4b33f51bf7bfa08a8a | 1 | 2 | 1796.45267 | -| terp1htuuc39cp2pzjdr2cr2jcalv9rtlx7efr7z2nd | 0xbaf9cc44b80a8229346ac0d52c77ec28d7f37b29 | 1 | 2 | 1796.45267 | -| terp14la57s870y0maxrnxvehrqdsdjuazy3hsjyfc0 | 0xaffb4f40fe791fbe987333337181b06cb9d11237 | 1 | 2 | 1796.45267 | -| terp1ez52kevhsamphg0mx8tqpehtwph5hzx0e558k0 | 0xc8a8ab659787761ba1fb31d600e6eb706f4b88cf | 1 | 2 | 1796.45267 | -| terp1zx9lq6farag4g83gy5lx0wca3z4jfdacp29gul | 0x118bf0693d1f51541e28253e67bb1d88ab24b7b8 | 1 | 2 | 1796.45267 | -| terp1z0sdp20yqf83sp869gxaunmu8z4ucclhmrg6yu | 0x13e0d0a9e4024f1804fa2a0dde4f7c38abcc63f7 | 1 | 2 | 1796.45267 | -| terp1lpeqwgzvyckv45qvd2uksj8l8v4qw7ldarjtzz | 0xf87207204c262ccad00c6ab96848ff3b2a077bed | 1 | 2 | 1796.45267 | -| terp10zhlfyxemx5elcj59lngd5g9y9mplq6zvncnf9 | 0x78aff490d9d9a99fe2542fe686d10521761f8342 | 1 | 2 | 1796.45267 | -| terp1jlem3st093mjx58sdlexlv4njgwzdewm6k7u7q | 0x97f3b8c16f2c772350f06ff26fb2b3921c26e5db | 1 | 2 | 1796.45267 | -| terp1waudmr79v2lmymxy4uqade8f2cpsuw7vkhnk04 | 0x7778dd8fc562bfb26cc4af01d6e4e956030e3bcc | 1 | 2 | 1796.45267 | -| terp1pf8ca4wjm32psfesue6qa92ysu7t2dg92x783v | 0x0a4f8ed5d2dc54182730e6740e9544873cb53505 | 1 | 2 | 1796.45267 | -| terp18ym6ej5x25de0dpmnz9kz43xw4rwz7zkc7let9 | 0x3937acca86551b97b43b988b6156267546e17856 | 1 | 2 | 1796.45267 | -| terp1wupe8xvqrarzknk3x3z2ye43vd2ugudlavkjlm | 0x77039399801f462b4ed13444a266b16355c471bf | 1 | 2 | 1796.45267 | -| terp14phzntug94hs53zc49kjvzd3gl6zt82pkvwfma | 0xa86e29af882d6f0a4458a96d2609b147f4259d41 | 1 | 2 | 1796.45267 | -| terp1x9xq70j34jeukkh4vedqp2jwlpaudax334llw5 | 0x314c0f3e51acb3cb5af5665a00aa4ef87bc6f4d1 | 1 | 2 | 1796.45267 | -| terp1gd84xfwaekalennyhcnp03evf23nasl89lfqcp | 0x434f5325ddcdbbfcce64be2617c72c4aa33ec3e7 | 1 | 2 | 1796.45267 | -| terp105m77xku7ya5elrmuu8fkl6k6wqdzr2rmt7gy3 | 0x7d37ef1adcf13b4cfc7be70e9b7f56d380d10d43 | 1 | 2 | 1796.45267 | -| terp1sx0wctrx55fwl98n4xkr7l6apldu9nryysqrsp | 0x819eec2c66a512ef94f3a9ac3f7f5d0fdbc2cc64 | 1 | 2 | 1796.45267 | -| terp16j4fmmz5vxdsgt3gj3x6u33q4rm59neps6xt88 | 0xd4aa9dec54619b042e28944dae4620a8f742cf21 | 1 | 2 | 1796.45267 | -| terp1n8w7hkhznqsmzkash9ctg3vucjhdvxevjq7meq | 0x99ddebdae29821b15bb0b970b4459cc4aed61b2c | 1 | 2 | 1796.45267 | -| terp10l6ct69krxu4hhphcrx97q7f8p046csvxxd7dd | 0x7ff585e8b619b95bdc37c0cc5f03c9385f5d620c | 1 | 2 | 1796.45267 | -| terp1d0hqs86c2mmk87galn47scv5gj2crff86rr76t | 0x6bee081f5856f763f91dfcebe86194449581a527 | 1 | 2 | 1796.45267 | -| terp1mnmtat8nvs00842zq03mfmwl2d59nn4c0cwws0 | 0xdcf6beacf3641ef3d54203e3b4eddf536859ceb8 | 1 | 2 | 1796.45267 | -| terp1n9z5468875c7rzq9v5sx65cxesd50v82pudadz | 0x99454ae8e7f531e1880565206d5306cc1b47b0ea | 1 | 2 | 1796.45267 | -| terp1vpsy6d0l8ef8fn59z0y7mjfkc2u9tmr94n2h42 | 0x60604d35ff3e5274ce8513c9edc936c2b855ec65 | 1 | 2 | 1796.45267 | -| terp18zd4ashpdu2km8htp4cfhnsxunmpgpjqtm6rad | 0x389b5ec2e16f156d9eeb0d709bce06e4f6140640 | 1 | 2 | 1796.45267 | -| terp1d0qfeetwnz3x3ks4xt2jg6acsmy0ccq6fu9krh | 0x6bc09ce56e98a268da1532d5246bb886c8fc601a | 1 | 2 | 1796.45267 | -| terp16dwu9m6ffy9rufk9cv3mn8hfk0awmump554wn8 | 0xd35dc2ef49490a3e26c5c323b99ee9b3faedf361 | 1 | 2 | 1796.45267 | -| terp1xzsjvdpksmyshatnk8339m3h5mq7qyedfa45ma | 0x30a126343686c90bf573b1e312ee37a6c1e0132d | 1 | 2 | 1796.45267 | -| terp1em6fux2grruj0lwp0kpye7de6est9r3u6qlcv8 | 0xcef49e194818f927fdc17d824cf9b9d660b28e3c | 1 | 2 | 1796.45267 | -| terp1gh5lqg0s6uuuganq4tjn4xyc2eqrauvwemxep4 | 0x45e9f021f0d739c47660aae53a989856403ef18e | 1 | 2 | 1796.45267 | -| terp1y0uq2vlrpnh8quguljepcqev06ew22cjed3d0z | 0x23f80533e30cee70711cfcb21c032c7eb2e52b12 | 1 | 2 | 1796.45267 | -| terp1v9nahxvd42dwcqhm3vcgncd90yy6hzsvucq0qa | 0x6167db998daa9aec02fb8b3089e1a57909ab8a0c | 1 | 2 | 1796.45267 | -| terp1rkyqqx3kv8r79wyxmm82hhm8unyd382tqjs2ul | 0x1d88001a3661c7e2b886deceabdf67e4c8d89d4b | 1 | 2 | 1796.45267 | -| terp1ruwc6q9f5hdpz2a7cdqtufrcda8j799dkv7svx | 0x1f1d8d00a9a5da112bbec340be24786f4f2f14ad | 1 | 2 | 1796.45267 | -| terp1k78yhyxnlyfce2n96tgaka9gncaxuqspm9ruzy | 0xb78e4b90d3f9138caa65d2d1db74a89e3a6e0201 | 1 | 2 | 1796.45267 | -| terp1q0xqnzu6j43fjgw0gplsekvc0hkrcd2edu5sg0 | 0x03cc098b9a95629921cf407f0cd9987dec3c3559 | 1 | 2 | 1796.45267 | -| terp1pzganezpu54eljd54u6rygdk7qn89wk8mc05ff | 0x0891d9e441e52b9fc9b4af343221b6f02672bac7 | 1 | 2 | 1796.45267 | -| terp1y4p3v588nkjl6pgkc2k9yvvgh7s7ruh6jkw2t5 | 0x25431650e79da5fd0516c2ac523188bfa1e1f2fa | 1 | 2 | 1796.45267 | -| terp18wfz44d9hm5pdf3m9xc95vn3h0ys38t44jy9m8 | 0x3b922ad5a5bee816a63b29b05a3271bbc9089d75 | 1 | 2 | 1796.45267 | -| terp1wzwjsqnm30exfwg39yyqdvakj07tv89wm52f0g | 0x709d28027b8bf264b911290806b3b693fcb61cae | 1 | 2 | 1796.45267 | -| terp1x3f7vhrjszjfs0je8wjz9htdj6rh3cnzxzjvrf | 0x3453e65c7280a4983e593ba422dd6d968778e262 | 1 | 2 | 1796.45267 | -| terp192a879jyeffe3adzacun7a9asnguwajptjmp3q | 0x2aba7f1644ca5398f5a2ee393f74bd84d1c77641 | 1 | 2 | 1796.45267 | -| terp14lnwx64ccpy2ynl9spuydrzms2vfgf05kac33w | 0xafe6e36ab8c048a24fe58078468c5b82989425f4 | 1 | 2 | 1796.45267 | -| terp1u5wzdztxt8fr3mcapj37ms0afttnh7muxa7nah | 0xe51c26896659d238ef1d0ca3edc1fd4ad73bfb7c | 1 | 2 | 1796.45267 | -| terp17tfln9a4zdtazus80fuhq4h55gvrl73m3tm3wq | 0xf2d3f997b51357d172077a797056f4a2183ffa3b | 1 | 2 | 1796.45267 | -| terp15eacaxp9rfwn70jpw5zmcxhy7z4wvyrexqy6c3 | 0xa67b8e98251a5d3f3e417505bc1ae4f0aae61079 | 1 | 2 | 1796.45267 | -| terp1v77vju5d9wvll2njrcd4k56nr5ypf6kdra46g5 | 0x67bcc9728d2b99ffaa721e1b5b53531d0814eacd | 1 | 2 | 1796.45267 | -| terp1naznlxhwqf4567tsmaj5ch98ga4yqr2c5dxxkx | 0x9f453f9aee026b4d7970df654c5ca7476a400d58 | 1 | 2 | 1796.45267 | -| terp1wa4yr3y8rra5rsam0dpg82gm63mracydz09gf8 | 0x776a41c48718fb41c3bb7b4283a91bd4763ee08d | 1 | 2 | 1796.45267 | -| terp1hx74t66p5jxa3vc5rgyuf3kc9x6crnlttvkzpp | 0xb9bd55eb41a48dd8b3141a09c4c6d829b581cfeb | 1 | 2 | 1796.45267 | -| terp1wv8e86lct3v6dytpa6uejr8axngq5fuzmg2pd8 | 0x730f93ebf85c59a69161eeb9990cfd34d00a2782 | 1 | 2 | 1796.45267 | -| terp1lrfu6cw4kmgv3y7jxug8xy24m7xcx53dcup9x4 | 0xf8d3cd61d5b6d0c893d23710731155df8d83522d | 1 | 2 | 1796.45267 | -| terp1qppw0w9pquzmjxq2ek5cgf4j6qmsd7pky6eplf | 0x0042e7b8a10705b9180acda98426b2d03706f836 | 1 | 2 | 1796.45267 | -| terp13mw7k77fk3s463vtqre8u5mv7uy3mwplfnumq3 | 0x8eddeb7bc9b4615d458b00f27e536cf7091db83f | 1 | 2 | 1796.45267 | -| terp14fltkeej9rssrgyx2n3jlnps8kwxurxz260x3l | 0xaa7ebb673228e101a08654e32fcc303d9c6e0cc2 | 1 | 2 | 1796.45267 | -| terp18w9uhftrcgd39r0v3u2ajld63lawwcn4ssncf4 | 0x3b8bcba563c21b128dec8f15d97dba8ffae76275 | 1 | 2 | 1796.45267 | -| terp1dcgady5tcknh4u5ezk2xnkpprgdjp067g32882 | 0x6e11d6928bc5a77af299159469d8211a1b20bf5e | 1 | 2 | 1796.45267 | -| terp102ycmfy2ut3knd008cmtdl7gw29jjckrlfqvph | 0x7a898da48ae2e369b5ef3e36b6ffc8728b2962c3 | 1 | 2 | 1796.45267 | -| terp17kwg6c20wtnne88e92wltuatrfkvdnxulj34aw | 0xf59c8d614f72e73c9cf92a9df5f3ab1a6cc6ccdc | 1 | 2 | 1796.45267 | -| terp1alqs0wrpnj6dg8y54atr3w27pxqkwu3yeyy6h7 | 0xefc107b8619cb4d41c94af5638b95e0981677224 | 1 | 2 | 1796.45267 | -| terp1r92v5qed75tl2zjd926e6akyrag2vcrme44ehg | 0x1954ca032df517f50a4d2ab59d76c41f50a6607b | 1 | 2 | 1796.45267 | -| terp12300q89dwj0ywstlau0gg9ff3xxw6s0aaa7wht | 0x545ef01cad749e47417fef1e841529898ced41fd | 1 | 2 | 1796.45267 | -| terp1upg9lnaenrplkfq7sqc3s9jyxph32jgud87ayy | 0xe0505fcfb998c3fb241e8031181644306f15491c | 1 | 2 | 1796.45267 | -| terp1lp7qpyqpw6qywz829yy6lpk9v8ntevppdfwnzf | 0xf87c00900176804708ea2909af86c561e6bcb021 | 1 | 2 | 1796.45267 | -| terp15wxsx3a05ej8hsn4zxlhtl7ep9sjkfscnelmf3 | 0xa38d0347afa6647bc27511bf75ffd909612b2618 | 1 | 2 | 1796.45267 | -| terp1ja28wkyd6y4ft80m3m6eh0k8aszkr8qpsfp4y2 | 0x975477588dd12a959dfb8ef59bbec7ec05619c01 | 1 | 2 | 1796.45267 | -| terp1fydd4nk2ugzru0r3zhswv7w0cqhlgqxs79uesl | 0x491adacecae2043e3c7115e0e679cfc02ff400d0 | 1 | 2 | 1796.45267 | -| terp1vy758mxw7w3882mswqw4kjpek8z00vqxf06dmj | 0x613d43eccef3a273ab70701d5b4839b1c4f7b006 | 1 | 2 | 1796.45267 | -| terp1ga7uwr8qvtwm5cunp0m88n08z6a9pygellezx3 | 0x477dc70ce062ddba63930bf673cde716ba509119 | 1 | 2 | 1796.45267 | -| terp1xzdmf6wv9aew6l6v7nny9c2awt2uwdjwk89e7y | 0x309bb4e9cc2f72ed7f4cf4e642e15d72d5c7364e | 1 | 2 | 1796.45267 | -| terp1zf3kk6609vkrvfvzvsqdm4dd7knqzjzs4td2lu | 0x12636b6b4f2b2c3625826400ddd5adf5a6014850 | 1 | 2 | 1796.45267 | -| terp1szys7lahczt3kpll5pawd4qnxzza60fxuyy006 | 0x80890f7fb7c0971b07ffa07ae6d4133085dd3d26 | 1 | 2 | 1796.45267 | -| terp1rkzxrz3dh4wumwuctnv633447qd5vxdnm7f4ju | 0x1d84618a2dbd5dcdbb985cd9a8c6b5f01b4619b3 | 1 | 2 | 1796.45267 | -| terp1ka58feadlvkpr6p4wsjxfxyv4f6ah6k7d887xy | 0xb76874e7adfb2c11e835742464988caa75dbeade | 1 | 2 | 1796.45267 | -| terp1vg6t6cu3llcv6vt5kys6830zkaa0dh76zwhx8j | 0x6234bd6391fff0cd3174b121a3c5e2b77af6dfda | 1 | 2 | 1796.45267 | -| terp10p5z5wn2yegjqr5f4gr9t87v4vhxn7teqgwfzr | 0x78682a3a6a2651200e89aa06559fccab2e69f979 | 1 | 2 | 1796.45267 | -| terp1j8vquq9ytydu4n6myntu8au4vfh68m8crdht6r | 0x91d80e00a4591bcacf5b24d7c3f795626fa3ecf8 | 1 | 2 | 1796.45267 | -| terp1gywfup3h4lttpmuwkc75k4lql2awh7fdzpr5lg | 0x411c9e0637afd6b0ef8eb63d4b57e0fabaebf92d | 1 | 2 | 1796.45267 | -| terp1mvvuzmk0qamsz0u9w9js6sfjhpj393uyh8r6n2 | 0xdb19c16ecf0777013f8571650d4132b86512c784 | 1 | 2 | 1796.45267 | -| terp1eeqgpx3quc6efj98dp3xtyjxaar9ghkde3ly2u | 0xce40809a20e63594c8a76862659246ef46545ecd | 1 | 2 | 1796.45267 | -| terp15u8fqcx6svsgea7nhnp5njks3cp57k8y9d0qzm | 0xa70e9060da83208cf7d3bcc349cad08e034f58e4 | 1 | 2 | 1796.45267 | -| terp1paxd7etzcw3f87724n5x23wt7vsklyc6dqy68l | 0x0f4cdf6562c3a293fbcaace86545cbf3216f931a | 1 | 2 | 1796.45267 | -| terp1xm0em9vx6wjy2eedr29q4x2f3nqv0k5ata02gh | 0x36df9d9586d3a445672d1a8a0a99498cc0c7da9d | 1 | 2 | 1796.45267 | -| terp1xqlhvw27832y78eqva5vk49hq8mjqv5rtrksn4 | 0x303f76395e3c544f1f206768cb54b701f7203283 | 1 | 2 | 1796.45267 | -| terp1dxwvu8k2y5xsvl5ykz9fkfn64u2r9l2dl47mjj | 0x699cce1eca250d067e84b08a9b267aaf1432fd4d | 1 | 2 | 1796.45267 | -| terp15dqghhh8r65eg983z4885g7fwhkus8wcy75kjw | 0xa3408bdee71ea99414f1154e7a23c975edc81dd8 | 1 | 2 | 1796.45267 | -| terp127l8e5jrca3s4upnxm99q4mm3xyy85vyt8zqxe | 0x57be7cd243c7630af03336ca50577b898843d184 | 1 | 2 | 1796.45267 | -| terp1qhrdqa740gc29jxua3vynd7sfhdx6en9k9uvl7 | 0x05c6d077d57a30a2c8dcec5849b7d04dda6d6665 | 1 | 2 | 1796.45267 | -| terp1arnl7hky5ueznep845yd5jwqh90ypdmcf0d806 | 0xe8e7ff5ec4a73229e427ad08da49c0b95e40b778 | 1 | 2 | 1796.45267 | -| terp1sstv636857p5r8mgfrm5hvylmmzeyrmcfrv2fn | 0x8416cd4747a783419f6848f74bb09fdec5920f78 | 1 | 2 | 1796.45267 | -| terp1489dekylfyrvsfnjks25l7cecn5ypx44txsay7 | 0xa9cadcd89f4906c82672b4154ffb19c4e8409ab5 | 1 | 2 | 1796.45267 | -| terp1rqyh2n044sfn58x86n40ghkn3num88kgc25fhf | 0x1809754df5ac133a1cc7d4eaf45ed38cf9b39ec8 | 1 | 2 | 1796.45267 | -| terp1zr2ztudd2j4hkzmhz05nw4899g9ynr5gzjv3cs | 0x10d425f1ad54ab7b0b7713e93754e52a0a498e88 | 1 | 2 | 1796.45267 | -| terp1pkqnvcv4njdzauzngy734aawehd45jx3nn2h50 | 0x0d813661959c9a2ef053413d1af7aecddb5a48d1 | 1 | 2 | 1796.45267 | -| terp1zd3lcfxfyzpa68gmwc5zxgy6w4ue9f24ps5j4h | 0x1363fc24c92083dd1d1b762823209a757992a555 | 1 | 2 | 1796.45267 | -| terp1e2dgl4exydhztrp8u7q0pvmrr24ztvud9pxfez | 0xca9a8fd726236e258c27e780f0b3631aaa25b38d | 1 | 2 | 1796.45267 | -| terp1l29npcq7jx7a0uw28799kygyhxlwhm6g8euj7u | 0xfa8b30e01e91bdd7f1ca3f8a5b1104b9beebef48 | 1 | 2 | 1796.45267 | -| terp197rfhss3n9resc4tfns7jqplkauhacwkvefn69 | 0x2f869bc21199479862ab4ce1e9003fb7797ee1d6 | 1 | 2 | 1796.45267 | -| terp12e5hjnpldhxhdr866gdjkne723ehktqnrj2su5 | 0x5669794c3f6dcd768cfad21b2b4f3e54737b2c13 | 1 | 2 | 1796.45267 | -| terp1ttqyxxsm3lecg3w4qacahxdphupxmmkshtdq59 | 0x5ac0431a1b8ff38445d50771db99a1bf026deed0 | 1 | 2 | 1796.45267 | -| terp1usxsrahfkp7kjxz5mcce7zrdur89z8pgvr4z8k | 0xe40d01f6e9b07d691854de319f086de0ce511c28 | 1 | 2 | 1796.45267 | -| terp1sy6335y7tvfstapk2l6u25jn29c57dcy3kty07 | 0x813518d09e5b1305f43657f5c5525351714f3704 | 1 | 2 | 1796.45267 | -| terp1rsva0xexgc3xnlkthqcgxa7kh05u7ur7vd2cjw | 0x1c19d79b26462269fecbb8308377d6bbe9cf707e | 1 | 2 | 1796.45267 | -| terp1fd6k7pstauxzsp5mnm2xl5t0rup5fc29kucq07 | 0x4b756f060bef0c28069b9ed46fd16f1f0344e145 | 1 | 2 | 1796.45267 | -| terp1k3mye7esfhzrvp8vvdly096s8crdelejhve644 | 0xb4764cfb304dc43604ec637e4797503e06dcff32 | 1 | 2 | 1796.45267 | -| terp1zl7v0p5xk9k50py5xy3kx707cyk3evsz8rmfww | 0x17fcc78686b16d47849431236379fec12d1cb202 | 1 | 2 | 1796.45267 | -| terp1kjmcuasrcvjqz00fj34qfudqzurqhux2v9zrq0 | 0xb4b78e7603c324013de9946a04f1a017060bf0ca | 1 | 2 | 1796.45267 | -| terp13cwnkthhwgcwqx8ycw6tutgglt2s2ce2g48qcd | 0x8e1d3b2ef77230e018e4c3b4be2d08fad505632a | 1 | 2 | 1796.45267 | -| terp1fyqasejna6n20scearmx0v8r7ekz0sc8x7mtgd | 0x4901d86653eea6a7c319e8f667b0e3f66c27c307 | 1 | 2 | 1796.45267 | -| terp1dwls24lqelslcqlgcvjr3hnux2dx7gsmm4857a | 0x6bbf0557e0cfe1fc03e8c32438de7c329a6f221b | 1 | 2 | 1796.45267 | -| terp198slhclrn0ycmt0qayy52yltt4ftqtpkqeqcyy | 0x29e1fbe3e39bc98dade0e9094513eb5d52b02c36 | 1 | 2 | 1796.45267 | -| terp1fvkpee4qrxqac0h8nqjmmslne4un90c3wjfmnh | 0x4b2c1ce6a01981dc3ee79825bdc3f3cd7932bf11 | 1 | 2 | 1796.45267 | -| terp1t56hzjqvln5wulaq23m555nalmc06lfgqvrclr | 0x5d3571480cfce8ee7fa054774a527dfef0fd7d28 | 1 | 2 | 1796.45267 | -| terp147qy7ackr9fu2mc88rl7x7wr9j37lmp8gfjjku | 0xaf804f77161953c56f0738ffe379c32ca3efec27 | 1 | 2 | 1796.45267 | -| terp1cqhc6tp3jtccd5079lmf45ejdvzw7mz77u4e2g | 0xc02f8d2c3192f186d1fe2ff69ad3326b04ef6c5e | 1 | 2 | 1796.45267 | -| terp1tp2ds3p0p9vqqe249swpg6sh0twjws5cleyjd0 | 0x5854d8442f09580065552c1c146a177add274298 | 1 | 2 | 1796.45267 | -| terp1jcfvkwl56evksquf96eu6qcvnd5apds4kngak5 | 0x9612cb3bf4d6596803892eb3cd030c9b69d0b615 | 1 | 2 | 1796.45267 | -| terp1y9yskmrf8mtauvz8zzfq3usn38xje2t9ycxwvv | 0x21490b6c693ed7de3047109208f21389cd2ca965 | 1 | 2 | 1796.45267 | -| terp13smgf5c3m85054zuxqj8es74zk88x9jn4lqzq0 | 0x8c3684d311d9e8fa545c30247cc3d5158e731653 | 1 | 2 | 1796.45267 | -| terp1cf6j7fuf7zyqnaf9qefgqx83lh33k78z9wnjrh | 0xc2752f2789f08809f52506528018f1fde31b78e2 | 1 | 2 | 1796.45267 | -| terp1xe4drcwl7tqjtwnrk6sg34kjmzlawd36xu5lgr | 0x366ad1e1dff2c125ba63b6a088d6d2d8bfd7363a | 1 | 2 | 1796.45267 | -| terp15ueapqtzfdxktqt6xstj7z9eytf83dzzyhdrk0 | 0xa733d081624b4d65817a34172f08b922d278b442 | 1 | 2 | 1796.45267 | -| terp1kymet8kgrlcr2anrffersv8vyrxuva6fct34kh | 0xb137959ec81ff03576634a723830ec20cdc67749 | 1 | 2 | 1796.45267 | -| terp129gdnk3ezg6r4tf0mp4g923fhksgkxpwh0cenq | 0x5150d9da3912343aad2fd86a82aa29bda08b182e | 1 | 2 | 1796.45267 | -| terp14smd7tz9j9jerymxy464wdgh86f2jrq328hexn | 0xac36df2c45916591936625755735173e92a90c11 | 1 | 2 | 1796.45267 | -| terp1yculptdhresktjflxqshk44mh2dfhut9m0q03y | 0x2639f0adb71e6165c93f30217b56bbba9a9bf165 | 1 | 2 | 1796.45267 | -| terp1e06qmzu7sjv2gtsytfurgvg9qugc7jyj4tudhh | 0xcbf40d8b9e8498a42e045a7834310507118f4892 | 1 | 2 | 1796.45267 | -| terp1jfvxl0p793283yercwygjm83ss5r5mmqm8vayz | 0x92586fbc3e2c54789323c388896cf184283a6f60 | 1 | 2 | 1796.45267 | -| terp1x0dd3dqq4hpj4d22885lk98d09eheupk0ksmk6 | 0x33dad8b400adc32ab54a39e9fb14ed79737cf036 | 1 | 2 | 1796.45267 | -| terp1uhdsrjw43rk70jvnjaflhpm7hc5khfff2j48xk | 0xe5db01c9d588ede7c9939753fb877ebe296ba529 | 1 | 2 | 1796.45267 | -| terp1zruchn2efrp039c36vvar0hq453rezldusr8vf | 0x10f98bcd5948c2f89711d319d1bee0ad223c8bed | 1 | 2 | 1796.45267 | -| terp1l0rucp6u5pkm3jafpcux92z4j7g6tue88dsnu5 | 0xfbc7cc075ca06db8cba90e3862a8559791a5f327 | 1 | 2 | 1796.45267 | -| terp1nyn8hgn2dcgw3qgtm9z3mtgxg9u278tz7akgth | 0x99267ba26a6e10e8810bd9451dad064178af1d62 | 1 | 2 | 1796.45267 | -| terp1kfusehfl22xpfsy78jya92x4wz2qlezq4gp0qh | 0xb2790cdd3f528c14c09e3c89d2a8d570940fe440 | 1 | 2 | 1796.45267 | -| terp1mh5hj03xejp3lm4czle5adzt4xp2j6lw34h4uq | 0xdde9793e26cc831feeb817f34eb44ba982a96bee | 1 | 2 | 1796.45267 | -| terp1lzdl8n3xcrsttqvdrw38dpfj2djjlkf4tx3rlw | 0xf89bf3ce26c0e0b5818d1ba276853253652fd935 | 1 | 2 | 1796.45267 | -| terp18d0jcu5gxmdp8udlag5dzauaqqppfcdxant3ea | 0x3b5f2c728836da13f1bfea28d1779d000214e1a6 | 1 | 2 | 1796.45267 | -| terp1dh85d0l0zrunne08z4zdz203fz2rdhu5mv9vtk | 0x6dcf46bfef10f939e5e71544d129f1489436df94 | 1 | 2 | 1796.45267 | -| terp1y4scmtnpyq0a34u9d8qv9x0kdq0yl69hxw9sjn | 0x25618dae61201fd8d78569c0c299f6681e4fe8b7 | 1 | 2 | 1796.45267 | -| terp1hkmcrxn8rwp7qjqq4x8qq222vlta9mr6wuj3z2 | 0xbdb7819a671b83e04800a98e00294a67d7d2ec7a | 1 | 2 | 1796.45267 | -| terp1ncmhewjaffjs5yj9gywmhm9pczamdrk90xd7r0 | 0x9e377cba5d4a650a1245411dbbeca1c0bbb68ec5 | 1 | 2 | 1796.45267 | -| terp1tkf3catqzg4juetarzwvcgxt43husrlcjxpdsd | 0x5d931c7560122b2e657d189ccc20cbac6fc80ff8 | 1 | 2 | 1796.45267 | -| terp10jy3l67sh3zkscm80gwwkgx44nyqlwjjjujxar | 0x7c891febd0bc456863677a1ceb20d5acc80fba52 | 1 | 2 | 1796.45267 | -| terp10d0cwh5wy3qkfeztpl7skh40cl96m6euladx58 | 0x7b5f875e8e244164e44b0ffd0b5eafc7cbadeb3c | 1 | 2 | 1796.45267 | -| terp1nhv33jn2dk9c4njt4wntkeqpmt5hq0x785wcnz | 0x9dd918ca6a6d8b8ace4baba6bb6401dae9703cde | 1 | 2 | 1796.45267 | -| terp1349lxpevlpftrvfkvw0t68qppupandqyk06kkg | 0x8d4bf3072cf852b1b136639ebd1c010f03d9b404 | 1 | 2 | 1796.45267 | -| terp18lfjvzqyj87tnj4l9h6d9drjyn699qmvejuc58 | 0x3fd326080491fcb9cabf2df4d2b47224f452836c | 1 | 2 | 1796.45267 | -| terp1zcqvgk6hulq3m2ysqjl5jpp5nt0kz2u4d4wut8 | 0x1600c45b57e7c11da89004bf4904349adf612b95 | 1 | 2 | 1796.45267 | -| terp1flnfjml52xhajqr9x3njsjs6n4qewy7ka5c9cv | 0x4fe6996ff451afd900653467284a1a9d419713d6 | 1 | 2 | 1796.45267 | -| terp1np6lddzmswxg7zxzc70hwzw70wrkscqujps9pz | 0x9875f6b45b838c8f08c2c79f7709de7b8768601c | 1 | 2 | 1796.45267 | -| terp15s0cukj7haj5zqpf6hwwthl8s2rqt6g78a74gn | 0xa41f8e5a5ebf65410029d5dce5dfe7828605e91e | 1 | 2 | 1796.45267 | -| terp1m3dsxmwjjwgsdh0scw3svrq09yn6hrptd83xtk | 0xdc5b036dd2939106ddf0c3a3060c0f2927ab8c2b | 1 | 2 | 1796.45267 | -| terp16xrdu0gy9x99znwfw9ewmevtj0c4ry4xpzvg6e | 0xd186de3d04298a514dc97172ede58b93f15192a6 | 1 | 2 | 1796.45267 | -| terp13nrlrhpp6l2l0susvp4nh3rf4lcja6ns7s745e | 0x8cc7f1dc21d7d5f7c390606b3bc469aff12eea70 | 1 | 2 | 1796.45267 | -| terp1sqh6rzw9y8ahhthcq8zp56m825kt09durmygr8 | 0x802fa189c521fb7baef801c41a6b67552cb795bc | 1 | 2 | 1796.45267 | -| terp1gwqyjpwq9a23a32zp2yqqk7xdgd67w4sc7m5wj | 0x43804905c02f551ec5420a88005bc66a1baf3ab0 | 1 | 2 | 1796.45267 | -| terp19s4q9snkylfg5pnhqmmk2c5jk3aqwryh7ghuqw | 0x2c2a02c27627d28a067706f7656292b47a070c97 | 1 | 2 | 1796.45267 | -| terp1ja6we2tpymmc9k3vspvg2amnm9z3rwlwvw07y7 | 0x9774eca96126f782da2c8058857773d94511bbee | 1 | 2 | 1796.45267 | -| terp199fxm7yss9wdn7pe5fqej4cyh43nca5hcvspua | 0x29526df890815cd9f839a241995704bd633c7697 | 1 | 2 | 1796.45267 | -| terp1u4thq6zdwxltm8jyvvfzykzkjakndfnu84g5xc | 0xe55770684d71bebd9e446312225856976d36a67c | 1 | 2 | 1796.45267 | -| terp1jd7pwdjsr9g6ez6mra58m8feys2gh32k6sqxa5 | 0x937c1736501951ac8b5b1f687d9d3924148bc556 | 1 | 2 | 1796.45267 | -| terp1lu974v7ynqyxp4eqh5m56c8j9amt7ejhw50twk | 0xff0beab3c4980860d720bd374d60f22f76bf6657 | 1 | 2 | 1796.45267 | -| terp14vgcuq3lmwfmww5klz8dtxdxenlg2kketr30f3 | 0xab118e023fdb93b73a96f88ed599a6ccfe855ad9 | 1 | 2 | 1796.45267 | -| terp12zhuy8rvt0qqrlr3zllq3qatxq99aln6r83pfy | 0x50afc21c6c5bc001fc7117fe0883ab300a5efe7a | 1 | 2 | 1796.45267 | -| terp1wrum08u6e6nuwques3f0g2h97x94zpqygy82py | 0x70f9b79f9acea7c703998452f42ae5f18b510404 | 1 | 2 | 1796.45267 | -| terp1fmthlxd7c04r08pfprvll042uxsldsg2905dkv | 0x4ed77f99bec3ea379c2908d9ffbeaae1a1f6c10a | 1 | 2 | 1796.45267 | -| terp1tszk5xnk4c0gpteta7dvf9el5jh6jkds6epcca | 0x5c056a1a76ae1e80af2bef9ac4973fa4afa959b0 | 1 | 2 | 1796.45267 | -| terp1xs049p8rs4ztsrcqx4xs4neysw2tqyjm0a9dx4 | 0x341f5284e38544b80f00354d0acf248394b0125b | 1 | 2 | 1796.45267 | -| terp1xcfa8mp9jmjg676np9u02kzs7ut0qht7ct0pqj | 0x3613d3ec2596e48d7b530978f55850f716f05d7e | 1 | 2 | 1796.45267 | -| terp12nyse6eegce76943dusg4exq5hp5aarxdqa4ut | 0x54c90ceb394633ed16b16f208ae4c0a5c34ef466 | 1 | 2 | 1796.45267 | -| terp15j9rqyfxh7c8fmuj5ug245z43nmtnne7cexl6y | 0xa48a301126bfb074ef92a710aad0558cf6b9cf3e | 1 | 2 | 1796.45267 | -| terp1p402sf54wrz4qp6z8muug4essf43glrcgqpck4 | 0x0d5ea8269570c55007423ef9c45730826b147c78 | 1 | 2 | 1796.45267 | -| terp15h3nlfcsf6m6tdgxr32n9akywx028tcqqxcl2q | 0xa5e33fa7104eb7a5b5061c5532f6c4719ea3af00 | 1 | 2 | 1796.45267 | -| terp1xt0pxudh95dfzdlkfz5ylys8f7jfheyl9z07s9 | 0x32de1371b72d1a9137f648a84f92074fa49be49f | 1 | 2 | 1796.45267 | -| terp1k0r0dywxzvz5rptrmucu9q7rtqccf3vyx4djlg | 0xb3c6f691c61305418563df31c283c3583184c584 | 1 | 2 | 1796.45267 | -| terp1jwh2ucnfr27yve8end4p52vn2q749fwetkslh7 | 0x93aeae62691abc4664f99b6a1a2993503d52a5d9 | 1 | 2 | 1796.45267 | -| terp1c0sp83uunte4lmkyq2g4wj2lmx7fenplywa548 | 0xc3e013c79c9af35feec4029157495fd9bc9ccc3f | 1 | 2 | 1796.45267 | -| terp1de32jhqguw8y8nfyf7865h6uvl9pt3qqhayj78 | 0x6e62a95c08e38e43cd244f8faa5f5c67ca15c400 | 1 | 2 | 1796.45267 | -| terp1tp4fgaqxlpn0u4ul76ggj8u6d099xykzzuatsc | 0x586a947406f866fe579ff690891f9a6bca5312c2 | 1 | 2 | 1796.45267 | -| terp1jhvwsc8f0l5wxsmst9h4p93fvsa6rfa82ga4ge | 0x95d8e860e97fe8e34370596f509629643ba1a7a7 | 1 | 2 | 1796.45267 | -| terp1gaksnwklqyt4r8s7kszhyhk6la3zem6j90wxyf | 0x476d09badf0117519e1eb405725edaff622cef52 | 1 | 2 | 1796.45267 | -| terp1ken4gff9lcn23nzedjusddf63rdhgxdfgqxum6 | 0xb667542525fe26a8cc596cb906b53a88db7419a9 | 1 | 2 | 1796.45267 | -| terp10mcc8u00lk26eu2dl774pt2knlwj07c7vj3tuy | 0x7ef183f1effd95acf14dffbd50ad569fdd27fb1e | 1 | 2 | 1796.45267 | -| terp1wj6lnuqqkeuu4z2w0cpfx7ey4ujnszfya4wegw | 0x74b5f9f000b679ca894e7e02937b24af25380924 | 1 | 2 | 1796.45267 | -| terp1cwfkk2mcdpp2yd5uzr8ajeg8yrvzmrey5k8lkq | 0xc3936b2b786842a2369c10cfd9650720d82d8f24 | 1 | 2 | 1796.45267 | -| terp1xp7gnvvneq7max7ak5wpvjfv2emkw0dt6g4fp8 | 0x307c89b193c83dbe9bddb51c16492c5677673dab | 1 | 2 | 1796.45267 | -| terp1jy65gl4vjc2vhcw2d36sg02ghaj0fpgrqeqmff | 0x9135447eac9614cbe1ca6c75043d48bf64f48503 | 1 | 2 | 1796.45267 | -| terp1vxmxfl2nuas45sc0sn2eqvgc35nrpjddjne4e0 | 0x61b664fd53e7615a430f84d59031188d2630c9ad | 1 | 2 | 1796.45267 | -| terp1gsw844tmvq7kgmrtktc3szzmtj4ajfkj7pfq3l | 0x441c7ad57b603d646c6bb2f118085b5cabd926d2 | 1 | 2 | 1796.45267 | -| terp1smjexljvdhug0fw2x80nmgq2afjrpp8ardvauk | 0x86e5937e4c6df887a5ca31df3da00aea643084fd | 1 | 2 | 1796.45267 | -| terp1sherr025euuwewefhh5dr80m296gjftmuted0a | 0x85f231bd54cf38ecbb29bde8d19dfb517489257b | 1 | 2 | 1796.45267 | -| terp14jwckshauw8kwxp8dqmm353534q5uj3rsgllr2 | 0xac9d8b42fde38f6718276837b8d2348d414e4a23 | 1 | 2 | 1796.45267 | -| terp15njuvfsd4mdvhtcp2qshysyhq69g5z8clk9t4u | 0xa4e5c6260daedacbaf015021724097068a8a08f8 | 1 | 2 | 1796.45267 | -| terp1cnley3h6hmyjphmky2sxknajyzc6ufgrnr6q43 | 0xc4ff9246fabec920df7622a06b4fb220b1ae2503 | 1 | 2 | 1796.45267 | -| terp14cxp4w4m2mqwvkh57r2fuyc445um5k6j2mx085 | 0xae0c1ababb56c0e65af4f0d49e1315ad39ba5b52 | 1 | 2 | 1796.45267 | -| terp10tl3jxec8t06luvvehysfgzlk0z9e9g7qrwpck | 0x7aff191b383adfaff18ccdc904a05fb3c45c951e | 1 | 2 | 1796.45267 | -| terp12zn9x6qkeq4u7x35yn8403k39u09pmsyln34da | 0x50a6536816c82bcf1a3424cf57c6d12f1e50ee04 | 1 | 2 | 1796.45267 | -| terp124slxggg62qw5myjru5dr4ce04efszu60xt3t2 | 0x5561f32108d280ea6c921f28d1d7197d72980b9a | 1 | 2 | 1796.45267 | -| terp1476d0d9dpkd8mv6dqhywxau9pr32t2rfkhq2f5 | 0xafb4d7b4ad0d9a7db34d05c8e3778508e2a5a869 | 1 | 2 | 1796.45267 | -| terp14t03lk7r6her0p8nya5949ra9njwaq55exl9ch | 0xaadf1fdbc3d5f23784f327685a947d2ce4ee8294 | 1 | 2 | 1796.45267 | -| terp1jtacqhja5dh9wujqzumptnk0lvp3nknxaas6lq | 0x92fb805e5da36e577240173615cecffb0319da66 | 1 | 2 | 1796.45267 | -| terp126aupda4t7nj6fyxtctuegyqwyqnm2g5utgmar | 0x56bbc0b7b55fa72d24865e17cca08071013da914 | 1 | 2 | 1796.45267 | -| terp14yt0aqc4mfuhmqcz0vq3m30nt7uq3rg00ssx8e | 0xa916fe8315da797d83027b011dc5f35fb8088d0f | 1 | 2 | 1796.45267 | -| terp15ytsdg32pnr0a4u93chcqlpk3nf2q4hcfwke4j | 0xa11706a22a0cc6fed7858e2f807c368cd2a056f8 | 1 | 2 | 1796.45267 | -| terp1nc3fd9uch9u5fh4690py70ldkddpnq0p7cdr70 | 0x9e22969798b97944deba2bc24f3fedb35a1981e1 | 1 | 2 | 1796.45267 | -| terp1xz0wu6s5jvdnaryg4ajgzavfykkx5fwsmjs84y | 0x309eee6a14931b3e8c88af6481758925ac6a25d0 | 1 | 2 | 1796.45267 | -| terp1wp0l7cflku4h4jq750s6vx4dnavljx7lzpnh40 | 0x705fff613fb72b7ac81ea3e1a61aad9f59f91bdf | 1 | 2 | 1796.45267 | -| terp1l78dnzlpkpnf4xttcej25mjqeyjytjrl7ll8p8 | 0xff8ed98be1b0669a996bc664aa6e40c92445c87f | 1 | 2 | 1796.45267 | -| terp1kres86w5v0yp6h79tzg5f3wuaz4y98xaj6acd3 | 0xb0f303e9d463c81d5fc5589144c5dce8aa429cdd | 1 | 2 | 1796.45267 | -| terp1lpgpacgsczsgykr0cznvrxsaj8d8wr6vxy9u5u | 0xf8501ee110c0a082586fc0a6c19a1d91da770f4c | 1 | 2 | 1796.45267 | -| terp1dka8l9fcdeqjn7ftt9yzlg6kh36098zm4f9szp | 0x6dba7f95386e4129f92b59482fa356bc74f29c5b | 1 | 2 | 1796.45267 | -| terp17t4t3gum7qkctd82ld0zc4cd6n63tuysscjgwl | 0xf2eab8a39bf02d85b4eafb5e2c570dd4f515f090 | 1 | 2 | 1796.45267 | -| terp12texrgwhgkz30yfvfnmd3d8u2dkrs5d0z90udd | 0x52f261a1d7458517912c4cf6d8b4fc536c3851af | 1 | 2 | 1796.45267 | -| terp10pj2l6zvzfcf7y73seva9myh3t33kpx42zpxhz | 0x7864afe84c12709f13d18659d2ec978ae31b04d5 | 1 | 2 | 1796.45267 | -| terp1ax5l0m2k7gqgwdjmn7zc933u8sfmxk997mm5sl | 0xe9a9f7ed56f20087365b9f8582c63c3c13b358a5 | 1 | 2 | 1796.45267 | -| terp1qmfdav8wjvcap5djflsufuxfxwxu5r884t9u6w | 0x06d2deb0ee9331d0d1b24fe1c4f0c9338dca0ce7 | 1 | 2 | 1796.45267 | -| terp1na47swcsrs9ynvf4r7aen4rgnm4y7mcylhtcuq | 0x9f6be83b101c0a49b1351fbb99d4689eea4f6f04 | 1 | 2 | 1796.45267 | -| terp1yszdv5seh5kxxzjwvxu26u80skgdcgarkd5a87 | 0x2404d65219bd2c630a4e61b8ad70ef8590dc23a3 | 1 | 2 | 1796.45267 | -| terp1asp7u4znxkw9jj77xe8epxn54pp73rhn8g8gen | 0xec03ee5453359c594bde364f909a74a843e88ef3 | 1 | 2 | 1796.45267 | -| terp17u669czcgnu2xfqy5lerdrx4acpc055qlr5jjt | 0xf735a2e05844f8a32404a7f2368cd5ee0387d280 | 1 | 2 | 1796.45267 | -| terp1r70hlu7zxqk74kgdx679yk2xl5fh4x4es2wnde | 0x1f9f7ff3c2302dead90d36bc525946fd137a9ab9 | 1 | 2 | 1796.45267 | -| terp1l4s2434t7qhr5p88hnlzxu2xu2t5aw0fpr76au | 0xfd60aac6abf02e3a04e7bcfe237146e2974eb9e9 | 1 | 2 | 1796.45267 | -| terp1y5h8mzqcead46wfaqek25apdlur67tgdepd2f8 | 0x252e7d8818cf5b5d393d066caa742dff07af2d0d | 1 | 2 | 1796.45267 | -| terp1zteqpqfd0s5htw23me2v77tg0rnwn7z4qsxs9y | 0x12f200812d7c2975b951de54cf796878e6e9f855 | 1 | 2 | 1796.45267 | -| terp1a3jwk7zeklu5aamkj3aus95zlkz5r0z2sd3hek | 0xec64eb7859b7f94ef776947bc81682fd8541bc4a | 1 | 2 | 1796.45267 | -| terp1nnkw8nka64hm0nxvwly0kf6vjle6y6mysj60r4 | 0x9cece3ceddd56fb7cccc77c8fb274c97f3a26b64 | 1 | 2 | 1796.45267 | -| terp1xlu4uevjmyhvulpej73jhs7dxdhwt0shkahvtk | 0x37f95e6592d92ece7c3997a32bc3cd336ee5be17 | 1 | 2 | 1796.45267 | -| terp1l8gh6rhg6p48nzwkfzm0d63q2y2whs0nq4f2jp | 0xf9d17d0ee8d06a7989d648b6f6ea205114ebc1f3 | 1 | 2 | 1796.45267 | -| terp1tphpdkk3ft5ugw97jxfn8nsxz09xsdg7xsey7h | 0x586e16dad14ae9c438be919333ce0613ca68351e | 1 | 2 | 1796.45267 | -| terp1ef9qgetkkgh29vqwkngatd06hry6f753lpqwxc | 0xca4a046576b22ea2b00eb4d1d5b5fab8c9a4fa91 | 1 | 2 | 1796.45267 | -| terp1lxd9pkk853mkh7saq2ckrq87kdstfhgk563y62 | 0xf99a50dac7a4776bfa1d02b16180feb360b4dd16 | 1 | 2 | 1796.45267 | -| terp1fvlnytfevlnd0a0c9qpcgsjw20w774q4g86ghg | 0x4b3f322d3967e6d7f5f8280384424e53ddef5415 | 1 | 2 | 1796.45267 | -| terp19kr7d6ded73fnh0dhzx67kjdamp36j7870xsz6 | 0x2d87e6e9b96fa299ddedb88daf5a4deec31d4bc7 | 1 | 2 | 1796.45267 | -| terp1u2um59tyu9ys3hp8nfm4lm83y44e4ylf83lk4v | 0xe2b9ba1564e14908dc279a775fecf1256b9a93e9 | 1 | 2 | 1796.45267 | -| terp1tf0ztwg8w4t9uua9lm42nl7dr7zryfevvfm59z | 0x5a5e25b90775565e73a5feeaa9ffcd1f8432272c | 1 | 2 | 1796.45267 | -| terp1fpw6qn520586ucjt4e0n56exyaxreau9p3a9zp | 0x485da04e8a7d0fae624bae5f3a6b26274c3cf785 | 1 | 2 | 1796.45267 | -| terp156dvj5tcrwtwu3tu7ksczrkx8gqe4p05fnm5vd | 0xa69ac951781b96ee457cf5a1810ec63a019a85f4 | 1 | 2 | 1796.45267 | -| terp1k5p4y9nm9wtpv4q4nl4ugumtw7wfh9qjhsxnv6 | 0xb50352167b2b961654159febc4736b779c9b9412 | 1 | 2 | 1796.45267 | -| terp1ys9k40lydhfj4qky7524yadf7zg0mpr7274e97 | 0x240b6abfe46dd32a82c4f5155275a9f090fd847e | 1 | 2 | 1796.45267 | -| terp1h8hj7wqytmnr4mmf54t00p4xeeeaym9t33fzgz | 0xb9ef2f38045ee63aef69a556f786a6ce73d26cab | 1 | 2 | 1796.45267 | -| terp1p3q7m9tr2mkj747gj8l0v999q6983aktzkdpx9 | 0x0c41ed956356ed2f57c891fef614a5068a78f6cb | 1 | 2 | 1796.45267 | -| terp1ctj09v6pm4mj6fm5h8p4eu0kcxym8984zqq520 | 0xc2e4f2b341dd772d2774b9c35cf1f6c189b394f5 | 1 | 2 | 1796.45267 | -| terp1gwzl7jmkmznl4qr4a50wylyzllsf29zkysk8e0 | 0x4385ff4b76d8a7fa8075ed1ee27c82ffe0951456 | 1 | 2 | 1796.45267 | -| terp1z8ltsmv0t3jtft6l33gjdpf2s3c67sdc7l46g2 | 0x11feb86d8f5c64b4af5f8c5126852a8471af41b8 | 1 | 2 | 1796.45267 | -| terp12xsz8trcjjndmcrunp07d429l4ypqlkc3qq7sg | 0x51a023ac7894a6dde07c985fe6d545fd48107ed8 | 1 | 2 | 1796.45267 | -| terp1s666echd9785ehle778nk58yn936u3uvx47g7u | 0x86b5ace2ed2f8f4cdff9f78f3b50e49963ae478c | 1 | 2 | 1796.45267 | -| terp1pgmnnm0uf9vfcdhu6uwu7nqrutywp8fwdam2a3 | 0x0a3739edfc49589c36fcd71dcf4c03e2c8e09d2e | 1 | 2 | 1796.45267 | -| terp1uc599zu3qc4hlgf3e4ejg760vp4kdsgkwg54lt | 0xe628528b91062b7fa131cd73247b4f606b66c116 | 1 | 2 | 1796.45267 | -| terp1ueg5839pltxqksedj6r27wlhhvdrqv6znckvtw | 0xe65143c4a1facc0b432d9686af3bf7bb1a303342 | 1 | 2 | 1796.45267 | -| terp14xs0r8fgkf88jgscqkz62qkg53s5jjgdmya6st | 0xa9a0f19d28b24e7922180585a502c8a46149490d | 1 | 2 | 1796.45267 | -| terp1ryfn3pznzanx3gtmv92a2dlmv93mv27fjsyn50 | 0x1913388453176668a17b6155d537fb6163b62bc9 | 1 | 2 | 1796.45267 | -| terp1nrfp9wjum7vshr4hzcx8wte058dkrf6sj83lkd | 0x98d212ba5cdf990b8eb7160c772f2fa1db61a750 | 1 | 2 | 1796.45267 | -| terp15gr898wvk27n3gs39p0x742husxyseje03alpf | 0xa206729dccb2bd38a211285e6f5557e40c486659 | 1 | 2 | 1796.45267 | -| terp1ppam68kvzh9n5mxx7y584ren9fca5m5q66kct9 | 0x087bbd1ecc15cb3a6cc6f1287a8f332a71da6e80 | 1 | 2 | 1796.45267 | -| terp147dptpmnfx0xr859xpplskym0nfay96wrsz380 | 0xaf9a158773499e619e853043f8589b7cd3d2174e | 1 | 2 | 1796.45267 | -| terp15c4usdhyhy9tvn7jkn6z8y9fn8gscrvl7an5yj | 0xa62bc836e4b90ab64fd2b4f42390a999d10c0d9f | 1 | 2 | 1796.45267 | -| terp1jnqrpm2l43nzdx7r9w9r8pgrvhpgejvc6vugxs | 0x94c030ed5fac66269bc32b8a33850365c28cc998 | 1 | 2 | 1796.45267 | -| terp1jwe67qfjg9c344fkmrrmn0l22v50w4v7nwv8a4 | 0x93b3af013241711ad536d8c7b9bfea5328f7559e | 1 | 2 | 1796.45267 | -| terp10txlfpng0cch0rl4kscc5qvz95ej0j9hu90xqj | 0x7acdf486687e31778ff5b4318a01822d3327c8b7 | 1 | 2 | 1796.45267 | -| terp1etd0ar04pvr7uuh7yxr4cs02hkq0tlcz5w25zy | 0xcadafe8df50b07ee72fe21875c41eabd80f5ff02 | 1 | 2 | 1796.45267 | -| terp1em2rwru77sgfqclqrn0qhfuxx9z3e3fx88e0uy | 0xced4370f9ef4109063e01cde0ba78631451cc526 | 1 | 2 | 1796.45267 | -| terp1dl7yhpalclsg0mmwhuuc0fa56kh0wrruyyv032 | 0x6ffc4b87bfc7e087ef6ebf3987a7b4d5aef70c7c | 1 | 2 | 1796.45267 | -| terp1r6gldk25j79kpu6vj24m9hy9f63q6d54cml48y | 0x1e91f6d954978b60f34c92abb2dc854ea20d3695 | 1 | 2 | 1796.45267 | -| terp1650pjpfml5gx8ks28fy99fy0dc2gzrykgc46ll | 0xd51e19053bfd1063da0a3a4852a48f6e14810c96 | 1 | 2 | 1796.45267 | -| terp17uax3y5s0cx2e9g4lm96mhgja5gykruqfq8qxk | 0xf73a6892907e0cac9515fecbaddd12ed104b0f80 | 1 | 2 | 1796.45267 | -| terp1jggkt6exankjucszzcv2kq3fu0ylet9x05mcj3 | 0x921165eb26eced2e62021618ab0229e3c9fcaca6 | 1 | 2 | 1796.45267 | -| terp136fskf7xg9hqjpntf8d2vmn9qa78vahjgd2yth | 0x8e930b27c6416e09066b49daa66e65077c7676f2 | 1 | 2 | 1796.45267 | -| terp1kvz6p7rl2qhmrv5t5wufvsf6f86trzr8jchnlr | 0xb305a0f87f502fb1b28ba3b896413a49f4b18867 | 1 | 2 | 1796.45267 | -| terp1qmsh3qk3sy7r5aex6rvdkc86jzfzh6jzxsa27x | 0x06e17882d1813c3a7726d0d8db60fa90922bea42 | 1 | 2 | 1796.45267 | -| terp1tch8eal8xzt2qw7uada99n6pm7c0zn5gzfgpgy | 0x5e2e7cf7e73096a03bdceb7a52cf41dfb0f14e88 | 1 | 2 | 1796.45267 | -| terp10p2zx3qdtdxhn80e7rzrnyscq8vgruv3w7cjk0 | 0x785423440d5b4d799df9f0c439921801d881f191 | 1 | 2 | 1796.45267 | -| terp19vdna6hzr0gcty6jz3tv7yhna4wmsj2swp0sh9 | 0x2b1b3eeae21bd18593521456cf12f3ed5db84950 | 1 | 2 | 1796.45267 | -| terp18gp498pz5yyhja9la49zzpaak9ynap56vjkzjt | 0x3a03529c22a1097974bfed4a2107bdb1493e869a | 1 | 2 | 1796.45267 | -| terp18y75xmslt76m38nnsl755fkdrzedljclm92qdj | 0x393d436e1f5fb5b89e7387fd4a26cd18b2dfcb1f | 1 | 2 | 1796.45267 | -| terp1uxn2u8ar3px2x77r88yknk7ake3qqpxem4ucjg | 0xe1a6ae1fa3884ca37bc339c969dbddb6620004d9 | 1 | 2 | 1796.45267 | -| terp1m42zdklq7gh4fc0fa9g9yf9y2pkjazhtg6u2xf | 0xdd5426dbe0f22f54e1e9e9505224a4506d2e8aeb | 1 | 2 | 1796.45267 | -| terp1zfwrhnr2ele34ypqnumss8qlztunhncez6kqzl | 0x125c3bcc6acff31a90209f37081c1f12f93bcf19 | 1 | 2 | 1796.45267 | -| terp15k672ratfc4nydgejuy5jc4q3fzqe9pxrc6hfg | 0xa5b5e50fab4e2b32351997094962a08a440c9426 | 1 | 2 | 1796.45267 | -| terp1ny33ng53wy728u0c259efggdlwvmtngtmexhw4 | 0x992319a291713ca3f1f8550b94a10dfb99b5cd0b | 1 | 2 | 1796.45267 | -| terp13rwmj3928hn498hj9a8a0xz52jf98cmch8fuc9 | 0x88ddb944aa3de7529ef22f4fd79854549253e378 | 1 | 2 | 1796.45267 | -| terp1yvvxhacdjm3qd7y82tjd8eezkndq3ur56swg48 | 0x23186bf70d96e206f88752e4d3e722b4da08f074 | 1 | 2 | 1796.45267 | -| terp1auem7rqtwacpdkex7rjdhv6369awjkhk8cal6h | 0xef33bf0c0b777016db26f0e4dbb351d17ae95af6 | 1 | 2 | 1796.45267 | -| terp1r7aecfpw6qlstul405ea2xww9trc9v4sx78sn7 | 0x1fbb9c242ed03f05f3f57d33d519ce2ac782b2b0 | 1 | 2 | 1796.45267 | -| terp1a6047px5mcwmpszc08h9mpatrazgcsgzzda067 | 0xee9f5f04d4de1db0c05879ee5d87ab1f448c4102 | 1 | 2 | 1796.45267 | -| terp1gmjj59gw6534jy8v8chx3rrjas9kq29nmxntcw | 0x46e52a150ed5235910ec3e2e688c72ec0b6028b3 | 1 | 2 | 1796.45267 | -| terp15zjej2sjkqdsr83wm7cylnx6u29lrxxrglhv6w | 0xa0a5992a12b01b019e2edfb04fccdae28bf198c3 | 1 | 2 | 1796.45267 | -| terp1d3ltv8p2gjh8py3672aw3r3nvwselnvmrvyne0 | 0x6c7eb61c2a44ae70923af2bae88e3363a19fcd9b | 1 | 2 | 1796.45267 | -| terp1jwepm7849wdcd5n052ad2rffw52e6teh98gc5j | 0x93b21df8f52b9b86d26fa2bad50d2975159d2f37 | 1 | 2 | 1796.45267 | -| terp1hlv3c9hm4r54x3vaj5g45dasuvnm4atllynlg6 | 0xbfd91c16fba8e953459d95115a37b0e327baf57f | 1 | 2 | 1796.45267 | -| terp1urwnk8c6uf8vwp3gfh7j0fnjsjfu74thvrzc9u | 0xe0dd3b1f1ae24ec706284dfd27a6728493cf5577 | 1 | 2 | 1796.45267 | -| terp1qhhrc56t83jq3zg5s5u4dzz8kq6yyjlge84m2c | 0x05ee3c534b3c640889148539568847b034424be8 | 1 | 2 | 1796.45267 | -| terp1excc8893gwmr08td0nte2td2k9w9u6yqkwhpj8 | 0xc9b1839cb143b6379d6d7cd7952daab15c5e6880 | 1 | 2 | 1796.45267 | -| terp1qhh2xacglu83lvemenl0a3jel4fztjd5t0uh6g | 0x05eea37708ff0f1fb33bccfefec659fd5225c9b4 | 1 | 2 | 1796.45267 | -| terp1lxq0370ew4enlqt6s0m8cgmcmyswj9my53hh8h | 0xf980f8f9f975733f817a83f67c2378d920e91764 | 1 | 2 | 1796.45267 | -| terp1fk4lspj2dtmy5q9gztl05anet57p7dpj8v2z2j | 0x4dabf8064a6af64a00a812fefa76795d3c1f3432 | 1 | 2 | 1796.45267 | -| terp1gp4vw48nwxmau9ql7cfkfa077sexcgusj64ecf | 0x406ac754f371b7de141ff61364f5fef4326c2390 | 1 | 2 | 1796.45267 | -| terp1trvhz5tpjsvf2yqsagcxy0ul3x3ezdqr5ygkm7 | 0x58d97151619418951010ea30623f9f89a3913403 | 1 | 2 | 1796.45267 | -| terp1f4ayvwnt7p4g9k06yh2qgaht6dkjflvevs8xww | 0x4d7a463a6bf06a82d9fa25d40476ebd36d24fd99 | 1 | 2 | 1796.45267 | -| terp1krwsujp9hy063fwyl594gael9zfrhlnat2jsmx | 0xb0dd0e4825b91fa8a5c4fd0b54773f28923bfe7d | 1 | 2 | 1796.45267 | -| terp1phv593c8v0p4h3cq4f7qd99y88csqn7za9cd30 | 0x0dd942c70763c35bc700aa7c0694a439f1004fc2 | 1 | 2 | 1796.45267 | -| terp13znjlu0vv9328f3jps43mveemrhxh89xq8dw99 | 0x88a72ff1ec6162a3a6320c2b1db339d8ee6b9ca6 | 1 | 2 | 1796.45267 | -| terp1xad2khzarrng2nu4a0tplwqjy5x3g2hn6nfj9d | 0x375aab5c5d18e6854f95ebd61fb812250d142af3 | 1 | 2 | 1796.45267 | -| terp10yd63sk49rk3vne7ffzj5qs2gu4yzhnwxg9yqz | 0x791ba8c2d528ed164f3e4a452a020a472a415e6e | 1 | 2 | 1796.45267 | -| terp1jrlwmwync89lmw6m579ulp4jlv7ze239cmrr03 | 0x90feedb893c1cbfdbb5ba78bcf86b2fb3c2caa25 | 1 | 2 | 1796.45267 | -| terp1gnxeqzjsj3x467pcehgwnacl049ajrpjwp788e | 0x44cd900a50944d5d7838cdd0e9f71f7d4bd90c32 | 1 | 2 | 1796.45267 | -| terp1tghst26d9d894x59dkmrdw6wjhfad0aqu2mac4 | 0x5a2f05ab4d2b4e5a9a856db636bb4e95d3d6bfa0 | 1 | 2 | 1796.45267 | -| terp123u8t9268dck4crcc97xq02v59galgd8k0flvu | 0x547875955a3b716ae078c17c603d4ca151dfa1a7 | 1 | 2 | 1796.45267 | -| terp17zlp309jhcq3p8p98p83gpe6q4tnw7ud2vc7tz | 0xf0be18bcb2be01109c25384f14073a0557377b8d | 1 | 2 | 1796.45267 | -| terp1gsrqxwledj2dkh5ugg0uwg8umzxesessmntpka | 0x4406033bf96c94db5e9c421fc720fcd88d986610 | 1 | 2 | 1796.45267 | -| terp1758c9ytcjxd72ns37f46f400la8vam05clqym8 | 0xf50f829178919be54e11f26ba4d5efff4eceedf4 | 1 | 2 | 1796.45267 | -| terp1fueyg77p9yvsgrdh63xxmv78t795gqxkesw33p | 0x4f32447bc12919040db7d44c6db3c75f8b4400d6 | 1 | 2 | 1796.45267 | -| terp1wk229qlftars567f7k95l689rqkhhjufjtvch2 | 0x7594a283e95f470a6bc9f58b4fe8e5182d7bcb89 | 1 | 2 | 1796.45267 | -| terp1n4szhq6zpfsudya99g3dm3yd4hesuk9m0lpjcg | 0x9d602b83420a61c693a52a22ddc48dadf30e58bb | 1 | 2 | 1796.45267 | -| terp1xe8fdqp5an9wq0hvt3xwm9076f8zw0j26sqcvr | 0x364e968034eccae03eec5c4ced95fed24e273e4a | 1 | 2 | 1796.45267 | -| terp15nuwhkg7e0vu9c0q8mxh64khr34ah2zfg0lvu7 | 0xa4f8ebd91ecbd9c2e1e03ecd7d56d71c6bdba849 | 1 | 2 | 1796.45267 | -| terp13jceffy0pcm6kyrxr6lvce75me05hddfynd0w3 | 0x8cb194a48f0e37ab10661ebecc67d4de5f4bb5a9 | 1 | 2 | 1796.45267 | -| terp1smkyew65h5xcy93l8ssgh84uuv94f456qxeq59 | 0x86ec4cbb54bd0d82163f3c208b9ebce30b54d69a | 1 | 2 | 1796.45267 | -| terp1yt3nlt0fkmuqtul8t3le790lr95s5tg20kthl5 | 0x22e33fade9b6f805f3e75c7f9f15ff19690a2d0a | 1 | 2 | 1796.45267 | -| terp19fmuz2dkp80fqfy55a7qyt3uagnayqpn42wdc3 | 0x2a77c129b609de902494a77c022e3cea27d20033 | 1 | 2 | 1796.45267 | -| terp1gnxuhnzcay9cdvwl25epetxgdavf4darcanech | 0x44cdcbcc58e90b86b1df55321cacc86f589ab7a3 | 1 | 2 | 1796.45267 | -| terp13z4mxt7wdhgpc93ur5ge7kc43rt25tmazudptf | 0x88abb32fce6dd01c163c1d119f5b1588d6aa2f7d | 1 | 2 | 1796.45267 | -| terp1vhthcnpy4yuwldccme0ewdh85qdupcr5uxv43k | 0x65d77c4c24a938efb718de5f9736e7a01bc0e074 | 1 | 2 | 1796.45267 | -| terp1xu4my52zw3q97gvfm7ptjld7lp98a2r75sk5cr | 0x372bb2514274405f2189df82b97dbef84a7ea87e | 1 | 2 | 1796.45267 | -| terp190mw4eq208vhq5fkuk6ns6mqgx8kfztaad6elm | 0x2bf6eae40a79d9705136e5b5386b60418f64897d | 1 | 2 | 1796.45267 | -| terp1td4yuy60drtdndh54vch6hwllc6ptn9wuvks97 | 0x5b6a4e134f68d6d9b6f4ab317d5ddffe3415ccae | 1 | 2 | 1796.45267 | -| terp14g5gcw77ruefsze86af8acd9caa0luzshnjq53 | 0xaa288c3bde1f32980b27d7527ee1a5c77afff050 | 1 | 2 | 1796.45267 | -| terp1d00eljq9tefr9sktnfra65n955pvkaxp65g924 | 0x6bdf9fc8055e5232c2cb9a47dd5265a502cb74c1 | 1 | 2 | 1796.45267 | -| terp1e9hhqs9rdl5tj2xvxd7nykyfdrcgrfsnsdappx | 0xc96f7040a36fe8b928cc337d32588968f081a613 | 1 | 2 | 1796.45267 | -| terp1w6f50kp09lcwnzwfenmuanc8ep3727gmxh7cl6 | 0x769347d82f2ff0e989c9ccf7cecf07c863e5791b | 1 | 2 | 1796.45267 | -| terp16yvl9a6yk2wsc7tcllln4d50wa209a3ctsv3g7 | 0xd119f2f744b29d0c7978ffff3ab68f7754f2f638 | 1 | 2 | 1796.45267 | -| terp14vynawaem9a364c7nk6kyzdy8pr8whr42k3u8u | 0xab093ebbb9d97b1d571e9db56209a43846775c75 | 1 | 2 | 1796.45267 | -| terp1v5xaz0l8swagrdynzuzuf7q2zdj6g2gdswfn37 | 0x650dd13fe783ba81b4931705c4f80a1365a4290d | 1 | 2 | 1796.45267 | -| terp1nw0568d60lewa0vqyaag9rrpcekxmfqpkt7y47 | 0x9b9f4d1dba7ff2eebd80277a828c61c66c6da401 | 1 | 2 | 1796.45267 | -| terp1wpzyw9zu22ykfuna7hp2ezqa6pguypc9augnud | 0x704447145c528964f27df5c2ac881dd051c20705 | 1 | 2 | 1796.45267 | -| terp1864x8a82ep8faz33ths629ffen6vzycdyrv9vt | 0x3eaa63f4eac84e9e8a315de1a51529ccf4c1130d | 1 | 2 | 1796.45267 | -| terp13eps5evnecgcg42aup3pz2q3ps37vkg8zcmh0k | 0x8e430a6593ce1184555de0621128110c23e65907 | 1 | 2 | 1796.45267 | -| terp1ktr3knhatc6h40u22u328jpmknr5a043ltfve0 | 0xb2c71b4efd5e357abf8a5722a3c83bb4c74ebeb1 | 1 | 2 | 1796.45267 | -| terp1xeprw2upvuyah04qktsf5ls0wp2g5gu3j0ggva | 0x3642372b816709dbbea0b2e09a7e0f70548a2391 | 1 | 2 | 1796.45267 | -| terp185vq26vllyh3qwz0dh44ecuul0ynqg0f8xgpce | 0x3d1805699ff92f10384f6deb5ce39cfbc93021e9 | 1 | 2 | 1796.45267 | -| terp14gaec2l2uv04lmflgm8tfwgfrrzptxae4rwzpv | 0xaa3b9c2beae31f5fed3f46ceb4b90918c4159bb9 | 1 | 2 | 1796.45267 | -| terp1crlzfufl0eaqq6exvnuq5xvcx5rjfcyruefq7w | 0xc0fe24f13f7e7a006b2664f80a1998350724e083 | 1 | 2 | 1796.45267 | -| terp10a7u5m86uxssfnq2jd2xldpsnzgnfgz2ajrr6t | 0x7f7dca6cfae1a104cc0a93546fb430989134a04a | 1 | 2 | 1796.45267 | -| terp1yqxkqxdrklm0l7vpv89q3jr0nd0xlsyy7xlwp6 | 0x200d6019a3b7f6fff98161ca08c86f9b5e6fc084 | 1 | 2 | 1796.45267 | -| terp1nchq9zljtt668e4ccyfpmh20l558ez7j80m9sr | 0x9e2e028bf25af5a3e6b8c1121ddd4ffd287c8bd2 | 1 | 2 | 1796.45267 | -| terp1fu62mw5u6v7qddtddjsejh7jtf0hwjpxaf7ckw | 0x4f34adba9cd33c06b56d6ca1995fd25a5f774826 | 1 | 2 | 1796.45267 | -| terp1r3w59rcf96nyvad52t8deq07jrdcc3x5z0djf3 | 0x1c5d428f092ea64675b452cedc81fe90db8c44d4 | 1 | 2 | 1796.45267 | -| terp1d2ql90n6n9g6k9m5sc90yrfqlf06kv00t388xy | 0x6a81f2be7a9951ab1774860af20d20fa5fab31ef | 1 | 2 | 1796.45267 | -| terp1zf43ckjel0hsflywp99xnhy9s6atkd6j5rksld | 0x126b1c5a59fbef04fc8e094a69dc8586babb3752 | 1 | 2 | 1796.45267 | -| terp1cghhjtlyp5vmtn8l07p0uxpmm92kkcfrvqhm62 | 0xc22f792fe40d19b5ccff7f82fe183bd9556b6123 | 1 | 2 | 1796.45267 | -| terp1v9r0jtpucjp39zlxrtnd4keransgm7gcdzte3c | 0x6146f92c3cc483128be61ae6dadb23ece08df918 | 1 | 2 | 1796.45267 | -| terp1m8mm8gqdgdl42xdjhk7v2pyjp00j7gk3kuq64c | 0xd9f7b3a00d437f5519b2bdbcc504920bdf2f22d1 | 1 | 2 | 1796.45267 | -| terp1nxr5ayys3zcf52d7aeg2vj4wl0pc9ce9wn04dr | 0x99874e909088b09a29beee50a64aaefbc382e325 | 1 | 2 | 1796.45267 | -| terp19p97apyq3z9j9c3pvsternpmep3nwcjwefz2eu | 0x284bee8480888b22e221641791cc3bc86337624e | 1 | 2 | 1796.45267 | -| terp1kc3xdsyr6chmgfld827e337g33ln90pu6lmcgx | 0xb62266c083d62fb427ed3abd98c7c88c7f32bc3c | 1 | 2 | 1796.45267 | -| terp1k3hghxqzr57dl3swnryu9mmuj07tqmh3m2r4lt | 0xb46e8b98021d3cdfc60e98c9c2ef7c93fcb06ef1 | 1 | 2 | 1796.45267 | -| terp16rmw6ljwl2f3fljgn7m7djpyq0advtl3w7v0tc | 0xd0f6ed7e4efa9314fe489fb7e6c82403fad62ff1 | 1 | 2 | 1796.45267 | -| terp15x9caw2a9s8gdcpqsp8srdjemf38890dlw4ytw | 0xa18b8eb95d2c0e86e020804f01b659da627395ed | 1 | 2 | 1796.45267 | -| terp1x3d500ar6cdcsf4pld9vdaxp3ng45cre8m6p2p | 0x345b47bfa3d61b8826a1fb4ac6f4c18cd15a6079 | 1 | 2 | 1796.45267 | -| terp1myrha7r65vpjcnl0atf0h07vvysnktnyx5vp9j | 0xd9077ef87aa3032c4fefead2fbbfcc61213b2e64 | 1 | 2 | 1796.45267 | -| terp1njzlqnqtvszxendwk8hgd3yks6x9d69j4jj6qj | 0x9c85f04c0b64046ccdaeb1ee86c496868c56e8b2 | 1 | 2 | 1796.45267 | -| terp1wex76w7zpdpk3shqkpwg7k2h30qh069xnrwxvs | 0x764ded3bc20b4368c2e0b05c8f59578bc177e8a6 | 1 | 2 | 1796.45267 | -| terp1phs9gkjn7709836q32xyfgl77m2p7t5za33t3p | 0x0de0545a53f79e53c7408a8c44a3fef6d41f2e82 | 1 | 2 | 1796.45267 | -| terp1rg56dspfy7nf7f07myuq97es2ag0g03kk9nfte | 0x1a29a6c02927a69f25fed93802fb305750f43e36 | 1 | 2 | 1796.45267 | -| terp13yuke5jkdppta6l0f9e3x9at4sdgs3kjfknuap | 0x89396cd2566842beebef49731317abac1a8846d2 | 1 | 2 | 1796.45267 | -| terp14lxvurnz8xmjeacgc3dgqa4d9tjeuas6sfsm05 | 0xafccce0e6239b72cf708c45a8076ad2ae59e761a | 1 | 2 | 1796.45267 | -| terp1288t0pkvpymv3evjx2awxedmwvgn5tsshj26fl | 0x51ceb786cc0936c8e59232bae365bb73113a2e10 | 1 | 2 | 1796.45267 | -| terp1gg5smcxshay7uva50rkna20wjpl5d5xad2hvq4 | 0x42290de0d0bf49ee33b478ed3ea9ee907f46d0dd | 1 | 2 | 1796.45267 | -| terp1xwn83xjnr7nzgr7n8gnlwkyq5qfchfpnnshm77 | 0x33a6789a531fa6240fd33a27f75880a0138ba433 | 1 | 2 | 1796.45267 | -| terp1e29m69kdsdljklpcwcy6ana3czypd8nza8qr0r | 0xca8bbd16cd837f2b7c387609aecfb1c088169e62 | 1 | 2 | 1796.45267 | -| terp12zrzmtxmexvae9yuh65styx636ahaapp74fdnm | 0x50862dacdbc999dc949cbea90590da8ebb7ef421 | 1 | 2 | 1796.45267 | -| terp1qynhzqfpgt6vvdat0scj3g23phykzejz0wv7nk | 0x012771012142f4c637ab7c3128a1510dc9616642 | 1 | 2 | 1796.45267 | -| terp13pfsgee2p0dytnud4d8k8fvmmgg350zv6dhvrz | 0x885304672a0bda45cf8dab4f63a59bda111a3c4c | 1 | 2 | 1796.45267 | -| terp1ud6y0954l40wl0qu425wn4c97pdwynetqdgzjq | 0xe374479695fd5eefbc1caaa8e9d705f05ae24f2b | 1 | 2 | 1796.45267 | -| terp1guxeetnan4rkcng83lep6vkj0crhlqt0e6qgdu | 0x470d9cae7d9d476c4d078ff21d32d27e077f816f | 1 | 2 | 1796.45267 | -| terp1fn9qpz47w45x22ap32yexul6n9x3znmrvmyxd5 | 0x4cca008abe7568652ba18a899373fa994d114f63 | 1 | 2 | 1796.45267 | -| terp18d5tzmz3mzqz3scnyawpl2qxezm476dqjgdn0l | 0x3b68b16c51d88028c313275c1fa806c8b75f69a0 | 1 | 2 | 1796.45267 | -| terp1ycs4pgflgh4gm84y8gkp8uhvnr30fzmvayzemz | 0x262150a13f45ea8d9ea43a2c13f2ec98e2f48b6c | 1 | 2 | 1796.45267 | -| terp1ucjfwdy82vrmfvj8fwlsert8qkcva53645qfhm | 0xe6249734875307b4b2474bbf0c8d6705b0ced23a | 1 | 2 | 1796.45267 | -| terp1sadf669w4e98uvyqf2y0tvhj5gp3txhpg07xvj | 0x875a9d68aeae4a7e30804a88f5b2f2a203159ae1 | 1 | 2 | 1796.45267 | -| terp1zf57dg2ml4d40ctw9qzs4dqlj4dyhlqcqgw7gt | 0x1269e6a15bfd5b57e16e28050ab41f955a4bfc18 | 1 | 2 | 1796.45267 | -| terp1xum03rq4x9tw6t4tnlch6567248p4zegmlq5zv | 0x3736f88c153156ed2eab9ff17d535e554e1a8b28 | 1 | 2 | 1796.45267 | -| terp1m9jfh5mx5z6zcvchvscypth2d3cfq728638j3h | 0xd9649bd366a0b42c3317643040aeea6c70907947 | 1 | 2 | 1796.45267 | -| terp1ke5yc284k7cfftwrd2tuvx6kc7jm74mj8cz8ke | 0xb6684c28f5b7b094adc36a97c61b56c7a5bf5772 | 1 | 2 | 1796.45267 | -| terp1dg8rqk0jnr2cjf2mfhjmgy9p9qzx6eql4dcq4y | 0x6a0e3059f298d589255b4de5b410a128046d641f | 1 | 2 | 1796.45267 | -| terp1gwg5dy0d2utpzuusd7krfwa5n6hlc5gq8rvquj | 0x43914691ed57161173906fac34bbb49eaffc5100 | 1 | 2 | 1796.45267 | -| terp16heepav9gm8pvlstjjue58c9k0x4nqh3vvgn3c | 0xd5f390f58546ce167e0b94b99a1f05b3cd5982f1 | 1 | 2 | 1796.45267 | -| terp1r4gcts0ugn90jfr3j33cyzx5mq8fxaf6ljjzm6 | 0x1d5185c1fc44caf9247194638208d4d80e93753a | 1 | 2 | 1796.45267 | -| terp1x2tmljc5slqn9lya0gmsyn33y544lejnc479f8 | 0x3297bfcb1487c132fc9d7a37024e31252b5fe653 | 1 | 2 | 1796.45267 | -| terp1pwzfydy9d042nv30tah9te935x33hcjap56pv7 | 0x0b849234856beaa9b22f5f6e55e4b1a1a31be25d | 1 | 2 | 1796.45267 | -| terp1w4runcagwcsy38yqmscyww2vv3trnsn386xn42 | 0x7547c9e3a87620489c80dc3047394c645639c271 | 1 | 2 | 1796.45267 | -| terp17zy4qlac9r67sgjr77mwqtvqknwv77r3494frx | 0xf089507fb828f5e82243f7b6e02d80b4dccf7871 | 1 | 2 | 1796.45267 | -| terp1tnst0jpcn9u0v94acq94lf73909an5w6puj88n | 0x5ce0b7c8389978f616bdc00b5fa7d12bcbd9d1da | 1 | 2 | 1796.45267 | -| terp18wnc3gw4zs46k6e29jjucwsjnvgmz3klftyeza | 0x3ba788a1d5142bab6b2a2ca5cc3a129b11b146df | 1 | 2 | 1796.45267 | -| terp1tj64x20vp7nw79dhmzwdvet5jjee4fjcsa02vc | 0x5cb55329ec0fa6ef15b7d89cd6657494b39aa658 | 1 | 2 | 1796.45267 | -| terp1y9esadd5eknj5qjvs34mt8qzwvw8jw6qxqce69 | 0x21730eb5b4cda72a024c846bb59c02731c793b40 | 1 | 2 | 1796.45267 | -| terp17hulgemte6ayyr5nzamgwghvdet664uzscwy3m | 0xf5f9f4676bceba420e9317768722ec6e57ad5782 | 1 | 2 | 1796.45267 | -| terp1qzwch2eq2jrf5g893pcz5ye8pqaleh4995kkwt | 0x009d8bab2054869a20e588702a1327083bfcdea5 | 1 | 2 | 1796.45267 | -| terp1kspkxn5u85tza09dfk5ly4q6tf98s5pjxvc7sr | 0xb403634e9c3d162ebcad4da9f2541a5a4a785032 | 1 | 2 | 1796.45267 | -| terp1wx9qxyf75dsfe3933r07h8z9m8vqlksclty52x | 0x718a03113ea3609cc4b188dfeb9c45d9d80fda18 | 1 | 2 | 1796.45267 | -| terp1akrvvgzxfgrf70x4rure88nhr85dnsap99h56w | 0xed86c620464a069f3cd51f07939e7719e8d9c3a1 | 1 | 2 | 1796.45267 | -| terp1rujlejfpv6860ma24wrl4lvl4c25v520m5ddpj | 0x1f25fcc921668fa7efaaab87fafd9fae1546514f | 1 | 2 | 1796.45267 | -| terp1g9qs7ttzheqggk555pxq2djexyfj65t6nur6fv | 0x41410f2d62be40845a94a04c05365931132d517a | 1 | 2 | 1796.45267 | -| terp1p2tgjplv3djjq5udftuh5vm32hx68z52zafg3n | 0x0a968907ec8b6520538d4af97a337155cda38a8a | 1 | 2 | 1796.45267 | -| terp1cpw8qw7qnyrlmjg2nzplwquugu85qj7m84hf4c | 0xc05c703bc09907fdc90a9883f7039c470f404bdb | 1 | 2 | 1796.45267 | -| terp1rxnvzf6d2wwa2vkwy7xpy9ns4q2tnwukv6pna5 | 0x19a6c1274d539dd532ce278c121670a814b9bb96 | 1 | 2 | 1796.45267 | -| terp1l86s3sxkgp6999707fg8k8c9c7zv4wlv0870kf | 0xf9f508c0d640745297cff2507b1f05c784cabbec | 1 | 2 | 1796.45267 | -| terp1yuq2kpamgtl390rakehg9e9n2mdnddc9xq84e7 | 0x2700ab07bb42ff12bc7db66e82e4b356db36b705 | 1 | 2 | 1796.45267 | -| terp1zyqxm8z3v9e4j4vv205yn53utnvfcww52e45cn | 0x11006d9c51617359558c53e849d23c5cd89c39d4 | 1 | 2 | 1796.45267 | -| terp19rl8wuc520c4wzps3xhxwnzw6xc5m52hc6gndk | 0x28fe77731453f157083089ae674c4ed1b14dd157 | 1 | 2 | 1796.45267 | -| terp1jxt26e99wsahr5m6j4clgxd5rasr6hrw8mvazs | 0x9196ad64a5743b71d37a9571f419b41f603d5c6e | 1 | 2 | 1796.45267 | -| terp12lycnpzrzft5jw2cq08tw55nq8akq69e63fg9q | 0x57c9898443125749395803ceb7529301fb6068b9 | 1 | 2 | 1796.45267 | -| terp1q635k49na5myky7hlr7sjpthxepr24rta0rpy8 | 0x06a34b54b3ed364b13d7f8fd090577364235546b | 1 | 2 | 1796.45267 | -| terp1yh54zpqenah60dqv8gvq9mww0kk0ky7ppf5jcs | 0x25e95104199f6fa7b40c3a1802edce7dacfb13c1 | 1 | 2 | 1796.45267 | -| terp1sr0gre8mntcynwnsk4eggr8ne7zx60hergyml3 | 0x80de81e4fb9af049ba70b572840cf3cf846d3ef9 | 1 | 2 | 1796.45267 | -| terp1sgc3q775xua27j2l0qdn32e5qpnsl8vfmv5n99 | 0x8231107bd4373aaf495f781b38ab3400670f9d89 | 1 | 2 | 1796.45267 | -| terp13x956sf60uezwhkmup6eyejhequsnzr0mhgc7c | 0x898b4d413a7f32275edbe075926657c83909886f | 1 | 2 | 1796.45267 | -| terp1z27dxxpg98sxpen7j5ys5ktsh5l06srpsjl7am | 0x12bcd3182829e060e67e95090a5970bd3efd4061 | 1 | 2 | 1796.45267 | -| terp1vr0dwwcc3zzucv78yjahdws8ynx54yh5wa3e0h | 0x60ded73b188885cc33c724bb76ba0724cd4a92f4 | 1 | 2 | 1796.45267 | -| terp1nuedv2szhxv63388vr8y3sxwweqcq0rcrx8lm6 | 0x9f32d62a02b999a8c4e760ce48c0ce7641803c78 | 1 | 2 | 1796.45267 | -| terp10kj64tl6jae90vsv0thyqefltktm5wcaaqxc8a | 0x7da5aaaffa977257b20c7aee40653f5d97ba3b1d | 1 | 2 | 1796.45267 | -| terp18wqccpetvu0d7hvugrplpye4xsad74zp9f4ks0 | 0x3b818c072b671edf5d9c40c3f09335343adf5441 | 1 | 2 | 1796.45267 | -| terp1tv3zlz78tkd03h7xf50p4la9f04c9rxg59jt0u | 0x5b222f8bc75d9af8dfc64d1e1affa54beb828cc8 | 1 | 2 | 1796.45267 | -| terp1uywhnkrzxt0rnsqdue3pldwtyha63j9ruvyw6r | 0xe11d79d86232de39c00de6621fb5cb25fba8c8a3 | 1 | 2 | 1796.45267 | -| terp1mplk7m9t663x7pd6sf8x7q805staz79tekm3a5 | 0xd87f6f6cabd6a26f05ba824e6f00efa417d178ab | 1 | 2 | 1796.45267 | -| terp179dyt2gz5u0z8n0d9sex606vjy509xjd5mwnfw | 0xf15a45a902a71e23cded2c326d3f4c9128f29a4d | 1 | 2 | 1796.45267 | -| terp1fcg29zdqgtkr0ct2ae30w8d46dz0e7v3sf6w4z | 0x4e10a289a042ec37e16aee62f71db5d344fcf991 | 1 | 2 | 1796.45267 | -| terp100tmqavf55ra06waduy580s57ccpfxzhe8ccuc | 0x7bd7b07589a507d7e9dd6f0943be14f630149857 | 1 | 2 | 1796.45267 | -| terp1zvz0hd05xqg283pel2pnvykey87kl6yuee4m9k | 0x1304fbb5f43010a3c439fa833612d921fd6fe89c | 1 | 2 | 1796.45267 | -| terp1cwrvl9cyztlx96yq2hyk5nkkr88un0e62mzpkm | 0xc386cf970412fe62e88055c96a4ed619cfc9bf3a | 1 | 2 | 1796.45267 | -| terp14tcyjwqucv4588mxu2sse7ue3xrvjq7jk038l5 | 0xaaf049381cc32b439f66e2a10cfb998986c903d2 | 1 | 2 | 1796.45267 | -| terp1vgv998g99sl69khh4ulhpw4v9xhqwpfcehwzw5 | 0x6218529d052c3fa2daf7af3f70baac29ae070538 | 1 | 2 | 1796.45267 | -| terp1yed3p6a76kq9qq94r9tqduh5cc2kjm4wqkr087 | 0x265b10ebbed5805000b5195606f2f4c615696eae | 1 | 2 | 1796.45267 | -| terp1aghhky60ru46n0h0mwrtzdmatygpakf0fa7k4h | 0xea2f7b134f1f2ba9beefdb86b1377d59101ed92f | 1 | 2 | 1796.45267 | -| terp18zwju9hgrfn9k8paf5sag2y5kw6c5wlgmt663x | 0x389d2e16e81a665b1c3d4d21d42894b3b58a3be8 | 1 | 2 | 1796.45267 | -| terp1y7skytry439m5yasfhrzva2kxpx6ktp77nqr8l | 0x27a1622c64ac4bba13b04dc6267556304dab2c3e | 1 | 2 | 1796.45267 | -| terp1jw4dh6eth8tfew57feh4sx6t9673gw5r53t3ng | 0x93aadbeb2bb9d69cba9e4e6f581b4b2ebd143a83 | 1 | 2 | 1796.45267 | -| terp1mwa2km9lr8crzk4p8cq8hh62htk2dcl4mkzwwv | 0xdbbaab6cbf19f0315aa13e007bdf4abaeca6e3f5 | 1 | 2 | 1796.45267 | -| terp13he7wzg3hg4eqvn8c2lfve605z4n0d5smtl8la | 0x8df3e70911ba2b903267c2be96674fa0ab37b690 | 1 | 2 | 1796.45267 | -| terp1v0zqrc9mvym0x4apjlmc6x4hp52928f7xaf3ta | 0x63c401e0bb6136f357a197f78d1ab70d14551d3e | 1 | 2 | 1796.45267 | -| terp10hj4gt79m2876y49fcy9qyc8anfcvpmss98vkk | 0x7de5542fc5da8fed12a54e08501307ecd3860770 | 1 | 2 | 1796.45267 | -| terp1lsupjz346g05mchn58nrpthgwkw8y7azjhjvmp | 0xfc38190a35d21f4de2f3a1e630aee8759c727ba2 | 1 | 2 | 1796.45267 | -| terp10ksps2e9e56crydqrwdgh7t8aghzlvwrxfzcr3 | 0x7da0182b25cd358191a01b9a8bf967ea2e2fb1c3 | 1 | 2 | 1796.45267 | -| terp1ft0sm0ytk2dxr0s3fs3g0ysz5anepjwexf3fd9 | 0x4adf0dbc8bb29a61be114c22879202a76790c9d9 | 1 | 2 | 1796.45267 | -| terp1x43jnvmsf298sl0e4sq09q6vxcj3rs3x7l67yv | 0x356329b3704a8a787df9ac00f2834c362511c226 | 1 | 2 | 1796.45267 | -| terp1hqn65wlcdz44vecrlplqc3vc3kfyw2alkmwph4 | 0xb827aa3bf868ab566703f87e0c45988d92472bbf | 1 | 2 | 1796.45267 | -| terp14cj6574r4mq75nndzamas75gy6lk48zpr6aedt | 0xae25aa7aa3aec1ea4e6d1777d87a8826bf6a9c41 | 1 | 2 | 1796.45267 | -| terp1vw00lf2v8uwqks4yjvskfgfrc087yup5wc06pv | 0x639effa54c3f1c0b42a4932164a123c3cfe27034 | 1 | 2 | 1796.45267 | -| terp13fqahzh9c8xv8vy26nm7jzggawxqedzexcltps | 0x8a41db8ae5c1ccc3b08ad4f7e90908eb8c0cb459 | 1 | 2 | 1796.45267 | -| terp1d6df0uehu328dy8u32k7qwzel6qtt6gl73pscj | 0x6e9a97f337e4547690fc8aade03859fe80b5e91f | 1 | 2 | 1796.45267 | -| terp1qgqul23x99nluaqh3um3j62wtyg4ghk6s5lwvl | 0x0201cfaa262967fe74178f3719694e5911545eda | 1 | 2 | 1796.45267 | -| terp1pkqu7929r9qjvse9fhs6nds838nv87fuya3rj9 | 0x0d81cf154519412643254de1a9b60789e6c3f93c | 1 | 2 | 1796.45267 | -| terp1pj98d7frxpddmk8vw3ec7zcxx0ndph0cs059jq | 0x0c8a76f923305addd8ec74738f0b0633e6d0ddf8 | 1 | 2 | 1796.45267 | -| terp1fhavc3seylxcxcct45p9l9ql54kl9jtxle6qpg | 0x4dfacc461927cd83630bad025f941fa56df2c966 | 1 | 2 | 1796.45267 | -| terp1sws7ra2yhzl8lsnfnz02lnfq7lcdsymsege8q2 | 0x83a1e1f544b8be7fc269989eafcd20f7f0d81370 | 1 | 2 | 1796.45267 | -| terp19c667su5y2gk4kh9j4eyhr70rk4q4jcm369mmh | 0x2e35af439422916adae595724b8fcf1daa0acb1b | 1 | 2 | 1796.45267 | -| terp1h2yl744nm8gdsxu5kaqtmsputkh9uunfp0q59h | 0xba89ff56b3d9d0d81b94b740bdc03c5dae5e7269 | 1 | 2 | 1796.45267 | -| terp16378m0esh5077uyad27y4ejk3wyld0q5r3g8ky | 0xd47c7dbf30bd1fef709d6abc4ae6568b89f6bc14 | 1 | 2 | 1796.45267 | -| terp17ncddmahuw47sehex9wxkp9525s92c0jv4maq8 | 0xf4f0d6efb7e3abe866f9315c6b04b455205561f2 | 1 | 2 | 1796.45267 | -| terp1nz4ncscf66dhvw7tfps9knnjm3xsn8l9c38cj2 | 0x98ab3c4309d69b763bcb48605b4e72dc4d099fe5 | 1 | 2 | 1796.45267 | -| terp1zusjnrc59qnsnvvmfcf7h2090tkksay4g0ctp8 | 0x1721298f14282709b19b4e13eba9e57aed687495 | 1 | 2 | 1796.45267 | -| terp1gu6ywvrzh0c3jl4pxf8xjyr44r5ew82ghpk530 | 0x4734473062bbf1197ea1324e691075a8e9971d48 | 1 | 2 | 1796.45267 | -| terp1p0cfua9lc00mqmvqt2klhyqrxrgv7kgfvl5tt5 | 0x0bf09e74bfc3dfb06d805aadfb900330d0cf5909 | 1 | 2 | 1796.45267 | -| terp1zy9vvtcytgtymflmx70lf7xalpyl8cu02q3ptk | 0x110ac62f045a164da7fb379ff4f8ddf849f3e38f | 1 | 2 | 1796.45267 | -| terp1y99rxughl7zmllrnp65wcctk2kznlchw3txxn0 | 0x214a337117ff85bffc730ea8ec617655853fe2ee | 1 | 2 | 1796.45267 | -| terp196efqv95876v5fpzkve4qemhnpsrvmguzc9cwt | 0x2eb29030b43fb4ca2422b3335067779860366d1c | 1 | 2 | 1796.45267 | -| terp1anemtwpv38an3qgamp95zutcghd5x0a4xeptf7 | 0xecf3b5b82c89fb38811dd84b41717845db433fb5 | 1 | 2 | 1796.45267 | -| terp1lhak8h538ptxv7ppkjy0vaqmf9mf28qp73lvzp | 0xfdfb63de913856667821b488f6741b4976951c01 | 1 | 2 | 1796.45267 | -| terp1822fmt66t5xhw95hskelt2hyty4y2uhpr7eh3j | 0x3a949daf5a5d0d77169785b3f5aae4592a4572e1 | 1 | 2 | 1796.45267 | -| terp1cktjyg5he056g76mjq8twmhj9k82qgh6wkvhpn | 0xc597222297cbe9a47b5b900eb76ef22d8ea022fa | 1 | 2 | 1796.45267 | -| terp1j8x9d0anvn6hdklff43fnx2dm99epgx4tga7rq | 0x91cc56bfb364f576dbe94d6299994dd94b90a0d5 | 1 | 2 | 1796.45267 | -| terp19fpkz7ggkf4r8kq2nuhx9wfpmgwq0s2hdzv6fv | 0x2a43617908b26a33d80a9f2e62b921da1c07c157 | 1 | 2 | 1796.45267 | -| terp19tfu8sgd93esvu08j8nd9g3erfcjqvmd3an22p | 0x2ad3c3c10d2c730671e791e6d2a2391a7120336d | 1 | 2 | 1796.45267 | -| terp1crs08a8wajyuye78tje06st63n656pyyut3c6e | 0xc0e0f3f4eeec89c267c75cb2fd417a8cf54d0484 | 1 | 2 | 1796.45267 | -| terp1ktz6uzq2ydh73x58lk73l82c4494034jqqjupw | 0xb2c5ae080a236fe89a87fdbd1f9d58ad4b57c6b2 | 1 | 2 | 1796.45267 | -| terp1gfcj48dd87asdpdwq9sepvm2r7sl5hagq6rl4p | 0x42712a9dad3fbb0685ae016190b36a1fa1fa5fa8 | 1 | 2 | 1796.45267 | -| terp1gvhnkq3gtrqysyqv50n6ymzlwrqcjexnuv25nw | 0x432f3b022858c048100ca3e7a26c5f70c18964d3 | 1 | 2 | 1796.45267 | -| terp1cxan699xuf35x43wl94l64q4pc9hwm7jm4dgsl | 0xc1bb3d14a6e26343562ef96bfd54150e0b776fd2 | 1 | 2 | 1796.45267 | -| terp174znj0j420ya3a25at3gdz4spker68wxjkud2p | 0xf545393e5553c9d8f554eae2868ab00db23d1dc6 | 1 | 2 | 1796.45267 | -| terp1wckwqszpfmezsyy4mfhajd2e4tanrtvnzhrvp4 | 0x762ce040414ef2281095da6fd93559aafb31ad93 | 1 | 2 | 1796.45267 | -| terp1lddychj7jghzw3qsa8jd9q8ldst07yrjke0v0f | 0xfb5a4c5e5e922e274410e9e4d280ff6c16ff1072 | 1 | 2 | 1796.45267 | -| terp1enzrw2sx4c9xy7e5z3gt0axgqtq7yvgq9p6hc4 | 0xccc4372a06ae0a627b341450b7f4c802c1e23100 | 1 | 2 | 1796.45267 | -| terp1sqg669vapa59ctnx08hvr07fptj6695sm49qjc | 0x8011ad159d0f685c2e6679eec1bfc90ae5ad1690 | 1 | 2 | 1796.45267 | -| terp1dhlp092xh3tdel32fv9xy24nhyapr7fvd33r5z | 0x6dfe179546bc56dcfe2a4b0a622ab3b93a11f92c | 1 | 2 | 1796.45267 | -| terp1j2qjmegkazl9aaxdfjy3vcngwrlljkvgzf4dtj | 0x92812de516e8be5ef4cd4c8916626870fff95988 | 1 | 2 | 1796.45267 | -| terp1zlvcrq4uhe65kk385ghpgqaepyxknnldw8qgym | 0x17d98182bcbe754b5a27a22e1403b9090d69cfed | 1 | 2 | 1796.45267 | -| terp12er85pzvr7r3c8lc8kqylqxx4p4zg7h2w0lfml | 0x56467a044c1f871c1ff83d804f80c6a86a247aea | 1 | 2 | 1796.45267 | -| terp1una0x6rf7ztwk0lv232hnrcfza6njcy6ls6wvv | 0xe4faf36869f096eb3fec5455798f09177539609a | 1 | 2 | 1796.45267 | -| terp1dd5pqcf88w7xhrs57tu6qanx3jjh03ceq658xn | 0x6b681061273bbc6b8e14f2f9a076668ca577c719 | 1 | 2 | 1796.45267 | -| terp1yqudwrhgkyc5et3nylz3rch7w3lzypc7xnae36 | 0x2038d70ee8b1314cae3327c511e2fe747e22071e | 1 | 2 | 1796.45267 | -| terp1ya5k8v5nw59h7l3unz7z75x847fc3vdkzhanej | 0x276963b293750b7f7e3c98bc2f50c7af9388b1b6 | 1 | 2 | 1796.45267 | -| terp13dyzkksm4xwrwy3ry2w0y0gktw4qt79uyc5uam | 0x8b482b5a1ba99c371223229cf23d165baa05f8bc | 1 | 2 | 1796.45267 | -| terp1vsu4gw3078tc6fdtmjx65admqp8zzqvr6c4fze | 0x6439543a2ff1d78d25abdc8daa75bb004e210183 | 1 | 2 | 1796.45267 | -| terp1v5twhzuw6d3k4g229ngjnp7gw9r7u8yrtkjrae | 0x6516eb8b8ed3636aa14a2cd12987c87147ee1c83 | 1 | 2 | 1796.45267 | -| terp1v6g7wtl0qr8ee0akaaxuyx5ulqcntsywkf6jaj | 0x6691e72fef00cf9cbfb6ef4dc21a9cf83135c08e | 1 | 2 | 1796.45267 | -| terp1tdmtwt9j58lgj8heujkgksk7ttwwgkp88fwcvl | 0x5b76b72cb2a1fe891ef9e4ac8b42de5adce45827 | 1 | 2 | 1796.45267 | -| terp1qje78gtrtpf25c2f9h0hy840f6t26euewm4thn | 0x04b3e3a1635852aa61492ddf721eaf4e96ad6799 | 1 | 2 | 1796.45267 | -| terp1hjjwrzxxy9kxcccqp3xrkw6yaea3836hhery82 | 0xbca4e188c6216c6c63000c4c3b3b44ee7b13c757 | 1 | 2 | 1796.45267 | -| terp1r73vgy75xu73j7hx7kcq299t5yxmf5acd57nxz | 0x1fa2c413d4373d197ae6f5b00514aba10db4d3b8 | 1 | 2 | 1796.45267 | -| terp1jkrj90qqzufaju5kdku0cwdh5uxe45zkctlcv5 | 0x958722bc001713d972966db8fc39b7a70d9ad056 | 1 | 2 | 1796.45267 | -| terp159vka4pcy9tte885hraz4cyl0pnkr9lqtgfsf5 | 0xa1596ed4382156bc9cf4b8fa2ae09f78676197e0 | 1 | 2 | 1796.45267 | -| terp1gmgq9dcj9hpdh69hgl8s3fez9tpcnf3e7mhu0z | 0x46d002b7122dc2dbe8b747cf08a7222ac389a639 | 1 | 2 | 1796.45267 | -| terp195gk95vhdp77c9kksqcvthy3sffsjh2kj883z8 | 0x2d1162d197687dec16d68030c5dc918253095d56 | 1 | 2 | 1796.45267 | -| terp1f6c27zxqpq53yx8ssqs3qv2emmgdlh3n2q7hpz | 0x4eb0af08c008291218f08021103159ded0dfde33 | 1 | 2 | 1796.45267 | -| terp15cftvmus42c39kyphc3hgn0f59m0aplngjyl24 | 0xa612b66f90aab112d881be23744de9a176fe87f3 | 1 | 2 | 1796.45267 | -| terp1fuw0qvugwxlllgt7lh6ckq8edc5w58fzzzdr2n | 0x4f1cf0338871bfffa17efdf58b00f96e28ea1d22 | 1 | 2 | 1796.45267 | -| terp1j4ksp3l2g826uaq4xmkzvcekghzaszsskc5zja | 0x956d00c7ea41d5ae741536ec26633645c5d80a10 | 1 | 2 | 1796.45267 | -| terp12pyhp5wtal5vdzp4jcx8svdzamusz7s2svkcn8 | 0x504970d1cbefe8c68835960c7831a2eef9017a0a | 1 | 2 | 1796.45267 | -| terp13wdua92j3520kkd7dx57ftk4trd7kcp7aj360e | 0x8b9bce95528d14fb59be69a9e4aed558dbeb603e | 1 | 2 | 1796.45267 | -| terp188c2wgasfg34vhmnv94zd29hkxsppesw543swq | 0x39f0a723b04a23565f73616a26a8b7b1a010e60e | 1 | 2 | 1796.45267 | -| terp1lrke74c7g4srp6xq58h07fn58fqzuuvp054sv7 | 0xf8ed9f571e456030e8c0a1eeff26743a402e7181 | 1 | 2 | 1796.45267 | -| terp1qh5dwqtea2q3h20p32w6t7es8xf5lfrav5w0ag | 0x05e8d70179ea811ba9e18a9da5fb3039934fa47d | 1 | 2 | 1796.45267 | -| terp1wxa9u9k83lkvr7u7w8c6468ku0lhs2v5vq59l9 | 0x71ba5e16c78fecc1fb9e71f1aae8f6e3ff782994 | 1 | 2 | 1796.45267 | -| terp1gsh7m6quc5ydntawyndqxl0cgf7wxl7ypajrsx | 0x442fede81cc508d9afae24da037df8427ce37fc4 | 1 | 2 | 1796.45267 | -| terp1jm5mx3qdj6lwkmg3avev8x4p5q72r0mfc23fwp | 0x96e9b3440d96beeb6d11eb32c39aa1a03ca1bf69 | 1 | 2 | 1796.45267 | -| terp1gygmd6dmn3p4kk7v0p6hnt6umuq93g8ephpnwe | 0x4111b6e9bb9c435b5bcc787579af5cdf0058a0f9 | 1 | 2 | 1796.45267 | -| terp1cts065wnwxzen6fukc4w462w3umupj44xu7tkq | 0xc2e0fd51d3718599e93cb62aeae94e8f37c0cab5 | 1 | 2 | 1796.45267 | -| terp16z22rt82umcct6vnj4dqxmh6d8uqgkazd6dr8a | 0xd094a1aceae6f185e993955a036efa69f8045ba2 | 1 | 2 | 1796.45267 | -| terp1jn9986ghhuv4s9v9xczfptgsm9gnr4q3qhv9gm | 0x94ca53e917bf19581585360490ad10d95131d411 | 1 | 2 | 1796.45267 | -| terp1cvqkekwhzfjeauj9jayaqrk4crldu28m2w2y34 | 0xc3016cd9d712659ef2459749d00ed5c0fede28fb | 1 | 2 | 1796.45267 | -| terp1q2zuqapgmnawje5ht64406twclw0hsrypcveez | 0x0285c07428dcfae966975eab57e96ec7dcfbc064 | 1 | 2 | 1796.45267 | -| terp12xdjpkn4x469rpr5kn4tshu4lv9chmt9zfl938 | 0x519b20da753574518474b4eab85f95fb0b8bed65 | 1 | 2 | 1796.45267 | -| terp1j4dzw39wteag5v6adcf64q84mwttuv5k4e9psy | 0x955a2744ae5e7a8a335d6e13aa80f5db96be3296 | 1 | 2 | 1796.45267 | -| terp17jzjphv0v0mutnxwpgxp7rvtvh8xt4y85apqmn | 0xf48520dd8f63f7c5ccce0a0c1f0d8b65ce65d487 | 1 | 2 | 1796.45267 | -| terp13jqkpkqkjw65ucza22x4536w8ww6hau58fsl3x | 0x8c8160d81693b54e605d528d5a474e3b9dabf794 | 1 | 2 | 1796.45267 | -| terp1y6xhmjpxkw7te6r0p8xtt9w4lp89g74axlktha | 0x268d7dc826b3bcbce86f09ccb595d5f84e547abd | 1 | 2 | 1796.45267 | -| terp1cx30eqh95876rpn3wz8s8yg55d2zkc65secgwy | 0xc1a2fc82e5a1fda18671708f039114a3542b6354 | 1 | 2 | 1796.45267 | -| terp1hfslwanjwthhxwqecyew49twaj8qzqzzjrfxt9 | 0xba61f7767272ef733819c132ea956eec8e010042 | 1 | 2 | 1796.45267 | -| terp1xtr886r9unq3pfyndrt6dpdppm7mq98ffyyf7j | 0x32c673e865e4c110a49368d7a685a10efdb014e9 | 1 | 2 | 1796.45267 | -| terp1dwsw0mwzvrgn47hwprmad6jwzu96hvx2qzwuvy | 0x6ba0e7edc260d13afaee08f7d6ea4e170babb0ca | 1 | 2 | 1796.45267 | -| terp123ydn2z5azhgwgnap7dau4xn8hfwy3wy4cl4sf | 0x5448d9a854e8ae87227d0f9bde54d33dd2e245c4 | 1 | 2 | 1796.45267 | -| terp1nr8kl74jlaxssddfv6czmmktzyrg8dpezu60fv | 0x98cf6ffab2ff4d0835a966b02deecb110683b439 | 1 | 2 | 1796.45267 | -| terp1zw4nra4jdqtq58xhcwq9jc0p2rfd4f7yjrf04c | 0x13ab31f6b268160a1cd7c3805961e150d2daa7c4 | 1 | 2 | 1796.45267 | -| terp1p4vf0lj3shmufcm8twwx7kzak78n4qhwtq8pnj | 0x0d5897fe5185f7c4e3675b9c6f585db78f3a82ee | 1 | 2 | 1796.45267 | -| terp1f02yg59znwprpxpggy90wmp7efppv8th52n939 | 0x4bd44450a29b82309828410af76c3eca42161d77 | 1 | 2 | 1796.45267 | -| terp1fh38quzuyjvqlkapd0gqteljphv33ft4ajpx65 | 0x4de270705c24980fdba16bd005e7f20dd918a575 | 1 | 2 | 1796.45267 | -| terp1jy8j2clm9mwh445uzmtvrn8s99h37aatfuzvz3 | 0x910f2563fb2edd7ad69c16d6c1ccf0296f1f77ab | 1 | 2 | 1796.45267 | -| terp1da5xjhj0duxuup8at66v7y3s7fh93g3hvyjncv | 0x6f68695e4f6f0dce04fd5eb4cf1230f26e58a237 | 1 | 2 | 1796.45267 | -| terp1x2pa7jdykt2lq538t834ryrjnr0d3a9f57j5q2 | 0x3283df49a4b2d5f0522759e351907298ded8f4a9 | 1 | 2 | 1796.45267 | -| terp18rqzq3pj9gwsj90hjpdntwy6vddjvx6g6lu6uu | 0x38c02044322a1d0915f7905b35b89a635b261b48 | 1 | 2 | 1796.45267 | -| terp1dvl6jn8pm4zc7st79x7dvt6pf8v89yg5u8zr06 | 0x6b3fa94ce1dd458f417e29bcd62f4149d8729114 | 1 | 2 | 1796.45267 | -| terp13yw95q866m3pjhfrzc2ephnff4n6y60dpxyecc | 0x891c5a00fad6e2195d23161590de694d67a269ed | 1 | 2 | 1796.45267 | -| terp1hcalf5z628n7j0t0fhapc28x6qvv0ygtvyu26t | 0xbe3bf4d05a51e7e93d6f4dfa1c28e6d018c7910b | 1 | 2 | 1796.45267 | -| terp1cxcr53xumw2ekuklj8s0ynxdhx9p4ednanljhz | 0xc1b03a44dcdb959b72df91e0f24ccdb98a1ae5b3 | 1 | 2 | 1796.45267 | -| terp1zpredyxfr749j96j336r7fjdkyd8vnq0tnquzm | 0x10479690c91faa5917528c743f264db11a764c0f | 1 | 2 | 1796.45267 | -| terp1e99yxnkd4jlhjvgdz9yjpt4ypmfzz23ef6sm96 | 0xc94a434ecdacbf79310d114920aea40ed2212a39 | 1 | 2 | 1796.45267 | -| terp1e2saasvmejkdwncvz2uf7rpzeycn86m6gfpyk5 | 0xcaa1dec19bccacd74f0c12b89f0c22c93133eb7a | 1 | 2 | 1796.45267 | -| terp180jdrq73lvwfp2ka5568vnvc8p5e702hgesw3d | 0x3be4d183d1fb1c90aadda534764d9838699f3d57 | 1 | 2 | 1796.45267 | -| terp1n8gzytsczsxw8f0upzl5v7dv7jsztvy8hj53lx | 0x99d0222e18140ce3a5fc08bf4679acf4a025b087 | 1 | 2 | 1796.45267 | -| terp1c9nz5cdpqynyhud9tudxg8ahqrzcplswu97n2e | 0xc1662a61a101264bf1a55f1a641fb700c580fe0e | 1 | 2 | 1796.45267 | -| terp1saak645ld2e2n8p3lwgrf4mk2drvf9p8fm9j2m | 0x877b6d569f6ab2a99c31fb9034d7765346c49427 | 1 | 2 | 1796.45267 | -| terp109dl5eq7vxqfzqjyeyv3njev83300pd7z9cum9 | 0x795bfa641e6180910244c91919cb2c3c62f785be | 1 | 2 | 1796.45267 | -| terp1zclacnzeprfv68r6ekqfhf4vj8ukapm62u73ut | 0x163fdc4c5908d2cd1c7acd809ba6ac91f96e877a | 1 | 2 | 1796.45267 | -| terp12p3thh8l8y776epdfh54ed2j52x4me6ck3ts8g | 0x5062bbdcff393ded642d4de95cb552a28d5de758 | 1 | 2 | 1796.45267 | -| terp18nl8zeu9yge2r0emmlq4vr0t4z8qcscw24x0xg | 0x3cfe7167852232a1bf3bdfc1560deba88e0c430e | 1 | 2 | 1796.45267 | -| terp1qr66u6fd3y689rrdgss3j70y8cqa5gwy5jsjwp | 0x00f5ae692d8934728c6d44211979e43e01da21c4 | 1 | 2 | 1796.45267 | -| terp14dfsnzyv89jxhv3z5u8qhswxncejdmnhr9mxtj | 0xab5309888c39646bb222a70e0bc1c69e3326ee77 | 1 | 2 | 1796.45267 | -| terp1f34yy9ez557w8jt7qr0g5hdp60rwkt4ef8nv7d | 0x4c6a421722a53ce3c97e00de8a5da1d3c6eb2eb9 | 1 | 2 | 1796.45267 | -| terp1tuvyr57lq9my22xj4j8ynp34qay6h67gfjuqwr | 0x5f1841d3df01764528d2ac8e4986350749abebc8 | 1 | 2 | 1796.45267 | -| terp1q580y5saj3tx2h7cf9fh96g7zqggl8atwr5lt0 | 0x050ef2521d9456655fd8495372e91e10108f9fab | 1 | 2 | 1796.45267 | -| terp1eknl6cp8egxar4z0p8st6d2jhhk7cv5jpms2aj | 0xcda7fd6027ca0dd1d44f09e0bd3552bdedec3292 | 1 | 2 | 1796.45267 | -| terp199drla3hqk7h3z6nwa4p64vsmg7nncdq2ng0uc | 0x295a3ff63705bd788b53776a1d5590da3d39e1a0 | 1 | 2 | 1796.45267 | -| terp1yer3u73hawafuvyvwg8hhgshxjztmpeajhnu27 | 0x26471e7a37ebba9e308c720f7ba2173484bd873d | 1 | 2 | 1796.45267 | -| terp1kv7a3vdd5q4wmvq3ruplq7s0eksg46llfl5kpt | 0xb33dd8b1ada02aedb0111f03f07a0fcda08aebff | 1 | 2 | 1796.45267 | -| terp18l7nf8573e596f0ul0s84tzsgrlrwdclrww0xd | 0x3ffd349e9e8e685d25fcfbe07aac5040fe37371f | 1 | 2 | 1796.45267 | -| terp1ug4f6kf0la4l6qnhe322vaxd9z00uw2slys042 | 0xe22a9d592fff6bfd0277cc54a674cd289efe3950 | 1 | 2 | 1796.45267 | -| terp1nxfwmvp6hjg7yulzlk7vyy50dx6t83hfr9q5e9 | 0x9992edb03abc91e273e2fdbcc2128f69b4b3c6e9 | 1 | 2 | 1796.45267 | -| terp1lccdcl74q5d2whqvu8hr8e6dw6nj604hemd84z | 0xfe30dc7fd5051aa75c0ce1ee33e74d76a72d3eb7 | 1 | 2 | 1796.45267 | -| terp1lwsm3eenhnwuw354aapuypqdds8lslugp4k3k3 | 0xfba1b8e733bcddc74695ef43c2040d6c0ff87f88 | 1 | 2 | 1796.45267 | -| terp12nqx2rdq3yfhre6yhveeu3nq0357sne7xpg60f | 0x54c0650da0891371e744bb339e46607c69e84f3e | 1 | 2 | 1796.45267 | -| terp1ctvkknvkp9jhtu7jg0myey55q5lm27xc5zuey9 | 0xc2d96b4d96096575f3d243f64c9294053fb578d8 | 1 | 2 | 1796.45267 | -| terp1myqlfyp0fwhxkvvkssymw5xamtxzev5er8ajtt | 0xd901f4902f4bae6b31968409b750dddacc2cb299 | 1 | 2 | 1796.45267 | -| terp1syw73hlnknvjk5h364qvmkft5jhg39p6fpxmpu | 0x811de8dff3b4d92b52f1d540cdd92ba4ae88943a | 1 | 2 | 1796.45267 | -| terp1799us54m6r7l9q32lgu7ed44zj64cruexfrgl3 | 0xf14bc852bbd0fdf2822afa39ecb6b514b55c0f99 | 1 | 2 | 1796.45267 | -| terp1lnpdvvwryqp4hav7fzjfchmjn6a52t4uvnxqnl | 0xfcc2d631c320035bf59e48a49c5f729ebb452ebc | 1 | 2 | 1796.45267 | -| terp1f5pwmath2ktp2c3kc2jqhk6z3cpkwmyqq7mhvj | 0x4d02edf5775596156236c2a40bdb428e03676c80 | 1 | 2 | 1796.45267 | -| terp1tqmf4y4l6crrs4ftlwwyh3qky6al6pnp7txjze | 0x58369a92bfd60638552bfb9c4bc41626bbfd0661 | 1 | 2 | 1796.45267 | -| terp1n7l45xm4a502pelc57j80qntl9f7kakl2u7qt3 | 0x9fbf5a1b75ed1ea0e7f8a7a477826bf953eb76df | 1 | 2 | 1796.45267 | -| terp1gzzdsyegg7pmn3xx9p7juqhknqrp6ty8fsqgwq | 0x4084d813284783b9c4c6287d2e02f698061d2c87 | 1 | 2 | 1796.45267 | -| terp1cejm3vkgzflmywmt9r8e5gtekkra0w8vpzdvnh | 0xc665b8b2c8127fb23b6b28cf9a2179b587d7b8ec | 1 | 2 | 1796.45267 | -| terp1w92ydnlvquupq4n2mllqxhl7wfauak7nz76pn4 | 0x715446cfec073810566adffe035ffe727bcedbd3 | 1 | 2 | 1796.45267 | -| terp1jehr5f7967jsfja98a9w96t6u6f5qmug5tqdnf | 0x966e3a27c5d7a504cba53f4ae2e97ae693406f88 | 1 | 2 | 1796.45267 | -| terp1vlk6x2tjm04qvvqepxcjj0qa5l7gpdqzfhw23t | 0x67eda32972dbea06301909b1293c1da7fc80b402 | 1 | 2 | 1796.45267 | -| terp1j9v8qedthw0j6gcppf8y2extxz2k5f6w22qyuq | 0x91587065abbb9f2d23010a4e4564cb30956a274e | 1 | 2 | 1796.45267 | -| terp139w395463y6ssmxju4f6xjssx76nw00hupdpn4 | 0x895d12d2ba8935086cd2e553a34a1037b5373df7 | 1 | 2 | 1796.45267 | -| terp19hdraz60k5w5qums2mt8g9xqkjlfyp5syg7kkw | 0x2dda3e8b4fb51d40737056d67414c0b4be920690 | 1 | 2 | 1796.45267 | -| terp1c8s9qa9u4ngmg0jncy39q4m7lnafkd0y5mfsm9 | 0xc1e05074bcacd1b43e53c12250577efcfa9b35e4 | 1 | 2 | 1796.45267 | -| terp16mffmc379d8kk6t9qafu9dz3svjmwpejtm8d0q | 0xd6d29de23e2b4f6b69650753c2b4518325b70732 | 1 | 2 | 1796.45267 | -| terp1lr80t3nq4ujan4s298f47w30stw47a6jllt58h | 0xf8cef5c660af25d9d60a29d35f3a2f82dd5f7752 | 1 | 2 | 1796.45267 | -| terp1j5u0gqkcfxxqy5ppwc8u592gy6p80at72yqr68 | 0x9538f402d8498c025021760fca1548268277f57e | 1 | 2 | 1796.45267 | -| terp1cgrs5rvagxl523df7yahxkq8p0pyff3435h7r7 | 0xc2070a0d9d41bf4545a9f13b7358070bc244a635 | 1 | 2 | 1796.45267 | -| terp1uw4sqpc626wjeh2yhqlfwqnaq39rxmn36ycpzq | 0xe3ab00071a569d2cdd44b83e97027d044a336e71 | 1 | 2 | 1796.45267 | -| terp1zm3ntjuayy5mlpxpa3xplagukgwm9t9cctctql | 0x16e335cb9d2129bf84c1ec4c1ff51cb21db2acb8 | 1 | 2 | 1796.45267 | -| terp1mmktsdpghyfa49y62ufmauc3l9d9l903lrhpzx | 0xdeecb83428b913da949a5713bef311f95a5f95f1 | 1 | 2 | 1796.45267 | -| terp157e4m7ddlsgsx8rwwrxrj82mw6hjay06u6yjws | 0xa7b35df9adfc11031c6e70cc391d5b76af2e91fa | 1 | 2 | 1796.45267 | -| terp1dfx32njg7vtzg3q8x7qftpdd8gw0xw72mjk7ft | 0x6a4d154e48f31624440737809585ad3a1cf33bca | 1 | 2 | 1796.45267 | -| terp1e2994g4xf7r4xtlvrdudw64fhnccku0uhrhfut | 0xca8a5aa2a64f87532fec1b78d76aa9bcf18b71fc | 1 | 2 | 1796.45267 | -| terp1p20euqdezl56egktx3ek3tnnl88hwh5z85cf9k | 0x0a9f9e01b917e9aca2cb347368ae73f9cf775e82 | 1 | 2 | 1796.45267 | -| terp1h5wvzqm4qwcvsu0lmjvtwqu0eqftkhsk2rvy3x | 0xbd1cc1037503b0c871ffdc98b7038fc812bb5e16 | 1 | 2 | 1796.45267 | -| terp1xhdtmuyn23qx0lqj8ffsjqkvxz8hhd3kd043cz | 0x35dabdf093544067fc123a530902cc308f7bb636 | 1 | 2 | 1796.45267 | -| terp1xfa2jawdumw9qc2zpppmlzrnvhz39d3yyp90ff | 0x327aa975cde6dc5061420843bf887365c512b624 | 1 | 2 | 1796.45267 | -| terp1zg4vrszs69ag9my0n67cwgd35vl2gq5yf4sc3l | 0x122ac1c050d17a82ec8f9ebd8721b1a33ea40284 | 1 | 2 | 1796.45267 | -| terp1mrr0hr7h275skvcwcrkzqsapjfn0r9p3l2ru33 | 0xd8c6fb8fd757a90b330ec0ec2043a19266f19431 | 1 | 2 | 1796.45267 | -| terp1l7f02lsfxjyv4vpj8zukfqar7nusw06n6wy3fe | 0xff92f57e093488cab03238b96483a3f4f9073f53 | 1 | 2 | 1796.45267 | -| terp1p70vxpn24xhqs5a36t7m6usfhqjd5atlymgjp3 | 0x0f9ec3066aa9ae0853b1d2fdbd7209b824da757f | 1 | 2 | 1796.45267 | -| terp17ehru9n76tpstf3mgnj36nz9dmv6zqpdxayx49 | 0xf66e3e167ed2c305a63b44e51d4c456ed9a1002d | 1 | 2 | 1796.45267 | -| terp17l6ekvuk5zf69g5dscpr7m2jsxm9sapmlt35jr | 0xf7f59b3396a093a2a28d86023f6d5281b658743b | 1 | 2 | 1796.45267 | -| terp1mwxvzlprc2l3vgkl5kujapwrqg4flmh3tsz4rt | 0xdb8cc17c23c2bf1622dfa5b92e85c3022a9feef1 | 1 | 2 | 1796.45267 | -| terp1uyxz5c5svpsdfgjhf8scudj5zsnmdhy2u3ceq8 | 0xe10c2a62906060d4a25749e18e36541427b6dc8a | 1 | 2 | 1796.45267 | -| terp1y0hpwut7yzx8x83sylqde0z0g37pn2v0flh4vt | 0x23ee17717e208c731e3027c0dcbc4f447c19a98f | 1 | 2 | 1796.45267 | -| terp1mzsqfpk57zuuy5adyn377jg8v90t2szm36924w | 0xd8a00486d4f0b9c253ad24e3ef4907615eb5405b | 1 | 2 | 1796.45267 | -| terp1ngh30slwnykkw4tk24056g3zxyw8zh3zaljfny | 0x9a2f17c3ee992d675576555f4d2222311c715e22 | 1 | 2 | 1796.45267 | -| terp1m3msjefhkr5yqalyu78vsadyg3y86ktsla3w7l | 0xdc77096537b0e84077e4e78ec875a444487d5970 | 1 | 2 | 1796.45267 | -| terp1l4y5gd35xh30dntwpje8mxxv0klwqd0l257wsv | 0xfd4944363435e2f6cd6e0cb27d98cc7dbee035ff | 1 | 2 | 1796.45267 | -| terp1c7z85gxrux033eu7zqm8zxzjwaw6ydcmuztpfp | 0xc7847a20c3e19f18e79e1036711852775da2371b | 1 | 2 | 1796.45267 | -| terp19h7vye9s3gvph37r3wvszpvm4vmf5kjwfny4lz | 0x2dfcc264b08a181bc7c38b9901059bab369a5a4e | 1 | 2 | 1796.45267 | -| terp1j6872msj5j52vv7su0cxu5dl40ncn74vdcvuln | 0x968fe56e12a4a8a633d0e3f06e51bfabe789faac | 1 | 2 | 1796.45267 | -| terp1fp6r8szngszqh3wmvumlrg66fqnzcpymdumwrj | 0x487433c05344040bc5db6737f1a35a48262c049b | 1 | 2 | 1796.45267 | -| terp1de0cy28r6h0ss4yttngxlu9ht957y0jdwc7ka3 | 0x6e5f8228e3d5df08548b5cd06ff0b75969e23e4d | 1 | 2 | 1796.45267 | -| terp14r69u2n66gml50u7n33s3m4h8pxzm7ehlgfzjv | 0xa8f45e2a7ad237fa3f9e9c6308eeb7384c2dfb37 | 1 | 2 | 1796.45267 | -| terp1pfxwkef7lvvukaa4g4rszlcmhnrsdnv6c6p3gk | 0x0a4ceb653efb19cb77b54547017f1bbcc706cd9a | 1 | 2 | 1796.45267 | -| terp1dxqgm94a5zdg483z5yg6sw3kthe46grwygx4wq | 0x69808d96bda09a8a9e22a111a83a365df35d206e | 1 | 2 | 1796.45267 | -| terp1a6w45x2lclgla9v2n6g9eqgshexl6mdpzz4zkt | 0xee9d5a195fc7d1fe958a9e905c8110be4dfd6da1 | 1 | 2 | 1796.45267 | -| terp197t45ngy7qehlh5fsxsaq3tv8n2yc8f5nvn3q0 | 0x2f975a4d04f0337fde8981a1d0456c3cd44c1d34 | 1 | 2 | 1796.45267 | -| terp1ra97zne592x6aytgv0x8hgs5e4kcljhwqs5pgl | 0x1f4be14f342a8dae916863cc7ba214cd6d8fcaee | 1 | 2 | 1796.45267 | -| terp1w7c0qunc53gxm5j3tkkfk9atn42tv64hekcqpd | 0x77b0f07278a4506dd2515dac9b17ab9d54b66ab7 | 1 | 2 | 1796.45267 | -| terp14pgp7c6smfj06q5chhzfshhv5l7vtagmmdk28t | 0xa8501f6350da64fd0298bdc4985eeca7fcc5f51b | 1 | 2 | 1796.45267 | -| terp1ujg9dapcjj4sqrux8uqvj2zhn8ydea5w9k2lns | 0xe49056f43894ab000f863f00c9285799c8dcf68e | 1 | 2 | 1796.45267 | -| terp1fauwuhcmyjm5l5yuk3gme2mh8n7nxnqk62kgzg | 0x4f78ee5f1b24b74fd09cb451bcab773cfd334c16 | 1 | 2 | 1796.45267 | -| terp1grntkrwljht3pa8ry3slzd4d57a0ww4q23wqrt | 0x40e6bb0ddf95d710f4e32461f136ada7baf73aa0 | 1 | 2 | 1796.45267 | -| terp1rsv09yhrqhjm2r5y892tc4sc36luqqxpw5v96u | 0x1c18f292e305e5b50e843954bc56188ebfc000c1 | 1 | 2 | 1796.45267 | -| terp14t9n9f9k4ungzrelzrf080dft6lk9fffwlxdft | 0xaacb32a4b6af26810f3f10d2f3bda95ebf62a529 | 1 | 2 | 1796.45267 | -| terp1qjhq6l6wtz8smuapmpd4kmps9z36d8guz3dt5r | 0x04ae0d7f4e588f0df3a1d85b5b6c3028a3a69d1c | 1 | 2 | 1796.45267 | -| terp1ef5627nnr8cz373qppzg77shp26qa3cl62a6uy | 0xca69a57a7319f028fa2008448f7a170ab40ec71f | 1 | 2 | 1796.45267 | -| terp1sswx9cjask23mzs98gxxa2vd4q73vvfuze7858 | 0x841c62e25d85951d8a053a0c6ea98da83d16313c | 1 | 2 | 1796.45267 | -| terp15q53s4ym3dsudplqm24r9ztz4qp8ka7q2p3ny0 | 0xa02918549b8b61c687e0daaa328962a8027b77c0 | 1 | 2 | 1796.45267 | -| terp1ldphnnuvwrpmnr8gw6lgplskwhq7tc77n5tezs | 0xfb4379cf8c70c3b98ce876be80fe1675c1e5e3de | 1 | 2 | 1796.45267 | -| terp10u5mhf0mps490hah85kanlkjufdvl0zr4feam9 | 0x7f29bba5fb0c2a57dfb73d2dd9fed2e25acfbc43 | 1 | 2 | 1796.45267 | -| terp1mq46hnps42pe3090pgvggx6h9rg6fmqrz0guwt | 0xd82babcc30aa8398bcaf0a18841b5728d1a4ec03 | 1 | 2 | 1796.45267 | -| terp17puygan60sz5y59eend59pz9frwdwht8yekt35 | 0xf07844767a7c054250b9ccdb42844548dcd75d67 | 1 | 2 | 1796.45267 | -| terp19sf286lmzm46wlpvvynweujq4hkhucqmkyq6fd | 0x2c12a3ebfb16eba77c2c6126ecf240aded7e601b | 1 | 2 | 1796.45267 | -| terp1jsjvmtprzfn9qu4k3f4za00jseyfnt4gwfsktk | 0x9424cdac2312665072b68a6a2ebdf2864899aea8 | 1 | 2 | 1796.45267 | -| terp1zf55aag8mkpzjm2mxykaysp5jhtg6400q5nqse | 0x12694ef507dd82296d5b312dd2403495d68d55ef | 1 | 2 | 1796.45267 | -| terp18w6padlj3lj8q8ckavx64cy4axu2yvsmucp4gq | 0x3bb41eb7f28fe4701f16eb0daae095e9b8a2321b | 1 | 2 | 1796.45267 | -| terp10necl0uz5d767a8q84w79d6w6rvhz5mq23shda | 0x7cf38fbf82a37daf74e03d5de2b74ed0d9715360 | 1 | 2 | 1796.45267 | -| terp1lye9xzrklcaryr3x7xsxzg9w8wgwgcsdyueyyv | 0xf932530876fe3a320e26f1a06120ae3b90e4620d | 1 | 2 | 1796.45267 | -| terp17jxgpa47nvs7erxhw72x70swxe3rwrlkw4snw9 | 0xf48c80f6be9b21ec8cd777946f3e0e3662370ff6 | 1 | 2 | 1796.45267 | -| terp14d8wq2ck44grnd4ygy4uj3aduxzdxzrtl5du90 | 0xab4ee02b16ad5039b6a4412bc947ade184d3086b | 1 | 2 | 1796.45267 | -| terp130ct9zwgjkwys3cvmmccpttnedytm635ajfryl | 0x8bf0b289c8959c48470cdef180ad73cb48bdea34 | 1 | 2 | 1796.45267 | -| terp1gn7dgcg2ejxvrksc5jgagq2zze3d55mxyvj36t | 0x44fcd4610acc8cc1da18a491d401421662da5366 | 1 | 2 | 1796.45267 | -| terp1jfe4d8vqs8ds9twmzge4twmsv6hdkg70mwwrjr | 0x9273569d8081db02addb123355bb7066aedb23cf | 1 | 2 | 1796.45267 | -| terp169vpc7jfhxa6rfp7w70utf07053n509tze6q92 | 0xd1581c7a49b9bba1a43e779fc5a5fe7d233a3cab | 1 | 2 | 1796.45267 | -| terp19ssrr6wm3yfacqg7xudevfwzk7z7e67ram4a2h | 0x2c2031e9db8913dc011e371b9625c2b785ecebc3 | 1 | 2 | 1796.45267 | -| terp16un3z7dtyr0xs2mkjtaawwtru5chaatnhkj8up | 0xd7271179ab20de682b7692fbd73963e5317ef573 | 1 | 2 | 1796.45267 | -| terp1av5cyglc9m93azepe8cv5hnm575ccuew2wmqsq | 0xeb298223f82ecb1e8b21c9f0ca5e7ba7a98c732e | 1 | 2 | 1796.45267 | -| terp1kl7u8rzjgp58prr4zcvd0zdm8aj2n66p3f8dcr | 0xb7fdc38c524068708c751618d789bb3f64a9eb41 | 1 | 2 | 1796.45267 | -| terp188e74n8r7lcxd98wa3z7p6rgzn9t6wg2yj6jp2 | 0x39f3eacce3f7f06694eeec45e0e86814cabd390a | 1 | 2 | 1796.45267 | -| terp19pvmj3sj479sjgtm4v2u9f37tn7qrj644adqt9 | 0x2859b94612af8b09217bab15c2a63e5cfc01cb55 | 1 | 2 | 1796.45267 | -| terp1kylud32pc390ad77hlps7a7udhxpaqleaxf90v | 0xb13fc6c541c44afeb7debfc30f77dc6dcc1e83f9 | 1 | 2 | 1796.45267 | -| terp19rk6aecc5jrpfjd3j98cp53d6gvwn0hwfm20kr | 0x28edaee718a48614c9b1914f80d22dd218e9beee | 1 | 2 | 1796.45267 | -| terp1a0fw6n0jv9m2jz7c3au0lzu3uvxdy8zehzt0ty | 0xebd2ed4df26176a90bd88f78ff8b91e30cd21c59 | 1 | 2 | 1796.45267 | -| terp1eyzk0wdfzkg3ketjfmdtxjetlj3ntsvwtd3s66 | 0xc90567b9a915911b65724edab34b2bfca335c18e | 1 | 2 | 1796.45267 | -| terp1hvuraekxq46qsn8jfwwdxneug46jjelnasagw6 | 0xbb383ee6c60574084cf24b9cd34f3c45752967f3 | 1 | 2 | 1796.45267 | -| terp1ajk44zlsr0rc3jvefya6ln5vn975zhlsmwkdee | 0xecad5a8bf01bc788c999493bafce8c997d415ff0 | 1 | 2 | 1796.45267 | -| terp1qv7l0fxu0pgla8ja6n66j75s8gltppuz62dalh | 0x033df7a4dc7851fe9e5dd4f5a97a903a3eb08782 | 1 | 2 | 1796.45267 | -| terp1v2lwu0scwc40afg58tc3x35xzy308uy2v63cz7 | 0x62beee3e18762afea5143af11346861122f3f08a | 1 | 2 | 1796.45267 | -| terp10ztmsl5ypeghpym5af3f832sxsx6taven03s9n | 0x7897b87e840e51709374ea6293c550340da5f599 | 1 | 2 | 1796.45267 | -| terp1w3r60cxwqf54qx9s78dkwrdxjvsjp0cdjfrpnk | 0x7447a7e0ce02695018b0f1db670da6932120bf0d | 1 | 2 | 1796.45267 | -| terp1nyscv4hazjglxk0suxd2hhgte6fuqzx5eqh82f | 0x99218656fd1491f359f0e19aabdd0bce93c008d4 | 1 | 2 | 1796.45267 | -| terp18yrz205tpu3zzx6360fdv9937x9dm0t49lc9mr | 0x3906253e8b0f22211b51d3d2d614b1f18addbd75 | 1 | 2 | 1796.45267 | -| terp1r7wz3a6p7zfu847t93v7ckfdaczkt909ftq9kq | 0x1f9c28f741f093c3d7cb2c59ec592dee056595e5 | 1 | 2 | 1796.45267 | -| terp14e2vfeqx39c9ld2k50anjfmssrkd2fam400nzr | 0xae54c4e40689705fb556a3fb39277080ecd527bb | 1 | 2 | 1796.45267 | -| terp12d9c2v0rvtdf0kqghg4t89vl5fvhhmc3yp7s30 | 0x534b8531e362da97d808ba2ab3959fa2597bef11 | 1 | 2 | 1796.45267 | -| terp1ac2yvlkyqpr8tfz4y8jttfvy8t0928fwzkmlrm | 0xee14467ec4004675a45521e4b5a5843ade551d2e | 1 | 2 | 1796.45267 | -| terp1vtjae4zm507j6v2dj7c2rhukpda73drmqyqylu | 0x62e5dcd45ba3fd2d314d97b0a1df960b7be8b47b | 1 | 2 | 1796.45267 | -| terp1pugrpf5vgtur8eqn2lllhj6dsnz7d29e94n9tl | 0x0f1030a68c42f833e41357fffbcb4d84c5e6a8b9 | 1 | 2 | 1796.45267 | -| terp1vtgguvvul34zdmre2ks99yrsgnvufmdcj53ksz | 0x62d08e319cfc6a26ec7955a052907044d9c4edb8 | 1 | 2 | 1796.45267 | -| terp1tgncn4m7usnggzd9pujdhq5wlham60yxmhvah8 | 0x5a2789d77ee4268409a50f24db828efdfbbd3c86 | 1 | 2 | 1796.45267 | -| terp1xduge2h8yehwy8q23zxvy52cen8tk3xegjdc3s | 0x33788caae7266ee21c0a888cc25158cccebb44d9 | 1 | 2 | 1796.45267 | -| terp1xgr6yfln5w0v6dflcgjhvq5fhee2g6wkfrydyd | 0x3207a227f3a39ecd353fc225760289be72a469d6 | 1 | 2 | 1796.45267 | -| terp1mr8a4unenkrc350qa89mnmmavgpgvly8krnr45 | 0xd8cfdaf2799d8788d1e0e9cbb9ef7d6202867c87 | 1 | 2 | 1796.45267 | -| terp1php7mamf7dyk9w76q8477nmsq2rl285a7wjcsz | 0x0dc3edf769f34962bbda01ebef4f700287f51e9d | 1 | 2 | 1796.45267 | -| terp1crga77vh9zy6xn6q5fmnuxmnm34xy97m2v22al | 0xc0d1df79972889a34f40a2773e1b73dc6a6217db | 1 | 2 | 1796.45267 | -| terp1d88caynag0jx8mx8jl6a2arfum8mexj7fc9sr2 | 0x69cf8e927d43e463ecc797f5d57469e6cfbc9a5e | 1 | 2 | 1796.45267 | -| terp16pyyyjcjctrlrc420u5x5n8x7kdfpe4wafpz5z | 0xd048424b12c2c7f1e2aa7f286a4ce6f59a90e6ae | 1 | 2 | 1796.45267 | -| terp1wkuxvl3fq8eee0yvdfpn7nrrsefvf445qc8c7n | 0x75b8667e2901f39cbc8c6a433f4c638652c4d6b4 | 1 | 2 | 1796.45267 | -| terp1wcs5pnx7vdewn6lenks5feurx8pex6f3ltf9mf | 0x762140ccde6372e9ebf99da144e78331c3936931 | 1 | 2 | 1796.45267 | -| terp1wugn6n3wfrmd9qq7sam26tsrgl5gm85wfvlnxm | 0x77113d4e2e48f6d2801e8776ad2e0347e88d9e8e | 1 | 2 | 1796.45267 | -| terp1e6whpzqdqkj7sa7z6jckqv9kxm6qhgpxdy2t7t | 0xce9d70880d05a5e877c2d4b16030b636f40ba026 | 1 | 2 | 1796.45267 | -| terp1j9aadtpgha8h0eqmqxv8z562s7r4uz8ayfxhf5 | 0x917bd6ac28bf4f77e41b019871534a87875e08fd | 1 | 2 | 1796.45267 | -| terp1yrty775mxxsgsudqj9q5u8m400e7k37xu5zvys | 0x20d64f7a9b31a08871a091414e1f757bf3eb47c6 | 1 | 2 | 1796.45267 | -| terp1eysvzyenzext6jptq46r6wwm98ns5ccdyff2q0 | 0xc920c11333164cbd482b05743d39db29e70a630d | 1 | 2 | 1796.45267 | -| terp1l8qsms9v4ssp8zxfvd6wxwr026yk958g94q2gt | 0xf9c10dc0acac201388c96374e3386f568962d0e8 | 1 | 2 | 1796.45267 | -| terp16qye4mzpjpjzsy63s5ewlv6ezu8wn0u84xy5jh | 0xd0099aec4190642813518532efb359170ee9bf87 | 1 | 2 | 1796.45267 | -| terp1m8gnkp6lererf35mql7dxj387vp23e0gtr27n8 | 0xd9d13b075fc8f234c69b07fcd34a27f302a8e5e8 | 1 | 2 | 1796.45267 | -| terp1hqdyv48skjsf50xu7s8yk2rdquwuxlsnk03mer | 0xb81a4654f0b4a09a3cdcf40e4b286d071dc37e13 | 1 | 2 | 1796.45267 | -| terp1cz3g9zccx0j43a72v4p7mhh4kk4dcgxrkn3pvf | 0xc0a2828b1833e558f7ca6543eddef5b5aadc20c3 | 1 | 2 | 1796.45267 | -| terp1l2w7zfhn6hmc3cfuel22w5cmhynnweedu64qf5 | 0xfa9de126f3d5f788e13ccfd4a7531bb92737672d | 1 | 2 | 1796.45267 | -| terp12vvxeskcsdkfwaacn6lmlje9ntdyk6vuqwhs4n | 0x53186cc2d8836c9777b89ebfbfcb259ada4b699c | 1 | 2 | 1796.45267 | -| terp1h5m7zcww4su4fhyndhlvlkh5gdkk8z05n8macg | 0xbd37e161ceac3954dc936dfecfdaf4436d6389f4 | 1 | 2 | 1796.45267 | -| terp1kzgfjw05lglqznnq6kjgz6ggp5xu045r9xk0lm | 0xb0909939f4fa3e014e60d5a48169080d0dc7d683 | 1 | 2 | 1796.45267 | -| terp1ejrffwfpfdpy3s3mt8w3en9k0vceg2zjzde3ju | 0xcc8694b9214b4248c23b59dd1cccb67b31942852 | 1 | 2 | 1796.45267 | -| terp1nf65ws3p6fldlkqjv835lq7gg604tvyspjezts | 0x9a75474221d27edfd81261e34f83c8469f55b090 | 1 | 2 | 1796.45267 | -| terp1l8uk53eejzsxl42aftlq9j0kefc5gr4yguszrf | 0xf9f96a473990a06fd55d4afe02c9f6ca71440ea4 | 1 | 2 | 1796.45267 | -| terp1cle4fvtju57qmlagmvtmq28kxnxjal9l0sruds | 0xc7f354b172e53c0dffa8db17b028f634cd2efcbf | 1 | 2 | 1796.45267 | -| terp1h8klm94xpkllk6473nx53nwjwh5frr2d30uzzr | 0xb9edfd96a60dbffb6abe8ccd48cdd275e8918d4d | 1 | 2 | 1796.45267 | -| terp1c39vyz4mszjtpgzz7dkgc9w5zxpw0q2thjjraf | 0xc44ac20abb80a4b0a042f36c8c15d41182e7814b | 1 | 2 | 1796.45267 | -| terp1ahqsgrj87a0lskr8lap4333znqq67v0cryr8j2 | 0xedc1040e47f75ff85867ff4358c6229801af31f8 | 1 | 2 | 1796.45267 | -| terp180ztmra4r24tt3wrvpvmaxzjumpyeymm4mmtcu | 0x3bc4bd8fb51aaab5c5c36059be9852e6c24c937b | 1 | 2 | 1796.45267 | -| terp18pra2x6s2plz0jsg38fnahemdfkemezaes6wrx | 0x3847d51b50507e27ca0889d33edf3b6a6d9de45d | 1 | 2 | 1796.45267 | -| terp1udsla96dcrgpgpy5w9p0rvwgc77z3q24uutr78 | 0xe361fe974dc0d01404947142f1b1c8c7bc288155 | 1 | 2 | 1796.45267 | -| terp1eykjqfr63vswvsxn89pgj69j2q0908rm8aq4x4 | 0xc92d20247a8b20e640d339428968b2501e579c7b | 1 | 2 | 1796.45267 | -| terp1f7z7h460tdxlzekw2kzdfx7v269j630v99zxxt | 0x4f85ebd74f5b4df166ce5584d49bcc568b2d45ec | 1 | 2 | 1796.45267 | -| terp1r4lz82zenhuqs5lsr2uqyzcaj7vhfus6jnv6h7 | 0x1d7e23a8599df80853f01ab8020b1d979974f21a | 1 | 2 | 1796.45267 | -| terp1czlzrmdskl6usa4ezntrxphyns9049qf3eqjqk | 0xc0be21edb0b7f5c876b914d63306e49c0afa9409 | 1 | 2 | 1796.45267 | -| terp1jscv2xcgfly4dl2j0uueqka0l4cssf4tk7efz2 | 0x9430c51b084fc956fd527f39905baffd710826ab | 1 | 2 | 1796.45267 | -| terp1xe7xm3qwsj6mdsgth2j84wly5drkxjxra2hyl0 | 0x367c6dc40e84b5b6c10bbaa47abbe4a3476348c3 | 1 | 2 | 1796.45267 | -| terp19092w69p2geafcg8tv85qy4hg5luatfjpuv69y | 0x2bcaa768a15233d4e1075b0f4012b7453fcead32 | 1 | 2 | 1796.45267 | -| terp1t29ezya7fr7r4yr4qu466794q2j36gkktqdarr | 0x5a8b9113be48fc3a9075072bad78b502a51d22d6 | 1 | 2 | 1796.45267 | -| terp1sjgudx0mxmhjzcj3gpzyhewt6rer9qt5usdff3 | 0x8491c699fb36ef21625140444be5cbd0f2328174 | 1 | 2 | 1796.45267 | -| terp1a382u8l6m863p9d5lgqxr6nfmce2sh0qsq9a9q | 0xec4eae1ffad9f51095b4fa0061ea69de32a85de0 | 1 | 2 | 1796.45267 | -| terp1ep8dfgaza8yfnw7p0wexqd3a8w49u6gfpt2k2j | 0xc84ed4a3a2e9c899bbc17bb260363d3baa5e6909 | 1 | 2 | 1796.45267 | -| terp1ymme96ucpqzpwp4nurked5h6x5luqh9nvjcqg3 | 0x26f792eb9808041706b3e0ed96d2fa353fc05cb3 | 1 | 2 | 1796.45267 | -| terp1esmf9lex4pqxxxq7rhhp049fd99vwudkgqzt82 | 0xcc3692ff26a84063181e1dee17d4a9694ac771b6 | 1 | 2 | 1796.45267 | -| terp1ux9y7gw8fs0fat65y5uq20ldz6l2v0vkdp62k3 | 0xe18a4f21c74c1e9eaf542538053fed16bea63d96 | 1 | 2 | 1796.45267 | -| terp1yll8q72klzep46mzealnrkqfxeym47pje3duk6 | 0x27fe707956f8b21aeb62cf7f31d8093649baf832 | 1 | 2 | 1796.45267 | -| terp1x4sypkemjcwccwer7rlh38cwswdufmg6pk39ur | 0x356040db3b961d8c3b23f0ff789f0e839bc4ed1a | 1 | 2 | 1796.45267 | -| terp19m0jjepn5z8tv6ke73tkk05qxck2muxemvvytu | 0x2edf296433a08eb66ad9f4576b3e80362cadf0d9 | 1 | 2 | 1796.45267 | -| terp18puvhquh7a4mquwk2qceup4n0jud4x9xv8n4nu | 0x3878cb8397f76bb071d650319e06b37cb8da98a6 | 1 | 2 | 1796.45267 | -| terp1v2ujjf76h7tma58hsj0macwd2t5kzku0fe32v3 | 0x62b92927dabf97bed0f7849fbee1cd52e9615b8f | 1 | 2 | 1796.45267 | -| terp1we2exfr68m2l9yg9ggcg8g0yp56sy3lf45k8sy | 0x765593247a3ed5f29105423083a1e40d350247e9 | 1 | 2 | 1796.45267 | -| terp1gex2mmyfuun7red77mvlzzmtfs065a7q2zkfuy | 0x464cadec89e727e1e5bef6d9f10b6b4c1faa77c0 | 1 | 2 | 1796.45267 | -| terp1dce4mt2r8qkgxq88al07dxwnlehhypkgz8jzz9 | 0x6e335dad43382c8300e7efdfe699d3fe6f7206c8 | 1 | 2 | 1796.45267 | -| terp1vv28arpc3rh34yx744udhl0tur2jxcg5armrmq | 0x63147e8c3888ef1a90dead78dbfdebe0d5236114 | 1 | 2 | 1796.45267 | -| terp16hf0xa6xr4xd6a97tr5rnpmvgecznqtsfvy03w | 0xd5d2f377461d4cdd74be58e839876c4670298170 | 1 | 2 | 1796.45267 | -| terp16vffqlupcrkpuz57v853ksqvp4mx5hxpzeckwj | 0xd312907f81c0ec1e0a9e61e91b400c0d766a5cc1 | 1 | 2 | 1796.45267 | -| terp1qkhqdq7ckww389gvq5l8q5u0tqg8x779mgddpg | 0x05ae0683d8b39d13950c053e70538f5810737bc5 | 1 | 2 | 1796.45267 | -| terp1jzrrt9zvq52nm5rd277dhx8acu4nd5mzan0x5s | 0x908635944c05153dd06d57bcdb98fdc72b36d362 | 1 | 2 | 1796.45267 | -| terp10ay4cf9ymzf5zcq3mvu52tzsz0gdly9fyvmad4 | 0x7f495c24a4d893416011db39452c5013d0df90a9 | 1 | 2 | 1796.45267 | -| terp14ew3j6llgaqvd0nvn2g036pz3c44yhmwy0j5gu | 0xae5d196bff4740c6be6c9a90f8e8228e2b525f6e | 1 | 2 | 1796.45267 | -| terp1aqyedppr25gn2e6l8r980k2et3wjykgcxe7d8a | 0xe809968423551135675f38ca77d9595c5d225918 | 1 | 2 | 1796.45267 | -| terp1gw8wxjl8cm0wl00s4lppcr2nwku39cxchr5c23 | 0x438ee34be7c6deefbdf0afc21c0d5375b912e0d8 | 1 | 2 | 1796.45267 | -| terp176krd7vex5dy8y4nmh9l5eg5h0hkkveyvrfpz4 | 0xf6ac36f999351a4392b3ddcbfa6514bbef6b3324 | 1 | 2 | 1796.45267 | -| terp1mgapdlqzr3q96zdysr9xcztapvf4tv32knwm9d | 0xda3a16fc021c405d09a480ca6c097d0b1355b22a | 1 | 2 | 1796.45267 | -| terp17uq6c073rcdhqtn4rhdrnp74azdm5uyq9f60hs | 0xf701ac3fd11e1b702e751dda3987d5e89bba7080 | 1 | 2 | 1796.45267 | -| terp16rl0mr2l965z95xkwjsvpeu698cngx3wqeeu86 | 0xd0fefd8d5f2ea822d0d674a0c0e79a29f1341a2e | 1 | 2 | 1796.45267 | -| terp1ufsqq22505d4pwvlft5uzeawsszf4lmvky6lz6 | 0xe2600029547d1b50b99f4ae9c167ae84049aff6c | 1 | 2 | 1796.45267 | -| terp13yrx6h8wulvh0a34u3sqtvsunrl0dnagfhm8qj | 0x89066d5ceee7d977f635e46005b21c98fef6cfa8 | 1 | 2 | 1796.45267 | -| terp16008uk7n0cty9jjk3gsm47vwxrqxdhnz588rjr | 0xd3de7e5bd37e1642ca568a21baf98e30c066de62 | 1 | 2 | 1796.45267 | -| terp1j4el6s6lj04r69y67mtcgkdzhh3ysk9jxm2qa0 | 0x9573fd435f93ea3d149af6d78459a2bde24858b2 | 1 | 2 | 1796.45267 | -| terp1cgju3w6pr9axcavj7yst60q34us3pmydsgx64z | 0xc225c8bb41197a6c7592f120bd3c11af2110ec8d | 1 | 2 | 1796.45267 | -| terp127phhtexjzs06v28p0le79ehrjnu9yntem5kz3 | 0x57837baf2690a0fd31470bff9f17371ca7c2926b | 1 | 2 | 1796.45267 | -| terp1mz266nfaqv3jjcrmmeswch3gp0ulxtzt3aj2ng | 0xd895ad4d3d032329607bde60ec5e280bf9f32c4b | 1 | 2 | 1796.45267 | -| terp1rn9xwlswr7j844r2nxx09lnv6q3zg2xt8rj9f3 | 0x1cca677e0e1fa47ad46a998cf2fe6cd0222428cb | 1 | 2 | 1796.45267 | -| terp1tjnkm90a8c0v9jwntgjhpknxckgr55e60jlar3 | 0x5ca76d95fd3e1ec2c9d35a2570da66c5903a533a | 1 | 2 | 1796.45267 | -| terp1jmszmx2eyw5pjjw8846ytgd4wcuar3q4ju6v08 | 0x96e02d995923a81949c73d7445a1b57639d1c415 | 1 | 2 | 1796.45267 | -| terp1wmn2g79ezwp84cgfzpeuf3spsfghaz5g34c994 | 0x76e6a478b913827ae1091073c4c60182517e8a88 | 1 | 2 | 1796.45267 | -| terp1pvlep2v8l2jjlj6dg3hr0n8eztdd2hvwcvpqgk | 0x0b3f90a987faa52fcb4d446e37ccf912dad55d8e | 1 | 2 | 1796.45267 | -| terp1atc8m73vq2d4jkujew3trudpu5evw82tdsd2rq | 0xeaf07dfa2c029b595b92cba2b1f1a1e532c71d4b | 1 | 2 | 1796.45267 | -| terp180qdzx74rfl8pce3x3n99x3d5pp7wuym55t0pr | 0x3bc0d11bd51a7e70e3313466529a2da043e7709b | 1 | 2 | 1796.45267 | -| terp1acrjx7p3dpljms5ayzpkr3kjltcyckd8z2sywx | 0xee07237831687f2dc29d208361c6d2faf04c59a7 | 1 | 2 | 1796.45267 | -| terp18xnl40cxjt5p482tusq6adnsye3z0c4szgpzl7 | 0x39a7fabf0692e81a9d4be401aeb670266227e2b0 | 1 | 2 | 1796.45267 | -| terp1v8r6cpz5s63578eq25uyqpkfpa3jj4wk7dwyk7 | 0x61c7ac045486a34f1f2055384006c90f632955d6 | 1 | 2 | 1796.45267 | -| terp18j933qwlv23tj6ll5qdjnpq4qa90atnpkgt70v | 0x3c8b1881df62a2b96bffa01b298415074afeae61 | 1 | 2 | 1796.45267 | -| terp16khkx64xzh8cfuffy94aksanll4wc5unq5mjh9 | 0xd5af636aa615cf84f129216bdb43b3ffeaec5393 | 1 | 2 | 1796.45267 | -| terp1j63gk4lzjjlax0ejptt4ysvmftqefwphqmmr6g | 0x96a28b57e294bfd33f320ad752419b4ac194b837 | 1 | 2 | 1796.45267 | -| terp1fsfwl2wcsq7s9ddkezxjt73nm23ggdgfv7h8ff | 0x4c12efa9d8803d02b5b6c88d25fa33daa2843509 | 1 | 2 | 1796.45267 | -| terp17ttyxna53wdtnkd704rn9slw7gcke2f559t80a | 0xf2d6434fb48b9ab9d9be7d4732c3eef2316ca934 | 1 | 2 | 1796.45267 | -| terp1vr8tlggv0m4nttslm5q6fhml4599rahhpn0896 | 0x60cebfa10c7eeb35ae1fdd01a4df7fad0a51f6f7 | 1 | 2 | 1796.45267 | -| terp142ka8cp0pk59gysh8tqdejeefe3s9r3wu665hf | 0xaaadd3e02f0da85412173ac0dccb394e63028e2e | 1 | 2 | 1796.45267 | -| terp1lecgm87ss9amfe9mz96lvrqgjvx63r5gltx2e3 | 0xfe708d9fd0817bb4e4bb1175f60c08930da88e88 | 1 | 2 | 1796.45267 | -| terp18lgayd74pyyayt3lae4qk8udt62mu6rwe5pnd4 | 0x3fd1d237d50909d22e3fee6a0b1f8d5e95be686e | 1 | 2 | 1796.45267 | -| terp1v3vshj03v6q6rkgn5w0c7r8327mqshxzwryaam | 0x64590bc9f16681a1d913a39f8f0cf157b6085cc2 | 1 | 2 | 1796.45267 | -| terp1sm43d3mvqwv0ygt7d0ykhcpw2nccpx9v5j50n0 | 0x86eb16c76c0398f2217e6bc96be02e54f18098ac | 1 | 2 | 1796.45267 | -| terp1c3dhpxterxgcgntrh0scx96llvev45hqexf5jt | 0xc45b7099791991844d63bbe183175ffb32cad2e0 | 1 | 2 | 1796.45267 | -| terp1xfy6g8jvlgmyavt32q30h5x5ny0q026rl07uym | 0x3249a41e4cfa364eb1715022fbd0d4991e07ab43 | 1 | 2 | 1796.45267 | -| terp1d33ganp9ylx8sjn89cnp2tmdjcdjy7rmah75dv | 0x6c628ecc2527cc784a672e26152f6d961b22787b | 1 | 2 | 1796.45267 | -| terp1tkthnhstuvpwx78tcxxzkuq2z8sfwdnyx2ezsa | 0x5d9779de0be302e378ebc18c2b700a11e0973664 | 1 | 2 | 1796.45267 | -| terp1eashgjqlfmgyvgkwad75sw7zc276pckvp3xs8x | 0xcf6174481f4ed04622ceeb7d483bc2c2bda0e2cc | 1 | 2 | 1796.45267 | -| terp1l9alrj0lah5wxlzyr8r6zqs8m06jhvzpe64lty | 0xf97bf1c9ffede8e37c4419c7a10207dbf52bb041 | 1 | 2 | 1796.45267 | -| terp1addv7st5gcqh5r3h9tu793xwnp52962ycvhhf9 | 0xeb5acf417446017a0e372af9e2c4ce9868a2e944 | 1 | 2 | 1796.45267 | -| terp18q6hprl8mzds98ts4jzjphalfp644wk4tcsmt6 | 0x3835708fe7d89b029d70ac8520dfbf48755abad5 | 1 | 2 | 1796.45267 | -| terp1uh4xm2spnw5qdpcmlsmn6gvkhzavaepzaxz85g | 0xe5ea6daa019ba806871bfc373d2196b8bacee422 | 1 | 2 | 1796.45267 | -| terp1qdexywdxlwt0eg39yxk34sg46fu7njjnxa5n2a | 0x03726239a6fb96fca22521ad1ac115d279e9ca53 | 1 | 2 | 1796.45267 | -| terp1mdh6y6xrpj6h5ewyfchz33cyxca9rh207s2wup | 0xdb6fa268c30cb57a65c44e2e28c704363a51dd4f | 1 | 2 | 1796.45267 | -| terp1enngckdv6c6l49scr7cfa3hpufq4lwqg0gpuyr | 0xcce68c59acd635fa96181fb09ec6e1e2415fb808 | 1 | 2 | 1796.45267 | -| terp1fdnxm97py3l9lxy6akzjhzatagr2gf26hsx8vw | 0x4b666d97c1247e5f989aed852b8babea06a4255a | 1 | 2 | 1796.45267 | -| terp16zal7ttuvd03t34cchcx36pvl32tl76kdt7xcr | 0xd0bbff2d7c635f15c6b8c5f068e82cfc54bffb56 | 1 | 2 | 1796.45267 | -| terp1dghvy2pql5mufnh4cnaqwa3lwcy506qc877r4r | 0x6a2ec22820fd37c4cef5c4fa07763f760947e818 | 1 | 2 | 1796.45267 | -| terp1rcrfx0rac4z8v2hmu7txcz9hgspc62y35t4w0m | 0x1e06933c7dc544762afbe7966c08b744038d2891 | 1 | 2 | 1796.45267 | -| terp1j2dda0js596feavvsn3fcwagc6ktjavh286nxr | 0x929adebe50a1749cf58c84e29c3ba8c6acb97597 | 1 | 2 | 1796.45267 | -| terp14jf35kxtr2rhl6lmzhghy6302h89x0tdnustkz | 0xac931a58cb1a877febfb15d1726a2f55ce533d6d | 1 | 2 | 1796.45267 | -| terp1mlu302mq96zs3d5s0hsmqwxa22ey5gmemjmxuu | 0xdff917ab602e8508b6907de1b038dd52b24a2379 | 1 | 2 | 1796.45267 | -| terp1p50wyxcad4g22wnunj3ew3p0zktgzvjqz7wy9v | 0x0d1ee21b1d6d50a53a7c9ca397442f1596813240 | 1 | 2 | 1796.45267 | -| terp165muwjc39cc4yn8e3uah39556llmdek4jkxn85 | 0xd537c74b112e31524cf98f3b789694d7ffb6e6d5 | 1 | 2 | 1796.45267 | -| terp1hr5gf6q7zf959jh2h84nujqx2tz0x55xrsvaxn | 0xb8e884e81e124b42caeab9eb3e480652c4f35286 | 1 | 2 | 1796.45267 | -| terp1rnjy83nmx3nz89jvy54ssj3h4htalk0xqc2zq4 | 0x1ce443c67b346623964c252b084a37add7dfd9e6 | 1 | 2 | 1796.45267 | -| terp1r3wazatxds0qs4uesgr3cywv4z5cpxg3n6lenj | 0x1c5dd175666c1e08579982071c11cca8a9809911 | 1 | 2 | 1796.45267 | -| terp1dw786rculwlzyl2q85rufpe8vhvhpe4n5q79cs | 0x6bbc7d0f1cfbbe227d403d07c4872765d970e6b3 | 1 | 2 | 1796.45267 | -| terp1pc2ypyqywqafxcanpqnqccap7pcdt72quykcph | 0x0e14409004703a9363b308260c63a1f070d5f940 | 1 | 2 | 1796.45267 | -| terp1k5ezyqh32xkrddptkhrjqquwfm32yt74jr4s7l | 0xb5322202f151ac36b42bb5c720038e4ee2a22fd5 | 1 | 2 | 1796.45267 | -| terp1pzv0hyyqykcnvrfly4ds0nltrk840swtm36nnd | 0x0898fb908025b1360d3f255b07cfeb1d8f57c1cb | 1 | 2 | 1796.45267 | -| terp1lv09rta083398esppk5cnuz62xd6549wpa3xmk | 0xfb1e51afaf3c6253e6010da989f05a519baa54ae | 1 | 2 | 1796.45267 | -| terp16glq6f3u7pxtslfrufzuex4a5kvl0qtu5ke6dn | 0xd23e0d263cf04cb87d23e245cc9abda599f7817c | 1 | 2 | 1796.45267 | -| terp1vmqdyxq7awfvmtu0n3qz47lthsgznvf4a8u69g | 0x66c0d2181eeb92cdaf8f9c402afbebbc1029b135 | 1 | 2 | 1796.45267 | -| terp1tm4jrnv4xhp3xrng8e0l55wjttsfyc2sdtw5f4 | 0x5eeb21cd9535c3130e683e5ffa51d25ae0926150 | 1 | 2 | 1796.45267 | -| terp1kqam2atx2mty72s8ppml99zq5n36ws6yueqars | 0xb03bb5756656d64f2a070877f29440a4e3a74344 | 1 | 2 | 1796.45267 | -| terp1ylnclzak84h204whelt6gqk6l8qlptecca2sn8 | 0x27e78f8bb63d6ea7d5d7cfd7a402daf9c1f0af38 | 1 | 2 | 1796.45267 | -| terp1vsd67a8zdw2dp8veapgzu80nt037ycesn3jeyc | 0x641baf74e26b94d09d99e8502e1df35be3e26330 | 1 | 2 | 1796.45267 | -| terp1zsngpp7hrjv8z8fsq7u8vgmfxw6lnxgsngj2rl | 0x14268087d71c98711d3007b876236933b5f99910 | 1 | 2 | 1796.45267 | -| terp162j3tukuq77z8l687zysgljlcwdvuv56msaw3e | 0xd2a515f2dc07bc23ff47f089047e5fc39ace329a | 1 | 2 | 1796.45267 | -| terp18v34qvv9qkx89glh0rc28l3tmqzyww9sk52d99 | 0x3b23503185058c72a3f778f0a3fe2bd8044738b0 | 1 | 2 | 1796.45267 | -| terp15ugga27kmx285hxapg9uej7l6ykn697k9j6l4f | 0xa7108eabd6d9947a5cdd0a0bcccbdfd12d3d17d6 | 1 | 2 | 1796.45267 | -| terp15rx5ltuwft877mqe3z90evqlxur95eqgmsur3c | 0xa0cd4faf8e4acfef6c19888afcb01f37065a6408 | 1 | 2 | 1796.45267 | -| terp172tafm5wxleyanv6ddypffwuclp79mfc02j3km | 0xf297d4ee8e37f24ecd9a6b4814a5dcc7c3e2ed38 | 1 | 2 | 1796.45267 | -| terp19plwdwkqgwnkenaek8s8mcuu5uwdr96yn4gxy4 | 0x287ee6bac043a76ccfb9b1e07de39ca71cd19744 | 1 | 2 | 1796.45267 | -| terp1uv2evy8v3hk8l3kftuhadfh0tyqt3wuse5v4ln | 0xe3159610ec8dec7fc6c95f2fd6a6ef5900b8bb90 | 1 | 2 | 1796.45267 | -| terp1l6cappree0u3tsf248q38u50awesdylsxaag43 | 0xfeb1d08479cbf915c12aa9c113f28febb30693f0 | 1 | 2 | 1796.45267 | -| terp10vqcdc84u7fu5kua7zkppajrgfjy9ryxv2236n | 0x7b0186e0f5e793ca5b9df0ac10f6434264428c86 | 1 | 2 | 1796.45267 | -| terp1hxfeqlu0metye5xq90myp6c06vk7humhp4c87s | 0xb993907f8fde564cd0c02bf640eb0fd32debf377 | 1 | 2 | 1796.45267 | -| terp1f9657ne24ly6gypyu06gf75vmz9zh46pdfjzsg | 0x49754f4f2aafc9a41024e3f484fa8cd88a2bd741 | 1 | 2 | 1796.45267 | -| terp1u4jwdge88j994yr8l39q7etjfnyl2dr636043a | 0xe564e6a3273c8a5a9067fc4a0f65724cc9f5347a | 1 | 2 | 1796.45267 | -| terp1trps8l78zhksehgmw08ldnclllg5qj7e63kfqk | 0x58c303ffc715ed0cdd1b73cff6cf1fffd1404bd9 | 1 | 2 | 1796.45267 | -| terp1crv4lwmm7xw8vedpcszzk6p3s2e5ug2sn9yg5d | 0xc0d95fbb7bf19c7665a1c4042b683182b34e2150 | 1 | 2 | 1796.45267 | -| terp1s2h0tnn9d986cydyk8sj04qptg7vzypxf2m3s8 | 0x82aef5ce65694fac11a4b1e127d4015a3cc11026 | 1 | 2 | 1796.45267 | -| terp1dc3zkxk0z6pdh00gewpsw707a42zpvh6ssedqf | 0x6e222b1acf1682dbbde8cb830779feed5420b2fa | 1 | 2 | 1796.45267 | -| terp1uqtamwuerkka4577sjq9v4aad2t78szlja6aqs | 0xe017ddbb991daddad3de84805657bd6a97e3c05f | 1 | 2 | 1796.45267 | -| terp170wr6044cv8h44edh2xh4td6mea5wsl286jp48 | 0xf3dc3d3eb5c30f7ad72dba8d7aadbade7b4743ea | 1 | 2 | 1796.45267 | -| terp1rmaewa3s009fcgesr0e5nx2nc4dtvj0p7f927g | 0x1efb9776307bca9c23301bf3499953c55ab649e1 | 1 | 2 | 1796.45267 | -| terp1e3qvls2x47h9jvenkncfxgrrpzwahrpn8wn3kf | 0xcc40cfc146afae593333b4f0932063089ddb8c33 | 1 | 2 | 1796.45267 | -| terp1k0fxgwq0lnu7we9pdm56mhgghh85vzflq048kj | 0xb3d264380ffcf9e764a16ee9addd08bdcf46093f | 1 | 2 | 1796.45267 | -| terp1nrcmjnpewnmtag7yzav23hul942duwk99hp7k8 | 0x98f1b94c3974f6bea3c41758a8df9f2d54de3ac5 | 1 | 2 | 1796.45267 | -| terp1yszh5sqhlrw8yz5axuy76ljwayesfkwpqh9yme | 0x24057a4017f8dc720a9d3709ed7e4ee93304d9c1 | 1 | 2 | 1796.45267 | -| terp1nuvjp5xtkcldqvmk58sfl559r4spydxgnvt0g4 | 0x9f1920d0cbb63ed03376a1e09fd2851d601234c8 | 1 | 2 | 1796.45267 | -| terp193p94svvqsrzkh3e6mxpvaln6qzdcjlttgq6wg | 0x2c425ac18c04062b5e39d6cc1677f3d004dc4beb | 1 | 2 | 1796.45267 | -| terp1s2a5vxarrkc3nfvplhjpr7wc2agrda2xcwhmu2 | 0x82bb461ba31db119a581fde411f9d8575036f546 | 1 | 2 | 1796.45267 | -| terp1vx8nx59c740095u4dk5kdyjz76vkwxs06vr09t | 0x618f3350b8f55ef2d3956da9669242f699671a0f | 1 | 2 | 1796.45267 | -| terp1288ll8ffenafgva28hupgq8m3cxrrztrmgf7fe | 0x51cfff9d29ccfa9433aa3df81400fb8e0c318963 | 1 | 2 | 1796.45267 | -| terp1e24wcq26x4yeetwqy208culvxpty8azy8h0afj | 0xcaaaec015a35499cadc0229e7c73ec305643f444 | 1 | 2 | 1796.45267 | -| terp1dctejajx98arm9eelw7qm83v9w4hl7cqja5p3v | 0x6e1799764629fa3d9739fbbc0d9e2c2bab7ffb00 | 1 | 2 | 1796.45267 | -| terp1xyehm64gq05er8nhza80lx7sxgvyqvxnsf0470 | 0x31337deaa803e9919e77174eff9bd032184030d3 | 1 | 2 | 1796.45267 | -| terp13tk86jv200x4dtaag4x4q826nk8jg6pwm9phtl | 0x8aec7d498a7bcd56afbd454d501d5a9d8f24682e | 1 | 2 | 1796.45267 | -| terp1neasmtt4lmav5cv6zsjqxmgyufzcl5680aqtfe | 0x9e7b0dad75fefaca619a1424036d04e2458fd347 | 1 | 2 | 1796.45267 | -| terp1plqjjtthtqcutur3cv6hgyxh7zrk7g5jz3rkxj | 0x0fc1292d775831c5f071c3357410d7f0876f2292 | 1 | 2 | 1796.45267 | -| terp163e22hslml98n6jq3esm9v5q9stu7ks4gnqlc0 | 0xd472a55e1fdfca79ea408e61b2b2802c17cf5a15 | 1 | 2 | 1796.45267 | -| terp1k938txt8v9pqf0gcxc06eqjkla2seu03964k5e | 0xb162759967614204bd18361fac8256ff550cf1f1 | 1 | 2 | 1796.45267 | -| terp1d0c4nlfgesq37tuxlvzv97w99wl7aheafg4k9j | 0x6bf159fd28cc011f2f86fb04c2f9c52bbfeedf3d | 1 | 2 | 1796.45267 | -| terp1m9jatq877j5300kduyr0ej6c53tgqc4rwfcaa5 | 0xd965d580fef4a917becde106fccb58a4568062a3 | 1 | 2 | 1796.45267 | -| terp14nxdy98fe38ascuxqlrhfya8tmrq2m837rwjfu | 0xacccd214e9cc4fd8638607c77493a75ec6056cf1 | 1 | 2 | 1796.45267 | -| terp1z4gc8c5ppgfey2hmjnhwwpfnfnr6ng0e9zgeaw | 0x155183e2810a13922afb94eee705334cc7a9a1f9 | 1 | 2 | 1796.45267 | -| terp1rd6e5zhmgm3h0lkvpadpsmfrtgylr68vqs0q0g | 0x1b759a0afb46e377fecc0f5a186d235a09f1e8ec | 1 | 2 | 1796.45267 | -| terp1r9tr6f4t5ghuuyvf8u57clmzakrcm97yagjcja | 0x19563d26aba22fce11893f29ec7f62ed878d97c4 | 1 | 2 | 1796.45267 | -| terp1fj4n9p0udw08z6v8lze4hzsafdq4rw9hhztl4j | 0x4cab3285fc6b9e716987f8b35b8a1d4b4151b8b7 | 1 | 2 | 1796.45267 | -| terp1l0jmtgplrandpngmpqpep5cp3al9u5teu4z9jn | 0xfbe5b5a03f1f66d0cd1b080390d3018f7e5e5179 | 1 | 2 | 1796.45267 | -| terp1dtgsn6p3vjqqgu25qjflcx7lq2a3z4s6jnt445 | 0x6ad109e83164800471540493fc1bdf02bb11561a | 1 | 2 | 1796.45267 | -| terp10tgq9kp9ttrfmkqcljhwj8522dxc6v9gaqhaul | 0x7ad002d8255ac69dd818fcaee91e8a534d8d30a8 | 1 | 2 | 1796.45267 | -| terp10cwd6j7dl9zr5aucrvuyxpx2uhh5qq2wutqrjc | 0x7e1cdd4bcdf9443a77981b384304cae5ef40014e | 1 | 2 | 1796.45267 | -| terp1uemt3t6z74y7e4x878c6c27pestscux3fy7tg7 | 0xe676b8af42f549ecd4c7f1f1ac2bc1cc170c70d1 | 1 | 2 | 1796.45267 | -| terp120zhm2s4l6kmvlf8gpg2zyprhvtj7ftxr0nlgv | 0x53c57daa15feadb67d274050a11023bb172f2566 | 1 | 2 | 1796.45267 | -| terp1tsw7cgzuwwqz3uhdp4p6rdfky6777snajvjmkg | 0x5c1dec205c738028f2ed0d43a1b53626bdef427d | 1 | 2 | 1796.45267 | -| terp1y92mzvcvf2nz8cxcrne62l4uqn0s9utyc2advp | 0x2155b1330c4aa623e0d81cf3a57ebc04df02f164 | 1 | 2 | 1796.45267 | -| terp1t3kjp594ceu9p26w4v4eke5r4m8tnqzx4wwus5 | 0x5c6d20d0b5c67850ab4eab2b9b6683aeceb98046 | 1 | 2 | 1796.45267 | -| terp1jrqw33hy0ydeunueyuhawqqk56pq26z8rfhjy7 | 0x90c0e8c6e4791b9e4f99272fd70016a682056847 | 1 | 2 | 1796.45267 | -| terp1ca3h43aqjdxym0xq4tzd8xnjgkp9jkr827h2ke | 0xc7637ac7a0934c4dbcc0aac4d39a724582595867 | 1 | 2 | 1796.45267 | -| terp1fknrpw9wna43myqndh9v95trgjuq22z3s0rg4r | 0x4da630b8ae9f6b1d90136dcac2d16344b8052851 | 1 | 2 | 1796.45267 | -| terp18rp4djwmcw0j4q4rgd68fr9mucvrn4ftmmq565 | 0x38c356c9dbc39f2a82a34374748cbbe61839d52b | 1 | 2 | 1796.45267 | -| terp1ynyvq76upm4eq7lpusuw8j36s59je2cwmtjpw8 | 0x24c8c07b5c0eeb907be1e438e3ca3a850b2cab0e | 1 | 2 | 1796.45267 | -| terp14evx59srhmw4ctrch0lqg6dcztc2mzumttscmw | 0xae586a1603bedd5c2c78bbfe0469b812f0ad8b9b | 1 | 2 | 1796.45267 | -| terp1y3nju6rnsdqr3v9wlc5fravx8t8lml67erdrt8 | 0x24672e6873834038b0aefe2891f5863acffdff5e | 1 | 2 | 1796.45267 | -| terp1audncwczs7yn99ncq3qmukm2rhvxx2pqpz62l8 | 0xef1b3c3b0287893296780441be5b6a1dd8632820 | 1 | 2 | 1796.45267 | -| terp14sjmf5csml0yssd4wtku5gh88uxxykee8urlx4 | 0xac25b4d310dfde4841b572edca22e73f0c625b39 | 1 | 2 | 1796.45267 | -| terp147fmr3kyfs7x08s4n6jqxzhtvh75v8x3hths8s | 0xaf93b1c6c44c3c679e159ea4030aeb65fd461cd1 | 1 | 2 | 1796.45267 | -| terp1u6wp6eaf5v337wg5klgyu442mm8wmem85585cg | 0xe69c1d67a9a3231f3914b7d04e56aadeceede767 | 1 | 2 | 1796.45267 | -| terp1exl2fn374k6740z2t28njqzj8xd0r7u0cpsl7j | 0xc9bea4ce3eadb5eabc4a5a8f390052399af1fb8f | 1 | 2 | 1796.45267 | -| terp1v5yjnexsnc4s0mu3nunwnnu8k39py683kud753 | 0x650929e4d09e2b07ef919f26e9cf87b44a1268f1 | 1 | 2 | 1796.45267 | -| terp18h03n9rsyt7k4n44kpu7zkx6d9ry44jcytpcz9 | 0x3ddf19947022fd6aceb5b079e158da69464ad658 | 1 | 2 | 1796.45267 | -| terp192p3lk4fvkts55pnrm6zfxg7mxzl0qg7r72kn3 | 0x2a831fdaa965970a50331ef424991ed985f7811e | 1 | 2 | 1796.45267 | -| terp1fj9yw2l4flzgf658sxtf4dv4jf2dj8vvjqgtk2 | 0x4c8a472bf54fc484ea8781969ab5959254d91d8c | 1 | 2 | 1796.45267 | -| terp1w498c226fr8epcm55ej2r3pzjmcr2qdkhrcmk5 | 0x754a7c295a48cf90e374a664a1c42296f03501b6 | 1 | 2 | 1796.45267 | -| terp1mfl35x3ntfmxlz5x7304gxq2nn78ng6ugq4ket | 0xda7f1a1a335a766f8a86f45f54180a9cfc79a35c | 1 | 2 | 1796.45267 | -| terp1t6fmcen2tq7jsfk7cczcnu5tz20wnezc52svyh | 0x5e93bc666a583d2826dec60589f28b129ee9e458 | 1 | 2 | 1796.45267 | -| terp17f7c8zdzn5yj6kcxttasmkve4t3e45l5w4p3h2 | 0xf27d8389a29d092d5b065afb0dd999aae39ad3f4 | 1 | 2 | 1796.45267 | -| terp145exeau9gmww64j7n3azt6uvq7hw0zskc2fcn7 | 0xad326cf78546dced565e9c7a25eb8c07aee78a16 | 1 | 2 | 1796.45267 | -| terp10gfm2kqry2t2eh8c3y8slncljnta0fp9m9rgy0 | 0x7a13b558032296acdcf8890f0fcf1f94d7d7a425 | 1 | 2 | 1796.45267 | -| terp1upc7aq6eh7t03ace58m4ls6uj5sp6jhr7r5tak | 0xe071ee8359bf96f8f719a1f75fc35c95201d4ae3 | 1 | 2 | 1796.45267 | -| terp13kamy2q365alf8fv7fge6dhcpxk2lcp362aqtc | 0x8dbbb22811d53bf49d2cf2519d36f809acafe031 | 1 | 2 | 1796.45267 | -| terp1qtqjexcdwvymk2vq5mcc7ge3zlpy6jmaetendx | 0x02c12c9b0d7309bb2980a6f18f233117c24d4b7d | 1 | 2 | 1796.45267 | -| terp1rwd9rau452ljawkn2v2e27mvtxmnvc06eyq3rd | 0x1b9a51f795a2bf2ebad35315957b6c59b73661fa | 1 | 2 | 1796.45267 | -| terp146sjzmk6aj6m8s0stwgv7yet6vvers0j9t5zax | 0xaea1216edaecb5b3c1f05b90cf132bd31991c1f2 | 1 | 2 | 1796.45267 | -| terp1dauwkfarcu8whc9mzcm297t36q5kq29h2mrrg9 | 0x6f78eb27a3c70eebe0bb1636a2f971d0296028b7 | 1 | 2 | 1796.45267 | -| terp1eckaa83ncyd9kx6zry6z4vy8q0xcm9cw3wsdwv | 0xce2dde9e33c11a5b1b4219342ab08703cd8d970e | 1 | 2 | 1796.45267 | -| terp1phpmjdrgdzp8945xgwq0l7vfawwuqg7knc9clg | 0x0dc3b93468688272d6864380fff989eb9dc023d6 | 1 | 2 | 1796.45267 | -| terp1xh97ms6p957f8hky47nqmhecc25u8zr9l0r9my | 0x35cbedc3412d3c93dec4afa60ddf38c2a9c38865 | 1 | 2 | 1796.45267 | -| terp1ct3qwaqxzvx84vcwfu6s5rste25efd7hj3w26w | 0xc2e2077406130c7ab30e4f350a0e0bcaa994b7d7 | 1 | 2 | 1796.45267 | -| terp185hkxqad73vnap289djsllyzjzjuypmyzxsepr | 0x3d2f6303adf4593e85472b650ffc8290a5c20764 | 1 | 2 | 1796.45267 | -| terp18vmwzvnwprl9arapr75kgk3r3l9y4muakwaqqd | 0x3b36e1326e08fe5e8fa11fa9645a238fca4aef9d | 1 | 2 | 1796.45267 | -| terp19fhheyg7cy63qz0yjts0qrnxv6jg6ms9js58tl | 0x2a6f7c911ec1351009e492e0f00e6666a48d6e05 | 1 | 2 | 1796.45267 | -| terp1qajtshhvzl9jp70euqck8yn4k0fw8dy3zdcqyl | 0x0764b85eec17cb20f9f9e031639275b3d2e3b491 | 1 | 2 | 1796.45267 | -| terp104f8jxhnk6n93z3cxaw7tjul0598vxdd3turt9 | 0x7d52791af3b6a6588a38375de5cb9f7d0a7619ad | 1 | 2 | 1796.45267 | -| terp14vkheq62q4j95xc8pm3398tam890gvxymzcqht | 0xab2d7c834a05645a1b070ee3129d7dd9caf430c4 | 1 | 2 | 1796.45267 | -| terp19r4fwdf8xvuclv2tmnnmgw39uk645l52ykujkn | 0x28ea97352733398fb14bdce7b43a25e5b55a7e8a | 1 | 2 | 1796.45267 | -| terp1g3f4nznj8f00u27v44ysn7fa03fzklae2af0dc | 0x4453598a723a5efe2bccad4909f93d7c522b7fb9 | 1 | 2 | 1796.45267 | -| terp17nhgz68xty6u5gdnxk7uwdsxvra54qun4s3lkt | 0xf4ee8168e65935ca21b335bdc7360660fb4a8393 | 1 | 2 | 1796.45267 | -| terp1vw3q47jgyhgdtsya6zl90rkrsy8qtxpquufqva | 0x63a20afa4825d0d5c09dd0be578ec3810e059820 | 1 | 2 | 1796.45267 | -| terp12hsq2kyk4we8q8yxttahpvqzc7l8gxn4hqm345 | 0x55e0055896abb2701c865afb70b002c7be741a75 | 1 | 2 | 1796.45267 | -| terp1rysake60zd50a8mxvyyf00jmmg08h7grfyz73n | 0x1921db674f1368fe9f66610897be5bda1e7bf903 | 1 | 2 | 1796.45267 | -| terp1yk0hvc7esz5f0yp4valah6e00rwpkmt86hwvfg | 0x259f7663d980a8979035677fdbeb2f78dc1b6d67 | 1 | 2 | 1796.45267 | -| terp1kahglx0c4wa2gh289y5h9jk7zycqkmwvfz2g9e | 0xb76e8f99f8abbaa45d47292972cade11300b6dcc | 1 | 2 | 1796.45267 | -| terp1x2z9ucfa4m7ggf26nkc9jzs0k47kyn2m7me4lr | 0x32845e613daefc84255a9db0590a0fb57d624d5b | 1 | 2 | 1796.45267 | -| terp1kfxyu34t3wg6yv8k03tgl908zs0lm3reuyd3c8 | 0xb24c4e46ab8b91a230f67c568f95e7141ffdc479 | 1 | 2 | 1796.45267 | -| terp1am2gnggq3qxz6xpkr2jdx7epq7ygv0zd5p8aqp | 0xeed489a100880c2d18361aa4d37b210788863c4d | 1 | 2 | 1796.45267 | -| terp1dtxlkgnanjuqrqq2q9ej7sskhh855rz0te3y68 | 0x6acdfb227d9cb801800a01732f4216bdcf4a0c4f | 1 | 2 | 1796.45267 | -| terp1fhs9u7c5dnr0chq9uep87k84053vy6s97dyyn6 | 0x4de05e7b146cc6fc5c05e6427f58f57d22c26a05 | 1 | 2 | 1796.45267 | -| terp1hgu8kf5v79r9wvwdzdedfngtq89slxp04u4klj | 0xba387b268cf1465731cd1372d4cd0b01cb0f982f | 1 | 2 | 1796.45267 | -| terp109lkyvgyzt99s9yugww2r2g4h5epdj7v2epva0 | 0x797f62310412ca58149c439ca1a915bd3216cbcc | 1 | 2 | 1796.45267 | -| terp1s2fs9sg9dwlnw8lzwfy3e3ewqwdypw9wy9edjg | 0x829302c1056bbf371fe272491cc72e039a40b8ae | 1 | 2 | 1796.45267 | -| terp1dw3hhs0u54setx0zr0hyt8zepfpw9f392qcpgp | 0x6ba37bc1fca5619599e21bee459c590a42e2a625 | 1 | 2 | 1796.45267 | -| terp122y473pf2t7jekmgme88e6vn80zdm3ztcfqn7j | 0x52895f442952fd2cdb68de4e7ce9933bc4ddc44b | 1 | 2 | 1796.45267 | -| terp1kgj7gps2xjfcdlsg0gddrwu5rrshjnkfcwy3w8 | 0xb225e4060a349386fe087a1ad1bb9418e1794ec9 | 1 | 2 | 1796.45267 | -| terp1284j52cjdllvf52zqle0tgt0yl47lth4jchfa8 | 0x51eb2a2b126ffec4d14207f2f5a16f27ebefaef5 | 1 | 2 | 1796.45267 | -| terp1qs94ntq0l43xxql5vjmlklgd8u9ax5nqxzysx9 | 0x040b59ac0ffd626303f464b7fb7d0d3f0bd35260 | 1 | 2 | 1796.45267 | -| terp1jcgcelphr394kcamww8y9dsuw9suuw6lhmmtd0 | 0x96118cfc371c4b5b63bb738e42b61c7161ce3b5f | 1 | 2 | 1796.45267 | -| terp1jd3ywd5q4uwnu4ffjtuscruset2nkwt79c602s | 0x9362473680af1d3e552992f90c0f90cad53b397e | 1 | 2 | 1796.45267 | -| terp19tdk06d925v5le8zrppnv4cmxqy3mfzzyk4vvx | 0x2adb67e9a555194fe4e2184336571b30091da442 | 1 | 2 | 1796.45267 | -| terp1pddg2thsef7defclzl2nwscn632vcn9u7vr07s | 0x0b5a852ef0ca7cdca71f17d5374313d454cc4cbc | 1 | 2 | 1796.45267 | -| terp1m23rm5d2vug5mp0kemfrw9n2zv8fwhvlw546mw | 0xdaa23dd1aa67114d85f6ced237166a130e975d9f | 1 | 2 | 1796.45267 | -| terp1r0fnwkx3c30e8lhepjvuec6c2attzkgdh2c77n | 0x1bd33758d1c45f93fef90c99cce3585756b1590d | 1 | 2 | 1796.45267 | -| terp1yyvt78zjnl5vqztxs8w87mfy54yl3sp7w45q92 | 0x2118bf1c529fe8c0096681dc7f6d24a549f8c03e | 1 | 2 | 1796.45267 | -| terp1h9ydpn08wq2lv0qtv5fqj2krynwy4hqv55m03v | 0xb948d0cde77015f63c0b6512092ac324dc4adc0c | 1 | 2 | 1796.45267 | -| terp1pacae7eztakjxvfnvfgq4yd2t8n6jj68hsrcwd | 0x0f71dcfb225f6d23313362500a91aa59e7a94b47 | 1 | 2 | 1796.45267 | -| terp10d3f9j34cg8jda5zzp3dsnj4uv2zg8kj80g6d7 | 0x7b6292ca35c20f26f6821062d84e55e314241ed2 | 1 | 2 | 1796.45267 | -| terp1qfywazfrnzrngznvsadlw9me6wyuy989rzxsfl | 0x0248ee89239887340a6c875bf71779d389c214e5 | 1 | 2 | 1796.45267 | -| terp1v4z6ph2h5qy8h8dcazn84dlkxweg2lha6a38zn | 0x6545a0dd57a0087b9db8e8a67ab7f633b2857efd | 1 | 2 | 1796.45267 | -| terp1e6eqmhwfe84dsmfs94c9hupxxmleqmze857krq | 0xceb20dddc9c9ead86d302d705bf02636ff906c59 | 1 | 2 | 1796.45267 | -| terp1lea6ug6s64d6jvnvpf2ggak7fgkc0s94nv4wup | 0xfe7bae2350d55ba9326c0a548476de4a2d87c0b5 | 1 | 2 | 1796.45267 | -| terp13ckjyycmzq3avu9ymudqwu05jr7u69zaxhz0zc | 0x8e2d22131b1023d670a4df1a0771f490fdcd145d | 1 | 2 | 1796.45267 | -| terp15duk7ne6z9l6lt52nyzvm50qtnk50rvv727rl2 | 0xa3796f4f3a117fafae8a9904cdd1e05ced478d8c | 1 | 2 | 1796.45267 | -| terp177cfa7g8gy97mttw85gesshndvmt7ry54m7yyn | 0xf7b09ef907410bedad6e3d119842f36b36bf0c94 | 1 | 2 | 1796.45267 | -| terp1y7lmp3yjy0w0jfelvgfdpt0s0et4tlmujulf5s | 0x27bfb0c49223dcf9273f6212d0adf07e5755ff7c | 1 | 2 | 1796.45267 | -| terp1c0fy3v45qtzdxuxy4kqy82sxeylz3m5vtywp27 | 0xc3d248b2b402c4d370c4ad8043aa06c93e28ee8c | 1 | 2 | 1796.45267 | -| terp1e5jjvdhxqeacm3f527r6atfuz8298emxhqlshd | 0xcd252636e6067b8dc5345787aead3c11d453e766 | 1 | 2 | 1796.45267 | -| terp1ywelwvg9pvpehkq2tenulr8gap60sdfetnl8cg | 0x23b3f731050b039bd80a5e67cf8ce8e874f83539 | 1 | 2 | 1796.45267 | -| terp134qxmjshr9r4g3rehht80wa8k3hx4gv5kv9qt3 | 0x8d406dca171947544479bdd677bba7b46e6aa194 | 1 | 2 | 1796.45267 | -| terp18d9ttk7zeq9td8xm57y9xrxlt6z4ch7nmal6sy | 0x3b4ab5dbc2c80ab69cdba788530cdf5e855c5fd3 | 1 | 2 | 1796.45267 | -| terp1zvhavd7fyc8n6aryn35etp65wwuahv99dztpxf | 0x132fd637c9260f3d74649c6995875473b9dbb0a5 | 1 | 2 | 1796.45267 | -| terp1js7wg8tmdenfc4f0j0zu2efkzvhpyfjs3lxp9r | 0x943ce41d7b6e669c552f93c5c56536132e122650 | 1 | 2 | 1796.45267 | -| terp1lqechs8rmgk4nwhvvm24qut2fafaffde9cj38f | 0xf8338bc0e3da2d59baec66d550716a4f53d4a5b9 | 1 | 2 | 1796.45267 | -| terp1ungc48qx4x2w4r693w09ygcn2pse83jq4ra4ac | 0xe4d18a9c06a994ea8f458b9e522313506193c640 | 1 | 2 | 1796.45267 | -| terp1qz6cwu9hge6sgtecz4pcsu3w4dm660uhyma934 | 0x00b58770b74675042f38154388722eab77ad3f97 | 1 | 2 | 1796.45267 | -| terp1j0hn7xeckm9sd8yx3atgx65gsh06h749vtugkc | 0x93ef3f1b38b6cb069c868f56836a8885dfabfaa5 | 1 | 2 | 1796.45267 | -| terp1e7qzlzwqmvaucapsp72tuaeqfzswnj2u35wp2j | 0xcf802f89c0db3bcc74300f94be772048a0e9c95c | 1 | 2 | 1796.45267 | -| terp1xg6kemumldlyga6lfw4pu3tahphjhvfwuta8pq | 0x32356cef9bfb7e44775f4baa1e457db86f2bb12e | 1 | 2 | 1796.45267 | -| terp1s0jm0lm2z9z84x8m63x7fh57m8nkk28dmj2r8q | 0x83e5b7ff6a11447a98fbd44de4de9ed9e76b28ed | 1 | 2 | 1796.45267 | -| terp17jsjjjquxxmvptmzrwd9jvpemzdds8y0e8q8af | 0xf4a129481c31b6c0af621b9a593039d89ad81c8f | 1 | 2 | 1796.45267 | -| terp103jxu2e5hdgwxucg3fq6ed8whfnexddnyr2kqz | 0x7c646e2b34bb50e373088a41acb4eeba679335b3 | 1 | 2 | 1796.45267 | -| terp1wymxqhhyvrrlqw5wng27f5ey3we80yqhx7hmaa | 0x7136605ee460c7f03a8e9a15e4d3248bb2779017 | 1 | 2 | 1796.45267 | -| terp1gpr3sp8ku3tf34pv4ql95kmyp37zct0lf0ml7h | 0x40471804f6e45698d42ca83e5a5b640c7c2c2dff | 1 | 2 | 1796.45267 | -| terp15mw6hajf09mzfrl2ettfvustl50ge54cqpvr7x | 0xa6ddabf6497976248feacad696720bfd1e8cd2b8 | 1 | 2 | 1796.45267 | -| terp18t8ngfevqy0wprju0z5q95cj2g8uruna4jr28x | 0x3acf34272c011ee08e5c78a802d312520fc1f27d | 1 | 2 | 1796.45267 | -| terp1argr4sn3lcsdkr3ww07pyegdj8durc33kg4uln | 0xe8d03ac271fe20db0e2e73fc12650d91dbc1e231 | 1 | 2 | 1796.45267 | -| terp1d6x6tqtsjqchqj55np9nfntyqqn9ejuw7kx2vu | 0x6e8da581709031704a94984b34cd6400265ccb8e | 1 | 2 | 1796.45267 | -| terp1jlt4xtrpy9yqqdejrmtr0dy90zv22lzjw8vlsc | 0x97d7532c6121480037321ed637b4857898a57c52 | 1 | 2 | 1796.45267 | -| terp1vrak6huherrgjltrd9nle0ntu9nu67epvm6ztn | 0x60fb6d5f97c8c6897d636967fcbe6be167cd7b21 | 1 | 2 | 1796.45267 | -| terp1nftqc08tkw5vpu5wlnzr7ngja9p0fmkhhpujay | 0x9a560c3cebb3a8c0f28efcc43f4d12e942f4eed7 | 1 | 2 | 1796.45267 | -| terp1w3fft9jwlyed2e278aggsv0w40wlh8m4wudcu6 | 0x745295964ef932d5655e3f508831eeabddfb9f75 | 1 | 2 | 1796.45267 | -| terp1qf9wudl5hvt578yhejrm33qun67fm3spqteftz | 0x024aee37f4bb174f1c97cc87b8c41c9ebc9dc601 | 1 | 2 | 1796.45267 | -| terp104e8x6kuqwnqrm2sc74kdt8dsqhhcfkta5qvpd | 0x7d72736adc03a601ed50c7ab66aced802f7c26cb | 1 | 2 | 1796.45267 | -| terp1v9hmn8cxlme7cdrw2t7qgmcn6mus68nw70fctq | 0x616fb99f06fef3ec346e52fc046f13d6f90d1e6e | 1 | 2 | 1796.45267 | -| terp1vk8a95ljwx7avjjva5dv5s5hu5gl0dqcq9j356 | 0x658fd2d3f271bdd64a4ced1aca4297e511f7b418 | 1 | 2 | 1796.45267 | -| terp1qcux85lnh7ys47ag7gctx00c86v7zgf7n0tmvm | 0x063863d3f3bf890afba8f230b33df83e99e1213e | 1 | 2 | 1796.45267 | -| terp1ugupjpvjuwymraxve7jy7smqufp0vx5mxfyx0j | 0xe238190592e389b1f4cccfa44f4360e242f61a9b | 1 | 2 | 1796.45267 | -| terp1xslwgjuhzstmx5wwr4824wnuf4wfk0fgcw9euy | 0x343ee44b971417b351ce1d4eaaba7c4d5c9b3d28 | 1 | 2 | 1796.45267 | -| terp10tqvtmk8sk5xtzjm2upvmxsjlgvaamqtrhldc2 | 0x7ac0c5eec785a8658a5b5702cd9a12fa19deec0b | 1 | 2 | 1796.45267 | -| terp1wnz8fsj5jvwjyjw6aa5z8r66j9cg3kw799j8xc | 0x74c474c254931d2249daef68238f5a917088d9de | 1 | 2 | 1796.45267 | -| terp19vqh68nvxlqjzyz6tkhj802zzhy7p0fvt8rfv4 | 0x2b017d1e6c37c121105a5daf23bd4215c9e0bd2c | 1 | 2 | 1796.45267 | -| terp1708z5xhrkmxvfscr3ya5slx8c4s68lr2kpytxe | 0xf3ce2a1ae3b6ccc4c303893b487cc7c561a3fc6a | 1 | 2 | 1796.45267 | -| terp1fh82j4cqpawt5722yphhszlmcp2f5zy0tdr7v5 | 0x4dcea957000f5cba794a206f780bfbc0549a088f | 1 | 2 | 1796.45267 | -| terp1cn3uxms35pl7nrmj2pvjrq9lm2vyn2scuw5sw8 | 0xc4e3c36e11a07fe98f7250592180bfda9849aa18 | 1 | 2 | 1796.45267 | -| terp1r0ljhpud3xrqh9jzw3wqjc2feglh2v679gh83d | 0x1bff2b878d89860b9642745c096149ca3f75335e | 1 | 2 | 1796.45267 | -| terp1n83s7ewpg885erv2gg7tvkn7j6rsa8zg9f9xs3 | 0x99e30f65c141cf4c8d8a423cb65a7e96870e9c48 | 1 | 2 | 1796.45267 | -| terp1nr0udfhlleu4jwnqmzj2d40qs4uh2pq9kxvq7n | 0x98dfc6a6fffe79593a60d8a4a6d5e08579750405 | 1 | 2 | 1796.45267 | -| terp17dqf7a6mjx8uhg5tuj0xhq45mwnmcq55lmxy9g | 0xf3409f775b918fcba28be49e6b82b4dba7bc0294 | 1 | 2 | 1796.45267 | -| terp12alzt7usrfdactsc20xpdy2xmlfw4llljvrfvg | 0x577e25fb901a5bdc2e1853cc169146dfd2eaffff | 1 | 2 | 1796.45267 | -| terp1u3zg5ey7x2vkcqmmm936s2s7tlvu9r6x2y54yn | 0xe4448a649e32996c037bd963a82a1e5fd9c28f46 | 1 | 2 | 1796.45267 | -| terp1auet4p6ex4m9w3tk3hetntrwpjz39kkvjymy0s | 0xef32ba875935765745768df2b9ac6e0c8512dacc | 1 | 2 | 1796.45267 | -| terp1fzz5dfnx4fg4zqw970fcm9h2pntuaqw4t9wf6s | 0x488546a666aa515101c5f3d38d96ea0cd7ce81d5 | 1 | 2 | 1796.45267 | -| terp1u0x289sd2pgrcm07lfanckapyumv5xsg8sg0xj | 0xe3cca3960d50503c6dfefa7b3c5ba12736ca1a08 | 1 | 2 | 1796.45267 | -| terp18q307ncw6xgn30kt8n4sy3t7tdtp28dyrrdtg6 | 0x3822ff4f0ed19138becb3ceb02457e5b56151da4 | 1 | 2 | 1796.45267 | -| terp1n0n47xsehxa939kv0wl55vz8ur00h7kt8rlsxz | 0x9be75f1a19b9ba5896cc7bbf4a3047e0defbfacb | 1 | 2 | 1796.45267 | -| terp16knvv8czussjmmpcduyuzectmvcqdy8f62flx0 | 0xd5a6c61f02e4212dec386f09c1670bdb300690e9 | 1 | 2 | 1796.45267 | -| terp1dcchlua40lgv5z7hfl02gzw6ckw9lv3h3zduuv | 0x6e317ff3b57fd0ca0bd74fdea409dac59c5fb237 | 1 | 2 | 1796.45267 | -| terp1nfej0ygqvezqw3y4y9gs64j5296jqprp9cpwkj | 0x9a73279100664407449521510d56545175200461 | 1 | 2 | 1796.45267 | -| terp163p3llt7euahf8eeucdqrsauc4z3f5xqhfhdl9 | 0xd4431ffd7ecf3b749f39e61a01c3bcc54514d0c0 | 1 | 2 | 1796.45267 | -| terp1nvk4we3xjw5zcg6xjglqwm7vejwwlt3zydazzm | 0x9b2d57662693a82c2346923e076fcccc9cefae22 | 1 | 2 | 1796.45267 | -| terp1c3l6gjyxafqfenx96tm88uf3dls89gyrw5d07v | 0xc47fa44886ea409cccc5d2f673f1316fe072a083 | 1 | 2 | 1796.45267 | -| terp1q0yj88u2ms3y09jd7rlh5axnj3xt54mzwu8jsl | 0x03c9239f8adc2247964df0ff7a74d3944cba5762 | 1 | 2 | 1796.45267 | -| terp16tnx36gsey2zfny587scdgvm2mkrvjf63axzpt | 0xd2e668e910c91424cc943fa186a19b56ec36493a | 1 | 2 | 1796.45267 | -| terp17fzukm8zmjvkast2wnzmm2kdh48u79hfklf8ju | 0xf245cb6ce2dc996ec16a74c5bdaacdbd4fcf16e9 | 1 | 2 | 1796.45267 | -| terp1eh9t8637pslg3zz5jkjhnqjn66xm9g4a9l73j7 | 0xcdcab3ea3e0c3e88885495a5798253d68db2a2bd | 1 | 2 | 1796.45267 | -| terp1zwfst7y2ycasuax643hvejuwg8wu9wnmx62329 | 0x139305f88a263b0e74daac6ecccb8e41ddc2ba7b | 1 | 2 | 1796.45267 | -| terp1888nsv06h6fpvs50zqqmvfnctsvergev5d5fp4 | 0x39cf3831fabe9216428f1001b626785c1991a32c | 1 | 2 | 1796.45267 | -| terp1utmmd4r359w5lg4kd3etnap95ajhgenxrtl70f | 0xe2f7b6d471a15d4fa2b66c72b9f425a765746666 | 1 | 2 | 1796.45267 | -| terp143mq609ffxe3xmf7n2myt60vjjarvj042ecua8 | 0xac760d3ca949b3136d3e9ab645e9ec94ba3649f5 | 1 | 2 | 1796.45267 | -| terp166ex07g6vtesalcpgycjmkpyrrxzn5nj2sy8ee | 0xd6b267f91a62f30eff0141312dd82418cc29d272 | 1 | 2 | 1796.45267 | -| terp1hj2eyvsyjlu8rc4ve0l2n3lzn035tq8z6xjsmz | 0xbc9592320497f871e2accbfea9c7e29be34580e2 | 1 | 2 | 1796.45267 | -| terp15p2huhzeetweqyudfmek7a2265mfzuezmd5llw | 0xa0557e5c59cadd90138d4ef36f754ad536917322 | 1 | 2 | 1796.45267 | -| terp1auhn887qdagtum9mm3r7jz6nstppr2awldk260 | 0xef2f339fc06f50be6cbbdc47e90b5382c211abae | 1 | 2 | 1796.45267 | -| terp10nfczw02pwujjdlqv89cv0a3kn5lrwjvw5wl7f | 0x7cd38139ea0bb92937e061cb863fb1b4e9f1ba4c | 1 | 2 | 1796.45267 | -| terp18aa85tm9y0hwqu7pj2d8u4cfp4ds4rzsnk3ltr | 0x3f7a7a2f6523eee073c1929a7e57090d5b0a8c50 | 1 | 2 | 1796.45267 | -| terp19n2j7pevp0dzgy8y3tqdv48fugdgxg2kdr9zuk | 0x2cd52f072c0bda2410e48ac0d654e9e21a832156 | 1 | 2 | 1796.45267 | -| terp10x4rfcy9t32rvh77zwhrexqnll52na6p0ed04n | 0x79aa34e0855c54365fde13ae3c9813ffe8a9f741 | 1 | 2 | 1796.45267 | -| terp1hh5n4dhumqg430e7rkjs6mf7hn2vx8fpk2l6nq | 0xbde93ab6fcd81158bf3e1da50d6d3ebcd4c31d21 | 1 | 2 | 1796.45267 | -| terp103jfcrslp3qtfc3gp4exrat3w29vlepcxmerkn | 0x7c649c0e1f0c40b4e2280d7261f571728acfe438 | 1 | 2 | 1796.45267 | -| terp1qlltq93ch5jhdsvrc2pf8khsfjfc7gs67xjduj | 0x07feb01638bd2576c183c28293daf04c938f221a | 1 | 2 | 1796.45267 | -| terp15zpqgx3wze8spmj5gn7vxazgjar7p2qt9h45r4 | 0xa082041a2e164f00ee5444fcc374489747e0a80b | 1 | 2 | 1796.45267 | -| terp1dgl635mhscqmzqm22jpqs0706pclfkm68fg6wp | 0x6a3fa8d3778601b1036a5482083fcfd071f4db7a | 1 | 2 | 1796.45267 | -| terp1820jg24t5yyx6dg2z62uk7ykzl9368ygktyhqm | 0x3a9f242aaba1086d350a1695cb789617cb1d1c88 | 1 | 2 | 1796.45267 | -| terp17dyx72kyal6v23j6333hcjjxa9ktk3p8sw2nmd | 0xf3486f2ac4eff4c5465a8c637c4a46e96cbb4427 | 1 | 2 | 1796.45267 | -| terp17exrwaj33cyvl7apt77ywxm0ujue0f6h42npja | 0xf64c3776518e08cffba15fbc471b6fe4b997a757 | 1 | 2 | 1796.45267 | -| terp1cznpkvpuprczpa0sla0daty800t2mnt2q9nf5g | 0xc0a61b303c08f020f5f0ff5edeac877bd6adcd6a | 1 | 2 | 1796.45267 | -| terp1hyt70hntrke30hsy693ga8vak28v3rgldk2juu | 0xb917e7de6b1db317de04d1628e9d9db28ec88d1f | 1 | 2 | 1796.45267 | -| terp1yevg9zefgtm9mwpgj0fvz7t4c27y6dedvzt73p | 0x2658828b2942f65db82893d2c17975c2bc4d372d | 1 | 2 | 1796.45267 | -| terp13863yw8prc7y9h30hmkfa8tqewl5lld7slsnxc | 0x89f51238e11e3c42de2fbeec9e9d60cbbf4ffdbe | 1 | 2 | 1796.45267 | -| terp136mwllzmwgr8yytxf0tyruj3tkh8nmye04s95a | 0x8eb6effc5b72067211664bd641f2515dae79ec99 | 1 | 2 | 1796.45267 | -| terp1wxmlp30svnw5y787k650wvhhze7l8mf852xwua | 0x71b7f0c5f064dd4278feb6a8f732f7167df3ed27 | 1 | 2 | 1796.45267 | -| terp1kaz7uykgtq4k8ujy4kp55asvqtrm5ttwqzwwsm | 0xb745ee12c8582b63f244ad834a760c02c7ba2d6e | 1 | 2 | 1796.45267 | -| terp1pjn58gch3c8n9w07zqtepk3783rlds24h03rgj | 0x0ca743a3178e0f32b9fe101790da3e3c47f6c155 | 1 | 2 | 1796.45267 | -| terp1mvgrvn8vu3yh5vpsvurt4zfxyeyk9t7jenmpad | 0xdb10364cece4497a30306706ba8926264962afd2 | 1 | 2 | 1796.45267 | -| terp1ed5hgqv85eq46dyhguxzagewvv752cz3tc487y | 0xcb69740187a6415d3497470c2ea32e633d456051 | 1 | 2 | 1796.45267 | -| terp1afcaaxn9scpu8805833s6slrdva7f0x200l3ux | 0xea71de9a658603c39df43c630d43e36b3be4bcca | 1 | 2 | 1796.45267 | -| terp1650ruhd8ynahde6flldyqy0wwyrj27upvz23r5 | 0xd51e3e5da724fb76e749ffda4011ee7107257b81 | 1 | 2 | 1796.45267 | -| terp16xmpjcvpt4dddy7nqgrdfnmh2l9emxxj9h76p4 | 0xd1b61961815d5ad693d30206d4cf7757cb9d98d2 | 1 | 2 | 1796.45267 | -| terp135nm75t3pxgefuqzzx85rgymc9gpvh82l6cd6g | 0x8d27bf5171099194f002118f41a09bc150165cea | 1 | 2 | 1796.45267 | -| terp1juyk9x8dum9lhswqafcccd8sa9aa4awq53wx9p | 0x97096298ede6cbfbc1c0ea718c34f0e97bdaf5c0 | 1 | 2 | 1796.45267 | -| terp1sp7fw2nrrqma8v88mfdxq95nlcq2wkf40sfta5 | 0x807c972a631837d3b0e7da5a601693fe00a75935 | 1 | 2 | 1796.45267 | -| terp1n2l7lcvjkew2x7t4wnsr4utskqhl22dae8pnrq | 0x9abfefe192b65ca3797574e03af170b02ff529bd | 1 | 2 | 1796.45267 | -| terp120cv2nmzgrl8j396zv8xlcmkced06jx0an2987 | 0x53f0c54f6240fe7944ba130e6fe376c65afd48cf | 1 | 2 | 1796.45267 | -| terp12h3cuwcrn0cdl3tvtrnhga6m63gt5cmdj0vyyp | 0x55e38e3b039bf0dfc56c58e774775bd450ba636d | 1 | 2 | 1796.45267 | -| terp1f4kxnlkumtyyuzgee5cjv78jlk825g3d7sknu7 | 0x4d6c69fedcdac84e0919cd312678f2fd8eaa222d | 1 | 2 | 1796.45267 | -| terp1m5n54u63eghc99z5s7g2x33d5p50dzqsy4zcpc | 0xdd274af351ca2f8294548790a3462da068f68810 | 1 | 2 | 1796.45267 | -| terp1zy4kadp5ezjf0maazm5cavxpkc3khl5vt84crw | 0x112b6eb434c8a497efbd16e98eb0c1b6236bfe8c | 1 | 2 | 1796.45267 | -| terp1vrrwc9cpz7cqyaq0cd5nuj04pw44mcj0z2zu5u | 0x60c6ec170117b002740fc3693e49f50bab5de24f | 1 | 2 | 1796.45267 | -| terp1zmd0qk938n3n4txh2kqwzmjtmtkugapcqtgvrc | 0x16daf058b13ce33aacd75580e16e4bdaedc47438 | 1 | 2 | 1796.45267 | -| terp1rukwtp0a6hwsysfngg42ynmr0lj3s8h2ecwfe0 | 0x1f2ce585fdd5dd024133422aa24f637fe5181eea | 1 | 2 | 1796.45267 | -| terp1ycgj6v0r57w8f5pfa4wddy5q38e0wr9mxhvkra | 0x26112d31e3a79c74d029ed5cd6928089f2f70cbb | 1 | 2 | 1796.45267 | -| terp177pvk0ne4hvlpnvgvxaa44h7nv8znmxrvtcsnh | 0xf782cb3e79add9f0cd8861bbdad6fe9b0e29ecc3 | 1 | 2 | 1796.45267 | -| terp1qvs9xmjzu60qephmxm3nfk99frwrf4xkhdks6m | 0x0320536e42e69e0c86fb36e334d8a548dc34d4d6 | 1 | 2 | 1796.45267 | -| terp1xt9r4fw40c0gmslz3xl5rgwas6zxzkx082cj6a | 0x32ca3aa5d57e1e8dc3e289bf41a1dd86846158cf | 1 | 2 | 1796.45267 | -| terp1sq6xl0jwdxjfcv5p3y0cargyynmruscsk5qn8s | 0x80346fbe4e69a49c3281891f8e8d0424f63e4310 | 1 | 2 | 1796.45267 | -| terp1ptmln5tpqjl0e9sy24k87v93ac0nvxcnsftnds | 0x0af7f9d16104befc9604556c7f30b1ee1f361b13 | 1 | 2 | 1796.45267 | -| terp1mutls6frye45akdh3ewzdkj4hxxda6z5qpqhuy | 0xdf17f86923266b4ed9b78e5c26da55b98cdee854 | 1 | 2 | 1796.45267 | -| terp1v6rqaleljdaqzmglhmuskzgfjkhdwngt4mdxcd | 0x66860eff3f937a016d1fbef90b090995aed74d0b | 1 | 2 | 1796.45267 | -| terp127h0kzuacqqj980wt28qfkp0mgaur964zdt05j | 0x57aefb0b9dc001229dee5a8e04d82fda3bc19755 | 1 | 2 | 1796.45267 | -| terp1revy036ujcwztmxcrl9wfweya4gz8k32r0n3d6 | 0x1e5847c75c961c25ecd81fcae4bb24ed5023da2a | 1 | 2 | 1796.45267 | -| terp1n83ghghr6dxmym8erdkt3nndd9yq9ntmdv8a5l | 0x99e28ba2e3d34db26cf91b6cb8ce6d694802cd7b | 1 | 2 | 1796.45267 | -| terp18ntwcjs49lv043qgynwjurg9gusjcay9827qqx | 0x3cd6ec4a152fd8fac40824dd2e0d0547212c7485 | 1 | 2 | 1796.45267 | -| terp1kggmdvqy4tcg0rcvpl7d5tkzk7desr5m2cq3jp | 0xb211b6b004aaf0878f0c0ffcda2ec2b79b980e9b | 1 | 2 | 1796.45267 | -| terp1xq08n3myc6y009xshw7gfnr6yarh4gqxv9lgcy | 0x301e79c764c688f794d0bbbc84cc7a27477aa006 | 1 | 2 | 1796.45267 | -| terp1gsgn7ud6rt37ukz3tcye0hcg43arvcma4j5nrr | 0x44113f71ba1ae3ee58515e0997df08ac7a36637d | 1 | 2 | 1796.45267 | -| terp15s3eevx7652ucd5tzkjw3a459tqq24c635y4a6 | 0xa4239cb0ded515cc368b15a4e8f6b42ac005571a | 1 | 2 | 1796.45267 | -| terp1yt0vjhmj70tmmq2rau37wpflt5hfhx70pdzayk | 0x22dec95f72f3d7bd8143ef23e7053f5d2e9b9bcf | 1 | 2 | 1796.45267 | -| terp15u0skwjcu5p2hfw0n5s4gsc6zfg8hy3qw8arpk | 0xa71f0b3a58e502aba5cf9d2154431a12507b9220 | 1 | 2 | 1796.45267 | -| terp1rnzaak3s8dkhsyhfne0lu8d2ujakrdjjc3k5pa | 0x1cc5deda303b6d7812e99e5ffe1daae4bb61b652 | 1 | 2 | 1796.45267 | -| terp1u4rtg0nllyf0aaldwhtfc8gnr9v47cyqkv65q4 | 0xe546b43e7ff912fef7ed75d69c1d1319595f6080 | 1 | 2 | 1796.45267 | -| terp1c9jucsdgfumpn5hp59dhvwy2t49v5h7zpz9dut | 0xc165cc41a84f3619d2e1a15b76388a5d4aca5fc2 | 1 | 2 | 1796.45267 | -| terp1egzef9dwk63v5w44mgxx46ar7k2ysc04saptym | 0xca059495aeb6a2ca3ab5da0c6aeba3f5944861f5 | 1 | 2 | 1796.45267 | -| terp13swxqcyp0fhp4slcludjmc5yc9tyzznrfsk94q | 0x8c1c6060817a6e1ac3f8ff1b2de284c156410a63 | 1 | 2 | 1796.45267 | -| terp1x7lp0leznaz3l4g3yeplmak98phx3hhzn77pwz | 0x37be17ff229f451fd5112643fdf6c5386e68dee2 | 1 | 2 | 1796.45267 | -| terp15e6wplhjszha5a3j9lpeqtnz0s4ha795xpv30n | 0xa674e0fef280afda76322fc3902e627c2b7ef8b4 | 1 | 2 | 1796.45267 | -| terp1xp0fpcnfnccv0fs36ktcpkl3lr60w2606vm6pe | 0x305e90e2699e30c7a611d59780dbf1f8f4f72b4f | 1 | 2 | 1796.45267 | -| terp1j7qdy5sjtnevymsw74pjwahzyuq4ql52gwv3f6 | 0x9780d252125cf2c26e0ef5432776e22701507e8a | 1 | 2 | 1796.45267 | -| terp1rqwx8fu2xvuwnnft4zqf7r5hvxp5u3amh3f3kx | 0x181c63a78a3338e9cd2ba8809f0e9761834e47bb | 1 | 2 | 1796.45267 | -| terp1l28dsltwjch3ynjyduv0rw2e94f6rhflmdznxt | 0xfa8ed87d6e962f124e446f18f1b9592d53a1dd3f | 1 | 2 | 1796.45267 | -| terp1wm5v3r2p77plclfkm3eex70jjw0lq5zv95cw3y | 0x76e8c88d41f783fc7d36dc739379f2939ff0504c | 1 | 2 | 1796.45267 | -| terp1xef04nsmckpagzuzydqfa9psukztms5x6zpaxc | 0x3652face1bc583d40b8223409e9430e584bdc286 | 1 | 2 | 1796.45267 | \ No newline at end of file diff --git a/eth/addresses/galaktic_holders.md b/eth/addresses/galaktic_holders.md deleted file mode 100644 index 432d6fe..0000000 --- a/eth/addresses/galaktic_holders.md +++ /dev/null @@ -1,2571 +0,0 @@ -# Galaktic Gang Address Conversion -| Terp Public Address | Ethereum Public Address | Tokens Held | Points | Airdrop Allocation | -|----------------------|--------------------------|---------------|-------------|--------------------| -| terp1k30z7xcc2nngw94pnzfzmnnrhptx6gfgdz78y0 | 0xb45e2f1b1854e68716a198922dce63b8566d2128 | 66 | 8 | 4246.713852 | -| terp1n86zgtnljhlusv23mpk0uldhscctmey78u6d4p | 0x99f4242e7f95ffc83151d86cfe7db78630bde49e | 53 | 8 | 4246.713852 | -| terp1qkx4t6dahhzzvdleltz0f7rdwqpdtn2vnljkls | 0x058d55e9bdbdc42637f9fac4f4f86d7002d5cd4c | 52 | 8 | 4246.713852 | -| terp1uqngjjfr9ghmjzvlx8av49ruztlm2nufy5s3fz | 0xe0268949232a2fb9099f31faca947c12ffb54f89 | 48 | 8 | 4246.713852 | -| terp1g430k3c0qgvcx9080n02uz5vdszrfftars9lxd | 0x4562fb470f02198315e77cdeae0a8c6c0434a57d | 44 | 8 | 4246.713852 | -| terp17lhxctuprdfvwthazeaphvl54k4purufchz79s | 0xf7ee6c2f811b52c72efd167a1bb3f4adaa1e0f89 | 36 | 8 | 4246.713852 | -| terp1m7jxeff8c5p0dmz9n4hunr0zq9amu3g3j0tfa4 | 0xdfa46ca527c502f6ec459d6fc98de2017bbe4511 | 34 | 8 | 4246.713852 | -| terp1g6slfsqr58904nlx83s0yx4cwj57zdc9hmrncw | 0x46a1f4c003a1cafacfe63c60f21ab874a9e13705 | 33 | 8 | 4246.713852 | -| terp1dgtqlv5kemrlsj0r0qtc8862y2wc8gsawup8ew | 0x6a160fb296cec7f849e37817839f4a229d83a21d | 27 | 8 | 4246.713852 | -| terp12tnjun3ppg49nx0zls73fsf5hzsa2hlg04jte0 | 0x52e72e4e210a2a5999e2fc3d14c134b8a1d55fe8 | 27 | 8 | 4246.713852 | -| terp1t0zpxj4na9za5tv9xe37393mfgxt8pf445w5w6 | 0x5bc4134ab3e945da2d853663e8963b4a0cb38535 | 23 | 8 | 4246.713852 | -| terp1p6s5y3q67r3kudqz7um6x4sn8ppsxhekms06r5 | 0x0ea142441af0e36e3402f737a356133843035f36 | 23 | 8 | 4246.713852 | -| terp1gee3w3rg49pcerpuu3dej4v8jrmg6qpdujatfj | 0x4673174468a9438c8c3ce45b99558790f68d002d | 23 | 8 | 4246.713852 | -| terp107xl0fwh96yw5fme3lmqf9vaydd2k5ys4z72xz | 0x7f8df7a5d72e88ea27798ff604959d235aab5090 | 22 | 8 | 4246.713852 | -| terp1ls533msdt3anklh4rdtk4pf7rkpj6jallvgekc | 0xfc2918ee0d5c7b3b7ef51b576a853e1d832d4bbf | 21 | 8 | 4246.713852 | -| terp1ml0v3zne0wy9tdqdlcsa9uc7q9qwdg0egxejgl | 0xdfdec88a797b8855b40dfe21d2f31e0140e6a1f9 | 20 | 8 | 4246.713852 | -| terp10q78y3n6924kczpm38zm3v0de7fe6yepcna8p6 | 0x783c72467a2aab6c083b89c5b8b1edcf939d1321 | 19 | 8 | 4246.713852 | -| terp18kkz9mf92xtpq3tvs36vsmjluvs266pg3ahr7z | 0x3dac22ed25519610456c8474c86e5fe320ad6828 | 18 | 8 | 4246.713852 | -| terp1mf7crutdst2zexrysgrlv2htgaueazcyuf3e6h | 0xda7d81f16d82d42c98648207f62aeb47799e8b04 | 18 | 8 | 4246.713852 | -| terp1q9w23qpr57dk9aewna8acp8w3yq98cpu96fukt | 0x015ca88023a79b62f72e9f4fdc04ee890053e03c | 18 | 8 | 4246.713852 | -| terp1pjr0u606ytlsre75x45523avvqdqvmd4scw2ce | 0x0c86fe69fa22ff01e7d435694547ac601a066db5 | 17 | 8 | 4246.713852 | -| terp1lgexj9rlsv9kq0hqk3zdn6zlvyg4vwr7n532m0 | 0xfa3269147f830b603ee0b444d9e85f611156387e | 17 | 8 | 4246.713852 | -| terp1tx9x5x6ky2rzxcjgatze8pdqpumg96xghmkxck | 0x598a6a1b562286236248eac59385a00f3682e8c8 | 17 | 8 | 4246.713852 | -| terp1hqj32t5lxj6v3cl3wgwkpnrk2qnhefzpzup4v3 | 0xb825152e9f34b4c8e3f1721d60cc7650277ca441 | 17 | 8 | 4246.713852 | -| terp1cvjtq73cdvuvy3puntamug8tj76hkln6ssg8wd | 0xc324b07a386b38c2443c9afbbe20eb97b57b7e7a | 17 | 8 | 4246.713852 | -| terp1kq3ln0xnn76fw3nmrzgkfzzzaxljqcncpgklyk | 0xb023f9bcd39fb497467b1891648842e9bf206278 | 15 | 8 | 4246.713852 | -| terp13ug62zzya2gjmpfxmzs4pm0t3m0hy90lhf5f48 | 0x8f11a50844ea912d8526d8a150edeb8edf7215ff | 15 | 8 | 4246.713852 | -| terp1nwc2q0ql86j5ndz4de06c4mru5fdpexa93xwe3 | 0x9bb0a03c1f3ea549b4556e5fac5763e512d0e4dd | 15 | 8 | 4246.713852 | -| terp1yxyhulhgn2qcnxrfyz5852uvtwk4qk3l4esft0 | 0x21897e7ee89a8189986920a87a2b8c5bad505a3f | 14 | 8 | 4246.713852 | -| terp1aagjh66kkk6jecrumfx94sjrmjw6yzzfw8ca3d | 0xef512beb56b5b52ce07cda4c5ac243dc9da20849 | 14 | 8 | 4246.713852 | -| terp1atdtau2uf8ek02y0sls3hk2t639q9wjl04cgem | 0xeadabef15c49f367a88f87e11bd94bd44a02ba5f | 14 | 8 | 4246.713852 | -| terp174jkl5mmr5ctjeyn432rycxxdexlgjc6kc2n9l | 0xf5656fd37b1d30b96493ac543260c66e4df44b1a | 14 | 8 | 4246.713852 | -| terp1h0tfsgx4l57lgtwaap8zdv48ygj77gdjx72hxj | 0xbbd69820d5fd3df42ddde84e26b2a72225ef21b2 | 13 | 8 | 4246.713852 | -| terp19zya0qswtsnhmtahyg75euqyplx0asa5egqn4a | 0x2889d7820e5c277dafb7223d4cf0040fccfec3b4 | 13 | 8 | 4246.713852 | -| terp1a2hqm8x6tt4eh2ty2z3nehsxvnnd3rrpd48jau | 0xeaae0d9cda5aeb9ba96450a33cde0664e6d88c61 | 12 | 8 | 4246.713852 | -| terp1ylq75akrjy633938t3clfngqkhqpg48jyhjuct | 0x27c1ea76c391351896275c71f4cd00b5c01454f2 | 11 | 8 | 4246.713852 | -| terp1yglxamu24wv233msrheswaclfcdf08fgha2dsf | 0x223e6eef8aab98a8c7701df307771f4e1a979d28 | 11 | 8 | 4246.713852 | -| terp1swxrj3pmf92mk9sg4uxj6he3vyel3d2uq8ydh6 | 0x838c39443b4955bb1608af0d2d5f316133f8b55c | 11 | 8 | 4246.713852 | -| terp1grthtqnnvkhy64xtcz9p58z0tp4jc8g2m4a9wu | 0x40d775827365ae4d54cbc08a1a1c4f586b2c1d0a | 11 | 8 | 4246.713852 | -| terp1e4g7rp8ywffpmde3eszksjeuahrjnrnpzh5wca | 0xcd51e184e472521db731cc05684b3cedc7298e61 | 10 | 8 | 4246.713852 | -| terp1hz00n3az898cs99hs5q2cxwjd06kgj7waq7080 | 0xb89ef9c7a2394f8814b78500ac19d26bf5644bce | 10 | 8 | 4246.713852 | -| terp1xaftnc0qz9yzw3jz6kd8w9cn8udr0gkpyfv2ml | 0x3752b9e1e01148274642d59a7717133f1a37a2c1 | 10 | 8 | 4246.713852 | -| terp13k3wkteyp9qqcyuhmm3ekaslkcpzcujpsa9na0 | 0x8da2eb2f2409400c1397dee39b761fb6022c7241 | 10 | 8 | 4246.713852 | -| terp13sw52tpnwphtatfnppqqah2wdg3u6nejzaq7kh | 0x8c1d452c33706ebead3308400edd4e6a23cd4f32 | 10 | 8 | 4246.713852 | -| terp14sjgudhff8ylhxw3gqp5hrt4mv265kcfkqzz9p | 0xac248e36e949c9fb99d140034b8d75db15aa5b09 | 10 | 8 | 4246.713852 | -| terp1l8ulxt70d3rmr4xwl2dn62aepk5juh2xe7zu7d | 0xf9f9f32fcf6c47b1d4cefa9b3d2bb90da92e5d46 | 10 | 8 | 4246.713852 | -| terp16mrgwf4q7x77hexktzevpysjdlwvwdum6cq3pv | 0xd6c68726a0f1bdebe4d658b2c092126fdcc7379b | 10 | 8 | 4246.713852 | -| terp1sgye06hf0fpqpcuc4gc8laasj7n3zfjw73dpsp | 0x820997eae97a4200e398aa307ff7b097a711264e | 10 | 8 | 4246.713852 | -| terp1kpuka08436vxjg6ptgddvljww56prks2aallc3 | 0xb0796ebcf58e986923415a1ad67e4e753411da0a | 10 | 8 | 4246.713852 | -| terp1079sg4u5r63dl2xcqmqq3y66rsxumulvnkuh4r | 0x7f8b0457941ea2dfa8d806c008935a1c0dcdf3ec | 10 | 8 | 4246.713852 | -| terp15hldhfypuwpk46ldphru5tcc89yvftxuyuax9g | 0xa5fedba481e3836aebed0dc7ca2f183948c4acdc | 10 | 8 | 4246.713852 | -| terp1uxfc8gfcjagmcv05kfwme9pfa9fhfxsth5pyp5 | 0xe19383a1389751bc31f4b25dbc9429e953749a0b | 10 | 8 | 4246.713852 | -| terp1nvxsac3056zcm5nerpvp8xhgs45x0y70pwjazj | 0x9b0d0ee22fa6858dd2791858139ae885686793cf | 10 | 8 | 4246.713852 | -| terp10fs2zsdh8zfgp2tgqer68v3kjz3tnw90rsv9a4 | 0x7a60a141b7389280a9680647a3b23690a2b9b8af | 10 | 8 | 4246.713852 | -| terp1fhnpq9k0vjzj9qzgrqpe27tyy3fznxcytcrl9g | 0x4de61016cf648522804818039579642452299b04 | 10 | 8 | 4246.713852 | -| terp1j3qdhddz7y2d8uzftr6yx76nr6szttm7td3wht | 0x9440dbb5a2f114d3f04958f4437b531ea025af7e | 10 | 8 | 4246.713852 | -| terp15vfjy3rzvr6cxwzrt023nuaqpgx3tqy38wjdsl | 0xa31322446260f58338435bd519f3a00a0d158091 | 10 | 8 | 4246.713852 | -| terp1nxcu2ejj9wf63r9h62p27frukn6a6vh7yucmqz | 0x99b1c566522b93a88cb7d282af247cb4f5dd32fe | 10 | 8 | 4246.713852 | -| terp1p242cdv098989y8hseg6axcg9pd4u9k56e8yq9 | 0x0aaaac358f29ca7290f78651ae9b08285b5e16d4 | 10 | 8 | 4246.713852 | -| terp1eq7pcrkxg8z4k2n5j6xkd59yjd5sypdq7224gr | 0xc83c1c0ec641c55b2a74968d66d0a493690205a0 | 9 | 8 | 4246.713852 | -| terp1vg4j46e8t953p7gdfe3y3aukmwk3ljv7xysv39 | 0x622b2aeb27596910f90d4e6248f796dbad1fc99e | 9 | 8 | 4246.713852 | -| terp1xmss77a5dflg4yqqug9vd0wzqusazhc6c8f277 | 0x36e10f7bb46a7e8a9000e20ac6bdc20721d15f1a | 9 | 8 | 4246.713852 | -| terp1ag4djgtpusafdc7ara83xd6c7vvmnj0qxeedeq | 0xea2ad92161e43a96e3dd1f4f133758f319b9c9e0 | 9 | 8 | 4246.713852 | -| terp1rt8u0qvttvpr98uksr8x72nvxw28hpqatwltat | 0x1acfc7818b5b02329f9680ce6f2a6c33947b841d | 9 | 8 | 4246.713852 | -| terp1scs0semvv8wujxl577vpm5qd6zg9qsh8cp6vzj | 0x8620f8676c61ddc91bf4f7981dd00dd0905042e7 | 9 | 8 | 4246.713852 | -| terp1urjttakfsgrle0rkz3mdu2y9j4quss4hezu56d | 0xe0e4b5f6c98207fcbc761476de28859541c842b7 | 9 | 8 | 4246.713852 | -| terp198ust0g4j028zsrlq73tm0zuly59tz5wrqqdc6 | 0x29f905bd1593d471407f07a2bdbc5cf928558a8e | 9 | 8 | 4246.713852 | -| terp1fqk8gxc8z93y686x9etwuhv0wak4juxuup9dcz | 0x482c741b0711624d1f462e56ee5d8f776d5970dc | 9 | 8 | 4246.713852 | -| terp1uvmtsklcez28n6lsamwzsxdq4w7khn3khg8pv8 | 0xe336b85bf8c89479ebf0eedc2819a0abbd6bce36 | 9 | 8 | 4246.713852 | -| terp1spslafj3d0y87vsemjayvjsm2qmcas7u9hd44z | 0x8061fea6516bc87f3219dcba464a1b50378ec3dc | 9 | 8 | 4246.713852 | -| terp138fjk4vnkc6fsk8jfzt9jf47nr4v7cslyxkl7l | 0x89d32b5593b6349858f248965926be98eacf621f | 9 | 8 | 4246.713852 | -| terp1q7ndtr9v3kv27fjssc6czh8pu4j933dz2yesj5 | 0x07a6d58cac8d98af26508635815ce1e56458c5a2 | 9 | 8 | 4246.713852 | -| terp1ya7tjuueu6dklwv7plvnez98evdx6ngk8sdtas | 0x277cb97399e69b6fb99e0fd93c88a7cb1a6d4d16 | 9 | 8 | 4246.713852 | -| terp170wzxhlhqfww7v08d3ju07n328engwr5nlavz7 | 0xf3dc235ff7025cef31e76c65c7fa7151f3343874 | 9 | 8 | 4246.713852 | -| terp15m54p2nsaw40n95x5hv44l52e294udfmshde9y | 0xa6e950aa70ebaaf99686a5d95afe8aca8b5e353b | 9 | 8 | 4246.713852 | -| terp1rhu6t2h3a6cma3z2amaxvl7qf4dd9678xmh6an | 0x1df9a5aaf1eeb1bec44aeefa667fc04d5ad2ebc7 | 9 | 8 | 4246.713852 | -| terp12ekazp77nptum7s3h73xe28kzz7ypg9w8mz0y5 | 0x566dd107de9857cdfa11bfa26ca8f610bc40a0ae | 9 | 8 | 4246.713852 | -| terp1gtelw6a9yqkh5nzgl4pgk4sncetk3x7vjfx2dp | 0x42f3f76ba5202d7a4c48fd428b5613c657689bcc | 9 | 8 | 4246.713852 | -| terp15289sm3yumtc6p0gygvgmhq33tp0kq6tgda5gu | 0xa28e586e24e6d78d05e822188ddc118ac2fb034b | 9 | 8 | 4246.713852 | -| terp1cn572vgdjz6uc7pwjq9nz67rkk27nshswxw8r3 | 0xc4e9e5310d90b5cc782e900b316bc3b595e9c2f0 | 9 | 8 | 4246.713852 | -| terp1rpuelps0ntdjdcrk6kqkqvph77f59cxq2z7j00 | 0x18799f860f9adb26e076d581603037f79342e0c0 | 9 | 8 | 4246.713852 | -| terp17k52c9xqpmywzs3hqpt5nf532n0hgvsrr7wj8n | 0xf5a8ac14c00ec8e14237005749a69154df743203 | 9 | 8 | 4246.713852 | -| terp1wpehudgqst94qs5vpmghnzxvjpp50ul68tpg6r | 0x70737e350082cb50428c0ed17988cc904347f3fa | 8 | 8 | 4246.713852 | -| terp1j8sdyvkpfj66dqxv4d33x33fal4jdnee0a4ged | 0x91e0d232c14cb5a680ccab63134629efeb26cf39 | 8 | 8 | 4246.713852 | -| terp1u5yv55p2kl8v2x40slrw2ygexkyy62a3t20paw | 0xe508ca502ab7cec51aaf87c6e5111935884d2bb1 | 8 | 8 | 4246.713852 | -| terp18mulzy3x7fxj8840v0q59a8jztkdx7cy6383za | 0x3ef9f11226f24d239eaf63c142f4f212ecd37b04 | 8 | 8 | 4246.713852 | -| terp195tug3ev8qpf4un6p6n4ksvxza08gd4ycqhhs3 | 0x2d17c4472c38029af27a0ea75b4186175e7436a4 | 8 | 8 | 4246.713852 | -| terp1wqjdcsuwukd8kt75q6cnwg044wcwgg7m4e2ypa | 0x7024dc438ee59a7b2fd406b13721f5abb0e423db | 8 | 8 | 4246.713852 | -| terp1tkmqmzr4t6ahp5zsw0ttg8c035qj9q36kx090y | 0x5db60d88755ebb70d05073d6b41f0f8d0122823a | 8 | 8 | 4246.713852 | -| terp14afms98pdgwk3ecycs0kagnmrjh6dc7hqpwa33 | 0xaf53b814e16a1d68e704c41f6ea27b1cafa6e3d7 | 8 | 8 | 4246.713852 | -| terp1f4edgf56k35kyufu5xw2hqtp4pmgfgtrd8kl73 | 0x4d72d4269ab46962713ca19cab8161a87684a163 | 8 | 8 | 4246.713852 | -| terp17feeauz4vffkwueh99w2fxn6z9ye7qw3mwv4yt | 0xf2739ef0556253677337295ca49a7a11499f01d1 | 8 | 8 | 4246.713852 | -| terp1957867p8l33xj5v6ynn0tmdatze24kanwftn54 | 0x2d3c7d7827fc6269519a24e6f5edbd58b2aadbb3 | 8 | 8 | 4246.713852 | -| terp1x850v3d7qavyc0rzdyp9366w5y0xew2ms5lef7 | 0x31e8f645be07584c3c62690258eb4ea11e6cb95b | 7 | 8 | 4246.713852 | -| terp1ch8f5afymuvh2cxvqjn5lm7m8l4swhrgh46ns7 | 0xc5ce9a7524df197560cc04a74fefdb3feb075c68 | 7 | 8 | 4246.713852 | -| terp1a7jmycqdhggtq0v7d9n4stwjf0czrylulur20l | 0xefa5b2600dba10b03d9e6967582dd24bf02193fc | 7 | 8 | 4246.713852 | -| terp1wv9jc3cf7wr698t33f6wewtnl3eu9yrsge2u5n | 0x730b2c4709f387a29d718a74ecb973fc73c29070 | 7 | 8 | 4246.713852 | -| terp18l3t6gc530dgvjp38zvmfx687ltumamyswcdc2 | 0x3fe2bd23148bda8648313899b49b47f7d7cdf764 | 7 | 8 | 4246.713852 | -| terp1khe503d4e2gyvapxgr225fkvuq4x7d2ay9mgk6 | 0xb5f347c5b5ca9046742640d4aa26cce02a6f355d | 7 | 8 | 4246.713852 | -| terp1gltau82jeyj3dag6kkcq7247kr4mme5j3et0qj | 0x47d7de1d52c92516f51ab5b00f2abeb0ebbde692 | 7 | 8 | 4246.713852 | -| terp1ggua0zw3g7w8crggt5vxf27lmz60ur4pkzgct2 | 0x4239d789d1479c7c0d085d1864abdfd8b4fe0ea1 | 7 | 8 | 4246.713852 | -| terp1zvfu6kz85gjk6ulzjr3rlnucxcgs6ah4kt0c4h | 0x1313cd5847a2256d73e290e23fcf9836110d76f5 | 7 | 8 | 4246.713852 | -| terp1rxltunvvgekhth3qa0hvwfhjwn0zvns270ugm7 | 0x19bebe4d8c466d75de20ebeec726f274de264e0a | 7 | 8 | 4246.713852 | -| terp1jx759hyw4ec02pm4rwtcurp25dyanl3j6k4ryz | 0x91bd42dc8eae70f507751b978e0c2aa349d9fe32 | 7 | 8 | 4246.713852 | -| terp1ww44aw775dxvmkdg0wj39vlw2jsxre8e27upee | 0x73ab5ebbdea34ccdd9a87ba512b3ee54a061e4f9 | 7 | 8 | 4246.713852 | -| terp1v4txvvdvr4t6cututmka2ckz03dge8t0kvue0z | 0x65566631ac1d57ac717c5eedd562c27c5a8c9d6f | 7 | 8 | 4246.713852 | -| terp1xlu3exnapwle88thuv6yr6l078tpsas4lx27uh | 0x37f91c9a7d0bbf939d77e33441ebeff1d6187615 | 7 | 8 | 4246.713852 | -| terp1m0hs6sqc33hx33zre4whrckhwdc3nker5ah64n | 0xdbef0d40188c6e68c443cd5d71e2d7737119db23 | 7 | 8 | 4246.713852 | -| terp1rpr0pqqpt26nc7sk4drrkhn244smp26afdwdy3 | 0x1846f080015ab53c7a16ab463b5e6aad61b0ab5d | 7 | 8 | 4246.713852 | -| terp1ksc6y946q9dputd4hvllase45fedjzevww5qd7 | 0xb431a216ba015a1e2db5bb3ffec335a272d90b2c | 7 | 8 | 4246.713852 | -| terp1t4auex5fwaff8lnsa6nkj43xq2jg5y4k848ajn | 0x5d7bcc9a89775293fe70eea769562602a48a12b6 | 7 | 8 | 4246.713852 | -| terp1v8dyvz26wpsmm5kyk4qph4f7tr343qqja5r72z | 0x61da46095a7061bdd2c4b5401bd53e58e3588012 | 7 | 8 | 4246.713852 | -| terp12upltkqa5xtastvmeyxp2hsx2m7dfdehj8pd9a | 0x5703f5d81da197d82d9bc90c155e0656fcd4b737 | 7 | 8 | 4246.713852 | -| terp1pas8uvt7dc2nfcxxawjxyr9yhn9ayr99wa38te | 0x0f607e317e6e1534e0c6eba4620ca4bccbd20ca5 | 7 | 8 | 4246.713852 | -| terp1esxsk5uutsy0fjs3hv2uk7t43gp54su0p42klx | 0xcc0d0b539c5c08f4ca11bb15cb79758a034ac38f | 7 | 8 | 4246.713852 | -| terp1rxf96vh2wd77g3tzk6m0dkh0nvjh6h4j9zw3zv | 0x19925d32ea737de44562b6b6f6daef9b257d5eb2 | 7 | 8 | 4246.713852 | -| terp1cvcwn8qkgg9ddy8u9jj8lasg5ujpp23rq62fkl | 0xc330e99c16420ad690fc2ca47ff608a72410aa23 | 7 | 8 | 4246.713852 | -| terp1vx7jpn96rq3p8cjzywca82d56r04e6jx4hj0jt | 0x61bd20ccba182213e24223b1d3a9b4d0df5cea46 | 7 | 8 | 4246.713852 | -| terp13jgwh3svwypchyvz0ck434nhn340nqqs6alauc | 0x8c90ebc60c71038b91827e2d58d6779c6af98010 | 7 | 8 | 4246.713852 | -| terp1jymy29knetgku9nxycwmmweeezqah60w2637cr | 0x91364516d3cad16e1666261dbdbb39c881dbe9ee | 7 | 8 | 4246.713852 | -| terp18cnk8pgcmwty5udqjuwp7k78he4kmdm78l8rex | 0x3e27638518db964a71a0971c1f5bc7be6b6db77e | 7 | 8 | 4246.713852 | -| terp1fw27sgrhegh8wxhqy8vkvzyzc86zrc5mueaxwm | 0x4b95e82077ca2e771ae021d9660882c1f421e29b | 6 | 8 | 4246.713852 | -| terp1chxnx8qfrysfekvtc3ajp7ccacx5natzelqdes | 0xc5cd331c0919209cd98bc47b20fb18ee0d49f562 | 6 | 8 | 4246.713852 | -| terp15adll2sxxjtzxx26dexz73heus4p5v6rn235wt | 0xa75bffaa06349623195a6e4c2f46f9e42a1a3343 | 6 | 8 | 4246.713852 | -| terp1c3km9kynyl2vg84cr3p76h3alug3lx50ce9klq | 0xc46db2d89327d4c41eb81c43ed5e3dff111f9a8f | 6 | 8 | 4246.713852 | -| terp19pvvuky4j2lrm0zwvhn98kssku7hcshjk22yvv | 0x2858ce589592be3dbc4e65e653da10b73d7c42f2 | 6 | 8 | 4246.713852 | -| terp1k5nhslpkdaa5atm2rjdz98jjqcwaayy5wk5r9s | 0xb527787c366f7b4eaf6a1c9a229e52061dde9094 | 6 | 8 | 4246.713852 | -| terp1094makmk7p74rehf7stw52ytwqdgq79k2k984g | 0x796bbedb76f07d51e6e9f416ea288b701a8078b6 | 6 | 8 | 4246.713852 | -| terp176afupljw9gv47kg2gnz08ewxt3xl4rhv7lyjc | 0xf6ba9e07f27150cafac85226279f2e32e26fd477 | 6 | 8 | 4246.713852 | -| terp1nvp9yyyw3z7gyszvnr84evpw32pxwzptsldtu8 | 0x9b0252108e88bc82404c98cf5cb02e8a8267082b | 6 | 8 | 4246.713852 | -| terp1rv0s2m3xmxmmczw6e6knnvhfqtcnq9ggcgx0al | 0x1b1f056e26d9b7bc09dacead39b2e902f1301508 | 6 | 8 | 4246.713852 | -| terp1e4cmad6w4tahk8zywlfmueu3gcnrfqd7utq764 | 0xcd71beb74eaafb7b1c4477d3be679146263481be | 6 | 8 | 4246.713852 | -| terp10akrnjq58zns4rywvfqs9psactacjql6qcpjy9 | 0x7f6c39c81438a70a8c8e624102861dc2fb8903fa | 6 | 8 | 4246.713852 | -| terp1a28d40d6y8ckmv85n633s0jvrvtnkm7u5ctck4 | 0xea8edabdba21f16db0f49ea3183e4c1b173b6fdc | 6 | 8 | 4246.713852 | -| terp1e0mygwjg60jkjm07hexfz6l2yyd0xs4596nyxt | 0xcbf6443a48d3e5696dfebe4c916bea211af342b4 | 6 | 8 | 4246.713852 | -| terp1n5vlm0r02aswwte3k8flcvnn8dgv3yyqufrew5 | 0x9d19fdbc6f5760e72f31b1d3fc32733b50c89080 | 6 | 8 | 4246.713852 | -| terp1r3c272uxma4sq3ny8sce8kud5xkpu5y2udrgtv | 0x1c70af2b86df6b0046643c3193db8da1ac1e508a | 6 | 8 | 4246.713852 | -| terp1lny7u2439yd9vdw4adl77j4eatxzpkhnw7zaff | 0xfcc9ee2ab1291a5635d5eb7fef4ab9eacc20daf3 | 6 | 8 | 4246.713852 | -| terp1xfsxcj4ft6nc6lzmrc8rgl37ntj9zs6w6hggq9 | 0x32606c4aa95ea78d7c5b1e0e347e3e9ae451434e | 6 | 8 | 4246.713852 | -| terp13efh24j48pavdf78l0f8trxrwr637m58u96hsm | 0x8e53755655387ac6a7c7fbd2758cc370f51f6e87 | 6 | 8 | 4246.713852 | -| terp15qpjrg0x6cuqv3rlw5ku6kt4w4347xqlpgagn0 | 0xa00321a1e6d63806447f752dcd597575635f181f | 6 | 8 | 4246.713852 | -| terp1yrrvjzpehduwz77h43nhxj6pdhlkxvjk7n6khq | 0x20c6c90839bb78e17bd7ac67734b416dff633256 | 6 | 8 | 4246.713852 | -| terp1474797e2wr33g39g9eh67sax04dut499ptv0c6 | 0xafabe2fb2a70e31444a82e6faf43a67d5bc5d4a5 | 6 | 8 | 4246.713852 | -| terp1nfpdz8r9ggruw2dpgv0z8hxxwcgk2xk0w95j0j | 0x9a42d11c654207c729a1431e23dcc67611651acf | 6 | 8 | 4246.713852 | -| terp1kwu88dzmqqk3j9y6e4569klpnt4hmc906d53xx | 0xb3b873b45b002d19149acd69a2dbe19aeb7de0af | 6 | 8 | 4246.713852 | -| terp19r57kqym4zt5phdt8465tuja8lhuwujzuxveuz | 0x28e9eb009ba89740ddab3d7545f25d3fefc77242 | 6 | 8 | 4246.713852 | -| terp1j48ds66uxpxhhfmqsq4hpuxcql6235lhtlwx9n | 0x954ed86b5c304d7ba760802b70f0d807f4a8d3f7 | 6 | 8 | 4246.713852 | -| terp1d55cq0p2ehwxhxcl739jyfhl6uyp05nkfp7lfd | 0x6d29803c2acddc6b9b1ff44b2226ffd70817d276 | 6 | 8 | 4246.713852 | -| terp1ec4z9d949lqcus6resr4a87cumzrs2r0cmwcxn | 0xce2a22b4b52fc18e4343cc075e9fd8e6c438286f | 5 | 8 | 4246.713852 | -| terp194mdzs0ts3twux85nayzsl7ax4ck93d2dvrtwe | 0x2d76d141eb8456ee18f49f48287fdd357162c5aa | 5 | 8 | 4246.713852 | -| terp1ku2e725rsryvsjnxvjgkkkd3tzr8pehvpvv5lj | 0xb7159f2a8380c8c84a6664916b59b1588670e6ec | 5 | 8 | 4246.713852 | -| terp1l7msqzayfj7krxlq2fcndd8aqqkv655je35e7v | 0xffb7000ba44cbd619be0527136b4fd002ccd5292 | 5 | 8 | 4246.713852 | -| terp17llqynuvgp5lgqp78azjawmd5p8muetv39pt38 | 0xf7fe024f8c4069f4003e3f452ebb6da04fbe656c | 5 | 8 | 4246.713852 | -| terp1q3m5vvcj2k9mls6ryw3nhkpccfugnr96mk2nh3 | 0x0477463312558bbfc34323a33bd838c278898cba | 5 | 8 | 4246.713852 | -| terp1hkx8jaqt7cjl2p2ws63vunnns7fc97frk5wqft | 0xbd8c79740bf625f5054e86a2ce4e73879382f923 | 5 | 8 | 4246.713852 | -| terp16y393gv3druns04thc7j5cwa509spzx5t59vzz | 0xd12258a19168f9383eabbe3d2a61dda3cb0088d4 | 5 | 8 | 4246.713852 | -| terp1py4c5455d7vn39hnqrnrq25ycp9cuaupdc00l2 | 0x092b8a56946f993896f300e6302a84c04b8e7781 | 5 | 8 | 4246.713852 | -| terp17ldrtdxqrj3n34zdhgag3dgdvsk7pucevy5629 | 0xf7da35b4c01ca338d44dba3a88b50d642de0f319 | 5 | 8 | 4246.713852 | -| terp1r8p6v589r8dx6rrtj4jmy5m7489600njnqejl6 | 0x19c3a650e519da6d0c6b9565b2537ea9cba7be72 | 5 | 8 | 4246.713852 | -| terp1h4g0hp4usu946a4nky8tm80h0t3y0csu4vd4kl | 0xbd50fb86bc870b5d76b3b10ebd9df77ae247e21c | 5 | 8 | 4246.713852 | -| terp1x8kxrs8azmfu0gz8nmkmjqxj3xzxqut0xc93kt | 0x31ec61c0fd16d3c7a0479eedb900d2898460716f | 5 | 8 | 4246.713852 | -| terp1famy5zxxvfg7zw7ask6tkpjjkuuhxcegg3epxn | 0x4f764a08c66251e13bdd85b4bb0652b739736328 | 5 | 8 | 4246.713852 | -| terp16ayj4ejxevwdrdtl2lakmjyygevxkyvxlm9wd8 | 0xd7492ae646cb1cd1b57f57fb6dc88446586b1186 | 5 | 8 | 4246.713852 | -| terp1960vsjl8juq7yd2kyn03t6evwmqy5cm0caysr0 | 0x2e9ec84be79701e2355624df15eb2c76c04a636f | 5 | 8 | 4246.713852 | -| terp10yqrqkp4haecfkmkryx46wcthgeajl7qk54982 | 0x7900305835bf7384db76190d5d3b0bba33d97fc0 | 5 | 8 | 4246.713852 | -| terp169u9zdks7py6qd75cms5sdhvjtu2mc5akzfzd4 | 0xd1785136d0f049a037d4c6e14836ec92f8ade29d | 5 | 8 | 4246.713852 | -| terp1tnjhff68ew9xau2rz883n6ezlgx9sgntr0r5wu | 0x5ce574a747cb8a6ef14311cf19eb22fa0c58226b | 5 | 8 | 4246.713852 | -| terp1f866erdvuy7ht0cgu4ck3k9m6ntahsxxygqqmv | 0x49f5ac8dace13d75bf08e57168d8bbd4d7dbc0c6 | 5 | 8 | 4246.713852 | -| terp1ttstvgk3sjg7f5fpkay3m7u3qylfyz8ugc4l8e | 0x5ae0b622d18491e4d121b7491dfb91013e9208fc | 5 | 8 | 4246.713852 | -| terp1t9gsc8z6twwmwlph245j9ydcj2lngtg7nv7t09 | 0x59510c1c5a5b9db77c3755692291b892bf342d1e | 5 | 8 | 4246.713852 | -| terp1j05gds07zf38hvpvzy0f22dxdx97wtty5vmjfm | 0x93e886c1fe12627bb02c111e9529a6698be72d64 | 5 | 8 | 4246.713852 | -| terp14payyxmgxzuj6fl2kv3m8g4254c7t38lpxtwep | 0xa87a421b6830b92d27eab323b3a2aaa571e5c4ff | 5 | 8 | 4246.713852 | -| terp123hjxecnl7a8tjq7hu728k880muphcf9fda8mq | 0x546f236713ffba75c81ebf3ca3d8e77ef81be125 | 5 | 8 | 4246.713852 | -| terp1n9l5a399ezxmgumtjhrf9unatq30rx8x5nvaw8 | 0x997f4ec4a5c88db4736b95c692f27d5822f198e6 | 5 | 8 | 4246.713852 | -| terp1fc9d9hv54e6y0gjwsfxyvpsah6vruzslgjmqw9 | 0x4e0ad2dd94ae7447a24e824c46061dbe983e0a1f | 5 | 8 | 4246.713852 | -| terp1yurne5xhp8vfcwg6l9m8t9wer3uw6sa8xemsc4 | 0x27073cd0d709d89c391af9767595d91c78ed43a7 | 5 | 8 | 4246.713852 | -| terp172ytfqzs5schjsdkn3xhw93x87a7gfjaxwpu7s | 0xf288b48050a4317941b69c4d7716263fbbe4265d | 5 | 8 | 4246.713852 | -| terp12s5ftt6wc5xd9fjevjxejx9kphsdecquwtjh5m | 0x542895af4ec50cd2a659648d9918b60de0dce01c | 5 | 8 | 4246.713852 | -| terp1lz6tjv3stuvk7dxk8ng96umk5fv0yfnxu8x733 | 0xf8b4b932305f196f34d63cd05d7376a258f22666 | 5 | 8 | 4246.713852 | -| terp1999wf3qq0vappxcs3mgpxdjg5u7nhzcu4ruvfn | 0x294ae4c4007b3a109b108ed0133648a73d3b8b1c | 5 | 8 | 4246.713852 | -| terp18sq50zgt3r37s76zmm4nlrtyd3gturd49ta9jy | 0x3c0147890b88e3e87b42deeb3f8d646c50be0db5 | 5 | 8 | 4246.713852 | -| terp1xwar4fhtlxu0dy2z7cj35e5pnzvlgm9nlhzjt3 | 0x33ba3aa6ebf9b8f69142f6251a66819899f46cb3 | 5 | 8 | 4246.713852 | -| terp1rm8qnwfkjgk2njvx2apnw3xussgl8fyh3q8sng | 0x1ece09b936922ca9c98657433744dc8411f3a497 | 5 | 8 | 4246.713852 | -| terp1qrzr903393ejdwvrcxtkp5rmca4eh350xlm4nx | 0x00c432be312c7326b983c19760d07bc76b9bc68f | 5 | 8 | 4246.713852 | -| terp14a7p7ha02w6cuvea9zhnk4yzw0znf4kadqkllm | 0xaf7c1f5faf53b58e333d28af3b548273c534d6dd | 5 | 8 | 4246.713852 | -| terp1da5thc8kvz27yrtvn0g7wr3g2hdhm2wqzfhs2j | 0x6f68bbe0f66095e20d6c9bd1e70e2855db7da9c0 | 5 | 8 | 4246.713852 | -| terp17p0gulefnvhrcyhx98fpgv60kcakcwykk9aypr | 0xf05e8e7f299b2e3c12e629d214334fb63b6c3896 | 5 | 8 | 4246.713852 | -| terp1senmd6l7hplxjat3su8ctgrt07u3g6lf9stflq | 0x8667b6ebfeb87e697571870f85a06b7fb9146be9 | 5 | 8 | 4246.713852 | -| terp1zpaaqtwt00mekeu7r5xwtc4cw88drk63kmy095 | 0x107bd02dcb7bf79b679e1d0ce5e2b871ced1db51 | 5 | 8 | 4246.713852 | -| terp1w82wg586ygqf4c0qndlfrw43ud23ms0vw5060s | 0x71d4e450fa22009ae1e09b7e91bab1e3551dc1ec | 5 | 8 | 4246.713852 | -| terp12jydnzquh0uyac998jv8f34s5mn8tz3gvp9xe3 | 0x5488d9881cbbf84ee0a53c9874c6b0a6e6758a28 | 5 | 8 | 4246.713852 | -| terp1awzqxdnyg0lsa33vj0kc3jcjlvqaf0nkt5fh2d | 0xeb8403366443ff0ec62c93ed88cb12fb01d4be76 | 5 | 8 | 4246.713852 | -| terp13dswfs8hpzwj5059kcfjy94azs3njuls2nztzj | 0x8b60e4c0f7089d2a3e85b6132216bd14233973f0 | 5 | 8 | 4246.713852 | -| terp1ha6xhhrmwwrdnzwwy4ygf4gyvhh6e27n2v6prq | 0xbf746bdc7b7386d989ce254884d50465efacabd3 | 5 | 8 | 4246.713852 | -| terp1rzetfhpfls3y9zr5wr865je6rtwyxlv0vngg3m | 0x18b2b4dc29fc2242887470cfaa4b3a1adc437d8f | 5 | 8 | 4246.713852 | -| terp1wnym4vmxn779lew973r44dsqhdl3r3r7phm0hf | 0x74c9bab3669fbc5fe5c5f4475ab600bb7f11c47e | 5 | 8 | 4246.713852 | -| terp13qsgqujke94sjw960cn8yzj02dq3hjhst9ad0m | 0x8820807256c96b0938ba7e26720a4f53411bcaf0 | 5 | 8 | 4246.713852 | -| terp18srl6l0n8hyyq4h9gf3p2mgalfkygz5llutfwf | 0x3c07fd7df33dc84056e54262156d1dfa6c440a9f | 5 | 8 | 4246.713852 | -| terp1hh7ndglhppsau06du9kslp7xayj9rdasqcp8wq | 0xbdfd36a3f70861de3f4de16d0f87c6e92451b7b0 | 5 | 8 | 4246.713852 | -| terp1x4gctcl2llu0el8qggw9vqcrkurv3nmgh00g40 | 0x355185e3eafff8fcfce0421c560303b706c8cf68 | 5 | 8 | 4246.713852 | -| terp1zzmdswc6ej3znjfmm7md2d3evptk6pu48g797a | 0x10b6d83b1acca229c93bdfb6d5363960576d0795 | 5 | 8 | 4246.713852 | -| terp1grctyw3yqu04739nv002lneudj7w5z2xf0az03 | 0x40f0b23a24071f5f44b363deafcf3c6cbcea0946 | 5 | 8 | 4246.713852 | -| terp17h228w0mwlga2cq2zrswr3806yhehe636cs033 | 0xf5d4a3b9fb77d1d5600a10e0e1c4efd12f9be751 | 5 | 8 | 4246.713852 | -| terp15nytk3jch3zt43psdxwgk7cnm2egur6wl96kz2 | 0xa4c8bb4658bc44bac430699c8b7b13dab28e0f4e | 5 | 8 | 4246.713852 | -| terp1juhcf90392whq7zuxn9gxm5e2pnejnt7d6ezur | 0x972f8495f12a9d70785c34ca836e995067994d7e | 5 | 8 | 4246.713852 | -| terp103j48ye6gud58n36w6szy3w9zckgy53vvgw2qw | 0x7c6553933a471b43ce3a76a02245c5162c82522c | 5 | 8 | 4246.713852 | -| terp177jwd9w4kpyx5rqrhgzfptv7mzlhn6wd6kh63r | 0xf7a4e695d5b0486a0c03ba0490ad9ed8bf79e9cd | 5 | 8 | 4246.713852 | -| terp10gq96a7cefvmktylhate94tm98g3znvfcke0zu | 0x7a005d77d8ca59bb2c9fbf5792d57b29d1114d89 | 5 | 8 | 4246.713852 | -| terp1kccvkyadkyn6ujkkv7tk7g85fy39685ts3y6e4 | 0xb630cb13adb127ae4ad667976f20f449225d1e8b | 5 | 8 | 4246.713852 | -| terp1jp6dx40a44pg3k2cy4r5enr4fneukctvg4py7q | 0x9074d355fdad4288d95825474ccc754cf3cb616c | 5 | 8 | 4246.713852 | -| terp1tkf3catqzg4juetarzwvcgxt43husrlcjxpdsd | 0x5d931c7560122b2e657d189ccc20cbac6fc80ff8 | 5 | 8 | 4246.713852 | -| terp1y0u5excs43smy47qk8stkd9jgrztj9a3q9f5t3 | 0x23f94c9b10ac61b257c0b1e0bb34b240c4b917b1 | 5 | 8 | 4246.713852 | -| terp17a4h3lmhc50jecmkx8rqpq5kdnuxsx8zr8qqde | 0xf76b78ff77c51f2ce37631c60082966cf86818e2 | 5 | 8 | 4246.713852 | -| terp1yasylzthgak4vqgm8k46td9240df3fqns8th23 | 0x27604f8977476d56011b3daba5b4aaabda98a413 | 5 | 8 | 4246.713852 | -| terp19hwzx7hhk9rj42l88nmz0zn03y3xdp8vfsspel | 0x2ddc237af7b1472aabe73cf6278a6f89226684ec | 5 | 8 | 4246.713852 | -| terp1ll83zt33vjugcxdpzyppud8unhd3dy8phttv8h | 0xffcf112e3164b88c19a111021e34fc9ddb1690e1 | 5 | 8 | 4246.713852 | -| terp18a4gs8xg42mtyqx3fwzwz6h3lu00ujc2ht36el | 0x3f6a881cc8aab6b200d14b84e16af1ff1efe4b0a | 5 | 8 | 4246.713852 | -| terp1svr5h0938fh46gjq9d7jm0lkf6y68ne98ne84k | 0x83074bbcb13a6f5d22402b7d2dbff64e89a3cf25 | 5 | 8 | 4246.713852 | -| terp1enrqpumxstzujc72m5zgq25fjmpcp5wg5vhqnf | 0xccc600f36682c5c963cadd04802a8996c380d1c8 | 5 | 8 | 4246.713852 | -| terp1ampuqzqujsgqrfva8mcpkyjd099zpkelp79mcn | 0xeec3c0081c941001a59d3ef01b124d794a20db3f | 5 | 8 | 4246.713852 | -| terp18qe3jl2gc6t52hhvxmvzaxghe8xg6rz428c0cx | 0x3833197d48c697455eec36d82e9917c9cc8d0c55 | 4 | 4 | 2123.356926 | -| terp1qdeqsta5qg4md53a4wtp9ta2da4g3j584q8hju | 0x0372082fb4022bb6d23dab9612afaa6f6a88ca87 | 4 | 4 | 2123.356926 | -| terp1d0pfchghja54nnr68z7296k479g3phveu0nr62 | 0x6bc29c5d17976959cc7a38bca2ead5f15110dd99 | 4 | 4 | 2123.356926 | -| terp1v9k5fpuvw30ten07kavnq4tykgevzsc64jxuaf | 0x616d44878c745ebccdfeb759305564b232c1431a | 4 | 4 | 2123.356926 | -| terp12fw54lsyw9hj82fxrhcdrywnn62fda2tzw4v4j | 0x525d4afe04716f23a9261df0d191d39e9496f54b | 4 | 4 | 2123.356926 | -| terp15crn20hecw4epqfs2yv2vnptrkp4p7dwualw2z | 0xa607353ef9c3ab9081305118a64c2b1d8350f9ae | 4 | 4 | 2123.356926 | -| terp1tzgjgqnlycmu4vrgdhh426lazctnqfnjv2cr78 | 0x589124027f2637cab0686def556bfd1617302672 | 4 | 4 | 2123.356926 | -| terp1zw3hl65tff2a06da0ds6eqxa5jt0nmzkspzaxy | 0x13a37fea8b4a55d7e9bd7b61ac80dda496f9ec56 | 4 | 4 | 2123.356926 | -| terp19q7zwuz67sg0a692pam0dnyv85n6le2e709cev | 0x283c27705af410fee8aa0f76f6cc8c3d27afe559 | 4 | 4 | 2123.356926 | -| terp16ws4ll475yt66qxkt0t5q4a3kuzpy39q6u00r0 | 0xd3a15ffebea117ad00d65bd74057b1b7041244a0 | 4 | 4 | 2123.356926 | -| terp1jqshfzulkdwhm85zetv86zw9xhu08zw655d9mq | 0x9021748b9fb35d7d9e82cad87d09c535f8f389da | 4 | 4 | 2123.356926 | -| terp1vnj9tvs940vp7q0u8ey3luvsxrpe0erx848qq2 | 0x64e455b205abd81f01fc3e491ff19030c397e466 | 4 | 4 | 2123.356926 | -| terp1rkrp4rjl99d846fcr7dm7hcud4c2vu5c2p9s5q | 0x1d861a8e5f295a7ae9381f9bbf5f1c6d70a67298 | 4 | 4 | 2123.356926 | -| terp18wytgfst2wq88vrplpscflqmsn4d028w7g79xr | 0x3b88b4260b538073b061f86184fc1b84ead7a8ee | 4 | 4 | 2123.356926 | -| terp1cmjky6x27j8jt5np6e5cac48aq044cht79pw5f | 0xc6e56268caf48f25d261d6698ee2a7e81f5ae2eb | 4 | 4 | 2123.356926 | -| terp1hg27vn03h3gvyj0hm680rtyt92dlepa60g4j4h | 0xba15e64df1bc50c249f7de8ef1ac8b2a9bfc87ba | 4 | 4 | 2123.356926 | -| terp1dggmhnt39kq86lrpadzkkg2kunsx0w0dpfe4cq | 0x6a11bbcd712d807d7c61eb456b2156e4e067b9ed | 4 | 4 | 2123.356926 | -| terp1yzztmg24y70c3nzhn09kmxavlj07qkvc8w9w09 | 0x2084bda155279f88cc579bcb6d9bacfc9fe05998 | 4 | 4 | 2123.356926 | -| terp1zepv3vtphs4xj2wx5w86lksjzv8s7auqar2ey3 | 0x1642c8b161bc2a6929c6a38fafda12130f0f7780 | 4 | 4 | 2123.356926 | -| terp1jm7kzgp2dx8w86kzrcj856eqn6jll6u3g64r8y | 0x96fd61202a698ee3eac21e247a6b209ea5ffeb91 | 4 | 4 | 2123.356926 | -| terp1n63rtwwt653n20a8nenu0z8sxjaff6yfg6spdw | 0x9ea235b9cbd523353fa79e67c788f034ba94e889 | 4 | 4 | 2123.356926 | -| terp1p04usgwdlsrhdn2m67da32vjg7apze8jtjutmm | 0x0bebc821cdfc0776cd5bd79bd8a99247ba1164f2 | 4 | 4 | 2123.356926 | -| terp15gzq66cst90vhghh29ehkj5nr2rg7pj4pcuhwe | 0xa2040d6b10595ecba2f751737b4a931a868f0655 | 4 | 4 | 2123.356926 | -| terp1seqf3anuh440tvtchpmghdcz5g4ckxep80u08d | 0x864098f67cbd6af5b178b8768bb702a22b8b1b21 | 4 | 4 | 2123.356926 | -| terp1qhspyjm6ej260gunypge88lz6qs3700fqgg8d5 | 0x05e0124b7acc95a7a3932051939fe2d0211f3de9 | 4 | 4 | 2123.356926 | -| terp19pvr75rmmnrc994m4c84lda3afayn64nn4n7mc | 0x28583f507bdcc78296bbae0f5fb7b1ea7a49eab3 | 4 | 4 | 2123.356926 | -| terp1uj25t8y529ql0rwx6t3t3n08lnnduj7dq9a7pa | 0xe495459c945141f78dc6d2e2b8cde7fce6de4bcd | 4 | 4 | 2123.356926 | -| terp1wjv2ldfwyh3s8u33eey0hd2vd3cw9nnashlrm8 | 0x7498afb52e25e303f231ce48fbb54c6c70e2ce7d | 4 | 4 | 2123.356926 | -| terp1szy5e8pgjxrzdhv69j4k8p7vqvkv8rvd77rpn0 | 0x80894c9c28918626dd9a2cab6387cc032cc38d8d | 4 | 4 | 2123.356926 | -| terp19g6hc67xj0xch9wsfmvg3re8x44vkj4p0ltx93 | 0x2a357c6bc693cd8b95d04ed8888f27356acb4aa1 | 4 | 4 | 2123.356926 | -| terp1f2fzxg9hm7pdfv5zqqup8wnc274jddnke2w45g | 0x4a922320b7df82d4b282003813ba7857ab26b676 | 4 | 4 | 2123.356926 | -| terp1zvdaxeffnlqq4xc052uu502v28ektsdlvz6ja0 | 0x131bd365299fc00a9b0fa2b9ca3d4c51f365c1bf | 4 | 4 | 2123.356926 | -| terp12ukzk74xeatekw2clk8v2xxflqfjlak08ldx30 | 0x572c2b7aa6cf579b3958fd8ec518c9f8132ff6cf | 4 | 4 | 2123.356926 | -| terp1fnjsnnngh7700jht6camasye34zrw8vla6zqhj | 0x4ce509ce68bfbcf7caebd63bbec0998d44371d9f | 4 | 4 | 2123.356926 | -| terp13qnx9qkv9q2dktrjrj7k8pga3z3m7vtvfvwcu0 | 0x88266282cc2814db2c721cbd63851d88a3bf316c | 4 | 4 | 2123.356926 | -| terp15e0p3e3s0qpdwcqtsgh86fzeu2224jr47w6sv3 | 0xa65e18e6307802d7600b822e7d2459e294aac875 | 4 | 4 | 2123.356926 | -| terp1waegsxnptnfdxfhtupr4578e62trqa9hujrn86 | 0x7772881a615cd2d326ebe0475a78f9d2963074b7 | 4 | 4 | 2123.356926 | -| terp127pyrmvtgt222wt9r4wwh9pve38xzvv260sv9n | 0x578241ed8b42d4a539651d5ceb942ccc4e61318a | 4 | 4 | 2123.356926 | -| terp1xf0nu4j7z7muhsgkr5yfp7geyxjzshwsdentc4 | 0x325f3e565e17b7cbc1161d0890f91921a4285dd0 | 4 | 4 | 2123.356926 | -| terp1tjlsuhmgzrexlqp67yhlhnmtqw0magrw8ah784 | 0x5cbf0e5f6810f26f803af12ffbcf6b039fbea06e | 4 | 4 | 2123.356926 | -| terp1wkyxv8w45ryfr74rh45qqg75hq6mpq49xyekpl | 0x7588661dd5a0c891faa3bd680023d4b835b082a5 | 4 | 4 | 2123.356926 | -| terp1ds8h8f3qmfrts3dzaanw75gm0hven6rxzhgvc6 | 0x6c0f73a620da46b845a2ef66ef511b7dd999e866 | 4 | 4 | 2123.356926 | -| terp15f4dnn6aqeszhw8wd9rh8fadhjf4e8sxe0esj8 | 0xa26ad9cf5d06602bb8ee694773a7adbc935c9e06 | 4 | 4 | 2123.356926 | -| terp1877ttcspja5yp6vy4jeu3hcfvap3c2tyqqxlry | 0x3fbcb5e201976840e984acb3c8df0967431c2964 | 4 | 4 | 2123.356926 | -| terp1gyq4fh3u0h4t826anmw9xf80fx50aprpzxuhr5 | 0x410154de3c7deab3ab5d9edc5324ef49a8fe8461 | 4 | 4 | 2123.356926 | -| terp1cgreukc806hfd8d7egm50wu9tt5alrel826nnu | 0xc2079e5b077eae969dbeca3747bb855ae9df8f3f | 4 | 4 | 2123.356926 | -| terp15af0lycyvx40q0zj4at6l6hvwh2v7nj2we5285 | 0xa752ff930461aaf03c52af57afeaec75d4cf4e4a | 4 | 4 | 2123.356926 | -| terp1zjlfkcyckz5jfj45he0mrftj7hf39kzupsgpht | 0x14be9b6098b0a924cab4be5fb1a572f5d312d85c | 4 | 4 | 2123.356926 | -| terp139w3kcjuqkrzw5wx5hvau4r4kpqtxp52nvd84x | 0x895d1b625c05862751c6a5d9de5475b040b3068a | 4 | 4 | 2123.356926 | -| terp1zhhgj57h302qh9jxjxjnwsm0uq56ng46y0up75 | 0x15ee8953d78bd40b964691a537436fe029a9a2ba | 4 | 4 | 2123.356926 | -| terp14scwphgpgx09ffrmlkctddwvua749m64uy59da | 0xac30e0dd01419e54a47bfdb0b6b5cce77d52ef55 | 4 | 4 | 2123.356926 | -| terp1py4ymtdas893qpn4lulruwae5ts62y69t69u8z | 0x092a4dadbd81cb100675ff3e3e3bb9a2e1a51345 | 4 | 4 | 2123.356926 | -| terp1uv4t902qduacngscq9f0fj9nx72tj2v5a40gqv | 0xe32ab2bd406f3b89a2180152f4c8b33794b92994 | 4 | 4 | 2123.356926 | -| terp1mzqs5ldzzp78teq3ve37el7pvd235fwqqku4qu | 0xd8810a7da2107c75e4116663ecffc163551a25c0 | 4 | 4 | 2123.356926 | -| terp1tpz7y06dswjj4d9xsmny68wcpdld8c90240rzz | 0x5845e23f4d83a52ab4a686e64d1dd80b7ed3e0af | 4 | 4 | 2123.356926 | -| terp146y0dfjzhnw9v95778xr62smsg2ex56g58kh9h | 0xae88f6a642bcdc56169ef1cc3d2a1b8215935348 | 4 | 4 | 2123.356926 | -| terp1j5kdfklue425j3hnvkpmm7hv7f8prpwtqq7cgg | 0x952cd4dbfccd554946f36583bdfaecf24e1185cb | 4 | 4 | 2123.356926 | -| terp1vck467vyjyf62sp67amzzqc85lyz55n83cdmta | 0x662d5d79849113a5403af776210307a7c82a5267 | 4 | 4 | 2123.356926 | -| terp152nc4eee02xrq7h0cvyc0cdjc2ak7lupkzau42 | 0xa2a78ae7397a8c307aefc30987e1b2c2bb6f7f81 | 4 | 4 | 2123.356926 | -| terp1h4wsxlgn270mg5ju4zsakdhmzrthmw26j7gmxq | 0xbd5d037d13579fb4525ca8a1db36fb10d77db95a | 4 | 4 | 2123.356926 | -| terp1m39cpjn0qvv8d22n5lp42ju4aedw7n8l72tzkv | 0xdc4b80ca6f031876a953a7c3554b95ee5aef4cff | 4 | 4 | 2123.356926 | -| terp1jedywyc2vssymxfhlznh966h9l33nczqzszmua | 0x965a47130a64204d9937f8a772eb572fe319e040 | 4 | 4 | 2123.356926 | -| terp1zty7glrv6nu6ymz4zx2p6yyjld9t0du54k389u | 0x12c9e47c6cd4f9a26c5511941d1092fb4ab7b794 | 4 | 4 | 2123.356926 | -| terp1v6j36gjgtzpxj6tx2nel9h3neputtu07c3flrw | 0x66a51d2248588269696654f3f2de33c878b5f1fe | 4 | 4 | 2123.356926 | -| terp185w8mjlcs0q8z7a7cv9w6knpd0vsq2cpxx6s50 | 0x3d1c7dcbf883c0717bbec30aed5a616bd9002b01 | 4 | 4 | 2123.356926 | -| terp12uffqghj4gasxpdq8884mpwfsz3kcjzpzq303g | 0x57129022f2aa3b0305a039cf5d85c980a36c4841 | 4 | 4 | 2123.356926 | -| terp1chqgzpu4qagvyjrpwkr8rprftys9kj2ma6ppyt | 0xc5c08107950750c24861758671846959205b495b | 4 | 4 | 2123.356926 | -| terp1ujddk9eqady7tptqpdpqpxhftpm84ftfw647ge | 0xe49adb1720eb49e585600b42009ae958767aa569 | 4 | 4 | 2123.356926 | -| terp1p4qhs4jvhumw06m3v67e9ysgp5hhfpxz2fdyr0 | 0x0d4178564cbf36e7eb7166bd9292080d2f7484c2 | 4 | 4 | 2123.356926 | -| terp1whwm02u4sy6mhck6kjxk9p5zda42tca5jpetdv | 0x75ddb7ab958135bbe2dab48d6286826f6aa5e3b4 | 4 | 4 | 2123.356926 | -| terp1yevt0fzlauvc80xdkrs2pclj5epqcm4z2e6x5m | 0x2658b7a45fef1983bccdb0e0a0e3f2a6420c6ea2 | 4 | 4 | 2123.356926 | -| terp1mmma9rrrqlckzg9ruz6yqylwv24k2973t6g8lh | 0xdef7d28c6307f16120a3e0b44013ee62ab6517d1 | 4 | 4 | 2123.356926 | -| terp10njs8x3rswazeh6hmudgh56nuqsuxayjc9jrg2 | 0x7ce5039a2383ba2cdf57df1a8bd353e021c37492 | 4 | 4 | 2123.356926 | -| terp1gfy4j8yt7gnhlxgp2w6rymjnyxppas6nm2qvld | 0x4249591c8bf2277f990153b4326e5321821ec353 | 4 | 4 | 2123.356926 | -| terp1zyy02l3vmm2946pl9whqcu5el49zz0eq56uqmu | 0x1108f57e2cded45ae83f2bae0c7299fd4a213f20 | 4 | 4 | 2123.356926 | -| terp196edvmyjnt0xnmtepz5gc6t9sy98cmt7w43euh | 0x2eb2d66c929ade69ed7908a88c6965810a7c6d7e | 4 | 4 | 2123.356926 | -| terp1vje9pusg2txk40kksa6sen8tnl8s2vh7dmyvxx | 0x64b250f20852cd6abed687750ccceb9fcf0532fe | 4 | 4 | 2123.356926 | -| terp1djk5llxvhvjyu3u9glc42c0350k5855hsevwyz | 0x6cad4ffcccbb244e478547f15561f1a3ed43d297 | 4 | 4 | 2123.356926 | -| terp1g4jcpvzqsz98pnpjpfrh53lxhdunlk66ewn5lm | 0x456580b040808a70cc320a477a47e6bb793fdb5a | 4 | 4 | 2123.356926 | -| terp1xhh09e6dmsxpg3hys6cmzefrksc337ckmdyuz5 | 0x35eef2e74ddc0c1446e486b1b16523b43118fb16 | 4 | 4 | 2123.356926 | -| terp15eedtwg7s6274xqrc6t2xtvs2dazwjnrx09yvv | 0xa672d5b91e8695ea9803c696a32d90537a274a63 | 4 | 4 | 2123.356926 | -| terp1sfx7t5frd3fgty20fgujn7gh6q7f2ztt0vsgmp | 0x824de5d1236c5285914f4a3929f917d03c95096b | 4 | 4 | 2123.356926 | -| terp1z29sxvwj3m6j0x2w3fc9fpqpw6taqfw3as2d9t | 0x128b0331d28ef527994e8a705484017697d025d1 | 4 | 4 | 2123.356926 | -| terp18fhejmsdq5kdvx5mlg9037l4826ty9xkt40j57 | 0x3a6f996e0d052cd61a9bfa0af8fbf53ab4b214d6 | 4 | 4 | 2123.356926 | -| terp165m5zw3k28lgw3p4ympcjaaee6ryfp5kaf8s5f | 0xd537413a3651fe87443526c38977b9ce86448696 | 4 | 4 | 2123.356926 | -| terp139xq4c4wryhz6v2jghkxqjvww07xw8htfhrx42 | 0x894c0ae2ae192e2d315245ec60498e73fc671eeb | 3 | 4 | 2123.356926 | -| terp1l9w3h933jkpmuedx0tz34grft9q4ww7seyxl65 | 0xf95d1b96319583be65a67ac51aa0695941573bd0 | 3 | 4 | 2123.356926 | -| terp10564zy7w2hder93u03yazchd7u8ux3y6uc3xun | 0x7d355113ce55db91963c7c49d162edf70fc3449a | 3 | 4 | 2123.356926 | -| terp10pwyn056c8z495mptc82sfkvgsaxcdkuwq9u3c | 0x785c49be9ac1c552d3615e0ea826cc443a6c36dc | 3 | 4 | 2123.356926 | -| terp1jce495ktnjjhp3nnuh6ryxwuftsf459wrx60x3 | 0x963352d2cb9ca570c673e5f43219dc4ae09ad0ae | 3 | 4 | 2123.356926 | -| terp10f2nx2kh2jv087fjn3qsvn4fzq4ktwx8vn04nv | 0x7a55332ad75498f3f9329c41064ea9102b65b8c7 | 3 | 4 | 2123.356926 | -| terp1xalezs4erf3ryjtv74gyken3x3h2xl636mn980 | 0x377f9142b91a6232496cf5504b6671346ea37f51 | 3 | 4 | 2123.356926 | -| terp10ugt69szng48nflcd80j8kjp9f94arlyvygtux | 0x7f10bd16029a2a79a7f869df23da412a4b5e8fe4 | 3 | 4 | 2123.356926 | -| terp1h7ecc7rl6pp78thvaf7ha5pg9n8ccj8zezwyme | 0xbfb38c787fd043e3aeecea7d7ed0282ccf8c48e2 | 3 | 4 | 2123.356926 | -| terp1qp0lyqkzw8fyr8as8my88hklu936tn3k4ge7ch | 0x005ff202c271d2419fb03ec873dedfe163a5ce36 | 3 | 4 | 2123.356926 | -| terp1nk908fvcsu5nhq749uxwn5y8f4hu5s0xr7a59f | 0x9d8af3a59887293b83d52f0ce9d0874d6fca41e6 | 3 | 4 | 2123.356926 | -| terp1rc8af7068lh55k3j6nd2zjlx6w54lmqnzc3g6m | 0x1e0fd4f9fa3fef4a5a32d4daa14be6d3a95fec13 | 3 | 4 | 2123.356926 | -| terp14cyewvxlcpxqs6kdptvcs8ux43326zm6n97vr2 | 0xae099730dfc04c086acd0ad9881f86ac62ad0b7a | 3 | 4 | 2123.356926 | -| terp13swvcysjtgk4echqdnlvy3ey6gl9vxhqvyvgkv | 0x8c1ccc12125a2d5ce2e06cfec24724d23e561ae0 | 3 | 4 | 2123.356926 | -| terp1a794rh4k2wm9y7sv7tmpfu2k8p6a7n6dcpan8q | 0xef8b51deb653b6527a0cf2f614f1563875df4f4d | 3 | 4 | 2123.356926 | -| terp192uew3jelltk7czmv7ze2dmh36nzfq4zx2qmma | 0x2ab9974659ffd76f605b67859537778ea62482a2 | 3 | 4 | 2123.356926 | -| terp1n3r9x98kstxqzulu9z007k39qxghgn7kyjdvje | 0x9c465314f682cc0173fc289eff5a250191744fd6 | 3 | 4 | 2123.356926 | -| terp1yxgc2g0v8tts2sue0uhwxr0h3tu2ehhxr8mns9 | 0x21918521ec3ad70543997f2ee30df78af8acdee6 | 3 | 4 | 2123.356926 | -| terp1eztezepf0yhxp46x4aux5zvdsnrgqgfe9rwq9z | 0xc897916429792e60d746af786a098d84c6802139 | 3 | 4 | 2123.356926 | -| terp12s5klcx9adct5hvf8e6ywvlthxzxannjeneeqm | 0x54296fe0c5eb70ba5d893e744733ebb9846ece72 | 3 | 4 | 2123.356926 | -| terp1qv04s3rewc9ldg8xuvjxen4dkmjdv67qj0crvs | 0x031f584479760bf6a0e6e3246cceadb6e4d66bc0 | 3 | 4 | 2123.356926 | -| terp10x042pqpqxlaly99av7pc9ef7lek9lhm0sqqfx | 0x799f55040101bfdf90a5eb3c1c1729f7f362fefb | 3 | 4 | 2123.356926 | -| terp1ajk3z77tc78tseuhysche7k5nzs26uttc0hlsj | 0xecad117bcbc78eb8679724317cfad498a0ad716b | 3 | 4 | 2123.356926 | -| terp1aauwmxmasyvh30ap4v3q8qxkac0s3lu0frkfmq | 0xef78ed9b7d811978bfa1ab220380d6ee1f08ff8f | 3 | 4 | 2123.356926 | -| terp1ud3f0ldstl34r4skl0tugnrx0e3m7cyjhaghwc | 0xe36297fdb05fe351d616fbd7c44c667e63bf6092 | 3 | 4 | 2123.356926 | -| terp1z7re0a22kfxhka0zthsvqsz35m3kesd4kzddtu | 0x178797f54ab24d7b75e25de0c04051a6e36cc1b5 | 3 | 4 | 2123.356926 | -| terp1s4743p8ugt82v34avtxgf7qx46u69tn07pv24d | 0x857d5884fc42cea646bd62cc84f806aeb9a2ae6f | 3 | 4 | 2123.356926 | -| terp1ac7ay54pdyw2ztkkpc9rmag03mjwgg9hzz5g2r | 0xee3dd252a1691ca12ed60e0a3df50f8ee4e420b7 | 3 | 4 | 2123.356926 | -| terp1axsdlg6fh4a0r07k3h9k7wwf8jl72swqgj3tg2 | 0xe9a0dfa349bd7af1bfd68dcb6f39c93cbfe541c0 | 3 | 4 | 2123.356926 | -| terp12508tdlnynmufl8gv0dj3x8lhkz7x70lwmzt23 | 0x551e75b7f324f7c4fce863db2898ffbd85e379ff | 3 | 4 | 2123.356926 | -| terp10mnjh2yaart8wd33naz9vdjft76jmsrrlvuwu9 | 0x7ee72ba89de8d67736319f445636495fb52dc063 | 3 | 4 | 2123.356926 | -| terp19n692wmgfdj0fvhxvgqhdr0nlk5dp3as66ejux | 0x2cf4553b684b64f4b2e66201768df3fda8d0c7b0 | 3 | 4 | 2123.356926 | -| terp18m2yjjdfp5rtdse5n70pktpmdhe05wwgh5n5km | 0x3ed44949a90d06b6c3349f9e1b2c3b6df2fa39c8 | 3 | 4 | 2123.356926 | -| terp1lj6v5tj48mxvjgamgz62mt4dkvk56jgy9qnp6e | 0xfcb4ca2e553eccc923bb40b4adaeadb32d4d4904 | 3 | 4 | 2123.356926 | -| terp1y6pl6axhd74l494n7u0jjxkmgcd0styvgzk64a | 0x2683fd74d76fabfa96b3f71f291adb461af82c8c | 3 | 4 | 2123.356926 | -| terp1u0960ydzmp89kly33mxh230tgsflpu0dv0y7dp | 0xe3cba791a2d84e5b7c918ecd7545eb4413f0f1ed | 3 | 4 | 2123.356926 | -| terp1c6zmkx66g8a2lg5zs5vtn5k4uhf7a0stfj967f | 0xc685bb1b5a41faafa2828518b9d2d5e5d3eebe0b | 3 | 4 | 2123.356926 | -| terp1yh39h2r6sem8kuu2ryyy6mfcelld9f0wmt6pmz | 0x25e25ba87a86767b738a19084d6d38cffed2a5ee | 3 | 4 | 2123.356926 | -| terp16etupg4ywa2etaq6njzgqrdcgx5mrn2a7tq8uq | 0xd657c0a2a4775595f41a9c84800db841a9b1cd5d | 3 | 4 | 2123.356926 | -| terp13ex9p0fq8ct83pvgprw8gas454z0flyc4ce32q | 0x8e4c50bd203e1678858808dc747615a544f4fc98 | 3 | 4 | 2123.356926 | -| terp1xx3lgkukqdncvr372mw823dx23um6qc3nsk8np | 0x31a3f45b960367860e3e56dc7545a65479bd0311 | 3 | 4 | 2123.356926 | -| terp1wmk3wm05dm7dj4qv8hl38zty4ltlp6r56ff5c7 | 0x76ed176df46efcd9540c3dff138964afd7f0e874 | 3 | 4 | 2123.356926 | -| terp1pnwkt5lxaqx69edpra7pemdvuucrwtt7n4lzf9 | 0x0cdd65d3e6e80da2e5a11f7c1cedace730372d7e | 3 | 4 | 2123.356926 | -| terp1qqt8walqmtuactf6wcv44dtws4lvv74jrxruma | 0x00167777e0daf9dc2d3a76195ab56e857ec67ab2 | 3 | 4 | 2123.356926 | -| terp1q9tjmc8x9eknu6y6nk0djdtewj0mny0y8rdux9 | 0x01572de0e62e6d3e689a9d9ed93579749fb991e4 | 3 | 4 | 2123.356926 | -| terp1zk7qqz8fqmp0cn3ax2t8jc89l6v2cz8rm56f5v | 0x15bc0008e906c2fc4e3d32967960e5fe98ac08e3 | 3 | 4 | 2123.356926 | -| terp1f37r6pfugyr9ny7905y6cq2ukw2rrh8qd9y4h5 | 0x4c7c3d053c41065993c57d09ac015cb39431dce0 | 3 | 4 | 2123.356926 | -| terp1v7te7ny9kuncdhcv8qscj2zux03aytayfgh5ye | 0x67979f4c85b72786df0c382189285c33e3d22fa4 | 3 | 4 | 2123.356926 | -| terp1nfc7ucxhu6vxpalycpdx4ru3kaaqf98hzpms8v | 0x9a71ee60d7e69860f7e4c05a6a8f91b77a0494f7 | 3 | 4 | 2123.356926 | -| terp1vclx24h4rx2z5jm8nwqsetru77efucvhq3mvus | 0x663e6556f519942a4b679b810cac7cf7b29e6197 | 3 | 4 | 2123.356926 | -| terp12mnh8v9xyqs9a8mjyedkqyaktwzv93907ktzar | 0x56e773b0a620205e9f72265b6013b65b84c2c4af | 3 | 4 | 2123.356926 | -| terp1k6fggka9396he0pfstpwxfjkencqsr57aqzupy | 0xb692845ba589757cbc2982c2e32656ccf0080e9e | 3 | 4 | 2123.356926 | -| terp17gy2s4xcm4sg4k2kgnnu5wje5vd2eh574h0emr | 0xf208a854d8dd608ad95644e7ca3a59a31aacde9e | 3 | 4 | 2123.356926 | -| terp184t6m7ledyd8pfrd7x474wj9e78352m62z00f5 | 0x3d57adfbf9691a70a46df1abeaba45cf8f1a2b7a | 3 | 4 | 2123.356926 | -| terp1xv90ahtvr3qwg2sp5h6hwz87uanzgfvzs49lwf | 0x330afedd6c1c40e42a01a5f57708fee766242582 | 3 | 4 | 2123.356926 | -| terp1uygg0qxqk39qmjyfplejwc03kjy8lwz3qv83lf | 0xe1108780c0b44a0dc8890ff32761f1b4887fb851 | 3 | 4 | 2123.356926 | -| terp165x65fh42efc2c46xzxupm29e7kw3p07ce3kyp | 0xd50daa26f556538562ba308dc0ed45cface885fe | 3 | 4 | 2123.356926 | -| terp1xewqvem5e7levkwr3fpcdxk63pl2lltp4kewgm | 0x365c066774cfbf9659c38a43869ada887eaffd61 | 3 | 4 | 2123.356926 | -| terp19r9ty32ar5dclqtwjjadc3rv5p9fskqmwvzv0e | 0x28cab2455d1d1b8f816e94badc446ca04a98581b | 3 | 4 | 2123.356926 | -| terp1f6x8cd0t08f5mv69evz0f0pq4djkds93936wx4 | 0x4e8c7c35eb79d34db345cb04f4bc20ab6566c0b1 | 3 | 4 | 2123.356926 | -| terp1uamfa8qet3vdu59cg578dnle3exg03gvaytvte | 0xe7769e9c195c58de50b8453c76cff98e4c87c50c | 3 | 4 | 2123.356926 | -| terp1g7pdc6j4ultljcc5sp7e64gn64j7a72gxvggsv | 0x4782dc6a55e7d7f96314807d9d5513d565eef948 | 3 | 4 | 2123.356926 | -| terp1wt5x2mwyd92v200tu889kqvgr8jna4cfufvxfy | 0x72e8656dc46954c53debe1ce5b018819e53ed709 | 3 | 4 | 2123.356926 | -| terp1z7cukxkj368gkqup8854ea3z8mn73dtjcujmxa | 0x17b1cb1ad28e8e8b038139e95cf6223ee7e8b572 | 3 | 4 | 2123.356926 | -| terp18fynp9qn0yan9a4rppmfygq50lkml7jllfc82n | 0x3a49309413793b32f6a308769220147fedbffa5f | 3 | 4 | 2123.356926 | -| terp1erw5pwsmmd4rl9tfqnczk9xmysqnhz6aece9jy | 0xc8dd40ba1bdb6a3f956904f02b14db24013b8b5d | 3 | 4 | 2123.356926 | -| terp1gquq9tnwuep9ru7xepemg7jpqv0rcxrep9qr6n | 0x403802ae6ee64251f3c6c873b47a41031e3c1879 | 3 | 4 | 2123.356926 | -| terp197wsujhvqa0rxp08xjm4f8xtwv5t92hdww7jnx | 0x2f9d0e4aec075e3305e734b7549ccb7328b2aaed | 3 | 4 | 2123.356926 | -| terp1xlhzra7r0l8xjm5l52rgx9vqha4aatqe8pm2vj | 0x37ee21f7c37fce696e9fa286831580bf6bdeac19 | 3 | 4 | 2123.356926 | -| terp1ln4fxt8xw2ue357sd6h3gz3772fndscwqzs5fl | 0xfcea932ce672b998d3d06eaf140a3ef29336c30e | 3 | 4 | 2123.356926 | -| terp1wup72heskrfftuz8jl0qlrpfpd5lsvwemgj9ps | 0x7703e55f30b0d295f04797de0f8c290b69f831d9 | 3 | 4 | 2123.356926 | -| terp1043kwj2n056g35ppd8p2nzr98j2mxh2xs49a6w | 0x7d636749537d3488d02169c2a988653c95b35d46 | 3 | 4 | 2123.356926 | -| terp1du90m7tmlq3kf8cysfueavy5mk7wk9qkq6qgrx | 0x6f0afdf97bf823649f0482799eb094ddbceb1416 | 3 | 4 | 2123.356926 | -| terp1cegrld782tfgecpzej5gf47fu3wrspjefu4dep | 0xc6503fb7c752d28ce022cca884d7c9e45c380659 | 3 | 4 | 2123.356926 | -| terp1j43jwzcgteaty0krh0s5dy2texh8xwmtn4vrch | 0x9563270b085e7ab23ec3bbe146914bc9ae733b6b | 3 | 4 | 2123.356926 | -| terp1s6sg8fkgn3r0cfz9fyjre4p59f6kd7q0hfx9hc | 0x86a083a6c89c46fc244549243cd4342a7566f80f | 3 | 4 | 2123.356926 | -| terp1wgv0y4xhnesje0hmj0yu8kkjjh42l9gpf4cs82 | 0x7218f254d79e612cbefb93c9c3dad295eaaf9501 | 3 | 4 | 2123.356926 | -| terp1d8tu7r8r2ausnrcr2mk9dvpmn6lt7nq5a7mld6 | 0x69d7cf0ce35779098f0356ec56b03b9ebebf4c14 | 3 | 4 | 2123.356926 | -| terp1f724xj6rwxj8s8kwnqds84emtp9fjkc9rp2jlz | 0x4f95534b4371a4781ece981b03d73b584a995b05 | 3 | 4 | 2123.356926 | -| terp1wc5uq95xujpg9eay7y2xux4alcqdg93wv59tge | 0x7629c01686e48282e7a4f1146e1abdfe00d4162e | 3 | 4 | 2123.356926 | -| terp1uu990vx0r9c2nnh6harxnepcyt23j6uq5gvl29 | 0xe70a57b0cf1970a9cefabf4669e43822d5196b80 | 3 | 4 | 2123.356926 | -| terp1mpvaqwezk9nfzue5wws53rk5sy8k9673fptyg0 | 0xd859d03b22b16691733473a1488ed4810f62ebd1 | 3 | 4 | 2123.356926 | -| terp140z92matjfasw69vak33aarjdzu07fyeg00aac | 0xabc4556fab927b0768aceda31ef47268b8ff2499 | 3 | 4 | 2123.356926 | -| terp1swq3wm209z80g4657q3xdz24f4qqph9dhsxxkl | 0x8381176d4f288ef45754f0226689554d4000dcad | 3 | 4 | 2123.356926 | -| terp1ee2twl80raf7j6zqd5wc0v294pq08n8ukdxaee | 0xce54b77cef1f53e968406d1d87b145a840f3ccfc | 3 | 4 | 2123.356926 | -| terp1mgq84r0mzr83s4dxkp2ttt23ty22ttwykh5fyc | 0xda007a8dfb10cf1855a6b054b5ad515914a5adc4 | 3 | 4 | 2123.356926 | -| terp1xej9w3t00h9ans4t8t3sq6qr80udvqxfwzyf0m | 0x366457456f7dcbd9c2ab3ae30068033bf8d600c9 | 3 | 4 | 2123.356926 | -| terp1kmkcyx8w6uh6d8egaej0jgmafv44dse5c4tgmq | 0xb6ed8218eed72fa69f28ee64f9237d4b2b56c334 | 3 | 4 | 2123.356926 | -| terp1avjkpd3zddz7n4rqer86qa9gtmul3k33asm699 | 0xeb2560b6226b45e9d460c8cfa074a85ef9f8da31 | 3 | 4 | 2123.356926 | -| terp1r5vhl488ja006gdd6r8rz2xy3zaawzurc5nulj | 0x1d197fd4e7975efd21add0ce3128c488bbd70b83 | 3 | 4 | 2123.356926 | -| terp1dkg297jk8swymj04lk8nvxre00wyse67xpwk7a | 0x6d90a2fa563c1c4dc9f5fd8f3618797bdc48675e | 3 | 4 | 2123.356926 | -| terp1umg88d0vkesls2wtkht65vvlr8qmzq4sm0gyel | 0xe6d073b5ecb661f829cbb5d7aa319f19c1b102b0 | 3 | 4 | 2123.356926 | -| terp15m7p9kqkvtg79xrddmsk85nzf74efkrewhmcrc | 0xa6fc12d81662d1e2986d6ee163d2624fab94d879 | 3 | 4 | 2123.356926 | -| terp10azp73gx7t0v2p499ueche5vnvpf5hhdu6fpxr | 0x7f441f4506f2dec506a52f338be68c9b029a5eed | 3 | 4 | 2123.356926 | -| terp1e24cznecphe2v28wj53nz254sagcuftt2xv4t5 | 0xcaab814f380df2a628ee9523312a9587518e256b | 3 | 4 | 2123.356926 | -| terp1hjyf0dcjnpd6gkjcr9lax95gcrn9azu9t3z5hd | 0xbc8897b712985ba45a58197fd31688c0e65e8b85 | 3 | 4 | 2123.356926 | -| terp1dpntndhwwg0n0vtp2qw9dazhmcu8jmgvpqn2ke | 0x6866b9b6ee721f37b161501c56f457de38796d0c | 3 | 4 | 2123.356926 | -| terp15fe7vr84z7m9dgxw6wfj6klzmp9masdrdn3rfs | 0xa273e60cf517b656a0ced3932d5be2d84bbec1a3 | 3 | 4 | 2123.356926 | -| terp10zzcz8qm73858e5xyjl3thuvpdg4thzd8mz59j | 0x7885811c1bf44f43e68624bf15df8c0b5155dc4d | 3 | 4 | 2123.356926 | -| terp175gkeprthgarkqjlga30px3wxm3t5tyn5s9ljh | 0xf5116c846bba3a3b025f4762f09a2e36e2ba2c93 | 3 | 4 | 2123.356926 | -| terp10yh0um3q9yphhekequ4ct0frzrmvl093wqt46r | 0x792efe6e2029037be6d9072b85bd2310f6cfbcb1 | 3 | 4 | 2123.356926 | -| terp1na0td97z9g0qhvlndu7vq9cc3y8t67nsxdchdx | 0x9f5eb697c22a1e0bb3f36f3cc01718890ebd7a70 | 3 | 4 | 2123.356926 | -| terp14j0tz8n2n79kf43xnqshqhhn2uavyyp4u3zmln | 0xac9eb11e6a9f8b64d6269821705ef3573ac21035 | 3 | 4 | 2123.356926 | -| terp1fm49lrc2068whmrfms9jlnny2cq43lstz8rha3 | 0x4eea5f8f0a7e8eebec69dc0b2fce64560158fe0b | 3 | 4 | 2123.356926 | -| terp1leyp6c0496rg8gfpq6vgxc3dsywq2lv7mv3af3 | 0xfe481d61f52e8683a121069883622d811c057d9e | 3 | 4 | 2123.356926 | -| terp1mnlfun69j38hu0ta9xs8lmp9ycjahnjzn3yyzh | 0xdcfe9e4f45944f7e3d7d29a07fec252625dbce42 | 3 | 4 | 2123.356926 | -| terp1ct6fmu569pvsv3jxay7qjsw5czt2nvyz2lwd2s | 0xc2f49df29a2859064646e93c0941d4c096a9b082 | 3 | 4 | 2123.356926 | -| terp1tdrjvxcp3t8necjeqll7hwvc3axv3l4y7qlj0r | 0x5b47261b018acf3ce25907ffebb9988f4cc8fea4 | 3 | 4 | 2123.356926 | -| terp1j3lx9md0ngmrzduz4rg2unjhxlgpewrfuexjve | 0x947e62edaf9a36313782a8d0ae4e5737d01cb869 | 3 | 4 | 2123.356926 | -| terp1cjgjfs49g0j8j07tppht7yn5en0n4z666etm5m | 0xc49124c2a543e4793fcb086ebf1274ccdf3a8b5a | 3 | 4 | 2123.356926 | -| terp1mp7llmc30rk9qtk8ge5vxp6zz2v53krjfetrqc | 0xd87dffef1178ec502ec74668c30742129948d872 | 3 | 4 | 2123.356926 | -| terp1r2m66n22jej2j8p6xuhsrpndkszg4adah8lmyf | 0x1ab7ad4d4a9664a91c3a372f01866db4048af5bd | 3 | 4 | 2123.356926 | -| terp16nq76uyeandqr76elcggr3tsdv8d287qjndp5n | 0xd4c1ed7099ecda01fb59fe1081c5706b0ed51fc0 | 3 | 4 | 2123.356926 | -| terp1jldsu4a3cv26prxg38k5qkkmzqxh7yma6we5ck | 0x97db0e57b1c315a08cc889ed405adb100d7f137d | 3 | 4 | 2123.356926 | -| terp1jmjhz5q933mf5mnv29m2jse7xrenymxextxr28 | 0x96e57150058c769a6e6c5176a9433e30f3326cd9 | 3 | 4 | 2123.356926 | -| terp1urg863rqkmrfjr4hx9nnzfxfssxle6y6xma8cm | 0xe0d07d4460b6c6990eb731673124c9840dfce89a | 3 | 4 | 2123.356926 | -| terp1swvlejvngm2qn7n2xpzjrvq9zc5utxrlfc5lwj | 0x8399fcc99346d409fa6a304521b0051629c5987f | 3 | 4 | 2123.356926 | -| terp1w2pey2nzs928286nqx2spfg4dcy5q2c6rc0t5u | 0x7283922a628154751f53019500a5156e09402b1a | 3 | 4 | 2123.356926 | -| terp1m6frmar5vcwa7de8eyf7hlhrmu9n004cxqae9g | 0xde923df474661ddf3727c913ebfee3df0b37beb8 | 3 | 4 | 2123.356926 | -| terp1s9xkqjvm6sq7efpxephwndqk09nal7xaq5s7ag | 0x814d60499bd401eca426c86ee9b4167967dff8dd | 3 | 4 | 2123.356926 | -| terp1rh7jggz658s65rq6g0sa8czc7vrdyp4786qs2t | 0x1dfd24205aa1e1aa0c1a43e1d3e058f306d206be | 3 | 4 | 2123.356926 | -| terp1jrzpxxwn9dygkrf8kq3v25m4tktct575kxmrnu | 0x90c41319d32b488b0d27b022c553755d9785d3d4 | 3 | 4 | 2123.356926 | -| terp10frut0yvh0ndknqf97t0sye3z2h92cdc7y9uwp | 0x7a47c5bc8cbbe6db4c092f96f8133112ae5561b8 | 3 | 4 | 2123.356926 | -| terp1udkhc7uattv3yrj4nx3g6t27ljrep4wlg45us0 | 0xe36d7c7b9d5ad9120e5599a28d2d5efc8790d5df | 3 | 4 | 2123.356926 | -| terp1fcqznxs9560qyd6cns2nphmuq9gjjyt5sxghvp | 0x4e00299a05a69e0237589c1530df7c0151291174 | 3 | 4 | 2123.356926 | -| terp1gfst8gkrm5tu8fqwx6r4xwttreh2ku7pcd6ryz | 0x4260b3a2c3dd17c3a40e368753396b1e6eab73c1 | 3 | 4 | 2123.356926 | -| terp1cgr9aryy23ytdlt68tgk3yv09wnwn4zlw7p62m | 0xc2065e8c845448b6fd7a3ad168918f2ba6e9d45f | 3 | 4 | 2123.356926 | -| terp1r3rx5wvxtqgq3yxmw2tdzx32yvrj79m0mzxavm | 0x1c466a398658100890db7296d11a2a23072f176f | 3 | 4 | 2123.356926 | -| terp1mhyxlwmn3psv05lykufs4jhd3nv4sugm2kyeyq | 0xddc86fbb738860c7d3e4b7130acaed8cd958711b | 3 | 4 | 2123.356926 | -| terp1xjvj0gy6qepgldzd58xce0kmpfd252hpqldlvr | 0x349927a09a06428fb44da1cd8cbedb0a5aaa2ae1 | 3 | 4 | 2123.356926 | -| terp1ttlpdfhgvak0g3sd5n6ehw9pjmg44ceax2sq2k | 0x5afe16a6e8676cf4460da4f59bb8a196d15ae33d | 3 | 4 | 2123.356926 | -| terp1d92zxk876f96dwsavyslskdtf6c75kr4p9exx6 | 0x69542358fed24ba6ba1d6121f859ab4eb1ea5875 | 3 | 4 | 2123.356926 | -| terp1tzxe3rfvqx66c0sqq384ef90m9lxe2wrs9cju3 | 0x588d988d2c01b5ac3e00044f5ca4afd97e6ca9c3 | 3 | 4 | 2123.356926 | -| terp1gvg4ms9v5wnj3njf6lmyt8gs8jkalgtyqs4v9x | 0x43115dc0aca3a728ce49d7f6459d103caddfa164 | 3 | 4 | 2123.356926 | -| terp1fg22pcz57ylvgsec2787vhgssp5xd9adtysg3r | 0x4a14a0e054f13ec44338578fe65d1080686697ad | 3 | 4 | 2123.356926 | -| terp1urq2v7r3ejpkc62c4nqfe49zfz8058xckdxc50 | 0xe0c0a67871cc836c6958acc09cd4a2488efa1cd8 | 3 | 4 | 2123.356926 | -| terp1n6wqgv02leddma2ght87496ved2smt2976vrjn | 0x9e9c0431eafe5addf548bacfea974ccb550dad45 | 3 | 4 | 2123.356926 | -| terp13r425pd7j5y83qs7exjn6290x667dq8as5epys | 0x88eaaa05be950878821ec9a53d28af36b5e680fd | 3 | 4 | 2123.356926 | -| terp12dct8jj4hdtpu77q2rypsjy88wduawlvy7zdzx | 0x5370b3ca55bb561e7bc050c81848873b9bcebbec | 3 | 4 | 2123.356926 | -| terp1pnmauqcmdkzq00mm375lj8x4xstm5qvpywxelp | 0x0cf7de031b6d8407bf7b8fa9f91cd53417ba0181 | 3 | 4 | 2123.356926 | -| terp1zujamvj5007f476jun35rnmsu2qhw3xvtc6qmk | 0x1725ddb2547bfc9afb52e4e341cf70e2817744cc | 3 | 4 | 2123.356926 | -| terp1tyxul4r7juauhspgenh4449dwmsfqttdagj2ns | 0x590dcfd47e973bcbc028ccef5ad4ad76e0902d6d | 3 | 4 | 2123.356926 | -| terp1shdjzdjt5vjul5m3n6nqhj2jhpknk4yyh8h04v | 0x85db21364ba325cfd3719ea60bc952b86d3b5484 | 3 | 4 | 2123.356926 | -| terp1cvwrxwh46kkd5vypg632s53mxyrwv93uxqfwxy | 0xc31c333af5d5acda308146a2a8523b3106e6163c | 3 | 4 | 2123.356926 | -| terp1pc0cwz9lhlpunxrt7m3e8hff66y9cekmfu3mnu | 0x0e1f8708bfbfc3c9986bf6e393dd29d6885c66db | 3 | 4 | 2123.356926 | -| terp1lsvdrclnj68prka893vpx0y995z2eggwlncydg | 0xfc18d1e3f3968e11dba72c58133c852d04aca10e | 3 | 4 | 2123.356926 | -| terp1lqvd75etuugyk8uf3hgl50ntggqg4lpz4akrtx | 0xf818df532be7104b1f898dd1fa3e6b42008afc22 | 3 | 4 | 2123.356926 | -| terp17c4yjvjtn5q7r88w2y2pw52kwgawj6gule8cey | 0xf62a49324b9d01e19cee5114175156723ae9691c | 3 | 4 | 2123.356926 | -| terp1t29zkqe4gerlp73nyfy038eu2tchdcgr2q7cne | 0x5a8a2b03354647f0fa332248f89f3c52f176e103 | 3 | 4 | 2123.356926 | -| terp1lz5c3rm0tar84llukl4fq55l6x26x0tvdyl6xr | 0xf8a9888f6f5f467afffcb7ea90529fd195a33d6c | 3 | 4 | 2123.356926 | -| terp1n9yfnw3dzad65mpwp4cnep5qz3pktg4rpqua4w | 0x994899ba2d175baa6c2e0d713c8680144365a2a3 | 3 | 4 | 2123.356926 | -| terp1uzgdrzp5tpqcrmtnnp9v6ky9dwmtqnz9vt2xta | 0xe090d18834584181ed73984acd58856bb6b04c45 | 3 | 4 | 2123.356926 | -| terp1vrptcdm3q8p2kpnj2znppafyna8w8ry7zyxemp | 0x60c2bc377101c2ab067250a610f5249f4ee38c9e | 3 | 4 | 2123.356926 | -| terp1gvgvywu3v5h8yh0pqm8zh2x8s53ha3mjp6ytmq | 0x4310c23b91652e725de106ce2ba8c785237ec772 | 3 | 4 | 2123.356926 | -| terp15xyavx9hnfjw749j6s85j2ux6utcaz0vjxdzvw | 0xa189d618b79a64ef54b2d40f492b86d7178e89ec | 3 | 4 | 2123.356926 | -| terp1hzf3yxa6axvzjlwjyzzdav7m5ehursc76cuccg | 0xb893121bbae998297dd22084deb3dba66fc1c31e | 3 | 4 | 2123.356926 | -| terp1fq5rf0he2tgcdnry5wzq5c729ymzxzrgvyvtr0 | 0x482834bef952d186cc64a3840a63ca2936230868 | 3 | 4 | 2123.356926 | -| terp13p6976w3f70dh35zxzwnqcvql44n5tl35nfgsw | 0x88745f69d14f9edbc682309d306180fd6b3a2ff1 | 3 | 4 | 2123.356926 | -| terp1p59nk5cumweclp2xzwtfmqenfntnm37tgtwmtt | 0x0d0b3b531cdbb38f854613969d83334cd73dc7cb | 3 | 4 | 2123.356926 | -| terp1dkhmkf2n2wg4e59jck00ttuachr6f9f22g6u2c | 0x6dafbb255353915cd0b2c59ef5af9dc5c7a4952a | 3 | 4 | 2123.356926 | -| terp1qnajvw7tjmlgfal4ckrfpxf9rrwp2vvwl8gf3h | 0x04fb263bcb96fe84f7f5c58690992518dc15318e | 3 | 4 | 2123.356926 | -| terp1qt92tszx67uujt3petkh9ky82addcqdfs9dken | 0x02caa5c046d7b9c92e21caed72d887575adc01a9 | 3 | 4 | 2123.356926 | -| terp1q0myxc5w9k84uervdh6gw8qqfewpvaf6xq3kpp | 0x03f643628e2d8f5e646c6df4871c004e5c16753a | 3 | 4 | 2123.356926 | -| terp17drz2cs0nqa4t42j9n75ryu5rqwpggta72r276 | 0xf34625620f983b55d5522cfd419394181c14217d | 3 | 4 | 2123.356926 | -| terp1h6hru4dkfhh2wsgt8nmm5wua0l90aytlec70kt | 0xbeae3e55b64deea7410b3cf7ba3b9d7fcafe917f | 3 | 4 | 2123.356926 | -| terp19fq6ler9txah3au8s0gwxxd38puv370hfu3jd7 | 0x2a41afe46559bb78f78783d0e319b13878c8f9f7 | 3 | 4 | 2123.356926 | -| terp1z2tgqymepjccn9q6rjpfdg387g2gp4ng2wt6hm | 0x12968013790cb189941a1c8296a227f21480d668 | 3 | 4 | 2123.356926 | -| terp193qeezeq0vgt89nnfqkc8j4ruy0nvpx9vc5h2v | 0x2c419c8b207b10b39673482d83caa3e11f3604c5 | 3 | 4 | 2123.356926 | -| terp10w2yqqydddqusz9avwxzaujtelfg7j3l3qxdzr | 0x7b9440008d6b41c808bd638c2ef24bcfd28f4a3f | 3 | 4 | 2123.356926 | -| terp1f5easnmx0u3xgjcf75qlp8xt6058d35wsrg9ux | 0x4d33d84f667f22644b09f501f09ccbd3e876c68e | 3 | 4 | 2123.356926 | -| terp1gwe6x6r0lzcqvj3x0dyzf9ysp20c49j9mda8w5 | 0x43b3a3686ff8b0064a267b482494900a9f8a9645 | 3 | 4 | 2123.356926 | -| terp100nhrczrnddzgdzanfhkqdww0ue6pm2x49zzdz | 0x7be771e0439b5a24345d9a6f6035ce7f33a0ed46 | 3 | 4 | 2123.356926 | -| terp1guq8qx406qd97hau49j756q6658pv84t9e0ukg | 0x4700701aafd01a5f5fbca965ea681ad50e161eab | 3 | 4 | 2123.356926 | -| terp1mqze30snev54kmv2mrfrxjyvgpxv0rcmgyu9u3 | 0xd80598be13cb295b6d8ad8d233488c404cc78f1b | 3 | 4 | 2123.356926 | -| terp1a4hzpwr24r557qgw767nl73m7eta8texda45w3 | 0xed6e20b86aa8e94f010ef6bd3ffa3bf657d3af26 | 3 | 4 | 2123.356926 | -| terp1w8ygt3mfdxwc42m5mr9ye22vsz2drd89vlp6a4 | 0x71c885c769699d8aab74d8ca4ca94c8094d1b4e5 | 3 | 4 | 2123.356926 | -| terp1ezs8fzrvw2gapvy3wgal923sjjtxxlfas878sr | 0xc8a074886c7291d0b091723bf2aa309496637d3d | 3 | 4 | 2123.356926 | -| terp1xd3hckucnmqx5kqw0mnlp8xmx3rltla6wlne4y | 0x33637c5b989ec06a580e7ee7f09cdb3447f5ffba | 3 | 4 | 2123.356926 | -| terp1q4r66nyt2zcu8ak3ga5u4ej3xu0plhkw4ttl77 | 0x0547ad4c8b50b1c3f6d14769cae651371e1fdece | 3 | 4 | 2123.356926 | -| terp1ma06mw7j56ty9sdr2fav7q77hgw546stvs475s | 0xdf5fadbbd2a69642c1a3527acf03deba1d4aea0b | 3 | 4 | 2123.356926 | -| terp17f6da4z29gkvmjfgzls4e79w25jqfznsrcccym | 0xf274ded44a2a2ccdc92817e15cf8ae5524048a70 | 3 | 4 | 2123.356926 | -| terp1mte3p8355ukxl4zdkfkz8jvl0axu7pfgp2xa4a | 0xdaf3109e34a72c6fd44db26c23c99f7f4dcf0528 | 3 | 4 | 2123.356926 | -| terp1yuk2wxgnaf5utq4m5ddwukw574pfxm6zna2c0c | 0x272ca71913ea69c582bba35aee59d4f542936f42 | 3 | 4 | 2123.356926 | -| terp1tjxasch5krdlp8k9gwgx3qgpdwuzx9d667gqrl | 0x5c8dd862f4b0dbf09ec543906881016bb82315ba | 3 | 4 | 2123.356926 | -| terp1e5m5n05tk6zjlt0vxvtw6chw8hlqlzsdmt77rs | 0xcd3749be8bb6852fadec3316ed62ee3dfe0f8a0d | 3 | 4 | 2123.356926 | -| terp189dpxhwfyl22qsacpxt3k2wf6pw7pqmgdlhzlu | 0x395a135dc927d4a043b809971b29c9d05de08368 | 3 | 4 | 2123.356926 | -| terp14sh02ykegre4uhvx6rkls24tkck737kdj5m3tu | 0xac2ef512d940f35e5d86d0edf82aabb62de8facd | 3 | 4 | 2123.356926 | -| terp1qkhqdq7ckww389gvq5l8q5u0tqg8x779mgddpg | 0x05ae0683d8b39d13950c053e70538f5810737bc5 | 3 | 4 | 2123.356926 | -| terp1v3vtav8dxdfhsn9ucdkxya8xw8cfwgq0d5ukqa | 0x6458beb0ed3353784cbcc36c6274e671f097200f | 3 | 4 | 2123.356926 | -| terp1d9dhxyudme969s88h768auljaf3vfkcs4rff95 | 0x695b73138dde4ba2c0e7bfb47ef3f2ea62c4db10 | 3 | 4 | 2123.356926 | -| terp1ewgj88ngq4hnqphm0hmxk787dmr69kemfnpv0k | 0xcb91239e68056f3006fb7df66b78fe6ec7a2db3b | 3 | 4 | 2123.356926 | -| terp1ktwyrmc68v25rydndudx487zpzds05vunf246d | 0xb2dc41ef1a3b154191b36f1a6a9fc2089b07d19c | 3 | 4 | 2123.356926 | -| terp1f7czus74clt0ak0dxf2tp4g5kslkn5vtter4yx | 0x4fb02e43d5c7d6fed9ed3254b0d514b43f69d18b | 3 | 4 | 2123.356926 | -| terp1f4wjvl3ce323tf60k9rr3579zguzwnkj0d2y9m | 0x4d5d267e38cc5515a74fb14638d3c51238274ed2 | 3 | 4 | 2123.356926 | -| terp1ymm6rjg9y7aze9ta3fr6zdejv2gdk7u4xmp5d7 | 0x26f7a1c90527ba2c957d8a47a137326290db7b95 | 3 | 4 | 2123.356926 | -| terp1rjn2gsn2y5dphmu8pw4r6yqzhvwzhzj0unq0q0 | 0x1ca6a4426a251a1bef870baa3d1002bb1c2b8a4f | 3 | 4 | 2123.356926 | -| terp14eguvshsp6zatv6nfc95qj704e5q9a8e73ay8g | 0xae51c642f00e85d5b3534e0b404bcfae6802f4f9 | 3 | 4 | 2123.356926 | -| terp1vgrd2sn2lq6gsmgagf92a3apuq683ecz3dfd9k | 0x6206d5426af834886d1d424aaec7a1e03478e702 | 3 | 4 | 2123.356926 | -| terp1nxj823lwsc37gn7k6pm4cwljrq5z4lnpvhn6cm | 0x99a47547ee8623e44fd6d0775c3bf218282afe61 | 3 | 4 | 2123.356926 | -| terp1wfcrk422wzylj0l3l3kvds8xywgq57uq6hqcuh | 0x72703b554a7089f93ff1fc6cc6c0e623900a7b80 | 3 | 4 | 2123.356926 | -| terp1lch6texknmx3smkw6ky8pxgml5dmad4sq8l8pf | 0xfe2fa5e4d69ecd186eced58870991bfd1bbeb6b0 | 3 | 4 | 2123.356926 | -| terp14vvvdnv7h2w5s2ckha0s9ujfq8wfqqz042u9s3 | 0xab18c6cd9eba9d482b16bf5f02f24901dc90004f | 3 | 4 | 2123.356926 | -| terp1q6dprzere0u2tsu4v777af23wagy7qmrhmsdlq | 0x069a118b23cbf8a5c39567bdeea55177504f0363 | 3 | 4 | 2123.356926 | -| terp1xze6vx99dsxpz70qpv5fu9h29trxv8ax4ctlae | 0x30b3a618a56c0c1179e00b289e16ea2ac6661fa6 | 2 | 4 | 2123.356926 | -| terp1ccea5r0a3hlndw5yup6xyh3d60ua8fptfhgtaa | 0xc633da0dfd8dff36ba84e074625e2dd3f9d3a42b | 2 | 4 | 2123.356926 | -| terp1cye8dxjzrxtz5qwscy70qkpqemy9w9tkrzjwmw | 0xc132769a4219962a01d0c13cf05820cec8571576 | 2 | 4 | 2123.356926 | -| terp17xdyyy0e62lael0qlchezsgvdq4d0c89w8xa7z | 0xf19a4211f9d2bfdcfde0fe2f91410c682ad7e0e5 | 2 | 4 | 2123.356926 | -| terp1zn6mzlgwsdygg6g5y4skjurkq39ejsfzz05cda | 0x14f5b17d0e83488469142561697076044b994122 | 2 | 4 | 2123.356926 | -| terp1lflfyaz4wtyqlx8gw7hl22mte269ndyxrsgfqw | 0xfa7e92745572c80f98e877aff52b6bcab459b486 | 2 | 4 | 2123.356926 | -| terp1tu5cfplghgngjq2d7cmvhxmhqujzx2ujrglmup | 0x5f298487e8ba2689014df636cb9b770724232b92 | 2 | 4 | 2123.356926 | -| terp19e095ysvftkvcx6dkpzcl7ga5xzugww0qpnf7q | 0x2e5e5a120c4aeccc1b4db0458ff91da185c439cf | 2 | 4 | 2123.356926 | -| terp1cadlydu89eke488ktnx9c9z9tdr3t5xxlrzkgh | 0xc75bf237872e6d9a9cf65ccc5c14455b4715d0c6 | 2 | 4 | 2123.356926 | -| terp1ux90cdt6jrxs6gcwu3ntnz627zlw44f48r5cld | 0xe18afc357a90cd0d230ee466b98b4af0beead535 | 2 | 4 | 2123.356926 | -| terp12lsd3gy6kux9f8r59246wasu0epxvklc5avdsr | 0x57e0d8a09ab70c549c742aaba7761c7e42665bf8 | 2 | 4 | 2123.356926 | -| terp1jvwfsx9gmp86qvdmdaj6y3pgp3z3yyy9lx37e0 | 0x931c9818a8d84fa031bb6f65a244280c45121085 | 2 | 4 | 2123.356926 | -| terp1e0hrlhxjy7pgpwkl83fvz8rqjqj532dax0dljs | 0xcbee3fdcd2278280badf3c52c11c60902548a9bd | 2 | 4 | 2123.356926 | -| terp1dhy708fmtr2n57jrwxcm60vpxgzm50v62vzk9d | 0x6dc9e79d3b58d53a7a4371b1bd3d813205ba3d9a | 2 | 4 | 2123.356926 | -| terp1gxxlueyz5czmk5q5vn4tzynpp6h3sxwccg8vdq | 0x418dfe6482a605bb501464eab112610eaf1819d8 | 2 | 4 | 2123.356926 | -| terp1gpgzp3uh5e832hyevmyguhr80vkmefdtjnr6cr | 0x405020c797a64f155c9966c88e5c677b2dbca5ab | 2 | 4 | 2123.356926 | -| terp1cev4d7h2a5hnszthvl9707yu7ydyw4rtylsq4y | 0xc65956faeaed2f38097767cbe7f89cf11a47546b | 2 | 4 | 2123.356926 | -| terp1t2dcrxa2zuuxphegxj7vvxfqu0lr475jgnnaf3 | 0x5a9b819baa173860df2834bcc61920e3fe3afa92 | 2 | 4 | 2123.356926 | -| terp1ww9mz3e4h6ljhn2njzm3x3wrkw7d6lut3lqyku | 0x738bb14735bebf2bcd5390b71345c3b3bcdd7f8b | 2 | 4 | 2123.356926 | -| terp1wz75fqx5sqq3k6fslytg3sxwwyxzh703ar3f3k | 0x70bd4480d480011b6930f91688c0ce710c2bf9f1 | 2 | 4 | 2123.356926 | -| terp1tdyxelsr896dnre603has7e2dm3du76yncfmvf | 0x5b486cfe033974d98f3a7c6fd87b2a6ee2de7b44 | 2 | 4 | 2123.356926 | -| terp185jt9vvrd5t5t37ap4ardxvkupjawte0dm9ftt | 0x3d24b2b1836d1745c7dd0d7a369996e065d72f2f | 2 | 4 | 2123.356926 | -| terp1d5r2wycvxdp08cxxp6f3vs83kvxwa0uad6k7m8 | 0x6d06a7130c3342f3e0c60e931640f1b30ceebf9d | 2 | 4 | 2123.356926 | -| terp123ts93rs6q87cq4m96vqlx4u2sl8rs87jxwqzw | 0x545702c470d00fec02bb2e980f9abc543e71c0fe | 2 | 4 | 2123.356926 | -| terp1pppf6yg6t08zf8694fpjzmmw4zngwxr6f6746c | 0x08429d111a5bce249f45aa43216f6ea8a687187a | 2 | 4 | 2123.356926 | -| terp129neacvf6r625fzkt5mpdw49xfzt6lh3tjnfmn | 0x51679ee189d0f4aa24565d3616baa53244bd7ef1 | 2 | 4 | 2123.356926 | -| terp13wvghkwu76tlxl552adwpra4p3wggy6eekt288 | 0x8b988bd9dcf697f37e94575ae08fb50c5c841359 | 2 | 4 | 2123.356926 | -| terp12zzzw0j87slvv8keya3dt74pqw4jvnac7jdhg9 | 0x5084273e47f43ec61ed92762d5faa103ab264fb8 | 2 | 4 | 2123.356926 | -| terp1h2qpxwrmzfpayysr8k3d5h7akfuv2xp7yd0pxp | 0xba8013387b1243d212033da2da5fddb278c5183e | 2 | 4 | 2123.356926 | -| terp12c2yc3gnq5q8cvv8dz4k43s8r9c7agmrvypx0y | 0x56144c451305007c318768ab6ac6071971eea363 | 2 | 4 | 2123.356926 | -| terp1k8r52q3n0ax2e5k2q8xtga0fux7j36qqlls53n | 0xb1c74502337f4cacd2ca01ccb475e9e1bd28e800 | 2 | 4 | 2123.356926 | -| terp1qjpxhuzcja68wc4ge0gl6yqjd3hnpkwc2x9c7c | 0x04826bf05897747762a8cbd1fd10126c6f30d9d8 | 2 | 4 | 2123.356926 | -| terp19c30rw333g9j9zqugrgcwyu5rct32e642pv9wv | 0x2e22f1ba318a0b22881c40d18713941e17156755 | 2 | 4 | 2123.356926 | -| terp1z5aa972kggqcl34yrywfct2zhgmjlph3c6ja64 | 0x153bd2f95642018fc6a4191c9c2d42ba372f86f1 | 2 | 4 | 2123.356926 | -| terp1n0hl5qqd8efkztdcpddp6uadyz8lpg8r8x0lwt | 0x9beffa000d3e53612db80b5a1d73ad208ff0a0e3 | 2 | 4 | 2123.356926 | -| terp1ydcp2f3krn4p22vhh9jdg98hc9zet3y8llw343 | 0x23701526361cea152997b964d414f7c14595c487 | 2 | 4 | 2123.356926 | -| terp1gqxhug8ecp4z8ee0djs0xjf28uj0dx96uye7vu | 0x400d7e20f9c06a23e72f6ca0f3492a3f24f698ba | 2 | 4 | 2123.356926 | -| terp1vw93x5yjqveaywn6w3evqz49cwxz0zussscll5 | 0x638b1350920333d23a7a7472c00aa5c38c278b90 | 2 | 4 | 2123.356926 | -| terp1y6dplutwp9ax54g6vt23vaznvuncktmhrvlrqm | 0x269a1ff16e097a6a551a62d516745367278b2f77 | 2 | 4 | 2123.356926 | -| terp15dgu93luk7yva5yzwtjs8wl2u7z4q0pzrw8ru5 | 0xa351c2c7fcb788ced08272e503bbeae785503c22 | 2 | 4 | 2123.356926 | -| terp1yqh986y25cqepptlxr0y89wnm9s50y0q7tg9vl | 0x202e53e88aa60190857f30de4395d3d9614791e0 | 2 | 4 | 2123.356926 | -| terp1m5el0nmlwmd04e8chn4tz843lusmqvk72jg3ds | 0xdd33f7cf7f76dafae4f8bceab11eb1ff21b032de | 2 | 4 | 2123.356926 | -| terp12m7xvty3dawkupp0cpjthkxjfveh39eer82hth | 0x56fc662c916f5d6e042fc064bbd8d24b33789739 | 2 | 4 | 2123.356926 | -| terp1zpa5njv4cjpvshfm07hagg53js2afv9yc2cgtr | 0x107b49c995c482c85d3b7fafd422919415d4b0a4 | 2 | 4 | 2123.356926 | -| terp1m9j3ke2pdakfppjdx5wqhvgyx6yj35du6uzmfw | 0xd9651b65416f6c90864d351c0bb104368928d1bc | 2 | 4 | 2123.356926 | -| terp1nzutvjn0jpz3pf4sluykj4we52t7eapvr8q4a8 | 0x98b8b64a6f904510a6b0ff096955d9a297ecf42c | 2 | 4 | 2123.356926 | -| terp1uu8xf8hw4y90rvgp7g9xsumpxjjeqjw03ns62p | 0xe70e649eeea90af1b101f20a68736134a59049cf | 2 | 4 | 2123.356926 | -| terp1w9m452cdd09sr3xdznlfptg9azxlzpjr0x9dyp | 0x71775a2b0d6bcb01c4cd14fe90ad05e88df10643 | 2 | 4 | 2123.356926 | -| terp16shp3ycwqwthna86a7n2yr36amgr4s8qfn3thx | 0xd42e18930e039779f4faefa6a20e3aeed03ac0e0 | 2 | 4 | 2123.356926 | -| terp1rr0qyl975au59qp2pc9aka43u3s3tr3j7tzw8l | 0x18de027cbea77942802a0e0bdb76b1e461158e32 | 2 | 4 | 2123.356926 | -| terp15ltds4vhzya79ncma65dshlpdvgylt0h8nsqg4 | 0xa7d6d85597113be2cf1beea8d85fe16b104fadf7 | 2 | 4 | 2123.356926 | -| terp19fxxgylnhe47sdudcy0umgmxj7d5zg6zparurc | 0x2a4c6413f3be6be8378dc11fcda366979b412342 | 2 | 4 | 2123.356926 | -| terp1vzhvkhddxsvzva95ky3m26l0497w94zpwgklhf | 0x60aecb5dad34182674b4b123b56befa97ce2d441 | 2 | 4 | 2123.356926 | -| terp16n4prplu8vlxecssyvjct5dpkyray4jkh3vy78 | 0xd4ea1187fc3b3e6ce210232585d1a1b107d25656 | 2 | 4 | 2123.356926 | -| terp1dmga8mavp5esm64jtsglchl6ddaace2gg40hc7 | 0x6ed1d3efac0d330deab25c11fc5ffa6b7bdc6548 | 2 | 4 | 2123.356926 | -| terp1drz63nzx73vc49e3x7hmnwu7f7mzu060r8f7jy | 0x68c5a8cc46f4598a973137afb9bb9e4fb62e3f4f | 2 | 4 | 2123.356926 | -| terp1cdzk8j095x9p2ay22ppegjkyhkrnf9r70ycfal | 0xc34563c9e5a18a15748a5043944ac4bd8734947e | 2 | 4 | 2123.356926 | -| terp1nqm508myntthezd8kyam3aztfgscxf626q2syd | 0x9837479f649ad77c89a7b13bb8f44b4a2183274a | 2 | 4 | 2123.356926 | -| terp1806vnz6ay482w53d4t0suzp7ytmsg7nnmk5e4n | 0x3bf4c98b5d254ea7522daadf0e083e22f7047a73 | 2 | 4 | 2123.356926 | -| terp19pfr468urm6pze56fu5y6d8jqvzrf5u2e48mcf | 0x28523ae8fc1ef411669a4f284d34f2030434d38a | 2 | 4 | 2123.356926 | -| terp1jmqkgkz6ht55pmgyxqyfmqvxkyvlp8tcnl3ht7 | 0x96c164585abae940ed0430089d8186b119f09d78 | 2 | 4 | 2123.356926 | -| terp1kapa76yrrth094cqkcvxfapvypj3hvx4vkpw68 | 0xb743df68831aeef2d700b61864f42c20651bb0d5 | 2 | 4 | 2123.356926 | -| terp1q5nqd88dhg02vp53vh6sg92t5c5mwchvu8pe3m | 0x0526069cedba1ea6069165f504154ba629b762ec | 2 | 4 | 2123.356926 | -| terp1wsftcftr2k4aytw48h368r5fjk6afsw30shpyr | 0x7412bc256355abd22dd53de3a38e8995b5d4c1d1 | 2 | 4 | 2123.356926 | -| terp1p3k4nax55575lkyrjl0zavd96zvcf6k6ap3gea | 0x0c6d59f4d4a53d4fd88397de2eb1a5d09984eada | 2 | 4 | 2123.356926 | -| terp1p8vfa3qrkky5jdnqku8f7zqr467t0cpg50ypfg | 0x09d89ec403b589493660b70e9f0803aebcb7e028 | 2 | 4 | 2123.356926 | -| terp1m6uc4l4vjkqhx9rmedqkjpgpujvhrgcdahuvkf | 0xdeb98afeac958173147bcb41690501e49971a30d | 2 | 4 | 2123.356926 | -| terp10r6wnmx2pqz8f0pfx4f6ccqmlwmzy6g4drlfwv | 0x78f4e9ecca080474bc293553ac601bfbb6226915 | 2 | 4 | 2123.356926 | -| terp156t76wc85x67nv835fpdw3c7nmdpa4s054wg8h | 0xa697ed3b07a1b5e9b0f1a242d7471e9eda1ed60f | 2 | 4 | 2123.356926 | -| terp1hdtf64f53v2yd68jvptaw74f0vhrzqkaj6yjg7 | 0xbb569d55348b1446e8f26057d77aa97b2e3102dd | 2 | 4 | 2123.356926 | -| terp1gkdsdmhdp0035j3v3rxv4swjg9j6a944y0rxve | 0x459b06eeed0bdf1a4a2c88cccac1d24165ae96b5 | 2 | 4 | 2123.356926 | -| terp1ttkucug9gr6d5rhzgu2h92msl2w0n4c8zlgxr8 | 0x5aedcc710540f4da0ee2471572ab70fa9cf9d707 | 2 | 4 | 2123.356926 | -| terp15s7cuvrvxdcam4drq7k4fyvev4ek2zd4j7ewd6 | 0xa43d8e306c3371ddd5a307ad54919965736509b5 | 2 | 4 | 2123.356926 | -| terp1rv22fgcx4ttwhphkhwexpryvg8z2g6a0enmvtg | 0x1b14a4a306aad6eb86f6bbb2608c8c41c4a46baf | 2 | 4 | 2123.356926 | -| terp1av4ksq3n9s4gd0jy0xcejwaqtt7er5cqwwu5p8 | 0xeb2b6802332c2a86be4479b1993ba05afd91d300 | 2 | 4 | 2123.356926 | -| terp1ystepu6x0fy5jvffy7zywpjs2phnm8vt6zpz99 | 0x241790f3467a494931292784470650506f3d9d8b | 2 | 4 | 2123.356926 | -| terp1g80pamfluxrp3uxl2k82xc79ytkp3cv52c80lz | 0x41de1eed3fe18618f0df558ea363c522ec18e194 | 2 | 4 | 2123.356926 | -| terp1x2hqhw5s6zffu5rjt7vazddds6s9ku3qzq7806 | 0x32ae0bba90d0929e50725f99d135ad86a05b7220 | 2 | 4 | 2123.356926 | -| terp1pg82szsryuf20qmhvrpg6w5pls9ckttpa4h9du | 0x0a0ea80a032712a7837760c28d3a81fc0b8b2d61 | 2 | 4 | 2123.356926 | -| terp14lh7z8x8kwnjnql4e4nnsgmaw2cgf94gfjkaju | 0xafefe11cc7b3a72983f5cd6738237d72b08496a8 | 2 | 4 | 2123.356926 | -| terp17ntmmmsrl8h0stus7smn3pe5dyxs3w2zz0kldl | 0xf4d7bdee03f9eef82f90f437388734690d08b942 | 2 | 4 | 2123.356926 | -| terp1x408508t677rwdh7hyfz6y4qkek87x0twgdwlf | 0x355e7a3cebd7bc3736feb9122d12a0b66c7f19eb | 2 | 4 | 2123.356926 | -| terp13d3292dvynlnd6qt5gvytxsafq8wnw9att9upx | 0x8b62a2a9ac24ff36e80ba218459a1d480ee9b8bd | 2 | 4 | 2123.356926 | -| terp1qchkwkyejnkzvn4kkcu994kjpcn6g6j9pja6qd | 0x062f67589994ec264eb6b63852d6d20e27a46a45 | 2 | 4 | 2123.356926 | -| terp1yfahulwntc6xs33t9ytu5fmaez7rny4286mnqr | 0x227b7e7dd35e3468462b2917ca277dc8bc3992aa | 2 | 4 | 2123.356926 | -| terp1njj22tflgfgzcfj5837yvfy978lwdqwecegzdl | 0x9ca4a52d3f42502c26543c7c462485f1fee681d9 | 2 | 4 | 2123.356926 | -| terp1ttmlujece2rfcppwua2dtzzrg3x7s6gy6ftqg7 | 0x5af7fe4b38ca869c042ee754d58843444de86904 | 2 | 4 | 2123.356926 | -| terp1pnexfqen0nu3h7xph3heq5lqux4vyum9ay7gr8 | 0x0cf26483337cf91bf8c1bc6f9053e0e1aac27365 | 2 | 4 | 2123.356926 | -| terp1z2g9z3mmnnx9kjx3xc4pl857aa4s960r2nmuaq | 0x129051477b9ccc5b48d1362a1f9e9eef6b02e9e3 | 2 | 4 | 2123.356926 | -| terp1tlf92a0na5377n056qasw4xtgvef07clygyshm | 0x5fd25575f3ed23ef4df4d03b0754cb433297fb1f | 2 | 4 | 2123.356926 | -| terp139a8e69j5apk7syl2wyef60s2aumcsfme7rvat | 0x897a7ce8b2a7436f409f538994e9f05779bc413b | 2 | 4 | 2123.356926 | -| terp1akgh30earr39srzdj9m0ap3ta5c3gj9mej0a9f | 0xed9178bf3d18e2580c4d9176fe862bed311448bb | 2 | 4 | 2123.356926 | -| terp1vp9n3038cyhwkz049tju7qhvuv3a9v99zqlfjp | 0x604b38be27c12eeb09f52ae5cf02ece323d2b0a5 | 2 | 4 | 2123.356926 | -| terp1k5fmghclu85z6utf53wjh7mvjrwke2c0mhfwae | 0xb513b45f1fe1e82d7169a45d2bfb6c90dd6cab0f | 2 | 4 | 2123.356926 | -| terp1crqphj3e3navgszwrr274j93wnwqdmzcmycsxk | 0xc0c01bca398cfac4404e18d5eac8b174dc06ec58 | 2 | 4 | 2123.356926 | -| terp1he3ektq2facp46an8d3kdycrgfrxef3j62sdzx | 0xbe639b2c0a4f701aebb33b6366930342466ca632 | 2 | 4 | 2123.356926 | -| terp1s3uhkrcxvljrk94xggq8rp7ngtr7s6mt2kqjrz | 0x84797b0f0667e43b16a642007187d342c7e86b6b | 2 | 4 | 2123.356926 | -| terp1zgxm3zce3nfccxnqg9vum2u5g7856etuzwxa9s | 0x120db88b198cd38c1a604159cdab94478f4d657c | 2 | 4 | 2123.356926 | -| terp14rttg25gh5dwkc0xklwwgawfvj7h96ccacwaq8 | 0xa8d6b42a88bd1aeb61e6b7dce475c964bd72eb18 | 2 | 4 | 2123.356926 | -| terp143dv9erg3pc0w9cev6aa0palqcsgtw5ntzk975 | 0xac5ac2e4688870f7171966bbd787bf062085ba93 | 2 | 4 | 2123.356926 | -| terp1w8c4s3uwt70wcsmzxsggpv0wpjmkjz4v05af6r | 0x71f158478e5f9eec4362341080b1ee0cb7690aac | 2 | 4 | 2123.356926 | -| terp1smvww80ceuwjykcnxs30r36se4kakyuv5dt767 | 0x86d8e71df8cf1d225b133422f1c750cd6ddb138c | 2 | 4 | 2123.356926 | -| terp1sxrr7r8hsdv04ksznd74lg9cge6gqth3f2sfzn | 0x81863f0cf78358fada029b7d5fa0b84674802ef1 | 2 | 4 | 2123.356926 | -| terp1h33yrhn8hmcr5qdy0tdu5r8wzjjglrqvkvrs9y | 0xbc6241de67bef03a01a47adbca0cee14a48f8c0c | 2 | 4 | 2123.356926 | -| terp1mwcwqm3dpw8rqlcnf38qgxs9kdpvdccycm60um | 0xdbb0e06e2d0b8e307f134c4e041a05b342c6e304 | 2 | 4 | 2123.356926 | -| terp15d9n46ln848zgnpalyq4xe00drhx9a7rdhnpjg | 0xa34b3aebf33d4e244c3df9015365ef68ee62f7c3 | 2 | 4 | 2123.356926 | -| terp1mz8uq2t2sse8f0kmw8anez7nqhaaq98vghy0uv | 0xd88fc0296a843274bedb71fb3c8bd305fbd014ec | 2 | 4 | 2123.356926 | -| terp10x9eme7e8t3993a3220624ss9ths92vz7klqv8 | 0x798b9de7d93ae252c7b1529fa556102aef02a982 | 2 | 4 | 2123.356926 | -| terp18krylg0294a8aw52y2nskqag2wft4md2s8dcx3 | 0x3d864fa1ea2d7a7eba8a22a70b03a85392baedaa | 2 | 4 | 2123.356926 | -| terp1j2y77dj7ax76hcpzmazms6439p6vfjxd54as56 | 0x9289ef365ee9bdabe022df45b86ab12874c4c8cd | 2 | 4 | 2123.356926 | -| terp1hksjqa28g93q7mhwds8lgqs3n87fgmhevy0x8h | 0xbda120754741620f6eee6c0ff4021199fc946ef9 | 2 | 4 | 2123.356926 | -| terp1tnrjh3tn3ssaqzyszt42r3usvhvelhpc9uelzp | 0x5cc72bc5738c21d0089012eaa1c79065d99fdc38 | 2 | 4 | 2123.356926 | -| terp1uxxwndhppvfnwa4h2kvu85lr0ztpzx79pvg5pr | 0xe18ce9b6e10b133776b75599c3d3e37896111bc5 | 2 | 4 | 2123.356926 | -| terp12smufs3l7tczsr6nlx6lqsmx66yuvtv9jeat9m | 0x5437c4c23ff2f0280f53f9b5f04366d689c62d85 | 2 | 4 | 2123.356926 | -| terp1l70nf76l4sux2da0s8pstcnrrgqmqjfsl3lyxe | 0xff9f34fb5fac386537af81c305e2631a01b04930 | 2 | 4 | 2123.356926 | -| terp1whx9dkvpwsvrpl6ku2w2sgfvnm96uh92puhex9 | 0x75cc56d981741830ff56e29ca8212c9ecbae5caa | 2 | 4 | 2123.356926 | -| terp1dls6my36q6fcdye793l334tk5xka6ppxlm67n4 | 0x6fe1ad923a069386933e2c7f18d576a1addd0426 | 2 | 4 | 2123.356926 | -| terp19lfwpv9pcnttehl4zltal90h64htrc35c2ezpk | 0x2fd2e0b0a1c4d6bcdff517d7df95f7d56eb1e234 | 2 | 4 | 2123.356926 | -| terp1prcrs58jmke359fzmkg703f3a2l6v4m2tm2dc7 | 0x08f03850f2ddb31a1522dd91e7c531eabfa6576a | 2 | 4 | 2123.356926 | -| terp10tvyuzt6eqnplwnmfvd0uglds32n5cvdhac0tx | 0x7ad84e097ac8261fba7b4b1afe23ed84553a618d | 2 | 4 | 2123.356926 | -| terp1ktnp25fvt369wwgks48quc5jpjgcudz4aljytt | 0xb2e615512c5c74573916854e0e62920c918e3455 | 2 | 4 | 2123.356926 | -| terp10sf7v3ux8lvzp7gy8e6f4pnfl8ff3juukerju6 | 0x7c13e647863fd820f9043e749a8669f9d298cb9c | 2 | 4 | 2123.356926 | -| terp12kmt9l0dg2wkh3xqd2g2jup6ht3264suck5x4k | 0x55b6b2fded429d6bc4c06a90a9703abae2ad561c | 2 | 4 | 2123.356926 | -| terp1y23yxa4825wec08s7km59qswrenl773js4gmmp | 0x22a24376a7551d9c3cf0f5b742820e1e67ff7a32 | 2 | 4 | 2123.356926 | -| terp1qfezwtqa40ct84z0upx0dfsw05z56ddzd5dxm5 | 0x0272272c1dabf0b3d44fe04cf6a60e7d054d35a2 | 2 | 4 | 2123.356926 | -| terp194t3aqxqu476xh5pkcgqs25xz9zlsj2sxma4sd | 0x2d571e80c0e57da35e81b610082a861145f84950 | 2 | 4 | 2123.356926 | -| terp1y4cscxkad6f6nwpes3t3d2ydtn5l95j27c4z0j | 0x25710c1add6e93a9b839845716a88d5ce9f2d24a | 2 | 4 | 2123.356926 | -| terp1ynkyxz34ysfucle4f5k8aapzhp2qkne2ff6dxs | 0x24ec430a352413cc7f354d2c7ef422b8540b4f2a | 2 | 4 | 2123.356926 | -| terp18xvnnwf52c39j6a284hcnzwygtrvn2cq4g4r26 | 0x399939b9345622596baa3d6f8989c442c6c9ab00 | 2 | 4 | 2123.356926 | -| terp12xmwrjelgf8w3ra9geh043pgx8qmacwas94wq8 | 0x51b6e1cb3f424ee88fa5466efac42831c1bee1dd | 2 | 4 | 2123.356926 | -| terp1snp8ntx74depvdn5235jq06gkvjjktm5ezjvx8 | 0x84c279acdeab721636745469203f48b3252b2f74 | 2 | 4 | 2123.356926 | -| terp1h457pzykhlhqmu22yyg2e0wrvvf099ud685fcs | 0xbd69e08896bfee0df14a2110acbdc36312f2978d | 2 | 4 | 2123.356926 | -| terp1f8whlvg5gyvykqdly58lv6pzcvakdsvfugcxnd | 0x49dd7fb11441184b01bf250ff66822c33b66c189 | 2 | 4 | 2123.356926 | -| terp1962xzhu7jqeln7emhhk3cw28c8m2lrva20n0hg | 0x2e94615f9e9033f9fb3bbded1c3947c1f6af8d9d | 2 | 4 | 2123.356926 | -| terp1wsyaqfpfsedqysn57yjvj3xlj6p96ef8mst833 | 0x7409d02429865a024274f124c944df96825d6527 | 2 | 4 | 2123.356926 | -| terp1j5eqwr6q8kq4uyxhqcc6jnspjy5xtecyca4pgs | 0x9532070f403d815e10d70631a94e01912865e704 | 2 | 4 | 2123.356926 | -| terp1yu5p69aqehrugeycz56f33hgg3v0dcgww33f3x | 0x27281d17a0cdc7c46498153498c6e84458f6e10e | 2 | 4 | 2123.356926 | -| terp1fmwfhunm5na2kdr9a4u6653w6vwyj0symv0k9u | 0x4edc9bf27ba4faab3465ed79ad522ed31c493e04 | 2 | 4 | 2123.356926 | -| terp1gmzn0dd4l252v8j08fjnde754l0jjv5zptxlw8 | 0x46c537b5b5faa8a61e4f3a6536e7d4afdf293282 | 2 | 4 | 2123.356926 | -| terp1vucwnvzrpvv9qu8466h65cw2ecw4ay3pr4nem6 | 0x6730e9b0430b185070f5d6afaa61cace1d5e9221 | 2 | 4 | 2123.356926 | -| terp150qltvt6mujdscfw533hcxn5ljs07mmqn67zus | 0xa3c1f5b17adf24d8612ea4637c1a74fca0ff6f60 | 2 | 4 | 2123.356926 | -| terp1f9v7jxvd6jtjgntfvjr9q9s33cfsmeqq6gdqwq | 0x4959e9198dd497244d6964865016118e130de400 | 2 | 4 | 2123.356926 | -| terp13u3384h0pctpgng996hs8ashs48cr54fr80kps | 0x8f2313d6ef0e16144d052eaf03f617854f81d2a9 | 2 | 4 | 2123.356926 | -| terp1lvc0x55mzdgzgg4hamkk84cvu5c3g99cu9pvpm | 0xfb30f3529b13502422b7eeed63d70ce5311414b8 | 2 | 4 | 2123.356926 | -| terp12xkcmljq9u6xhx6zjj6d4wycu3uxhgvpmckw4j | 0x51ad8dfe402f346b9b4294b4dab898e4786ba181 | 2 | 4 | 2123.356926 | -| terp1hhwd80plrdpgpdajn76n28hc4luxet36xxxpuh | 0xbddcd3bc3f1b4280b7b29fb5351ef8aff86cae3a | 2 | 4 | 2123.356926 | -| terp1xxkzflhvp0d4lvwa8duuhr9y5nwgzfqt0jd76y | 0x31ac24feec0bdb5fb1dd3b79cb8ca4a4dc81240b | 2 | 4 | 2123.356926 | -| terp179839qdcnfrkgedegel87x4v6l5khvt6c2fpj4 | 0xf14f1281b89a476465b9467e7f1aacd7e96bb17a | 2 | 4 | 2123.356926 | -| terp1msr70pyf8k0cpz4z6mwa8kmj07ttlx6tudc6nm | 0xdc07e784893d9f808aa2d6ddd3db727f96bf9b4b | 2 | 4 | 2123.356926 | -| terp1yyx3yjffj7llq84g6mpz7h5zjpxh3jeud80ea8 | 0x210d12492997bff01ea8d6c22f5e82904d78cb3c | 2 | 4 | 2123.356926 | -| terp1cnm2r5nymjfn6amhsut69er829nkg6mupr0wlr | 0xc4f6a1d264dc933d77778717a2e4675167646b7c | 2 | 4 | 2123.356926 | -| terp1h776slx6dem7zfhx2s72vje2hpxt7mnay4ur2v | 0xbfbda87cda6e77e126e6543ca64b2ab84cbf6e7d | 2 | 4 | 2123.356926 | -| terp189p7zygnzhp0rzpjx3r2jxcynrqre26v6rfs05 | 0x3943e1111315c2f188323446a91b0498c03cab4c | 2 | 4 | 2123.356926 | -| terp12ezly4p5h55dhskfqn0rlk5fh85gpqjf9jmq5v | 0x5645f25434bd28dbc2c904de3fda89b9e8808249 | 2 | 4 | 2123.356926 | -| terp18p3vnczghzvlhs0d4t50gtz98el7yahfqdede5 | 0x3862c9e048b899fbc1edaae8f42c453e7fe276e9 | 2 | 4 | 2123.356926 | -| terp1rn3me5aupjzg7lrzgytg2v7sa39tyj8sne2kww | 0x1ce3bcd3bc0c848f7c6241168533d0ec4ab248f0 | 2 | 4 | 2123.356926 | -| terp1x4unz7gjsn6qwed5v24845sha0uzjgxtu8v6zl | 0x357931791284f40765b462aa7ad217ebf82920cb | 2 | 4 | 2123.356926 | -| terp1uvu5zlxvttrhvxvlm548zreetznq4awe038znh | 0xe339417ccc5ac776199fdd2a710f3958a60af5d9 | 2 | 4 | 2123.356926 | -| terp1jmehv5yhzjnycuc3kdwqe30l0pqsnfznujr6m9 | 0x96f376509714a64c7311b35c0cc5ff784109a453 | 2 | 4 | 2123.356926 | -| terp1jkdsd26j6j3y3z9jvv23flsf3avvv57hj0lq65 | 0x959b06ab52d4a24888b2631514fe098f58c653d7 | 2 | 4 | 2123.356926 | -| terp1h395zv864yaya8q38h6g2jy05de369m8p6vqes | 0xbc4b4130faa93a4e9c113df485488fa3731d1767 | 2 | 4 | 2123.356926 | -| terp1e03s7cun73mf2jjkdeawmrnkl8gakl7dyn9a5v | 0xcbe30f6393f476954a566e7aed8e76f9d1db7fcd | 2 | 4 | 2123.356926 | -| terp1kyt0r9qhjsvty3cn5ef4zj00vdl6zve9dc75jf | 0xb116f194179418b24713a6535149ef637fa13325 | 2 | 4 | 2123.356926 | -| terp14k7rnsj5fgs7jzst70yhwqz4yrzl7hksawpmtd | 0xadbc39c2544a21e90a0bf3c977005520c5ff5ed0 | 2 | 4 | 2123.356926 | -| terp1g8p2hg5xhgy8kwjm7x04ywzcly63tup9dc4vns | 0x41c2aba286ba087b3a5bf19f523858f93515f025 | 2 | 4 | 2123.356926 | -| terp1mtryzdxv7lf8nwxxz7yglkssn6hxvsk76xak6a | 0xdac64134ccf7d279b8c617888fda109eae6642de | 2 | 4 | 2123.356926 | -| terp1zd8khyad5vmsj5u696a7x42xuyhtekpck6qtq3 | 0x134f6b93ada33709539a2ebbe35546e12ebcd838 | 2 | 4 | 2123.356926 | -| terp12ltm70s99hhtlw3p4dv9twhvs57t6yyxc4rv28 | 0x57d7bf3e052deebfba21ab5855baec853cbd1086 | 2 | 4 | 2123.356926 | -| terp1jl063f7s7hpfyd9lc92kjuqvp48m2sml5ulddr | 0x97dfa8a7d0f5c29234bfc15569700c0d4fb5437f | 2 | 4 | 2123.356926 | -| terp10umdmyh7ex452v5rlh26pw2k60jk6d59sqjqf8 | 0x7f36dd92fec9ab453283fdd5a0b956d3e56d3685 | 2 | 4 | 2123.356926 | -| terp12mzcqa0wgtnu9rkpj7l0q4y3zgnzur4yt40kgv | 0x56c58075ee42e7c28ec197bef0549112262e0ea4 | 2 | 4 | 2123.356926 | -| terp1rd2tkm63jdfryah3xjjl4ytm4kr9kauzse9p2w | 0x1b54bb6f5193523276f134a5fa917bad865b7782 | 2 | 4 | 2123.356926 | -| terp1wuezlsqz0srgvvpw73xtf2x7r3shtw994uhy9x | 0x77322fc0027c0686302ef44cb4a8de1c6175b8a5 | 2 | 4 | 2123.356926 | -| terp1wyfve7wle3q506ch9uzlm20x8w63geksxf2sz4 | 0x7112ccf9dfcc4147eb172f05fda9e63bb51466d0 | 2 | 4 | 2123.356926 | -| terp1zph2vhg9d7qgwzdn7e9zxpsp0h6nhqyup9f55v | 0x106ea65d056f808709b3f64a2306017df53b809c | 2 | 4 | 2123.356926 | -| terp16sa4quvvekfuj3mv9q4jdrq3ty78z5qzqhjusw | 0xd43b50718ccd93c9476c282b268c11593c715002 | 2 | 4 | 2123.356926 | -| terp1usq66y237q5n0judxsjjf9uxkym5kz28ry3h55 | 0xe401ad1151f02937cb8d3425249786b1374b0947 | 2 | 4 | 2123.356926 | -| terp1lfwsthm39vzekaxvaljqs3u9heljagdc46czp7 | 0xfa5d05df712b059b74ccefe4084785be7f2ea1b8 | 2 | 4 | 2123.356926 | -| terp1vf7exsgzavras07uv0322zhevjf6g3tjuqp3gd | 0x627d934102eb07d83fdc63e2a50af96493a44572 | 2 | 4 | 2123.356926 | -| terp14cc0ndenrr6z7hspuktmjlys9a842m056wwwd2 | 0xae30f9b73318f42f5e01e597b97c902f4f556df4 | 2 | 4 | 2123.356926 | -| terp13f95v3lqg9fe6yj4nrlmx2yl774hky68j6ekmj | 0x8a4b4647e041539d125598ffb3289ff7ab7b1347 | 2 | 4 | 2123.356926 | -| terp136qzsrem9dl4ganwx8rfjhp3tpy2vau229h7pz | 0x8e80280f3b2b7f54766e31c6995c315848a6778a | 2 | 4 | 2123.356926 | -| terp1cazxfnsm35c2l9spds88gneurxyf22j03vf3za | 0xc74464ce1b8d30af96016c0e744f3c1988952a4f | 2 | 4 | 2123.356926 | -| terp1yl2d3uluztjessrzu3xh8j2cu98qpkh5r24a6x | 0x27d4d8f3fc12e5984062e44d73c958e14e00daf4 | 2 | 4 | 2123.356926 | -| terp1jx3ewuramp6a4qxn4jcnhtal4yqnw3f67qtpdf | 0x91a397707dd875da80d3acb13bafbfa90137453a | 2 | 4 | 2123.356926 | -| terp1kftgjsplqe76kfw68cchw4s0qe93zehx48w5n3 | 0xb25689403f067dab25da3e3177560f064b1166e6 | 2 | 4 | 2123.356926 | -| terp1fknkkh642yxxzq5tsaumvyk6n7cvsv4s4udpte | 0x4da76b5f55510c61028b8779b612da9fb0c832b0 | 2 | 4 | 2123.356926 | -| terp1844enckggge3aqufwepnewcrfx25rve7qfzgtg | 0x3d6b99e2c842331e838976433cbb03499541b33e | 2 | 4 | 2123.356926 | -| terp15gy9ur4h87segapsylq0js7pzpzdescg3xwuc9 | 0xa2085e0eb73fa194743027c0f943c11044dcc308 | 2 | 4 | 2123.356926 | -| terp1tvd46l6pnjxzdfhd2x6xmvy6ucmk4qk6t28v0a | 0x5b1b5d7f419c8c26a6ed51b46db09ae6376a82da | 2 | 4 | 2123.356926 | -| terp1n2zf3cf3pkczcn4aht6a5p52sw302jxpe4pe8q | 0x9a8498e1310db02c4ebdbaf5da068a83a2f548c1 | 2 | 4 | 2123.356926 | -| terp1s64ggd8zrwh4k24l47j4l4w5s230erc235pn3y | 0x86aa8434e21baf5b2abfafa55fd5d482a2fc8f0a | 2 | 4 | 2123.356926 | -| terp1yrsly3ugralutnxp0v0kfa6qm6rqkvqdjxaj2x | 0x20e1f247881f7fc5ccc17b1f64f740de860b300d | 2 | 4 | 2123.356926 | -| terp14wqahvswzkcz8w0ydpyljd052npxu65qzr8d6f | 0xab81dbb20e15b023b9e46849f935f454c26e6a80 | 2 | 4 | 2123.356926 | -| terp1zr0jnhkxm9yqt4z7p4yr9xczpvceqp9khaca5p | 0x10df29dec6d94805d45e0d48329b020b319004b6 | 2 | 4 | 2123.356926 | -| terp1pqqyq7g0ug353avel57034wvnqtj6wgl04g6ak | 0x080040790fe22348f599fd3cf8d5cc98172d391f | 2 | 4 | 2123.356926 | -| terp1u0rwuauzk4yqx3jsfppfkeczpfkvz8qvltct2e | 0xe3c6ee7782b54803465048429b67020a6cc11c0c | 2 | 4 | 2123.356926 | -| terp16w940vx7q57tqj52w9lgahwkalev0p6rcengsz | 0xd38b57b0de053cb04a8a717e8eddd6eff2c78743 | 2 | 4 | 2123.356926 | -| terp1z8z8g87qm0sag4cw3dh4kykchnvp0kw6cuqvw7 | 0x11c4741fc0dbe1d4570e8b6f5b12d8bcd817d9da | 2 | 4 | 2123.356926 | -| terp1mpa4rnypwt7m9gzd5edg2rruhy2dd384ft99t8 | 0xd87b51cc8172fdb2a04da65a850c7cb914d6c4f5 | 2 | 4 | 2123.356926 | -| terp1knyelxr6na5wuz3nglahfsrqhscrtdy37lgsvt | 0xb4c99f987a9f68ee0a3347fb74c060bc3035b491 | 2 | 4 | 2123.356926 | -| terp143k34jqulvud8zdjszmneqzjp09qexfelf004d | 0xac6d1ac81cfb38d389b280b73c80520bca0c9939 | 2 | 4 | 2123.356926 | -| terp1aj3f5sad40q3qm6a4lhueqx9u7g2p3rxfq08pt | 0xeca29a43adabc1106f5dafefcc80c5e790a0c466 | 2 | 4 | 2123.356926 | -| terp1mjwnzs646wzrr0e8gfh7ghudk4u9hrvmwx2n3n | 0xdc9d314355d38431bf27426fe45f8db5785b8d9b | 2 | 4 | 2123.356926 | -| terp18dljgmvrgr0ylczft07jg0a757v9q0rletfhml | 0x3b7f246d8340de4fe0495bfd243fbea798503c7f | 2 | 4 | 2123.356926 | -| terp1tu28uf39prm9y6z6x5yv08w3npy5rzw4m3axp2 | 0x5f147e262508f652685a3508c79dd198494189d5 | 2 | 4 | 2123.356926 | -| terp195zphduughk9qwzaxu4gvssyfe82letf4q8dda | 0x2d041bb79c45ec50385d372a8642044e4eafe569 | 2 | 4 | 2123.356926 | -| terp1ngn3v5ahxv863jsq5n09k46lj8pvlspdm0rg6f | 0x9a271653b7330fa8ca00a4de5b575f91c2cfc02d | 2 | 4 | 2123.356926 | -| terp1udnwlhc3mhtf36mekryg5auj0vug7p9vnyz7m9 | 0xe366efdf11ddd698eb79b0c88a77927b388f04ac | 2 | 4 | 2123.356926 | -| terp1ejzyh0e7tsyqptd880rg37cmfgsz9cmsu8qmxz | 0xcc844bbf3e5c0800ada73bc688fb1b4a2022e370 | 2 | 4 | 2123.356926 | -| terp1l3larfpexk69ks7yvr93w6nzuezywcuk52tcx7 | 0xfc7fd1a43935b45b43c460cb176a62e644476396 | 2 | 4 | 2123.356926 | -| terp17d7xqp95p0ru9202g20l6989af5k6u0mhyg4gf | 0xf37c6004b40bc7c2a9ea429ffd14e5ea696d71fb | 2 | 4 | 2123.356926 | -| terp10e0krzjgsgsp463y4wd2m5fksf34kyswqhuxs2 | 0x7e5f618a4882201aea24ab9aadd13682635b120e | 2 | 4 | 2123.356926 | -| terp1vfu5ndhkhxyedyffh6vh9xcz0pjywz2hpnwv3v | 0x627949b6f6b989969129be99729b027864470957 | 2 | 4 | 2123.356926 | -| terp1cux53npz26fx35cmf6qq37zttak8qd0mweffp5 | 0xc70d48cc22569268d31b4e8008f84b5f6c7035fb | 2 | 4 | 2123.356926 | -| terp1a5333nljy0y92hqtsfafnkrd075m3tycptjt7d | 0xed2318cff223c8555c0b827a99d86d7fa9b8ac98 | 2 | 4 | 2123.356926 | -| terp137ktrp5e3uuqudnfe58zr5fr8f448g5dy8aqay | 0x8facb186998f380e3669cd0e21d1233a6b53a28d | 2 | 4 | 2123.356926 | -| terp1krlqx2706z0nhy67l93a5nt9j3wv5j403692vl | 0xb0fe032bcfd09f3b935ef963da4d65945cca4aaf | 2 | 4 | 2123.356926 | -| terp1ccdjjaydje4e7g0g83ymml6l3qm4rez906q6zt | 0xc61b29748d966b9f21e83c49bdff5f883751e445 | 2 | 4 | 2123.356926 | -| terp1pu688424kyxgee3rwymjwx8spngwkpqkdct0vh | 0x0f3473d555b10c8ce62371372718f00cd0eb0416 | 2 | 4 | 2123.356926 | -| terp1m5lhzxxr2hy995jt559kwau8utsjukggrnhjxf | 0xdd3f7118c355c852d24ba50b677787e2e12e5908 | 2 | 4 | 2123.356926 | -| terp1nvk2m88tly0e7tv85ypf8u89fexa2mr5x0lwn8 | 0x9b2cad9cebf91f9f2d87a10293f0e54e4dd56c74 | 2 | 4 | 2123.356926 | -| terp1etwgnvtldh7rcjce7efurz2039pafu5y7028pd | 0xcadc89b17f6dfc3c4b19f653c1894f8943d4f284 | 2 | 4 | 2123.356926 | -| terp1jajdnnpe4twxm2nm3mdmga8w2pcc0nnv7w88g7 | 0x9764d9cc39aadc6daa7b8edbb474ee507187ce6c | 2 | 4 | 2123.356926 | -| terp194ds5yku2k07dplxh9yg4dkp58et8pq24hajzm | 0x2d5b0a12dc559fe687e6b9488ab6c1a1f2b3840a | 2 | 4 | 2123.356926 | -| terp16y00a9jj0ld8w6c4xzk32lypvpfned0y86hrh0 | 0xd11efe96527fda776b1530ad157c8160533cb5e4 | 2 | 4 | 2123.356926 | -| terp1gfa8ctxrreuwj7vdtdxs7adwyd6yent9nz3gw2 | 0x427a7c2cc31e78e9798d5b4d0f75ae23744ccd65 | 2 | 4 | 2123.356926 | -| terp1ss356r53l6qxdnysus8j3u3w06yltyvcv6h0wl | 0x84234d0e91fe8066cc90e40f28f22e7e89f59198 | 2 | 4 | 2123.356926 | -| terp1kt4swc25ety2vesh694kz2n3gm2wjyz2jn5ku5 | 0xb2eb076154cac8a66617d16b612a7146d4e9104a | 2 | 4 | 2123.356926 | -| terp177my3cj4deqv4nmk9yqvvu9sjmjrje44tfex2s | 0xf7b648e2556e40cacf762900c670b096e43966b5 | 2 | 4 | 2123.356926 | -| terp18uu3m45phhw0nmy90j60eq8xnp8gw9snzsuxq4 | 0x3f391dd681bddcf9ec857cb4fc80e6984e871613 | 2 | 4 | 2123.356926 | -| terp1sw97hwlf0ahm97y3fuz9e8fre8pnvr7kzhvmxk | 0x838bebbbe97f6fb2f8914f045c9d23c9c3360fd6 | 2 | 4 | 2123.356926 | -| terp1nn2dvfzu693eh69xw03hx5w03jjw39qzzxaj2t | 0x9cd4d6245cd1639be8a673e37351cf8ca4e89402 | 2 | 4 | 2123.356926 | -| terp1aeusm4rmpn99hguhnpzfstwg2ccflx74hgptvw | 0xee790dd47b0cca5ba3979844982dc856309f9bd5 | 2 | 4 | 2123.356926 | -| terp1h4vyeevsklwdhwfmz8sftk0p6kyqk3xea2pwhy | 0xbd584ce590b7dcdbb93b11e095d9e1d5880b44d9 | 2 | 4 | 2123.356926 | -| terp1rarve2kj5p04jsrywchaf29lrxa6pdh0muv8t5 | 0x1f46ccaad2a05f594064762fd4a8bf19bba0b6ef | 2 | 4 | 2123.356926 | -| terp1acr5mhg2mgwxqja4l2mh2zxs59jfequ7z3383s | 0xee074ddd0ada1c604bb5fab77508d0a1649c839e | 2 | 4 | 2123.356926 | -| terp1ddy5sua6eettqnltae5rnntgkwu5clutpelq4e | 0x6b494873bace56b04febee6839cd68b3b94c7f8b | 2 | 4 | 2123.356926 | -| terp1n4rtcsd2ct7yrp5mx2lnlh5tzadtgs75gh9uuv | 0x9d46bc41aac2fc41869b32bf3fde8b175ab443d4 | 2 | 4 | 2123.356926 | -| terp1nfxx2ctafwuvjcffawvsrp87pw4rtn9papuqje | 0x9a4c65617d4bb8c96129eb990184fe0baa35cca1 | 2 | 4 | 2123.356926 | -| terp14ct57n39sc98h5nrrjruww9y49ezzqhzvpnrlf | 0xae174f4e25860a7bd2631c87c738a4a9722102e2 | 2 | 4 | 2123.356926 | -| terp1um48wek74p8kyt9d0jpvm2txz488wzfxmhd9y0 | 0xe6ea7766dea84f622cad7c82cda966154e770926 | 2 | 4 | 2123.356926 | -| terp186lusew6fkggcwadqv7n0l0rg75eppvmnvw3n4 | 0x3ebfc865da4d908c3bad033d37fde347a990859b | 2 | 4 | 2123.356926 | -| terp1a02k7zyy4rwm8t28canu2erh8zcya50vwtefyl | 0xebd56f0884a8ddb3ad47c767c5647738b04ed1ec | 2 | 4 | 2123.356926 | -| terp1zxe32glqkmaasstwvnd0lxljdwgqs6xgc40kqx | 0x11b31523e0b6fbd8416e64daff9bf26b900868c8 | 2 | 4 | 2123.356926 | -| terp187wwrdg4303azd8m2c36sfz2u7ar2wqrxwkt2f | 0x3f9ce1b5158be3d134fb5623a8244ae7ba353803 | 2 | 4 | 2123.356926 | -| terp1fkq6u0z2jdxwz4ch5nyqzw8sa2dg8tgkfl4aw8 | 0x4d81ae3c4a934ce15717a4c80138f0ea9a83ad16 | 2 | 4 | 2123.356926 | -| terp1g52s580zswa7cqh5mxc33tdwqadv62xjeu2rme | 0x45150a1de283bbec02f4d9b118adae075acd28d2 | 2 | 4 | 2123.356926 | -| terp1k5ns5lfrphhec2sal60s5jvrr675erdl22ewds | 0xb5270a7d230def9c2a1dfe9f0a49831ebd4c8dbf | 2 | 4 | 2123.356926 | -| terp17d7unxatgj2e67gec3tqajx7uqnxfrnk7l86su | 0xf37dc99bab44959d7919c4560ec8dee026648e76 | 2 | 4 | 2123.356926 | -| terp1yxjrj8wp0svgw9sz9rlq6720e5yfs2d6s700l3 | 0x21a4391dc17c1887160228fe0d794fcd089829ba | 2 | 4 | 2123.356926 | -| terp1g9a0lztg0typ9x5vctc2dclyuvxf9cfdz9yad4 | 0x417aff89687ac8129a8cc2f0a6e3e4e30c92e12d | 2 | 4 | 2123.356926 | -| terp1azvky29j57nex7hkajetaedenw46dteuaxhhhr | 0xe8996228b2a7a7937af6ecb2bee5b99baba6af3c | 2 | 4 | 2123.356926 | -| terp1pk03qy5g25rsxfz2krllg77q5224nk284jgy7v | 0x0d9f101288550703244ab0fff47bc0a29559d947 | 2 | 4 | 2123.356926 | -| terp18w2jjy633uj0rdna4m3q29jd3wwuyvuw50l6c6 | 0x3b952913518f24f1b67daee205164d8b9dc2338e | 2 | 4 | 2123.356926 | -| terp1p9ss99kzc948k6849r7ss46hc00dskf6x0zfmz | 0x09610296c2c16a7b68f528fd085757c3ded8593a | 2 | 4 | 2123.356926 | -| terp1wupe8xvqrarzknk3x3z2ye43vd2ugudlavkjlm | 0x77039399801f462b4ed13444a266b16355c471bf | 2 | 4 | 2123.356926 | -| terp1aqyedppr25gn2e6l8r980k2et3wjykgcxe7d8a | 0xe809968423551135675f38ca77d9595c5d225918 | 2 | 4 | 2123.356926 | -| terp1sae02u9s06jjtxmgj8whn0hs0phfy8qlc3jxx8 | 0x8772f570b07ea5259b6891dd79bef0786e921c1f | 2 | 4 | 2123.356926 | -| terp14rryahv69d7006nrj4ease52pemxxsu3qunqkl | 0xa8c64edd9a2b7cf7ea639573d8668a0e76634391 | 2 | 4 | 2123.356926 | -| terp1xtyefpy34k4lmx4e4egm222adl483awcaggs58 | 0x32c9948491adabfd9ab9ae51b5295d6fea78f5d8 | 2 | 4 | 2123.356926 | -| terp1jgkaqhne9ppquhefqzqpa4edk4ryqf8dvckfsk | 0x922dd05e7928420e5f2900801ed72db5464024ed | 2 | 4 | 2123.356926 | -| terp192chxk4snatakepk4fcxw6c43mts5u9mfngpwv | 0x2ab1735ab09f57db6436aa70676b158ed70a70bb | 2 | 4 | 2123.356926 | -| terp1303lmzjz8supxx4wqvctyr8wcsj7pegwntn20y | 0x8be3fd8a423c38131aae0330b20ceec425e0e50e | 2 | 4 | 2123.356926 | -| terp1vrknxu6uns57ctpxhrk8xn3k6km0584tkem927 | 0x60ed33735c9c29ec2c26b8ec734e36d5b6fa1eab | 2 | 4 | 2123.356926 | -| terp1scrp7hny6x8jsrnh09emulksnh3rqnmpq3hr4h | 0x86061f5e64d18f280e777973be7ed09de2304f61 | 2 | 4 | 2123.356926 | -| terp1phys8ta38w2pu2t87n93cdamey04ej4878x9qj | 0x0dc903afb13b941e2967f4cb1c37bbc91f5ccaa7 | 2 | 4 | 2123.356926 | -| terp1tqjtv02xk4g747t5h7epqlnar38n77gf8d0tef | 0x5824b63d46b551eaf974bfb2107e7d1c4f3f7909 | 2 | 4 | 2123.356926 | -| terp14auzwhl8c0welctf393egt653g7dx2lzzqx4xy | 0xaf78275fe7c3dd9fe1698963942f548a3cd32be2 | 2 | 4 | 2123.356926 | -| terp1xza337mtx3j9et4d67cjg6eag4n39673hxa39u | 0x30bb18fb6b34645caeadd7b1246b3d456712ebd1 | 2 | 4 | 2123.356926 | -| terp1e00r3mz60h4r2f4kyzgpp3jtgnhfrdkpl3dnp8 | 0xcbde38ec5a7dea3526b6209010c64b44ee91b6c1 | 2 | 4 | 2123.356926 | -| terp1uc3m0vvfy4zu674afj7ktzszzz3s3z0vxj6eqg | 0xe623b7b1892545cd7abd4cbd658a0210a30889ec | 2 | 4 | 2123.356926 | -| terp1yxxhtvtlfyte82t2ksexc7r4j5p4n2qv38d4ew | 0x218d75b17f491793a96ab4326c7875950359a80c | 2 | 4 | 2123.356926 | -| terp10xlztjw72kkqp4jkw04v8getdn3ad4vmrt8mg9 | 0x79be25c9de55ac00d65673eac3a32b6ce3d6d59b | 2 | 4 | 2123.356926 | -| terp1a57hg45e0kd0055yyv94q9ant52qmfucrfnfd2 | 0xed3d7456997d9af7d284230b5017b35d140da798 | 2 | 4 | 2123.356926 | -| terp19uten5dae38fyg5ql4duafakml5xcfvnwd340z | 0x2f1799d1bdcc4e922280fd5bcea7b6dfe86c2593 | 2 | 4 | 2123.356926 | -| terp18t6f69ue5v6rt2ypfnhz9etta6q8gl26lm0udg | 0x3af49d1799a33435a8814cee22e56bee80747d5a | 2 | 4 | 2123.356926 | -| terp1e5fnjanczxx42v9hd09tdjr8vgqnp5rju3te9w | 0xcd13397678118d5530b76bcab6c867620130d072 | 2 | 4 | 2123.356926 | -| terp1spl55fefv4wwe7r60q7zddtd6gfdm5nn05d073 | 0x807f4a2729655cecf87a783c26b56dd212ddd273 | 2 | 4 | 2123.356926 | -| terp10k4gws87zhu6qv607ttzzrhkt0tpa69lcfzxyy | 0x7daa8740fe15f9a0334ff2d6210ef65bd61ee8bf | 2 | 4 | 2123.356926 | -| terp1c8tgam0cyxw8jvt3hxypgktrly3fszx96ex265 | 0xc1d68eedf8219c793171b988145963f9229808c5 | 2 | 4 | 2123.356926 | -| terp1cs907w6at7ak04agqdjwa7lgelpeql0qgta3hr | 0xc40aff3b5d5fbb67d7a80364eefbe8cfc3907de0 | 2 | 4 | 2123.356926 | -| terp1m7whxjx7xgkw545xrdksvaxj3j44r6qsrqlrrh | 0xdf9d7348de322cea56861b6d0674d28cab51e810 | 2 | 4 | 2123.356926 | -| terp1fvn55d4eknqsxyxwjmz0dc2qp3strtnly705tx | 0x4b274a36b9b4c10310ce96c4f6e1400c60b1ae7f | 2 | 4 | 2123.356926 | -| terp12yyrwh77vz6fkgmm70x9c2ys3rmtjfynjq5tme | 0x5108375fde60b49b237bf3cc5c289088f6b92493 | 2 | 4 | 2123.356926 | -| terp1u3ycnruh4zzm2lfdz8e4agnvdz0ea0kqddcqca | 0xe449898f97a885b57d2d11f35ea26c689f9ebec0 | 2 | 4 | 2123.356926 | -| terp1qglk2rq0v9qk0njyc5lnacc0llhqlfkjsl697j | 0x023f650c0f614167ce44c53f3ee30fffee0fa6d2 | 2 | 4 | 2123.356926 | -| terp1ckmnz4kmkst9ykgdtryyy5slwgl55a3avkjks0 | 0xc5b73156dbb41652590d58c842521f723f4a763d | 2 | 4 | 2123.356926 | -| terp16gemnkes3a7hjp3mxmk4j7y7ey2gkqa9ynsn2l | 0xd233b9db308f7d79063b36ed59789ec9148b03a5 | 2 | 4 | 2123.356926 | -| terp18e3xwvvkzu6d9r3e8lf4a2vcfp2xc4jkyuu80f | 0x3e626731961734d28e393fd35ea99848546c5656 | 2 | 4 | 2123.356926 | -| terp13vc8whlhwfuffqdr8cvr9xjnspyuc6feh0u0af | 0x8b30775ff772789481a33e18329a538049cc6939 | 2 | 4 | 2123.356926 | -| terp1g3ldlmqnuduserugv30wj4wcar84yvecjstl2k | 0x447edfec13e3790c8f88645ee955d8e8cf523338 | 2 | 4 | 2123.356926 | -| terp1sn6d5wkaql0lgt23xdk4kapqwsdmmz4hzdcn0w | 0x84f4da3add07dff42d51336d5b7420741bbd8ab7 | 2 | 4 | 2123.356926 | -| terp1qxzl776ye3k97d5c565xm2ey2gldk0y60lskmj | 0x0185ff7b44cc6c5f3698a6a86dab24523edb3c9a | 2 | 4 | 2123.356926 | -| terp1pknkjx9mk6jxunwpytn47hdgegcyxaxxgteyfx | 0x0da76918bbb6a46e4dc122e75f5da8ca304374c6 | 2 | 4 | 2123.356926 | -| terp140cllywwekvepvljjd3mv2u8l4m02h62kaeh43 | 0xabf1ff91cecd9990b3f29363b62b87fd76f55f4a | 2 | 4 | 2123.356926 | -| terp1793j8k69lld98twfa6esvvsqjpqsd95ezt8ppm | 0xf16323db45ffda53adc9eeb30632009041069699 | 2 | 4 | 2123.356926 | -| terp1044uelq0gzr3ugl2m95xmg8k5r7l8j9lyk3n3r | 0x7d6bccfc0f40871e23ead9686da0f6a0fdf3c8bf | 2 | 4 | 2123.356926 | -| terp1hllf22tg5afxln3tqd2y4a0g6h0ecpc73u4v5f | 0xbffe952968a7526fce2b03544af5e8d5df9c071e | 2 | 4 | 2123.356926 | -| terp1x9cmc7nwxmwpw6r8dp6lcd5qfhjsydp7a80rpp | 0x3171bc7a6e36dc1768676875fc36804de502343e | 2 | 4 | 2123.356926 | -| terp1jhsfedsg6cenluysga3c28253sjngfee0w8j50 | 0x95e09cb608d6333ff0904763851d548c25342739 | 2 | 4 | 2123.356926 | -| terp1tz3ctsdp30mnlunr75c0qr8wfmwcsm3the2mxr | 0x58a385c1a18bf73ff263f530f00cee4edd886e2b | 2 | 4 | 2123.356926 | -| terp1ans480wv98ydpln0waka7r4uglektmpmunvn6h | 0xece153bdcc29c8d0fe6f776ddf0ebc47f365ec3b | 2 | 4 | 2123.356926 | -| terp1gleq59xhmupgzfxxxy6gc6tgrv0gkkaentasyl | 0x47f20a14d7df028124c631348c69681b1e8b5bb9 | 2 | 4 | 2123.356926 | -| terp16d54fh630n7e65eagj2tpe3tv8qzls56usv4pc | 0xd36954df517cfd9d533d4494b0e62b61c02fc29a | 2 | 4 | 2123.356926 | -| terp1getx4x3caqwn7jswn2ne35q8alxgh3slp8g0xa | 0x46566a9a38e81d3f4a0e9aa798d007efcc8bc61f | 2 | 4 | 2123.356926 | -| terp1agnsc7w46n957nph9l57nn6eplwcppy5zel9ep | 0xea270c79d5d4cb4f4c372fe9e9cf590fdd808494 | 2 | 4 | 2123.356926 | -| terp1zjdct5tn7cccx9d8k55xw2uyd9y0h4xjlmnju8 | 0x149b85d173f6318315a7b528672b846948fbd4d2 | 2 | 4 | 2123.356926 | -| terp15j3e2n0sn3xqtkgveec2ufq37t9s5pdtgywm2e | 0xa4a3954df09c4c05d90cce70ae2411f2cb0a05ab | 2 | 4 | 2123.356926 | -| terp1xuf4fa3s4uqg0fwh45ngats2nrdq3zc23dx9hd | 0x371354f630af0087a5d7ad268eae0a98da088b0a | 2 | 4 | 2123.356926 | -| terp1dlhn6v3xa8dftrxxd094z0d42gjwrudwvnj05q | 0x6fef3d3226e9da958cc66bcb513db55224e1f1ae | 2 | 4 | 2123.356926 | -| terp12tclazhz3rnstrk42qxgtfmgm4vkez2pzj6cpe | 0x52f1fe8ae288e7058ed5500c85a768dd596c8941 | 2 | 4 | 2123.356926 | -| terp1876nwes8943dhyhds4amc4s2ra3lzyq6lh3ue9 | 0x3fb53766072d62db92ed857bbc560a1f63f1101a | 2 | 4 | 2123.356926 | -| terp1fnm7g7gqlnt57yrxax9r0hww4pmpv4fwpe9r4z | 0x4cf7e47900fcd74f1066e98a37ddcea87616552e | 2 | 4 | 2123.356926 | -| terp1r5jwpf7cegs2vl2qzsdfltgr8c9kxkh6gmuclw | 0x1d24e0a7d8ca20a67d40141a9fad033e0b635afa | 2 | 4 | 2123.356926 | -| terp1729t936p0nh73jtqqphn44035ej8tg6nz8ts5w | 0xf28ab2c7417cefe8c960006f3ad5f1a66475a353 | 2 | 4 | 2123.356926 | -| terp19mlkvsjpvw7lqewpj39c6q8qaaakw6janf0qsh | 0x2eff66424163bdf065c1944b8d00e0ef7b676a5d | 2 | 4 | 2123.356926 | -| terp14sgj969u54w3r66luefleuv60dc5n3tqnh9jux | 0xac1122e8bca55d11eb5fe653fcf19a7b7149c560 | 2 | 4 | 2123.356926 | -| terp1lgz0enxud6kw57225k0ekqp84d6yhclkh64hff | 0xfa04fcccdc6eacea794aa59f9b0027ab744be3f6 | 2 | 4 | 2123.356926 | -| terp1px95xg6yqhxwkha9xvncgdjwx32m27flgvlgez | 0x098b43234405cceb5fa5332784364e3455b5793f | 2 | 4 | 2123.356926 | -| terp187f57k04el6p9hke3srhgml9v3exh4anj7k97g | 0x3f934f59f5cff412ded98c07746fe564726bd7b3 | 2 | 4 | 2123.356926 | -| terp1w3434wkunway3zlscskf8h87ulmvgrdj33vddw | 0x746b1abadc9bba488bf0c42c93dcfee7f6c40db2 | 2 | 4 | 2123.356926 | -| terp10wqqqg0z22wjdazlfaar6rv35dcx4nseu0luk6 | 0x7b800021e2529d26f45f4f7a3d0d91a3706ace19 | 2 | 4 | 2123.356926 | -| terp10yd63sk49rk3vne7ffzj5qs2gu4yzhnwxg9yqz | 0x791ba8c2d528ed164f3e4a452a020a472a415e6e | 2 | 4 | 2123.356926 | -| terp1dmda4j9v5aztvlmuxjfqzgfs47rzdd2ya6z83a | 0x6edbdac8aca744b67f7c3492012130af8626b544 | 2 | 4 | 2123.356926 | -| terp13sdk43su6dzzh4ugu7jr3mmkuaqsg6fp6lyduh | 0x8c1b6ac61cd3442bd788e7a438ef76e741046921 | 2 | 4 | 2123.356926 | -| terp1e8ckryqcahkrxrmlend9aw8e683qvnan44agcw | 0xc9f1619018edec330f7fccda5eb8f9d1e2064fb3 | 2 | 4 | 2123.356926 | -| terp1qr6nmj7tfg420t2s6a42l3fg63u54sqej0hylw | 0x00f53dcbcb4a2aa7ad50d76aafc528d4794ac019 | 2 | 4 | 2123.356926 | -| terp1c32z78usa59sk6gv7u3zs23haq6kmluanxzkdp | 0xc4542f1f90ed0b0b690cf722282a37e8356dff9d | 2 | 4 | 2123.356926 | -| terp16xhmundz5kkud7hnpl9748jwag9633c277rc63 | 0xd1afbe4da2a5adc6faf30fcbea9e4eea0ba8c70a | 2 | 4 | 2123.356926 | -| terp182nh7099dzl4gsvar2xtuxnl8vq7ta390g5lu3 | 0x3aa77f3ca568bf54419d1a8cbe1a7f3b01e5f625 | 2 | 4 | 2123.356926 | -| terp1gw37e4j2d6737vu34uz6fse3lteh7x435f3l9m | 0x43a3ecd64a6ebd1f3391af05a4c331faf37f1ab1 | 2 | 4 | 2123.356926 | -| terp1vkaylykhm75p8hdasjweltec5u3amxcjcdqjcs | 0x65ba4f92d7dfa813ddbd849d9faf38a723dd9b12 | 2 | 4 | 2123.356926 | -| terp1xcenv7jkyw4ht5xcce3r0qt8nfnr37edgytu4t | 0x3633367a5623ab75d0d8c6623781679a6638fb2d | 2 | 4 | 2123.356926 | -| terp14s9xhzees3wuakdh00fe78y8h6ghw4yyvlw4f4 | 0xac0a6b8b39845dced9b77bd39f1c87be91775484 | 2 | 4 | 2123.356926 | -| terp1f89fv0hht08t4rj2taxw4d0axf477cfrqwv7lg | 0x49ca963ef75bceba8e4a5f4ceab5fd326bef6123 | 2 | 4 | 2123.356926 | -| terp1lkv9hccs3p2ya098xllwl30hxxuel2qsg05jxk | 0xfd985be31088544ebca737feefc5f731b99fa810 | 2 | 4 | 2123.356926 | -| terp1m48u0e774fhjllnjpf9c6p2vmcefxcqyf300mc | 0xdd4fc7e7deaa6f2ffe720a4b8d054cde32936004 | 2 | 4 | 2123.356926 | -| terp147ll86r32sm4g4fvxw5yqd0th8h82xx5hvr8rn | 0xafbff3e871543754552c33a84035ebb9ee7518d4 | 2 | 4 | 2123.356926 | -| terp1sh9t4r67dgdahx87ep2z6ux8zawwkhecw3dg89 | 0x85caba8f5e6a1bdb98fec8542d70c7175ceb5f38 | 2 | 4 | 2123.356926 | -| terp1g0ksmkgvzdhk6n8xh39y03t535kkjnr7sf3zs7 | 0x43ed0dd90c136f6d4ce6bc4a47c5748d2d694c7e | 2 | 4 | 2123.356926 | -| terp1whn3uu9jezvl0eucd8tfufv5fylw6leezmqkct | 0x75e71e70b2c899f7e79869d69e2594493eed7f39 | 2 | 4 | 2123.356926 | -| terp1hxlx5c8645u3qkd2ena44umjnu0q8ljjwkfk5w | 0xb9be6a60faad391059aaccfb5af3729f1e03fe52 | 2 | 4 | 2123.356926 | -| terp15qepy2fmcwahueez6xz63ycjga42t7cae6tl49 | 0xa03212293bc3bb7e6722d185a89312476aa5fb1d | 2 | 4 | 2123.356926 | -| terp16przn349z08ra2uwckegr78l9gpm0ze5ezzfm6 | 0xd04629c6a513ce3eab8ec5b281f8ff2a03b78b34 | 2 | 4 | 2123.356926 | -| terp177skwztq7wkevuzcs6ywlus3efurazhmachhn3 | 0xf7a1670960f3ad9670588688eff211ca783e8afb | 2 | 4 | 2123.356926 | -| terp1jkjrcud37cmaqgk9d9lzjrmtr4tdwp6pt9pq77 | 0x95a43c71b1f637d022c5697e290f6b1d56d70741 | 2 | 4 | 2123.356926 | -| terp1q5wwkzlwjef7uhjpwvpmekzzu0vardzeg4tnpt | 0x051ceb0bee9653ee5e417303bcd842e3d9d1b459 | 2 | 4 | 2123.356926 | -| terp1fk4te8c2eusya82lsq6lwqw4zshaehz9k3ryj2 | 0x4daabc9f0acf204e9d5f8035f701d5142fdcdc45 | 2 | 4 | 2123.356926 | -| terp1aut2wz9elm42gjh296hxdv9xmay4radkexh3mj | 0xef16a708b9feeaa44aea2eae66b0a6df4951f5b6 | 2 | 4 | 2123.356926 | -| terp13tpcjwz4fr55fqxl5j6nnrg6f9wrfayfp7qwmg | 0x8ac389385548e94480dfa4b5398d1a495c34f489 | 2 | 4 | 2123.356926 | -| terp17kgtg00na22p9sch3dasaztg9jnvgkd8ux6lpw | 0xf590b43df3ea9412c3178b7b0e89682ca6c459a7 | 2 | 4 | 2123.356926 | -| terp1zut7m2pvjtskkvauv7sl3g94hfruvd3jkw5zgg | 0x1717eda82c92e16b33bc67a1f8a0b5ba47c63632 | 2 | 4 | 2123.356926 | -| terp1trdkxq5jq9egmwrnugcpdseka2hazh8jcl3pld | 0x58db63029201728db873e23016c336eaafd15cf2 | 2 | 4 | 2123.356926 | -| terp107482d54cl09d90z3wtx762lvt0yxay07kapd7 | 0x7faa753695c7de5695e28b966f695f62de43748f | 2 | 4 | 2123.356926 | -| terp1n033xgymu2lsqk2z6nwm4lkwehjlrzes4yg8rz | 0x9be313209be2bf005942d4ddbafececde5f18b30 | 2 | 4 | 2123.356926 | -| terp1a4f5t68u62cxu4sw4fpzqhxtt2dngns0uss8fh | 0xed5345e8fcd2b06e560eaa42205ccb5a9b344e0f | 2 | 4 | 2123.356926 | -| terp1vu5u4ps02473atgxhzrnf8qc8dplfacpqn993l | 0x6729ca860f557d1ead06b887349c183b43f4f701 | 2 | 4 | 2123.356926 | -| terp164x3xa4gdqtl3wec948qhdqec2x2dty6mv2n6m | 0xd54d1376a86817f8bb382d4e0bb419c28ca6ac9a | 2 | 4 | 2123.356926 | -| terp1kzussckdvq5sefwq3qhsgeuswx8ycgrg0t0qz6 | 0xb0b90862cd60290ca5c0882f046790718e4c2068 | 2 | 4 | 2123.356926 | -| terp1k3rd0jv9xduqkuq2lh50yx7tgj70kn2ehvfhj8 | 0xb446d7c98533780b700afde8f21bcb44bcfb4d59 | 2 | 4 | 2123.356926 | -| terp1g3w0r3trchyjf67knmrg6yscmm8uv7ppxlsnk2 | 0x445cf1c563c5c924ebd69ec68d1218decfc67821 | 2 | 4 | 2123.356926 | -| terp1h9wfpw7l8d3l53zw2fy348pznyj5zd0hllj2m0 | 0xb95c90bbdf3b63fa444e52491a9c2299254135f7 | 2 | 4 | 2123.356926 | -| terp1fv0sv449yl23vjuk3wr2ducdvc36esj0fgmvjs | 0x4b1f0656a527d5164b968b86a6f30d6623acc24f | 2 | 4 | 2123.356926 | -| terp18ed5lzuf33gtdg7pn6h8q8fprg73aujxdryp5n | 0x3e5b4f8b898c50b6a3c19eae701d211a3d1ef246 | 2 | 4 | 2123.356926 | -| terp1ndxe248h02eakmeh3kw8usczjk8mktpk5fn326 | 0x9b4d9554f77ab3db6f378d9c7e4302958fbb2c36 | 2 | 4 | 2123.356926 | -| terp16xp50md7jjftf28n486qglc2cqq3pd9jrlc4yx | 0xd18347edbe9492b4a8f3a9f4047f0ac00110b4b2 | 2 | 4 | 2123.356926 | -| terp1zu8tlw23lfpcw6r8zc2lqdmr5l95gvmpgawmw7 | 0x170ebfb951fa438768671615f03763a7cb443361 | 2 | 4 | 2123.356926 | -| terp1802flf8nc7m3mgmzqvrjkttfkgqfnz72k7n7h3 | 0x3bd49fa4f3c7b71da36203072b2d69b200998bca | 2 | 4 | 2123.356926 | -| terp19a3ktnxs258z509gkez8vggqqcp5xcpwgsa7e8 | 0x2f6365ccd0550e2a3ca8b644762100060343602e | 2 | 4 | 2123.356926 | -| terp1uuph0ruf9ydawj3ecpne53s7yagxrj33hf6yse | 0xe703778f89291bd74a39c0679a461e275061ca31 | 2 | 4 | 2123.356926 | -| terp1mfwktg02ylxsxce4dpmlsyqrchn4rz25dnvlrh | 0xda5d65a1ea27cd0363356877f81003c5e7518954 | 2 | 4 | 2123.356926 | -| terp1tpf47e97e5yp2qjyk083gu0s9dlnf80ntrdhl7 | 0x58535f64becd08150244b3cf1471f02b7f349df3 | 2 | 4 | 2123.356926 | -| terp19e93rgjppvhkslddwudg0sd0z39q9ntpsnhnfs | 0x2e4b11a2410b2f687dad771a87c1af144a02cd61 | 2 | 4 | 2123.356926 | -| terp1eenxr33yz859xxfw5vehn6gn22v8c00y2ykt68 | 0xce6661c62411e853192ea33379e91352987c3de4 | 2 | 4 | 2123.356926 | -| terp1xsruz8pqk6wj7afxgtfj3xqpgququv0w95jxgg | 0x3407c11c20b69d2f752642d328980140380e31ee | 2 | 4 | 2123.356926 | -| terp1xjtmkhccfa6agz03dtwl4g3jghz2van4dtr5mw | 0x3497bb5f184f75d409f16addfaa23245c4a67675 | 2 | 4 | 2123.356926 | -| terp15cqf6kmuz6fyqhn9ssuap7swg6pkjsf4quxp5u | 0xa6009d5b7c1692405e658439d0fa0e4683694135 | 2 | 4 | 2123.356926 | -| terp1wxf634c44s6nvygw34lrvuzycxp9qqwy46apw8 | 0x7193a8d715ac3536110e8d7e367044c1825001c4 | 2 | 4 | 2123.356926 | -| terp1lp2psl889kryqy8wlzgtqv8chl7puvrsp4p7rf | 0xf854187ce72d864010eef890b030f8bffc1e3070 | 2 | 4 | 2123.356926 | -| terp17kgr2548kuasm3lcwlaf84h63kflvedpx7u4hf | 0xf5903552a7b73b0dc7f877fa93d6fa8d93f665a1 | 2 | 4 | 2123.356926 | -| terp1e59z3r408tak3f8tmgnas88xxay4tr30984rsg | 0xcd0a288eaf3afb68a4ebda27d81ce63749558e2f | 2 | 4 | 2123.356926 | -| terp1z60kdljwerq5erlv588y6xe52c04gyl7s300l7 | 0x169f66fe4ec8c14c8feca1ce4d1b34561f5413fe | 2 | 4 | 2123.356926 | -| terp1yzn09gznuvcvuy7x6520u68k9z92ur0cqaxxlj | 0x20a6f2a053e330ce13c6d514fe68f6288aae0df8 | 2 | 4 | 2123.356926 | -| terp1sr4fe30qvtvezpen6mhnff6kjux8rwtlynn0uq | 0x80ea9cc5e062d9910733d6ef34a756970c71b97f | 2 | 4 | 2123.356926 | -| terp1dh2mr2mq5xra9xtmgn3nssrrl0r90s0x7whum5 | 0x6dd5b1ab60a187d2997b44e3384063fbc657c1e6 | 2 | 4 | 2123.356926 | -| terp1ctt59ldmx9zzhpp6pxxuas7zqp2v9zvxqh3mu2 | 0xc2d742fdbb31442b843a098dcec3c20054c28986 | 2 | 4 | 2123.356926 | -| terp1v3cf55hzayvl6fqer87ehhgynt49hqfhyz44j7 | 0x64709a52e2e919fd241919fd9bdd049aea5b8137 | 2 | 4 | 2123.356926 | -| terp1dwuct68cqkuhlgzphf86rp7x3dwjfajfkd55w3 | 0x6bb985e8f805b97fa041ba4fa187c68b5d24f649 | 2 | 4 | 2123.356926 | -| terp1wh0a8gv7vjvhymqvupwxhdxen6m5eekqtschc5 | 0x75dfd3a19e6499726c0ce05c6bb4d99eb74ce6c0 | 2 | 4 | 2123.356926 | -| terp1akvp5edrerykhrsnkv6jrqf0rxguyz73puc3gp | 0xed981a65a3c8c96b8e13b33521812f1991c20bd1 | 2 | 4 | 2123.356926 | -| terp1r4c7d57kyuhx8h8sdncfjzuj2jr7w538atgcg2 | 0x1d71e6d3d6272e63dcf06cf0990b925487e75227 | 2 | 4 | 2123.356926 | -| terp13ky52qr8tjrqmpnpnnrhws4cmjn77a8zl9249c | 0x8d894500675c860d86619cc77742b8dca7ef74e2 | 2 | 4 | 2123.356926 | -| terp10hh0nqs9w8mlnfc6y6s3yk293w69z7ej34w8c0 | 0x7deef9820571f7f9a71a26a11259458bb4517b32 | 2 | 4 | 2123.356926 | -| terp17chgt2rpt0725704hzz8kdu3x8s4ds5nfzr6hv | 0xf62e85a8615bfcaa79f5b8847b379131e156c293 | 2 | 4 | 2123.356926 | -| terp13tf4y5ujcjg7fmeuqd8segvhwppq6nccyuafgh | 0x8ad3525392c491e4ef3c034f0ca19770420d4f18 | 2 | 4 | 2123.356926 | -| terp1w3u086u6snjcfg0757rzufrtclr0qavssteyns | 0x7478f3eb9a84e584a1fea7862e246bc7c6f07590 | 2 | 4 | 2123.356926 | -| terp108l8kcpr3qchfttvsfupagwh6qs0q9mz73enjt | 0x79fe7b6023883174ad6c82781ea1d7d020f01762 | 2 | 4 | 2123.356926 | -| terp1rnnnmtytvy5dp5hrfgegn0hjxsmgh30s2mff6c | 0x1ce73dac8b6128d0d2e34a3289bef234368bc5f0 | 2 | 4 | 2123.356926 | -| terp18faaq558ek436ufyj47cyaphrj7z2c0dtnpzj9 | 0x3a7bd05287cdab1d7124957d8274371cbc2561ed | 2 | 4 | 2123.356926 | -| terp154g362vu8tvsjyr2tmcs7wq27f3p7nxh3dnm99 | 0xa5511d299c3ad909106a5ef10f380af2621f4cd7 | 2 | 4 | 2123.356926 | -| terp18lnpy859uyzy4nnc3wfclyd9x9qs2judsazhfu | 0x3fe6121e85e1044ace788b938f91a53141054b8d | 2 | 4 | 2123.356926 | -| terp172t26zcagfjd35yj49emf6kt4cvcqml7egp6cr | 0xf296ad0b1d4264d8d092a973b4eacbae19806ffe | 2 | 4 | 2123.356926 | -| terp1t4w7ktm02xlf4wadvmg6vvueu57ewd30ukws88 | 0x5d5deb2f6f51be9abbad66d1a63399e53d97362f | 2 | 4 | 2123.356926 | -| terp1lh8q20jgndp0cld9md97r7tz60kavvjyqmd2dc | 0xfdce053e489b42fc7da5db4be1f962d3edd63244 | 2 | 4 | 2123.356926 | -| terp1wmytmrwkc295z42ngymj9y7p76k3hk44gpk0dq | 0x76c8bd8dd6c28b41555341372293c1f6ad1bdab5 | 2 | 4 | 2123.356926 | -| terp1mw4cu6uu5alfxguakupvygwchqqrjdpfpt8xu8 | 0xdbab8e6b9ca77e93239db702c221d8b800393429 | 2 | 4 | 2123.356926 | -| terp12d2lyqt6elzzp5rktdx00d9f7w43y6adhdsyxt | 0x5355f2017acfc420d0765b4cf7b4a9f3ab126bad | 2 | 4 | 2123.356926 | -| terp1xz7t3dswstwysujhe5mzxyg8yckcxvj662dg7q | 0x30bcb8b60e82dc487257cd36231107262d83325a | 2 | 4 | 2123.356926 | -| terp1vf7u9qs2hg2y90x0dtj8ddseuzv09fvjshvjhc | 0x627dc2820aba1442bccf6ae476b619e098f2a592 | 2 | 4 | 2123.356926 | -| terp1rl4juffpn9gt7u8e447a2ap6v2cc9menl8lm99 | 0x1feb2e25219950bf70f9ad7dd5743a62b182ef33 | 2 | 4 | 2123.356926 | -| terp1elyz27rn8lmw855auwzya880pqccmavwfhe44s | 0xcfc82578733ff6e3d29de3844e9cef08318df58e | 2 | 4 | 2123.356926 | -| terp1204pjpy4rgjh2djkvfgpfwwet4369cmefl43tn | 0x53ea1904951a25753656625014b9d95d63a2e379 | 2 | 4 | 2123.356926 | -| terp1gr04cr5m7mp2czazl0hdvq6al6fd00lrhfgd5y | 0x40df5c0e9bf6c2ac0ba2fbeed6035dfe92d7bfe3 | 2 | 4 | 2123.356926 | -| terp16sl9glsgp784j8vrej80c94avwa2v6eyuerrky | 0xd43e547e080f8f591d83cc8efc16bd63baa66b24 | 2 | 4 | 2123.356926 | -| terp1sexupl86er4x923wzdnzg46uejyqnu8suamyn3 | 0x864dc0fcfac8ea62aa2e136624575ccc8809f0f0 | 2 | 4 | 2123.356926 | -| terp1fengcpppttjkfr4m9cr3lkaq5uh3cgnda03fdq | 0x4e668c04215ae5648ebb2e071fdba0a72f1c226d | 2 | 4 | 2123.356926 | -| terp1wv84rgjjgd4aseev0kg5s7sjksw0jc5u7pjy23 | 0x730f51a252436bd8672c7d91487a12b41cf9629c | 2 | 4 | 2123.356926 | -| terp10fjn3dzcg2q8v5xfhjlx0tk4vzagnuxjujff4t | 0x7a6538b45842807650c9bcbe67aed560ba89f0d2 | 2 | 4 | 2123.356926 | -| terp1w493fryftruykdeztjf7dm7hsulzq64drxujjd | 0x754b148c8958f84b37225c93e6efd7873e206aad | 2 | 4 | 2123.356926 | -| terp1u8kphuswwrhcv3rf005jgct0pd0zeqlnk2xlay | 0xe1ec1bf20e70ef8644697be924616f0b5e2c83f3 | 2 | 4 | 2123.356926 | -| terp1zv02fhzvmgya05r4hslr2du4nhr4nsvn2ku9q9 | 0x131ea4dc4cda09d7d075bc3e3537959dc759c193 | 2 | 4 | 2123.356926 | -| terp1ela2y2l80ntzpun80hrkytapn5ag2jdmtl7r80 | 0xcffaa22be77cd620f2677dc7622fa19d3a8549bb | 2 | 4 | 2123.356926 | -| terp1frng674h3h87ze74904guh0l59y3d0ufplzx3w | 0x48e68d7ab78dcfe167d52bea8e5dffa14916bf89 | 2 | 4 | 2123.356926 | -| terp1ge503k6jg7vl39nx8m72lkrqzgu4xazwa9t4up | 0x4668f8db524799f896663efcafd860123953744e | 2 | 4 | 2123.356926 | -| terp147xys8459hhmxxhxwvvnsf3y568z3a0g9cql28 | 0xaf8c481eb42defb31ae67319382624a68e28f5e8 | 2 | 4 | 2123.356926 | -| terp196slapmfjh8ffrautq2ljs7xlrh2qpf3yvtnjp | 0x2ea1fe876995ce948fbc5815f943c6f8eea00531 | 2 | 4 | 2123.356926 | -| terp1llwwqz7lxv6dmjrqv44wc3aayr7yyszl4gat8t | 0xffdce00bdf3334ddc860656aec47bd20fc42405f | 2 | 4 | 2123.356926 | -| terp1wrljwfg9gmgrm7w9739l4ymsctj8lgwepwcyt6 | 0x70ff27250546d03df9c5f44bfa9370c2e47fa1d9 | 2 | 4 | 2123.356926 | -| terp1ksm4ld56yhnmjaw33ak98h5uv2sjg44vvgd2kk | 0xb4375fb69a25e7b975d18f6c53de9c62a12456ac | 2 | 4 | 2123.356926 | -| terp1xzu6uf3ufvf9vy0nrhgqyl9r4jgd3wumy4n7yl | 0x30b9ae263c4b125611f31dd0027ca3ac90d8bb9b | 2 | 4 | 2123.356926 | -| terp1w94yukzqhtzue3awychy3m86np922pjfdhmgru | 0x716a4e5840bac5ccc7ae262e48ecfa984aa50649 | 2 | 4 | 2123.356926 | -| terp13g37yk4rv7qa00pgut4spxgpx0uqy4aa2k0xd4 | 0x8a23e25aa36781d7bc28e2eb00990133f80257bd | 2 | 4 | 2123.356926 | -| terp1z7aj2rncxqzps4ldqfnnsfgtdxuh7y9s2yyvjt | 0x17bb250e7830041857ed026738250b69b97f10b0 | 2 | 4 | 2123.356926 | -| terp1n5ssnf268s48c7d3vcenylw7wzmwql7r9787vd | 0x9d2109a55a3c2a7c79b16633327dde70b6e07fc3 | 2 | 4 | 2123.356926 | -| terp1wknqskauy4n9k6y3a22ywhnpyzyhh2gtz5z3sf | 0x75a6085bbc25665b6891ea94475e6120897ba90b | 2 | 4 | 2123.356926 | -| terp1n0sr399h807thv4gej7x3dvjudl0qstpse6uy0 | 0x9be03894b73bfcbbb2a8ccbc68b592e37ef04161 | 2 | 4 | 2123.356926 | -| terp1dvxac568f2z4j4a43d4wk0wphajtcqnkkml7xx | 0x6b0ddc53474a855957b58b6aeb3dc1bf64bc0276 | 2 | 4 | 2123.356926 | -| terp1l2p36runzljfrqjt5eu0ldrpcvxs6kph9gw729 | 0xfa831d0f9317e491824ba678ffb461c30d0d5837 | 2 | 4 | 2123.356926 | -| terp1x42zkgzsya70wutneppj9dxs8r4tr9kdpzex3d | 0x35542b2050277cf77173c84322b4d038eab196cd | 2 | 4 | 2123.356926 | -| terp152x4e9lwlclh526jagn8aw06zwf24wuzr4q5tj | 0xa28d5c97eefe3f7a2b52ea267eb9fa1392aabb82 | 1 | 2 | 1061.678463 | -| terp1f7ep8gnzymxx9nqd6qqjeyr00qudxgmymlp327 | 0x4fb213a26226cc62cc0dd0012c906f7838d32364 | 1 | 2 | 1061.678463 | -| terp1775zksyuwz3nakcj77egzsmt79zkcwcph44xl6 | 0xf7a82b409c70a33edb12f7b281436bf1456c3b01 | 1 | 2 | 1061.678463 | -| terp12j8w5s4utj7cmwmvn97fye6ezyjhdlcx8xksgk | 0x548eea42bc5cbd8dbb6c997c926759112576ff06 | 1 | 2 | 1061.678463 | -| terp1q3p7kvchqcaqrgy8yh0ucu4pem0e5ksa55flms | 0x0443eb3317063a01a08725dfcc72a1cedf9a5a1d | 1 | 2 | 1061.678463 | -| terp13fld598ggcgxyhx2kefu3hmr8lqt9p6lcls55k | 0x8a7eda14e84610625ccab653c8df633fc0b2875f | 1 | 2 | 1061.678463 | -| terp1vh2xkfn4znkucjjjy20fxq8w8p76ahhu0a9yra | 0x65d46b267514edcc4a52229e9300ee387daedefc | 1 | 2 | 1061.678463 | -| terp1cjd83xm5kd0mz32kt3d98ehj78zpq23ashrlug | 0xc49a789b74b35fb145565c5a53e6f2f1c4102a3d | 1 | 2 | 1061.678463 | -| terp1qt95xmamau283rkl90uqnz2xa5lmhg7mcy7njr | 0x02cb436fbbef14788edf2bf8098946ed3fbba3db | 1 | 2 | 1061.678463 | -| terp1zx3l80n2y9ddpcxh373kvvalne0khemt0nd27g | 0x11a3f3be6a215ad0e0d78fa36633bf9e5f6be76b | 1 | 2 | 1061.678463 | -| terp1pjcqt2cjsupw6c4zlyuyfm05ruuxfkj9dx8ut7 | 0x0cb005ab128702ed62a2f93844edf41f3864da45 | 1 | 2 | 1061.678463 | -| terp15c3v7m4svulckxrdl3s6qlhwttx5ekfs482485 | 0xa622cf6eb0673f8b186dfc61a07eee5acd4cd930 | 1 | 2 | 1061.678463 | -| terp1lr2ek6dvwss44uxtg9ekec3mkr5rzn5tevvha3 | 0xf8d59b69ac74215af0cb41736ce23bb0e8314e8b | 1 | 2 | 1061.678463 | -| terp1tup0y72k8pyy25l6hqlxqq4uq8qzrgjknl80gs | 0x5f02f2795638484553fab83e6002bc01c021a256 | 1 | 2 | 1061.678463 | -| terp1gyat3glkjsncmq06nt67jp9wm6qgjnv9dtqfe3 | 0x413ab8a3f694278d81fa9af5e904aede80894d85 | 1 | 2 | 1061.678463 | -| terp1d6vm732qhammw0cug58mek24uy7tuzlvc9r5tj | 0x6e99bf4540bf77b73f1c450fbcd955e13cbe0bec | 1 | 2 | 1061.678463 | -| terp18g0ujgh75r22r7ncpg0hqw2kgz78p8mkpxdpwk | 0x3a1fc922fea0d4a1fa780a1f70395640bc709f76 | 1 | 2 | 1061.678463 | -| terp10e5xz8svmhxzdnfwyss0fkv58eux73v4fzf8lt | 0x7e68611e0cddcc26cd2e2420f4d9943e786f4595 | 1 | 2 | 1061.678463 | -| terp139jkmdpe02fv4y2vx4m236wp5anp4ajx33yynd | 0x89656db4397a92ca914c3576a8e9c1a7661af646 | 1 | 2 | 1061.678463 | -| terp1yg3vgttefp7w2j7rn5d3f9p3su2v9a6q43j6nf | 0x2222c42d79487ce54bc39d1b1494318714c2f740 | 1 | 2 | 1061.678463 | -| terp1scrnvuvldnfdaqspsl4fmjh88glfukeqdagq4f | 0x860736719f6cd2de820187ea9dcae73a3e9e5b20 | 1 | 2 | 1061.678463 | -| terp1z7rek4wh9t6q8n6pp7h83rgw05h32l5q0kkr6s | 0x17879b55d72af403cf410fae788d0e7d2f157e80 | 1 | 2 | 1061.678463 | -| terp1nzdat9lcq7ju559nu0yctlku8fr4hq8t9v7g53 | 0x989bd597f807a5ca50b3e3c985fedc3a475b80eb | 1 | 2 | 1061.678463 | -| terp1xjrq6ja648q8ewy42l8ty5yczg4wrrummsrgfm | 0x34860d4bbaa9c07cb89557ceb25098122ae18f9b | 1 | 2 | 1061.678463 | -| terp1tlek3jd8lxumwafv69he29e7vkdpqnazn5s57p | 0x5ff368c9a7f9b9b7752cd16f95173e659a104fa2 | 1 | 2 | 1061.678463 | -| terp1tckjxl2np0k6rk42dcgk3gzmwmx7qj7yfv0zxd | 0x5e2d237d530beda1daaa6e1168a05b76cde04bc4 | 1 | 2 | 1061.678463 | -| terp1c8jl3ashu5knas4vmvulwxadzst9dzgyhrly88 | 0xc1e5f8f617e52d3ec2acdb39f71bad1416568904 | 1 | 2 | 1061.678463 | -| terp1chvu4udrspupesly38qfnzlkndd5ecvlcsh99a | 0xc5d9caf1a380781cc3e489c0998bf69b5b4ce19f | 1 | 2 | 1061.678463 | -| terp10ttqnxaz7emu6rkumzqycaqxxms7q6h8je7jjt | 0x7ad6099ba2f677cd0edcd8804c740636e1e06ae7 | 1 | 2 | 1061.678463 | -| terp17yk05sqets65uyj5pl7k7ac0kndm6fn4tjvw9j | 0xf12cfa40195c354e12540ffd6f770fb4dbbd2675 | 1 | 2 | 1061.678463 | -| terp1cdnreh2mfulr3jupdvwd230rcgm3uhmuvpjhte | 0xc3663cdd5b4f3e38cb816b1cd545e3c2371e5f7c | 1 | 2 | 1061.678463 | -| terp1qkgzmt63nvtmcekncfdl8kn08mj9ux6968snfz | 0x05902daf519b17bc66d3c25bf3da6f3ee45e1b45 | 1 | 2 | 1061.678463 | -| terp1le0u5aspdvwyat6hl27fuwmgqsnuckk3f55xq4 | 0xfe5fca76016b1c4eaf57fabc9e3b680427cc5ad1 | 1 | 2 | 1061.678463 | -| terp10f4ft9402y48ukc77vc6wqq4e577lg0j0375lw | 0x7a6a9596af512a7e5b1ef331a70015cd3defa1f2 | 1 | 2 | 1061.678463 | -| terp15ftkv2u7uqpu8js95839heglpmmjft0x047e96 | 0xa257662b9ee003c3ca05a1e25be51f0ef724ade6 | 1 | 2 | 1061.678463 | -| terp13tug6xshw603gm337s5zzwprthsurx750auujc | 0x8af88d1a17769f146e31f4282138235de1c19bd4 | 1 | 2 | 1061.678463 | -| terp1y8ex24fhj2eewdff6j0aqws6uhn0k4gzgqzzuk | 0x21f265553792b3973529d49fd03a1ae5e6fb5502 | 1 | 2 | 1061.678463 | -| terp17wecf6neawkjgvushvtar8sqkup7pssrhgd5k9 | 0xf3b384ea79ebad243390bb17d19e00b703e0c203 | 1 | 2 | 1061.678463 | -| terp18csh3nu9rg89e0uycrl487pq44l26upmnhaavu | 0x3e2178cf851a0e5cbf84c0ff53f820ad7ead703b | 1 | 2 | 1061.678463 | -| terp14pjp9zyvz2c4wvark39auvrxj67mk7rlen6esp | 0xa86412888c12b15733a3b44bde306696bdbb787f | 1 | 2 | 1061.678463 | -| terp1rzc2s7mtvecj08adf9yt9pl9hy6tlnzlzqlwlc | 0x18b0a87b6b6671279fad4948b287e5b934bfcc5f | 1 | 2 | 1061.678463 | -| terp1tytrz2zlzlsw8t3rcf54kce9wkey2ksulsh70a | 0x591631285f17e0e3ae23c2695b632575b2455a1c | 1 | 2 | 1061.678463 | -| terp1c6r2zta9s64v8sy84mkkf0xjr0ws23jknven0z | 0xc686a12fa586aac3c087aeed64bcd21bdd054656 | 1 | 2 | 1061.678463 | -| terp1qs3jt0k9rjhl49vt6d2kyqs5ns3jfwxha7525k | 0x042325bec51caffa958bd3556202149c2324b8d7 | 1 | 2 | 1061.678463 | -| terp170cvatc0te69ncfqeyl2u7z7q7auatvgqwkd86 | 0xf3f0ceaf0f5e7459e120c93eae785e07bbcead88 | 1 | 2 | 1061.678463 | -| terp1ajq5tmtvvqnzclmdehmntptndzmxevwsyj24he | 0xec8145ed6c60262c7f6dcdf735857368b66cb1d0 | 1 | 2 | 1061.678463 | -| terp15e3pf2xzkr593dnu7lkvy53ul3r9tk5kzn432k | 0xa66214a8c2b0e858b67cf7ecc2523cfc4655da96 | 1 | 2 | 1061.678463 | -| terp1x8k0evka7f6038cgvcfdf8lrm9t7wldnvctdkg | 0x31ecfcb2ddf274f89f086612d49fe3d957e77db3 | 1 | 2 | 1061.678463 | -| terp16vpfyf0v7qymr94cxkxeaztngnq0vyxqw9l2cc | 0xd3029225ecf009b196b8358d9e897344c0f610c0 | 1 | 2 | 1061.678463 | -| terp1fcdrm4zphdhcha43a9h5x8grl9vp9nrxr4qtjp | 0x4e1a3dd441bb6f8bf6b1e96f431d03f95812cc66 | 1 | 2 | 1061.678463 | -| terp1nnh0gt7favh84l44030k6yw6rcxd4f03tv2xcg | 0x9ceef42fc9eb2e7afeb57c5f6d11da1e0cdaa5f1 | 1 | 2 | 1061.678463 | -| terp1jt2gcn0fj4nhalkqyk4984tse3agstxe0p7zc6 | 0x92d48c4de995677efec025aa53d570cc7a882cd9 | 1 | 2 | 1061.678463 | -| terp1y3zf9e3sc3hyxjsm2xuvx6j5nn4ck68t9nn4jp | 0x244492e630c46e434a1b51b8c36a549ceb8b68eb | 1 | 2 | 1061.678463 | -| terp1fwjc5p6wvqujwy8qa49c0s029mkzpl4930s6qw | 0x4ba58a074e60392710e0ed4b87c1ea2eec20fea5 | 1 | 2 | 1061.678463 | -| terp1c63tcx7hmnndwf8rkzy5ephuvaqaxwcpta3q8k | 0xc6a2bc1bd7dce6d724e3b0894c86fc6741d33b01 | 1 | 2 | 1061.678463 | -| terp1xt3zgp8nl8tu47swp0axsftwy032u8vhk79hl9 | 0x32e22404f3f9d7cafa0e0bfa68256e23e2ae1d97 | 1 | 2 | 1061.678463 | -| terp1u4x0xz3lx8eswm56kk73ygme23dpx76vxaml0p | 0xe54cf30a3f31f3076e9ab5bd122379545a137b4c | 1 | 2 | 1061.678463 | -| terp1safestvqpwalr7h50rhcfslfdunht5ae28j3sp | 0x8753982d800bbbf1faf478ef84c3e96f2775d3b9 | 1 | 2 | 1061.678463 | -| terp19gvhz269zdqjk0el368x0070x4avhygy33nhmg | 0x2a19712b4513412b3f3f8e8e67bfcf357acb9104 | 1 | 2 | 1061.678463 | -| terp1ntfxrk93z78y5me8ks6qsds6cfqk3xpaesnczx | 0x9ad261d8b1178e4a6f27b43408361ac24168983d | 1 | 2 | 1061.678463 | -| terp1tvxn58dxmnv8n9h6jwfkrqysdr7pw6lzg8z9tl | 0x5b0d3a1da6dcd87996fa939361809068fc176be2 | 1 | 2 | 1061.678463 | -| terp13pessnt4aaecnj5dnkrwc4zesd756z0s8uvuzj | 0x8873084d75ef7389ca8d9d86ec5459837d4d09f0 | 1 | 2 | 1061.678463 | -| terp1ra8xpavr79cce49lplhs8uhujntyxxkc846zqz | 0x1f4e60f583f1718cd4bf0fef03f2fc94d6431ad8 | 1 | 2 | 1061.678463 | -| terp18yjjnxxgxrwyvt9yezlyqnlzcpnwuv7sx8pp6f | 0x39252998c830dc462ca4c8be404fe2c066ee33d0 | 1 | 2 | 1061.678463 | -| terp1p4kvevdp8hewe39zwe6nylxhfzxjc2yxlrpsrd | 0x0d6cccb1a13df2ecc4a27675327cd7488d2c2886 | 1 | 2 | 1061.678463 | -| terp1nc2z9elv9dheepv3gm4l7yp6v82phj56z2lltj | 0x9e1422e7ec2b6f9c859146ebff103a61d41bca9a | 1 | 2 | 1061.678463 | -| terp19mm2fnk0fvs7v026lpquan2ve252433r4ud0ut | 0x2ef6a4cecf4b21e63d5af841cecd4ccaa8aac623 | 1 | 2 | 1061.678463 | -| terp1s8lv5v6em6uuu50wkgw4rkd0sqjhz4hj0dvhen | 0x81feca3359deb9ce51eeb21d51d9af80257156f2 | 1 | 2 | 1061.678463 | -| terp1mhjvuxs95387g5y3tpckmcvuv7dfa79qwmssmd | 0xdde4ce1a05a44fe4509158716de19c679a9ef8a0 | 1 | 2 | 1061.678463 | -| terp1zxx4j66tzhs5nj8pdn9y3tec2hw5zkn4xty6gl | 0x118d596b4b15e149c8e16cca48af3855dd415a75 | 1 | 2 | 1061.678463 | -| terp1ennjcsmsysm3ngcyekt3gk3gyrvgfzfeazpcnu | 0xcce72c4370243719a304cd97145a2820d8848939 | 1 | 2 | 1061.678463 | -| terp1yj90hmqfe9cnwgnccyzjy5lycvyd2scvt6mg6e | 0x248afbec09c971372278c1052253e4c308d5430c | 1 | 2 | 1061.678463 | -| terp18jv23vshsep4fhhuynqsgaa32jmlktsqv3gw9e | 0x3c98a8b217864354defc24c10477b154b7fb2e00 | 1 | 2 | 1061.678463 | -| terp1zm3g6aclpp2hjmd4ltr6ja6qa9j2n8m8w43mdl | 0x16e28d771f0855796db5fac7a97740e964a99f67 | 1 | 2 | 1061.678463 | -| terp1fm92usu38dg3xextm2720t00hnzq600p2ed24m | 0x4ecaae43913b511364cbdabca7adefbcc40d3de1 | 1 | 2 | 1061.678463 | -| terp1fs5pts6tdhy79drf2qgltstjdh0jdmnuewtx40 | 0x4c2815c34b6dc9e2b4695011f5c1726ddf26ee7c | 1 | 2 | 1061.678463 | -| terp16uzerusd54qhtgzjs07zaqcu66ng8p970yq2x8 | 0xd70591f20da54175a05283fc2e831cd6a68384be | 1 | 2 | 1061.678463 | -| terp1kgftrf5q9jwvcuestcy8mfvr765lzwcvnrmaun | 0xb212b1a6802c9ccc73305e087da583f6a9f13b0c | 1 | 2 | 1061.678463 | -| terp1hnkfyyp6zl8nvvcq3u547qc5aj5vr9jycfmk20 | 0xbcec92103a17cf3633008f295f0314eca8c19644 | 1 | 2 | 1061.678463 | -| terp1zdkxes4yvar376huxhd6t306meczp4zk652m8c | 0x136c6cc2a467471f6afc35dba5c5fade7020d456 | 1 | 2 | 1061.678463 | -| terp1kzm5kdw48dx24pkwywwaz2whk3e6lqf0us68hr | 0xb0b74b35d53b4caa86ce239dd129d7b473af812f | 1 | 2 | 1061.678463 | -| terp1qrrmrsqdcr6m42xdzfhgf3yuegvmezueeexcmm | 0x00c7b1c00dc0f5baa8cd126e84c49cca19bc8b99 | 1 | 2 | 1061.678463 | -| terp1yap6wkgjl0p5k5sa5mv3pm947vmwzk7843lqvc | 0x2743a75912fbc34b521da6d910ecb5f336e15bc7 | 1 | 2 | 1061.678463 | -| terp1zzxe30jmghnkxve77klg8nm04khqf92ufvjcqe | 0x108d98be5b45e763333ef5be83cf6fadae04955c | 1 | 2 | 1061.678463 | -| terp1sgk930kfx7wa5d5jhp2lx8fwt8qe3pldlvpwxe | 0x822c58bec9379dda3692b855f31d2e59c19887ed | 1 | 2 | 1061.678463 | -| terp1af0y8j40uwqpzf5c33u96trg3dwp7tkzcmv9l5 | 0xea5e43caafe3801126988c785d2c688b5c1f2ec2 | 1 | 2 | 1061.678463 | -| terp1edrrm5sd9z39rhk96v4wkjk5z3lt5turjvtmg6 | 0xcb463dd20d28a251dec5d32aeb4ad4147eba2f83 | 1 | 2 | 1061.678463 | -| terp1d23d8xun7fy3kkqklkh5zzykdvymsencjmj3lh | 0x6aa2d39b93f2491b5816fdaf4108966b09b86678 | 1 | 2 | 1061.678463 | -| terp12ne0t3fnym9xtekkp22ven5y0xqgfd83erzfsd | 0x54f2f5c53326ca65e6d60a94ccce84798084b4f1 | 1 | 2 | 1061.678463 | -| terp17qw37pj9etpr3wsfkl993fax6q88jhepxj8zen | 0xf01d1f0645cac238ba09b7ca58a7a6d00e795f21 | 1 | 2 | 1061.678463 | -| terp1w439qrkksk20ghj4hc57w8yafzahhr89j8x3z4 | 0x7562500ed68594f45e55be29e71c9d48bb7b8ce5 | 1 | 2 | 1061.678463 | -| terp1uqejpgw96z28x0tq4ev543mctr20ksqe374d6v | 0xe03320a1c5d094733d60ae594ac77858d4fb4019 | 1 | 2 | 1061.678463 | -| terp15r0jv7h7qsuyvp65f9kwpuev5qrveymqgc422m | 0xa0df267afe0438460754496ce0f32ca006cc9360 | 1 | 2 | 1061.678463 | -| terp1duyxuyguquqszhk2lzj3uug24r3yn9rcfmd264 | 0x6f086e111c0701015ecaf8a51e710aa8e2499478 | 1 | 2 | 1061.678463 | -| terp1m6gnsehe0zvjr202fkphdx0pufwulz2rp8rda9 | 0xde913866f9789921a9ea4d837699e1e25dcf8943 | 1 | 2 | 1061.678463 | -| terp1e6xvjhf0ukrje4sfnzkyvq4jkv6f76evd64jxd | 0xce8cc95d2fe5872cd60998ac4602b2b3349f6b2c | 1 | 2 | 1061.678463 | -| terp19he3ecpuryxd4ggpypvyz9nyx0c2e2q3rmfdh8 | 0x2df31ce03c190cdaa101205841166433f0aca811 | 1 | 2 | 1061.678463 | -| terp19tvnjphu5qz47v0erafnndlp5et898xwmexgap | 0x2ad93906fca0055f31f91f5339b7e1a656729cce | 1 | 2 | 1061.678463 | -| terp1tfs650n8nsxrcqg2t9fhfnpmcaltttmayljdh2 | 0x5a61aa3e679c0c3c010a595374cc3bc77eb5af7d | 1 | 2 | 1061.678463 | -| terp1a7gd6ume6qshhc2kfgwc4ezmgea4d5pezcam5z | 0xef90dd7379d0217be1564a1d8ae45b467b56d039 | 1 | 2 | 1061.678463 | -| terp1g6ahhwr3jnqkmutsr7yzkdc8vd42sam8yrdv57 | 0x46bb7bb87194c16df1701f882b3707636aa87767 | 1 | 2 | 1061.678463 | -| terp18rueqhytu6c7q2cysq3wxj909syu4885laze0c | 0x38f9905c8be6b1e02b048022e348af2c09ca9cf4 | 1 | 2 | 1061.678463 | -| terp1tfrn2mrznuhmnkngcaaxl0ul627duqnvyzk5hp | 0x5a47356c629f2fb9da68c77a6fbf9fd2bcde026c | 1 | 2 | 1061.678463 | -| terp1qwzvzhl027tm0wg930nf676klmzjn3rkwvfyl5 | 0x0384c15fef5797b7b9058be69d7b56fec529c476 | 1 | 2 | 1061.678463 | -| terp1ghu2aaxl40aljs6pdkc7g0cg3e2rhldkyh2dgh | 0x45f8aef4dfabfbf943416db1e43f088e543bfdb6 | 1 | 2 | 1061.678463 | -| terp1j0q8ufhrerf36vl3xdqqurflmavycvyechxhmm | 0x93c07e26e3c8d31d33f133400e0d3fdf584c3099 | 1 | 2 | 1061.678463 | -| terp17l4jp3qnx6a3dwqsprzjewh3n7qqjw4ypzz0my | 0xf7eb20c41336bb16b81008c52cbaf19f80093aa4 | 1 | 2 | 1061.678463 | -| terp1hp8vhp7y72yx7ecjxadsdl7rjc3mzdftftd5hc | 0xb84ecb87c4f2886f6712375b06ffc39623b1352b | 1 | 2 | 1061.678463 | -| terp1naus3tl2cqvau4fngawc53pcsswslgluz4tea8 | 0x9f7908afeac019de5533475d8a4438841d0fa3fc | 1 | 2 | 1061.678463 | -| terp1mjmltkglf4p5fvvd4tgwdfmkg0k97p6x6eragk | 0xdcb7f5d91f4d4344b18daad0e6a77643ec5f0746 | 1 | 2 | 1061.678463 | -| terp1au8tu0z0dwxsn4pnqvz70xgjqt9fy2j7vtn9zu | 0xef0ebe3c4f6b8d09d4330305e7991202ca922a5e | 1 | 2 | 1061.678463 | -| terp1swrl2adygeudfd8ssxechd62epqa0flw03amr8 | 0x8387f575a44678d4b4f081b38bb74ac841d7a7ee | 1 | 2 | 1061.678463 | -| terp1khkuf6jg94ml9rr6cgssesqdp8e8qdlggpptgg | 0xb5edc4ea482d77f28c7ac2210cc00d09f27037e8 | 1 | 2 | 1061.678463 | -| terp1znd3j8p27ml7frmu3ga4c24tldqms7wk0f8ld7 | 0x14db191c2af6ffe48f7c8a3b5c2aabfb41b879d6 | 1 | 2 | 1061.678463 | -| terp109f3gayqa0k4nuqsv6m8sudtd7x8dcfp3jmtag | 0x7953147480ebed59f01066b67871ab6f8c76e121 | 1 | 2 | 1061.678463 | -| terp1qg0vz5czdyd0j0yxfed7zuaxt8uh90ahg6zvqy | 0x021ec15302691af93c864e5be173a659f972bfb7 | 1 | 2 | 1061.678463 | -| terp1gdgff3n3pzgw3dcvsqt2tqfyjsmkj3lpxu9g3f | 0x435094c6710890e8b70c8016a5812494376947e1 | 1 | 2 | 1061.678463 | -| terp1x7u67ac0tmm4vmw2wlxeh7740vsxsz4r0fg489 | 0x37b9af770f5ef7566dca77cd9bfbd57b20680aa3 | 1 | 2 | 1061.678463 | -| terp1c9462ufjt6uqccm2cjgs82rhyhcsxp5zanqlne | 0xc16ba571325eb80c636ac49103a87725f1030682 | 1 | 2 | 1061.678463 | -| terp1w8e2rytc4d7zalvksw85ywqd44m9hqzw2uxy7m | 0x71f2a19178ab7c2efd96838f42380dad765b804e | 1 | 2 | 1061.678463 | -| terp148dzujek6awn4m5xxrr2e5yl64nsj8cs5p6x2s | 0xa9da2e4b36d75d3aee8630c6acd09fd567091f10 | 1 | 2 | 1061.678463 | -| terp1yxdqepdcjgja43wre674h984jk38utxf6r88y8 | 0x219a0c85b89225dac5c3cebd5b94f595a27e2cc9 | 1 | 2 | 1061.678463 | -| terp1fl2mffdu9cg2wr5d7vh65wl42qr9jjmgjvzkdl | 0x4fd5b4a5bc2e10a70e8df32faa3bf55006594b68 | 1 | 2 | 1061.678463 | -| terp124fdpk5jjk9cqpm2m0k2mmujc7vlmxvzxxar95 | 0x5552d0da92958b80076adbecadef92c799fd9982 | 1 | 2 | 1061.678463 | -| terp12zka2jnwp6md25kug3eztc3pg2acqjx2r0wyzz | 0x50add54a6e0eb6d552dc447225e22142bb8048ca | 1 | 2 | 1061.678463 | -| terp1g9v6pdlue5xahg7vtu44qspx9jp9h5q9m65unj | 0x4159a0b7fccd0ddba3cc5f2b5040262c825bd005 | 1 | 2 | 1061.678463 | -| terp1k86xxqdnnpedtywxu700asahtm9se9upep2n6g | 0xb1f46301b39872d591c6e79efec3b75ecb0c9781 | 1 | 2 | 1061.678463 | -| terp1504m9cpc7m5vkjm3d2pexxddy0hhgd39lzhp45 | 0xa3ebb2e038f6e8cb4b716a839319ad23ef743625 | 1 | 2 | 1061.678463 | -| terp1666yc6ezrxntnymwsxygujkfdxceg03xrqhzkv | 0xd6b44c6b2219a6b9936e81888e4ac969b1943e26 | 1 | 2 | 1061.678463 | -| terp1qggkguj4jddmpu3r0uwaftqhcp6up7xr2l5sdn | 0x0211647255935bb0f2237f1dd4ac17c075c0f8c3 | 1 | 2 | 1061.678463 | -| terp12txem854d0xfzl40n0d4eyw7rs637c67ysswtz | 0x52cd9d9e956bcc917eaf9bdb5c91de1c351f635e | 1 | 2 | 1061.678463 | -| terp1d9p20hrlqevduy29ygcjgmq94q794wt3lqwn00 | 0x6942a7dc7f0658de11452231246c05a83c5ab971 | 1 | 2 | 1061.678463 | -| terp1lnk57thclthltupdsqlqy4c8cxdkgnxr6z2elk | 0xfced4f2ef8faeff5f02d803e025707c19b644cc3 | 1 | 2 | 1061.678463 | -| terp1a2ehhxct8ledynnshnmmzhl4wj6pp3x4r5wf9u | 0xeab37b9b0b3ff2d24e70bcf7b15ff574b410c4d5 | 1 | 2 | 1061.678463 | -| terp1l6qkxlcq86texnmeg6cnpy3gn88kqnls7kfr8g | 0xfe81637f003e97934f7946b130922899cf604ff0 | 1 | 2 | 1061.678463 | -| terp1kphsrlgk0sd0f86tzgx4af4w3m8pk5lkkkxmf2 | 0xb06f01fd167c1af49f4b120d5ea6ae8ece1b53f6 | 1 | 2 | 1061.678463 | -| terp1a3dpvkx7q7k4h9g75tef259vh87td800d5qjcw | 0xec5a1658de07ad5b951ea2f29550acb9fcb69def | 1 | 2 | 1061.678463 | -| terp1jk5q3fl4d7hm7p7xv4ja6ks9k6nk3hpqmkald5 | 0x95a808a7f56fafbf07c66565dd5a05b6a768dc20 | 1 | 2 | 1061.678463 | -| terp1qdm39fd0c63h0nz7lndl7u5lc3gr7wfk0su3ae | 0x037712a5afc6a377cc5efcdbff729fc4503f3936 | 1 | 2 | 1061.678463 | -| terp1xy7ss2af8tzx5v55v7awnf8ec620gv7hfpgl48 | 0x313d082ba93ac46a329467bae9a4f9c694f433d7 | 1 | 2 | 1061.678463 | -| terp1cv8xl5fump2k4lpky9wgput7gczxep0u2pg42z | 0xc30e6fd13cd8556afc36215c80f17e46046c85fc | 1 | 2 | 1061.678463 | -| terp19se7044zn3573zucpnuj5z4wh0c9d668g334zx | 0x2c33e7d6a29c69e88b980cf92a0aaebbf056eb47 | 1 | 2 | 1061.678463 | -| terp16d3evhht8c8aqmmp4gz7d2d398mu2ammet80tc | 0xd363965eeb3e0fd06f61aa05e6a9b129f7c5777b | 1 | 2 | 1061.678463 | -| terp1f696has3u4ayzh2yehjmptnln08g7pc0x0p7lj | 0x4e8babf611e57a415d44cde5b0ae7f9bce8f070f | 1 | 2 | 1061.678463 | -| terp1umegdyehjq3y43wdqsqx74my658mf2eqqht0l4 | 0xe6f286933790224ac5cd04006f5764d50fb4ab20 | 1 | 2 | 1061.678463 | -| terp1kqw3er7zpw0a5yx7gs05cl6q9x6fd3v83h0lnq | 0xb01d1c8fc20b9fda10de441f4c7f4029b496c587 | 1 | 2 | 1061.678463 | -| terp1xksunv0dzgejhe43440jxtrqwxk07gv9z4kxfe | 0x35a1c9b1ed12332be6b1ad5f232c6071acff2185 | 1 | 2 | 1061.678463 | -| terp1d5nh9f8lfsf0x7ukr64t5hre63rlkjs6mtjg0e | 0x6d2772a4ff4c12f37b961eaaba5c79d447fb4a1a | 1 | 2 | 1061.678463 | -| terp1nll4gru8v2wwqvut5sxzyzuz0vj3a439kd9vl0 | 0x9fff540f87629ce0338ba40c220b827b251ed625 | 1 | 2 | 1061.678463 | -| terp1edc9avmx2t7mhfej0duf257s6pyesevapryn84 | 0xcb705eb36652fdbba7327b789553d0d04998659d | 1 | 2 | 1061.678463 | -| terp1gar8q2a29cpfr35quukshhhzq7jpplckvhpmua | 0x4746702baa2e0291c680e72d0bdee207a410ff16 | 1 | 2 | 1061.678463 | -| terp15s8y75tulvs47ajtn8cre08wqnpke4vwh3cs62 | 0xa40e4f517cfb215f764b99f03cbcee04c36cd58e | 1 | 2 | 1061.678463 | -| terp184pwrwpesed3p7y47j77q5glxkpuxrxq4wprxu | 0x3d42e1b839865b10f895f4bde0511f3583c30cc0 | 1 | 2 | 1061.678463 | -| terp1j076ug2nwzaksu4t6vplfgx7p49kj40kppymth | 0x93fdae215370bb6872abd303f4a0de0d4b6955f6 | 1 | 2 | 1061.678463 | -| terp1hfp44eapa7l68rqn4dzwwvl3pq7gj46u6nv4my | 0xba435ae7a1efbfa38c13ab44e733f1083c89575c | 1 | 2 | 1061.678463 | -| terp1dv2w3y4cq52rhhxaw3v7aghfpufpgej3hgns4t | 0x6b14e892b805143bdcdd7459eea2e90f12146651 | 1 | 2 | 1061.678463 | -| terp1entdeyxqxxf69khvde20c34r0kjtpyfppxm3d6 | 0xccd6dc90c03193a2daec6e54fc46a37da4b09121 | 1 | 2 | 1061.678463 | -| terp1nnggyzt6p3ksk7t7jawrkxpgfd2qd4aqdtw8rr | 0x9cd082097a0c6d0b797e975c3b18284b5406d7a0 | 1 | 2 | 1061.678463 | -| terp1tkt3rw0wycqj777e5w5c0exacsr7pls4l47xlz | 0x5d9711b9ee26012f7bd9a3a987e4ddc407e0fe15 | 1 | 2 | 1061.678463 | -| terp1pn6f69yvu5uvy87h0mk6gq00kv5fnhqj5hjn9g | 0x0cf49d148ce538c21fd77eeda401efb32899dc12 | 1 | 2 | 1061.678463 | -| terp15ekdhqwc7fg9lynl4fqgrq9uuwhl8yyl7wjtmw | 0xa66cdb81d8f2505f927faa408180bce3aff3909f | 1 | 2 | 1061.678463 | -| terp14dc9wfk2rh4fczk2sntyqzguahxydgayg3ve59 | 0xab705726ca1dea9c0aca84d640091cedcc46a3a4 | 1 | 2 | 1061.678463 | -| terp15nlgt5360c58g7058y5282aeyjjmqynfa8rk7e | 0xa4fe85d23a7e287479f43928a3abb924a5b01269 | 1 | 2 | 1061.678463 | -| terp1yuhff97frpq69wwmgqe3wr4wfjhyxjajhszxs3 | 0x272e9497c91841a2b9db4033170eae4cae434bb2 | 1 | 2 | 1061.678463 | -| terp1pa4parx3z60ugalp6vmmd3xnm3gfeeakn9ju2a | 0x0f6a1e8cd1169fc477e1d337b6c4d3dc509ce7b6 | 1 | 2 | 1061.678463 | -| terp1333u54hec0he8u4cman0tqk7q0f66ngh5dcrqd | 0x8c63ca56f9c3ef93f2b8df66f582de03d3ad4d17 | 1 | 2 | 1061.678463 | -| terp17jdljnj7wlew9tk5r04a3a96ngp3xhc8a5uaja | 0xf49bf94e5e77f2e2aed41bebd8f4ba9a03135f07 | 1 | 2 | 1061.678463 | -| terp1f7haw5pew0vyz4yqyntqqfdnu76dwwsqnf86wn | 0x4fafd7503973d841548024d60025b3e7b4d73a00 | 1 | 2 | 1061.678463 | -| terp1sw3cgva8lg2h7u40hy5skdwy6skf3gns54mlnu | 0x83a38433a7fa157f72afb9290b35c4d42c98a270 | 1 | 2 | 1061.678463 | -| terp1wj7gymg3tydrtmmgtjdfp2edmg37e357h53w8w | 0x74bc826d11591a35ef685c9a90ab2dda23ecc69e | 1 | 2 | 1061.678463 | -| terp1xg7wew9qygpugn4lzkxkx25q62jn3mu82hgvu9 | 0x323cecb8a02203c44ebf158d632a80d2a538ef87 | 1 | 2 | 1061.678463 | -| terp1hcmdpf770r62t3lcmmalhyxn0sf9ra97nv4gne | 0xbe36d0a7de78f4a5c7f8defbfb90d37c1251f4be | 1 | 2 | 1061.678463 | -| terp12m56etuzw49cpc5lfxdusyyff8mcc3mm5yasee | 0x56e9acaf82754b80e29f499bc8108949f78c477b | 1 | 2 | 1061.678463 | -| terp15fcwyp9hx2w7s9p5d3tfqhu6pqjvfltty5c6gy | 0xa270e204b7329de814346c56905f9a0824c4fd6b | 1 | 2 | 1061.678463 | -| terp1flj8jfdjguu5xw49t7jxfvs6m5y8q48z9qqedp | 0x4fe47925b24739433aa55fa464b21add087054e2 | 1 | 2 | 1061.678463 | -| terp1uc7q2gy3p2h35gey6n6xmtfeesa4tn4v8sq0t5 | 0xe63c0520910aaf1a2324d4f46dad39cc3b55ceac | 1 | 2 | 1061.678463 | -| terp17ychwgupxc8x5djcrmgky537xw0ku8t8xhu2jm | 0xf131772381360e6a36581ed162523e339f6e1d67 | 1 | 2 | 1061.678463 | -| terp1ettfzhpu32r4kznpgjmj8xt7pjjx9yauyc0zu8 | 0xcad6915c3c8a875b0a6144b723997e0ca46293bc | 1 | 2 | 1061.678463 | -| terp1c4t04weq85mjasp9m2fg2jn866h5vrmcj8r4nc | 0xc556fabb203d372ec025da92854a67d6af460f78 | 1 | 2 | 1061.678463 | -| terp16fea8cg459m5jmaamjxnaye4zk559a0x3gg5c8 | 0xd273d3e115a177496fbddc8d3e933515a942f5e6 | 1 | 2 | 1061.678463 | -| terp1cj7luy7km3fhu23rfsfq6pd2alxz08e496cmlj | 0xc4bdfe13d6dc537e2a234c120d05aaefcc279f35 | 1 | 2 | 1061.678463 | -| terp15kawgduav6z304hmk9x7qc64ltk0j8l6w5c4wk | 0xa5bae4379d668517d6fbb14de06355faecf91ffa | 1 | 2 | 1061.678463 | -| terp1kfw6mjd6us9m27uvz0n4ln9jag4v5pmvukkhfq | 0xb25dadc9bae40bb57b8c13e75fccb2ea2aca076c | 1 | 2 | 1061.678463 | -| terp1e5vwmljx6hwkdv3kms7z9sj98m55xm9cp4pjl0 | 0xcd18edfe46d5dd66b236dc3c22c2453ee9436cb8 | 1 | 2 | 1061.678463 | -| terp1tvdun2qwpmlhcjxefzjz0ur22hws7sldsg5ytf | 0x5b1bc9a80e0eff7c48d948a427f06a55dd0f43ed | 1 | 2 | 1061.678463 | -| terp105284x66ga9c84a8kqn86t7nsx5x3smghkq65k | 0x7d147a9b5a474b83d7a7b0267d2fd381a868c368 | 1 | 2 | 1061.678463 | -| terp1z2hqz88435e7d4ltumhu385gwc39y6dhx4cczl | 0x12ae011cf58d33e6d7ebe6efc89e8876225269b7 | 1 | 2 | 1061.678463 | -| terp163rfk5wphzftpevx3unh8d608d6nnsxdmsjaz6 | 0xd4469b51c1b892b0e5868f2773b74f3b7539c0cd | 1 | 2 | 1061.678463 | -| terp1cwt6tszxekrn4afw0yzgwd488x2pajvt3k8l2t | 0xc397a5c046cd873af52e79048736a739941ec98b | 1 | 2 | 1061.678463 | -| terp13xf98hqhxxd5f65ny3fet8e6tg625rly7aqu58 | 0x899253dc17319b44ea932453959f3a5a34aa0fe4 | 1 | 2 | 1061.678463 | -| terp120lfsa57hkphszpvahff0k7ak3zwe8zvyurvas | 0x53fe98769ebd8378082cedd297dbddb444ec9c4c | 1 | 2 | 1061.678463 | -| terp17w3gpm5qfqz8y9l7jwhqgq5085suj7usfxqkyu | 0xf3a280ee8048047217fe93ae04028f3d21c97b90 | 1 | 2 | 1061.678463 | -| terp1g3vmsr8w57kls4s3as83rda808appzdqzvstzu | 0x4459b80ceea7adf85611ec0f11b7a779fa1089a0 | 1 | 2 | 1061.678463 | -| terp1rrsluqw7rh3t3jdj8ea78kcs6jdh8rvd068wrv | 0x18e1fe01de1de2b8c9b23e7be3db10d49b738d8d | 1 | 2 | 1061.678463 | -| terp1yjjwzrfhk8lucxghkjfx3ptxaf8hf63ztxe9w7 | 0x24a4e10d37b1ffcc1917b492688566ea4f74ea22 | 1 | 2 | 1061.678463 | -| terp1u8dp2vyg5k2ajrrledhfzhmzprvw9nwxm48023 | 0xe1da153088a595d90c7fcb6e915f6208d8e2cdc6 | 1 | 2 | 1061.678463 | -| terp1sh8xdvgygc5ersqn356c98rdj6suyzjx2h7c4j | 0x85ce66b104462991c0138d35829c6d96a1c20a46 | 1 | 2 | 1061.678463 | -| terp1yatxy90svm4q8wssrzrh9cf9xawkp8kl4zwvya | 0x27566215f066ea03ba10188772e125375d609edf | 1 | 2 | 1061.678463 | -| terp1355lwcpax77507h6adaq2r3plxmz8has02l44s | 0x8d29f7603d37bd47fafaeb7a050e21f9b623dfb0 | 1 | 2 | 1061.678463 | -| terp1qev7yxdfhwnwxnf5a2lcjt0gva9erex22e0cpf | 0x0659e219a9bba6e34d34eabf892de8674b91e4ca | 1 | 2 | 1061.678463 | -| terp13ya5t5yeyzr2k7hgvjlcqe2yqtmzvxe8f4ptpv | 0x893b45d0992086ab7ae864bf80654402f6261b27 | 1 | 2 | 1061.678463 | -| terp1elfrhr3ale2nfncet4gsmm3rgn9vjvyc4y87ut | 0xcfd23b8e3dfe5534cf195d510dee2344cac93098 | 1 | 2 | 1061.678463 | -| terp1k9p9qh7r6z5vn84mttnjq9kt4f2pd6j9wmkhm6 | 0xb142505fc3d0a8c99ebb5ae72016cbaa5416ea45 | 1 | 2 | 1061.678463 | -| terp16yx62mjp6y6n4z9ry0wnm3rzvuen4ulmkse58l | 0xd10da56e41d1353a88a323dd3dc46267333af3fb | 1 | 2 | 1061.678463 | -| terp1q2lemxy94dq2gzp4uym5f8devq8nvmnwvnttaj | 0x02bf9d9885ab40a40835e137449db9600f366e6e | 1 | 2 | 1061.678463 | -| terp1v56p62cqsvfcl6tc7arl9vf0e6dxlgn6hhhwr0 | 0x65341d2b0083138fe978f747f2b12fce9a6fa27a | 1 | 2 | 1061.678463 | -| terp1nj3xwv92q2xsnrzjcwt54wy7eqw8fatv3y82j4 | 0x9ca26730aa028d098c52c3974ab89ec81c74f56c | 1 | 2 | 1061.678463 | -| terp1aw39e7ee32kqkhdg5d8le7j89tv0des0nhgr35 | 0xeba25cfb398aac0b5da8a34ffcfa472ad8f6e60f | 1 | 2 | 1061.678463 | -| terp1pk34apejpsnw0tk8c3r9qe77pk0r0dh9mk4eny | 0x0da35e87320c26e7aec7c4465067de0d9e37b6e5 | 1 | 2 | 1061.678463 | -| terp1zyv32gcjg3j7rv47nn9zysk8k0jh6wsdqax668 | 0x11191523124465e1b2be9cca2242c7b3e57d3a0d | 1 | 2 | 1061.678463 | -| terp1d5ypdc4ehg65427j6s0s4ete00wqmn7g3g5ekn | 0x6d0816e2b9ba354aabd2d41f0ae5797bdc0dcfc8 | 1 | 2 | 1061.678463 | -| terp18hw4v5fp64u3j9gcv5cq60598ug055vh3ssu88 | 0x3ddd565121d57919151865300d3e853f10fa5197 | 1 | 2 | 1061.678463 | -| terp19emfucsvzwz90r8h2vdek2wxg3yyw882yfjwel | 0x2e769e620c1384578cf7531b9b29c64448471cea | 1 | 2 | 1061.678463 | -| terp1rl3akx85yg8eyjaf7psx0z966sq9n34s3egnkg | 0x1fe3db18f4220f924ba9f0606788bad40059c6b0 | 1 | 2 | 1061.678463 | -| terp1hgqgjaua2ptgj3yhsdykc0r06azfcrv8k9lv2y | 0xba0089779d505689449783496c3c6fd7449c0d87 | 1 | 2 | 1061.678463 | -| terp14k4gmrklaausthevda04eqjupfm33klm6yecyn | 0xadaa8d8edfef7905df2c6f5f5c825c0a7718dbfb | 1 | 2 | 1061.678463 | -| terp195a2rd49g795xjxmndu2glhnc54v7wjccn0q7n | 0x2d3aa1b6a5478b4348db9b78a47ef3c52acf3a58 | 1 | 2 | 1061.678463 | -| terp13rdrv9fdg6g73480exvdmdaj9lsmz6yc3p2nu4 | 0x88da36152d4691e8d4efc998ddb7b22fe1b16898 | 1 | 2 | 1061.678463 | -| terp1mm4hd40tux83kt4f3pcu9pl2jlsxkkdnvjkf4l | 0xdeeb76d5ebe18f1b2ea98871c287ea97e06b59b3 | 1 | 2 | 1061.678463 | -| terp12uc2fm2mxrdx0xsj7glp8k4de3akte3y89kt28 | 0x5730a4ed5b30da679a12f23e13daadcc7b65e624 | 1 | 2 | 1061.678463 | -| terp10hyg33taqjfj6xzqfsng5u7d0vqcea08l23w6n | 0x7dc888c57d04932d18404c268a73cd7b018cf5e7 | 1 | 2 | 1061.678463 | -| terp14ur43q7hwhgwxyu5ncee4amt9s7wzfm9xcdq9a | 0xaf075883d775d0e313949e339af76b2c3ce12765 | 1 | 2 | 1061.678463 | -| terp1q2684fjc2pckfyykmjva5x0x07g4fvd7l549kf | 0x02b47aa6585071649096dc99da19e67f9154b1be | 1 | 2 | 1061.678463 | -| terp1a7hcrd377clskuhmxe2mejlzklpntgt483xym4 | 0xefaf81b63ef63f0b72fb3655bccbe2b7c335a175 | 1 | 2 | 1061.678463 | -| terp1p60zvvy8jphu7mjf5tnwwrvfptph236hth385u | 0x0e9e263087906fcf6e49a2e6e70d890ac3754757 | 1 | 2 | 1061.678463 | -| terp18qacyvegwpzqefkyl3wmpyd5zv5qn2t22vjrgx | 0x383b82332870440ca6c4fc5db091b4132809a96a | 1 | 2 | 1061.678463 | -| terp1zk9s5y33hywzctn6dczgjyahz4ym399rrk5fnc | 0x158b0a1231b91c2c2e7a6e048913b71549b894a3 | 1 | 2 | 1061.678463 | -| terp1jqkfrk8ld9zh9q2yyh870ezkl63rm0cexfahjz | 0x902c91d8ff694572814425cfe7e456fea23dbf19 | 1 | 2 | 1061.678463 | -| terp1skzn30va8u6r8cnsrcxac83afgt9dxdqr72zyz | 0x858538bd9d3f3433e2701e0ddc1e3d4a165699a0 | 1 | 2 | 1061.678463 | -| terp1s3ql3zdgzlrnncr6kkxk2z2qnrznft2hnvalzh | 0x8441f889a817c739e07ab58d65094098c534ad57 | 1 | 2 | 1061.678463 | -| terp1l3gtxtjlyxvuy74v06x8zm6n78ydckzkp8d3sq | 0xfc50b32e5f2199c27aac7e8c716f53f1c8dc5856 | 1 | 2 | 1061.678463 | -| terp1v8gtdzxy767eq9xpvycm0d6vudvhp3j5uk5exf | 0x61d0b688c4f6bd9014c16131b7b74ce35970c654 | 1 | 2 | 1061.678463 | -| terp18upf64ucunp2yvsxqlrhhg7t2quqgjke962jmk | 0x3f029d5798e4c2a2320607c77ba3cb5038044ad9 | 1 | 2 | 1061.678463 | -| terp1fda6ary8z65hryf5fgexn5x82xtgz9g9rmk62l | 0x4b7bae8c8716a97191344a3269d0c75196811505 | 1 | 2 | 1061.678463 | -| terp1k6vtus9klavuanw9gu4uc6a9mjxqsaux4cvg96 | 0xb698be40b6ff59cecdc5472bcc6ba5dc8c087786 | 1 | 2 | 1061.678463 | -| terp1pd7yam6788g6dxrg6ugeecfpnu48nmuelx2xfr | 0x0b7c4eef5e39d1a69868d7119ce1219f2a79ef99 | 1 | 2 | 1061.678463 | -| terp1s8gjc2rmu0qzz2hm6j60p9t57nq6x0r6xt847a | 0x81d12c287be3c0212afbd4b4f09574f4c1a33c7a | 1 | 2 | 1061.678463 | -| terp124f4mcu8l7zezpdfwndqzpk09l5nufrcevayfm | 0x55535de387ff859105a974da0106cf2fe93e2478 | 1 | 2 | 1061.678463 | -| terp1a43tvswmya7fc63t5mtjg6sawmjg8sgu2xhtz6 | 0xed62b641db277c9c6a2ba6d7246a1d76e483c11c | 1 | 2 | 1061.678463 | -| terp1w7hwad7f6az9ltduzle3tu3sh35lgx0ssr0mrl | 0x77aeeeb7c9d7445fadbc17f315f230bc69f419f0 | 1 | 2 | 1061.678463 | -| terp1dyq7ttzara4rhs0g3vwszjmf0e5ruhp0wnfucv | 0x6901e5ac5d1f6a3bc1e88b1d014b697e683e5c2f | 1 | 2 | 1061.678463 | -| terp1vz3dt925cx54d79c3u7y45wxgflj3ut7lh3vd6 | 0x60a2d59554c1a956f8b88f3c4ad1c6427f28f17e | 1 | 2 | 1061.678463 | -| terp16kffepd6kq7mdzcun3jtdsdmvpha24g9pp25av | 0xd5929c85bab03db68b1c9c64b6c1bb606fd55505 | 1 | 2 | 1061.678463 | -| terp18wlc37r7jttng9rgv3zjv0ld3s5lmnkhhyfkdl | 0x3bbf88f87e92d73414686445263fed8c29fdced7 | 1 | 2 | 1061.678463 | -| terp1ppn4kjvwzkqjretuucq8hgzcemxl252vvk76ls | 0x08675b498e158121e57ce6007ba058cecdf5514c | 1 | 2 | 1061.678463 | -| terp199n4gakk7ml98xpvvtpndtrvdn8wz83tft6zdn | 0x29675476d6f6fe53982c62c336ac6c6ccee11e2b | 1 | 2 | 1061.678463 | -| terp1659cugkkmvaxnus39veeqln5x5jdp7urzvt87f | 0xd50b8e22d6db3a69f2112b33907e743524d0fb83 | 1 | 2 | 1061.678463 | -| terp1tk2m46acgy4dsfegwfq2ts5puwanp5n7eg657f | 0x5d95baebb8412ad827287240a5c281e3bb30d27e | 1 | 2 | 1061.678463 | -| terp1kdquy07csa9c22rmafzwj0fshn8cnh4aera9zu | 0xb341c23fd8874b85287bea44e93d30bccf89debd | 1 | 2 | 1061.678463 | -| terp195prchx9atrsnzgkl5p8p5rluyw64fj8rlfdyl | 0x2d023c5cc5eac7098916fd0270d07fe11daaa647 | 1 | 2 | 1061.678463 | -| terp1dle3ugn2xkudtlrns2qn5peyf8k9w7c72cyrq5 | 0x6ff31e226a35b8d5fc7382813a072449ec577b1e | 1 | 2 | 1061.678463 | -| terp1tfl9hurjecm54je2wtnvkyzlj6pt5lgnfxqwy9 | 0x5a7e5bf072ce374acb2a72e6cb105f9682ba7d13 | 1 | 2 | 1061.678463 | -| terp105sgsnt2punvajvw7h0ukkhadewnse2flpga38 | 0x7d20884d6a0f26cec98ef5dfcb5afd6e5d386549 | 1 | 2 | 1061.678463 | -| terp19r4xsx23j2cg8cgxvyhgdjtlftagw6cca9ad3p | 0x28ea68195192b083e106612e86c97f4afa876b18 | 1 | 2 | 1061.678463 | -| terp1xrgenfl60fuxn9k0qmfr76nwxrnq6ey3u8h04d | 0x30d199a7fa7a786996cf06d23f6a6e30e60d6491 | 1 | 2 | 1061.678463 | -| terp1cle4fvtju57qmlagmvtmq28kxnxjal9l0sruds | 0xc7f354b172e53c0dffa8db17b028f634cd2efcbf | 1 | 2 | 1061.678463 | -| terp15lpeghx9lh5m4jdug0aupxnedcua9hvwmns8c0 | 0xa7c3945cc5fde9bac9bc43fbc09a796e39d2dd8e | 1 | 2 | 1061.678463 | -| terp1kdm36dqe4vgx8v27efaf4d5qwm4uxjmqm970m7 | 0xb3771d3419ab1063b15eca7a9ab68076ebc34b60 | 1 | 2 | 1061.678463 | -| terp1vdfwrrzgp3ryxdpq9m3j97r6692mr0p5cratdc | 0x6352e18c480c464334202ee322f87ad155b1bc34 | 1 | 2 | 1061.678463 | -| terp1fhytcaflf90ngm9l40qmg09d7el3h36pnnvf5t | 0x4dc8bc753f495f346cbfabc1b43cadf67f1bc741 | 1 | 2 | 1061.678463 | -| terp19lx4hp8qf655ptllzutnuelvvsmku80u7ylpc5 | 0x2fcd5b84e04ea940afff17173e67ec64376e1dfc | 1 | 2 | 1061.678463 | -| terp10phnwlq758k0y5latyxmvsem0aacf4cg8gq42j | 0x786f377c1ea1ecf253fd590db6433b7f7b84d708 | 1 | 2 | 1061.678463 | -| terp19ps8s2a6uad28tl4ac4j4gz8dt5nlc7h784ej9 | 0x2860782bbae75aa3aff5ee2b2aa0476ae93fe3d7 | 1 | 2 | 1061.678463 | -| terp1cdzcwpcfx6wus8yqjh2s3z35neqtsg97p88mj4 | 0xc345870709369dc81c8095d5088a349e40b820be | 1 | 2 | 1061.678463 | -| terp15aavla4hp549rm0dwwpp4j3mcuqlqrnjx3xxf9 | 0xa77acff6b70d2a51eded73821aca3bc701f00e72 | 1 | 2 | 1061.678463 | -| terp12kpq0h3l6dm00h3n20k2ymscru8p0xm34lxflt | 0x558207de3fd376f7de3353eca26e181f0e179b71 | 1 | 2 | 1061.678463 | -| terp1ahmuajjjhshh7amt4qgf9w9u2vs47mqt3q2772 | 0xedf7ceca52bc2f7f776ba81092b8bc53215f6c0b | 1 | 2 | 1061.678463 | -| terp1sps5qh4ywqhxdk629gxqhe2sf269wl9tchce27 | 0x8061405ea4702e66db4a2a0c0be5504ab4577cab | 1 | 2 | 1061.678463 | -| terp1sm45l3mpvetpe8v2hzufsu8t4qnsrc3x2y5yxj | 0x86eb4fc76166561c9d8ab8b89870eba82701e226 | 1 | 2 | 1061.678463 | -| terp17xjdjzkad3e7wzk6ggzuawytehp9pxtva48fnm | 0xf1a4d90add6c73e70ada4205ceb88bcdc250996c | 1 | 2 | 1061.678463 | -| terp187uua9tdjwqwafgpqs2myxte0yxr9r9wgr8zm5 | 0x3fb9ce956d9380eea5010415b21979790c328cae | 1 | 2 | 1061.678463 | -| terp13v947r2pr28x86mzjsz3ejaymc5pkpw0jr4580 | 0x8b0b5f0d411a8e63eb6294051ccba4de281b05cf | 1 | 2 | 1061.678463 | -| terp1p98g96ezq78769crxskedm7swtenkl9jq8h9hd | 0x094e82eb22078fed1703342d96efd072f33b7cb2 | 1 | 2 | 1061.678463 | -| terp1qq0sar27ktalzsqrfy4xr5kjpkj9z4cu5c5ung | 0x001f0e8d5eb2fbf14003492a61d2d20da451571c | 1 | 2 | 1061.678463 | -| terp17zgj4ezfg675pv4kpjfla354sqlgstj7h9ncud | 0xf0912ae44946bd40b2b60c93fec695803e882e5e | 1 | 2 | 1061.678463 | -| terp1fc4cqgat2g69sxpf8hevhzg9lht5wjsq2yc2e7 | 0x4e2b8023ab52345818293df2cb8905fdd7474a00 | 1 | 2 | 1061.678463 | -| terp1nllq90u2c6029enxga0td6y65v8xamm7n7dj43 | 0x9ffe02bf8ac69ea2e666475eb6e89aa30e6eef7e | 1 | 2 | 1061.678463 | -| terp1nppml8velk4876uaumcu8sjne8ks6dwfu5r5g0 | 0x9843bf9d99fdaa7f6b9de6f1c3c253c9ed0d35c9 | 1 | 2 | 1061.678463 | -| terp1w0xnlurel7ffrzfv97y5jxjuvrp735sravpkkh | 0x73cd3ff079ff9291892c2f89491a5c60c3e8d203 | 1 | 2 | 1061.678463 | -| terp147gxz4dyucjv05ul3u2jwxjl3vqm8y27923cz2 | 0xaf906155a4e624c7d39f8f15271a5f8b01b3915e | 1 | 2 | 1061.678463 | -| terp1czgs59ahxt5lmz2zdj2l025y98kxzm9yxscr2g | 0xc0910a17b732e9fd89426c95f7aa8429ec616ca4 | 1 | 2 | 1061.678463 | -| terp1gumtgwxhdk027gt9v84l3dn6d6cnvr0nd8gapt | 0x4736b438d76d9eaf216561ebf8b67a6eb1360df3 | 1 | 2 | 1061.678463 | -| terp1lers8agtj4jmvlaz3azjpw4ydn29yxv4m2yzr6 | 0xfe4703f50b9565b67fa28f4520baa46cd4521995 | 1 | 2 | 1061.678463 | -| terp1ezj7qjv8egdl7pkkavwpdyn2dhxmm9e4t8quwz | 0xc8a5e04987ca1bff06d6eb1c16926a6dcdbd9735 | 1 | 2 | 1061.678463 | -| terp1yeq9r4w58m97cwh7uetm9pzgmgs2c4kekkyam6 | 0x264051d5d43ecbec3afee657b28448da20ac56d9 | 1 | 2 | 1061.678463 | -| terp1kxdwvy8eh955atprmhydm2mzl9vsxxkk4nh5uq | 0xb19ae610f9b9694eac23ddc8ddab62f959031ad6 | 1 | 2 | 1061.678463 | -| terp10x7fjl0d6cgjz9jddvcq5cyyh8se2g8lq0agkt | 0x79bc997dedd61121164d6b300a6084b9e19520ff | 1 | 2 | 1061.678463 | -| terp17fs5jzcwt2u7lulhpt6lvj4vn7nx03ka85gctl | 0xf261490b0e5ab9eff3f70af5f64aac9fa667c6dd | 1 | 2 | 1061.678463 | -| terp1p229xpxcyhxqt2t4qeq7y8tc64zr0cgcqg67ld | 0x0a945304d825cc05a9750641e21d78d54437e118 | 1 | 2 | 1061.678463 | -| terp1rjtvnq2nr32zzq9tvhtu2cfgph6rl70k7x8zax | 0x1c96c981531c542100ab65d7c561280df43ff9f6 | 1 | 2 | 1061.678463 | -| terp12t0372799z4chfaeyyw8y2mzk3khhxpdytgwcg | 0x52df1f2bc528ab8ba7b9211c722b62b46d7b982d | 1 | 2 | 1061.678463 | -| terp1sqfs0w0sh0me4r0mdjzhep8ytf6mnlma0ufs4c | 0x801307b9f0bbf79a8dfb6c857c84e45a75b9ff7d | 1 | 2 | 1061.678463 | -| terp18f7vwu39gjmyez0mj55nqguxffl05h7ve9mm26 | 0x3a7cc7722544b64c89fb95293023864a7efa5fcc | 1 | 2 | 1061.678463 | -| terp1dhjdasksm9w8g6e0sqtcxjzwljxz7gz4xrj8fg | 0x6de4dec2d0d95c746b2f801783484efc8c2f2055 | 1 | 2 | 1061.678463 | -| terp1cfr5zsjhxw2tzy5c5cmmdfsk4jfvra6yxzmgjd | 0xc2474142573394b11298a637b6a616ac92c1f744 | 1 | 2 | 1061.678463 | -| terp170rftz96eh87ak8nmt5dx6ws37zxml2v2kvhhu | 0xf3c69588bacdcfeed8f3dae8d369d08f846dfd4c | 1 | 2 | 1061.678463 | -| terp10ezzakw2549wdztrd3jnqn8k4kqlem34r3jdqx | 0x7e442ed9caa54ae689636c65304cf6ad81fcee35 | 1 | 2 | 1061.678463 | -| terp109tfwj2tt9u5spjzqur7ucrvqtx4hjd7va8vk3 | 0x795697494b59794806420707ee606c02cd5bc9be | 1 | 2 | 1061.678463 | -| terp155wnhmlpht62qy5zsgtru7nl8qt2m34keeucek | 0xa51d3befe1baf4a0128282163e7a7f3816adc6b6 | 1 | 2 | 1061.678463 | -| terp1ws0hvllwj4pxpz4f6mvxw4eamyqxxl7zvjl76k | 0x741f767fee9542608aa9d6d867573dd900637fc2 | 1 | 2 | 1061.678463 | -| terp1ynx2mp803xy6u9qjhet5sm85hqyle60m6uky93 | 0x24ccad84ef8989ae1412be57486cf4b809fce9fb | 1 | 2 | 1061.678463 | -| terp17zmj3mk26hrf6hehaapavtfgar06als9hwy8ns | 0xf0b728eecad5c69d5f37ef43d62d28e8dfaefe05 | 1 | 2 | 1061.678463 | -| terp1xjkft6ssen9ml85dj0l4cx2shqs9k7dxdmju9u | 0x34ac95ea10cccbbf9e8d93ff5c1950b8205b79a6 | 1 | 2 | 1061.678463 | -| terp1marrnnrqp0xec6jlf43td0tcz8eqzsk7v8cmdx | 0xdf4639cc600bcd9c6a5f4d62b6bd7811f20142de | 1 | 2 | 1061.678463 | -| terp1pyhqcu5hx5cvw6eqexwjp96qn5n9rdw0rw2gd7 | 0x092e0c72973530c76b20c99d2097409d2651b5cf | 1 | 2 | 1061.678463 | -| terp1c286wmceskppavsy2my09nn82slcs89us26pft | 0xc28fa76f1985821eb20456c8f2ce67543f881cbc | 1 | 2 | 1061.678463 | -| terp1tred9pnve6j9xwyhmjn7sw5qt0gfemw9n5hqyx | 0x58f2d2866ccea4533897dca7e83a805bd09cedc5 | 1 | 2 | 1061.678463 | -| terp15nmevtjnrrlz37uaaaucgnlgw6ktfr83e6vta5 | 0xa4f7962e5318fe28fb9def79844fe876acb48cf1 | 1 | 2 | 1061.678463 | -| terp1sa5xl0lvqwea2r0qhgpsz30lydpmsjtenjr2ad | 0x87686fbfec03b3d50de0ba030145ff2343b84979 | 1 | 2 | 1061.678463 | -| terp1tcgj00nd4drqxv8f0cxmkjgj4n8kagtcvcnnz8 | 0x5e1127be6dab460330e97e0dbb4912accf6ea178 | 1 | 2 | 1061.678463 | -| terp1j2x2uv6scs7l2qd63akzkye2kq6wd6c5txa688 | 0x928cae3350c43df501ba8f6c2b132ab034e6eb14 | 1 | 2 | 1061.678463 | -| terp1ja3ckap853kq3n98yj7gnfkjkdy9q0na4m4fxk | 0x97638b7427a46c08cca724bc89a6d2b348503e7d | 1 | 2 | 1061.678463 | -| terp1x8hen0lxfscpnl553p87hft46g5f0dzjh63qrg | 0x31ef99bfe64c3019fe94884feba575d22897b452 | 1 | 2 | 1061.678463 | -| terp1hxu39jwfwcyec8cxzf3m6ge79egngzg9ql7mpg | 0xb9b912c9c976099c1f061263bd233e2e51340905 | 1 | 2 | 1061.678463 | -| terp1nftnd3fzzczjrjpd8snv99mce4zrlf0dm8tjps | 0x9a5736c522160521c82d3c26c29778cd443fa5ed | 1 | 2 | 1061.678463 | -| terp19aarwcwufq8fwvrvcu4fvlw2u2ttcem8mxl60s | 0x2f7a3761dc480e97306cc72a967dcae296bc6767 | 1 | 2 | 1061.678463 | -| terp1ghfk7h62xc7n6ut097095p9n2hc5h6vmj53cyt | 0x45d36f5f4a363d3d716f2f9e5a04b355f14be99b | 1 | 2 | 1061.678463 | -| terp1gh8d8tlx0cr2che5952mt2k9dp6jvphkr4ku30 | 0x45ced3afe67e06ac5f342d15b5aac568752606f6 | 1 | 2 | 1061.678463 | -| terp13kp34ut8l5uq68qgs3zch90rugjg4cazlw7a9q | 0x8d831af167fd380d1c0884458b95e3e2248ae3a2 | 1 | 2 | 1061.678463 | -| terp1qucp05splrmlwy3vaegldwtfyu3edpuz730683 | 0x073017d201f8f7f7122cee51f6b9692723968782 | 1 | 2 | 1061.678463 | -| terp1d8m3qmt8pxnazxedctmlq8ls58fdjz07ka92c5 | 0x69f7106d6709a7d11b2dc2f7f01ff0a1d2d909fe | 1 | 2 | 1061.678463 | -| terp1ge4vpx4kawd736ezyc5yvelpqpn72hgns3meel | 0x466ac09ab6eb9be8eb2226284667e10067e55d13 | 1 | 2 | 1061.678463 | -| terp1rlah4xq7r83c4kh7r0ltzjtzwhlqwnuetlz9ah | 0x1ffb7a981e19e38adafe1bfeb1496275fe074f99 | 1 | 2 | 1061.678463 | -| terp1vn75eg3u3m573pt4zydg3ja4x0qztkuhd5ywca | 0x64fd4ca23c8ee9e88575111a88cbb533c025db97 | 1 | 2 | 1061.678463 | -| terp1rysypzvkhlsjnpv7x8ydkjp24fwzpvwe4d92uh | 0x1920408996bfe129859e31c8db482aaa5c20b1d9 | 1 | 2 | 1061.678463 | -| terp1y3689pk22n5aa227q8e6ygcrf24qa4wyxl0va6 | 0x24747286ca54e9dea95e01f3a223034aaa0ed5c4 | 1 | 2 | 1061.678463 | -| terp10eugcckfe2zfmn3en6g0jy474c2yy3sk3zn7p0 | 0x7e788c62c9ca849dce399e90f912beae14424616 | 1 | 2 | 1061.678463 | -| terp1q5qdy4fc6u78ewddu06nqdf2qh37g0xzwste73 | 0x0500d25538d73c7cb9ade3f530352a05e3e43cc2 | 1 | 2 | 1061.678463 | -| terp1asj8k44pjvn87c4yjljvm57jh5ntrj46u6xyn2 | 0xec247b56a193267f62a497e4cdd3d2bd26b1caba | 1 | 2 | 1061.678463 | -| terp17r30z4hyh3hxyd9dsss2e2h5apvjjkhsclf0xd | 0xf0e2f156e4bc6e6234ad8420acaaf4e859295af0 | 1 | 2 | 1061.678463 | -| terp1vz650sa3htlvdk3hs7wkw3vjpj6fqxj9hxrqep | 0x60b547c3b1bafec6da37879d6745920cb4901a45 | 1 | 2 | 1061.678463 | -| terp1z2lztu9at0360qrxq7qcnf6938m8k50dcsx60u | 0x12be25f0bd5be3a78066078189a74589f67b51ed | 1 | 2 | 1061.678463 | -| terp1shtm7t5y6ngpqc5vs3qgqt5s3wzq9jma3vacdg | 0x85d7bf2e84d4d010628c8440802e908b8402cb7d | 1 | 2 | 1061.678463 | -| terp1vly3yvkq46083wmpquv3ycxl7cg2vfqyqhlnvv | 0x67c91232c0ae9e78bb6107191260dff610a62404 | 1 | 2 | 1061.678463 | -| terp1096rv7xnjfy2dk2m0zd3yyqqmtt0u6puuecrlw | 0x79743678d39248a6d95b789b121000dad6fe683c | 1 | 2 | 1061.678463 | -| terp1z05u0sypz3xy9l2rjeqvmm7wjphx0f3nee744c | 0x13e9c7c081144c42fd439640cdefce906e67a633 | 1 | 2 | 1061.678463 | -| terp1hpf4drvvuwnxy28r82w3nuvlz7mv6tsrw50ta8 | 0xb853568d8ce3a66228e33a9d19f19f17b6cd2e03 | 1 | 2 | 1061.678463 | -| terp1pv4mh7s5s4u68qvrlhk8g766qhkv3pu3y4cc7d | 0x0b2bbbfa148579a38183fdec747b5a05ecc88791 | 1 | 2 | 1061.678463 | -| terp1etmcfkkemg0fad5hym5vcy4e93fnkf2kx0etvp | 0xcaf784dad9da1e9eb69726e8cc12b92c533b2556 | 1 | 2 | 1061.678463 | -| terp17fdrlg60hw9ruy7gx6ljdf0tjmgphsh6cuphru | 0xf25a3fa34fbb8a3e13c836bf26a5eb96d01bc2fa | 1 | 2 | 1061.678463 | -| terp1339vm8p7smlsu4g656tu09r9yty4dvarc70dtq | 0x8c4acd9c3e86ff0e551aa697c7946522c956b3a3 | 1 | 2 | 1061.678463 | -| terp1792a8rheggydl76ayvedtrsh6qyxy46yjt4thv | 0xf155d38ef94208dffb5d2332d58e17d008625744 | 1 | 2 | 1061.678463 | -| terp1vgxk0zgqsxq0ce40pj3ujfhvgz7nacayaa0pxe | 0x620d6789008180fc66af0ca3c926ec40bd3ee3a4 | 1 | 2 | 1061.678463 | -| terp1uf8xc8cjysxv6hctxppq4d9hlxkyu7mslr2h8c | 0xe24e6c1f12240ccd5f0b30420ab4b7f9ac4e7b70 | 1 | 2 | 1061.678463 | -| terp10le3mlunezw745vqag0h5s09v2max6ghrnq4fx | 0x7ff31dff93c89dead180ea1f7a41e562b7d36917 | 1 | 2 | 1061.678463 | -| terp1tswdafkl34t7g2hhj3ll75k27s8y9hg6llj5ae | 0x5c1cdea6df8d57e42af7947fff52caf40e42dd1a | 1 | 2 | 1061.678463 | -| terp1q5kspwccnnnc4cj9sfsf262szmwk0f36z4wsks | 0x052d00bb189ce78ae245826095695016dd67a63a | 1 | 2 | 1061.678463 | -| terp1kx9sf5qygd80tx0lsgu25xh53x8fctc37jh9ee | 0xb18b04d004434ef599ff8238aa1af4898e9c2f11 | 1 | 2 | 1061.678463 | -| terp1y7hf2etdtfprl7f5dyl7rahevw8alu9kdgyl2z | 0x27ae95656d5a423ff934693fe1f6f9638fdff0b6 | 1 | 2 | 1061.678463 | -| terp1mday6n5yw6mj7scugrp4uwwnxxvl63cm07sha2 | 0xdb7a4d4e8476b72f431c40c35e39d33199fd471b | 1 | 2 | 1061.678463 | -| terp128q4s3vaksqp4t7q63ey73u605vyuwqlzghjlh | 0x51c158459db4001aafc0d4724f479a7d184e381f | 1 | 2 | 1061.678463 | -| terp1nt2hchynata94u47nk3ham927kq57sds6tjew8 | 0x9ad57c5c93eafa5af2be9da37eecaaf5814f41b0 | 1 | 2 | 1061.678463 | -| terp1q2d2698kmqcjjg9zqukfgl43kwqwqh0ft6lc3s | 0x029aad14f6d8312920a2072c947eb1b380e05de9 | 1 | 2 | 1061.678463 | -| terp15a2r4ku7jrylpeggcqs40tx8ccmpa45pz7hqw8 | 0xa7543adb9e90c9f0e508c02157acc7c6361ed681 | 1 | 2 | 1061.678463 | -| terp13w9hjg2cugpl5xy6rpgcwddpfavanhwjmr5fuy | 0x8b8b792158e203fa189a18518735a14f59d9ddd2 | 1 | 2 | 1061.678463 | -| terp1x94x4kjp4mfa0zxlu6c55mrcfzdspxf7w9lr9q | 0x316a6ada41aed3d788dfe6b14a6c78489b00993e | 1 | 2 | 1061.678463 | -| terp1rxa4jg4uynnchack9p68xeq62aa2rst0ek9e0k | 0x19bb5922bc24e78bf716287473641a577aa1c16f | 1 | 2 | 1061.678463 | -| terp1p9rzz0kefduddle5uy8fwqy66jqv84yjvq6kx5 | 0x0946213ed94b78d6ff34e10e97009ad480c3d492 | 1 | 2 | 1061.678463 | -| terp1zftr846depvsm3089tslu8ym35pw26szhc7g9t | 0x125633d74dc8590dc5e72ae1fe1c9b8d02e56a02 | 1 | 2 | 1061.678463 | -| terp1z6k3svctaxyyv2wtalux8t3a0sqgje82nv0nny | 0x16ad18330be9884629cbeff863ae3d7c008964ea | 1 | 2 | 1061.678463 | -| terp1fsrlvtrmkcc44fcdadekcspsewwr72s6kq05hl | 0x4c07f62c7bb6315aa70deb736c4030cb9c3f2a1a | 1 | 2 | 1061.678463 | -| terp1u5qqpy629wqzr2dhmh52qewmht5u5gpfzlwh9n | 0xe50000934a2b8021a9b7dde8a065dbbae9ca2029 | 1 | 2 | 1061.678463 | -| terp1t9zu3kl5u0a5am32esc6hjyqlfmzlak4zgghu8 | 0x5945c8dbf4e3fb4eee2acc31abc880fa762ff6d5 | 1 | 2 | 1061.678463 | -| terp1dncfzv2szkfq9hjkyevmgtf3sw7hxr4my8yvvl | 0x6cf0913150159202de562659b42d3183bd730ebb | 1 | 2 | 1061.678463 | -| terp1jnmxdlecc8y3rwy8cz399a5u5nhknj8v55nzy0 | 0x94f666ff38c1c911b887c0a252f69ca4ef69c8ec | 1 | 2 | 1061.678463 | -| terp1rl7t39wkxuq6esw8t2skhvqap4sh8y5c78h6dg | 0x1ffcb895d63701acc1c75aa16bb01d0d61739298 | 1 | 2 | 1061.678463 | -| terp1q5n6sc2fpjrxa0f92688f9znr5n6u7ej59q5ae | 0x0527a861490c866ebd25568e7494531d27ae7b32 | 1 | 2 | 1061.678463 | -| terp19pffn47r0qcg23qnd9jdzte4t0z36we7r8u2yc | 0x285299d7c378308544136964d12f355bc51d3b3e | 1 | 2 | 1061.678463 | -| terp1v03ryz6e4ctxn7egs8ychtn8djk5hdpr03uzd5 | 0x63e2320b59ae1669fb2881c98bae676cad4bb423 | 1 | 2 | 1061.678463 | -| terp17k5x3f5aev5wmwkvp8c2qz5uhlpptlm0hvu00p | 0xf5a868a69dcb28edbacc09f0a00a9cbfc215ff6f | 1 | 2 | 1061.678463 | -| terp10e66uvynjq8npx2dml6smzm5e4967xetm2mv52 | 0x7e75ae3093900f30994ddff50d8b74cd4baf1b2b | 1 | 2 | 1061.678463 | -| terp12thwa3jftgk8myn9rs9zeaz75uz43eqmlgswlz | 0x52eeeec6495a2c7d92651c0a2cf45ea70558e41b | 1 | 2 | 1061.678463 | -| terp1rwcqv0nxdj9k6c67d0ujh77n85m6vj7sdk9lze | 0x1bb0063e666c8b6d635e6bf92bfbd33d37a64bd0 | 1 | 2 | 1061.678463 | -| terp1a5hhe4zlr084xzc43qvxecyl4fgsfgte864gt9 | 0xed2f7cd45f1bcf530b1588186ce09faa5104a179 | 1 | 2 | 1061.678463 | -| terp14v6f9dq6rddfe28lhyuncpcuevvnrp6u3nht98 | 0xab3492b41a1b5a9ca8ffb9393c071ccb1931875c | 1 | 2 | 1061.678463 | -| terp1ms5mgtyc55t5w5pa397tmthl2625euv8h07jmd | 0xdc29b42c98a51747503d897cbdaeff56954cf187 | 1 | 2 | 1061.678463 | -| terp1e8jtkvsvyyk5cl4p70f3g3yudxynvra79gasua | 0xc9e4bb320c212d4c7ea1f3d314449c6989360fbe | 1 | 2 | 1061.678463 | -| terp1flt9nawk9qy8d5se2k29xe57cckdj8yya6mt4c | 0x4fd659f5d6280876d219559453669ec62cd91c84 | 1 | 2 | 1061.678463 | -| terp1342ue26h7096yg9t8clnklylt9ffukn9hjqszj | 0x8d55ccab57f3cba220ab3e3f3b7c9f59529e5a65 | 1 | 2 | 1061.678463 | -| terp16gsq44hyu3ksg5qywkw9h29u9culwxfn7qxs7h | 0xd2200ad6e4e46d045004759c5ba8bc2e39f71933 | 1 | 2 | 1061.678463 | -| terp18qr23exfgfrpxpczq36v9cxucsl607kpzqnt4m | 0x3806a8e4c942461307020474c2e0dcc43fa7fac1 | 1 | 2 | 1061.678463 | -| terp1xjwtxvpejx9tuyfrmwcttqf97zsnq9022z2mdy | 0x349cb33039918abe1123dbb0b58125f0a13015ea | 1 | 2 | 1061.678463 | -| terp1c7la0rua68frydxycklcgdk0yqvzm79uwgr7cy | 0xc7bfd78f9dd1d23234c4c5bf8436cf20182df8bc | 1 | 2 | 1061.678463 | -| terp1un2tu53wxacw669wyraw8u0sftt9ap0ysvld3k | 0xe4d4be522e3770ed68ae20fae3f1f04ad65e85e4 | 1 | 2 | 1061.678463 | -| terp1xwxm046zn4tpcg3epdppanjj5t38epqmdvj3xm | 0x338db7d7429d561c22390b421ece52a2e27c841b | 1 | 2 | 1061.678463 | -| terp17aw0z3h2xqur3pdwpy8xtpj42qxgwffk2p9ghy | 0xf75cf146ea30383885ae090e658655500c872536 | 1 | 2 | 1061.678463 | -| terp1rrr6u4vqx6g9w377yf0t9hkyyw75pfuu93ld4l | 0x18c7ae558036905747de225eb2dec423bd40a79c | 1 | 2 | 1061.678463 | -| terp12xaa876rqm0uqy8jn4cfs2hrrcfysym7vxmpeu | 0x51bbd3fb4306dfc010f29d70982ae31e1248137e | 1 | 2 | 1061.678463 | -| terp1hlf2u3uhu3ahn9gw54df0qrpxv4dz408jdj49w | 0xbfd2ae4797e47b79950ea55a978061332ad155e7 | 1 | 2 | 1061.678463 | -| terp1k60tpud8jg6y8s7tulunycjc48udmvj2ww75w9 | 0xb69eb0f1a7923443c3cbe7f9326258a9f8ddb24a | 1 | 2 | 1061.678463 | -| terp1vlju7874uhseg3e3sqx8389pk9a0sxrnmchug2 | 0x67e5cf1fd5e5e1944731800c789ca1b17af81873 | 1 | 2 | 1061.678463 | -| terp1prmfeltmxqe68g9ux3dlfu07epztyavf5fq6gx | 0x08f69cfd7b3033a3a0bc345bf4f1fec844b27589 | 1 | 2 | 1061.678463 | -| terp1adsge66yj5lvm0utjsy5xk56tgyh9n05tsr2cy | 0xeb608ceb44953ecdbf8b9409435a9a5a0972cdf4 | 1 | 2 | 1061.678463 | -| terp1gp0rm47gaq0q8a2f52x99hgre3776e9l45nf9s | 0x405e3dd7c8e81e03f549a28c52dd03cc7ded64bf | 1 | 2 | 1061.678463 | -| terp1dsp8c8ka8rw4608zmlpy6dqjrhsmje2z9xx9jx | 0x6c027c1edd38dd5d3ce2dfc24d34121de1b96542 | 1 | 2 | 1061.678463 | -| terp1fu6vtqh7s47z8n4qrgvf9n259swhlt2whvlp4v | 0x4f34c582fe857c23cea01a1892cd542c1d7fad4e | 1 | 2 | 1061.678463 | -| terp1j36ufkx7lgpqtmtm8jedgej3rxdr7xwywqr03q | 0x9475c4d8defa0205ed7b3cb2d46651199a3f19c4 | 1 | 2 | 1061.678463 | -| terp1eld4cf4e2jf5stwa324muawj3x03rdrrlssum3 | 0xcfdb5c26b95493482ddd8aabbe75d2899f11b463 | 1 | 2 | 1061.678463 | -| terp1rxs72hz35wd44zgd62tpv5dgrff2wv9j0ysyqu | 0x19a1e55c51a39b5a890dd2961651a81a52a730b2 | 1 | 2 | 1061.678463 | -| terp1cre97v3e9ae8p80qt72l04k7azx85qef44cfvn | 0xc0f25f32392f72709de05f95f7d6dee88c7a0329 | 1 | 2 | 1061.678463 | -| terp16cwjr3je3ppnuqhqfxsag2d6q7lfsx3m5jmafc | 0xd61d21c65988433e02e049a1d429ba07be981a3b | 1 | 2 | 1061.678463 | -| terp1ee82uv7swaalhxru0tn9pdj3gy24639ygwje64 | 0xce4eae33d0777bfb987c7ae650b65141155d44a4 | 1 | 2 | 1061.678463 | -| terp1x0t7fjnxtzx6jx3zngf34uttn8579pzvhqe6zz | 0x33d7e4ca66588da91a229a131af16b99e9e2844c | 1 | 2 | 1061.678463 | -| terp1k5dgl3yz0qx26zansg3k02h54nyuqtlsnwu4q4 | 0xb51a8fc482780cad0bb3822367aaf4acc9c02ff0 | 1 | 2 | 1061.678463 | -| terp1ztcl08u7yx2k03h4m4aukcl4l70tvhq64cf902 | 0x12f1f79f9e219567c6f5dd7bcb63f5ff9eb65c1a | 1 | 2 | 1061.678463 | -| terp1k432zndnrrphr9hdqzh9czxqhqfk87dkvwp0ev | 0xb562a14db318c37196ed00ae5c08c0b81363f9b6 | 1 | 2 | 1061.678463 | -| terp1kyd8rtm962zggaqgred0ejt6n67p6yml9ntvgz | 0xb11a71af65d2848474081e5afcc97a9ebc1d137f | 1 | 2 | 1061.678463 | -| terp1cqhdpur84x374qx80lxprry5hnhqdh3adfzxnm | 0xc02ed0f067a9a3ea80c77fcc118c94bcee06de3d | 1 | 2 | 1061.678463 | -| terp1tnns6e8mx4w8me0ccxjmecys8xzlvmu653yrej | 0x5ce70d64fb355c7de5f8c1a5bce0903985f66f9a | 1 | 2 | 1061.678463 | -| terp1664nyyzyyajap0vqdkmxg0dz35c8adpzhsf27e | 0xd6ab3210442765d0bd806db6643da28d307eb422 | 1 | 2 | 1061.678463 | -| terp1d5kv240crhwej7wtsq4040x22v5l8e6nn0e53r | 0x6d2cc555f81ddd9979cb802afabcca5329f3e753 | 1 | 2 | 1061.678463 | -| terp1axege0hrmq43x2cpxhnmfmpm20qrwp6w5nsclw | 0xe9b28cbee3d82b132b0135e7b4ec3b53c037074e | 1 | 2 | 1061.678463 | -| terp1f8u8t38xcvh2y2s7w9wlltpgcrl5qta0h4u6jf | 0x49f875c4e6c32ea22a1e715dffac28c0ff402faf | 1 | 2 | 1061.678463 | -| terp1wntnqf0kyfmhxa8qxmwz3ujz7l4aats8ec9r2y | 0x74d73025f622777374e036dc28f242f7ebdeae07 | 1 | 2 | 1061.678463 | -| terp1jff3jafwhsgungeaky0ayqr3d0haw77uqlc984 | 0x925319752ebc11c9a33db11fd200716befd77bdc | 1 | 2 | 1061.678463 | -| terp13ggn07rd9cem76slh9c4nvpj00cmux0l2a7p74 | 0x8a1137f86d2e33bf6a1fb97159b0327bf1be19ff | 1 | 2 | 1061.678463 | -| terp148mt5ktf0c29qlq5s9d0axg8mmdr0px0xvc70d | 0xa9f6ba59697e14507c14815afe9907deda3784cf | 1 | 2 | 1061.678463 | -| terp1hpjxxu2qctwwq27jwvwr3wkzqcpc4wm4xtlq2v | 0xb864637140c2dce02bd2731c38bac206038abb75 | 1 | 2 | 1061.678463 | -| terp1tz87t50p2ppgu929ylgn7um9td7504cvlkdqeq | 0x588fe5d1e150428e154527d13f73655b7d47d70c | 1 | 2 | 1061.678463 | -| terp1wy73w95whv875mm8fevucpd8saux46qkvymy06 | 0x713d17168ebb0fea6f674e59cc05a787786ae816 | 1 | 2 | 1061.678463 | -| terp1mh6q8qruzqmzf57vaeef4zqs8ulm2h9jm0yv7u | 0xddf403807c103624d3ccee729a88103f3fb55cb2 | 1 | 2 | 1061.678463 | -| terp1wslctt9cenxcws444q4eegpfv2tde73dt0n4zp | 0x743f85acb8cccd8742b5a82b9ca0296296dcfa2d | 1 | 2 | 1061.678463 | -| terp14tua0zf97u7ua2ku98ltyhmkuc63rvjgfrgup0 | 0xaaf9d78925f73dceaadc29feb25f76e63511b248 | 1 | 2 | 1061.678463 | -| terp1lq7c2jtscmtlu7n0d5ngwtxpyxuedzr698ekw3 | 0xf83d854970c6d7fe7a6f6d26872cc121b996887a | 1 | 2 | 1061.678463 | -| terp1r44pxed4ljyy3zk8mmvrjalgcde8mp7gmeel67 | 0x1d6a1365b5fc88488ac7ded83977e8c3727d87c8 | 1 | 2 | 1061.678463 | -| terp1wc3m9l9qxy3y4hvwftp3kgst3czkhauwkr9s8f | 0x7623b2fca031224add8e4ac31b220b8e056bf78e | 1 | 2 | 1061.678463 | -| terp16zr6kzlrrenx5ya6yunsm5mpqk4xp98v5af6vu | 0xd087ab0be31e666a13ba27270dd36105aa6094ec | 1 | 2 | 1061.678463 | -| terp1gkrwuz20p5drwq8wve584se6dqkzyegf0spx86 | 0x4586ee094f0d1a3700ee66687ac33a682c226509 | 1 | 2 | 1061.678463 | -| terp1mn7rwp9jsf5stjsuz97zvtmywngv7654962cuk | 0xdcfc3704b2826905ca1c117c262f6474d0cf6a95 | 1 | 2 | 1061.678463 | -| terp1s4zjj8w7sm6qrwelqddj9044rymvymnlaejz22 | 0x8545291dde86f401bb3f035b22beb51936c26e7f | 1 | 2 | 1061.678463 | -| terp1ny923mmnls6kepxghazesqsmqff5lsnc7qfzh5 | 0x990aa8ef73fc356c84c8bf4598021b02534fc278 | 1 | 2 | 1061.678463 | -| terp1ks3vz94gg62a6d6dvqrgna633mlvraxm4mawze | 0xb422c116a84695dd374d600689f7518efec1f4db | 1 | 2 | 1061.678463 | -| terp17r50e5uqkd4v2fqrf08054e5vva4e2eg4jcm3q | 0xf0e8fcd380b36ac524034bcefa5734633b5cab28 | 1 | 2 | 1061.678463 | -| terp178cz65462d7vw4y3farzsqzejm8s8pvzxmsntq | 0xf1f02d52ba537cc754914f4628005996cf038582 | 1 | 2 | 1061.678463 | -| terp1u06gsjam60r656qqjh5au449hxzxrgp9xa52wd | 0xe3f4884bbbd3c7aa680095e9de56a5b98461a025 | 1 | 2 | 1061.678463 | -| terp1s7mx0jzv7kh72k4tqd8l4356j247yext9l64yn | 0x87b667c84cf5afe55aab034ffac69a92abe264cb | 1 | 2 | 1061.678463 | -| terp192c87z36mqecgdnlw4pwygfwrr39d69457rxk3 | 0x2ab07f0a3ad83384367f7542e2212e18e256e8b5 | 1 | 2 | 1061.678463 | -| terp14zq8292f7fj9j85acaxszlra3mskavk2a3mhyh | 0xa880751549f264591e9dc74d017c7d8ee16eb2ca | 1 | 2 | 1061.678463 | -| terp1th62hdh6jyc8dzma4t8538dmclwewmpwm0cgtq | 0x5df4abb6fa9130768b7daacf489dbbc7dd976c2e | 1 | 2 | 1061.678463 | -| terp1s2prj9mmvzjeuts0we4exv39tud7exyhdj7slj | 0x828239177b60a59e2e0f766b9332255f1bec9897 | 1 | 2 | 1061.678463 | -| terp1skljkwatx9l8hq0uz7a3m3tzm5l48pr97z7zz5 | 0x85bf2b3bab317e7b81fc17bb1dc562dd3f538465 | 1 | 2 | 1061.678463 | -| terp1xtnshmgvx9ferkwme8nqmsphgkefj3kvgfv7j6 | 0x32e70bed0c315391d9dbc9e60dc03745b29946cc | 1 | 2 | 1061.678463 | -| terp1lp5gdxn6pcvqzex9zcner2fqexch6dly2280vg | 0xf868869a7a0e180164c5162791a920c9b17d37e4 | 1 | 2 | 1061.678463 | -| terp1l2s3sq8rhqw3wftl9vmskf978yc2tgeypsa750 | 0xfaa11800e3b81d17257f2b370b24be3930a5a324 | 1 | 2 | 1061.678463 | -| terp1uvywew6p68vj6z3as3r4wpx8rawps202svzmgh | 0xe308ecbb41d1d92d0a3d84475704c71f5c1829ea | 1 | 2 | 1061.678463 | -| terp17hstykd2k2cazd47lezwa7nd0h59a9qzyddp04 | 0xf5e0b259aab2b1d136befe44eefa6d7de85e9402 | 1 | 2 | 1061.678463 | -| terp1fqnv3z6ad5guer40c7x3txw0t9lyzklss63p4e | 0x4826c88b5d6d11cc8eafc78d1599cf597e415bf0 | 1 | 2 | 1061.678463 | -| terp16ttk2xxhvg9lhyvfu4ckadu4w3jy2ldflpu2px | 0xd2d76518d7620bfb9189e5716eb7957464457da9 | 1 | 2 | 1061.678463 | -| terp1nnajfhgrdrd8tlf4mnfu9g5g8jes45nj6vxaz4 | 0x9cfb24dd0368da75fd35dcd3c2a2883cb30ad272 | 1 | 2 | 1061.678463 | -| terp10duxjadf9p7tlnazh2plrs3vwxxgxjx30a52w9 | 0x7b786975a9287cbfcfa2ba83f1c22c718c8348d1 | 1 | 2 | 1061.678463 | -| terp17v9ppjwu38ujhn8790q9tn2fneextxr8sy7yc6 | 0xf30a10c9dc89f92bccfe2bc055cd499e72659867 | 1 | 2 | 1061.678463 | -| terp1mxnafzdjv3x6a08yy5pyy9gcsh53kztgecqgd4 | 0xd9a7d489b2644daebce4250242151885e91b0968 | 1 | 2 | 1061.678463 | -| terp1ns80wdvmqc2msqwrccy5fedhq6fsrev9mmprs9 | 0x9c0ef7359b0615b801c3c60944e5b7069301e585 | 1 | 2 | 1061.678463 | -| terp148fzfxj8nf4re464wk64awz8s3ph6p26ec60vg | 0xa9d2249a479a6a3cd75575b55eb84784437d055a | 1 | 2 | 1061.678463 | -| terp13plmqd728umjtlsjey5yg0kwq2qdmc0pqms3j2 | 0x887fb037ca3f3725fe12c928443ece0280dde1e1 | 1 | 2 | 1061.678463 | -| terp1zpryr4lzm5vk53hgk636t4ycmzqxdrrgwty7wr | 0x104641d7e2dd196a46e8b6a3a5d498d880668c68 | 1 | 2 | 1061.678463 | -| terp1sdv6rqevs34ns93akw7pr4c0fz23vg3hgs5kx6 | 0x8359a1832c846b38163db3bc11d70f4895162237 | 1 | 2 | 1061.678463 | -| terp1l2vwjdr0m277rxp7dpjng9unj9gszs74ksgn49 | 0xfa98e9346fdabde1983e686534179391510143d5 | 1 | 2 | 1061.678463 | -| terp1s8eqwffxx50vxpfu43gzdtz0dfuv0jufkm8d2h | 0x81f2072526351ec3053cac5026ac4f6a78c7cb89 | 1 | 2 | 1061.678463 | -| terp1mhzpvmx0hruupgurdfakcvcjf756w8exwspkgj | 0xddc4166ccfb8f9c0a3836a7b6c33124fa9a71f26 | 1 | 2 | 1061.678463 | -| terp1822wv3wcucra6e2fvs5tljzmns8ypw4mvez34s | 0x3a94e645d8e607dd65496428bfc85b9c0e40babb | 1 | 2 | 1061.678463 | -| terp1f3r6kamlrajdru7ka7l3e3attffzft62mj5cll | 0x4c47ab777f1f64d1f3d6efbf1cc7ab5a5224af4a | 1 | 2 | 1061.678463 | -| terp16xnlqqdhznsncjtpjzdees5566x4hugzx58n5m | 0xd1a7f001b714e13c4961909b9cc294d68d5bf102 | 1 | 2 | 1061.678463 | -| terp1fgakdw9qryvpc36pl0a98lw3hvjn38m7nmhrs9 | 0x4a3b66b8a019181c4741fbfa53fdd1bb25389f7e | 1 | 2 | 1061.678463 | -| terp1nluukjklyks3x68ksqx6xsytzfmltzkszldreh | 0x9ff9cb4adf25a11368f6800da3408b1277f58ad0 | 1 | 2 | 1061.678463 | -| terp1943hqrmk653at2s28szyjtk4d2e7dum35gpmud | 0x2d63700f76d523d5aa0a3c04492ed56ab3e6f371 | 1 | 2 | 1061.678463 | -| terp18qhkw2u4ansk4nmgfns9awtxt7pxlug2casuxg | 0x382f672b95ece16acf684ce05eb9665f826ff10a | 1 | 2 | 1061.678463 | -| terp1t5haz3qj6w26qhn7wr0qs96nuw3mmfkdya5rv3 | 0x5d2fd14412d395a05e7e70de081753e3a3bda6cd | 1 | 2 | 1061.678463 | -| terp19rne967j0cn7g76ts08pq487d0zx6gpj62yk0l | 0x28e792ebd27e27e47b4b83ce1054fe6bc46d2032 | 1 | 2 | 1061.678463 | -| terp1d6mfss2n678nsdzlzde6hjhy320f7fc7na5kct | 0x6eb6984153d78f38345f1373abcae48a9e9f271e | 1 | 2 | 1061.678463 | -| terp1s7vjc2xp96qce0utlmvwlds3tr9vunjx5qdzt5 | 0x87992c28c12e818cbf8bfed8efb61158cace4e46 | 1 | 2 | 1061.678463 | -| terp1kr3ke97wak653kvyvm4pcndta4k5tr2ujmtqsk | 0xb0e36c97ceedb548d98466ea1c4dabed6d458d5c | 1 | 2 | 1061.678463 | -| terp1hql6rdq4fu26unjug9z8qun0awcv0adpum39ea | 0xb83fa1b4154f15ae4e5c414470726febb0c7f5a1 | 1 | 2 | 1061.678463 | -| terp1a484ek2yyp3nq8ucjywfha2rrc34qj7yj9y04c | 0xed4f5cd9442063301f98911c9bf5431e23504bc4 | 1 | 2 | 1061.678463 | -| terp1mze4m5mcnxqj4ygqkcku68stfwg3mpq98rrc0l | 0xd8b35dd37899812a9100b62dcd1e0b4b911d8405 | 1 | 2 | 1061.678463 | -| terp145rsejzv7uxqeq25xpw9l2ltqkkcq3nkyjclgu | 0xad070cc84cf70c0c8154305c5fabeb05ad804676 | 1 | 2 | 1061.678463 | -| terp1uwk34ymwklyxv9auujehp7r8gfv008reqxkusr | 0xe3ad1a936eb7c86617bce4b370f8674258f79c79 | 1 | 2 | 1061.678463 | -| terp1jwrjuaas550mp6galhut5vphwg3k8gs9q35mzv | 0x93872e77b0a51fb0e91dfdf8ba3037722363a205 | 1 | 2 | 1061.678463 | -| terp189vv7vfxez8lvj2kfvkm2xjl06pfuag7e4zd2r | 0x3958cf3126c88ff649564b2db51a5f7e829e751e | 1 | 2 | 1061.678463 | -| terp1a244jf5m6xag2ghguhs0u5g002jdg7sf0fzq8c | 0xeaab59269bd1ba8522e8e5e0fe510f7aa4d47a09 | 1 | 2 | 1061.678463 | -| terp1eeauvprdju3xwc2eemgp55h63qfwrscxdk6grj | 0xce7bc6046d9722676159ced01a52fa8812e1c306 | 1 | 2 | 1061.678463 | -| terp1lud5nyqnvvplxae8nyy3u5ktm7u6hrjd242v6j | 0xff1b4990136303f3772799091e52cbdfb9ab8e4d | 1 | 2 | 1061.678463 | -| terp1vf75tjpdyx9huth9emphss2y7yek0verhwevrz | 0x627d45c82d218b7e2ee5cec3784144f13367b323 | 1 | 2 | 1061.678463 | -| terp14c26k7as545yd2ng3f8vjlzk4pv0g9eupft4pv | 0xae15ab7bb0a56846aa688a4ec97c56a858f4173c | 1 | 2 | 1061.678463 | -| terp10a65hk67wm00lncrtemyjgkhzsuu86r4yn6wgd | 0x7f754bdb5e76deffcf035e764922d71439c3e875 | 1 | 2 | 1061.678463 | -| terp1f0ckc4d8gc2f76nu0x5fp7lduclwxtnuav947q | 0x4bf16c55a746149f6a7c79a890fbede63ee32e7c | 1 | 2 | 1061.678463 | -| terp1734vt5tw2wfdv5ulreazrz9jsqvhmd78c8dlu5 | 0xf46ac5d16e5392d6539f1e7a2188b280197db7c7 | 1 | 2 | 1061.678463 | -| terp1g7s3uhvzf4w5cjg5kx4j8xd65m0tsz8rfv7h3c | 0x47a11e5d824d5d4c4914b1ab2399baa6deb808e3 | 1 | 2 | 1061.678463 | -| terp1u2yjnzagua3tue9p9wh62hqn54l8fam6tlczrp | 0xe289298ba8e762be64a12bafa55c13a57e74f77a | 1 | 2 | 1061.678463 | -| terp1gfla7llatcy2w3rnla4ny67hxrsq56rmnlynn4 | 0x427fdf7ffd5e08a74473ff6b326bd730e00a687b | 1 | 2 | 1061.678463 | -| terp1gs4pws2348szttjaa897f4v8g4xf6kcrexacrm | 0x442a174151a9e025ae5de9cbe4d587454c9d5b03 | 1 | 2 | 1061.678463 | -| terp1gps9slqhm7v4wd3w4ycnmmgkwkwcn4xg79fj63 | 0x4060587c17df9957362ea9313ded16759d89d4c8 | 1 | 2 | 1061.678463 | -| terp1xh6p97xekmd537vqxfh2snkkc6uetuvd65tf89 | 0x35f412f8d9b6db48f980326ea84ed6c6b995f18d | 1 | 2 | 1061.678463 | -| terp1es3pw6qn0guryh2uhslphuy7xgl5kcfd6axrdr | 0xcc221768137a38325d5cbc3e1bf09e323f4b612d | 1 | 2 | 1061.678463 | -| terp19j2e6kg9wscyccwwazq5fsuqtc55a9fga2n6ka | 0x2c959d590574304c61cee88144c3805e294e9528 | 1 | 2 | 1061.678463 | -| terp1f54kk2xnj5fzg5ujlrjst3pcyp6zp2y4sstmtj | 0x4d2b6b28d39512245392f8e505c438207420a895 | 1 | 2 | 1061.678463 | -| terp1089eh4jcdhhk4uzez68e5vph8zc6a60a0dc6tw | 0x79cb9bd6586def6af059168f9a303738b1aee9fd | 1 | 2 | 1061.678463 | -| terp19vjwq4w7lhu8fx9nyf7c7hnkhs0ywpau0548hu | 0x2b24e055defdf87498b3227d8f5e76bc1e4707bc | 1 | 2 | 1061.678463 | -| terp1yg3g43qk9ynrujr6cnmcyml2wnqyn4tsyjlr3y | 0x22228ac41629263e487ac4f7826fea74c049d570 | 1 | 2 | 1061.678463 | -| terp1era0ka0lx5yjfna0jux0mvlr32m3j8v7uqlu3u | 0xc8fafb75ff350924cfaf970cfdb3e38ab7191d9e | 1 | 2 | 1061.678463 | -| terp1yxr2vglu2f2ks4zkhaznef94225mqucdrpfxns | 0x2186a623fc5255685456bf453ca4b552a9b0730d | 1 | 2 | 1061.678463 | -| terp1vkq64yhmxffgqff0k7lmt3vrjnlmyd873vj82c | 0x6581aa92fb325280252fb7bfb5c58394ffb234fe | 1 | 2 | 1061.678463 | -| terp1zvdst6ca6rv25m48lqet3p0lsr8k0w3clxens0 | 0x131b05eb1dd0d8aa6ea7f832b885ff80cf67ba38 | 1 | 2 | 1061.678463 | -| terp1nzcvmm9avmvdkn752r8xpzkuvl578hf6jrf9nm | 0x98b0cdecbd66d8db4fd450ce608adc67e9e3dd3a | 1 | 2 | 1061.678463 | -| terp1sljst9e3wsnyyfemx04vu9m8xkkggelsg6ny57 | 0x87e5059731742642273b33eace176735ac8467f0 | 1 | 2 | 1061.678463 | -| terp1dahcnheef3je9ysherl2lsj0y68n0q9lgnugcp | 0x6f6f89df394c65929217c8feafc24f268f3780bf | 1 | 2 | 1061.678463 | -| terp1xjj5lnu4e0zep57garxwr9y95v7x6wpg9urkyq | 0x34a54fcf95cbc590d3c8e8cce19485a33c6d3828 | 1 | 2 | 1061.678463 | -| terp1ftkj5r90vp6d09n4zedwzu9avwvefnwdl4adsr | 0x4aed2a0caf6074d79675165ae170bd639994cdcd | 1 | 2 | 1061.678463 | -| terp1r5atnqdv82e8kd0y4w42pfx7r3ytqnzjekmsdy | 0x1d3ab981ac3ab27b35e4abaaa0a4de1c48b04c52 | 1 | 2 | 1061.678463 | -| terp1ulpn8c563k9nrrdun2l2wa6ewnhcsrpm739wwa | 0xe7c333e29a8d8b318dbc9abea7775974ef880c3b | 1 | 2 | 1061.678463 | -| terp1hxrjthvxn88ydpfk2e68v2vugw40xckjdspwp6 | 0xb98725dd8699ce468536567476299c43aaf362d2 | 1 | 2 | 1061.678463 | -| terp1gyeq60f9de9el3v65e5f5e7frsens50hcjzny7 | 0x41320d3d256e4b9fc59aa6689a67c91c333851f7 | 1 | 2 | 1061.678463 | -| terp19d6el0d72p3y0fzf8gl84m8w5d076cvk5r9d8c | 0x2b759fbdbe506247a4493a3e7aeceea35fed6196 | 1 | 2 | 1061.678463 | -| terp1fc49t564x4y76lkp4rrgxjkgwxexf0ewg3zcpk | 0x4e2a55d3553549ed7ec1a8c6834ac871b264bf2e | 1 | 2 | 1061.678463 | -| terp1tkykdmfrr4arc9uhxt6fmz8gjnx6pyy0uv0us9 | 0x5d8966ed231d7a3c179732f49d88e894cda0908f | 1 | 2 | 1061.678463 | -| terp1zqhcx8nvurvsrzr3uk6lnrjhgsj7ehj2adxww3 | 0x102f831e6ce0d9018871e5b5f98e574425ecde4a | 1 | 2 | 1061.678463 | -| terp13hw83wggt63gdq4uu6q8f46lj0mckk68kn5r90 | 0x8ddc78b9085ea28682bce68074d75f93f78b5b47 | 1 | 2 | 1061.678463 | -| terp17ktn90ywr5nedu5zj4lwsmssdty5lajfwgvk23 | 0xf59732bc8e1d2796f282957ee86e106ac94ff649 | 1 | 2 | 1061.678463 | -| terp13hcp4u5cal9504a79tra32xz7ezu77ygsc0dtd | 0x8df01af298efcb47d7be2ac7d8a8c2f645cf7888 | 1 | 2 | 1061.678463 | -| terp1qahw4cg7v3wj0d9psrt5nq3n9fcladnq7dqp4k | 0x076eeae11e645d27b4a180d74982332a71feb660 | 1 | 2 | 1061.678463 | -| terp1kxm9xkqn0unkufyhu8nrvrlat3aynrhssttz8f | 0xb1b65358137f276e2497e1e6360ffd5c7a498ef0 | 1 | 2 | 1061.678463 | -| terp15xphtkd22huxgkrhp4z5rculvc9x3tw97vdae9 | 0xa18375d9aa55f86458770d4541e39f660a68adc5 | 1 | 2 | 1061.678463 | -| terp1ds9e7wrg62rs76f3t0y7dzhsagnv4836xjrk9e | 0x6c0b9f3868d2870f69315bc9e68af0ea26ca9e3a | 1 | 2 | 1061.678463 | -| terp1pcu2dl5zz6drck7mp5aqnn9j8ucvrp37tshfxk | 0x0e38a6fe82169a3c5bdb0d3a09ccb23f30c1863e | 1 | 2 | 1061.678463 | -| terp1gf0rqahk93q96jfmgkpa3wg8f43nuvl9l8kwhq | 0x425e3076f62c405d493b4583d8b9074d633e33e5 | 1 | 2 | 1061.678463 | -| terp1csvjnmtndcaqajj0cr48zsv46e8uz6dn0c8vp4 | 0xc41929ed736e3a0eca4fc0ea714195d64fc169b3 | 1 | 2 | 1061.678463 | -| terp1xgv7euc6l89fhpzpftuxq9l3j7dsulxhp7hd56 | 0x3219ecf31af9ca9b84414af86017f1979b0e7cd7 | 1 | 2 | 1061.678463 | -| terp1xgs2rdwe3x5j64wzh3h0zncnnws2ak09786uf8 | 0x3220a1b5d989a92d55c2bc6ef14f139ba0aed9e5 | 1 | 2 | 1061.678463 | -| terp196wp97jfukdkhya2qkwjz5vx22nmkd7t40nsmu | 0x2e9c12fa49e59b6b93aa059d21518652a7bb37cb | 1 | 2 | 1061.678463 | -| terp1msjek7v0rc6cv5g499007y80ptvff7v5gmvdpg | 0xdc259b798f1e35865115295eff10ef0ad894f994 | 1 | 2 | 1061.678463 | -| terp1umq3st6mfgg2vqa2nl3a8pwxyg5rxrynszcxhj | 0xe6c1182f5b4a10a603aa9fe3d385c62228330c93 | 1 | 2 | 1061.678463 | -| terp13als204cxu0ec8ajxyeu0smjrjlwslhqf6qxxl | 0x8f7f053eb8371f9c1fb23133c7c3721cbee87ee0 | 1 | 2 | 1061.678463 | -| terp1qdlzmlrul7a9c6y5fc4zsmrdgm63ra53lvry3t | 0x037e2dfc7cffba5c68944e2a286c6d46f511f691 | 1 | 2 | 1061.678463 | -| terp17xwk4xgd299alywx0n3cu78j400le8jt3j6a45 | 0xf19d6a990d514bdf91c67ce38e78f2abdffc9e4b | 1 | 2 | 1061.678463 | -| terp1qwd9haxy4m697jwugn59la9qtgkdv8c5efgec0 | 0x039a5bf4c4aef45f49dc44e85ff4a05a2cd61f14 | 1 | 2 | 1061.678463 | -| terp1nxmr7ncw7yp6wn50gw4m5hy87gfwkhdl9ey3j2 | 0x99b63f4f0ef103a74e8f43abba5c87f212eb5dbf | 1 | 2 | 1061.678463 | -| terp1fsykrlvcl03rx70ecvuxzdl3lc8kxv2fmgfyrf | 0x4c0961fd98fbe23379f9c3386137f1fe0f633149 | 1 | 2 | 1061.678463 | -| terp15gy06ap6yxe3hxfdph3y0zt558yjwdleuplya5 | 0xa208fd743a21b31b992d0de2478974a1c92737f9 | 1 | 2 | 1061.678463 | -| terp1zzcmrtzv0e9q0wt0alpe0nk6mrhjgu0r87twdv | 0x10b1b1ac4c7e4a07b96fefc397cedad8ef2471e3 | 1 | 2 | 1061.678463 | -| terp1r3h34qewww2fe9l7xddf3d49ls7fc20fw9nqqe | 0x1c6f1a832e73949c97fe335a98b6a5fc3c9c29e9 | 1 | 2 | 1061.678463 | -| terp12exkulvfdayppjjrgvyv7edlv5fnkexqdt4jd6 | 0x564d6e7d896f4810ca434308cf65bf65133b64c0 | 1 | 2 | 1061.678463 | -| terp192rk6pn8mqwj4z36dqehr7pg4z4etay8tfnky8 | 0x2a876d0667d81d2a8a3a683371f828a8ab95f487 | 1 | 2 | 1061.678463 | -| terp1cltdrnuqld30qmxldgft4d34e29vrymcd0zdk7 | 0xc7d6d1cf80fb62f06cdf6a12bab635ca8ac19378 | 1 | 2 | 1061.678463 | -| terp19mwsspret9nd9thyrgsac9ndqj8ky90sj8ur6r | 0x2edd0804795966d2aee41a21dc166d048f6215f0 | 1 | 2 | 1061.678463 | -| terp1t4gdsh4ltdll2thjfusvg6rkjar678ucqdl952 | 0x5d50d85ebf5b7ff52ef24f20c468769747af1f98 | 1 | 2 | 1061.678463 | -| terp14x945afx776tc44scgr3z9wgu64pe87wrttd78 | 0xa98b5a7526f7b4bc56b0c2071115c8e6aa1c9fce | 1 | 2 | 1061.678463 | -| terp1wpycwypep9lxrvdwsfl802a3exstzsrpm6cy5c | 0x7049871039097e61b1ae827e77abb1c9a0b14061 | 1 | 2 | 1061.678463 | -| terp1wr8m7u4petn870u4e250lf6xy2dnmc9s7dkz8k | 0x70cfbf72a1cae67f3f95caa8ffa746229b3de0b0 | 1 | 2 | 1061.678463 | -| terp1y0kscn309d0x0mt4e7mjgs45zuwxuhh0fvdtkr | 0x23ed0c4e2f2b5e67ed75cfb72442b4171c6e5eef | 1 | 2 | 1061.678463 | -| terp19xcm0nmmel8lwwkpnetxn347307ylyt5w0qmhw | 0x29b1b7cf7bcfcff73ac19e5669c6be8bfc4f9174 | 1 | 2 | 1061.678463 | -| terp1hzeg0j3w42fakmmz2fnwt48xxx8ly03sv7l7zc | 0xb8b287ca2eaa93db6f625266e5d4e6318ff23e30 | 1 | 2 | 1061.678463 | -| terp1q5k5t4hphhult93qjc7v5pgr3sr0z8g824f66t | 0x052d45d6e1bdf9f59620963cca05038c06f11d07 | 1 | 2 | 1061.678463 | -| terp1gcua5zyt4cd57l4m2y3298dauspjuzme5hrw8t | 0x4639da088bae1b4f7ebb5122a29dbde4032e0b79 | 1 | 2 | 1061.678463 | -| terp1p2aa58wprkvu4p5g0r9q2rdxqdhzzethpgns4r | 0x0abbda1dc11d99ca868878ca050da6036e216577 | 1 | 2 | 1061.678463 | -| terp17tp5uw9yg903nruz9025hy02ucpl4t9g38r8ju | 0xf2c34e38a4415f198f822bd54b91eae603faaca8 | 1 | 2 | 1061.678463 | -| terp1zanrlphulv3dtajdnhc284j6jh0l6dh4jgkf26 | 0x17663f86fcfb22d5f64d9df0a3d65a95dffd36f5 | 1 | 2 | 1061.678463 | -| terp1k8az2dgv6zy6y5wulgyzvy42twlwptpl52tpm6 | 0xb1fa25350cd089a251dcfa082612aa5bbee0ac3f | 1 | 2 | 1061.678463 | -| terp1xk0jjhskvus5hvvtk78s7uskqj35ms9psy6j9m | 0x359f295e1667214bb18bb78f0f721604a34dc0a1 | 1 | 2 | 1061.678463 | -| terp1d3hp5n2dxstamjxthf4m39k6uswy37cg45wtpj | 0x6c6e1a4d4d3417ddc8cbba6bb896dae41c48fb08 | 1 | 2 | 1061.678463 | -| terp1x5c2act0yv8py75xaufuu7n6pqswnetemxyhan | 0x3530aee16f230e127a86ef13ce7a7a0820e9e579 | 1 | 2 | 1061.678463 | -| terp1z37v8n7ac22d5shrsgtdkax5xklruve2ceumre | 0x147cc3cfddc294da42e38216db74d435be3e332a | 1 | 2 | 1061.678463 | -| terp139w3qfvn029k2wrwrlp04jpe6ksrajyr2e5gz0 | 0x895d1025937a8b65386e1fc2fac839d5a03ec883 | 1 | 2 | 1061.678463 | -| terp1f7ju7pw8j0yd0qv0v363unyy95t7pfj4flhgm0 | 0x4fa5cf05c793c8d7818f64751e4c842d17e0a655 | 1 | 2 | 1061.678463 | -| terp1ktku20lc9wvqpe6gksh0yp6tkzuzwhc84yhmda | 0xb2edc53ff82b9800e748b42ef2074bb0b8275f07 | 1 | 2 | 1061.678463 | -| terp156nqldtg3xjxnaz0kssrmnka2kqraeunzjaufj | 0xa6a60fb56889a469f44fb4203dcedd55803ee793 | 1 | 2 | 1061.678463 | -| terp1qwpcr29xuh3ehxqksrczcfayqjupvguudeu937 | 0x038381a8a6e5e39b981680f02c27a404b816239c | 1 | 2 | 1061.678463 | -| terp10vq598j6mc3vtdqq9ux69pm3069dq5m44gjazt | 0x7b01429e5ade22c5b4002f0da287717e8ad05375 | 1 | 2 | 1061.678463 | -| terp1e97m39adwmmexe2uk7r0dnwalsxuw6p2m6a4zn | 0xc97db897ad76f793655cb786f6cdddfc0dc7682a | 1 | 2 | 1061.678463 | -| terp1ph9j4cwls0n0mh0ugk259xzsw45cwwnn7chka0 | 0x0dcb2ae1df83e6fdddfc45954298507569873a73 | 1 | 2 | 1061.678463 | -| terp14g43m242t5mk6jxtqghpmlzvtmuapmaye7ax7l | 0xaa2b1daaaa5d376d48cb022e1dfc4c5ef9d0efa4 | 1 | 2 | 1061.678463 | -| terp13rkz49t9dzn3hlklt0t30drz3mpfufne9920e6 | 0x88ec2a956568a71bfedf5bd717b4628ec29e2679 | 1 | 2 | 1061.678463 | -| terp184mp3jp9ludn4x5xj3t8lrwcr6jcyzudkdp2pd | 0x3d7618c825ff1b3a9a8694567f8dd81ea5820b8d | 1 | 2 | 1061.678463 | -| terp1gglsd6dq56y43ghplyd4azyt5va48hnr0fu6x6 | 0x423f06e9a0a68958a2e1f91b5e888ba33b53de63 | 1 | 2 | 1061.678463 | -| terp1zatgp4dymuzp0kne03gvnu5z8gdz2nda3zke0q | 0x175680d5a4df0417da797c50c9f2823a1a254dbd | 1 | 2 | 1061.678463 | -| terp1mfp6jr50e7098a2w6hh2esaf80tnraqxc0x0uu | 0xda43a90e8fcf9e53f54ed5eeacc3a93bd731f406 | 1 | 2 | 1061.678463 | -| terp1rwpu8ljdgr8t52ewmclk0eln2wzcg8w2n97wtj | 0x1b83c3fe4d40ceba2b2ede3f67e7f35385841dca | 1 | 2 | 1061.678463 | -| terp1uprzzydhlnxgzgr4vrrd4s5y0hppdz4xcsvth6 | 0xe0462111b7fccc81207560c6dac2847dc2168aa6 | 1 | 2 | 1061.678463 | -| terp1m9m5ane0lqvkacfqrsltmc0h06j8qhu8tmknfu | 0xd9774ecf2ff8196ee1201c3ebde1f77ea4705f87 | 1 | 2 | 1061.678463 | -| terp14wrsujh7e5hhklamfqefwae4hv7xrl6e2jnjrm | 0xab870e4afecd2f7b7fbb4832977735bb3c61ff59 | 1 | 2 | 1061.678463 | -| terp1y85nhsyjcannwsqvsqyd24uvh4p44f8vxa2gwp | 0x21e93bc092c76737400c8008d5578cbd435aa4ec | 1 | 2 | 1061.678463 | -| terp1z0guyjywyrdfw4faqh6hyawvnyerpl6ez9alv8 | 0x13d1c2488e20da97553d05f57275cc993230ff59 | 1 | 2 | 1061.678463 | -| terp1wma38uqvm0w4atywyejv79970yd0sl9svc6w8u | 0x76fb13f00cdbdd5eac8e2664cf14be791af87cb0 | 1 | 2 | 1061.678463 | -| terp14h08zrkdj3uhmcxj9qrc9w44tahf38juaf7gpl | 0xadde710ecd94797de0d2280782bab55f6e989e5c | 1 | 2 | 1061.678463 | -| terp1cm3gv8gq0kkx06x5kckxvg8d34msvsz2uf0azh | 0xc6e2861d007dac67e8d4b62c6620ed8d7706404a | 1 | 2 | 1061.678463 | -| terp12chpa29x3utsfgxuk0jzwx8x8dxq6e3fqqacwn | 0x562e1ea8a68f1704a0dcb3e42718e63b4c0d6629 | 1 | 2 | 1061.678463 | -| terp1pa9f3gzlwgquud64y4eru0xcgxqywe4s93up3c | 0x0f4a98a05f7201ce375525723e3cd841804766b0 | 1 | 2 | 1061.678463 | -| terp16s3j7j25p22evt2r52ptfd3vdyg9trn90zhjue | 0xd4232f49540a95962d43a282b4b62c6910558e65 | 1 | 2 | 1061.678463 | -| terp1ut7jcqudlqpsenqx4wu4vmw5lgfnwkw43e4nxn | 0xe2fd2c038df8030ccc06abb9566dd4fa133759d5 | 1 | 2 | 1061.678463 | -| terp19mjusjjkfnnmtdz27e5gvp3n5lm5tf3tl6aspa | 0x2ee5c84a564ce7b5b44af668860633a7f745a62b | 1 | 2 | 1061.678463 | -| terp1hh79k5yxxunmmdjh766j0fk3792r42tkwrg5yx | 0xbdfc5b50863727bdb657f6b527a6d1f1543aa976 | 1 | 2 | 1061.678463 | -| terp1705g72j9jvcqm8rz29t8muynacnxpunqj74yzh | 0xf3e88f2a4593300d9c6251567df093ee2660f260 | 1 | 2 | 1061.678463 | -| terp1zwn6dfr29q2r8q4f0s9kujml56r9602etj6d2u | 0x13a7a6a46a28143382a97c0b6e4b7fa6865d3d59 | 1 | 2 | 1061.678463 | -| terp1yf3s30dc66mu40qtmrhrr3c4drxt7yk0n3pguz | 0x226308bdb8d6b7cabc0bd8ee31c71568ccbf12cf | 1 | 2 | 1061.678463 | -| terp1s6wvsdafn8puuzh3kqkzct9ygnkv32m5zj3str | 0x869cc837a999c3ce0af1b02c2c2ca444ecc8ab74 | 1 | 2 | 1061.678463 | -| terp13x6t0dvhm8gfre25y6muul78yfthmc0vgtca3l | 0x89b4b7b597d9d091e55426b7ce7fc722577de1ec | 1 | 2 | 1061.678463 | -| terp15hwwwshnwag9nk2qvdpd9m9mpluw8g7zq9pp2p | 0xa5dce742f3775059d9406342d2ecbb0ff8e3a3c2 | 1 | 2 | 1061.678463 | -| terp164hv2cgtlxyy4n6sufldp73v0zl8g7ayv24y9z | 0xd56ec5610bf9884acf50e27ed0fa2c78be747ba4 | 1 | 2 | 1061.678463 | -| terp16unj7dlrsj6ef6y9yda29yqnedyjjhs5q3w0vc | 0xd7272f37e384b594e885237aa29013cb49295e14 | 1 | 2 | 1061.678463 | -| terp1h4fpt8ee7sqd5hq4cwwz3jejpy2tpd328gdzq5 | 0xbd52159f39f400da5c15c39c28cb320914b0b62a | 1 | 2 | 1061.678463 | -| terp10tm53qlahpet88uy226ue5tjrtefg53w2fkftd | 0x7af74883fdb872b39f8452b5ccd1721af294522e | 1 | 2 | 1061.678463 | -| terp1nd0uc2jny2qwrap4czaatk83h88kh04g8r9jjp | 0x9b5fcc2a532280e1f435c0bbd5d8f1b9cf6bbea8 | 1 | 2 | 1061.678463 | -| terp1pck463kvgceupjy9cpuyvk2p4rcec4c5z2ss47 | 0x0e2d5d46cc4633c0c885c078465941a8f19c5714 | 1 | 2 | 1061.678463 | -| terp1pq2ezaj2z0nj46mta5yculdrgp374zkywyjlcx | 0x081591764a13e72aeb6bed098e7da34063ea8ac4 | 1 | 2 | 1061.678463 | -| terp1n7kps8e60vvpded4jwew2evnxtv8mz3ugp6ssk | 0x9fac181f3a7b1816e5b593b2e5659332d87d8a3c | 1 | 2 | 1061.678463 | -| terp12xjj3kssswaz89pm5gyjac4z0ry8z4metcu03a | 0x51a528da1083ba23943ba2092ee2a278c8715779 | 1 | 2 | 1061.678463 | -| terp1hkvdceuexfh3syqwel3k2wkkz20vwhj2dq43qz | 0xbd98dc6799326f18100ecfe3653ad6129ec75e4a | 1 | 2 | 1061.678463 | -| terp1t34wkgqzyh5hkctf40e5330qscnxufwdg3vvc3 | 0x5c6aeb200225e97b6169abf348c5e086266e25cd | 1 | 2 | 1061.678463 | -| terp1xdmth69mthej46g2zc22na5zsnfuajrz0rwmsf | 0x3376bbe8bb5df32ae90a1614a9f68284d3cec862 | 1 | 2 | 1061.678463 | -| terp1765r6jhkmp92tgvanxhlffdd2gjkzy0w86nw7t | 0xf6a83d4af6d84aa5a19d99aff4a5ad52256111ee | 1 | 2 | 1061.678463 | -| terp1jf8jszezjx6m3myy20sjm277nvm0t4n6dwptgm | 0x924f280b2291b5b8ec8453e12dabde9b36f5d67a | 1 | 2 | 1061.678463 | -| terp180kf3ssh7jvr3zhffmupt2wervnvsycqnefnn8 | 0x3bec98c217f498388ae94ef815a9d91b26c81300 | 1 | 2 | 1061.678463 | -| terp1ss05cg80fap8xfk8w8sexxvg5sca5cehh52l33 | 0x841f4c20ef4f427326c771e1931988a431da6337 | 1 | 2 | 1061.678463 | -| terp17fu70gelka3c0jw9ws3sh09c6kr3nm7gftyh0z | 0xf279e7a33fb76387c9c574230bbcb8d58719efc8 | 1 | 2 | 1061.678463 | -| terp19dnn9ezhq2qfy9rks0manq7u6npzfnmnty7nas | 0x2b6732e457028092147683f7d983dcd4c224cf73 | 1 | 2 | 1061.678463 | -| terp1873a67e0etpakz07uex7fnkgkq0pwf6u5p2qln | 0x3fa3dd7b2fcac3db09fee64de4cec8b01e17275c | 1 | 2 | 1061.678463 | -| terp1vyuvef2yr0kzunescm0pzazwwzjdnvjjkcluwx | 0x6138cca5441bec2e4f30c6de11744e70a4d9b252 | 1 | 2 | 1061.678463 | -| terp1xgpd0njq8l5z0kmn7vz3ku9u6kwexz2au3qrhv | 0x3202d7ce403fe827db73f3051b70bcd59d93095d | 1 | 2 | 1061.678463 | -| terp1flguwmt8y77ddeyk509ev9afw6g3sle0v52w38 | 0x4fd1c76d6727bcd6e496a3cb9617a97691187f2f | 1 | 2 | 1061.678463 | -| terp1shskp9x5y4c7mstdfgwyaszaqm5898a7gjfcpk | 0x85e16094d42571edc16d4a1c4ec05d06e8729fbe | 1 | 2 | 1061.678463 | -| terp137msh30swxgdufxjpec49tmdq5kz5at7w7w9yy | 0x8fb70bc5f07190de24d20e7152af6d052c2a757e | 1 | 2 | 1061.678463 | -| terp1qj8dewdtj6kmjyuv36k985ajcn4f7zr8d4k9e0 | 0x048edcb9ab96adb9138c8eac53d3b2c4ea9f0867 | 1 | 2 | 1061.678463 | -| terp1jue9x5ps9pqkc5gvtd762h7auklxvy2f66zfz0 | 0x973253503028416c510c5b7da55fdde5be661149 | 1 | 2 | 1061.678463 | -| terp1s5rzc9tpmven0g3ux9kygg4xwucx4z0puz3vuc | 0x85062c1561db3337a23c316c4422a677306a89e1 | 1 | 2 | 1061.678463 | -| terp12vpjhtmzmxp9a62km5rdm4my05pv30es6vcrfh | 0x53032baf62d9825ee956dd06ddd7647d02c8bf30 | 1 | 2 | 1061.678463 | -| terp1gavqn6gss5txu96hchfvac0p4pm2asyjw0jag8 | 0x475809e91085166e1757c5d2cee1e1a876aec092 | 1 | 2 | 1061.678463 | -| terp1y2mjz70eh3uqz39q79gn9tsfw4cvdz5ua9t5t0 | 0x22b72179f9bc780144a0f15132ae097570c68a9c | 1 | 2 | 1061.678463 | -| terp1d37ss0x5zehr3cp9pymfh5mvsfnjp6ya0c3wzp | 0x6c7d083cd4166e38e02509369bd36c826720e89d | 1 | 2 | 1061.678463 | -| terp162xevcwasqm0svutzqv0w6sh3smmhtmx7dglq7 | 0xd28d9661dd8036f8338b1018f76a178c37bbaf66 | 1 | 2 | 1061.678463 | -| terp1d2kl4adauu5qcph5apsxc0eg68sf97x5mt570l | 0x6aadfaf5bde7280c06f4e8606c3f28d1e092f8d4 | 1 | 2 | 1061.678463 | -| terp1upfpzw7h6acq6c35zjs2gkzmetn4f6w48gvsr0 | 0xe052113bd7d7700d623414a0a4585bcae754e9d5 | 1 | 2 | 1061.678463 | -| terp1cymh2n80pc326r0szd5axl5hrs9v4jpfhsvvet | 0xc137754cef0e22ad0df01369d37e971c0acac829 | 1 | 2 | 1061.678463 | -| terp1z9s0tk82apslr250e27u4kk4wzpnqttu7a3ctj | 0x1160f5d8eae861f1aa8fcabdcadad57083302d7c | 1 | 2 | 1061.678463 | -| terp1gpw5u6twgtd6uxnfwr4atx2gyv3jd8hen33ypt | 0x405d4e696e42dbae1a6970ebd599482323269ef9 | 1 | 2 | 1061.678463 | -| terp1gzkhqve5pmlczhxcua3z9yy3j32da6dqu0maj6 | 0x40ad7033340eff815cd8e7622290919454dee9a0 | 1 | 2 | 1061.678463 | -| terp1rdm2g0xlpxm2d2t8l5wkyeyyj47gxzkt6g0v7l | 0x1b76a43cdf09b6a6a967fd1d626484957c830acb | 1 | 2 | 1061.678463 | -| terp1ylunt3xy58psk5w8v85kex63cz992am9p2277c | 0x27f935c4c4a1c30b51c761e96c9b51c08a557765 | 1 | 2 | 1061.678463 | -| terp1jszznq0maqnjx7k0p4ymhdgl4rqu264pv29rfk | 0x94042981fbe827237acf0d49bbb51fa8c1c56aa1 | 1 | 2 | 1061.678463 | -| terp1lqlavuf369j05alsfxaplzs3f9xmnzk75lc4sr | 0xf83fd67131d164fa77f049ba1f8a11494db98ade | 1 | 2 | 1061.678463 | -| terp1lmfkpaq8e6k5ssey5ncutrlfnpvcapleetuwh8 | 0xfed360f407cead484324a4f1c58fe998598e87f9 | 1 | 2 | 1061.678463 | -| terp1lqgaykqxdeh2mlj34pt32d46zmz098rzzqun5n | 0xf811d258066e6eadfe51a8571536ba16c4f29c62 | 1 | 2 | 1061.678463 | -| terp1zucvpykk5d5gr4znuf32l63hp2jc2338cses09 | 0x1730c092d6a36881d453e262afea370aa5854627 | 1 | 2 | 1061.678463 | -| terp1une4qt4se6hkkeksu4c7fy79vpl0q08826083u | 0xe4f3502eb0ceaf6b66d0e571e493c5607ef03ce7 | 1 | 2 | 1061.678463 | -| terp1tagmva093736f7nunhq3xdt4zcxqk5qc6jrsem | 0x5f51b675e58fa3a4fa7c9dc1133575160c0b5018 | 1 | 2 | 1061.678463 | -| terp1ypl5khhuuzupx0glvgq6pck5dzeyuk960jrh8t | 0x207f4b5efce0b8133d1f6201a0e2d468b24e58ba | 1 | 2 | 1061.678463 | -| terp13rw2jmv2w8kx46ryjjvx5khkcw4xskqe3dyl9v | 0x88dca96d8a71ec6ae86494986a5af6c3aa685819 | 1 | 2 | 1061.678463 | -| terp1066h8c8c5a75q0ynyru2pdmpdwwrmrv30xyep7 | 0x7eb573e0f8a77d403c9320f8a0b7616b9c3d8d91 | 1 | 2 | 1061.678463 | -| terp1twj7zdnwqmn8cfh0yanwg53ekdhawj8len9e2n | 0x5ba5e1366e06e67c26ef2766e45239b36fd748ff | 1 | 2 | 1061.678463 | -| terp10gpa3kts23fydnuee3dl5dyddhk6u2th6prkkn | 0x7a03d8d970545246cf99cc5bfa348d6dedae2977 | 1 | 2 | 1061.678463 | -| terp1uzmh73ksstkhdmxyy77apmqclkj85fzuzt8hny | 0xe0b77f46d082ed76ecc427bdd0ec18fda47a245c | 1 | 2 | 1061.678463 | -| terp1rtaqg54u57q22nex22grw9uczvrqrc36tasgdp | 0x1afa0452bca780a54f265290371798130601e23a | 1 | 2 | 1061.678463 | -| terp1rrfc6qhmqy0puvte4lyk6tfasd6v4egah0y6gz | 0x18d38d02fb011e1e3179afc96d2d3d8374cae51d | 1 | 2 | 1061.678463 | -| terp18003k04c2uppxv9asaeev6jqry6t57dse5qkz6 | 0x3bdf1b3eb857021330bd8773966a401934ba79b0 | 1 | 2 | 1061.678463 | -| terp1rrzq7da69s84djly8wxjsw69c593aydg8urwcn | 0x18c40f37ba2c0f56cbe43b8d283b45c50b1e91a8 | 1 | 2 | 1061.678463 | -| terp1f8kgcm0tr9sclsgwz8sj5t98z35r6xemsxxtl3 | 0x49ec8c6deb19618fc10e11e12a2ca714683d1b3b | 1 | 2 | 1061.678463 | -| terp1a6frpzny9dhq9arcn8jqtrql5d5pr3f5egelvy | 0xee92308a642b6e02f47899e4058c1fa36811c534 | 1 | 2 | 1061.678463 | -| terp1m4qq8y0cqeunnu0ru3wsk8077w3s7q7w670j0v | 0xdd400391f8067939f1e3e45d0b1dfef3a30f03ce | 1 | 2 | 1061.678463 | -| terp128h62qm7p7l78wjdfzx0sskkex75n74twt2mf8 | 0x51efa5037e0fbfe3ba4d488cf842d6c9bd49faab | 1 | 2 | 1061.678463 | -| terp1pme4aqhmevl0jan58vjfa03aalyljuke9am5z0 | 0x0ef35e82fbcb3ef976743b249ebe3defc9f972d9 | 1 | 2 | 1061.678463 | -| terp1xmgerd7jhxtce40uhygp5wesfqp988rzl8hf4x | 0x36d191b7d2b9978cd5fcb9101a3b304802539c62 | 1 | 2 | 1061.678463 | -| terp140xepp0lv4kgaqtgn74vkes63hfmqsp7ln80tz | 0xabcd9085ff656c8e81689faacb661a8dd3b0403e | 1 | 2 | 1061.678463 | -| terp1qmvjzyrxc6rv4l4e89n9z2jzz8yzhpt3enh2s7 | 0x06d9211066c686cafeb93966512a4211c82b8571 | 1 | 2 | 1061.678463 | -| terp1dv2aahuup57p5ckpxwtu8kyfsmv9qw55ku89fr | 0x6b15dedf9c0d3c1a62c13397c3d88986d8503a94 | 1 | 2 | 1061.678463 | -| terp1ws9ja2dkcjuft59sf3mz2zwqmh4lt3ss8x42cp | 0x740b2ea9b6c4b895d0b04c762509c0ddebf5c610 | 1 | 2 | 1061.678463 | -| terp1z2pz8zm2s6lgtl2np3zxfjh2edczs50fsgllx4 | 0x1282238b6a86be85fd530c4464caeacb702851e9 | 1 | 2 | 1061.678463 | -| terp19qe53hstl92vtkfjqgmqruzk2am0ra0vx67zmg | 0x283348de0bf954c5d932023601f0565776f1f5ec | 1 | 2 | 1061.678463 | -| terp1zltalg25msyz3t0yz9deaw9q4ywql00yhsn0xa | 0x17d7dfa154dc0828ade4115b9eb8a0a91c0fbde4 | 1 | 2 | 1061.678463 | -| terp1976959j4rp2k9pqqm6s2rusuftsfzylx0y35v2 | 0x2fb45a16551855628400dea0a1f21c4ae09113e6 | 1 | 2 | 1061.678463 | -| terp155frwm9ecfzgsfudruzwvya0jfeze7n45ta0c5 | 0xa512376cb9c24488278d1f04e613af92722cfa75 | 1 | 2 | 1061.678463 | -| terp1vu3eqxxuax0yraz3uk5g7zcmxhqlczwvgchqs9 | 0x67239018dce99e41f451e5a88f0b1b35c1fc09cc | 1 | 2 | 1061.678463 | -| terp1f8wm8h0yn3jurvnqeerafy7256ctgwgk70xhmr | 0x49ddb3dde49c65c1b260ce47d493caa6b0b43916 | 1 | 2 | 1061.678463 | -| terp1dvmp9pq6lkn0w2deqya8ylv957lpjpxpxf9qu6 | 0x6b3612841afda6f729b9013a727d85a7be1904c1 | 1 | 2 | 1061.678463 | -| terp16wkuw406py7k8puz6tkgz0ku4c8lqsta5y7m5z | 0xd3adc755fa093d638782d2ec813edcae0ff0417d | 1 | 2 | 1061.678463 | -| terp1qmctchst6uvxq3dz9vfc6pnyel6y28c3z546dh | 0x06f0bc5e0bd7186045a22b138d0664cff4451f11 | 1 | 2 | 1061.678463 | -| terp1fwdvlyjw4lfwdkruyp3xjexl2gftnvgvtlgtgk | 0x4b9acf924eafd2e6d87c20626964df5212b9b10c | 1 | 2 | 1061.678463 | -| terp1a4a355c9w4keu8a3dvjkya34uuykz6hghdtcrm | 0xed7b1a5305756d9e1fb16b25627635e709616ae8 | 1 | 2 | 1061.678463 | -| terp1r7l53mz94khrunfpmgcdyu0aa3px0vzqculzhe | 0x1fbf48ec45adae3e4d21da30d271fdec4267b040 | 1 | 2 | 1061.678463 | -| terp12dkspypzrsta74pk692cpuvhyknufjtjpmpkz4 | 0x536d0090221c17df5436d15580f19725a7c4c972 | 1 | 2 | 1061.678463 | -| terp10yng7wh4qtg0fadg9x8hr8xauu9e4z9fhekqw4 | 0x79268f3af502d0f4f5a8298f719cdde70b9a88a9 | 1 | 2 | 1061.678463 | -| terp106phrx3sjsx6xjdw2d9yvk9tgcz9env80ncmlf | 0x7e83719a30940da349ae534a4658ab46045ccd87 | 1 | 2 | 1061.678463 | -| terp19dwlvp6e0kwx76te2c9khn479fqar3vulr0u7k | 0x2b5df607597d9c6f6979560b6bcebe2a41d1c59c | 1 | 2 | 1061.678463 | -| terp1f0uatfcqjjl0nfh9fpnzd3lp5tmyxtvpfgxczq | 0x4bf9d5a70094bef9a6e5486626c7e1a2f6432d81 | 1 | 2 | 1061.678463 | -| terp1strwkyqlw46wwwxayegeeu645ft8yrnm9q6qf0 | 0x82c6eb101f7574e738dd26519cf355a256720e7b | 1 | 2 | 1061.678463 | -| terp1f9sf267wcwnrjczj98wdvjv9j6gnq8agc05ye8 | 0x4960956bcec3a639605229dcd649859691301fa8 | 1 | 2 | 1061.678463 | -| terp1wdxjtzym4anuv2sy6sacgul792tevq4knqt9pm | 0x734d25889baf67c62a04d43b8473fe2a979602b6 | 1 | 2 | 1061.678463 | -| terp1wsslk0j2p86s7cfhwcehqapxq6z50z82qwgz4v | 0x7421fb3e4a09f50f6137763370742606854788ea | 1 | 2 | 1061.678463 | -| terp1md2qc2pwkwlal7qvwhcqz3rx3wlvchalznukj6 | 0xdb540c282eb3bfdff80c75f00144668bbecc5fbf | 1 | 2 | 1061.678463 | -| terp1up56dhvl5q9k03fd07gnlez9ha376557f9ltca | 0xe069a6dd9fa00b67c52d7f913fe445bf63ed529e | 1 | 2 | 1061.678463 | -| terp1q9tdyh8hkwz2x4vy2tj4qdqmmj49agd5ygq4n9 | 0x0156d25cf7b384a3558452e550341bdcaa5ea1b4 | 1 | 2 | 1061.678463 | -| terp1fuulfqwapamd0md5h5xh8aqec4jk4x7g58k2u7 | 0x4f39f481dd0f76d7edb4bd0d73f419c5656a9bc8 | 1 | 2 | 1061.678463 | -| terp1zq7ekru2plae8yhq8kg6wrh4p2u2f33jmk8u77 | 0x103d9b0f8a0ffb9392e03d91a70ef50ab8a4c632 | 1 | 2 | 1061.678463 | -| terp12kwqd53zyku578c5dmc2wune57d4sew96jfczm | 0x559c06d22225b94f1f146ef0a77279a79b5865c5 | 1 | 2 | 1061.678463 | -| terp10htzfrz4euukn9046gy6k7705nw4k0xkvf04wq | 0x7dd6248c55cf396995f5d209ab7bcfa4dd5b3cd6 | 1 | 2 | 1061.678463 | -| terp1l9u6u9fm95y88mvwlrets90cp3g258rgc2p032 | 0xf979ae153b2d0873ed8ef8f2b815f80c50aa1c68 | 1 | 2 | 1061.678463 | -| terp1wfzm8v372jvxnrh7xy0ceym2m7agp8v3zwzqnz | 0x7245b3b23e5498698efe311f8c936adfba809d91 | 1 | 2 | 1061.678463 | -| terp19744e9rts4dm84f45axx6frux3f06jccfk050j | 0x2fab5c946b855bb3d535a74c6d247c3452fd4b18 | 1 | 2 | 1061.678463 | -| terp1qm6w23fh3hykjl0np7zmqjtzzqmlfqtkpe2tyq | 0x06f4e545378dc9697df30f85b049621037f48176 | 1 | 2 | 1061.678463 | -| terp1chuevcfduu0uqmhevkxdaptj0wtgqjp28f49u0 | 0xc5f996612de71fc06ef9658cde85727b9680482a | 1 | 2 | 1061.678463 | -| terp1g97gctfkkmau4w0mzn870l690nfg5wvaj9fwpw | 0x417c8c2d36b6fbcab9fb14cfe7ff457cd28a399d | 1 | 2 | 1061.678463 | -| terp1nmjk2ewv7djhnfj6l2wky3u63rcm9a3qv3m7ed | 0x9ee56565ccf36579a65afa9d62479a88f1b2f620 | 1 | 2 | 1061.678463 | -| terp1z7eakagyxyg8eqfwxyuqsdsysk4f858q97u53f | 0x17b3db750431107c812e313808360485aa93d0e0 | 1 | 2 | 1061.678463 | -| terp1cstc2l62806cmugska3ns25ua78kpjacsrm5h0 | 0xc417857f4a3bf58df110b763382a9cef8f60cbb8 | 1 | 2 | 1061.678463 | -| terp1uzlynraxz600m80sccxx0hfenxu40gegztq846 | 0xe0be498fa6169efd9df0c60c67dd3999b957a328 | 1 | 2 | 1061.678463 | -| terp13vsv9qdfveytscesh7vpncg0wxmwvlqvp5syc4 | 0x8b20c281a96648b86330bf9819e10f71b6e67c0c | 1 | 2 | 1061.678463 | -| terp16muz2qhjqeramrtcmlak44lcmqvn6h3fgxkt5v | 0xd6f82502f20647dd8d78dffb6ad7f8d8193d5e29 | 1 | 2 | 1061.678463 | -| terp1w5ahr27m3z4js4nr0a77q0ztxgl0sv52urdx7u | 0x753b71abdb88ab2856637f7de03c4b323ef8328a | 1 | 2 | 1061.678463 | -| terp1dscmwukv2l9vn8y96tgtphuw2jc857j4myunx0 | 0x6c31b772cc57cac99c85d2d0b0df8e54b07a7a55 | 1 | 2 | 1061.678463 | -| terp16t276jlqge4cy78dp7afmpzvmw7mhhvlqsz37p | 0xd2d5ed4be0466b8278ed0fba9d844cdbbdbbdd9f | 1 | 2 | 1061.678463 | -| terp18p04c2678m0ykdgrgydg5gznjfnkjks3hvfsav | 0x385f5c2b5e3ede4b3503411a8a20539267695a11 | 1 | 2 | 1061.678463 | -| terp16vnslc7gahvzj4fj7lngcej6h6ezushjw6e0e4 | 0xd3270fe3c8edd8295532f7e68c665abeb22e42f2 | 1 | 2 | 1061.678463 | -| terp1jprquzy23xgrpqrqdyeeycdnfvce2ajw2phhe0 | 0x90460e088a899030806069339261b34b3195764e | 1 | 2 | 1061.678463 | -| terp1hqdhm7tg68rrdw388eexskq9g65grsj594d60e | 0xb81b7df968d1c636ba273e7268580546a881c254 | 1 | 2 | 1061.678463 | -| terp1v8vvmddtzln0h4sk3tes4yr5ctnf4ey3a27nqd | 0x61d8cdb5ab17e6fbd6168af30a9074c2e69ae491 | 1 | 2 | 1061.678463 | -| terp1es7e3rs94qe6t7nhvwa4ghcxe36h77pphxy0x0 | 0xcc3d988e05a833a5fa7763bb545f06cc757f7821 | 1 | 2 | 1061.678463 | -| terp12y5rur2gh7p9rj9k5fujgfq39cw7dl44msg6gj | 0x51283e0d48bf8251c8b6a2792424112e1de6feb5 | 1 | 2 | 1061.678463 | -| terp17kh845xqnta274lrndnujkr7hk6csggtea52zl | 0xf5ae7ad0c09afaaf57e39b67c9587ebdb588210b | 1 | 2 | 1061.678463 | -| terp1agerht5slsmm0zgxypealtylprmhh2hxnwgpjs | 0xea323bae90fc37b789062073dfac9f08f77baae6 | 1 | 2 | 1061.678463 | -| terp1z7glw3vz8hw4eme95z5eg750p6k6m9v0ju7lvm | 0x1791f745823ddd5cef25a0a9947a8f0eadad958f | 1 | 2 | 1061.678463 | -| terp10pzldt9keq34q55tejpygft6734nvk5nz526w5 | 0x7845f6acb6c82350528bcc8244257af46b365a93 | 1 | 2 | 1061.678463 | -| terp19lhg59ld4c7fspa2g2uvkflyfpcj4szwglzcmz | 0x2fee8a17edae3c9807aa42b8cb27e448712ac04e | 1 | 2 | 1061.678463 | -| terp1q2ylun8flmg5z4gk9p2x57dcpjxn8766t460xy | 0x0289fe4ce9fed141551628546a79b80c8d33fb5a | 1 | 2 | 1061.678463 | -| terp17t89hmrfafkw579y50cp3f7daznwjc2z4rtzlz | 0xf2ce5bec69ea6cea78a4a3f018a7cde8a6e96142 | 1 | 2 | 1061.678463 | -| terp1np64lnezq032fjf7zwxrpvjv97sn3nt39eyp54 | 0x98755fcf2203e2a4c93e138c30b24c2fa138cd71 | 1 | 2 | 1061.678463 | -| terp1kle5xx62e34eatnaz7dw6vur7gdl3nvyt4f4j9 | 0xb7f3431b4acc6b9eae7d179aed3383f21bf8cd84 | 1 | 2 | 1061.678463 | -| terp1j99nxc7nz4rdud6r69ey5fp0gct0n3vhlxm3sy | 0x914b3363d31546de3743d1724a242f4616f9c597 | 1 | 2 | 1061.678463 | -| terp1uvcwpvwru322dznyvk3tfzagumwq64c8d8aca2 | 0xe330e0b1c3e454a68a6465a2b48ba8e6dc0d5707 | 1 | 2 | 1061.678463 | -| terp1te88kdcc6vqjz9v0rztmrgx9f6jqszlyz5qr4p | 0x5e4e7b3718d30121158f1897b1a0c54ea4080be4 | 1 | 2 | 1061.678463 | -| terp1pe9jmvvpcnnu986msg4xaxwc3h84296ggfgnud | 0x0e4b2db181c4e7c29f5b822a6e99d88dcf551748 | 1 | 2 | 1061.678463 | -| terp1pyax6sxvgueg8uv32l0hr0aky0w38229mfte87 | 0x093a6d40cc473283f19157df71bfb623dd13a945 | 1 | 2 | 1061.678463 | -| terp10kj3rk8nwctr309560suzv2x4gq24lkpkd834f | 0x7da511d8f3761638bcb4d3e1c13146aa00aafec1 | 1 | 2 | 1061.678463 | -| terp1747gemd3hakc8u9gpwnmlzzk8c473g8p6fkxxw | 0xf57c8cedb1bf6d83f0a80ba7bf88563e2be8a0e1 | 1 | 2 | 1061.678463 | -| terp1lt6zr4zp8egmxsn7n4ju7zve7cpa5hmryw90nd | 0xfaf421d4413e51b3427e9d65cf0999f603da5f63 | 1 | 2 | 1061.678463 | -| terp1zz3m96lgwr6pperqfvgae65eq6z8xd3nc39rnn | 0x10a3b2ebe870f410e4604b11dcea990684733633 | 1 | 2 | 1061.678463 | -| terp1c5tawupq9n5l00w5mjmfcy4w62zuwdfnumlqwl | 0xc517d770202ce9f7bdd4dcb69c12aed285c73533 | 1 | 2 | 1061.678463 | -| terp1kua8jh6t2hw809jcuygr0cmn6e4np9x84fmvhd | 0xb73a795f4b55dc779658e11037e373d66b3094c7 | 1 | 2 | 1061.678463 | -| terp14hyqy5w9sas4f3xuj3vf69law6w4e6mfe07nw9 | 0xadc80251c5876154c4dc94589d17fd769d5ceb69 | 1 | 2 | 1061.678463 | -| terp1430xj0j7wl7fgx95rpwg32jypzu4y8c7nsrp2r | 0xac5e693e5e77fc9418b4185c88aa4408b9521f1e | 1 | 2 | 1061.678463 | -| terp10nwpt6apxcy6y38fdd4eunz2jhupaj2netawwf | 0x7cdc15eba13609a244e96b6b9e4c4a95f81ec953 | 1 | 2 | 1061.678463 | -| terp1pe04f5fvu3xnnj0f6p7tmd2nlpe29wzeghynw0 | 0x0e5f54d12ce44d39c9e9d07cbdb553f872a2b859 | 1 | 2 | 1061.678463 | -| terp1vwmaqqrpqtn89e5ndl87vxt7f3uz75w5krzt7c | 0x63b7d0006102e672e6936fcfe6197e4c782f51d4 | 1 | 2 | 1061.678463 | -| terp1hyh4t2jqud2wkzfq077kcrmqhjnkprrap4syxh | 0xb92f55aa40e354eb09207fbd6c0f60bca7608c7d | 1 | 2 | 1061.678463 | -| terp1yaqkd63z38cpc829fc2h7msejnfhx9mmqam9rh | 0x274166ea2289f01c1d454e157f6e1994d373177b | 1 | 2 | 1061.678463 | -| terp1a9rsl788wk8ttrcqujqkys747mj05zpc8g8n0c | 0xe9470ff8e7758eb58f00e4816243d5f6e4fa0838 | 1 | 2 | 1061.678463 | -| terp18cgh0hyeefp3cecml8dk0dfancy30kklym558v | 0x3e1177dc99ca431c671bf9db67b53d9e0917dadf | 1 | 2 | 1061.678463 | -| terp1wvqcsux3q9e6umm3etpsglknkmghtun5a2wuzz | 0x73018870d10173ae6f71cac3047ed3b6d175f274 | 1 | 2 | 1061.678463 | -| terp122xcpn5kakqqugua2suhrvhypnr42p6fwd74vd | 0x528d80ce96ed800e239d543971b2e40cc7550749 | 1 | 2 | 1061.678463 | -| terp1g364qahrgtff804us6e9c0c3ca20jauua8q33w | 0x44755076e342d293bebc86b25c3f11c754f9779c | 1 | 2 | 1061.678463 | -| terp18a3m35e52nqq0es4qzvsqflzhd98hgw0vf75vq | 0x3f63b8d33454c007e61500990027e2bb4a7ba1cf | 1 | 2 | 1061.678463 | -| terp1mwu7m9qf9q9jqct6d724k8uwxpzw6dm7905lnn | 0xdbb9ed9409280b20617a6f955b1f8e3044ed377e | 1 | 2 | 1061.678463 | -| terp1m474sn76am3dv55xqc80qfjejnsftk92thd9la | 0xdd7d584fdaeee2d65286060ef0265994e095d8aa | 1 | 2 | 1061.678463 | -| terp18al4z872tcwumc00e8mfcsqz7wyrjef5jc2sg3 | 0x3f7f511fca5e1dcde1efc9f69c4002f388396534 | 1 | 2 | 1061.678463 | -| terp1z4suxgv2khlwa3dq57upwktw40f90edrhfauqg | 0x1561c3218ab5feeec5a0a7b817596eabd257e5a3 | 1 | 2 | 1061.678463 | -| terp18mjl0nlshz882juy6hwvum8258zz8ef64ye0ua | 0x3ee5f7cff0b88e754b84d5dcce6ceaa1c423e53a | 1 | 2 | 1061.678463 | -| terp1u8nndycrpj0j82l0jd0am5ske6l8fqtunjwlyj | 0xe1e73693030c9f23abef935fddd216cebe74817c | 1 | 2 | 1061.678463 | -| terp1sv6k0fstym9ut6lh7zgnzfg5u7qmt9ahq5knzz | 0x833567a60b26cbc5ebf7f091312514e781b597b7 | 1 | 2 | 1061.678463 | -| terp1yg3vsj64yl4jyz6jxhsr9w4x280auruaq9c7ln | 0x2222c84b5527eb220b5235e032baa651dfde0f9d | 1 | 2 | 1061.678463 | -| terp1c7s8culwjrr7a3zjsg2aw9s9xfpdc2zjngpd7h | 0xc7a07c73ee90c7eec4528215d716053242dc2852 | 1 | 2 | 1061.678463 | -| terp1stsnxef72p56vyrzk2retmce4xdr6tr46mnuu6 | 0x82e133653e5069a61062b28795ef19a99a3d2c75 | 1 | 2 | 1061.678463 | -| terp14expla7kzgxku9tmd7mgcw3u82ufsc58k22e94 | 0xae4c1ff7d6120d6e157b6fb68c3a3c3ab8986287 | 1 | 2 | 1061.678463 | -| terp1g63tn53rlgkety23mp09wvkesketl2f0vl2ju7 | 0x46a2b9d223fa2d959151d85e5732d985b2bfa92f | 1 | 2 | 1061.678463 | -| terp15cj5fz03c2s5v4m2urazn0f0tr89wl8etfc2x3 | 0xa6254489f1c2a146576ae0fa29bd2f58ce577cf9 | 1 | 2 | 1061.678463 | -| terp1xn326f0793xe0mgkw4nvz7atv3cwts2hftpfkr | 0x34e2ad25fe2c4d97ed167566c17bab6470e5c157 | 1 | 2 | 1061.678463 | -| terp1xhyccsykvwqngcncwqc33x6xm7n64hrq8f5ahz | 0x35c98c409663813462787031189b46dfa7aadc60 | 1 | 2 | 1061.678463 | -| terp1yylwpkk20cgcxh4yg9fgq2pxwp6jp70ggp638d | 0x213ee0daca7e11835ea44152802826707520f9e8 | 1 | 2 | 1061.678463 | -| terp1llq8urssa2mu3slqvdwvahsxys857vhwj08le7 | 0xffc07e0e10eab7c8c3e0635ccede06240f4f32ee | 1 | 2 | 1061.678463 | -| terp1lt2a36njwc3u8k3hxkfwl69zqml37s5qclnluk | 0xfad5d8ea727623c3da373592efe8a206ff1f4280 | 1 | 2 | 1061.678463 | -| terp12sywz448lch8qlvu9y8urhcy9gp9n8yk6nk5re | 0x5408e156a7fe2e707d9c290fc1df042a02599c96 | 1 | 2 | 1061.678463 | -| terp164w7ngewrmk0yxffg52p6v347gdmg06xxu27mj | 0xd55de9a32e1eecf2192945141d3235f21bb43f46 | 1 | 2 | 1061.678463 | -| terp1mt6f5n9mkup4zky7w2aczaeesjya5nhd5vmzsx | 0xdaf49a4cbbb70351589e72bb8177398489da4eed | 1 | 2 | 1061.678463 | -| terp1ak8fy3e47kg9wgmpk5n9027e5vnq7ddqxkscem | 0xed8e924735f590572361b52657abd9a3260f35a0 | 1 | 2 | 1061.678463 | -| terp1k0qcfj75336h0y79epqrc2g8kl9e8xqmjger4a | 0xb3c184cbd48c757793c5c8403c2907b7cb93981b | 1 | 2 | 1061.678463 | -| terp1a5cnglg94kjvxhdk40cc7tnuj79nxyztvgyg23 | 0xed31347d05ada4c35db6abf18f2e7c978b33104b | 1 | 2 | 1061.678463 | -| terp1ew8urc9mc223yj7ttkn0004m6gatxurqgxz5hn | 0xcb8fc1e0bbc295124bcb5da6f7bebbd23ab37060 | 1 | 2 | 1061.678463 | -| terp1hgr4kl3ajf6yt8je9taz7ld0g8hu6v6eu67pz2 | 0xba075b7e3d9274459e592afa2f7daf41efcd3359 | 1 | 2 | 1061.678463 | -| terp10ap0qemy7k2reer8xf2rrun600lncucfuhqv5r | 0x7f42f06764f5943ce467325431f27a7bff3c7309 | 1 | 2 | 1061.678463 | -| terp1z9jm5puvcwhgl4ql9469k009czd7ftncjs09f5 | 0x1165ba078cc3ae8fd41f2d745b3de5c09be4ae78 | 1 | 2 | 1061.678463 | -| terp1e3swlpe05qmmzttt6e87emsmavlvalkwtpjff3 | 0xcc60ef872fa037b12d6bd64fecee1beb3ecefece | 1 | 2 | 1061.678463 | -| terp1lw3rtfy0xxym8d5fpzdnpvxprfugrjzdre9ley | 0xfba235a48f3189b3b689089b30b0c11a7881c84d | 1 | 2 | 1061.678463 | -| terp122jh7xfzm3g3rp4pe7ra5gnxees7xz2q790nqv | 0x52a57f1922dc511186a1cf87da2266ce61e30940 | 1 | 2 | 1061.678463 | -| terp1kys2tu7ql46qmfe8ckx0zuc4xc96txn7sk042y | 0xb120a5f3c0fd740da727c58cf17315360ba59a7e | 1 | 2 | 1061.678463 | -| terp137d7gvg0n2asukzre33k8yyvnvqal6elvsez39 | 0x8f9be4310f9abb0e5843cc6363908c9b01dfeb3f | 1 | 2 | 1061.678463 | -| terp1c64wduufufyzwl4ehkfxw42qf4rz849slu58v6 | 0xc6aae6f389e248277eb9bd926755404d4623d4b0 | 1 | 2 | 1061.678463 | -| terp17r2d0ldkdf66w59yhzjl0klvd9tlhusqqmgmkg | 0xf0d4d7fdb66a75a750a4b8a5f7dbec6957fbf200 | 1 | 2 | 1061.678463 | -| terp1lcp7hjp9p8nqxk7hjtlzh03xccjj7a833fe43d | 0xfe03ebc82509e6035bd792fe2bbe26c6252f74f1 | 1 | 2 | 1061.678463 | -| terp1ef39ar0uq2mvxmrd8rfd6egsdtapvj9avdm82l | 0xca625e8dfc02b6c36c6d38d2dd65106afa1648bd | 1 | 2 | 1061.678463 | -| terp1flwweuc33mrvq3sjqmgfs8aqsm6p0grlxrxw5y | 0x4fdcecf3118ec6c0461206d0981fa086f417a07f | 1 | 2 | 1061.678463 | -| terp16yupdf65w24tjsv7vedd6mvtezxlx72akqvhrf | 0xd13816a75472aab9419e665add6d8bc88df3795d | 1 | 2 | 1061.678463 | -| terp19e5zy4l7txgyma863xkq7vvw62n3z9sjd0qr65 | 0x2e682257fe59904df4fa89ac0f318ed2a7111612 | 1 | 2 | 1061.678463 | -| terp14awsjrks4yjlnp7q3vrmrgxlh609f2exvhpuwy | 0xaf5d090ed0a925f987c08b07b1a0dfbe9e54ab26 | 1 | 2 | 1061.678463 | -| terp17h3txq3gqdk6ncuj0nu4286r634g554hv74yeg | 0xf5e2b30228036da9e3927cf9551f43d46a8a52b7 | 1 | 2 | 1061.678463 | -| terp1m294xe3gyy68vppz7cnwgf9a3cnfm75kzkwdvq | 0xda8b5366282134760422f626e424bd8e269dfa96 | 1 | 2 | 1061.678463 | -| terp1raveyhwtx9dm8tdt8uvzwlz9d2mngz9s3v7nar | 0x1f59925dcb315bb3adab3f18277c456ab73408b0 | 1 | 2 | 1061.678463 | -| terp1lhxsdmwkvkppqt4garpvk8azw887er0ujzhdvu | 0xfdcd06edd66582102ea8e8c2cb1fa271cfec8dfc | 1 | 2 | 1061.678463 | -| terp1mxngprq2qum9d5jqgxjzugev93md695mzr77g9 | 0xd9a6808c0a073656d24041a42e232c2c76dd169b | 1 | 2 | 1061.678463 | -| terp10v2njqnlas3mrmahmfpp5d2w5qfc2wyldqufjq | 0x7b1539027fec23b1efb7da421a354ea01385389f | 1 | 2 | 1061.678463 | -| terp1qys33yrxxhfhr30ezlrhh4avp40l7jvhj65xex | 0x012118906635d371c5f917c77bd7ac0d5fff4997 | 1 | 2 | 1061.678463 | -| terp17sgxfr7c8taukl4wp7svzypr8zxzjdvyqe0xdd | 0xf410648fd83afbcb7eae0fa0c11023388c293584 | 1 | 2 | 1061.678463 | -| terp1dpaqzej9lghh34txgray5prqpd6y6nrag93gmu | 0x687a016645fa2f78d56640fa4a04600b744d4c7d | 1 | 2 | 1061.678463 | -| terp18a590dd8svxqd7jg5rha4la2wruh2lg8gq4thr | 0x3f6857b5a7830c06fa48a0efdaffaa70f9757d07 | 1 | 2 | 1061.678463 | -| terp100x7cfdv4hv26kvlgqktj3tjwsqlv874mezzk9 | 0x7bcdec25acadd8ad599f402cb945727401f61fd5 | 1 | 2 | 1061.678463 | -| terp14pjlpkzz5dvz478satn56erp28ed96vqwp6rz2 | 0xa865f0d842a3582af8f0eae74d646151f2d2e980 | 1 | 2 | 1061.678463 | -| terp1plppy7hhylzaesa3zyxlajmajq0e4xr7488huk | 0x0fc2127af727c5dcc3b1110dfecb7d901f9a987e | 1 | 2 | 1061.678463 | -| terp18pcrqp8my5v9nv7yqzsgczjnmm0se8qfmh40d0 | 0x38703004fb251859b3c400a08c0a53dedf0c9c09 | 1 | 2 | 1061.678463 | -| terp1vk7gajacx96adsz8r9r0yee2udgpfcjn2dwaes | 0x65bc8ecbb83175d6c0471946f2672ae35014e253 | 1 | 2 | 1061.678463 | -| terp14wac4ghfyqxk0eqfw7t0esun20aqkjry8hx0k0 | 0xabbb8aa2e9200d67e4097796fcc39353fa0b4864 | 1 | 2 | 1061.678463 | -| terp1llw99d20znsyuenk3krw4d24fuyqvyfegztg8q | 0xffdc52b54f14e04e66768d86eab5554f08061139 | 1 | 2 | 1061.678463 | -| terp1p9gk4mn4wkpjrjfduvhmv7ynql3qqu0ejdpwnd | 0x09516aee75758321c92de32fb6789307e20071f9 | 1 | 2 | 1061.678463 | -| terp1wxnl3jfpx0z9xfav5svfkqu9wvv7mrte7se099 | 0x71a7f8c92133c45327aca4189b03857319ed8d79 | 1 | 2 | 1061.678463 | -| terp1htv93gx0p8eppl8ntjlcx4530zrek3ljxtq305 | 0xbad858a0cf09f210fcf35cbf83569178879b47f2 | 1 | 2 | 1061.678463 | -| terp1hhr6j42stcsyzqrpw3842mmda3mph7u0act7ek | 0xbdc7a955505e20410061744f556f6dec761bfb8f | 1 | 2 | 1061.678463 | -| terp1k2g8shjeqas0hww9dm9p27ujx2xdvmgde6eclu | 0xb290785e590760fbb9c56eca157b92328cd66d0d | 1 | 2 | 1061.678463 | -| terp1kqn4vg9p3w5gzg0j8emw8330fu98cam230mnux | 0xb0275620a18ba88121f23e76e3c62f4f0a7c776a | 1 | 2 | 1061.678463 | -| terp1unzv7srm3xp4l7wqw9a7vs37lsdy2px66sjmsm | 0xe4c4cf407b89835ff9c0717be6423efc1a4504da | 1 | 2 | 1061.678463 | -| terp1gpg3yxg8cu3wcpjk9lmn4avtt6gus009xvquzk | 0x4051121907c722ec06562ff73af58b5e91c83de5 | 1 | 2 | 1061.678463 | -| terp1ray4ypjum2erel3q3cchah5tly4wrapnmqwvad | 0x1f4952065cdab23cfe208e317ede8bf92ae1f433 | 1 | 2 | 1061.678463 | -| terp1vh2r6fkcqs9364uav8ls7fw09drhf0p7j7lf39 | 0x65d43d26d8040b1d579d61ff0f25cf2b4774bc3e | 1 | 2 | 1061.678463 | -| terp1zzgnt3ura4024974ax5r0lg6grkjzut2v87x39 | 0x109135c783ed5eaa97d5e9a837fd1a40ed21716a | 1 | 2 | 1061.678463 | -| terp1xujsqlpvwxr0rj89wvlwnfk935lvy9va6aekfw | 0x3725007c2c7186f1c8e5733ee9a6c58d3ec2159d | 1 | 2 | 1061.678463 | -| terp1pqry7cx925f0jw0cdy5a08gqfyelj2zc7vsg4v | 0x08064f60c55512f939f86929d79d004933f92858 | 1 | 2 | 1061.678463 | -| terp1hsrgda58khhtqf7xpqcfzl3cvk0hkd8rth4may | 0xbc0686f687b5eeb027c60830917e38659f7b34e3 | 1 | 2 | 1061.678463 | -| terp1ptn364vaq3339804u4x67vengmjyr68757r03w | 0x0ae71d559d0463129df5e54daf333346e441e8fe | 1 | 2 | 1061.678463 | -| terp12jchg9u6aqj76ccd5s9kykanezpu6s9wfafhxu | 0x54b174179ae825ed630da40b625bb3c883cd40ae | 1 | 2 | 1061.678463 | -| terp1xctdtxrcpc3r6r8p0tej04qzh9dtqk3e20d4gz | 0x3616d598780e223d0ce17af327d402b95ab05a39 | 1 | 2 | 1061.678463 | -| terp1x0uvayrlshp7w4rwll45nec9wys4f48fxmwh2n | 0x33f8ce907f85c3e7546effeb49e705712154d4e9 | 1 | 2 | 1061.678463 | -| terp1jurp0p8pg4vqwg8t039m998ehez9lkm6v7697l | 0x97061784e145580720eb7c4bb294f9be445fdb7a | 1 | 2 | 1061.678463 | -| terp14ru9jnv3umj5900f6l9p92vwuzfnvme30c70tc | 0xa8f8594d91e6e542bde9d7ca12a98ee093366f31 | 1 | 2 | 1061.678463 | -| terp1l929l7ghfpnzh65lyevkjw3mds4ez2f3nf93z6 | 0xf9545ff91748662bea9f2659693a3b6c2b912931 | 1 | 2 | 1061.678463 | -| terp19z4595749hexrjcnjdcvaqqptm40sxup5vse67 | 0x28ab42d3d52df261cb139370ce80015eeaf81b81 | 1 | 2 | 1061.678463 | -| terp1ktnl0n63jqsv3dhlx2sg3lkftvpue3c43ay0pp | 0xb2e7f7cf519020c8b6ff32a088fec95b03ccc715 | 1 | 2 | 1061.678463 | -| terp1fte627nvu07y4hze8fsycpnn9wp43avcnqmk47 | 0x4af3a57a6ce3fc4adc593a604c06732b8358f598 | 1 | 2 | 1061.678463 | -| terp17e6qn8rhxgd4mqm3lhfdddpfmu9malgmep7jk9 | 0xf674099c77321b5d8371fdd2d6b429df0bbefd1b | 1 | 2 | 1061.678463 | -| terp1jrv3ku6l2pnrpfe79vpwc5j8hylx02epyhc06w | 0x90d91b735f506630a73e2b02ec5247b93e67ab21 | 1 | 2 | 1061.678463 | -| terp1aa3d4v08pavke5659zw94yvjqw8e8rmvmahja7 | 0xef62dab1e70f596cd354289c5a9192038f938f6c | 1 | 2 | 1061.678463 | -| terp13kd8m2d520e29zn8dltsmkxdvgs8wp5wdsnt0f | 0x8d9a7da9b453f2a28a676fd70dd8cd622077068e | 1 | 2 | 1061.678463 | -| terp1sg0vr0v5lwtpx9w2k6slnvga2pkk3hsjcfrwh9 | 0x821ec1bd94fb961315cab6a1f9b11d506d68de12 | 1 | 2 | 1061.678463 | -| terp1a6cadyxspr90hqmrwsk5x4ap3fdyl2shrv0aju | 0xeeb1d690d008cafb8363742d4357a18a5a4faa17 | 1 | 2 | 1061.678463 | -| terp1a563vkhg0kvcpya308e8wrhfk8jf3m0nuhtynf | 0xed35165ae87d998093b179f2770ee9b1e498edf3 | 1 | 2 | 1061.678463 | -| terp1kymjzyztw55pc9yyk2cp2hwl2e7k9rxlrauxsx | 0xb13721104b75281c1484b2b0155ddf567d628cdf | 1 | 2 | 1061.678463 | -| terp1mu5sxpt67gxectnxdqs07vr0mkst3u2hspwm7r | 0xdf2903057af20d9c2e666820ff306fdda0b8f157 | 1 | 2 | 1061.678463 | -| terp1sjx8yesf2k7ecdsznz7r7zfj7z5agzdye6t8dt | 0x848c72660955bd9c360298bc3f0932f0a9d409a4 | 1 | 2 | 1061.678463 | -| terp1xl0kw5a3ja3huyy8vf35g0jwrhlpe0wc59ar6w | 0x37df6753b197637e10876263443e4e1dfe1cbdd8 | 1 | 2 | 1061.678463 | -| terp1tz0c4xyl29w3d4p6ycl07tkfnpu8sncx6x8wc6 | 0x589f8a989f515d16d43a263eff2ec99878784f06 | 1 | 2 | 1061.678463 | -| terp1cp2au4muugpeumf4vg0r4zzalxanqj4e09z3rs | 0xc055de577ce2039e6d35621e3a885df9bb304ab9 | 1 | 2 | 1061.678463 | -| terp1kr22vx43fek88huwc37972uuqwtqt0v8fs5man | 0xb0d4a61ab14e6c73df8ec47c5f2b9c039605bd87 | 1 | 2 | 1061.678463 | -| terp17whs6x8ut94ex9ugykfrfqrhk0uuyy83k8hr5w | 0xf3af0d18fc596b9317882592348077b3f9c210f1 | 1 | 2 | 1061.678463 | -| terp1yv7325h87vgc2pvlyt2vv3pvnr55mchd4pwlzq | 0x233d1552e7f31185059f22d4c6442c98e94de2ed | 1 | 2 | 1061.678463 | -| terp1ahglxrtf3x8yedcse768ccg56v0xlmgxag039h | 0xedd1f30d69898e4cb710cfb47c6114d31e6fed06 | 1 | 2 | 1061.678463 | -| terp1kfhmktg8wusge7we9uxqhjy4ey24urh86sdfvq | 0xb26fbb2d0777208cf9d92f0c0bc895c9155e0ee7 | 1 | 2 | 1061.678463 | -| terp1jvn4gpdw6yasz8fnnxet744xaek6t7qrymkj6f | 0x93275405aed13b011d3399b2bf56a6ee6da5f803 | 1 | 2 | 1061.678463 | -| terp1n30h4589w0sdv7d90whzhv7akrf5dkytp9fm76 | 0x9c5f7ad0e573e0d679a57bae2bb3ddb0d346d88b | 1 | 2 | 1061.678463 | -| terp1dukcc4qqllvljsa64y6h5s57n29lg22hza2wgh | 0x6f2d8c5400ffd9f943baa9357a429e9a8bf42957 | 1 | 2 | 1061.678463 | -| terp1r9n9mea84c3ch0vrj9lkdselz6ncc796f869jg | 0x19665de7a7ae238bbd83917f66c33f16a78c78ba | 1 | 2 | 1061.678463 | -| terp1r9y93wmxrv9du2l5lek0aj5r4pcjc2mdn4rlsk | 0x194858bb661b0ade2bf4fe6cfeca83a8712c2b6d | 1 | 2 | 1061.678463 | -| terp1hdjxae0l7qxjn5denpgh75thtkkqwz7dj5fzcf | 0xbb646ee5fff00d29d1b998517f51775dac070bcd | 1 | 2 | 1061.678463 | -| terp17un692v2l4n085a064jh0v6w3fhddseag2l5z8 | 0xf727a2a98afd66f3d3afd56577b34e8a6ed6c33d | 1 | 2 | 1061.678463 | -| terp15wkpkfyt0wyy8che0hhzuha9666gjkutgp4kz8 | 0xa3ac1b248b7b8843e2f97dee2e5fa5d6b4895b8b | 1 | 2 | 1061.678463 | -| terp1me4mngl2pqjarts58ca4mjv5fczhjsf25fjvc0 | 0xde6bb9a3ea0825d1ae143e3b5dc9944e0579412a | 1 | 2 | 1061.678463 | -| terp1qqw8s86gd0tlayf8hajv3xvyzex7gdys6l8nml | 0x001c781f486bd7fe9127bf64c89984164de43490 | 1 | 2 | 1061.678463 | -| terp15xc8lfht73mwe2vjhpfvn2f4ntmvqfzqe4tvet | 0xa1b07fa6ebf476eca992b852c9a9359af6c02440 | 1 | 2 | 1061.678463 | -| terp1waxulvlftca424r9e05ye4s5d857upa72cpacx | 0x774dcfb3e95e3b555465cbe84cd61469e9ee07be | 1 | 2 | 1061.678463 | -| terp1eq3aq2ajpj7ngr4hewhhhqr8eyx6recyz3ku5w | 0xc823d02bb20cbd340eb7cbaf7b8067c90da1e704 | 1 | 2 | 1061.678463 | -| terp12v23syuhzlxu3ldszw7774dm7c9n0x7m82tj0c | 0x531518139717cdc8fdb013bdef55bbf60b379bdb | 1 | 2 | 1061.678463 | -| terp13yrkx3evc5m03j9uzjams7mvet52pshs97k49h | 0x890763472cc536f8c8bc14bbb87b6ccae8a0c2f0 | 1 | 2 | 1061.678463 | -| terp1njwc7vc26lsndastrtw02zftyj5rmts2um0rjp | 0x9c9d8f330ad7e136f60b1adcf5092b24a83dae0a | 1 | 2 | 1061.678463 | -| terp1rw5d9w7wfshafzzlqvhznryq4deg2p9ht7zsux | 0x1ba8d2bbce4c2fd4885f032e298c80ab728504b7 | 1 | 2 | 1061.678463 | -| terp1wx8t9trsgep55j7gy6zj0cgj8tk0ahh75y60cf | 0x718eb2ac7046434a4bc8268527e1123aecfedefe | 1 | 2 | 1061.678463 | -| terp1lkg04c7d5u0sduvh72qjc09sfnpzrhp6rn73m9 | 0xfd90fae3cda71f06f197f2812c3cb04cc221dc3a | 1 | 2 | 1061.678463 | -| terp1y6nv46ry0lcxl943nfnmeg4wgf3g3l9c9636tn | 0x26a6cae8647ff06f96b19a67bca2ae426288fcb8 | 1 | 2 | 1061.678463 | -| terp182c67jp0ckvrf6erhnys9xmmtlfqdfg3cc438a | 0x3ab1af482fc59834eb23bcc9029b7b5fd206a511 | 1 | 2 | 1061.678463 | -| terp1mlxuu4kgssg4zuhv4y6sp8nfwcp7gelh3a72y3 | 0xdfcdce56c884115172eca935009e697603e467f7 | 1 | 2 | 1061.678463 | -| terp12wtfqueapkrdh422h4rmrx2ctvv25lj0pxp6zh | 0x539690733d0d86dbd54abd47b199585b18aa7e4f | 1 | 2 | 1061.678463 | -| terp12ak8pgxtfnwukwwp7yu8ksqdrnjq2yv5yr7yw4 | 0x576c70a0cb4cddcb39c1f1387b400d1ce4051194 | 1 | 2 | 1061.678463 | -| terp1nvt86rmfp6kz46x76j6lq57scl5tfue8805pms | 0x9b167d0f690eac2ae8ded4b5f053d0c7e8b4f327 | 1 | 2 | 1061.678463 | -| terp1zv4yd36u4wp55937usgxvlrjsfv9gnxfk5908t | 0x132a46c75cab834a163ee410667c728258544cc9 | 1 | 2 | 1061.678463 | -| terp1xe8p9c0v8u43xwh4lkqru9wgutef0wxletuuq2 | 0x364e12e1ec3f2b133af5fd803e15c8e2f297b8df | 1 | 2 | 1061.678463 | -| terp10k7sfy73qfg68qhr8xl3yu5x7n8xgn36qlaczn | 0x7dbd0493d10251a382e339bf127286f4ce644e3a | 1 | 2 | 1061.678463 | -| terp1t2ljujj26hyd32g7lnqhmgyj2rlfuu59rp0h6q | 0x5abf2e4a4ad5c8d8a91efcc17da09250fe9e7285 | 1 | 2 | 1061.678463 | -| terp1n82x9kpfupz9pzj93ervg97s34urc99l592x2p | 0x99d462d829e044508a458e46c417d08d783c14bf | 1 | 2 | 1061.678463 | -| terp1lk6s90m05ecrqn04wxj8k0vyrjtkx3wvjgszh5 | 0xfdb502bf6fa670304df571a47b3d841c976345cc | 1 | 2 | 1061.678463 | -| terp1m8kwt85apqc8mucakj55tlc2rsempj34wpama6 | 0xd9ece59e9d08307df31db4a945ff0a1c33b0ca35 | 1 | 2 | 1061.678463 | -| terp1694w4yg6qme04faha3sk7zuhahu2rfte4npe4w | 0xd16aea911a06f2faa7b7ec616f0b97edf8a1a579 | 1 | 2 | 1061.678463 | -| terp175v9uqs9vrdethtavqq6kul456n77cq8da5kvw | 0xf5185e020560db95dd7d6001ab73f5a6a7ef6007 | 1 | 2 | 1061.678463 | -| terp1ytn5q7rs2zpf5j06fg5gc3d2v87w4xplpa7yce | 0x22e740787050829a49fa4a288c45aa61fcea983f | 1 | 2 | 1061.678463 | -| terp17sqzenq5rfk9zffjduvs7ypsfextq6sp9vhqu5 | 0xf4002ccc141a6c5125326f190f10304e4cb06a01 | 1 | 2 | 1061.678463 | -| terp1g4t6mw5765jf4yxx4fd0s4tcss2dutc4faermr | 0x4557adba9ed5249a90c6aa5af855788414de2f15 | 1 | 2 | 1061.678463 | -| terp1tk9llycqk62yev4zhz9wxma6lrhgyzh69zhj50 | 0x5d8bff9300b6944cb2a2b88ae36fbaf8ee820afa | 1 | 2 | 1061.678463 | -| terp10vumw3ws3x9ssjjkpjpexu8ct03na6anvfgs6m | 0x7b39b745d0898b084a560c839370f85be33eebb3 | 1 | 2 | 1061.678463 | -| terp1n99xzkfllex2z8am765gxq0ldd3uslgrn2wm7k | 0x994a61593ffe4ca11fbbf6a88301ff6b63c87d03 | 1 | 2 | 1061.678463 | -| terp1lldgsyqqw9r805c7evn5f6ala46mf79ahv77uj | 0xffda881000714677d31ecb2744ebbfed75b4f8bd | 1 | 2 | 1061.678463 | -| terp1qaluzeaqgwczjwe2ht4vxhtxsnrnratqgemk74 | 0x077fc167a043b0293b2abaeac35d6684c731f560 | 1 | 2 | 1061.678463 | -| terp1f8gq0mnzw5n3s4qkj8luhh6wu3kyqa6jvphjwp | 0x49d007ee62752718541691ffcbdf4ee46c407752 | 1 | 2 | 1061.678463 | -| terp1fs3v7gl6uqn3wjj6v3gsz6lwexhvv0qplhf5sy | 0x4c22cf23fae027174a5a6451016beec9aec63c01 | 1 | 2 | 1061.678463 | -| terp1ak24t64gjfqg3at0x36d3hjsu78t8ryl7ps9yq | 0xed9555eaa8924088f56f3474d8de50e78eb38c9f | 1 | 2 | 1061.678463 | -| terp1x7pnqtt7ptp9luas83848hxzr0ujzfelvsxt73 | 0x3783302d7e0ac25ff3b03c4f53dcc21bf921273f | 1 | 2 | 1061.678463 | -| terp15a2sj4d6e3cul4w28dm4y2v4gnuj6snxpv4t0x | 0xa7550955bacc71cfd5ca3b7752299544f92d4266 | 1 | 2 | 1061.678463 | -| terp1hw800ky44v66lk5cs32ghwksftf0tu84h77y8f | 0xbb8ef7d895ab35afda9884548bbad04ad2f5f0f5 | 1 | 2 | 1061.678463 | -| terp18felnxzu7eu4ry9ptjsch5pyqaua6cukp3m28x | 0x3a73f9985cf6795190a15ca18bd0240779dd6396 | 1 | 2 | 1061.678463 | -| terp1c5fd3w7wfht8d4kqu8ml2rr8autnvhyxv2tnpg | 0xc512d8bbce4dd676d6c0e1f7f50c67ef17365c86 | 1 | 2 | 1061.678463 | -| terp18r7vkkhv2aynfgl452v4rjgcvl5y7cc5rm53v5 | 0x38fccb5aec574934a3f5a29951c91867e84f6314 | 1 | 2 | 1061.678463 | -| terp1z39k4delmjadsf293r3fzdvtyhaxtquclvvk4y | 0x144b6ab73fdcbad8254588e291358b25fa658398 | 1 | 2 | 1061.678463 | -| terp1jt8d3ckvjj2gslucx6yqps5ex4zruelt4ejadt | 0x92ced8e2cc9494887f98368800c29935443e67eb | 1 | 2 | 1061.678463 | -| terp1f2qyvhks0crprpzmgea5fksu0zv0wtvxu26zy7 | 0x4a80465ed07e0611845b467b44da1c7898f72d86 | 1 | 2 | 1061.678463 | -| terp1w6fltdlpnkl2yuejuqrfy94snkf85dsfu5d2w7 | 0x7693f5b7e19dbea27332e0069216b09d927a3609 | 1 | 2 | 1061.678463 | -| terp14fc4qqcpvp0d50k8qf5vf8qscs43eugh26mcnr | 0xaa71500301605eda3ec70268c49c10c42b1cf117 | 1 | 2 | 1061.678463 | -| terp15zl5hd4jhasngtehydr4d52nqcee2ch6nsrm6j | 0xa0bf4bb6b2bf61342f37234756d15306339562fa | 1 | 2 | 1061.678463 | -| terp19qlkq444p9anyy0a0nas639gcur597zsw7a8td | 0x283f6056b5097b3211fd7cfb0d44a8c70742f850 | 1 | 2 | 1061.678463 | -| terp155n3hsjqc0h5d35h0xgr3dvd89pasuwfzgz0yz | 0xa5271bc240c3ef46c697799038b58d3943d871c9 | 1 | 2 | 1061.678463 | -| terp1sc3pntl26d6z3tlr6gnqc0nwfweac7xnu3rr3k | 0x862219afead37428afe3d2260c3e6e4bb3dc78d3 | 1 | 2 | 1061.678463 | -| terp14d4dx6p9jqelltk8jyvhz64m9fx2vajnh5fjx9 | 0xab6ad368259033ffaec79119716abb2a4ca67653 | 1 | 2 | 1061.678463 | -| terp1cxva2jl8pjvrw3ym3hk5fdkfvrw7nhlruv3ygp | 0xc199d54be70c9837449b8ded44b6c960dde9dfe3 | 1 | 2 | 1061.678463 | -| terp1wnp9lxcv3m8hz9tzrw9pmvzyclr8he57eahtn8 | 0x74c25f9b0c8ecf7115621b8a1db044c7c67be69e | 1 | 2 | 1061.678463 | -| terp1ppv5vamfcl4f7xhfkd4xwkqjv32ulcs9f9v39c | 0x0859467769c7ea9f1ae9b36a6758126455cfe205 | 1 | 2 | 1061.678463 | -| terp1g3lv83vhpncen5r0k6kswkvj4cw06nvgj6at2l | 0x447ec3c5970cf199d06fb6ad075992ae1cfd4d88 | 1 | 2 | 1061.678463 | -| terp1gske9qh5h2lcq5prd9cc3a2xznjx4tyfmeq3rg | 0x442d9282f4babf805023697188f54614e46aac89 | 1 | 2 | 1061.678463 | -| terp1wyw6v00ey3kg52ckmtqmx3q88uq329n843w753 | 0x711da63df9246c8a2b16dac1b344073f01151667 | 1 | 2 | 1061.678463 | -| terp1eu6axm0fxr2jp6ka54dvvdfeehaslym4r7078j | 0xcf35d36de930d520eadda55ac63539cdfb0f9375 | 1 | 2 | 1061.678463 | -| terp1lmpk4anwcyhjzksc9t6fwh0hr9z99ck3psut8p | 0xfec36af66ec12f215a182af4975df7194452e2d1 | 1 | 2 | 1061.678463 | -| terp1u8td5sw3xh07w9pgvvcw5u54frvlnnyt3502cs | 0xe1d6da41d135dfe714286330ea729548d9f9cc8b | 1 | 2 | 1061.678463 | -| terp1ptqgm4gras3xzmextuhpft2zcnfmg9skw3zhuk | 0x0ac08dd503ec22616f265f2e14ad42c4d3b41616 | 1 | 2 | 1061.678463 | -| terp17mcrx9jgsx832d40fucvdufteh4ww2vvjtadl2 | 0xf6f0331648818f1536af4f30c6f12bcdeae7298c | 1 | 2 | 1061.678463 | -| terp186sdquy8dzahykt2mcqpzuqn7q2kfvzd5f0nwm | 0x3ea0d0708768bb72596ade00117013f01564b04d | 1 | 2 | 1061.678463 | -| terp1ruywzcc2sn8zht8lv95ydsndqqlx3a7yge0vpq | 0x1f08e1630a84ce2bacff616846c26d003e68f7c4 | 1 | 2 | 1061.678463 | -| terp1at073am7tavvva33ccucuhsh4cet5tjj7lx3nd | 0xeadfe8f77e5f58c67631c6398e5e17ae32ba2e52 | 1 | 2 | 1061.678463 | -| terp1e8dmgcgytw8m4wj34wd0ln7gfvga44rpq4rkf5 | 0xc9dbb461045b8fbaba51ab9affcfc84b11dad461 | 1 | 2 | 1061.678463 | -| terp1vn4qlgcwlmgd2wgqln20kyxxc3ex9uxekaajl3 | 0x64ea0fa30efed0d53900fcd4fb10c6c47262f0d9 | 1 | 2 | 1061.678463 | -| terp1y6ndcfn7yahaa4a5qfgu3lqgkx6qmum85wnv64 | 0x26a6dc267e276fded7b40251c8fc08b1b40df367 | 1 | 2 | 1061.678463 | -| terp1k30esgwxs8g8fzhx7uj5nypyp7q8evnu890rl0 | 0xb45f9821c681d0748ae6f7254990240f807cb27c | 1 | 2 | 1061.678463 | -| terp1xwlhe35h5wfz05mkwx4jea9m74xmre0pzc7hku | 0x33bf7cc697a39227d37671ab2cf4bbf54db1e5e1 | 1 | 2 | 1061.678463 | -| terp1cu3trfmx8ku5qy0mc759358f57yntk47h0xwpu | 0xc722b1a7663db94011fbc7a858d0e9a78935dabe | 1 | 2 | 1061.678463 | -| terp1x7clc6m0nef3swy0kmt3sljncph0pekaj9urr9 | 0x37b1fc6b6f9e5318388fb6d7187e53c06ef0e6dd | 1 | 2 | 1061.678463 | -| terp17ehwm5ydw8c5crqj0luvy50nsa2rlzsv40eykj | 0xf66eedd08d71f14c0c127ff8c251f387543f8a0c | 1 | 2 | 1061.678463 | -| terp1fw2fywvzzv73tfc2y50e3ldwc7hpr596x7yjxz | 0x4b94923982133d15a70a251f98fdaec7ae11d0ba | 1 | 2 | 1061.678463 | -| terp1algy7nphdys6q4u482cm6qnxt7jpr26pfkj5gh | 0xefd04f4c376921a057953ab1bd02665fa411ab41 | 1 | 2 | 1061.678463 | -| terp1nrpxlep204xyy2xcztvtewshwmztftthppvafd | 0x98c26fe42a7d4c4228d812d8bcba1776c4b4ad77 | 1 | 2 | 1061.678463 | -| terp1mz3rxr478dhpgczyf8782rpkytmvs9emspe5ec | 0xd8a2330ebe3b6e14604449fc750c3622f6c8173b | 1 | 2 | 1061.678463 | -| terp14zm09mvasslg7q6fv9ht3v8lwrcw83cy43edvc | 0xa8b6f2ed9d843e8f0349616eb8b0ff70f0e3c704 | 1 | 2 | 1061.678463 | -| terp12pnzm0u7dhcg6sm89vslvvrj05uvcwzf2zyjyt | 0x50662dbf9e6df08d43672b21f630727d38cc3849 | 1 | 2 | 1061.678463 | -| terp1m7rhzvctpkx9qc93ewvc9qje8cc52ag88a8k8c | 0xdf8771330b0d8c5060b1cb998282593e31457507 | 1 | 2 | 1061.678463 | -| terp1uf5mvhpjcmjma9pzek3eq9fgtpk58a480qee8c | 0xe269b65c32c6e5be9422cda3901528586d43f6a7 | 1 | 2 | 1061.678463 | -| terp164r55nj4s0gr4l0qlln0z4u7e8kggqx4y8p9km | 0xd5474a4e5583d03afde0ffe6f1579ec9ec8400d5 | 1 | 2 | 1061.678463 | -| terp1ntdy7srk74da2maap8zu26r378xu2dkdc9vu9u | 0x9ada4f4076f55bd56fbd09c5c56871f1cdc536cd | 1 | 2 | 1061.678463 | -| terp1zh68ysehdmvlecxh236am64wpn3f5yytnwn2g5 | 0x15f47243376ed9fce0d75475ddeaae0ce29a108b | 1 | 2 | 1061.678463 | -| terp1dnzm4zlef6v8mykn9mhjxf3gfmm5mwsynyf8n4 | 0x6cc5ba8bf94e987d92d32eef2326284ef74dba04 | 1 | 2 | 1061.678463 | -| terp16azgl432mpcvptqkk6p36ds83u70w6832nkjt3 | 0xd7448fd62ad870c0ac16b6831d36078f3cf768f1 | 1 | 2 | 1061.678463 | -| terp1q3xjm6hldpfn8n57e0gnlkpnfvmf3v20dqh4hm | 0x044d2deaff685333ce9ecbd13fd8334b3698b14f | 1 | 2 | 1061.678463 | -| terp1t8fpk55vfvwd9ywdxdvz4j6qfpp89ntaetfcaz | 0x59d21b528c4b1cd291cd33582acb40484272cd7d | 1 | 2 | 1061.678463 | -| terp18wfxw9ujmg3x75pdarmeehf8nuxrve3kuy80nr | 0x3b92671792da226f502de8f79cdd279f0c366636 | 1 | 2 | 1061.678463 | -| terp18up5pxgcmzj5l6k08twqnfa03e32g9qqds4apu | 0x3f03409918d8a54feacf3adc09a7af8e62a41400 | 1 | 2 | 1061.678463 | -| terp18rmxz0ms0gwrkzugz2pzl2crcz56wwf2x7ny24 | 0x38f6613f707a1c3b0b8812822fab03c0a9a7392a | 1 | 2 | 1061.678463 | -| terp1y6v407v8hnll0mpcl0awhp5xepkgqh0063ys06 | 0x269957f987bcfff7ec38fbfaeb8686c86c805def | 1 | 2 | 1061.678463 | -| terp1magmvmxnpyzsnndcvke94pa8v2tq2wpuj8plde | 0xdf51b66cd3090509cdb865b25a87a7629605383c | 1 | 2 | 1061.678463 | -| terp1w8gd0d559xgt38k2036fu7t3eaet8wq0afsv6l | 0x71d0d7b6942990b89eca7c749e7971cf72b3b80f | 1 | 2 | 1061.678463 | -| terp1c2fct8ngrrpa85h28y58ekftlpl06tgje4dft5 | 0xc293859e6818c3d3d2ea39287cd92bf87efd2d12 | 1 | 2 | 1061.678463 | -| terp126chhxwk00jpx4ecsfnfa6wgtx6l77qh9tykep | 0x56b17b99d67be413573882669ee9c859b5ff7817 | 1 | 2 | 1061.678463 | -| terp1wagmatnrskmcaxkzwksz30dmwhnylttwf4r3ag | 0x7751beae6385b78e9ac275a028bdbb75e64fad6e | 1 | 2 | 1061.678463 | -| terp1us97xteh4vvkv53f9lgegh0dp052ss88r8t487 | 0xe40be32f37ab196652292fd1945ded0be8a840e7 | 1 | 2 | 1061.678463 | -| terp1p9dlytppdywzm05vlxs9l5ar2lftaywr83m6ay | 0x095bf22c21691c2dbe8cf9a05fd3a357d2be91c3 | 1 | 2 | 1061.678463 | -| terp189lm6838x5shtnzmdwh3wx3sjyfx3q3ukhf3ze | 0x397fbd1e27352175cc5b6baf171a30911268823c | 1 | 2 | 1061.678463 | -| terp1mpxfwaxa75d96870hcpzl8vnudhtfs3uncn6l0 | 0xd84c9774ddf51a5d1fcfbe022f9d93e36eb4c23c | 1 | 2 | 1061.678463 | -| terp14jupsyc2e8x5fpyy3py2pj370hdyhvn9n4wx5x | 0xacb818130ac9cd4484848848a0ca3e7dda4bb265 | 1 | 2 | 1061.678463 | -| terp1rsfe9yrac74vreyfhdcqzlyhs5v544wqhhvz3f | 0x1c1392907dc7aac1e489bb70017c9785194ad5c0 | 1 | 2 | 1061.678463 | -| terp1x7qnlux3jnxkpxq8my5krmzkk6twjg3pccz6gm | 0x37813ff0d194cd609807d92961ec56b696e92221 | 1 | 2 | 1061.678463 | -| terp1yt4sgrxnt0f5eggkm5rjc6n7tufpwctr4cflja | 0x22eb040cd35bd34ca116dd072c6a7e5f12176163 | 1 | 2 | 1061.678463 | -| terp194z5fwz2cc58qz0k770jns25jr4zsj7ydq8s40 | 0x2d4544b84ac6287009f6f79f29c15490ea284bc4 | 1 | 2 | 1061.678463 | -| terp1dym6we6z9jre4yxvk9m9cqmsgvdg0ac2fwztrg | 0x6937a767422c879a90ccb1765c0370431a87f70a | 1 | 2 | 1061.678463 | -| terp1wd4g2cw2c6spr56uly4pvda65f6zm5lqjzeuld | 0x736a8561cac6a011d35cf92a1637baa2742dd3e0 | 1 | 2 | 1061.678463 | -| terp1tla82dyqtsq9fxslwtnvfknhykxv4p2q4xmv48 | 0x5ffa7534805c00549a1f72e6c4da77258cca8540 | 1 | 2 | 1061.678463 | -| terp1y6ykdgfwp4k6qrq5k9yqfghqzqyzytsm2dkgn7 | 0x268966a12e0d6da00c14b14804a2e01008222e1b | 1 | 2 | 1061.678463 | -| terp1mlky8kve35zsm8lf09390naxxwnx5drr6atgy7 | 0xdfec43d9998d050d9fe9796257cfa633a66a3463 | 1 | 2 | 1061.678463 | -| terp1w8ft543q3avxqknaqqzq8ajzgux2sm7j2nvlvq | 0x71d2ba56208f58605a7d000403f642470ca86fd2 | 1 | 2 | 1061.678463 | -| terp1n26kg7hl7g4mq979ar7tpca0qtyjnw7zx6r2d9 | 0x9ab5647afff22bb017c5e8fcb0e3af02c929bbc2 | 1 | 2 | 1061.678463 | -| terp1xng30y695tlamd5uau6596adap4ej2madls5eh | 0x34d1179345a2ffddb69cef3542ebade86b992b7d | 1 | 2 | 1061.678463 | -| terp17tx94dc46lcvnza5jcrwlqnsuqqcpjvwexdl83 | 0xf2cc5ab715d7f0c98bb49606ef8270e00180c98e | 1 | 2 | 1061.678463 | -| terp18u542udcwqj5ah53r006uhppxvwk3ee3834lze | 0x3f295571b870254ede911bdfae5c21331d68e731 | 1 | 2 | 1061.678463 | -| terp1rk0nyq0lyrtp7xqwglf7uqt8pqqt9fmwt07wks | 0x1d9f3201ff20d61f180e47d3ee01670800b2a76e | 1 | 2 | 1061.678463 | -| terp1vg23dxvkndu8z6s98cgh9lh8gye0u8hfwyappu | 0x62151699969b78716a053e1172fee74132fe1ee9 | 1 | 2 | 1061.678463 | -| terp1h84q9l79lxev70r00xyxmu969zyvswq4l2rg36 | 0xb9ea02ffc5f9b2cf3c6f79886df0ba2888c83815 | 1 | 2 | 1061.678463 | -| terp146qmehyuq6047zpg660v6r6szhffkqsrn6pqdn | 0xae81bcdc9c069f5f0828d69ecd0f5015d29b0203 | 1 | 2 | 1061.678463 | -| terp14r546gehxrp0cnzjdwtp5hu8zfx47aafrmyvaw | 0xa8e95d233730c2fc4c526b961a5f87124d5f77a9 | 1 | 2 | 1061.678463 | -| terp10y2awjvn9ryr8mxlv8t3c7tx9l4unmn484r9rg | 0x7915d7499328c833ecdf61d71c79662febc9ee75 | 1 | 2 | 1061.678463 | -| terp14h5pg6wjqnuywsnezu27tk8jxec73307st2usd | 0xade81469d204f84742791715e5d8f23671e8c5fe | 1 | 2 | 1061.678463 | -| terp1zv0qmy92plvewq2hdrdxxymm8tw3vtphpedpcd | 0x131e0d90aa0fd997015768da63137b3add162c37 | 1 | 2 | 1061.678463 | -| terp1z9l7lzrfae8p8pvajmyca80rjmwr72mk2wqgys | 0x117fef8869ee4e13859d96c98e9de396dc3f2b76 | 1 | 2 | 1061.678463 | -| terp195kj7dcsccqtrah487azsu8nve8gn9rx2wnlj8 | 0x2d2d2f3710c600b1f6f53fba2870f3664e899466 | 1 | 2 | 1061.678463 | -| terp15m7p22339w7vjvk5n9t06jrnv3tmvx6z9cv4x7 | 0xa6fc152a312bbcc932d49956fd48736457b61b42 | 1 | 2 | 1061.678463 | -| terp1vlny5jhyc83y5d26vhmeuyad4j873mstd0xjws | 0x67e64a4ae4c1e24a355a65f79e13adac8fe8ee0b | 1 | 2 | 1061.678463 | -| terp1u8hfcdwfyywc55qve8fhwn3gkd8xu0g66amq9a | 0xe1ee9c35c9211d8a500cc9d3774e28b34e6e3d1a | 1 | 2 | 1061.678463 | -| terp1nnc9y7dhsp6svl8lgwcxmhj3uvte4nn0q9l8ft | 0x9cf05279b78075067cff43b06dde51e3179ace6f | 1 | 2 | 1061.678463 | -| terp1qh7et6n5pjrtzeapv7ej3d8x4njm58tdyyekjl | 0x05fd95ea740c86b167a167b328b4e6ace5ba1d6d | 1 | 2 | 1061.678463 | -| terp16xmyvx4va8gh6upvvn4nurcjz6swp3fujfkpuz | 0xd1b6461aace9d17d702c64eb3e0f1216a0e0c53c | 1 | 2 | 1061.678463 | -| terp1hkxfnvxkjuj6ns66qxn7e99yqgwhgy9vy4l86z | 0xbd8c99b0d69725a9c35a01a7ec94a4021d7410ac | 1 | 2 | 1061.678463 | -| terp1n7zgyqs53yzpf8dnshc4t8fmwredtkvlekg49p | 0x9f848202148904149db385f1559d3b70f2d5d99f | 1 | 2 | 1061.678463 | -| terp1anj9wu7q6z29345mf2uk00xx0he2wquavxyym2 | 0xece45773c0d09458d69b4ab967bcc67df2a7039d | 1 | 2 | 1061.678463 | -| terp1ctgrtmxypmanar5v47frmagtkn387wwhzdvj70 | 0xc2d035ecc40efb3e8e8caf923df50bb4e27f39d7 | 1 | 2 | 1061.678463 | -| terp1gtm903xpwu69ay8yralpptcz0chsxd827mntf9 | 0x42f657c4c177345e90e41f7e10af027e2f0334ea | 1 | 2 | 1061.678463 | -| terp1kfj825ptgj89u5klqy6k8kh68h9y6yw2e3ch95 | 0xb26475502b448e5e52df013563dafa3dca4d11ca | 1 | 2 | 1061.678463 | -| terp16f5zue3wqsvyhwjgujrhn59t4xxdh526m8w78n | 0xd2682e662e04184bba48e48779d0aba98cdbd15a | 1 | 2 | 1061.678463 | -| terp1gyyed5rxykpnf505zk2zpqcn9mqm9hejnvq6tl | 0x410996d066258334d1f415942083132ec1b2df32 | 1 | 2 | 1061.678463 | -| terp1qyk2hkku055d3gye5ut466xa89qj8xmgk38ela | 0x012cabdadc7d28d8a099a7175d68dd3941239b68 | 1 | 2 | 1061.678463 | -| terp1af0444deufae4eympranzlwjaa8tk4p4s9tryy | 0xea5f5ad5b9e27b9ae49b08fb317dd2ef4ebb5435 | 1 | 2 | 1061.678463 | -| terp1lltdkne4nf3h4e5xcdj276aadpfwq0fraduktq | 0xffd6db4f359a637ae686c364af6bbd6852e03d23 | 1 | 2 | 1061.678463 | -| terp14zufscmywguvhefke3ygvujywllq0hp6uj8en4 | 0xa8b89863647238cbe536cc4886724477fe07dc3a | 1 | 2 | 1061.678463 | -| terp1lpz4tmv5479zvmwlywh46t0unkj9kk5xv9g9qq | 0xf84555ed94af8a266ddf23af5d2dfc9da45b5a86 | 1 | 2 | 1061.678463 | -| terp10we6w90uw4sn0t6kl6kqmyfftvnukfg0hnjlrw | 0x7bb3a715fc756137af56feac0d91295b27cb250f | 1 | 2 | 1061.678463 | -| terp1ld220gpec0uqtjmmg7pm6dhv5wc5l0mm7hda23 | 0xfb54a7a039c3f805cb7b4783bd36eca3b14fbf7b | 1 | 2 | 1061.678463 | -| terp1yprd35qx4aak8uytav7ra9wnk6tu7ldlgzrr95 | 0x2046d8d006af7b63f08beb3c3e95d3b697cf7dbf | 1 | 2 | 1061.678463 | -| terp15hrtxv8qmd68f4s20gmemm5yrw2x5vymejwvhn | 0xa5c6b330e0db7474d60a7a379dee841b946a309b | 1 | 2 | 1061.678463 | -| terp1sqvedgkxgst8j7pnhf0um87qed5ndyvcjme5hv | 0x801996a2c64416797833ba5fcd9fc0cb69369198 | 1 | 2 | 1061.678463 | -| terp1grqfn7d2la0hcvvjhqtkvzcemvga23lzufl7l3 | 0x40c099f9aaff5f7c3192b817660b19db11d547e2 | 1 | 2 | 1061.678463 | -| terp1x6ke28rv0vpzaym940la3n9dlxuuhxtmmpl3uj | 0x36ad951c6c7b022e9365abffd8ccadf9b9cb997b | 1 | 2 | 1061.678463 | -| terp1gx4c0tn422c3mxfmwa8k9uudup70dt2qtn75mr | 0x41ab87ae7552b11d993b774f62f38de07cf6ad40 | 1 | 2 | 1061.678463 | -| terp1080dq7dk72yaezytpxc0uhf4lnl8vnztush886 | 0x79ded079b6f289dc888b09b0fe5d35fcfe764c4b | 1 | 2 | 1061.678463 | -| terp1r5yht0jkm0tsek8arghudywxhzuafwxzfelktm | 0x1d0975be56dbd70cd8fd1a2fc691c6b8b9d4b8c2 | 1 | 2 | 1061.678463 | -| terp148xugv4r6xs6tapmx5u4qwyhjzlxgz62vejfe2 | 0xa9cdc432a3d1a1a5f43b353950389790be640b4a | 1 | 2 | 1061.678463 | -| terp1r6akh9d8fu0j76lhra8cnpxu92pdhunqgdrdpk | 0x1ebb6b95a74f1f2f6bf71f4f8984dc2a82dbf260 | 1 | 2 | 1061.678463 | -| terp1ps24zxe7fxv9ar2c5qrz5s29vk9p8z6wetragr | 0x0c15511b3e49985e8d58a0062a4145658a138b4e | 1 | 2 | 1061.678463 | -| terp1wmf4jg3k56p9s8kvf4ffcsvy8kr4zwqy7h6swy | 0x76d3592236a682581ecc4d529c41843d87513804 | 1 | 2 | 1061.678463 | -| terp1dz32ehr2cgaxjr30pe3xu55xn605twg0yj76ua | 0x68a2acdc6ac23a690e2f0e626e52869e9f45b90f | 1 | 2 | 1061.678463 | -| terp1xqc3myzk8x7z5efngg46kau2z6c77pcaxxtu9c | 0x30311d905639bc2a6533422bab778a16b1ef071d | 1 | 2 | 1061.678463 | -| terp12ent3yhxpntket3r6hqdztllf5uu94l3jd7ryg | 0x5666b892e60cd76cae23d5c0d12fff4d39c2d7f1 | 1 | 2 | 1061.678463 | -| terp1mj4fpk0nkawd4qrkgvn0vk2ttrg9shfphjfgse | 0xdcaa90d9f3b75cda80764326f6594b58d0585d21 | 1 | 2 | 1061.678463 | -| terp1l7fe3frwtx9uvmegl95a24hftvsuk7rgtwk6sn | 0xff9398a46e598bc66f28f969d556e95b21cb7868 | 1 | 2 | 1061.678463 | -| terp1vncl5anachc9qscm68ga8eew5zkcvksxuzrkfc | 0x64f1fa767dc5f050431bd1d1d3e72ea0ad865a06 | 1 | 2 | 1061.678463 | -| terp1stqcpgw72tt4rv05scur9d0dq85lpqe7evvdny | 0x82c180a1de52d751b1f4863832b5ed01e9f0833e | 1 | 2 | 1061.678463 | -| terp1f3tf285eprjedmnth3auxt2xnmky8dzmqux48j | 0x4c56951e9908e596ee6bbc7bc32d469eec43b45b | 1 | 2 | 1061.678463 | -| terp1ujjmdqe90sxhkf5m3z338ld9lxq2muz24x83mu | 0xe4a5b683257c0d7b269b88a313fda5f980adf04a | 1 | 2 | 1061.678463 | -| terp1nmjfgg9duv5l7ugm6n29wcfh0ncjzhdn9rawdg | 0x9ee49420ade329ff711bd4d45761377cf1215db3 | 1 | 2 | 1061.678463 | -| terp18n5zq2pyl4t8x7y0ncq56tfhagvv9t79k58zpv | 0x3ce8202824fd5673788f9e014d2d37ea18c2afc5 | 1 | 2 | 1061.678463 | -| terp1ypjv2gn9ycrsgeqna0yywxzknwzekg6w76u5v0 | 0x2064c522652607046413ebc84718569b859b234e | 1 | 2 | 1061.678463 | -| terp1m4jq8ffecaq7xnytt0rhfgul2cqufzysl2d3pj | 0xdd6403a539c741e34c8b5bc774a39f5601c48890 | 1 | 2 | 1061.678463 | -| terp1saxh5lfrmm6e5n472u3wnfggnk802jz9txsnm0 | 0x874d7a7d23def59a4ebe5722e9a5089d8ef54845 | 1 | 2 | 1061.678463 | -| terp18kv8ycycat4cq40wqju8l6zkhve8s8utm5pkzy | 0x3d98726098eaeb8055ee04b87fe856bb32781f8b | 1 | 2 | 1061.678463 | -| terp1epqmvgku978mw2dzqgvtj407m0r6h7u7r72rhu | 0xc841b622dc2f8fb729a20218b955fedbc7abfb9e | 1 | 2 | 1061.678463 | -| terp1t69cncu80aujt439p47mxlnjk96gtmszj8wcyt | 0x5e8b89e3877f7925d6250d7db37e72b17485ee02 | 1 | 2 | 1061.678463 | -| terp1ujr76hkgpn9xazjy7mt08acjpzxl3t20vvy4eq | 0xe487ed5ec80cca6e8a44f6d6f3f712088df8ad4f | 1 | 2 | 1061.678463 | -| terp1984wj8w9tped2kdl0hng8ls4p0ur9fh975g9up | 0x29eae91dc55872d559bf7de683fe150bf832a6e5 | 1 | 2 | 1061.678463 | -| terp1q0cwwxkyxfm0eu9ny7c6h6xd7kt54mxp6eg4dt | 0x03f0e71ac43276fcf0b327b1abe8cdf5974aecc1 | 1 | 2 | 1061.678463 | -| terp1gfdtypg7pjc5wqdaqzl60ej65476y5klysuwej | 0x425ab2051e0cb14701bd00bfa7e65aa57da252df | 1 | 2 | 1061.678463 | -| terp1y45qlkylpd8qcj43s5f2yem7x5c4lpkz4fcq2a | 0x25680fd89f0b4e0c4ab18512a2677e35315f86c2 | 1 | 2 | 1061.678463 | -| terp1sdh8e0l8n2ykjc4a5497yljftglqk2sz9md20z | 0x836e7cbfe79a896962bda54be27e495a3e0b2a02 | 1 | 2 | 1061.678463 | -| terp1jq5yzl89wul459kjgvnw6yldvp6tkvncsqg47g | 0x9028417ce5773f5a16d24326ed13ed6074bb3278 | 1 | 2 | 1061.678463 | -| terp16de436e7x203ckjh4dngzc5eu75g4g3y5e7cj6 | 0xd37358eb3e329f1c5a57ab66816299e7a88aa224 | 1 | 2 | 1061.678463 | -| terp19yvvaknyzut066768n8kj8pm2n2vs7mwdcthrw | 0x2918ceda641716fd6bda3ccf691c3b54d4c87b6e | 1 | 2 | 1061.678463 | -| terp1tpq4ejy9w9c9yfmdh2j9vavy6u7k6wav55hp0z | 0x58415cc885717052276dbaa4567584d73d6d3bac | 1 | 2 | 1061.678463 | -| terp1cv2cezkl9llzdxffwgnzy9h5u7z8atc7gvvq4q | 0xc3158c8adf2ffe26992972262216f4e7847eaf1e | 1 | 2 | 1061.678463 | -| terp1j57rdwkl5flezejng3hmhmqvyp2z630kxavvaq | 0x953c36badfa27f916653446fbbec0c20542d45f6 | 1 | 2 | 1061.678463 | -| terp1kdqx3jt8nf5kggmdt8urmucar5nvled2mljfr9 | 0xb34068c9679a6964236d59f83df31d1d26cfe5aa | 1 | 2 | 1061.678463 | -| terp1t5hmf9aekejdtv7muvk03v890ew600cwc5rm6r | 0x5d2fb497b9b664d5b3dbe32cf8b0e57e5da7bf0e | 1 | 2 | 1061.678463 | -| terp1zz5xx85ca022rmhyd74u78sq4dc6xwc3phst58 | 0x10a8631e98ebd4a1eee46fabcf1e00ab71a33b11 | 1 | 2 | 1061.678463 | -| terp1jr9nkpupxg9p2eu8g9yydlga6zc8wkytcasf54 | 0x90cb3b0781320a156787414846fd1dd0b077588b | 1 | 2 | 1061.678463 | -| terp17zmxtkmllc5uq5rk4szjrglwvy9zssa7tch58w | 0xf0b665db7ffe29c05076ac0521a3ee610a2843be | 1 | 2 | 1061.678463 | -| terp1hvj2fzpnwf88l45nh2jj6as7er7xzg87hte567 | 0xbb24a48833724e7fd693baa52d761ec8fc6120fe | 1 | 2 | 1061.678463 | -| terp19frlaswnjhg9fa72ff09uegtu4r47the3zprxc | 0x2a47fec1d395d054f7ca4a5e5e650be5475f2ef9 | 1 | 2 | 1061.678463 | -| terp18kslc8juavcuncrryer74rruf7klxkm7ft87x0 | 0x3da1fc1e5ceb31c9e0632647ea8c7c4fadf35b7e | 1 | 2 | 1061.678463 | -| terp1qkenqx605qy0wf6dzft4cx6w9rerk77jwe432j | 0x05b3301b4fa008f7274d12575c1b4e28f23b7bd2 | 1 | 2 | 1061.678463 | -| terp142t4j6lpv64kww950m8xmvkcmptxdslk2v654v | 0xaa97596be166ab6738b47ece6db2d8d85666c3f6 | 1 | 2 | 1061.678463 | -| terp1kl7pgpes2td8s4q3cqsrqtjefpp865cze6wsem | 0xb7fc14073052da785411c020302e5948427d5302 | 1 | 2 | 1061.678463 | -| terp10zhpqkze23est079l4hsgygjku53aqttmr6n55 | 0x78ae105859547305bfc5fd6f041112b7291e816b | 1 | 2 | 1061.678463 | -| terp1udderjyuq785g5jws8eq37hctpr48rm0lv2hm8 | 0xe35b91c89c078f44524e81f208faf85847538f6f | 1 | 2 | 1061.678463 | -| terp108vfjducgnf45xslt4gaxxzamqslgnwpel8jwl | 0x79d899379844d35a1a1f5d51d3185dd821f44dc1 | 1 | 2 | 1061.678463 | -| terp14ytgn297f958lr7j45gekkkhf047kmcytp7y96 | 0xa91689a8be49687f8fd2ad119b5ad74bebeb6f04 | 1 | 2 | 1061.678463 | -| terp1d6q0pg80t7x6j3nmfn5067h7za47a9pez9qp6x | 0x6e80f0a0ef5f8da9467b4ce8fd7afe176bee9439 | 1 | 2 | 1061.678463 | -| terp1qttgypmz9kdac4tm3nqsrp3ygthtsuhx6pmk8a | 0x02d68207622d9bdc557b8cc101862442eeb872e6 | 1 | 2 | 1061.678463 | -| terp17dkpqygy6t4ypl5haczyyhjs540376mwt8v88h | 0xf36c101104d2ea40fe97ee04425e50a55f1f6b6e | 1 | 2 | 1061.678463 | -| terp1khc37z094x2r0cywc53aqh7r78nt7r6zagr2qs | 0xb5f11f09e5a99437e08ec523d05fc3f1e6bf0f42 | 1 | 2 | 1061.678463 | -| terp1rxy36hq6n8g5pgt5n6fw5sp6r9hgdvjep8lk39 | 0x19891d5c1a99d140a1749e92ea403a196e86b259 | 1 | 2 | 1061.678463 | -| terp1696prlp2seg9cc9ax5l7p7cwd3vnhuxxc36chy | 0xd17411fc2a86505c60bd353fe0fb0e6c593bf0c6 | 1 | 2 | 1061.678463 | -| terp1jqrh25xm353l8qjkxnp5j7kn5k2qzvfh7kvgep | 0x90077550db8d23f3825634c3497ad3a594013137 | 1 | 2 | 1061.678463 | -| terp1resms9af23tuufmpam4xxnyp32tmjp6s32v5hq | 0x1e61b817a95457ce2761eeea634c818a97b90750 | 1 | 2 | 1061.678463 | -| terp1tsrn2cl2tutuws2qs8yl76ccpqste3ut009xy5 | 0x5c073563ea5f17c7414081c9ff6b180820bcc78b | 1 | 2 | 1061.678463 | -| terp1wqa8e96k9vn2whclh9l7uylkqyt2putjpnsr53 | 0x703a7c97562b26a75f1fb97fee13f60116a0f172 | 1 | 2 | 1061.678463 | -| terp13vq5f3drsz7tg6e977ehqvr7q0w8zcyn6xn3kf | 0x8b0144c5a380bcb46b25f7b370307e03dc716093 | 1 | 2 | 1061.678463 | -| terp1fza5vdcsckjzauq7rld746rewk94jl6veh3v39 | 0x48bb463710c5a42ef01e1fdbeae879758b597f4c | 1 | 2 | 1061.678463 | -| terp1h8sj7kec6nex873zdrp87sas7vc3qx9fg8f3up | 0xb9e12f5b38d4f263fa2268c27f43b0f3311018a9 | 1 | 2 | 1061.678463 | -| terp1xtnehgfgus5zt3jzuuemc634g0pql037670w9l | 0x32e79ba128e42825c642e733bc6a3543c20fbe3e | 1 | 2 | 1061.678463 | -| terp1x5xme992mfynlfjqwwyk8aeth3lqv44p9kptym | 0x350dbc94aada493fa640738963f72bbc7e0656a1 | 1 | 2 | 1061.678463 | -| terp1x3rkf8t7tz4unv5tdppl2t3y4400ada7mrrqu7 | 0x3447649d7e58abc9b28b6843f52e24ad5efeb7be | 1 | 2 | 1061.678463 | -| terp10j9a2ma9sa7h3sd6wegy5s0yefe8684ylv497z | 0x7c8bd56fa5877d78c1ba76504a41e4ca727d1ea4 | 1 | 2 | 1061.678463 | -| terp1w0vg8z4c6wdfrkm9ge066qpj4xatm5764hs6uy | 0x73d8838ab8d39a91db65465fad0032a9babdd3da | 1 | 2 | 1061.678463 | -| terp1ptj9nwquf6f2auq78zr0uqr3gmhhm5kf3empzc | 0x0ae459b81c4e92aef01e3886fe007146ef7dd2c9 | 1 | 2 | 1061.678463 | -| terp1clpz7k5cqfd3z3wyzgvrl2qma4a5u0anjzv2st | 0xc7c22f5a98025b1145c412183fa81bed7b4e3fb3 | 1 | 2 | 1061.678463 | -| terp1cxcppf7pmlu3zveh9sgx4n97t9dqyuzrqaysa2 | 0xc1b010a7c1dff91133372c106accbe595a027043 | 1 | 2 | 1061.678463 | -| terp13mnfspkdzdrs8fs9gra482rqg8at24gt232rr6 | 0x8ee69806cd134703a60540fb53a86041fab5550b | 1 | 2 | 1061.678463 | -| terp1ll9n4yz2cu3zdlel7g9pk3w36yu5qncd8dfm7g | 0xffcb3a904ac72226ff3ff20a1b45d1d139404f0d | 1 | 2 | 1061.678463 | -| terp1tv98vw2g5jrvquzd3wkqf4kh7vcu2r6he7dfvu | 0x5b0a763948a486c0704d8bac04d6d7f331c50f57 | 1 | 2 | 1061.678463 | -| terp1q5mfphdd2y2txzdwtj8wv3jat4znztcgqs9ks7 | 0x053690ddad5114b309ae5c8ee6465d5d45312f08 | 1 | 2 | 1061.678463 | -| terp1hjw9sk0wdxztpepycr8rxm73gmxrf4zehsfjf2 | 0xbc9c5859ee6984b0e424c0ce336fd146cc34d459 | 1 | 2 | 1061.678463 | -| terp18wauc2z3k5exyms8x3504g67mt4tcy7nka5e53 | 0x3bbbcc2851b532626e073468faa35edaeabc13d3 | 1 | 2 | 1061.678463 | -| terp1esd337xavqtttpyg472n6uae2yfa32gh9hfdn3 | 0xcc1b18f8dd6016b58488af953d73b95113d8a917 | 1 | 2 | 1061.678463 | -| terp12fe3482u5w6ed32rn4q89yc49v6xc88z8nr7s6 | 0x52731a9d5ca3b596c5439d407293152b346c1ce2 | 1 | 2 | 1061.678463 | -| terp14m7tetgf62v7w2f0sy9r3n9sv76xuvhdttxxxr | 0xaefcbcad09d299e7292f810a38ccb067b46e32ed | 1 | 2 | 1061.678463 | -| terp1206seda59wwx8c7vpv0fdff5vxrle4yrvljw3p | 0x53f50cb7b42b9c63e3cc0b1e96a5346187fcd483 | 1 | 2 | 1061.678463 | -| terp1y8nzvx3qrjmhc205gfuaj7nq02tzw5znwkk3kh | 0x21e6261a201cb77c29f44279d97a607a96275053 | 1 | 2 | 1061.678463 | -| terp1r5g4r52t5hgj0tdd9ey99ml83yjhf0yl9rqzqm | 0x1d1151d14ba5d127adad2e4852efe7892574bc9f | 1 | 2 | 1061.678463 | -| terp18jcgfygsgsw034r56gfusjsw0fn7p9jdjzqkke | 0x3cb0849110441cf8d474d213c84a0e7a67e0964d | 1 | 2 | 1061.678463 | -| terp1ea3fym2fn7ew2j0l4vem45dkcdk892tg3ny5ph | 0xcf62926d499fb2e549ffab33bad1b6c36c72a968 | 1 | 2 | 1061.678463 | -| terp1c5y8j57cx950f5xj27axsmm794u5tshk023sua | 0xc5087953d83168f4d0d257ba686f7e2d7945c2f6 | 1 | 2 | 1061.678463 | -| terp1lpfnypkqyg9pvzagj5hjyp3rn5gtwr05dlwawl | 0xf8533206c0220a160ba8952f2206239d10b70df4 | 1 | 2 | 1061.678463 | -| terp1me3dcy7a45j4pmnny66th7s948g9njzamjnc79 | 0xde62dc13ddad2550ee7326b4bbfa05a9d059c85d | 1 | 2 | 1061.678463 | -| terp1gq6wvh5w6e0s66pn9jn5usmlxxvr7he9p2094r | 0x4034e65e8ed65f0d68332ca74e437f31983f5f25 | 1 | 2 | 1061.678463 | -| terp1mv6srgp3y82nme2dwump5hnj2ldj7t08hrkk9t | 0xdb3501a03121d53de54d77361a5e7257db2f2de7 | 1 | 2 | 1061.678463 | -| terp1t67fnlqpk9259nk3mmed8n9kx2gtm5fe3pt8mh | 0x5ebc99fc01b15542ced1def2d3ccb63290bdd139 | 1 | 2 | 1061.678463 | -| terp17l43sgu57skamf45awfgwvfcwf5kd25uxc2adr | 0xf7eb182394f42ddda6b4eb92873138726966aa9c | 1 | 2 | 1061.678463 | -| terp1g2zdg7vxn37zl0eu2naq4qz5wd6p7dtshvy5ur | 0x4284d479869c7c2fbf3c54fa0a805473741f3570 | 1 | 2 | 1061.678463 | -| terp1uswmmf6alp92fgfq5ajdyzsfs049394eckq4xc | 0xe41dbda75df84aa4a120a764d20a0983ea5896b9 | 1 | 2 | 1061.678463 | -| terp1l3stzxehpy5rdrnzgtarh95edv8qggndn3eqa9 | 0xfc60b11b370928368e6242fa3b96996b0e04226d | 1 | 2 | 1061.678463 | -| terp12ag5dkfs06d62l97cmh9fkh3jxxf0jkfvc2quy | 0x575146d9307e9ba57cbec6ee54daf1918c97cac9 | 1 | 2 | 1061.678463 | -| terp19t36kdxe7u2c6hfyzenm7r5gjnrd3txpyxhct6 | 0x2ae3ab34d9f7158d5d241667bf0e8894c6d8acc1 | 1 | 2 | 1061.678463 | -| terp17cnqvx5dqe2g3mts0xyepxvugnep8ujvdswt0j | 0xf626061a8d065488ed70798990999c44f213f24c | 1 | 2 | 1061.678463 | -| terp1m97x3qn339lx2khrm3d2s3fu5njftqs4y9v5sl | 0xd97c688271897e655ae3dc5aa8453ca4e4958215 | 1 | 2 | 1061.678463 | -| terp1jcu7yz4aq533knte3fp0waf9ttv0vy66w2huk3 | 0x9639e20abd05231b4d798a42f775255ad8f6135a | 1 | 2 | 1061.678463 | -| terp1xsq75k5dj8z789zfvtqpfzcg43980u2nwj2dt0 | 0x3401ea5a8d91c5e3944962c0148b08ac4a77f153 | 1 | 2 | 1061.678463 | -| terp1t34ax88y7jwdtwctw2xp2maldm3gmzqsywg3n3 | 0x5c6bd31ce4f49cd5bb0b728c156fbf6ee28d8810 | 1 | 2 | 1061.678463 | -| terp1kt5m9p96vg5mzcxgrtad5jth97rxjwwm8yefnr | 0xb2e9b284ba6229b160c81afada49772f866939db | 1 | 2 | 1061.678463 | -| terp1en06t56scx59frmladruvc02vdlk9akaf8krcf | 0xccdfa5d350c1a8548f7feb47c661ea637f62f6dd | 1 | 2 | 1061.678463 | -| terp1huc9cetj2p2xmlzuvj6vrs6khgfxvjzzrq75j5 | 0xbf305c657250546dfc5c64b4c1c356ba12664842 | 1 | 2 | 1061.678463 | -| terp1mkzkpwmf99v7rx4sr33qgncwam93qgyuwg2lqk | 0xdd8560bb692959e19ab01c62044f0eeecb10209c | 1 | 2 | 1061.678463 | -| terp1nm5yaul00kyzlrwdtp68sg4l02ja7ws53n75m0 | 0x9ee84ef3ef7d882f8dcd58747822bf7aa5df3a14 | 1 | 2 | 1061.678463 | -| terp1d53tynvdh3ggha3rdlsuul27gm3v9797e6h40q | 0x6d22b24d8dbc508bf6236fe1ce7d5e46e2c2f8be | 1 | 2 | 1061.678463 | -| terp1m72xp6cehqy5eu7zlu9ycghpfj4vphvmy4vmd0 | 0xdf9460eb19b8094cf3c2ff0a4c22e14caac0dd9b | 1 | 2 | 1061.678463 | -| terp1gapsm6txnd7nq0lrck40kwnn2a6n68pz2kdvpy | 0x47430de9669b7d303fe3c5aafb3a7357753d1c22 | 1 | 2 | 1061.678463 | -| terp12qlhlvg470682uuxp3v9ntq9k2qmj65e9alxwj | 0x503f7fb115f3f47573860c5859ac05b281b96a99 | 1 | 2 | 1061.678463 | -| terp10ntmv49tcp0kp720etk0q3n69e8w6t7wmy93kt | 0x7cd7b654abc05f60f94fcaecf0467a2e4eed2fce | 1 | 2 | 1061.678463 | -| terp1fhldefh65w05vrwzd3h8qrpnmmsj66mmsy9lgk | 0x4dfedca6faa39f460dc26c6e700c33dee12d6b7b | 1 | 2 | 1061.678463 | -| terp19cgdelhumghhy6hh50gfrm8s58tzjvvgvkk2tl | 0x2e10dcfefcda2f726af7a3d091ecf0a1d6293188 | 1 | 2 | 1061.678463 | -| terp1pjfwpy5x8rpxuep3key7kg9259tt9ctt8qz7ng | 0x0c92e0928638c26e6431b649eb20aaa156b2e16b | 1 | 2 | 1061.678463 | -| terp19uea0hdpn2sxzpdys6lj00qupysq3hkx9zq3xd | 0x2f33d7dda19aa06105a486bf27bc1c092008dec6 | 1 | 2 | 1061.678463 | -| terp184jayxq3qkucyx4cn0zc2tgh8dpy0288falnlx | 0x3d65d2181105b9821ab89bc5852d173b4247a8e7 | 1 | 2 | 1061.678463 | -| terp10gs8hsv5s6zt4zhdqnc27qvtz9tymgxph9hrn8 | 0x7a207bc1948684ba8aed04f0af018b11564da0c1 | 1 | 2 | 1061.678463 | -| terp15uz2r3f7anrwdzczsrd2l9h3h55wv8at2g96tz | 0xa704a1c53eecc6e68b0280daaf96f1bd28e61fab | 1 | 2 | 1061.678463 | -| terp1rvhkx79et6aw5qwut6lq2r4h2auc30dtmx6mla | 0x1b2f6378b95ebaea01dc5ebe050eb7577988bdab | 1 | 2 | 1061.678463 | -| terp1850s057xqf5wmnh2p9837aeje28cdeudjr6tr9 | 0x3d1f07d3c60268edceea094f1f7732ca8f86e78d | 1 | 2 | 1061.678463 | -| terp1v9h8svpkds4xljjccy7lmjljf2th9pp0fd4luv | 0x616e7830366c2a6fca58c13dfdcbf24a9772842f | 1 | 2 | 1061.678463 | -| terp1r070mc947zgkh3kcya8gstqdegauxz2eakym5m | 0x1bfcfde0b5f0916bc6d8274e882c0dca3bc30959 | 1 | 2 | 1061.678463 | -| terp1w49y4238mfzqtvscgdnfzl3zq2a5f65g9vmc08 | 0x754a4aaa27da4405b2184366917e2202bb44ea88 | 1 | 2 | 1061.678463 | -| terp1ukgxm9c3n29fsr2wz6nwtp42f88f6huw39z82p | 0xe5906d97119a8a980d4e16a6e586aa49ce9d5f8e | 1 | 2 | 1061.678463 | -| terp1srrkhyaszp2smuyjsf53x0yx7kdcqyn897f34p | 0x80c76b93b010550df0928269133c86f59b801267 | 1 | 2 | 1061.678463 | -| terp1pvetdfm4en6hla6s0znsyfy6vhy2tq07qw2jjj | 0x0b32b6a775ccf57ff75078a702249a65c8a581fe | 1 | 2 | 1061.678463 | -| terp1k5yn6dv87z56yu4yuq4632vysqm4z6j3mj39pz | 0xb5093d3587f0a9a272a4e02ba8a9848037516a51 | 1 | 2 | 1061.678463 | -| terp10cqyznv6l2vur5hdt73e98hmcqghwnmxxgu0v6 | 0x7e00414d9afa99c1d2ed5fa3929efbc011774f66 | 1 | 2 | 1061.678463 | -| terp100hl9p85s0umeca30wfkswuuxhdnu5y3g7ezsw | 0x7beff284f483f9bce3b17b93683b9c35db3e5091 | 1 | 2 | 1061.678463 | -| terp1msvs6l82369lpvupv9cxygqvzr8l7z53tv7ry4 | 0xdc190d7cea8e8bf0b381617062200c10cfff0a91 | 1 | 2 | 1061.678463 | -| terp1fsrxm3zjqr23pceej90xn9c5rf9tqepnh3j09r | 0x4c066dc45200d510e339915e6997141a4ab06433 | 1 | 2 | 1061.678463 | -| terp12lyn46psf25ljf50jl2mmuedt2wl842edwhwdz | 0x57c93ae8304aa9f9268f97d5bdf32d5a9df3d559 | 1 | 2 | 1061.678463 | -| terp1p683x92jex5kmwqgjkhx0d3vg0llsf26xren8d | 0x0e8f131552c9a96db80895ae67b62c43fff8255a | 1 | 2 | 1061.678463 | -| terp1uuy79qtrtqt3usg24avfl37lsjnah4jzekpymx | 0xe709e2816358171e410aaf589fc7df84a7dbd642 | 1 | 2 | 1061.678463 | -| terp1f89ncudk6266zs4ksmzmz6fn84jpt7jhrpryn2 | 0x49cb3c71b6d2b5a142b686c5b169333d6415fa57 | 1 | 2 | 1061.678463 | -| terp1aw3s0rkq5eanxf8s8carqmnaksa94j2p5dsq8y | 0xeba3078ec0a67b3324f03e3a306e7db43a5ac941 | 1 | 2 | 1061.678463 | -| terp1e9er3gc29fpxh06s7mzkr0mw89gey6mf92sjjh | 0xc97238a30a2a426bbf50f6c561bf6e3951926b69 | 1 | 2 | 1061.678463 | -| terp1crhwus4rx677a775qu7p7tmyu56qxshx95dtqk | 0xc0eeee42a336bdeefbd4073c1f2f64e5340342e6 | 1 | 2 | 1061.678463 | -| terp1ueqlcg3vtufjlzyrn26zhg4et9qttmfemq9ux8 | 0xe641fc222c5f132f88839ab42ba2b95940b5ed39 | 1 | 2 | 1061.678463 | -| terp1zqtjv7rc0kzzv94vg6hwzu8et4an0szputyhnu | 0x10172678787d842616ac46aee170f95d7b37c041 | 1 | 2 | 1061.678463 | -| terp16kg3tn6f4nr3lqfnp0gq0sx9y232e7whk87fcz | 0xd59115cf49acc71f81330bd007c0c522a2acf9d7 | 1 | 2 | 1061.678463 | -| terp1a9y38eqrepdk3slsrkn56tg824r4vl2f6v3a5w | 0xe94913e403c85b68c3f01da74d2d075547567d49 | 1 | 2 | 1061.678463 | -| terp1mj0cqkmaenfjt74j86ul6hwxq4jqut6aemjjsx | 0xdc9f805b7dccd325fab23eb9fd5dc605640e2f5d | 1 | 2 | 1061.678463 | -| terp1gmn73h6g3p666vxrrhr7m2c492yjracm30fsat | 0x46e7e8df488875ad30c31dc7edab152a8921f71b | 1 | 2 | 1061.678463 | -| terp14j2w2d9shja79q0fqvwj42htvghfcecllftwll | 0xac94e534b0bcbbe281e9031d2aaaeb622e9c671f | 1 | 2 | 1061.678463 | -| terp1mrh3w4rkjn6ckdamaxc8s7ush6yp6pp02tqdq2 | 0xd8ef17547694f58b37bbe9b0787b90be881d042f | 1 | 2 | 1061.678463 | -| terp1zmlxmnlvzs99rnr3f8nndducuplmps5edkwtw2 | 0x16fe6dcfec140a51cc7149e736b798e07fb0c299 | 1 | 2 | 1061.678463 | -| terp170gvkxeakca9lx9qajc96rvlycc93d7tnvh8jv | 0xf3d0cb1b3db63a5f98a0ecb05d0d9f263058b7cb | 1 | 2 | 1061.678463 | -| terp1vzf4q97ms4a962cc4v58r5ya72l7hrdjppgttk | 0x60935017db857a5d2b18ab2871d09df2bfeb8db2 | 1 | 2 | 1061.678463 | -| terp130mwl0mxmzquywjcg9qwwrzut4pgckx3gd7c5r | 0x8bf6efbf66d881c23a584140e70c5c5d428c58d1 | 1 | 2 | 1061.678463 | -| terp1prl5fkjvzvv63x4r62459wmgvnq4gyrtdkqe9j | 0x08ff44da4c1319a89aa3d2ab42bb6864c154106b | 1 | 2 | 1061.678463 | -| terp137h693aasrnst0935tw06fll5mp9pq5eq3cn64 | 0x8fafa2c7bd80e705bcb1a2dcfd27ffa6c2508299 | 1 | 2 | 1061.678463 | -| terp15ckmm7svmed30tqufla3ruus5apcjq93f6y9c9 | 0xa62dbdfa0cde5b17ac1c4ffb11f390a7438900b1 | 1 | 2 | 1061.678463 | -| terp14c47ruvghrlvrp6w243yvyypudd5fuuj3v7768 | 0xae2be1f188b8fec1874e5562461081e35b44f392 | 1 | 2 | 1061.678463 | -| terp1kcmakf4l4y3ardntp0gc6cy2rhq39065m03myk | 0xb637db26bfa923d1b66b0bd18d608a1dc112bf54 | 1 | 2 | 1061.678463 | -| terp1kde7nu7tcnl5yy905zx9exs3xt50ufl6dn75wu | 0xb373e9f3cbc4ff4210afa08c5c9a1132e8fe27fa | 1 | 2 | 1061.678463 | -| terp1yhm35hsm9wcpvfxrjr4jmxdjndcl356eh3rphj | 0x25f71a5e1b2bb01624c390eb2d99b29b71f8d359 | 1 | 2 | 1061.678463 | -| terp1ralumd7q547v83yahdgry0gjmk6p9pkqfnakr5 | 0x1f7fcdb7c0a57cc3c49dbb50323d12ddb41286c0 | 1 | 2 | 1061.678463 | -| terp18lyg3pe3x8t26afznhe8cytny59sjzg0kzntrl | 0x3fc888873131d6ad75229df27c1173250b09090f | 1 | 2 | 1061.678463 | -| terp1zsju3r8q0q89hnjlgpfn8jqljvmdc5h2k7g7z9 | 0x1425c88ce0780e5bce5f405333c81f9336dc52ea | 1 | 2 | 1061.678463 | -| terp1uugt9hw5u9hux4d7p70uhy3r7ygdw7xz8uhnpz | 0xe710b2ddd4e16fc355be0f9fcb9223f110d778c2 | 1 | 2 | 1061.678463 | -| terp10y8m4r7t7228dalj5p85jk78sefs7hza5he5zw | 0x790fba8fcbf29476f7f2a04f495bc786530f5c5d | 1 | 2 | 1061.678463 | -| terp1njeew02cgfa7z8g7jlxgep39gjlt0axz9m44e6 | 0x9cb3973d58427be11d1e97cc8c862544beb7f4c2 | 1 | 2 | 1061.678463 | -| terp1awcckwmgja0rz3gsex4l3aymq0fdp00a4kcmhf | 0xebb18b3b68975e314510c9abf8f49b03d2d0bdfd | 1 | 2 | 1061.678463 | -| terp16x8pmzfl33cnfnvj9rvnvvff9z5mdzk5yl5j66 | 0xd18e1d893f8c7134cd9228d936312928a9b68ad4 | 1 | 2 | 1061.678463 | -| terp1psmd7w5dxxjatxqv0rghtxucr408vels9497jc | 0x0c36df3a8d31a5d5980c78d1759b981d5e7667f0 | 1 | 2 | 1061.678463 | -| terp1emwz7w5d0xkrerdlxkpeqtksw8xy7qfr4fd0mj | 0xcedc2f3a8d79ac3c8dbf3583902ed071cc4f0123 | 1 | 2 | 1061.678463 | -| terp198natj5tsq7la9k2lggrtnmqfx3sfkwcx96jkx | 0x29e7d5ca8b803dfe96cafa1035cf6049a304d9d8 | 1 | 2 | 1061.678463 | -| terp1dwrjaxhr6w8jckmexgpkdmrpw0fjwgfmzzyxye | 0x6b872e9ae3d38f2c5b79320366ec6173d327213b | 1 | 2 | 1061.678463 | -| terp18wuk5a5e05sqpxse9wx4whewyrldy806ufh5hc | 0x3bb96a76997d20009a192b8d575f2e20fed21dfa | 1 | 2 | 1061.678463 | -| terp1xq04qjpw4sgyspp7qcjm0n6n0qu427nhk2gs8v | 0x301f50482eac1048043e0625b7cf537839557a77 | 1 | 2 | 1061.678463 | -| terp14hg9ppj2qx6zhj680rqrtqxwyx7u7h2ytevstv | 0xadd050864a01b42bcb4778c03580ce21bdcf5d44 | 1 | 2 | 1061.678463 | -| terp19wejf0kxrpxrq580f04r37t09e6t6aw2qjqet8 | 0x2bb324bec6184c3050ef4bea38f96f2e74bd75ca | 1 | 2 | 1061.678463 | -| terp1g8apxvg82k92u3rst2tj8ldxss7kp27lmqf9ek | 0x41fa133107558aae44705a9723fda6843d60abdf | 1 | 2 | 1061.678463 | -| terp1ug8g94yx7ukq5yaas5xqd5emszt462htv5zxfs | 0xe20e82d486f72c0a13bd850c06d33b80975d2aeb | 1 | 2 | 1061.678463 | -| terp1weaw2795r03n4xktaa08phatl3x6e6j73j7t5a | 0x767ae578b41be33a9acbef5e70dfabfc4dacea5e | 1 | 2 | 1061.678463 | -| terp1kxkl3tcema4w2tzpx45cm2zc0vrhl07mfjzsl2 | 0xb1adf8af19df6ae52c4135698da8587b077fbfdb | 1 | 2 | 1061.678463 | -| terp1x9ngcjc8m8g54ypayz3fh9k8lkp8f2v6dkr98e | 0x31668c4b07d9d14a903d20a29b96c7fd8274a99a | 1 | 2 | 1061.678463 | -| terp1rejtyn9ry5lrr4p3qhwt2dl2dcyf6436appmrt | 0x1e64b24ca3253e31d43105dcb537ea6e089d563a | 1 | 2 | 1061.678463 | -| terp17qy4wns7qz9lcvm3qpugmqe3a0nrh9q3ywgpj2 | 0xf009574e1e008bfc337100788d8331ebe63b9411 | 1 | 2 | 1061.678463 | -| terp1lef9s96q6zaamgs3u5mh3magv39z72z94mnx0r | 0xfe52581740d0bbdda211e53778efa8644a2f2845 | 1 | 2 | 1061.678463 | -| terp1fsfxgukvtd63uyxnzhj2tyxgsnz66lsqcllk7q | 0x4c126472cc5b751e10d315e4a590c884c5ad7e00 | 1 | 2 | 1061.678463 | -| terp14lwe8czs69ln8v5h0l3elaw2lmakaeu9cc9lun | 0xafdd93e050d17f33b2977fe39ff5cafefb6ee785 | 1 | 2 | 1061.678463 | -| terp1x2h3ctza08r9rz4mja73hce4f39ph254pjsv95 | 0x32af1c2c5d79c6518abb977d1be3354c4a1baa95 | 1 | 2 | 1061.678463 | -| terp145nzwvmme4jts8u8s9cl4rwx4mk6taheehgpcx | 0xad2627337bcd64b81f878171fa8dc6aeeda5f6f9 | 1 | 2 | 1061.678463 | -| terp1lj0ghyud4cqm96k6gdmuklfpuxz0uc2ucdw3lt | 0xfc9e8b938dae01b2eada4377cb7d21e184fe615c | 1 | 2 | 1061.678463 | -| terp1sum9yfrjs8knsweu822c67chtdu8l0dr43vqq9 | 0x873652247281ed383b3c3a958d7b175b787fbda3 | 1 | 2 | 1061.678463 | -| terp1e4egk9ven3emtxns24dxfk5ragm292p0uas3t9 | 0xcd728b15999c73b59a70555a64da83ea36a2a82f | 1 | 2 | 1061.678463 | -| terp16lwnezzmgece8lz9gpj28xud3ugyhyptfhwadg | 0xd7dd3c885b467193fc454064a39b8d8f104b902b | 1 | 2 | 1061.678463 | -| terp15zst5q2r4qkj3875mdg87php30sw3a4ll3xecd | 0xa0a0ba0143a82d289fd4db507f06e18be0e8f6bf | 1 | 2 | 1061.678463 | -| terp1wh9ec5yuf9dwwes8w2s8ku62tvgj2gyue5fzpc | 0x75cb9c509c495ae7660772a07b734a5b1125209c | 1 | 2 | 1061.678463 | -| terp1z0jg406zfqj3jd9869xg2lyfaxtzgwz3njkmt8 | 0x13e48abf4248251934a7d14c857c89e996243851 | 1 | 2 | 1061.678463 | -| terp1wrezm6r263tdc2ehjuvldam0c374t9rlztxfxk | 0x70f22de86ad456dc2b379719f6f76fc47d55947f | 1 | 2 | 1061.678463 | -| terp1cfvf3r9ldhyvmhlyd7mjtve5fw8sqe0cuk9xn4 | 0xc258988cbf6dc8cddfe46fb725b3344b8f0065f8 | 1 | 2 | 1061.678463 | -| terp1te344ehdpvn0953wxs4u654hatwy8t8v74jf0j | 0x5e635ae6ed0b26f2d22e342bcd52b7eadc43acec | 1 | 2 | 1061.678463 | -| terp1cr3a2g7xrztzlr7jap2mg0re3erfl8eqtv9wf2 | 0xc0e3d523c618962f8fd2e855b43c798e469f9f20 | 1 | 2 | 1061.678463 | -| terp1wv44d226rcc873s984f70np7csxx4ru0u99eg7 | 0x732b56a95a1e307f46053d53e7cc3ec40c6a8f8f | 1 | 2 | 1061.678463 | -| terp1qu0tm4alultf75dtlfrmr7gu3392el9wu9dnjz | 0x071ebdd7bfe7d69f51abfa47b1f91c8c4aacfcae | 1 | 2 | 1061.678463 | -| terp15780p28l2eawccquwu9z72dwcmtrkfxtqaznnh | 0xa78ef0a8ff567aec601c770a2f29aec6d63b24cb | 1 | 2 | 1061.678463 | -| terp1lajf9zsl9wffqyypu6nrtjpuc600ftpffzt3zq | 0xff64928a1f2b92901081e6a635c83cc69ef4ac29 | 1 | 2 | 1061.678463 | -| terp1ch8ulft0553r6elch6nqc2867ecnca8wpmj3w4 | 0xc5cfcfa56fa5223d67f8bea60c28faf6713c74ee | 1 | 2 | 1061.678463 | -| terp1m8xldkplfk5ef70ruasclxu9c04hx40u8tk56h | 0xd9cdf6d83f4da994f9e3e7618f9b85c3eb7355fc | 1 | 2 | 1061.678463 | -| terp13qehynxl9dceyu33vnzd7w3jxj0dfyvzqgsnnw | 0x8833724cdf2b7192723164c4df3a32349ed49182 | 1 | 2 | 1061.678463 | -| terp17c3gkdc76k0q84teuj6hph2u3f7j2vnvz3n77r | 0xf6228b371ed59e03d579e4b570dd5c8a7d25326c | 1 | 2 | 1061.678463 | -| terp1shzy3tc2nm9dpstnd0f0wagmf2rmujdr05r9z5 | 0x85c448af0a9ecad0c1736bd2f7751b4a87be49a3 | 1 | 2 | 1061.678463 | -| terp1sqnjp7vquhum6u6c459anj4zwtgpw0sq743uxf | 0x802720f980e5f9bd7358ad0bd9caa272d0173e00 | 1 | 2 | 1061.678463 | -| terp100g7pv8frs0jtsm36s62r6pwkmqcl7ygsnp9fa | 0x7bd1e0b0e91c1f25c371d434a1e82eb6c18ff888 | 1 | 2 | 1061.678463 | -| terp158lscmgwtx2llpvezfppkh0cjyz2xt6mpj6hcp | 0xa1ff0c6d0e5995ff859912421b5df89104a32f5b | 1 | 2 | 1061.678463 | -| terp1f5lnxr9r7966usf4an09x68f904pccz9zakart | 0x4d3f330ca3f175ae4135ecde5368e92bea1c6045 | 1 | 2 | 1061.678463 | -| terp18ejf9w2w8h039qvfunf6weaccfpg48n5tct0ue | 0x3e6492b94e3ddf128189e4d3a767b8c2428a9e74 | 1 | 2 | 1061.678463 | -| terp13s0mp5g46p826uen07qc3tzkfcqnypnlsjftwu | 0x8c1fb0d115d04ead73337f8188ac564e0132067f | 1 | 2 | 1061.678463 | -| terp12pcug9xxjswz7dvtvq6j0mp9cg0ulnnrj4hhg0 | 0x5071c414c6941c2f358b603527ec25c21fcfce63 | 1 | 2 | 1061.678463 | -| terp135mx8qsmj8kfnzfrvcpjl326hlgcyencn3hahu | 0x8d3663821b91ec99892366032fc55abfd1826678 | 1 | 2 | 1061.678463 | -| terp1srmdwyut53utj5qugjvg2qlj85mletrdredz60 | 0x80f6d7138ba478b9501c44988503f23d37fcac6d | 1 | 2 | 1061.678463 | -| terp1zk6yanrs2dat3z8w558glmnrqc00276sxlth5k | 0x15b44ecc70537ab888eea50e8fee63061ef57b50 | 1 | 2 | 1061.678463 | -| terp1haqphq0z6qdlhqxn9fahrlq8zhtdwm2989en9q | 0xbf401b81e2d01bfb80d32a7b71fc0715d6d76d45 | 1 | 2 | 1061.678463 | -| terp1np2dynx7adsmf96x6770qjtpaup6qckn3v8sdj | 0x9854d24cdeeb61b49746d7bcf04961ef03a062d3 | 1 | 2 | 1061.678463 | -| terp10qtjm6ajeyxtgxru604w9xsul8fgvjcrxczvp5 | 0x78172debb2c90cb4187cd3eae29a1cf9d2864b03 | 1 | 2 | 1061.678463 | -| terp1kvfahkquyxgan204w9wvcqhy3mzv4rwavc2374 | 0xb313dbd81c2191d9a9f5715ccc02e48ec4ca8ddd | 1 | 2 | 1061.678463 | -| terp17zce0arwnhh7ayz2fu8k8n54zh2ltdykh8l0fj | 0xf0b197f46e9defee904a4f0f63ce9515d5f5b496 | 1 | 2 | 1061.678463 | -| terp1awrw7hx2c4efp5f3vvtqvas8mz5vryncr2c58z | 0xeb86ef5ccac57290d1316316067607d8a8c19278 | 1 | 2 | 1061.678463 | -| terp1pnwvuzycxsrlhwyrcmq95ed5hgrzwswdsktfcn | 0x0cdcce08983407fbb883c6c05a65b4ba062741cd | 1 | 2 | 1061.678463 | -| terp1q9zxn43sawaffzqwpjhr3h05a73gv6gcma22rg | 0x014469d630ebba94880e0cae38ddf4efa2866918 | 1 | 2 | 1061.678463 | -| terp1h0xs6xrpxh2y486g2khndwqkpzs0yn5khpu66d | 0xbbcd0d186135d44a9f4855af36b81608a0f24e96 | 1 | 2 | 1061.678463 | -| terp1a0g9ume2jkp4t5rfjqk55mftex2g8xekrml6t3 | 0xebd05e6f2a958355d069902d4a6d2bc994839b36 | 1 | 2 | 1061.678463 | -| terp1e8475e950w7atv47gjexukv7j4sacdhzvqu282 | 0xc9ebea64b47bbdd5b2be44b26e599e9561dc36e2 | 1 | 2 | 1061.678463 | -| terp1q2y7c4t3k0szc0lnycfrrszvve6jgv49a3hfq9 | 0x0289ec5571b3e02c3ff3261231c04c66752432a5 | 1 | 2 | 1061.678463 | -| terp1taugaxrjkgtuhafvcq96dr5zzqtltu4deqyx92 | 0x5f788e9872b217cbf52cc00ba68e821017f5f2ad | 1 | 2 | 1061.678463 | -| terp12lh5lj72cg3pnzpkk7jdz8ue5mk44fapa85p32 | 0x57ef4fcbcac222198836b7a4d11f99a6ed5aa7a1 | 1 | 2 | 1061.678463 | -| terp1fq7ta24u7cwphyzrveq68rs09a0sqlnqpvrw6v | 0x483cbeaabcf61c1b90436641a38e0f2f5f007e60 | 1 | 2 | 1061.678463 | -| terp1nlt2kpmlghgfaqlxqrsal7wzpsj20hl4ws2tvs | 0x9fd6ab077f45d09e83e600e1dff9c20c24a7dff5 | 1 | 2 | 1061.678463 | -| terp1tynfzku845fw3lf64qlf2utgf5k9hwmyt853y2 | 0x5926915b87ad12e8fd3aa83e9571684d2c5bbb64 | 1 | 2 | 1061.678463 | -| terp1a3h3mcd96eew5duuaz4u65qag4wmz4dwa4t878 | 0xec6f1de1a5d672ea379ce8abcd501d455db155ae | 1 | 2 | 1061.678463 | -| terp1vnau7tm6km09tl9mf47kktw8wlv5n83e3hn08c | 0x64fbcf2f7ab6de55fcbb4d7d6b2dc777d9499e39 | 1 | 2 | 1061.678463 | -| terp1panp7ntrwed90c6ctd6vhg25jxettkqcdpkm3r | 0x0f661f4d63765a57e3585b74cba15491b2b5d818 | 1 | 2 | 1061.678463 | -| terp1uddrm9kfc23levjxxjjn26zctk6ywepthzsvf6 | 0xe35a3d96c9c2a3fcb24634a53568585db447642b | 1 | 2 | 1061.678463 | -| terp19g266kutfuvpp3g40xq3m9a4rnrna23cqzdf5w | 0x2a15ad5b8b4f1810c51579811d97b51cc73eaa38 | 1 | 2 | 1061.678463 | -| terp1qfuhsz9xx62vuveujc23auw5umcmnl953h9xad | 0x02797808a63694ce333c96151ef1d4e6f1b9fcb4 | 1 | 2 | 1061.678463 | -| terp1u5mvkpnkfc00zw99fypt6lrng9n3fe2xf0wg7f | 0xe536cb06764e1ef138a54902bd7c73416714e546 | 1 | 2 | 1061.678463 | -| terp1206zdywlwjk4w06m3frpa0h7p8kdm7fqq5t0qf | 0x53f42691df74ad573f5b8a461ebefe09ecddf920 | 1 | 2 | 1061.678463 | -| terp1hghgq9z0u0hc3q0ut2qkh0rqwa5wjyepamgr05 | 0xba2e80144fe3ef8881fc5a816bbc607768e91321 | 1 | 2 | 1061.678463 | -| terp1axhcm690hmvpuu4sn2t4dr6k3vcuama3ep8l7f | 0xe9af8de8afbed81e72b09a97568f568b31ceefb1 | 1 | 2 | 1061.678463 | -| terp15pllrc357h4k7uux0ex89vjq96d85ud83r2g5w | 0xa07ff1e234f5eb6f73867e4c72b2402e9a7a71a7 | 1 | 2 | 1061.678463 | -| terp1rzszvsmatpzswvxr0eda859y28wec5jry00mn0 | 0x18a026437d58450730c37e5bd3d0a451dd9c5243 | 1 | 2 | 1061.678463 | -| terp1czk25e527p3x0cwgs59amg5vqscaxya5sfn2pq | 0xc0acaa668af06267e1c8850bdda28c0431d313b4 | 1 | 2 | 1061.678463 | -| terp15xuh3segu7xphts5vdrwdda9mxx924ylvc42kd | 0xa1b978c328e78c1bae146346e6b7a5d98c55549f | 1 | 2 | 1061.678463 | -| terp13qs0lzng998shd00wltjg0czyjaq5ruzc986pw | 0x8820ff8a68294f0bb5ef77d7243f0224ba0a0f82 | 1 | 2 | 1061.678463 | -| terp12lycnpzrzft5jw2cq08tw55nq8akq69e63fg9q | 0x57c9898443125749395803ceb7529301fb6068b9 | 1 | 2 | 1061.678463 | -| terp1c2uwvnh0rf5x4388hm5e06d88tv86c9vc4a2lw | 0xc2b8e64eef1a686ac4e7bee997e9a73ad87d60ac | 1 | 2 | 1061.678463 | -| terp1nr96cph0cadq7r6zhmv2w0c4h2znjt9g0tv0an | 0x98cbac06efc75a0f0f42bed8a73f15ba85392ca8 | 1 | 2 | 1061.678463 | -| terp1qzpjk5nhrs8ngz6mg2a39c3axgpvn9yf0x36nm | 0x00832b52771c0f340b5b42bb12e23d3202c99489 | 1 | 2 | 1061.678463 | -| terp12wulkwp2vxups982we0j4epx83ums9w5462hgg | 0x53b9fb382a61b81814ea765f2ae4263c79b815d4 | 1 | 2 | 1061.678463 | -| terp1pxqpg4rkasjd0u04zfe8gnvcejedhv9jqndetl | 0x0980145476ec24d7f1f51272744d98ccb2dbb0b2 | 1 | 2 | 1061.678463 | -| terp1q29e7vrxum57wzsn2prd2aw4z4q8uldepdmfak | 0x028b9f3066e6e9e70a135046d575d515407e7db9 | 1 | 2 | 1061.678463 | -| terp1x5753uxet34v8wh2m6x080gav0fjvjeftj0d62 | 0x353d48f0d95c6ac3baeade8cf3bd1d63d3264b29 | 1 | 2 | 1061.678463 | -| terp155adkxn7ymscr8j8ytfm4rmtxnlw8ec5mtckky | 0xa53adb1a7e26e1819e4722d3ba8f6b34fee3e714 | 1 | 2 | 1061.678463 | -| terp1f8d2x7rcsugxavtvdteslttdwg54n3ujglrhz8 | 0x49daa3787887106eb16c6af30fad6d722959c792 | 1 | 2 | 1061.678463 | -| terp1p3jxt6mwu5f9rkqg53j5zuqa60ng0pkst7ytxd | 0x0c6465eb6ee51251d808a46541701dd3e68786d0 | 1 | 2 | 1061.678463 | -| terp1gceh8uqp8h6ttvqhpw5j42fqagutq44rvuzhjv | 0x463373f0013df4b5b0170ba92aa920ea38b056a3 | 1 | 2 | 1061.678463 | -| terp14dqftkvnf6fjdnmmw7c5k85tww0pjpphulssa2 | 0xab4095d9934e9326cf7b77b14b1e8b739e190437 | 1 | 2 | 1061.678463 | -| terp13gnnsfftumht3u0dpgczcc084qdsnayvl0f9z6 | 0x8a2738252be6eeb8f1ed0a302c61e7a81b09f48c | 1 | 2 | 1061.678463 | -| terp10gqg74uptrhrjm52lkqncy7q9g9elm3ca5xyhl | 0x7a008f578158ee396e8afd813c13c02a0b9fee38 | 1 | 2 | 1061.678463 | -| terp1fzu46ud2fl7xjdvmvlltd4rjmx4fd87jfd22pp | 0x48b95d71aa4ffc69359b67feb6d472d9aa969fd2 | 1 | 2 | 1061.678463 | -| terp1ht99dplkd3raagfurv0jstm00dcuvjn44lj746 | 0xbaca5687f66c47dea13c1b1f282f6f7b71c64a75 | 1 | 2 | 1061.678463 | -| terp1qnlnwdp6h7hn8cfapnqs59pfyn5futmnxz5d78 | 0x04ff37343abfaf33e13d0cc10a142924e89e2f73 | 1 | 2 | 1061.678463 | -| terp1dm0y07fkh8twa06530ayne7acyjcc6478rpxas | 0x6ede47f936b9d6eebf548bfa49e7ddc1258c6abe | 1 | 2 | 1061.678463 | -| terp1kphd4944pyds6y2ylu6e9dedmfevgdj8zc0vwy | 0xb06eda96b5091b0d1144ff3592b72dda72c43647 | 1 | 2 | 1061.678463 | -| terp1tte89t5wr9s9975wkqfycvgq2g4n36msl9ujrp | 0x5af272ae8e196052fa8eb0124c3100522b38eb70 | 1 | 2 | 1061.678463 | -| terp1mkmz70gt2gfwrgmevclehrw6hdavp75sygn3kz | 0xddb62f3d0b5212e1a379663f9b8ddabb7ac0fa90 | 1 | 2 | 1061.678463 | -| terp1jjdt9nj3pajanunf56xs8p4cp7yfj6lzlpr9fm | 0x949ab2ce510f65d9f269a68d0386b80f88996be2 | 1 | 2 | 1061.678463 | -| terp1zsm48wrk70ha6sxlt8ek0ukfh33zpl6u5wy3yg | 0x143753b876f3efdd40df59f367f2c9bc6220ff5c | 1 | 2 | 1061.678463 | -| terp16q2gq6dx9uhrjtfw4wfwde4hnq639euguugutu | 0xd0148069a62f2e392d2eab92e6e6b7983512e788 | 1 | 2 | 1061.678463 | -| terp1rmkpnayufavjlum03nmrwhszyp836fn54xs5fk | 0x1eec19f49c4f592ff36f8cf6375e02204f1d2674 | 1 | 2 | 1061.678463 | -| terp1qnd9jydqgyarnhz0fgkus6ezpdzl03y2vlcjyy | 0x04da5911a0413a39dc4f4a2dc86b220b45f7c48a | 1 | 2 | 1061.678463 | -| terp1vdf25upkldcs328sq6umeheu04z8hufas07zhj | 0x6352aa7036fb7108a8f006b9bcdf3c7d447bf13d | 1 | 2 | 1061.678463 | -| terp1yqgqag9edw345x6wut5nfgfza4va9kmcf6l8ve | 0x20100ea0b96ba35a1b4ee2e934a122ed59d2db78 | 1 | 2 | 1061.678463 | -| terp1zd8zva9y6slz8ysfsx4laz08yjed7vwn2m3356 | 0x134e2674a4d43e23920981abfe89e724b2df31d3 | 1 | 2 | 1061.678463 | -| terp1fu5lxyz7u5gmv6frh2t7j525zx0e7vwsad92vj | 0x4f29f3105ee511b66923ba97e95154119f9f31d0 | 1 | 2 | 1061.678463 | -| terp1uspmzu29kjnh0r8vws8hyusshs0ste35a2vshc | 0xe403b17145b4a7778cec740f727210bc1f05e634 | 1 | 2 | 1061.678463 | -| terp1yss2cd070znwkkexfq65cps8d29h582zd29hku | 0x2420ac35fe78a6eb5b2648354c06076a8b7a1d42 | 1 | 2 | 1061.678463 | -| terp1426vuvs9t244k8p0ak5yhmkpaem0ah8dz5z5hr | 0xaab4ce32055aab5b1c2feda84beec1ee76fedced | 1 | 2 | 1061.678463 | -| terp10cv9r89jsq7ygd5q2j57jh6wjvn9peh99d5agp | 0x7e18519cb2803c44368054a9e95f4e932650e6e5 | 1 | 2 | 1061.678463 | -| terp16a45hyaf3yet2n9cngkg980a9mdk55pqye9sk2 | 0xd76b4b93a98932b54cb89a2c829dfd2edb6a5020 | 1 | 2 | 1061.678463 | -| terp1fxl9v48ud69xt6qtt0wfcxx6230nysg70pcz50 | 0x49be5654fc6e8a65e80b5bdc9c18da545f32411e | 1 | 2 | 1061.678463 | -| terp1kl4w7wsf6zf6wnkl8hnn70fs3c8ueg0pgy8qmj | 0xb7eaef3a09d093a74edf3de73f3d308e0fcca1e1 | 1 | 2 | 1061.678463 | -| terp1txuuqkcw70g0jxs9kstpsaxuss5p2zp4mewp9k | 0x59b9c05b0ef3d0f91a05b4161874dc8428150835 | 1 | 2 | 1061.678463 | -| terp1gxkdnpp3pp83xuwtnlpuy97yxzg20hqg0hlef7 | 0x41acd98431084f1371cb9fc3c217c43090a7dc08 | 1 | 2 | 1061.678463 | -| terp1sqvg00n42998r60xmncazjf86adslwr5f594l3 | 0x801887be75514a71e9e6dcf1d14927d75b0fb874 | 1 | 2 | 1061.678463 | -| terp1sqmtyvamgwy7vw7sc0v8ysrjk3p6sxwgeg09nz | 0x8036b233bb4389e63bd0c3d8724072b443a819c8 | 1 | 2 | 1061.678463 | -| terp1mza0hzpfj58rvrd7lh8zvugz3r5kkxf3qj5e6j | 0xd8bafb8829950e360dbefdce26710288e96b1931 | 1 | 2 | 1061.678463 | -| terp1a2q4aggrt6ma62s87jmagczv3kdjy2hy467ju9 | 0xea815ea1035eb7dd2a07f4b7d4604c8d9b222ae4 | 1 | 2 | 1061.678463 | -| terp1xmkyvxfndr56jqa3psp8cc237sjyzp8uawxhgj | 0x36ec46193368e9a903b10c027c6151f4244104fc | 1 | 2 | 1061.678463 | -| terp10t7vxuuxdh6kez9xctvupvl20thczv3nlyx8s9 | 0x7afcc373866df56c88a6c2d9c0b3ea7aef813233 | 1 | 2 | 1061.678463 | -| terp1wdq2kt0yw8ulnwg4tlm3q062z0sehfcx7smg7r | 0x7340ab2de471f9f9b9155ff7103f4a13e19ba706 | 1 | 2 | 1061.678463 | -| terp1vt59fnpjvuze4ervfqhy9v2eh9fme8dlzzjdvp | 0x62e854cc3267059ae46c482e42b159b953bc9dbf | 1 | 2 | 1061.678463 | -| terp1q7e3d6lupkw53dykrhuahx3d5gvwjf0wf0ax9z | 0x07b316ebfc0d9d48b4961df9db9a2da218e925ee | 1 | 2 | 1061.678463 | -| terp1t6dp5kszy2a5a5lnw9xepunwq3k7py7rcaqhze | 0x5e9a1a5a0222bb4ed3f3714d90f26e046de093c3 | 1 | 2 | 1061.678463 | -| terp1utuzux3mauj8v4mc0hur50p4d9ha99sfd7lf5z | 0xe2f82e1a3bef247657787df83a3c35696fd29609 | 1 | 2 | 1061.678463 | -| terp10d5gjlfffkzgz2ty7ydfktz3zhwdyz0e8fk9lw | 0x7b68897d294d84812964f11a9b2c5115dcd209f9 | 1 | 2 | 1061.678463 | -| terp1c8t072vgsudh0fxr5tcty8v95z8audx304kjm0 | 0xc1d6ff2988871b77a4c3a2f0b21d85a08fde34d1 | 1 | 2 | 1061.678463 | -| terp1dddq5ltcgzmernxydtczmgfxlsgjdkwrdukwsq | 0x6b5a0a7d7840b791ccc46af02da126fc1126d9c3 | 1 | 2 | 1061.678463 | -| terp1kcpdfxnkmxw2k46yl5x0c9ed9n0exd6jtzedn9 | 0xb602d49a76d99cab5744fd0cfc172d2cdf933752 | 1 | 2 | 1061.678463 | -| terp17g9qy60dl96qt5vz8cp0xk672tg6u46wf02f0s | 0xf20a0269edf97405d1823e02f35b5e52d1ae574e | 1 | 2 | 1061.678463 | -| terp1jgyf2fzcpydgaqqh0v2jxv52dwf30j0m6huq7e | 0x9208952458091a8e80177b1523328a6b9317c9fb | 1 | 2 | 1061.678463 | -| terp12tm7r8txy224ng85l00py95pnw36pg7el79v92 | 0x52f7e19d66229559a0f4fbde1216819ba3a0a3d9 | 1 | 2 | 1061.678463 | -| terp14xr7sf83lu48ye076fqf82l5er6edzd46svmt2 | 0xa987e824f1ff2a7265fed24093abf4c8f59689b5 | 1 | 2 | 1061.678463 | -| terp1wze2dgt6ufkx282fgs98d4e298tyfx87whgx5p | 0x70b2a6a17ae26c651d49440a76d72a29d64498fe | 1 | 2 | 1061.678463 | -| terp1rr53n55xrj90r80r32z6veuy46ufvn3zdy36x7 | 0x18e919d2861c8af19de38a85a66784aeb8964e22 | 1 | 2 | 1061.678463 | -| terp1v43qscu2nhk8d6u5xyqkxnf02vpnz4qxnezxws | 0x656208638a9dec76eb943101634d2f5303315406 | 1 | 2 | 1061.678463 | -| terp1jg96j0t24sfkjkcj4rr3676a3pv9k58ymp3stv | 0x920ba93d6aac13695b12a8c71d7b5d88585b50e4 | 1 | 2 | 1061.678463 | -| terp1jjy7xwuzs04f6r8z3agxvzvjyhv2j9w6hzwnfs | 0x9489e33b8283ea9d0ce28f5066099225d8a915da | 1 | 2 | 1061.678463 | -| terp1gj0v8lhumhk4txtpct0x3r0jyskyzn4jhwzwnc | 0x449ec3fefcdded559961c2de688df2242c414eb2 | 1 | 2 | 1061.678463 | -| terp1acvdaez43etv0f7kcut4alpmupuclna5v9a2hu | 0xee18dee4558e56c7a7d6c7175efc3be0798fcfb4 | 1 | 2 | 1061.678463 | -| terp1ydzpnct7wd5ele7jh8edhn48ra7zy7cu3q3qap | 0x234419e17e73699fe7d2b9f2dbcea71f7c227b1c | 1 | 2 | 1061.678463 | -| terp1wwh244cayxx4a7ppzg4thktqwt6yv4656uf562 | 0x73aeaad71d218d5ef821122abbd96072f4465754 | 1 | 2 | 1061.678463 | -| terp1fyjha3qr0lda3sltuy38w6hjfkyy7vhw4vmxll | 0x49257ec4037fdbd8c3ebe122776af24d884f32ee | 1 | 2 | 1061.678463 | -| terp1s2utd4y65a8handu0kqhuc59clrxkldwfrz5t5 | 0x82b8b6d49aa74f7ecdbc7d817e6285c7c66b7dae | 1 | 2 | 1061.678463 | -| terp1pfzpeyrzzmv88t5yq66fk2w2w6dnup845kslmm | 0x0a441c906216d873ae8406b49b29ca769b3e04f5 | 1 | 2 | 1061.678463 | -| terp1mnall4cxvtjw45xvnm4nscaaa9m8kmaqru2y9u | 0xdcfbffd70662e4ead0cc9eeb3863bde9767b6fa0 | 1 | 2 | 1061.678463 | -| terp1388g6pte0vm5dxfdltcp933v3qzwpk4fg8f0ud | 0x89ce8d05797b3746992dfaf012c62c8804e0daa9 | 1 | 2 | 1061.678463 | -| terp1qfuu7dest6prswvjyf826ur2kx5pr8fye2tdd9 | 0x0279cf37305e82383992224ead706ab1a8119d24 | 1 | 2 | 1061.678463 | -| terp1qxzwt4k078vdusugq6lar2qas3rkfrf0yq5j3v | 0x0184e5d6cff1d8de438806bfd1a81d8447648d2f | 1 | 2 | 1061.678463 | -| terp1mstq6yqvfweujglxpft2ulshs2favkee7734k7 | 0xdc160d100c4bb3c923e60a56ae7e178293d65b39 | 1 | 2 | 1061.678463 | -| terp1nl3guv2w9ufmjd5dnfg9wqv34fyrgyeyal96m9 | 0x9fe28e314e2f13b9368d9a50570191aa48341324 | 1 | 2 | 1061.678463 | -| terp14pg4ps7jufn305j9uv8fr80pele23x9zg220vq | 0xa85150c3d2e26717d245e30e919de1cff2a898a2 | 1 | 2 | 1061.678463 | -| terp1q6pts0rpks7gd5u4xq2vmqey58j5af02y5pd6e | 0x0682b83c61b43c86d3953014cd8324a1e54ea5ea | 1 | 2 | 1061.678463 | -| terp1u2664lghqlp9ugel84v54jcuph5za70jwmvs69 | 0xe2b5aafd1707c25e233f3d594acb1c0de82ef9f2 | 1 | 2 | 1061.678463 | -| terp1nzmrlc8ltj02gz8lclylhk5l9pf24y9jnw828v | 0x98b63fe0ff5c9ea408ffc7c9fbda9f2852aa90b2 | 1 | 2 | 1061.678463 | -| terp1tjqfgqvs0fwluf2rm70r5ux6cca7zak8cdzjgn | 0x5c809401907a5dfe2543df9e3a70dac63be176c7 | 1 | 2 | 1061.678463 | -| terp1jlmutwfy0wsddn0r6thmkq9k0a2ev0qej0gc5x | 0x97f7c5b9247ba0d6cde3d2efbb00b67f55963c19 | 1 | 2 | 1061.678463 | -| terp1rsvx03z5v0pstf3md05ume3u53a0flfafdjsr4 | 0x1c1867c45463c305a63b6be9cde63ca47af4fd3d | 1 | 2 | 1061.678463 | -| terp1xt2e0wawp95932jzxda5trmwm7dmgvmm07nttl | 0x32d597bbae096858aa42337b458f6edf9bb4337b | 1 | 2 | 1061.678463 | -| terp1du29777kz7fxd9s9esulh4zdadfhr9mpef5au7 | 0x6f145f7bd61792669605cc39fbd44deb53719761 | 1 | 2 | 1061.678463 | -| terp1k6z7zj7p8l2pyhktm9j5vt84suw89f0krxh7k0 | 0xb685e14bc13fd4125ecbd965462cf5871c72a5f6 | 1 | 2 | 1061.678463 | -| terp1wd0nf9yyxludz8s3v8x5f7ya924w4htyjtqfq7 | 0x735f34948437f8d11e1161cd44f89d2aaaeadd64 | 1 | 2 | 1061.678463 | -| terp1eycfqutgdgtyrr8sw30faxjtz94mczts44cxlx | 0xc9309071686a16418cf0745e9e9a4b116bbc0970 | 1 | 2 | 1061.678463 | -| terp1p7fwjcjvmcxujhtq9jkt6c27m8009vt79ttssf | 0x0f92e9624cde0dc95d602cacbd615ed9def2b17e | 1 | 2 | 1061.678463 | -| terp16eypw7hx94ywd55z6g0uql0jpf03e4qqwvjd8y | 0xd648177ae62d48e6d282d21fc07df20a5f1cd400 | 1 | 2 | 1061.678463 | -| terp1wzdfl79wxp60flkrtqxr4q3dtw5masuwzt74ex | 0x709a9ff8ae3074f4fec3580c3a822d5ba9bec38e | 1 | 2 | 1061.678463 | -| terp1n68zw2msvdt4azqtcctzu06jtm4gfgvmd4vvlt | 0x9e8e272b7063575e880bc6162e3f525eea84a19b | 1 | 2 | 1061.678463 | -| terp1aa6fsstm89jwpnd78xjt9une7g0lmlv05zc94e | 0xef7498417b3964e0cdbe39a4b2f279f21ffdfd8f | 1 | 2 | 1061.678463 | -| terp19dsl85pjkusmemg5yq8t785f2du9zr5qlvf7xt | 0x2b61f3d032b721bced14200ebf1e895378510e80 | 1 | 2 | 1061.678463 | -| terp183wf3kvump4qsdr0kqzkc53rjusaf8jsafyne7 | 0x3c5c98d99cd86a08346fb0056c52239721d49e50 | 1 | 2 | 1061.678463 | -| terp1n4kcetswt84gu4tfjq6pd3fh85tts0t2gsddtm | 0x9d6d8cae0e59ea8e5569903416c5373d16b83d6a | 1 | 2 | 1061.678463 | -| terp1tju7ke5nqe79kywjpd8z5z09aavzyjfpvwzwzq | 0x5cb9eb6693067c5b11d20b4e2a09e5ef58224921 | 1 | 2 | 1061.678463 | -| terp1gfa57el7fmlfgg65h89vqgf7rh356juph428xs | 0x427b4f67fe4efe942354b9cac0213e1de34d4b81 | 1 | 2 | 1061.678463 | -| terp1qpl690msph3re3xhhp45uwah0p58zug8rr5tvh | 0x007fa2bf700de23cc4d7b86b4e3bb77868717107 | 1 | 2 | 1061.678463 | -| terp1lcgaynhvg3ff93ywdky7g806uh25wykqckay5e | 0xfe11d24eec445292c48e6d89e41dfae5d54712c0 | 1 | 2 | 1061.678463 | -| terp1ndvjv9rctmp724nrepmykqp0r5hln02fl6waqz | 0x9b592614785ec3e55663c8764b002f1d2ff9bd49 | 1 | 2 | 1061.678463 | -| terp1jjk4hsrgy6fx0hg48vmkdas23z7usyp7x24klr | 0x94ad5bc068269267dd153b3766f60a88bdc8103e | 1 | 2 | 1061.678463 | -| terp18jsrxnc9dhzc354928ve2clrq8yu8fsmx29fus | 0x3ca0334f056dc588d2a551d99563e301c9c3a61b | 1 | 2 | 1061.678463 | -| terp1unvgsk6zmq0tuc9msalwg933pgujax42l7asfk | 0xe4d8885b42d81ebe60bb877ee416310a392e9aaa | 1 | 2 | 1061.678463 | -| terp1y0ldyc60m33fcx5zadhdxwg7ltf2tpnsa5j3q9 | 0x23fed2634fdc629c1a82eb6ed3391efad2a58670 | 1 | 2 | 1061.678463 | -| terp1dt86dkwyfrm8k3gryrxhqmnpcrm8z6hp6wtp6s | 0x6acfa6d9c448f67b450320cd706e61c0f6716ae1 | 1 | 2 | 1061.678463 | -| terp1sc2rzr249vzmq6aaur8ceep9wxqthj6f35h9c0 | 0x8614310d552b05b06bbde0cf8ce4257180bbcb49 | 1 | 2 | 1061.678463 | -| terp1jqxxtn5cfda20m3g4esex5wayxtduka460gsjy | 0x900c65ce984b7aa7ee28ae619351dd2196de5bb5 | 1 | 2 | 1061.678463 | -| terp1aattn06wuqamcll7kdr65dukc42dpjj8f89rka | 0xef56b9bf4ee03bbc7ffeb347aa3796c554d0ca47 | 1 | 2 | 1061.678463 | -| terp1l3hqr8lw7uxqvmav6snn6hjygscr2wac6harkh | 0xfc6e019feef70c066facd4273d5e444430353bb8 | 1 | 2 | 1061.678463 | -| terp1h3023mdtss3aqn4hhz6lstdh2c59csc083m58e | 0xbc5ea8edab8423d04eb7b8b5f82db756285c430f | 1 | 2 | 1061.678463 | -| terp14ersthqgzmhxmzsn78rj0q8v2qsezhld0mnceq | 0xae4705dc0816ee6d8a13f1c72780ec5021915fed | 1 | 2 | 1061.678463 | -| terp1lnxjtqhs8487pstfezr2p3yf9mza0kkgf6a6cu | 0xfccd2582f03d4fe0c169c886a0c4892ec5d7dac8 | 1 | 2 | 1061.678463 | -| terp1lpgmtwxrgtvdyu9x75vh946vqj8xwqfnpjzav6 | 0xf851b5b8c342d8d270a6f51972d74c048e670133 | 1 | 2 | 1061.678463 | -| terp1k2myvpxwesfedvlepx2vqrsdwjqh3prn95ed9p | 0xb2b64604cecc1396b3f90994c00e0d7481788473 | 1 | 2 | 1061.678463 | -| terp1nlsdtuakvcq65s564pyq47vp55eztjkldj0hzs | 0x9fe0d5f3b66601aa429aa8480af981a53225cadf | 1 | 2 | 1061.678463 | -| terp1cp4l845aptlwrqttr9ufazad9ngtnz08l37pmn | 0xc06bf3d69d0afee1816b19789e8bad2cd0b989e7 | 1 | 2 | 1061.678463 | -| terp1qpe3wpsuudvl005v5syp43ta7077nw7ky6nnny | 0x007317061ce359f7be8ca4081ac57df3fde9bbd6 | 1 | 2 | 1061.678463 | -| terp1un6ckjqpg3qfp6hmzhcps8rtqdpyf24jn803d0 | 0xe4f58b4801444090eafb15f0181c6b034244aab2 | 1 | 2 | 1061.678463 | -| terp1n2vsy0x65fn7hk7admka6r9jsv8sp9xweyh8mg | 0x9a99023cdaa267ebdbdd6eeddd0cb2830f0094ce | 1 | 2 | 1061.678463 | -| terp1e29s0eg08uquygl04nhm0rvu4p89g3jxk8u5fm | 0xca8b07e50f3f01c223efacefb78d9ca84e544646 | 1 | 2 | 1061.678463 | -| terp1s9aqr8g4txms7tfw4elrp2xkchc8e7mqy35w03 | 0x817a019d1559b70f2d2eae7e30a8d6c5f07cfb60 | 1 | 2 | 1061.678463 | -| terp1pr5s35pasrr0xk03kzrkj7vkz5cse8m0rl6vke | 0x08e908d03d80c6f359f1b08769799615310c9f6f | 1 | 2 | 1061.678463 | -| terp1ytpnxcrqvmngryws7m8e5wvmz9vwreg5xdqf5a | 0x22c333606066e68191d0f6cf9a399b1158e1e514 | 1 | 2 | 1061.678463 | -| terp1f4jtt0ux8mrl34ne2240rmqn7kg9hgmchq6rrr | 0x4d64b5bf863ec7f8d67952aaf1ec13f5905ba378 | 1 | 2 | 1061.678463 | -| terp1s3yjlv4un2t95jy25mnua7lm9u027cnr0ltgj4 | 0x84492fb2bc9a965a488aa6e7cefbfb2f1eaf6263 | 1 | 2 | 1061.678463 | -| terp1g8vsygp0ets844t4885l62v5rnx8pnfxggtqss | 0x41d902202fcae07ad57539e9fd29941ccc70cd26 | 1 | 2 | 1061.678463 | -| terp1gxeaed2ac432q4vum7kdxg3qkkydgnd2gpltc0 | 0x41b3dcb55dc562a0559cdfacd32220b588d44daa | 1 | 2 | 1061.678463 | -| terp16wvt3g7ekmrfwf659zgep5hhv5mdy9rv0ycnp6 | 0xd398b8a3d9b6c6972754289190d2f76536d2146c | 1 | 2 | 1061.678463 | -| terp13hv5a9z0gqpfaj5ksrmunfryypnedksmqgw63m | 0x8dd94e944f40029eca9680f7c9a464206796da1b | 1 | 2 | 1061.678463 | -| terp14lj86meg0nsnjlmdrt6ks6xw3xqa240g3vm5jz | 0xafe47d6f287ce1397f6d1af56868ce8981d555e8 | 1 | 2 | 1061.678463 | -| terp1wz6ar987eln5ua762pe0cx7z9q0jxqycr5emcn | 0x70b5d194fecfe74e77da5072fc1bc2281f230098 | 1 | 2 | 1061.678463 | -| terp1zc5hv4meaceh5hqdpg4c207tk9x08rn6k0rkqp | 0x1629765779ee337a5c0d0a2b853fcbb14cf38e7a | 1 | 2 | 1061.678463 | -| terp13r05rfvd3sq8g2kfhg9rqnrrl9z3k0azaru250 | 0x88df41a58d8c00742ac9ba0a304c63f9451b3fa2 | 1 | 2 | 1061.678463 | -| terp1exnf8d0peze6gefgh68p4jgjjv4ly7yvux4h57 | 0xc9a693b5e1c8b3a46528be8e1ac912932bf2788c | 1 | 2 | 1061.678463 | -| terp1xtfs7c09w9g5v3dhk3gkqsdsq0w6v2prt62q2e | 0x32d30f61e571514645b7b4516041b003dda62823 | 1 | 2 | 1061.678463 | -| terp106y9xkxgrl8jafru42ln9636hc9dz42ssanwu4 | 0x7e885358c81fcf2ea47caabf32ea3abe0ad15550 | 1 | 2 | 1061.678463 | -| terp1ec982tft4p3rg97r8jw70hykug4hd5g54dxwga | 0xce0a752d2ba8623417c33c9de7dc96e22b76d114 | 1 | 2 | 1061.678463 | -| terp16zw4nv2ck47a7nfc26zys36rvv025yxn5rxj4a | 0xd09d59b158b57ddf4d385684484743631eaa10d3 | 1 | 2 | 1061.678463 | -| terp10454v7fr8rrlmwpjq74shsy8flyw5hzlwu7ws0 | 0x7d6956792338c7fdb83207ab0bc0874fc8ea5c5f | 1 | 2 | 1061.678463 | -| terp10f682yx47u55n8cwd7cacw8e7scsqqg84xrcgm | 0x7a747510d5f729499f0e6fb1dc38f9f431000107 | 1 | 2 | 1061.678463 | -| terp1xs3af90scsalykgadfuhvkk38ammg0lle28rs2 | 0x3423d495f0c43bf2591d6a79765ad13f77b43fff | 1 | 2 | 1061.678463 | -| terp1canmphz7c4acq8xeu2e6p5p3g8dpc4ejaagj5c | 0xc767b0dc5ec57b801cd9e2b3a0d03141da1c5732 | 1 | 2 | 1061.678463 | -| terp16ea0eh07cnevsldwct2rd2u9888jx90xdwvj7l | 0xd67afcddfec4f2c87daec2d436ab8539cf2315e6 | 1 | 2 | 1061.678463 | -| terp1vm7zj8jsyw6z4h3xgvhvex3evz08mdr9ftssvf | 0x66fc291e5023b42ade26432ecc9a39609e7db465 | 1 | 2 | 1061.678463 | -| terp1w660wu8efj340skwm4mfnxm9kx7mq78c5ks03j | 0x76b4f770f94ca357c2cedd76999b65b1bdb078f8 | 1 | 2 | 1061.678463 | -| terp1xyz5wuyvvncehn0dyj28rnwanuyptem4gjhler | 0x310547708c64f19bcded249471cddd9f0815e775 | 1 | 2 | 1061.678463 | -| terp163xselpasq4dufylpjtywh268xj42e8qrylmre | 0xd44d0cfc3d802ade249f0c96475d5a39a55564e0 | 1 | 2 | 1061.678463 | -| terp1exnpsruw8gljs9aejyspsnlvvw8mju49sajcd8 | 0xc9a6180f8e3a3f2817b99120184fec638fb972a5 | 1 | 2 | 1061.678463 | -| terp1h8pmyhxmhf9fkkfmp04s34h5czyewuy38hdjjl | 0xb9c3b25cdbba4a9b593b0beb08d6f4c089977091 | 1 | 2 | 1061.678463 | -| terp1tkeqgd7fkcmg7parnz9c7e7zzazgdea2cmtr8k | 0x5db20437c9b6368f07a3988b8f67c2174486e7aa | 1 | 2 | 1061.678463 | -| terp1rq0ma6kn0asld6dwlhx8ac3w7y262e0cymcl7x | 0x181fbeead37f61f6e9aefdcc7ee22ef115a565f8 | 1 | 2 | 1061.678463 | -| terp1kh7hncwrxq2qwhsjunmf76z3zl83r92yeh5cq3 | 0xb5fd79e1c33014075e12e4f69f685117cf119544 | 1 | 2 | 1061.678463 | -| terp1m0568jf53604gdm4ke63yvp7e8wly9g4rwuca4 | 0xdbe9a3c9348e9f543775b67512303ec9ddf21515 | 1 | 2 | 1061.678463 | -| terp1zxeqwh72e30dk7n7vl5uylfdctasasf5r6pckg | 0x11b2075fcacc5edb7a7e67e9c27d2dc2fb0ec134 | 1 | 2 | 1061.678463 | -| terp1zmm4ax9yeermp3pm2f0npm0yankft6d7kpzhh2 | 0x16f75e98a4ce47b0c43b525f30ede4ecec95e9be | 1 | 2 | 1061.678463 | -| terp109nz99j38yx4rkydwr89nt6v3th9jthn0q5lzn | 0x7966229651390d51d88d70ce59af4c8aee592ef3 | 1 | 2 | 1061.678463 | -| terp15z3vjdrn6qxjg6l73sw78z7vedgtyavfh6ywvm | 0xa0a2c93473d00d246bfe8c1de38bcccb50b27589 | 1 | 2 | 1061.678463 | -| terp1qtwvakv4dt9h75eppzcg30p72gnlt93v2mf9v4 | 0x02dcced9956acb7f532108b088bc3e5227f5962c | 1 | 2 | 1061.678463 | -| terp155danefr0vhtr85gw66fq58g4u80ugg2sw6r6u | 0xa51bd9e5237b2eb19e8876b49050e8af0efe210a | 1 | 2 | 1061.678463 | -| terp16stq28ltt3nqsy3av99f2gqaqa6hv6j93k9vhv | 0xd416051feb5c6608123d614a95201d0775766a45 | 1 | 2 | 1061.678463 | -| terp1jughyexukk8kjz3ddxvzxphksp3p4gyrxuswhx | 0x97117264dcb58f690a2d69982306f680621aa083 | 1 | 2 | 1061.678463 | -| terp1au95kfleyx3gj8ug5775sp0f09kj0pjw496eed | 0xef0b4b27f921a2891f88a7bd4805e9796d27864e | 1 | 2 | 1061.678463 | -| terp14gl4935fs5r464nzl8g344q9dtyf5jtdnwns6p | 0xaa3f52c68985075d5662f9d11ad4056ac89a496d | 1 | 2 | 1061.678463 | -| terp1vvctu5jvhjtmwsjcrq32x3u5uwvywa5k3dkle3 | 0x6330be524cbc97b742581822a34794e398477696 | 1 | 2 | 1061.678463 | -| terp1lcv0qneyltxsz75a7hv4wkwc5m5dp02hrtgy8k | 0xfe18f04f24facd017a9df5d95759d8a6e8d0bd57 | 1 | 2 | 1061.678463 | -| terp1x950rdjzgqfrf4ygjrhfcv8k0lhvqtppx9hsa5 | 0x3168f1b642401234d48890ee9c30f67feec02c21 | 1 | 2 | 1061.678463 | -| terp1820w73mswdzzr4tmjs6vg7dje7q4lkwgmkmlwf | 0x3a9eef4770734421d57b9434c479b2cf815fd9c8 | 1 | 2 | 1061.678463 | -| terp18nsla2y3yxctwa0x5nh3nuupnxf4sc3hf8l7ex | 0x3ce1fea89121b0b775e6a4ef19f3819993586237 | 1 | 2 | 1061.678463 | -| terp17j3xevps4fav0ctj0sr3dytfxmqwqnxgxwn86z | 0xf4a26cb030aa7ac7e1727c0716916936c0e04cc8 | 1 | 2 | 1061.678463 | -| terp1qxl6656t5tau07khm6qyyyfywspp44mavs52e2 | 0x01bfad534ba2fbc7fad7de8042112474021ad77d | 1 | 2 | 1061.678463 | -| terp1xh4aee5qagnndpemwy4p96yls5q3yragatukhy | 0x35ebdce680ea2736873b712a12e89f8501120fa8 | 1 | 2 | 1061.678463 | -| terp1pe5j4k770y446xc20xgje05u89xttthp7s0x3z | 0x0e692adbde792b5d1b0a79912cbe9c394cb5aee1 | 1 | 2 | 1061.678463 | -| terp1pgrnt4xmmxyuwff9nw77axxse2ntj9zt5dy6qg | 0x0a0735d4dbd989c725259bbdee98d0caa6b9144b | 1 | 2 | 1061.678463 | -| terp1drc4va9kydqcumcmg0v50nc2qsnt2sung78n48 | 0x68f15674b623418e6f1b43d947cf0a0426b54393 | 1 | 2 | 1061.678463 | -| terp1u9ck3qxfs8p82qvc07ge95hgf8a72va65te284 | 0xe1716880c981c27501987f9192d2e849fbe533ba | 1 | 2 | 1061.678463 | -| terp1hldlnelehvtrx5sf0c0ljgu09ppjjgysyg0cks | 0xbfdbf9e7f9bb163352097e1ff9238f2843292090 | 1 | 2 | 1061.678463 | -| terp1dp42ayhy36mwhndznyajtryhc96z6clw75c0wt | 0x686aae92e48eb6ebcda2993b258c97c1742d63ee | 1 | 2 | 1061.678463 | -| terp1e6plt42h0duvv88fre0xqrxajsyhs2swfns5n9 | 0xce83f5d5577b78c61ce91e5e600cdd9409782a0e | 1 | 2 | 1061.678463 | -| terp1xek820dj88mk2chs28x3s2gzupt0hjrcddl8wa | 0x366c753db239f76562f051cd182902e056fbc878 | 1 | 2 | 1061.678463 | -| terp1zs0l9pk9k387w0d6shxfnw9glkpkvj6t2vfaj4 | 0x141ff286c5b44fe73dba85cc99b8a8fd83664b4b | 1 | 2 | 1061.678463 | -| terp128ahmjexcqntz7pd9hla8w7kegxlyqcxknx5tx | 0x51fb7dcb26c026b1782d2dffd3bbd6ca0df20306 | 1 | 2 | 1061.678463 | -| terp1vm27jr35gq8xgwpsxp9f4vm0ct7zgkjpvyd6y7 | 0x66d5e90e34400e643830304a9ab36fc2fc245a41 | 1 | 2 | 1061.678463 | -| terp1slkqkuc5x0qnlrpspe4yrnjejwesfadr4xlptp | 0x87ec0b731433c13f8c300e6a41ce5993b304f5a3 | 1 | 2 | 1061.678463 | -| terp1rxavf9lwlx9sq7ggnp9fddtc8e90kwwv5c0mgh | 0x19bac497eef98b007908984a96b5783e4afb39cc | 1 | 2 | 1061.678463 | -| terp1jjrtawlrk4ffdesqann7rl8v7vvap2nm2uv9fv | 0x9486bebbe3b55296e600ece7e1fcecf319d0aa7b | 1 | 2 | 1061.678463 | -| terp1hqfc86y3feusk3t3k6f3j0nccqtrmgaw3lv9xe | 0xb81383e8914e790b4571b693193e78c0163da3ae | 1 | 2 | 1061.678463 | -| terp18geuj5dknwsm97c2qcjgqluyqfer6n8h7jsdp0 | 0x3a33c951b69ba1b2fb0a0624807f8402723d4cf7 | 1 | 2 | 1061.678463 | -| terp199aznq3rhn66ya2e93kq8nxq0huvrxh0s99v3q | 0x297a298223bcf5a275592c6c03ccc07df8c19aef | 1 | 2 | 1061.678463 | -| terp19fxj02lhaw7w9yf3e850alf6kv665nxw27qq5x | 0x2a4d27abf7ebbce29131c9e8fefd3ab335aa4cce | 1 | 2 | 1061.678463 | -| terp1v482eezgdge2re2zfk9p26jvmty3d7mlvjegwp | 0x654eace4486a32a1e5424d8a156a4cdac916fb7f | 1 | 2 | 1061.678463 | -| terp1cu0uksxdm6jqd7e0whahc2sv6w8vyd4jvgqrlc | 0xc71fcb40cddea406fb2f75fb7c2a0cd38ec236b2 | 1 | 2 | 1061.678463 | -| terp19ygjrknl4mkayh80cr3gnv6emeftspgvlnek3e | 0x291121da7faeedd25cefc0e289b359de52b8050c | 1 | 2 | 1061.678463 | -| terp1nglk8asjnc7y0ehw3ayj935k6c0877srezez5n | 0x9a3f63f6129e3c47e6ee8f4922c696d61e7f7a03 | 1 | 2 | 1061.678463 | -| terp10msc4srd9g05vu9wkwarctrdxn7mzl6sh0emhn | 0x7ee18ac06d2a1f4670aeb3ba3c2c6d34fdb17f50 | 1 | 2 | 1061.678463 | -| terp15nqpapw7pkr4zaa9lh9q2v2rkcxfnna49k02za | 0xa4c01e85de0d875177a5fdca053143b60c99cfb5 | 1 | 2 | 1061.678463 | -| terp1a6g4sxvm9ggkjmcy3gg4z9tteklyx83jqeth5x | 0xee9158199b2a11696f048a1151156bcdbe431e32 | 1 | 2 | 1061.678463 | -| terp1pzf04d2gzawck6akh7xkgc8exfagxc7l9xs795 | 0x0892fab548175d8b6bb6bf8d6460f9327a8363df | 1 | 2 | 1061.678463 | -| terp17r0yah3ar5dzjqrwt53l3ccrgn366jfuhsrg4d | 0xf0de4ede3d1d1a29006e5d23f8e30344e3ad493c | 1 | 2 | 1061.678463 | -| terp1hx74t66p5jxa3vc5rgyuf3kc9x6crnlttvkzpp | 0xb9bd55eb41a48dd8b3141a09c4c6d829b581cfeb | 1 | 2 | 1061.678463 | -| terp15fgu8wyg6a6pn4csf2g889ynll0jtlmlufj370 | 0xa251c3b888d77419d7104a90739493ffdf25ff7f | 1 | 2 | 1061.678463 | -| terp18jcuykmmart56ru7p988egxxxs4yymkkzgv8ez | 0x3cb1c25b7be8d74d0f9e094e7ca0c6342a426ed6 | 1 | 2 | 1061.678463 | -| terp15wr87lvsp983dcftlvdflh72vn52axzkjhmthx | 0xa3867f7d90094f16e12bfb1a9fdfca64e8ae9856 | 1 | 2 | 1061.678463 | -| terp102y2h904dnldtmjllmx2k4qx43j0cqs62ua3nm | 0x7a88ab95f56cfed5ee5ffeccab5406ac64fc021a | 1 | 2 | 1061.678463 | -| terp12u2nk3jnlaex4unfy5rdne9zlmyz83xqrnfwrr | 0x57153b4653ff726af2692506d9e4a2fec823c4c0 | 1 | 2 | 1061.678463 | -| terp100wt524wlrmqmac5kqw7s923uy2xv7xk7wqeux | 0x7bdcba2aaef8f60df714b01de81551e1146678d6 | 1 | 2 | 1061.678463 | -| terp1rvy3j54kc7ealhe5fk6r37cduh69w8wk40lj03 | 0x1b091952b6c7b3dfdf344db438fb0de5f4571dd6 | 1 | 2 | 1061.678463 | -| terp1rmw6qy7rvlgw8gedz6p4cvwlas06a4jzm2wxem | 0x1edda013c367d0e3a32d16835c31dfec1faed642 | 1 | 2 | 1061.678463 | -| terp1rkrvalxk63vj9hd9phg8acw7u86vcuqxxcurpw | 0x1d86cefcd6d45922dda50dd07ee1dee1f4cc7006 | 1 | 2 | 1061.678463 | -| terp1xwy47jspzjt5vzr9mzsgvz9gsu99qwmluuhfc3 | 0x33895f4a011497460865d8a08608a8870a503b7f | 1 | 2 | 1061.678463 | -| terp1fukpdj9ayy632xsqrszrexmudm9qtlm3ggj3w2 | 0x4f2c16c8bd2135151a001c043c9b7c6eca05ff71 | 1 | 2 | 1061.678463 | -| terp16dha9exxfv7fsd7zdwx99mezrndfcs79tqpgc2 | 0xd36fd2e4c64b3c9837c26b8c52ef221cda9c43c5 | 1 | 2 | 1061.678463 | -| terp12300ujhq29ju7vn7x0uw5mutaune6nux6rs5a0 | 0x545efe4ae05165cf327e33f8ea6f8bef279d4f86 | 1 | 2 | 1061.678463 | -| terp1ynw4ud828y6cf67dy29l54mqfzr6uwv0rmjg93 | 0x24dd5e34ea393584ebcd228bfa57604887ae398f | 1 | 2 | 1061.678463 | -| terp13nh3usuyggr8mazf2hnxe2umq9wk54876qa2mq | 0x8cef1e438442067df44955e66cab9b015d6a54fe | 1 | 2 | 1061.678463 | -| terp1lqu6uxd9spcvuc9szq0tje68xzlgstdl9nta5v | 0xf839ae19a58070ce60b0101eb9674730be882dbf | 1 | 2 | 1061.678463 | -| terp1hy8j6qs3tpmestxlxwx8gsjvw7tfwjwsuqrd9c | 0xb90f2d02115877982cdf338c74424c77969749d0 | 1 | 2 | 1061.678463 | -| terp1ju44sxr60gg3ksr3lsnv5w3vph6u9upg3qhlkk | 0x972b58187a7a111b4071fc26ca3a2c0df5c2f028 | 1 | 2 | 1061.678463 | -| terp1velvffm8v8mlfnu7x0l59epwj7a00lyqgd3ysz | 0x667ec4a76761f7f4cf9e33ff42e42e97baf7fc80 | 1 | 2 | 1061.678463 | -| terp179zz9r8cjzme9c96nd8u8vvku9ynw9vthrusfj | 0xf144228cf890b792e0ba9b4fc3b196e14937158b | 1 | 2 | 1061.678463 | -| terp1ydx9xwn6uxhaxvmxn9dkf6drgmwhn3fsy99352 | 0x234c533a7ae1afd33366995b64e9a346dd79c530 | 1 | 2 | 1061.678463 | -| terp19h9dxltg80dyz77e8feezzwzzxr4e4f8gm7ay5 | 0x2dcad37d683bda417bd93a739109c211875cd527 | 1 | 2 | 1061.678463 | -| terp1595jqw9n8ux4nm3vvw08l7st2fv2ap4hgvv2ut | 0xa1692038b33f0d59ee2c639e7ffa0b5258ae86b7 | 1 | 2 | 1061.678463 | -| terp196utvad7s3ac47hhrdlgxyqkquxccl5jc3glhu | 0x2eb8b675be847b8afaf71b7e831016070d8c7e92 | 1 | 2 | 1061.678463 | -| terp1mnjcgjnszfcclfvchjf8kxym4uc0ugul3wtqsh | 0xdce5844a7012718fa598bc927b189baf30fe239f | 1 | 2 | 1061.678463 | -| terp1hk0wypp8fvpkyq53f3tkq3atuh0d0pyjhkjhma | 0xbd9ee204274b036202914c576047abe5ded78492 | 1 | 2 | 1061.678463 | -| terp19hls7gmdcvcnwdsdneukzm7ttdk6d3a2q4dd9t | 0x2dff0f236dc33137360d9e79616fcb5b6da6c7aa | 1 | 2 | 1061.678463 | -| terp1gh4ktjjjyrsu2455k0v0u2cnvjetycc5hmkdd8 | 0x45eb65ca5220e1c55694b3d8fe2b1364b2b26314 | 1 | 2 | 1061.678463 | -| terp1tn8jsd08gavuh642et3kkswapp8dqrn07zfaw0 | 0x5ccf2835e74759cbeaaacae36b41dd084ed00e6f | 1 | 2 | 1061.678463 | -| terp1as8c5atm6eqgm8j4gwmd7m6lq0eludxxdufrxy | 0xec0f8a757bd6408d9e5543b6df6f5f03f3fe34c6 | 1 | 2 | 1061.678463 | -| terp1p7y24pxyt9p2c4xy9lmg579cuvrcfvz7jj0f2q | 0x0f88aa84c45942ac54c42ff68a78b8e30784b05e | 1 | 2 | 1061.678463 | -| terp10dtcy396tlahq2ur74g4ngyuhyruddjkejnxhj | 0x7b578244ba5ffb702b83f55159a09cb907c6b656 | 1 | 2 | 1061.678463 | -| terp1mmfv3wpduyxtmq4vp2zw6674jc7ar6yugxzq00 | 0xded2c8b82de10cbd82ac0a84ed6bd5963dd1e89c | 1 | 2 | 1061.678463 | -| terp16rs06n05pa25g6uhnx7zdfcsewys8u53d0pnk4 | 0xd0e0fd4df40f55446b9799bc26a710cb8903f291 | 1 | 2 | 1061.678463 | -| terp1xygrqpjykce0zeu9pkescr7ht2hk23jmp5967t | 0x3110300644b632f167850db30c0fd75aaf65465b | 1 | 2 | 1061.678463 | -| terp10ezwqqqf4dwfy4ku4gyeqq8phk2qm8mmfw29sd | 0x7e44e00009ab5c9256dcaa099000e1bd940d9f7b | 1 | 2 | 1061.678463 | -| terp1dp76ef8pujgfmtkqtymdnzk2u3jpezvl5x0gez | 0x687daca4e1e4909daec05936d98acae4641c899f | 1 | 2 | 1061.678463 | -| terp1jpsu4sykqhe77zw3hd3zwgpf9s9hzr5p4dw90r | 0x9061cac09605f3ef09d1bb622720292c0b710e81 | 1 | 2 | 1061.678463 | -| terp1lnm5fm5twmnl8ghzedgsfp703uyjd6qesznunk | 0xfcf744ee8b76e7f3a2e2cb510487cf8f0926e819 | 1 | 2 | 1061.678463 | -| terp1lmvl7rklcmw7tpewa49e6n8wxd0fn6av8vn7du | 0xfed9ff0edfc6dde5872eed4b9d4cee335e99ebac | 1 | 2 | 1061.678463 | -| terp1w39nprkpyevujf973944k36c9gaj6e468kelw6 | 0x744b308ec12659c924be896b5b47582a3b2d66ba | 1 | 2 | 1061.678463 | -| terp1cxaqksctvh8l6h57z09vdj23q7yaxummr8sy7f | 0xc1ba0b430b65cffd5e9e13cac6c9510789d3737b | 1 | 2 | 1061.678463 | -| terp1h4g2208hty0chfkx9d8pyyjmmuz86gswcuwut2 | 0xbd50a53cf7591f8ba6c62b4e12125bdf047d220e | 1 | 2 | 1061.678463 | -| terp1hxc44lwmmyynu9xehh9mhsds9nxejs0gds0svt | 0xb9b15afddbd9093e14d9bdcbbbc1b02ccd9941e8 | 1 | 2 | 1061.678463 | -| terp1lrukfx3967mng7cjyjrpmnwyzq40e0qpr8fm86 | 0xf8f9649a25d7b7347b1224861dcdc4102afcbc01 | 1 | 2 | 1061.678463 | -| terp1jlv99qqa33eghnzdaqnypjypzsryxn4s6nvfy6 | 0x97d852801d8c728bcc4de82640c8811406434eb0 | 1 | 2 | 1061.678463 | -| terp1x6r9hy8ja0urq0lxhkd80ggtwt4mzu4zf7yxds | 0x36865b90f2ebf8303fe6bd9a77a10b72ebb172a2 | 1 | 2 | 1061.678463 | -| terp1qp7kh5rdkexrvlxs9eatsvfcycysfu3qsg3gfa | 0x007d6bd06db64c367cd02e7ab83138260904f220 | 1 | 2 | 1061.678463 | -| terp12792092p3834m7cdtm2adwuwt0uynrt6ln0t6r | 0x578aa7954189e35dfb0d5ed5d6bb8e5bf8498d7a | 1 | 2 | 1061.678463 | -| terp1jzkg0p0ewmg5wnzehppx2am8r9dpjvz7ej490e | 0x90ac8785f976d1474c59b842657767195a19305e | 1 | 2 | 1061.678463 | -| terp1wnt34dnqftmlc4hczy5renwn5p34ra0s0yqj7w | 0x74d71ab6604af7fc56f811283ccdd3a06351f5f0 | 1 | 2 | 1061.678463 | -| terp1swqms0zyd7f3r4lwyf5h2zwynfuayw2qshxfl6 | 0x8381b83c446f9311d7ee22697509c49a79d23940 | 1 | 2 | 1061.678463 | -| terp1kd4gplt5pstpez9nhtzngkyvy6r8qszufd5r2a | 0xb36a80fd740c161c88b3bac534588c268670405c | 1 | 2 | 1061.678463 | -| terp1ffhkdvk8mfpj6mplcfhep2sj2zfq74utg47ghq | 0x4a6f66b2c7da432d6c3fc26f90aa1250920f578b | 1 | 2 | 1061.678463 | -| terp1xq7avfuthz8lp2sudk09fsdvzshv8kzw2rqudc | 0x303dd6278bb88ff0aa1c6d9e54c1ac142ec3d84e | 1 | 2 | 1061.678463 | -| terp1qsgdsh2lhz5t2yyrn887jxugft8jzszvmj463t | 0x0410d85d5fb8a8b5108399cfe91b884acf21404c | 1 | 2 | 1061.678463 | -| terp17cu5gdh2yzz6qezc0rueums88ykvt45jjn65l7 | 0xf6394436ea2085a0645878f99e6e07392cc5d692 | 1 | 2 | 1061.678463 | -| terp1pce9slvz6fgf7vd5q9k0wpncm7yh59zn53skwj | 0x0e32587d82d2509f31b4016cf70678df897a1453 | 1 | 2 | 1061.678463 | -| terp13adleehasa8dckuxmh3dhn4nwf6dxwxe33zjed | 0x8f5bfce6fd874edc5b86dde2dbceb37274d338d9 | 1 | 2 | 1061.678463 | -| terp1y4vkwy332zzwad60adlvvecp02xa4rcu6x4j5w | 0x25596712315084eeb74feb7ec667017a8dda8f1c | 1 | 2 | 1061.678463 | -| terp1yhup0dzju7afy3p4a307qkmnrgafqhvp799shn | 0x25f817b452e7ba924435ec5fe05b731a3a905d81 | 1 | 2 | 1061.678463 | -| terp1dl0k2frf9mmm7sn2dd4ukjj5ephvwh5pk76r9v | 0x6fdf6524692ef7bf426a6b6bcb4a54c86ec75e81 | 1 | 2 | 1061.678463 | -| terp1hqem6f92mfnjg8wqzj5s9hsc3hegnnxgcvva7e | 0xb833bd24aada67241dc014a902de188df289ccc8 | 1 | 2 | 1061.678463 | -| terp19cyfh7uxf5vkq3l3vqpe2z9cnqngfp2ssjf77q | 0x2e089bfb864d196047f160039508b89826848550 | 1 | 2 | 1061.678463 | -| terp1p3lp2mtdqgx8mg5e6kvrrsxf40k7gulqmtpu6r | 0x0c7e156d6d020c7da299d59831c0c9abede473e0 | 1 | 2 | 1061.678463 | -| terp1y7jd0jvvdlt9ry8pmmk4ckytcs7fy3vmvyvvs4 | 0x27a4d7c98c6fd65190e1deed5c588bc43c92459b | 1 | 2 | 1061.678463 | -| terp1k8ul7ty69lnvetw88cezj78xgy8aaa9c55vt4d | 0xb1f9ff2c9a2fe6ccadc73e322978e6410fdef4b8 | 1 | 2 | 1061.678463 | -| terp1sn2kzhmr5l32fc5l6a4we2gk7rtvj3yvw5s8qw | 0x84d5615f63a7e2a4e29fd76aeca916f0d6c9448c | 1 | 2 | 1061.678463 | -| terp1thdgfs9crpdzylm03dj2zh885asnhfe03wvjjr | 0x5dda84c0b8185a227f6f8b64a15ce7a7613ba72f | 1 | 2 | 1061.678463 | -| terp103n9k3kxl73p68fnu70ffk50d2q66wur7v43w4 | 0x7c665b46c6ffa21d1d33e79e94da8f6a81ad3b83 | 1 | 2 | 1061.678463 | -| terp1hapcfc5kekmcm8jgpqlfwj5qrc8ajhel825gax | 0xbf4384e296cdb78d9e48083e974a801e0fd95f3f | 1 | 2 | 1061.678463 | -| terp17k0dd86dkexe550l4sztccywn3t8l7y8ca62lq | 0xf59ed69f4db64d9a51ffac04bc608e9c567ff887 | 1 | 2 | 1061.678463 | -| terp1eleglg45g02ym3wattntf54j3l0zlmrgmfd2k2 | 0xcff28fa2b443d44dc5dd5ae6b4d2b28fde2fec68 | 1 | 2 | 1061.678463 | -| terp17dupmnxpga3adjpdp9zwurc9qwgrsglkhtrfgf | 0xf3781dccc14763d6c82d0944ee0f0503903823f6 | 1 | 2 | 1061.678463 | -| terp1d2d5hkr65j2hfcg824haaww8avw97ql4w50dk5 | 0x6a9b4bd87aa49574e107556fdeb9c7eb1c5f03f5 | 1 | 2 | 1061.678463 | -| terp164w5ecv6dq4xumfsufzc8u7ayv9uza3mu7lrpv | 0xd55d4ce19a682a6e6d30e24583f3dd230bc1763b | 1 | 2 | 1061.678463 | -| terp18lychdxsvsnz9ksyfdkvza0racgqcztr2l078d | 0x3fc98bb4d0642622da044b6cc175e3ee100c0963 | 1 | 2 | 1061.678463 | -| terp1gn8edzvz8awc9l6fh4kkmkd8h3aezrdqe5ctpw | 0x44cf9689823f5d82ff49bd6d6dd9a7bc7b910da0 | 1 | 2 | 1061.678463 | -| terp1ztwmdvflgukm4u0nmp6tksgj0yvxeu6yk5e2h7 | 0x12ddb6b13f472dbaf1f3d874bb411279186cf344 | 1 | 2 | 1061.678463 | -| terp1lma4k2g0wn06tlztgdg46q5js9s5695qm4d70n | 0xfefb5b290f74dfa5fc4b43515d029281614d1680 | 1 | 2 | 1061.678463 | -| terp16560qtyxsz87j0870yarstdj2u73dmhcfsu4hk | 0xd534f02c86808fe93cfe793a382db2573d16eef8 | 1 | 2 | 1061.678463 | -| terp17qzsxdk3kvluz3ec7sggz5k83lt527yfu5e42u | 0xf0050336d1b33fc14738f4108152c78fd7457889 | 1 | 2 | 1061.678463 | -| terp1g7yx756raw7qv7q9qwpuu8925syxrn8fsx565m | 0x47886f5343ebbc0678050383ce1caaa40861cce9 | 1 | 2 | 1061.678463 | -| terp1jkqyhdc45nusrdptjpnq3u4ectntdamgscvh74 | 0x95804bb715a4f901b42b906608f2b9c2e6b6f768 | 1 | 2 | 1061.678463 | -| terp1gcw59wyq8ynlu77qf6mll2xa7knxuvkkm5c8yf | 0x461d42b8803927fe7bc04eb7ffa8ddf5a66e32d6 | 1 | 2 | 1061.678463 | -| terp1ljd0vs0matcll3c5fyu0yt9s83puku8dhfk0ws | 0xfc9af641fbeaf1ffc7144938f22cb03c43cb70ed | 1 | 2 | 1061.678463 | -| terp1upujkquhpaladau68ruu28vzey0hp6nyf7tfep | 0xe0792b03970f7fd6f79a38f9c51d82c91f70ea64 | 1 | 2 | 1061.678463 | -| terp1zdfzzv4dc87ghfz6jkma903kcqlj8xh5vatjtx | 0x13522132adc1fc8ba45a95b7d2be36c03f239af4 | 1 | 2 | 1061.678463 | -| terp16krlmyx9ntmsjznhregptfkkuvvt5u4zrvuuq4 | 0xd587fd90c59af7090a771e5015a6d6e318ba72a2 | 1 | 2 | 1061.678463 | -| terp1z42za59nyt3awpjfp5v36sw5c6qs2eax4tllre | 0x15542ed0b322e3d706490d191d41d4c6810567a6 | 1 | 2 | 1061.678463 | -| terp192h0kw4uhg9lnvdfq64vdxqea6w7cect4umal9 | 0x2aaefb3abcba0bf9b1a906aac69819ee9dec670b | 1 | 2 | 1061.678463 | -| terp1xu7qe9g2xx6xpmftpwmfgnlpnedcg45tw0d0ty | 0x373c0c950a31b460ed2b0bb6944fe19e5b84568b | 1 | 2 | 1061.678463 | -| terp1aqpdfp9nhha25tjl8w8qx2yn68rhsy8jsvu8lw | 0xe802d484b3bdfaaa2e5f3b8e032893d1c77810f2 | 1 | 2 | 1061.678463 | -| terp1cccsrp9v08ys9prfzq59rpf5ppmewpp92h8fk7 | 0xc6310184ac79c902846910285185340877970425 | 1 | 2 | 1061.678463 | -| terp1mazqc9qs8tcw8apf807a3vsh2nsz6xad5qhy4c | 0xdf440c14103af0e3f4293bfdd8b21754e02d1bad | 1 | 2 | 1061.678463 | -| terp1h8r6evlpd8g0hecuzwzqj557rhefktu0n9guya | 0xb9c7acb3e169d0fbe71c138409529e1df29b2f8f | 1 | 2 | 1061.678463 | -| terp1d9cc4aqa00w9t2w0c25wt95jwryn7zg5ctkwq3 | 0x69718af41d7bdc55a9cfc2a8e5969270c93f0914 | 1 | 2 | 1061.678463 | -| terp1rk9fargq76mlvhdvypuyw5gehspd5p5zscjxau | 0x1d8a9e8d00f6b7f65dac2078475119bc02da0682 | 1 | 2 | 1061.678463 | -| terp1q7pr84dp8rxs2efczdtplsnm9u0n9w52tdk6k4 | 0x078233d5a138cd05653813561fc27b2f1f32ba8a | 1 | 2 | 1061.678463 | -| terp193et2mvvpgs9l0v3yl4drqgm2640kf2q3asv8g | 0x2c72b56d8c0a205fbd9127ead1811b56aafb2540 | 1 | 2 | 1061.678463 | -| terp1pvfh3s2hzfmaalmge8953serezh5j38rsmjd8e | 0x0b1378c1571277deff68c9cb48c323c8af4944e3 | 1 | 2 | 1061.678463 | -| terp1ndg3qc04nav5u63p4lfv624s5hcnpvnpxee3q8 | 0x9b511061f59f594e6a21afd2cd2ab0a5f130b261 | 1 | 2 | 1061.678463 | -| terp18hjh7fnea8e4z7aph5dl37crhx4lwe03ct3s92 | 0x3de57f2679e9f3517ba1bd1bf8fb03b9abf765f1 | 1 | 2 | 1061.678463 | -| terp1ljttr4g83ndzhqwzmuh04nrfgmetz60wa3njrf | 0xfc96b1d5078cda2b81c2df2efacc6946f2b169ee | 1 | 2 | 1061.678463 | -| terp10e7epg4097uyk7a4am40hty50vs46kk5vh85k0 | 0x7e7d90a2af2fb84b7bb5eeeafbac947b215d5ad4 | 1 | 2 | 1061.678463 | -| terp1h8f50tkfeeak93l9l4nqttushtqpjffgrt2umv | 0xb9d347aec9ce7b62c7e5fd6605af90bac0192528 | 1 | 2 | 1061.678463 | -| terp1jmhhj8wlxeqkjdwppxwsun9k5dsfemtptdcxg3 | 0x96ef791ddf36416935c1099d0e4cb6a3609ced61 | 1 | 2 | 1061.678463 | -| terp1f77jgd2tmtccy283ndwa2u5wj422pa5panq4xf | 0x4fbd24354bdaf18228f19b5dd5728e9554a0f681 | 1 | 2 | 1061.678463 | -| terp1w53q8xlsqk3c6xwfk46d3mf704jr8e7lrcy7nu | 0x7522039bf005a38d19c9b574d8ed3e7d6433e7df | 1 | 2 | 1061.678463 | -| terp1yhmknl2rpxw7jepasvpcsg0c9kcet2zy5sc29l | 0x25f769fd43099de9643d83038821f82db195a844 | 1 | 2 | 1061.678463 | -| terp13ev2mtqjfldkarz2zzzzazqg6rl2uaqney767c | 0x8e58adac124fdb6e8c4a10842e8808d0feae7413 | 1 | 2 | 1061.678463 | -| terp1vs405nkgmpzg07ht44xkjeykt7434gdxfyr8rv | 0x642afa4ec8d84487faebad4d6964965fab1aa1a6 | 1 | 2 | 1061.678463 | -| terp1wgxlq6x2t8ugtkn80xrw0wvkss0l0vu22qu483 | 0x720df068ca59f885da677986e7b996841ff7b38a | 1 | 2 | 1061.678463 | -| terp1rcp2elaklznq3zpmlkgq57ahxdt4v56vmh0c5f | 0x1e02acffb6f8a608883bfd900a7bb7335756534c | 1 | 2 | 1061.678463 | -| terp1g7etfkarvxy99djhpsk5v7m626srtfvf5206xl | 0x47b2b4dba3618852b6570c2d467b7a56a035a589 | 1 | 2 | 1061.678463 | -| terp1fmhllhj4rn6rce8qtrjggsruys5nrfc4jn5t47 | 0x4eefffde551cf43c64e058e484407c242931a715 | 1 | 2 | 1061.678463 | -| terp1uqj2wffdznf2jyw9scjvq8mzkaj0zt8kg8znpt | 0xe024a7252d14d2a911c58624c01f62b764f12cf6 | 1 | 2 | 1061.678463 | -| terp1a05x6ejm7uc3dq8agcfhq63gxlnv4w8gj2nw0k | 0xebe86d665bf7311680fd4613706a2837e6cab8e8 | 1 | 2 | 1061.678463 | -| terp1exhhhj6fvm4x62rxtnsj6d8cjtc97rjeke8fgy | 0xc9af7bcb4966ea6d28665ce12d34f892f05f0e59 | 1 | 2 | 1061.678463 | -| terp13yf4lrl6rcg80xw2aafj33kn4eh8mpyuxhu35r | 0x89135f8ffa1e107799caef5328c6d3ae6e7d849c | 1 | 2 | 1061.678463 | -| terp1rtdxf0f423w6ezzs8nq8xqfvmk0pf9tnmhlavp | 0x1ada64bd35545dac88503cc073012cdd9e149573 | 1 | 2 | 1061.678463 | -| terp102e53j853z54lvn9x9jg990dhfg2tehcaknss9 | 0x7ab348c8f488a95fb26531648295edba50a5e6f8 | 1 | 2 | 1061.678463 | -| terp1wkskgj4aa8qnde8yt8vvc0kqdd5st037wnlhae | 0x75a1644abde9c136e4e459d8cc3ec06b6905be3e | 1 | 2 | 1061.678463 | -| terp1de4wycg0y036t8lz0vv34zzhl7gg8qfnrta8sd | 0x6e6ae2610f23e3a59fe27b191a8857ff90838133 | 1 | 2 | 1061.678463 | -| terp1gys3lqw6s9wf86juu8f7u43uadl56tzr6cpj7z | 0x41211f81da815c93ea5ce1d3ee563ceb7f4d2c43 | 1 | 2 | 1061.678463 | -| terp1pawp8f0vg8l8t966tv08d5e276hk9smpac7dvw | 0x0f5c13a5ec41fe75975a5b1e76d32af6af62c361 | 1 | 2 | 1061.678463 | -| terp19akvvl07cyeaz3wd9u5452h97we4nc2v9t3pcu | 0x2f6cc67dfec133d145cd2f295a2ae5f3b359e14c | 1 | 2 | 1061.678463 | -| terp18m7s546d7sw0p56c97hme2z2jzdcar3tjqm9s4 | 0x3efd0a574df41cf0d3582fafbca84a909b8e8e2b | 1 | 2 | 1061.678463 | -| terp170ptjf64xdhv85dcauqx2xd8h2er66efdqgnrd | 0xf3c2b92755336ec3d1b8ef006519a7bab23d6b29 | 1 | 2 | 1061.678463 | -| terp15la0p8gkp4mhex97aateppexdak6ze7ftuuuwp | 0xa7faf09d160d777c98beef579087266f6da167c9 | 1 | 2 | 1061.678463 | -| terp1lw80nhwteekztcq6keleqxqne33m4ej0dav3xy | 0xfb8ef9ddcbce6c25e01ab67f901813cc63bae64f | 1 | 2 | 1061.678463 | -| terp1pf95efhajfkc9v47g8susqt7sywhkq5uz6s5jj | 0x0a4b4ca6fd926d82b2be41e1c8017e811d7b029c | 1 | 2 | 1061.678463 | -| terp1dztzle6nhc30mxzhn43la45cvgfq44r5ur2nmm | 0x68962fe753be22fd98579d63fed69862120ad474 | 1 | 2 | 1061.678463 | -| terp1nx92ftgz4yv6s5aaya3wj9f2jtfvwk4nj78s3f | 0x998aa4ad02a919a853bd2762e9152a92d2c75ab3 | 1 | 2 | 1061.678463 | -| terp1l4sn2rudjpq6zdha8r45ylt4lszssahgw8nefk | 0xfd61350f8d9041a136fd38eb427d75fc050876e8 | 1 | 2 | 1061.678463 | -| terp15au3tuyppfvgftz2eqlhtghv5m9eykvyanagj5 | 0xa77915f0810a5884ac4ac83f75a2eca6cb925984 | 1 | 2 | 1061.678463 | -| terp1j63sjtassk369v2uqztg2p4el6kavqzks8935x | 0x96a3092fb085a3a2b15c00968506b9feadd60056 | 1 | 2 | 1061.678463 | -| terp1up6xchp686t2u56fdt764tyapjral93ppdu7eh | 0xe0746c5c3a3e96ae53496afdaaac9d0c87df9621 | 1 | 2 | 1061.678463 | -| terp19m0mrfy7vt32cvxkxsz3tzuu0tnejce7af2ukf | 0x2edfb1a49e62e2ac30d63405158b9c7ae799633e | 1 | 2 | 1061.678463 | -| terp1hpd38ptv9mfq9crl03p9gyq7ft8ewkeeef87g4 | 0xb85b13856c2ed202e07f7c4254101e4acf975b39 | 1 | 2 | 1061.678463 | -| terp1efghpxzwmlfzwhwtvkhwlgx5zatywuq86j2vpm | 0xca5170984edfd2275dcb65aeefa0d41756477007 | 1 | 2 | 1061.678463 | -| terp1k7csg9uqznexwwv425nr2nmwp65uevvm2u9kza | 0xb7b104178014f26739955526354f6e0ea9ccb19b | 1 | 2 | 1061.678463 | -| terp159amavjvqr3mpmls26rhyr8hg4nx9j7mz7c9jf | 0xa17bbeb24c00e3b0eff05687720cf7456662cbdb | 1 | 2 | 1061.678463 | -| terp1lpq5vy6aya2dklcgvyf2ygdqq89xyaaperfruc | 0xf84146135d2754db7f086112a221a001ca6277a1 | 1 | 2 | 1061.678463 | -| terp1up5qnq0rep46dr6ux9sth8yk4xz0fhqq4ysfce | 0xe0680981e3c86ba68f5c3160bb9c96a984f4dc00 | 1 | 2 | 1061.678463 | -| terp1txs4pss2r2c42whagg2halhxlea8kkfxmsd8ke | 0x59a150c20a1ab1553afd42157efee6fe7a7b5926 | 1 | 2 | 1061.678463 | -| terp1fa7vrzf8kzuh87s3azrpax5ma64h7nn9j8gu7c | 0x4f7cc18927b0b973fa11e8861e9a9beeab7f4e65 | 1 | 2 | 1061.678463 | -| terp1z9zlm76d09lqcnp9732v4u8l8dhh9rdx7h4rud | 0x1145fdfb4d797e0c4c25f454caf0ff3b6f728da6 | 1 | 2 | 1061.678463 | -| terp1qpezhmr5nsqg67wtn939zezjxkmpr98jt230ng | 0x00722bec749c008d79cb996251645235b61194f2 | 1 | 2 | 1061.678463 | -| terp12fj505chgp0jfs623p7yamu3334errrs84c287 | 0x526547d317405f24c34a887c4eef918c6b918c70 | 1 | 2 | 1061.678463 | -| terp1e8lyh7787wd4x57pxcs0sj7a8ggrt9gy2nm5an | 0xc9fe4bfbc7f39b5353c13620f84bdd3a10359504 | 1 | 2 | 1061.678463 | -| terp1jddtpkxgzpc0sxvfshy2xyhhfj4zkw8qa97z23 | 0x935ab0d8c81070f8198985c8a312f74caa2b38e0 | 1 | 2 | 1061.678463 | -| terp1t0stmwvv2dv920l4yaea4fll6g7jgurr565try | 0x5be0bdb98c5358553ff52773daa7ffd23d247063 | 1 | 2 | 1061.678463 | -| terp1ws97p664g0dxfj8z5wmfthyfaq72hf37melhdn | 0x740be0eb5543da64c8e2a3b695dc89e83caba63e | 1 | 2 | 1061.678463 | -| terp1lh8zmu3m6cn9uux6eqw3xc6f5yrz2t7mc8kxql | 0xfdce2df23bd6265e70dac81d136349a106252fdb | 1 | 2 | 1061.678463 | -| terp1nkew9stggesnmpvqpqz3jslraptumpwpgzrkup | 0x9db2e2c16846613d858008051943e3e857cd85c1 | 1 | 2 | 1061.678463 | -| terp1mr9p2cpq2m9dvtr9l6k8upekyn29w6t6smkfzd | 0xd8ca15602056cad62c65feac7e073624d457697a | 1 | 2 | 1061.678463 | -| terp1jml64dh56u0u5dg8aj4zvec87xj2ajtfsjf7rf | 0x96ffaab6f4d71fca3507ecaa266707f1a4aec969 | 1 | 2 | 1061.678463 | -| terp10qq7szwykhrnx98uwnupgsakuwz9dpkdwf9f4t | 0x7801e809c4b5c73314fc74f81443b6e3845686cd | 1 | 2 | 1061.678463 | -| terp1yc3hlwf0u8al3lggd2pvvzvxzd9wdmctjgtuur | 0x26237fb92fe1fbf8fd086a82c60986134ae6ef0b | 1 | 2 | 1061.678463 | -| terp1pq5kndwaxh6v6s5n5ag432sq2svharn7c48dpu | 0x082969b5dd35f4cd4293a75158aa0054197e8e7e | 1 | 2 | 1061.678463 | diff --git a/eth/addresses/hlk.md b/eth/addresses/hlk.md deleted file mode 100644 index 5ac85c3..0000000 --- a/eth/addresses/hlk.md +++ /dev/null @@ -1,345 +0,0 @@ -# HLK Address Conversion -| Terp Public Address | Ethereum Public Address | Tokens Held | Points | Airdrop Allocation | -|----------------------|--------------------------|---------------|-------------|--------------------| -|terp168fxarmuw9uplj38n7udpgm5lw55xyvn5ej8as | 0xd1d26e8f7c71781fca279fb8d0a374fba9431193 | 116 | 6 | 5663.577386 | | -| terp1pw6jr0tt9g8tsxs82rsd0rzsj9ej8k2ch0cm2u | 0x0bb521bd6b2a0eb81a0750e0d78c50917323d958 | 45 | 6 | 5663.577386 | | -| terp1pn9ja8aklkdqe4frd8yzk8aw9zz538kwh3kc3j | 0x0ccb2e9fb6fd9a0cd52369c82b1fae2885489ece | 31 | 6 | 5663.577386 | | -| terp1rt9sh4f9kqhy3ld7j6a0f63kd4lax24wquktex | 0x1acb0bd525b02e48fdbe96baf4ea366d7fd32aae | 24 | 6 | 5663.577386 | | -| terp1xc77hguuy6gct9923sp3j2fl5597qvd0n567an | 0x363deba39c26918594aa8c0319293fa50be031af | 20 | 6 | 5663.577386 | | -| terp1f4q7x4j72aedm0lq07lvnqqn56yfyzqxxfev0z | 0x4d41e3565e5772ddbfe07fbec98013a688920806 | 20 | 6 | 5663.577386 | | -| terp1n6kmfs8rwdqyazdcj94299del4vh5rv3k5wx8n | 0x9eadb4c0e373404e89b8916aa295b9fd597a0d91 | 20 | 6 | 5663.577386 | | -| terp178cg5kvkuaus5k9j28zau0rc6a2uzql7mmq3xh | 0xf1f08a5996e7790a58b251c5de3c78d755c103fe | 20 | 6 | 5663.577386 | | -| terp1t67tyz775smyk0qj06geryhnwd8yfsfjjsnmx2 | 0x5ebcb20bdea4364b3c127e919192f3734e44c132 | 16 | 6 | 5663.577386 | | -| terp1k4y7nzgu0g49pqfstgqrhwcz4skwxz9xfs0xd9 | 0xb549e9891c7a2a5081305a003bbb02ac2ce308a6 | 15 | 6 | 5663.577386 | | -| terp1m6m5pejjh52pr0898km6nj48hy7y4z5mj5t32a | 0xdeb740e652bd1411bce53db7a9caa7b93c4a8a9b | 14 | 6 | 5663.577386 | | -| terp1dxz2hat0q75mwluuseg9vcklq24arr9f0s83ek | 0x6984abf56f07a9b77f9c86505662df02abd18ca9 | 12 | 6 | 5663.577386 | | -| terp1rsxht74p8mne7arxrzpndzwueunssxctagkued | 0x1c0d75faa13ee79f746618833689dccf27081b0b | 11 | 6 | 5663.577386 | | -| terp18ydc0v0894n58cy6a6k8ju4d7phy96xzuewv6u | 0x391b87b1e72d6743e09aeeac7972adf06e42e8c2 | 11 | 6 | 5663.577386 | | -| terp1672phfxgw4tf7aes62xz9fanee32r4x5r4d6qr | 0xd7941ba4c875569f7730d28c22a7b3ce62a1d4d4 | 11 | 6 | 5663.577386 | | -| terp1rl0zapjh7rhnnuh6tx0cwx8vu9482qmhh8dfn6 | 0x1fde2e8657f0ef39f2fa599f8718ece16a750377 | 10 | 6 | 5663.577386 | | -| terp1y2txq3rx7v8z7vyvd9zavvs2tvnrdvhqexe338 | 0x2296604466f30e2f308c6945d6320a5b2636b2e0 | 10 | 6 | 5663.577386 | | -| terp19rvh4hg8p5nw2hz7ff0cv0cltlh8vgwl7slnv5 | 0x28d97add070d26e55c5e4a5f863f1f5fee7621df | 10 | 6 | 5663.577386 | | -| terp1xtc79zmjzx45xqjvj0a6qkl3hzss76529fjc0g | 0x32f1e28b7211ab43024c93fba05bf1b8a10f6a8a | 10 | 6 | 5663.577386 | | -| terp18ml4j2ag5j0ezh3ckun5af8lp246erhlsc9p83 | 0x3eff592ba8a49f915e38b7274ea4ff0aabac8eff | 10 | 6 | 5663.577386 | | -| terp1ga7ma3vt44hkxxx2wzhl9kv48w3mfh9mahpxy0 | 0x477dbec58bad6f6318ca70aff2d9953ba3b4dcbb | 10 | 6 | 5663.577386 | | -| terp1t043t0fsgpm59negf5cxra3pqvvatzfhuqj9c5 | 0x5beb15bd30407742cf284d3061f6210319d58937 | 10 | 6 | 5663.577386 | | -| terp1dyst4axztwm6cszalzedxatde4gjwgeytntz77 | 0x6920baf4c25bb7ac405df8b2d3756dcd51272324 | 10 | 6 | 5663.577386 | | -| terp1dwvng2xdkstzetrdjay6hv6jgskwcastjrkhw5 | 0x6b993428cdb4162cac6d9749abb352442cec760b | 10 | 6 | 5663.577386 | | -| terp1srxsdpzvmh0v2wyf4kz95zpcxagm6veqs4mwa9 | 0x80cd06844cdddec53889ad845a08383751bd3320 | 10 | 6 | 5663.577386 | | -| terp1j8dk9waj5qmpm0t95r5my6gdhm5t2kesce7ajt | 0x91db62bbb2a0361dbd65a0e9b2690dbee8b55b30 | 10 | 6 | 5663.577386 | | -| terp1jujcsyrywndvptskdfwwxdwkerg3g4mxw99ymp | 0x972588106474dac0ae166a5ce335d6c8d1145766 | 10 | 6 | 5663.577386 | | -| terp1nl3yu3lpv3ts3ftjv807vuvu2nqw507kmjs6ak | 0x9fe24e47e1645708a57261dfe6719c54c0ea3fd6 | 10 | 6 | 5663.577386 | | -| terp15qvm3sv3gn73fds5x64navukgfp55xj8m2u6f9 | 0xa019b8c19144fd14b61436ab3eb39642434a1a47 | 10 | 6 | 5663.577386 | | -| terp1484a9pdw6053s5r7rg233r6fsmlmh50j809exq | 0xa9ebd285aed3e918507e1a15188f4986ffbbd1f2 | 10 | 6 | 5663.577386 | | -| terp1k8xxud6sumy6advjd7jhn74ajkvaj6n4mqcltw | 0xb1cc6e3750e6c9aeb5926fa579fabd9599d96a75 | 10 | 6 | 5663.577386 | | -| terp1kvfarxsd708gxd2xxp2jsuup2l8f7pw7jeems2 | 0xb313d19a0df3ce833546305528738157ce9f05de | 10 | 6 | 5663.577386 | | -| terp1luyy00tvsjas9wcdcct7t800vn3sn36k5z05s3 | 0xff0847bd6c84bb02bb0dc617e59def64e309c756 | 10 | 6 | 5663.577386 | | -| terp1g9qjscq6jvh8m3zn25vrezsg53hxf9a0va6t3p | 0x414128601a932e7dc45355183c8a08a46e6497af | 9 | 4 | 3775.718258 | | -| terp1ch35nj9ekwq796zfaheduwpxfesdpshce57tav | 0xc5e349c8b9b381e2e849edf2de38264e60d0c2f8 | 9 | 4 | 3775.718258 | | -| terp14w0u43pvu4s5ckfyy6uq7w35cw7lme5cklesxq | 0xab9fcac42ce5614c592426b80f3a34c3bdfde698 | 8 | 4 | 3775.718258 | | -| terp1ehx53am6xnwru8gj5runkam803mfjwr9a89zv2 | 0xcdcd48f77a34dc3e1d12a0f93b77677c76993865 | 8 | 4 | 3775.718258 | | -| terp1ql27g3ctz0vdmh9emz283yvhaymx49falg2wmp | 0x07d5e4470b13d8dddcb9d894789197e9366a953d | 7 | 4 | 3775.718258 | | -| terp1prtpjxle2jxyr5w7kwcqlac2w5umgkzpxf74e4 | 0x08d6191bf9548c41d1deb3b00ff70a7539b45841 | 7 | 4 | 3775.718258 | | -| terp1fgqpps22a8qw0ng85y9gscxvexff47ssxwdt0u | 0x4a0010c14ae9c0e7cd07a10a8860ccc9929afa10 | 7 | 4 | 3775.718258 | | -| terp156lnjyx2r4k6slgcpv76vgm62p3n5nrj9w6vxq | 0xa6bf3910ca1d6da87d180b3da6237a50633a4c72 | 7 | 4 | 3775.718258 | | -| terp1ppgcsk3t4mymu7c99l4ffleprepq0mhju9qd00 | 0x0851885a2baec9be7b052fea94ff211e4207eef2 | 6 | 4 | 3775.718258 | | -| terp1zvdxvp4tfnuveu8k0jhwqzwqg2gledrmh8vg3j | 0x131a6606ab4cf8ccf0f67caee009c04291fcb47b | 6 | 4 | 3775.718258 | | -| terp1z3uwpx0c03jz23mgwzqwssglwywcwjffrg704n | 0x1478e099f87c642547687080e8411f711d874929 | 6 | 4 | 3775.718258 | | -| terp197urtlez7zny3klxcyqptyrnnmektmsaprv6pv | 0x2fb835ff22f0a648dbe6c1001590739ef365ee1d | 6 | 4 | 3775.718258 | | -| terp1g53czc0fpxfp5wpfcsp9x7ssg9h02heckwhfla | 0x45238161e909921a3829c402537a10416ef55f38 | 6 | 4 | 3775.718258 | | -| terp1fglqje5m2hcwjdwevgcexq06ul9aq9fy8dg9s3 | 0x4a3e09669b55f0e935d962319301fae7cbd01524 | 6 | 4 | 3775.718258 | | -| terp1tjlzz0ha4e2cqmmw8kw9778qh7rrewwwvyz0nu | 0x5cbe213efdae55806f6e3d9c5f78e0bf863cb9ce | 6 | 4 | 3775.718258 | | -| terp1tuefn3g72hxhs8u7wsrfq4d6e5lssm7tjvx02x | 0x5f3299c51e55cd781f9e74069055bacd3f086fcb | 6 | 4 | 3775.718258 | | -| terp1v7rs7dj38r5sz9gy062f53fyq8n5yznryxffku | 0x67870f365138e90115047e949a452401e7420a63 | 6 | 4 | 3775.718258 | | -| terp1nkmg6tr9vfl52y9yn4ct2fuhngeugjqjdlcqgy | 0x9db68d2c65627f4510a49d70b527979a33c44812 | 6 | 4 | 3775.718258 | | -| terp1kpuayja8dhmjpra4tgz8yaw3lpehv49kwlpv27 | 0xb079d24ba76df7208fb55a047275d1f8737654b6 | 6 | 4 | 3775.718258 | | -| terp1c07tvhwy67rrtwz2ftjc7zaa5xqtj6yxnr4cqc | 0xc3fcb65dc4d78635b84a4ae58f0bbda180b96886 | 6 | 4 | 3775.718258 | | -| terp16gq2sh5wkc7mf0fcuxghnjp32s7t9k2w36fa7c | 0xd200a85e8eb63db4bd38e19179c831543cb2d94e | 6 | 4 | 3775.718258 | | -| terp1m3f6tvegran66fslqn6wpmrdecp7a62hdmkw5f | 0xdc53a5b3281f67ad261f04f4e0ec6dce03eee957 | 6 | 4 | 3775.718258 | | -| terp17d246ssu8uap2zgu2z8d2e9uu0ksk8eaujxqzw | 0xf3555d421c3f3a15091c508ed564bce3ed0b1f3d | 6 | 4 | 3775.718258 | | -| terp1r8uqzuv89dz5taqec2pcy7pnfvj9wu7rnlxk09 | 0x19f80171872b4545f419c2838278334b245773c3 | 5 | 4 | 3775.718258 | | -| terp1x8pklpyga7hewt2zwjseuzdak3dhhy20fhmvqa | 0x31c36f8488efaf972d4274a19e09bdb45b7b914f | 5 | 4 | 3775.718258 | | -| terp185h3zre4d63uhegpe0730mcj79a3nqyeqs8yy8 | 0x3d2f110f356ea3cbe501cbfd17ef12f17b198099 | 5 | 4 | 3775.718258 | | -| terp1f5p007xs88n9wds2acj40fvhjn077stjrtlcpj | 0x4d02f7f8d039e657360aee2557a59794dfef4172 | 5 | 4 | 3775.718258 | | -| terp1txckyltvw6atg6hj6szk5z0xzcfjp3prd0hxh3 | 0x59b1627d6c76bab46af2d4056a09e6161320c423 | 5 | 4 | 3775.718258 | | -| terp1dxvx6kh5s8q5egf4rj8nxz355zhumy9aua9mpr | 0x69986d5af481c14ca1351c8f330a34a0afcd90bd | 5 | 4 | 3775.718258 | | -| terp1dmjjmk7gp2hw76qz84yyealeg3x3p63p3amlx9 | 0x6ee52ddbc80aaeef68023d484cf7f9444d10ea21 | 5 | 4 | 3775.718258 | | -| terp1s2qf4h4jvxtk24fugk4m0ngzee0xeyeud2m899 | 0x82809adeb2619765553c45abb7cd02ce5e6c933c | 5 | 4 | 3775.718258 | | -| terp13sm2a0zaepdc3tev7n9kw3c329ktlpuaphk734 | 0x8c36aebc5dc85b88af2cf4cb674711516cbf879d | 5 | 4 | 3775.718258 | | -| terp1ncywfucclumr8ute0a579t7h09j2haupwmjp74 | 0x9e08e4f318ff3633f1797f69e2afd77964abf781 | 5 | 4 | 3775.718258 | | -| terp140xcx8hdd8lqykhwaz9x4pmsaucrqvtpzer43g | 0xabcd831eed69fe025aeee88a6a8770ef30303161 | 5 | 4 | 3775.718258 | | -| terp144mty5x4n6u266eep9928mke2788ecg3q4ea8r | 0xad76b250d59eb8ad6b39094aa3eed9578e7ce111 | 5 | 4 | 3775.718258 | | -| terp1467zva6gnlx5pa2lsgmndvu3cts6ef9y27e7q0 | 0xaebc2677489fcd40f55f823736b391c2e1aca4a4 | 5 | 4 | 3775.718258 | | -| terp1kx7kuy8382uug4qmlmzmnuf7xu42xsgytpqly4 | 0xb1bd6e10f13ab9c4541bfec5b9f13e372aa34104 | 5 | 4 | 3775.718258 | | -| terp1kuvdzvet7dndt5nnxr5z3659u6l96265skgtr6 | 0xb718d1332bf366d5d27330e828ea85e6be5d2b54 | 5 | 4 | 3775.718258 | | -| terp1cm908ecxjuenz5jygu2c7g8dcrzhqq53glgmxz | 0xc6caf3e706973331524447158f20edc0c5700291 | 5 | 4 | 3775.718258 | | -| terp1etd5fn2uy2gg39n8dwd5ewspz7sn327876m4c4 | 0xcadb44cd5c22908896676b9b4cba0117a138abc7 | 5 | 4 | 3775.718258 | | -| terp160350wuhu73kc8cvx4khj63mjt95mxn2kcldwt | 0xd3e347bb97e7a36c1f0c356d796a3b92cb4d9a6a | 5 | 4 | 3775.718258 | | -| terp1ap5cvr5sy9xvnjezrc2tsv2fhnntzhaexnz0z3 | 0xe869860e90214cc9cb221e14b83149bce6b15fb9 | 5 | 4 | 3775.718258 | | -| terp170mm8m0qux24m5q3q9lvqw97mhescq6ke5tuvd | 0xf3f7b3ede0e1955dd011017ec038beddf30c0356 | 5 | 4 | 3775.718258 | | -| terp1pxzxe8k4645m8sjznvpejl9f7778vwf6t6gr93 | 0x09846c9ed5d569b3c2429b03997ca9f7bc76393a | 4 | 4 | 3775.718258 | | -| terp1yzgrz5738mpyp7uflt4unmm9e0rdsr4kl62l5n | 0x20903153d13ec240fb89faebc9ef65cbc6d80eb6 | 4 | 4 | 3775.718258 | | -| terp1ylmsvtv8guzx6npk0cv6nx2335l8u2436jj6q7 | 0x27f7062d8747046d4c367e19a999518d3e7e2ab1 | 4 | 4 | 3775.718258 | | -| terp19kwtcnk0h5dc7e420x8a29v94czcm25t2t2z93 | 0x2d9cbc4ecfbd1b8f66aa798fd51585ae058daa8b | 4 | 4 | 3775.718258 | | -| terp1x32r4gth6y852pcpgsy3ymjfnc52cy3dx36nvu | 0x34543aa177d10f4507014409126e499e28ac122d | 4 | 4 | 3775.718258 | | -| terp1ggekc8w795632u28udyfs2rdxmk9cjedsxyjrs | 0x42336c1dde2d35157147e34898286d36ec5c4b2d | 4 | 4 | 3775.718258 | | -| terp129qfhmjxve9eq3rnrqj90zuaxgfmlej8qk4ktz | 0x51409bee46664b9044731824578b9d3213bfe647 | 4 | 4 | 3775.718258 | | -| terp1tjrk95lqp4s2yv6jyr9y0h260m5l0u7sxtm6wx | 0x5c8762d3e00d60a2335220ca47dd5a7ee9f7f3d0 | 4 | 4 | 3775.718258 | | -| terp1t5p0p5r5k2xrz6tm743udxwqnpfjlv23sp7ete | 0x5d02f0d074b28c31697bf563c699c098532fb151 | 4 | 4 | 3775.718258 | | -| terp1t7fwuv0rh9u34exduume99u55kurmd542yenmt | 0x5f92ee31e3b9791ae4cde737929794a5b83db695 | 4 | 4 | 3775.718258 | | -| terp1vtk7634p4lf4y9ffegq605q6kwtcyy7xf5pg7g | 0x62eded46a1afd3521529ca01a7d01ab3978213c6 | 4 | 4 | 3775.718258 | | -| terp1dq6uz2apa3v8pxj5suwr32jr4aasavjg5k4kxt | 0x6835c12ba1ec58709a54871c38aa43af7b0eb248 | 4 | 4 | 3775.718258 | | -| terp1d8m0akur8w9yu6ezqcj44yr70slzztrr4nx4f9 | 0x69f6fedb833b8a4e6b2206255a907e7c3e212c63 | 4 | 4 | 3775.718258 | | -| terp1wqsg26zttdpznugp0mcau8nhgcc7z2r99cp0ww | 0x702085684b5b4229f1017ef1de1e774631e12865 | 4 | 4 | 3775.718258 | | -| terp1sldd4mqh849uztlffdl503ntvg5ssnhl7azg6l | 0x87dadaec173d4bc12fe94b7f47c66b6229084eff | 4 | 4 | 3775.718258 | | -| terp13aezv40ngf5n3mscj7lvlvujkfa8g2qj4rwvy8 | 0x8f722655f3426938ee1897becfb392b27a742812 | 4 | 4 | 3775.718258 | | -| terp1n9p84akm2zrh9tlnz4ulz6489yrl7pykj7t0w6 | 0x99427af6db508772aff31579f16aa72907ff0496 | 4 | 4 | 3775.718258 | | -| terp1n5aa3sq0k6xef4688flr90x0yd0hgl80sljq3q | 0x9d3bd8c00fb68d94d7473a7e32bccf235f747cef | 4 | 4 | 3775.718258 | | -| terp1hf26ftvtp8zn9l2lxvrk3fwyzhju66ymkvnvh5 | 0xba55a4ad8b09c532fd5f330768a5c415e5cd689b | 4 | 4 | 3775.718258 | | -| terp1cce5elccamvt8kwqs7hh897j2dvj0aajm2xqdc | 0xc6334cff18eed8b3d9c087af7397d2535927f7b2 | 4 | 4 | 3775.718258 | | -| terp1636jh3yvqjldmlj262snjm4zx0jufuaar7yaeg | 0xd4752bc48c04beddfe4ad2a1396ea233e5c4f3bd | 4 | 4 | 3775.718258 | | -| terp1mh8pc5anqa2c47v452pytgne42a6fvmlw00vs3 | 0xddce1c53b307558af995a28245a279aabba4b37f | 4 | 4 | 3775.718258 | | -| terp1udfqfez2tnqj3ukn4k78ts8p0dlk4y7nzyz0l3 | 0xe35204e44a5cc128f2d3adbc75c0e17b7f6a93d3 | 4 | 4 | 3775.718258 | | -| terp1ap6vwak032kxrf5q3cc97d0gzp3unxetzrvzs2 | 0xe874c776cf8aac61a6808e305f35e81063c99b2b | 4 | 4 | 3775.718258 | | -| terp176vu43mv7w5j7stn7nuz0tw8hgcqka7z93wefm | 0xf699cac76cf3a92f4173f4f827adc7ba300b77c2 | 4 | 4 | 3775.718258 | | -| terp1qms6hza2ysdc55nahseq2uest3lwspfg4cnpjm | 0x06e1ab8baa241b8a527dbc320573305c7ee80528 | 3 | 4 | 3775.718258 | | -| terp1qugny3ynwqgylr8jc2c4uefnnlssk2hz5tapvy | 0x071132449370104f8cf2c2b15e65339fe10b2ae2 | 3 | 4 | 3775.718258 | | -| terp1qaavr8lef4r0w9275esvj24480ugdpmrg2jtvs | 0x077ac19ff94d46f7155ea660c92ab53bf8868763 | 3 | 4 | 3775.718258 | | -| terp1q78lj7u4vgpmult2h974dehpa96kmj4sj3e6cf | 0x078ff97b956203be7d6ab97d56e6e1e9756dcab0 | 3 | 4 | 3775.718258 | | -| terp1pen2w9g83gyk0zcyp2n9gcc7alwv0535vzxqs2 | 0x0e66a715078a09678b040aa654631eefdcc7d234 | 3 | 4 | 3775.718258 | | -| terp1zgj4a0mdxxs4xcp298dx342u6qc94hz8ezdjwx | 0x12255ebf6d31a153602a29da68d55cd0305adc47 | 3 | 4 | 3775.718258 | | -| terp1zdazz2dghexqsrwktpxnzvp8dc2pegq9p6df2c | 0x137a2129a8be4c080dd6584d3130276e141ca005 | 3 | 4 | 3775.718258 | | -| terp1zjhasra748qqfcrlhrrqc8ytfp5msu9lzv7zam | 0x14afd80fbea9c004e07fb8c60c1c8b4869b870bf | 3 | 4 | 3775.718258 | | -| terp1z76y3tg4mk848j3fyjdejc84eckfh54xw9kkax | 0x17b448ad15dd8f53ca29249b9960f5ce2c9bd2a6 | 3 | 4 | 3775.718258 | | -| terp1yw0ydguyxpv2v2sen43h2tmc35fjl46ppa8xjd | 0x239e46a3843058a62a199d63752f788d132fd741 | 3 | 4 | 3775.718258 | | -| terp1yjanlwaf9wtfwjrmnnn7y9kq8flx5wxwrlzq6c | 0x24bb3fbba92b9697487b9ce7e216c03a7e6a38ce | 3 | 4 | 3775.718258 | | -| terp19860udjn8ryz3whxzgcwsjwp26jr8s2lsdkej0 | 0x29f4fe365338c828bae61230e849c156a433c15f | 3 | 4 | 3775.718258 | | -| terp19d8pf8sz5nw6xhyh0c54n7dz0mym27lkkn4wft | 0x2b4e149e02a4dda35c977e2959f9a27ec9b57bf6 | 3 | 4 | 3775.718258 | | -| terp19wq4rl3lflnsgep8dpgt8wmyx7h55jnhf3kvav | 0x2b8151fe3f4fe70464276850b3bb6437af4a4a77 | 3 | 4 | 3775.718258 | | -| terp18dxmx9acz5xa7y6cl2e54jauvrcsnyvj2tqy9k | 0x3b4db317b8150ddf1358fab34acbbc60f1099192 | 3 | 4 | 3775.718258 | | -| terp1gp0hdt46l4sm84zvlcfvv9qk4vmsnrz0r9gf2w | 0x405f76aebafd61b3d44cfe12c61416ab37098c4f | 3 | 4 | 3775.718258 | | -| terp1grpwqa8fgeertxsaftgxwanxc52fqrh7k2caz6 | 0x40c2e074e94672359a1d4ad0677666c514900efe | 3 | 4 | 3775.718258 | | -| terp1frkf6ggp36dguuxjdtyndefl73fj4j8cv079es | 0x48ec9d21018e9a8e70d26ac936e53ff4532ac8f8 | 3 | 4 | 3775.718258 | | -| terp1fy3hvwqnvct5u56ckawa87al744jyv78l25hwm | 0x492376381366174e5358b75dd3fbbff56b2233c7 | 3 | 4 | 3775.718258 | | -| terp1feclclrpwn72k0tm08glqlkxyc7v8mmunqh6h9 | 0x4e71fc7c6174fcab3d7b79d1f07ec6263cc3ef7c | 3 | 4 | 3775.718258 | | -| terp1f6fhanaq9rj3yez7ykuuzwf0s73jfg533mkcnm | 0x4e937ecfa028e512645e25b9c1392f87a324a291 | 3 | 4 | 3775.718258 | | -| terp12gnq3ldnthewhmuw95us9wvtn3twsxm7qnsa8v | 0x522608fdb35df2ebef8e2d3902b98b9c56e81b7e | 3 | 4 | 3775.718258 | | -| terp12us4z32qtncgd6d95qf4rx23txrl09zml8wsnu | 0x57215145405cf086e9a5a0135199515987f7945b | 3 | 4 | 3775.718258 | | -| terp1t3u6j6gx4n4gw5pt309j373shg8d9y5gqeytkf | 0x5c79a96906acea87502b8bcb28fa30ba0ed29288 | 3 | 4 | 3775.718258 | | -| terp1t69mzu00knh3mfu508ref4dca32syvl3ksnjr4 | 0x5e8bb171efb4ef1da79479c794d5b8ec550233f1 | 3 | 4 | 3775.718258 | | -| terp1d9r90ct993a07gpyp4wue9tx5wnyz9ywdu0nt4 | 0x694657e1652c7aff20240d5dcc9566a3a641148e | 3 | 4 | 3775.718258 | | -| terp1d6aep7dvhu5qwp7x4ey3njtaljxep3ux50wu9p | 0x6ebb90f9acbf280707c6ae4919c97dfc8d90c786 | 3 | 4 | 3775.718258 | | -| terp1w2zn032tr8c5xlhyzck3279hadfxvkgc5kydqf | 0x728537c54b19f1437ee4162d1578b7eb52665918 | 3 | 4 | 3775.718258 | | -| terp1ws08kjjynkcupu6rzfckm4a6g6hqh93294tm96 | 0x741e7b4a449db1c0f34312716dd7ba46ae0b962a | 3 | 4 | 3775.718258 | | -| terp1wcqstandxjrhc27y83ngrg8ypw3t6ksz8kd0cw | 0x760105f66d34877c2bc43c6681a0e40ba2bd5a02 | 3 | 4 | 3775.718258 | | -| terp1wc6lx9ackdjahlews74vaxj4dxzr7a5egr507k | 0x7635f317b8b365dbff2e87aace9a5569843f7699 | 3 | 4 | 3775.718258 | | -| terp1wmhle9z5twg7crgsfks0376hhmrhvuax3sj3j5 | 0x76effc94545b91ec0d104da0f8fb57bec77673a6 | 3 | 4 | 3775.718258 | | -| terp10yk26xdrtq9a382hvlsvgpzyktytd2ygvxxnt7 | 0x792cad19a3580bd89d5767e0c40444b2c8b6a888 | 3 | 4 | 3775.718258 | | -| terp1009hh4nkfrvl8j6dw0rha34erawwv3ql3w08c7 | 0x7bcb7bd67648d9f3cb4d73c77ec6b91f5ce6441f | 3 | 4 | 3775.718258 | | -| terp10ad02zw7vhzplquv5sw6wy5hklnwg6jd9g4f5r | 0x7f5af509de65c41f838ca41da71297b7e6e46a4d | 3 | 4 | 3775.718258 | | -| terp1srp75lxmaq06x003znrfp98xsgj8a0cqvx3nme | 0x80c3ea7cdbe81fa33df114c69094e682247ebf00 | 3 | 4 | 3775.718258 | | -| terp1srhxvudqnkhgd30sr7m8e986vcq8phhv586qw4 | 0x80ee6671a09dae86c5f01fb67c94fa660070deec | 3 | 4 | 3775.718258 | | -| terp1sdypggzf6qmqggzks4xmfykuyrfu7evrehs050 | 0x8348142049d036042056854db492dc20d3cf6583 | 3 | 4 | 3775.718258 | | -| terp138syf5a5tc485v9a56fn7w82exsjnwjphhcv2h | 0x89e044d3b45e2a7a30bda6933f38eac9a129ba41 | 3 | 4 | 3775.718258 | | -| terp1jpjqj4ypp2ef4vz3fh85k9wa2dzvakrvpj0wnp | 0x90640954810ab29ab0514dcf4b15dd5344ced86c | 3 | 4 | 3775.718258 | | -| terp1jwd58wz63vj00sm72ldk37uq5d2kecldkz9mzw | 0x939b43b85a8b24f7c37e57db68fb80a3556ce3ed | 3 | 4 | 3775.718258 | | -| terp1n6sdxr3vsqt3uxhvugk5ranupd92q2lckqtyyw | 0x9ea0d30e2c80171e1aece22d41f67c0b4aa02bf8 | 3 | 4 | 3775.718258 | | -| terp15yprkud6vuprmsr4tv9xnt2fwclv6x5fjfxcap | 0xa1023b71ba67023dc0755b0a69ad49763ecd1a89 | 3 | 4 | 3775.718258 | | -| terp15tn0kk7g37ef4ptut75dqagqky6ac824czsc40 | 0xa2e6fb5bc88fb29a857c5fa8d07500b135dc1d55 | 3 | 4 | 3775.718258 | | -| terp15cf7ps7e5lvmwkefcz29d87h8cx8wrfxn86l8z | 0xa613e0c3d9a7d9b75b29c094569fd73e0c770d26 | 3 | 4 | 3775.718258 | | -| terp14xq8dsna70073t6adrvtaz87c5yj9sr75t5uk0 | 0xa98076c27df3dfe8af5d68d8be88fec50922c07e | 3 | 4 | 3775.718258 | | -| terp14dgpn9lnm8ujnu9975ncaa6q8dgxjdn59eyzpu | 0xab501997f3d9f929f0a5f5278ef7403b50693674 | 3 | 4 | 3775.718258 | | -| terp14hap3er6xc4dqdzgdt2607q424aqqu925gc00e | 0xadfa18e47a362ad034486ad5a7f815557a0070aa | 3 | 4 | 3775.718258 | | -| terp1kp4hwa7v25rzfs26ppzkpxgsc2w9hpg2lhdlna | 0xb06b7777cc550624c15a0845609910c29c5b850a | 3 | 4 | 3775.718258 | | -| terp1kzv8usyv7y3qydjmwueudkrsc2u36q0hrjs4cw | 0xb0987e408cf12202365b7733c6d870c2b91d01f7 | 3 | 4 | 3775.718258 | | -| terp1k3vjx2qydrea28za9pquctwp5arcdgesy8pcy4 | 0xb45923280468f3d51c5d2841cc2dc1a74786a330 | 3 | 4 | 3775.718258 | | -| terp1keghcnx6lu53s847z7522g3c6kze6ldjh7avmz | 0xb6517c4cdaff29181ebe17a8a52238d5859d7db2 | 3 | 4 | 3775.718258 | | -| terp1kadzh69k9l8c7ph3h8rr9rt2q4fssmvvpac7aq | 0xb75a2be8b62fcf8f06f1b9c6328d6a0553086d8c | 3 | 4 | 3775.718258 | | -| terp1cfpwcm8ue82nalnm370dvj2c8cwtrcfhd3kgzl | 0xc242ec6cfcc9d53efe7b8f9ed649583e1cb1e137 | 3 | 4 | 3775.718258 | | -| terp1cd3ecvk0zsnh4ehfm32lj45zdk4pv0lxpnxvvz | 0xc3639c32cf14277ae6e9dc55f956826daa163fe6 | 3 | 4 | 3775.718258 | | -| terp1cmdlqvtequgwd5jfzgwuxuwc2avq2527fp9t3c | 0xc6dbf031790710e6d249121dc371d8575805515e | 3 | 4 | 3775.718258 | | -| terp1ew3an4klzehjct2mqyxxqzqmmqgsnm7kl4c4q8 | 0xcba3d9d6df166f2c2d5b010c60081bd81109efd6 | 3 | 4 | 3775.718258 | | -| terp1e4r2td283d7vu3a27yu7826xnuy3ltlgpf2wl5 | 0xcd46a5b5478b7cce47aaf139e3ab469f091fafe8 | 3 | 4 | 3775.718258 | | -| terp16haesqgenmxem5rjy3x8eh2sl5mq0clq2mfly8 | 0xd5fb9801199ecd9dd072244c7cdd50fd3607e3e0 | 3 | 4 | 3775.718258 | | -| terp16cpfqr67w0y3qwj0n5ch99qp76jdrhwadz40pw | 0xd602900f5e73c9103a4f9d31729401f6a4d1dddd | 3 | 4 | 3775.718258 | | -| terp1mhrzxjh2aatzt92fjh7dt5yh67xygv0wz4day8 | 0xddc6234aeaef5625954995fcd5d097d78c4431ee | 3 | 4 | 3775.718258 | | -| terp1m7krzshht60g8mshse0w6k78fqh9wncu898258 | 0xdfac3142f75e9e83ee17865eed5bc7482e574f1c | 3 | 4 | 3775.718258 | | -| terp1urt2zvf0vypf50dk9h29tsper90h4d8pzpukvf | 0xe0d6a1312f61029a3db62dd455c039195f7ab4e1 | 3 | 4 | 3775.718258 | | -| terp1uyvtf7w0l08f2vyrrns6hr2zde38fwj8glcwuv | 0xe118b4f9cffbce9530831ce1ab8d426e6274ba47 | 3 | 4 | 3775.718258 | | -| terp1ussgurzke6e3eej6gsne9vyjsfj6h9a2y649hk | 0xe4208e0c56ceb31ce65a442792b0928265ab97aa | 3 | 4 | 3775.718258 | | -| terp1uh696jjegxqezfwvwtetlun46dl554he9jcjc6 | 0xe5f45d4a5941819125cc72f2bff275d37f4a56f9 | 3 | 4 | 3775.718258 | | -| terp1ldd7xqwlfl4q3aevy5a5mq8kq6p5kdtjeghvf2 | 0xfb5be301df4fea08f72c253b4d80f606834b3572 | 3 | 4 | 3775.718258 | | -| terp1lmykalhf796jkkapnh8u3t7lk77jtwthtwfg05 | 0xfec96efee9f1752b5ba19dcfc8afdfb7bd25b977 | 3 | 4 | 3775.718258 | | -| terp1qmg58dp28vc5anj8kz0rj0shz0h57mju4vjd54 | 0x06d143b42a3b314ece47b09e393e1713ef4f6e5c | 2 | 4 | 3775.718258 | | -| terp1ph23ld4umf2zqvzka9nx9xdtnn298muzk90hfe | 0x0dd51fb6bcda54203056e9666299ab9cd453ef82 | 2 | 4 | 3775.718258 | | -| terp1zx7759qvkyg76fq3qu36z4mmqvgcjdkxcu2f0m | 0x11bdea140cb111ed24110723a1577b03118936c6 | 2 | 4 | 3775.718258 | | -| terp1zn3c29szy229dnnfgh02ey2unv4pxfggjfgmnf | 0x14e3851602229456ce6945deac915c9b2a132508 | 2 | 4 | 3775.718258 | | -| terp1zlnn3kg9dncfymlakrl3tkj0uerxrjr8h83vdv | 0x17e738d9056cf0926ffdb0ff15da4fe64661c867 | 2 | 4 | 3775.718258 | | -| terp1r3dp62g45k2rvafdx5v7tguu3az5753xy3kuka | 0x1c5a1d2915a59436752d3519e5a39c8f454f5226 | 2 | 4 | 3775.718258 | | -| terp1ypgqtgaasamrehu25ruveamgyg4eway3vw32xu | 0x205005a3bd87763cdf8aa0f8ccf768222b977491 | 2 | 4 | 3775.718258 | | -| terp1xkucffumwc98w8ujs4tq8l0ackp6swhtfrhgnu | 0x35b984a79b760a771f92855603fdfdc583a83aeb | 2 | 4 | 3775.718258 | | -| terp18zhhv393yz6kutlvax9c4x3au98cl0cafltup8 | 0x38af7644b120b56e2fece98b8a9a3de14f8fbf1d | 2 | 4 | 3775.718258 | | -| terp18cwm9wte8ppyzqha5cydtpasmm7sc930fycx2v | 0x3e1db2b97938424102fda608d587b0defd0c162f | 2 | 4 | 3775.718258 | | -| terp1gg6m7vw3p84v32juvzpl6zuc8ueu2ukvu9zs63 | 0x4235bf31d109eac8aa5c6083fd0b983f33c572cc | 2 | 4 | 3775.718258 | | -| terp1gd83cq486gprl64da2nxm6cjarc635fk7ntldj | 0x434f1c02a7d2023feaadeaa66deb12e8f1a8d136 | 2 | 4 | 3775.718258 | | -| terp1g5hanqeu5ahv2yqtl70cc2s9sv0vn7nv7q3frd | 0x452fd9833ca76ec5100bff9f8c2a05831ec9fa6c | 2 | 4 | 3775.718258 | | -| terp1gkelgz0u8lwynzkcu73wjj30v7dvy7k28mddmp | 0x45b3f409fc3fdc498ad8e7a2e94a2f679ac27aca | 2 | 4 | 3775.718258 | | -| terp1f9fxxxnyvsaraluahy3uklfwn453q8knyw2shj | 0x4952631a64643a3eff9db923cb7d2e9d69101ed3 | 2 | 4 | 3775.718258 | | -| terp1f5v3c7ncr5w8zq7yq5xw5ykqh8rjxnm4q02qf5 | 0x4d191c7a781d1c7103c4050cea12c0b9c7234f75 | 2 | 4 | 3775.718258 | | -| terp1tqy0ft0r2pdcrrv2hd2p2ntzysz9ms0hmcc92j | 0x5808f4ade3505b818d8abb54154d6224045dc1f7 | 2 | 4 | 3775.718258 | | -| terp1tq7zqxr56ld5un6uhx283k37dmgjzfh6zcvnpv | 0x583c201874d7db4e4f5cb99478da3e6ed12126fa | 2 | 4 | 3775.718258 | | -| terp1tve74zmcxml569x8tux5v87x0g3awalsaazadd | 0x5b33ea8b7836ff4d14c75f0d461fc67a23d777f0 | 2 | 4 | 3775.718258 | | -| terp1tnjlku252qszvwuk9wkfrxpczhzl47gqzavjca | 0x5ce5fb71545020263b962bac91983815c5faf900 | 2 | 4 | 3775.718258 | | -| terp1t53ahfrl2ft6q9lg53gyh0697uhf8du45sed76 | 0x5d23dba47f5257a017e8a4504bbf45f72e93b795 | 2 | 4 | 3775.718258 | | -| terp1t5cdcd39ttj26cpzc7ut5eqwwzve83x5s6jw0z | 0x5d30dc36255ae4ad6022c7b8ba640e709993c4d4 | 2 | 4 | 3775.718258 | | -| terp1vgvv3rafz8pc7v6uhk3mxgs9epcyl4epad3hqm | 0x6218c88fa911c38f335cbda3b32205c8704fd721 | 2 | 4 | 3775.718258 | | -| terp109lkyvgyzt99s9yugww2r2g4h5epdj7v2epva0 | 0x797f62310412ca58149c439ca1a915bd3216cbcc | 2 | 4 | 3775.718258 | | -| terp105cjy0dxynskgqm2y746ttwstxe48myl9w3hvz | 0x7d31223da624e164036a27aba5add059b353ec9f | 2 | 4 | 3775.718258 | | -| terp10udeh522pnzx63df8rzgrvv3p4jcflx2ynj7q2 | 0x7f1b9bd14a0cc46d45a938c481b1910d6584fcca | 2 | 4 | 3775.718258 | | -| terp1smv0h6cw6vyn4m8aw6u0kjmcnhtauthfhv0am4 | 0x86d8fbeb0ed3093aecfd76b8fb4b789dd7de2ee9 | 2 | 4 | 3775.718258 | | -| terp139h7mzuxan8kar7e4x8ry5e9w9h2wmn3s4snzm | 0x896fed8b86eccf6e8fd9a98e325325716ea76e71 | 2 | 4 | 3775.718258 | | -| terp15w73tuw8az89ma789ycyv7l3v2szj735s77vrz | 0xa3bd15f1c7e88e5df7c72930467bf162a0297a34 | 2 | 4 | 3775.718258 | | -| terp15caz2qnw9kr04daz8tujfap94jf2073yxvv0vp | 0xa63a25026e2d86fab7a23af924f425ac92a7fa24 | 2 | 4 | 3775.718258 | | -| terp1kgcep2hvzpgv9kzuf7x0h5ya9dzutgwadd2m0f | 0xb23190aaec1050c2d85c4f8cfbd09d2b45c5a1dd | 2 | 4 | 3775.718258 | | -| terp1k0tvzlw577nmdsrper47wn6k4qvxzwsvd5gshk | 0xb3d6c17dd4f7a7b6c061c8ebe74f56a818613a0c | 2 | 4 | 3775.718258 | | -| terp1ch4zll4f3vdzdh8rpglyncc5xtmshmar5mv747 | 0xc5ea2ffea98b1a26dce30a3e49e31432f70befa3 | 2 | 4 | 3775.718258 | | -| terp1erttaccc4pn5yzu08csr9uzcmqrpndjsl7lspa | 0xc8d6bee318a867420b8f3e2032f058d80619b650 | 2 | 4 | 3775.718258 | | -| terp1es3anwze5f8px68q9z49cext0jher8sx62hul7 | 0xcc23d9b859a24e1368e028aa5c64cb7caf919e06 | 2 | 4 | 3775.718258 | | -| terp16vs8g98c7rwxgdsfses2j4mr73q6h6pan0z33k | 0xd3207414f8f0dc6436098660a95763f441abe83d | 2 | 4 | 3775.718258 | | -| terp160dung2u9gkn5m56s95j3d9389qfry8dglq0mm | 0xd3dbc9a15c2a2d3a6e9a816928b4b139409190ed | 2 | 4 | 3775.718258 | | -| terp16htwtx84nex28ska55m5hfa2vmcu4wkxd3mzjn | 0xd5d6e598f59e4ca3c2dda5374ba7aa66f1cabac6 | 2 | 4 | 3775.718258 | | -| terp16lrn93vyfxemanzgyl4ge2lkl8vuu3kxg8asj6 | 0xd7c732c58449b3becc4827ea8cabf6f9d9ce46c6 | 2 | 4 | 3775.718258 | | -| terp1uvhfdw3wnmtmr500nqxkpul2qrakumzp560ft2 | 0xe32e96ba2e9ed7b1d1ef980d60f3ea00fb6e6c41 | 2 | 4 | 3775.718258 | | -| terp1axu6gyr450gksxqqgmlqrurllh9s2yvmmmyesn | 0xe9b9a41075a3d168180046fe01f07ffdcb05119b | 2 | 4 | 3775.718258 | | -| terp1a289p4ghc6jt05wpc69lummaysdge5f0dy9mzs | 0xea8e50d517c6a4b7d1c1c68bfe6f7d241a8cd12f | 2 | 4 | 3775.718258 | | -| terp1an0l2r0mesp0lktr9p4uvakqjjmecvupclg6rv | 0xecdff50dfbcc02ffd963286bc676c094b79c3381 | 2 | 4 | 3775.718258 | | -| terp1aekycj7ghsnf7cuqw44nqzsxpwx4s0zfgkh55j | 0xee6c4c4bc8bc269f6380756b300a060b8d583c49 | 2 | 4 | 3775.718258 | | -| terp173y9araw3ceftmppmzngde0jyg5y6tdc2jmdcg | 0xf4485e8fae8e3295ec21d8a686e5f222284d2db8 | 2 | 4 | 3775.718258 | | -| terp1qqpn7ss0xx9atv9eav4mqpdp3qvxxzuks637gm | 0x00033f420f318bd5b0b9eb2bb005a18818630b96 | 1 | 2 | 1887.859129 | | -| terp1qqvdhsgmnkkwvnl6z5cr4sncte3rg3q0u4dc8z | 0x0018dbc11b9dace64ffa15303ac2785e6234440f | 1 | 2 | 1887.859129 | | -| terp1q2l6rh5wm09kyd5jr5ztw9gjh0lpjudx8q5s6n | 0x02bfa1de8edbcb6236921d04b71512bbfe1971a6 | 1 | 2 | 1887.859129 | | -| terp1qwjswppnznh382p6lla679wcjp2lv3nx7f0v4t | 0x03a507043314ef13a83afffbaf15d89055f64666 | 1 | 2 | 1887.859129 | | -| terp1q3d4hzvemusul2z6nat3kd4mtnz6ljktlh4ee0 | 0x045b5b8999df21cfa85a9f571b36bb5cc5afcacb | 1 | 2 | 1887.859129 | | -| terp1prvxw65dw2w7x8p6skerdyv3mf7n6s9yuh8qzq | 0x08d8676a8d729de31c3a85b2369191da7d3d40a4 | 1 | 2 | 1887.859129 | | -| terp1pgqpw4spsfalsz2gs5csxw94rphphhlcuj6q9j | 0x0a00175601827bf8094885310338b5186e1bdff8 | 1 | 2 | 1887.859129 | | -| terp1pv7cfdxt4umr5m46n2zuy3n59qnh40px8ftgxj | 0x0b3d84b4cbaf363a6eba9a85c2467428277abc26 | 1 | 2 | 1887.859129 | | -| terp1p5ezmrjx2up5dg4jhecmysufppn6fzl6eyqs4n | 0x0d322d8e46570346a2b2be71b243890867a48bfa | 1 | 2 | 1887.859129 | | -| terp1pkyxjlstdjcpldy7ps6pdezp8kns4rtd2whwrg | 0x0d88697e0b6cb01fb49e0c3416e4413da70a8d6d | 1 | 2 | 1887.859129 | | -| terp1zrqkxdj0u9fu4hm9x2jmx3ypamaenktdzhwyhd | 0x10c163364fe153cadf6532a5b34481eefb99d96d | 1 | 2 | 1887.859129 | | -| terp1zxukxqmdnrem2yts5l6yt04ac39pc884p65vcd | 0x11b963036d98f3b51170a7f445bebdc44a1c1cf5 | 1 | 2 | 1887.859129 | | -| terp1rqna8cuwalcf7dy64uhpaeqnans4cqcgrll94z | 0x1827d3e38eeff09f349aaf2e1ee413ece15c0308 | 1 | 2 | 1887.859129 | | -| terp1rra70pu0f3z8m9a6c8wlx53ateq4tlfphx9p6j | 0x18fbe7878f4c447d97bac1ddf3523d5e4155fd21 | 1 | 2 | 1887.859129 | | -| terp1rt54u4cqrprs8f4avlkyxd7va3tzvu6cu9g564 | 0x1ae95e5700184703a6bd67ec4337ccec56267358 | 1 | 2 | 1887.859129 | | -| terp1rjy9s0qr5t5jw7lkqsl9jhwc8vva40my7x5p4y | 0x1c88583c03a2e9277bf6043e595dd83b19dabf64 | 1 | 2 | 1887.859129 | | -| terp1r7j8acf2lwakpq0cqundxzf7l4t7kcv5skxku4 | 0x1fa47ee12afbbb6081f80726d3093efd57eb6194 | 1 | 2 | 1887.859129 | | -| terp1rl5dulxd8a5smqu7wmvntl0ujra292ku523k3u | 0x1fe8de7ccd3f690d839e76d935fdfc90faa2aadc | 1 | 2 | 1887.859129 | | -| terp1yvtwxnlwy7zhrf85tkqa3maqvdcm84e42lf6ls | 0x2316e34fee278571a4f45d81d8efa06371b3d735 | 1 | 2 | 1887.859129 | | -| terp1yv7kufvvlalrp2anc4npgwknh2vl0j57f9lr99 | 0x233d6e258cff7e30abb3c566143ad3ba99f7ca9e | 1 | 2 | 1887.859129 | | -| terp1ydqezt7u8x43trxlnaxppvv6eew6d3xauv8ffu | 0x2341912fdc39ab158cdf9f4c10b19ace5da6c4dd | 1 | 2 | 1887.859129 | | -| terp1yn67mvcn2g3mf0xtmkk4j296z3sqmj055kyp9k | 0x24f5edb3135223b4bccbddad5928ba14600dc9f4 | 1 | 2 | 1887.859129 | | -| terp1y6ngfgnxe2rkyrwmrypf8q3lc2ntygclsdqxrv | 0x26a684a266ca87620ddb190293823fc2a6b2231f | 1 | 2 | 1887.859129 | | -| terp199xql29r63tc9jsdemuvsgtttv7azz40w64xgl | 0x294c0fa8a3d45782ca0dcef8c8216b5b3dd10aaf | 1 | 2 | 1887.859129 | | -| terp19f07gkqgvqazd5xjyl5gfwnlteetsyppj82g4u | 0x2a5fe45808603a26d0d227e884ba7f5e72b81021 | 1 | 2 | 1887.859129 | | -| terp19065vey27tvg837ydz6qnl3htm92apf9l0q5kj | 0x2bf546648af2d883c7c468b409fe375ecaae8525 | 1 | 2 | 1887.859129 | | -| terp195qcvlk8dcpx7c5u6zelhuwervcaypyw76ekt6 | 0x2d01867ec76e026f629cd0b3fbf1d91b31d2048e | 1 | 2 | 1887.859129 | | -| terp19unzhhlxud2m82yykklmp42llmk90ramqn20de | 0x2f262bdfe6e355b3a884b5bfb0d55ffeec578fbb | 1 | 2 | 1887.859129 | | -| terp1xp5hfygf9gw4fadqx77qkmec6m3tqxpnughvnx | 0x30697491092a1d54f5a037bc0b6f38d6e2b01833 | 1 | 2 | 1887.859129 | | -| terp1xxtdpnwppm0evzzmkjrlx3fwf4cv8wn8t3gw82 | 0x3196d0cdc10edf96085bb487f3452e4d70c3ba67 | 1 | 2 | 1887.859129 | | -| terp1xdmhw4892kku80l7hm7cxdyhha4alde85p3nka | 0x33777754e555adc3bffebefd833497bf6bdfb727 | 1 | 2 | 1887.859129 | | -| terp1xc0a2g5nv7rqn8tgyzyyx90l34t8wl3mfgzm84 | 0x361fd522936786099d6820884315ff8d56777e3b | 1 | 2 | 1887.859129 | | -| terp1xcl88xkajz0xjjzmr0a7whesk88xsuzfq4yl3a | 0x363e739add909e69485b1bfbe75f30b1ce687049 | 1 | 2 | 1887.859129 | | -| terp1xukglam04g2w7yxu25e5pfsz0p2gm4scrc7w72 | 0x372c8ff76faa14ef10dc553340a60278548dd618 | 1 | 2 | 1887.859129 | | -| terp18qnk57jqpn9gqwvxax0syvtxmlnv93yjwyut2h | 0x38276a7a400cca803986e99f023166dfe6c2c492 | 1 | 2 | 1887.859129 | | -| terp189s97jecsqwev0zsthsves2ytstw95gk4ch8hp | 0x39605f4b38801d963c505de0ccc1445c16e2d116 | 1 | 2 | 1887.859129 | | -| terp18fxdhfkcr3cz5kf0w6pevw587yktj3h3v9v5gr | 0x3a4cdba6d81c702a592f7683963a87f12cb946f1 | 1 | 2 | 1887.859129 | | -| terp18v7yzavzf8zavawkza6czzawj0f4qd8zngt27l | 0x3b3c41758249c5d675d61775810bae93d35034e2 | 1 | 2 | 1887.859129 | | -| terp1grx3hr5he3ps55h2zx2wzrmcgwcqhgvwnwe4k0 | 0x40cd1b8e97cc430a52ea1194e10f7843b00ba18e | 1 | 2 | 1887.859129 | | -| terp1g3n0m793dz4u92h5cjrfk74zl8srhdh36p7fxu | 0x4466fdf8b168abc2aaf4c4869b7aa2f9e03bb6f1 | 1 | 2 | 1887.859129 | | -| terp1gnx3awyfjjxdkqxzkx8tt5ry4j4hg4e45pjrf8 | 0x44cd1eb889948cdb00c2b18eb5d064acab745735 | 1 | 2 | 1887.859129 | | -| terp1ff7ja7045cvvnqyfcc8z8erpksm5wqwwctpxza | 0x4a7d2ef9f5a618c98089c60e23e461b4374701ce | 1 | 2 | 1887.859129 | | -| terp1f2yes7spgc4q5sw05ee2d0rqp5ewuzj82p4wz4 | 0x4a89987a01462a0a41cfa672a6bc600d32ee0a47 | 1 | 2 | 1887.859129 | | -| terp1fwh0xxgzxhq2kpkzlg83zsy0d85avywaezgqqc | 0x4baef3190235c0ab06c2fa0f11408f69e9d611dd | 1 | 2 | 1887.859129 | | -| terp1fjgq5wgd0n5yamgvsf525ppk9qxa8wphshnzwq | 0x4c900a390d7ce84eed0c8268aa0436280dd3b837 | 1 | 2 | 1887.859129 | | -| terp12rm7e6gc85vffea2nd4hwzm2fwetw32u4u5emx | 0x50f7ece9183d1894e7aa9b6b770b6a4bb2b7455c | 1 | 2 | 1887.859129 | | -| terp12wq4hxu7kyrv3m5cur9nyzzlxl8wj9ethtumz8 | 0x53815b9b9eb106c8ee98e0cb32085f37cee9172b | 1 | 2 | 1887.859129 | | -| terp12wt9e4ue90rpkjq84favuwlvqp3vjr0zwr0wn8 | 0x53965cd7992bc61b4807aa7ace3bec0062c90de2 | 1 | 2 | 1887.859129 | | -| terp12nu4vsujemf4ah8nue25zzxgrundltjpwqkdhf | 0x54f9564392ced35edcf3e6554108c81f26dfae41 | 1 | 2 | 1887.859129 | | -| terp12ex9y567vpjjuaa3kjtp585jsj9laws4hu8kjg | 0x564c52535e60652e77b1b4961a1e92848bfeba15 | 1 | 2 | 1887.859129 | | -| terp1t9sdvxsxytl8a69mxvkmr0lt9s8tmeg5e7al4c | 0x5960d61a0622fe7ee8bb332db1bfeb2c0ebde514 | 1 | 2 | 1887.859129 | | -| terp1t0drxf53hdfncskrl2tchy2tz3umqxetgj8c28 | 0x5bda332691bb533c42c3fa978b914b1479b01b2b | 1 | 2 | 1887.859129 | | -| terp1t5rth4rkm6uqpgdwdf9gavfx9pvqmqmafemejh | 0x5d06bbd476deb800a1ae6a4a8eb12628580d837d | 1 | 2 | 1887.859129 | | -| terp1vxz0nrc3c26kxyrs42m970s4aye0us6q6ku89k | 0x6184f98f11c2b5631070aab65f3e15e932fe4340 | 1 | 2 | 1887.859129 | | -| terp1vggyw7esykl4afg2xhfeulfgwhwpzesu0kxkqu | 0x6210477b3025bf5ea50a35d39e7d2875dc11661c | 1 | 2 | 1887.859129 | | -| terp1v6x2rpwrehaxy5g4kzjmp56mekkluqe8h0kwgj | 0x668ca185c3cdfa625115b0a5b0d35bcdadfe0327 | 1 | 2 | 1887.859129 | | -| terp1vmrgwr5afnxmdrfcm88jh6erc7gsshsdpj7n95 | 0x66c6870e9d4ccdb68d38d9cf2beb23c791085e0d | 1 | 2 | 1887.859129 | | -| terp1dqmkzvxkpje8uraka99qrjnhuj592zrj4hwdr9 | 0x68376130d60cb27e0fb6e94a01ca77e4a8550872 | 1 | 2 | 1887.859129 | | -| terp1dx7euarhl0h9ur2p5l247669ntjd07eyu24yy3 | 0x69bd9e7477fbee5e0d41a7d55f6b459ae4d7fb24 | 1 | 2 | 1887.859129 | | -| terp1d8djuwcyy8c4nvvrzy23mw0ra24xqlx3ea730k | 0x69db2e3b0421f159b18311151db9e3eaaa607cd1 | 1 | 2 | 1887.859129 | | -| terp1dwzm2chdwwwgcs6dha7qh9szu03hm4fmtqa3wl | 0x6b85b562ed739c8c434dbf7c0b9602e3e37dd53b | 1 | 2 | 1887.859129 | | -| terp1demhup5yssw9jzhg9h6pq5jjk9lquj9qgy2z75 | 0x6e777e0684841c590ae82df4105252b17e0e48a0 | 1 | 2 | 1887.859129 | | -| terp1wqxgpjappqqmqgp8nqs0eflmuwu72jfgg56sy2 | 0x700c80cba10801b020279820fca7fbe3b9e54928 | 1 | 2 | 1887.859129 | | -| terp1w9mxys6ja5d02xfke3mgvrdq9rpec60xf4glyt | 0x7176624352ed1af51936cc76860da028c39c69e6 | 1 | 2 | 1887.859129 | | -| terp1wx2rp94qkkcvpjsq9wzescs25u0pgtp93czc3u | 0x71943096a0b5b0c0ca002b8598620aa71e142c25 | 1 | 2 | 1887.859129 | | -| terp1wnpr3t9md6xq79zr5pfyvs7rsprue8859y4u80 | 0x74c238acbb6e8c0f1443a0524643c38047cc9cf4 | 1 | 2 | 1887.859129 | | -| terp10gnvu8c2hf5r0sga5ddudt5ynh59y3qjwjqxkl | 0x7a26ce1f0aba6837c11da35bc6ae849de8524412 | 1 | 2 | 1887.859129 | | -| terp10f33kjntr59xk8jr8kfxjrtu32ay7ga54ycfxs | 0x7a631b4a6b1d0a6b1e433d92690d7c8aba4f23b4 | 1 | 2 | 1887.859129 | | -| terp10s2usm624dzedgude2sgrhqjqv6jm8jz64eyak | 0x7c15c86f4aab4596a38dcaa081dc1203352d9e42 | 1 | 2 | 1887.859129 | | -| terp10e2td9sqxs2hr4n37mp7zrp8lqer8eypklaca6 | 0x7e54b69600341571d671f6c3e10c27f83233e481 | 1 | 2 | 1887.859129 | | -| terp1sswxpcqlt9heruh39sdzg4zzr843p0lvmlvm0d | 0x841c60e01f596f91f2f12c1a24544219eb10bfec | 1 | 2 | 1887.859129 | | -| terp1sjy3aqd6sc7znxmc9upumjhc4f9zkzve8nj4g6 | 0x84891e81ba863c299b782f03cdcaf8aa4a2b0999 | 1 | 2 | 1887.859129 | | -| terp1sc2r6qgnv4wk3rquf6f2f8avrvezdqy8sy5rer | 0x86143d0113655d688c1c4e92a49fac1b32268087 | 1 | 2 | 1887.859129 | | -| terp1sa05dvv8sx6l7qlq9cnyanhvp3kxrettuhhhsd | 0x875f46b18781b5ff03e02e264eceec0c6c61e56b | 1 | 2 | 1887.859129 | | -| terp13wetdgwsk473svac0ngmn7ug2s0twlp5z9qwx0 | 0x8bb2b6a1d0b57d1833b87cd1b9fb88541eb77c34 | 1 | 2 | 1887.859129 | | -| terp135hkwsun3fpeh2w5autpne2kd0un2qe6acse65 | 0x8d2f6743938a439ba9d4ef1619e5566bf935033a | 1 | 2 | 1887.859129 | | -| terp135uuraggrw78zfq6zh2cdxtk07sn6nkxd2axs7 | 0x8d39c1f5081bbc71241a15d58699767fa13d4ec6 | 1 | 2 | 1887.859129 | | -| terp1jzwf30npsz93230588qwp9m0hv3znmcwegsgll | 0x909c98be61808b1545f439c0e0976fbb2229ef0e | 1 | 2 | 1887.859129 | | -| terp1npvnzfge83xxvqpefrge5kqq6fefmkgfxrp4h0 | 0x98593125193c4c66003948d19a5800d2729dd909 | 1 | 2 | 1887.859129 | | -| terp1n9qjg8a5dypy5hxfew2dk8jcv6nsd99e2aa0e5 | 0x9941241fb469024a5cc9cb94db1e5866a70694b9 | 1 | 2 | 1887.859129 | | -| terp1n96vp02mu6tugkm9nt5u7na0utxwwdtxuz4g77 | 0x9974c0bd5be697c45b659ae9cf4fafe2cce73566 | 1 | 2 | 1887.859129 | | -| terp1ngmff6h48x6q860fdty7aem9pr6juxzkfm9xmu | 0x9a3694eaf539b403e9e96ac9eee76508f52e1856 | 1 | 2 | 1887.859129 | | -| terp1n23xmhayw7vrl0qq4m7qt48mrfnequs8vxzq96 | 0x9aa26ddfa477983fbc00aefc05d4fb1a67907207 | 1 | 2 | 1887.859129 | | -| terp15gl7vcvxk0auaftwfv7tycvha0pwa6r7a4grzs | 0xa23fe66186b3fbcea56e4b3cb26197ebc2eee87e | 1 | 2 | 1887.859129 | | -| terp15nnp0t8npkudu68f7483ex7x9runcswzn6567e | 0xa4e617acf30db8de68e9f54f1c9bc628f93c41c2 | 1 | 2 | 1887.859129 | | -| terp157y4yeenppweeanrzc4vqftcqsxff9zx829cey | 0xa789526733085d9cf663162ac02578040c949446 | 1 | 2 | 1887.859129 | | -| terp1480230kzggemya99ppnl2zuqrvqy92la4uqs4t | 0xa9dea8bec24233b274a50867f50b801b0042abfd | 1 | 2 | 1887.859129 | | -| terp14g7xe9w342dmylsvnrajdpczmx76sas3f78fml | 0xaa3c6c95d1aa9bb27e0c98fb268702d9bda87611 | 1 | 2 | 1887.859129 | | -| terp14vpka33ajmr2mxmlk3jjjn36f5mtp0ptkrxm8a | 0xab036ec63d96c6ad9b7fb465294e3a4d36b0bc2b | 1 | 2 | 1887.859129 | | -| terp14jupsyc2e8x5fpyy3py2pj370hdyhvn9n4wx5x | 0xacb818130ac9cd4484848848a0ca3e7dda4bb265 | 1 | 2 | 1887.859129 | | -| terp14c8asx6q4dx60j8qh0w9ufhxxswp6c4l7869ke | 0xae0fd81b40ab4da7c8e0bbdc5e26e6341c1d62bf | 1 | 2 | 1887.859129 | | -| terp1ktzws7uf4qmuwfyz69t377n72s66805vmknwwv | 0xb2c4e87b89a837c72482d1571f7a7e5435a3be8c | 1 | 2 | 1887.859129 | | -| terp1k0n7s49rp8sadyujnv7gxg2zfmtqze6nzydwwe | 0xb3e7e854a309e1d693929b3c8321424ed6016753 | 1 | 2 | 1887.859129 | | -| terp1hy78ue50ws6jqehzjljwxxzdpzx6y2cp89naup | 0xb93c7e668f74352066e297e4e3184d088da22b01 | 1 | 2 | 1887.859129 | | -| terp1h0fzuax7kh3efz2a3qvlgryqldh5kwtz5y0cde | 0xbbd22e74deb5e394895d8819f40c80fb6f4b3962 | 1 | 2 | 1887.859129 | | -| terp1hsj7cq4n0s7v8dcmyhxxk5a2s0d5wvwx3ygg0r | 0xbc25ec02b37c3cc3b71b25cc6b53aa83db4731c6 | 1 | 2 | 1887.859129 | | -| terp1hugqqzqffg7utqvtmq8zefqdmdk6mhm68a4dxr | 0xbf100008094a3dc5818bd80e2ca40ddb6daddf7a | 1 | 2 | 1887.859129 | | -| terp1cgapmyl93hmhq4m797md9csdmzzkks7n4y0n78 | 0xc23a1d93e58df770577e2fb6d2e20dd8856b43d3 | 1 | 2 | 1887.859129 | | -| terp1c3gg5dernhqw2m7g2rj8u7wrx5u83554qf0s9f | 0xc4508a37239dc0e56fc850e47e79c3353878d295 | 1 | 2 | 1887.859129 | | -| terp1cjfvntywn63jayyzwfh58cqjypscxx8wy6m9kr | 0xc492c9ac8e9ea32e9082726f43e01220618318ee | 1 | 2 | 1887.859129 | | -| terp1ewnk7qtgprw7czp7hz7qm6f7ln5k2uh2em4ndc | 0xcba76f016808ddec083eb8bc0de93efce96572ea | 1 | 2 | 1887.859129 | | -| terp1ekawcvhwsel8h5eflwaxxq6gcdert4zn7uq0ly | 0xcdbaec32ee867e7bd329fbba630348c37235d453 | 1 | 2 | 1887.859129 | | -| terp16q4wpung0aruca8r02q7nhu95ysnp4mjwaz36u | 0xd02ae0f2687f47cc74e37a81e9df85a12130d772 | 1 | 2 | 1887.859129 | | -| terp16zqelcjxr56e5f6rvaepyqf756sj9q7zudpgsl | 0xd0819fe2461d359a2743677212013ea6a12283c2 | 1 | 2 | 1887.859129 | | -| terp16sfs3aggtrdzklxxg8jf877a7drh2wf6ppsjtw | 0xd41308f50858da2b7cc641e493fbddf34775393a | 1 | 2 | 1887.859129 | | -| terp16kjknyzp5yvt3z04uak8msssg33n5fcj829w6y | 0xd5a5699041a118b889f5e76c7dc21044633a2712 | 1 | 2 | 1887.859129 | | -| terp16klu90v7afx8p4d7rx280lmjqv5lmjh6c60rwn | 0xd5bfc2bd9eea4c70d5be199477ff720329fdcafa | 1 | 2 | 1887.859129 | | -| terp1mqrjerz0j6sha8wyuwp99q20cr5skunffzxg7g | 0xd8072c8c4f96a17e9dc4e38252814fc0e90b7269 | 1 | 2 | 1887.859129 | | -| terp1upeymrhwkracr6nth738nmdhdj7f47ll8xm6jx | 0xe0724d8eeeb0fb81ea6bbfa279edb76cbc9afbff | 1 | 2 | 1887.859129 | | -| terp1uf7nmnk7n82387gx9dr295veq4chkpvfadhfrw | 0xe27d3dcede99d513f9062b46a2d19905717b0589 | 1 | 2 | 1887.859129 | | -| terp1ujqmeafgc675g2jjlnyaykhemvw07ue2sv6hsk | 0xe481bcf528c6bd442a52fcc9d25af9db1cff732a | 1 | 2 | 1887.859129 | | -| terp1ueaxartgt4v7lgjnzrtven4dvx0cx553jh50wz | 0xe67a6e8d685d59efa25310d6cccead619f835291 | 1 | 2 | 1887.859129 | | -| terp1uama56ywq0a9u3jk5elqhyl2g5gf775spx7yru | 0xe777da688e03fa5e4656a67e0b93ea45109f7a90 | 1 | 2 | 1887.859129 | | -| terp1atyguyxasfnmckc0q2qyccjr6046vns2wmps9j | 0xeac88e10dd8267bc5b0f02804c6243d3eba64e0a | 1 | 2 | 1887.859129 | | -| terp1a5d4zz206n0n5nacqpay8gm7zga4uwruamkqsj | 0xed1b51094fd4df3a4fb8007a43a37e123b5e387c | 1 | 2 | 1887.859129 | | -| terp1amppw9wxnls3grqkuat0jx72geej0uxru3aysa | 0xeec21715c69fe1140c16e756f91bca467327f0c3 | 1 | 2 | 1887.859129 | | -| terp1aawggnseevjl68hc9evgvaejkqx2m55lcryqcf | 0xef5c844e19cb25fd1ef82e58867732b00cadd29f | 1 | 2 | 1887.859129 | | -| terp1aae93490rqpy00vns6qu5tawqnsku3fxa46p76 | 0xef7258d4af180247bd938681ca2fae04e16e4526 | 1 | 2 | 1887.859129 | | -| terp1al84epg05m865gd0v4j2l4p96cqfn8ee4nkvjs | 0xefcf5c850fa6cfaa21af6564afd425d600999f39 | 1 | 2 | 1887.859129 | | -| terp17y49azaqswl4vgwak8uzslar65ks0xkxzvldgx | 0xf12a5e8ba083bf5621ddb1f8287fa3d52d079ac6 | 1 | 2 | 1887.859129 | | -| terp17nhs0wwtsjy0n9t36cn8jqz4a75zsuncdet7e9 | 0xf4ef07b9cb8488f99571d626790055efa8287278 | 1 | 2 | 1887.859129 | | -| terp1742y69m4jgg36vg9t9w2fyphhe9dh5xmtwqy87 | 0xf5544d177592111d3105595ca49037be4adbd0db | 1 | 2 | 1887.859129 | | -| terp1lp3e98sc7r7c5qft4n3gktsfyuusz3we6ew2kt | 0xf863929e18f0fd8a012bace28b2e0927390145d9 | 1 | 2 | 1887.859129 | | -| terp1ltx7ce96al7e6psj355a2tetk73dlqy9wtxtuv | 0xfacdec64baeffd9d06128d29d52f2bb7a2df8085 | 1 | 2 | 1887.859129 | | -| terp1lv97kmu4ezaw483gycyq2mf096359apps0ke79 | 0xfb0beb6f95c8baea9e282608056d2f2ea342f421 | 1 | 2 | 1887.859129 | | -| terp1lvgs0y0dvl4r97ygfltdjc8ygjq26epf07xy04 | 0xfb110791ed67ea32f8884fd6d960e44480ad6429 | 1 | 2 | 1887.859129 | | -| terp1lnwvl6n8javwgwzpzd30a48gelfqpn3rck4dvx | 0xfcdccfea679758e438411362fed4e8cfd200ce23 | 1 | 2 | 1887.859129 | | -| terp1l7zahagy6et9jtpeg2qkuy4dchamt3rwurlyzv | 0xff85dbf504d656592c3942816e12adc5fbb5c46e | 1 | 2 | 1887.859129 | | \ No newline at end of file diff --git a/eth/addresses/monster_buds.md b/eth/addresses/monster_buds.md deleted file mode 100644 index 76c26bb..0000000 --- a/eth/addresses/monster_buds.md +++ /dev/null @@ -1,3388 +0,0 @@ -# Monster Buds Address Conversion -| Terp Public Address | Ethereum Public Address | Tokens Held | Points | Airdrop Allocation | -|----------------------|--------------------------|---------------|-------------|--------------------| -| terp1er86c0c7pq7sl75h3m5zk7juf0k8k5d8zlrp98 | 0xc8cfac3f1e083d0ffa978ee82b7a5c4bec7b51a7 | 289 | 6 | 5377.62108 | -| terp1qqydxscfrmut60h6wv8k4tj6y63gt3azptvx2q | 0x0008d343091ef8bd3efa730f6aae5a26a285c7a2 | 178 | 6 | 5377.62108 | -| terp1e2sjn8uxw3y8f7xx7ehcruykeh4qg3ccmfdkle | 0xcaa1299f86744874f8c6f66f81f096cdea044718 | 95 | 6 | 5377.62108 | -| terp1wcxsd66js4wa5ne8a4nwdtd738qah504yn20ug | 0x760d06eb52855dda4f27ed66e6adbe89c1dbd1f5 | 88 | 6 | 5377.62108 | -| terp1wu06ecg6zna4erwmzvwtrpglj5c7xl30p99vdn | 0x771face11a14fb5c8ddb131cb1851f9531e37e2f | 75 | 6 | 5377.62108 | -| terp1k89vcwaamsfddygmvsjxzwkgghjh0h8svjla54 | 0xb1cacc3bbddc12d6911b6424613ac845e577dcf0 | 67 | 6 | 5377.62108 | -| terp19m8m9apset95hqmpar66prnvwmjzgy97uv2tqm | 0x2ecfb2f430cacb4b8361e8f5a08e6c76e42410be | 66 | 6 | 5377.62108 | -| terp1p7n84sgsu3pt43v4eyc7vwlsmjejgtrv5m0yq9 | 0x0fa67ac110e442bac595c931e63bf0dcb3242c6c | 61 | 6 | 5377.62108 | -| terp16mtd86kec5t954ahkv6nqrhnjgu463xzjfzcud | 0xd6d6d3ead9c5165a57b7b335300ef392395d44c2 | 60 | 6 | 5377.62108 | -| terp18l4m02f64xr9c77p4c2dej207zn3xt2xyu2kd0 | 0x3febb7a93aa9865c7bc1ae14dcc94ff0a7132d46 | 60 | 6 | 5377.62108 | -| terp1ve3rqn33nryd23fsl00s92rfl2z9xa3enr7sap | 0x6662304e3198c8d54530fbdf02a869fa84537639 | 57 | 6 | 5377.62108 | -| terp1s93uemk9me4h3pmzq5dpwh7m6je2g3ndel2vfe | 0x8163cceec5de6b788762051a175fdbd4b2a4466d | 56 | 6 | 5377.62108 | -| terp1zy8u7qnqfunkl8at225kqvze3cw708rgc7q73d | 0x110fcf02604f276f9fab52a96030598e1de79c68 | 55 | 6 | 5377.62108 | -| terp15tfwfp9lc5unajn90mcv86xxcc79jw4snfj5ms | 0xa2d2e484bfc5393eca657ef0c3e8c6c63c593ab0 | 52 | 6 | 5377.62108 | -| terp1u7hzazq3hc0ws9xntvmdhngs00nqk3h0maq02f | 0xe7ae2e8811be1ee814d35b36dbcd107be60b46ef | 47 | 6 | 5377.62108 | -| terp19uvtpvxkcz74ddk6y7z7meqxsvhjw0f984d8c3 | 0x2f18b0b0d6c0bd56b6da2785ede406832f273d25 | 47 | 6 | 5377.62108 | -| terp1395kwuzv4g8hrpze76xjxdhrzjvtdf80vlpamt | 0x896967704caa0f718459f68d2336e31498b6a4ef | 47 | 6 | 5377.62108 | -| terp1uetrr98eh2nwxpjqs65chaekpr7p0jla52fpen | 0xe6563194f9baa6e3064086a98bf73608fc17cbfd | 45 | 6 | 5377.62108 | -| terp1dqdxgct7zzpuxm97h0v2e8nyjwxncfv3ncv8ue | 0x681a64617e1083c36cbebbd8ac9e64938d3c2591 | 44 | 6 | 5377.62108 | -| terp15lyujx7xzrwmg85xfjmp06pj0y2zwptrhhccga | 0xa7c9c91bc610ddb41e864cb617e8327914270563 | 43 | 6 | 5377.62108 | -| terp1lgv7xmgryxez5072sl599jx8c5dcstwh2w28we | 0xfa19e36d0321b22a3fca87e852c8c7c51b882dd7 | 43 | 6 | 5377.62108 | -| terp1nq7t8knz02kymrqf08nkm9se4uhn2pysjlde0h | 0x983cb3da627aac4d8c0979e76d9619af2f350490 | 41 | 6 | 5377.62108 | -| terp1dadk083hdhh2ddaqkl25fu6yqruwexwnu9tpnj | 0x6f5b679e376deea6b7a0b7d544f34400f8ec99d3 | 39 | 6 | 5377.62108 | -| terp16qeze4mmvg3lwaaj2nnlrra9t468266jdff4pq | 0xd0322cd77b6223f777b254e7f18fa55d74756b52 | 38 | 6 | 5377.62108 | -| terp1pyjax3lcz8fxfpujw8ffqh65xz02ejunqx0dv9 | 0x0925d347f811d264879271d2905f54309eaccb93 | 38 | 6 | 5377.62108 | -| terp1xk730wtyntlqmwvylysu0n6mys0ttmjjxvsfn7 | 0x35bd17b9649afe0db984f921c7cf5b241eb5ee52 | 38 | 6 | 5377.62108 | -| terp1mj2546e8xlsj55zze9z5ctqgu0n7tdk0hdt7mr | 0xdc954aeb2737e12a5042c9454c2c08e3e7e5b6cf | 38 | 6 | 5377.62108 | -| terp18njt48nsgr9zcgwca7ajdd7rcxcn32wqmczxvp | 0x3ce4ba9e7040ca2c21d8efbb26b7c3c1b138a9c0 | 37 | 6 | 5377.62108 | -| terp1gpl7vrw4dsed3nk99ss8fp5r6nj648la0zw0s4 | 0x407fe60dd56c32d8cec52c20748683d4e5aa9ffd | 36 | 6 | 5377.62108 | -| terp12eg3tpd95g775j8ucz4q4xsnsqx7cpf3z53at5 | 0x56511585a5a23dea48fcc0aa0a9a13800dec0531 | 36 | 6 | 5377.62108 | -| terp1fychkvag976hd7apgc3kf5p9d8nkdce6ftdze3 | 0x49317b33a82fb576fba1462364d02569e766e33a | 35 | 6 | 5377.62108 | -| terp1jtr7gms8hn2kfsdg8r49yve9d7dq7d8s9hu0dh | 0x92c7e46e07bcd564c1a838ea5233256f9a0f34f0 | 35 | 6 | 5377.62108 | -| terp1fjde4e7x96kpj3s8pdmj6sj2lpj84ng3g8pwqy | 0x4c9b9ae7c62eac1946070b772d424af8647acd11 | 33 | 6 | 5377.62108 | -| terp1rw5e0jlnavtwwwvunkhvzlaxpdflnsfls8e7hv | 0x1ba997cbf3eb16e7399c9daec17fa60b53f9c13f | 33 | 6 | 5377.62108 | -| terp1zvl6k2x2a3n94h32vlgmxc82r6cchqfvrc8nsz | 0x133fab28caec665ade2a67d1b360ea1eb18b812c | 33 | 6 | 5377.62108 | -| terp1zq7pu0h4afzpkxx79zmclpv8zzc3m3daq79ts6 | 0x103c1e3ef5ea441b18de28b78f858710b11dc5bd | 32 | 6 | 5377.62108 | -| terp19xpnu63y6e9rstfmcdx3e2nrzzg66qttsdwaue | 0x29833e6a24d64a382d3bc34d1caa631091ad016b | 32 | 6 | 5377.62108 | -| terp1ephgdghgf5nsvrhak4yeqnene2czdh3hxkmufq | 0xc86e86a2e84d27060efdb549904f33cab026de37 | 32 | 6 | 5377.62108 | -| terp1rrsslqlpzqnrnmu2gxzmxr2nv63z22l92mcrjf | 0x18e10f83e1102639ef8a4185b30d5366a2252be5 | 32 | 6 | 5377.62108 | -| terp1agpt3epn6ua6pfz8vta0qf2tqxp7xk0m0vnlp8 | 0xea02b8e433d73ba0a44762faf0254b0183e359fb | 31 | 6 | 5377.62108 | -| terp1rqj6c5q4h465a8ryxjql2zkpr285hs55gn5yh5 | 0x1825ac5015bd754e9c643481f50ac11a8f4bc294 | 31 | 6 | 5377.62108 | -| terp19cxk8l7tpr4zple6ekah9hlvju6r3pwjhr0cdk | 0x2e0d63ffcb08ea20ff3acdbb72dfec97343885d2 | 31 | 6 | 5377.62108 | -| terp1gw6zk9a6kyahjeuuu8068acxsv0wjmmj7d94he | 0x43b42b17bab13b79679ce1dfa3f706831ee96f72 | 31 | 6 | 5377.62108 | -| terp1c06clkgwjvnpecvt54fg034w0n7e4mpy6qnwtw | 0xc3f58fd90e93261ce18ba55287c6ae7cfd9aec24 | 31 | 6 | 5377.62108 | -| terp1p9gk4mn4wkpjrjfduvhmv7ynql3qqu0ejdpwnd | 0x09516aee75758321c92de32fb6789307e20071f9 | 30 | 6 | 5377.62108 | -| terp1qsr70xd4ascs7dlh0cgmk4vm4x4w4huvjt34s2 | 0x0407e799b5ec310f37f77e11bb559ba9aaeadf8c | 30 | 6 | 5377.62108 | -| terp1hydhrmshk6kuxkxryh96xqvxwkz9fv4tnqeyx3 | 0xb91b71ee17b6adc358c325cba30186758454b2ab | 30 | 6 | 5377.62108 | -| terp1kttgvzd8xaxcrmsfdjt9geam5hpqumwckp3waa | 0xb2d68609a7374d81ee096c965467bba5c20e6dd8 | 30 | 6 | 5377.62108 | -| terp1ts2qq50hkjwmjl805nk402jvr7gagmqqx2jpw9 | 0x5c140051f7b49db97cefa4ed57aa4c1f91d46c00 | 30 | 6 | 5377.62108 | -| terp19z27gykkptce0lef8u5pwnm8c8dsz78rh6qaqj | 0x2895e412d60af197ff293f28174f67c1db0178e3 | 30 | 6 | 5377.62108 | -| terp1ccrr84jwy96ztgta2a9655w568my343sssu5j3 | 0xc60633d64e217425a17d574baa51d4d1f648d630 | 30 | 6 | 5377.62108 | -| terp1m4e7ype2j6vkng702nra5lvnmmc5zmasuvnsum | 0xdd73e2072a969969a3cf54c7da7d93def1416fb0 | 30 | 6 | 5377.62108 | -| terp12jfwqyfwf8jla598kynccaklv409px5ey2guw8 | 0x5492e0112e49e5fed0a7b1278c76df655e509a99 | 30 | 6 | 5377.62108 | -| terp175a92zqqmcjj8j9wrpzakgxnskj2s0zkjykrek | 0xf53a550800de2523c8ae1845db20d385a4a83c56 | 30 | 6 | 5377.62108 | -| terp1mq98qdcxjhrg2qa2792jjfkkgal9sk28dqlcep | 0xd80a70370695c68503aaf1552926d6477e585947 | 30 | 6 | 5377.62108 | -| terp1tny2wkjaec6m2mkv3092npze3ns7d5ay44n5r5 | 0x5cc8a75a5dce35b56ecc8bcaa984598ce1e6d3a4 | 30 | 6 | 5377.62108 | -| terp14tcm6z08srquw83qj2tss92zw8n6xm5fs2xm06 | 0xaaf1bd09e780c1c71e20929708154271e7a36e89 | 30 | 6 | 5377.62108 | -| terp1q7p5uzjfzjvprdmk8py6thztdzp0urdfq6tu4t | 0x07834e0a49149811b7763849a5dc4b6882fe0da9 | 29 | 6 | 5377.62108 | -| terp1wg9yl2cged6xljgw3rgeyj5czpxqsgk00uu5gq | 0x720a4fab08cb746fc90e88d1924a98104c0822cf | 29 | 6 | 5377.62108 | -| terp1y0t5z5n7rq7jadd0dg20xdh7pr8ewrf5x6wk4w | 0x23d741527e183d2eb5af6a14f336fe08cf970d34 | 29 | 6 | 5377.62108 | -| terp1uughu55373a0xxrvz8xm9ua3x3m4su082aqsy3 | 0xe7117e5291f47af3186c11cdb2f3b134775871e7 | 29 | 6 | 5377.62108 | -| terp13gy0tt95t5wz33wmru8h7qhtex3mlae3a5nt20 | 0x8a08f5acb45d1c28c5db1f0f7f02ebc9a3bff731 | 29 | 6 | 5377.62108 | -| terp1vrqusz78gcmlmepcy0t4g4d4szlfc64tgnvhar | 0x60c1c80bc74637fde43823d75455b580be9c6aab | 29 | 6 | 5377.62108 | -| terp104mpkca53yqpyu6xzeg2epdxhzkzeaxlj99hnf | 0x7d761b63b489001273461650ac85a6b8ac2cf4df | 29 | 6 | 5377.62108 | -| terp1sncvae53d4aae6mfdlud3ht0rmcdrr5ljklap2 | 0x84f0cee6916d7bdceb696ff8d8dd6f1ef0d18e9f | 28 | 6 | 5377.62108 | -| terp1ytvmw6gwme0w7r4fxundw3hf3v7lfhvedct6ej | 0x22d9b7690ede5eef0ea93726d746e98b3df4dd99 | 28 | 6 | 5377.62108 | -| terp1kar6m5u5cz0f5g3qjtcv9m7k8sqquklfzfvue9 | 0xb747add394c09e9a222092f0c2efd63c000e5be9 | 28 | 6 | 5377.62108 | -| terp1vsrj4csf2em6kl5d7clplwhgnd3kd445zwtpja | 0x64072ae2095677ab7e8df63e1fbae89b6366d6b4 | 28 | 6 | 5377.62108 | -| terp1w9j6qnzpe8j7vl2g2r4trhrwm6zdz9lsmqdw0t | 0x7165a04c41c9e5e67d4850eab1dc6ede84d117f0 | 28 | 6 | 5377.62108 | -| terp1dlwgtxl66w7xspj8erzc2v865qu7rlqrwn4qzj | 0x6fdc859bfad3bc680647c8c58530faa039e1fc03 | 28 | 6 | 5377.62108 | -| terp1zelhj3tudsvfrrrvn99u88twqwaqthvtem79yl | 0x167f79457c6c18918c6c994bc39d6e03ba05dd8b | 28 | 6 | 5377.62108 | -| terp1jksdgvrj6jmqtgnysrdql4hwt3ysjgk2uuazrx | 0x95a0d43072d4b605a26480da0fd6ee5c490922ca | 28 | 6 | 5377.62108 | -| terp1skr3e6ly749fkummlnf0u07qkd0xcentw5xve3 | 0x85871cebe4f54a9b737bfcd2fe3fc0b35e6c666b | 28 | 6 | 5377.62108 | -| terp190av6xrnmr0thf56luw7zjwc8j2jj6nnqgehly | 0x2bfacd1873d8debba69aff1de149d83c95296a73 | 28 | 6 | 5377.62108 | -| terp143tcslmtku0ej0sckq2lh6l2dmg4yjkwcu08dv | 0xac57887f6bb71f993e18b015fbebea6ed1524ace | 28 | 6 | 5377.62108 | -| terp1rzr85c95gxle2udnxlshjtvj78euk95sl0l265 | 0x18867a60b441bf9571b337e1792d92f1f3cb1690 | 27 | 6 | 5377.62108 | -| terp1tfsl7nc2ddk0n8r4d3za4g4ptn7uz6kk6djwk6 | 0x5a61ff4f0a6b6cf99c756c45daa2a15cfdc16ad6 | 27 | 6 | 5377.62108 | -| terp1httfe9duz67udul6kgte8tly4hkrfheee82q89 | 0xbad69c95bc16bdc6f3fab21793afe4adec34df39 | 27 | 6 | 5377.62108 | -| terp1zvkhdzxgpy67qymx3gdps0uazvu98l7qffjaxf | 0x132d7688c80935e013668a1a183f9d133853ffc0 | 27 | 6 | 5377.62108 | -| terp1achcnnv9z08mnh20q0krdexwpvzyztz82lha4f | 0xee2f89cd8513cfb9dd4f03ec36e4ce0b04412c47 | 27 | 6 | 5377.62108 | -| terp1k4jmnxl4vqazyyqye20c0x9u86k08eucrh5fye | 0xb565b99bf5603a221004ca9f8798bc3eacf3e798 | 27 | 6 | 5377.62108 | -| terp1e8mmcrkn0wpp5d9l65yqt8r4gcxka7ehm37utr | 0xc9f7bc0ed37b821a34bfd508059c75460d6efb37 | 26 | 6 | 5377.62108 | -| terp1n0usprrr3vd5d4vkpg79yy4u6wcnlewktpx9vl | 0x9bf9008c638b1b46d5960a3c5212bcd3b13fe5d6 | 26 | 6 | 5377.62108 | -| terp1cw5tpmjqpx8r9swhf84um3kpgjk6jywdz9xc53 | 0xc3a8b0ee40098e32c1d749ebcdc6c144ada911cd | 25 | 6 | 5377.62108 | -| terp1dshfncyx6nx3casdcwuhnl89s35ks5yul74uhj | 0x6c2e99e086d4cd1c760dc3b979fce5846968509c | 24 | 6 | 5377.62108 | -| terp1ap62ut5gjuc0sy23mtext54a72a4mnxmt036jc | 0xe874ae2e889730f81151daf265d2bdf2bb5dccdb | 24 | 6 | 5377.62108 | -| terp17cmtddv38mju806d2tgneekyq9uu099lwu9rq8 | 0xf636b6b5913ee5c3bf4d52d13ce6c40179c794bf | 24 | 6 | 5377.62108 | -| terp1fs4ksqdxgppr5hfs95lucy5lvxjcl4rrr48xrs | 0x4c2b6801a640423a5d302d3fcc129f61a58fd463 | 24 | 6 | 5377.62108 | -| terp1ae3k7654665v0gnz7dr2kp4jf55tqvv4a04kc0 | 0xee636f6a95d6a8c7a262f346ab06b24d28b03195 | 24 | 6 | 5377.62108 | -| terp1quvcu9vv0p7wuk2vm9q7rkdaltyp7amykt3npv | 0x07198e158c787cee594cd941e1d9bdfac81f7764 | 24 | 6 | 5377.62108 | -| terp1hrp79c4rgedhfda907yjrgwr7mnfxqhzjdavya | 0xb8c3e2e2a3465b74b7a57f8921a1c3f6e69302e2 | 23 | 6 | 5377.62108 | -| terp16j7v9pz0wfhr4f88l64y5jj4ahsqzs2am0muhr | 0xd4bcc2844f726e3aa4e7feaa4a4a55ede001415d | 23 | 6 | 5377.62108 | -| terp1ual4pw68xsf3h8dvfxhfhgjrzeqrp5w02am55v | 0xe77f50bb4734131b9dac49ae9ba243164030d1cf | 22 | 6 | 5377.62108 | -| terp1aj8q3kngurvlza56gkykcn7t9wl4hp6kvk8s2x | 0xec8e08da68e0d9f1769a45896c4fcb2bbf5b8756 | 22 | 6 | 5377.62108 | -| terp17dyrvmyd7vss7qs6k76qhqq4540fphdg989030 | 0xf348366c8df3210f021ab7b40b8015a55e90dda8 | 22 | 6 | 5377.62108 | -| terp1v2ta3a5r9vc496amv7dkjqhj6rqpp9qwew7cyq | 0x6297d8f6832b3152ebbb679b6902f2d0c010940e | 22 | 6 | 5377.62108 | -| terp1kgm09ket8m5rz4j9vrzrpl70pc480d3xm6s706 | 0xb236f2db2b3ee831564560c430ffcf0e2a77b626 | 22 | 6 | 5377.62108 | -| terp1as2urrhzpsz44fvhkzflnvnn4nnr9j0gws9fns | 0xec15c18ee20c055aa597b093f9b273ace632c9e8 | 22 | 6 | 5377.62108 | -| terp1l9ktrwej2ssjnvhj7vjgayp994efrunlhep2zc | 0xf96cb1bb32542129b2f2f3248e90252d7291f27f | 22 | 6 | 5377.62108 | -| terp1y0yc3j5h6xyckvy0kxws0sajwaxxjm2elrd7sj | 0x23c988ca97d1898b308fb19d07c3b2774c696d59 | 22 | 6 | 5377.62108 | -| terp180thkq8s9j9ulavxc4j7930xkmzc0rkr65dwct | 0x3bd77b00f02c8bcff586c565e2c5e6b6c5878ec3 | 21 | 6 | 5377.62108 | -| terp1pd7kvexgfvjnp2v4m7kdg36lwkdzjhckk6889s | 0x0b7d6664c84b2530a995dfacd4475f759a295f16 | 21 | 6 | 5377.62108 | -| terp1uq98ac75m68lj75eud6xdmvcy9jgm5lnxacrxr | 0xe00a7ee3d4de8ff97a99e37466ed9821648dd3f3 | 21 | 6 | 5377.62108 | -| terp17semm06946pedqzltzpvnuu4kfrwv2hcvhj59y | 0xf433bdbf45ae8396805f5882c9f395b246e62af8 | 21 | 6 | 5377.62108 | -| terp1mf4dw3seucjs83xta7lq9ts9er6rz3v3e7yeku | 0xda6ad74619e62503c4cbefbe02ae05c8f4314591 | 21 | 6 | 5377.62108 | -| terp19mvtnucjulm5v6ruw4zlul3z4hxpwzdxln39h5 | 0x2ed8b9f312e7f746687c7545fe7e22adcc1709a6 | 21 | 6 | 5377.62108 | -| terp1zu2956dfdqvntru59ae8anuu6g82zzf4p5pn4g | 0x17145a69a96819358f942f727ecf9cd20ea10935 | 21 | 6 | 5377.62108 | -| terp1dhf4l026m6j2l39wpxjrzf4yvz4zwdneq3wpf3 | 0x6dd35fbd5adea4afc4ae09a43126a460aa273679 | 21 | 6 | 5377.62108 | -| terp1k0j0r8kv5rcq9r6myrv6wxrlnq0pj8v6v47tte | 0xb3e4f19ecca0f0028f5b20d9a7187f981e191d9a | 21 | 6 | 5377.62108 | -| terp1r8fzghlv3827tmhfwpku0my3rv3yrjak9y7fwq | 0x19d2245fec89d5e5eee9706dc7ec911b2241cbb6 | 20 | 6 | 5377.62108 | -| terp1l5xckwxl7nw440m9dd6jl05edcmqehq76h8d66 | 0xfd0d8b38dff4dd5abf656b752fbe996e360cdc1e | 20 | 6 | 5377.62108 | -| terp1z6zyyum47jm85qa32usljf5a8fujzl5ke90twy | 0x1684427375f4b67a03b15721f9269d3a79217e96 | 19 | 6 | 5377.62108 | -| terp13keht34ys4n44uyhvnurvpxah9wmpz3t3fy6rp | 0x8db375c6a485675af09764f83604ddb95db08a2b | 19 | 6 | 5377.62108 | -| terp17zene6h6kvl4uq9gd46pvh3pu7u2wh725dpese | 0xf0b33ceafab33f5e00a86d74165e21e7b8a75fca | 19 | 6 | 5377.62108 | -| terp1v3uv2nt7jwqpj580f9cyynfwsj735l4pfd44la | 0x6478c54d7e93801950ef4970424d2e84bd1a7ea1 | 19 | 6 | 5377.62108 | -| terp1petzyuauc7qctfz8u5tz3pcyahkxc43zsf607a | 0x0e562273bcc78185a447e516288704edec6c5622 | 19 | 6 | 5377.62108 | -| terp135lhqgrvg4rlppztn54x7d3evd8wp0knesa2wm | 0x8d3f70206c4547f0844b9d2a6f3639634ee0bed3 | 18 | 6 | 5377.62108 | -| terp1hgrdlp64argem2y9t2fvw7zs0stzgk9ys69taz | 0xba06df8755e8d19da8855a92c778507c162458a4 | 18 | 6 | 5377.62108 | -| terp1jhlrcqgpks6g4agd8xyczzlqejcdmkq7lf96td | 0x95fe3c0101b4348af50d3989810be0ccb0ddd81e | 18 | 6 | 5377.62108 | -| terp18e02vvw9gzzw8wz8q3j9zxkqeczhyh8r6rjczj | 0x3e5ea631c54084e3b8470464511ac0ce05725ce3 | 18 | 6 | 5377.62108 | -| terp1cyagplffeh049yxjuvqmxysa7zmnk3qpme9hxh | 0xc13a80fd29cddf5290d2e301b3121df0b73b4401 | 18 | 6 | 5377.62108 | -| terp100lqnwjx496da5fnfwr8rwpk7le4em2lnwe6ew | 0x7bfe09ba46a974ded1334b8671b836f7f35ced5f | 18 | 6 | 5377.62108 | -| terp143v6mt8uvseem5d7gl6s6aecnh442t9jhwjaua | 0xac59adacfc64339dd1be47f50d77389deb552cb2 | 18 | 6 | 5377.62108 | -| terp1rez83hlh4qee96srcq255gdfxl05q53ssq3n5l | 0x1e4478dff7a83392ea03c0154a21a937df405230 | 18 | 6 | 5377.62108 | -| terp10xmj8ny8zsj3fgeuguh9sq4zvjva4n74824ryr | 0x79b723cc87142514a33c472e5802a26499dacfd5 | 17 | 6 | 5377.62108 | -| terp1twze3rcqxthgrru3rmyknhvuvjw25zs5x7yn92 | 0x5b85988f0032ee818f911ec969dd9c649caa0a14 | 17 | 6 | 5377.62108 | -| terp19heljx5eg7m99k2qgqs4s3kzzyp58sue542246 | 0x2df3f91a9947b652d94040215846c2110343c399 | 17 | 6 | 5377.62108 | -| terp1hq76a27zrzwh9wlsaz520hthvahqq500sqe977 | 0xb83daeabc2189d72bbf0e8a8a7dd77676e0051ef | 17 | 6 | 5377.62108 | -| terp1z3lydrplr5dff3qyv0q04khjh4vefc0akljq39 | 0x147e468c3f1d1a94c40463c0fadaf2bd5994e1fd | 17 | 6 | 5377.62108 | -| terp16uunhnfanzy7vltzlw8fr3fdfyp4lydjfju545 | 0xd7393bcd3d9889e67d62fb8e91c52d49035f91b2 | 17 | 6 | 5377.62108 | -| terp1s4e07fgy2kcgt2c25vplmpyp43jpaq0p27wv6v | 0x8572ff250455b085ab0aa303fd8481ac641e81e1 | 16 | 6 | 5377.62108 | -| terp1wj32et5mjfupewcuegauve7q2vf7zjzsj6pjxy | 0x74a2acae9b92781cbb1cca3bc667c05313e14850 | 16 | 6 | 5377.62108 | -| terp1996pnwvrueq3sy55w0z4e7jpsn3a45jfyf9q67 | 0x297419b983e64118129473c55cfa4184e3dad249 | 16 | 6 | 5377.62108 | -| terp1l9uv2ddada04wrp6g0g9r45ve03x5vpz2hv3kk | 0xf978c535bd6f5f570c3a43d051d68ccbe26a3022 | 16 | 6 | 5377.62108 | -| terp19z4595749hexrjcnjdcvaqqptm40sxup5vse67 | 0x28ab42d3d52df261cb139370ce80015eeaf81b81 | 16 | 6 | 5377.62108 | -| terp1rr2nppmhgc3m07ja499572n6nzph9g3v060dlq | 0x18d53087774623b7fa5da94b4f2a7a988372a22c | 16 | 6 | 5377.62108 | -| terp19r37qvjqcjm3q8z8f0du4vfud0zze3lt7d72xt | 0x28e3e03240c4b7101c474bdbcab13c6bc42cc7eb | 16 | 6 | 5377.62108 | -| terp1m4mz4aulh0rnk5v5rlw3lmuw3ygpadgm939auq | 0xdd762af79fbbc73b51941fdd1fef8e89101eb51b | 16 | 6 | 5377.62108 | -| terp1adwhklxhrunmzmval020u9k9nclxwp6r8d5yd2 | 0xeb5d7b7cd71f27b16d9dfbd4fe16c59e3e670743 | 16 | 6 | 5377.62108 | -| terp1pc7rkvkfdhxdwpqyetjwzh4ne96dhrvea25ddv | 0x0e3c3b32c96dccd70404cae4e15eb3c974db8d99 | 16 | 6 | 5377.62108 | -| terp139nasgx0unxzgp2zwz4j7lql25lphj6u6ckmqy | 0x8967d820cfe4cc24054270ab2f7c1f553e1bcb5c | 16 | 6 | 5377.62108 | -| terp128kp2k2zxrwlyxn75kj2cwfthrda55n7drnkec | 0x51ec15594230ddf21a7ea5a4ac392bb8dbda527e | 15 | 6 | 5377.62108 | -| terp10het2pw4hhcgejj8gtqjg37wgeg4rencnccknf | 0x7df2b505d5bdf08cca4742c12447ce465151e678 | 15 | 6 | 5377.62108 | -| terp1h0vp2v674rwl4x7pwekdqmmyq5x5px6jznqx20 | 0xbbd815335ea8ddfa9bc1766cd06f64050d409b52 | 15 | 6 | 5377.62108 | -| terp1jrr4kt49t6p8vmxr8faxfrar0vrmlwcm3y0h3s | 0x90c75b2ea55e82766cc33a7a648fa37b07bfbb1b | 15 | 6 | 5377.62108 | -| terp1x9r4fdglnsrg4r22hxq8ufg9ej0v267pkcgpvr | 0x314754b51f9c068a8d4ab9807e2505cc9ec56bc1 | 15 | 6 | 5377.62108 | -| terp1snhrm59yc3y0s3tprm3gu7spdp3ruhu89xatum | 0x84ee3dd0a4c448f845611ee28e7a0168623e5f87 | 15 | 6 | 5377.62108 | -| terp13wx96pz9u37h0vqxwkepa6y4mma8h74rgwtxca | 0x8b8c5d0445e47d77b00675b21ee895defa7bfaa3 | 15 | 6 | 5377.62108 | -| terp1r6mmqs3kh9v58hxal5hfdka3hgan0azvxppaet | 0x1eb7b04236b95943dcddfd2e96dbb1ba3b37f44c | 15 | 6 | 5377.62108 | -| terp18u9x7kyeq7pv79aytln5jqdtplmtxs4zpyy03u | 0x3f0a6f58990782cf17a45fe74901ab0ff6b342a2 | 15 | 6 | 5377.62108 | -| terp1wtgy2hf9mwwrdt6cdxalgf339w5j83jrqmfp4h | 0x72d0455d25db9c36af5869bbf426312ba923c643 | 15 | 6 | 5377.62108 | -| terp1hydz89cu408qmwwmmcv0248y078ld70n4z9hkz | 0xb91a23971cabce0db9dbde18f554e47f8ff6f9f3 | 15 | 6 | 5377.62108 | -| terp10da8hvc4gezctsz8ycvza6kl0lk2e7t02l4yqv | 0x7b7a7bb315464585c04726182eeadf7fecacf96f | 15 | 6 | 5377.62108 | -| terp1tg9u84acd7uwrxg9js0g7pcq6up4tuc3yr0q5v | 0x5a0bc3d7b86fb8e19905941e8f0700d70355f311 | 15 | 6 | 5377.62108 | -| terp1qfded7kf9qm4g6suka6kpjrz0q26shg5ldyzat | 0x025b96fac92837546a1cb77560c8627815a85d14 | 15 | 6 | 5377.62108 | -| terp19wmgcfh8tvqa9jaek8t3gvhu20zvsq6st4ryzp | 0x2bb68c26e75b01d2cbb9b1d71432fc53c4c80350 | 15 | 6 | 5377.62108 | -| terp1475svd0d3munhxzeh0w6dqq4yppr8a4sznrm0v | 0xafa90635ed8ef93b9859bbdda68015204233f6b0 | 15 | 6 | 5377.62108 | -| terp1rr00u7pkc06gs65xnqm4jmz800c765ud9wuqsy | 0x18defe7836c3f4886a869837596c477bf1ed538d | 14 | 6 | 5377.62108 | -| terp1e03vyfqnhjy7z8vc2n5szp8wpx82aes7sac6kl | 0xcbe2c22413bc89e11d9854e90104ee098eaee61e | 14 | 6 | 5377.62108 | -| terp1yl4h3s02mehuqsxjtw2w0t8kh0sx38c2fj5pk0 | 0x27eb78c1eade6fc040d25b94e7acf6bbe0689f0a | 14 | 6 | 5377.62108 | -| terp1n9lyqjqr7rqmgd8t4paq8f3xw4nysh4r6yd8lr | 0x997e404803f0c1b434eba87a03a6267566485ea3 | 14 | 6 | 5377.62108 | -| terp1j2t0f2lwwuss0jkjqsdyzyk6flr6whakqsppq4 | 0x9296f4abee772107cad2041a4112da4fc7a75fb6 | 14 | 6 | 5377.62108 | -| terp1mgka0g5jeszm8uulud7d4pzxqdrynp0986k8pf | 0xda2dd7a292cc05b3f39fe37cda844603464985e5 | 14 | 6 | 5377.62108 | -| terp1f5a2m3mh8zx9699cm6avyx5m36nhvf9kh49gde | 0x4d3aadc777388c5d14b8debac21a9b8ea77624b6 | 14 | 6 | 5377.62108 | -| terp1ma9zqrn380g2jsl9sw35tefwu0xqx0275ysngn | 0xdf4a200e713bd0a943e583a345e52ee3cc033d5e | 14 | 6 | 5377.62108 | -| terp10q7d9fyun5u7vucy53zq4tg9254el3d6hmpray | 0x783cd2a49c9d39e67304a4440aad05552b9fc5ba | 13 | 6 | 5377.62108 | -| terp1x3n8pmkqnddwaca2wytnzn2jevrhsxtqjlk4er | 0x346670eec09b5aeee3aa7117314d52cb07781960 | 13 | 6 | 5377.62108 | -| terp1rkn2fnc2rz0l7mpmlsurjsdgnza293gran8kfn | 0x1da6a4cf0a189fff6c3bfc383941a898baa2c503 | 13 | 6 | 5377.62108 | -| terp16lh6um5wq4twhd080fye5d8uu6jd33ezm84ag3 | 0xd7efae6e8e0556ebb5e77a499a34fce6a4d8c722 | 13 | 6 | 5377.62108 | -| terp1wwh84rtfawzvfk78z7un8m520zmj8s39t3cuer | 0x73ae7a8d69eb84c4dbc717b933ee8a78b723c225 | 13 | 6 | 5377.62108 | -| terp1zse8rwc539t4cq2x5l5dh5dxcytw3ase9gtfeh | 0x143271bb1489575c0146a7e8dbd1a6c116e8f619 | 13 | 6 | 5377.62108 | -| terp1g3cs9ckzj726hvpus6fvn98kths4faleluuxaw | 0x447102e2c29795abb03c8692c994f65de154f7f9 | 13 | 6 | 5377.62108 | -| terp1qcwn50w3mg30c072jqzdw8vzl7f8jvl3umuevr | 0x061d3a3dd1da22fc3fca9004d71d82ff927933f1 | 13 | 6 | 5377.62108 | -| terp16hq7v99qpyeppuu8krscvp2fc7yzfu3xd9gnyv | 0xd5c1e614a0093210f387b0e1860549c78824f226 | 13 | 6 | 5377.62108 | -| terp1mhyxlwmn3psv05lykufs4jhd3nv4sugm2kyeyq | 0xddc86fbb738860c7d3e4b7130acaed8cd958711b | 13 | 6 | 5377.62108 | -| terp1gj5s5sed8y2n97u4ye7zg0rutn5pm6eu9kajh3 | 0x44a90a432d391532fb95267c243c7c5ce81deb3c | 13 | 6 | 5377.62108 | -| terp1cawvq2004r62qffgs2p3j5nv0x3elmh0s3t0pv | 0xc75cc029efa8f4a02528828319526c79a39feeef | 13 | 6 | 5377.62108 | -| terp18s2klew6cyk0enzp0pzjywqkqmmyrtj43syjjx | 0x3c156fe5dac12cfccc41784522381606f641ae55 | 13 | 6 | 5377.62108 | -| terp1gmty4l2rhyjgmr78mal4slxf92gt6nwgalezar | 0x46d64afd43b9248d8fc7df7f587cc92a90bd4dc8 | 13 | 6 | 5377.62108 | -| terp19dt7mmncjyfpw54d3q4m9ft72089ta9w38a834 | 0x2b57edee7891121752ad882bb2a57e53ce55f4ae | 13 | 6 | 5377.62108 | -| terp1yqj35pg9at23lvkxeewp7wveyn4qdqezqqq7hy | 0x20251a0505ead51fb2c6ce5c1f399924ea068322 | 12 | 6 | 5377.62108 | -| terp1f68p0g9ngeqzyhq8848esz39hptld4qxd0kp02 | 0x4e8e17a0b34640225c073d4f980a25b857f6d406 | 12 | 6 | 5377.62108 | -| terp14jaj9zzk7x225hmsq9f9yywz9uyhcawvrncx5t | 0xacbb228856f194aa5f7001525211c22f097c75cc | 12 | 6 | 5377.62108 | -| terp1da5l0882gxqzfw0q4n7330vdufheh03ehlz4ms | 0x6f69f79cea418024b9e0acfd18bd8de26f9bbe39 | 12 | 6 | 5377.62108 | -| terp1nme609wqn9ugjtxlcd6tllsdvgftyq53787dn6 | 0x9ef3a795c09978892cdfc374bffe0d6212b20291 | 12 | 6 | 5377.62108 | -| terp1lx9tu24c3pjacs3fjrntsmkqmah7t5zjsgxt6u | 0xf98abe2ab88865dc422990e6b86ec0df6fe5d052 | 12 | 6 | 5377.62108 | -| terp1ncc2re0p8ghq7tkhwkaagg8m0je3a047xcvz4p | 0x9e30a1e5e13a2e0f2ed775bbd420fb7cb31ebebe | 12 | 6 | 5377.62108 | -| terp1xgaa8xafzn4gsg5t69a6eu7ym9ss90yekncxqt | 0x323bd39ba914ea88228bd17bacf3c4d96102bc99 | 12 | 6 | 5377.62108 | -| terp1j40tk3v4rsa67tfecffumx5z3sshv73wu8gn83 | 0x955ebb45951c3baf2d39c253cd9a828c21767a2e | 12 | 6 | 5377.62108 | -| terp1rz7k0mdukmsswtq0lh9z4hv0ajq9y3kmuqnkgs | 0x18bd67edbcb6e1072c0ffdca2add8fec805246db | 12 | 6 | 5377.62108 | -| terp120g6lje6wnn30s954xlj45utw7n3ly5dffxc2m | 0x53d1afcb3a74e717c0b4a9bf2ad38b77a71f928d | 12 | 6 | 5377.62108 | -| terp1l86kkmwyc2tmpk2zkrsr7ln86mwsa4a7wf5uc5 | 0xf9f56b6dc4c297b0d942b0e03f7e67d6dd0ed7be | 12 | 6 | 5377.62108 | -| terp1404gagu34lhvek05atyqwk2cfrzmclzhsqeu8g | 0xabea8ea391afeeccd9f4eac807595848c5bc7c57 | 12 | 6 | 5377.62108 | -| terp1f0d3elagar69hwvzlvac5m56l2rlfnsrcx63d4 | 0x4bdb1cffa8e8f45bb982fb3b8a6e9afa87f4ce03 | 12 | 6 | 5377.62108 | -| terp1tsgcll08nejr86ju9y746k6qanadyj8mf2v4f2 | 0x5c118ffde79e6433ea5c293d5d5b40ecfad248fb | 12 | 6 | 5377.62108 | -| terp1r3zrc4x8n5xmr6netwt67w6f8sn5f2l6h3v232 | 0x1c443c54c79d0db1ea795b97af3b493c2744abfa | 12 | 6 | 5377.62108 | -| terp1uwkcly75qm6r2g80487vjtr6l52ty069ef59e6 | 0xe3ad8f93d406f43520efa9fcc92c7afd14b23f45 | 12 | 6 | 5377.62108 | -| terp1kwuuczjqdawusv2uw29h22nzeuwc7ppx7ncjzd | 0xb3b9cc0a406f5dc8315c728b752a62cf1d8f0426 | 11 | 6 | 5377.62108 | -| terp1207wu3p3x0n579npdslwn0d5fm9wy6c86ex7r5 | 0x53fcee443133e74f16616c3ee9bdb44ecae26b07 | 11 | 6 | 5377.62108 | -| terp1a0vmhza5wqz3xwd87yatdpprj7uu6cj53jml8v | 0xebd9bb8bb470051339a7f13ab6842397b9cd6254 | 11 | 6 | 5377.62108 | -| terp19cj8dgjxcqdfqktj7lc9m9tqljgpu4gjh8arue | 0x2e2476a246c01a905972f7f05d9560fc901e5512 | 11 | 6 | 5377.62108 | -| terp1mm58y40mn4mg4sllqxzhjt7p82utsyftnek2lm | 0xdee87255fb9d768ac3ff0185792fc13ab8b8112b | 11 | 6 | 5377.62108 | -| terp1gwmc2vlf90rfqye66e08ec3v5tyvell7l4v3ny | 0x43b78533e92bc690133ad65e7ce22ca2c8ccfffe | 11 | 6 | 5377.62108 | -| terp1j9rcd8xw52wyday8etcna22rv3gexhw9544s2x | 0x9147869ccea29c46f487caf13ea9436451935dc5 | 11 | 6 | 5377.62108 | -| terp1cp5xgykduzyyezj70q3p8f34zs3xtcwdmh665f | 0xc0686412cde0884c8a5e782213a635142265e1cd | 11 | 6 | 5377.62108 | -| terp1qyqklvg565k9x0lvnvtp2esfu6cyrzxdwju8gg | 0x01016fb114d52c533fec9b16156609e6b04188cd | 11 | 6 | 5377.62108 | -| terp1x6v3kgmmrgkzat7egf60z8jcn57qg8y4yt5h42 | 0x36991b237b1a2c2eafd94274f11e589d3c041c95 | 11 | 6 | 5377.62108 | -| terp15sdyhpxhfcy9h4rr8pk4tsakmhn25f6etkfhjx | 0xa41a4b84d74e085bd463386d55c3b6dde6aa2759 | 10 | 6 | 5377.62108 | -| terp127whkmt2a7e66sj9zmhrpzdxxts2cshcu85qsm | 0x579d7b6d6aefb3ad424516ee3089a632e0ac42f8 | 10 | 6 | 5377.62108 | -| terp1v39gpqcph8vqwceazrc8df6gptwgmluz455lvw | 0x644a808301b9d807633d10f076a7480adc8dff82 | 10 | 6 | 5377.62108 | -| terp14acrrd8j5xjjxw87d0t4gz0rs4jg8q25etcx3j | 0xaf7031b4f2a1a52338fe6bd75409e38564838154 | 10 | 6 | 5377.62108 | -| terp18vmvktrgyc6famqlw96p0aruqm9hpdl2ptg3k4 | 0x3b36cb2c6826349eec1f717417f47c06cb70b7ea | 10 | 6 | 5377.62108 | -| terp1y25lf63mqgglpv57v2e607dqfzxa68njw4jaqj | 0x22a9f4ea3b0211f0b29e62b3a7f9a0488ddd1e72 | 10 | 6 | 5377.62108 | -| terp1qcpq75nuvsrfy4pd2s4y6f0uzp8g7349uhaua9 | 0x06020f527c640692542d542a4d25fc104e8f46a5 | 10 | 6 | 5377.62108 | -| terp1hwshu0jsrkgmjq36cnq7a5gsq2aqesydl6yzu2 | 0xbba17e3e501d91b9023ac4c1eed11002ba0cc08d | 10 | 6 | 5377.62108 | -| terp1m3ymq0uv2e2ffvl4vz9hkrkmxghqmerkgz36fr | 0xdc49b03f8c565494b3f5608b7b0edb322e0de476 | 10 | 6 | 5377.62108 | -| terp1hvcwe9kr63g8d4e7ja7s4546mld7vz4scfaua2 | 0xbb30ec96c3d45076d73e977d0ad2badfdbe60ab0 | 10 | 6 | 5377.62108 | -| terp10dmyc6wle4u72z78t4ez5jesk2ghmqr434229r | 0x7b764c69dfcd79e50bc75d722a4b30b2917d8075 | 10 | 6 | 5377.62108 | -| terp1pz7gwehtxphgv3thgegemww0k09x4tpjc0wazf | 0x08bc8766eb306e86457746519db9cfb3ca6aac32 | 10 | 6 | 5377.62108 | -| terp1qwxmd00ftqt4gqu686r5s2al0yxhq5725c0e72 | 0x038db6bde9581754039a3e87482bbf790d7053ca | 10 | 6 | 5377.62108 | -| terp14r0tym9r2x5y86krj3g6m02r3chdmufg7vqcsc | 0xa8deb26ca351a843eac39451adbd438e2eddf128 | 10 | 6 | 5377.62108 | -| terp1q5xpwjknrgs9dzmym96jp9x5thma5n3l64q7t6 | 0x050c174ad31a20568b64d9752094d45df7da4e3f | 10 | 6 | 5377.62108 | -| terp1nvqwyjantrlvn0jfc5sx39cac03rz4tpf88ag3 | 0x9b00e24bb358fec9be49c52068971dc3e2315561 | 10 | 6 | 5377.62108 | -| terp18y78gvh9dxe6kdhqc2l0s5geh2xqlrfnyr9g54 | 0x393c7432e569b3ab36e0c2bef85119ba8c0f8d33 | 10 | 6 | 5377.62108 | -| terp19vz9dy0uq857f9gfl70v34ujfkqjdyhcqedwmv | 0x2b045691fc01e9e49509ff9ec8d7924d812692f8 | 10 | 6 | 5377.62108 | -| terp12q36mzxdmlf9tvnn4yuv69scl8rtdcqlm6fgpf | 0x5023ad88cddfd255b273a938cd1618f9c6b6e01f | 10 | 6 | 5377.62108 | -| terp1mn2peth8kanm7e6zhdxjp5ad024eg2jz3pdw0w | 0xdcd41caee7b767bf6742bb4d20d3ad7aab942a42 | 10 | 6 | 5377.62108 | -| terp1lqze5g0e7zp2qsl69msn3d6h6u7x3y5h3jfyhw | 0xf8059a21f9f082a043fa2ee138b757d73c689297 | 10 | 6 | 5377.62108 | -| terp1csckjxz0xy4gkpl7zajznhpt2tygrdg5275ah9 | 0xc43169184f312a8b07fe176429dc2b52c881b514 | 9 | 6 | 5377.62108 | -| terp18pzdga40g4vq7e2248p3wdm2u3656c7me7n9eg | 0x3844d476af45580f654aa9c317376ae4754d63db | 9 | 6 | 5377.62108 | -| terp1etd5fn2uy2gg39n8dwd5ewspz7sn327876m4c4 | 0xcadb44cd5c22908896676b9b4cba0117a138abc7 | 9 | 6 | 5377.62108 | -| terp16nzqz4m4exwjpu965yvdww9wpcqltq35y0j50d | 0xd4c4015775c99d20f0baa118d738ae0e01f58234 | 9 | 6 | 5377.62108 | -| terp1amausfuy05qc67gf2gtxwsgjakjtutkzym6jxy | 0xeefbc827847d018d79095216674112eda4be2ec2 | 9 | 6 | 5377.62108 | -| terp1dy5xjv387633cwclnc4hlf03ej5hn45m8lxpjc | 0x6928693227f6a31c3b1f9e2b7fa5f1cca979d69b | 9 | 6 | 5377.62108 | -| terp162fad5ah3qr9hej5krhj3a054m4hyqh4af9zvu | 0xd293d6d3b788065be654b0ef28f5f4aeeb7202f5 | 9 | 6 | 5377.62108 | -| terp1z9g6c64hs5v76q6dvuvzp3uw0w5caprwvpmtcc | 0x1151ac6ab78519ed034d671820c78e7ba98e846e | 9 | 6 | 5377.62108 | -| terp18xfmtshd2g2jje60fp0sryw4p7zhdvx6kevzcs | 0x3993b5c2ed521529674f485f0191d50f8576b0da | 9 | 6 | 5377.62108 | -| terp1c0schmcm0gwg87gzze346qsr52w3ada4mdaqyc | 0xc3e18bef1b7a1c83f90216635d0203a29d1eb7b5 | 9 | 6 | 5377.62108 | -| terp18v9jv2ccwqq4ytp5ah90cdu9qqfn4v3s8rqucy | 0x3b0b262b187001522c34edcafc378500133ab230 | 9 | 6 | 5377.62108 | -| terp1p0ysjm00nhhq2ssran2dfvuzk9qkxfy7n056v4 | 0x0bc9096def9dee054203ecd4d4b382b14163249e | 9 | 6 | 5377.62108 | -| terp10r829xk2r577r9l0wc0lq95matrgwufyc7vd9h | 0x78cea29aca1d3de197ef761ff0169beac6877124 | 9 | 6 | 5377.62108 | -| terp19u2hvqp3xp45eekq3x5tcgzcsmx5xunvtxksjt | 0x2f15760031306b4ce6c089a8bc205886cd43726c | 9 | 6 | 5377.62108 | -| terp1daa2gmp3ayu4vaamtxh8lxzdjvy6j60umt9axr | 0x6f7aa46c31e9395677bb59ae7f984d9309a969fc | 9 | 6 | 5377.62108 | -| terp13cjxerpheqknlztjvae7tz6rh25xzss5ttrl8f | 0x8e246c8c37c82d3f89726773e58b43baa8614214 | 9 | 6 | 5377.62108 | -| terp1fspdnr8hv0t2w0l7lfjfdjxpp8p7uxvjcfvjwg | 0x4c02d98cf763d6a73ffefa6496c8c109c3ee1992 | 9 | 6 | 5377.62108 | -| terp1gppg27aaq600jexcxxw9skdv2ehud60yn4zzwn | 0x4042857bbd069ef964d8319c5859ac566fc6e9e4 | 9 | 6 | 5377.62108 | -| terp1yxefy0tx38ywk73aykfvchknsr3gwk4xqjadqp | 0x21b2923d6689c8eb7a3d2592cc5ed380e2875aa6 | 9 | 6 | 5377.62108 | -| terp1pa5j7j5xyeuspzalfrxq574aluffprme47vt2a | 0x0f692f4a862679008bbf48cc0a7abdff12908f79 | 9 | 6 | 5377.62108 | -| terp1c2dfls03kzj4qdq0zlw65p9yupp29g7va7pke3 | 0xc29a9fc1f1b0a550340f17ddaa04a4e042a2a3cc | 9 | 6 | 5377.62108 | -| terp1tvcqxfxc3fmxmrkjpxqq729p9ltxpq7qevzjxe | 0x5b300324d88a766d8ed209800f28a12fd66083c0 | 9 | 6 | 5377.62108 | -| terp10udxrnxyen3eg22vm7ed7ymq7t2q7f2g75qhau | 0x7f1a61ccc4cce394294cdfb2df1360f2d40f2548 | 9 | 6 | 5377.62108 | -| terp1cfg272htcdxyx8ecg658yzywtx6eqmh070t4gg | 0xc250af2aebc34c431f3846a872088e59b5906eef | 9 | 6 | 5377.62108 | -| terp13cwnkthhwgcwqx8ycw6tutgglt2s2ce2g48qcd | 0x8e1d3b2ef77230e018e4c3b4be2d08fad505632a | 9 | 6 | 5377.62108 | -| terp1rllnefmtzq2ketg49asvufu3g60frnpf4r0r9g | 0x1fff3ca76b10156cad152f60ce2791469e91cc29 | 9 | 6 | 5377.62108 | -| terp1lj3enwyj7n5rqm7rrvcj5vue7s3fw6yxksnze6 | 0xfca399b892f4e8306fc31b312a3399f422976886 | 9 | 6 | 5377.62108 | -| terp1axyy8sftg986d4w036adn2y9am58a440tg9u8u | 0xe98843c12b414fa6d5cf8ebad9a885eee87ed6af | 9 | 6 | 5377.62108 | -| terp1r4slfstgjnl2gvq0rw8h5w2asue5dm7s2g0w68 | 0x1d61f4c16894fea4300f1b8f7a395d873346efd0 | 9 | 6 | 5377.62108 | -| terp15kav0s03f0tmq64szalpr6522j08jag6qkjcg5 | 0xa5bac7c1f14bd7b06ab0177e11ea8a549e79751a | 9 | 6 | 5377.62108 | -| terp1hdn782jqdh0qfzkfwxup9275yuflupkrm9vzsm | 0xbb67e3aa406dde048ac971b812abd42713fe06c3 | 9 | 6 | 5377.62108 | -| terp1hanpj722tc00rmgp5nlhadseuakk93aypg003g | 0xbf6619794a5e1ef1ed01a4ff7eb619e76d62c7a4 | 9 | 6 | 5377.62108 | -| terp1d7zekw7gjt0r4snk95ndcqlvdl705s9yllywxf | 0x6f859b3bc892de3ac2762d26dc03ec6ffcfa40a4 | 9 | 6 | 5377.62108 | -| terp1l8xlpsxkpgd0u4e3lrv4ngettjxhezx9tj0jtn | 0xf9cdf0c0d60a1afe5731f8d959a32b5c8d7c88c5 | 9 | 6 | 5377.62108 | -| terp1khqg5dr684gew8t5t8sfwn0jkutk9pj3ejjdqs | 0xb5c08a347a3d51971d7459e0974df2b717628651 | 9 | 6 | 5377.62108 | -| terp1ap9jp07057w802qk8rqvms6y74ga8r3ymq9wn8 | 0xe84b20bfcfa79c77a81638c0cdc344f551d38e24 | 9 | 6 | 5377.62108 | -| terp1vzk03k2l6dj3ytjk7s2t9sfanhrhg2khhxprhl | 0x60acf8d95fd365122e56f414b2c13d9dc7742ad7 | 8 | 6 | 5377.62108 | -| terp1vc2myf7fcc68u200dxhhn2pewnm9nt5mvdcra0 | 0x6615b227c9c6347e29ef69af79a83974f659ae9b | 8 | 6 | 5377.62108 | -| terp17tawg5rft36jj9j87eav8fxnkhgk3ypacmaqn7 | 0xf2fae450695c75291647f67ac3a4d3b5d168903d | 8 | 6 | 5377.62108 | -| terp1phf88wz724uvfzz4jyr6ex9p4wv0yz92mdaxzk | 0x0dd273b85e5578c488559107ac98a1ab98f208aa | 8 | 6 | 5377.62108 | -| terp1uwgp6znyjuayl8sk8207s3ydehych28fpz5vpf | 0xe3901d0a64973a4f9e163a9fe8448dcdc98ba8e9 | 8 | 6 | 5377.62108 | -| terp1zd5g8v5yr477tsf7emn90z8auxga5heq2547tu | 0x136883b2841d7de5c13ecee65788fde191da5f20 | 8 | 6 | 5377.62108 | -| terp1tvdqqspvd24u0xd2xrgqn7exa3ucpws2rzwkpm | 0x5b1a00402c6aabc799aa30d009fb26ec7980ba0a | 8 | 6 | 5377.62108 | -| terp1elr9a0wddwgtjqmfzwt3l9373kwc8ummy3zt7g | 0xcfc65ebdcd6b90b9036913971f963e8d9d83f37b | 8 | 6 | 5377.62108 | -| terp1ftuhghcxsa0ne3pj0u5cnw4qlep74x062ppfv8 | 0x4af9745f06875f3cc4327f2989baa0fe43ea99fa | 8 | 6 | 5377.62108 | -| terp17g6hd6lcz5rhm8epmtq0rj9a7h5c23u4txfry3 | 0xf23576ebf815077d9f21dac0f1c8bdf5e9854795 | 8 | 6 | 5377.62108 | -| terp1v97eyjnkqrqw7mn5re9dh9azd5pmm4f5vplkcy | 0x617d924a7600c0ef6e741e4adb97a26d03bdd534 | 8 | 6 | 5377.62108 | -| terp1l4xgnskggz6whxu84smewk24r9d3yf8lhvsqj3 | 0xfd4c89c2c840b4eb9b87ac37975955195b1224ff | 8 | 6 | 5377.62108 | -| terp160rmedhk27hr2mhu3fakjy6dwysxe2lej0p09f | 0xd3c7bcb6f657ae356efc8a7b69134d71206cabf9 | 8 | 6 | 5377.62108 | -| terp1hkea9k8p7wg2zpczzrnp9m6sstxjhn38ext00e | 0xbdb3d2d8e1f390a1070210e612ef5082cd2bce27 | 8 | 6 | 5377.62108 | -| terp1ph8r5j7s86t8dv0qphqarugrakwrj9uvg7q3rj | 0x0dce3a4bd03e9676b1e00dc1d1f103ed9c39178c | 8 | 6 | 5377.62108 | -| terp1ccuddc6cv34vnmdmxcr5kr9dl69h6egc007lnv | 0xc638d6e358646ac9edbb36074b0cadfe8b7d6518 | 8 | 6 | 5377.62108 | -| terp1yncpmgfxvl2k0x7z7n05fjge89hdz5hj2l32mv | 0x24f01da12667d5679bc2f4df44c919396ed152f2 | 8 | 6 | 5377.62108 | -| terp1yyvzcs5pg7nclm374hktt8js3t20wxvg5qackq | 0x21182c428147a78fee3eadecb59e508ad4f71988 | 8 | 6 | 5377.62108 | -| terp1euttxxgyngp4lkvgxg5sn4mwwklw36cuaslhy8 | 0xcf16b319049a035fd988322909d76e75bee8eb1c | 8 | 6 | 5377.62108 | -| terp16js58y6pdgepkaqk3cje49vjnqkg3tnjcdjsx9 | 0xd4a14393416a321b74168e259a9592982c88ae72 | 8 | 6 | 5377.62108 | -| terp1a7na6jxzc9quc5zypy9c0uyenp4uqt64lc6sk2 | 0xefa7dd48c2c141cc5044090b87f099986bc02f55 | 8 | 6 | 5377.62108 | -| terp18zzy2fnwt57q983dmncceqp3ynhm77dcpj6egv | 0x388445266e5d3c029e2ddcf18c803124efbf79b8 | 8 | 6 | 5377.62108 | -| terp1tw4677jrhk3rum9vvuutn4vghm4tk28sjtqj30 | 0x5babaf7a43bda23e6cac6738b9d588beeabb28f0 | 8 | 6 | 5377.62108 | -| terp1sf9c88e2qv6xcvrz5nf74k0g0w36j0mgfmuxnn | 0x824b839f2a03346c3062a4d3ead9e87ba3a93f68 | 8 | 6 | 5377.62108 | -| terp1alvhlqj2pdr93cc7e07andx467x84p8j4nu7nx | 0xefd97f824a0b4658e31ecbfdd9b4d5d78c7a84f2 | 8 | 6 | 5377.62108 | -| terp15m97mam07sr4sp4cu9wv9kryrllq09ryn52zku | 0xa6cbedf76ff4075806b8e15cc2d8641ffe079464 | 8 | 6 | 5377.62108 | -| terp1gemt0rg77gq5n4zml3l08lj0zf7psjlxh9xwe6 | 0x4676b78d1ef20149d45bfc7ef3fe4f127c184be6 | 8 | 6 | 5377.62108 | -| terp16mm0unfdrxzvquuxn8488nn7a7d330azd0797l | 0xd6f6fe4d2d1984c0738699ea73ce7eef9b18bfa2 | 8 | 6 | 5377.62108 | -| terp1v88s0l7snt8y8gu2mj6tn8vh5t7ke3mjhvk0xc | 0x61cf07ffd09ace43a38adcb4b99d97a2fd6cc772 | 8 | 6 | 5377.62108 | -| terp10v27d3pekfa92wm94xgyeet3mfnfrg8m2c7dzt | 0x7b15e6c439b27a553b65a9904ce571da6691a0fb | 8 | 6 | 5377.62108 | -| terp1gn2zj7c2e3t3rh6ff68vx9jwpgkwgamfyspled | 0x44d4297b0acc5711df494e8ec3164e0a2ce47769 | 8 | 6 | 5377.62108 | -| terp1u7e5slw3u8w2plhtrevjkur9uz5s7pe5dl6jxd | 0xe7b3487dd1e1dca0feeb1e592b7065e0a90f0734 | 8 | 6 | 5377.62108 | -| terp12ldwz60apvym23cwccwqarweefen25wmfhe0qq | 0x57dae169fd0b09b5470ec61c0e8dd9ca733551db | 8 | 6 | 5377.62108 | -| terp1f4edgf56k35kyufu5xw2hqtp4pmgfgtrd8kl73 | 0x4d72d4269ab46962713ca19cab8161a87684a163 | 8 | 6 | 5377.62108 | -| terp1u0vj5aq0q3uyq7ea5phd8r9s2t8jhn2wzsgurv | 0xe3d92a740f0478407b3da06ed38cb052cf2bcd4e | 8 | 6 | 5377.62108 | -| terp1xm9gguweegm9vvzz25skuxe0r2fgpu052qy33e | 0x36ca8471d9ca3656304255216e1b2f1a9280f1f4 | 8 | 6 | 5377.62108 | -| terp1ku42kvya6ezvyd3d7akk8mzk3hern9442fgx66 | 0xb72aab309dd644c2362df76d63ec568df23996b5 | 8 | 6 | 5377.62108 | -| terp1r5e4sjkdvalwjrwq6dj6ffxy7z2n8a6mf57l95 | 0x1d33584acd677ee90dc0d365a4a4c4f09533f75b | 8 | 6 | 5377.62108 | -| terp1425a5fnlx55xtcwjndnh85scvns8upy7064n0q | 0xaaa9da267f352865e1d29b6773d21864e07e049e | 8 | 6 | 5377.62108 | -| terp14lps3r976ujrvwmnz7f3sw5lt49yjjhd9pa80t | 0xafc3088cbed724363b731793183a9f5d4a494aed | 7 | 4 | 3585.08072 | -| terp1f28tuh6fs7kz0nu5s0r486qvfdl9ya4u37xjnw | 0x4a8ebe5f4987ac27cf9483c753e80c4b7e5276bc | 7 | 4 | 3585.08072 | -| terp1n2phey3nhvptgnmqh7vmc99m7c3rq6dcn2ksv0 | 0x9a837c9233bb02b44f60bf99bc14bbf6223069b8 | 7 | 4 | 3585.08072 | -| terp1q2879lu5478eu7sw7r9dcuvuz4d9xrxtuc9rpl | 0x028fe2ff94af8f9e7a0ef0cadc719c155a530ccb | 7 | 4 | 3585.08072 | -| terp1pxqyjp3stplqesf35mwwj6ete02zscu43ukhcd | 0x0980490630587e0cc131a6dce96b2bcbd4286395 | 7 | 4 | 3585.08072 | -| terp1j97kaw3zjsjmhyt7elaasgwldvvem9v3n3d3hu | 0x917d6eba229425bb917ecffbd821df6b199d9591 | 7 | 4 | 3585.08072 | -| terp1g8md3ea9lh7rjl6ek6fzek0zpm5x6p3xce8l2d | 0x41f6d8e7a5fdfc397f59b6922cd9e20ee86d0626 | 7 | 4 | 3585.08072 | -| terp1zym9fgrupev6ystlsfgnlece5ara27vzf3w8rc | 0x113654a07c0e59a2417f82513fe719a747d57982 | 7 | 4 | 3585.08072 | -| terp1786hkvdf20uwfqw9er6jlcuxqqngmws5k63ehm | 0xf1f57b31a953f8e481c5c8f52fe38600268dba14 | 7 | 4 | 3585.08072 | -| terp15w2wtfe3z7jsah9hcezq63rr3nu9fwfvy7m2pv | 0xa394e5a73117a50edcb7c6440d44638cf854b92c | 7 | 4 | 3585.08072 | -| terp1gyat3glkjsncmq06nt67jp9wm6qgjnv9dtqfe3 | 0x413ab8a3f694278d81fa9af5e904aede80894d85 | 7 | 4 | 3585.08072 | -| terp1z9ms38qgltfa9574ez8q8cafsylhqw4hdzz66t | 0x1177089c08fad3d2d3d5c88e03e3a9813f703ab7 | 7 | 4 | 3585.08072 | -| terp1urjh8653g6gyhl4mwpd4eeumr6l354g7frrshr | 0xe0e573ea9146904bfebb705b5ce79b1ebf1a551e | 7 | 4 | 3585.08072 | -| terp1mycv44rlmdmyhvdk4h5j7n54ar7qquauljr2uk | 0xd930cad47fdb764bb1b6ade92f4e95e8fc0073bc | 7 | 4 | 3585.08072 | -| terp1nh8n8447xtk03pr0qhzyqauphn5wtx5fxuskyn | 0x9dcf33d6be32ecf8846f05c4407781bce8e59a89 | 7 | 4 | 3585.08072 | -| terp1z3x8edwj8v5ehr4q4nkh4cpfw2mzkw456ny6q6 | 0x144c7cb5d23b299b8ea0aced7ae02972b62b3ab4 | 7 | 4 | 3585.08072 | -| terp1zrnsk53wfruw7pjwglfprqfrxuzwv29cf43qaz | 0x10e70b522e48f8ef064e47d21181233704e628b8 | 7 | 4 | 3585.08072 | -| terp1cfszlc5a249fwrpkan4c8ew5wsuwwmmvc0rcv0 | 0xc2602fe29d554a970c36eceb83e5d47438e76f6c | 7 | 4 | 3585.08072 | -| terp1884avd59jny0xgpr5qx4mcda9qj46e3x02u598 | 0x39ebd6368594c8f32023a00d5de1bd28255d6626 | 7 | 4 | 3585.08072 | -| terp1707eehsdcpn4hsvdmxfppdtdgrzzse2zf43ms7 | 0xf3fd9cde0dc0675bc18dd99210b56d40c4286542 | 7 | 4 | 3585.08072 | -| terp12pr3yqazhc6869hrqrngwkklx5y3rrzmwgq2ek | 0x50471203a2be347d16e300e6875adf3509118c5b | 7 | 4 | 3585.08072 | -| terp1wer7nm9etcf4jes8ydjzzuz7utp52pnud980ls | 0x7647e9ecb95e13596607236421705ee2c345067c | 7 | 4 | 3585.08072 | -| terp1ggql5zafx7mmdzvng3j6y834ctpzfk0hn7knky | 0x4201fa0ba937b7b689934465a21e35c2c224d9f7 | 7 | 4 | 3585.08072 | -| terp160alcsl838mfrs23ypz55vkwmn2jhn6celaa5g | 0xd3fbfc43e789f691c15120454a32cedcd52bcf58 | 7 | 4 | 3585.08072 | -| terp1xafl54ucplgcqe2u9qg43epge2v56m06e42z08 | 0x3753fa57980fd180655c281158e428ca994d6dfa | 7 | 4 | 3585.08072 | -| terp1mryl4gc2zx0hg7fv7dsjygy06f6cdnyxt0ke4k | 0xd8c9faa30a119f74792cf36122208fd27586cc86 | 7 | 4 | 3585.08072 | -| terp1f3qydzsj0nk327jtyxleyllywypn63msltnlj5 | 0x4c40468a127ced157a4b21bf927fe471033d4770 | 7 | 4 | 3585.08072 | -| terp1gfxpss4dmhpgwvr05s875209l5slxjt4dmglu9 | 0x424c1842adddc287306fa40fea29e5fd21f34975 | 7 | 4 | 3585.08072 | -| terp1zjzj7vqtajgdr3spj0a3y7qzaahqm2l0sjd6gf | 0x14852f300bec90d1c60193fb127802ef6e0dabef | 7 | 4 | 3585.08072 | -| terp1nu7yffenrj5a5tf5x27tphu3rp4z0c7hahjvsl | 0x9f3c44a7331ca9da2d3432bcb0df91186a27e3d7 | 7 | 4 | 3585.08072 | -| terp15dmqzt6pu66dj4xvp62kfl6ra7n9s4pyzg3qqg | 0xa376012f41e6b4d954cc0e9564ff43efa6585424 | 7 | 4 | 3585.08072 | -| terp17afh7ufv8qxsdpsy4a7rsdgksdcezzp7ttd9lv | 0xf7537f712c380d068604af7c383516837191083e | 7 | 4 | 3585.08072 | -| terp1mqwdvuujk6gc8s8eds56lr0snw7e7huycjpj5k | 0xd81cd67392b69183c0f96c29af8df09bbd9f5f84 | 7 | 4 | 3585.08072 | -| terp1l6wek40cps35xmpkm7l87m7gmsaarav82zl8c3 | 0xfe9d9b55f80c23436c36dfbe7f6fc8dc3bd1f587 | 7 | 4 | 3585.08072 | -| terp199fnnyfy7r9mgmfvhtxc4zw0qkvewjtrcud40r | 0x2953399124f0cbb46d2cbacd8a89cf0599974963 | 7 | 4 | 3585.08072 | -| terp1ejuz2e2h0cq9gtpvh67wk003fvy3ts8ce45g80 | 0xccb82565577e00542c2cbebceb3df14b0915c0f8 | 7 | 4 | 3585.08072 | -| terp1shxqk9luhhnsp3h0a23u7ekygvp5tqcvfquzq8 | 0x85cc0b17fcbde700c6efeaa3cf66c4430345830c | 7 | 4 | 3585.08072 | -| terp1dhnu4skcqsfnk4g6q2jvkuqqnpzjjsxapg7lww | 0x6de7cac2d804133b551a02a4cb700098452940dd | 7 | 4 | 3585.08072 | -| terp19hyy4a5462q4mrjks29plkg70vf4mahw38zk9t | 0x2dc84af695d2815d8e56828a1fd91e7b135df6ee | 7 | 4 | 3585.08072 | -| terp14dkyytyn4n60uhzl6t3cyczl56nlc9aygg0k6v | 0xab6c422c93acf4fe5c5fd2e382605fa6a7fc17a4 | 7 | 4 | 3585.08072 | -| terp1zf30dugtmyrdqnv5zrnngkh5ue9huzlad4vwph | 0x1262f6f10bd906d04d9410e7345af4e64b7e0bfd | 7 | 4 | 3585.08072 | -| terp1hf9a4cpe6j6k45agap2v5tc9rqzf9xmwlgf5tk | 0xba4bdae039d4b56ad3a8e854ca2f051804929b6e | 7 | 4 | 3585.08072 | -| terp1cluzz9ksklg6jnmg2u2na7l44qxx5q6jjruvf8 | 0xc7f82116d0b7d1a94f6857153efbf5a80c6a0352 | 7 | 4 | 3585.08072 | -| terp1ywh42xzqjppulrjr3j5ku2llwx2y9h4r66k7ux | 0x23af5518409043cf8e438ca96e2bff719442dea3 | 7 | 4 | 3585.08072 | -| terp1rmk5jnnwey6rmrp0pqvphqw3uvj0gtntdfzm7t | 0x1eed494e6ec9343d8c2f08181b81d1e324f42e6b | 7 | 4 | 3585.08072 | -| terp19eh62qmjtrh3e9ae20p5vhxy9ywfffeh38a6an | 0x2e6fa5037258ef1c97b953c3465cc4291c94a737 | 7 | 4 | 3585.08072 | -| terp1xvv5ur3g46fr7m6jug5z4qtaq606jd2gcnkajg | 0x33194e0e28ae923f6f52e2282a817d069fa93548 | 7 | 4 | 3585.08072 | -| terp1w8p6564658050qvdryghlmlw4nr5jwm777lgdc | 0x71c3aa6abaa1df47818d19117fefeeacc7493b7e | 7 | 4 | 3585.08072 | -| terp14vxem8zh6s48jve7gavjthhjhv6m56f9jxfxak | 0xab0d9d9c57d42a79333e475925def2bb35ba6925 | 7 | 4 | 3585.08072 | -| terp1yafczpyvn44eeh3nwkq4gehe4c28x65xkatlhz | 0x275381048c9d6b9cde3375815466f9ae14736a86 | 6 | 4 | 3585.08072 | -| terp1ycawt4wfx4eu433e90m9s9dv7etslp3h9n4g60 | 0x263ae5d5c93573cac6392bf65815acf6570f8637 | 6 | 4 | 3585.08072 | -| terp1tyfrmcpfpa9dt4vw242r63uvdxwt8dq99p8e6m | 0x59123de0290f4ad5d58e55543d478c699cb3b405 | 6 | 4 | 3585.08072 | -| terp1frzs7pfhtnq27lpa0uyqzr4unykv2envy929j6 | 0x48c50f05375cc0af7c3d7f08010ebc992cc5666c | 6 | 4 | 3585.08072 | -| terp19v53h6vv2030ezpzgazu6zm4lgppy8egdw4ll7 | 0x2b291be98c53e2fc88224745cd0b75fa02121f28 | 6 | 4 | 3585.08072 | -| terp1gwd3uu8sf6uen5fwktnm72nz6wc3dfaz9cq5ya | 0x439b1e70f04eb999d12eb2e7bf2a62d3b116a7a2 | 6 | 4 | 3585.08072 | -| terp1m77ccdxyxlwarxhcp6zfpm79d8k5z9ftj923f5 | 0xdfbd8c34c437ddd19af80e8490efc569ed41152b | 6 | 4 | 3585.08072 | -| terp1xnfmtlzztyw5qnhpfgqu0mjelrv4x5zx3n6nxq | 0x34d3b5fc42591d404ee14a01c7ee59f8d9535046 | 6 | 4 | 3585.08072 | -| terp1f8kewzfpyf3zpny38cctyzkl4xa08lnlyhrfpk | 0x49ed970921226220cc913e30b20adfa9baf3fe7f | 6 | 4 | 3585.08072 | -| terp1t76jhqa409kqd88d8djw4ctzqskeu5dxrff6mt | 0x5fb52b83b5796c069ced3b64eae162042d9e51a6 | 6 | 4 | 3585.08072 | -| terp1hx4e279rfgzuscfycwvhxh77gn0vsrnlzs7ghv | 0xb9ab9578a34a05c86124c399735fde44dec80e7f | 6 | 4 | 3585.08072 | -| terp15q8qp3j8vje3qpssganfgtf0gdejdux2k4yvvf | 0xa00e00c64764b31006104766942d2f437326f0ca | 6 | 4 | 3585.08072 | -| terp1dmqye0303cvjmr0shnu5476c5sy57ly3e9n8y9 | 0x6ec04cbe2f8e192d8df0bcf94afb58a4094f7c91 | 6 | 4 | 3585.08072 | -| terp18p2zc0jgv80sal3yqmwk4mkz34fa2zdanlnm2u | 0x38542c3e4861df0efe2406dd6aeec28d53d509bd | 6 | 4 | 3585.08072 | -| terp1tdc9ze9zudtem4lzcxs2eqej4ef7hh6h93afnp | 0x5b705164a2e3579dd7e2c1a0ac8332ae53ebdf57 | 6 | 4 | 3585.08072 | -| terp19m4yz837w0jszsd7k09vgylm4ew4klhm286yqx | 0x2eea411e3e73e50141beb3cac413fbae5d5b7efb | 6 | 4 | 3585.08072 | -| terp1zvzfre4nfrjq50ea46nn3scjqzus2fpd00ht0l | 0x130491e6b348e40a3f3daea738c31200b905242d | 6 | 4 | 3585.08072 | -| terp10kjly7tdna6xkq4ucqull6hscj3plha6sttlm8 | 0x7da5f2796d9f746b02bcc039ffeaf0c4a21fdfba | 6 | 4 | 3585.08072 | -| terp1q8kfg6eafjzqw5slmlyaw3nhmvg8wr4n7anqyz | 0x01ec946b3d4c8407521fdfc9d74677db10770eb3 | 6 | 4 | 3585.08072 | -| terp1lttdfjclu4la7mjcesdtuhjdnjemxzquyzrj0u | 0xfad6d4cb1fe57fdf6e58cc1abe5e4d9cb3b3081c | 6 | 4 | 3585.08072 | -| terp1ulgredn639f34ndj0yf90dsrjxn7h2sjv4add6 | 0xe7d03cb67a89531acdb2791257b60391a7ebaa12 | 6 | 4 | 3585.08072 | -| terp1ym2lysd9we5n2u4ep3ckwp6j8wc38rxzfj30yl | 0x26d5f241a576693572b90c716707523bb1138cc2 | 6 | 4 | 3585.08072 | -| terp1hly70n3zpd9dc8pttua7kz4u30essv4gxn4z25 | 0xbfc9e7ce220b4adc1c2b5f3beb0abc8bf30832a8 | 6 | 4 | 3585.08072 | -| terp1l4yn3vpqwn036w4pt2t7u4slgpcykgv4zct8g7 | 0xfd4938b02074df1d3aa15a97ee561f40704b2195 | 6 | 4 | 3585.08072 | -| terp192g67cg52et0clusnyfw6nd3x8vz6u97szy8za | 0x2a91af61145656fc7f909912ed4db131d82d70be | 6 | 4 | 3585.08072 | -| terp1cust8t9cgqhm84pscx9zmp9ps5hwyz6qh3p4cf | 0xc720b3acb8402fb3d430c18a2d84a1852ee20b40 | 6 | 4 | 3585.08072 | -| terp1zdazz2dghexqsrwktpxnzvp8dc2pegq9p6df2c | 0x137a2129a8be4c080dd6584d3130276e141ca005 | 6 | 4 | 3585.08072 | -| terp1hcnptdt32q405kjalkcrv8nl9a3xyasx4ng9gx | 0xbe2615b571502afa5a5dfdb0361e7f2f62627606 | 6 | 4 | 3585.08072 | -| terp1z2c32ag7pasgmgfgr4v5x5dg52ypdnne464jfn | 0x12b115751e0f608da1281d594351a8a28816ce79 | 6 | 4 | 3585.08072 | -| terp105t839qtyggs2t6zq822qt29wck8qujryufhup | 0x7d1678940b2211052f4201d4a02d45762c707243 | 6 | 4 | 3585.08072 | -| terp15s4ayy0z44ctz043lwt3sn2d7tkxxendstxmkd | 0xa42bd211e2ad70b13eb1fb97184d4df2ec63666d | 6 | 4 | 3585.08072 | -| terp1erecmla7da64tdmc94g0d09dllsjkqylvprceu | 0xc8f38dffbe6f7555b7782d50f6bcadffe12b009f | 6 | 4 | 3585.08072 | -| terp1hv7hkrf7q8undv3dkjne7t5zq5kpjl5p3e6jdn | 0xbb3d7b0d3e01f936b22db4a79f2e82052c197e81 | 6 | 4 | 3585.08072 | -| terp1e0z9ymd37cgej3w2yktxpqdpzj2xgjuq5ngma6 | 0xcbc4526db1f6119945ca25966081a11494644b80 | 6 | 4 | 3585.08072 | -| terp1xuurya4jn2feeptdfv2hshvx02a5w8vwfa3m88 | 0x37383276b29a939c856d4b15785d867abb471d8e | 6 | 4 | 3585.08072 | -| terp13mkynsrry2kcrqw28wat8zv4q7thhwwcpsy5eq | 0x8eec49c06322ad8181ca3bbab3899507977bb9d8 | 6 | 4 | 3585.08072 | -| terp1emgcsf8l4g4k8tgu2nch0fxf99cvq8qfkusext | 0xced18824ffaa2b63ad1c54f177a4c92970c01c09 | 6 | 4 | 3585.08072 | -| terp18nsc7ma6fpxf4uwplaw85mmjky6c5pktjlkncz | 0x3ce18f6fba484c9af1c1ff5c7a6f72b1358a06cb | 6 | 4 | 3585.08072 | -| terp1mq0u3j652l9780unz92csvcwrh47mclquasv4n | 0xd81fc8cb5457cbe3bf93115588330e1debede3e0 | 6 | 4 | 3585.08072 | -| terp1rl79vyrefxvlpvwe6v79uparv2pnd0t8g2gusr | 0x1ffc5610794999f0b1d9d33c5e07a3628336bd67 | 6 | 4 | 3585.08072 | -| terp1jvfgg0ruzrake3l6seycjev9sl982jm5hvmzvr | 0x9312843c7c10fb6cc7fa864989658587ca754b74 | 6 | 4 | 3585.08072 | -| terp1lpw23de3x0lwzea24y6agyuwplt05f3z6ugz5a | 0xf85ca8b73133fee167aaa935d4138e0fd6fa2622 | 6 | 4 | 3585.08072 | -| terp1k49jra0hjf60r4v5vqec3rc49drjytydp0cj3h | 0xb54b21f5f79274f1d5946033888f152b47222c8d | 6 | 4 | 3585.08072 | -| terp1y5wpctzg8gp0aw45cluxzq4x57tcj2vyzzzw2c | 0x251c1c2c483a02febab4c7f86102a6a797892984 | 6 | 4 | 3585.08072 | -| terp1uptfywkll2nktmucarza5pkaz0fjdnuzjp7jmh | 0xe056923adffaa765ef98e8c5da06dd13d326cf82 | 6 | 4 | 3585.08072 | -| terp1gw79zf5jkqld2dpfwrjljfz4e5kf7mylra4ys5 | 0x43bc512692b03ed5342970e5f92455cd2c9f6c9f | 6 | 4 | 3585.08072 | -| terp1vzzrjd8mmwm0x3emdacc9w5994q38gzga350fw | 0x60843934fbdbb6f3473b6f7182ba852d4113a048 | 6 | 4 | 3585.08072 | -| terp1jtx906l6f3mypk7waq4ryphplqfhq6mv4n2m9m | 0x92cc57ebfa4c7640dbcee82a3206e1f813706b6c | 6 | 4 | 3585.08072 | -| terp1xw8ccq8tmr65x6q2ks08t5pfn9an33prxcsk9y | 0x338f8c00ebd8f543680ab41e75d029997b38c423 | 6 | 4 | 3585.08072 | -| terp1jqat93l349rkny7r2yetlh3pksymf0hczvd299 | 0x903ab2c7f1a9476993c35132bfde21b409b4bef8 | 6 | 4 | 3585.08072 | -| terp1hywa539xc9x2rgc8maw9a808mwfm4dcluszkfs | 0xb91dda44a6c14ca1a307df5c5e9de7db93bab71f | 6 | 4 | 3585.08072 | -| terp1l5krcu7a7vt40dnd8sf5654nrw673mc53gsu5s | 0xfd2c3c73ddf31757b66d3c134d52b31bb5e8ef14 | 6 | 4 | 3585.08072 | -| terp1fx2wtzqnmnxtdnp8ycdhvflyqz5ehc0fd7ze62 | 0x4994e58813dcccb6cc27261b7627e400a99be1e9 | 6 | 4 | 3585.08072 | -| terp1qhaejt555ypuu68fe3n4nzt4660ty798yn4tn4 | 0x05fb992e94a103ce68e9cc67598975d69eb278a7 | 6 | 4 | 3585.08072 | -| terp1v6awzpg90eufhyhfymzpkp2a89ge2lqj0gqcpe | 0x66bae105057e789b92e926c41b055d3951957c12 | 6 | 4 | 3585.08072 | -| terp1f2gwrre7jqr54qs9x23a5c4ngl4gvugmw4zltv | 0x4a90e18f3e90074a820532a3da62b347ea86711b | 6 | 4 | 3585.08072 | -| terp1k8rld7hmuwdwczer7czzzz5ns96y070a0zryyq | 0xb1c7f6fafbe39aec0b23f604210a93817447f9fd | 6 | 4 | 3585.08072 | -| terp1j5t5jpy4nrk4ed05gnyhyf9kevajszzs2m8dyf | 0x951749049598ed5cb5f444c97224b6cb3b280850 | 6 | 4 | 3585.08072 | -| terp1zry57euv9cg4vvh3vya469e7flftcdr2pmvmwr | 0x10c94f678c2e115632f1613b5d173e4fd2bc346a | 6 | 4 | 3585.08072 | -| terp1hyacg7ly39z0rfag6y899v9njdjwa834dl6mlt | 0xb93b847be48944f1a7a8d10e52b0b39364ee9e35 | 6 | 4 | 3585.08072 | -| terp1sw7ku0s2fw4hhwmjptseqe0y6ewywzsfapyuhz | 0x83bd6e3e0a4bab7bbb720ae19065e4d65c470a09 | 6 | 4 | 3585.08072 | -| terp1ae3kxc05xq626cydwmyhwqhkl8ky6le677q89n | 0xee636361f43034ad608d76c97702f6f9ec4d7f3a | 6 | 4 | 3585.08072 | -| terp1h6h9q005lz5tsfm0xq2lwed8j5ja3d244t7g9s | 0xbeae503df4f8a8b8276f3015f765a79525d8b555 | 6 | 4 | 3585.08072 | -| terp1judja8uljwf4g7xlrcnsg6vf6sf40k2cfqpfml | 0x971b2e9f9f93935478df1e27046989d41357d958 | 6 | 4 | 3585.08072 | -| terp1wzyr7damcgj0rhjgcty56hv5e0h2q3lrllv8mq | 0x70883f37bbc224f1de48c2c94d5d94cbeea047e3 | 6 | 4 | 3585.08072 | -| terp1pxd0nzmwdvagkp2ljamlvujvl0sy6kjewujq29 | 0x099af98b6e6b3a8b055f9777f6724cfbe04d5a59 | 6 | 4 | 3585.08072 | -| terp1vhxkf7fkkfd6yzcqdw7cezd6gg8numfa5kmyhx | 0x65cd64f936b25ba20b006bbd8c89ba420f3e6d3d | 6 | 4 | 3585.08072 | -| terp1ky6mptyw69jcaz0wcefed7tlky9afzvm3dp6qg | 0xb135b0ac8ed1658e89eec65396f97fb10bd4899b | 6 | 4 | 3585.08072 | -| terp154cv5wa79nfmcvvsmu8xyg6mxxsc64eyz79cgt | 0xa570ca3bbe2cd3bc3190df0e62235b31a18d5724 | 6 | 4 | 3585.08072 | -| terp1qyqdgq78lw44594mtr3u4ewwce8ta7agllzcse | 0x0100d403c7fbab5a16bb58e3cae5cec64ebefba8 | 6 | 4 | 3585.08072 | -| terp1g0t2cy5mguu65q9n2dypfm5xksk3kzgnhrqa4z | 0x43d6ac129b4739aa00b3534814ee86b42d1b0913 | 6 | 4 | 3585.08072 | -| terp1q5deyevuhla8e65d4w27935v2uend85j4raduv | 0x051b92659cbffa7cea8dab95e2c68c5733369e92 | 6 | 4 | 3585.08072 | -| terp1e7g3arxc2v5xchg7ygtcwwxmszulz5qgxvp3lx | 0xcf911e8cd853286c5d1e22178738db80b9f15008 | 5 | 4 | 3585.08072 | -| terp15mpel4gl9mn5k8gnr2dw0x0gvxkl9539xp4qgn | 0xa6c39fd51f2ee74b1d131a9ae799e861adf2d225 | 5 | 4 | 3585.08072 | -| terp1qhjqwg23evrw6at5qm6pcpjt56t9wwycca27pt | 0x05e4072151cb06ed757406f41c064ba696573898 | 5 | 4 | 3585.08072 | -| terp1qk8evsewux8vnukgcku023zecf5k9ltvg7j6ej | 0x058f96432ee18ec9f2c8c5b8f54459c26962fd6c | 5 | 4 | 3585.08072 | -| terp12cuwtxg95qr6ursgykhppa3g2nmvrf2mg4py5z | 0x5638e59905a007ae0e0825ae10f62854f6c1a55b | 5 | 4 | 3585.08072 | -| terp1p2uvvea4cx86unda33md4ecsrzl29k46rpdj30 | 0x0ab8c667b5c18fae4dbd8c76dae71018bea2daba | 5 | 4 | 3585.08072 | -| terp1x4crnl4m7jglz8l7p342xvpv0ly4dv0rgakq27 | 0x357039febbf491f11ffe0c6aa3302c7fc956b1e3 | 5 | 4 | 3585.08072 | -| terp1tcs8cc8ljwawrhfhvgn39keg9f9q2mch8hylrz | 0x5e207c60ff93bae1dd37622712db282a4a056f17 | 5 | 4 | 3585.08072 | -| terp1nmvnq3qtu0fm7w3yartycjy8857tanwjkg87kc | 0x9ed930440be3d3bf3a24e8d64c48873d3cbecdd2 | 5 | 4 | 3585.08072 | -| terp1mfff05gp5wufj03l5g4qyqxeq50md5j5rf9d02 | 0xda5297d101a3b8993e3fa22a0200d9051fb6d254 | 5 | 4 | 3585.08072 | -| terp12uw46p5rsaz87ev77x2kgj85fyu305ksvjassy | 0x571d5d068387447f659ef1956448f4493917d2d0 | 5 | 4 | 3585.08072 | -| terp1ke743nl6ucaft7ecpw2jued34r4vgngt76uv8p | 0xb67d58cffae63a95fb380b952e65b1a8eac44d0b | 5 | 4 | 3585.08072 | -| terp1pmjhay8hntn4hv2reh2sqz5hzs3ukstv5zvf24 | 0x0ee57e90f79ae75bb143cdd5000a971423cb416c | 5 | 4 | 3585.08072 | -| terp1rrsdgutjpga2c6ad5fctyfser2wm0x87llmy24 | 0x18e0d471720a3aac6bada270b226191a9db798fe | 5 | 4 | 3585.08072 | -| terp13zyg3zygaxvhuere8pyn3x504a0gu4ruwkyhhq | 0x8888888888e9997e64793849389a8faf5e8e547c | 5 | 4 | 3585.08072 | -| terp1g2nq6te0lgs4p3tgqy9g6sjlp2kjsn7j5as8ca | 0x42a60d2f2ffa2150c568010a8d425f0aad284fd2 | 5 | 4 | 3585.08072 | -| terp1xk5mlk2nkj5m0dj8rrz6pxy0565g7889a3n9vh | 0x35a9bfd953b4a9b7b64718c5a0988fa6a88f1ce5 | 5 | 4 | 3585.08072 | -| terp10s5k49kzrgq8hgzy4vt6un3lx3z2tftge5jvu7 | 0x7c296a96c21a007ba044ab17ae4e3f3444a5a568 | 5 | 4 | 3585.08072 | -| terp148jm8sjh84lfzl8hjzxydw0ctjk5gfq2n9hy5c | 0xa9e5b3c2573d7e917cf7908c46b9f85cad44240a | 5 | 4 | 3585.08072 | -| terp1t3vsttj0jf7aftjud36tgf4465hwg7pm62k6na | 0x5c5905ae4f927dd4ae5c6c74b426b5d52ee4783b | 5 | 4 | 3585.08072 | -| terp1mn0c4n2e2rmuxu9awjdadwdu7xe7dmwyasz9au | 0xdcdf8acd5950f7c370bd749bd6b9bcf1b3e6edc4 | 5 | 4 | 3585.08072 | -| terp1g06y45n2rpmh75q0kayk6xhhjhxp6d2r0s8x2n | 0x43f44ad26a18777f500fb7496d1af795cc1d3543 | 5 | 4 | 3585.08072 | -| terp1mxy9lsfcjlwezuwshsczf6yfprktwm7ut87vkk | 0xd9885fc13897dd9171d0bc3024e88908ecb76fdc | 5 | 4 | 3585.08072 | -| terp1vg0g4wm8sclew8kzcgww0s4gu80uhrtx5pwddr | 0x621e8abb67863f971ec2c21ce7c2a8e1dfcb8d66 | 5 | 4 | 3585.08072 | -| terp1mzy339l5hpa00fumz9hdzuxewmrkgm7v7tvz2p | 0xd8891897f4b87af7a79b116ed170d976c7646fcc | 5 | 4 | 3585.08072 | -| terp12dd2cehq4l3fsdfz6c77ctdtzk29cehlads5fl | 0x535aac66e0afe2983522d63dec2dab15945c66ff | 5 | 4 | 3585.08072 | -| terp1zvn3wcmfh09atj9r4tsa0xu40u5u29a6vu0vxq | 0x1327176369bbcbd5c8a3aae1d79b957f29c517ba | 5 | 4 | 3585.08072 | -| terp12dv8tjlsfprts5789azfsajmlxahvahuds8vdr | 0x535875cbf04846b853c72f4498765bf9bb7676fc | 5 | 4 | 3585.08072 | -| terp1klkuhzthzx6dakx3uy9ex8d2ackd6lud4vzlgn | 0xb7edcb897711b4ded8d1e10b931daaee2cdd7f8d | 5 | 4 | 3585.08072 | -| terp1xkvw62tfnp9dwq2p8xx7m0t9jeat0v9q78chgl | 0x3598ed2969984ad70141398dedbd65967ab7b0a0 | 5 | 4 | 3585.08072 | -| terp19rxuw4c6330hnntxu2zmfxudarcat6k754uj2k | 0x28cdc7571a8c5f79cd66e285b49b8de8f1d5eade | 5 | 4 | 3585.08072 | -| terp19uv2t6g7cj6pe46jku2flxwrlckysa20p5a6ph | 0x2f18a5e91ec4b41cd752b7149f99c3fe2c48754f | 5 | 4 | 3585.08072 | -| terp1ha8cmw4yyas6m4cyvkrpzyrch79sql9a3gu7q3 | 0xbf4f8dbaa42761add7046586111078bf8b007cbd | 5 | 4 | 3585.08072 | -| terp1sa4jwywaday2q09r4789k885rxdsuc7jffu92q | 0x876b2711dd6f48a03ca3af8e5b1cf4199b0e63d2 | 5 | 4 | 3585.08072 | -| terp1uay0vsaekh0tuzsztcgc2y470pl9584gslnpwc | 0xe748f643b9b5debe0a025e118512be787e5a1ea8 | 5 | 4 | 3585.08072 | -| terp1g5ulzvhqeh60ehemly3cgz9c9rkghxzzt3n8u5 | 0x4539f132e0cdf4fcdf3bf9238408b828ec8b9842 | 5 | 4 | 3585.08072 | -| terp1xqklycjjeew4rgym5vy4c806pg05h25ayy50w8 | 0x302df26252ce5d51a09ba3095c1dfa0a1f4baa9d | 5 | 4 | 3585.08072 | -| terp1p049v9t60sh22kju00amjche9p06lwru0gk3rv | 0x0bea56157a7c2ea55a5c7bfbb962f9285fafb87c | 5 | 4 | 3585.08072 | -| terp1vdpgrnrj0m4tqafesca8fses8kd8vcc5t33skf | 0x634281cc727eeab07539863a74c3303d9a766314 | 5 | 4 | 3585.08072 | -| terp146w7mhc9dqglj8a4sgy2pmuh8c0wejg3vlecxf | 0xae9deddf056811f91fb58208a0ef973e1eecc911 | 5 | 4 | 3585.08072 | -| terp1jjhc5zwl9n8gr40g698p37ugyn3zd9u9hh23lz | 0x94af8a09df2cce81d5e8d14e18fb8824e2269785 | 5 | 4 | 3585.08072 | -| terp1mn2cgckjcs999x0deyzm3ayykjna45uslnw30j | 0xdcd58462d2c40a5299edc905b8f484b4a7dad390 | 5 | 4 | 3585.08072 | -| terp10dwxh8dmx0x4w4va79equee3xyj0cnxq0emmjv | 0x7b5c6b9dbb33cd57559df1720e67313124fc4cc0 | 5 | 4 | 3585.08072 | -| terp12z9rcezt3p7zsad3ncnrrr0a49mah8g9faqqzs | 0x508a3c644b887c2875b19e26318dfda977db9d05 | 5 | 4 | 3585.08072 | -| terp1p474vek70h05ke98c0l9fujj9n9n5as9sqkstf | 0x0d7d5666de7ddf4b64a7c3fe54f2522ccb3a7605 | 5 | 4 | 3585.08072 | -| terp1zmj65xglend4spyarudyle83dt6vr8avsn9g2m | 0x16e5aa191fccdb58049d1f1a4fe4f16af4c19fac | 5 | 4 | 3585.08072 | -| terp17fstdt62vm54vruwzfm52sqydw6fmcxvjh8tm9 | 0xf260b6af4a66e9560f8e12774540046bb49de0cc | 5 | 4 | 3585.08072 | -| terp1f6a3z6uka9y3vjf38uxt83u2998xg0xe552rpy | 0x4ebb116b96e9491649313f0cb3c78a294e643cd9 | 5 | 4 | 3585.08072 | -| terp1nwr48tz6jats3fj569hh58qlexnmnzpgkx5tgp | 0x9b8753ac5a975708a654d16f7a1c1fc9a7b98828 | 5 | 4 | 3585.08072 | -| terp1tyhtwcktaa5y8rjtvdsflktndvsr86p3p0h38t | 0x592eb762cbef68438e4b63609fd9736b2033e831 | 5 | 4 | 3585.08072 | -| terp107mthw9af3cdmseawxj6ms0jrkcx0snhph56p0 | 0x7fb6bbb8bd4c70ddc33d71a5adc1f21db067c277 | 5 | 4 | 3585.08072 | -| terp174rv84j4z85u0fku8ajxwusdwrwtw2png9ude3 | 0xf546c3d65511e9c7a6dc3f6467720d70dcb72833 | 5 | 4 | 3585.08072 | -| terp147qjazat4vch8mwwz707dlrv9vwyst3ejvw50g | 0xaf812e8babab3173edce179fe6fc6c2b1c482e39 | 5 | 4 | 3585.08072 | -| terp198rn4u49qyw8hertqz0ggcgd6y4jkrz4lqnwsp | 0x29c73af2a5011c7be46b009e84610dd12b2b0c55 | 5 | 4 | 3585.08072 | -| terp18v74qz8qj3gex4gq79qrd8ppcauhqars9c76q4 | 0x3b3d5008e09451935500f140369c21c779707470 | 5 | 4 | 3585.08072 | -| terp153cteshcx5tuccc086seru8jfhkxv7ll9w70h2 | 0xa470bcc2f83517cc630f3ea191f0f24dec667bff | 5 | 4 | 3585.08072 | -| terp1ngvlutxmtnfm3jew2y44v024sxys7lh2hff755 | 0x9a19fe2cdb5cd3b8cb2e512b563d5581890f7eea | 5 | 4 | 3585.08072 | -| terp1y8xe0uhj6qup3gjfl75jcsh2l6muaej097c9gx | 0x21cd97f2f2d03818a249ffa92c42eafeb7cee64f | 5 | 4 | 3585.08072 | -| terp13k937znsg4z0fj9d4a26zp3muxak2mxfax63uf | 0x8d8b1f0a704544f4c8adaf55a1063be1bb656cc9 | 5 | 4 | 3585.08072 | -| terp1ferasq8qn6xlsy6h5t2x0leml5l7yhz5vpsaz3 | 0x4e47d800e09e8df81357a2d467ff3bfd3fe25c54 | 5 | 4 | 3585.08072 | -| terp188kxg7m22vkcf5mvp2nswnyv2lffmtcts94zyh | 0x39ec647b6a532d84d36c0aa7074c8c57d29daf0b | 5 | 4 | 3585.08072 | -| terp1wkrvz79zvs4ay9z8hgryw0vvp5ljd6nvh9rnut | 0x7586c178a2642bd21447ba06473d8c0d3f26ea6c | 5 | 4 | 3585.08072 | -| terp1pqa733pelerg54ffzz8dljl06gdgkmdpcs4da0 | 0x083be8c439fe468a5529108edfcbefd21a8b6da1 | 5 | 4 | 3585.08072 | -| terp1zzp2ah36g4hmj23t9u2k3e2ay8zapm8juus20m | 0x1082aede3a456fb92a2b2f1568e55d21c5d0ecf2 | 5 | 4 | 3585.08072 | -| terp1aqdaskkssz4jl5vnun56vr8wxmnlkup5zvhzf8 | 0xe81bd85ad080ab2fd193e4e9a60cee36e7fb7034 | 5 | 4 | 3585.08072 | -| terp1vzqvhsyyp5uwwwj47ysa7hxv9t42cp3fmh7e87 | 0x6080cbc0840d38e73a55f121df5ccc2aeaac0629 | 5 | 4 | 3585.08072 | -| terp1wrfnp39s63eqxwt4r5p4jeu4sjajar0v4e33y9 | 0x70d330c4b0d4720339751d0359679584bb2e8dec | 5 | 4 | 3585.08072 | -| terp127dz3uxunqqyqq3529jfnh42fhjmur39lcsnna | 0x579a28f0dc9800400234516499deaa4de5be0e25 | 5 | 4 | 3585.08072 | -| terp1nkvjuhl29eslt07h5n6mm89zdc3z6dkehmg7n5 | 0x9d992e5fea2e61f5bfd7a4f5bd9ca26e222d36d9 | 5 | 4 | 3585.08072 | -| terp1m65u8sm2hye5g8llt3gxmcygl46vqrgse9ucwr | 0xdea9c3c36ab933441fff5c506de088fd74c00d10 | 5 | 4 | 3585.08072 | -| terp1kxx2rnxqaspgyaclesv6ggnf3kfujg5ffe26u8 | 0xb18ca1ccc0ec0282771fcc19a422698d93c92289 | 5 | 4 | 3585.08072 | -| terp167ezqh7dmeckehvfx02xsnkxwssexx2g365u33 | 0xd7b2205fcdde716cdd8933d4684ec67421931948 | 5 | 4 | 3585.08072 | -| terp1mw3lx4r8rryyyn88e5l2am7rj6txx4w2cast8c | 0xdba3f3546718c8424ce7cd3eaeefc396966355ca | 5 | 4 | 3585.08072 | -| terp1h9qtrs7xm6mehf92jtz62z88je5hej8cnzj6ns | 0xb940b1c3c6deb79ba4aa92c5a508e796697cc8f8 | 5 | 4 | 3585.08072 | -| terp1066h8c8c5a75q0ynyru2pdmpdwwrmrv30xyep7 | 0x7eb573e0f8a77d403c9320f8a0b7616b9c3d8d91 | 5 | 4 | 3585.08072 | -| terp15lynq5tfepq2g559darw2yqaf3juvy0p2c0ymy | 0xa7c9305169c840a452856f46e5101d4c65c611e1 | 5 | 4 | 3585.08072 | -| terp1ytnyl0lc7hzrveyqfff9gacwqg7e52z7cmskek | 0x22e64fbff8f5c43664804a5254770e023d9a285e | 5 | 4 | 3585.08072 | -| terp1mhmk0ujc4hc2lzvfvcsnf89de7rj9am3vwwds4 | 0xddf767f258adf0af89896621349cadcf8722f771 | 5 | 4 | 3585.08072 | -| terp1f0lek0k7vmrd4apddh4wf3uyc5svukkp4k228x | 0x4bff9b3ede66c6daf42d6deae4c784c520ce5ac1 | 5 | 4 | 3585.08072 | -| terp1c4kgf22yjxxkyaddqcz7d93ava036vr9j985xx | 0xc56c84a944918d6275ad0605e6963d675f1d3065 | 5 | 4 | 3585.08072 | -| terp12xvttyz7w4ra8jap30sjg8ar9jhn2wl3vzcrnt | 0x5198b5905e7547d3cba18be1241fa32caf353bf1 | 5 | 4 | 3585.08072 | -| terp1hff855dgk038vqq6exgpucukqummqn5nj9fdct | 0xba527a51a8b3e276001ac9901e63960737b04e93 | 5 | 4 | 3585.08072 | -| terp1zl2jgqp4ja0g5kzduq0ysxvyg5nsqkxjykxc68 | 0x17d5240035975e8a584de01e48198445270058d2 | 5 | 4 | 3585.08072 | -| terp1qduh2nztcjhrakv2feg029rd5kzlch9w74rkz5 | 0x0379754c4bc4ae3ed98a4e50f5146da585fc5cae | 5 | 4 | 3585.08072 | -| terp1c8p9h092gma9eg3zhm99eg42ps4zcv63dkffaz | 0xc1c25bbcaa46fa5ca222beca5ca2aa0c2a2c3351 | 5 | 4 | 3585.08072 | -| terp1ae9zjx3lpsx929zzh5vtx8t008f89773x60r2f | 0xee4a291a3f0c0c551442bd18b31d6f79d272fbd1 | 5 | 4 | 3585.08072 | -| terp1feg6qmjxgvvhuxlz7pgtdtmqlxknemcxk8uzdz | 0x4e51a06e4643197e1be2f050b6af60f9ad3cef06 | 5 | 4 | 3585.08072 | -| terp164x3xa4gdqtl3wec948qhdqec2x2dty6mv2n6m | 0xd54d1376a86817f8bb382d4e0bb419c28ca6ac9a | 5 | 4 | 3585.08072 | -| terp1qzht8m7yjmy3hhcllt93zl8mca6uff64r9cst6 | 0x00aeb3efc496c91bdf1ffacb117cfbc775c4a755 | 5 | 4 | 3585.08072 | -| terp1frng674h3h87ze74904guh0l59y3d0ufplzx3w | 0x48e68d7ab78dcfe167d52bea8e5dffa14916bf89 | 5 | 4 | 3585.08072 | -| terp16zl6pgugtxmg95trw58q9kw658lxa9tpmtqj9q | 0xd0bfa0a38859b682d163750e02d9daa1fe6e9561 | 5 | 4 | 3585.08072 | -| terp15qk8ptsx6cg95pfp7jxpdd2qghj3aekf5knwr8 | 0xa02c70ae06d6105a0521f48c16b54045e51ee6c9 | 5 | 4 | 3585.08072 | -| terp1gggxervyetfn5f9sqpjd74sgpcecpqhemy4q23 | 0x42106c8d84cad33a24b00064df56080e338082f9 | 5 | 4 | 3585.08072 | -| terp1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq5ffndw | 0x0000000000000000000000000000000000000000 | 4 | 4 | 3585.08072 | -| terp1ttrrexpgrr5r2g534cxc7d96t0wmvk3ufseyw6 | 0x5ac63c982818e8352291ae0d8f34ba5bddb65a3c | 4 | 4 | 3585.08072 | -| terp1apmt25m5r2rejelcc5ptw4lfr8d34z673wslvu | 0xe876b553741a879967f8c502b757e919db1a8b5e | 4 | 4 | 3585.08072 | -| terp1ahndsyfulz9m5kp6jpfyr27lyvyfkvfdzw8rm6 | 0xede6d8113cf88bba583a905241abdf23089b312d | 4 | 4 | 3585.08072 | -| terp1aqx7zlwnlgj7zxld4qvrqklu73q5vy22kp9frw | 0xe80de17dd3fa25e11beda818305bfcf44146114a | 4 | 4 | 3585.08072 | -| terp162ky08tltauj7sqjndr5gx44deraapk0lcv5dz | 0xd2ac479d7f5f792f40129b47441ab56e47de86cf | 4 | 4 | 3585.08072 | -| terp16h9hqdpatth6qgg9zrytuemgr2ugs6nfm5mln2 | 0xd5cb70343d5aefa0210510c8be67681ab8886a69 | 4 | 4 | 3585.08072 | -| terp17urvqm8umfxqxss22v3krdguuvygtgv8k3nqjx | 0xf706c06cfcda4c03420a532361b51ce30885a187 | 4 | 4 | 3585.08072 | -| terp1t8uc8seef9whrscshe78lxyss6xntl8rgn02yu | 0x59f983c339495d71c310be7c7f9890868d35fce3 | 4 | 4 | 3585.08072 | -| terp1ak9w9en67qrqflhlr8s2qskwlk2vk33z54svec | 0xed8ae2e67af00604feff19e0a042cefd94cb4622 | 4 | 4 | 3585.08072 | -| terp182hwm9dn0wjusjnpce3gm3pngcydha0jarq3cw | 0x3aaeed95b37ba5c84a61c6628dc4334608dbf5f2 | 4 | 4 | 3585.08072 | -| terp1mguwp7t25jear6d4plqvpd8llyr4el403um2ge | 0xda38e0f96aa4b3d1e9b50fc0c0b4fff9075cfeaf | 4 | 4 | 3585.08072 | -| terp1q30dnmmrausvyzp47rdtepk5asqaks74srdpdj | 0x045ed9ef63ef20c20835f0dabc86d4ec01db43d5 | 4 | 4 | 3585.08072 | -| terp19td7ysmhlvdmg492tqfpskxjz9wkd5du7syt7y | 0x2adbe24377fb1bb454aa58121858d2115d66d1bc | 4 | 4 | 3585.08072 | -| terp1arnj6zpemkxpt9nc2dcyrkv8s9hkvsvj2t5p72 | 0xe8e72d0839dd8c159678537041d987816f664192 | 4 | 4 | 3585.08072 | -| terp13j83hewmm7jr9wlmx0t2zdmeazya3n8ekxjens | 0x8c8f1be5dbdfa432bbfb33d6a13779e889d8ccf9 | 4 | 4 | 3585.08072 | -| terp1apm35cj8lxuuemxwr9w39e90hx464prulhzt2f | 0xe8771a6247f9b9ccecce195d12e4afb9abaa847c | 4 | 4 | 3585.08072 | -| terp1y3dfxjtm45y9x9yserekczhenua43kw07ddxgn | 0x245a93497bad08531490c8f36c0af99f3b58d9cf | 4 | 4 | 3585.08072 | -| terp1zehmuz27ayvjfnmlllh2rj78thpx8evpmtke0n | 0x166fbe095ee91924cf7fffeea1cbc75dc263e581 | 4 | 4 | 3585.08072 | -| terp1mqucrrmz400l2mcckqfqcw3xl9puesmskw8vvp | 0xd839818f62abdff56f18b0120c3a26f943ccc370 | 4 | 4 | 3585.08072 | -| terp1s4ynxpjwupejlrdm5c7x9fy8u900acvrfs2ag8 | 0x854933064ee0732f8dbba63c62a487e15efee183 | 4 | 4 | 3585.08072 | -| terp1pczlcf3uk47m3x4f7vkv8ar5xfz9yrz9fc9j2m | 0x0e05fc263cb57db89aa9f32cc3f4743244520c45 | 4 | 4 | 3585.08072 | -| terp1lhsqvf77h2ugmj5k0ltrd9hxyh2lg4nhtjk96e | 0xfde00627debab88dca967fd63696e625d5f45677 | 4 | 4 | 3585.08072 | -| terp1kqskp52xjq0g8ru7neuk99hvuvxp98s2k7wqz6 | 0xb02160d146901e838f9e9e796296ece30c129e0a | 4 | 4 | 3585.08072 | -| terp1l8dszp9fhder2z2pqwx5fr2hyxk2dxquwlwvha | 0xf9db0104a9bb72350941038d448d5721aca6981c | 4 | 4 | 3585.08072 | -| terp1d8e0l62t73k88y55c94ys57wjsu22z9wd3fpgr | 0x69f2ffe94bf46c739294c16a4853ce9438a508ae | 4 | 4 | 3585.08072 | -| terp1wwx9sxfpxf0pnltsrjvryvdycvwq4y9qedw950 | 0x738c581921325e19fd701c983231a4c31c0a90a0 | 4 | 4 | 3585.08072 | -| terp1qrdsxtf5s9jr2y9juksmqrr4nk4ljp6urh4c4w | 0x00db032d3481643510b2e5a1b00c759dabf9075c | 4 | 4 | 3585.08072 | -| terp1jref7vqn762gu9cv90lcrqynqmmyr2tjdckyz9 | 0x90f29f3013f6948e170c2bff81809306f641a972 | 4 | 4 | 3585.08072 | -| terp1s7c53llyfwdjf6rlsud0y4ra5vla8sye5e2r57 | 0x87b148ffe44b9b24e87f871af2547da33fd3c099 | 4 | 4 | 3585.08072 | -| terp13fsq8a6cgk5fdyjamgker5v4jqsur03nk4t575 | 0x8a6003f75845a896925dda2d91d1959021c1be33 | 4 | 4 | 3585.08072 | -| terp1pkrvjhf94000dqxql5hx2vusfqjx29ylyn3zv4 | 0x0d86c95d25abdef680c0fd2e653390482465149f | 4 | 4 | 3585.08072 | -| terp1g3zd5086qlrh4zthmgf82u363dw7k9xgmxgymz | 0x4444da3cfa07c77a8977da1275723a8b5deb14c8 | 4 | 4 | 3585.08072 | -| terp1vjw3655qs5m3lwx3a8sfwgclseqsykugvp4gp5 | 0x649d1d528085371fb8d1e9e097231f8641025b88 | 4 | 4 | 3585.08072 | -| terp1t62fkj6y37xq5ca7m2wl3ku6ac2mz40zk2u5e0 | 0x5e949b4b448f8c0a63beda9df8db9aee15b155e2 | 4 | 4 | 3585.08072 | -| terp1x2cr69ty6smtmluy9uv7uqkxss3tpwymf0z2r3 | 0x32b03d1564d436bdff842f19ee02c68422b0b89b | 4 | 4 | 3585.08072 | -| terp1lhp73mwhf2g0a9c77l2k5rrxepctzr6as969vg | 0xfdc3e8edd74a90fe971ef7d56a0c66c870b10f5d | 4 | 4 | 3585.08072 | -| terp1j93rhpt82cydan3p9ms7v5xvhjfn97f6q5rm50 | 0x91623b85675608dece212ee1e650ccbc9332f93a | 4 | 4 | 3585.08072 | -| terp1gvn6jen6fcjl0c9nfqhnxgdm9psc97vjf6v33a | 0x4327a9667a4e25f7e0b3482f3321bb286182f992 | 4 | 4 | 3585.08072 | -| terp16n0rq9vkdte940z435zsv4cwsft93re8agpyxp | 0xd4de3015966af25abc558d0506570e8256588f27 | 4 | 4 | 3585.08072 | -| terp1z0lw66erhceqksyh2kwfgtsk7dlptyz39fkvam | 0x13feed6b23be320b4097559c942e16f37e159051 | 4 | 4 | 3585.08072 | -| terp1ylyujj20e4zwxep7t72rrpejyfqzclwjyzxcv9 | 0x27c9c9494fcd44e3643e5f9431873222402c7dd2 | 4 | 4 | 3585.08072 | -| terp1xssvjlfuxkenuhp5vkahc2skehj05n6a0r2csq | 0x3420c97d3c35b33e5c3465bb7c2a16cde4fa4f5d | 4 | 4 | 3585.08072 | -| terp1lu9nwguyw7z8jqzwt05djpsu8j6z5nv4dax3ju | 0xff0b372384778479004e5be8d9061c3cb42a4d95 | 4 | 4 | 3585.08072 | -| terp1n9l202zf8kykk5qmkfqpzeft3ck7g7hgw6dwgv | 0x997ea7a8493d896b501bb24011652b8e2de47ae8 | 4 | 4 | 3585.08072 | -| terp1jl75nexnhfthptfejwfxm0t7nl8mw9v8yyrez9 | 0x97fd49e4d3ba5770ad3993926dbd7e9fcfb71587 | 4 | 4 | 3585.08072 | -| terp1ewarc723sfu3jyl67q8e5uezvqk8w4pp6cpsgx | 0xcbba3c795182791913faf00f9a7322602c775421 | 4 | 4 | 3585.08072 | -| terp130z202htqvvvf2ft0l0k6qzmnjjah8cuutefzc | 0x8bc4a7aaeb0318c4a92b7fdf6d005b9ca5db9f1c | 4 | 4 | 3585.08072 | -| terp1uxp4lp2m3ej8lz0e0zy5athqpd72y04aqhn3gx | 0xe1835f855b8e647f89f978894eaee00b7ca23ebd | 4 | 4 | 3585.08072 | -| terp19p3kv965hsvz4ad9jmdygv6y39ulr3vfw549h2 | 0x2863661754bc182af5a596da4433448979f1c589 | 4 | 4 | 3585.08072 | -| terp1qqh45x286lrz0jd2z6pm0w2rs4m8ruqcqvq79p | 0x002f5a1947d7c627c9aa1683b7b943857671f018 | 4 | 4 | 3585.08072 | -| terp1eee5l4f26uqc6rm8q4fqws53pqjg0t8eslp9gt | 0xce734fd52ad7018d0f670552074291082487acf9 | 4 | 4 | 3585.08072 | -| terp1u9fughvkp082kfe4desz4dvxs0u9uzfjkqg7zn | 0xe153c45d960bceab27356e602ab58683f85e0932 | 4 | 4 | 3585.08072 | -| terp15l2fdgv67jsgmwpsathxpu2kfvre68g4n5srey | 0xa7d496a19af4a08db830eaee60f1564b079d1d15 | 4 | 4 | 3585.08072 | -| terp1tp4lawmeg2mukpqd8zf3sh3g890fvncse75e5w | 0x586bfebb7942b7cb040d3893185e28395e964f10 | 4 | 4 | 3585.08072 | -| terp1ks2a4tez55al552en2f3u8vvckf7xuq0e0gpws | 0xb415daaf22a53bfa51599a931e1d8cc593e3700f | 4 | 4 | 3585.08072 | -| terp17gq30x8gm6vhhlhek373u3g56d3r6vvk2v6hv5 | 0xf2011798e8de997bfef9b47d1e4514d3623d3196 | 4 | 4 | 3585.08072 | -| terp1cx09rffl6fzh4fxnu05prdvzxagvjs5melayfz | 0xc19e51a53fd2457aa4d3e3e811b5823750c9429b | 4 | 4 | 3585.08072 | -| terp1gpj3fygg5c2exqg5hdg3sx8upyy64ynfwwxkpa | 0x4065149108a615930114bb511818fc0909aa9269 | 4 | 4 | 3585.08072 | -| terp13u3pjww2arwq56d9jwc6wuz3tzf8cfh2xd6rgr | 0x8f221939cae8dc0a69a593b1a7705158927c26ea | 4 | 4 | 3585.08072 | -| terp1srwy4fvjfw7wghjzxstyq5p5t8gdpwug4n8dne | 0x80dc4aa5924bbce45e42341640503459d0d0bb88 | 4 | 4 | 3585.08072 | -| terp1h26ncr9saehunatg8epkk72jztjdpel50f5twu | 0xbab53c0cb0ee6fc9f5683e436b795212e4d0e7f4 | 4 | 4 | 3585.08072 | -| terp190xwmga8fyqgyt8sv3t0yngl259c6z8d0lv4tg | 0x2bcceda3a74900822cf06456f24d1f550b8d08ed | 4 | 4 | 3585.08072 | -| terp1dfh3gnqx3kuyuthp2ceakeqtmj7p6k4jmyu30d | 0x6a6f144c068db84e2ee15633db640bdcbc1d5ab2 | 4 | 4 | 3585.08072 | -| terp1aajxpgr9wg0s6dzqg5v77n9y025uws8f9rhfr4 | 0xef6460a065721f0d34404519ef4ca47aa9c740e9 | 4 | 4 | 3585.08072 | -| terp10uydwvazcnn9azyhtthclq86d980xwwpu73nt9 | 0x7f08d733a2c4e65e88975aef8f80fa694ef339c1 | 4 | 4 | 3585.08072 | -| terp195xhwpj6kwtuejxhen7cglh5vp62j0pckxug6g | 0x2d0d77065ab397ccc8d7ccfd847ef46074a93c38 | 4 | 4 | 3585.08072 | -| terp13m9ax3859ty2ys0088cag94un7nrzh9mec0ve2 | 0x8ecbd344f42ac8a241ef39f1d416bc9fa6315cbb | 4 | 4 | 3585.08072 | -| terp1lnga9z2v5kn2lgruj4ultlt6cja854ypw8gkv4 | 0xfcd1d2894ca5a6afa07c9579f5fd7ac4ba7a5481 | 4 | 4 | 3585.08072 | -| terp1uamc0j296kt3twrsjyj5c8qgurmkq7xev2947u | 0xe77787c945d59715b87091254c1c08e0f76078d9 | 4 | 4 | 3585.08072 | -| terp1j3jae0hsm64pycf9mwjhluwq57l39tms9y24n3 | 0x9465dcbef0deaa126125dba57ff1c0a7bf12af70 | 4 | 4 | 3585.08072 | -| terp1k7s22rkztcwuq9g6s5nct990jvk7jmcgfv2har | 0xb7a0a50ec25e1dc0151a85278594af932de96f08 | 4 | 4 | 3585.08072 | -| terp1qug5ylkn5fts6xac0xgzay57gv3ys2cs3cekyn | 0x0711427ed3a2570d1bb879902e929e4322482b10 | 4 | 4 | 3585.08072 | -| terp1ux0ekls7eeahvh2vh9vnjgser8tvyds3d4ej4x | 0xe19f9b7e1ece7b765d4cb95939221919d6c23611 | 4 | 4 | 3585.08072 | -| terp1mx6rgf6fhy6sgyuw4w96er5j0xs286guvau2wz | 0xd9b4342749b93504138eab8bac8e9279a0a3e91c | 4 | 4 | 3585.08072 | -| terp12m2jzscjavf0t9rc46pezpczlax9ragcqp2588 | 0x56d5214312eb12f59478ae83910702ff4c51f518 | 4 | 4 | 3585.08072 | -| terp1jhctnzx2m9388x6pjx7gyevna6z7lvsrrvgvfw | 0x95f0b988cad962739b4191bc826593ee85efb203 | 4 | 4 | 3585.08072 | -| terp16z4vhdcwlyapqkm946tum8jg8fm87ln4hgh84j | 0xd0aacbb70ef93a105b65ae97cd9e483a767f7e75 | 4 | 4 | 3585.08072 | -| terp1z6ue6x2tyln964n8ncw6pxyymxp8meh734lul3 | 0x16b99d194b27e65d56679e1da09884d9827de6fe | 4 | 4 | 3585.08072 | -| terp192e8xmdzjzjd7mhjc6uaeml0mfrp8nflwlugfv | 0x2ab2736da290a4df6ef2c6b9dcefefda4613cd3f | 4 | 4 | 3585.08072 | -| terp1hdhvlc5pp99p27tq5yq348camprql0f9xx2rdl | 0xbb6ecfe281094a157960a1011a9f1dd8460fbd25 | 4 | 4 | 3585.08072 | -| terp16kt9d7j3002u8hp43rlkk8wdks3gzw04p53qdv | 0xd59656fa517bd5c3dc3588ff6b1dcdb4228139f5 | 4 | 4 | 3585.08072 | -| terp19dxx5mmpezp3sfmn2kfdmjvamylmzruruvnew7 | 0x2b4c6a6f61c8831827735592ddc99dd93fb10f83 | 4 | 4 | 3585.08072 | -| terp1dfmwh60h23vcgez44xnu05gwrm2rw5ez3yhq4l | 0x6a76ebe9f75459846455a9a7c7d10e1ed4375322 | 4 | 4 | 3585.08072 | -| terp16z8ep7hpefu77228dwgpask8pnfw2wrcd3334c | 0xd08f90fae1ca79ef29476b901ec2c70cd2e53878 | 4 | 4 | 3585.08072 | -| terp1wev6fz49c55z6spm9dfu8dntr8p5f573w44dfz | 0x7659a48aa5c5282d403b2b53c3b66b19c344d3d1 | 4 | 4 | 3585.08072 | -| terp1m3lnch7pec3w3k8jcdgzjp2mesrw580usjvd3v | 0xdc7f3c5fc1ce22e8d8f2c35029055bcc06ea1dfc | 4 | 4 | 3585.08072 | -| terp19q54x2ps3xdzmysnvjnzl6qwxf57jfxjlsk947 | 0x2829532830899a2d921364a62fe80e3269e924d2 | 4 | 4 | 3585.08072 | -| terp157tam8fn0sej0qalgs4qem3h562qs969tj8jet | 0xa797dd9d337c332783bf442a0cee37a694081745 | 4 | 4 | 3585.08072 | -| terp1986vx8c920vj4yhlq64qymampvk9yds25e9sed | 0x29f4c31f0553d92a92ff06aa026fbb0b2c52360a | 4 | 4 | 3585.08072 | -| terp1jnw2g4fq67ps0fl3w8ez7ek3l64fvdqskypqpx | 0x94dca45520d78307a7f171f22f66d1feaa963410 | 4 | 4 | 3585.08072 | -| terp1p9czgfeh0ylmy2gsgnw2jcgjtw42d3fcz3q4md | 0x0970242737793fb2291044dca961125baaa6c538 | 4 | 4 | 3585.08072 | -| terp1m75dwgnz5tpcr73thtfweswtrt2ph9pzsaascy | 0xdfa8d72262a2c381fa2bbad2ecc1cb1ad41b9422 | 4 | 4 | 3585.08072 | -| terp1dtgzmpy7z7f9ttzkhz0ve43rvu2aml7uhvjkrr | 0x6ad02d849e179255ac56b89eccd6236715ddffdc | 4 | 4 | 3585.08072 | -| terp1nye59l9h9zluc6ueeah73ff7vnpl3h9mpzrhr8 | 0x993342fcb728bfcc6b99cf6fe8a53e64c3f8dcbb | 4 | 4 | 3585.08072 | -| terp1kxxu4pcjqtm52lda9fvajep4evt23th8qlvwrq | 0xb18dca871202f7457dbd2a59d96435cb16a8aee7 | 4 | 4 | 3585.08072 | -| terp1fuwa5hzcyfkuyx2wc97mhd608aymqhgcyv2dfw | 0x4f1dda5c58226dc2194ec17dbbb74f3f49b05d18 | 4 | 4 | 3585.08072 | -| terp16gnsrwva6czy3u2dyzk7atvye09jqul2n3nwys | 0xd22701b99dd60448f14d20adeead84cbcb2073ea | 4 | 4 | 3585.08072 | -| terp1mu69uy2z0j8ew5t4zk2kuzq0ujnd02uupr5es6 | 0xdf345e11427c8f97517515956e080fe4a6d7ab9c | 4 | 4 | 3585.08072 | -| terp1szxthqh8p65gsc5kgcw6hcqkcqsma2asd9nrvl | 0x808cbb82e70ea8886296461dabe016c021beabb0 | 4 | 4 | 3585.08072 | -| terp1sjpr2e7cgk2mekkhumqpdj00fph8rhg52ky7ur | 0x84823567d84595bcdad7e6c016c9ef486e71dd14 | 4 | 4 | 3585.08072 | -| terp19zzgvcwx0gtf2uult8hw0rlwxh3wpcj2psg27u | 0x28848661c67a1695739f59eee78fee35e2e0e24a | 4 | 4 | 3585.08072 | -| terp190gs68lvy34v9s54g9xay88js4n82dper48j3q | 0x2bd10d1fec246ac2c295414dd21cf28566753439 | 4 | 4 | 3585.08072 | -| terp1sa86xzzjssms8ckwcezxs3szdxhthscl87x7et | 0x874fa30852843703e2cec64468460269aebbc31f | 4 | 4 | 3585.08072 | -| terp1h25j8rhufecxhks44ufprukalzn59h3ch35wxq | 0xbaa9238efc4e706bda15af1211f2ddf8a742de38 | 4 | 4 | 3585.08072 | -| terp1yf5uk89yw4r8qrnvxyd54gg4p4rgeg4s6q76nu | 0x2269cb1ca47546700e6c311b4aa1150d468ca2b0 | 4 | 4 | 3585.08072 | -| terp1zl6mk77hefff66jsvucw7lw0v68hks22nsvfac | 0x17f5bb7bd7ca529d6a506730ef7dcf668f7b414a | 4 | 4 | 3585.08072 | -| terp1jg5jds6nqmpqtmnrn4hsaj39x3np8ee99egnvd | 0x922926c35306c205ee639d6f0eca25346613e725 | 4 | 4 | 3585.08072 | -| terp1u8f0wx0jn6d0qgsd0wrlldp8nhn0kadpku9tc8 | 0xe1d2f719f29e9af0220d7b87ffb4279de6fb75a1 | 4 | 4 | 3585.08072 | -| terp1ckl7xyz8d3pxk5mjvgf9zlzucmxk0ufg650exh | 0xc5bfe310476c426b53726212517c5cc6cd67f128 | 4 | 4 | 3585.08072 | -| terp1wr3v9yl46mwuqy2hy0vnt0kxj7ur4t68pec49v | 0x70e2c293f5d6ddc0115723d935bec697b83aaf47 | 4 | 4 | 3585.08072 | -| terp1dyw96l3rlt647r9f3ms5v3mfz6vfg00kan52dd | 0x691c5d7e23faf55f0ca98ee14647691698943df6 | 4 | 4 | 3585.08072 | -| terp1g3wrwt7yqp07zrwsng0uh447qse7yv6ypk45c4 | 0x445c372fc4005fe10dd09a1fcbd6be0433e23344 | 4 | 4 | 3585.08072 | -| terp1xnup59hqfln8y0gldspve5zg7gtucx8vaw5ufs | 0x34f81a16e04fe6723d1f6c02ccd048f217cc18ec | 4 | 4 | 3585.08072 | -| terp17yxt657cv9x3aecj3agsqu204a8hdefndyp7hc | 0xf10cbd53d8614d1ee7128f5100714faf4f76e533 | 4 | 4 | 3585.08072 | -| terp1c7p062lm4wmpdjpch4sqsy7rrgfcqpvu8patcc | 0xc782fd2bfbabb616c838bd600813c31a1380059c | 4 | 4 | 3585.08072 | -| terp1qcr8qtajefkcwp7g53yavwsmm80lu9xyfuczxm | 0x0606702fb2ca6d8707c8a449d63a1bd9dffe14c4 | 4 | 4 | 3585.08072 | -| terp1geqf0gqc5tctpz6zqhahlj24x0pn6qy84uf7h9 | 0x464097a018a2f0b08b4205fb7fc95533c33d0087 | 4 | 4 | 3585.08072 | -| terp1j6rs89c8hrqnpqnw9aja9x0as3tkhwsekznvq6 | 0x9687039707b8c130826e2f65d299fd84576bba19 | 4 | 4 | 3585.08072 | -| terp17nler0fq9qvtugn5p4uta7wdemkzsknwrxcx4d | 0xf4ff91bd202818be22740d78bef9cdceec285a6e | 4 | 4 | 3585.08072 | -| terp16hsf0pj5et0glsqeswyemaeqejn6rjasr2dxge | 0xd5e0978654cade8fc01983899df720cca7a1cbb0 | 4 | 4 | 3585.08072 | -| terp1vvq6m48mz2x7jautseg692f83wr8v9prne7gw7 | 0x6301add4fb128de9778b8651a2a9278b86761423 | 4 | 4 | 3585.08072 | -| terp1dhy9amrpecu678e456et8tfww2emmt973kd4c7 | 0x6dc85eec61ce39af1f35a6b2b3ad2e72b3bdacbe | 4 | 4 | 3585.08072 | -| terp1q2tu35umklyshlsruc8dvax3wh5y843tuf9hzc | 0x0297c8d39bb7c90bfe03e60ed674d175e843d62b | 4 | 4 | 3585.08072 | -| terp132nuxypj4lv4d0gpyhl35s4vzt9qhwulaxwnzl | 0x8aa7c31032afd956bd0125ff1a42ac12ca0bbb9f | 4 | 4 | 3585.08072 | -| terp1k8m6wtnzu60qw26dtv33hx5umwuahjqh5z0leg | 0xb1f7a72e62e69e072b4d5b231b9a9cdbb9dbc817 | 4 | 4 | 3585.08072 | -| terp1cgmg4gw06pn07yzq205nceqrfsvl5s0a7s4vkp | 0xc2368aa1cfd066ff104053e93c64034c19fa41fd | 4 | 4 | 3585.08072 | -| terp17yw556qa5a0w0k436jht3fnhr2tmjvyhn3lkxw | 0xf11d4a681da75ee7dab1d4aeb8a6771a97b93097 | 4 | 4 | 3585.08072 | -| terp1ut4q350ld6edywqgddta0vjyr6lsg4gjcufsqy | 0xe2ea08d1ff6eb2d238086b57d7b2441ebf045512 | 4 | 4 | 3585.08072 | -| terp1v4cs469mjrhujfqyp8j3xhw9n6ll69rp3m99tx | 0x65710ae8bb90efc9240409e5135dc59ebffd1461 | 4 | 4 | 3585.08072 | -| terp1qpjn6qa3g7nxxwgd6hzmrf2ae8xqh5hau6t8u9 | 0x00653d03b147a663390dd5c5b1a55dc9cc0bd2fd | 4 | 4 | 3585.08072 | -| terp150fs4h9ce23uhc4qtupta3kg5l4aw6fxqe2gem | 0xa3d30adcb8caa3cbe2a05f02bec6c8a7ebd76926 | 4 | 4 | 3585.08072 | -| terp1zdnlsucp0zatar8nm505xlu8npk895xfdhpz3z | 0x1367f8730178babe8cf3dd1f437f87986c72d0c9 | 4 | 4 | 3585.08072 | -| terp1gy32cynnzxa5h53va3j6uw5qqlv2h9yf5dq30d | 0x4122ac127311bb4bd22cec65ae3a8007d8ab9489 | 4 | 4 | 3585.08072 | -| terp12znnv3un3smcxn8lcpdrqdzctatdllgukhnzqk | 0x50a73647938c37834cffc05a3034585f56dffd1c | 4 | 4 | 3585.08072 | -| terp1hpnvfsdyuzmkn8xkk85m6tr6xm0pmgcr8hv945 | 0xb866c4c1a4e0b7699cd6b1e9bd2c7a36de1da303 | 4 | 4 | 3585.08072 | -| terp1sr6k25tthvq9feqrc7rmuv35a8al57rpt5qmzp | 0x80f565516bbb0054e403c787be3234e9fbfa7861 | 4 | 4 | 3585.08072 | -| terp1mqd79hgluh3ln2k68ll2d4jwvfgxakkv8j2w4k | 0xd81be2dd1fe5e3f9aada3ffea6d64e62506edacc | 4 | 4 | 3585.08072 | -| terp1pcdzz40tpnj2trpdys47pml2pvy7rrfxxz84cm | 0x0e1a2155eb0ce4a58c2d242be0efea0b09e18d26 | 4 | 4 | 3585.08072 | -| terp1s8gj748ksd5gkqxcsa83guqs7m4c4wxn3hk0ux | 0x81d12f54f683688b00d8874f147010f6eb8ab8d3 | 4 | 4 | 3585.08072 | -| terp1lmtxyenyuwqvuyay7l57qvprctwt44vuhakv2y | 0xfed6626664e380ce13a4f7e9e03023c2dcbad59c | 4 | 4 | 3585.08072 | -| terp1ldszv3csxs6lftckakyvhma2fmqg8y73txunsg | 0xfb602647103435f4af16ed88cbefaa4ec08393d1 | 4 | 4 | 3585.08072 | -| terp1sxz3j89xh76twcs54we4w2lyz0j36f9uexh75g | 0x8185191ca6bfb4b76214abb3572be413e51d24bc | 4 | 4 | 3585.08072 | -| terp1amn4tlq90dwvk05ncau5sz5c0af9zm6ne5ne0y | 0xeee755fc057b5ccb3e93c779480a987f52516f53 | 4 | 4 | 3585.08072 | -| terp1gv79aes0zp5u8t9j4ae4d30ptp4sz00njqpln9 | 0x433c5ee60f1069c3acb2af7356c5e1586b013df3 | 4 | 4 | 3585.08072 | -| terp18f875jfs6xc3jtcrvu0azl90plwks494a0zc4d | 0x3a4fea4930d1b1192f03671fd17caf0fdd6854b5 | 4 | 4 | 3585.08072 | -| terp10aptpvd2q7pezmacpqpjnq49atn567xmt4aksm | 0x7f42b0b1aa0783916fb808032982a5eae74d78db | 4 | 4 | 3585.08072 | -| terp196qd9yzzlz7uzltt24az6y48q0lfcd9aygvesm | 0x2e80d29042f8bdc17d6b557a2d12a703fe9c34bd | 4 | 4 | 3585.08072 | -| terp1yevg9zefgtm9mwpgj0fvz7t4c27y6dedvzt73p | 0x2658828b2942f65db82893d2c17975c2bc4d372d | 4 | 4 | 3585.08072 | -| terp1szf0q5w33cn5pv54qmhc352euwz62wa2sy7j6v | 0x8092f051d18e2740b29506ef88d159e385a53baa | 4 | 4 | 3585.08072 | -| terp177at5796wjv8nkwp5jcges0ck5jgl808gjsvh9 | 0xf7baba78ba749879d9c1a4b08cc1f8b5248f9de7 | 4 | 4 | 3585.08072 | -| terp193ykx0uzstrdm49c2l5kc7euc0v0sce5nkemcn | 0x2c49633f8282c6ddd4b857e96c7b3cc3d8f86334 | 4 | 4 | 3585.08072 | -| terp1afayt3r2kanjtnj89thuzudntdqw5synydatdn | 0xea7a45c46ab76725ce472aefc171b35b40ea4093 | 4 | 4 | 3585.08072 | -| terp1wktypyv0uka9sw4tuaxrh8exjy0fsnskkktnge | 0x759640918fe5ba583aabe74c3b9f26911e984e16 | 4 | 4 | 3585.08072 | -| terp1ywyxvwm6yz6v78ylzmmxp2rvdqwkmpduukfyl7 | 0x2388663b7a20b4cf1c9f16f660a86c681d6d85bc | 4 | 4 | 3585.08072 | -| terp18e6xq7ky6lps5638d0a6v3jmvp6y3rct5ks683 | 0x3e74607ac4d7c30a6a276bfba6465b6074488f0b | 4 | 4 | 3585.08072 | -| terp1h5gpllavvxxvwp8sq5c4zs7avw6yt308p05xl0 | 0xbd101fffac618cc704f005315143dd63b445c5e7 | 4 | 4 | 3585.08072 | -| terp1u9d0gx7qprxsue4zhu8tfxpsvgllfxn3mytpcc | 0xe15af41bc008cd0e66a2bf0eb49830623ff49a71 | 4 | 4 | 3585.08072 | -| terp1rnp5e08qq89qs4ex569v6twk3um8fkkv24sgw5 | 0x1cc34cbce001ca085726a68acd2dd68f3674dacc | 4 | 4 | 3585.08072 | -| terp1ud7tf5vqszw3gdf7c2nknyaad7ljvy4mnh5y5s | 0xe37cb4d180809d14353ec2a76993bd6fbf2612bb | 4 | 4 | 3585.08072 | -| terp168vlavzk0e262qmfssx9akekuuqkc6wzqlnql9 | 0xd1d9feb0567e55a50369840c5edb36e7016c69c2 | 4 | 4 | 3585.08072 | -| terp1822fmt66t5xhw95hskelt2hyty4y2uhpr7eh3j | 0x3a949daf5a5d0d77169785b3f5aae4592a4572e1 | 4 | 4 | 3585.08072 | -| terp19kf6njjrrszelatwjhx92yturzwaq7v0hs40er | 0x2d93a9ca431c059ff56e95cc55117c189dd0798f | 4 | 4 | 3585.08072 | -| terp1hnl8e4gxs5htvdwj8p3kjlhy9jtfcx462l4mp7 | 0xbcfe7cd506852eb635d23863697ee42c969c1aba | 4 | 4 | 3585.08072 | -| terp1kyrcj8wtppjqxksmqvm5edpmkanrrdd42uu0nu | 0xb107891dcb0864035a1b03374cb43bb76631b5b5 | 4 | 4 | 3585.08072 | -| terp1w9lzcyyzhtu40kpw7pj7hsn96hlutvsm47x4z5 | 0x717e2c1082baf957d82ef065ebc265d5ffc5b21b | 4 | 4 | 3585.08072 | -| terp1kg47gvjwr5jd9c37lhfzga76u4jvvg36wz7tx8 | 0xb22be4324e1d24d2e23efdd22477dae564c6223a | 4 | 4 | 3585.08072 | -| terp1z2hd57u5dgdrnuwgu7hn0rfxhrqq4ne22ufs98 | 0x12aeda7b946a1a39f1c8e7af378d26b8c00acf2a | 4 | 4 | 3585.08072 | -| terp1hkhlvgftjqywmrqmvkujvun2d6weys50tt477q | 0xbdaff6212b9008ed8c1b65b926726a6e9d92428f | 4 | 4 | 3585.08072 | -| terp17g75qgd66rp02r7f0ygwcfymhtsdc0ln9vun6z | 0xf23d4021bad0c2f50fc97910ec249bbae0dc3ff3 | 4 | 4 | 3585.08072 | -| terp1cqhnrqm9tqj40fyzadw3sdxl67h5506es5748x | 0xc02f318365582557a482eb5d1834dfd7af4a3f59 | 4 | 4 | 3585.08072 | -| terp1qqqqqqqqqqqqqqqqqqqqqqqqqqqqph4djd6w27 | 0x000000000000000000000000000000000000dead | 4 | 4 | 3585.08072 | -| terp1ghajzdkgm73mpqpztu87sukpejfu59w5lzen7x | 0x45fb2136c8dfa3b080225f0fe872c1cc93ca15d4 | 4 | 4 | 3585.08072 | -| terp1jh5u77sp0w30jcj7ql0s94dv3tz5tyltg6l938 | 0x95e9cf7a017ba2f9625e07df02d5ac8ac54593eb | 4 | 4 | 3585.08072 | -| terp1dtxlkgnanjuqrqq2q9ej7sskhh855rz0te3y68 | 0x6acdfb227d9cb801800a01732f4216bdcf4a0c4f | 4 | 4 | 3585.08072 | -| terp1km7udftzhdjhg5yawj2qvv5x65l04758m6ee5y | 0xb6fdc6a562bb6574509d7494063286d53efafa87 | 4 | 4 | 3585.08072 | -| terp1v7cl5047rk38jr5jutqpu2cetamlppa0nrh9mw | 0x67b1fa3ebe1da2790e92e2c01e2b195f77f087af | 4 | 4 | 3585.08072 | -| terp1j6h0u0jruymejv9qt3nc4ynl5s26mzks5hl84u | 0x96aefe3e43e1379930a05c678a927fa415ad8ad0 | 4 | 4 | 3585.08072 | -| terp1f52gp5j9ln4x8jrtaejmf55zlyl0mq659fs7ng | 0x4d1480d245fcea63c86bee65b4d282f93efd8354 | 3 | 4 | 3585.08072 | -| terp1esykqfpapxdu46tvp5dw4nw6q9p56t4uq5cnqr | 0xcc0960243d099bcae96c0d1aeacdda01434d2ebc | 3 | 4 | 3585.08072 | -| terp1mfxker853e7yw0hhhvavuca9kkr9nz6kumxxke | 0xda4d6c8cf48e7c473ef7bb3ace63a5b586598b56 | 3 | 4 | 3585.08072 | -| terp1vyhhfu3d4qtjs5j8ha2sku3yejrxgd38jm7qcg | 0x612f74f22da817285247bf550b7224cc86643627 | 3 | 4 | 3585.08072 | -| terp1nrgwvuavw47flp7zappv636tehgct5csxxxnav | 0x98d0e673ac757c9f87c2e842cd474bcdd185d310 | 3 | 4 | 3585.08072 | -| terp15rqg7f0mxr6rhjpng6knqjfftk67eadk6fg8ze | 0xa0c08f25fb30f43bc83346ad3049295db5ecf5b6 | 3 | 4 | 3585.08072 | -| terp1r360e9faa8jxmlmvpv9fqsu53y6655j0gntkv7 | 0x1c74fc953de9e46dff6c0b0a9043948935aa524f | 3 | 4 | 3585.08072 | -| terp122fu3egfjftahge0xxjxjv2pjtu57e474ansts | 0x5293c8e5099257dba32f31a469314192f94f66be | 3 | 4 | 3585.08072 | -| terp10j4f7suz9c5g0qhrapuhezskwaxx3xeafhvsqy | 0x7caa9f43822e288782e3e8797c8a16774c689b3d | 3 | 4 | 3585.08072 | -| terp1emha2crknu4hlqvq390zxsc7qrdgddkh0ghj36 | 0xceefd560769f2b7f8180895e23431e00da86b6d7 | 3 | 4 | 3585.08072 | -| terp1488lj6xtm9u57njwlxa8gudqfz39nvpyz6n4u9 | 0xa9cff968cbd9794f4e4ef9ba7471a048a259b024 | 3 | 4 | 3585.08072 | -| terp1fj7q8y0me0su40pj8hjysttv2t5r343afwg3aq | 0x4cbc0391fbcbe1cabc323de4482d6c52e838d63d | 3 | 4 | 3585.08072 | -| terp1jc445hawl4qelpzmrd74terakkwrknjda6dm96 | 0x962b5a5faefd419f845b1b7d55e47db59c3b4e4d | 3 | 4 | 3585.08072 | -| terp1kmafuw3xzfzuryf8wxj79dd8g8p0fu4met7rms | 0xb6fa9e3a261245c1912771a5e2b5a741c2f4f2bb | 3 | 4 | 3585.08072 | -| terp178ek5zvey6d50acy28k8ufa6tthc0p8u03tmm0 | 0xf1f36a0999269b47f70451ec7e27ba5aef8784fc | 3 | 4 | 3585.08072 | -| terp1xmld2qegrzgmtrjy6ngs4g3xpu6jum7xdzjsu0 | 0x36fed503281891b58e44d4d10aa2260f352e6fc6 | 3 | 4 | 3585.08072 | -| terp15trhjddnhvk0gjtyg3jgv7rd23j2ykmlah5a3l | 0xa2c77935b3bb2cf44964446486786d5464a25b7f | 3 | 4 | 3585.08072 | -| terp1s7hsagcfvshfpkk04kcv2fkvwt4eezdlg5cs0v | 0x87af0ea309642e90dacfadb0c526cc72eb9c89bf | 3 | 4 | 3585.08072 | -| terp1rxpqhaxfdw0vnzkcneurhrxcge0wph9g26qsw6 | 0x19820bf4c96b9ec98ad89e783b8cd8465ee0dca8 | 3 | 4 | 3585.08072 | -| terp1qrx9h0r8s30xk5ht3tmelc92qchawm7rz68qex | 0x00cc5bbc67845e6b52eb8af79fe0aa062fd76fc3 | 3 | 4 | 3585.08072 | -| terp1034lc4gzadcezd7yept7hhhmcj29rd5q3xljxs | 0x7c6bfc5502eb719137c4c857ebdefbc49451b680 | 3 | 4 | 3585.08072 | -| terp1j77awew9r7sq404nvz39heemtx7ek0yy6s90hr | 0x97bdd765c51fa00abeb360a25be73b59bd9b3c84 | 3 | 4 | 3585.08072 | -| terp1xh2xt5h2aqlmk9gg883dpp7ex0fr949u39wvr6 | 0x35d465d2eae83fbb150839e2d087d933d232d4bc | 3 | 4 | 3585.08072 | -| terp1whdwl8hf4hammkkc8wflyt6a6mvxpt4uww8y24 | 0x75daef9ee9adfbbddad83b93f22f5dd6d860aebc | 3 | 4 | 3585.08072 | -| terp1utmmd4r359w5lg4kd3etnap95ajhgenxrtl70f | 0xe2f7b6d471a15d4fa2b66c72b9f425a765746666 | 3 | 4 | 3585.08072 | -| terp1nn6vmw9ulsj03rr4tq62txfw6v30zp27ss3g56 | 0x9cf4cdb8bcfc24f88c755834a5992ed322f1055e | 3 | 4 | 3585.08072 | -| terp1puncc4449dxqu2nfkv9qkkgayd78swg85ssed3 | 0x0f278c56b52b4c0e2a69b30a0b591d237c783907 | 3 | 4 | 3585.08072 | -| terp1d3anku0rkaqe8gw6snw5nnts8md9u9rwrwtjfa | 0x6c7b3b71e3b74193a1da84dd49cd703eda5e146e | 3 | 4 | 3585.08072 | -| terp1wck5myfmavs8s2hzmgw0fs097svrl5xtlhp88s | 0x762d4d913beb20782ae2da1cf4c1e5f4183fd0cb | 3 | 4 | 3585.08072 | -| terp1t3zhxjnqz53w9phzsf7kyke0ugcgqhq4xd0tkc | 0x5c45734a601522e286e2827d625b2fe230805c15 | 3 | 4 | 3585.08072 | -| terp1j7rp0725jpl777suaflvdvj6r9a7wumar5kn3c | 0x978617f954907fef7a1cea7ec6b25a197be7737d | 3 | 4 | 3585.08072 | -| terp1g8w3df25yja9y0shvdhcyc3gwtnry9nxkrv9zf | 0x41dd16a55424ba523e17636f82622872e6321666 | 3 | 4 | 3585.08072 | -| terp1ap6d4hrznu5nswjlx4zuu7u5ex2attk5m4fyy3 | 0xe874dadc629f29383a5f3545ce7b94c995d5aed4 | 3 | 4 | 3585.08072 | -| terp167dsqpjqxj6jejlj8g6m2n3cwp06azfk3p2ezt | 0xd79b00064034b52ccbf23a35b54e38705fae8936 | 3 | 4 | 3585.08072 | -| terp1uqul5hutpxpu03q2s4gnvtgzhn9f2jn9c4dnzn | 0xe039fa5f8b0983c7c40a8551362d02bcca954a65 | 3 | 4 | 3585.08072 | -| terp1rdlp8zk0gf2et3lk7yplq3mr24czwjw9ausgwx | 0x1b7e138acf425595c7f6f103f0476355702749c5 | 3 | 4 | 3585.08072 | -| terp1nulgj7dp6pj0mnysp03qvyms760nqm97awvtam | 0x9f3e8979a1d064fdcc900be2061370f69f306cbe | 3 | 4 | 3585.08072 | -| terp1umd2zjtctntpx067stjt4ymh4scv4xnspy3z0t | 0xe6daa149785cd6133f5e82e4ba9377ac30ca9a70 | 3 | 4 | 3585.08072 | -| terp19dmxr92a3hcwlju3wtdx659uk8nraraylxteh6 | 0x2b7661955d8df0efcb9172da6d50bcb1e63e8fa4 | 3 | 4 | 3585.08072 | -| terp1yl6jjgd06t4rjva924fjws2f62786mtpg2zakc | 0x27f52921afd2ea3933a55553274149d2bc7d6d61 | 3 | 4 | 3585.08072 | -| terp14qum7n4ta04k3jlc5qk9ka0p870hea4k8ugawz | 0xa839bf4eabebeb68cbf8a02c5b75e13f9f7cf6b6 | 3 | 4 | 3585.08072 | -| terp18vav3r7l6v7caw2avtvgftz49ergjjy897k5l5 | 0x3b3ac88fdfd33d8eb95d62d884ac552e46894887 | 3 | 4 | 3585.08072 | -| terp1xfxg3d7zqecvun6nxw8mpzsljuj5atsvt9r2wk | 0x324c88b7c20670ce4f53338fb08a1f97254eae0c | 3 | 4 | 3585.08072 | -| terp1srslttguj6dqcxv6txp23ystlucw8cghxu86wz | 0x80e1f5ad1c969a0c199a5982a8920bff30e3e117 | 3 | 4 | 3585.08072 | -| terp1sm87twwhrfs7kjylkv3a3wpemzvc87ehmv9l6c | 0x86cfe5b9d71a61eb489fb323d8b839d89983fb37 | 3 | 4 | 3585.08072 | -| terp1hmqk2wwhwpnew6uvspc53vkrdmvhx8777xv2zh | 0xbec16539d77067976b8c807148b2c36ed9731fde | 3 | 4 | 3585.08072 | -| terp1j6s8axlspddkx2x8jk62cmf5d36a0h7h58pzau | 0x96a07e9bf00b5b6328c795b4ac6d346c75d7dfd7 | 3 | 4 | 3585.08072 | -| terp1tzttvzdtknxvdsh563cfsr6kn7emj37h7mgq9k | 0x5896b609abb4ccc6c2f4d470980f569fb3b947d7 | 3 | 4 | 3585.08072 | -| terp1tkle9233m6tarj93tx7tpzlcu5x2um8rp9u39z | 0x5dbf92aa31de97d1c8b159bcb08bf8e50cae6ce3 | 3 | 4 | 3585.08072 | -| terp1tqlee72pc8n0zddgpz8d5ly9y32shwwmynusxr | 0x583f9cf941c1e6f135a8088eda7c8524550bb9db | 3 | 4 | 3585.08072 | -| terp1m2end442pv556w2hzude2pvvtcpga279pz52qr | 0xdab336d6aa0b294d3957171b95058c5e028eabc5 | 3 | 4 | 3585.08072 | -| terp1xnak40r84pddd60wltmutmsq5ku932cyyvg3lu | 0x34fb6abc67a85ad6e9eefaf7c5ee00a5b858ab04 | 3 | 4 | 3585.08072 | -| terp1yfurwzfu6pnsyq9edlj5ptps5sw5jxd2fzdzaj | 0x227837093cd0670200b96fe540ac30a41d4919aa | 3 | 4 | 3585.08072 | -| terp17cr4d5cggnnesg4le3velycv9qrh33lxvft0l8 | 0xf60756d30844e79822bfcc599f930c280778c7e6 | 3 | 4 | 3585.08072 | -| terp1q2mdudzruxl78xefgjg4n308f565y5rnfy2dxt | 0x02b6de3443e1bfe39b29449159c5e74d35425073 | 3 | 4 | 3585.08072 | -| terp1dd5ft4crhex7wdcenn2j0q9zw206wczpv93q3j | 0x6b6895d703be4de737199cd52780a2729fa76041 | 3 | 4 | 3585.08072 | -| terp170lxgz30nspu7gz462x6s490s8l2x8arzzhngr | 0xf3fe640a2f9c03cf2055d28da854af81fea31fa3 | 3 | 4 | 3585.08072 | -| terp1t2uuchsy52ndyj6sl3llddh033q85y49vgw5fj | 0x5ab9cc5e04a2a6d24b50fc7ff6b6ef8c407a12a5 | 3 | 4 | 3585.08072 | -| terp1t45u8tn8wx0l5q2vy72nyzd2wzqazvsf07fdf8 | 0x5d69c3ae67719ffa014c27953209aa7081d13209 | 3 | 4 | 3585.08072 | -| terp1zuuun59yft44732pm8a8sumw4utkhym93kvtzq | 0x1739c9d0a44aeb5f4541d9fa78736eaf176b9365 | 3 | 4 | 3585.08072 | -| terp1mnl8ajckaxsl66d54lc9ffrcly7yzc6lf7ursx | 0xdcfe7ecb16e9a1fd69b4aff054a478f93c41635f | 3 | 4 | 3585.08072 | -| terp1gkmpvr96sz0wg3gku9suzuf2vms04na7mxpc88 | 0x45b6160cba809ee44516e161c1712a66e0facfbe | 3 | 4 | 3585.08072 | -| terp1ma599u8rxsswgk5ruqadxkqxsupvydmj76d4sf | 0xdf6852f0e33420e45a83e03ad358068702c23772 | 3 | 4 | 3585.08072 | -| terp1a9angcs55k8cvucz2468drh37lhppm2g3quy2s | 0xe97b346214a58f8673025574768ef1f7ee10ed48 | 3 | 4 | 3585.08072 | -| terp1ukzc93cwswd55d6wknh5sq32742635f7ggzdrq | 0xe58582c70e839b4a374eb4ef48022af555a8d13e | 3 | 4 | 3585.08072 | -| terp1qha0knqtakvlgdm55cyxp59yt34gsx85f2rpl5 | 0x05fafb4c0bed99f43774a60860d0a45c6a8818f4 | 3 | 4 | 3585.08072 | -| terp12jud829nm2p6ngjrs49aa5ucq7ecykf7yruzy8 | 0x54b8d3a8b3da83a9a243854bded39807b382593e | 3 | 4 | 3585.08072 | -| terp1y7g52l6yqfawznlgccgc02cyjp9c25e442fcy8 | 0x2791457f44027ae14fe8c61187ab04904b855335 | 3 | 4 | 3585.08072 | -| terp1y3f2y2u8f8ehhyf36yynfsmhwd6zxlmvqk7me9 | 0x2452a22b8749f37b9131d10934c3777374237f6c | 3 | 4 | 3585.08072 | -| terp1p87r6s8qspdult0scx0q7cvxwrk2pgtxs2vykh | 0x09fc3d40e0805bcfadf0c19e0f618670eca0a166 | 3 | 4 | 3585.08072 | -| terp1zdkmn0ppuh0ng69yeverk3hw352d3w4zl8hc6w | 0x136db9bc21e5df3468a4cb323b46ee8d14d8baa2 | 3 | 4 | 3585.08072 | -| terp1fdkfg6zh260zdj2k2efq2zj5hg98yyy7k9suaq | 0x4b6c946857569e26c9565652050a54ba0a72109e | 3 | 4 | 3585.08072 | -| terp12uv5wvv30eq9t3s237prsdy3dh23vazrpkaah3 | 0x57194731917e4055c60a8f823834916dd5167443 | 3 | 4 | 3585.08072 | -| terp1mf206ltkkpdxj0a466l30000cyne9k7l0x9264 | 0xda54fd7d76b05a693fb5d6bf17bdefc12792dbdf | 3 | 4 | 3585.08072 | -| terp1sea9ke0v4vqem6n68ez7t2t30l6mchngqhvudw | 0x867a5b65ecab019dea7a3e45e5a9717ff5bc5e68 | 3 | 4 | 3585.08072 | -| terp1krh7awh0sagcdk9j2z4xjdm64rxvjv5rd5xtfk | 0xb0efeebaef875186d8b250aa69377aa8ccc93283 | 3 | 4 | 3585.08072 | -| terp1zg0hne3sfkclnucv8s84u0ezaca88d3c4pmff9 | 0x121f79e6304db1f9f30c3c0f5e3f22ee3a73b638 | 3 | 4 | 3585.08072 | -| terp1na3vux6vxx29z4cnna62whxs63jhy0lu7acsjp | 0x9f62ce1b4c31945157139f74a75cd0d465723ffc | 3 | 4 | 3585.08072 | -| terp1rqjv9paze06wdhcjttsae33p3dxwrtdcgcnsz3 | 0x1824c287a2cbf4e6df125ae1dcc6218b4ce1adb8 | 3 | 4 | 3585.08072 | -| terp1nq4sg6uu70p6ch2qpksgqw6qcmtfp3smjaajp9 | 0x982b046b9cf3c3ac5d400da0803b40c6d690c61b | 3 | 4 | 3585.08072 | -| terp1nw9qdj64gjs8phut6fvyeva35tlq2ycfjp7wx9 | 0x9b8a06cb5544a070df8bd2584cb3b1a2fe051309 | 3 | 4 | 3585.08072 | -| terp109raszqa8a8f9u73etj8sf7qhg369xufqxzr6e | 0x7947d8081d3f4e92f3d1cae47827c0ba23a29b89 | 3 | 4 | 3585.08072 | -| terp1hvcr3jjxugw78zdl9zcfagynd9ecf9v24cajjw | 0xbb3038ca46e21de389bf28b09ea093697384958a | 3 | 4 | 3585.08072 | -| terp1mehhlt978vtjh86csg80gr3zafs5hzfdhtw5ye | 0xde6f7facbe3b172b9f58820ef40e22ea614b892d | 3 | 4 | 3585.08072 | -| terp1a0z8vw08c2f36cp0l25d4xfs6pahn2veur9wl8 | 0xebc47639e7c2931d602ffaa8da9930d07b79a999 | 3 | 4 | 3585.08072 | -| terp13863dsg085tv62wu80ke67f5juy4f0gx8fy77z | 0x89f516c10f3d16cd29dc3bed9d7934970954bd06 | 3 | 4 | 3585.08072 | -| terp1jz5776hpxys0saugm5meqhfuudcxl9d60le4sl | 0x90a9ef6ae13120f87788dd37905d3ce3706f95ba | 3 | 4 | 3585.08072 | -| terp1tksp2wnxp9qk3mj2xwn54d5zuwwll85ejvh3rz | 0x5da0153a66094168ee4a33a74ab682e39dff9e99 | 3 | 4 | 3585.08072 | -| terp1qlypl2y49fc98l8lyhzczptdjhz29sfyt7jmrn | 0x07c81fa8952a7053fcff25c581056d95c4a2c124 | 3 | 4 | 3585.08072 | -| terp17m9ress4zrqhcwd02aw0akq5xyuk4pe674z7my | 0xf6ca3cc21510c17c39af575cfed81431396a873a | 3 | 4 | 3585.08072 | -| terp1cmnmq0qk9mrvm99736swx9drrvljaf523pfltk | 0xc6e7b03c162ec6cd94be8ea0e315a31b3f2ea68a | 3 | 4 | 3585.08072 | -| terp1ugznl5kel3q77c5sayx66hdukqjamvtq8e4ld5 | 0xe2053fd2d9fc41ef6290e90dad5dbcb025ddb160 | 3 | 4 | 3585.08072 | -| terp1rh92c7348a8nfey4325nv5vk0xpuy63dp6hruh | 0x1dcaac7a353f4f34e4958aa93651967983c26a2d | 3 | 4 | 3585.08072 | -| terp15s25n7a9dt76y8z2jeyze43vvc5k67d7eqvgtg | 0xa41549fba56afda21c4a96482cd62c66296d79be | 3 | 4 | 3585.08072 | -| terp1hqjr5w9pe74rj99d5lknkx70duu0druefm3wf7 | 0xb8243a38a1cfaa3914ada7ed3b1bcf6f38f68f99 | 3 | 4 | 3585.08072 | -| terp19d07x64wckntg7dp52etdwjx7fufj87x5yml74 | 0x2b5fe36aaec5a6b479a1a2b2b6ba46f278991fc6 | 3 | 4 | 3585.08072 | -| terp1fuffl0t0unrr9szfnzklkwfdj0dyzt8pkswmq7 | 0x4f129fbd6fe4c632c04998adfb392d93da412ce1 | 3 | 4 | 3585.08072 | -| terp1g8gyjvnuzft9dpyk4sk8g5ka6fk0yzgg6npm7p | 0x41d049327c1256568496ac2c7452ddd26cf20908 | 3 | 4 | 3585.08072 | -| terp1a46a8pa2a8y3hchj62cz8gcywdr58pshtfgv0m | 0xed75d387aae9c91be2f2d2b023a3047347438617 | 3 | 4 | 3585.08072 | -| terp15e3v6cqzpyskfqv6vkww3gjn2ky0q4x822k2jm | 0xa662cd6002092164819a659ce8a2535588f054c7 | 3 | 4 | 3585.08072 | -| terp16ucvtgz5940kj26sn7ap6wpuu4z3ngg5azjeq4 | 0xd730c5a0542d5f692b509fba1d383ce54519a114 | 3 | 4 | 3585.08072 | -| terp18vk6xwru4w2daxmdnwhdma5drvjv3wpy4s2zl8 | 0x3b2da3387cab94de9b6d9baeddf68d1b24c8b824 | 3 | 4 | 3585.08072 | -| terp1cf4taupxwqgrpc4sfgp6vpxhckaksw2kdq0sax | 0xc26abef026701030e2b04a03a604d7c5bb683956 | 3 | 4 | 3585.08072 | -| terp178eqjjtf33uqwkapvqclu6nu9a5y3jncuf5p4n | 0xf1f20949698c78075ba16031fe6a7c2f6848ca78 | 3 | 4 | 3585.08072 | -| terp1n0e6kunff6mptfddp3sde7zcs2zvrt7a2cg8au | 0x9bf3ab72694eb615a5ad0c60dcf8588284c1afdd | 3 | 4 | 3585.08072 | -| terp1rt9lz8384v9qmh5qz8fg6ss90wuy4zax7hv4zt | 0x1acbf11e27ab0a0dde8011d28d42057bb84a8ba6 | 3 | 4 | 3585.08072 | -| terp14t6safrj64a0zdlc6fnsazvdewgvx6lar559xe | 0xaaf50ea472d57af137f8d2670e898dcb90c36bfd | 3 | 4 | 3585.08072 | -| terp1fkepqpzkpupq3k7zkehg6ur449nqzedsdwlacs | 0x4db21004560f0208dbc2b66e8d7075a9660165b0 | 3 | 4 | 3585.08072 | -| terp1amg7jpfmkwv3m6nc5v9psvwvz5xuuvek9fs9gj | 0xeed1e9053bb3991dea78a30a1831cc150dce3336 | 3 | 4 | 3585.08072 | -| terp1t7ncsmu4e2n9wvlkhw24qslf42kyej9s6ja8mt | 0x5fa7886f95caa65733f6bb955043e9aaac4cc8b0 | 3 | 4 | 3585.08072 | -| terp1n2tpzas23lvh82vlrkpdal8wte0wyesvra78hx | 0x9a9611760a8fd973a99f1d82defcee5e5ee2660c | 3 | 4 | 3585.08072 | -| terp1fk08nlql5p9t8y3rjsnuvmxsvd7uc4v0zyqqh0 | 0x4d9e79fc1fa04ab392239427c66cd0637dcc558f | 3 | 4 | 3585.08072 | -| terp1sptp3wp28p2v46vzrhwyknxyjwjvrcfwe7fgyq | 0x805618b82a3854cae9821ddc4b4cc493a4c1e12e | 3 | 4 | 3585.08072 | -| terp1q2t9n72697m8wqurr0e7vpxchgjnufk098352l | 0x029659f95a2fb67703831bf3e604d8ba253e26cf | 3 | 4 | 3585.08072 | -| terp152wun945tv8qagsc3feezvep729lgfq2dkgtrl | 0xa29dc996b45b0e0ea2188a73913321f28bf4240a | 3 | 4 | 3585.08072 | -| terp13g8tkflcydp2q6mu3kw2kkk4wns8967a8ug0q2 | 0x8a0ebb27f82342a06b7c8d9cab5ad574e072ebdd | 3 | 4 | 3585.08072 | -| terp10c0uw0s247505h3lxex2q553c9rs6jqfl5xl99 | 0x7e1fc73e0aafa8fa5e3f364ca05291c1470d4809 | 3 | 4 | 3585.08072 | -| terp1dvaxexawmzlyvjd5ummgv7e4sqn9c7x7nj7jvk | 0x6b3a6c9baed8be4649b4e6f6867b3580265c78de | 3 | 4 | 3585.08072 | -| terp1zfx8hndf84thqw4mhrac9jkkpua67ffgff8tlx | 0x124c7bcda93d57703abbb8fb82cad60f3baf2528 | 3 | 4 | 3585.08072 | -| terp1p042k62g3l49lspxan6ecupej70hxe6rcnd6ex | 0x0beaab69488fea5fc026ecf59c7039979f736743 | 3 | 4 | 3585.08072 | -| terp1p8ld60ajjp6ynwqjmr3y8k4q9gh4f72xz4ealz | 0x09fedd3fb2907449b812d8e243daa02a2f54f946 | 3 | 4 | 3585.08072 | -| terp1rcpr46kf4q8v55snya7nlva2kr5d0xwnlj3vc4 | 0x1e023aeac9a80eca5213277d3fb3aab0e8d799d3 | 3 | 4 | 3585.08072 | -| terp1cqrjc4unwud82cl5x6v2gugt544adkdgkp2rts | 0xc0072c5793771a7563f43698a4710ba56bd6d9a8 | 3 | 4 | 3585.08072 | -| terp1wwpxzdup4zdgtjxgf9aralg8x3sq4q9crecc0a | 0x7382613781a89a85c8c8497a3efd0734600a80b8 | 3 | 4 | 3585.08072 | -| terp15wjyna0jr47je05ywtwlyjssfe8lw9hspd9h74 | 0xa3a449f5f21d7d2cbe8472ddf24a104e4ff716f0 | 3 | 4 | 3585.08072 | -| terp1az05vjh3389wpw4j398d940aufnp6589xlqa9p | 0xe89f464af189cae0bab2894ed2d5fde2661d50e5 | 3 | 4 | 3585.08072 | -| terp1cv3zhuk5yg3vlecla86shdlf5laud497f3eu9u | 0xc3222bf2d42222cfe71fe9f50bb7e9a7fbc6d4be | 3 | 4 | 3585.08072 | -| terp1qmtf0fvuq7vgx0a9zpyg5a70l6u8074f4cp0p4 | 0x06d697a59c0798833fa510488a77cffeb877faa9 | 3 | 4 | 3585.08072 | -| terp19jd5qss3kxm6fcyp0lrxprtsmvtlt527gepyav | 0x2c9b404211b1b7a4e0817fc6608d70db17f5d15e | 3 | 4 | 3585.08072 | -| terp1etmg9qu4a3geg8vc8pdcvtzyl34hy834a78qx9 | 0xcaf6828395ec51941d98385b862c44fc6b721e35 | 3 | 4 | 3585.08072 | -| terp1cs4zmlql80ztqv68wc25vzd8x9pfhh7tg4s96t | 0xc42a2dfc1f3bc4b0334776154609a731429bdfcb | 3 | 4 | 3585.08072 | -| terp1aucz53phs8r9nrzaeqqkcskedsvs39yp2cc00m | 0xef302a443781c6598c5dc8016c42d96c19089481 | 3 | 4 | 3585.08072 | -| terp1mtgazcdug4zhknte4dr0urrkfvv566xgn40jwm | 0xdad1d161bc45457b4d79ab46fe0c764b194d68c8 | 3 | 4 | 3585.08072 | -| terp172emy2wp6ctpewfqfa5ylvmfk9sreq9ak0fd3y | 0xf2b3b229c1d6161cb9204f684fb369b1603c80bd | 3 | 4 | 3585.08072 | -| terp1j5q6075yu2h505wcr8nph460r87hvxz2sq3vze | 0x9501a7fa84e2af47d1d819e61bd74f19fd76184a | 3 | 4 | 3585.08072 | -| terp1fqh3xuvj0tu0d9us7cm5ek2cynry32y8d0e0kp | 0x482f1371927af8f69790f6374cd95824c648a887 | 3 | 4 | 3585.08072 | -| terp17ndwf4srk9gk2es220uy4l2uptwrkhyvwgvvk7 | 0xf4dae4d603b15165660a53f84afd5c0adc3b5c8c | 3 | 4 | 3585.08072 | -| terp13wngh0ys3m3f5hltaexkflp5xyk2tglxqmzmz4 | 0x8ba68bbc908ee29a5febee4d64fc34312ca5a3e6 | 3 | 4 | 3585.08072 | -| terp1m9gtnf8kvuvycwrtp3tnz9uyca3dtydkxkmf4f | 0xd950b9a4f667184c386b0c57311784c762d591b6 | 3 | 4 | 3585.08072 | -| terp1awd5nxqu3u00w3qjyknr4tzmf5pl6w6c80r83z | 0xeb9b49981c8f1ef7441225a63aac5b4d03fd3b58 | 3 | 4 | 3585.08072 | -| terp1qvq00wkw0pkfaxna5zf7l493r56tn8u0mj0pzw | 0x0300f7bace786c9e9a7da093efd4b11d34b99f8f | 3 | 4 | 3585.08072 | -| terp1y3qh62skpnw7h5hgevfx8cwhhxz0fzkp0m6cwr | 0x24417d2a160cddebd2e8cb1263e1d7b984f48ac1 | 3 | 4 | 3585.08072 | -| terp1pha6xlzacy2fhemx7wml6f0w8mdqslcmlw5sml | 0x0dfba37c5dc1149be766f3b7fd25ee3eda087f1b | 3 | 4 | 3585.08072 | -| terp1qmp7lq5534vlh24ve03zfcmy434ce5yq5qeu96 | 0x06c3ef82948d59fbaaaccbe224e364ac6b8cd080 | 3 | 4 | 3585.08072 | -| terp1q68m2xj73yjnzp80wqtnj9flp0shwe6ecy7mk3 | 0x068fb51a5e89253104ef701739153f0be1776759 | 3 | 4 | 3585.08072 | -| terp1qkf7yqurtdtwjv9vsvdvu3x5gd5c74f8s665m6 | 0x0593e203835b56e930ac831ace44d443698f5527 | 3 | 4 | 3585.08072 | -| terp1yjmhtcx3dm2kca88zsxsm3l90r5hzyrmq9mx8y | 0x24b775e0d16ed56c74e7140d0dc7e578e971107b | 3 | 4 | 3585.08072 | -| terp18qq0sznmkp4v0mg66srgc8ut6g2xyuf2ufrwdq | 0x3800f80a7bb06ac7ed1ad4068c1f8bd21462712a | 3 | 4 | 3585.08072 | -| terp1n9z8d2staa6y52rw8a0kd64jxg9x4wtv733j3n | 0x994476aa0bef744a286e3f5f66eab2320a6ab96c | 3 | 4 | 3585.08072 | -| terp1zyefueecz8cg7dnup9ya9taxt6kaeuffsemjan | 0x11329e673811f08f367c0949d2afa65eaddcf129 | 3 | 4 | 3585.08072 | -| terp18pvs64h7sqlgwptrswkvdwxqcwlf894m569rme | 0x38590d56fe803e87056383acc6b8c0c3be9396bb | 3 | 4 | 3585.08072 | -| terp1ahgprm7wd7xghyjf8nuy40zytw8qnykugwavm7 | 0xedd011efce6f8c8b92493cf84abc445b8e0992dc | 3 | 4 | 3585.08072 | -| terp1hv8f85v26clpyjyc39mh842x5jeand6dgzvumn | 0xbb0e93d18ad63e124898897773d546a4b3d9b74d | 3 | 4 | 3585.08072 | -| terp15hq94hh3wd5hr36xpxj6r2mp54xx5w7a75pjy5 | 0xa5c05adef1736971c74609a5a1ab61a54c6a3bdd | 3 | 4 | 3585.08072 | -| terp173gkv5t6we28ez5mmqqhy33ajlxwkc3khy9ucl | 0xf45166517a76547c8a9bd80172463d97cceb6236 | 3 | 4 | 3585.08072 | -| terp1slts5aw29sxutxnscsr4pgymgsl0k4u9javx5c | 0x87d70a75ca2c0dc59a70c40750a09b443efb5785 | 3 | 4 | 3585.08072 | -| terp10wrvamn7l7qxj06t92vd5gy7lu54x82sp4k7a7 | 0x7b86ceee7eff80693f4b2a98da209eff29531d50 | 3 | 4 | 3585.08072 | -| terp1uw5gfgskgyjhd7zl287uhgyrr6m5uq2yskde58 | 0xe3a884a216412576f85f51fdcba0831eb74e0144 | 3 | 4 | 3585.08072 | -| terp1vc9c4tatc5k3xysrdn95th7dzaevtx2thwy2p8 | 0x660b8aafabc52d1312036ccb45dfcd1772c5994b | 3 | 4 | 3585.08072 | -| terp1sksem54dp5wjkfdmzeypp7ks3nwqkv7hv2umm2 | 0x85a19dd2ad0d1d2b25bb164810fad08cdc0b33d7 | 3 | 4 | 3585.08072 | -| terp1fgsv86txvjscppjeg7zarq43ww52eagjw84pjq | 0x4a20c3e96664a18086594785d182b173a8acf512 | 3 | 4 | 3585.08072 | -| terp1p77fnms40ekpjal8ra9dgyk9lkh8fgz82yzu4v | 0x0fbc99ee157e6c1977e71f4ad412c5fdae74a047 | 3 | 4 | 3585.08072 | -| terp1wz36atwmgfhm2vjuad6dzlg0hhckykg0rjrtl4 | 0x70a3aeaddb426fb5325ceb74d17d0fbdf162590f | 3 | 4 | 3585.08072 | -| terp1q2v0az8xlalw548sfw3w4ek0ycs7nuyrfl9p5y | 0x0298fe88e6ff7eea54f04ba2eae6cf2621e9f083 | 3 | 4 | 3585.08072 | -| terp1shva4jxdtcafx3h2tkscnt8pxqzzm6xmtgzxxz | 0x85d9dac8cd5e3a9346ea5da189ace130042de8db | 3 | 4 | 3585.08072 | -| terp1z6ws2phavfrf9smrhl84w3utd8zjgukrua9472 | 0x169d0506fd624692c363bfcf57478b69c52472c3 | 3 | 4 | 3585.08072 | -| terp1suqmm6wdeumar7n8lqgldrpr49a5elmlafuv0g | 0x8701bde9cdcf37d1fa67f811f68c23a97b4cff7f | 3 | 4 | 3585.08072 | -| terp1pyxfsnxxjwuer47t4mwmg09htufluhevjgkc9r | 0x090c984cc693b991d7cbaeddb43cb75f13fe5f2c | 3 | 4 | 3585.08072 | -| terp1adke7xpvcwk2cs37j4wjn0c5whndfuz4h8rv5a | 0xeb6d9f182cc3acac423e955d29bf1475e6d4f055 | 3 | 4 | 3585.08072 | -| terp1rs5dzruq7sq2gw6xuaslwvv79z33kmh9djxch7 | 0x1c28d10f80f400a43b46e761f7319e28a31b6ee5 | 3 | 4 | 3585.08072 | -| terp1uxfyrqp0373qc5c4p4yc3py7l02sn03le0p07m | 0xe19241802f8fa20c53150d4988849efbd509be3f | 3 | 4 | 3585.08072 | -| terp1msk3pfrg09fs44h7gp3gk0v7kjnzkpgzpc7qgg | 0xdc2d10a46879530ad6fe40628b3d9eb4a62b0502 | 3 | 4 | 3585.08072 | -| terp1ta6p3u26num5lcvy6uycvsjx20j5wul5ag20lt | 0x5f7418f15a9f374fe184d70986424653e54773f4 | 3 | 4 | 3585.08072 | -| terp13qvdp3fadunue7ldy6gv0fjlmvwefu635z7qsj | 0x8818d0c53d6f27ccfbed2690c7a65fdb1d94f351 | 3 | 4 | 3585.08072 | -| terp1wdffkflw20f535n5u5hcf8pafxjlauzrfvl0xk | 0x73529b27ee53d348d274e52f849c3d49a5fef043 | 3 | 4 | 3585.08072 | -| terp16lh4zpcdv533uzuueavjhfdnf6c9l4n53d549n | 0xd7ef51070d65231e0b9ccf592ba5b34eb05fd674 | 3 | 4 | 3585.08072 | -| terp10dhc4aad9j95wuhf60xnqaem7wces8wc5mhzdt | 0x7b6f8af7ad2c8b4772e9d3cd30773bf3b1981dd8 | 3 | 4 | 3585.08072 | -| terp1mqhxc8st62n4xymtlwxf6duwfmeu4jdhemscmh | 0xd82e6c1e0bd2a753136bfb8c9d378e4ef3cac9b7 | 3 | 4 | 3585.08072 | -| terp1rq7cjzgzurjhsrldwjqhsq0kxclfpcfsd7xj2p | 0x183d890902e0e5780fed74817801f6363e90e130 | 3 | 4 | 3585.08072 | -| terp1qakkzzqu9dtls6hwvzavrnzwqxz8p2q5pvsymr | 0x076d61081c2b57f86aee60bac1cc4e018470a814 | 3 | 4 | 3585.08072 | -| terp1vjdg425rnzgqkuzwedrrp60xlcdnq8pne2v8al | 0x649a8aaa8398900b704ecb4630e9e6fe1b301c33 | 3 | 4 | 3585.08072 | -| terp1rjcauvwqr3pyzzmp60ln34wlcys32g4mj7kamq | 0x1cb1de31c01c42410b61d3ff38d5dfc1211522bb | 3 | 4 | 3585.08072 | -| terp1tdyxelsr896dnre603has7e2dm3du76yncfmvf | 0x5b486cfe033974d98f3a7c6fd87b2a6ee2de7b44 | 3 | 4 | 3585.08072 | -| terp1r8p9njh2crqppwtrdr23v0g5ygllw3thscg4t8 | 0x19c259caeac0c010b96368d5163d14223ff74577 | 3 | 4 | 3585.08072 | -| terp19m8lfslq0xzlmrd5fgar7wz4u2vfgcgrwmmdfh | 0x2ecff4c3e07985fd8db44a3a3f3855e298946103 | 3 | 4 | 3585.08072 | -| terp1h8uhs44zt4vvfcya7qsamwy2mz83kz6m3fg858 | 0xb9f97856a25d58c4e09df021ddb88ad88f1b0b5b | 3 | 4 | 3585.08072 | -| terp1g2qhryr4guy75y5wzz9jsu3xv4u29s496cc3tg | 0x42817190754709ea128e108b2872266578a2c2a5 | 3 | 4 | 3585.08072 | -| terp1fp6sl7xvnsrl6dkpav3sauaynkutfqf68h9rwt | 0x48750ff8cc9c07fd36c1eb230ef3a49db8b4813a | 3 | 4 | 3585.08072 | -| terp1f8jemewm7phdsvgk474q2u9luyag6ka8l2u908 | 0x49e59de5dbf06ed83116afaa0570bfe13a8d5ba7 | 3 | 4 | 3585.08072 | -| terp1275lpe66ph3lh6yw4sx2ssm84kx5kvsnj05am5 | 0x57a9f0e75a0de3fbe88eac0ca84367ad8d4b3213 | 3 | 4 | 3585.08072 | -| terp1wely0djkqsc9k8vp5at2qqmsp32mle7jjuqfsw | 0x767e47b65604305b1d81a756a003700c55bfe7d2 | 3 | 4 | 3585.08072 | -| terp178zmj2y4ezf0rf34lnqcca2ma276frplgq7jtm | 0xf1c5b92895c892f1a635fcc18c755beabda48c3f | 3 | 4 | 3585.08072 | -| terp1rtgzyrwkmvgjlwu46rjfmk9suxdalh9wrkjqe0 | 0x1ad0220dd6db112fbb95d0e49dd8b0e19bdfdcae | 3 | 4 | 3585.08072 | -| terp1weltgjqzp34tzr9t0skvarxsnyja79ndx4n9mn | 0x767eb448020c6ab10cab7c2cce8cd09925df166d | 3 | 4 | 3585.08072 | -| terp1c4375zl94wcql6qsfzaznw232v6uf4jrx8thel | 0xc563ea0be5abb00fe81048ba29b9515335c4d643 | 3 | 4 | 3585.08072 | -| terp1h8j40c4aehau5ge4kzh88ts2raz0wj9j66prcl | 0xb9e557e2bdcdfbca2335b0ae73ae0a1f44f748b2 | 3 | 4 | 3585.08072 | -| terp1tghx5gu9vvddvz8xhmf8gpdjdc0twfqy0j7ga2 | 0x5a2e6a2385631ad608e6bed27405b26e1eb72404 | 3 | 4 | 3585.08072 | -| terp1f6gmu6scdxawv6mwtpr5d86vgtaqv77d7eher3 | 0x4e91be6a1869bae66b6e5847469f4c42fa067bcd | 3 | 4 | 3585.08072 | -| terp1c8am5wny0aqm6tx5mnpr4fty64fwarnh2pk9ea | 0xc1fbba3a647f41bd2cd4dcc23aa564d552ee8e77 | 3 | 4 | 3585.08072 | -| terp1hzpz6c693mgyz9ah9qsz7galka3g7md5zh0t2l | 0xb8822d63458ed04117b728202f23bfb7628f6db4 | 3 | 4 | 3585.08072 | -| terp1v08ase6uxw390x33n240fdmr2j0d4fukvjpk0p | 0x63cfd8675c33a2579a319aaaf4b763549edaa796 | 3 | 4 | 3585.08072 | -| terp1pdhtyv8x9m04npzcv3lxj657pgpz0h5rvhc9cc | 0x0b6eb230e62edf598458647e696a9e0a0227de83 | 3 | 4 | 3585.08072 | -| terp1eywct5g4lwrah0hq2x8swmfw6k7t6tpx9s9rcm | 0xc91d85d115fb87dbbee0518f076d2ed5bcbd2c26 | 3 | 4 | 3585.08072 | -| terp146qde7qsncnhf5ugsnkwdsg3j8r6r3vr6hhj03 | 0xae80dcf8109e2774d38884ece6c11191c7a1c583 | 3 | 4 | 3585.08072 | -| terp1qgcy63swjp6wstj7l5vwfq6zyqelfz9yeutwdp | 0x02304d460e9074e82e5efd18e483422033f488a4 | 3 | 4 | 3585.08072 | -| terp10nms8tzln0z90tjhy682at9cg3444epe2g5a2r | 0x7cf703ac5f9bc457ae57268eaeacb8446b5ae439 | 3 | 4 | 3585.08072 | -| terp1k7ukytcg0swa205xrczulk870nzqpwl3rv92mk | 0xb7b9622f087c1dd53e861e05cfd8fe7cc400bbf1 | 3 | 4 | 3585.08072 | -| terp1d79lyxsp32er40s80pxxvrxmppz0ms3ejdsqye | 0x6f8bf21a018ab23abe07784c660cdb0844fdc239 | 3 | 4 | 3585.08072 | -| terp1tcnke2t7vqpsgsare03kl7avvklxnlmt74j2zx | 0x5e276ca97e60030443a3cbe36ffbac65be69ff6b | 3 | 4 | 3585.08072 | -| terp1ltwnf89gztzvnxkqwq6pcl6aqx9h6m885wuh9c | 0xfadd349ca812c4c99ac070341c7f5d018b7d6ce7 | 3 | 4 | 3585.08072 | -| terp1qjzfn29nuwy7ls7lh4uzgp0hcr43lukyweska8 | 0x048499a8b3e389efc3dfbd782405f7c0eb1ff2c4 | 3 | 4 | 3585.08072 | -| terp1pns06yyz4as40j4fg20dvrgpkfhvdmj57vt6l8 | 0x0ce0fd1082af6157caa9429ed60d01b26ec6ee54 | 3 | 4 | 3585.08072 | -| terp1llcwyadjkxgk8l58ycq88xdux963nr0z2z4qns | 0xfff0e275b2b19163fe8726007399bc3175198de2 | 3 | 4 | 3585.08072 | -| terp1vr47tf23rpkegf9yam9n44ngg9gwysq4qlayvp | 0x60ebe5a551186d9424a4eecb3ad6684150e24015 | 3 | 4 | 3585.08072 | -| terp1hqftz8jml0k6fuea5lvkajumetuzwmt33dcm9v | 0xb812b11e5bfbeda4f33da7d96ecb9bcaf8276d71 | 3 | 4 | 3585.08072 | -| terp1wdemegxtua5vmtmhvyag46ryuaqvynl2xlazxk | 0x7373bca0cbe768cdaf77613a8ae864e740c24fea | 3 | 4 | 3585.08072 | -| terp1aeu0vnskz0dhtfrzt39psz2mcf5ujdumpzsess | 0xee78f64e1613db75a4625c4a18095bc269c9379b | 3 | 4 | 3585.08072 | -| terp12zg424mqmwn27k7ua6l8fvprg5kq2dtkyzxcqc | 0x5091555760dba6af5bdceebe74b023452c053576 | 3 | 4 | 3585.08072 | -| terp1vz0pmc5ate2r5m46zkmnm8knxh5sqp9nsltu6x | 0x609e1de29d5e543a6eba15b73d9ed335e90004b3 | 3 | 4 | 3585.08072 | -| terp1jqpe8pwkjy52zkmumpauf4f83rvnf53jgawy8c | 0x90039385d69128a15b7cd87bc4d52788d934d232 | 3 | 4 | 3585.08072 | -| terp1s39yc8cp0avz0eu6afzv5dd8npg9860g4cj6zf | 0x844a4c1f017f5827e79aea44ca35a7985053e9e8 | 3 | 4 | 3585.08072 | -| terp1p5r7svgkv54eum94rsd2pq6c4d6yy22j0fc4vg | 0x0d07e83116652b9e6cb51c1aa08358ab74422952 | 3 | 4 | 3585.08072 | -| terp1u5yv55p2kl8v2x40slrw2ygexkyy62a3t20paw | 0xe508ca502ab7cec51aaf87c6e5111935884d2bb1 | 3 | 4 | 3585.08072 | -| terp1df5jpe95tr07qyq9j9fgy8t6uy8my3s5xas0d8 | 0x6a6920e4b458dfe010059152821d7ae10fb24614 | 3 | 4 | 3585.08072 | -| terp1avfjgaq45ppc35xh405dcv58sz9hcvyxthe7yc | 0xeb13247415a04388d0d7abe8dc3287808b7c3086 | 3 | 4 | 3585.08072 | -| terp1zq42hf8x8ftwg2mx0lfcg7k82az28exhhnd3wy | 0x102aaba4e63a56e42b667fd3847ac75744a3e4d7 | 3 | 4 | 3585.08072 | -| terp1tjhhf0n8ncw5a3ng6jrg5whhnnnq8rtcerdkzn | 0x5caf74be679e1d4ec668d4868a3af79ce6038d78 | 3 | 4 | 3585.08072 | -| terp1gvs8qxmh4vn0ws2kr59x96cyt2q67rcfdkh6du | 0x4320701b77ab26f741561d0a62eb045a81af0f09 | 3 | 4 | 3585.08072 | -| terp18lz8zmpr5hvl26umdvlrkprtnw8v32kjzqrs32 | 0x3fc4716c23a5d9f56b9b6b3e3b046b9b8ec8aad2 | 3 | 4 | 3585.08072 | -| terp1cnhevr6mqycltflt9pm50n72j8nlzzl9rvakep | 0xc4ef960f5b0131f5a7eb287747cfca91e7f10be5 | 3 | 4 | 3585.08072 | -| terp14q08cawxup8uulev7hk3qkuvzy6unwargmmdwy | 0xa81e7c75c6e04fce7f2cf5ed105b8c1135c9bba3 | 3 | 4 | 3585.08072 | -| terp1sh0sfynm8rcp5uljc9lf6u4a4zu58qflt05j8n | 0x85df04927b38f01a73f2c17e9d72bda8b943813f | 3 | 4 | 3585.08072 | -| terp160d4a6cqzwmhcn6u2u6nuxhry8mym4mwjwuc3c | 0xd3db5eeb0013b77c4f5c57353e1ae321f64dd76e | 3 | 4 | 3585.08072 | -| terp1x73yqgc29p9avpy02ummfts9ma2l0f4ttzv4hq | 0x37a240230a284bd6048f5737b4ae05df55f7a6ab | 3 | 4 | 3585.08072 | -| terp1nxxr844rhulz97093zajpxwwhtz889gatvuh8u | 0x998c33d6a3bf3e22f9e588bb2099cebac473951d | 3 | 4 | 3585.08072 | -| terp1kyghy4ewdnmdn4t8fdat0qk8scf9s26x08pnpm | 0xb11172572e6cf6d9d5674b7ab782c78612582b46 | 3 | 4 | 3585.08072 | -| terp1x00rq7pcecnup4zutrywdq0ez8g7ll5ltem28z | 0x33de307838ce27c0d45c58c8e681f911d1effe9f | 3 | 4 | 3585.08072 | -| terp1lxq7r5ks6satfsm50rdndcmcuk0ma7uzs2gvat | 0xf981e1d2d0d43ab4c37478db36e378e59fbefb82 | 3 | 4 | 3585.08072 | -| terp1s5qpcg7psh688nc0lfw9e9fjvf4nds0t8hm03l | 0x85001c23c185f473cf0ffa5c5c9532626b36c1eb | 3 | 4 | 3585.08072 | -| terp1tmvqf44xwx9vp4w6qhe52ppjm3p8wn0ahteham | 0x5ed804d6a6718ac0d5da05f3450432dc42774dfd | 3 | 4 | 3585.08072 | -| terp10xa2ghm73q7pr98yq84x0nxvl9zuytxhcjmfjy | 0x79baa45f7e883c1194e401ea67ccccf945c22cd7 | 3 | 4 | 3585.08072 | -| terp1z9cncndgzwx570ph2ws3r77rjjaa6wel3l6m4v | 0x11713c4da8138d4f3c3753a111fbc394bbdd3b3f | 3 | 4 | 3585.08072 | -| terp15chg349fduu643rz3crg8a6r9m5p5k2ks2nhrw | 0xa62e88d4a96f39aac4628e0683f7432ee81a5956 | 3 | 4 | 3585.08072 | -| terp1shqvsdrdxlmy4uvufnm8s55qy39sfqn30pc5zm | 0x85c0c8346d37f64af19c4cf6785280244b048271 | 3 | 4 | 3585.08072 | -| terp15vly6ur43g05eaxaykwzunayqvwkaut7vw5zdu | 0xa33e4d70758a1f4cf4dd259c2e4fa4031d6ef17e | 3 | 4 | 3585.08072 | -| terp186sgyvqhwf3tyu5e62yl8zsuuwdme3v8fhpwvr | 0x3ea08230177262b27299d289f38a1ce39bbcc587 | 3 | 4 | 3585.08072 | -| terp1lwmq30d8em4c5ck7529yuq35zhg9eu7x884rvp | 0xfbb608bda7ceeb8a62dea28a4e023415d05cf3c6 | 3 | 4 | 3585.08072 | -| terp1q2lv6t3ua89ujvt9y2hg7vurfx85rje3gkn6tc | 0x02becd2e3ce9cbc9316522ae8f3383498f41cb31 | 3 | 4 | 3585.08072 | -| terp10gtjvyn673wtznkhfy7scj8wcjkalhu24x02zw | 0x7a1726127af45cb14ed7493d0c48eec4addfdf8a | 3 | 4 | 3585.08072 | -| terp15d0pcsk0kqjedkftjddc8wku0phcc9ha905hth | 0xa35e1c42cfb02596d92b935b83badc786f8c16fd | 3 | 4 | 3585.08072 | -| terp1wnqrhqzhzm78xz7wch0j9d6g26r748x4xh9g5n | 0x74c03b805716fc730bcec5df22b7485687ea9cd5 | 3 | 4 | 3585.08072 | -| terp1m29d4yq5dvj43pzgjdv05xjpjcyu9wktlh90xf | 0xda8ada90146b255884489358fa1a419609c2bacb | 3 | 4 | 3585.08072 | -| terp1umlarqnc9ewgn79x58h0uhmjs3y7tks52gsytv | 0xe6ffd182782e5c89f8a6a1eefe5f728449e5da14 | 3 | 4 | 3585.08072 | -| terp1rswhap03fnmws6yj6z776va59ftptethmy2m9s | 0x1c1d7e85f14cf6e86892d0bded33b42a5615e577 | 3 | 4 | 3585.08072 | -| terp12xww92jenjfeh4tzyqvg0ep8ltjy20lx3z0y7a | 0x519ce2aa599c939bd562201887e427fae4453fe6 | 3 | 4 | 3585.08072 | -| terp1d2jkl23zeu7c0t3drgudckvzudmme52j036amx | 0x6aa56faa22cf3d87ae2d1a38dc5982e377bcd152 | 3 | 4 | 3585.08072 | -| terp15xz776pnc97fdmdahk0yp3aax6q0ryth2j3l4c | 0xa185ef6833c17c96edbdbd9e40c7bd3680f19177 | 3 | 4 | 3585.08072 | -| terp145usz8y938d4pj7uvpj2hqxhhwmf7zgh2es65q | 0xad39011c8589db50cbdc6064ab80d7bbb69f0917 | 3 | 4 | 3585.08072 | -| terp1cqrx0k9spu6mx4j6t3z93hl3e4ccudf85hxx58 | 0xc00667d8b00f35b3565a5c4458dff1cd718e3527 | 3 | 4 | 3585.08072 | -| terp1x7al2hahv9t35g62eevy40jmd73555alm8zweg | 0x37bbf55fb761571a234ace584abe5b6fa34a53bf | 3 | 4 | 3585.08072 | -| terp1d7c7a9ghludrxf3txx4w9t4knyhj9eve9em5ek | 0x6fb1ee9517ff1a33262b31aae2aeb6992f22e599 | 3 | 4 | 3585.08072 | -| terp1k6k6ha840xr7zsy9lzv5zz085ujatknu8qaajs | 0xb6adabf4f57987e14085f8994109e7a725d5da7c | 3 | 4 | 3585.08072 | -| terp16nfpawp6e7gu8z9yplturhx8t4tjz2hqfypld0 | 0xd4d21eb83acf91c388a40fd7c1dcc75d57212ae0 | 3 | 4 | 3585.08072 | -| terp1cr9ae5zerfef44r9xjspcj99wczd4save0jgu0 | 0xc0cbdcd0591a729ad46534a01c48a57604dac3ac | 3 | 4 | 3585.08072 | -| terp1p06re9ca7h4yumv0xeuhtggpv0anld9smd4hnn | 0x0bf43c971df5ea4e6d8f367975a10163fb3fb4b0 | 3 | 4 | 3585.08072 | -| terp198a5y6sltlt0kyza8s2j22jvczyg2jl48s8syf | 0x29fb426a1f5fd6fb105d3c15252a4cc088854bf5 | 3 | 4 | 3585.08072 | -| terp1g0rvajt3hv25j92gtnfl0yz7lq2z6dkxs279e8 | 0x43c6cec971bb154915485cd3f7905ef8142d36c6 | 3 | 4 | 3585.08072 | -| terp10yeqfq063zjzv9v3npluu4ppx6nan67u9d0q6l | 0x79320481fa88a4261591987fce542136a7d9ebdc | 3 | 4 | 3585.08072 | -| terp1u2x3p68jtzmyv60y0qcc2gqf8ld876dn9ymmvu | 0xe28d10e8f258b64669e478318520093fda7f69b3 | 3 | 4 | 3585.08072 | -| terp1kmk6qy44c9xpuhn5j58m5q3ut0neq4lj6cq2jt | 0xb6eda012b5c14c1e5e74950fba023c5be79057f2 | 3 | 4 | 3585.08072 | -| terp1pu4fql4ey7cgl0fwsr5cu452w6xemdmauvwzkr | 0x0f2a907eb927b08fbd2e80e98e568a768d9db77d | 3 | 4 | 3585.08072 | -| terp1769djzsftgdf0mrurzuq8gy5y965k2szhuhyw2 | 0xf68ad90a095a1a97ec7c18b803a09421754b2a02 | 3 | 4 | 3585.08072 | -| terp1jmjhz5q933mf5mnv29m2jse7xrenymxextxr28 | 0x96e57150058c769a6e6c5176a9433e30f3326cd9 | 3 | 4 | 3585.08072 | -| terp17a7f9dytnj2ap0mcuskal5jxa48uhflsj9thwg | 0xf77c92b48b9c95d0bf78e42ddfd246ed4fcba7f0 | 3 | 4 | 3585.08072 | -| terp1x0f4jg4mldhcdzzfuxvfwxelxu8law8aw2a228 | 0x33d35922bbfb6f868849e198971b3f370ffeb8fd | 3 | 4 | 3585.08072 | -| terp1yzyxswjknf8mf8dmkzqq3tkgtdlyqr36vcxeh4 | 0x2088683a569a4fb49dbbb08008aec85b7e400e3a | 3 | 4 | 3585.08072 | -| terp1aw2s90yp9ss7w8t3rxlszeatg4z7admel22sq9 | 0xeb9502bc812c21e71d7119bf0167ab4545eeb779 | 3 | 4 | 3585.08072 | -| terp13txz5wj2gykd6reu3tuha02h97qdj2f60qvsy8 | 0x8acc2a3a4a412cdd0f3c8af97ebd572f80d9293a | 3 | 4 | 3585.08072 | -| terp17v5yk92wzl0zw39cjhrpdhydqsrs0fxxllzwwe | 0xf3284b154e17de2744b895c616dc8d040707a4c6 | 3 | 4 | 3585.08072 | -| terp1gu9za5fek7ukwyvlydzdlxxcrmj6r36k6qxu0e | 0x470a2ed139b7b967119f2344df98d81ee5a1c756 | 3 | 4 | 3585.08072 | -| terp1g6muykh3vmqdn2wzr3uk442rsruq3kk0ls78ax | 0x46b7c25af166c0d9a9c21c796ad54380f808dacf | 3 | 4 | 3585.08072 | -| terp18lkn0jfc5wcc68dn99gvcnsk7vvf359ky9ffrv | 0x3fed37c938a3b18d1db32950cc4e16f31898d0b6 | 3 | 4 | 3585.08072 | -| terp1x8er5kjznr4yj5edwusm9q3alcrrgmndj8j5lc | 0x31f23a5a4298ea49532d7721b2823dfe06346e6d | 3 | 4 | 3585.08072 | -| terp1hx9hqwev5htc03gyecgs2fawvjett85twx9raq | 0xb98b703b2ca5d787c504ce110527ae64b2b59e8b | 3 | 4 | 3585.08072 | -| terp1td2r860h7hjldl477p27853dvaumzkpz83m4dc | 0x5b5433e9f7f5e5f6febef055e3d22d6779b15822 | 3 | 4 | 3585.08072 | -| terp1jpw3xdnl8wu5qpe2zv7gz43lrvdxw7dd7as88t | 0x905d13367f3bb940072a133c81563f1b1a6779ad | 3 | 4 | 3585.08072 | -| terp1ezrn90gegf925eu92wjmwyhv95fv7cr7hccsdt | 0xc88732bd19424aaa678553a5b712ec2d12cf607e | 3 | 4 | 3585.08072 | -| terp195mmfams3r4caek4twsqvk0w54cssy04pxedk8 | 0x2d37b4f77088eb8ee6d55ba00659eea5710811f5 | 3 | 4 | 3585.08072 | -| terp1amxluup4h0q7caf5w5gwnyn6cys9feq5jnes4q | 0xeecdfe7035bbc1ec75347510e9927ac12054e414 | 3 | 4 | 3585.08072 | -| terp1ezym9g32emjvcmh2687mcdf3n7fx3gmwxdvnkv | 0xc889b2a22acee4cc6eead1fdbc35319f9268a36e | 3 | 4 | 3585.08072 | -| terp1hh58uvyc49v380xwr0jf879xx6hzde0cm7ax3g | 0xbde87e3098a95913bcce1be493f8a636ae26e5f8 | 3 | 4 | 3585.08072 | -| terp12f4em927rzh0p528fd4wqxt3pw53fs2e8pa7yk | 0x526b9d955e18aef0d1474b6ae019710ba914c159 | 3 | 4 | 3585.08072 | -| terp12r08n7m539zw0xaqgvccpgu5x4h6qrrqfyu6mx | 0x50de79fb748944e79ba0433180a394356fa00c60 | 3 | 4 | 3585.08072 | -| terp1y9j5pz40fd2rs8g92mq9ax9rmzeas4um9w22vh | 0x2165408aaf4b54381d0556c05e98a3d8b3d8579b | 3 | 4 | 3585.08072 | -| terp1q8wn4rhh7tnwkdepefuhkrpm736x8ppax08h4l | 0x01dd3a8ef7f2e6eb3721ca797b0c3bf47463843d | 3 | 4 | 3585.08072 | -| terp1dt73q3mdrt5as8pr8h3njrlcpz5ckeyl94jgd6 | 0x6afd10476d1ae9d81c233de3390ff808a98b649f | 3 | 4 | 3585.08072 | -| terp1a6cum07wk5uxj2xj5etuh4jlyd5007gm0rkc45 | 0xeeb1cdbfceb5386928d2a657cbd65f2368f7f91b | 3 | 4 | 3585.08072 | -| terp1780mlsc5xdm73408qhrl3zhj6f25ss6ppatcf4 | 0xf1dfbfc3143377e8d5e705c7f88af2d255484341 | 3 | 4 | 3585.08072 | -| terp19weuxu4fy6deqdy3jh5vkuf5ecfcksdvprw404 | 0x2bb3c372a9269b90349195e8cb7134ce138b41ac | 3 | 4 | 3585.08072 | -| terp17l7fx537d7vkt44mtun7u7thw8gffs98vh2eu3 | 0xf7fc93523e6f9965d6bb5f27ee797771d094c0a7 | 3 | 4 | 3585.08072 | -| terp1wda5ht2z4fjr7fw9krv5aw0fms050adxr564x2 | 0x737b4bad42aa643f25c5b0d94eb9e9dc1f47f5a6 | 3 | 4 | 3585.08072 | -| terp1eqshqu5a8gug3cd96m98z945qfnpk08d52a0q6 | 0xc82170729d3a3888e1a5d6ca7116b402661b3ced | 3 | 4 | 3585.08072 | -| terp1h2wy680cctmar6ln48mtxngy54f240twxvj4nf | 0xba9c4d1df8c2f7d1ebf3a9f6b34d04a552aabd6e | 3 | 4 | 3585.08072 | -| terp1rc6qxewmppcecshv6qv2dmcph43uduta3j7g9v | 0x1e340365db08719c42ecd018a6ef01bd63c6f17d | 3 | 4 | 3585.08072 | -| terp1kgxt6nnk84kghfhf06n68g2lpvvwhgzx625yrr | 0xb20cbd4e763d6c8ba6e97ea7a3a15f0b18eba046 | 3 | 4 | 3585.08072 | -| terp1f6wc3k3w9h8mhxksywuzcyz27fkvtezj7gslye | 0x4e9d88da2e2dcfbb9ad023b82c104af26cc5e452 | 3 | 4 | 3585.08072 | -| terp1cj6ga3lj6ujdwftc0pag3ftxtcac7f2p9tndnr | 0xc4b48ec7f2d724d72578787a88a5665e3b8f2541 | 3 | 4 | 3585.08072 | -| terp1348atf8auxq7nnlr7ph295wjez9ad7ysax3tpg | 0x8d4fd5a4fde181e9cfe3f06ea2d1d2c88bd6f890 | 3 | 4 | 3585.08072 | -| terp12wlny90fdkyydn3sglvtn2wgcf0dcpmkvflz7y | 0x53bf3215e96d8846ce3047d8b9a9c8c25edc0776 | 3 | 4 | 3585.08072 | -| terp12f2s8mlx4j6vkxh79kaecxjrffvyxevte9vtmj | 0x525503efe6acb4cb1afe2dbb9c1a434a5843658b | 3 | 4 | 3585.08072 | -| terp1jms2z8hrh5lffm0kd82k3wwap8wlydmku9d3qj | 0x96e0a11ee3bd3e94edf669d568b9dd09ddf23776 | 3 | 4 | 3585.08072 | -| terp1rez3cerrmt37xjx7yv37mt3tf0nw4we2nl26gq | 0x1e451c6463dae3e348de2323edae2b4be6eabb2a | 3 | 4 | 3585.08072 | -| terp1hme9uzcc3uqfp3av3pygm9aj4trhkn2d3yvgcp | 0xbef25e0b188f0090c7ac88488d97b2aac77b4d4d | 3 | 4 | 3585.08072 | -| terp19ejxn3w5y4kqnzk9rwt9thaj04hej6svju7p8x | 0x2e6469c5d4256c098ac51b9655dfb27d6f996a0c | 3 | 4 | 3585.08072 | -| terp1ty9382e9sa7cky4fu3wln24e52hrstk5ax2uxa | 0x590b13ab25877d8b12a9e45df9aab9a2ae382ed4 | 3 | 4 | 3585.08072 | -| terp1q3a0mq0upw2wd4gw8rsy9zn6ywkwyh0ucr87ll | 0x047afd81fc0b94e6d50e38e0428a7a23ace25dfc | 3 | 4 | 3585.08072 | -| terp1c9d9hs5kaffvm4qam2k029l2mwlerqwscakq56 | 0xc15a5bc296ea52cdd41ddaacf517eadbbf9181d0 | 3 | 4 | 3585.08072 | -| terp1nn4qh43l99j70eselpw326xly3z2c065aeul3d | 0x9cea0bd63f2965e7e619f85d1568df2444ac3f54 | 3 | 4 | 3585.08072 | -| terp12w27g4ty9s8emp33u3wapqyljwunanet52pw0d | 0x5395e455642c0f9d8631e45dd0809f93b93ecf2b | 3 | 4 | 3585.08072 | -| terp1mgnm7vfaemcwuwgke9gx56k5tucxl8emftukza | 0xda27bf313dcef0ee3916c9506a6ad45f306f9f3b | 3 | 4 | 3585.08072 | -| terp1mfn58fw0drtz6y5cdxtkaxlgrftp5ssx9t2awa | 0xda6743a5cf68d62d129869976e9be81a561a4206 | 2 | 4 | 3585.08072 | -| terp1vnpg8zhyafzcw20m7vtu006uglx49wy87vujnp | 0x64c2838ae4ea458729fbf317c7bf5c47cd52b887 | 2 | 4 | 3585.08072 | -| terp1kcsvy2lx38dlr45xqhxevrdcclgqapqqdedt2s | 0xb620c22be689dbf1d68605cd960db8c7d00e8400 | 2 | 4 | 3585.08072 | -| terp1muysj2awtsn9uszwp2xwq84lxs2graf3k4hwdv | 0xdf09092bae5c265e404e0a8ce01ebf341481f531 | 2 | 4 | 3585.08072 | -| terp1m9cc2skhsv4nyt5jlgplgzxs9fx50sk9ver5hs | 0xd9718542d7832b322e92fa03f408d02a4d47c2c5 | 2 | 4 | 3585.08072 | -| terp1ndx0jqygs4y79d6ejx7pxdv5pu0gl6fyymlqzv | 0x9b4cf900888549e2b75991bc1335940f1e8fe924 | 2 | 4 | 3585.08072 | -| terp1mw5jd78yym62ssl6q9q7c34ksteanwhcaqfrh8 | 0xdba926f8e426f4a843fa0141ec46b682f3d9baf8 | 2 | 4 | 3585.08072 | -| terp14sgzns670uvjuwt3j80s0s6ms3sp86amadm3aa | 0xac1029c35e7f192e397191df07c35b846013ebbb | 2 | 4 | 3585.08072 | -| terp1ghdjw5ted04tpwamvvkyw44fd237z2a82y4csv | 0x45db2751796beab0bbbb632c4756a96aa3e12ba7 | 2 | 4 | 3585.08072 | -| terp14anvmgjh8empvjulsnj0k8pyc9sm3nj5hnjjdf | 0xaf66cda2573e76164b9f84e4fb1c24c161b8ce54 | 2 | 4 | 3585.08072 | -| terp1dmk5usnl5k0gfc66np28eqz5h9scs9caxl9mpu | 0x6eed4e427fa59e84e35a98547c8054b96188171d | 2 | 4 | 3585.08072 | -| terp1fw9fxrjek523hn65gl0km7k8qn6cgynjk08vpq | 0x4b8a930e59b5151bcf5447df6dfac704f5841272 | 2 | 4 | 3585.08072 | -| terp1ekvydn9j3uf7t77j3s4ufuhcwvadnnqqnzxu7c | 0xcd9846ccb28f13e5fbd28c2bc4f2f8733ad9cc00 | 2 | 4 | 3585.08072 | -| terp1yalm9t6uaqm63emu2cr77337ryvhjm2azpl6x2 | 0x277fb2af5ce837a8e77c5607ef463e1919796d5d | 2 | 4 | 3585.08072 | -| terp1crnpa26awkrdeq9tv5nfljz9fycnzcq562447j | 0xc0e61eab5d7586dc80ab65269fc8454931316014 | 2 | 4 | 3585.08072 | -| terp10995ldd0xpm2d2dqzfgvcg6e936ujrldzvuff0 | 0x794b4fb5af3076a6a9a01250cc23592c75c90fed | 2 | 4 | 3585.08072 | -| terp1kmmecgedh7a8zxuhvs395awnna3n4kx53ydryf | 0xb6f79c232dbfba711b9764225a75d39f633ad8d4 | 2 | 4 | 3585.08072 | -| terp1yjrxxz7q49geqmvs4y9d8pwh28q7djnxlqzcql | 0x2486630bc0a951906d90a90ad385d751c1e6ca66 | 2 | 4 | 3585.08072 | -| terp1cgqhgwdj4wyrc22fcgzxnvmyskmhpwqjv2hq30 | 0xc2017439b2ab883c2949c20469b36485b770b812 | 2 | 4 | 3585.08072 | -| terp103x972cnxpamp46yzegnmq8uu5j9x4yj5e50wk | 0x7c4c5f2b13307bb0d74416513d80fce524535492 | 2 | 4 | 3585.08072 | -| terp1jlpatmncq7w9204vqtcngf0gnefd6rkx90mwuc | 0x97c3d5ee78079c553eac02f13425e89e52dd0ec6 | 2 | 4 | 3585.08072 | -| terp1rwm26lxned7gdcd9pfd9a9t9vl28am7sv7vud9 | 0x1bb6ad7cd3cb7c86e1a50a5a5e956567d47eefd0 | 2 | 4 | 3585.08072 | -| terp1yhtssahlnpxdl9ay45qdqf7r7z3zer7486tgl2 | 0x25d70876ff984cdf97a4ad00d027c3f0a22c8fd5 | 2 | 4 | 3585.08072 | -| terp1e3rle07ade2clvuu7hh5myh9nzgyw6uxasv84z | 0xcc47fcbfdd6e558fb39cf5ef4d92e59890476b86 | 2 | 4 | 3585.08072 | -| terp1dlklwe8krn40rhfxtdww5vklud0y373yd2tm69 | 0x6fedf764f61ceaf1dd265b5cea32dfe35e48fa24 | 2 | 4 | 3585.08072 | -| terp1vc3x8g7wgcs9vulj8fc0ef4yudh070krtrfmsj | 0x662263a3ce46205673f23a70fca6a4e36eff3ec3 | 2 | 4 | 3585.08072 | -| terp14r9f5urgf6uetclt6aa2latycu0t2zx7qqyp4w | 0xa8ca9a70684eb995e3ebd77aaff564c71eb508de | 2 | 4 | 3585.08072 | -| terp1ucser0k3rast0wznf8x3fg7f0sjzu7vn6nlahp | 0xe62191bed11f60b7b85349cd14a3c97c242e7993 | 2 | 4 | 3585.08072 | -| terp1233w7yrcn8uq3yhnkh03n2ssx8cmyachleh0ay | 0x5462ef107899f80892f3b5df19aa1031f1b27717 | 2 | 4 | 3585.08072 | -| terp1qhnsfg5s8j8dv9kqjf3s3jywuwu5z2xrgrl6t6 | 0x05e704a2903c8ed616c0926308c88ee3b94128c3 | 2 | 4 | 3585.08072 | -| terp1jnh4ptavnsz9w2qn7dhm34nkadqqmcncduzhp6 | 0x94ef50afac9c04572813f36fb8d676eb400de278 | 2 | 4 | 3585.08072 | -| terp1mn8c3ywlrzayglf456yx52nzpmrs4clfur9yrm | 0xdccf8891df18ba447d35a6886a2a620ec70ae3e9 | 2 | 4 | 3585.08072 | -| terp1cyhvektxxngwahdkxn2enkus5ne7em0w4kcdme | 0xc12eccd96634d0eeddb634d599db90a4f3ecedee | 2 | 4 | 3585.08072 | -| terp17j3tnrcge3xxpmshng4gf7c43v33w78sl5uj5d | 0xf4a2b98f08cc4c60ee179a2a84fb158b231778f0 | 2 | 4 | 3585.08072 | -| terp1gutzu4ydqrkqgmszqhq6mklel9m0d3qck98we9 | 0x47162e548d00ec046e0205c1addbf9f976f6c418 | 2 | 4 | 3585.08072 | -| terp1l3cetqnwh2qr4mt3vxkjaue2sd74jhx5c3cw6n | 0xfc7195826eba803aed7161ad2ef32a837d595cd4 | 2 | 4 | 3585.08072 | -| terp1jd567d6hf2jcr0hw2c7d2aktmvlss0h77hz5a2 | 0x9369af37574aa581beee563cd576cbdb3f083efe | 2 | 4 | 3585.08072 | -| terp1z37peluj2x38k2l4qhzzmuf63yz637dcgzu7yg | 0x147c1cff9251a27b2bf505c42df13a8905a8f9b8 | 2 | 4 | 3585.08072 | -| terp1zq23nsd8rd230fnahde9vwgklfpca2edj2cwv0 | 0x101519c1a71b5517a67dbb72563916fa438eab2d | 2 | 4 | 3585.08072 | -| terp183accj2ugruptmz9tnesx5w02fnkgez58zlem8 | 0x3c7b8c495c40f815ec455cf30351cf5267646454 | 2 | 4 | 3585.08072 | -| terp1667cgjzzvjz2w3jjncka49tlr3vm9rl5jkg75k | 0xd6bd8448426484a746529e2dda957f1c59b28ff4 | 2 | 4 | 3585.08072 | -| terp1ca6n6jjhvdghyyas798atzvz5q52kp7nrvt523 | 0xc7753d4a5763517213b0f14fd58982a028ab07d3 | 2 | 4 | 3585.08072 | -| terp1ksz2cgx99q95awf4h3p097ukw55cgd2n0rzz7t | 0xb404ac20c5280b4eb935bc42f2fb967529843553 | 2 | 4 | 3585.08072 | -| terp1mhjnpckyqksqg0gyvanjmw4xcdaeg6ed3pgy3t | 0xdde530e2c405a0043d0467672dbaa6c37b946b2d | 2 | 4 | 3585.08072 | -| terp1e7x9vdttlm8mazhz3ulrp05fxd38j8t5rwcwff | 0xcf8c56356bfecfbe8ae28f3e30be893362791d74 | 2 | 4 | 3585.08072 | -| terp1v5fmw5m8q7rrv7fzl5ewlwmvux9t6vzpp6q8wc | 0x6513b753670786367922fd32efbb6ce18abd3041 | 2 | 4 | 3585.08072 | -| terp1r9uqfau2vcpnw3tt55yhl94cau5xhdcw9jx982 | 0x197804f78a660337456ba5097f96b8ef286bb70e | 2 | 4 | 3585.08072 | -| terp1una0x6rf7ztwk0lv232hnrcfza6njcy6ls6wvv | 0xe4faf36869f096eb3fec5455798f09177539609a | 2 | 4 | 3585.08072 | -| terp1840345pncnnudfk5x02s662vfzxu4670u89alp | 0x3d5f1ad033c4e7c6a6d433d50d694c488dcaebcf | 2 | 4 | 3585.08072 | -| terp1zjf3h9al8mhjdpd8f707yt6cjqcklfutdyxqpa | 0x14931b97bf3eef2685a74f9fe22f5890316fa78b | 2 | 4 | 3585.08072 | -| terp1lss2hl9vn6qg2rp54ryh4dlfu7zx5q8y6nakrj | 0xfc20abfcac9e80850c34a8c97ab7e9e7846a00e4 | 2 | 4 | 3585.08072 | -| terp17z9pe68mljjjzjjed8kzpd3wvpv8y30gkgwvan | 0xf08a1ce8fbfca5214a5969ec20b62e60587245e8 | 2 | 4 | 3585.08072 | -| terp15azp9yq4g8xz6zhtwyeaeqkx3dsf397st5geym | 0xa74412901541cc2d0aeb7133dc82c68b609897d0 | 2 | 4 | 3585.08072 | -| terp1g04p0jvjkujjy3dfvpcdgkjnzwamktp8km3ut9 | 0x43ea17c992b7252245a96070d45a5313bbbb2c27 | 2 | 4 | 3585.08072 | -| terp18dkeldqyw6knhl6d6u3ykzlh36pvhpgnhywl27 | 0x3b6d9fb40476ad3bff4dd7224b0bf78e82cb8513 | 2 | 4 | 3585.08072 | -| terp1fa8l79hyg7gr4dwwrdm42yz5tzk9quqxs03fgj | 0x4f4fff16e447903ab5ce1b7755105458ac507006 | 2 | 4 | 3585.08072 | -| terp1faql49nyatlz4xutve3as9rnh9prgh0k9dddqt | 0x4f41fa9664eafe2a9b8b6663d81473b942345df6 | 2 | 4 | 3585.08072 | -| terp1sxrfhkk52v04dv9x7w8kk66uv0d0k0cwuqwrmj | 0x81869bdad4531f56b0a6f38f6b6b5c63dafb3f0e | 2 | 4 | 3585.08072 | -| terp1sdkt8dxj2jv3ms7jm6agceylxnsmm3g0mjrrd9 | 0x836cb3b4d254991dc3d2deba8c649f34e1bdc50f | 2 | 4 | 3585.08072 | -| terp1mqww36yamxru32mrppvv3u0fmu283rp4ga7mnu | 0xd81ce8e89dd987c8ab630858c8f1e9df14788c35 | 2 | 4 | 3585.08072 | -| terp1v9h42m823lvj8r5v5zjkqnzcxhufue3w24dj24 | 0x616f556cea8fd9238e8ca0a5604c5835f89e662e | 2 | 4 | 3585.08072 | -| terp1lm5x440hda2x4pcdj06y7zqwvazckeqzptu5r6 | 0xfee86ad5f76f546a870d93f44f080e67458b6402 | 2 | 4 | 3585.08072 | -| terp166p8rpum60v4wse27hgm3fngwkzvy9a2h9r082 | 0xd68271879bd3d957432af5d1b8a6687584c217aa | 2 | 4 | 3585.08072 | -| terp1sgzl92e8d3udq650n05mrjt6wak8mkq9svpv78 | 0x8205f2ab276c78d06a8f9be9b1c97a776c7dd805 | 2 | 4 | 3585.08072 | -| terp1razsg3kxmdu2lsx486va808rrnw6dsy563xjgc | 0x1f450446c6db78afc0d53e99d3bce31cdda6c094 | 2 | 4 | 3585.08072 | -| terp1hz4cft7ham8ax0amhmdwv7yvhj57qsr4ph8suv | 0xb8ab84afd7eecfd33fbbbedae6788cbca9e04075 | 2 | 4 | 3585.08072 | -| terp1jcacrh6d4xapnxjugdng60aw6f364kcpnr9ter | 0x963b81df4da9ba199a5c43668d3faed263aadb01 | 2 | 4 | 3585.08072 | -| terp1djyjcswmus8w46nvdtrm68n05j7ewxnp0mqrj9 | 0x6c892c41dbe40eeaea6c6ac7bd1e6fa4bd971a61 | 2 | 4 | 3585.08072 | -| terp1lc375r8vnr255emlftfssttylzszql4hr60hfm | 0xfe23ea0cec98d54a677f4ad3082d64f8a0207eb7 | 2 | 4 | 3585.08072 | -| terp197tpp4y765u04dhgvhwrqn0tkrtnntprj7pa2n | 0x2f9610d49ed538fab6e865dc304debb0d739ac23 | 2 | 4 | 3585.08072 | -| terp1k3h6q8ktd2r2af0aylkjrpj7f4p98mytgaseed | 0xb46fa01ecb6a86aea5fd27ed21865e4d4253ec8b | 2 | 4 | 3585.08072 | -| terp17cg0h8j9eklh86rvful4w5ra2vnz0prafdykvw | 0xf610fb9e45cdbf73e86c4f3f57507d532627847d | 2 | 4 | 3585.08072 | -| terp1dkphp2r5f7zsumvd79swa0h4gh7vh8m9gxes9w | 0x6d8370a8744f850e6d8df160eebef545fccb9f65 | 2 | 4 | 3585.08072 | -| terp1y8eru3xpwczdlx57ggvhuxgxtq9cuv0jgaz732 | 0x21f23e44c17604df9a9e42197e1906580b8e31f2 | 2 | 4 | 3585.08072 | -| terp1qqqqqqqqqu3jm8satt394q9q6ur7jjjt7c82ef | 0x000000000007232d9e1d5ae25a80a0d707e94a4b | 2 | 4 | 3585.08072 | -| terp10t5y7azpqmeu2fmk9ux4yd8wsekwpe2q28m442 | 0x7ae84f744106f3c527762f0d5234ee866ce0e540 | 2 | 4 | 3585.08072 | -| terp1l7knfz480pyxaxyqsyg2helzhupkc5lklq6eru | 0xffad348aa778486e98808110abe7e2bf036c53f6 | 2 | 4 | 3585.08072 | -| terp1w0s8fgsudqr39nq5tl7mywd54u3upzpj0qfphm | 0x73e074a21c680712cc145ffdb239b4af23c08832 | 2 | 4 | 3585.08072 | -| terp1qcr98yq6mdresmkrsf0y4tn03evw74p6690xe5 | 0x060653901adb47986ec3825e4aae6f8e58ef543a | 2 | 4 | 3585.08072 | -| terp1wzyk93j8cajpvgpcvxfahyjepj0y6rrq34m5us | 0x708962c647c7641620386193db92590c9e4d0c60 | 2 | 4 | 3585.08072 | -| terp16yuclr53n5gyzgmqzfy7wv636h6htzl7m05atc | 0xd1398f8e919d104123601249e73351d5f5758bfe | 2 | 4 | 3585.08072 | -| terp16zmu66s4rgaa0fl4psv8v9kl7ywq38ny4v82kn | 0xd0b7cd6a151a3bd7a7f50c187616dff11c089e64 | 2 | 4 | 3585.08072 | -| terp1q63q0cnq438tzp6pmsvnp2j4fyza0cvnrqaj0k | 0x06a207e260ac4eb10741dc1930aa554905d7e193 | 2 | 4 | 3585.08072 | -| terp1cvprrqrudtddnmtt3echsysg4aku6skh47swzl | 0xc30231807c6adad9ed6b8e71781208af6dcd42d7 | 2 | 4 | 3585.08072 | -| terp1q7z8rwvhtd9dd7uyqnvneyjnatfdwdap79mm2c | 0x078471b9975b4ad6fb8404d93c9253ead2d737a1 | 2 | 4 | 3585.08072 | -| terp12ggef5j8utwz9x9mp4tqneqf66a2zr44wcasjk | 0x521194d247e2dc2298bb0d5609e409d6baa10eb5 | 2 | 4 | 3585.08072 | -| terp1ewlzsmz3r8enzp37cc204dmk763hnymg4xqv8e | 0xcbbe286c5119f331063ec614fab776f6a3799368 | 2 | 4 | 3585.08072 | -| terp1n89nxqmm60rz35xklvlk8uedtwjkcclnmn44uc | 0x99cb33037bd3c628d0d6fb3f63f32d5ba56c63f3 | 2 | 4 | 3585.08072 | -| terp1j0ndhhr0arnhq7n22slxe89zwmylujfn6e68f3 | 0x93e6dbdc6fe8e7707a6a543e6c9ca276c9fe4933 | 2 | 4 | 3585.08072 | -| terp1l0hta75dhzea74lgneeeh02xr088aygf45ckxv | 0xfbeebefa8db8b3df57e89e739bbd461bce7e9109 | 2 | 4 | 3585.08072 | -| terp10ckge25ffu9xxrrvwq9ywyhqpqeqj42a0f8ne4 | 0x7e2c8caa894f0a630c6c700a4712e0083209555d | 2 | 4 | 3585.08072 | -| terp1uxvnflzwpgh9sn6y97dtpc29ghwyjav0dfq8my | 0xe19934fc4e0a2e584f442f9ab0e14545dc49758f | 2 | 4 | 3585.08072 | -| terp1kv5753kdsprynn7qcg4y9vvgyx6knmsn02mj6n | 0xb329ea46cd804649cfc0c22a42b18821b569ee13 | 2 | 4 | 3585.08072 | -| terp1umzclrj9nljhptlltdrz9xgw596y7r3g6xf5ej | 0xe6c58f8e459fe570afff5b4622990ea1744f0e28 | 2 | 4 | 3585.08072 | -| terp13fm3uwwhss9drf5rq4krf5exyxmenxrd9a3nke | 0x8a771e39d7840ad1a683056c34d32621b799986d | 2 | 4 | 3585.08072 | -| terp1vk6wvn37d49p2hupj0kxprq6f853ffa08grjr8 | 0x65b4e64e3e6d4a155f8193ec608c1a49e914a7af | 2 | 4 | 3585.08072 | -| terp13ak6pstx9mnjhuanx0v5alqan6akz4thj6e00a | 0x8f6da0c1662ee72bf3b333d94efc1d9ebb615577 | 2 | 4 | 3585.08072 | -| terp1qd4me4r73fnvfu24je6t8xfa7ag8qeytv4pz6s | 0x036bbcd47e8a66c4f1559674b3993df75070648b | 2 | 4 | 3585.08072 | -| terp15ed9grtf6czqzasuc862mu305cm32636xjduff | 0xa65a540d69d60401761cc1f4adf22fa637156a3a | 2 | 4 | 3585.08072 | -| terp1h0sq3vckzgnhw48zlwg47xyzn9y5zvm37zyvsl | 0xbbe008b31612277754e2fb915f18829949413371 | 2 | 4 | 3585.08072 | -| terp158fg0y2krjetjvfl02hmy2uuham6wm24ncay5v | 0xa1d28791561cb2b9313f7aafb22b9cbf77a76d55 | 2 | 4 | 3585.08072 | -| terp1gqg29rr7tecwlrpen32e0x265jklln74a6jjp9 | 0x4010a28c7e5e70ef8c399c5597995aa4adffcfd5 | 2 | 4 | 3585.08072 | -| terp13yl5zxurexkhjx2kta7fq6tjuejphv593e28y5 | 0x893f411b83c9ad7919565f7c906972e6641bb285 | 2 | 4 | 3585.08072 | -| terp1qdutvz0me9xfrdx4s93ktwsrrafuy9mgywslnv | 0x0378b609fbc94c91b4d5816365ba031f53c21768 | 2 | 4 | 3585.08072 | -| terp1cps90t84cu3wjcgcf5ltw5we8wk604evd7ss7z | 0xc06057acf5c722e961184d3eb751d93bada7d72c | 2 | 4 | 3585.08072 | -| terp17wggydq5yky5llc2kv5vkp4xdkw20ldyxn8u6d | 0xf39082341425894fff0ab328cb06a66d9ca7fda4 | 2 | 4 | 3585.08072 | -| terp108j5uq6t6dyvhtqlmt3masmw8lwzmj8zjsk6kx | 0x79e54e034bd348cbac1fdae3bec36e3fdc2dc8e2 | 2 | 4 | 3585.08072 | -| terp1rdykvy208fayevsu0cws5uzk0g5lstp52l68h0 | 0x1b4966114f3a7a4cb21c7e1d0a70567a29f82c34 | 2 | 4 | 3585.08072 | -| terp1rx7g5c877dhw4s4xrl552c3jzer7zn59lmgj6h | 0x19bc8a60fef36eeac2a61fe94562321647e14e85 | 2 | 4 | 3585.08072 | -| terp1wzw3ky2nl9kce69lp3r4fdv7u99cvcuqy88f9d | 0x709d1b1153f96d8ce8bf0c4754b59ee14b866380 | 2 | 4 | 3585.08072 | -| terp17vmwj6mmd9n2pd42q4a9vpf2mr00nvymgwxkhm | 0xf336e96b7b6966a0b6aa057a56052ad8def9b09b | 2 | 4 | 3585.08072 | -| terp1czg6p20yhd8kyq6zhhz5pw82xfmkpvw9a4pu8h | 0xc091a0a9e4bb4f620342bdc540b8ea327760b1c5 | 2 | 4 | 3585.08072 | -| terp1skhznna98lflcvjvq2ruzn3s3w085puh5q75yf | 0x85ae29cfa53fd3fc324c0287c14e308b9e7a0797 | 2 | 4 | 3585.08072 | -| terp1fe7dx3vvm2w8tsuugz6rjvggzsd6pchh2n8wgj | 0x4e7cd3458cda9c75c39c40b4393108141ba0e2f7 | 2 | 4 | 3585.08072 | -| terp12ph8x08wuncdd7q46wkphzw6epqqwkgesazk3e | 0x506e733ceee4f0d6f815d3ac1b89dac840075919 | 2 | 4 | 3585.08072 | -| terp1yvecpjkvmqyhzshk80gl5f7jsyx3zakgkfscy7 | 0x233380caccd8097142f63bd1fa27d2810d1176c8 | 2 | 4 | 3585.08072 | -| terp19lw3lwuhj062cnj3e6m6w4nqxutedsv6w9n3fm | 0x2fdd1fbb9793f4ac4e51ceb7a75660371796c19a | 2 | 4 | 3585.08072 | -| terp19yujck2fjdqj7el6a28pflyljr89dzltkcmrp9 | 0x29392c594993412f67faea8e14fc9f90ce568beb | 2 | 4 | 3585.08072 | -| terp1fnxkzw0qm6rgmewj5tt2ztkuq5pjj3zkuafxlc | 0x4ccd6139e0de868de5d2a2d6a12edc0503294456 | 2 | 4 | 3585.08072 | -| terp17vq27lqejvd0yvadl25e4mh0hxa60yee20y2ts | 0xf300af7c19931af233adfaa99aeeefb9bba79339 | 2 | 4 | 3585.08072 | -| terp10p05zucvatna4cjw9v627czhjjn0q0urm745cj | 0x785f41730ceae7dae24e2b34af605794a6f03f83 | 2 | 4 | 3585.08072 | -| terp1jsj007h2u84wa89z4w72rr7k477zgemkh7z8yk | 0x9424f7faeae1eaee9ca2abbca18fd6afbc246776 | 2 | 4 | 3585.08072 | -| terp1tzx9uhh693x9uzahrwjp8zh6fs54z8p56xmkjs | 0x588c5e5efa2c4c5e0bb71ba4138afa4c29511c34 | 2 | 4 | 3585.08072 | -| terp1v99qj5f0430lqguaum5w4md2ejzpept9tvej0p | 0x614a09512fac5ff0239de6e8eaedaacc841c8565 | 2 | 4 | 3585.08072 | -| terp10xa62vwqcxl2rgkmpr7ud8044tqg8v3syq0425 | 0x79bba531c0c1bea1a2db08fdc69df5aac083b230 | 2 | 4 | 3585.08072 | -| terp1rzn2nym8gf3wzekywhkl4cy93aksg4hx0dxqnx | 0x18a6a993674262e166c475edfae0858f6d0456e6 | 2 | 4 | 3585.08072 | -| terp1j93mgv3ls9afqxkmrw9e0etx8yk95sj8mukcue | 0x9163b4323f817a901adb1b8b97e566392c5a4247 | 2 | 4 | 3585.08072 | -| terp1vfy6nspmzj9v6aeasp49pcd2nqlrf0s0j8nvgh | 0x6249a9c03b148acd773d806a50e1aa983e34be0f | 2 | 4 | 3585.08072 | -| terp1uuj6znr0v9jth4y58zezeqkv3vyveavy0plcvr | 0xe725a14c6f6164bbd49438b22c82cc8b08ccf584 | 2 | 4 | 3585.08072 | -| terp1kl53mqncn4ed58q4dpl9ks6xswhfnllq9z5ju5 | 0xb7e91d82789d72da1c15687e5b434683ae99ffe0 | 2 | 4 | 3585.08072 | -| terp1w20znz8mz0n7xz53hcc5pg2c28cjqq36vgpyd6 | 0x729e2988fb13e7e30a91be3140a15851f120023a | 2 | 4 | 3585.08072 | -| terp1y9d4ks0zyn7zg9cdu2eq50s0vxd0j6n36y7ge0 | 0x215b5b41e224fc24170de2b20a3e0f619af96a71 | 2 | 4 | 3585.08072 | -| terp1x45gh36820wqvtgh5dqjetx4szekxzv322ccjm | 0x35688bc74753dc062d17a3412cacd580b3630991 | 2 | 4 | 3585.08072 | -| terp19753vqtz8h588zulcscauertr7f4qjsscu7m4g | 0x2fa91601623de8738b9fc431de646b1f93504a10 | 2 | 4 | 3585.08072 | -| terp1e0tdnaqrucxjlqlq54yf8pnw5msq87l0ggqkmf | 0xcbd6d9f403e60d2f83e0a54893866ea6e003fbef | 2 | 4 | 3585.08072 | -| terp1atrp29p5cc73ql2a73klkrqcus08pdgwrvvqwt | 0xeac6151434c63d107d5df46dfb0c18e41e70b50e | 2 | 4 | 3585.08072 | -| terp15ed5f6zakrq29qxjqw5g4arqcvyvs6zzwqwrh6 | 0xa65b44e85db0c0a280d203a88af460c308c86842 | 2 | 4 | 3585.08072 | -| terp19ckll893masx2ar6v272u3qmx3fwd4c3z98lmx | 0x2e2dff9cb1df6065747a62bcae441b3452e6d711 | 2 | 4 | 3585.08072 | -| terp10a5y0txrar60xdtz35lwknwqz4ma08668qx29t | 0x7f6847acc3e8f4f335628d3eeb4dc01577d79f5a | 2 | 4 | 3585.08072 | -| terp10ft5hutkt6m6nzd9rprg956rxd56tr0kfpfwhk | 0x7a574bf1765eb7a989a5184682d3433369a58df6 | 2 | 4 | 3585.08072 | -| terp1e3gcd0gvxgsr5q2t4jh4y7nvqj02up2n5sxl7l | 0xcc5186bd0c32203a014bacaf527a6c049eae0553 | 2 | 4 | 3585.08072 | -| terp1j5357s6t0r552xv02v3w5r70epnhgp0ehktcd3 | 0x95234f434b78e945198f5322ea0fcfc8677405f9 | 2 | 4 | 3585.08072 | -| terp1f848005j8zadjhhav09ys7u8534402w7pcln2g | 0x49ea77be9238bad95efd63ca487b87a46b57a9de | 2 | 4 | 3585.08072 | -| terp1e8kryswd3l5uh66jp22veway0jqm6hgzjm9jzt | 0xc9ec3241cd8fe9cbeb520a94ccbba47c81bd5d02 | 2 | 4 | 3585.08072 | -| terp1p234p76g0a6afawkakfq5khqjg776phpnzuwp5 | 0x0aa350fb487f75d4f5d6ed920a5ae0923ded06e1 | 2 | 4 | 3585.08072 | -| terp1vf6dkd9c0m7pjlx9g7uxd7mqp90p9zp6ypgsyh | 0x6274db34b87efc197cc547b866fb60095e12883a | 2 | 4 | 3585.08072 | -| terp12pr4q4gldmxz3n6g3l04k4cf7q2kjkxrkqm3ft | 0x504750551f6ecc28cf488fdf5b5709f0156958c3 | 2 | 4 | 3585.08072 | -| terp1a3zkxzrc5khl3cpajnpajfvycqxml3n9x9ylrq | 0xec45630878a5aff8e03d94c3d92584c00dbfc665 | 2 | 4 | 3585.08072 | -| terp1az53vh8e5tzgz0vf3vnpg4pd9durpg2xdtdvmu | 0xe8a9165cf9a2c4813d898b2614542d2b7830a146 | 2 | 4 | 3585.08072 | -| terp14np29gehm9hze2f54z3ndp3vkctljkskc7gt8j | 0xacc2a2a337d96e2ca934a8a336862cb617f95a16 | 2 | 4 | 3585.08072 | -| terp1uwvyrasczjmj04gzpyyy8y8xej5p46ttyj3w57 | 0xe39841f61814b727d50209084390e6cca81ae96b | 2 | 4 | 3585.08072 | -| terp1nuyfatm28f3t65rvg29tpmyhc48q92l83r2fja | 0x9f089eaf6a3a62bd506c428ab0ec97c54e02abe7 | 2 | 4 | 3585.08072 | -| terp1zdcl8v8dppm43hlg39thpa99xfetf0hm89nk4y | 0x1371f3b0ed087758dfe8895770f4a53272b4befb | 2 | 4 | 3585.08072 | -| terp1smm70s9094kve2r3xc73en8ft59gsu63wt2q7s | 0x86f7e7c0af2d6ccca871363d1ccce95d0a887351 | 2 | 4 | 3585.08072 | -| terp132wg5hs03h4tacxelw437wksrz4qerm47lr7vd | 0x8a9c8a5e0f8deabee0d9fbab1f3ad018aa0c8f75 | 2 | 4 | 3585.08072 | -| terp1358nnzxcv36hhdpfkzxlj2uncxzmesh26h9jm3 | 0x8d0f3988d864757bb429b08df92b93c185bcc2ea | 2 | 4 | 3585.08072 | -| terp1nxzge8wt3gk7hfqg4wztuvlvuqxuhq5n48rtm9 | 0x99848c9dcb8a2deba408ab84be33ece00dcb8293 | 2 | 4 | 3585.08072 | -| terp173dr07zca9c9fpq7rusj36ux44ejjec8lq985e | 0xf45a37f858e97054841e1f2128eb86ad73296707 | 2 | 4 | 3585.08072 | -| terp12vhy5rglxerhy2guxngk4c6g4sgxqp3h7flkq8 | 0x532e4a0d1f364772291c34d16ae348ac10600637 | 2 | 4 | 3585.08072 | -| terp1lahpz04u3rr2336mtzqt9yr4pgugqweaxcf5ja | 0xff6e113ebc88c6a8c75b5880b290750a38803b3d | 2 | 4 | 3585.08072 | -| terp1fsh5vf40j8h3wmm7hl2w33zt0qxsyapn4lxmgt | 0x4c2f4626af91ef176f7ebfd4e8c44b780d027433 | 2 | 4 | 3585.08072 | -| terp1sweqwx234sajm9q976vyfgclphnymegyzaem8z | 0x83b2071951ac3b2d9405f69844a31f0de64de504 | 2 | 4 | 3585.08072 | -| terp199fm8md3p4m4pys0z9n8592psvpy7g3jmzqfkf | 0x2953b3edb10d7750920f11667a154183024f2232 | 2 | 4 | 3585.08072 | -| terp17gesta9tgy250p3d25dq0jd4cjxzp2zw8j8n6m | 0xf23305f4ab411547862d551a07c9b5c48c20a84e | 2 | 4 | 3585.08072 | -| terp1ejza8dlmxqwngll5kcfeu3l45edqndcf3vnn9x | 0xcc85d3b7fb301d347ff4b6139e47f5a65a09b709 | 2 | 4 | 3585.08072 | -| terp1p7jz3qew9zweafdld8rak776lxf8m7m43g4cw2 | 0x0fa428832e289d9ea5bf69c7db7bdaf9927dfb75 | 2 | 4 | 3585.08072 | -| terp1ndjq36rskd4qv9k6ugx03tkm6gwuecd3v7686k | 0x9b6408e870b36a0616dae20cf8aedbd21dcce1b1 | 2 | 4 | 3585.08072 | -| terp190afdh7596vf6aa7zvkmkyz24w9q2qk9p2h5tw | 0x2bfa96dfd42e989d77be132dbb104aab8a0502c5 | 2 | 4 | 3585.08072 | -| terp18j8w7cnn4edsh8a6aly7mmk7c62nk2twpefhe7 | 0x3c8eef6273ae5b0b9fbaefc9edeedec6953b296e | 2 | 4 | 3585.08072 | -| terp1fnvsna4pgszwu675dyraa6gz9jktn83uk9dvr9 | 0x4cd909f6a14404ee6bd46907dee9022cacb99e3c | 2 | 4 | 3585.08072 | -| terp1sdjmzruv6te8e346l7vka8uzqanlsxc9us3ayp | 0x8365b10f8cd2f27cc6baff996e9f820767f81b05 | 2 | 4 | 3585.08072 | -| terp1k5c3rjjq23mj6vc47xkz200vp6eehts7adu70y | 0xb53111ca4054772d3315f1ac253dec0eb39bae1e | 2 | 4 | 3585.08072 | -| terp1ydgeye6tp9ylu3gpj5z6xzj3ckjnqn2cfhvds5 | 0x235192674b0949fe45019505a30a51c5a5304d58 | 2 | 4 | 3585.08072 | -| terp1qrs9cyzf4xt22c2kzxtxdnul4g424f5nrpu2k7 | 0x00e05c1049a996a56156119666cf9faa2aaaa693 | 2 | 4 | 3585.08072 | -| terp1xt405cz3adf9ldxp5gkmuh3qxh2sfu08t7v8u3 | 0x32eafa6051eb525fb4c1a22dbe5e2035d504f1e7 | 2 | 4 | 3585.08072 | -| terp17csc699fqy7kmpvklnvw3p9ja93j8luzw0f4h7 | 0xf6218d14a9013d6d8596fcd8e884b2e96323ff82 | 2 | 4 | 3585.08072 | -| terp1k6y7mamgs0ygqgawepmlw24u8gn25tdw3dv7xh | 0xb689edf76883c88023aec877f72abc3a26aa2dae | 2 | 4 | 3585.08072 | -| terp1t98a34dud4a6jehv4tafgh06vfg69323vpjw2y | 0x594fd8d5bc6d7ba966ecaafa945dfa6251a2c551 | 2 | 4 | 3585.08072 | -| terp13l0skt0dls75qj9306406n7nkh8ah4p8gg505x | 0x8fdf0b2dedfc3d4048b17eaafd4fd3b5cfdbd427 | 2 | 4 | 3585.08072 | -| terp13qv377ky6g6hz8tertq59ae0xtrhn9r5cxnxse | 0x88191f7ac4d235711d791ac142f72f32c7799474 | 2 | 4 | 3585.08072 | -| terp1a694hawfk2wds6enjv8wx630w4jf6yj4rv8e6f | 0xee8b5bf5c9b29cd86b33930ee36a2f75649d1255 | 2 | 4 | 3585.08072 | -| terp1zv9tdfevdcp66aeh9lh0u8q7rr6x8f0gfjvkq9 | 0x130ab6a72c6e03ad77372feefe1c1e18f463a5e8 | 2 | 4 | 3585.08072 | -| terp1p4zrdp2ul0p684dda03mku4tdddux7p3kfl8kt | 0x0d4436855cfbc3a3d5adebe3bb72ab6b5bc37831 | 2 | 4 | 3585.08072 | -| terp1vdx82efqh0cgtmwlvmwyzm8vdlgpdkcp8rcwju | 0x634c756520bbf085eddf66dc416cec6fd016db01 | 2 | 4 | 3585.08072 | -| terp1a4mah9hlfmmwfjg4rm9lqntwwmzrc20gcecq4t | 0xed77db96ff4ef6e4c9151ecbf04d6e76c43c29e8 | 2 | 4 | 3585.08072 | -| terp1mhppu0leu5l3hudqpf950addpsxesh9kzxg9jq | 0xddc21e3ff9e53f1bf1a00a4b47f5ad0c0d985cb6 | 2 | 4 | 3585.08072 | -| terp1evvqwd423yen6c36d6726g0n4gct2vktmh6ytv | 0xcb180736aa89333d623a6ebcad21f3aa30b532cb | 2 | 4 | 3585.08072 | -| terp1x7nmkh5fjm7ckj6eg7jden88m2rnl6ktf2w4n3 | 0x37a7bb5e8996fd8b4b5947a4dccce7da873feacb | 2 | 4 | 3585.08072 | -| terp1ahpqc5t658kwfq7srrcekzj884cdaydscmcctx | 0xedc20c517aa1ece483d018f19b0a473d70de91b0 | 2 | 4 | 3585.08072 | -| terp1zp6pd48awglvec0v09m3mz2w66yqey25z6hlw6 | 0x107416d4fd723ecce1ec79771d894ed6880c9154 | 2 | 4 | 3585.08072 | -| terp1lqlhlksca5ssp26mpcjd6j0gr6k5k34p3umkxe | 0xf83f7fda18ed2100ab5b0e24dd49e81ead4b46a1 | 2 | 4 | 3585.08072 | -| terp1x444qf28pnywuy6u2xwm4499x6w6pd9gswzaw7 | 0x356b5025470cc8ee135c519dbad4a5369da0b4a8 | 2 | 4 | 3585.08072 | -| terp1qhmfaz6sx97h5afkajzyc8x8v0d2nn3vd6hdj2 | 0x05f69e8b50317d7a7536ec844c1cc763daa9ce2c | 2 | 4 | 3585.08072 | -| terp10ws7s090q5x6z7w9qa6a9khl9k52engx896pux | 0x7ba1e83caf050da179c50775d2daff2da8accd06 | 2 | 4 | 3585.08072 | -| terp1uahfm5yqn5qj9y3kx95ehe4vull5zq4mh3ps9g | 0xe76e9dd0809d0122923631699be6ace7ff4102bb | 2 | 4 | 3585.08072 | -| terp1j0xs8j9248nwe3mdnpsymhgx5erpatwpwcded8 | 0x93cd03c8aaa9e6ecc76d98604ddd06a6461eadc1 | 2 | 4 | 3585.08072 | -| terp1quwvh7qxfuugsl0l28qshvga5ccgj8cg4thqfl | 0x071ccbf8064f38887dff51c10bb11da630891f08 | 2 | 4 | 3585.08072 | -| terp17agc4r2pvv95yum2mvlp9jyu5lzne250jrdrd4 | 0xf7518a8d41630b42736adb3e12c89ca7c53caa8f | 2 | 4 | 3585.08072 | -| terp1elx4vl30em085r87amyuhpumcqjcqg398ph0hx | 0xcfcd567e2fcede7a0cfeeec9cb879bc025802225 | 2 | 4 | 3585.08072 | -| terp1z6dcu4uymu2sur0vpunqtxe6rqnjaa3fgste8w | 0x169b8e5784df150e0dec0f26059b3a18272ef629 | 2 | 4 | 3585.08072 | -| terp1g8neace2cff4rzjhd4k5kav98ja62dhnzfj4ph | 0x41e79ee32ac253518a576d6d4b75853cbba536f3 | 2 | 4 | 3585.08072 | -| terp1exjyeveytl4fjt52uraydda82kke56e775m7um | 0xc9a44cb3245fea992e8ae0fa46b7a755ad9a6b3e | 2 | 4 | 3585.08072 | -| terp1hfdn6k8j8n36qsgm8f4gtvt7z0f8n5chx7rqz3 | 0xba5b3d58f23ce3a0411b3a6a85b17e13d279d317 | 2 | 4 | 3585.08072 | -| terp1jrd56j87tdu2qu389mh4sycwe63cljk37ykgac | 0x90db4d48fe5b78a072272eef58130ecea38fcad1 | 2 | 4 | 3585.08072 | -| terp1l7wxc3rjyvd948yekyune9h4pkke7h0cqqh0gt | 0xff9c6c4472231a5a9c99b1393c96f50dad9f5df8 | 2 | 4 | 3585.08072 | -| terp1krcm9cgl7la2cpl0dxx83vd8jmvsyu2wdeynq3 | 0xb0f1b2e11ff7faac07ef698c78b1a796d902714e | 2 | 4 | 3585.08072 | -| terp1qn4732mmgau4l949742zsqdt5n2e3azclpxsej | 0x04ebe8ab7b47795f96a5f5542801aba4d598f458 | 2 | 4 | 3585.08072 | -| terp1hunq6kcagk9jznd0tupzww2yzatkgu634hgdnj | 0xbf260d5b1d458b214daf5f022739441757647351 | 2 | 4 | 3585.08072 | -| terp1e9qv3yxpk326su4w3tz3q9knq07kmchu5mreve | 0xc940c890c1b455a872ae8ac51016d303fd6de2fc | 2 | 4 | 3585.08072 | -| terp1vwclq52vvqx0655p208rakyjpqmcm9tjste28u | 0x63b1f0514c600cfd528153ce3ed89208378d9572 | 2 | 4 | 3585.08072 | -| terp12c89zchshz2vy64f0l0ly66cwyp0nag6t44hd9 | 0x560e5162f0b894c26aa97fdff26b587102f9f51a | 2 | 4 | 3585.08072 | -| terp1qrqsgsm53gnsvsn7w4jc3007x3dv2s8f465u30 | 0x00c10443748a2706427e756588bdfe345ac540e9 | 2 | 4 | 3585.08072 | -| terp14s98v4446ch86493r79499xwptqmkugcmf9lne | 0xac0a7656b5d62e7d54b11f8b5294ce0ac1bb7118 | 2 | 4 | 3585.08072 | -| terp1mv69lcqq5gu8vpvw4d3jy4u7dz8qu6h77j2jhy | 0xdb345fe000a23876058eab6322579e688e0e6afe | 2 | 4 | 3585.08072 | -| terp1xujmruhlau8csgjgeklxnq9lgx9pdk8lj0x6dd | 0x3725b1f2ffef0f882248cdbe6980bf418a16d8ff | 2 | 4 | 3585.08072 | -| terp1hdqkgpqmr8rmruhdyp8ncjlz98ganlxufevk2a | 0xbb4164041b19c7b1f2ed204f3c4be229d1d9fcdc | 2 | 4 | 3585.08072 | -| terp1hl3983skvqs7vfvzvh2pve3k70yjr9fnadg4cq | 0xbfe253c6166021e6258265d4166636f3c9219533 | 2 | 4 | 3585.08072 | -| terp1jlj2y4hcl3606fcctep0np6tll2p5nnqzjgfy8 | 0x97e4a256f8fc74fd27185e42f9874bffd41a4e60 | 2 | 4 | 3585.08072 | -| terp1mfnkpflnte8np596258vy0gs0w7e8rv7f6af0a | 0xda6760a7f35e4f30d0ba550ec23d107bbd938d9e | 2 | 4 | 3585.08072 | -| terp1yt4jl2rmu7sqwes07j8tnev7l8cg8h3zgj0vep | 0x22eb2fa87be7a007660ff48eb9e59ef9f083de22 | 2 | 4 | 3585.08072 | -| terp1x8ppn9t9azxd7fv7hdh38vxe77hswtx33aq8j6 | 0x31c2199565e88cdf259ebb6f13b0d9f7af072cd1 | 2 | 4 | 3585.08072 | -| terp1x035uj57vuvy98d00yl74f3uejxwr7k3n5uxpy | 0x33e34e4a9e6718429daf793feaa63ccc8ce1fad1 | 2 | 4 | 3585.08072 | -| terp1u53m6rur240g5j8ylwzn8wqwx99ele3lql3pnn | 0xe523bd0f83555e8a48e4fb8533b80e314b9fe63f | 2 | 4 | 3585.08072 | -| terp1ekh7g5xwnwhua4n6ncwj6qmd4fwartph58pe63 | 0xcdafe450ce9bafced67a9e1d2d036daa5dd1ac37 | 2 | 4 | 3585.08072 | -| terp1y2mecw9lmx9rqn5572pwzvca29wkr4ea3l5s7t | 0x22b79c38bfd98a304e94f282e1331d515d61d73d | 2 | 4 | 3585.08072 | -| terp15kwy9x7f93agkpdwdzsx28fkyfy76eulcracuv | 0xa59c429bc92c7a8b05ae68a0651d362249ed679f | 2 | 4 | 3585.08072 | -| terp1lhxgwd72rj3tqwds75cxhjna93dujpqz24zxyk | 0xfdcc8737ca1ca2b039b0f5306bca7d2c5bc90402 | 2 | 4 | 3585.08072 | -| terp1xwpwrvsy2tz5855nmxgfth8cnzrz0u0t4vzdz9 | 0x3382e1b20452c543d293d99095dcf8988627f1eb | 2 | 4 | 3585.08072 | -| terp105lfdp5g7q85v459d4ktx948an2duj5q5c5zam | 0x7d3e968688f00f4656856d6cb316a7ecd4de4a80 | 2 | 4 | 3585.08072 | -| terp1xlareuhapg6czg9lux4rkn00tnuhz8rrcsvzky | 0x37fa3cf2fd0a358120bfe1aa3b4def5cf9711c63 | 2 | 4 | 3585.08072 | -| terp1t2qd8hk9slfy9urdhy4y8xrx3dn0rq7xl3j50z | 0x5a80d3dec587d242f06db92a4398668b66f183c6 | 2 | 4 | 3585.08072 | -| terp1t5tseeyvvmsxknnx7nfgukxcvum4xcft3fu577 | 0x5d170ce48c66e06b4e66f4d28e58d8673753612b | 2 | 4 | 3585.08072 | -| terp1dyukj5gx79u3sf2w9xtqujfqczd6sa3ygmgz6y | 0x6939695106f17918254e29960e4920c09ba87624 | 2 | 4 | 3585.08072 | -| terp15ahgqgykzpyq4t7cspazqvj702grpm24xkqgsc | 0xa76e80209610480aafd8807a20325e7a9030ed55 | 2 | 4 | 3585.08072 | -| terp1c5eamm5y8yl2g94z79ywlc7fuarwlrcdqw6fx3 | 0xc533ddee84393ea416a2f148efe3c9e746ef8f0d | 2 | 4 | 3585.08072 | -| terp1hjv0ehze7axnjdch32c0l33frutwsqxq4c4jvy | 0xbc98fcdc59f74d3937178ab0ffc6291f16e800c0 | 2 | 4 | 3585.08072 | -| terp1g5ykyszs4y7j7dap4l2yfsreq7uqxx4sk90upm | 0x4509624050a93d2f37a1afd444c07907b8031ab0 | 2 | 4 | 3585.08072 | -| terp13u2qs2w99vrtahffac7cmuqcqdve9qzautgx4k | 0x8f140829c52b06bedd29ee3d8df018035992805d | 2 | 4 | 3585.08072 | -| terp1w08lslwucstsygzm7fv80383370p9jv8zx5qd0 | 0x73cff87ddcc41702205bf25877c4f18f9e12c987 | 2 | 4 | 3585.08072 | -| terp1vnvyfn9298jkwjanrwmjr33qcczhjh0uee7ka7 | 0x64d844ccaa29e5674bb31bb721c620c605795dfc | 2 | 4 | 3585.08072 | -| terp1ea960c2cm7mkhgn5kaxmfnxtuum9kjrumz99u3 | 0xcf4ba7e158dfb76ba274b74db4cccbe7365b487c | 2 | 4 | 3585.08072 | -| terp1vfwde402cvtpgvgyae9w9546wc6l9gh3k3294d | 0x625cdcd5eac316143104ee4ae2d2ba7635f2a2f1 | 2 | 4 | 3585.08072 | -| terp1uvyanc25l8k5z4jt887w5a6z5yhjzwyejuh5sh | 0xe309d9e154f9ed41564b39fcea7742a12f213899 | 2 | 4 | 3585.08072 | -| terp1wpdkj8dsku0jf6awlnrkwt0c3e9seeq5zevm6t | 0x705b691db0b71f24ebaefcc7672df88e4b0ce414 | 2 | 4 | 3585.08072 | -| terp1q369p73rd7xfdq9u46ql7gd3fq8gqra3sf3p0m | 0x047450fa236f8c9680bcae81ff21b1480e800fb1 | 2 | 4 | 3585.08072 | -| terp1m7wt5u9fwez842jvzwju2n6ayyrlxvje3zakm7 | 0xdf9cba70a976447aaa4c13a5c54f5d2107f33259 | 2 | 4 | 3585.08072 | -| terp15mlrwyqdrhmyxtjtna7kc92ynhja9xnuw2wx2t | 0xa6fe37100d1df6432e4b9f7d6c15449de5d29a7c | 2 | 4 | 3585.08072 | -| terp1fg3h45yp3hac7f6vulzuyfuypj6g65x3tm7mfu | 0x4a237ad0818dfb8f274ce7c5c227840cb48d50d1 | 2 | 4 | 3585.08072 | -| terp1jln6xgfeezfvpu8wn4fgps8e08ctfywse64660 | 0x97e7a32139c892c0f0ee9d5280c0f979f0b491d0 | 2 | 4 | 3585.08072 | -| terp1yt3dhseuy2sz4dltl3xjl5xt205tm58aqt3w2d | 0x22e2dbc33c22a02ab7ebfc4d2fd0cb53e8bdd0fd | 2 | 4 | 3585.08072 | -| terp1vzulau7t47fgl3pqp0eep6fecq3nqn5yfsrfut | 0x60b9fef3cbaf928fc4200bf390e939c023304e84 | 2 | 4 | 3585.08072 | -| terp14cx9wuykn4kjpp7hctysymcg6fpw20f4j8s5hx | 0xae0c5770969d6d2087d7c2c9026f08d242e53d35 | 2 | 4 | 3585.08072 | -| terp15p8a6ndn4nk4jjfpds50m2vzwp9pudeetndjea | 0xa04fdd4db3aced5949216c28fda982704a1e3739 | 2 | 4 | 3585.08072 | -| terp1s2j7gj8d7j5d2szjdh7cq46940uw48053tjsqq | 0x82a5e448edf4a8d540526dfd805745abf8ea9df4 | 2 | 4 | 3585.08072 | -| terp1300h2zq47v9zqkuj70kwka6kv2me65fzhvhur5 | 0x8bdf750815f30a205b92f3eceb775662b79d5122 | 2 | 4 | 3585.08072 | -| terp193tu3rcw8v8q2yeassexte2khr08jlu79j99cd | 0x2c57c88f0e3b0e05133d843265e556b8de797f9e | 2 | 4 | 3585.08072 | -| terp130l2vt88d5hr026l5u4dqrmzvxd59sdw3fqen0 | 0x8bfea62ce76d2e37ab5fa72ad00f62619b42c1ae | 2 | 4 | 3585.08072 | -| terp1mmd9csvejvpc2vr5r6z74ejag6vkap7ha0ajcl | 0xdeda5c419993038530741e85eae65d46996e87d7 | 2 | 4 | 3585.08072 | -| terp1tc6rdzg0qsptx3wvkdc3k8uaayq7r9karkpqur | 0x5e3436890f0402b345ccb3711b1f9de901e196dd | 2 | 4 | 3585.08072 | -| terp1auj0h8p8hnauna39u6p0jtszrqt30l23t743a9 | 0xef24fb9c27bcfbc9f625e682f92e02181717fd51 | 2 | 4 | 3585.08072 | -| terp1vd3dc9u33c53nxd2qeqrs46fgs62nhumt4ta43 | 0x6362dc17918e291999aa06403857494434a9df9b | 2 | 4 | 3585.08072 | -| terp1en2yu6x2dqmv52tdvpfvmevfz07jh0vvcgxm5t | 0xccd44e68ca6836ca296d6052cde58913fd2bbd8c | 2 | 4 | 3585.08072 | -| terp1367dg4yl0skxtg7rwk25s0jp7uk7r59rww59ax | 0x8ebcd4549f7c2c65a3c37595483e41f72de1d0a3 | 2 | 4 | 3585.08072 | -| terp192kacuyyweh7cgax34fzmky29u4w322fhpkyqt | 0x2aaddc7084766fec23a68d522dd88a2f2ae8a949 | 2 | 4 | 3585.08072 | -| terp19nca4e0998esyh2aqqmdt8dqdgpyldcx0kn3a8 | 0x2cf1dae5e529f3025d5d0036d59da06a024fb706 | 2 | 4 | 3585.08072 | -| terp1rnu9f7wex22a3tzh4rfuqaa0h2vppy8uy04g6u | 0x1cf854f9d93295d8ac57a8d3c077afba981090fc | 2 | 4 | 3585.08072 | -| terp19kntpuwfdmetg7wtwj7erpxkjha4yht4hghhh2 | 0x2da6b0f1c96ef2b479cb74bd9184d695fb525d75 | 2 | 4 | 3585.08072 | -| terp14t933te5gzwmu46da6c8xfmhzn7cw89ax23ddr | 0xaacb18af34409dbe574deeb073277714fd871cbd | 2 | 4 | 3585.08072 | -| terp1v9a3s4vje5kx46d7cwuw9wwpammu6kjmc43u0c | 0x617b185592cd2c6ae9bec3b8e2b9c1eef7cd5a5b | 2 | 4 | 3585.08072 | -| terp14v5rf5pjn39p6da2ykxpff2ldkgszg5smmfa4p | 0xab2834d0329c4a1d37aa258c14a55f6d91012290 | 2 | 4 | 3585.08072 | -| terp1py8w8qyqc5zzkm8pglkwzws6zszr977v5gj7tz | 0x090ee38080c5042b6ce147ece13a1a140432fbcc | 2 | 4 | 3585.08072 | -| terp17v8x2qjapgesltxtpv88unue38egga2hkx5j6n | 0xf30e65025d0a330faccb0b0e7e4f9989f2847557 | 2 | 4 | 3585.08072 | -| terp1cegadqa09hd4fevud9ma8fq3hyg74zqlh2x7wx | 0xc651d683af2ddb54e59c6977d3a411b911ea881f | 2 | 4 | 3585.08072 | -| terp1mw8ns97jzv0ndj6fxptsnklfmxusj7ss5epjjq | 0xdb8f3817d2131f36cb49305709dbe9d9b9097a10 | 2 | 4 | 3585.08072 | -| terp164agxancwpj2tkjmhywvrm7qvyn7l4qvqu8fmy | 0xd57a8376787064a5da5bb91cc1efc06127efd40c | 2 | 4 | 3585.08072 | -| terp1u54egc74w0nsdlwwpu36z7680yqr9sm244273r | 0xe52b9463d573e706fdce0f23a17b47790032c36a | 2 | 4 | 3585.08072 | -| terp1skr9d3k4asux8aar47y38jfs6m6tm0jzvycnya | 0x858656c6d5ec3863f7a3af8913c930d6f4bdbe42 | 2 | 4 | 3585.08072 | -| terp1gtmu2f66csmjz4sz0kfess7fcsjj8hewsjyhhf | 0x42f7c5275ac4372156027d939843c9c42523df2e | 2 | 4 | 3585.08072 | -| terp1dgcahrptntjhyxujct3p7w648meanqnazl6ltl | 0x6a31db8c2b9ae5721b92c2e21f3b553ef3d9827d | 2 | 4 | 3585.08072 | -| terp1xfez87298t0tm83gsxxfwng2a4mlfe65yuppzx | 0x327223f9453adebd9e28818c974d0aed77f4e754 | 2 | 4 | 3585.08072 | -| terp1rpr0ts7tyx43u8pqf2ds62xzr78cynqe5suvfw | 0x1846f5c3cb21ab1e1c204a9b0d28c21f8f824c19 | 2 | 4 | 3585.08072 | -| terp1erky8r6vvufw0ekfcn434fdk502xdfmc782jyn | 0xc8ec438f4c6712e7e6c9c4eb1aa5b6a3d466a778 | 2 | 4 | 3585.08072 | -| terp1l0nh3uljxf9tx86wyw5uhfd7ps3gwpxhgz8lgd | 0xfbe778f3f2324ab31f4e23a9cba5be0c228704d7 | 2 | 4 | 3585.08072 | -| terp1azkqeuafe6n5uajn4p35n85wvc2yp0snyc028p | 0xe8ac0cf3a9cea74e7653a863499e8e661440be13 | 2 | 4 | 3585.08072 | -| terp1jtmcnefac0p4pq599dn9ukq7ccw38xv4y3wjxk | 0x92f789e53dc3c35082852b665e581ec61d139995 | 2 | 4 | 3585.08072 | -| terp12xz5cs6t4qm7lezv8y7jatx2rpsyjsjlggcchd | 0x51854c434ba837efe44c393d2eacca186049425f | 2 | 4 | 3585.08072 | -| terp10w2run9nhev722jpauxzx2cd9k4eedlaadc32h | 0x7b943e4cb3be59e52a41ef0c232b0d2dab9cb7fd | 2 | 4 | 3585.08072 | -| terp15vvw822xmjgmd45t2g8hyty79mtp0wx24ymlvg | 0xa318e3a946dc91b6d68b520f722c9e2ed617b8ca | 2 | 4 | 3585.08072 | -| terp1ya2c2t732vzu0saczw8pmf6huhjlt9lw5v3rz3 | 0x2755852fd15305c7c3b8138e1da757e5e5f597ee | 2 | 4 | 3585.08072 | -| terp1zehstvuqm7v957e5ufk9tafwq75n5hhfw0ux59 | 0x166f05b380df985a7b34e26c55f52e07a93a5ee9 | 2 | 4 | 3585.08072 | -| terp1l5r5sxu9zx9ny2sfyx7v83jakfpv7feduy90vd | 0xfd07481b85118b322a0921bcc3c65db242cf272d | 2 | 4 | 3585.08072 | -| terp18zs70qs2tevvkut8m7fcxsejtp60vaxtcp555l | 0x38a1e7820a5e58cb7167df938343325874f674cb | 2 | 4 | 3585.08072 | -| terp1xsjn848n8fjjn76j5vkumk5le6xq3x35kqmugl | 0x342533d4f33a6529fb52a32dcdda9fce8c089a34 | 2 | 4 | 3585.08072 | -| terp17j2m7pjr8vxeqhtymdl43klzsucny60tm3k70u | 0xf495bf06433b0d905d64db7f58dbe287313269eb | 2 | 4 | 3585.08072 | -| terp1kd5ty82uf838v202dvu5s3dedcrjedvu7cfxja | 0xb368b21d5c49e27629ea6b394845b96e072cb59c | 2 | 4 | 3585.08072 | -| terp1650xqc8jcn375jurhvggz47cytu8vkeeeqkk4l | 0xd51e6060f2c4e3ea4b83bb108157d822f8765b39 | 2 | 4 | 3585.08072 | -| terp1daxkyjvdpy2c6s2sg5vt4zfy20d8cg6vue9n96 | 0x6f4d62498d09158d41504518ba892453da7c234c | 2 | 4 | 3585.08072 | -| terp1vfhpns9vr8aewkcdewmehd8cpdxra9vcdka9rl | 0x626e19c0ac19fb975b0dcbb79bb4f80b4c3e9598 | 2 | 4 | 3585.08072 | -| terp1y5h49ww5rade5frtn6qyg5t9pjvgkxf03n2s63 | 0x252f52b9d41f5b9a246b9e804451650c988b192f | 2 | 4 | 3585.08072 | -| terp1xpc7gels242qmmzdmrpywpe8eyxcj7vyp77jcv | 0x3071e467f055540dec4dd8c2470727c90d897984 | 2 | 4 | 3585.08072 | -| terp16zd2crfhqnl6g8yhly5mtte2xj84wnay3fa899 | 0xd09aac0d3704ffa41c97f929b5af2a348f574fa4 | 2 | 4 | 3585.08072 | -| terp1x7fmfygegf7hlz0ndqhkw3t9zyvj505rmlpyvg | 0x3793b49119427d7f89f3682f67456511192a3e83 | 2 | 4 | 3585.08072 | -| terp1v66xqvsv2ddsa7n26s8dr0ev380zcxunwhu9vd | 0x66b460320c535b0efa6ad40ed1bf2c89de2c1b93 | 2 | 4 | 3585.08072 | -| terp1q28r97x6ltv26zx0s239xrupmtqx55t458f60c | 0x028e32f8dafad8ad08cf82a2530f81dac06a5175 | 2 | 4 | 3585.08072 | -| terp16fndvxkz9s4z4skasvh8ns2w59fvnxxkqaxqke | 0xd266d61ac22c2a2ac2dd832e79c14ea152c998d6 | 2 | 4 | 3585.08072 | -| terp15crneayv2apvru3prg7gh2tzc9nyuzyawpt8fm | 0xa6073cf48c5742c1f2211a3c8ba962c1664e089d | 2 | 4 | 3585.08072 | -| terp1ljfpcmmzt8ylqcg9dkf0qtkrtr9pujgh02n3yu | 0xfc921c6f6259c9f061056d92f02ec358ca1e4917 | 2 | 4 | 3585.08072 | -| terp17z5fjyjv5ugpq40ytsd26d6qjtrux47txekkh9 | 0xf0a899124ca7101055e45c1aad374092c7c357cb | 2 | 4 | 3585.08072 | -| terp1am3wq9nwxshqk4h7n4dhdn3v36kajdd5elfj0p | 0xeee2e0166e342e0b56fe9d5b76ce2c8eadd935b4 | 2 | 4 | 3585.08072 | -| terp1h9uq0f993fxmjcp5hkap39ax6saf59uyszecla | 0xb97807a4a58a4db96034bdba1897a6d43a9a1784 | 2 | 4 | 3585.08072 | -| terp1dv4mqgpw3w4gnn50g2muw63zehphku2hgj7stw | 0x6b2bb0202e8baa89ce8f42b7c76a22cdc37b7157 | 2 | 4 | 3585.08072 | -| terp1ptrgl6s5a93uyzqzps8xm7lldakcv685ur9qr9 | 0x0ac68fea14e963c208020c0e6dfbff6f6d8668f4 | 2 | 4 | 3585.08072 | -| terp1k74aed4rxjz9zfwegvfuwf2m3xzdamgjfcxg6u | 0xb7abdcb6a334845125d94313c7255b8984deed12 | 2 | 4 | 3585.08072 | -| terp1w5zt8svxg7e0sspfxk49gdlvk6eyjftqc05lmy | 0x7504b3c18647b2f8402935aa5437ecb6b2492560 | 2 | 4 | 3585.08072 | -| terp1lwv4pgm4nhj42ycw85fek0rhpenqhhfw6v9jgm | 0xfb9950a3759de555130e3d139b3c770e660bdd2e | 2 | 4 | 3585.08072 | -| terp14w29ywrf2kdn09unxp7qwfg9l5j0wtrdjxelpp | 0xab94523869559b379793307c072505fd24f72c6d | 2 | 4 | 3585.08072 | -| terp1skw5lglem9qg8e8ljrl7natwy55rncdwqk6z5t | 0x859d4fa3f9d94083e4ff90ffe9f56e252839e1ae | 2 | 4 | 3585.08072 | -| terp1v65l6m6sl0zswaxhcc6ljccm8tw92jrfzj74hj | 0x66a9fd6f50fbc50774d7c635f9631b3adc554869 | 2 | 4 | 3585.08072 | -| terp1wf2pcal4pxdf2xes5p2sx79cd8vrgpxuvnafef | 0x72541c77f5099a951b30a0550378b869d83404dc | 2 | 4 | 3585.08072 | -| terp1nhnrj3fnye4x76402w9qh6rpj8rf2u24c9stty | 0x9de6394533266a6f6aaf538a0be86191c6957155 | 2 | 4 | 3585.08072 | -| terp15nau6wwup6xxk8pa3963l7rg2hv0twvdmcs654 | 0xa4fbcd39dc0e8c6b1c3d89751ff86855d8f5b98d | 2 | 4 | 3585.08072 | -| terp1nqfkvjceu0g9uespqlrxpk8k53zlflymhd8gda | 0x9813664b19e3d05e660107c660d8f6a445f4fc9b | 2 | 4 | 3585.08072 | -| terp1tkmcxztq79jpk2s3xs6rtmw0dxhjs3qxs8j7ae | 0x5db7830960f1641b2a11343435edcf69af284406 | 2 | 4 | 3585.08072 | -| terp12de6xeppg3gzl0qtqwngyae6vsuph8658gxax7 | 0x5373a3642144502fbc0b03a682773a64381b9f54 | 2 | 4 | 3585.08072 | -| terp1pv8hgjyv94at0qhs3cczpgamw6wprucwpvhadm | 0x0b0f74488c2d7ab782f08e3020a3bb769c11f30e | 2 | 4 | 3585.08072 | -| terp1g820hnexlf4llzgy7elvd9dt3eewsekke80z8s | 0x41d4fbcf26fa6bff8904f67ec695ab8e72e866d6 | 2 | 4 | 3585.08072 | -| terp1gxm39s925ptgd6uek2tzfnl8rdmckx3p4qwm9e | 0x41b712c0aaa05686eb99b29624cfe71b778b1a21 | 2 | 4 | 3585.08072 | -| terp1scy3f8tgmd9xf7at27m9z0gspx54q7n5u7x6qt | 0x8609149d68db4a64fbab57b6513d1009a9507a74 | 2 | 4 | 3585.08072 | -| terp1tyy7d9zjkfqqdgmzt9tmj2ma0a6zwkwz0zhap2 | 0x5909e69452b24006a3625957b92b7d7f742759c2 | 2 | 4 | 3585.08072 | -| terp1d2cn8tcn0lv59990h3xlm6akmmv554ed53det5 | 0x6ab133af137fd94294afbc4dfdebb6ded94a572d | 2 | 4 | 3585.08072 | -| terp1f87n8g4sz6wv756x2st2pkldvsl3u9pee7wrc6 | 0x49fd33a2b0169ccf53465416a0dbed643f1e1439 | 2 | 4 | 3585.08072 | -| terp1qvaqrspkfk2xh49czz2dumw5ypje69c3ra7sk0 | 0x033a01c0364d946bd4b81094de6dd420659d1711 | 2 | 4 | 3585.08072 | -| terp1zae8cc8z33fgh9vqs2lwpdhg90lrl92pfyvzv0 | 0x17727c60e28c528b958082bee0b6e82bfe3f9541 | 2 | 4 | 3585.08072 | -| terp1d4ajy90dum5n0vf6qpt7ud8g9eglynrmn3xqlw | 0x6d7b2215ede6e937b13a0057ee34e82e51f24c7b | 2 | 4 | 3585.08072 | -| terp1spjkk8hfm9dz838wr7q67cjjtwlq0ct3nnq2gx | 0x80656b1ee9d95a23c4ee1f81af62525bbe07e171 | 2 | 4 | 3585.08072 | -| terp19m4m9wkkjxz7fnpjqsgvvxwzqq67u784ynut7j | 0x2eebb2bad69185e4cc320410c619c20035ee78f5 | 2 | 4 | 3585.08072 | -| terp1fc0lc7u3n0dx23nwcwntfxpsp26p0vqwxm95ag | 0x4e1ffc7b919bda65466ec3a6b498300ab417b00e | 2 | 4 | 3585.08072 | -| terp17ugk3sn08hew7q8p8lssfue3gtrzlq7y3vl0gg | 0xf71168c26f3df2ef00e13fe104f33142c62f83c4 | 2 | 4 | 3585.08072 | -| terp1zzxv46jmvnqprgp3sluzyynv8pgktygpdw0dcs | 0x108ccaea5b64c011a03187f822126c3851659101 | 2 | 4 | 3585.08072 | -| terp12whfy82r7tlcsa6qdwxt43rjehta7c5lh6y9fa | 0x53ae921d43f2ff8877406b8cbac472cdd7df629f | 2 | 4 | 3585.08072 | -| terp1qk7gfdgd03s0cpkkqwezjuj4wk4jesxs09upee | 0x05bc84b50d7c60fc06d603b229725575ab2cc0d0 | 2 | 4 | 3585.08072 | -| terp1k2euky7ay84s2l4uh3jes295t0j5hrnahtxnsw | 0xb2b3cb13dd21eb057ebcbc659828b45be54b8e7d | 2 | 4 | 3585.08072 | -| terp104xmkzztua04522emfzd9hgzrdj02224zvj7qy | 0x7d4dbb084be75f5a2959da44d2dd021b64f52955 | 2 | 4 | 3585.08072 | -| terp12jh8qff0wssgl3ktfz8rkef0tumd7k669j6z8r | 0x54ae70252f74208fc6cb488e3b652f5f36df5b5a | 2 | 4 | 3585.08072 | -| terp1yvqfrpn3g35emfs8u5q9kvm2kz0ey0plmwux55 | 0x230091867144699da607e5005b336ab09f923c3f | 2 | 4 | 3585.08072 | -| terp15xcq2jq2yf0kr2fuzgpgmzt6cvhf9c8356u7ke | 0xa1b005480a225f61a93c12028d897ac32e92e0f1 | 2 | 4 | 3585.08072 | -| terp19ye4sl5ja8c5pw3kukfql0rfadhh07vt62ya5r | 0x2933587e92e9f140ba36e5920fbc69eb6f77f98b | 2 | 4 | 3585.08072 | -| terp139j7qd7ttydx85wptazkluap25uzewefqmxnht | 0x8965e037cb591a63d1c15f456ff3a155382cbb29 | 2 | 4 | 3585.08072 | -| terp1x2cac6njadnnc5uua2wscq5aj2nrgnt63mq8w6 | 0x32b1dc6a72eb673c539cea9d0c029d92a6344d7a | 2 | 4 | 3585.08072 | -| terp12e4xpfvutwp8y2kg396h2e5l7n4ruarc4vsxwh | 0x566a60a59c5b82722ac8897575669ff4ea3e7478 | 2 | 4 | 3585.08072 | -| terp18zn5ah5uj02z2seql2nqudzsfa0ljxn0esm9ft | 0x38a74ede9c93d4254320faa60e34504f5ff91a6f | 2 | 4 | 3585.08072 | -| terp1gs9aywzcu5y33z23w8ey6ns59edp403e5339w9 | 0x440bd23858e50918895171f24d4e142e5a1abe39 | 2 | 4 | 3585.08072 | -| terp19knx3sdk62q3s8x8zucxlnrun3rrlgtlz4q7gu | 0x2da668c1b6d281181cc717306fcc7c9c463fa17f | 2 | 4 | 3585.08072 | -| terp12tz4zaj6aqnvfwd7kuccf340w40vuqu9ht782t | 0x52c551765ae826c4b9beb73184c6af755ece0385 | 2 | 4 | 3585.08072 | -| terp108vfjducgnf45xslt4gaxxzamqslgnwpel8jwl | 0x79d899379844d35a1a1f5d51d3185dd821f44dc1 | 2 | 4 | 3585.08072 | -| terp1fcu6cys6a0j2vyhjtnzatjm7zfwgsh93wjpzyq | 0x4e39ac121aebe4a612f25cc5d5cb7e125c885cb1 | 2 | 4 | 3585.08072 | -| terp1ae8cfqg0g2zm3g33fp92zpgwq57paj9rfhyj8g | 0xee4f84810f4285b8a231484aa1050e053c1ec8a3 | 2 | 4 | 3585.08072 | -| terp1ghv40rj6dt6yyv7zqskmnwqv48sp0072r8v3lm | 0x45d9578e5a6af44233c2042db9b80ca9e017bfca | 2 | 4 | 3585.08072 | -| terp1zkdl95z20az8t6v3ws823txk06mxl8klxt7hhy | 0x159bf2d04a7f4475e991740ea8acd67eb66f9edf | 2 | 4 | 3585.08072 | -| terp1hy93h4sx3vjrktuxqtp7g3dswtq787vez8uxmu | 0xb90b1bd6068b243b2f8602c3e445b072c1e3f999 | 2 | 4 | 3585.08072 | -| terp1r8wegf0u80lejmgwk0ep476903r86xyzsgknjd | 0x19dd9425fc3bff996d0eb3f21afb457c467d1882 | 2 | 4 | 3585.08072 | -| terp13njc8xh5fs6qmxahjau050e2l9pee44qxvfk29 | 0x8ce5839af44c340d9bb79778fa3f2af9439cd6a0 | 2 | 4 | 3585.08072 | -| terp1uflgny8zn8e95qzjk6u67t58keu5l5j6pej4yv | 0xe27e8990e299f25a0052b6b9af2e87b6794fd25a | 2 | 4 | 3585.08072 | -| terp1am3rkp9wjqjr774uk9duhy2rsltn39de7g9huw | 0xeee23b04ae90243f7abcb15bcb914387d73895b9 | 2 | 4 | 3585.08072 | -| terp1y54dfs28vvrrg9cfw8lqhmnjl6hhml9nrzcuxz | 0x252ad4c147630634170971fe0bee72feaf7dfcb3 | 2 | 4 | 3585.08072 | -| terp14yuzuz0wh03x4xlfa94npjp87kf3qjcn0x2hvw | 0xa9382e09eebbe26a9be9e96b30c827f593104b13 | 2 | 4 | 3585.08072 | -| terp1nj8ypy49lzcrxxdddmpz5n26cxv65c6v7l3zsg | 0x9c8e4092a5f8b03319ad6ec22a4d5ac199aa634c | 2 | 4 | 3585.08072 | -| terp13m4g8mtnsk9le9envxrlkd6yt3p6fkz4suxrnq | 0x8eea83ed73858bfc97336187fb37445c43a4d855 | 2 | 4 | 3585.08072 | -| terp1lcygs54ux0h485m39dfn2gff7snl2madu7qhq8 | 0xfe088852bc33ef53d3712b53352129f427f56fad | 2 | 4 | 3585.08072 | -| terp1nlf2qu5a9pf2fux5rcmly7q9rxdrml067g89ws | 0x9fd2a0729d2852a4f0d41e37f27805199a3dfdfa | 2 | 4 | 3585.08072 | -| terp1d45hd003ffkrxxvzumdyhm2tc9s3n2ykkf8pux | 0x6d6976bdf14a6c331982e6da4bed4bc16119a896 | 2 | 4 | 3585.08072 | -| terp1ksh0c76hwvy8tmkj44gzyc06wevss6k78rx8ww | 0xb42efc7b57730875eed2ad502261fa7659086ade | 2 | 4 | 3585.08072 | -| terp1thcmzmqvw6gmzsc8l8x7aggstufmy7pmu8ewvt | 0x5df1b16c0c7691b14307f9cdeea1105f13b2783b | 2 | 4 | 3585.08072 | -| terp1yzvwjk00nr2ptwcyq76tfq35usra5hnkerc5mx | 0x2098e959ef98d415bb0407b4b48234e407da5e76 | 2 | 4 | 3585.08072 | -| terp17kx9xh5m2z4cv8js7y2jzs9djdhgjk7ap96un9 | 0xf58c535e9b50ab861e50f1152140ad936e895bdd | 2 | 4 | 3585.08072 | -| terp1x8f2wyr426npw0qfvgaxcrq9uk2hyqylh6sjk7 | 0x31d2a7107556a6173c09623a6c0c05e59572009f | 2 | 4 | 3585.08072 | -| terp1n7vlze5h0wefwy59aecaqt04l6e5drgsenak6x | 0x9f99f166977bb2971285ee71d02df5feb3468d10 | 2 | 4 | 3585.08072 | -| terp1w3850qhu9xt974u30es4s0y3yr3eru873tx6du | 0x744f4782fc29965f57917e61583c9120e391f0fe | 2 | 4 | 3585.08072 | -| terp1alfntdfp4lxqfnzq8ka9q7jqq0z28ghzeeencc | 0xefd335b521afcc04cc403dba507a4003c4a3a2e2 | 2 | 4 | 3585.08072 | -| terp17x3vjjf604hnzaeykflgks4wtz8cp0mcr4admw | 0xf1a2c9493a7d6f317724b27e8b42ae588f80bf78 | 2 | 4 | 3585.08072 | -| terp15uh8ssrzycfpxmqgkq7dsjenreantd7tajysg2 | 0xa72e7840622612136c08b03cd84b331e7b35b7cb | 2 | 4 | 3585.08072 | -| terp1qzejv3zgmpyyunud2yjmle8aqqnrhgvux548n0 | 0x00b3264448d8484e4f8d5125bfe4fd00263ba19c | 2 | 4 | 3585.08072 | -| terp14czc6qhm0uxwy9l4gtx6ucfrvhnjqwuymz22ph | 0xae058d02fb7f0ce217f542cdae612365e7203b84 | 2 | 4 | 3585.08072 | -| terp15j9d0lhvx6c67ktyl6g72x33ljlm4ehdj9tyx8 | 0xa48ad7feec36b1af5964fe91e51a31fcbfbae6ed | 2 | 4 | 3585.08072 | -| terp1dnusqgfrhyettwyfsqfmaep2r2mjmtqcj2nf5v | 0x6cf9002123b932b5b8898013bee42a1ab72dac18 | 2 | 4 | 3585.08072 | -| terp10alljluwmfcz46qhp55tvkzg54vp59fesvns65 | 0x7f7ff97f8eda702ae8170d28b65848a5581a1539 | 2 | 4 | 3585.08072 | -| terp1zsfn3awgvlzkywdc4sy2lgw0ysj76fjgr9y02q | 0x141338f5c867c56239b8ac08afa1cf2425ed2648 | 2 | 4 | 3585.08072 | -| terp1052y9e8qah3qdlazq7mtqtaehkqwjg00v6l4yu | 0x7d1442e4e0ede206ffa207b6b02fb9bd80e921ef | 2 | 4 | 3585.08072 | -| terp138akanev02vwhh075gvwd8fpf6d6czcgnx298q | 0x89fb6ecf2c7a98ebddfea218e69d214e9bac0b08 | 2 | 4 | 3585.08072 | -| terp17stnzhcrmdcdrjn0grzsjk9vfkx2ut64facvcs | 0xf417315f03db70d1ca6f40c50958ac4d8cae2f55 | 2 | 4 | 3585.08072 | -| terp1n2m6mts4084zssm59enpsseejkc02yzyydxwk7 | 0x9ab7adae1579ea2843742e6618433995b0f51044 | 2 | 4 | 3585.08072 | -| terp1a8zlzmkqfrksrpwmum9avu9zc4t8phru8ewz93 | 0xe9c5f16ec048ed0185dbe6cbd670a2c55670dc7c | 2 | 4 | 3585.08072 | -| terp1dxu2ynkujpfm85q8wy88hxrd7s9qh3lt5r7s7u | 0x69b8a24edc9053b3d007710e7b986df40a0bc7eb | 2 | 4 | 3585.08072 | -| terp1gjrhppulz5y0jpu0yq8da473qay5hzd0n8l8ez | 0x448770879f1508f9078f200eded7d107494b89af | 2 | 4 | 3585.08072 | -| terp19mggw2tu2m6xnspnlusc3fv3daz8sp3uh396fh | 0x2ed087297c56f469c033ff2188a5916f4478063c | 2 | 4 | 3585.08072 | -| terp1txgcmx84e9jd7rqth5rjqlm4q68zg3fm606q7p | 0x59918d98f5c964df0c0bbd07207f75068e24453b | 2 | 4 | 3585.08072 | -| terp1p7drf2zguqxv8wsu7jefxwvzg5gs03t55jfhdk | 0x0f9a34a848e00cc3ba1cf4b2933982451107c574 | 2 | 4 | 3585.08072 | -| terp178d4rxnmq0jn06d2dcrhjtqqt07l2k028yz254 | 0xf1db519a7b03e537e9aa6e07792c005bfdf559ea | 2 | 4 | 3585.08072 | -| terp1sv2ll6nkjsxunt9guzdk5c053yn7p2racghjqc | 0x8315ffea76940dc9aca8e09b6a61f48927e0a87d | 2 | 4 | 3585.08072 | -| terp1z8qgqx9x4cc5kz877njhpyq44gmx8etgf7ca7g | 0x11c08018a6ae314b08fef4e5709015aa3663e568 | 2 | 4 | 3585.08072 | -| terp1tqpnnxkf2qsh7c7kd5xdn6cp9lg58lnfzmv48v | 0x5803399ac950217f63d66d0cd9eb012fd143fe69 | 2 | 4 | 3585.08072 | -| terp1pdun4w8vnlklvvd3xulpckpgctq47hctygjuna | 0x0b793ab8ec9fedf631b1373e1c5828c2c15f5f0b | 2 | 4 | 3585.08072 | -| terp1q0aeg0fatqqrwcjlenmnjlf9m9fhuhfjr2uyul | 0x03fb943d3d580037625fccf7397d25d9537e5d32 | 2 | 4 | 3585.08072 | -| terp1ev4wwt9trndd3npa5mflsta2m9w4weml9ctn24 | 0xcb2ae72cab1cdad8cc3da6d3f82faad95d57677f | 2 | 4 | 3585.08072 | -| terp1euf47qhlrd3sjrpr6xhyc34jzcv9l8247d8cqu | 0xcf135f02ff1b63090c23d1ae4c46b216185f9d55 | 2 | 4 | 3585.08072 | -| terp1p3rdtxsyll3wl0yn8626my6kk7fr5zc5uyg5je | 0x0c46d59a04ffe2efbc933e95ad9356b7923a0b14 | 2 | 4 | 3585.08072 | -| terp1atjemhgyq9z59c73yxxev666mhekhx9lex58ya | 0xeae59ddd04014542e3d1218d966b5addf36b98bf | 2 | 4 | 3585.08072 | -| terp1uj33chrf5jx9daf6ngq5erngaqwag4eamuud0x | 0xe4a31c5c69a48c56f53a9a014c8e68e81dd4573d | 2 | 4 | 3585.08072 | -| terp17r44n3p56z708aejlzp9ruwkclm52uzgmw89v8 | 0xf0eb59c434d0bcf3f732f88251f1d6c7f7457048 | 2 | 4 | 3585.08072 | -| terp1lcnjqz2jm2ev7xhvysk75s30ymyaeexe8ufy9m | 0xfe27200952dab2cf1aec242dea422f26c9dce4d9 | 2 | 4 | 3585.08072 | -| terp12sl7wrt3pyz8rvz5mvxsy6k3umnu754ttug79u | 0x543fe70d71090471b054db0d026ad1e6e7cf52ab | 2 | 4 | 3585.08072 | -| terp160jeegv774cr0d4fsx96afzptlxz22hxzcavqq | 0xd3e59ca19ef57037b6a9818baea4415fcc252ae6 | 2 | 4 | 3585.08072 | -| terp1cfgpz8z5t9rlxt2hpqt8apaxus4sz9zwyegene | 0xc250111c545947f32d5708167e87a6e42b01144e | 2 | 4 | 3585.08072 | -| terp142c3trfhcq254w852tqj30xyl720696wsrpks9 | 0xaab1158d37c0154ab8f452c128bcc4ff94fd174e | 2 | 4 | 3585.08072 | -| terp14gw34kqud7k7dtgx7m5nn4mtrne59v76nw79e0 | 0xaa1d1ad81c6fade6ad06f6e939d76b1cf342b3da | 2 | 4 | 3585.08072 | -| terp1sgn5rya9km9fhn6ux8h4e7978gksk7kn5pcmvc | 0x82274193a5b6ca9bcf5c31ef5cf8be3a2d0b7ad3 | 2 | 4 | 3585.08072 | -| terp18tsevh3pn973a48ug2kv7kk6mhukumgv90l6ft | 0x3ae1965e21997d1ed4fc42accf5adaddf96e6d0c | 2 | 4 | 3585.08072 | -| terp1jpep4rsnejf499catpqmaehrcqcs3la4zj9vjd | 0x90721a8e13cc9352971d5841bee6e3c03108ffb5 | 2 | 4 | 3585.08072 | -| terp17aqtac6jhh5t296prpyazfg240fervezzzhq3t | 0xf740bee352bde8b517411849d1250aabd391b322 | 2 | 4 | 3585.08072 | -| terp1j82qzggchx48u6hdzhq2uf4uzpkaf5z7wxflje | 0x91d4012118b9aa7e6aed15c0ae26bc106dd4d05e | 2 | 4 | 3585.08072 | -| terp1eccz09c20fm2km3du5zpnm39l7962dxkr4c9ks | 0xce3027970a7a76ab6e2de50419ee25ff8ba534d6 | 2 | 4 | 3585.08072 | -| terp1tg4y48fj97826qne234xelpefcarxrgf3ccfx9 | 0x5a2a4a9d322f8ead0279546a6cfc394e3a330d09 | 2 | 4 | 3585.08072 | -| terp1w3gcq9cs3qcta7fjls6qye05t25edlaj58sqm4 | 0x74518017108830bef932fc340265f45aa996ffb2 | 2 | 4 | 3585.08072 | -| terp1ccwh5s8snvwjs86y0rfdjqkdegv00pt5s903z0 | 0xc61d7a40f09b1d281f4478d2d902cdca18f78574 | 2 | 4 | 3585.08072 | -| terp1wlwxllkrd2wag46t32ry763ex54xhxme7epfe5 | 0x77dc6ffec36a9dd4574b8a864f6a39352a6b9b79 | 2 | 4 | 3585.08072 | -| terp1umxsqam5p9xf79ckx2fsvfdxd0umkdh9hux6vq | 0xe6cd007774094c9f171632930625a66bf9bb36e5 | 2 | 4 | 3585.08072 | -| terp1rxelzc6r3nv05trgv8vzuqnm8t5vp5c85xvaua | 0x19b3f163438cd8fa2c6861d82e027b3ae8c0d307 | 2 | 4 | 3585.08072 | -| terp13v0mjkwqcu2gp8c733g8vwu9dka3k85fcdvnjm | 0x8b1fb959c0c714809f1e8c50763b856dbb1b1e89 | 2 | 4 | 3585.08072 | -| terp1v93g0gjja5jfqc2xdtsjr39v9hzeum63ezsle3 | 0x616287a252ed249061466ae121c4ac2dc59e6f51 | 2 | 4 | 3585.08072 | -| terp1lfwsthm39vzekaxvaljqs3u9heljagdc46czp7 | 0xfa5d05df712b059b74ccefe4084785be7f2ea1b8 | 2 | 4 | 3585.08072 | -| terp1w2ghhvtjfl9nyh9mc7lcc40pay256muwmksxlj | 0x72917bb1724fcb325cbbc7bf8c55e1e9154d6f8e | 2 | 4 | 3585.08072 | -| terp1fku485zxys5uv089y5wrwxmutgj9vw25vftf22 | 0x4db953d0462429c63ce5251c371b7c5a24563954 | 2 | 4 | 3585.08072 | -| terp1t8fu82h7rqcwte6ukvadmvpmfzehmw787rkgeq | 0x59d3c3aafe1830e5e75cb33addb03b48b37dbbc7 | 2 | 4 | 3585.08072 | -| terp1n52apg026efpsszy8fc77eenyr55wq5m56agz8 | 0x9d15d0a1ead6521840443a71ef673320e947029b | 2 | 4 | 3585.08072 | -| terp1e646y0rrxmtut8eva3r3e8z34pjsty3n6rx8g5 | 0xceaba23c6336d7c59f2cec471c9c51a865059233 | 2 | 4 | 3585.08072 | -| terp10gxwnde2kr5v2he7pzxj5m6hscasdn0qwv96ky | 0x7a0ce9b72ab0e8c55f3e088d2a6f57863b06cde0 | 2 | 4 | 3585.08072 | -| terp1x9p9mpeghfmszpl390mqjcyup2az4vm89pg5h6 | 0x31425d8728ba770107f12bf609609c0aba2ab367 | 2 | 4 | 3585.08072 | -| terp1ccqx3kt2wtd8n027807dwqzmknk5kxm7pluhn9 | 0xc60068d96a72da79bd5e3bfcd7005bb4ed4b1b7e | 2 | 4 | 3585.08072 | -| terp1tsrxsgpfeppwjzrqezee2qzjlvhphks2prpkpc | 0x5c06682029c842e90860c8b3950052fb2e1bda0a | 2 | 4 | 3585.08072 | -| terp17xe572nzsu2h2aa7wlv2n7q8h6ukakyuxrx978 | 0xf1b34f2a6287157577be77d8a9f807beb96ed89c | 2 | 4 | 3585.08072 | -| terp1cyz7tm38tkmvx6vr0t40fwghkve694h8hv88wr | 0xc105e5ee275db6c369837aeaf4b917b333a2d6e7 | 2 | 4 | 3585.08072 | -| terp1tv35je6l29rjsz99uf9es0mxr5l55054tk5da5 | 0x5b2349675f51472808a5e24b983f661d3f4a3e95 | 2 | 4 | 3585.08072 | -| terp19d05p4remvk9qm3ncwk2ku28q6f2863u5k3qmp | 0x2b5f40d479db2c506e33c3acab71470692a3ea3c | 2 | 4 | 3585.08072 | -| terp1y3fd06nkpmnld2kahqzyethu7m06rh5wr8wpsq | 0x2452d7ea760ee7f6aaddb8044caefcf6dfa1de8e | 2 | 4 | 3585.08072 | -| terp1dzhnz2gqafymvp49dkc6hj5xlujdzfhykr088d | 0x68af312900ea49b606a56db1abca86ff24d126e4 | 2 | 4 | 3585.08072 | -| terp1266xcahuf8f5s4cm4s2fu2exs98w0antvplg22 | 0x56b46c76fc49d348571bac149e2b26814ee7f66b | 2 | 4 | 3585.08072 | -| terp1q9s7s5ach63mtzen6l75g0uev5xkysztjyugf9 | 0x0161e853b8bea3b58b33d7fd443f99650d62404b | 2 | 4 | 3585.08072 | -| terp1ut2jlpvykt2283pk20nkgspz9t8074w7cmujtq | 0xe2d52f8584b2d4a3c43653e76440222aceff55de | 2 | 4 | 3585.08072 | -| terp1hghgq9z0u0hc3q0ut2qkh0rqwa5wjyepamgr05 | 0xba2e80144fe3ef8881fc5a816bbc607768e91321 | 2 | 4 | 3585.08072 | -| terp1dr8px3883sqr4qs9qeq9ej04sp4pptgpwctc73 | 0x68ce1344e78c003a820506405cc9f5806a10ad01 | 2 | 4 | 3585.08072 | -| terp1epztk82pcpfdw0cqyzq0r8qhe8j4g553dthw2g | 0xc844bb1d41c052d73f002080f19c17c9e5545291 | 2 | 4 | 3585.08072 | -| terp102ym7qaq7nvtk0ywwqc6mn5wcpp6yhqpamu5kj | 0x7a89bf03a0f4d8bb3c8e7031adce8ec043a25c01 | 2 | 4 | 3585.08072 | -| terp153enkua42emzxtpk237p03m3wyxw04jfgstgsw | 0xa4733b73b55676232c36547c17c771710ce7d649 | 2 | 4 | 3585.08072 | -| terp1yudkv50zsmp7ynnzd66lrqygj0h36f8p2vjg88 | 0x271b6651e286c3e24e626eb5f1808893ef1d24e1 | 2 | 4 | 3585.08072 | -| terp13mglflp8n734jn5djslnvghkts7s8v28yudjxl | 0x8ed1f4fc279fa3594e8d943f3622f65c3d03b147 | 2 | 4 | 3585.08072 | -| terp167q50g6k8rsnwfdrewmwt4587glksz3hvqnjc9 | 0xd78147a35638e13725a3cbb6e5d687f23f680a37 | 2 | 4 | 3585.08072 | -| terp1cg4x246sgtwy476y468mxg9r7r8su4rw4jqwet | 0xc22a65575042dc4afb44ae8fb320a3f0cf0e546e | 2 | 4 | 3585.08072 | -| terp14n6nm5736ymvpr8f70naa0pwp8497n9sjtltrf | 0xacf53dd3d1d136c08ce9f3e7debc2e09ea5f4cb0 | 2 | 4 | 3585.08072 | -| terp1kjkc9sl6puvtzx9984qem7j09pmmg6jd3tsxw9 | 0xb4ad82c3fa0f18b118a53d419dfa4f2877b46a4d | 2 | 4 | 3585.08072 | -| terp159530yncxmrs7wvtcy3grvageekl9q0aw8gtsk | 0xa16917927836c70f398bc12281b3a8ce6df281fd | 2 | 4 | 3585.08072 | -| terp1lmrqn3jq9dn0ddu3lz9ayng2kfa3wuf2v4tv8g | 0xfec609c6402b66f6b791f88bd24d0ab27b17712a | 2 | 4 | 3585.08072 | -| terp187l9epsgfae4scp8sp0d3jzmqytmr3868f70yq | 0x3fbe5c86084f73586027805ed8c85b0117b1c4fa | 2 | 4 | 3585.08072 | -| terp128u9lsrur799r5ehvrwv678x7awdq4n6svj9y9 | 0x51f85fc07c1f8a51d33760dccd78e6f75cd0567a | 2 | 4 | 3585.08072 | -| terp10mfgnkh5t0cdza0kenyac6wmx247jhfmt3fhjp | 0x7ed289daf45bf0d175f6ccc9dc69db32abe95d3b | 2 | 4 | 3585.08072 | -| terp148cf0er8863dv94azfuf7luak6262kdxdg9nvg | 0xa9f097e4673ea2d616bd12789f7f9db695a559a6 | 2 | 4 | 3585.08072 | -| terp18gurusc6p93pl0dg6q47atumvmvvlxk8ya3mj3 | 0x3a383e431a09621fbda8d02beeaf9b66d8cf9ac7 | 2 | 4 | 3585.08072 | -| terp1xc5krwswdmyma5pkqk463uw2grjr9qqqaky8wv | 0x362961ba0e6ec9bed03605aba8f1ca40e4328000 | 2 | 4 | 3585.08072 | -| terp12d38qppe83jjltmgcjgwr7vhwqmece0gaylp9j | 0x53627004393c652faf68c490e1f99770379c65e8 | 2 | 4 | 3585.08072 | -| terp1zedpc6vt5xn8z3m09h86w8szqj4sz4fuhnx04a | 0x165a1c698ba1a671476f2dcfa71e0204ab01553c | 2 | 4 | 3585.08072 | -| terp1kezaf6glwm9m50xlphjujsgcfejkgj2g28ywa7 | 0xb645d4e91f76cbba3cdf0de5c941184e65644948 | 2 | 4 | 3585.08072 | -| terp1j2u4penlhr5mj0w2rq8fcfe0fs8h07ypnkhec4 | 0x92b950e67fb8e9b93dca180e9c272f4c0f77f881 | 2 | 4 | 3585.08072 | -| terp1lhlnv56agdq66mgx7mlua7anll6vzjm7cmxqa4 | 0xfdff36535d4341ad6d06f6ffcefbb3fff4c14b7e | 2 | 4 | 3585.08072 | -| terp1hdfyzks78xhgxqdtqvx0640c04sh8h067r3rlj | 0xbb52415a1e39ae8301ab030cfd55f87d6173ddfa | 2 | 4 | 3585.08072 | -| terp1zfzvh20mvfvtlc0ly0lt4zajyaqkjgtzug3whq | 0x1244cba9fb6258bfe1ff23feba8bb22741692162 | 2 | 4 | 3585.08072 | -| terp1fprranfexekus0zsndv8xlvfrenutdvaslv6ym | 0x48463ecd39366dc83c509b58737d891e67c5b59d | 2 | 4 | 3585.08072 | -| terp1edkqwwtqs5qtx55704xwupete3zhtpjwagps2v | 0xcb6c0739608500b3529e7d4cee072bcc4575864e | 2 | 4 | 3585.08072 | -| terp1xtuj0zwndcv5v2g9wzvu4lh623pe3xqm4z4tr0 | 0x32f92789d36e194629057099cafefa544398981b | 2 | 4 | 3585.08072 | -| terp1r2j37fc8g2s9xvfvfshxew9lt0aekhegsrxq9l | 0x1aa51f270742a053312c4c2e6cb8bf5bfb9b5f28 | 2 | 4 | 3585.08072 | -| terp1dnj4et9ftgqwjw82q73u5w8je9qlayt7yft9f9 | 0x6ce55caca95a00e938ea07a3ca38f2c941fe917e | 2 | 4 | 3585.08072 | -| terp17j07j53nu7tveds8rvxz53jpwrt5k8um87xlqh | 0xf49fe95233e796ccb6071b0c2a464170d74b1f9b | 2 | 4 | 3585.08072 | -| terp1p39hsvalgtpdh7vtdafjmpm205pe3mtfc54zca | 0x0c4b7833bf42c2dbf98b6f532d876a7d0398ed69 | 2 | 4 | 3585.08072 | -| terp1p3tgykmq4htg67wrks9m6vrvxzz3vuyd0cn3vf | 0x0c56825b60add68d79c3b40bbd306c308516708d | 2 | 4 | 3585.08072 | -| terp1js45sqk33tjr2zxxxtr8qqrf9ednsyq3ths3sk | 0x942b4802d18ae43508c632c67000692e5b381011 | 2 | 4 | 3585.08072 | -| terp1r35ws2tz899zm58vpfvzjtp274y3j2t8vz9urz | 0x1c68e82962394a2dd0ec0a58292c2af549192967 | 2 | 4 | 3585.08072 | -| terp1rmq3vm43tvy3623zyv95na5nhs44eq93pategv | 0x1ec1166eb15b091d2a22230b49f693bc2b5c80b1 | 2 | 4 | 3585.08072 | -| terp1lat3k3x2nshktygd5nd7zgjw7y2eh0zpr8ztsx | 0xff571b44ca9c2f65910da4dbe1224ef1159bbc41 | 2 | 4 | 3585.08072 | -| terp1fd4rcpuhw29v8cgefuv30ncw4qhyf35y9dfys9 | 0x4b6a3c0797728ac3e1194f1917cf0ea82e44c684 | 2 | 4 | 3585.08072 | -| terp1zyj3g0wejn8tevpuwa59c2e0j5ych7q3e38805 | 0x1125143dd994cebcb03c77685c2b2f95098bf811 | 2 | 4 | 3585.08072 | -| terp1f2mysfu2vzr6zcykjwrauc845h6e4ec8yw65ud | 0x4ab648278a6087a160969387de60f5a5f59ae707 | 2 | 4 | 3585.08072 | -| terp1kyd3s4ys65qxy8y35nclve2vz6xq7ntya9p52j | 0xb11b185490d500621c91a4f1f6654c168c0f4d64 | 2 | 4 | 3585.08072 | -| terp169uv9ac5aprnew0t4zl4tqnhu2xsruzc5nfe94 | 0xd178c2f714e8473cb9eba8bf558277e28d01f058 | 2 | 4 | 3585.08072 | -| terp1c9nr72xwp25n8ydp2p6rzxd9t5dvrarshq6dp6 | 0xc1663f28ce0aa93391a150743119a55d1ac1f470 | 2 | 4 | 3585.08072 | -| terp1yu5z7a0vr32cpdf7qf0qy8qrg07p0llu25rcme | 0x27282f75ec1c5580b53e025e021c0343fc17fffc | 2 | 4 | 3585.08072 | -| terp1raugvm0dv84wlwul6kf29kl07hm4vc5lmdfmeg | 0x1f78866ded61eaefbb9fd592a2dbeff5f756629f | 2 | 4 | 3585.08072 | -| terp1m2nd06638q2u89f7n26yqwcsdj8ex36fx9m35w | 0xdaa6d7eb513815c3953e9ab4403b106c8f934749 | 2 | 4 | 3585.08072 | -| terp1jp6ngn65jw90dh4d5sl9vvz80567lenxj9kl3f | 0x9075344f54938af6deada43e5630477d35efe666 | 2 | 4 | 3585.08072 | -| terp1rqq034gqwxh0n268yu3w2auascqye5kkv8xs83 | 0x1800f8d50071aef9ab472722e5779d86004cd2d6 | 2 | 4 | 3585.08072 | -| terp14f5sv07rghswehjr70gskcq2rnzmfyq08fc99n | 0xaa69063fc345e0ecde43f3d10b600a1cc5b4900f | 2 | 4 | 3585.08072 | -| terp15fdutp8zt72v3q5gcw9nvjldqdzdf9hr9tuc8v | 0xa25bc584e25f94c88288c38b364bed0344d496e3 | 2 | 4 | 3585.08072 | -| terp1vqnwph2fhfswlusx52vg3yk894khlppttkpxg5 | 0x6026e0dd49ba60eff206a2988892c72d6d7f842b | 2 | 4 | 3585.08072 | -| terp14ascjcq67p49m9epzy2gr5evmyq0d0efgpqnlk | 0xaf6189601af06a5d9721111481d32cd900f6bf29 | 2 | 4 | 3585.08072 | -| terp1qatp6f7zgzagvs5k536x3hczq9agq368kh7ekp | 0x07561d27c240ba864296a47468df02017a804747 | 2 | 4 | 3585.08072 | -| terp1w4nl5l25ywaqx5xa5l5kp3nd6vvzrpalytctnv | 0x7567fa7d5423ba0350dda7e960c66dd3182187bf | 2 | 4 | 3585.08072 | -| terp1qrrlr7l8zwycw4fpw2cecjuk79cd4njkxtpay3 | 0x00c7f1fbe7138987552172b19c4b96f170dace56 | 2 | 4 | 3585.08072 | -| terp14ry3dpzr98xk579la3tyj858ad40ce7lg9xcgf | 0xa8c916844329cd6a78bfec56491e87eb6afc67df | 2 | 4 | 3585.08072 | -| terp1fnr3kye8hveflcjtm9f8da3e5rv4gs6xvd38nf | 0x4cc71b1327bb329fe24bd95276f639a0d9544346 | 2 | 4 | 3585.08072 | -| terp17w4cf0wl69fk6ssaegh3adce33wtk6vs6adf6g | 0xf3ab84bddfd1536d421dca2f1eb7198c5cbb6990 | 2 | 4 | 3585.08072 | -| terp1g5ngmhzln5kns9qnrxtufd78clnu4a5vc30tgs | 0x45268ddc5f9d2d3814131997c4b7c7c7e7caf68c | 2 | 4 | 3585.08072 | -| terp1657ysav729k2hzdmcd44wy582hgt3a53z0yd3n | 0xd53c48759e516cab89bbc36b57128755d0b8f691 | 2 | 4 | 3585.08072 | -| terp1waekxv6xl3tfvct9ul32z9f2gepk8x09z6gufy | 0x7773633346fc56966165e7e2a1152a46436399e5 | 2 | 4 | 3585.08072 | -| terp18agelgmvgwqjnnxzm7hhvupnzfdl02c9j4kcrf | 0x3f519fa36c438129ccc2dfaf767033125bf7ab05 | 2 | 4 | 3585.08072 | -| terp1nn3rxn5trhxvks9u6r34xfcvc3zpdxtknqe02j | 0x9ce2334e8b1dcccb40bcd0e353270cc444169976 | 2 | 4 | 3585.08072 | -| terp16r6g5a6uyxuwclldzasunxkw66f6d85f58p7y4 | 0xd0f48a775c21b8ec7fed1761c99aced693a69e89 | 2 | 4 | 3585.08072 | -| terp1l2743jve86vh3gj4eulhgpjeq0kck8xgqm5jwl | 0xfabd58c9993e9978a255cf3f74065903ed8b1cc8 | 2 | 4 | 3585.08072 | -| terp17t7clq0znhjap75nzqmwkv350f3kaah2ctfaxg | 0xf2fd8f81e29de5d0fa931036eb32347a636ef6ea | 2 | 4 | 3585.08072 | -| terp1x8c87xqxg28t2hhzeymk3dkc7lj63g48nfk2g5 | 0x31f07f1806428eb55ee2c93768b6d8f7e5a8a2a7 | 2 | 4 | 3585.08072 | -| terp1vzxa2fpt59la0rdxjn79fts76phu0z943arm2f | 0x608dd5242ba17fd78da694fc54ae1ed06fc788b5 | 2 | 4 | 3585.08072 | -| terp1u3m9x43ed55qmcrfpntk8frp9fz80za6ajqsjl | 0xe4765356396d280de0690cd763a4612a44778bba | 2 | 4 | 3585.08072 | -| terp19w583gw7murta2xn8ya03ey0kxph728339fzha | 0x2ba878a1dedf06bea8d3393af8e48fb1837f28f1 | 2 | 4 | 3585.08072 | -| terp1snhkjwmfqqerdg0pygf6jk8y56kh464jqr3jte | 0x84ef693b69003236a1e12213a958e4a6ad7aeab2 | 2 | 4 | 3585.08072 | -| terp1c7xxl3ru2wnuxay6qzkwrrn8av3jdhfpc7kpc6 | 0xc78c6fc47c53a7c3749a00ace18e67eb2326dd21 | 2 | 4 | 3585.08072 | -| terp1sprx3jvpweqxyuf7wewqg6n5ap58xa4y4vgda2 | 0x804668c981764062713e765c046a74e8687376a4 | 2 | 4 | 3585.08072 | -| terp1lf6hv4py52xvsmp5evgqamdlgm9m293fkppjr6 | 0xfa75765424a28cc86c34cb100eedbf46cbb51629 | 2 | 4 | 3585.08072 | -| terp1e52a3mdzhe9nlv3drvnx4h4pd5kmk62p72ehkt | 0xcd15d8eda2be4b3fb22d1b266adea16d2dbb6941 | 2 | 4 | 3585.08072 | -| terp14mpgwt2dg7033fu2z6pcetnpx03mm334lhacdw | 0xaec2872d4d479f18a78a16838cae6133e3bdc635 | 2 | 4 | 3585.08072 | -| terp176egmh4q3yze0jhy3ttmjc2qk03cuem4sf3aq9 | 0xf6b28ddea0890597cae48ad7b96140b3e38e6775 | 2 | 4 | 3585.08072 | -| terp1av40dswx6g78xx2l99skf4l7s3rvkz64wz0eq3 | 0xeb2af6c1c6d23c73195f296164d7fe8446cb0b55 | 2 | 4 | 3585.08072 | -| terp14jrvwluzxmyd4jfjkjuc7pmzl6zp495nfx5cj0 | 0xac86c77f8236c8dac932b4b98f0762fe841a9693 | 2 | 4 | 3585.08072 | -| terp1a5z42xl22eukhxu8axp6xn2fw0fxt6ygstkwh9 | 0xed05551bea56796b9b87e983a34d4973d265e888 | 2 | 4 | 3585.08072 | -| terp1krmtmvsrn7e94g4jwykulg4q0pp6sjtjaz2t9x | 0xb0f6bdb2039fb25aa2b2712dcfa2a07843a84972 | 2 | 4 | 3585.08072 | -| terp18ne4kywu9d6f955uwjntfl9mks8rv4a94jx383 | 0x3cf35b11dc2b7492d29c74a6b4fcbbb40e3657a5 | 2 | 4 | 3585.08072 | -| terp1kjs8v36gqeamx3u3k9xz0j2ratzpswjnpnj907 | 0xb4a0764748067bb34791b14c27c943eac4183a53 | 2 | 4 | 3585.08072 | -| terp1dfne3ktpsamnrjml2ejcvzy4ymn3uemllwlujt | 0x6a6798d961877731cb7f566586089526e71e677f | 2 | 4 | 3585.08072 | -| terp1w73a3hzwcq3mqh83l9yeehc0f0c8895095ke6v | 0x77a3d8dc4ec023b05cf1f9499cdf0f4bf073968f | 2 | 4 | 3585.08072 | -| terp19pfsf3xv9fgjgp7d4xt6sp092xjattvfqa4am9 | 0x285304c4cc2a512407cda997a805e551a5d5ad89 | 2 | 4 | 3585.08072 | -| terp1ye5c3s04vj8h2y8wekz3vt3ye3drj8c552760m | 0x266988c1f5648f7510eecd85162e24cc5a391f14 | 2 | 4 | 3585.08072 | -| terp19ylu9jsxyfncuwpk2cxncht9cjurze4cgl5lt9 | 0x293fc2ca0622678e3836560d3c5d65c4b83166b8 | 2 | 4 | 3585.08072 | -| terp1f07t0hcrrzr7zz362rasxdj9uzwuz9puqmdqcq | 0x4bfcb7df031887e10a3a50fb033645e09dc1143c | 2 | 4 | 3585.08072 | -| terp16zh9xp5al00uav23gjwkfkz6hxqmenynyklnjl | 0xd0ae53069dfbdfceb151449d64d85ab981bccc93 | 2 | 4 | 3585.08072 | -| terp1zsjumf3q245mtzcveynq3p6stewp4atnx9s493 | 0x1425cda6205569b58b0cc9260887505e5c1af573 | 2 | 4 | 3585.08072 | -| terp1wvrg5ue28azmupg2ptctj8pwt54ncy98nvm7lp | 0x73068a732a3f45be050a0af0b91c2e5d2b3c10a7 | 2 | 4 | 3585.08072 | -| terp148r6296au0xvcxyvlqxp39vu7n0gp9r4ef8xue | 0xa9c7a5175de3cccc188cf80c18959cf4de809475 | 2 | 4 | 3585.08072 | -| terp1tltpkqqhaenpz084rydsjcklw0mclxfqnvxj4e | 0x5fd61b0017ee66113cf5191b0962df73f78f9920 | 2 | 4 | 3585.08072 | -| terp104z8z5l4rgzv35qfu2p3ejyt6xyk4jjwp7f5vy | 0x7d447153f51a04c8d009e2831cc88bd1896aca4e | 2 | 4 | 3585.08072 | -| terp1fxvxzvpk646p56wxsy6kyy6q0ek2rqynzmcykx | 0x4998613036d5741a69c681356213407e6ca18093 | 2 | 4 | 3585.08072 | -| terp1f2qehukrrrxgezuapc2nr72l5yyznnm2dfewxa | 0x4a819bf2c318cc8c8b9d0e1531f95fa10829cf6a | 2 | 4 | 3585.08072 | -| terp1pmany25mgfdxkvvst8que6ca5q7r9peq2cnwx2 | 0x0efb322a9b425a6b319059c1cceb1da03c328720 | 2 | 4 | 3585.08072 | -| terp124jz0fjpxakaresqt9mx5wdafqmsx6l720egzs | 0x556427a641376dd1e60059766a39bd4837036bfe | 2 | 4 | 3585.08072 | -| terp13jkq0ctry9efqdw89dv7kz4sce536lceqm4e7k | 0x8cac07e16321729035c72b59eb0ab0c6691d7f19 | 2 | 4 | 3585.08072 | -| terp1g6yqht90v6xsfmeuqjtcvcl0pp4x45gka3z4rz | 0x46880bacaf668d04ef3c04978663ef086a6ad116 | 2 | 4 | 3585.08072 | -| terp15mvuh7rd4qwwrtc6zejrs4f6af99ll9rwnjc0c | 0xa6d9cbf86da81ce1af1a166438553aea4a5ffca3 | 2 | 4 | 3585.08072 | -| terp199wf8s8x6szufcr7tkagp05apchj4hkjrm4taa | 0x295c93c0e6d405c4e07e5dba80be9d0e2f2aded2 | 2 | 4 | 3585.08072 | -| terp10dxe9wjwzjaw0f0zeys30mvxusxqm74d9qwc8v | 0x7b4d92ba4e14bae7a5e2c92117ed86e40c0dfaad | 2 | 4 | 3585.08072 | -| terp12e6rexud02lflyha9m7jhasxneeky4kzs66hqu | 0x56743c9b8d7abe9f92fd2efd2bf6069e736256c2 | 2 | 4 | 3585.08072 | -| terp133xnjpkrddsk5jvetgap0td4xkxcpklrxcen9e | 0x8c4d3906c36b616a49995a3a17adb5358d80dbe3 | 2 | 4 | 3585.08072 | -| terp1v3tnwlj80h0r4gxhpwaj34p97wz4swccvs0qzd | 0x6457377e477dde3aa0d70bbb28d425f385583b18 | 2 | 4 | 3585.08072 | -| terp16r269sfz4tf0szg3ef62wl35kmjr2a46v2wtce | 0xd0d5a2c122aad2f80911ca74a77e34b6e43576ba | 2 | 4 | 3585.08072 | -| terp1jv9qssc5zhuygy49c7u3f7nyn0t6gnp2xxf8e9 | 0x930a08431415f84412a5c7b914fa649bd7a44c2a | 2 | 4 | 3585.08072 | -| terp1gq6drqc7870kwu0xvglsy3t5w8jnsaxhxu6vj0 | 0x4034d1831e3f9f6771e6623f02457471e53874d7 | 2 | 4 | 3585.08072 | -| terp1uwdeqalhuefq55sysau937xh3wc9kvayex4v7r | 0xe39b9077f7e6520a5204877858f8d78bb05b33a4 | 2 | 4 | 3585.08072 | -| terp1efvjlyyp8v4fvjz24yd043jya0fkcar7crh935 | 0xca592f90813b2a96484aa91afac644ebd36c747e | 2 | 4 | 3585.08072 | -| terp1akut4rh77nqynsehuvr6dgw0petrewvls2ns99 | 0xedb8ba8efef4c049c337e307a6a1cf0e563cb99f | 2 | 4 | 3585.08072 | -| terp1vev7ezg873tqr73vuxc9u70svmkxfm4e7h69pv | 0x6659ec8907f45601fa2ce1b05e79f066ec64eeb9 | 2 | 4 | 3585.08072 | -| terp1t4e0r4jp77p0v0vsjc0l2eqt5ufnnrs3me5dfd | 0x5d72f1d641f782f63d90961ff5640ba713398e11 | 2 | 4 | 3585.08072 | -| terp1x7hs5qcz9uug3dducwkgjeladuvw6u849dlf4z | 0x37af0a03022f3888b5bcc3ac8967fd6f18ed70f5 | 2 | 4 | 3585.08072 | -| terp1625le8aj5peeq5arf3k6uc2u0hcq4pqrewrlkf | 0xd2a9fc9fb2a0739053a34c6dae615c7df00a8403 | 2 | 4 | 3585.08072 | -| terp14psu49truf8u5tvswy6czlq4fhsa0pyc5lqr6q | 0xa861ca9563e24fca2d907135817c154de1d78498 | 2 | 4 | 3585.08072 | -| terp16aegzs40mdqc53g8c3ekx735y66ytfkq0lnkk5 | 0xd7728142afdb418a4507c473637a3426b445a6c0 | 2 | 4 | 3585.08072 | -| terp1ldu5rk8ajyp02w8sgaq4t0yj4402l9jxlf9wlp | 0xfb7941d8fd9102f538f0474155bc92ad5eaf9646 | 2 | 4 | 3585.08072 | -| terp1h229v3v2muphanrw6a9vw79r0af6qqz2we3a5j | 0xba9456458adf037ecc6ed74ac778a37f53a0004a | 2 | 4 | 3585.08072 | -| terp1ufzdd7w0a20uz6yvvavhfnrgyacmkljdez6uw6 | 0xe244d6f9cfea9fc1688c675974cc682771bb7e4d | 2 | 4 | 3585.08072 | -| terp1hf9rtcjyg8k5jv0m7vn3385ne8dt3st6ay9q2c | 0xba4a35e24441ed4931fbf327189e93c9dab8c17a | 2 | 4 | 3585.08072 | -| terp1ap00ln66xr0dwxn552ueddjnffuv50ulzy6xnu | 0xe85effcf5a30ded71a74a2b996b6534a78ca3f9f | 2 | 4 | 3585.08072 | -| terp1n5z5khh2357lpvftuvwa75fkv9vux47yfmpk92 | 0x9d054b5eea8d3df0b12be31ddf51366159c357c4 | 2 | 4 | 3585.08072 | -| terp1p2qyur3g4ysjw0gnfpgjc6jq4ms72gmdwawux9 | 0x0a804e0e28a921273d1348512c6a40aee1e5236d | 2 | 4 | 3585.08072 | -| terp180e22z9mv6lh8846jpv0gd9jf2s6vrjqaxraxh | 0x3bf2a508bb66bf739eba9058f434b24aa1a60e40 | 2 | 4 | 3585.08072 | -| terp15s7n4kj3xwt3vdc6hsm6c5hgzupyx0jxsjc7m0 | 0xa43d3ada51339716371abc37ac52e81702433e46 | 2 | 4 | 3585.08072 | -| terp15cze8dhmqyls4qa26ta0mmgvv5hscx25d63pa5 | 0xa60593b6fb013f0a83aad2fafded0c652f0c1954 | 2 | 4 | 3585.08072 | -| terp1x9tn9zxkdasjfxcemagyvg5fj6r2elswyffz6f | 0x31573288d66f61249b19df504622899686acfe0e | 2 | 4 | 3585.08072 | -| terp1yrnyn4l9l2nwaqxlsd2qg0mcvcxvm0lqa2ap52 | 0x20e649d7e5faa6ee80df8354043f78660ccdbfe0 | 2 | 4 | 3585.08072 | -| terp1vzfxdzps3zz37gtnvyzzjzqu083kjdah03n6p3 | 0x609266883088851f2173610429081c79e36937b7 | 2 | 4 | 3585.08072 | -| terp1q8y75ejtd5rtc3sfemywwhwkqq3pu8pk2yma54 | 0x01c9ea664b6d06bc4609cec8e75dd600221e1c36 | 2 | 4 | 3585.08072 | -| terp1jut5ewwenyfu5m73me9khr0g2qzrs6v23w5w7q | 0x97174cb9d99913ca6fd1de4b6b8de8500438698a | 2 | 4 | 3585.08072 | -| terp1u5jyjd54qvqekeqctattnsr765vm8pjux9e3jp | 0xe52449369503019b64185f56b9c07ed519b3865c | 2 | 4 | 3585.08072 | -| terp1nmnwekemrjuvpxqp0lm3ahszegajgsj3lr24vs | 0x9ee6ecdb3b1cb8c098017ff71ede02ca3b244251 | 2 | 4 | 3585.08072 | -| terp1wvsf7lgy5kyzmtye7u2flssfkarhvxxc32xf4k | 0x73209f7d04a5882dac99f7149fc209b7477618d8 | 2 | 4 | 3585.08072 | -| terp18qtadc8dgwmpunpvs7luqq44xpjrqxmhshmj2w | 0x3817d6e0ed43b61e4c2c87bfc002b53064301b77 | 2 | 4 | 3585.08072 | -| terp1nlld7waut4ac5srkh3afmj8na7hvvk5x6rh0z6 | 0x9ffedf3bbc5d7b8a4076bc7a9dc8f3efaec65a86 | 2 | 4 | 3585.08072 | -| terp1cs4l9gavlf8je688w2nwq5ur6fmeyr8zgu4rhn | 0xc42bf2a3acfa4f2ce8e772a6e05383d277920ce2 | 2 | 4 | 3585.08072 | -| terp1d3terpzj8j97jfejcjdhqq60hqrcytpe0w53nz | 0x6c579184523c8be92732c49b70034fb807822c39 | 2 | 4 | 3585.08072 | -| terp16tnh5p6w3v83t34wraculm7j4h4hqxyuvl8aye | 0xd2e77a074e8b0f15c6ae1f71cfefd2adeb70189c | 2 | 4 | 3585.08072 | -| terp12amhwt9lgt2ue82526gr3l4s7wqlgqr8ta5mgu | 0x5777772cbf42d5cc9d54569038feb0f381f40067 | 2 | 4 | 3585.08072 | -| terp17ehwka4e88d5z8dmyyhe3g8h6qrxkr59ae988v | 0xf66eeb76b939db411dbb212f98a0f7d0066b0e85 | 2 | 4 | 3585.08072 | -| terp1nc6sahdmkuu40zscsgh6sdlzp956swwk5zn84j | 0x9e350eddbbb739578a18822fa837e20969a839d6 | 2 | 4 | 3585.08072 | -| terp1s8u35mrm4ct8zjcm47y9yct5nw8zwr0hq67pzf | 0x81f91a6c7bae16714b1baf885261749b8e270df7 | 2 | 4 | 3585.08072 | -| terp1ucts72hu9h9u3d222uzmvxsku2xk6yvnqaffja | 0xe6170f2afc2dcbc8b54a5705b61a16e28d6d1193 | 2 | 4 | 3585.08072 | -| terp14d3y9tazgpc8f49ce83c57900lymu3yhx37xly | 0xab6242afa2407074d4b8c9e38a78af7fc9be4497 | 2 | 4 | 3585.08072 | -| terp1q7u0lpl792uhuptd3mfg6lq827r24qpgytqmsk | 0x07b8ff87fe2ab97e056d8ed28d7c075786aa8028 | 2 | 4 | 3585.08072 | -| terp1pjfpqk82erndj6e0e8zcy8dkkhk2wa3s9kv7m4 | 0x0c921058eac8e6d96b2fc9c5821db6b5eca77630 | 2 | 4 | 3585.08072 | -| terp10knfhqz5eflemqfcnlpc8qtpmjfsq3etzkvrn3 | 0x7da69b8054ca7f9d81389fc3838161dc9300472b | 2 | 4 | 3585.08072 | -| terp1s6mxt62ds9087dvqkf0qfsxztguz3s7a42n582 | 0x86b665e94d815e7f3580b25e04c0c25a3828c3dd | 2 | 4 | 3585.08072 | -| terp1f6wl2jarmvj2yeraks72vz8yfpkfxup6ds7hkr | 0x4e9df54ba3db24a2647db43ca608e4486c93703a | 2 | 4 | 3585.08072 | -| terp1l5ec6g3qp3hcqakjvg8jpjljsxfy0vs2yqsgwp | 0xfd338d22200c6f8076d2620f20cbf2819247b20a | 2 | 4 | 3585.08072 | -| terp1wqzjze2ja6wkl7n5vml3pkjqe5jz9ssnmdkjp8 | 0x7005216552ee9d6ffa7466ff10da40cd2422c213 | 2 | 4 | 3585.08072 | -| terp1r96ux8jj0cam62cum87525a490fpyqzxmyl4h9 | 0x1975c31e527e3bbd2b1cd9fd4553b52bd2120046 | 2 | 4 | 3585.08072 | -| terp18felrf0r9sqhx7urjaazdj882p73f39yv2649r | 0x3a73f1a5e32c01737b83977a26c8e7507d14c4a4 | 2 | 4 | 3585.08072 | -| terp1qftyaq60p66flh9w2kk08akpnwr4amkthvgr40 | 0x02564e834f0eb49fdcae55acf3f6c19b875eeecb | 2 | 4 | 3585.08072 | -| terp1js8mw5drkav3en4xjl2anamt365qys5xqlq25n | 0x940fb751a3b7591ccea697d5d9f76b8ea8024286 | 2 | 4 | 3585.08072 | -| terp1jfamlw854efmggy85dvz3keeu24w983k7d9xtm | 0x927bbfb8f4ae53b42087a35828db39e2aae29e36 | 2 | 4 | 3585.08072 | -| terp1cx0m8j2z3g0eskf87vm7mfgmvxxkhyuuhy75t0 | 0xc19fb3c9428a1f985927f337eda51b618d6b939c | 2 | 4 | 3585.08072 | -| terp13ennp243wpjf2tslmw25jfqq4ytv8pyswe5ecs | 0x8e6730aab17064952e1fdb95492400a916c38490 | 2 | 4 | 3585.08072 | -| terp1l2j76w59crz0tf9elfq4l86658y0q9chv3yxae | 0xfaa5ed3a85c0c4f5a4b9fa415f9f5aa1c8f01717 | 2 | 4 | 3585.08072 | -| terp195mg665yk7gavd8xl8upjzxcsjzfl4pax02sc3 | 0x2d368d6a84b791d634e6f9f81908d884849fd43d | 2 | 4 | 3585.08072 | -| terp1jvly790wd0z98zfmzdszh9rnkqc9ayg02q3szg | 0x933e4f15ee6bc453893b13602b9473b0305e910f | 2 | 4 | 3585.08072 | -| terp1690fuyxv0lt35puzrl7ryfx0m5uhe0c6jgyrwg | 0xd15e9e10cc7fd71a07821ffc3224cfdd397cbf1a | 2 | 4 | 3585.08072 | -| terp1x6v0h56c00pzu8gh2c8sy2rwsfp8rmtc5z75as | 0x3698fbd3587bc22e1d17560f02286e824271ed78 | 2 | 4 | 3585.08072 | -| terp12d4ywna5tgpj29wf0eyh7az6f9gqhhdvhdxw76 | 0x536a474fb45a032515c97e497f745a49500bddac | 2 | 4 | 3585.08072 | -| terp1qhhrc56t83jq3zg5s5u4dzz8kq6yyjlge84m2c | 0x05ee3c534b3c640889148539568847b034424be8 | 2 | 4 | 3585.08072 | -| terp1a4zhv9zm7zu6zgekxtskfhtxlf4h3yzy42vdhq | 0xed4576145bf0b9a1233632e164dd66fa6b789044 | 2 | 4 | 3585.08072 | -| terp1k49skmkwy820jgsmrffndkzlyq3ecw89sr7njq | 0xb54b0b6ece21d4f9221b1a5336d85f20239c38e5 | 2 | 4 | 3585.08072 | -| terp1va5upnk02nyyhgztzsrklsanmmvpjza78tyke7 | 0x6769c0cecf54c84ba04b14076fc3b3ded8190bbe | 2 | 4 | 3585.08072 | -| terp1rp46m9q9wkgerrpjvhzdmvfgwseyh69vu0xy9z | 0x186bad94057591918c3265c4ddb12874324be8ac | 2 | 4 | 3585.08072 | -| terp1h6ewpu0pf4wrz4uh5xa64q0v88zvn3efw2crx7 | 0xbeb2e0f1e14d5c315797a1bbaa81ec39c4c9c729 | 2 | 4 | 3585.08072 | -| terp1xgruf72rhandpsqqrppjnc4t2s9h6vu7a5p2vl | 0x3207c4f943bf66d0c000184329e2ab540b7d339e | 2 | 4 | 3585.08072 | -| terp1l7n4yd22px4c50lvdh4p5t38nlz7p7qrjvnqwk | 0xffa752354a09ab8a3fec6dea1a2e279fc5e0f803 | 2 | 4 | 3585.08072 | -| terp1yjvr290sp0ynts4r7mu93wrp7wnkjvwqxy6vx6 | 0x24983515f00bc935c2a3f6f858b861f3a76931c0 | 2 | 4 | 3585.08072 | -| terp16thnq68h5ardezdryv5frmc6p35eutscx2cecc | 0xd2ef3068f7a746dc89a3232891ef1a0c699e2e18 | 2 | 4 | 3585.08072 | -| terp1y3n3um2dy2qw07lafw2tgw68gcdpxqvy9st2jh | 0x24671e6d4d2280e7fbfd4b94b43b47461a130184 | 2 | 4 | 3585.08072 | -| terp1kauxfz0ypwjz46pp3q6d0ca9n0gysfp5tga78e | 0xb7786489e40ba42ae8218834d7e3a59bd0482434 | 2 | 4 | 3585.08072 | -| terp192uew3jelltk7czmv7ze2dmh36nzfq4zx2qmma | 0x2ab9974659ffd76f605b67859537778ea62482a2 | 2 | 4 | 3585.08072 | -| terp1cg893dlacfh6w7rhl9ja56lhqdvzq9celejs0m | 0xc20e58b7fdc26fa77877f965da6bf70358201719 | 2 | 4 | 3585.08072 | -| terp1f9p9y8kdlfqq4pye3pkh26wxg78dtgsn36x23e | 0x4942521ecdfa400a8499886d7569c6478ed5a213 | 2 | 4 | 3585.08072 | -| terp16uzs7gjtgs7u46yeandz5qqm2t5hn0dejrqayq | 0xd7050f224b443dcae899ecda2a001b52e979bdb9 | 2 | 4 | 3585.08072 | -| terp1lxmx3ae6deupvjltfwryjltgaytktt5tctagms | 0xf9b668f73a6e78164beb4b86497d68e91765ae8b | 2 | 4 | 3585.08072 | -| terp1rh0sj4q2fw2yuza9y9dxukuhmsd23j7ngh4rgl | 0x1ddf09540a4b944e0ba5215a6e5b97dc1aa8cbd3 | 2 | 4 | 3585.08072 | -| terp1q2yk8gvmjkpte2znq8wtsqhxg9wy8cenm7gvqm | 0x028963a19b9582bca85301dcb802e6415c43e333 | 2 | 4 | 3585.08072 | -| terp1q9ujzkdussalvcdefcs8jy3mx8sexqra383ct9 | 0x01792159bc843bf661b94e2079123b31e193007d | 2 | 4 | 3585.08072 | -| terp1d7yh8qymjspsm4xfxr73rqh96hwde70s4jgcjl | 0x6f8973809b94030dd4c930fd1182e5d5dcdcf9f0 | 2 | 4 | 3585.08072 | -| terp1fdg47ztpuk3q0pew8q94f8zk6dfpaps770lvht | 0x4b515f0961e5a207872e380b549c56d3521e861e | 2 | 4 | 3585.08072 | -| terp1ep62wj3phm9gv7yws9zc8pv3f5827scrx52jqx | 0xc874a74a21beca86788e81458385914d0eaf4303 | 2 | 4 | 3585.08072 | -| terp10kvtf5tnxqpf5r2e64g368jqae4lckwf80yqxk | 0x7d98b4d17330029a0d59d5511d1e40ee6bfc59c9 | 2 | 4 | 3585.08072 | -| terp12waltfp74nsazahv07g5mglwq806sgu04t6fga | 0x53bbf5a43eace1d176ec7f914da3ee01dfa8238f | 2 | 4 | 3585.08072 | -| terp17gy9l6p2myhvk2txyx0feke3zf204646es66rs | 0xf2085fe82ad92ecb2966219e9cdb311254faeaba | 2 | 4 | 3585.08072 | -| terp1g2x8pmm5elslpduvnkrluqfm673ttu332v8m48 | 0x428c70ef74cfe1f0b78c9d87fe013bd7a2b5f231 | 2 | 4 | 3585.08072 | -| terp1pj98d7frxpddmk8vw3ec7zcxx0ndph0cs059jq | 0x0c8a76f923305addd8ec74738f0b0633e6d0ddf8 | 2 | 4 | 3585.08072 | -| terp18nv8x9096vcwfl5a8wl6kn6cgx4uc6f3y2cnyd | 0x3cd87315e5d330e4fe9d3bbfab4f5841abcc6931 | 2 | 4 | 3585.08072 | -| terp1zl9mdvzjtvmrafa0v0dvz8uxtthpux9zu0v4pd | 0x17cbb6b0525b363ea7af63dac11f865aee1e18a2 | 2 | 4 | 3585.08072 | -| terp12mwelpjt4d5zqfnzyeu4kv2a8cdlfnst0nngfs | 0x56dd9f864bab6820266226795b315d3e1bf4ce0b | 2 | 4 | 3585.08072 | -| terp12nnquadff4jfq4hfl7wmask5nq4hvqlvuwxfqn | 0x54e60e75a94d649056e9ff9dbec2d4982b7603ec | 2 | 4 | 3585.08072 | -| terp12f08y0z9xr2vnqq7tgv9z6fqla2nndf5y7gsvr | 0x525e723c4530d4c9801e5a18516920ff5539b534 | 2 | 4 | 3585.08072 | -| terp19tes56x6585csh29ffnq63k3096uap7fxfvasa | 0x2af30a68daa1e9885d454a660d46d17975ce87c9 | 2 | 4 | 3585.08072 | -| terp137x83wvm7xsd8r0x9qj95qpjgcxuupl9ufvkfg | 0x8f8c78b99bf1a0d38de628245a0032460dce07e5 | 2 | 4 | 3585.08072 | -| terp15w8vxl2cnwmgwh5jtnwsz9586zkr7ks4k6je2u | 0xa38ec37d589bb6875e925cdd011687d0ac3f5a15 | 2 | 4 | 3585.08072 | -| terp1av54209a03fxtgw7qauhry8atnc9zerr32ntes | 0xeb29553cbd7c5265a1de07797190fd5cf0516463 | 2 | 4 | 3585.08072 | -| terp1wgwufgnlkussvewjdva55prppx6rm2eu34delw | 0x721dc4a27fb7210665d26b3b4a046109b43dab3c | 2 | 4 | 3585.08072 | -| terp1llhl83l0e6pj68shyuvjhswa04eqdfmkm9rvgw | 0xffeff3c7efce832d1e1727192bc1dd7d7206a776 | 2 | 4 | 3585.08072 | -| terp13t78l5w8xj5thnm5ny7jdqt2ephvxla0lstw2h | 0x8afc7fd1c734a8bbcf74993d26816ac86ec37faf | 2 | 4 | 3585.08072 | -| terp1r2753ldtwzjk52703394svn8hc7940wwselule | 0x1abd48fdab70a56a2bcf8c4b583267be3c5abdce | 2 | 4 | 3585.08072 | -| terp1s2ek0qy3y4v0sgqmwp4l782ag3ldseulakzt60 | 0x82b36780912558f8201b706bff1d5d447ed8679f | 2 | 4 | 3585.08072 | -| terp1rfvah2m88ftelwxjj3evsrynza50jh09ghwrs5 | 0x1a59dbab673a579fb8d29472c80c931768f95de5 | 2 | 4 | 3585.08072 | -| terp1jmfnv5d29mgely3u6t3dyhlyaj7rjlfx8vlxwm | 0x96d33651aa2ed19f923cd2e2d25fe4ecbc397d26 | 2 | 4 | 3585.08072 | -| terp1kshpm7te66dcjdgjff7uw9aflnwatufcdlnw8s | 0xb42e1df979d69b8935124a7dc717a9fcddd5f138 | 2 | 4 | 3585.08072 | -| terp1n2rncensjmly5utyhqd3qg7yrz9m2tk86vhyq7 | 0x9a873c667096fe4a7164b81b1023c4188bb52ec7 | 2 | 4 | 3585.08072 | -| terp1ac37ckuwjjs2d9wtgurzwdaktrlzyk3qwu4j6c | 0xee23ec5b8e94a0a695cb47062737b658fe225a20 | 2 | 4 | 3585.08072 | -| terp1lp2p6urtrg4v858lyhy6404lykv7cxu6rjk9ec | 0xf8541d706b1a2ac3d0ff25c9aabebf2599ec1b9a | 2 | 4 | 3585.08072 | -| terp1tv3sas0lcdcf9lkag9cggxqxuusz5rmmmf0u2y | 0x5b230ec1ffc37092fedd4170841806e7202a0f7b | 2 | 4 | 3585.08072 | -| terp194xezmrhqawhx6sz8xk4pvtwyggqe36873pt27 | 0x2d4d916c77075d736a0239ad50b16e22100cc747 | 2 | 4 | 3585.08072 | -| terp17qjhj3a2h2xxk0358q9kegg5zfsluvmqp0rxhn | 0xf0257947aaba8c6b3e34380b6ca1141261fe3360 | 2 | 4 | 3585.08072 | -| terp1mt67hghn60wyyttzvvhun4w52l9cwkuvv74fh5 | 0xdaf5eba2f3d3dc422d62632fc9d5d457cb875b8c | 2 | 4 | 3585.08072 | -| terp1nwp4ct0ujzkumdukms5m7t79zvhwzle6a8hfhq | 0x9b835c2dfc90adcdb796dc29bf2fc5132ee17f3a | 2 | 4 | 3585.08072 | -| terp1njyx7s94lakqdm5d52zdzern2w9rvyk6d9f8ha | 0x9c886f40b5ff6c06ee8da284d16473538a3612da | 2 | 4 | 3585.08072 | -| terp12mlexdq78alm2gxeehc6lumz37c7g387knxlq7 | 0x56ff93341e3f7fb520d9cdf1aff3628fb1e444fe | 2 | 4 | 3585.08072 | -| terp1vlq28z5acapz06wgtep27g9dlkzfkfvfve2v5r | 0x67c0a38a9dc74227e9c85e42af20adfd849b2589 | 2 | 4 | 3585.08072 | -| terp1mv6e423rw9p2jxcmk9q9g5l8yscxla3kz5xp33 | 0xdb359aaa237142a91b1bb1405453e724306ff636 | 2 | 4 | 3585.08072 | -| terp1n3c04mtqzhyjy8nutlmnfc7xh59z7etkdcedrk | 0x9c70faed6015c9221e7c5ff734e3c6bd0a2f6576 | 2 | 4 | 3585.08072 | -| terp1ml6c6x42f2shf36ec5w5q2mweeuxdgl4jurp5c | 0xdff58d1aaa4aa174c759c51d402b6ece7866a3f5 | 2 | 4 | 3585.08072 | -| terp17qd57u2ndz0v9af6fzqcak50ws9x7sdnm0gfqz | 0xf01b4f7153689ec2f53a48818eda8f740a6f41b3 | 2 | 4 | 3585.08072 | -| terp1zq8cqw9lmly8rk0077wneuql78f87smqlkdw72 | 0x100f8038bfdfc871d9eff79d3cf01ff1d27f4360 | 2 | 4 | 3585.08072 | -| terp1dsvnpgzaph64zc8v770ekmrehvmcxlwx7y9rx3 | 0x6c1930a05d0df55160ecf79f9b6c79bb37837dc6 | 2 | 4 | 3585.08072 | -| terp1xekswsda0wv56dz7zz26zjjkpuj6p5s0x2g8an | 0x366d0741bd7b994d345e1095a14a560f25a0d20f | 2 | 4 | 3585.08072 | -| terp1ylxv0mqr5acu9ce953tpqjp2p47s03889x5x2h | 0x27ccc7ec03a771c2e325a45610482a0d7d07c4e7 | 2 | 4 | 3585.08072 | -| terp1yxw6g6k7jpccp9jxadzsrsathxwmr6dgysnt0j | 0x219da46ade9071809646eb4501c3abb99db1e9a8 | 2 | 4 | 3585.08072 | -| terp1tl0tfm6r2g68mp3ulz6g5vs8fukgv2sfqc7mw4 | 0x5fdeb4ef4352347d863cf8b48a32074f2c862a09 | 2 | 4 | 3585.08072 | -| terp13wcw9dw0t6jdd6ghnks992d9j0e87jt5248zz7 | 0x8bb0e2b5cf5ea4d6e9179da052a9a593f27f4974 | 2 | 4 | 3585.08072 | -| terp1m9032c5m0y38g7ngw7kmfh7ufnduhgcwg7lhpf | 0xd95f15629b7922747a6877adb4dfdc4cdbcba30e | 2 | 4 | 3585.08072 | -| terp1667jxn3czcctpda2rzncgjxyyy5ay4t08d0ju2 | 0xd6bd234e381630b0b7aa18a78448c42129d2556f | 2 | 4 | 3585.08072 | -| terp17yqruzsdczc0g75zgd9h2kfgqyqv58apzhcfsz | 0xf1003e0a0dc0b0f47a82434b7559280100ca1fa1 | 1 | 2 | 1792.54036 | -| terp16gslffkuhv075nzut2j4rvsj7gpvxg07mtnf2r | 0xd221f4a6dcbb1fea4c5c5aa551b212f202c321fe | 1 | 2 | 1792.54036 | -| terp1zl5qkn3rj2vvfs3l23zm2qta0kgaytl95tzrnu | 0x17e80b4e239298c4c23f5445b5017d7d91d22fe5 | 1 | 2 | 1792.54036 | -| terp1zsuhz6vwcxakrf6dmd6nu7z0t36aux6ks49jsr | 0x143971698ec1bb61a74ddb753e784f5c75de1b56 | 1 | 2 | 1792.54036 | -| terp1kxasjrenyapuktrpsfclpgrf6mg0y6uxwrnz7p | 0xb1bb090f332743cb2c618271f0a069d6d0f26b86 | 1 | 2 | 1792.54036 | -| terp1z8wztgzqc073ym9k6gkr5gglchr9u6lq9xzd8p | 0x11dc25a040c3fd126cb6d22c3a211fc5c65e6be0 | 1 | 2 | 1792.54036 | -| terp1z8ct8jszyza2f6jydr3wxxqwm5sh6aykhn74q9 | 0x11f0b3ca0220baa4ea4468e2e3180edd217d7496 | 1 | 2 | 1792.54036 | -| terp15mw3gn5qs75els3hes35xcvaql60ehc5jrer6p | 0xa6dd144e8087a99fc237cc2343619d07f4fcdf14 | 1 | 2 | 1792.54036 | -| terp184rrs6lvcy50jq88q7cymsd683q5fdpmj66pn7 | 0x3d46386becc128f900e707b04dc1ba3c4144b43b | 1 | 2 | 1792.54036 | -| terp18mvjkax04vyp0ama7gc92sdj0xl83wfrm29nag | 0x3ed92b74cfab0817f77df2305541b279be78b923 | 1 | 2 | 1792.54036 | -| terp1vehuplj8dw64uxlhmkgq4d34gjxdm4p9l7rw3t | 0x666fc0fe476bb55e1bf7dd900ab635448cddd425 | 1 | 2 | 1792.54036 | -| terp1tj3sx28ptwl22hx3pkw3wr8qvzez8evcy04asn | 0x5ca30328e15bbea55cd10d9d170ce060b223e598 | 1 | 2 | 1792.54036 | -| terp17cfp2jvhsq30y6lz6n7s67qwk6pj9y6rg3krud | 0xf6121549978022f26be2d4fd0d780eb683229343 | 1 | 2 | 1792.54036 | -| terp1njf89mswng57xx76clfp48v69g749clgqs9etm | 0x9c9272ee0e9a29e31bdac7d21a9d9a2a3d52e3e8 | 1 | 2 | 1792.54036 | -| terp1sf5v77putqya5zgrt0mrc6j3sv5vyljcrl4yj5 | 0x8268cf783c5809da09035bf63c6a518328c27e58 | 1 | 2 | 1792.54036 | -| terp1tm3xq6z7qekqtzft4trt8mgre0gaeegufjzwr5 | 0x5ee260685e066c05892baac6b3ed03cbd1dce51c | 1 | 2 | 1792.54036 | -| terp1j7z0jelddw2c77kdjjchj38np4ux3xcss5ajh8 | 0x9784f967ed6b958f7acd94b17944f30d78689b10 | 1 | 2 | 1792.54036 | -| terp1w97qg92kjlf0t2rcexkherjqxgkpmm8c2u0dyf | 0x717c04155697d2f5a878c9ad7c8e40322c1decf8 | 1 | 2 | 1792.54036 | -| terp13qeu55urg30pjjuawrzd3hfl45mga7s8sp6u7e | 0x8833ca5383445e194b9d70c4d8dd3fad368efa07 | 1 | 2 | 1792.54036 | -| terp1sgz7esnyjhl4tcwkmp84n0vzctwa6erd88r738 | 0x8205ecc26495ff55e1d6d84f59bd82c2dddd646d | 1 | 2 | 1792.54036 | -| terp18zj27xxse0zqt2hqerd302sklnl6qehztwewjr | 0x38a4af18d0cbc405aae0c8db17aa16fcffa066e2 | 1 | 2 | 1792.54036 | -| terp14sl57qjd0nxy5sx0za8nvsgh36k0l5g5suxahe | 0xac3f4f024d7ccc4a40cf174f3641178eacffd114 | 1 | 2 | 1792.54036 | -| terp1lvvyy870atk3h9evm34wk2jd82ys4g00a6nmel | 0xfb18421fcfeaed1b972cdc6aeb2a4d3a890aa1ef | 1 | 2 | 1792.54036 | -| terp1c4rnr8lmy4m0jf2z6k7zkygf8mtsk0mqfheukw | 0xc547319ffb2576f92542d5bc2b11093ed70b3f60 | 1 | 2 | 1792.54036 | -| terp16whl3z4mcpa7p4lyv774xh850anhjv6xmq766j | 0xd3aff88abbc07be0d7e467bd535cf47f67793346 | 1 | 2 | 1792.54036 | -| terp14f9q076ufm9g00qgp7n5qs3yk94xalec09gll4 | 0xaa4a07fb5c4eca87bc080fa7404224b16a6eff38 | 1 | 2 | 1792.54036 | -| terp10ar7l4vjny8j37f86llptywjjuel6w5fd754mm | 0x7f47efd592990f28f927d7fe1591d29733fd3a89 | 1 | 2 | 1792.54036 | -| terp16cwrf6gnqx0h7ez7e28nk6x9snczsjv4ghcpv4 | 0xd61c34e913019f7f645eca8f3b68c584f0284995 | 1 | 2 | 1792.54036 | -| terp1sa6lpz2cvnythlw7lcfax3f6mqkm4tyzjhahua | 0x8775f0895864c8bbfddefe13d3453ad82dbaac82 | 1 | 2 | 1792.54036 | -| terp1hnjjz687pllpntvdrm7edzlhx7xghcewww5k7p | 0xbce52168fe0ffe19ad8d1efd968bf7378c8be32e | 1 | 2 | 1792.54036 | -| terp1dj8ult83my8cv22k7mhprqe5g5rm5mkrw0hdcn | 0x6c8fcfacf1d90f862956f6ee1183344507ba6ec3 | 1 | 2 | 1792.54036 | -| terp192kq20ld0xa5nxtkke6j6aq9fgf3a9ahuwzfpy | 0x2aac053fed79bb499976b6752d74054a131e97b7 | 1 | 2 | 1792.54036 | -| terp1thz9vyf9ljkzqvxswvqu2q2nelnzgwgmte00mm | 0x5dc4561125fcac2030d07301c50153cfe624391b | 1 | 2 | 1792.54036 | -| terp12ts5ar0usl5gwh89ax55qx05j7uzk0spcra374 | 0x52e14e8dfc87e8875ce5e9a94019f497b82b3e01 | 1 | 2 | 1792.54036 | -| terp1236kg7erjvegan28kqjk0q3kt3l597c4cqr7qu | 0x5475647b2393328ecd47b0256782365c7f42fb15 | 1 | 2 | 1792.54036 | -| terp1retswh9yyt9l75rqc4dlgwd2jts230hre6glxs | 0x1e57075ca422cbff5060c55bf439aa92e0a8bee3 | 1 | 2 | 1792.54036 | -| terp1senrds55sahd76zmg3rcrrr2rusl0454f579z2 | 0x866636c294876edf685b4447818c6a1f21f7d695 | 1 | 2 | 1792.54036 | -| terp1v758xn6aj77yvt0eydr27jefksta88vhz3esdq | 0x67a8734f5d97bc462df92346af4b29b417d39d97 | 1 | 2 | 1792.54036 | -| terp15pzc395tqevgvafh8ghtk9f9k2r5q8dx3kwpv4 | 0xa04588968b06588675373a2ebb1525b287401da6 | 1 | 2 | 1792.54036 | -| terp1twyx8fekh8cyftufz8vxftrp2p4f5zndhzc43p | 0x5b8863a736b9f044af8911d864ac61506a9a0a6d | 1 | 2 | 1792.54036 | -| terp1stklgwclvne5p9nxqxr5ykcnthycl4z5lhp50w | 0x82edf43b1f64f34096660187425b135dc98fd454 | 1 | 2 | 1792.54036 | -| terp1s569usy4mlta2ff2dx56w5m6lksfky5qcluv63 | 0x85345e4095dfd7d5252a69a9a7537afda09b1280 | 1 | 2 | 1792.54036 | -| terp1snx74prjt9pu60rck26c32eeg24c39j9qnajnh | 0x84cdea84725943cd3c78b2b588ab3942ab889645 | 1 | 2 | 1792.54036 | -| terp1uyddu02ttvp5q4q49y2uatmhwqs9q8yjmhlpdu | 0xe11ade3d4b5b034054152915ceaf777020501c92 | 1 | 2 | 1792.54036 | -| terp1urz9uht8cp6j3l8x5w9lryr77j59d6g73pd9n9 | 0xe0c45e5d67c07528fce6a38bf1907ef4a856e91e | 1 | 2 | 1792.54036 | -| terp13rz82xv0gmj5ntcg68rktysantxy8mva756jkx | 0x88c475198f46e549af08d1c765921d9acc43ed9d | 1 | 2 | 1792.54036 | -| terp1cj4g9r3ahu2a53a385rvmr02cnkyquvhep6smw | 0xc4aa828e3dbf15da47b13d06cd8deac4ec407197 | 1 | 2 | 1792.54036 | -| terp1pqezyxqxmaf07e6elu5re4r7k54cdsh67z7a6t | 0x0832221806df52ff6759ff283cd47eb52b86c2fa | 1 | 2 | 1792.54036 | -| terp1jvfhmt039e93au9d7636x6ca35h05qr559rvg4 | 0x93137dadf12e4b1ef0adf6a3a36b1d8d2efa0074 | 1 | 2 | 1792.54036 | -| terp12p5y4l8lgylrx984k0wncddwa8q667976nlz8k | 0x50684afcff413e3314f5b3dd3c35aee9c1ad78be | 1 | 2 | 1792.54036 | -| terp1ca078rwwvaw2nzel87mwjspwea0pyr2usjcapv | 0xc75fe38dce675ca98b3f3fb6e9402ecf5e120d5c | 1 | 2 | 1792.54036 | -| terp1jp9hxq0vrdml94u463ra4s355zlskfwlqcuryf | 0x904b7301ec1b77f2d795d447dac234a0bf0b25df | 1 | 2 | 1792.54036 | -| terp17zv0xta29mtj2c4cwu28yyhjf3snr4d86ncu4g | 0xf098f32faa2ed72562b877147212f24c6131d5a7 | 1 | 2 | 1792.54036 | -| terp120k043mlp8np8a2pvqpf0wrndtu45v6atzgvhe | 0x53ecfac77f09e613f541600297b8736af95a335d | 1 | 2 | 1792.54036 | -| terp12nu0fqxemp5d7vlua04hzuwluefmukl42ansy0 | 0x54f8f480d9d868df33fcebeb7171dfe653be5bf5 | 1 | 2 | 1792.54036 | -| terp1zvtuvtuehh5m7swucqupkh9dqnxa2zljahdm7u | 0x1317c62f99bde9bf41dcc0381b5cad04cdd50bf2 | 1 | 2 | 1792.54036 | -| terp1awukltckac6vlc5cee0eq3lxjamjyjuj0ygdma | 0xebb96faf16ee34cfe298ce5f9047e69777224b92 | 1 | 2 | 1792.54036 | -| terp1ynme7xcmw07n7eh54j474pk0emaa2axzrszvwu | 0x24f79f1b1b73fd3f66f4acabea86cfcefbd574c2 | 1 | 2 | 1792.54036 | -| terp15t3dnacz5n0cyar29c4a36wdw6j8vznjcuhsw6 | 0xa2e2d9f702a4df82746a2e2bd8e9cd76a4760a72 | 1 | 2 | 1792.54036 | -| terp1we6jj9znmtcztnh322l0w2tdfmuawfg5rlg4l4 | 0x7675291453daf025cef152bef7296d4ef9d72514 | 1 | 2 | 1792.54036 | -| terp1wapygdlryr78p2cymxp7ykw2dehzqhyxd554p4 | 0x77424437e320fc70ab04d983e259ca6e6e205c86 | 1 | 2 | 1792.54036 | -| terp1p8wy0s7zrgglg8395pvvrh7q09gkv8pzauehcj | 0x09dc47c3c21a11f41e25a058c1dfc07951661c22 | 1 | 2 | 1792.54036 | -| terp1h64dhl3wg67a2ta33fz7q0mzp5sgdcd3wdxgss | 0xbeaadbfe2e46bdd52fb18a45e03f620d2086e1b1 | 1 | 2 | 1792.54036 | -| terp17ypf0rsvj5s844hw95uarrc7wjta384d5c04jr | 0xf102978e0c95207ad6ee2d39d18f1e7497d89ead | 1 | 2 | 1792.54036 | -| terp1fnla4zphywh7hayary2x4s3ehq0a5gjvu8auhu | 0x4cffda883723afebf49d19146ac239b81fda224c | 1 | 2 | 1792.54036 | -| terp147k0w9jvjyq04hq2glue6snxg4nazq970h68hp | 0xafacf7164c9100fadc0a47f99d42664567d100be | 1 | 2 | 1792.54036 | -| terp1ecr28eqjfh9r0qjsymda3ln00heh9z2wzxh9kl | 0xce06a3e4124dca37825026dbd8fe6f7df372894e | 1 | 2 | 1792.54036 | -| terp1tz3ctsdp30mnlunr75c0qr8wfmwcsm3the2mxr | 0x58a385c1a18bf73ff263f530f00cee4edd886e2b | 1 | 2 | 1792.54036 | -| terp1jjzdcmx7hlknlkglvft4w45eaxt3pu54ldhjn6 | 0x9484dc6cdebfed3fd91f6257575699e99710f295 | 1 | 2 | 1792.54036 | -| terp1u55dpxeqqdy5q0k5735a8y6p7ayrtd87annh0l | 0xe528d09b200349403ed4f469d39341f74835b4fe | 1 | 2 | 1792.54036 | -| terp1xh3mhx0fdk97p0cw69f8lp6mdeykfczfykdtsx | 0x35e3bb99e96d8be0bf0ed1527f875b6e4964e049 | 1 | 2 | 1792.54036 | -| terp1eeqwwvwgd9u77vnf0neux3n6e0cgmsvxy2agjq | 0xce40e731c86979ef32697cf3c3467acbf08dc186 | 1 | 2 | 1792.54036 | -| terp1336vx9f7s2dfcltqh5zhkf7javez9hwlg8clzg | 0x8c74c3153e829a9c7d60bd057b27d2eb3222dddf | 1 | 2 | 1792.54036 | -| terp14ta3vsje6fcjy5c2aaf4mng9nadnmjzye5s6mr | 0xaafb164259d27122530aef535dcd059f5b3dc844 | 1 | 2 | 1792.54036 | -| terp1m0h7u5tsy42eu7yc6wjg7xpzrsed8l84eyhhjz | 0xdbefee517025559e7898d3a48f18221c32d3fcf5 | 1 | 2 | 1792.54036 | -| terp1ep67epzy3wczd24hpnjj629npy0tvh5z2ar760 | 0xc875ec84448bb026aab70ce52d28b3091eb65e82 | 1 | 2 | 1792.54036 | -| terp1uc35qr5z7ejd7gwxxwqu93w27klpxnd8l8e7p6 | 0xe623400e82f664df21c63381c2c5caf5be134da7 | 1 | 2 | 1792.54036 | -| terp1jvg8kp0l88cn8phtty2dk8yf4fg2j6r028ndqd | 0x93107b05ff39f13386eb5914db1c89aa50a9686f | 1 | 2 | 1792.54036 | -| terp1n42xugxdwkmzyanc0g0ymv4e8ymr8ckkwlf5ct | 0x9d546e20cd75b62276787a1e4db2b9393633e2d6 | 1 | 2 | 1792.54036 | -| terp106948x2440na7627sadrskz2yfgamerrdn08y2 | 0x7e8b539955abe7df695e875a38584a2251dde463 | 1 | 2 | 1792.54036 | -| terp1t674w6jak0vdt4yhpfek27pk5apz8pkcf5vumz | 0x5ebd576a5db3d8d5d4970a73657836a7422386d8 | 1 | 2 | 1792.54036 | -| terp195hcpm9s0uq4xtqyf52z8wunp7d6facq89uc0t | 0x2d2f80ecb07f01532c044d1423bb930f9ba4f700 | 1 | 2 | 1792.54036 | -| terp1llyhn0mwm9u9c4azvg5klet7uen0v6cp00utwe | 0xffc979bf6ed9785c57a262296fe57ee666f66b01 | 1 | 2 | 1792.54036 | -| terp1sjcj44yuqjurn0085pfm7rkktvsavk2pf3h0cl | 0x84b12ad49c04b839bde7a053bf0ed65b21d65941 | 1 | 2 | 1792.54036 | -| terp1wkqj7ayt2l68f5ymx6eljah9s74wa8dgpwhzw4 | 0x75812f748b57f474d09b36b3f976e587aaee9da8 | 1 | 2 | 1792.54036 | -| terp1akmv93xve2t65lwnj69epvw5qd6zpjj4ms88gd | 0xedb6c2c4ccca97aa7dd3968b90b1d4037420ca55 | 1 | 2 | 1792.54036 | -| terp1s0g57d4s7hc57558afe8hqvl4y4fk2vx5qf45k | 0x83d14f36b0f5f14f5287ea727b819fa92a9b2986 | 1 | 2 | 1792.54036 | -| terp19cv46urzzjdyz8299ryz96ts5gdv9q2fd8sdwm | 0x2e195d7062149a411d4528c822e970a21ac28149 | 1 | 2 | 1792.54036 | -| terp1k800pg7jxpe4vy9vegh9he4r82kwdwhd30htm9 | 0xb1def0a3d230735610acca2e5be6a33aace6baed | 1 | 2 | 1792.54036 | -| terp17z76r9rdfvkw762r5plcs98tkpd07r8s3gcx7e | 0xf0bda1946d4b2cef6943a07f8814ebb05aff0cf0 | 1 | 2 | 1792.54036 | -| terp1l6vdfjwtxupln7sl4eecqju0atdu7tzgjlke78 | 0xfe98d4c9cb3703f9fa1fae73804b8feadbcf2c48 | 1 | 2 | 1792.54036 | -| terp1ysscq4tgnqw6rj5p5tzftdgay0n8sp47r3z384 | 0x2421805568981da1ca81a2c495b51d23e67806be | 1 | 2 | 1792.54036 | -| terp16ga6m4fkl6ljvz3kzw25cyqu9v48fk4n4mj8eu | 0xd23badd536febf260a3613954c101c2b2a74dab3 | 1 | 2 | 1792.54036 | -| terp17u6lhwlujmtaf56radynpaz9eh6hefw85qv8kv | 0xf735fbbbfc96d7d4d343eb4930f445cdf57ca5c7 | 1 | 2 | 1792.54036 | -| terp14j3642yfxryxjaf4neurgaxt8ctx94n54cnjpm | 0xaca3aaa88930c86975359e783474cb3e1662d674 | 1 | 2 | 1792.54036 | -| terp1a0kfrr2tkgkuw53pmpj7v3ddmm2ww252p7z75r | 0xebec918d4bb22dc75221d865e645added4e72a8a | 1 | 2 | 1792.54036 | -| terp1x4wjglhjprhvwfyp89y5grwj59krfz84u5snyn | 0x355d247ef208eec724813949440dd2a16c3488f5 | 1 | 2 | 1792.54036 | -| terp14af7fw6qdxj5pxnh66p2uvnm4nh8324grp5x9j | 0xaf53e4bb4069a5409a77d682ae327bacee78aaa8 | 1 | 2 | 1792.54036 | -| terp10agg3lfzkykgak8sl2qw9r0ffnd0wxsk0a5yk9 | 0x7f5088fd22b12c8ed8f0fa80e28de94cdaf71a16 | 1 | 2 | 1792.54036 | -| terp17qtuwc5l8k9plhu005pmtcth8e5dgu5t8ujfa6 | 0xf017c7629f3d8a1fdf8f7d03b5e1773e68d4728b | 1 | 2 | 1792.54036 | -| terp16jsgeur8eq73ktxp6f5rz45m0pggqjl8qengyv | 0xd4a08cf067c83d1b2cc1d26831569b7850804be7 | 1 | 2 | 1792.54036 | -| terp1zaf2kkr2lhlpg9rcyp4wj38tj9rr2fzqjthmmu | 0x1752ab586afdfe141478206ae944eb9146352440 | 1 | 2 | 1792.54036 | -| terp1epgan34x5kl3p9ynmjgfu0a2xy0qkgsdshuc3c | 0xc851d9c6a6a5bf109493dc909e3faa311e0b220d | 1 | 2 | 1792.54036 | -| terp1t04m8s5uz3zekddrthrvmydlrqea2f64qzuslz | 0x5bebb3c29c14459b35a35dc6cd91bf1833d52755 | 1 | 2 | 1792.54036 | -| terp10wa28nnqcatl0zkk33vpddwdpwynh54ledqhlf | 0x7bbaa3ce60c757f78ad68c5816b5cd0b893bd2bf | 1 | 2 | 1792.54036 | -| terp1nk7cpknd0zvplz93gp4fvszgs4e99dqmg7afv7 | 0x9dbd80da6d78981f88b1406a964048857252b41b | 1 | 2 | 1792.54036 | -| terp1lxlg470kfygn5yzjj5nwf3xmurcljq5fv45pvd | 0xf9be8af9f649113a10529526e4c4dbe0f1f90289 | 1 | 2 | 1792.54036 | -| terp18z39n4479hmuz9qpl6arxshwp6j083vvk0uxe6 | 0x38a259d6be2df7c11401feba3342ee0ea4f3c58c | 1 | 2 | 1792.54036 | -| terp1yer7pr93z0p936wgnfc2k70gz2xjqt8e6w7srd | 0x2647e08cb113c258e9c89a70ab79e8128d202cf9 | 1 | 2 | 1792.54036 | -| terp1luu90ysaantvsuwplnnvg99p5ycgv43cdlh4rl | 0xff3857921decd6c871c1fce6c414a1a130865638 | 1 | 2 | 1792.54036 | -| terp16xs9pt7c6fctwgdsfs22jmua4eyzw2slrex609 | 0xd1a050afd8d270b721b04c14a96f9dae48272a1f | 1 | 2 | 1792.54036 | -| terp164e0d5gtrxxqzatlvtn3v7yr45l8suhvqsewrz | 0xd572f6d10b198c01757f62e7167883ad3e7872ec | 1 | 2 | 1792.54036 | -| terp1yh6rtw9gaq26qqn0kspp5utxhhh6chvhdtdu25 | 0x25f435b8a8e815a0026fb4021a7166bdefac5d97 | 1 | 2 | 1792.54036 | -| terp1hl6lef3zjdjg4xqrwu9jyd3026ql4vgsvrsy3n | 0xbff5fca62293648a9803770b22362f5681fab110 | 1 | 2 | 1792.54036 | -| terp1ecmmrptjrdld0hwk6paautleezat54ge497sw3 | 0xce37b185721b7ed7ddd6d07bde2ff9c8baba5519 | 1 | 2 | 1792.54036 | -| terp1kgervrfhxck0q3vtc9tg88l07xcf2ky3m4tjkt | 0xb232360d37362cf0458bc156839feff1b0955891 | 1 | 2 | 1792.54036 | -| terp1wmg3vzeu0nvhutslymk8fa4zxucy6w7ty89azs | 0x76d1160b3c7cd97e2e1f26ec74f6a237304d3bcb | 1 | 2 | 1792.54036 | -| terp1uppmu0xl3lqv8jmzk3e344dswshcj4e5qy5zrx | 0xe043be3cdf8fc0c3cb62b4731ad5b0742f895734 | 1 | 2 | 1792.54036 | -| terp1tfhypv5m7g8y7c88hm94wxh444tedg7yxzgh28 | 0x5a6e40b29bf20e4f60e7becb571af5ad5796a3c4 | 1 | 2 | 1792.54036 | -| terp1zus7gjylu2e2n2xf2ftq9rnlxqju2ptf0vgdt2 | 0x1721e4489fe2b2a9a8c95256028e7f3025c50569 | 1 | 2 | 1792.54036 | -| terp17zu4hspv9cu3ly4gnfm90q2y20j0n4mwlg6gkh | 0xf0b95bc02c2e391f92a89a7657814453e4f9d76e | 1 | 2 | 1792.54036 | -| terp1rv7sf0d3cfscluxwg077qrp6rnd5rrg3e0w6uz | 0x1b3d04bdb1c2618ff0ce43fde00c3a1cdb418d11 | 1 | 2 | 1792.54036 | -| terp1f8e3lu079x6uc6frj8u6p2qu2x27dl5zjs0y9h | 0x49f31ff1fe29b5cc692391f9a0a81c5195e6fe82 | 1 | 2 | 1792.54036 | -| terp1ljwvuyg4h202a4ygcdlsn68u3tq87lzwwuapgf | 0xfc9cce1115ba9eaed488c37f09e8fc8ac07f7c4e | 1 | 2 | 1792.54036 | -| terp1wlkpe0tyumr78dukt54y0fnsj4s9f3hf3hx20g | 0x77ec1cbd64e6c7e3b7965d2a47a670956054c6e9 | 1 | 2 | 1792.54036 | -| terp17h63c8c6xvxjm5uxp58ff0qwl3ckxpwhddhku0 | 0xf5f51c1f1a330d2dd3860d0e94bc0efc716305d7 | 1 | 2 | 1792.54036 | -| terp1xksunv0dzgejhe43440jxtrqwxk07gv9z4kxfe | 0x35a1c9b1ed12332be6b1ad5f232c6071acff2185 | 1 | 2 | 1792.54036 | -| terp1d7kaz334em2r4rpw4ugcjnf8w9fy4skz8aykvj | 0x6fadd14635ced43a8c2eaf11894d2771524ac2c2 | 1 | 2 | 1792.54036 | -| terp1u63dfudc0mkg2dwjvx8t9059e6tq5pj3rh3mfn | 0xe6a2d4f1b87eec8535d2618eb2be85ce960a0651 | 1 | 2 | 1792.54036 | -| terp1g3xluaxfd7chpq408hf50wtensxfa8ku3sjtgw | 0x444dfe74c96fb17082af3dd347b9799c0c9e9edc | 1 | 2 | 1792.54036 | -| terp1jgjghzqghw4gk0j88ff6rwr0drrln9sksgd3tg | 0x92248b8808bbaa8b3e473a53a1b86f68c7f99616 | 1 | 2 | 1792.54036 | -| terp1uxddc6zvjpka5l6zt66fwcadmh9c87q7u0dpa2 | 0xe19adc684c906dda7f425eb49763adddcb83f81e | 1 | 2 | 1792.54036 | -| terp1dxttg4uj4lstj3y7wnm3n68um8fwffu0zw29df | 0x6996b45792afe0b9449e74f719e8fcd9d2e4a78f | 1 | 2 | 1792.54036 | -| terp10zczqnt3rw48f28lcqyja2w29fzrvtz9cctuln | 0x78b0204d711baa74a8ffc0092ea9ca2a44362c45 | 1 | 2 | 1792.54036 | -| terp1lkru85hr0hxfru8hg9t6zt86hduqr49ny02can | 0xfd87c3d2e37dcc91f0f74157a12cfabb7801d4b3 | 1 | 2 | 1792.54036 | -| terp1dm6szxzkldaqmqmngzhuxpfzgkdr3x2zhwlzwd | 0x6ef5011856fb7a0d837340afc30522459a389942 | 1 | 2 | 1792.54036 | -| terp1g4p72ugr8zlku52ztzh87spnag5uwq9as42ddd | 0x4543e5710338bf6e514258ae7f4033ea29c700bd | 1 | 2 | 1792.54036 | -| terp1pnx5vvvqkvv6ptzd40t2le6e5utt7jrxzxu8z6 | 0x0ccd463180b319a0ac4dabd6afe759a716bf4866 | 1 | 2 | 1792.54036 | -| terp13ly8cxvjqvejc8xyxsctn7kjkxrgu3xs8q3l4h | 0x8fc87c199203332c1cc43430b9fad2b1868e44d0 | 1 | 2 | 1792.54036 | -| terp1xmryt4zj4msp4cxjf943ff7yup8sz533cqtcw5 | 0x36c645d452aee01ae0d2496b14a7c4e04f015231 | 1 | 2 | 1792.54036 | -| terp13mvg04hak4k4dlrtvtca979rg3xs7rmdfnrhq9 | 0x8ed887d6fdb56d56fc6b62f1d2f8a3444d0f0f6d | 1 | 2 | 1792.54036 | -| terp1dyahc67w6sxph65e53ehsuxk8p9jx9w5zlawdv | 0x693b7c6bced40c1bea99a4737870d6384b2315d4 | 1 | 2 | 1792.54036 | -| terp1cwxrwhrst4dq6dhxkqmnz9p2rk30tay504nrn9 | 0xc38c375c705d5a0d36e6b03731142a1da2f5f494 | 1 | 2 | 1792.54036 | -| terp189ns7m3a6vkzmy5xk9akhy3dxw2g6u0acswk6x | 0x39670f6e3dd32c2d9286b17b6b922d33948d71fd | 1 | 2 | 1792.54036 | -| terp1wjwvmw87rrkva5w5kttl7dxx7nht40j5msztne | 0x749ccdb8fe18ecced1d4b2d7ff34c6f4eebabe54 | 1 | 2 | 1792.54036 | -| terp1zq4tg6eksmmmxszur50jjm33fdt3l6kdy0eajw | 0x102ab46b3686f7b3405c1d1f296e314b571feacd | 1 | 2 | 1792.54036 | -| terp1tre58n6fa6fh6c52lqmu23e7sk7a4hcvmpr54a | 0x58f343cf49ee937d628af837c5473e85bddadf0c | 1 | 2 | 1792.54036 | -| terp1ffgz0u867xrwfpz983xyz0hlx9fd6jdptaqldk | 0x4a5027f0faf186e484453c4c413eff3152dd49a1 | 1 | 2 | 1792.54036 | -| terp1khe6yuu9rpmnew5cfd6vvl0u4wduuas7crdez9 | 0xb5f3a2738518773cba984b74c67dfcab9bce761e | 1 | 2 | 1792.54036 | -| terp19yw5jrtlwtg7n3kux4y2kn94t6e8ey4rk529hm | 0x291d490d7f72d1e9c6dc3548ab4cb55eb27c92a3 | 1 | 2 | 1792.54036 | -| terp18q2ms7e4tfa0yj778h89rrkj2k5z45guwfsph9 | 0x3815b87b355a7af24bde3dce518ed255a82ad11c | 1 | 2 | 1792.54036 | -| terp1qsscwr5k4rsc86rf42q39ykh8y6qd9kscx9knm | 0x0421870e96a8e183e869aa811292d739340696d0 | 1 | 2 | 1792.54036 | -| terp1l5ykwmtrtd56qlk65y9ya2ku6j484zexk8vzl0 | 0xfd09676d635b69a07edaa10a4eaadcd4aa7a8b26 | 1 | 2 | 1792.54036 | -| terp10ftd6llyt5ex8yc53dppgacf7h2y5cfpu95m8m | 0x7a56dd7fe45d326393148b42147709f5d44a6121 | 1 | 2 | 1792.54036 | -| terp10uks32cd2eedkdk6zktfxt96nz87a90p8hr0qm | 0x7f2d08ab0d5672db36da1596932cba988fee95e1 | 1 | 2 | 1792.54036 | -| terp17zucpdh82trehj4prfmhp9ujzqm6np2gu3uhxz | 0xf0b980b6e752c79bcaa11a777097921037a98548 | 1 | 2 | 1792.54036 | -| terp1uy2d5msdw76mdc2mggd0pr5mghv2ap0jm45vq4 | 0xe114da6e0d77b5b6e15b421af08e9b45d8ae85f2 | 1 | 2 | 1792.54036 | -| terp1gdpj0lxjyy99n943m9wlh43v6cww97aedpjj46 | 0x434327fcd2210a5996b1d95dfbd62cd61ce2fbb9 | 1 | 2 | 1792.54036 | -| terp1eg95xcf7vcuuakyvte2hsrkyyt94aj9mf2r8fd | 0xca0b43613e6639ced88c5e55780ec422cb5ec8bb | 1 | 2 | 1792.54036 | -| terp10ykk4qvjp5ac53d0ejkyl3y9urqgxz9l2hs54d | 0x792d6a81920d3b8a45afccac4fc485e0c08308bf | 1 | 2 | 1792.54036 | -| terp1dkq6c8vxh7gstrfjz9s7mfa5dn90836gnsw34q | 0x6d81ac1d86bf91058d321161eda7b46ccaf3c748 | 1 | 2 | 1792.54036 | -| terp165yp2dyjlx7ptlenfrwcfm9t5we3s2qs35xar7 | 0xd508153492f9bc15ff3348dd84ecaba3b3182810 | 1 | 2 | 1792.54036 | -| terp1d3ppw6wxufzj06z5my80rfe9cctvplds0j8ypf | 0x6c421769c6e24527e854d90ef1a725c616c0fdb0 | 1 | 2 | 1792.54036 | -| terp16cq0qk4cfyys0zj0qtgz082pa5c6cs8dzf0hwn | 0xd600f05ab84909078a4f02d0279d41ed31ac40ed | 1 | 2 | 1792.54036 | -| terp1v6tntqyl7kgznxga2fp4kf6trvv2me4gzmqmk8 | 0x669735809ff59029991d52435b274b1b18ade6a8 | 1 | 2 | 1792.54036 | -| terp1x8d4qfucwad8076l22xacps9up66gum9xz8tr2 | 0x31db502798775a77fb5f528ddc0605e075a47365 | 1 | 2 | 1792.54036 | -| terp1697f3aearnwj5gcd9x74n59uh6qz9qp9h73w8g | 0xd17c98f73d1cdd2a230d29bd59d0bcbe80228025 | 1 | 2 | 1792.54036 | -| terp18edr6trkfc3cfetmw6t5xlzxedmxugjytslqqd | 0x3e5a3d2c764e2384e57b7697437c46cb766e2244 | 1 | 2 | 1792.54036 | -| terp1wth534k2fxglr6lufgs2l2f288dmc59fmd050g | 0x72ef48d6ca4991f1ebfc4a20afa92a39dbbc50a9 | 1 | 2 | 1792.54036 | -| terp1a3k3ut36hnj6s02gvrk9eqlvuexjka7p0wqpvy | 0xec6d1e2e3abce5a83d4860ec5c83ece64d2b77c1 | 1 | 2 | 1792.54036 | -| terp1vezpleqruxp6nqksn6da5u7mdqfufqcd9xm2hq | 0x66441fe403e183a982d09e9bda73db6813c4830d | 1 | 2 | 1792.54036 | -| terp122k6vcq3tr3f75scjfnqny6lzpzdwc8hlssaes | 0x52ada6601158e29f5218926609935f1044d760f7 | 1 | 2 | 1792.54036 | -| terp1yqf7z25pmf6k2n2l92lq7jrr7m4gevj2umttzl | 0x2013e12a81da75654d5f2abe0f4863f6ea8cb24a | 1 | 2 | 1792.54036 | -| terp1p7uzz206xveluxy7eqmyk9wesc2rzlgceehvrm | 0x0fb82129fa3333fe189ec8364b15d98614317d18 | 1 | 2 | 1792.54036 | -| terp1ted499xcuv5kpj32m7pmtyghwagdjxd7a6k38a | 0x5e5b5294d8e32960ca2adf83b591177750d919be | 1 | 2 | 1792.54036 | -| terp17pdsre4p0ye8netw2uc8gmwdlu2t8kchgwqjmf | 0xf05b01e6a1793279e56e5730746dcdff14b3db17 | 1 | 2 | 1792.54036 | -| terp17kdj09ynd4sspx5k2lezd2wk2sd694n3a7mfcv | 0xf59b2794936d61009a9657f226a9d6541ba2d671 | 1 | 2 | 1792.54036 | -| terp17khhc786tvk7z6kjrzduylcnfk23dy7at900xt | 0xf5af7c78fa5b2de16ad2189bc27f134d951693dd | 1 | 2 | 1792.54036 | -| terp1twv3t25epn4r7elq4afuq4tn4t7yypjkc0lm0q | 0x5b9915aa990cea3f67e0af53c05573aafc420656 | 1 | 2 | 1792.54036 | -| terp1xvz9yay22yffdddvyvkhuc2w9nxm4gx4a3cx5h | 0x330452748a511296b5ac232d7e614e2ccdbaa0d5 | 1 | 2 | 1792.54036 | -| terp1t364nfjugqssasdjmuhld5aswekjtaf93wdpvl | 0x5c7559a65c40210ec1b2df2ff6d3b0766d25f525 | 1 | 2 | 1792.54036 | -| terp1axcadkl8fe8zuwv2paw9nryu8h5rc48a9299hu | 0xe9b1d6dbe74e4e2e398a0f5c598c9c3de83c54fd | 1 | 2 | 1792.54036 | -| terp1qv6xtudzv26k8e0u9epkdelzem2gqaf74lft7v | 0x033465f1a262b563e5fc2e4366e7e2ced480753e | 1 | 2 | 1792.54036 | -| terp1ecyaw6c32wfcsus6kd3x3l8yeuq4tuq6r9ccfd | 0xce09d76b11539388721ab36268fce4cf0155f01a | 1 | 2 | 1792.54036 | -| terp1mqcwse7judhw6w37nwypkxvfll0a73wv2yl56h | 0xd830e867d2e36eed3a3e9b881b1989ffdfdf45cc | 1 | 2 | 1792.54036 | -| terp186hrgehfcszy944yq6ya9rj2yzlzun006fsvwx | 0x3eae3466e9c40442d6a40689d28e4a20be2e4def | 1 | 2 | 1792.54036 | -| terp1j3srfnu0ype5g42ez3qugqqdlg394esq7v869h | 0x946034cf8f20734455591441c4000dfa225ae600 | 1 | 2 | 1792.54036 | -| terp1s4e7y096yu8xw9mw4z6fzan0rwju6l3tyavss2 | 0x8573e23cba270e67176ea8b491766f1ba5cd7e2b | 1 | 2 | 1792.54036 | -| terp1wnglwpqdem9jdsm5dsfn5j5azm3r28348e3xfc | 0x74d1f7040dcecb26c3746c133a4a9d16e2351e35 | 1 | 2 | 1792.54036 | -| terp1c8zhgrzmuuv3q2895zqck5s3y0dacvr9upe0z6 | 0xc1c5740c5be7191028e5a0818b521123dbdc3065 | 1 | 2 | 1792.54036 | -| terp1ax7vl96ur5vg88xq2gny0hmqqngpm48ewm9m02 | 0xe9bccf975c1d18839cc0522647df6004d01dd4f9 | 1 | 2 | 1792.54036 | -| terp15la3cpfz546hckfc835kreep0lg066sxctdrrs | 0xa7fb1c0522a5757c59383c6961e7217fd0fd6a06 | 1 | 2 | 1792.54036 | -| terp1wvletjspskaxtsdtfmdq64mrvz3c3rzym8p4t6 | 0x733f95ca0185ba65c1ab4eda0d576360a3888c44 | 1 | 2 | 1792.54036 | -| terp1lcjuwafrfnzffnnh78v5jspah4mdeyw6x5wjmr | 0xfe25c775234cc494ce77f1d949403dbd76dc91da | 1 | 2 | 1792.54036 | -| terp1erhjuak746peff3jekzq8njtpxfl6c26x6m0ku | 0xc8ef2e76deae8394a632cd8403ce4b0993fd615a | 1 | 2 | 1792.54036 | -| terp1q3d93ldnd8x3wktqtpjplld84cqhyw8h2vq26z | 0x045a58fdb369cd17596058641ffda7ae017238f7 | 1 | 2 | 1792.54036 | -| terp1kf04etrreykpqdx2xlt39wzaqz9nhpuf050apd | 0xb25f5cac63c92c1034ca37d712b85d008b3b8789 | 1 | 2 | 1792.54036 | -| terp1ua50pf5kygnslmj5hl80d4guwgc7jz2lngjlxq | 0xe768f0a69622270fee54bfcef6d51c7231e9095f | 1 | 2 | 1792.54036 | -| terp1jfd8k6pwgcqw0etsexc2dtefcf7c97qxufw27t | 0x925a7b682e4600e7e570c9b0a6af29c27d82f806 | 1 | 2 | 1792.54036 | -| terp1686hzhsut3lctw0z4xa0s842zxk2ddccxx8xgx | 0xd1f5715e1c5c7f85b9e2a9baf81eaa11aca6b718 | 1 | 2 | 1792.54036 | -| terp10mxyhvd2cgk7medaz2k6whcd2pp0hug9478uud | 0x7ecc4bb1aac22dede5bd12ada75f0d5042fbf105 | 1 | 2 | 1792.54036 | -| terp1mxfhcghazhd26m9ewzf6xtdqasea8n4r5uygdu | 0xd9937c22fd15daad6cb97093a32da0ec33d3cea3 | 1 | 2 | 1792.54036 | -| terp1g0sstwvyhhhzjsrc3w62ym35gxxjw04dtug60r | 0x43e105b984bdee2940788bb4a26e34418d273ead | 1 | 2 | 1792.54036 | -| terp17g6tnkl4us0eeg6huhfv0nhgxcgyrnvgnqs3rl | 0xf234b9dbf5e41f9ca357e5d2c7cee8361041cd88 | 1 | 2 | 1792.54036 | -| terp1x2fvqk4mau0ejynvmaxw4wsyc2zpc4feps04x8 | 0x3292c05abbef1f99126cdf4ceaba04c2841c5539 | 1 | 2 | 1792.54036 | -| terp1d77t2z70q84x9fk5rarg6yx6hq6fs67g8zsewx | 0x6fbcb50bcf01ea62a6d41f468d10dab834986bc8 | 1 | 2 | 1792.54036 | -| terp1vgurtxj4d98eh35kt94cdnhqaj0deg96xqya27 | 0x6238359a55694f9bc696596b86cee0ec9edca0ba | 1 | 2 | 1792.54036 | -| terp1atan8fuxf5qkdtnh6s3rcku86hh93v0axzggq0 | 0xeafb33a7864d0166ae77d4223c5b87d5ee58b1fd | 1 | 2 | 1792.54036 | -| terp1h34c0hcps9trrk9e26w2cs07lygrp3lzxvty7q | 0xbc6b87df01815631d8b9569cac41fef91030c7e2 | 1 | 2 | 1792.54036 | -| terp1kd0kc4zk53kswvf99szj8d53krynenf0zm635h | 0xb35f6c5456a46d0731252c0523b691b0c93ccd2f | 1 | 2 | 1792.54036 | -| terp1sz6l68s3q6wa32mje7l2kpt5n494ys9mtht7mm | 0x80b5fd1e11069dd8ab72cfbeab05749d4b5240bb | 1 | 2 | 1792.54036 | -| terp13m9gksaxux5uh4lwta4fk0qhgk98tx6est2ucv | 0x8eca8b43a6e1a9cbd7ee5f6a9b3c17458a759b59 | 1 | 2 | 1792.54036 | -| terp1uparwntfwqkegd7q4h2cw4mj9psr2dmau73pvg | 0xe07a374d69702d9437c0add5875772286035377d | 1 | 2 | 1792.54036 | -| terp1u6a9486392d0cgw99p43tct65n2tgh69nl00a2 | 0xe6ba5a9f512a9afc21c5286b15e17aa4d4b45f45 | 1 | 2 | 1792.54036 | -| terp1p9w9srqeygsxeqg0tu60n82l40y773383stzvm | 0x095c580c1922206c810f5f34f99d5fabc9ef4627 | 1 | 2 | 1792.54036 | -| terp1edvaflpj4u25kgn4sdrjgdfr4nnfqjzlzqshsm | 0xcb59d4fc32af154b22758347243523ace690485f | 1 | 2 | 1792.54036 | -| terp1jf5y72ded2sapmmncdflmvwdq2vdfu98ms5cxq | 0x92684f29b96aa1d0ef73c353fdb1cd0298d4f0a7 | 1 | 2 | 1792.54036 | -| terp1y3r60flsxvnm2sg0ypn5z0jmyz95azex3a5etj | 0x2447a7a7f03327b5410f2067413e5b208b4e8b26 | 1 | 2 | 1792.54036 | -| terp1ssyhm76qdtx2y0hrkzat0nuflaw806rv4fkj0y | 0x84097dfb406acca23ee3b0bab7cf89ff5c77e86c | 1 | 2 | 1792.54036 | -| terp154kqgdr6hmjz7e37l7du95q50wtu3auz37nptu | 0xa56c04347abee42f663eff9bc2d0147b97c8f782 | 1 | 2 | 1792.54036 | -| terp1ly4thsmqenqp600056tuuflqwa7g7crz87myxc | 0xf92abbc360ccc01d3defa697ce27e0777c8f6062 | 1 | 2 | 1792.54036 | -| terp1kh0yny92j7dknrdlxcayz0t85dcy43v6xy2xjh | 0xb5de4990aa979b698dbf363a413d67a3704ac59a | 1 | 2 | 1792.54036 | -| terp1mnw3f7drpnm3sjr7dj8llnuemvhtp02y9ugwqk | 0xdcdd14f9a30cf718487e6c8fffcf99db2eb0bd44 | 1 | 2 | 1792.54036 | -| terp125690x4j25hvmuealpsetctd0jfscyrr208gjz | 0x5534579ab2552ecdf33df86195e16d7c930c1063 | 1 | 2 | 1792.54036 | -| terp12jsen7h55c7e9qwcpkdjug5928ladqv7ml5mgu | 0x54a199faf4a63d9281d80d9b2e228551ffd6819e | 1 | 2 | 1792.54036 | -| terp155ek9cwpv9nyauv09r023j0fnkdtuxnqayf2dw | 0xa53362e1c161664ef18f28dea8c9e99d9abe1a60 | 1 | 2 | 1792.54036 | -| terp1pu2nyla887v2g73nkl9d96y2yty22sls9cj9x2 | 0x0f15327fa73f98a47a33b7cad2e88a22c8a543f0 | 1 | 2 | 1792.54036 | -| terp1z04t4rzhwm9lcsc5fz5upwaq0ll7veujtt7yfk | 0x13eaba8c5776cbfc431448a9c0bba07fffe66792 | 1 | 2 | 1792.54036 | -| terp1rua5pzfumhf2y30z2jxh67366rmu9y6vjsqg29 | 0x1f3b40893cddd2a245e2548d7d7a3ad0f7c2934c | 1 | 2 | 1792.54036 | -| terp1yhez6ard0k05kju84u2lrctrcftr96fyrmxcre | 0x25f22d746d7d9f4b4b87af15f1e163c25632e924 | 1 | 2 | 1792.54036 | -| terp1jvqqsy4zgzpau22cp3gkkqd9zdkjh5zkfm3qsx | 0x93000812a24083de29580c516b01a5136d2bd056 | 1 | 2 | 1792.54036 | -| terp1rph3d8ecrh655sgv8w7ee0v09z6jehvn94kukz | 0x186f169f381df54a410c3bbd9cbd8f28b52cdd93 | 1 | 2 | 1792.54036 | -| terp144u935w50lgy8mw6nvz95f0we05cp9rktcp5u4 | 0xad7858d1d47fd043edda9b045a25eecbe9809476 | 1 | 2 | 1792.54036 | -| terp1p84tgsq5ulw2y652g3sptthpk7fnlz8ha4q0uq | 0x09eab44014e7dca26a8a446015aee1b7933f88f7 | 1 | 2 | 1792.54036 | -| terp1lr5sspcxyd5g9ps7lyxscfel5qzhv7tj5xy7wj | 0xf8e9080706236882861ef90d0c273fa005767972 | 1 | 2 | 1792.54036 | -| terp1x38md9y95lclw373jm842ak22g5h794t5p9y7q | 0x344fb69485a7f1f747d196cf5576ca52297f16ab | 1 | 2 | 1792.54036 | -| terp1vk6ney4jg2hteul5t7cp33pr6eq7hjpr5w3xhx | 0x65b53c92b242aebcf3f45fb018c423d641ebc823 | 1 | 2 | 1792.54036 | -| terp1cm5s4xqm5nra7z5spzmhpnf57sd94tgwjlzkw2 | 0xc6e90a981ba4c7df0a9008b770cd34f41a5aad0e | 1 | 2 | 1792.54036 | -| terp1fmqkf2sjq7yqaa02sk0pnhm3u564qksg83pcv4 | 0x4ec164aa1207880ef5ea859e19df71e535505a08 | 1 | 2 | 1792.54036 | -| terp1tmlnt43qz69af94njfplac90m3vna9evgvapm8 | 0x5eff35d620168bd496b39243fee0afdc593e972c | 1 | 2 | 1792.54036 | -| terp1cnkfg8973e3p4arpg0jry96u7z3cten3df5tqh | 0xc4ec941cbe8e621af46143e432175cf0a385e671 | 1 | 2 | 1792.54036 | -| terp1z4c6l95prrxyhxjgp6kgcdjnrn068zhawqfrsx | 0x1571af968118cc4b9a480eac8c36531cdfa38afd | 1 | 2 | 1792.54036 | -| terp1qplyueu7znch6cnqwsv023hzm97euknprdr4a7 | 0x007e4e679e14f17d62607418f546e2d97d9e5a61 | 1 | 2 | 1792.54036 | -| terp1k5r0wp2caunyfwj0xhasdjr54u8lda2vuer0ct | 0xb506f70558ef2644ba4f35fb06c874af0ff6f54c | 1 | 2 | 1792.54036 | -| terp1s3pstu8uwqnrnvyhw9cku5v8rjh074zk9rj9y0 | 0x844305f0fc702639b09771716e51871caeff5456 | 1 | 2 | 1792.54036 | -| terp1s4glfkd5n4m5c3f6jnzkr9dh9myhdyyg2vlfal | 0x8551f4d9b49d774c453a94c56195b72ec9769088 | 1 | 2 | 1792.54036 | -| terp13n7hqsr98w6ze0jz0yt3jt9qcemz3uplpcasdj | 0x8cfd7040653bb42cbe427917192ca0c67628f03f | 1 | 2 | 1792.54036 | -| terp1sdh0g27lxngf8y9vwg027d0dww7vhta4tawfed | 0x836ef42bdf34d09390ac721eaf35ed73bccbafb5 | 1 | 2 | 1792.54036 | -| terp1nttg22cg3g96qnl7wclcku8j63f5dhle5re0y6 | 0x9ad6852b088a0ba04ffe763f8b70f2d45346dff9 | 1 | 2 | 1792.54036 | -| terp1r402quhh4z3vdmpcdrpreyy9vke24xsldsk490 | 0x1d5ea072f7a8a2c6ec3868c23c908565b2aa9a1f | 1 | 2 | 1792.54036 | -| terp1nhjlkt5zdqwt7rucskewzlr64khhc63j8a0s9f | 0x9de5fb2e82681cbf0f9885b2e17c7aadaf7c6a32 | 1 | 2 | 1792.54036 | -| terp1qzx0zs9jrc09dhwqzp2xq5wml20te8kxedqqx5 | 0x008cf140b21e1e56ddc010546051dbfa9ebc9ec6 | 1 | 2 | 1792.54036 | -| terp1yvmr2yzxz7mx7z535rjxjc0lpcvuuq9h4qcxpl | 0x233635104617b66f0a91a0e46961ff0e19ce00b7 | 1 | 2 | 1792.54036 | -| terp1pyd2juzu4axx5nn89m9742hnytqn8dgnwqxdjp | 0x091aa9705caf4c6a4e672ecbeaaaf322c133b513 | 1 | 2 | 1792.54036 | -| terp1ate0yvc6utm99ya8979f5xx752usqpasmz5xuc | 0xeaf2f2331ae2f65293a72f8a9a18dea2b90007b0 | 1 | 2 | 1792.54036 | -| terp1sd636ss0gw893qnpanntqjxypmnwk7j85ne7ju | 0x83751d420f438e588261ece6b048c40ee6eb7a47 | 1 | 2 | 1792.54036 | -| terp1yussk0wp42z5uqjpwruyscspavganan8avgzfe | 0x27210b3dc1aa854e024170f8486201eb11d9f667 | 1 | 2 | 1792.54036 | -| terp1h3ar6m2fxszgpjafekspemuxxv00ta4fpravms | 0xbc7a3d6d49340480cba9cda01cef86331ef5f6a9 | 1 | 2 | 1792.54036 | -| terp1kc40t6rwy5u9kkt6f36zx0u8ajkcq6kytfg70p | 0xb62af5e86e25385b597a4c74233f87ecad806ac4 | 1 | 2 | 1792.54036 | -| terp1jzaefqq98uufgmr0rgjs32a6yat9gnz9mfhfrz | 0x90bb9480053f38946c6f1a2508abba2756544c45 | 1 | 2 | 1792.54036 | -| terp1jy9pc4yyjc34pp35kzxz9566ch94kcqs3vk3l3 | 0x910a1c54849623508634b08c22d35ac5cb5b6010 | 1 | 2 | 1792.54036 | -| terp17lpq080zd2x24h7lvlvjzp9wljpt3rcp7c993n | 0xf7c2079de26a8caadfdf67d92104aefc82b88f01 | 1 | 2 | 1792.54036 | -| terp14eqkuvjq9xktzqm8xjfrfsf7maztph0aype7ae | 0xae416e324029acb10367349234c13edf44b0ddfd | 1 | 2 | 1792.54036 | -| terp197d78727snany5ddjqf57qldhvja3hgtz7n3xz | 0x2f9be3f95e84fb3251ad90134f03edbb25d8dd0b | 1 | 2 | 1792.54036 | -| terp1z2re6wgpsqw23gcan2s42k5kvyttnerc4n6yep | 0x12879d3901801ca8a31d9aa1555a966116b9e478 | 1 | 2 | 1792.54036 | -| terp1p5tn8a4s6nujxvz4dd0e62zve7vlvzqt4c34a9 | 0x0d1733f6b0d4f92330556b5f9d284ccf99f6080b | 1 | 2 | 1792.54036 | -| terp17s0742w5239cpv5qd2vplqkx09vfuadwj7fqst | 0xf41feaa9d4544b80b2806a981f82c679589e75ae | 1 | 2 | 1792.54036 | -| terp18thcerpme7m4wz9xn25jrxghqv8rqtxw6rn278 | 0x3aef8c8c3bcfb75708a69aa9219917030e302cce | 1 | 2 | 1792.54036 | -| terp14fr6fl7f0ymryvkfnwvl4ks0yu6tpthwys6me2 | 0xaa47a4ffc979363232c99b99fada0f2734b0aeee | 1 | 2 | 1792.54036 | -| terp1h954pl6fqgd5u8rtfk62cak638tj65mmke7glv | 0xb96950ff49021b4e1c6b4db4ac76da89d72d537b | 1 | 2 | 1792.54036 | -| terp15nrdkz3emwftqp4lk7ukv9lfvrvqcnfz63xzz4 | 0xa4c6db0a39db92b006bfb7b96617e960d80c4d22 | 1 | 2 | 1792.54036 | -| terp1jxlu8y0a6ms874pg8w7479qhck8gw2adk2w8w9 | 0x91bfc391fdd6e07f54283bbd5f1417c58e872bad | 1 | 2 | 1792.54036 | -| terp1yxsty9vku2v2xet898cxn8urqsu56737vkscm4 | 0x21a0b21596e298a3656729f0699f8304394d7a3e | 1 | 2 | 1792.54036 | -| terp1tgdkqeax4q9yq8zz873g4z29yz96kzh4dqs9lt | 0x5a1b6067a6a80a401c423fa28a8945208bab0af5 | 1 | 2 | 1792.54036 | -| terp16tjcnxcaxu7djpdre0rz9fk92pm7yv5ellwjm9 | 0xd2e5899b1d373cd905a3cbc622a6c55077e23299 | 1 | 2 | 1792.54036 | -| terp1gz3p8ayu42mja0dsdg5c3y62kzkn0qht3mmls7 | 0x40a213f49caab72ebdb06a2988934ab0ad3782eb | 1 | 2 | 1792.54036 | -| terp139euq442ude34t9a7xjhry5nq6e8s46tw05vg2 | 0x8973c056aae3731aacbdf1a571929306b278574b | 1 | 2 | 1792.54036 | -| terp1lqk28wp8mm05dug3z3fwxq0qeqllyfu0v6ra4g | 0xf82ca3b827dedf46f1111452e301e0c83ff2278f | 1 | 2 | 1792.54036 | -| terp1wsr6ptfxaaluwp99jtunj8km4kmwqz0kzv0t9p | 0x7407a0ad26ef7fc704a592f9391edbadb6e009f6 | 1 | 2 | 1792.54036 | -| terp10wlhzah5cz5yeauwm9d3fmy70fhjg5k5g0v9gd | 0x7bbf7176f4c0a84cf78ed95b14ec9e7a6f2452d4 | 1 | 2 | 1792.54036 | -| terp1ymj0lg5es0d8usmvcmv6cf5wv662twy3n2ypkx | 0x26e4ffa29983da7e436cc6d9ac268e66b4a5b891 | 1 | 2 | 1792.54036 | -| terp19x0hktm4j2n57su23hm40kwa4gv984trwlxhgk | 0x299f7b2f7592a74f438a8df757d9ddaa1853d563 | 1 | 2 | 1792.54036 | -| terp1m7e94zx3lqg3czc3hq9yzghlvrprh53vd6d88c | 0xdfb25a88d1f8111c0b11b80a4122ff60c23bd22c | 1 | 2 | 1792.54036 | -| terp1sh0whzd7ckhsvkwysdyh6lv4f9np5vrlvvv60n | 0x85deeb89bec5af0659c483497d7d9549661a307f | 1 | 2 | 1792.54036 | -| terp1dpk3vrymuszgqgpleulqe4zwhrgk0r59azprl9 | 0x686d160c9be40480203fcf3e0cd44eb8d1678e85 | 1 | 2 | 1792.54036 | -| terp1jvcwjhlp5lt0cd73y22cw4264xj9me9d8rcnrm | 0x9330e95fe1a7d6fc37d1229587555aa9a45de4ad | 1 | 2 | 1792.54036 | -| terp1dxk5dku8ua5zz94xtthndqnqe7lh4k23zedwew | 0x69ad46db87e7682116a65aef368260cfbf7ad951 | 1 | 2 | 1792.54036 | -| terp1a2mslyv20kx8h7sfvefanktm6kjddzlhcgkyhq | 0xeab70f918a7d8c7bfa096653d9d97bd5a4d68bf7 | 1 | 2 | 1792.54036 | -| terp1qv3xfnk09fwx6y8cwecn5mesys8j5zq0cxw68w | 0x032264cecf2a5c6d10f876713a6f30240f2a080f | 1 | 2 | 1792.54036 | -| terp183hd9rg7gmucea4k7gv98a0ard2k75utfw7hxm | 0x3c6ed28d1e46f98cf6b6f21853f5fd1b556f538b | 1 | 2 | 1792.54036 | -| terp1c2nrnjfs505nz9cmuyfkefqq62638qeyr6sw23 | 0xc2a639c930a3e931171be1136ca400d2b5138324 | 1 | 2 | 1792.54036 | -| terp1uney3y0hpffkqc6qf4a2emjfq0hqmwr2ch6t4v | 0xe4f24891f70a536063404d7aacee4903ee0db86a | 1 | 2 | 1792.54036 | -| terp1wwegypym0vnjwpjvmk7nts85v5u5cu0h0cnkvx | 0x73b282049b7b2727064cddbd35c0f465394c71f7 | 1 | 2 | 1792.54036 | -| terp1du6yylvcx2g7nkulanmq2taf2apf3uq4kqw0cj | 0x6f34427d983291e9db9fecf6052fa9574298f015 | 1 | 2 | 1792.54036 | -| terp1lznlm5phch52gd7jt3lt37l42q0mqljc8wj5ae | 0xf8a7fdd037c5e8a437d25c7eb8fbf5501fb07e58 | 1 | 2 | 1792.54036 | -| terp13qxwmmtkzuj835w7qtvs4xdpspxww049carreq | 0x880ceded76172478d1de02d90a99a1804ce73ea5 | 1 | 2 | 1792.54036 | -| terp17h8zgnjtvm6dqte2t6zay6ugsfpfenj8gyffjc | 0xf5ce244e4b66f4d02f2a5e85d26b8882429cce47 | 1 | 2 | 1792.54036 | -| terp1avxfysupxj5qwdmk02zgqwfffn39nkjefg0nkq | 0xeb0c92438134a80737767a848039294ce259da59 | 1 | 2 | 1792.54036 | -| terp1k766wv064rn2j49fy4a6sn2m44mzfxqjhjh7lj | 0xb7b5a731faa8e6a954a9257ba84d5bad76249812 | 1 | 2 | 1792.54036 | -| terp18q457z2yqggv0zf3wwwqj20kzeh7xj00frqesl | 0x382b4f09440210c78931739c0929f6166fe349ef | 1 | 2 | 1792.54036 | -| terp1g4dm2ty0uh566tuaza5zlth0p6qy50fw6vtlu6 | 0x455bb52c8fe5e9ad2f9d17682faeef0e804a3d2e | 1 | 2 | 1792.54036 | -| terp1qmflqsdyz0gachmzmqlystcep5xqgztsm8y9jt | 0x06d3f041a413d1dc5f62d83e482f190d0c040970 | 1 | 2 | 1792.54036 | -| terp1m9a2yqaq2hpfuvq7tjktuprth8fvay8yag2flg | 0xd97aa203a055c29e301e5cacbe046bb9d2ce90e4 | 1 | 2 | 1792.54036 | -| terp1xw04q54kydtzjashznqnqsvxwk5w68xytl4zlt | 0x339f5052b6235629761714c130418675a8ed1cc4 | 1 | 2 | 1792.54036 | -| terp16rrd2kg4sxcjjqhdpu2565s3qqlgze6mzsvcag | 0xd0c6d5591581b12902ed0f154d5211003e81675b | 1 | 2 | 1792.54036 | -| terp1kehnx7tr47n3kjxpnguf0z83e72wcntcwvldgt | 0xb66f337963afa71b48c19a389788f1cf94ec4d78 | 1 | 2 | 1792.54036 | -| terp124lzs4m5wm2c8qfzl3k5qv84namjjndlqrzp8m | 0x557e28577476d5838122fc6d4030f59f77294dbf | 1 | 2 | 1792.54036 | -| terp146pl730943raw8s6zgmmvf85ed0k7zx9yar0wz | 0xae83ff45e5ac47d71e1a1237b624f4cb5f6f08c5 | 1 | 2 | 1792.54036 | -| terp1ar5900mlnnzcw0pqauun24enmnden3jvzmdeh2 | 0xe8e857bf7f9cc5873c20ef39355733dcdb99c64c | 1 | 2 | 1792.54036 | -| terp1s5994ewfvrrd2px3wssyzut307dq7ljy9addtx | 0x850a5ae5c960c6d504d174204171717f9a0f7e44 | 1 | 2 | 1792.54036 | -| terp1e2w5fe6mkz94aqy8ltrf7a57tl4ghv5n9lsrat | 0xca9d44e75bb08b5e8087fac69f769e5fea8bb293 | 1 | 2 | 1792.54036 | -| terp1wwz77l5yke3mf3tn9jng5hwekadkvtq5arp5nf | 0x7385ef7e84b663b4c5732ca68a5dd9b75b662c14 | 1 | 2 | 1792.54036 | -| terp18tpvcfhmkgcwwppe8hrea97v53l8pyj8zxyumm | 0x3ac2cc26fbb230e704393dc79e97cca47e709247 | 1 | 2 | 1792.54036 | -| terp1sfqttzphv5vfjg786zdjzmqxpguj8cwxxfj300 | 0x8240b5883765189923c7d09b216c060a3923e1c6 | 1 | 2 | 1792.54036 | -| terp149u8pcm4hks2955srw394rtufrfacaxundjden | 0xa97870e375bda0a2d2901ba25a8d7c48d3dc74dc | 1 | 2 | 1792.54036 | -| terp1g9srs7d3dztl0mctsue8u0adlr3kvsdwrss2vp | 0x41603879b16897f7ef0b87327e3fadf8e36641ae | 1 | 2 | 1792.54036 | -| terp1tqwn7zzthvsazzga9pcmx8nqp5m0pfkehpwus8 | 0x581d3f084bbb21d1091d2871b31e600d36f0a6d9 | 1 | 2 | 1792.54036 | -| terp1q268zneu90csanqv4w9yjuj3knr5pyk7j92nds | 0x02b4714f3c2bf10ecc0cab8a497251b4c74092de | 1 | 2 | 1792.54036 | -| terp16rersa2fkvtup37z30zp647spug5gtlm806f6f | 0xd0f2387549b317c0c7c28bc41d57d00f11442ffb | 1 | 2 | 1792.54036 | -| terp1cccghqcn5apmzucag2kungf7h98d3jcazve4c4 | 0xc6308b8313a743b1731d42adc9a13eb94ed8cb1d | 1 | 2 | 1792.54036 | -| terp13wlwht24lkpp4rp92un28d2hvrhm78dx0nhj5e | 0x8bbeebad55fd821a8c255726a3b55760efbf1da6 | 1 | 2 | 1792.54036 | -| terp1rdawe7lakzr6m05mfe7wnjn9mxv9xtgfqqj5l6 | 0x1b7aecfbfdb087adbe9b4e7ce9ca65d998532d09 | 1 | 2 | 1792.54036 | -| terp17uakue7ga38glr6evzmr79fyy3tra6cjxn0tcp | 0xf73b6e67c8ec4e8f8f5960b63f152424563eeb12 | 1 | 2 | 1792.54036 | -| terp1gawh6mhwcqcfha96623j7pg8cf9p79r26s4dkl | 0x475d7d6eeec0309bf4bad2a32f0507c24a1f146a | 1 | 2 | 1792.54036 | -| terp1mtn8p5snheg3msa20vfznn6m27n3pre8tyflxg | 0xdae670d213be511dc3aa7b1229cf5b57a7108f27 | 1 | 2 | 1792.54036 | -| terp1q0l4pssud6gdqxe4u02d86wz2uym7gekwvlpaq | 0x03ff50c21c6e90d01b35e3d4d3e9c25709bf2336 | 1 | 2 | 1792.54036 | -| terp1wldj9gu499dx0qe53jzdlhnmgsnuqx7kfns8vn | 0x77db22a395295a6783348c84dfde7b4427c01bd6 | 1 | 2 | 1792.54036 | -| terp1lxe4aquxusxj8gzgfkp30tvz8hag9vmgthvx42 | 0xf9b35e8386e40d23a0484d8317ad823dfa82b368 | 1 | 2 | 1792.54036 | -| terp10mxgn9x63gh3vwwt2jrz4rqjl9yjc4qs5mjsgx | 0x7ecc8994da8a2f1639cb54862a8c12f9492c5410 | 1 | 2 | 1792.54036 | -| terp1pvq2srqt8f9ttln8sy4akd883qh3y7mj4xhzcc | 0x0b00a80c0b3a4ab5fe67812bdb34e7882f127b72 | 1 | 2 | 1792.54036 | -| terp1cz9ajppv599yk8y2uh8z9ex3jtuwen4wd7gsv5 | 0xc08bd9042ca14a4b1c8ae5ce22e4d192f8ecceae | 1 | 2 | 1792.54036 | -| terp14d63ewmvxtag9ks5et75p5lx6kaxy8k6fwdclv | 0xab751cbb6c32fa82da14cafd40d3e6d5ba621eda | 1 | 2 | 1792.54036 | -| terp1jm9t4qhy2jrlfygtlehh0465uksnsyd29tt9ky | 0x96caba82e45487f4910bfe6f77d754e5a13811aa | 1 | 2 | 1792.54036 | -| terp1d7amvmag9dfz0szqfqnc0fpdy23atxljtekk7p | 0x6fbbb66fa82b5227c040482787a42d22a3d59bf2 | 1 | 2 | 1792.54036 | -| terp10xuxrkf0zv4fe39azx6ksf6nugdwgsz4y8vy9f | 0x79b861d92f132a9cc4bd11b5682753e21ae44055 | 1 | 2 | 1792.54036 | -| terp1md4akn4nds80ues6clkhahz2dxkls6vezpyal2 | 0xdb6bdb4eb36c0efe661ac7ed7edc4a69adf86999 | 1 | 2 | 1792.54036 | -| terp1qe4nqz7sa2yl5hhc8xm87v0ytqd43k8ajwelmw | 0x066b300bd0ea89fa5ef839b67f31e4581b58d8fd | 1 | 2 | 1792.54036 | -| terp14r7dhrghvxjssr6j66de0dcmg5s2gn5wfp9qt6 | 0xa8fcdb8d1761a5080f52d69b97b71b4520a44e8e | 1 | 2 | 1792.54036 | -| terp1veyewejv2nfede79rc4azt5jzsg8r5wd45744r | 0x664997664c54d396e7c51e2bd12e92141071d1cd | 1 | 2 | 1792.54036 | -| terp1ensl2k7k68gh4acsedq49fa4r54jh9wkvhgfml | 0xcce1f55bd6d1d17af710cb4152a7b51d2b2b95d6 | 1 | 2 | 1792.54036 | -| terp1clpag859gj3vfl5sajd0hyumdfvvt8pxuddh9d | 0xc7c3d41e8544a2c4fe90ec9afb939b6a58c59c26 | 1 | 2 | 1792.54036 | -| terp1jy6upuqj0udxe3q0rchawn3f870xd7x7e76mtf | 0x9135c0f0127f1a6cc40f1e2fd74e293f9e66f8de | 1 | 2 | 1792.54036 | -| terp1270uxd677gfgeh879uahxdnw259kal4j8zlrls | 0x579fc3375ef2128cdcfe2f3b73366e550b6efeb2 | 1 | 2 | 1792.54036 | -| terp1y0yayj3uk0t8jedvzwz0ejlyrq0csgq53dxpym | 0x23c9d24a3cb3d67965ac1384fccbe4181f882014 | 1 | 2 | 1792.54036 | -| terp1a2wsl2xncv55qjhrcp9vu340swe38tefewe94z | 0xea9d0fa8d3c329404ae3c04ace46af83b313af29 | 1 | 2 | 1792.54036 | -| terp1ucpu9hmpnfkvfq2zm3unhezdnzpf0rghphw8ry | 0xe603c2df619a6cc48142dc793be44d9882978d17 | 1 | 2 | 1792.54036 | -| terp14lv0u03z7yndmh7q7h2d230wnzf6wmq6jtes02 | 0xafd8fe3e22f126dddfc0f5d4d545ee9893a76c1a | 1 | 2 | 1792.54036 | -| terp1frg48rdf2nzv2c0c2mcpwy7g0z28gwy76ehuwl | 0x48d1538da954c4c561f856f01713c8789474389e | 1 | 2 | 1792.54036 | -| terp1r3p8ut0v2xdvqn95ns9fv50c58mfq9evrzrg8m | 0x1c427e2dec519ac04cb49c0a9651f8a1f690172c | 1 | 2 | 1792.54036 | -| terp1a34th59475pxlhgvenfx96hddxgftyjssauqda | 0xec6abbd0b5f5026fdd0cccd262eaed6990959250 | 1 | 2 | 1792.54036 | -| terp1dkaemxyj3x7a9ug6u7m90qa63jkxqf7s88kzyk | 0x6dbb9d989289bdd2f11ae7b65783ba8cac6027d0 | 1 | 2 | 1792.54036 | -| terp1c9cx8s8c424dkp9ckaaktwgcqg60c0jtxheayn | 0xc17063c0f8aaaadb04b8b77b65b9180234fc3e4b | 1 | 2 | 1792.54036 | -| terp1jnq2lhucc9uu6g3gn4fx9m6nj6qlm7sv7knmfw | 0x94c0afdf98c179cd22289d5262ef539681fdfa0c | 1 | 2 | 1792.54036 | -| terp1jjepd58v62d29duej2qwhfaxjngtqlt0e34ms6 | 0x94b216d0ecd29aa2b7999280eba7a694d0b07d6f | 1 | 2 | 1792.54036 | -| terp1kd5tkdpdnfhxzlqmraung6w0zqzseey29f8msy | 0xb368bb342d9a6e617c1b1f793469cf10050ce48a | 1 | 2 | 1792.54036 | -| terp1lcrs207wzt5l3ev2emcy7guuz39jj3t9pu3hqx | 0xfe07053fce12e9f8e58acef04f239c144b294565 | 1 | 2 | 1792.54036 | -| terp1yurx6vmvnujuy3muck33n2ehhf04efggpgg9rf | 0x27066d336c9f25c2477cc5a319ab37ba5f5ca508 | 1 | 2 | 1792.54036 | -| terp1c4cey7f9663z7azmuc0zv2ylmezr9mn8c3fss3 | 0xc571927925d6a22f745be61e26289fde4432ee67 | 1 | 2 | 1792.54036 | -| terp12jfmq7k4r76ng9vd7p092qs2hwjwpagp8y5afn | 0x5493b07ad51fb534158df05e55020abba4e0f501 | 1 | 2 | 1792.54036 | -| terp1dsfth2w8tmzmaur0a5gz9aj7m9km8fkkhqujrp | 0x6c12bba9c75ec5bef06fed1022f65ed96db3a6d6 | 1 | 2 | 1792.54036 | -| terp1v7gy35srna7jpp746rm0llmtg8sxp6mkjv00ad | 0x679048d2039f7d2087d5d0f6ffff6b41e060eb76 | 1 | 2 | 1792.54036 | -| terp1ply5ax99u9wwfam7a3d94xmkf4j6ksvk6fqxt7 | 0x0fc94e98a5e15ce4f77eec5a5a9b764d65ab4196 | 1 | 2 | 1792.54036 | -| terp18wmq3txfjsl8ckd84mmkus7zdeafn3fzv9rs6h | 0x3bb608acc9943e7c59a7aef76e43c26e7a99c522 | 1 | 2 | 1792.54036 | -| terp1kvhgdfufgv4mv9ghca6w2lelcrf24petp0hptu | 0xb32e86a789432bb61517c774e57f3fc0d2aa872b | 1 | 2 | 1792.54036 | -| terp1fh4prpw6dhqa47ssxcq73rk0cht0dnm8rptpvn | 0x4dea1185da6dc1dafa103601e88ecfc5d6f6cf67 | 1 | 2 | 1792.54036 | -| terp1ztgtp0uevc57dkgxcvtncdmwjyeg8kavvzmqxp | 0x12d0b0bf996629e6d906c3173c376e913283dbac | 1 | 2 | 1792.54036 | -| terp1gumtgwxhdk027gt9v84l3dn6d6cnvr0nd8gapt | 0x4736b438d76d9eaf216561ebf8b67a6eb1360df3 | 1 | 2 | 1792.54036 | -| terp13a0snn2qt5pn3x2u6ec23lmwanrhcr6arhhkhv | 0x8f5f09cd405d0338995cd670a8ff6eecc77c0f5d | 1 | 2 | 1792.54036 | -| terp153h3s9ypgnhzk5cl40cfxt39lu30ln8fs7hyhe | 0xa46f18148144ee2b531fabf0932e25ff22ffcce9 | 1 | 2 | 1792.54036 | -| terp1zjp30520r4p8g3d433al9s4jxnsq2jwprwczpf | 0x148317d14f1d427445b58c7bf2c2b234e00549c1 | 1 | 2 | 1792.54036 | -| terp1paq3hrxc797xhc5f544hp63r6u5lvuq8k98lx2 | 0x0f411b8cd8f17c6be289a56b70ea23d729f67007 | 1 | 2 | 1792.54036 | -| terp1r5cf79aw2ez7rzfx3lmnnkhcla5wh5cjnewycu | 0x1d309f17ae5645e189268ff739daf8ff68ebd312 | 1 | 2 | 1792.54036 | -| terp16h3dl75knt420qyjn6nvydvywdx6ydc6807wgl | 0xd5e2dffa969aeaa780929ea6c23584734da2371a | 1 | 2 | 1792.54036 | -| terp1n84qsg6w9f9qad2mxvzza8r78p34g4glhp767l | 0x99ea08234e2a4a0eb55b33042e9c7e386354551f | 1 | 2 | 1792.54036 | -| terp1kxchc7cg9leugj6cd6s65yl8fqqjv7dsmdmy2d | 0xb1b17c7b082ff3c44b586ea1aa13e748012679b0 | 1 | 2 | 1792.54036 | -| terp1s7g4sc666j4xswvxjtfc9etunyr8var8tgta3p | 0x879158635ad4aa68398692d382e57c9906767467 | 1 | 2 | 1792.54036 | -| terp1zx2x9vne5uhtytn5xawtpkkmsplk9eu8n4k7ly | 0x119462b279a72eb22e74375cb0dadb807f62e787 | 1 | 2 | 1792.54036 | -| terp1fkmpeu5k5pn5gd9xjtul90sx4mm9eayhwkfauj | 0x4db61cf296a0674434a692f9f2be06aef65cf497 | 1 | 2 | 1792.54036 | -| terp1qugwugxtqdd4pa4wmavt7dacm0vy9u0d4g3pas | 0x0710ee20cb035b50f6aedf58bf37b8dbd842f1ed | 1 | 2 | 1792.54036 | -| terp1ekn4uzp302fvmtdje2vnca9qsgpenqrgqqcsn3 | 0xcda75e08317a92cdadb2ca993c74a08203998068 | 1 | 2 | 1792.54036 | -| terp1c9e2m2acf4xedzsffykvjscw7s83ppxkstayur | 0xc172adabb84d4d968a09492cc9430ef40f1084d6 | 1 | 2 | 1792.54036 | -| terp1uqu66nmcf5rv3t4z3uppnngv07vwt74n6uc47n | 0xe039ad4f784d06c8aea28f0219cd0c7f98e5fab3 | 1 | 2 | 1792.54036 | -| terp1p493rmfdjqvls3frrljjwm83pqw3wv7mxtwshr | 0x0d4b11ed2d9019f845231fe5276cf1081d1733db | 1 | 2 | 1792.54036 | -| terp1m4txq4zuymdt2l93jpjuh8xn0u0f06xs6rfwa9 | 0xdd5660545c26dab57cb19065cb9cd37f1e97e8d0 | 1 | 2 | 1792.54036 | -| terp1wy5pgydr8rylhqfu5dg9zruqtf422jvsf0e2jv | 0x71281411a338c9fb813ca350510f805a6aa54990 | 1 | 2 | 1792.54036 | -| terp12273e5vegjr7stkfax9j53wj07r9puqnvw6yek | 0x52bd1cd1994487e82ec9e98b2a45d27f8650f013 | 1 | 2 | 1792.54036 | -| terp1604fyhmg09xglgcfkpp0dnnsq5n2tnk5czw800 | 0xd3ea925f68794c8fa309b042f6ce700526a5ced4 | 1 | 2 | 1792.54036 | -| terp1c83f08wj948zhn3j0kr6p8cg5sqeewfxuek9yx | 0xc1e2979dd22d4e2bce327d87a09f08a4019cb926 | 1 | 2 | 1792.54036 | -| terp1efupme2czgv9873lxj85l5x68ep275mvrpu77j | 0xca781de558121853fa3f348f4fd0da3e42af536c | 1 | 2 | 1792.54036 | -| terp1f2ngu0p7fra7qcqffqknr639xv3tyvpkktke7a | 0x4aa68e3c3e48fbe06009482d31ea253322b23036 | 1 | 2 | 1792.54036 | -| terp1ultv36vuchx096gvymd8fp36ltk0dj4kv0ehul | 0xe7d6c8e99cc5ccf2e90c26da74863afaecf6cab6 | 1 | 2 | 1792.54036 | -| terp1hfzhm2jlumt4325waf2je6rrmne23kumk3hzhm | 0xba457daa5fe6d758aa8eea552ce863dcf2a8db9b | 1 | 2 | 1792.54036 | -| terp17nk64acwuf7xsdj247m0tsuskrekl74v8wyxdu | 0xf4edaaf70ee27c68364aafb6f5c390b0f36ffaac | 1 | 2 | 1792.54036 | -| terp1rx54ugrvl6vndu9l0jr5ml67akj5tqfkyemgmw | 0x19a95e206cfe9936f0bf7c874dff5eeda5458136 | 1 | 2 | 1792.54036 | -| terp1zspg8zwm5ryslk77ylcxgwmrvrjeqctdvj2evp | 0x14028389dba0c90fdbde27f0643b6360e590616d | 1 | 2 | 1792.54036 | -| terp12vud62ctktjm74qe7pygslw2jt7vqdkhkemwlm | 0x5338dd2b0bb2e5bf5419f048887dca92fcc036d7 | 1 | 2 | 1792.54036 | -| terp15cg9tgutgv9rcj6sgrpahk25e9hr4u5k6hkmxg | 0xa61055a38b430a3c4b5040c3dbd954c96e3af296 | 1 | 2 | 1792.54036 | -| terp1ghy7kf75d35rq04tp0cnpd09rfl27aunyz06jg | 0x45c9eb27d46c68303eab0bf130b5e51a7eaf7793 | 1 | 2 | 1792.54036 | -| terp1q5thlp5wn2fjkh0ffaejfnma4s4akttw620l8h | 0x05177f868e9a932b5de94f7324cf7dac2bdb2d6e | 1 | 2 | 1792.54036 | -| terp1s4pxgxqpxt0kk84x0gfyw6ut9k9dt38gdepp30 | 0x854264180132df6b1ea67a12476b8b2d8ad5c4e8 | 1 | 2 | 1792.54036 | -| terp1zd7rctxnt7tm45yfskdn6628ndy82m0m4jz5u3 | 0x137c3c2cd35f97bad089859b3d69479b48756dfb | 1 | 2 | 1792.54036 | -| terp1vzuqehr3a65ramfvj25w5vnn2x2ggrr97mldw9 | 0x60b80cdc71eea83eed2c92a8ea32735194840c65 | 1 | 2 | 1792.54036 | -| terp13mawkmkwxnmykw0jq328r2wd9ln644y4cm3c7y | 0x8efaeb6ece34f64b39f2045471a9cd2fe7aad495 | 1 | 2 | 1792.54036 | -| terp1gem0vye22rttexx5mlg40z6p5qc2ctgjvvp2mn | 0x4676f6132a50d6bc98d4dfd1578b41a030ac2d12 | 1 | 2 | 1792.54036 | -| terp1qk3dwh5g3jd76kyqlwpmrmmyhsnhele770twlt | 0x05a2d75e888c9bed5880fb83b1ef64bc277cff3e | 1 | 2 | 1792.54036 | -| terp1w6udgnja6pk5y5pykmqmcvhw4v8p0vzje7qryl | 0x76b8d44e5dd06d425024b6c1bc32eeab0e17b052 | 1 | 2 | 1792.54036 | -| terp15tz2qn4e2gcf89ew36f99j03lerqfq89rk46xc | 0xa2c4a04eb9523093972e8e9252c9f1fe460480e5 | 1 | 2 | 1792.54036 | -| terp1vrghwvf5m6q6skcj4nsdejwjjw5mg5xmq7jnhx | 0x60d1773134de81a85b12ace0dcc9d293a9b450db | 1 | 2 | 1792.54036 | -| terp168v3d8ea68n696ymrf0x9d6ztahahrlx60lykn | 0xd1d9169f3dd1e7a2e89b1a5e62b7425f6fdb8fe6 | 1 | 2 | 1792.54036 | -| terp1jr37au0t6338qc84jrlcalsh867959a6sxzftf | 0x90e3eef1ebd4627060f590ff8efe173ebc5a17ba | 1 | 2 | 1792.54036 | -| terp1wu527fyg5yutvusyns0gznwze7w4y7qwnve2ym | 0x7728af2488a138b672049c1e814dc2cf9d52780e | 1 | 2 | 1792.54036 | -| terp16vej7mrypanmuca4waeww0unalnwm44028wjtm | 0xd3332f6c640f67be63b57772e73f93efe6edd6af | 1 | 2 | 1792.54036 | -| terp155l89mkhmtmrlysw2y9n6senna2rxsf628f4re | 0xa53e72eed7daf63f920e510b3d43339f5433413a | 1 | 2 | 1792.54036 | -| terp1lqlq23le98xgt9luvtha0egu3pe6eghg76crpy | 0xf83e0547f929cc8597fc62efd7e51c8873aca2e8 | 1 | 2 | 1792.54036 | -| terp13qf4p5ppq5cgdjcpr498hwlwmep8adulq983p3 | 0x881350d021053086cb011d4a7bbbeede427eb79f | 1 | 2 | 1792.54036 | -| terp1pjlly88hfv0lz08erfyeatazpwutsq86y6c6az | 0x0cbff21cf74b1ff13cf91a499eafa20bb8b800fa | 1 | 2 | 1792.54036 | -| terp12s2rc83gkt655al23lgyd2feu04gprg20u36px | 0x54143c1e28b2f54a77ea8fd046a939e3ea808d0a | 1 | 2 | 1792.54036 | -| terp1fulypdua3ut33ey6daqdrq9xlea7q02q6ztzmd | 0x4f3e40b79d8f1718e49a6f40d180a6fe7be03d40 | 1 | 2 | 1792.54036 | -| terp19cxhg4upf82ymxvawnflx0k6wylz6xzqa4ua46 | 0x2e0d74578149d44d999d74d3f33eda713e2d1840 | 1 | 2 | 1792.54036 | -| terp1y37fayhsjcxn7y5c7ys4na6u8j2yhxs589n4c3 | 0x247c9e92f0960d3f1298f12159f75c3c944b9a14 | 1 | 2 | 1792.54036 | -| terp16g5q8sh2ccu7enxqhka3a8ap5ts026cgjy4k2e | 0xd22803c2eac639ecccc0bdbb1e9fa1a2e0f56b08 | 1 | 2 | 1792.54036 | -| terp18a4p5g085rphpkker860jzs0gcnn48tnsxscg9 | 0x3f6a1a21e7a0c370dad919f4f90a0f46273a9d73 | 1 | 2 | 1792.54036 | -| terp1yukwnnu0yxdr25qeskllwe32tyd96uq7hde9gh | 0x272ce9cf8f219a35501985bff7662a591a5d701e | 1 | 2 | 1792.54036 | -| terp1gvvfp7sgf8x73jwnscmswtm30pxh45raunhdp6 | 0x431890fa0849cde8c9d38637072f71784d7ad07d | 1 | 2 | 1792.54036 | -| terp17atmjfsmllg092dxveh8vrtpr7u5htty2y4kmg | 0xf757b9261bffd0f2a9a6666e760d611fb94bad64 | 1 | 2 | 1792.54036 | -| terp1pnaa8jugnzza8nvj6ys64wm9r0cpnks5aynjuz | 0x0cfbd3cb889885d3cd92d121aabb651bf019da14 | 1 | 2 | 1792.54036 | -| terp1jpkjk7rz45tm7ef4mctlcndv2n4z5hpc7mldce | 0x906d2b7862ad17bf6535de17fc4dac54ea2a5c38 | 1 | 2 | 1792.54036 | -| terp15wdzxlm6xqpjxyu54gjwupaev6xygwfnlygrwz | 0xa39a237f7a3003231394aa24ee07b9668c443933 | 1 | 2 | 1792.54036 | -| terp1vq2dplrq0x6qcykcjm88fay8jauqdxp2as0nhn | 0x6014d0fc6079b40c12d896ce74f487977806982a | 1 | 2 | 1792.54036 | -| terp1qn0vt6fd35lhgeuy543xr084d6e6uut02vrwhv | 0x04dec5e92d8d3f746784a56261bcf56eb3ae716f | 1 | 2 | 1792.54036 | -| terp1p73e6drsfw7fa6yqzf6ay4x09zhs36jpukkelm | 0x0fa39d34704bbc9ee8801275d254cf28af08ea41 | 1 | 2 | 1792.54036 | -| terp16stfnlha7sgkq3a9s4dfe9d2s2fugsqxdm0zx4 | 0xd41699fefdf4116047a5855a9c95aa8293c44006 | 1 | 2 | 1792.54036 | -| terp1x58s824afx7tm98grlde7dlzmegqdsvkfz5y9u | 0x350f03aabd49bcbd94e81fdb9f37e2de5006c196 | 1 | 2 | 1792.54036 | -| terp127l7lfh6vfs0jdawlt6cj2pclhrzw4cs38g3z7 | 0x57bfefa6fa6260f937aefaf5892838fdc6275710 | 1 | 2 | 1792.54036 | -| terp1y8rclknag0verw37w7pu7jp958ex3apkdw9n58 | 0x21c78fda7d43d991ba3e7783cf4825a1f268f436 | 1 | 2 | 1792.54036 | -| terp14ad9e4k6s6pca7kqa2g6wy59044v55avnrv83m | 0xaf5a5cd6da86838efac0ea91a712857d6aca53ac | 1 | 2 | 1792.54036 | -| terp1gsast94fexerfm0hpdn2n8h7chcddp5uxpn0ff | 0x443b0596a9c9b234edf70b66a99efec5f0d6869c | 1 | 2 | 1792.54036 | -| terp1ss7p0n9mmkdefpg2qlafs4j3m7mkh8qwmgddnc | 0x843c17ccbbdd9b94850a07fa985651dfb76b9c0e | 1 | 2 | 1792.54036 | -| terp1mlkl3cl6myfkughld6t44zzagljaut395gcpe5 | 0xdfedf8e3fad9136e22ff6e975a885d47e5de2e25 | 1 | 2 | 1792.54036 | -| terp183d7kfjvsm7k8l5uqtwypxyrpz5guxsdv0mqd9 | 0x3c5beb264c86fd63fe9c02dc40988308a88e1a0d | 1 | 2 | 1792.54036 | -| terp1zvwnvmacyqpj4nswttfnpxuv5au9kw5nz0hzfg | 0x131d366fb820032ace0e5ad3309b8ca7785b3a93 | 1 | 2 | 1792.54036 | -| terp144f4fls58j0yn78h7rzppvw3nxd3q6q50nh7jm | 0xad5354fe143c9e49f8f7f0c410b1d1999b106814 | 1 | 2 | 1792.54036 | -| terp106ccda99ytedaeu346egtzk9t36kvymau4lp3t | 0x7eb186f4a522f2dee791aeb2858ac55c7566137d | 1 | 2 | 1792.54036 | -| terp1q7k4g97t83q6jacrt5gdkjcw9wj3yx6knv905k | 0x07ad5417cb3c41a977035d10db4b0e2ba5121b56 | 1 | 2 | 1792.54036 | -| terp1qlfsp55xdwpdlmvdc2asd45sryscc7f876lgkl | 0x07d300d2866b82dfed8dc2bb06d69019218c7927 | 1 | 2 | 1792.54036 | -| terp1jp5rtf6yrjf4jxwmgsvaagdqxph9y8ezwj4xmn | 0x906835a7441c935919db4419dea1a0306e521f22 | 1 | 2 | 1792.54036 | -| terp1x58lqu0pwyt7vqf35zsrda8h9tfklzwlck3mjy | 0x350ff071e17117e60131a0a036f4f72ad36f89df | 1 | 2 | 1792.54036 | -| terp1v92qekfa2hl0m02ac74gphtpcujt9rflehw6zc | 0x61540cd93d55fefdbd5dc7aa80dd61c724b28d3f | 1 | 2 | 1792.54036 | -| terp1gsjmxvwmuf7dl9hrlhnmssqtkfyqq5pjgxxavr | 0x4425b331dbe27cdf96e3fde7b8400bb248005032 | 1 | 2 | 1792.54036 | -| terp1m2hhksguxw5rg4c6shnqf4fwl8ef4qa4jyug83 | 0xdaaf7b411c33a834571a85e604d52ef9f29a83b5 | 1 | 2 | 1792.54036 | -| terp1cpf9552uvcqs8s9c9kp7cex2q3kcpqy08p98mu | 0xc0525a515c660103c0b82d83ec64ca046d80808f | 1 | 2 | 1792.54036 | -| terp1v2esra5fntu3za0pu2fy9y6tykcr0uagkrkex0 | 0x62b301f6899af91175e1e29242934b25b037f3a8 | 1 | 2 | 1792.54036 | -| terp15wruvld9k0xlqtvxwn8vd0k6n0l0acx86c3utn | 0xa387c67da5b3cdf02d8674cec6beda9bfefee0c7 | 1 | 2 | 1792.54036 | -| terp1umujfuajdx3t9vsnyuu4l5zj9vxhh4phjqftqh | 0xe6f924f3b269a2b2b21327395fd0522b0d7bd437 | 1 | 2 | 1792.54036 | -| terp1nxmp8dauwfmzsyktemdjx722ac075gaykmlcfv | 0x99b613b7bc72762812cbcedb23794aee1fea23a4 | 1 | 2 | 1792.54036 | -| terp103xx68ww7ezsf8zd2j3jxml4xq7xp80weffgms | 0x7c4c6d1dcef645049c4d54a3236ff5303c609dee | 1 | 2 | 1792.54036 | -| terp19mlgt7dpep45sexc92ks53t7rxgd8v28xsx6qs | 0x2efe85f9a1c86b4864d82aad0a457e1990d3b147 | 1 | 2 | 1792.54036 | -| terp16q8nfew8x8sz3yflh5a37ekv7sehr7d3cpqcjq | 0xd00f34e5c731e028913fbd3b1f66ccf43371f9b1 | 1 | 2 | 1792.54036 | -| terp1phrp44hr2dmmugvru5neg42qrsuxds5pmy97yd | 0x0dc61ad6e35377be2183e5279455401c3866c281 | 1 | 2 | 1792.54036 | -| terp1df2hhzdkf2fjj9ztfrr7vuky289d44fq67jg78 | 0x6a557b89b64a9329144b48c7e672c451cadad520 | 1 | 2 | 1792.54036 | -| terp1n7vnf4vcve86sfr8z79qs4qksyzc7kue7z2l9a | 0x9f9934d598664fa82467178a08541681058f5b99 | 1 | 2 | 1792.54036 | -| terp1uh5mws7tr96w37m79hxn0lzq5mgxxlu7t7y7p6 | 0xe5e9b743cb1974e8fb7e2dcd37fc40a6d0637f9e | 1 | 2 | 1792.54036 | -| terp1h92779epzxy7a398vz5ld82676m39zshs63k3e | 0xb955ef17211189eec4a760a9f69d5af6b7128a17 | 1 | 2 | 1792.54036 | -| terp1j3m40xpyl5cm8gvthw8vcf5qmwjguq4vazs6j0 | 0x9477579824fd31b3a18bbb8ecc2680dba48e02ac | 1 | 2 | 1792.54036 | -| terp1pts0av7neyqynm98cg2fjugj5hzw5jxk35lrfr | 0x0ae0feb3d3c90049eca7c214997112a5c4ea48d6 | 1 | 2 | 1792.54036 | -| terp182a2pwcfzewas60pusdwul7l9gf5j5ktggjzvu | 0x3abaa0bb09165dd869e1e41aee7fdf2a134952cb | 1 | 2 | 1792.54036 | -| terp1t9td27fw0alcx97wjyt6846zhrf9hvu8vaaa23 | 0x5956d5792e7f7f8317ce9117a3d742b8d25bb387 | 1 | 2 | 1792.54036 | -| terp1dkeysk3mla5ess9d6hp0n5gr5uk56nwh076njh | 0x6db2485a3bff699840add5c2f9d103a72d4d4dd7 | 1 | 2 | 1792.54036 | -| terp1jjte877ysuqg2femt207sg9pmthwqm70vg287p | 0x949793fbc4870085273b5a9fe820a1daeee06fcf | 1 | 2 | 1792.54036 | -| terp19yrzujnfnyjxmjuvz2vr0mnhup4e5qfzylx0f4 | 0x29062e4a6999246dcb8c129837ee77e06b9a0122 | 1 | 2 | 1792.54036 | -| terp1z3v39kuc6y8g5rjlgc39tyt23eajyqyxzvrnan | 0x145912db98d10e8a0e5f462255916a8e7b220086 | 1 | 2 | 1792.54036 | -| terp1yjesknmwyykvmuvupc9uf0au5hk2l0ypa6ryjk | 0x24b30b4f6e212ccdf19c0e0bc4bfbca5ecafbc81 | 1 | 2 | 1792.54036 | -| terp13p2mvm9npfrj3jssdcn3vadscfxs4d06pw3453 | 0x8855b66cb30a4728ca106e271675b0c24d0ab5fa | 1 | 2 | 1792.54036 | -| terp18qgjtsnywqh4ltp3ty6h9lhf09utzrmx0pm2pc | 0x381125c264702f5fac31593572fee97978b10f66 | 1 | 2 | 1792.54036 | -| terp1pl2wdkkzym56z0ejgcvyc8ajc4974l356y2307 | 0x0fd4e6dac226e9a13f3246184c1fb2c54beafe34 | 1 | 2 | 1792.54036 | -| terp1a4fkz4zz9749rtj6j4lcnkxn46evj8y6sc6e2z | 0xed536154422faa51ae5a957f89d8d3aeb2c91c9a | 1 | 2 | 1792.54036 | -| terp1j4p24ycnrmhsn5c9c4wxtkwh0cxkv6warrrg9k | 0x9542aa93131eef09d305c55c65d9d77e0d6669dd | 1 | 2 | 1792.54036 | -| terp1702qgcxntqk5wa2yuz2an7gw0ydtahzlqtds87 | 0xf3d40460d3582d477544e095d9f90e791abedc5f | 1 | 2 | 1792.54036 | -| terp1nnvlf5k3rgevgdlrafe0e4pmzcm6as6jju8852 | 0x9cd9f4d2d11a32c437e3ea72fcd43b1637aec352 | 1 | 2 | 1792.54036 | -| terp1rhhfpmu0uwslpw9kk0ujrzdn69fgs77jdqq5qu | 0x1dee90ef8fe3a1f0b8b6b3f92189b3d152887bd2 | 1 | 2 | 1792.54036 | -| terp1plcw2983rw77ln9at63feu4haa0avpalj5stft | 0x0ff0e514f11bbdefccbd5ea29cf2b7ef5fd607bf | 1 | 2 | 1792.54036 | -| terp1qw2cpgald80muns3xpx8vwkk4znp6k7vtprckf | 0x039580a3bf69dfbe4e11304c763ad6a8a61d5bcc | 1 | 2 | 1792.54036 | -| terp12fk0zc8j53a3es09qxw6mev2rgwld0k4rtefpa | 0x526cf160f2a47b1cc1e5019dade58a1a1df6bed5 | 1 | 2 | 1792.54036 | -| terp13sa4ke8drxalc69pcg4l82mgm60gfzuxsrq2yt | 0x8c3b5b64ed19bbfc68a1c22bf3ab68de9e848b86 | 1 | 2 | 1792.54036 | -| terp1030xw95255m8fkwlwszx8uy28grhgu82wmgdl3 | 0x7c5e67168aa53674d9df740463f08a3a077470ea | 1 | 2 | 1792.54036 | -| terp1g6ysn9ujldjx8jgtautula07j3eee4886svmvw | 0x4689099792fb6463c90bef17cff5fe94739cd4e7 | 1 | 2 | 1792.54036 | -| terp1yqvqq8wedv053keywh0nsjx90665xm85w4spql | 0x2018001dd96b1f48db2475df3848c57eb5436cf4 | 1 | 2 | 1792.54036 | -| terp186km2h9jklpscmukdge38xen3ga0l0ds50qzt0 | 0x3eadb55cb2b7c30c6f966a33139b338a3affbdb0 | 1 | 2 | 1792.54036 | -| terp1zhk9ggdmft6yaupfsk98ww9sm39t0trymvz2t0 | 0x15ec5421bb4af44ef029858a7738b0dc4ab7ac64 | 1 | 2 | 1792.54036 | -| terp1xu46qv37cy2jctqz3h4tjlz2mtc8rydwdrqy6s | 0x372ba0323ec1152c2c028deab97c4adaf07191ae | 1 | 2 | 1792.54036 | -| terp1m3keunkp588tc59q5mkpxxr6uf5j8xf2p58jzw | 0xdc6d9e4ec1a1cebc50a0a6ec13187ae26923992a | 1 | 2 | 1792.54036 | -| terp1zytgrujuxkv5fvzgauxnnjdk6z92jn02ljz347 | 0x111681f25c359944b048ef0d39c9b6d08aa94dea | 1 | 2 | 1792.54036 | -| terp1atk39j4erznqv34yztl20x4mrzv8hjp6mdn2jl | 0xeaed12cab918a60646a412fea79abb18987bc83a | 1 | 2 | 1792.54036 | -| terp18uv3jc6gsshywa08keyvxdpm6t8vmxw25g67t3 | 0x3f19196348842e4775e7b648c3343bd2cecd99ca | 1 | 2 | 1792.54036 | -| terp1el3r4649gkt2rywl6r52xj3grzaldfj260crpr | 0xcfe23aeaa54596a191dfd0e8a34a2818bbf6a64a | 1 | 2 | 1792.54036 | -| terp1u2z8qfflpjw847aw0ashjhttrjjxgje0s5d8y0 | 0xe28470253f0c9c7afbae7f61795d6b1ca4644b2f | 1 | 2 | 1792.54036 | -| terp1gcc96r3xvcwwzfwegwqesghcufcepm9f2mz9qr | 0x46305d0e26661ce125d943819822f8e27190eca9 | 1 | 2 | 1792.54036 | -| terp1f9p9md7z4qqcckwum28med9d8g6tlegsf8cyxj | 0x49425db7c2a8018c59dcda8fbcb4ad3a34bfe510 | 1 | 2 | 1792.54036 | -| terp1vgprav5kflw9k23hpvpl39wjp20t7qp55prwkx | 0x62023eb2964fdc5b2a370b03f895d20a9ebf0034 | 1 | 2 | 1792.54036 | -| terp13e38007vt8gs62md37232ddf5hrpp4an3x3aey | 0x8e6277bfcc59d10d2b6d8f951535a9a5c610d7b3 | 1 | 2 | 1792.54036 | -| terp19ykp9gdceucvfycj9qs76p88yf9k28ahaqnjcx | 0x292c12a1b8cf30c493122821ed04e7224b651fb7 | 1 | 2 | 1792.54036 | -| terp1v0yumzl0prkcmlj2de6ahd4gyp4kvztl35tskn | 0x63c9cd8bef08ed8dfe4a6e75dbb6a8206b66097f | 1 | 2 | 1792.54036 | -| terp1jwp908925g8mwdprggj34sswhn4lnevh3hf4dv | 0x9382579caaa20fb7342342251ac20ebcebf9e597 | 1 | 2 | 1792.54036 | -| terp19v42ppnje65zq6mgpytm45fdc9nhcg2ld8amyt | 0x2b2aa08672cea8206b680917bad12dc1677c215f | 1 | 2 | 1792.54036 | -| terp1rtlx7qxxwmklcdt9telkshd5p59rld7mlsv4j4 | 0x1afe6f00c676edfc35655e7f685db40d0a3fb7db | 1 | 2 | 1792.54036 | -| terp124fxzuk7kyrtevphk2qvz0xatl9fg4kttzwerl | 0x55526172deb106bcb037b280c13cdd5fca9456cb | 1 | 2 | 1792.54036 | -| terp1zw39wk0lst4m72yhep76uc5j3ekqd0d0sk9lcs | 0x13a25759ff82ebbf2897c87dae62928e6c06bdaf | 1 | 2 | 1792.54036 | -| terp148arqqf77pufwgcfqagzalnenj0ersgfrsz6ff | 0xa9fa30013ef07897230907502efe799c9f91c109 | 1 | 2 | 1792.54036 | -| terp1nxskdc9a3ql5z09pq4j8rlhcnnegxunz9g04yt | 0x99a166e0bd883f413ca1056471fef89cf2837262 | 1 | 2 | 1792.54036 | -| terp14y7dh5ugpggsflec85glqnnf45pew4u6c53ft7 | 0xa93cdbd3880a1104ff383d11f04e69ad0397579a | 1 | 2 | 1792.54036 | -| terp1dff0nukawqn949j4jpcgurl9089dpn2ceny3zf | 0x6a52f9f2dd70265a965590708e0fe579cad0cd58 | 1 | 2 | 1792.54036 | -| terp1vljn2q7g2c9eyaved4h9cs6rat896zvv8tuta4 | 0x67e53503c8560b9275996d6e5c4343eace5d098c | 1 | 2 | 1792.54036 | -| terp1cn6ycek983yap99702pyhp5e2cvruz6h98hlhv | 0xc4f44c66c53c49d094be7a824b869956183e0b57 | 1 | 2 | 1792.54036 | -| terp1wm9j5g622m87d3ch8cuhg2mfrhu5etn587p8n5 | 0x76cb2a234a56cfe6c7173e39742b691df94cae74 | 1 | 2 | 1792.54036 | -| terp139hu6ad45f3dq2t0st8qaj9edqwd4l5uz4kujv | 0x896fcd75b5a262d0296f82ce0ec8b9681cdafe9c | 1 | 2 | 1792.54036 | -| terp1pyu5ff7rgxxrp9nn95kq562a6w3qyswc4ydn8x | 0x093944a7c3418c3096732d2c0a695dd3a20241d8 | 1 | 2 | 1792.54036 | -| terp18y0mmnephpxvrn6dy8f5l3rvy9vd6zxrvfkzcf | 0x391fbdcf21b84cc1cf4d21d34fc46c2158dd08c3 | 1 | 2 | 1792.54036 | -| terp10exf874j622rddguwvg09dmc8adptgts8jnnja | 0x7e4c93fab2d29436b51c7310f2b7783f5a15a170 | 1 | 2 | 1792.54036 | -| terp1yd5kq24znqsr65guegeg2p3uyw9q9ppsnzrqae | 0x2369602aa298203d511cca3285063c238a028430 | 1 | 2 | 1792.54036 | -| terp12u7u6wlqnntdfqlhnwjkyk4emd82jwltjnaz7t | 0x573dcd3be09cd6d483f79ba5625ab9db4ea93beb | 1 | 2 | 1792.54036 | -| terp1yku6rdjue3khyva6axn3pfvtrts0977lzxufy5 | 0x25b9a1b65ccc6d7233bae9a710a58b1ae0f2fbdf | 1 | 2 | 1792.54036 | -| terp1lk6jml77hj7sxyz362e69wtxplqlzqq63tl4jj | 0xfdb52dffdebcbd031051d2b3a2b9660fc1f1001a | 1 | 2 | 1792.54036 | -| terp13hwfw2l5wv7meskzmc6mdwdst5z43c66u0txe0 | 0x8ddc972bf4733dbcc2c2de35b6b9b05d0558e35a | 1 | 2 | 1792.54036 | -| terp1w2ahwrv8cdx5gqyy3cdmuqf68u5r2tjcwccqhh | 0x72bb770d87c34d4400848e1bbe013a3f28352e58 | 1 | 2 | 1792.54036 | -| terp13s7wl3jgjndh0d8l27knuy07rveaaugr2ffalh | 0x8c3cefc64894db77b4ff57ad3e11fe1b33def103 | 1 | 2 | 1792.54036 | -| terp1yv7cq32lz7ptstajczgk6mrn8u04lajdvuxd9k | 0x233d80455f1782b82fb2c0916d6c733f1f5ff64d | 1 | 2 | 1792.54036 | -| terp1ncyhazve4lats0js9jgahzjjuyhd3lf9ng7355 | 0x9e097e8999affab83e502c91db8a52e12ed8fd25 | 1 | 2 | 1792.54036 | -| terp10qswaz4ymcmvpkasy0ah0k8xy7fa500a2z8eqr | 0x7820ee8aa4de36c0dbb023fb77d8e62793da3dfd | 1 | 2 | 1792.54036 | -| terp1mzvxzn8uvqzs62w46vx9m5q6axxcxlepqfvt6n | 0xd898614cfc60050d29d5d30c5dd01ae98d837f21 | 1 | 2 | 1792.54036 | -| terp1apjcwvhkqpwap2p8aq0lamaqu85hyxe8sp3cff | 0xe8658732f6005dd0a827e81ffeefa0e1e9721b27 | 1 | 2 | 1792.54036 | -| terp19v83ped7aakqzyvmph85xzaleulazepwflauec | 0x2b0f10e5beef6c01119b0dcf430bbfcf3fd1642e | 1 | 2 | 1792.54036 | -| terp1z8hsexmw0je0fux99q47skah5neujx0vxtyfhf | 0x11ef0c9b6e7cb2f4f0c5282be85bb7a4f3c919ec | 1 | 2 | 1792.54036 | -| terp1nr96xxq0ejwfkls7mzafjmd3czg0n0nqe9t40l | 0x98cba3180fcc9c9b7e1ed8ba996db1c090f9be60 | 1 | 2 | 1792.54036 | -| terp12ehx9xp0qvvxz6thmty886par5xgyhwmyqvyj2 | 0x566e62982f0318616977dac873e83d1d0c825ddb | 1 | 2 | 1792.54036 | -| terp1fqlehaktpl9l6htt2c8z3n6fhc6gh2m2p4gtc5 | 0x483f9bf6cb0fcbfd5d6b560e28cf49be348bab6a | 1 | 2 | 1792.54036 | -| terp1nces0rennzl8rkswp7aps2hj9m4qawcjaeugl7 | 0x9e33078f3398be71da0e0fba182af22eea0ebb12 | 1 | 2 | 1792.54036 | -| terp1jgn8p3k79hcslrgaka4gzv78mygy9w3g3nwapa | 0x922670c6de2df10f8d1db76a8133c7d91042ba28 | 1 | 2 | 1792.54036 | -| terp1n6p9me7elxrkkddz0p04qd2ue3vlyf2p3hyrl9 | 0x9e825de7d9f9876b35a2785f50355ccc59f22541 | 1 | 2 | 1792.54036 | -| terp1t7dz32e5ujpx2zdfmjw8qr2wf7anestlnp6ntu | 0x5f9a28ab34e4826509a9dc9c700d4e4fbb3cc17f | 1 | 2 | 1792.54036 | -| terp18gww2wat7jd2mqw4v9jn9pns4tdagydynvx3fp | 0x3a1ce53babf49aad81d56165328670aadbd411a4 | 1 | 2 | 1792.54036 | -| terp1v2km3af45xwplheylphkawjss47n07372ndhc4 | 0x62adb8f535a19c1fdf24f86f6eba50857d37fa3e | 1 | 2 | 1792.54036 | -| terp1fdt9l56sty3t4kgcg0gt030chl64lglknsyv7x | 0x4b565fd3505922bad91843d0b7c5f8bff55fa3f6 | 1 | 2 | 1792.54036 | -| terp1gztjlhnelwj07ef7ntczwkkcj9xamx2p7ehmxm | 0x40972fde79fba4ff653e9af0275ad8914ddd9941 | 1 | 2 | 1792.54036 | -| terp1k2j7axj6he0y4ffx0yljsn3wktpx48fwgl2zs8 | 0xb2a5ee9a5abe5e4aa526793f284e2eb2c26a9d2e | 1 | 2 | 1792.54036 | -| terp12lmz5v3denqm4kggjydcpcspnd6wwqql3y0ddl | 0x57f62a322dccc1bad908911b80e2019b74e7001f | 1 | 2 | 1792.54036 | -| terp1ea8j0gqw0zdhjxwy44suq0rev72fpztz8ufh94 | 0xcf4f27a00e789b7919c4ad61c03c796794908962 | 1 | 2 | 1792.54036 | -| terp1a3zrfwvd87269try7rxmmpmg2kuvelamzpqxxr | 0xec4434b98d3f95a2ac64f0cdbd876855b8ccffbb | 1 | 2 | 1792.54036 | -| terp1glu5v4v99f6s4vnuzeu82fh2mkfquvvyezltp7 | 0x47f94655852a750ab27c16787526eadd920e3184 | 1 | 2 | 1792.54036 | -| terp15u3cvcnqxmn5y4m72nngdqrqf7pdukqjdxc4ay | 0xa72386626036e742577e54e68680604f82de5812 | 1 | 2 | 1792.54036 | -| terp18yk9fepp020w05tman6z30u4dzv74s62fpvthm | 0x392c54e4217a9ee7d17becf428bf956899eac34a | 1 | 2 | 1792.54036 | -| terp14ys5sa6pq4stzatqj4w2sn4tme8rphx23qtmpc | 0xa9214877410560b17560955ca84eabde4e30dcca | 1 | 2 | 1792.54036 | -| terp1htvnf3nngavd9f98urp80f6fv7uz9mk6czxuu0 | 0xbad934c6734758d2a4a7e0c277a74967b822eeda | 1 | 2 | 1792.54036 | -| terp1afw088hhewc7y698uuz60hm62xr3z5emmpcvzd | 0xea5cf39ef7cbb1e268a7e705a7df7a518711533b | 1 | 2 | 1792.54036 | -| terp1p8fp8nrq5shl6ejnkf38q2jsjf8a958makxhyh | 0x09d213cc60a42ffd6653b262702a50924fd2d0fb | 1 | 2 | 1792.54036 | -| terp14h2drhfag9p2n5lc3529606aeg80lyj66qnkq9 | 0xadd4d1dd3d4142a9d3f88d145d3f5dca0eff925a | 1 | 2 | 1792.54036 | -| terp14kx8nxk70tdl9km5nxn2kdpt759sdspdypssde | 0xad8c799ade7adbf2db7499a6ab342bf50b06c02d | 1 | 2 | 1792.54036 | -| terp1n885u2s9vwkkysmhdh6326ysuzdf4k600xlddd | 0x99cf4e2a0563ad6243776df5156890e09a9adb4f | 1 | 2 | 1792.54036 | -| terp1d29urccahex0wzppwgg9n8d8gazlzl3wtstj6s | 0x6a8bc1e31dbe4cf708217210599da74745f17e2e | 1 | 2 | 1792.54036 | -| terp1vpy2cywvzzvd8epw0w9mul5ygc68dhagu4nu4r | 0x6048ac11cc1098d3e42e7b8bbe7e84463476dfa8 | 1 | 2 | 1792.54036 | -| terp16t52ngxy0gq0yxufncgkwg2r9fc32eyy0z4m54 | 0xd2e8a9a0c47a00f21b899e116721432a71156484 | 1 | 2 | 1792.54036 | -| terp1w2d2hqyrznelleq3w7rn47jxx4z4cs530y8535 | 0x729aab808314f3ffe41177873afa4635455c4291 | 1 | 2 | 1792.54036 | -| terp1wc5kdgvewd3vh03txlvvr9dgqvdunl5xu9rpqw | 0x762966a1997362cbbe2b37d8c195a8031bc9fe86 | 1 | 2 | 1792.54036 | -| terp1svcyj7xjq6wgplavvsagckyakrl779av6xgfaa | 0x83304978d2069c80ffac643a8c589db0ffef17ac | 1 | 2 | 1792.54036 | -| terp10yuxn6372rw4g7w8nc55hvfs2taxrg2vwrlau2 | 0x793869ea3e50dd5479c79e294bb13052fa61a14c | 1 | 2 | 1792.54036 | -| terp13deqcnvyntq3h8uw7nh0l0n6t5lg9a4klnvx63 | 0x8b720c4d849ac11b9f8ef4eeffbe7a5d3e82f6b6 | 1 | 2 | 1792.54036 | -| terp1ask33lew4e09e80h905pjhm99tc4v5vrhqr2e9 | 0xec2d18ff2eae5e5c9df72be8195f652af1565183 | 1 | 2 | 1792.54036 | -| terp1ufjphfngvz9ragrcrd3f8dhpmp97y3fgnpl5p8 | 0xe2641ba668608a3ea0781b6293b6e1d84be24528 | 1 | 2 | 1792.54036 | -| terp1yda84e6mgczwzmvqjcwjm49qskez80sc6zw5ve | 0x237a7ae75b4604e16d80961d2dd4a085b223be18 | 1 | 2 | 1792.54036 | -| terp140qcwhfgsn35pgq9uapqkwlnxgcelqv8sf3knq | 0xabc1875d2884e340a005e7420b3bf332319f8187 | 1 | 2 | 1792.54036 | -| terp1r8gzx8xldmkuucf2jczgpnphe0hrqff3qhszr5 | 0x19d0231cdf6eedce612a960480cc37cbee302531 | 1 | 2 | 1792.54036 | -| terp1z0a5cln9yk3yg9724zczd5lljqrgtm63unfhmg | 0x13fb4c7e6525a24417caa8b026d3ff900685ef51 | 1 | 2 | 1792.54036 | -| terp1svm8mxw4c3uhq6gh4qsqjyvxvep9fz22qkgm4f | 0x83367d99d5c479706917a820091186664254894a | 1 | 2 | 1792.54036 | -| terp19hz03a7e5g7fwpyj275lrvr27un5tdgahcnppc | 0x2dc4f8f7d9a23c97049257a9f1b06af72745b51d | 1 | 2 | 1792.54036 | -| terp10xn5re9g0txzmtu9f8ud2ju9ts8jwmj9mt6vgj | 0x79a741e4a87acc2daf8549f8d54b855c0f276e45 | 1 | 2 | 1792.54036 | -| terp14z0qqjnq8354l55evjylntdg7nw2vncsh8u4ge | 0xa89e004a603c695fd2996489f9ada8f4dca64f10 | 1 | 2 | 1792.54036 | -| terp1azperprxjkgfnvfnc4n9vngg5j9qqd0nf5lzer | 0xe883918466959099b133c566564d08a48a0035f3 | 1 | 2 | 1792.54036 | -| terp1ky42s2ptqr09gl762xx0lxz2xadxrg5adww8ut | 0xb12aa8282b00de547fda518cff984a375a61a29d | 1 | 2 | 1792.54036 | -| terp1kmc02zsgf286dsfqc086f8588knk6u25h8sq3c | 0xb6f0f50a084a8fa6c120c3cfa49e873da76d7154 | 1 | 2 | 1792.54036 | -| terp14nl5xvy6fegwsx6hy5z7n0cx7qgjxqphnyn0vw | 0xacff43309a4e50e81b572505e9bf06f011230037 | 1 | 2 | 1792.54036 | -| terp1rfs4fkgq4vgn985g799qh33s5qsmm0xjj7hwwn | 0x1a6154d900ab11329e88f14a0bc630a021bdbcd2 | 1 | 2 | 1792.54036 | -| terp1cdzasyxska74l6emsz2kaxle7tgqj7n5anesev | 0xc345d810d0b77d5feb3b80956e9bf9f2d0097a74 | 1 | 2 | 1792.54036 | -| terp1ucv5nmz7l5wse7370vpdr4s8zczqr58qlcfrfp | 0xe61949ec5efd1d0cfa3e7b02d1d607160401d0e0 | 1 | 2 | 1792.54036 | -| terp1ky987wjgcvzg4syzxhy5j0j7208s7wdmgr7l9c | 0xb10a7f3a48c3048ac08235c9493e5e53cf0f39bb | 1 | 2 | 1792.54036 | -| terp1h5q7a7fpnjhk0jdq7esa42xf6l30x89e8maexq | 0xbd01eef9219caf67c9a0f661daa8c9d7e2f31cb9 | 1 | 2 | 1792.54036 | -| terp1thn2r44klwqrks39hae0j6ykkc4wkvqtdvpa39 | 0x5de6a1d6b6fb803b4225bf72f96896b62aeb300b | 1 | 2 | 1792.54036 | -| terp1dcdvnvl5fxd8xwzamrfd4mtyf9qx6j05kujev2 | 0x6e1ac9b3f4499a73385dd8d2daed6449406d49f4 | 1 | 2 | 1792.54036 | -| terp1h3v2nm4xxcqk0gxraqd3xsz2nwdcsqls8c34cs | 0xbc58a9eea6360167a0c3e81b13404a9b9b8803f0 | 1 | 2 | 1792.54036 | -| terp1lqarng43u5j9hcl0nyl2natzvuty6w4qrt4aqj | 0xf83a39a2b1e5245be3ef993ea9f56267164d3aa0 | 1 | 2 | 1792.54036 | -| terp1ljg97zakcym3f8kk5z5ng7s55rr773ekuzd2d5 | 0xfc905f0bb6c137149ed6a0a9347a14a0c7ef4736 | 1 | 2 | 1792.54036 | -| terp1fkjfvzgnfl6dfkyhv7srnf3800pdtt25uklawd | 0x4da49609134ff4d4d89767a039a6277bc2d5ad54 | 1 | 2 | 1792.54036 | -| terp1dgpqsh3yxpuqcpll33zurdtdlc3497d3aajare | 0x6a02085e2430780c07ff8c45c1b56dfe2352f9b1 | 1 | 2 | 1792.54036 | -| terp1aqzqpgtmd572yxjsvn2jl4m025jjhk0mt4auuz | 0xe80400a17b6d3ca21a5064d52fd76f55252bd9fb | 1 | 2 | 1792.54036 | -| terp187nc7s24gwvw4rah3ssxm5ds7jfq7vjn86q8yg | 0x3fa78f41554398ea8fb78c206dd1b0f4920f3253 | 1 | 2 | 1792.54036 | -| terp1luw4qj6cv62jkzyv7fvqzamnxpyfykmz4wk7k4 | 0xff1d504b5866952b088cf2580177733048925b62 | 1 | 2 | 1792.54036 | -| terp1pxt5g6rwmw825mruqa7crsr5j62sk50v9r09e3 | 0x099744686edb8eaa6c7c077d81c07496950b51ec | 1 | 2 | 1792.54036 | -| terp1uqucsxu2uy4n9qjl85ypvalvncrjslajzxc5hf | 0xe039881b8ae12b32825f3d081677ec9e07287fb2 | 1 | 2 | 1792.54036 | -| terp18juwr7400gtahn8cl05evpxcp0jrx9fjzzyups | 0x3cb8e1faaf7a17dbccf8fbe99604d80be4331532 | 1 | 2 | 1792.54036 | -| terp1wfhwzl3zkkjt73zaxg6yemcafryy5gxd9fszcp | 0x726ee17e22b5a4bf445d32344cef1d48c84a20cd | 1 | 2 | 1792.54036 | -| terp160qz04l0kjmdsqy4mlwzf3s9qdgskvn64tv4uv | 0xd3c027d7efb4b6d80095dfdc24c60503510b327a | 1 | 2 | 1792.54036 | -| terp1pd6eyjz3ww9gsk50jhtcdkgjgn9au30w0098y3 | 0x0b75924851738a885a8f95d786d91244cbde45ee | 1 | 2 | 1792.54036 | -| terp1m09nnw6yj8c06czpgpn65mfm5dc4kuwhp5rl69 | 0xdbcb39bb4491f0fd60414067aa6d3ba3715b71d7 | 1 | 2 | 1792.54036 | -| terp1kwauck0nntqh7zkwcya7g5afdkqxz2769pgege | 0xb3bbcc59f39ac17f0acec13be453a96d80612bda | 1 | 2 | 1792.54036 | -| terp1eqmha4f6esr6zcx8l52x8vyh5hhpsentw9e4mj | 0xc8377ed53acc07a160c7fd1463b097a5ee18666b | 1 | 2 | 1792.54036 | -| terp1ssc86hrgek24a2xy59y5m5fkzdcq7eu5fpl0c4 | 0x84307d5c68cd955ea8c4a1494dd13613700f6794 | 1 | 2 | 1792.54036 | -| terp173rf7umzsys25tx4tvzeglqgrqg4zrnjrxf6sz | 0xf4469f73628120aa2cd55b05947c081811510e72 | 1 | 2 | 1792.54036 | -| terp1lltsslussms3zftpw8x05gsj3vatg7glxywc23 | 0xffd7087f9086e111256171ccfa22128b3ab4791f | 1 | 2 | 1792.54036 | -| terp1nnfftrcxasf8tdy66f2jthandjm638ppx2vkq3 | 0x9cd2958f06ec1275b49ad25525dfb36cb7a89c21 | 1 | 2 | 1792.54036 | -| terp129zv6jjdsw4ehs7qq0n66jjjudzhyqef0tccqs | 0x5144cd4a4d83ab9bc3c003e7ad4a52e345720329 | 1 | 2 | 1792.54036 | -| terp1awer6ayjtqz866a6z7hryw8t8e7hlnm8ttwvgd | 0xebb23d749258047d6bba17ae3238eb3e7d7fcf67 | 1 | 2 | 1792.54036 | -| terp1jc5e352203rv3j22vkn40sejeyytq9tzstgl7s | 0x962998d14a7c46c8c94a65a757c332c908b01562 | 1 | 2 | 1792.54036 | -| terp1y859u3e6ce0vr2r4ly2vury2r8dnxfy5avlrsj | 0x21e85e473ac65ec1a875f914ce0c8a19db332494 | 1 | 2 | 1792.54036 | -| terp1jzw9ghksna49mv79ndj8j5malldsj7fcv8f37e | 0x909c545ed09f6a5db3c59b6479537dffdb097938 | 1 | 2 | 1792.54036 | -| terp16v686mgvzszzdnk3rg0532fgfdarpgcr60m8ku | 0xd3347d6d0c140426ced11a1f48a9284b7a30a303 | 1 | 2 | 1792.54036 | -| terp1zjfyvcq98vgrs5qgy7a644sckqmffu02w4gkxm | 0x14924660053b1038500827bbaad618b03694f1ea | 1 | 2 | 1792.54036 | -| terp1af543qc07s9sufp0g2wd00ze368h5kjgr2gde0 | 0xea6958830ff40b0e242f429cd7bc598e8f7a5a48 | 1 | 2 | 1792.54036 | -| terp1mlxuu4kgssg4zuhv4y6sp8nfwcp7gelh3a72y3 | 0xdfcdce56c884115172eca935009e697603e467f7 | 1 | 2 | 1792.54036 | -| terp15jvgwl3vdsl5ftz9s6q5mxc3jtl93c0ck50a53 | 0xa498877e2c6c3f44ac4586814d9b1192fe58e1f8 | 1 | 2 | 1792.54036 | -| terp177vesq6mav45flm20sv8h98ujd8qrljnevs65e | 0xf79998035beb2b44ff6a7c187b94fc934e01fe53 | 1 | 2 | 1792.54036 | -| terp1858xxecws2tqmzqfuqdhn72wa9aj97s94sfw2y | 0x3d0e63670e82960d8809e01b79f94ee97b22fa05 | 1 | 2 | 1792.54036 | -| terp14q5mkw42uldrep2egeu684xah8a9wtpyjvqz2v | 0xa829bb3aaae7da3c85594679a3d4ddb9fa572c24 | 1 | 2 | 1792.54036 | -| terp1s0fxqe0s4p36rtptlcn0dh0adtyh6wn7jsutwn | 0x83d26065f0a863a1ac2bfe26f6ddfd6ac97d3a7e | 1 | 2 | 1792.54036 | -| terp152palkgmartr36n734yqpssfsrhzmkng984zh3 | 0xa283dfd91be8d638ea7e8d4800c20980ee2dda68 | 1 | 2 | 1792.54036 | -| terp1wrxxd35wqg9dekp53zs7r5xftmp7a4rtj0n80y | 0x70cc66c68e020adcd83488a1e1d0c95ec3eed46b | 1 | 2 | 1792.54036 | -| terp1h68hyj67zyljajx5yszx2s93z2wzjj7t8ex9zw | 0xbe8f724b5e113f2ec8d424046540b1129c294bcb | 1 | 2 | 1792.54036 | -| terp136fj9a5vclpf6c3htl7fe3axmjxeu54e5hhh65 | 0x8e9322f68cc7c29d62375ffc9cc7a6dc8d9e52b9 | 1 | 2 | 1792.54036 | -| terp14rcrxwqv0gvckymk28lt8yfd86gzejqgnn8sac | 0xa8f033380c7a198b137651feb3912d3e902cc808 | 1 | 2 | 1792.54036 | -| terp1n9a28fj3hyy83mxwljm0fkz67q3hg2x6mmhnc9 | 0x997aa3a651b90878eccefcb6f4d85af0237428da | 1 | 2 | 1792.54036 | -| terp1kdl2gt8qqxfyh947634r8maycjm9z3luxnxvnw | 0xb37ea42ce001924b96bed46a33efa4c4b65147fc | 1 | 2 | 1792.54036 | -| terp1rnh2t8lpsgqgtsfdfcxzg0jc0kqgkwusmuv42n | 0x1ceea59fe1820085c12d4e0c243e587d808b3b90 | 1 | 2 | 1792.54036 | -| terp1f2lhu3hzkgk6r5zqh5jqcn5k2aptd65te5qlf7 | 0x4abf7e46e2b22da1d040bd240c4e965742b6ea8b | 1 | 2 | 1792.54036 | -| terp12ymdwle8nyyha8gz8n9kut382prvmlsa860qjy | 0x5136d77f2799097e9d023ccb6e2e275046cdfe1d | 1 | 2 | 1792.54036 | -| terp1mescvfm2xw55a5g793z08g3cvwsvaqszx79wjm | 0xde6186276a33a94ed11e2c44f3a23863a0ce8202 | 1 | 2 | 1792.54036 | -| terp19wk90zr9r95vw2ht4zety2p38kdjdc9ckrzhsx | 0x2bac5788651968c72aeba8b2b228313d9b26e0b8 | 1 | 2 | 1792.54036 | -| terp1at68p43gkngk0asxyjwjmdxwa0v9z76tk94qqx | 0xeaf470d628b4d167f606249d2db4ceebd8517b4b | 1 | 2 | 1792.54036 | -| terp1hqjvvsmyraxlvjt5vh5s0w73nenchjhu0gwzsx | 0xb824c643641f4df6497465e907bbd19e678bcafc | 1 | 2 | 1792.54036 | -| terp10shx6wm85k2wv3cqngqay4eqhcne7r40kytxz3 | 0x7c2e6d3b67a594e647009a01d25720be279f0eaf | 1 | 2 | 1792.54036 | -| terp1g687v0cjmstcwdp29hk9h8xx2ydadpjs9k3fmy | 0x468fe63f12dc1787342a2dec5b9cc6511bd68650 | 1 | 2 | 1792.54036 | -| terp1xejcl8jmyuj4ml7n5wv5mh2cnzk7l97yhru7pd | 0x36658f9e5b27255dffd3a3994ddd5898adef97c4 | 1 | 2 | 1792.54036 | -| terp13r9xz9vltqal5a2gq7hx7z8ys2uwaptrd3az6t | 0x88ca61159f583bfa754807ae6f08e482b8ee8563 | 1 | 2 | 1792.54036 | -| terp1qaxerxqfztwv0y0c9w3qzgxqsgmedlxjacdmw6 | 0x074d91980912dcc791f82ba20120c0823796fcd2 | 1 | 2 | 1792.54036 | -| terp1k45jn07tskw89e84szecddcztwswmf3wpljuwl | 0xb56929bfcb859c72e4f580b386b7025ba0eda62e | 1 | 2 | 1792.54036 | -| terp1rtfjap960cef6xtntjnf8fs5fhpppzqfga8xa0 | 0x1ad32e84ba7e329d19735ca693a6144dc2108809 | 1 | 2 | 1792.54036 | -| terp1kw4s3eg2mt6az76w6pz7vc99p99g80qpmz29ws | 0xb3ab08e50adaf5d17b4ed045e660a5094a83bc01 | 1 | 2 | 1792.54036 | -| terp1vfsz0fkf3u0uxue6mfgwgjj08zg38vva962zsc | 0x626027a6c98f1fc3733ada50e44a4f389113b19d | 1 | 2 | 1792.54036 | -| terp10y75vraddrdk0fxqdp3yy48vvd52s6hn7andy7 | 0x793d460fad68db67a4c068624254ec6368a86af3 | 1 | 2 | 1792.54036 | -| terp1hw8zm6uzdmszj27qhdc333ymxh0wfefv2ke34w | 0xbb8e2deb826ee0292bc0bb7118c49b35dee4e52c | 1 | 2 | 1792.54036 | -| terp18znp5prsv65cwxyya4rrsk4e877mtk30c3gy67 | 0x38a61a047066a9871884ed46385ab93fbdb5da2f | 1 | 2 | 1792.54036 | -| terp1ch4s632u8zkfwlaawr392e4zym4y5fw6sewxss | 0xc5eb0d455c38ac977fbd70e25566a226ea4a25da | 1 | 2 | 1792.54036 | -| terp1krm32zqghespnqgn070v0nvkzj3hlcrkjg06yk | 0xb0f7150808be601981137f9ec7cd9614a37fe076 | 1 | 2 | 1792.54036 | -| terp1wfv0uv6cku7eyvat2kw4qwwfdzpuaqeg96m2dr | 0x7258fe3358b73d9233ab559d5039c96883ce8328 | 1 | 2 | 1792.54036 | -| terp1gyf44f5yt5ssfw8dkawsdgy842pdlk9wtkrmjy | 0x41135aa6845d2104b8edb75d06a087aa82dfd8ae | 1 | 2 | 1792.54036 | -| terp1tf2stqlqclc3e0z32fer9cvtyu24ypjyuduq7x | 0x5a550583e0c7f11cbc51527232e18b2715520644 | 1 | 2 | 1792.54036 | -| terp19prmexltlrc464ldx70zarlh66y0ud9yd9q9de | 0x2847bc9bebf8f15d57ed379e2e8ff7d688fe34a4 | 1 | 2 | 1792.54036 | -| terp1mmx004pa2zuvau20q9e09vzpa4r6tf67xjzh4n | 0xdeccf7d43d50b8cef14f0172f2b041ed47a5a75e | 1 | 2 | 1792.54036 | -| terp1308q86jn2ygzqnqgvd9vzgv37fjgu3e5yc662w | 0x8bce03ea535110204c08634ac12191f2648e4734 | 1 | 2 | 1792.54036 | -| terp1vghzf5l8y87rsencepte9ayr3rq32q3qlzkjf2 | 0x622e24d3e721fc386678c85792f48388c1150220 | 1 | 2 | 1792.54036 | -| terp1rph6lqu3rq73zmyvfdhh9xeh2pcd9azahgj0kp | 0x186faf8391183d116c8c4b6f729b375070d2f45d | 1 | 2 | 1792.54036 | -| terp1zpx2qmuadrg5c3ehg0f2an8srfvmwxrqzzketg | 0x104ca06f9d68d14c473743d2aeccf01a59b71860 | 1 | 2 | 1792.54036 | -| terp1mepflwc3f7628s0x4y65ak2evsg6nmknjnxjqm | 0xde429fbb114fb4a3c1e6a9354ed9596411a9eed3 | 1 | 2 | 1792.54036 | -| terp1vy7mu4xfq9dvtxzpayrsvlpemnwwvrpru46dd3 | 0x613dbe54c9015ac59841e907067c39dcdce60c23 | 1 | 2 | 1792.54036 | -| terp149agsm86vt4rsp4y8qh9knnrvlg90ux2rzhurk | 0xa97a886cfa62ea3806a4382e5b4e6367d057f0ca | 1 | 2 | 1792.54036 | -| terp1umz0f880mxtk86yxn4q8zy38d9hf76gg438tp9 | 0xe6c4f49cefd99763e8869d40711227696e9f6908 | 1 | 2 | 1792.54036 | -| terp1w9rpq4plxelkcy3epl8agpsgma8f2e78sx8ss9 | 0x714610543f367f6c12390fcfd40608df4e9567c7 | 1 | 2 | 1792.54036 | -| terp15v870gaw3frm67r9j3lf4rxghrnat9llteev2m | 0xa30fe7a3ae8a47bd7865947e9a8cc8b8e7d597ff | 1 | 2 | 1792.54036 | -| terp1eu2zgrxnnw3du66fvz928nchrfmynlr7dge3yv | 0xcf14240cd39ba2de6b49608aa3cf171a7649fc7e | 1 | 2 | 1792.54036 | -| terp1zzwsw459z2vstyygljsr5nle2pkpxylycelmhe | 0x109d0756851299059088fca03a4ff9506c1313e4 | 1 | 2 | 1792.54036 | -| terp1kp5mpj7zh68kk8vull6vhhlry4zc5nptdw8ljk | 0xb069b0cbc2be8f6b1d9cfff4cbdfe325458a4c2b | 1 | 2 | 1792.54036 | -| terp1yjcval4396aw7cq6pnsh33h9939wr7rfvz6r4j | 0x24b0cefeb12ebaef601a0ce178c6e52c4ae1f869 | 1 | 2 | 1792.54036 | -| terp1fts6kfyqs30cylltqrdjhgmturanx58rgqjlhv | 0x4ae1ab2480845f827feb00db2ba36be0fb3350e3 | 1 | 2 | 1792.54036 | -| terp1zmnly697fxm8crjwr2jwl34vur4kcut2mfvnzr | 0x16e7f268be49b67c0e4e1aa4efc6ace0eb6c716a | 1 | 2 | 1792.54036 | -| terp144uh6sqep77mshf3twev2cc0enwr6p4h0g9llt | 0xad797d40190fbdb85d315bb2c5630fccdc3d06b7 | 1 | 2 | 1792.54036 | -| terp19x5j98xzhjn5mdly88mz3ssswkq6qdjf4d9yvm | 0x29a9229cc2bca74db7e439f628c2107581a03649 | 1 | 2 | 1792.54036 | -| terp1v3qmvg8eajujh5j6wj554mshhu53ctkd49mmtf | 0x6441b620f9ecb92bd25a74a94aee17bf291c2ecd | 1 | 2 | 1792.54036 | -| terp1p4wmww3mxzjg9294rgqvn62fgwgqsvea2w78gw | 0x0d5db73a3b30a482a8b51a00c9e949439008333d | 1 | 2 | 1792.54036 | -| terp1nmn3f5nhch8h73fm76d7gxm7m7kpnnt8jvwcga | 0x9ee714d277c5cf7f453bf69be41b7edfac19cd67 | 1 | 2 | 1792.54036 | -| terp1y27990m9k4hx96y0pnsgautmwrcsg0yp3nxneu | 0x22bc52bf65b56e62e88f0ce08ef17b70f1043c81 | 1 | 2 | 1792.54036 | -| terp1g0p9wu3ezseap3v6jtknelwh50jmcjf3j4zj87 | 0x43c25772391433d0c59a92ed3cfdd7a3e5bc4931 | 1 | 2 | 1792.54036 | -| terp1ap3dh556t709njdva63pnaalwmg3zasu3unsl2 | 0xe862dbd29a5f9e59c9aceea219f7bf76d111761c | 1 | 2 | 1792.54036 | -| terp1d2f0m54guve5t7qqjv4ffs3lvsyzfpjhlwc8m7 | 0x6a92fdd2a8e33345f800932a94c23f6408248657 | 1 | 2 | 1792.54036 | -| terp1gg7knzd6mufywdrv7ljt227l4x3egr4x85p9qy | 0x423d6989badf1247346cf7e4b52bdfa9a3940ea6 | 1 | 2 | 1792.54036 | -| terp10a6twx6u8gsqm8lnylgld78md9fe8mzu29j08s | 0x7f74b71b5c3a200d9ff327d1f6f8fb695393ec5c | 1 | 2 | 1792.54036 | -| terp1ahnj8fkw5e2rqwlea937ha33t5lfv2gsk5ahzp | 0xede723a6cea654303bf9e963ebf6315d3e962910 | 1 | 2 | 1792.54036 | -| terp16a6kpywt8sqne6j823em9cqtpq9kjtdl4m2nqw | 0xd7756091cb3c013cea475473b2e00b080b692dbf | 1 | 2 | 1792.54036 | -| terp1gxpf0wq46lyewqwra3s7kpw3ewsvrlc8aumxvs | 0x418297b815d7c99701c3ec61eb05d1cba0c1ff07 | 1 | 2 | 1792.54036 | -| terp1dnxnhms3fe8gax5a4xmjped0uq99t9m56w40u9 | 0x6ccd3bee114e4e8e9a9da9b720e5afe00a559774 | 1 | 2 | 1792.54036 | -| terp12q7jjekdfgnqgrq3rqjdhhg4x735a8azgzdekd | 0x503d2966cd4a26040c111824dbdd1537a34e9fa2 | 1 | 2 | 1792.54036 | -| terp155r34tdul6gdrht9ss5uh6z029g56zp38z0cmg | 0xa5071aadbcfe90d1dd658429cbe84f51514d0831 | 1 | 2 | 1792.54036 | -| terp12k9xx5f096lj0q6vehsmj0tfvwz4dpn00h5rv5 | 0x558a63512f2ebf27834ccde1b93d69638556866f | 1 | 2 | 1792.54036 | -| terp15qk3hqx4zm8tjtt6gx0x3ak5grfrlg986uqzgt | 0xa02d1b80d516ceb92d7a419e68f6d440d23fa0a7 | 1 | 2 | 1792.54036 | -| terp1m56r2jxlpla8x9wy0zkxnaxk3f2x3nxunxz5ag | 0xdd343548df0ffa7315c478ac69f4d68a5468ccdc | 1 | 2 | 1792.54036 | -| terp1nqjen7du3a7rxwlf9vem5kyd8nu39a0h3y5ysg | 0x982599f9bc8f7c333be92b33ba588d3cf912f5f7 | 1 | 2 | 1792.54036 | -| terp1vft0jgcz46aes0t30z6gcup6rr77dnzvhv5p2y | 0x6256f92302aebb983d7178b48c703a18fde6cc4c | 1 | 2 | 1792.54036 | -| terp1sc7qwc5dlr202nkfdujyd4t5ypvv8m3svgdkxq | 0x863c07628df8d4f54ec96f2446d5742058c3ee30 | 1 | 2 | 1792.54036 | -| terp1cx5d9hj0fdetw2xsqllqvqzdu9mzh96dcalxev | 0xc1a8d2de4f4b72b728d007fe06004de1762b974d | 1 | 2 | 1792.54036 | -| terp15d3z06h6xd454zt9d80vv469z7j54dnse8ewtu | 0xa36227eafa336b4a896569dec6574517a54ab670 | 1 | 2 | 1792.54036 | -| terp1myy64hptgl443shagtqg3lshhu9e57s4umhdwc | 0xd909aadc2b47eb58c2fd42c088fe17bf0b9a7a15 | 1 | 2 | 1792.54036 | -| terp1stw9gmxdel0zv0dw4ykyuewcepgkpur4gj975k | 0x82dc546ccdcfde263daea92c4e65d8c85160f075 | 1 | 2 | 1792.54036 | -| terp1lakyjrzha7h27hysy4xtnmnurr0c2c3p08ed8g | 0xff6c490c57efaeaf5c90254cb9ee7c18df856221 | 1 | 2 | 1792.54036 | -| terp1z7l8hns7rz6k8qjq8le7rpurxhlgwmqkxhqg29 | 0x17be7bce1e18b56382403ff3e1878335fe876c16 | 1 | 2 | 1792.54036 | -| terp1qn9t36fegn7s35h39aucte7ufx0vwuh3s7x55a | 0x04cab8e93944fd08d2f12f7985e7dc499ec772f1 | 1 | 2 | 1792.54036 | -| terp16q7ltvmqlarv6d4esvl7s46sjg2w7hjy5en6gc | 0xd03df5b360ff46cd36b9833fe857509214ef5e44 | 1 | 2 | 1792.54036 | -| terp1alum2zn7ehy3hk5z5zcdgm89pwt76snsqq2cxr | 0xeff9b50a7ecdc91bda82a0b0d46ce50b97ed4270 | 1 | 2 | 1792.54036 | -| terp10msznqguqygq6vts08kkrx98s45fnevs3hagdz | 0x7ee029811c01100d317079ed6198a7856899e590 | 1 | 2 | 1792.54036 | -| terp17h8l5zncf92unq0r74py9sa5hw64jy8mra07zy | 0xf5cffa0a784955c981e3f54242c3b4bbb55910fb | 1 | 2 | 1792.54036 | -| terp1ckqkn9clh8ndd94uldhuy5y4mnwee9kkjznanl | 0xc58169971fb9e6d696bcfb6fc25095dcdd9c96d6 | 1 | 2 | 1792.54036 | -| terp12kmakvx2wjg6f542cdex3xfc9ah2m4d8dgu83u | 0x55b7db30ca7491a4d2aac3726899382f6eadd5a7 | 1 | 2 | 1792.54036 | -| terp18w8m40n8y63ksu65n859ffu2xs7za25qpnnlz5 | 0x3b8fbabe6726a368735499e854a78a343c2eaa80 | 1 | 2 | 1792.54036 | -| terp1fjwrvfk0rq5d576c55xu9a4293z5vcy7n37es7 | 0x4c9c3626cf1828da7b58a50dc2f6aa2c4546609e | 1 | 2 | 1792.54036 | -| terp1v0vsn9axlmxnq2sxxrc7zwyuw9zpxmmv0pcxn9 | 0x63d90997a6fecd302a0630f1e1389c7144136f6c | 1 | 2 | 1792.54036 | -| terp1gwf5hjm353p2qyqfxrslaj4kxf77wkwwrj4kwy | 0x43934bcb71a442a0100930e1fecab6327de759ce | 1 | 2 | 1792.54036 | -| terp1reffny7gasmvjvyrl4q5wf30dhdw79yf2ez50k | 0x1e529993c8ec36c93083fd4147262f6ddaef1489 | 1 | 2 | 1792.54036 | -| terp1u4tsyapjcw3cqfph2el4qjeepfcycnjpy5q9px | 0xe557027432c3a3802437567f504b390a704c4e41 | 1 | 2 | 1792.54036 | -| terp10ek8jrdlmcm23wjgjfekdvy4uq28yrep2rxlvk | 0x7e6c790dbfde36a8ba48927366b095e014720f21 | 1 | 2 | 1792.54036 | -| terp1pn7eh8v9kf7d7h8kuc5yu665ty64elarlk6ppd | 0x0cfd9b9d85b27cdf5cf6e6284e6b5459355cffa3 | 1 | 2 | 1792.54036 | -| terp18yk5wgkxzsj8rvea50qmetmde0zazqua4q55tw | 0x392d4722c6142471b33da3c1bcaf6dcbc5d1039d | 1 | 2 | 1792.54036 | -| terp1qtq8xg4l6hdud2jcm5022h4eh0llm5gmkpz8d6 | 0x02c07322bfd5dbc6aa58dd1ea55eb9bbfffdd11b | 1 | 2 | 1792.54036 | -| terp1kl7dv4rvd9e496337chnd4el0etu09mea3cuy8 | 0xb7fcd6546c697352ea31f62f36d73f7e57c79779 | 1 | 2 | 1792.54036 | -| terp1s5gvhr53ufrqj88nsammx7am2gj8938nat4w6e | 0x8510cb8e91e246091cf38777b37bbb522472c4f3 | 1 | 2 | 1792.54036 | -| terp15962j75r5mf5eedlnet0w7dhxqhz93xv20uhel | 0xa174a97a83a6d34ce5bf9e56f779b7302e22c4cc | 1 | 2 | 1792.54036 | -| terp1gdm7s0kmnwmfq4u4sqkv56z96ukzx7ekppgx0z | 0x4377e83edb9bb6905795802cca6845d72c237b36 | 1 | 2 | 1792.54036 | -| terp16s06z8sp0qv2s6xw476mnvg69ryl4d4xnjs6qt | 0xd41fa11e017818a868ceafb5b9b11a28c9fab6a6 | 1 | 2 | 1792.54036 | -| terp1hfrlv5mgnx9tl2fnkmck8de2a0539l46dk9fj4 | 0xba47f65368998abfa933b6f163b72aebe912feba | 1 | 2 | 1792.54036 | -| terp1d45lhyyg6um9xm6nhn3wujjrvj3u289nayzvyw | 0x6d69fb9088d736536f53bce2ee4a4364a3c51cb3 | 1 | 2 | 1792.54036 | -| terp1kamv96l4pzu5cw63y4unhzgmswkvlfa008l0h2 | 0xb776c2ebf508b94c3b5125793b891b83accfa7af | 1 | 2 | 1792.54036 | -| terp1yc7w63pkaf7a69v9y8v9cdx966s55ge8llqyxj | 0x263ced4436ea7ddd158521d85c34c5d6a14a2327 | 1 | 2 | 1792.54036 | -| terp1uqlrlxk4dp3ps3v5l9vpr0gcehqt4dy4neem9r | 0xe03e3f9ad56862184594f95811bd18cdc0bab495 | 1 | 2 | 1792.54036 | -| terp1zkpyyslsg6y88dxqe7aglhrz45nsh0hfsd59m9 | 0x15824243f0468873b4c0cfba8fdc62ad270bbee9 | 1 | 2 | 1792.54036 | -| terp1j07uakkzf0ca9w9pxvmrqu7lq9qw9e94992ren | 0x93fdcedac24bf1d2b8a133363073df0140e2e4b5 | 1 | 2 | 1792.54036 | -| terp1t8w0gqrdr2jwu4etfr8hv2sz7exyfe905nr57y | 0x59dcf4006d1aa4ee572b48cf762a02f64c44e4af | 1 | 2 | 1792.54036 | -| terp1aqmnkfgahwgvp6ymeza0yc6ygty7tazwk26ly0 | 0xe8373b251dbb90c0e89bc8baf2634442c9e5f44e | 1 | 2 | 1792.54036 | -| terp1tf4hxzf4vvxcmzlz85l0xmseluug5j3tet36eq | 0x5a6b730935630d8d8be23d3ef36e19ff388a4a2b | 1 | 2 | 1792.54036 | -| terp1yqrlnse0jfnxjdzxwerp42q00r4c8n3lwhvzr2 | 0x2007f9c32f926669344676461aa80f78eb83ce3f | 1 | 2 | 1792.54036 | -| terp1zhulwl3y2rc855ka9c0ga54mw36z6yf4yw9rv8 | 0x15f9f77e2450f07a52dd2e1e8ed2bb74742d1135 | 1 | 2 | 1792.54036 | -| terp1vvhalymccnz5nc56r6gz2v0jd7njgsh0f3tnt6 | 0x632fdf9378c4c549e29a1e902531f26fa72442ef | 1 | 2 | 1792.54036 | -| terp1rh6dt92fz2uagurl7u6s2u90p79kpy44mzh0yd | 0x1df4d5954912b9d4707ff7350570af0f8b6092b5 | 1 | 2 | 1792.54036 | -| terp1rc6xcpd8s8lfqrjgsja9v6e8h9eky2kl5vp782 | 0x1e346c05a781fe900e4884ba566b27b973622adf | 1 | 2 | 1792.54036 | -| terp1quaj8kkrz36syq96akgtxkspmefxs7vz2h6edc | 0x073b23dac314750200baed90b35a01de52687982 | 1 | 2 | 1792.54036 | -| terp19lqccr4m8fv6gm9frcd3ks3p0j7vxqrn3j9me3 | 0x2fc18c0ebb3a59a46ca91e1b1b42217cbcc30073 | 1 | 2 | 1792.54036 | -| terp1v5r93mrxzk5raf98eydgm664qpu6u4kees54zp | 0x650658ec6615a83ea4a7c91a8deb550079ae56d9 | 1 | 2 | 1792.54036 | -| terp13rukf3xvugr74fmul8k80c9zuuttdu0c8e9qrv | 0x88f964c4cce207eaa77cf9ec77e0a2e716b6f1f8 | 1 | 2 | 1792.54036 | -| terp1nysk6pcfjczvwm6hahlzkd8hk2f0gvcmh68er4 | 0x99216d07099604c76f57edfe2b34f7b292f4331b | 1 | 2 | 1792.54036 | -| terp1z75qtw3xgc2sf0rvy7p05gkalfeu3zphadau0z | 0x17a805ba26461504bc6c2782fa22ddfa73c88837 | 1 | 2 | 1792.54036 | -| terp1ygsd3vznnj6xzwj3z2zk4xce9vuqhcml3sl86e | 0x2220d8b0539cb4613a5112856a9b192b380be37f | 1 | 2 | 1792.54036 | -| terp1es488qqxcgmrj7pyvq5y8yvmslnyutknhvkun5 | 0xcc2a738006c236397824602843919b87e64e2ed3 | 1 | 2 | 1792.54036 | -| terp1qjwa2gnwnwsgcsd34g3fk9mw53nhmzwey7s36q | 0x049dd5226e9ba08c41b1aa229b176ea4677d89d9 | 1 | 2 | 1792.54036 | -| terp1fa7d4sssqk7jhptejv7ccjgym3vxk8nd58e9d9 | 0x4f7cdac21005bd2b8579933d8c4904dc586b1e6d | 1 | 2 | 1792.54036 | -| terp16zqwt3y6lmcf8f5kj8326h75q59pxdeje0eqtl | 0xd080e5c49afef093a69691e2ad5fd4050a133732 | 1 | 2 | 1792.54036 | -| terp1uxdh353vhgrg78c6wnnsa8cntquwx2z5gy98tn | 0xe19b78d22cba068f1f1a74e70e9f135838e32854 | 1 | 2 | 1792.54036 | -| terp1svskaq4y5zhgcwqyx0cap3zj7d89zvqz6v4ynq | 0x83216e82a4a0ae8c380433f1d0c452f34e513002 | 1 | 2 | 1792.54036 | -| terp14yvxfqmz8eat4qfx0meu7c6wav2fxjchtufu3k | 0xa9186483623e7aba81267ef3cf634eeb14934b17 | 1 | 2 | 1792.54036 | -| terp1qajnf5dm5haxpc062zsesuu6zlwpy2pcc464q0 | 0x076534d1bba5fa60e1fa50a198739a17dc122838 | 1 | 2 | 1792.54036 | -| terp1xcrkukjqrhkvv8qrm2t7wvkg785cfnmpceslyl | 0x36076e5a401decc61c03da97e732c8f1e984cf61 | 1 | 2 | 1792.54036 | -| terp17r78f0cvy9pnx9avpnu675v9f7dkghvsgnnjck | 0xf0fc74bf0c21433317ac0cf9af51854f9b645d90 | 1 | 2 | 1792.54036 | -| terp1vdpp46fugn6l8avt0cadzfz7j4wmfxyhpxd5cn | 0x63421ae93c44f5f3f58b7e3ad1245e955db49897 | 1 | 2 | 1792.54036 | -| terp1hp836gg7u5uezumsg6fkkjaq9nrv4dyjrwpsg9 | 0xb84f1d211ee53991737046936b4ba02cc6cab492 | 1 | 2 | 1792.54036 | -| terp1qc64xckd32m97c6f2dws4tyrmkg3c025yj4elj | 0x06355362cd8ab65f6349535d0aac83dd911c3d54 | 1 | 2 | 1792.54036 | -| terp1syy58q7s2t68gcmvyjgmx7anz7g5p97ylkmtxy | 0x81094383d052f474636c2491b37bb317914097c4 | 1 | 2 | 1792.54036 | -| terp1swrudwvamqjcw4y44u7yd3acr5r9hqpt9d76rc | 0x8387c6b99dd825875495af3c46c7b81d065b802b | 1 | 2 | 1792.54036 | -| terp13jj820cxqxkw5vl8e29fgg7xltlzl9stmk4gz8 | 0x8ca4753f0601acea33e7ca8a9423c6fafe2f960b | 1 | 2 | 1792.54036 | -| terp1p72ryhwvpcgclv69f080767ds99d9dv05vup6h | 0x0f94325dcc0e118fb3454bceff6bcd814ad2b58f | 1 | 2 | 1792.54036 | -| terp17utrccpmp4fcc7y6xljqd3scy9f00nyp42dvsv | 0xf7163c603b0d538c789a37e406c6182152f7cc81 | 1 | 2 | 1792.54036 | -| terp1ka6zn839d92le57zkm9catwtzhkjd4atwxh37k | 0xb774299e256955fcd3c2b6cb8eadcb15ed26d7ab | 1 | 2 | 1792.54036 | -| terp1rw9w6rj2ya02j6jphytmh5ml6zqppdh43njgvw | 0x1b8aed0e4a275ea96a41b917bbd37fd08010b6f5 | 1 | 2 | 1792.54036 | -| terp1u5xdtuuvl5ae6lqv9xh9vet0emezhzdm7dp4v3 | 0xe50cd5f38cfd3b9d7c0c29ae56656fcef22b89bb | 1 | 2 | 1792.54036 | -| terp1h2rw7dc6w84zygcuk65f9nj39y3sakvvfml7xa | 0xba86ef371a71ea22231cb6a892ce5129230ed98c | 1 | 2 | 1792.54036 | -| terp1zfufc7ddqjvumxun4etdgqkyeeyypvnsh2p5c9 | 0x12789c79ad0499cd9b93ae56d402c4ce4840b270 | 1 | 2 | 1792.54036 | -| terp1yau34ud3smvmqr8l3par7plz6usgdc5wjq70a2 | 0x27791af1b186d9b00cff887a3f07e2d72086e28e | 1 | 2 | 1792.54036 | -| terp1mh04374jr8um72pz3444lnu7j7tssy0l00ycjy | 0xdddf58fab219f9bf28228d6b5fcf9e97970811ff | 1 | 2 | 1792.54036 | -| terp1w8du6lllkwqrs77d6leng9m07cz7unazhs5qad | 0x71dbcd7fffb380387bcdd7f334176ff605ee4fa2 | 1 | 2 | 1792.54036 | -| terp17w2d3767e35dsql7hsg0cdypk56vq4u0fg3cp0 | 0xf394d8fb5ecc68d803febc10fc3481b534c0578f | 1 | 2 | 1792.54036 | -| terp10ccgmyv45mhp29pupy5emchd35fm8p0cwyglek | 0x7e308d9195a6ee15143c09299de2ed8d13b385f8 | 1 | 2 | 1792.54036 | -| terp1krnuyvvej0qqh9ps6x9am8uclmakkkzhcc9akn | 0xb0e7c2319993c00b9430d18bdd9f98fefb6b5857 | 1 | 2 | 1792.54036 | -| terp1snx3n4wc8p25r6xt592edr3dhy2ged0dul3hjc | 0x84cd19d5d8385541e8cba155968e2db9148cb5ed | 1 | 2 | 1792.54036 | -| terp1t55y0n3tgud9rgpnlw0g9gtw42t0gzt3xttqzq | 0x5d2847ce2b471a51a033fb9e82a16eaa96f40971 | 1 | 2 | 1792.54036 | -| terp1fwaj42vce9h5ct7937h32c9cym3t3sv3zl62e2 | 0x4bbb2aa998c96f4c2fc58faf1560b826e2b8c191 | 1 | 2 | 1792.54036 | -| terp1xtuvhey04qk0xfpe2s3fry9cteyr43ucl8kg9j | 0x32f8cbe48fa82cf3243954229190b85e483ac798 | 1 | 2 | 1792.54036 | -| terp1hna4f34gjh8a9a5qgsrh624mzfccsxfpkccmzz | 0xbcfb54c6a895cfd2f68044077d2abb1271881921 | 1 | 2 | 1792.54036 | -| terp1j3eeqxuml6hrekkyn59dry3t7q80l6zqq6cl69 | 0x9473901b9bfeae3cdac49d0ad1922bf00effe840 | 1 | 2 | 1792.54036 | -| terp1m04v2dkdj35a4uzs66m972cara97p04343qn7d | 0xdbeac536cd9469daf050d6b65f2b1d1f4be0beb1 | 1 | 2 | 1792.54036 | -| terp1qs0dkr4anta0d3hdhs6matz63a4ddmjljkqhxw | 0x041edb0ebd9afaf6c6edbc35beac5a8f6ad6ee5f | 1 | 2 | 1792.54036 | -| terp17mjtg4kkwaz8ge7r0ks726gxlm4gllulmnmuv8 | 0xf6e4b456d677447467c37da1e56906feea8fff9f | 1 | 2 | 1792.54036 | -| terp1pq8phpdcgs08ky86samz8jgg3w453m86873zdn | 0x080e1b85b8441e7b10fa877623c9088bab48ecfa | 1 | 2 | 1792.54036 | -| terp1g7ttss953z0u2e4n63xz6agkt064j58fettssy | 0x4796b840b4889fc566b3d44c2d75165bf55950e9 | 1 | 2 | 1792.54036 | -| terp1333cuu9294zkgckedmm5y7nkkcqfl7p8tdp3z4 | 0x8c638e70aa2d456462d96ef7427a76b6009ff827 | 1 | 2 | 1792.54036 | -| terp1xxaragz2mnwl0wdc9a2se9fawkd5upv6pt3g2s | 0x31ba3ea04adcddf7b9b82f550c953d759b4e059a | 1 | 2 | 1792.54036 | -| terp1xn3ppjx9m7dq3j7puysfnq9fdppta5zvanywkz | 0x34e210c8c5df9a08cbc1e1209980a96842bed04c | 1 | 2 | 1792.54036 | -| terp13mqyjhue4ye05hpjvvtydcpsvp3sre8mr0vehm | 0x8ec0495f99a932fa5c32631646e030606301e4fb | 1 | 2 | 1792.54036 | -| terp1fw9mcv8f5c62uczsnm37zhwhwwltulsjz8q6f9 | 0x4b8bbc30e9a634ae60509ee3e15dd773bebe7e12 | 1 | 2 | 1792.54036 | -| terp1x98g6g5fh8yuxugaudvlv3q2ut7fxv4agcne6u | 0x314e8d2289b9c9c3711de359f6440ae2fc9332bd | 1 | 2 | 1792.54036 | -| terp1tvvtr4pap0frs4aj40aqz4rekm4srf05a9qaj9 | 0x5b18b1d43d0bd23857b2abfa015479b6eb01a5f4 | 1 | 2 | 1792.54036 | -| terp1uvmvva37qcrr60g3y20fndrwxqw0fva70u5q8v | 0xe336c6763e06063d3d11229e99b46e301cf4b3be | 1 | 2 | 1792.54036 | -| terp12vxlv3cy9y9xwhp94nxzzwrdnm8cfq0cjczld8 | 0x530df64704290a675c25accc21386d9ecf8481f8 | 1 | 2 | 1792.54036 | -| terp148sdmuan73xaavyk95f2xdkjltduacr8wkk525 | 0xa9e0ddf3b3f44ddeb0962d12a336d2fadbcee067 | 1 | 2 | 1792.54036 | -| terp13nhf87vtchuvr5hwns3hp02yk63cpaun6p6csg | 0x8cee93f98bc5f8c1d2ee9c2370bd44b6a380f793 | 1 | 2 | 1792.54036 | -| terp1332c2j6leg9e2080v3egv95ad82mq89ugajww7 | 0x8c55854b5fca0b953cef647286169d69d5b01cbc | 1 | 2 | 1792.54036 | -| terp1ehjgjp2l574dp90wmm327ju0a7cgrlz7cvw2da | 0xcde489055fa7aad095eedee2af4b8fefb081fc5e | 1 | 2 | 1792.54036 | -| terp1p895tgk3st2tq5d48n797la9s6wy8lksvutjp0 | 0x09cb45a2d182d4b051b53cfc5f7fa5869c43fed0 | 1 | 2 | 1792.54036 | -| terp1f40768kr820cg9uvve9n08utk0z6v0e6n8c3j6 | 0x4d5fed1ec33a9f84178c664b379f8bb3c5a63f3a | 1 | 2 | 1792.54036 | -| terp1ly9r36yj8jr3cqpplr6qq7xcyg97yn2jks48ve | 0xf90a38e8923c871c0021f8f40078d8220be24d52 | 1 | 2 | 1792.54036 | -| terp1q4ldf99rymdhaw5u2wu27fl2yeftu56xunhvmc | 0x057ed494a326db7eba9c53b8af27ea2652be5346 | 1 | 2 | 1792.54036 | -| terp1da5st0p3dkz5k6agwqrrtz3v6y08a7jv5hu7lx | 0x6f6905bc316d854b6ba87006358a2cd11e7efa4c | 1 | 2 | 1792.54036 | -| terp1xp4yyc7thwd0d8fpvj32z8lv0l88kes0lzpq3m | 0x306a4263cbbb9af69d2164a2a11fec7fce7b660f | 1 | 2 | 1792.54036 | -| terp1xn4llk8an4sc02pwtytg06pru0yknwc09uhyya | 0x34ebffd8fd9d6187a82e591687e823e3c969bb0f | 1 | 2 | 1792.54036 | -| terp16ntkxxlz24kztlk2mycqsydkj0rdkdu3jafjnf | 0xd4d7631be2556c25fecad9300811b693c6db3791 | 1 | 2 | 1792.54036 | -| terp1zq9haxcvph7ppahmnh3q6ykcc7g93k0vxecjn9 | 0x100b7e9b0c0dfc10f6fb9de20d12d8c79058d9ec | 1 | 2 | 1792.54036 | -| terp1xsm64tgkgm4azhl9kvx2sc04dp3gjan7gjef7f | 0x3437aaad1646ebd15fe5b30ca861f5686289767e | 1 | 2 | 1792.54036 | -| terp1jvhuvy5y68nru02uxlzsjj02967d46a7prar9u | 0x932fc61284d1e63e3d5c37c50949ea2ebcdaebbe | 1 | 2 | 1792.54036 | -| terp10fwmmm33epwchrallzsn93zs0sh706yf5xh7hl | 0x7a5dbdee31c85d8b8fbff8a132c4507c2fe7e889 | 1 | 2 | 1792.54036 | -| terp1hcu9d62ds5ynjfewz8qvm3c4hv5977fa2gw7n0 | 0xbe3856e94d850939272e11c0cdc715bb285f793d | 1 | 2 | 1792.54036 | -| terp1kmdt5x966hmyadv87z0qruq705jf9ta5amejyr | 0xb6daba18bad5f64eb587f09e01f01e7d2492afb4 | 1 | 2 | 1792.54036 | -| terp17480jt4m2uugax7573lgxvuu550s2960gv9efg | 0xf54ef92ebb57388e9bd4f47e83339ca51f05174f | 1 | 2 | 1792.54036 | -| terp1dtj8k5jsr0hhaaslz0gn02yf2n49c3rjxxp250 | 0x6ae47b52501bef7ef61f13d137a88954ea5c4472 | 1 | 2 | 1792.54036 | -| terp1g35txkzf0yrrwg4pvqjhkvty9s0fmxjhumsxqv | 0x4468b3584979063722a160257b31642c1e9d9a57 | 1 | 2 | 1792.54036 | -| terp15ujhjhyzektlpr4d0ely8muq2yvn9dhm6rl4sk | 0xa725795c82cd97f08ead7e7e43ef80511932b6fb | 1 | 2 | 1792.54036 | -| terp1myq9cd0g2sywmw5jj2gml4xdcx62wtw57ck4yq | 0xd9005c35e85408edba929291bfd4cdc1b4a72dd4 | 1 | 2 | 1792.54036 | -| terp15qf9lh9nuedze6klgkdc63z5zelv28t7c5xznw | 0xa0125fdcb3e65a2ceadf459b8d4454167ec51d7e | 1 | 2 | 1792.54036 | -| terp1wdk0gsxcj60n2cw9f9uscd5lvljuglrty5sscz | 0x736cf440d8969f3561c549790c369f67e5c47c6b | 1 | 2 | 1792.54036 | -| terp1h5zeeevp7e4ne0w8fuvr0sguz3ry7z96fq0mjw | 0xbd059ce581f66b3cbdc74f1837c11c14464f08ba | 1 | 2 | 1792.54036 | -| terp1g32su9hjuzsy5lf7k3qlm088f8s7zqadjhj0ev | 0x44550e16f2e0a04a7d3eb441fdbce749e1e103ad | 1 | 2 | 1792.54036 | -| terp17xtpmqw3quk2p5fw4r6whqlennrh6fp2weu0l8 | 0xf1961d81d1072ca0d12ea8f4eb83f99cc77d242a | 1 | 2 | 1792.54036 | -| terp1nkx55jmxjf0chqjufvkue33q8s3ptrypvlfldn | 0x9d8d4a4b66925f8b825c4b2dccc6203c22158c81 | 1 | 2 | 1792.54036 | -| terp1y6yv52mld5n88phl6perr822umudnuzz8a0g4q | 0x2688ca2b7f6d267386ffd072319d4ae6f8d9f042 | 1 | 2 | 1792.54036 | -| terp1xzz76pkew4ngyqesgucjjt6w47gfk82yxgrsh3 | 0x3085ed06d975668203304731292f4eaf909b1d44 | 1 | 2 | 1792.54036 | -| terp12k6gks0x7xehn86nr00cpe3sl9sauqtp970fy3 | 0x55b48b41e6f1b3799f531bdf80e630f961de0161 | 1 | 2 | 1792.54036 | -| terp1zlez9w2etyqrreqj0xparps0sxw977qn80vt3d | 0x17f222b959590031e4127983d1860f819c5f7813 | 1 | 2 | 1792.54036 | -| terp12yv4dzg8s52npu2ue8l55t8s3zk437d55qfe8l | 0x5119568907851530f15cc9ff4a2cf088ad58f9b4 | 1 | 2 | 1792.54036 | -| terp107g4n4effwmdy5dv0rsjz8cdxx4kuneaj5z5l9 | 0x7f9159d7294bb6d251ac78e1211f0d31ab6e4f3d | 1 | 2 | 1792.54036 | -| terp1600hqjuqcs78a74w0kf908l0drljpz3k736jat | 0xd3df704b80c43c7efaae7d92579fef68ff208a36 | 1 | 2 | 1792.54036 | -| terp1tn43985xyfzqnzv33ulrp0y9le5dy2uj8tffpu | 0x5ceb129e8622440989918f3e30bc85fe68d22b92 | 1 | 2 | 1792.54036 | -| terp1lcy363ycq5admeeuydcdvpkz74xkxz9tvj7lty | 0xfe091d4498053adde73c2370d606c2f54d6308ab | 1 | 2 | 1792.54036 | -| terp1tgsfcz6j6dpew6485c2cwgnv7ptuqxemcelc3t | 0x5a209c0b52d343976aa7a61587226cf057c01b3b | 1 | 2 | 1792.54036 | -| terp1jd532g5t4fazks3gyzu8hzkjnu6ukm8hqud0j9 | 0x936915228baa7a2b422820b87b8ad29f35cb6cf7 | 1 | 2 | 1792.54036 | -| terp19eqn27g6ga6wm3m2hynhpv9u8pxu47l4edn529 | 0x2e4135791a4774edc76ab92770b0bc384dcafbf5 | 1 | 2 | 1792.54036 | -| terp14708w0plhn33vvt0y4s7jsx28zjej79eevf9h9 | 0xaf9e773c3fbce316316f2561e940ca38a59978b9 | 1 | 2 | 1792.54036 | -| terp19v8slr9wsf0wmv0jxd906l2f4zk5hc8czmzs6r | 0x2b0f0f8cae825eedb1f2334afd7d49a8ad4be0f8 | 1 | 2 | 1792.54036 | -| terp1glhjxzuzkkuxrawexh98yzh33mjzg292fymjev | 0x47ef230b82b5b861f5d935ca720af18ee42428aa | 1 | 2 | 1792.54036 | -| terp1s9ruk4h7734ce74gs0z4tpx7tmx644mkvgw4f8 | 0x8147cb56fef46b8cfaa883c55584de5ecdaad776 | 1 | 2 | 1792.54036 | -| terp1j59jv3vrqd54x6k9hfgp5rq9n3crlhu7rpyxrt | 0x950b2645830369536ac5ba501a0c059c703fdf9e | 1 | 2 | 1792.54036 | -| terp1ynk0rtfmwf84ecj075rd82lzjj2rhsc5cy5qgc | 0x24ecf1ad3b724f5ce24ff506d3abe294943bc314 | 1 | 2 | 1792.54036 | -| terp15rvutl2jv87zfwy5efnrhgnk855460u0qdccaa | 0xa0d9c5fd5261fc24b894ca663ba2763d295d3f8f | 1 | 2 | 1792.54036 | -| terp1pzetstrk87m6g58qazne4cep0lfvq8vys844sc | 0x08b2b82c763fb7a450e0e8a79ae3217fd2c01d84 | 1 | 2 | 1792.54036 | -| terp1s3yyqg7l68yzqhlu3qyvse3hwlcnd50tkxekcz | 0x84484023dfd1c8205ffc8808c8663777f136d1eb | 1 | 2 | 1792.54036 | -| terp1u4vjffv758ykft3afhj5a482xew65e0eyup699 | 0xe55924a59ea1c964ae3d4de54ed4ea365daa65f9 | 1 | 2 | 1792.54036 | -| terp10ajhdyr6qmds7j4435cx8ec0gfcgjwls3a7ch2 | 0x7f6576907a06db0f4ab58d3063e70f4270893bf0 | 1 | 2 | 1792.54036 | -| terp19tr0vup0t45956f9s2pakp9ch7zffavvleugww | 0x2ac6f6702f5d685a69258283db04b8bf8494f58c | 1 | 2 | 1792.54036 | -| terp17qc0hx3njca6fyk606t328q6s7nql4cx0hg6dz | 0xf030fb9a33963ba492da7e97151c1a87a60fd706 | 1 | 2 | 1792.54036 | -| terp1d6fkw4c0ymyn98v0t5wgcnqqyj5nnws4655vjp | 0x6e9367570f26c9329d8f5d1c8c4c0024a939ba15 | 1 | 2 | 1792.54036 | -| terp1s6y7nae28h3rgjf222al6x4gxq6twk53rz8emy | 0x8689e9f72a3de234492a52bbfd1aa83034b75a91 | 1 | 2 | 1792.54036 | -| terp1740ze79s8rnaqyfnny34kpe2gpv0cfp38y9sq3 | 0xf55e2cf8b038e7d0113399235b072a4058fc2431 | 1 | 2 | 1792.54036 | -| terp1wx8zeg99ytc6ufnkqc7k2fzn7vtt0x48hkt67m | 0x718e2ca0a522f1ae2676063d652453f316b79aa7 | 1 | 2 | 1792.54036 | -| terp1u3tz77567jwest5qva9g04ts3us8x9prjw0khm | 0xe4562f7a9af49d982e80674a87d5708f20731423 | 1 | 2 | 1792.54036 | -| terp10tsdzyugys35jtk0ppmra37jnyprjfg7wfhken | 0x7ae0d113882423492ecf08763ec7d2990239251e | 1 | 2 | 1792.54036 | -| terp1prgpxq4fvl2pxazl66p84drx2xmargmfdq5dsr | 0x08d01302a967d413745fd6827ab46651b7d1a369 | 1 | 2 | 1792.54036 | -| terp1mph3vms0vpd68vx5z7lz6tyrcetxhxg6yr3rtj | 0xd86f166e0f605ba3b0d417be2d2c83c6566b991a | 1 | 2 | 1792.54036 | -| terp12gtdjldc7yugas438av9ua48j73e48yxy50kts | 0x5216d97db8f1388ec2b13f585e76a797a39a9c86 | 1 | 2 | 1792.54036 | -| terp1semgd3fjeczhp6d2vnh27x3e2jfpch7urauf5t | 0x867686c532ce0570e9aa64eeaf1a3954921c5fdc | 1 | 2 | 1792.54036 | -| terp1wseqh0nw03vzpr75fr0m6mxn5edqlh6fg7h7jl | 0x74320bbe6e7c58208fd448dfbd6cd3a65a0fdf49 | 1 | 2 | 1792.54036 | -| terp1qwts5u5rknds7vruqcxwh6re0nfzc4hyt4km84 | 0x03970a7283b4db0f307c060cebe8797cd22c56e4 | 1 | 2 | 1792.54036 | -| terp1nj6xgw8wtm50awz5tsnjptpmndgu68me9w80cs | 0x9cb46438ee5ee8feb8545c2720ac3b9b51cd1f79 | 1 | 2 | 1792.54036 | -| terp164cj9d2u00jrxjxuhdu7xcjqcyceqc2wj55hwl | 0xd57122b55c7be43348dcbb79e36240c13190614e | 1 | 2 | 1792.54036 | -| terp1fc8l4ucgnmcd8u0t8tph5gm69nmnx6gcjn5ml2 | 0x4e0ffaf3089ef0d3f1eb3ac37a237a2cf7336918 | 1 | 2 | 1792.54036 | -| terp1tzd9vfuhqd45lp3jk9qd25f0jh444grydfn3ll | 0x589a562797036b4f8632b140d5512f95eb5aa064 | 1 | 2 | 1792.54036 | -| terp1zq82ayss5qvy6wl6d9kyr257qa5ggycw9a5sj6 | 0x100eae9210a0184d3bfa696c41aa9e076884130e | 1 | 2 | 1792.54036 | -| terp1rerxu6sm9fvttzhrywt6sc2h2gk5kq8x94fx8f | 0x1e466e6a1b2a58b58ae32397a86157522d4b00e6 | 1 | 2 | 1792.54036 | -| terp1f04hparxaddnllh04adqef8sscq378f2vnsm2d | 0x4beb70f466eb5b3ffeefaf5a0ca4f086011f1d2a | 1 | 2 | 1792.54036 | -| terp1a233u54v52k75nrd5ed8qfxhrwkxlv6s0sl886 | 0xeaa31e52aca2adea4c6da65a7024d71bac6fb350 | 1 | 2 | 1792.54036 | -| terp1aeu3hy9e6q7pwuv94fl2thu0mp2apsx455xnf6 | 0xee791b90b9d03c177185aa7ea5df8fd855d0c0d5 | 1 | 2 | 1792.54036 | -| terp1ye7n4jdcgz2hfau7skzw2lefr8eqzjspqv4rjg | 0x267d3ac9b8409574f79e8584e57f2919f2014a01 | 1 | 2 | 1792.54036 | -| terp16erk8drx2hq5c68cksxnnzt9an5clmx6sxrs6d | 0xd64763b46655c14c68f8b40d398965ece98fecda | 1 | 2 | 1792.54036 | -| terp1tpgrtz9cz3cyctyc46ped4ddt6qc7e3npwfraj | 0x58503588b814704c2c98ae8396d5ad5e818f6633 | 1 | 2 | 1792.54036 | -| terp1cv7lr9d3vz84cu5u3e5x3r8r4z64veyuu45pea | 0xc33df195b1608f5c729c8e68688ce3a8b556649c | 1 | 2 | 1792.54036 | -| terp1zlsquglmw6p862phyy8hweqwxuguj03rdaeqhr | 0x17e00e23fb76827d2837210f77640e3711c93e23 | 1 | 2 | 1792.54036 | -| terp1ujl5zdgtj6jv4epz6jksyyjdr2ym5u0yuzaw0v | 0xe4bf41350b96a4cae422d4ad02124d1a89ba71e4 | 1 | 2 | 1792.54036 | -| terp1v2mhhhtf0xt63r4lfrwn2agz2vfjncwlfzsdc4 | 0x62b77bdd697997a88ebf48dd357502531329e1df | 1 | 2 | 1792.54036 | -| terp1xpu93fsdyecwxfrpj5cn8g2f9fk3ef0x7u0edz | 0x307858a60d2670e32461953133a1492a6d1ca5e6 | 1 | 2 | 1792.54036 | -| terp1ee4ghs95x0ux7r96jg4jy0u2dmkq278wyhh4hc | 0xce6a8bc0b433f86f0cba922b223f8a6eec0578ee | 1 | 2 | 1792.54036 | -| terp13ndjpxh04gmtllc8zz5qa5c6kwgettxcdyn3j9 | 0x8cdb209aefaa36bfff0710a80ed31ab39195acd8 | 1 | 2 | 1792.54036 | -| terp10pfrnwllvvx7fyke4fqs40ns4s0x5ztwrmnjk4 | 0x785239bbff630de492d9aa410abe70ac1e6a096e | 1 | 2 | 1792.54036 | -| terp1qnr4e5y22jvady7v9hrhks68awgc48wqu9ferc | 0x04c75cd08a5499d693cc2dc77b4347eb918a9dc0 | 1 | 2 | 1792.54036 | -| terp1cmt3svlsxhwvhhdtheut046hvyq0y628fymq7n | 0xc6d71833f035dccbddabbe78b7d7576100f26947 | 1 | 2 | 1792.54036 | -| terp1g0esmuexdlkf9jav7vsnp222lv6zxlemya75m6 | 0x43f30df3266fec92cbacf32130a94afb34237f3b | 1 | 2 | 1792.54036 | -| terp1qc50zm3dr3gldl5y6scqkcenpe678gvry4epl7 | 0x0628f16e2d1c51f6fe84d4300b63330e75e3a183 | 1 | 2 | 1792.54036 | -| terp1lfjckkrh0c057npqwwn065d8dvzgqyflyghrfq | 0xfa658b58777e1f4f4c2073a6fd51a76b0480113f | 1 | 2 | 1792.54036 | -| terp126dz0dmvlrd3xf66tf3wftjl7tgc7904xzsasg | 0x569a27b76cf8db13275a5a62e4ae5ff2d18f15f5 | 1 | 2 | 1792.54036 | -| terp1lxshx3hwfjscuw87tp4urqjuhk77ekxq9mr9fs | 0xf9a17346ee4ca18e38fe586bc1825cbdbdecd8c0 | 1 | 2 | 1792.54036 | -| terp13x7rfg56ttk88hq34pq9fzqvxju89mdm4em6l4 | 0x89bc34a29a5aec73dc11a84054880c34b872edbb | 1 | 2 | 1792.54036 | -| terp1mcwdxe90vc4nra9rqe85ga2kjkr7sg4hukrvhp | 0xde1cd364af662b31f4a3064f4475569587e822b7 | 1 | 2 | 1792.54036 | -| terp1044uelq0gzr3ugl2m95xmg8k5r7l8j9lyk3n3r | 0x7d6bccfc0f40871e23ead9686da0f6a0fdf3c8bf | 1 | 2 | 1792.54036 | -| terp1r59gw0x2u5hm6r6e4m2mln9ux4tdfy93865ee6 | 0x1d0a873ccae52fbd0f59aed5bfccbc3556d490b1 | 1 | 2 | 1792.54036 | -| terp1zga5um8f700tkg9m5xyrv5r9fgahh3aj44rxpu | 0x123b4e6ce9f3debb20bba1883650654a3b7bc7b2 | 1 | 2 | 1792.54036 | -| terp1uvgwxc0fngz6x6e7p27k07ncunaqxgvn3lxd5k | 0xe310e361e99a05a36b3e0abd67fa78e4fa032193 | 1 | 2 | 1792.54036 | -| terp16seurdtq2km6m789u2vzul3vqrphsur2y2aehy | 0xd433c1b56055b7adf8e5e2982e7e2c00c378706a | 1 | 2 | 1792.54036 | -| terp1pvwrfhra9jnc8hwlfgztgyplkwd0kv5kc4h64g | 0x0b1c34dc7d2ca783dddf4a04b4103fb39afb3296 | 1 | 2 | 1792.54036 | -| terp1urm4sgh2dynmmldns9rvcuazn35jl2ncjvdklp | 0xe0f75822ea6927bdfdb38146cc73a29c692faa78 | 1 | 2 | 1792.54036 | -| terp12cmnu8yvhv3mc2zv7wk99u7f6t6m2gvch4w3qv | 0x56373e1c8cbb23bc284cf3ac52f3c9d2f5b52198 | 1 | 2 | 1792.54036 | -| terp1l2spzuqnrakxr2wrxfprxcmgzggxv3l4l92mj8 | 0xfaa01170131f6c61a9c3324233636812106647f5 | 1 | 2 | 1792.54036 | -| terp1a8jjtcuztdl5vmsmdvpuxnn6sacrpukmxyzk4a | 0xe9e525e3825b7f466e1b6b03c34e7a877030f2db | 1 | 2 | 1792.54036 | -| terp1lvxvxcck8h2wysy9qye50j7yexv2vcm507z7qz | 0xfb0cc363163dd4e24085013347cbc4c998a66374 | 1 | 2 | 1792.54036 | -| terp10vm47kdpenc620lcf8rkzfjmt2qzgwpms9v5yp | 0x7b375f59a1ccf1a53ff849c761265b5a8024383b | 1 | 2 | 1792.54036 | -| terp1pfl0nrsmkptxs3x9ywlqy9tcrdhj5ywv08r34h | 0x0a7ef98e1bb0566844c523be0215781b6f2a11cc | 1 | 2 | 1792.54036 | -| terp1eptfdzcyhln2ydwqx8ky0nqaanqlyw80qt63gd | 0xc856968b04bfe6a235c031ec47cc1decc1f238ef | 1 | 2 | 1792.54036 | -| terp14e4uqp9d8a6yge5ta92kxr7em7jvnrv836m6u5 | 0xae6bc004ad3f7444668be955630fd9dfa4c98d87 | 1 | 2 | 1792.54036 | -| terp153y8es39velfyqr43m8v9sqalyejv8clkpl4a4 | 0xa4487cc225667e9200758ecec2c01df933261f1f | 1 | 2 | 1792.54036 | -| terp1x2scw3jhvu7ggqc9njes3qrp9tma9jwxr7224t | 0x32a1874657673c8403059cb30880612af7d2c9c6 | 1 | 2 | 1792.54036 | -| terp14n55ps9ngemwn62ky4pzt8pfym0hlecefnacmu | 0xace940c0b34676e9e9562542259c2926df7fe719 | 1 | 2 | 1792.54036 | -| terp14atmsysnc5f5hyhr0kpa6704snn2z252uj3fw3 | 0xaf57b81213c5134b92e37d83dd79f584e6a12a8a | 1 | 2 | 1792.54036 | -| terp187kwg0ktev9sv97rf9cu7wj75s8cmvq3un2vse | 0x3face43ecbcb0b0617c34971cf3a5ea40f8db011 | 1 | 2 | 1792.54036 | -| terp1atzeevwfwje6hfc7r2207wywsa3jl2lr8d8sef | 0xeac59cb1c974b3aba71e1a94ff388e87632fabe3 | 1 | 2 | 1792.54036 | -| terp10ry6jqrd40pggzh5a4xtrkuddxrekq0ldt5hq6 | 0x78c9a9006dabc2840af4ed4cb1db8d69879b01ff | 1 | 2 | 1792.54036 | -| terp1ama0njju4d9ulua6l5eynuf43458c6a3d8e327 | 0xeefaf9ca5cab4bcff3bafd3249f1358d687c6bb1 | 1 | 2 | 1792.54036 | -| terp1yrhevh4f4hzve609n3z2a5jwls78mflevl9s5u | 0x20ef965ea9adc4cce9e59c44aed24efc3c7da7f9 | 1 | 2 | 1792.54036 | -| terp1kypnscx8um286z286vg7dmawhvpqa7zu2e2mh2 | 0xb1033860c7e6d47d0947d311e6efaebb020ef85c | 1 | 2 | 1792.54036 | -| terp1pgt7n0az49rju0egnzxz4f9x4admjvgztc8uxs | 0x0a17e9bfa2a9472e3f28988c2aa4a6af5bb93102 | 1 | 2 | 1792.54036 | -| terp14cfsvkf5ucx7am6m3yh9zjlcpadjmdv4lyy6ar | 0xae13065934e60deeef5b892e514bf80f5b2db595 | 1 | 2 | 1792.54036 | -| terp19edmdn35ly9n0nmr85kw4938wes7dtrqus4ycp | 0x2e5bb6ce34f90b37cf633d2cea96277661e6ac60 | 1 | 2 | 1792.54036 | -| terp19ah9eyctqg5u5f4vhq6ndpcuax7c0gln4fwxkj | 0x2f6e5c930b0229ca26acb83536871ce9bd87a3f3 | 1 | 2 | 1792.54036 | -| terp1hshsek96jmtr043lxzy3utgl3vp4qzurt5v0td | 0xbc2f0cd8ba96d637d63f30891e2d1f8b03500b83 | 1 | 2 | 1792.54036 | -| terp1x9lknffydm2t4kzcwlsew7jgh553yu6ya3f0w6 | 0x317f69a5246ed4bad85877e1977a48bd29127344 | 1 | 2 | 1792.54036 | -| terp1zp5ahvy9t0rwt2n2u4v5u8aye4gyyf90ptdr8a | 0x1069dbb0855bc6e5aa6ae5594e1fa4cd504224af | 1 | 2 | 1792.54036 | -| terp10yhvn99jvpdvdacs82cwg470zf8mv2hprfr7xn | 0x792ec994b2605ac6f7103ab0e457cf124fb62ae1 | 1 | 2 | 1792.54036 | -| terp1l3ynrtkjnr7hvc02dlux6nzesat2c29p5su3d9 | 0xfc4931aed298fd7661ea6ff86d4c598756ac28a1 | 1 | 2 | 1792.54036 | -| terp18n7ch5susgdedh74gn6ugtfhwl0z04u3kd5y9x | 0x3cfd8bd21c821b96dfd544f5c42d3777de27d791 | 1 | 2 | 1792.54036 | -| terp1lkvp4a8k7ar9ut7udsyzhhy4gasy7d5sy8jr8j | 0xfd981af4f6f7465e2fdc6c082bdc9547604f3690 | 1 | 2 | 1792.54036 | -| terp1nnyskyp0hptsu4wynlf6qf0yxux9ghgm0mk4pm | 0x9cc90b102fb8570e55c49fd3a025e4370c545d1b | 1 | 2 | 1792.54036 | -| terp1cnhksueuuza6c30s9s43s0yuulppss7afh5d5w | 0xc4ef68733ce0bbac45f02c2b183c9ce7c21843dd | 1 | 2 | 1792.54036 | -| terp1vupur3p8y2gpxeyy2h72rfddgzurmhjlrt4ydf | 0x6703c1c427229013648455fca1a5ad40b83dde5f | 1 | 2 | 1792.54036 | -| terp14ejxrk3ra52yyaxxt5n3ptp0mladw2wq74f6na | 0xae6461da23ed144274c65d2710ac2fdffad729c0 | 1 | 2 | 1792.54036 | -| terp1p95du6z8jwggql6qju2qhdnmk543umwzxrpew0 | 0x0968de68479390807f4097140bb67bb52b1e6dc2 | 1 | 2 | 1792.54036 | -| terp1x2g74h8r54mecd7d0rg7lzm2yk4cj6zahgvzta | 0x3291eadce3a5779c37cd78d1ef8b6a25ab89685d | 1 | 2 | 1792.54036 | -| terp1nclawtk8zx3km953urxrfzy27950urxyacf9n3 | 0x9e3fd72ec711a36d9691e0cc34888af168fe0cc4 | 1 | 2 | 1792.54036 | -| terp1p0p0sfe9s3v4x568333rw890vh2fatucwyqnhg | 0x0bc2f8272584595353478c62371caf65d49eaf98 | 1 | 2 | 1792.54036 | -| terp1pjhkelcwg57nqdlv39r99g9aavj0h6jx8leydk | 0x0caf6cff0e453d3037ec894652a0bdeb24fbea46 | 1 | 2 | 1792.54036 | -| terp1x83akm200z3szkj2lfyrva28yg8dvr4957se0l | 0x31e3db6d4f78a3015a4afa48367547220ed60ea5 | 1 | 2 | 1792.54036 | -| terp19pam7fanh6nnldlzktaplrl9qsy26p2qrfml5a | 0x287bbf27b3bea73fb7e2b2fa1f8fe50408ad0540 | 1 | 2 | 1792.54036 | -| terp1gcx8g3yghv8scvxjtpp8tzln0z2qhs39qv4hsn | 0x460c744488bb0f0c30d25842758bf378940bc225 | 1 | 2 | 1792.54036 | -| terp1f5t4puat8e6x2w8nq2uaa57mxychke98p2q8la | 0x4d1750f3ab3e746538f302b9ded3db31317b64a7 | 1 | 2 | 1792.54036 | -| terp15ztm8skryaguphm330xy7aawnqkuzzuavmqazx | 0xa097b3c2c32751c0df718bcc4f77ae982dc10b9d | 1 | 2 | 1792.54036 | -| terp1flelrmmvy3h49fps9wu7mhjkw8gktzg9w99zyp | 0x4ff3f1ef6c246f52a4302bb9edde5671d1658905 | 1 | 2 | 1792.54036 | -| terp1rkljvgw7an6nheqxzkj3lm4pdjzmj8t6skkjga | 0x1dbf2621deecf53be40615a51feea16c85b91d7a | 1 | 2 | 1792.54036 | -| terp1zmdgzc9juamws59w8e9mjyhexj2wgj9n9a347t | 0x16da8160b2e776e850ae3e4bb912f93494e448b3 | 1 | 2 | 1792.54036 | -| terp15gag3jdq5h99d7ufdajzn2m5xd42p4px7je62g | 0xa23a88c9a0a5ca56fb896f6429ab74336aa0d426 | 1 | 2 | 1792.54036 | -| terp1n2r47m8zst5qpx4fgvncf7qjgpnsxtyecegf6s | 0x9a875f6ce282e8009aa9432784f8124067032c99 | 1 | 2 | 1792.54036 | -| terp14k3ls4ga7kas004uhqgpxlwycygqn7d7zyd6t6 | 0xada3f8551df5bb07bebcb810137dc4c11009f9be | 1 | 2 | 1792.54036 | -| terp1n069jl5hq2hatts5zl0usvtmc4wcpx6k9jyjyr | 0x9bf4597e9702afd5ae1417dfc8317bc55d809b56 | 1 | 2 | 1792.54036 | -| terp1uh08w7fpzsneemh86akayf0kc7shmvdqr5zc9x | 0xe5de77792114279ceee7d76dd225f6c7a17db1a0 | 1 | 2 | 1792.54036 | -| terp1w2wsywpeje7jv20rhkf75ymdnwz3tvkej2ssk9 | 0x729d023839967d2629e3bd93ea136d9b8515b2d9 | 1 | 2 | 1792.54036 | -| terp1uh66kx22s0rff9j2ujq52ew3teyu5rytxr6zuz | 0xe5f5ab194a83c694964ae4814565d15e49ca0c8b | 1 | 2 | 1792.54036 | -| terp1nwpuj8upcyu8j56vedmdjtk6s3uvx45emzkfje | 0x9b83c91f81c13879534ccb76d92eda8478c35699 | 1 | 2 | 1792.54036 | -| terp1jc0xmaadgx9kjq7hjfuvamsgp6cngyf7rzy3d8 | 0x961e6df7ad418b6903d79278ceee080eb134113e | 1 | 2 | 1792.54036 | -| terp1lhj0mna4fveqvznpcad869w855n2dq3m94jyta | 0xfde4fdcfb54b32060a61c75a7d15c7a526a6823b | 1 | 2 | 1792.54036 | -| terp1848mj9c8htya4hjjjcjk6ud224xtq04pfeedaa | 0x3d4fb91707bac9dade5296256d71aa554cb03ea1 | 1 | 2 | 1792.54036 | -| terp18t00r9nrd3hyd6du8cpnzf2rc4572k420wqenl | 0x3adef196636c6e46e9bc3e03312543c569e55aaa | 1 | 2 | 1792.54036 | -| terp1zqtldlcph6ryxnhqj00sx4equzpseq8rzpund0 | 0x1017f6ff01be86434ee093df035720e0830c80e3 | 1 | 2 | 1792.54036 | -| terp1kqw5ty5sfegyfdq0qtv3e84kxyep4u452rlfvx | 0xb01d4592904e5044b40f02d91c9eb631321af2b4 | 1 | 2 | 1792.54036 | -| terp1z4m3apk6dtt7nkln5083cvsz0pzurvnn0sc3g9 | 0x15771e86da6ad7e9dbf3a3cf1c32027845c1b273 | 1 | 2 | 1792.54036 | -| terp1cx3jevyz4cg6ndzk92t2ksll8s0pwnmdxw0yjs | 0xc1a32cb082ae11a9b4562a96ab43ff3c1e174f6d | 1 | 2 | 1792.54036 | -| terp1a7h5jjy86ntkahdz3yhj2m55ns6kd5ag8mlq8r | 0xefaf494887d4d76edda2892f256e949c3566d3a8 | 1 | 2 | 1792.54036 | -| terp12x62xf4eq4ufc9c48xszawsdrkr4ahsaemvgzq | 0x51b4a326b905789c171539a02eba0d1d875ede1d | 1 | 2 | 1792.54036 | -| terp10z3pc4qap7ctclsf6w72zlg9764tgqnufxraq5 | 0x78a21c541d0fb0bc7e09d3bca17d05f6aab4027c | 1 | 2 | 1792.54036 | -| terp1tulkmkyn5jd6jk3pttkmygwmz3yh8td4kps68z | 0x5f3f6dd893a49ba95a215aedb221db144973adb5 | 1 | 2 | 1792.54036 | -| terp1msav47vcevregyzdel9du2znfrpjzc6nejlhjp | 0xdc3acaf998cb0794104dcfcade285348c3216353 | 1 | 2 | 1792.54036 | -| terp1k83z9q0phj9ts0dpevfcuf9vkqzttfx2x9jl6l | 0xb1e22281e1bc8ab83da1cb138e24acb004b5a4ca | 1 | 2 | 1792.54036 | -| terp1mzwkh0pst4jcy6z8fenkrpac2hwu3mc7fd2qlv | 0xd89d6bbc305d658268474e676187b855ddc8ef1e | 1 | 2 | 1792.54036 | -| terp1zypw6fslq8pxavaruytq5kjrq4z6acp9v84tcm | 0x1102ed261f01c26eb3a3e1160a5a430545aee025 | 1 | 2 | 1792.54036 | -| terp1pdaj80tpjyg3vc0rstsq07642u3z0g7tmrjsd3 | 0x0b7b23bd6191111661e382e007fb55572227a3cb | 1 | 2 | 1792.54036 | -| terp1zal8cnznqhakk0e4jkjkd562nc7ztlfey7me0p | 0x177e7c4c5305fb6b3f3595a566d34a9e3c25fd39 | 1 | 2 | 1792.54036 | -| terp1a96sug59zj54xlymjxszuy3j2yjtdrxske2w78 | 0xe9750e228514a9537c9b91a02e12325124b68cd0 | 1 | 2 | 1792.54036 | -| terp12sryux756ldvctdnclmpt3789wxqh8vjyzfwm2 | 0x54064e1bd4d7dacc2db3c7f615c7c72b8c0b9d92 | 1 | 2 | 1792.54036 | -| terp1hfsmg6mfq7nlm28u6knwn9u0z4yytf3a7g9yr0 | 0xba61b46b6907a7fda8fcd5a6e9978f154845a63d | 1 | 2 | 1792.54036 | -| terp1xr35gtw60qyyk48egfcuga2tqauspjka24u598 | 0x30e3442dda78084b54f94271c4754b077900cadd | 1 | 2 | 1792.54036 | -| terp1ez9fe6w83uaffhz52tx5vtl2aj4jzm2whdxdsd | 0xc88a9ce9c78f3a94dc5452cd462feaecab216d4e | 1 | 2 | 1792.54036 | -| terp1my4chznfkaapq0zgmmcnz62ncdsxz440vxdn3z | 0xd92b8b8a69b77a103c48def1316953c3606156af | 1 | 2 | 1792.54036 | -| terp15kmpxu6mm0eggpz6ezqxp89mp25naugjav7xhd | 0xa5b613735bdbf284045ac880609cbb0aa93ef112 | 1 | 2 | 1792.54036 | -| terp15qwqdu9pyfqmed5w7y2st5dl5n0dmyxjfj38la | 0xa01c06f0a12241bcb68ef11505d1bfa4dedd90d2 | 1 | 2 | 1792.54036 | -| terp1kr6z57wvpqg3uutym5lgdhefdhw53mkmz69ec4 | 0xb0f42a79cc08111e7164dd3e86df296ddd48eedb | 1 | 2 | 1792.54036 | -| terp1pg2n54djpv0fxrpxlxzahxrsyd4zjg6rh5qy5p | 0x0a153a55b20b1e930c26f985db9870236a292343 | 1 | 2 | 1792.54036 | -| terp1lngeql4xt9rj7fk8q4jhccgv5jkqhv88rsurua | 0xfcd1907ea659472f26c705657c610ca4ac0bb0e7 | 1 | 2 | 1792.54036 | -| terp1hhtzdpfcfxv6hkj2mwt9ksedwezl2yc799dhz8 | 0xbdd62685384999abda4adb965b432d7645f5131e | 1 | 2 | 1792.54036 | -| terp127g08j0n5u6yxusesslg3a4dra0vpwhn067d8d | 0x5790f3c9f3a734437219843e88f6ad1f5ec0baf3 | 1 | 2 | 1792.54036 | -| terp1ucn8evzrt5uje5ln4eut8l4x762cvhprv4eszn | 0xe6267cb0435d392cd3f3ae78b3fea6f695865c23 | 1 | 2 | 1792.54036 | -| terp1pp29wcdssfqdnpfq68q0vx5qs3fqc5hpvvzh4p | 0x08545761b08240d98520d1c0f61a8084520c52e1 | 1 | 2 | 1792.54036 | -| terp16y0razq44vauty4qx273k44sr2yaswnxfcexyy | 0xd11e3e8815ab3bc592a032bd1b56b01a89d83a66 | 1 | 2 | 1792.54036 | -| terp1r76y3jzx4yv5qe2cu085kwkzhw74ta5ydm60qt | 0x1fb448c846a919406558e3cf4b3ac2bbbd55f684 | 1 | 2 | 1792.54036 | -| terp135vjq0j7cw77jfesy0fedctaxs48kv75mc864d | 0x8d19203e5ec3bde9273023d396e17d342a7b33d4 | 1 | 2 | 1792.54036 | -| terp1trktex66uuesd7u53pe6s0pv9cm59gq4mzcv58 | 0x58ecbc9b5ae73306fb948873a83c2c2e3742a015 | 1 | 2 | 1792.54036 | -| terp1nhv7es9pusgx3050vg9tr66230h2n7y9ngglpf | 0x9dd9ecc0a1e41068be8f620ab1eb4a8beea9f885 | 1 | 2 | 1792.54036 | -| terp1hr0g5elrsckv80hjtx5r95wkgahrhee5xguqm8 | 0xb8de8a67e3862cc3bef259a832d1d6476e3be734 | 1 | 2 | 1792.54036 | -| terp1nwe340zkraupn9zxk2mnrcyrjw97xqjd9ejua9 | 0x9bb31abc561f78199446b2b731e083938be3024d | 1 | 2 | 1792.54036 | -| terp1tz235jegz7vywadt4v0vvka6z9gjmpyyagqag2 | 0x58951a4b2817984775abab1ec65bba11512d8484 | 1 | 2 | 1792.54036 | -| terp1xng244k89ztg06qu7w9tz2euszlckaulst7xnt | 0x34d0aad6c7289687e81cf38ab12b3c80bf8b779f | 1 | 2 | 1792.54036 | -| terp157thhzvdp50vw8pkecm39yxhr7zg895lkrjfj4 | 0xa7977b898d0d1ec71c36ce371290d71f8483969f | 1 | 2 | 1792.54036 | -| terp1dg6gdug489myck30nrtx50se007k29xzr6d7mr | 0x6a3486f11539764c5a2f98d66a3e197bfd6514c2 | 1 | 2 | 1792.54036 | -| terp163dg6jn3eufwszfkd0yl3gnf67d8mvjp0hp05z | 0xd45a8d4a71cf12e809366bc9f8a269d79a7db241 | 1 | 2 | 1792.54036 | -| terp1p35nm8l5x4z3jdv7sk9nqzmd48mweyamhwfmk0 | 0x0c693d9ff4354519359e858b300b6da9f6ec93bb | 1 | 2 | 1792.54036 | -| terp1d64c5q69yxym8v9ye68zsntjf0mp5p2w39a3y9 | 0x6eab8a03452189b3b0a4ce8e284d724bf61a054e | 1 | 2 | 1792.54036 | -| terp1kznd9tqdaa8qlacy7rfptrdxysufl4fyrkf6yx | 0xb0a6d2ac0def4e0ff704f0d2158da624389fd524 | 1 | 2 | 1792.54036 | -| terp1cnnqlt5f9ah8efu6hkhdl0zpukmpy4vawlfxrt | 0xc4e60fae892f6e7ca79abdaedfbc41e5b612559d | 1 | 2 | 1792.54036 | -| terp12qye5n5teesxjvfcy7hum30un7tx2ckjq4x6sy | 0x50099a4e8bce6069313827afcdc5fc9f966562d2 | 1 | 2 | 1792.54036 | -| terp1x89xeflh5v5ch3k9zqa2gkz87d8rs2su0rdprr | 0x31ca6ca7f7a3298bc6c5103aa45847f34e382a1c | 1 | 2 | 1792.54036 | -| terp1nlxvn0alxgh7fjhjvs5a92wu5hd4364wxzcgmk | 0x9fccc9bfbf322fe4caf26429d2a9dca5db58eaae | 1 | 2 | 1792.54036 | -| terp1r2mvc9kpvg9pm3a7rdavkt0lpdyafmnulkrxc5 | 0x1ab6cc16c1620a1dc7be1b7acb2dff0b49d4ee7c | 1 | 2 | 1792.54036 | -| terp15ujhm3n09v9xf4nfekjtetv9awfvewmfl4f0ja | 0xa7257dc66f2b0a64d669cda4bcad85eb92ccbb69 | 1 | 2 | 1792.54036 | -| terp1jpswtuejz0m07ru2uvn7pv586dmn6r7tppmdgp | 0x9060e5f33213f6ff0f8ae327e0b287d3773d0fcb | 1 | 2 | 1792.54036 | -| terp16jmju2tm2vfn8jur5r4492rnu0hpzw9a8e8yu3 | 0xd4b72e297b531333cb83a0eb52a873e3ee1138bd | 1 | 2 | 1792.54036 | -| terp190hz90fx0ng87td2uqsnw3q5lcp35wcyhh440d | 0x2bee22bd267cd07f2daae021374414fe031a3b04 | 1 | 2 | 1792.54036 | -| terp1fhp3vn6jze8cgf35vqy58m8kdw3mcud5deudfc | 0x4dc3164f52164f842634600943ecf66ba3bc71b4 | 1 | 2 | 1792.54036 | -| terp1ykm5dk4vjmp6p95x0k7ljdpzve3q55djgdupg4 | 0x25b746daac96c3a096867dbdf9342266620a51b2 | 1 | 2 | 1792.54036 | -| terp1nse80d4nxkz7qjcj7a0j3eyrx5d6ewx3kxcgra | 0x9c3277b6b33585e04b12f75f28e483351bacb8d1 | 1 | 2 | 1792.54036 | -| terp130st0w86wf62mzf2jp5wh0z7w30hdaeme2df7v | 0x8be0b7b8fa7274ad892a9068ebbc5e745f76f73b | 1 | 2 | 1792.54036 | -| terp1dczay9hls7ztdl08jddpfjynfdxfta8s7fz0n4 | 0x6e05d216ff8784b6fde7935a14c8934b4c95f4f0 | 1 | 2 | 1792.54036 | -| terp1v5cdngv79sh8x7m7e386eagal9umudzwmydxy4 | 0x6530d9a19e2c2e737b7ecc4facf51df979be344e | 1 | 2 | 1792.54036 | -| terp1932gl8f8ymy56nvsjxpppml2td6e664frn729t | 0x2c548f9d2726c94d4d90918210efea5b759d6aa9 | 1 | 2 | 1792.54036 | -| terp16r5xvhpy4md6t532tmtxntanwsp7jyjt2zwxz2 | 0xd0e8665c24aedba5d22a5ed669afb37403e9124b | 1 | 2 | 1792.54036 | -| terp1y4us2m0yft6dq29ycrzaee7vr6k07pqx8d7myz | 0x2579056de44af4d028a4c0c5dce7cc1eacff0406 | 1 | 2 | 1792.54036 | -| terp1fpz9cc8kr5x3rfs9v37jzll8ham8snl6u3rnhd | 0x48445c60f61d0d11a605647d217fe7bf76784ffa | 1 | 2 | 1792.54036 | -| terp1j9zyk2ule9elrmx2uwkjt58axzs6f7p5nakg2h | 0x91444b2b9fc973f1eccae3ad25d0fd30a1a4f834 | 1 | 2 | 1792.54036 | -| terp1ymmzw85fh3ft0txvjcr7ucxd94crmv93q7hvus | 0x26f6271e89bc52b7accc9607ee60cd2d703db0b1 | 1 | 2 | 1792.54036 | -| terp1g74n3h02clz249ksqy6ymz86fzljs6ykew6mee | 0x47ab38ddeac7c4aa96d001344d88fa48bf286896 | 1 | 2 | 1792.54036 | -| terp1890f56xv0xzqughcdra5kptg5g3270u49zsm63 | 0x395e9a68cc79840e22f868fb4b0568a222af3f95 | 1 | 2 | 1792.54036 | -| terp170cpj8hyjsv5aj0ucyk38jkt2n229pqrnnhvcr | 0xf3f0191ee494194ec9fcc12d13cacb54d4a28403 | 1 | 2 | 1792.54036 | -| terp1j7p99m886p5k0w7nmjke504h832kksslns29la | 0x978252ece7d06967bbd3dcad9a3eb73c556b421f | 1 | 2 | 1792.54036 | -| terp1ge84pqxwjawyf74vllyu3mlrr4wg57qczflkmg | 0x464f5080ce975c44faacffc9c8efe31d5c8a7818 | 1 | 2 | 1792.54036 | -| terp17e6x435zk44tds47wctcn6ujpkd07ljnl5zqy2 | 0xf6746ac682b56ab6c2be761789eb920d9aff7e53 | 1 | 2 | 1792.54036 | -| terp1r4a0trwy5gjza29h9tczvts7tqmry3zgk20h0l | 0x1d7af58dc4a2242ea8b72af0262e1e5836324448 | 1 | 2 | 1792.54036 | -| terp17ynayxgqhn4m3hg4pnyqlwxesrav3mchyuaj7e | 0xf127d21900bcebb8dd150cc80fb8d980fac8ef17 | 1 | 2 | 1792.54036 | -| terp1pu6kuyqznl92se4tcd54jn2aryprywx2phz86w | 0x0f356e10029fcaa866abc369594d5d19023238ca | 1 | 2 | 1792.54036 | -| terp19w5d8862hdpwl4t8pkues8tln6pdd73e5kurpr | 0x2ba8d39f4abb42efd5670db9981d7f9e82d6fa39 | 1 | 2 | 1792.54036 | -| terp1tc9l9zf5097vu29aa7pzzxptm7pwhf52pgersk | 0x5e0bf28934797cce28bdef8221182bdf82eba68a | 1 | 2 | 1792.54036 | -| terp13kerv4hldf5va5twm2y2jfvnr74je93ygml3re | 0x8db23656ff6a68ced16eda88a925931fab2c9624 | 1 | 2 | 1792.54036 | -| terp1966yhekzrk0xmlznxsplpa7eur6cdjs8ltkhnr | 0x2eb44be6c21d9e6dfc533403f0f7d9e0f586ca07 | 1 | 2 | 1792.54036 | -| terp1f9mgenpj8fq4647wymu25ysysmrst2pljtv6wm | 0x49768ccc323a415d57ce26f8aa120486c705a83f | 1 | 2 | 1792.54036 | -| terp1d28cuwtgjx998wftf3nqztsqqrpezrlhdtz0f9 | 0x6a8f8e3968918a53b92b4c66012e0000c3910ff7 | 1 | 2 | 1792.54036 | -| terp1xq9fw4ccpqwgkj6xxkc099uend56qp69yp5qwz | 0x300a975718081c8b4b4635b0f297999b69a00745 | 1 | 2 | 1792.54036 | -| terp1nkt5fasatgdaa3hq4s6m97gerucg8pysyeq8lr | 0x9d9744f61d5a1bdec6e0ac35b2f9191f30838490 | 1 | 2 | 1792.54036 | -| terp1qdlduzs6u8cjgpt68zclcwru8hyf2y3h2ay5ej | 0x037ede0a1ae1f124057a38b1fc387c3dc8951237 | 1 | 2 | 1792.54036 | -| terp1fhrc4nscg6054y6ymray87ttfzv2d0zkzgjlzc | 0x4dc78ace18469f4a9344d8fa43f96b4898a6bc56 | 1 | 2 | 1792.54036 | -| terp1qtnw953g6zsh8z7fxvzndlx89hukvmc380jpue | 0x02e6e2d228d0a1738bc9330536fcc72df9666f11 | 1 | 2 | 1792.54036 | -| terp14fypr0sv9hjcvhszvgkd38lj9dsxnj48zfxjzp | 0xaa4811be0c2de5865e02622cd89ff22b6069caa7 | 1 | 2 | 1792.54036 | -| terp1lrxkh4qj7klyj39v3z898ypyt0wj37krj7fste | 0xf8cd6bd412f5be4944ac888e5390245bdd28fac3 | 1 | 2 | 1792.54036 | -| terp125fmamt6td5g3956tvhxmry6uq3u82ylvh29ec | 0x5513beed7a5b6888969a5b2e6d8c9ae023c3a89f | 1 | 2 | 1792.54036 | -| terp1qad2vgyf0yjq7kxcsnvqpxgqpjja6jw6ljn46u | 0x075aa6208979240f58d884d80099000ca5dd49da | 1 | 2 | 1792.54036 | -| terp1k0nw0x7cl0gamgvl9agnxhu20vvhngmzgpe8sg | 0xb3e6e79bd8fbd1dda19f2f51335f8a7b1979a362 | 1 | 2 | 1792.54036 | -| terp1jreaegmgnae85cp0svmr64xze7edcf3rwanvz2 | 0x90f3dca3689f727a602f83363d54c2cfb2dc2623 | 1 | 2 | 1792.54036 | -| terp1s4cve0g98ygfaf7xsrd3n5t3vjynsltzw9y8kf | 0x8570ccbd0539109ea7c680db19d1716489387d62 | 1 | 2 | 1792.54036 | -| terp1v2j9j26r2y48xxsfggj6v54lna69csdm5xtrx8 | 0x62a4592b43512a731a094225a652bf9f745c41bb | 1 | 2 | 1792.54036 | -| terp1rz90jcwwkdfvmp5kqjt6f5p58chtffhlvzt66s | 0x188af961ceb352cd86960497a4d0343e2eb4a6ff | 1 | 2 | 1792.54036 | -| terp1yy7lv9ltajj6yhdkjqawd86wjp6vuv49zuhzrx | 0x213df617ebeca5a25db6903ae69f4e9074ce32a5 | 1 | 2 | 1792.54036 | -| terp1wecmxtzxlt9hfxg4dtcppeqwllm4tfcx4z9pcn | 0x7671b32c46facb7499156af010e40efff755a706 | 1 | 2 | 1792.54036 | -| terp14uekd4etcaup0fsm9rxa0xy4xz70let3j673fd | 0xaf3366d72bc77817a61b28cdd7989530bcffe571 | 1 | 2 | 1792.54036 | -| terp1yzd7k59w06musdyt0d8dncknxzw6lmd6y7kvpg | 0x209beb50ae7eb7c8348b7b4ed9e2d3309dafedba | 1 | 2 | 1792.54036 | -| terp1ge0u09nt97umpsafff5rr2hvuftwq8zdr3ts8k | 0x465fc7966b2fb9b0c3a94a6831aaece256e01c4d | 1 | 2 | 1792.54036 | -| terp1xsect9xs2gmvxh9g4y6ux02j4czcafnxg0y3lh | 0x34338594d05236c35ca8a935c33d52ae058ea666 | 1 | 2 | 1792.54036 | -| terp1nzf3zaz4eu0g4sl93equtzz66kkmrj0lra2srp | 0x9893117455cf1e8ac3e58e41c5885ad5adb1c9ff | 1 | 2 | 1792.54036 | -| terp1e6vq3jpmn37cpct2n42tt0cq8xxhu7sv3wxke2 | 0xce9808c83b9c7d80e16a9d54b5bf00398d7e7a0c | 1 | 2 | 1792.54036 | -| terp105v8k4jrykpyum3eua8frftr2a2h08ffd398fs | 0x7d187b564325824e6e39e74e91a5635755779d29 | 1 | 2 | 1792.54036 | -| terp1s3c6dqxcp3hd68rw3krefp63puqqaerxmqkv9n | 0x8471a680d80c6edd1c6e8d879487510f000ee466 | 1 | 2 | 1792.54036 | -| terp1t02aymeuj2af3uwsg437uqt4lpxs0x9q0rxt76 | 0x5bd5d26f3c92ba98f1d04563ee0175f84d0798a0 | 1 | 2 | 1792.54036 | -| terp165sgf64emf7w75c5607mj6efxp9vl39nw0e84u | 0xd52084eab9da7cef5314d3fdb96b29304acfc4b3 | 1 | 2 | 1792.54036 | -| terp1njlqyqlahrw5tx73g6cdeeuk5ym9pglg9q327g | 0x9cbe0203fdb8dd459bd146b0dce796a13650a3e8 | 1 | 2 | 1792.54036 | -| terp1j0dnq9dv7xpxaxxfahpcamn45mh0n7mel90c4w | 0x93db3015acf1826e98c9edc38eee75a6eef9fb79 | 1 | 2 | 1792.54036 | -| terp1c74l2jfrqvynttv2v29hep63dccup89v9glknh | 0xc7abf54923030935ad8a628b7c87516e31c09cac | 1 | 2 | 1792.54036 | -| terp1duj7lcqeth00gm5382k0kd8rkej5fx6vxu8ckt | 0x6f25efe0195ddef46e913aacfb34e3b665449b4c | 1 | 2 | 1792.54036 | -| terp1vu676x93gg3zr6rfqd9c28wev05j4zjxdjvfyk | 0x6735ed18b1422221e869034b851dd963e92a8a46 | 1 | 2 | 1792.54036 | -| terp14h58ewa932ms5y58lef73ful0328j6wc2p32er | 0xade87cbba58ab70a1287fe53e8a79f7c547969d8 | 1 | 2 | 1792.54036 | -| terp1p6ewej5672lluwekmtrxuh08sf7knqxtu26pfc | 0x0eb2ecca9af2bffe3b36dac66e5de7827d6980cb | 1 | 2 | 1792.54036 | -| terp1crav2n5vk6mp7jxtmxezd7dgc5mcx7u49rsgc8 | 0xc0fac54e8cb6b61f48cbd9b226f9a8c537837b95 | 1 | 2 | 1792.54036 | -| terp169ayy24p9dtlyz0rasmk5lqsp8m9z5588ukakv | 0xd17a422aa12b57f209e3ec376a7c1009f6515287 | 1 | 2 | 1792.54036 | -| terp123vwf92nw4p00adrmw0vdtmrcd49ua39gpv3pv | 0x5458e495537542f7f5a3db9ec6af63c36a5e7625 | 1 | 2 | 1792.54036 | -| terp1pw6xex6hc4eu70efqwmlyj9hyaczyxgkzatdq3 | 0x0bb46c9b57c573cf3f2903b7f248b72770221916 | 1 | 2 | 1792.54036 | -| terp1azhm0s64k69z48rpdeu80580xdfvt826m5edw3 | 0xe8afb7c355b68a2a9c616e7877d0ef3352c59d5a | 1 | 2 | 1792.54036 | -| terp1j8g7mn5qxufafyq6zl5hkx8d3xdxa20waxfx9j | 0x91d1edce803713d4901a17e97b18ed899a6ea9ee | 1 | 2 | 1792.54036 | -| terp1hd5c65h7qs7ytexysyvettn840zhtzm3f4epp6 | 0xbb698d52fe043c45e4c4811995ae67abc5758b71 | 1 | 2 | 1792.54036 | -| terp1gplpcc9hpp5gezw890wla706xjyy24mw59tta3 | 0x407e1c60b708688c89c72bddfef9fa348845576e | 1 | 2 | 1792.54036 | -| terp1z9jamf36dtpcnpu6n0vfyyu944p5ae3wtez30h | 0x1165dda63a6ac389879a9bd8921385ad434ee62e | 1 | 2 | 1792.54036 | -| terp1unwf4vgccw3807ggq7nd0nxzdzqfca3anzr8cv | 0xe4dc9ab118c3a277f90807a6d7ccc268809c763d | 1 | 2 | 1792.54036 | -| terp1d07u2lxkacrxssw9spmme24pnt28l75nzl2vw0 | 0x6bfdc57cd6ee066841c58077bcaaa19ad47ffa93 | 1 | 2 | 1792.54036 | -| terp1h038lx6p05arpyh0qn4rg576y922tg6a9rjfar | 0xbbe27f9b417d3a3092ef04ea3453da2154a5a35d | 1 | 2 | 1792.54036 | -| terp1q4ncth7htaxt0l2qxmrez2lelsanlj8g2qe0gm | 0x056785dfd75f4cb7fd4036c7912bf9fc3b3fc8e8 | 1 | 2 | 1792.54036 | -| terp18q4gva5u03yar4qfqn4wvkfmaezhzj2w42vwhd | 0x382a86769c7c49d1d40904eae6593bee4571494e | 1 | 2 | 1792.54036 | -| terp1tdvr6t0778u8u2d6wd39w4r3d5aa8j88kkeg9x | 0x5b583d2dfef1f87e29ba73625754716d3bd3c8e7 | 1 | 2 | 1792.54036 | -| terp1lvy3t48aq0f4r6p30qvyq2jpynwgc4kn6uvmzs | 0xfb0915d4fd03d351e8317818402a4124dc8c56d3 | 1 | 2 | 1792.54036 | -| terp166x4zv666jquyunty3gwxzkj5eqs0llnu6ach7 | 0xd68d51335ad481c2726b2450e30ad2a64107fff3 | 1 | 2 | 1792.54036 | -| terp19gd73hhn5ms0jqp3206yy9uc3t649y3659d6wy | 0x2a1be8def3a6e0f9003153f44217988af552923a | 1 | 2 | 1792.54036 | -| terp1y5msss9f06mwpxj9wg0a7sh9rn66kn67xjzczv | 0x25370840a97eb6e09a45721fdf42e51cf5ab4f5e | 1 | 2 | 1792.54036 | -| terp1wz36szs8aln6w0aj9xcu99paj25u0647dd349h | 0x70a3a80a07efe7a73fb229b1c2943d92a9c7eabe | 1 | 2 | 1792.54036 | -| terp14a56ntfnmus5jr8cek9r7l8zt89jas3jtj0tu7 | 0xaf69a9ad33df21490cf8cd8a3f7ce259cb2ec232 | 1 | 2 | 1792.54036 | -| terp1456d6hg5u43wk563lmytedlve9p3nwe2h9cvrk | 0xad34dd5d14e562eb5351fec8bcb7ecc94319bb2a | 1 | 2 | 1792.54036 | -| terp1rjmdkxgnwhpnj9qyv8mmk2gteak7v8qt23upk2 | 0x1cb6db191375c339140461f7bb290bcf6de61c0b | 1 | 2 | 1792.54036 | -| terp1q7a2q5e4clazq7m96mp4jfkzrf8flg37sq9xyc | 0x07baa05335c7fa207b65d6c35926c21a4e9fa23e | 1 | 2 | 1792.54036 | -| terp1ujh7a7tavez8kvv7zwcskcxsguxyqm0k29p3gq | 0xe4afeef97d66447b319e13b10b60d0470c406df6 | 1 | 2 | 1792.54036 | -| terp18vm4qv9a8xuzxummazuuhevrehqr47mdln3u7t | 0x3b375030bd39b823737be8b9cbe583cdc03afb6d | 1 | 2 | 1792.54036 | -| terp1qwu730gctsuryq0aygd20aaksmjdard03uwpgf | 0x03b9e8bd185c383201fd221aa7f7b686e4de8daf | 1 | 2 | 1792.54036 | -| terp1hm5ks6xdrr0q0985dw9mc67d3xa77qvn9d92d2 | 0xbee96868cd18de0794f46b8bbc6bcd89bbef0193 | 1 | 2 | 1792.54036 | -| terp13087m2q7ne258lulxskq7fwfag696agll5jfnn | 0x8bcfeda81e9e5543ff9f342c0f25c9ea345d751f | 1 | 2 | 1792.54036 | -| terp1t9y8je3262fqet33hv54umfyhgj638lstysmry | 0x594879662ad2920cae31bb295e6d24ba25a89ff0 | 1 | 2 | 1792.54036 | -| terp1qft8mxxm570k4nehnpfpldgh4fh5p2yg3lf3ve | 0x02567d98dba79f6acf3798521fb517aa6f40a888 | 1 | 2 | 1792.54036 | -| terp1m4dj2dn2s0x8dus6e39dt2zz9544ukmymesn9y | 0xdd5b25366a83cc76f21acc4ad5a8422d2b5e5b64 | 1 | 2 | 1792.54036 | -| terp150hfj9ujvygekdpvxm5q9p7ptr8qtldxe7a7ug | 0xa3ee99179261119b342c36e80287c158ce05fda6 | 1 | 2 | 1792.54036 | -| terp1l95xd86fv2l9z4qytpsgd822rhadt3s0ng2fem | 0xf968669f4962be5154045860869d4a1dfad5c60f | 1 | 2 | 1792.54036 | -| terp13d4v72t8t8500rg7me4d2rt9gjfeepmmznhqyw | 0x8b6acf296759e8f78d1ede6ad50d6544939c877b | 1 | 2 | 1792.54036 | -| terp1ngkcz7zh0zmss5ru9x8040re9rl5zchj9swphd | 0x9a2d81785778b708507c298efabc7928ff4162f2 | 1 | 2 | 1792.54036 | -| terp13cqrz866srcm7hh9sc26tsv5d9de492mchdpwy | 0x8e00311f5a80f1bf5ee58615a5c194695b9a955b | 1 | 2 | 1792.54036 | -| terp1sqg22dnyc7nfr95w06r4zhx2sjuvfx523skszm | 0x8010a53664c7a691968e7e87515cca84b8c49a8a | 1 | 2 | 1792.54036 | -| terp1xdhapjxes2fy0v4pqd8xy4u3r68u0unq3d477l | 0x336fd0c8d9829247b2a1034e6257911e8fc7f260 | 1 | 2 | 1792.54036 | -| terp1axxw666hunswj0q76xlu9tf6g0nt6gvf7apa4v | 0xe98ced6b57e4e0e93c1ed1bfc2ad3a43e6bd2189 | 1 | 2 | 1792.54036 | -| terp197exkvssg207xx5fy4svfh4z5hd3dwrk9vkqcd | 0x2fb26b3210429fe31a892560c4dea2a5db16b876 | 1 | 2 | 1792.54036 | -| terp1hvmel4wrsfrzkqmzsh8jzthcddz8yv9vjs3cvz | 0xbb379fd5c382462b036285cf212ef86b447230ac | 1 | 2 | 1792.54036 | -| terp1c99cf778x8alnl7lwmatstk4uedzxw7vr38wu3 | 0xc14b84fbc731fbf9ffdf76fab82ed5e65a233bcc | 1 | 2 | 1792.54036 | -| terp1qhvevm26q4y56e4apkmnqexm03zpkzt2g9mtsp | 0x05d9966d5a05494d66bd0db73064db7c441b096a | 1 | 2 | 1792.54036 | -| terp105utc7tc9zujjqulz9hdy3yr2ez47ayvm55ka2 | 0x7d38bc797828b929039f116ed2448356455f748c | 1 | 2 | 1792.54036 | -| terp1ckqvwzs3huk684cpm686nxwts0t2tdeama6fa8 | 0xc580c70a11bf2da3d701de8fa999cb83d6a5b73d | 1 | 2 | 1792.54036 | -| terp10auhjsagvrut64naf73r6nvlepf50ap85r0xa2 | 0x7f797943a860f8bd567d4fa23d4d9fc85347f427 | 1 | 2 | 1792.54036 | -| terp1q450cf5lz5p3wwr2uk8qmqcasmwsn0sels50ve | 0x0568fc269f150317386ae58e0d831d86dd09be19 | 1 | 2 | 1792.54036 | -| terp1rrjr29pkcqjhfvmux5nv70vvyptl509y6n6rr0 | 0x18e4351436c02574b37c3526cf3d8c2057fa3ca4 | 1 | 2 | 1792.54036 | -| terp1cj2z3x8km7f6xls3ua7guy87rspaux45cyy62j | 0xc4942898f6df93a37e11e77c8e10fe1c03de1ab4 | 1 | 2 | 1792.54036 | -| terp1weaqk860nqlqvnydx0kffdganjf4tf4mvjcddf | 0x767a0b1f4f983e064c8d33ec94b51d9c9355a6bb | 1 | 2 | 1792.54036 | -| terp1aehlm220e29jt73n049k8f0eefh8s3jaf4mw3w | 0xee6ffda94fca8b25fa337d4b63a5f9ca6e78465d | 1 | 2 | 1792.54036 | -| terp1ls5ayhzmulr6lqvwu75dh5sca9v0qxj32yhr5y | 0xfc29d25c5be7c7af818ee7a8dbd218e958f01a51 | 1 | 2 | 1792.54036 | -| terp1xnxvm7qjtz5nhrzw3raj6t2wsezrt9v7a0zjfk | 0x34cccdf81258a93b8c4e88fb2d2d4e864435959e | 1 | 2 | 1792.54036 | -| terp13fywmmxn9rgze8905ptj7kutprjpnuzlc0mzwa | 0x8a48edecd328d02c9cafa0572f5b8b08e419f05f | 1 | 2 | 1792.54036 | -| terp1fpqdmk7f7z9lfn03kzvhyvnfrnjkwnedvkn0y8 | 0x4840dddbc9f08bf4cdf1b0997232691ce5674f2d | 1 | 2 | 1792.54036 | -| terp1gkueszxghxlcytnu38tee7fd9kckt8aj2s4vs4 | 0x45b99808c8b9bf822e7c89d79cf92d2db1659fb2 | 1 | 2 | 1792.54036 | -| terp1zg63s8nurmjxxujdglck439h44j2m3xqrruatg | 0x1235181e7c1ee463724d47f16ac4b7ad64adc4c0 | 1 | 2 | 1792.54036 | -| terp1ckl696pckgwqqvgm9h4fc3g2m6exptwku5d6sr | 0xc5bfa2e838b21c00311b2dea9c450adeb260add6 | 1 | 2 | 1792.54036 | -| terp1aefgp60t0wwn8jsrxvkmwwptyn6295qf22lw5f | 0xee5280e9eb7b9d33ca03332db7382b24f4a2d009 | 1 | 2 | 1792.54036 | -| terp1crtmsg6tu8vdejnyyp73evtl7p94awz6j78wu6 | 0xc0d7b8234be1d8dcca64207d1cb17ff04b5eb85a | 1 | 2 | 1792.54036 | -| terp10mxzvdezkf0x5qkklvkzdfe7fedc2mf0z9qjdc | 0x7ecc263722b25e6a02d6fb2c26a73e4e5b856d2f | 1 | 2 | 1792.54036 | -| terp13kpdcdda2d79y9atf9pqt0mqklvf4ddguwnwua | 0x8d82dc35bd537c5217ab494205bf60b7d89ab5a8 | 1 | 2 | 1792.54036 | -| terp1m253fhgkewm0alxwxn0l06dg37znzaz28myswq | 0xdaa914dd16cbb6fefcce34dff7e9a88f8531744a | 1 | 2 | 1792.54036 | -| terp18a43wkxg2w98des4frjhmep0myc68sf4mjx5jf | 0x3f6b1758c8538a76e61548e57de42fd931a3c135 | 1 | 2 | 1792.54036 | -| terp1c0au8ay97rvmp0fpkyay425rgqtqz4ktdh0445 | 0xc3fbc3f485f0d9b0bd21b13a4aaa8340160156cb | 1 | 2 | 1792.54036 | -| terp1nceg98kpvu4dp7ujt7j5593cx7k70rm4jj25lc | 0x9e32829ec1672ad0fb925fa54a163837ade78f75 | 1 | 2 | 1792.54036 | -| terp1j3ygt3pv0f902mxazyvtkczxp9urzgs63ctg32 | 0x944885c42c7a4af56cdd1118bb6046097831221a | 1 | 2 | 1792.54036 | -| terp1p9ahzhs8r4rq5kj3wpmz3s6npj3hge8c8wywz3 | 0x097b715e071d460a5a51707628c3530ca37464f8 | 1 | 2 | 1792.54036 | -| terp182w7ytm39fdccclnjjkaaldx649wrxygvmpy4p | 0x3a9de22f712a5b8c63f394addefda6d54ae19888 | 1 | 2 | 1792.54036 | -| terp1affnkr3dpsja96urpvgxq9tcfp8ufa0p99s8a3 | 0xea533b0e2d0c25d2eb830b10601578484fc4f5e1 | 1 | 2 | 1792.54036 | -| terp1jnl400gld24jykda3qu7t649vjk6h7cm5rycny | 0x94ff57bd1f6aab2259bd8839e5eaa564adabfb1b | 1 | 2 | 1792.54036 | -| terp1gtx4pvur6cycdz96hzng5tlver5wkum8aw2vue | 0x42cd50b383d6098688bab8a68a2fecc8e8eb7367 | 1 | 2 | 1792.54036 | -| terp18t6s8fge0ekw2qt7tharn5l82y5nzzx7xkdm2k | 0x3af503a5197e6ce5017e5dfa39d3e751293108de | 1 | 2 | 1792.54036 | -| terp1fdjrm72ec8wjlaanlkpapxwl3ugcpyu628xw3j | 0x4b643df959c1dd2ff7b3fd83d099df8f1180939a | 1 | 2 | 1792.54036 | -| terp1mrugqwk78pnqxzuzfwf45nge5hmpawctc2cxj0 | 0xd8f8803ade3866030b824b935a4d19a5f61ebb0b | 1 | 2 | 1792.54036 | -| terp18tj7m0w3xskwdt92fq6z0y33t4fw0vr8jrzwt9 | 0x3ae5edbdd1342ce6acaa48342792315d52e7b067 | 1 | 2 | 1792.54036 | -| terp1jwwu0z9pjqk0q3ugumxfj0aya7yyqr8qaxrxsk | 0x939dc788a1902cf04788e6cc993fa4ef88400ce0 | 1 | 2 | 1792.54036 | -| terp134zcxe2uc7jmxmhr403hgutkks4knrkykat829 | 0x8d4583655cc7a5b36ee3abe3747176b42b698ec4 | 1 | 2 | 1792.54036 | -| terp1slpjnzalwthxp00l9eydh46hrx0fwrdcw24mzk | 0x87c3298bbf72ee60bdff2e48dbd757199e970db8 | 1 | 2 | 1792.54036 | -| terp1eucul4gxcsk7cspqp9strw20nexefaupx0pss3 | 0xcf31cfd506c42dec40200960b1b94f9e4d94f781 | 1 | 2 | 1792.54036 | -| terp1jygz90fp9898apu9t89k9y36sjcf7x50utas06 | 0x911022bd2129ca7e878559cb62923a84b09f1a8f | 1 | 2 | 1792.54036 | -| terp13vl3fuzc97ljwklg05n9eycmfh747yahwlddtd | 0x8b3f14f0582fbf275be87d265c931b4dfd5f13b7 | 1 | 2 | 1792.54036 | -| terp1at9hn8nxdffcjedrnuwgwdy2lstss20zcywzer | 0xeacb799e666a538965a39f1c87348afc170829e2 | 1 | 2 | 1792.54036 | -| terp1pmq7yqkkwzu0x7qv92wwyxc3vjyp37df6emmut | 0x0ec1e202d670b8f3780c2a9ce21b11648818f9a9 | 1 | 2 | 1792.54036 | -| terp1l2zqznf885qvlzj59kx5dvp2gv06sr2z4jvk43 | 0xfa84014d273d00cf8a542d8d46b02a431fa80d42 | 1 | 2 | 1792.54036 | -| terp1dd82ku7p8dpnx9uzg4exj9g2q6l39atmnshy69 | 0x6b4eab73c13b43331782457269150a06bf12f57b | 1 | 2 | 1792.54036 | -| terp1qhn4ldr63n3fmvn7qhaq7y8tladw6dtxkwdck8 | 0x05e75fb47a8ce29db27e05fa0f10ebff5aed3566 | 1 | 2 | 1792.54036 | -| terp1xc56txs4ggfpgqk03476n6hj9nf4u9mh374ewh | 0x3629a59a1542121402cf8d7da9eaf22cd35e1777 | 1 | 2 | 1792.54036 | -| terp1axc3vn3mus4asp26xn6tz8jl9am8a7cujffz9k | 0xe9b1164e3be42bd8055a34f4b11e5f2f767efb1c | 1 | 2 | 1792.54036 | -| terp1jp4ljth9de9txfk3aa35gkf32tnlnncned38mn | 0x906bf92ee56e4ab326d1ef6344593152e7f9cf13 | 1 | 2 | 1792.54036 | -| terp1ync2pfm0vptc98ef9gyjsl0hn5jzfyvx456nlx | 0x24f0a0a76f6057829f292a09287df79d24249186 | 1 | 2 | 1792.54036 | -| terp1p4vfhntluemwysec22ulyzrk2vvd72p5m2ldks | 0x0d589bcd7fe676e2433852b9f208765318df2834 | 1 | 2 | 1792.54036 | -| terp1pf2rduyl9t6ygfgya2ffdwu9wfza3mq7t5928y | 0x0a5436f09f2af4442504ea9296bb857245d8ec1e | 1 | 2 | 1792.54036 | -| terp1lzdhjf4t0yv5w4qxwh2yt8urz9c0pyctr9st5e | 0xf89b7926ab791947540675d4459f831170f0930b | 1 | 2 | 1792.54036 | -| terp1m6m3655s3v3mnad73fk8k4ywf7yshp0gpzl8qq | 0xdeb71d52908b23b9f5be8a6c7b548e4f890b85e8 | 1 | 2 | 1792.54036 | -| terp1u4v0c2ugqrckex58f7wnn78rzthep6uf3a0rl5 | 0xe558fc2b8800f16c9a874f9d39f8e312ef90eb89 | 1 | 2 | 1792.54036 | -| terp1xngt40nw5a6lh833cy3dlh9awqne04405wkua9 | 0x34d0babe6ea775fb9e31c122dfdcbd702797d6af | 1 | 2 | 1792.54036 | -| terp12w3a9gua8pfm4a40gr8knlcp3n8524eeyxut0j | 0x53a3d2a39d3853baf6af40cf69ff018ccf455739 | 1 | 2 | 1792.54036 | -| terp1xwjc5nzln4n2lhr08rv3jzne55y9vxn4rescr9 | 0x33a58a4c5f9d66afdc6f38d9190a79a508561a75 | 1 | 2 | 1792.54036 | -| terp18kcfavlw30xeghgcdw4ltg72tcc2gfjgtnaus6 | 0x3db09eb3ee8bcd945d186babf5a3ca5e30a42648 | 1 | 2 | 1792.54036 | -| terp1k6pvctggcr2p6jac4gvendjwf8dusw475vuxc8 | 0xb682cc2d08c0d41d4bb8aa1999b64e49dbc83abe | 1 | 2 | 1792.54036 | -| terp149mzrkhelukggle32grzhgk83f0fgwx7p87xl3 | 0xa97621daf9ff2c847f3152062ba2c78a5e9438de | 1 | 2 | 1792.54036 | -| terp1ypwj0l0szk7494gdjlst3sk5fh0n0lp4qtxjlj | 0x205d27fdf015bd52d50d97e0b8c2d44ddf37fc35 | 1 | 2 | 1792.54036 | -| terp1kpqyu6js253w09yu7elpd0qe2pau85x7zvdx4v | 0xb0404e6a505522e7949cf67e16bc19507bc3d0de | 1 | 2 | 1792.54036 | -| terp17fcpv6q46glt5h8h8eruf3ljpv3le08drjc094 | 0xf270166815d23eba5cf73e47c4c7f20b23fcbced | 1 | 2 | 1792.54036 | -| terp14zlt4czs9xa5sut373jqkfu0tr769ghvpvjx3d | 0xa8bebae05029bb487171f4640b278f58fda2a2ec | 1 | 2 | 1792.54036 | -| terp1x6pfwnhy3yutcmv9ecy06uh5vsltqw2zk3c0sv | 0x3682974ee48938bc6d85ce08fd72f4643eb03942 | 1 | 2 | 1792.54036 | -| terp10j0y0k3h3tgf7ynjemgk28a35hs63vcrcgc4rg | 0x7c9e47da378ad09f1272ced1651fb1a5e1a8b303 | 1 | 2 | 1792.54036 | -| terp13dnep4wvq729cdu7tus7k05eh5w9tv8uvd003s | 0x8b6790d5cc07945c379e5f21eb3e99bd1c55b0fc | 1 | 2 | 1792.54036 | -| terp102epxqe266udm3f2yz7334du8gf6vqhm8hlf27 | 0x7ab213032ad6b8ddc52a20bd18d5bc3a13a602fb | 1 | 2 | 1792.54036 | -| terp1ntkmfyza7wpeevpmufja44qxgp84ykf70rrrt5 | 0x9aedb4905df3839cb03be265dad406404f52593e | 1 | 2 | 1792.54036 | -| terp1w07cmyh9mf200x2xh009y9n74wn20dc447k42n | 0x73fd8d92e5da54f79946bbde52167eaba6a7b715 | 1 | 2 | 1792.54036 | -| terp16kjhck73949mptl9uxk32agv2lhdjg8vrzrtzk | 0xd5a57c5bd12d4bb0afe5e1ad15750c57eed920ec | 1 | 2 | 1792.54036 | -| terp17q3mw4r8y3j00n6fwme6jfmp7uw2v2f2he570x | 0xf023b754672464f7cf4976f3a92761f71ca6292a | 1 | 2 | 1792.54036 | -| terp1wn6fwztaafq9tkdkmkh7hxev9ggvrxzvsgqtls | 0x74f497097dea4055d9b6ddafeb9b2c2a10c1984c | 1 | 2 | 1792.54036 | -| terp1lljxkurxsdwjcj23jk5swzpvcpyv40wm6xmz5k | 0xffe46b7066835d2c495195a907082cc048cabddb | 1 | 2 | 1792.54036 | -| terp18dftl7zryzs9e52cucmmrdfkjtv54nnm8lawh6 | 0x3b52bff84320a05cd158e637b1b53692d94ace7b | 1 | 2 | 1792.54036 | -| terp1menskadeeck4sxte6x285vg0pxkv2cdvnvrn7x | 0xde670b75b9ce2d581979d1947a310f09acc561ac | 1 | 2 | 1792.54036 | -| terp1qsn3uzqwla4ap6wafyaz8dslg0cf4y0ahrc7yh | 0x04271e080eff6bd0e9dd493a23b61f43f09a91fd | 1 | 2 | 1792.54036 | -| terp1qmwjptddf4s20ury0snv9gvnr67nkwl2rkmr49 | 0x06dd20adad4d60a7f0647c26c2a1931ebd3b3bea | 1 | 2 | 1792.54036 | -| terp1cusjp7w3a3qyjfgkjs9enp6j56wwsq6kvyj6hy | 0xc72120f9d1ec40492516940b998752a69ce80356 | 1 | 2 | 1792.54036 | -| terp1ru7n98rpqp2r5xt9j3sdswwn77cflg5dh0mqp3 | 0x1f3d329c6100543a19659460d839d3f7b09fa28d | 1 | 2 | 1792.54036 | -| terp1k8sherth8ysgytfykv08t99m76pynnjwwswfvm | 0xb1e17c8d773920822d24b31e7594bbf68249ce4e | 1 | 2 | 1792.54036 | -| terp1em8yzpavcrpfflyj9u48c49ca435vl67gktual | 0xcece4107acc0c294fc922f2a7c54b8ed63467f5e | 1 | 2 | 1792.54036 | -| terp1n9p84akm2zrh9tlnz4ulz6489yrl7pykj7t0w6 | 0x99427af6db508772aff31579f16aa72907ff0496 | 1 | 2 | 1792.54036 | -| terp1f8n5uvtcwu6vx4p7nxl6e4zhewpgdv3eezh0me | 0x49e74e31787734c3543e99bfacd457cb8286b239 | 1 | 2 | 1792.54036 | -| terp1k7x3q9wnxc0ypcnpqw3mfrkmsz4dmu80mp3av5 | 0xb78d1015d3361e40e26103a3b48edb80aaddf0ef | 1 | 2 | 1792.54036 | -| terp19trse85njfer6dg3uxa572dc62qmj3g09mtmkg | 0x2ac70c9e9392723d3511e1bb4f29b8d281b9450f | 1 | 2 | 1792.54036 | -| terp1wpqfmcsngm9qp9nlhe5n8w62jyc8xr4zjnk20y | 0x70409de21346ca00967fbe6933bb4a9130730ea2 | 1 | 2 | 1792.54036 | -| terp13twcp0k2pa7cwk9rgz2gsq2kywxcmq4j7mf65d | 0x8add80beca0f7d8758a34094880156238d8d82b2 | 1 | 2 | 1792.54036 | -| terp1qefcu3yzzhy0r83udunxkue9lxls6378clsxlx | 0x06538e448215c8f19e3c6f266b7325f9bf0d47c7 | 1 | 2 | 1792.54036 | -| terp1k9nat4t0qmk20ukfk2p029yre48vku3rc5tgz6 | 0xb167d5d56f06eca7f2c9b282f51483cd4ecb7223 | 1 | 2 | 1792.54036 | -| terp17g75y0qlf8fjfrfq5gff9d7feqmn95m5ah80qk | 0xf23d423c1f49d3248d20a21292b7c9c83732d374 | 1 | 2 | 1792.54036 | -| terp1xlrfauasq6lrrwvtr2tcepkq77dr4kk6zaf02p | 0x37c69ef3b006be31b98b1a978c86c0f79a3adada | 1 | 2 | 1792.54036 | -| terp1m4r48x4h4677y9mv76l7w23wxuy08fjwxzg7qs | 0xdd47539ab7aebde2176cf6bfe72a2e3708f3a64e | 1 | 2 | 1792.54036 | -| terp1dj7dhw8swfgxlzdvmm7mm4psv3tn3hvd2n6tjd | 0x6cbcdbb8f072506f89acdefdbdd430645738dd8d | 1 | 2 | 1792.54036 | -| terp16mmk5eh6nj88q45r8674grjg5d4w9xkrdehk44 | 0xd6f76a66fa9c8e7056833ebd540e48a36ae29ac3 | 1 | 2 | 1792.54036 | -| terp1dgunrfhpj95krsqcu9kznkvky8c028ny8yav75 | 0x6a3931a6e1916961c018e16c29d99621f0f51e64 | 1 | 2 | 1792.54036 | -| terp1lessxwe9yp3w0lcwhgddfcu2v6cfke484cpg0s | 0xfe61033b252062e7ff0eba1ad4e38a66b09b66a7 | 1 | 2 | 1792.54036 | -| terp159qhyte2dgwucydknmv3lqkkgrlgp42r985u53 | 0xa141722f2a6a1dcc11b69ed91f82d640fe80d543 | 1 | 2 | 1792.54036 | -| terp1lq4x6x8phlf65la2knl4jmg723j0jakvyx6eyw | 0xf82a6d18e1bfd3aa7faab4ff596d1e5464f976cc | 1 | 2 | 1792.54036 | -| terp1n3zyjh8dnuy2qaqalgm4r62faquda90lg4wlvp | 0x9c44495ced9f08a0741dfa3751e949e838de95ff | 1 | 2 | 1792.54036 | -| terp1atrufkrmks9e0rl2hxtaghzg4cvv34j5ddgx99 | 0xeac7c4d87bb40b978feab997d45c48ae18c8d654 | 1 | 2 | 1792.54036 | -| terp12vawh5yxnfccem06m72davf3ez23wykarwqypd | 0x533aebd0869a718cedfadf94deb131c8951712dd | 1 | 2 | 1792.54036 | -| terp1m3kcrz2t3qz72nun4xyp4v4xh5dyrt2qw5y29c | 0xdc6d81894b8805e54f93a9881ab2a6bd1a41ad40 | 1 | 2 | 1792.54036 | -| terp108y5r2ars4wwe4fhkhgkt7kzankhztx76kuful | 0x79c941aba3855cecd537b5d165fac2eced712cde | 1 | 2 | 1792.54036 | -| terp1e6f3z38kn4xhcelrzl95m5fu8p5e482nercc48 | 0xce931144f69d4d7c67e317cb4dd13c38699a9d53 | 1 | 2 | 1792.54036 | -| terp1a6xexv929653kc4knfychynxklqp4p9zqs8q7g | 0xee8d9330aa2ea91b62b69a498b9266b7c01a84a2 | 1 | 2 | 1792.54036 | -| terp1akdl2g6esqwxsnpuftvdtc4lssnzl8kmhgfs6p | 0xed9bf52359801c684c3c4ad8d5e2bf84262f9edb | 1 | 2 | 1792.54036 | -| terp196m7wk2gfwx7zstv6y8akswnnr6dskzfk09hlh | 0x2eb7e759484b8de1416cd10fdb41d398f4d85849 | 1 | 2 | 1792.54036 | -| terp1ylzpazkfrrkjv86v3av49k24mvxc963pc6mv0r | 0x27c41e8ac918ed261f4c8f5952d955db0d82ea21 | 1 | 2 | 1792.54036 | -| terp1rzgy0knr7m09qrw5q7myj2677tz6dzawcqghrf | 0x189047da63f6de500dd407b6492b5ef2c5a68bae | 1 | 2 | 1792.54036 | -| terp19jvnfc67j5t7kaeq2c6dhdc59ekfqj2h79nqer | 0x2c9934e35e9517eb77205634dbb7142e6c904957 | 1 | 2 | 1792.54036 | -| terp1lq8qzyvtwcq5xw48ycrwm9htzy2s8vq6v46y8z | 0xf80e01118b7601433aa72606ed96eb111503b01a | 1 | 2 | 1792.54036 | -| terp1enkkfvm4dyjq3nuqc4ue5v5du0awzupzczu0v8 | 0xcced64b375692408cf80c5799a328de3fae17022 | 1 | 2 | 1792.54036 | -| terp1ytefgxnt7v6kd9r48rlj57gz39xdcha5w2pkcr | 0x22f2941a6bf33566947538ff2a7902894cdc5fb4 | 1 | 2 | 1792.54036 | -| terp18s4r6rx57er8h4gva06yv368kvamlupqgvmpus | 0x3c2a3d0cd4f6467bd50cebf4464747b33bbff020 | 1 | 2 | 1792.54036 | -| terp13vjjg8ns2jnrw2ecgcm87w3yadvu2eafs56q6c | 0x8b25241e7054a6372b3846367f3a24eb59c567a9 | 1 | 2 | 1792.54036 | -| terp1armc8l3e6jnf4r6n0lms8wy6shhvw7fsr4nzn2 | 0xe8f783fe39d4a69a8f537ff703b89a85eec77930 | 1 | 2 | 1792.54036 | -| terp129e7luaewep3mq2uf70d9ev8vwdmq6cxrdcz85 | 0x5173eff3b976431d815c4f9ed2e587639bb06b06 | 1 | 2 | 1792.54036 | -| terp1a4szqqkrsy6df64m6twa9lxy5y3tjr5mj970kr | 0xed602002c38134d4eabbd2ddd2fcc4a122b90e9b | 1 | 2 | 1792.54036 | -| terp1ltl6p6al5kzlgjv4xgjra500hmtgetcmq8df3l | 0xfaffa0ebbfa585f4499532243ed1efbed68caf1b | 1 | 2 | 1792.54036 | -| terp193wpmqq6vhd2qmfyjngwqh8qket0v0gkfyw7k9 | 0x2c5c1d801a65daa06d2494d0e05ce0b656f63d16 | 1 | 2 | 1792.54036 | -| terp18s3ty89a2gmtqa2vsc3pnmghqyn27m2gu8efxr | 0x3c22b21cbd5236b0754c862219ed170126af6d48 | 1 | 2 | 1792.54036 | -| terp1kt2fszmuyx26nfeku30ydkvn3fw5t8sv58wlyv | 0xb2d4980b7c2195a9a736e45e46d9938a5d459e0c | 1 | 2 | 1792.54036 | -| terp1jk5plklqlyucfwrflejs8yvnf8tp8g3daa2fmw | 0x95a81fdbe0f93984b869fe6503919349d613a22d | 1 | 2 | 1792.54036 | -| terp1325cev4rstukszfwsnzktse4zh5fzf926kn830 | 0x8aa98cb2a382f968092e84c565c33515e89124aa | 1 | 2 | 1792.54036 | -| terp1vzkpl07grg2zg7nd7cvasa95230dmt6ra3dhqj | 0x60ac1fbfc81a14247a6df619d874b4545eddaf43 | 1 | 2 | 1792.54036 | -| terp1enlvywam9y84urzheye93tjsscnrhnqta82e2j | 0xccfec23bbb290f5e0c57c93258ae5086263bcc0b | 1 | 2 | 1792.54036 | -| terp16udwz65j6k0j70uhpwfr06ynjz5590qwysc94q | 0xd71ae16a92d59f2f3f970b9237e89390a942bc0e | 1 | 2 | 1792.54036 | -| terp1mqnq6ygu3rqwtlhhcgcxcjeqghnjpyv7h7hprx | 0xd8260d111c88c0e5fef7c2306c4b2045e720919e | 1 | 2 | 1792.54036 | -| terp1gs88pjvfjukd23vvs7pk63j395uv7wp6rnqyj4 | 0x440e70c989972cd5458c87836d46512d38cf383a | 1 | 2 | 1792.54036 | -| terp1e9zj560mxtwyt6lry86nke62u7ftwnup3g0krv | 0xc9452a69fb32dc45ebe321f53b674ae792b74f81 | 1 | 2 | 1792.54036 | -| terp16v0ju26a2nlpu63j649z9awzvjd6x5wfg0t90e | 0xd31f2e2b5d54fe1e6a32d54a22f5c2649ba351c9 | 1 | 2 | 1792.54036 | -| terp1res8q6w2pczg2nr2urrhrsxcr0kyrrqk50an9f | 0x1e607069ca0e04854c6ae0c771c0d81bec418c16 | 1 | 2 | 1792.54036 | -| terp1wwz4xj7c0akxh0vfcr38vy3c9stss0n9h4zg5k | 0x7385534bd87f6c6bbd89c0e27612382c17083e65 | 1 | 2 | 1792.54036 | -| terp1j0atfk3lkzkw03yasus6cpakcly7sxzkj2gfr4 | 0x93fab4da3fb0ace7c49d8721ac07b6c7c9e81856 | 1 | 2 | 1792.54036 | -| terp1q89643c5822mpa3wucn5lzwqjeyd9y7t2k548f | 0x01cbaac7143a95b0f62ee6274f89c09648d293cb | 1 | 2 | 1792.54036 | -| terp1n8efdl6f0ez02l89scex223rqmnmunp6zmk26z | 0x99f296ff497e44f57ce58632652a2306e7be4c3a | 1 | 2 | 1792.54036 | -| terp1r9qstu7cvzedd99g7rug2dmq95d26e06t2l7d2 | 0x194105f3d860b2d694a8f0f88537602d1aad65fa | 1 | 2 | 1792.54036 | -| terp132jwpppd0wq3fd3j9pnxx4dgfp76wlta0w2dpf | 0x8aa4e0842d7b8114b63228666355a8487da77d7d | 1 | 2 | 1792.54036 | -| terp1yfg2e7srppwgs7r9r4qamu3g9xmswm7r63r3wn | 0x2250acfa03085c8878651d41ddf22829b7076fc3 | 1 | 2 | 1792.54036 | -| terp1z08q346ccjfm9a9dv4wrqp58q5yhr79t0egxk0 | 0x13ce08d758c493b2f4ad655c300687050971f8ab | 1 | 2 | 1792.54036 | -| terp1280wspn90cgxuat9f4c69ktck8m9h3m265s2z2 | 0x51dee806657e106e75654d71a2d978b1f65bc76a | 1 | 2 | 1792.54036 | -| terp15gy54982jtfylrz7v38nugrrzmyadzzkvpe4ty | 0xa2094a94ea92d24f8c5e644f3e206316c9d68856 | 1 | 2 | 1792.54036 | -| terp1gsm7q2mqgt36fnus00g444e02qsdyje697293h | 0x4437e02b6042e3a4cf907bd15ad72f5020d24b3a | 1 | 2 | 1792.54036 | -| terp1k8gk03a06vqfllmkdr9v4jpp9w65z0vkds65e5 | 0xb1d167c7afd3009fff7668cacac8212bb5413d96 | 1 | 2 | 1792.54036 | -| terp1lwg7m9we4jazm8hx9mpuce0xhzpnr5cjnxg63a | 0xfb91ed95d9acba2d9ee62ec3cc65e6b88331d312 | 1 | 2 | 1792.54036 | -| terp1g2tlmpxp8w584k7563ksxt3d7ry65hn7396hfk | 0x4297fd84c13ba87adbd4d46d032e2df0c9aa5e7e | 1 | 2 | 1792.54036 | -| terp1ttsxw80sd97wgzvvutwqxjpc7uzhnvymn49qx4 | 0x5ae0671df0697ce4098ce2dc034838f70579b09b | 1 | 2 | 1792.54036 | -| terp1gxll9sml2ny4eu87z9pmprxppaeardfsf5cpsf | 0x41bff2c37f54c95cf0fe1143b08cc10f73d1b530 | 1 | 2 | 1792.54036 | -| terp1ylzlskqwt9ynxqpc3ylhpzx89gwprms8w2s6gv | 0x27c5f8580e5949330038893f7088c72a1c11ee07 | 1 | 2 | 1792.54036 | -| terp1e5q3plnt9xvhl649mhayv0l7kqsufn20264fpt | 0xcd0110fe6b29997feaa5ddfa463ffeb021c4cd4f | 1 | 2 | 1792.54036 | -| terp1gduw83ghvsvwyy842mglhr7tzs8nu5qfzknaea | 0x4378e3c5176418e210f556d1fb8fcb140f3e5009 | 1 | 2 | 1792.54036 | -| terp1uv88k7pc26h9fsphjzfq8m4n2f7jnqpljjf0a3 | 0xe30e7b783856ae54c037909203eeb3527d29803f | 1 | 2 | 1792.54036 | -| terp13zpsma4chhfxh9d3yx7pyvn28h7ms2yg0r9q4w | 0x88830df6b8bdd26b95b121bc12326a3dfdb82888 | 1 | 2 | 1792.54036 | -| terp1ee5nfhzm6hla0ecu4y423k0j2sth2zlua3w200 | 0xce6934dc5bd5ffd7e71ca92aa8d9f25417750bfc | 1 | 2 | 1792.54036 | -| terp1gz84pez6mqnpyaldjfaaltwyf0ytjdppapf4az | 0x408f50e45ad8261277ed927bdfadc44bc8b93421 | 1 | 2 | 1792.54036 | -| terp1jqh45ntvq3xdjru2qwhzc8jty8gl02nr7axwvw | 0x902f5a4d6c044cd90f8a03ae2c1e4b21d1f7aa63 | 1 | 2 | 1792.54036 | -| terp1s5d9hxktr2nkam2a3m8srudy69d65uq6223zz7 | 0x851a5b9acb1aa76eed5d8ecf01f1a4d15baa701a | 1 | 2 | 1792.54036 | -| terp1m62gvt2euf8stsjgk0z9ax59ldy8sj2a55yvvz | 0xde94862d59e24f05c248b3c45e9a85fb4878495d | 1 | 2 | 1792.54036 | -| terp1n76lf4gjxwv0dtguuq3we8n8yqk9ucv450ar3z | 0x9fb5f4d5123398f6ad1ce022ec9e67202c5e6195 | 1 | 2 | 1792.54036 | -| terp1zvh0t8yvlxhkg9udxy67m2z9jt2lvnwsv0rp3q | 0x132ef59c8cf9af64178d3135eda84592d5f64dd0 | 1 | 2 | 1792.54036 | -| terp1rguzzrqdx2qmlpjdvfcvwrgs5mzpmvllnk05ml | 0x1a38210c0d3281bf864d6270c70d10a6c41db3ff | 1 | 2 | 1792.54036 | -| terp1j5m6dmwhlks6gjz4gwde3rdsnhyq3jyh48950z | 0x9537a6edd7fda1a44855439b988db09dc808c897 | 1 | 2 | 1792.54036 | -| terp1zkn458r4hjzyddjg0qexmkc9y92xskg6dl7u3p | 0x15a75a1c75bc8446b64878326ddb05215468591a | 1 | 2 | 1792.54036 | -| terp1jlvh9ny9qke945ltflcuc7zwnh6jk8tpslvc2j | 0x97d972cc8505b25ad3eb4ff1cc784e9df52b1d61 | 1 | 2 | 1792.54036 | -| terp13l9tnvv2cfnjd3audkqjlgnfzfxcclq3ztmgx9 | 0x8fcab9b18ac26726c7bc6d812fa269124d8c7c11 | 1 | 2 | 1792.54036 | -| terp1qpk4djkev2uhceeel7w7ynejj9vkgdnush4c0h | 0x006d56cad962b97c6739ff9de24f32915964367c | 1 | 2 | 1792.54036 | -| terp19ykwsmjfvp79j0cn6jtepftz4pd49el8ku40za | 0x292ce86e49607c593f13d49790a562a85b52e7e7 | 1 | 2 | 1792.54036 | -| terp1pr4mk9ruflly2tm8qqnn8es8wa786ckr7k0qcc | 0x08ebbb147c4ffe452f67002733e607777c7d62c3 | 1 | 2 | 1792.54036 | -| terp1uk8yll4ydzsdhec7vpeyhqw5apasn3382g5957 | 0xe58e4ffea468a0dbe71e60724b81d4e87b09c627 | 1 | 2 | 1792.54036 | -| terp18hsdzcl43eymdl4rzp75s763dppegftzvfng6h | 0x3de0d163f58e49b6fea3107d487b516843942562 | 1 | 2 | 1792.54036 | -| terp1qu2u84m6vd6esur6unpw7ta5v26jzwsvetwk6j | 0x0715c3d77a637598707ae4c2ef2fb462b5213a0c | 1 | 2 | 1792.54036 | -| terp1jxk32t2ejely0cmshkjfd7r757m69az33z6ljq | 0x91ad152d59967e47e370bda496f87ea7b7a2f451 | 1 | 2 | 1792.54036 | -| terp132hh3xl3jrzx7v6kg8myvzz8hqyfrxl7vpwq3p | 0x8aaf789bf190c46f335641f6460847b808919bfe | 1 | 2 | 1792.54036 | -| terp1mm2ytcd33xppnjsa5fvxelgw774q35ttrcasa2 | 0xded445e1b1898219ca1da2586cfd0ef7aa08d16b | 1 | 2 | 1792.54036 | -| terp19qtkqcpyunrcxe9zc7h286thykuc6eh93x439u | 0x2817606024e4c78364a2c7aea3e97725b98d66e5 | 1 | 2 | 1792.54036 | -| terp1t7ra2m9jjguy4drfhw4zwan3s9qyclq5z5v200 | 0x5f87d56cb292384ab469bbaa27767181404c7c14 | 1 | 2 | 1792.54036 | -| terp1tfl26yr4hqchf0dvzvpu3plx5rvklv7rp8c2y2 | 0x5a7ead1075b83174bdac1303c887e6a0d96fb3c3 | 1 | 2 | 1792.54036 | -| terp16nyph3r3ws76pal9p5ytqpt324fchlhfhd3cet | 0xd4c81bc471743da0f7e50d08b0057155538bfee9 | 1 | 2 | 1792.54036 | -| terp1qdr6ugkz4v58ta53xvtz4vnkdysf8n8rzwnu2n | 0x0347ae22c2ab2875f69133162ab276692093cce3 | 1 | 2 | 1792.54036 | -| terp14dw5dldr5g4eacx84q98saa2a66u3kys7hq0vk | 0xab5d46fda3a22b9ee0c7a80a7877aaeeb5c8d890 | 1 | 2 | 1792.54036 | -| terp175yv90nv3d03pfh2gcmnxtkfuvns5m7shuv5hn | 0xf508c2be6c8b5f10a6ea4637332ec9e3270a6fd0 | 1 | 2 | 1792.54036 | -| terp13mr8d3m6hcfg5vkf8vksm3x0hds8w5zx0qfsxe | 0x8ec676c77abe128a32c93b2d0dc4cfbb60775046 | 1 | 2 | 1792.54036 | -| terp1hmenmyxjmgqny3dn0szfhp47l4uw7n4anymgjd | 0xbef33d90d2da013245b37c049b86befd78ef4ebd | 1 | 2 | 1792.54036 | -| terp147qzs2q8zlkjnh9ca5q6nuk66fuz97f9hsurgj | 0xaf8028280717ed29dcb8ed01a9f2dad27822f925 | 1 | 2 | 1792.54036 | -| terp1d3jj243e8s0s6kwtcpdyr4g9xvayqknvps6n9h | 0x6c652556393c1f0d59cbc05a41d505333a405a6c | 1 | 2 | 1792.54036 | -| terp1my8hjgazesxclyz0cg2znpzsf9x7dzup79qgxf | 0xd90f7923a2cc0d8f904fc214298450494de68b81 | 1 | 2 | 1792.54036 | -| terp1502h6x3ywz7723azzmxxwjdgdszd6heehvukc7 | 0xa3d57d1a2470bde547a216cc6749a86c04dd5f39 | 1 | 2 | 1792.54036 | -| terp1s5u8llhq08dfurwlrt0sxuhw9cwf2twl4xh7hf | 0x85387ffee079da9e0ddf1adf0372ee2e1c952ddf | 1 | 2 | 1792.54036 | -| terp1nuj64dtxmyq8dp9cuftf73kt4lrpt3gn7wur57 | 0x9f25aab566d9007684b8e2569f46cbafc615c513 | 1 | 2 | 1792.54036 | -| terp1ytrwjggauuvgur69g2e7kxg4hpx2wkjyru7vgj | 0x22c6e9211de7188e0f4542b3eb1915b84ca75a44 | 1 | 2 | 1792.54036 | -| terp1n20e7l0cmfg443jq7p0czv06d90jevphvd2sjv | 0x9a9f9f7df8da515ac640f05f8131fa695f2cb037 | 1 | 2 | 1792.54036 | -| terp1py9dwklp34ruu3fxreuhm0ptmtqnnmsdtc9enc | 0x090ad75be18d47ce45261e797dbc2bdac139ee0d | 1 | 2 | 1792.54036 | -| terp1nrp8shhauy9vsazprgvc0dqa9zxpr9phn27ny8 | 0x98c2785efde10ac874411a1987b41d288c119437 | 1 | 2 | 1792.54036 | -| terp1n96a4nnus9gjykkq6a4m9lpvdug2swkyz6r6vf | 0x9975dace7c8151225ac0d76bb2fc2c6f10a83ac4 | 1 | 2 | 1792.54036 | -| terp1qqfpvazu275qlqpasnnsavhvrt86y9rgwtzkvq | 0x001216745c57a80f803d84e70eb2ec1acfa21468 | 1 | 2 | 1792.54036 | -| terp1nqngjjp83ctg64lrgz0y9wwl49ls67hdg99mdx | 0x98268948278e168d57e3409e42b9dfa97f0d7aed | 1 | 2 | 1792.54036 | -| terp1huvqre5p7yaxja3s5djrjmagad93np7asejg3k | 0xbf1801e681f13a697630a364396fa8eb4b1987dd | 1 | 2 | 1792.54036 | -| terp1qwxzwk3ktdalsnautjrp2esejs7lrsfrk7l7zx | 0x038c275a365b7bf84fbc5c86156619943df1c123 | 1 | 2 | 1792.54036 | -| terp10jqp432vqvezpmygmgxahhqcycvef98lm9xfvp | 0x7c801ac54c033220ec88da0ddbdc1826199494ff | 1 | 2 | 1792.54036 | -| terp10kph35vfsv0jtcvyvgdpespxljvln3yvh0es60 | 0x7d8378d189831f25e184621a1cc026fc99f9c48c | 1 | 2 | 1792.54036 | -| terp1egew4zlrnq2ustmhp2xyxj2lncvr0ngdwluj5s | 0xca32ea8be39815c82f770a8c43495f9e1837cd0d | 1 | 2 | 1792.54036 | -| terp1xrk4gfeqru3rf37vul0uzjuty3kc6n0gqvnhqd | 0x30ed5427201f2234c7cce7dfc14b8b246d8d4de8 | 1 | 2 | 1792.54036 | -| terp1c2237g0jf6cenwpqujagasct96rwrdc4un9qd7 | 0xc2951f21f24eb199b820e4ba8ec30b2e86e1b715 | 1 | 2 | 1792.54036 | -| terp17fcleflj39ky8kcz29nkckluv8nw2yzzllnxge | 0xf271fca7f2896c43db0251676c5bfc61e6e51042 | 1 | 2 | 1792.54036 | -| terp1ah4zgvz5g5lllz8eumxx9dwy6kkkv3vhdwpu5n | 0xedea243054453fff88f9e6cc62b5c4d5ad664597 | 1 | 2 | 1792.54036 | -| terp1u4msv23uvwcpf3rc7u5wkwjdq2v6fh3j5nmtas | 0xe577062a3c63b014c478f728eb3a4d0299a4de32 | 1 | 2 | 1792.54036 | -| terp1e6zlyrlqgplq9zjcqvhq7rnt3vsdrxn25ks7mm | 0xce85f20fe0407e028a58032e0f0e6b8b20d19a6a | 1 | 2 | 1792.54036 | -| terp1su4wge2f6qtyl2ufqjyhhu2p7e265a7r9cu9mt | 0x872ae46549d0164fab8904897bf141f655aa77c3 | 1 | 2 | 1792.54036 | -| terp1hzdwjk0g7gzljstvw4tlarsq6v3utuwqgqd0c6 | 0xb89ae959e8f205f9416c7557fe8e00d323c5f1c0 | 1 | 2 | 1792.54036 | -| terp1nmktwql3z4kx2vpze6p0x9c4pq7e8nmkd2zehk | 0x9eecb703f1156c653022ce82f31715083d93cf76 | 1 | 2 | 1792.54036 | -| terp1ezmjknevvp2rs2znlmcg40n75myvrqtke8d0ze | 0xc8b72b4f2c6054382853fef08abe7ea6c8c18176 | 1 | 2 | 1792.54036 | -| terp19ympqnstehe3f3twd73sskl8cclmr4s39ftuql | 0x2936104e0bcdf314c56e6fa3085be7c63fb1d611 | 1 | 2 | 1792.54036 | -| terp1a5aym72hrpaka70k3as2mppxnzzeep006e3zyg | 0xed3a4df957187b6ef9f68f60ad842698859c85ef | 1 | 2 | 1792.54036 | -| terp18f85wdjc24tue0d9ujzyulrndgncy0702mp4ls | 0x3a4f4736585557ccbda5e4844e7c736a27823fcf | 1 | 2 | 1792.54036 | -| terp1getp8mj9wmp5w4jgrjw769cxy0fary0tv43aky | 0x465613ee4576c34756481c9ded170623d3d191eb | 1 | 2 | 1792.54036 | -| terp1c4xky0jv6eezzxw5y4hma9tywqghcyuu749fr8 | 0xc54d623e4cd6722119d4256fbe956470117c139c | 1 | 2 | 1792.54036 | -| terp1r0y8gcnve829eq9z2amqlhfsjq295smsyp6457 | 0x1bc874626cc9d45c80a257760fdd3090145a4370 | 1 | 2 | 1792.54036 | -| terp1urdqgdcw69jqndd5ccmhe532ndlwf54zsjdwk6 | 0xe0da04370ed16409b5b4c6377cd22a9b7ee4d2a2 | 1 | 2 | 1792.54036 | -| terp19ga62cpqd4fqk2y0wx0l6g7frzgnvwfd66mj55 | 0x2a3ba560206d520b288f719ffd23c9189136392d | 1 | 2 | 1792.54036 | -| terp1h2pf78x30n3q432nh9u9m2s79e67a4mx5rdpap | 0xba829f1cd17ce20ac553b9785daa1e2e75eed766 | 1 | 2 | 1792.54036 | -| terp1x70q4pavktnswtj57hadl6fdjcv6tkjurd7vll | 0x379e0a87acb2e7072e54f5fadfe92d9619a5da5c | 1 | 2 | 1792.54036 | -| terp10rkdundn48acqvumlk09nccd3xgt9rl0uwkvyj | 0x78ecde4db3a9fb80339bfd9e59e30d8990b28fef | 1 | 2 | 1792.54036 | -| terp137d7gvg0n2asukzre33k8yyvnvqal6elvsez39 | 0x8f9be4310f9abb0e5843cc6363908c9b01dfeb3f | 1 | 2 | 1792.54036 | -| terp18dn7tlcr2n0shw6vzjwzszegsmqd4adnejtf5c | 0x3b67e5ff0354df0bbb4c149c280b2886c0daf5b3 | 1 | 2 | 1792.54036 | -| terp12l83v3qqfkgd0c954utdlacl9zylj7hqv4d85d | 0x57cf1644004d90d7e0b4af16dff71f2889f97ae0 | 1 | 2 | 1792.54036 | -| terp1fwtmt7rg4x8f3rfc82jempsrw3l2rfl3uagnh7 | 0x4b97b5f868a98e988d383aa59d8603747ea1a7f1 | 1 | 2 | 1792.54036 | -| terp16u5x68ttuuasjkuchunz5s7u5r788lpa839dtd | 0xd7286d1d6be73b095b98bf262a43dca0fc73fc3d | 1 | 2 | 1792.54036 | -| terp12tc7xysd9xdla07qtd79zaz7s42hq4fd6msgzf | 0x52f1e3120d299bfebfc05b7c51745e855570552d | 1 | 2 | 1792.54036 | -| terp16l4mgg086qpw4l299svvnk6gd0qta4xshzmmfj | 0xd7ebb421e7d002eafd452c18c9db486bc0bed4d0 | 1 | 2 | 1792.54036 | -| terp1y7lfpqk6g6autfmht2p08fwcxetc5c56j5mqmc | 0x27be9082da46bbc5a7775a82f3a5d836578a629a | 1 | 2 | 1792.54036 | -| terp1ky98ek4r860jkshwzd6j60fex33a7fkz2pag8t | 0xb10a7cdaa33e9f2b42ee13752d3d393463df26c2 | 1 | 2 | 1792.54036 | -| terp1fpnyr0y2t69yzsqkhsu4v6n5ly2qg78m7n64lw | 0x486641bc8a5e8a414016bc39566a74f9140478fb | 1 | 2 | 1792.54036 | -| terp1wmswmkacsgpljkd5xcfvk8uwnenp7qmdlllr3q | 0x76e0eddbb88203f959b43612cb1f8e9e661f036d | 1 | 2 | 1792.54036 | -| terp10um4cukt0czrgtgy0cvpnzqce6h7x3dt6v4tyh | 0x7f375c72cb7e04342d047e18198818ceafe345ab | 1 | 2 | 1792.54036 | -| terp1eu60xfhlyqtvnt58hta806ea7nua5xqrfzz5xd | 0xcf34f326ff2016c9ae87bafa77eb3df4f9da1803 | 1 | 2 | 1792.54036 | -| terp1jph5acevgqnrqdnzg26f934zskww8z7nldytwn | 0x906f4ee32c402630366242b492c6a2859ce38bd3 | 1 | 2 | 1792.54036 | -| terp1wh29ysmkyxcqxq3ersurelrnhkc74nqc7lduaq | 0x75d452437621b00302391c383cfc73bdb1eacc18 | 1 | 2 | 1792.54036 | -| terp1x9shwk23sye7maf2fwyjkkwmjp4fe2g05x8p8d | 0x31617759518133edf52a4b892b59db906a9ca90f | 1 | 2 | 1792.54036 | -| terp1vmfc0p5wyw6tsvz4v9fngdjt6e3f8clsvgql9s | 0x66d387868e23b4b83055615334364bd66293e3f0 | 1 | 2 | 1792.54036 | -| terp10p4xzt34ys7yshtk3hnfvc2p38llf9dhg5hppv | 0x786a612e35243c485d768de696614189fff495b7 | 1 | 2 | 1792.54036 | -| terp1e88hhqq4n2ct8lrvrefegu7q73wkqvndj8wz3w | 0xc9cf7b80159ab0b3fc6c1e539473c0f45d60326d | 1 | 2 | 1792.54036 | -| terp12gu0zq3d3fqdgdfnp24sfeskawks32sawlra25 | 0x5238f1022d8a40d435330aab04e616ebad08aa1d | 1 | 2 | 1792.54036 | -| terp1eykjqfr63vswvsxn89pgj69j2q0908rm8aq4x4 | 0xc92d20247a8b20e640d339428968b2501e579c7b | 1 | 2 | 1792.54036 | -| terp1rh2u83ts5vscuzs3s5vme4evdrpsdh4vnr2l7v | 0x1dd5c3c570a3218e0a118519bcd72c68c306deac | 1 | 2 | 1792.54036 | -| terp15k077av4ll954c07t375mf0zlprjajkhtww66n | 0xa59fef7595ffcb4ae1fe5c7d4da5e2f8472ecad7 | 1 | 2 | 1792.54036 | -| terp16t0csm9c80jzacacdr4a73vjdtv8cgnxcrawz6 | 0xd2df886cb83be42ee3b868ebdf45926ad87c2266 | 1 | 2 | 1792.54036 | -| terp10ge37c8l0mdfs4626svkyjv3lag0ww8r2hgsj8 | 0x7a331f60ff7eda98574ad419624991ff50f738e3 | 1 | 2 | 1792.54036 | -| terp16v6xfsvvtaw5tuh075atfw9479a83rpramqvee | 0xd33464c18c5f5d45f2eff53ab4b8b5f17a788c23 | 1 | 2 | 1792.54036 | -| terp1vvr2cm7zfzhdcepd69px4wzlfz5atr48s4qpc4 | 0x6306ac6fc248aedc642dd1426ab85f48a9d58ea7 | 1 | 2 | 1792.54036 | -| terp1afqagydqdq7umva2h8l85mr4fuz695wcjpzd33 | 0xea41d411a0683dcdb3aab9fe7a6c754f05a2d1d8 | 1 | 2 | 1792.54036 | -| terp1wuy98fwtyvs3lx4geu3llt5frf0ghnkrxsncwa | 0x770853a5cb23211f9aa8cf23ffae891a5e8bcec3 | 1 | 2 | 1792.54036 | -| terp1lv6rdmy0rhux2lkjqrjytrnr5gmynvtjfddtna | 0xfb3436ec8f1df8657ed200e4458e63a23649b172 | 1 | 2 | 1792.54036 | -| terp1eymhkktu53a9gwruz8pm7ft7yfn893zyqfql86 | 0xc9377b597ca47a54387c11c3bf257e226672c444 | 1 | 2 | 1792.54036 | -| terp187vhgrzk6eshl3nx6nh7edflj5knu8pgnqtdr6 | 0x3f99740c56d6617fc666d4efecb53f952d3e1c28 | 1 | 2 | 1792.54036 | -| terp15x5dzygc75ezkkce6jjtt2d7zuetye7w5w4z2g | 0xa1a8d11118f5322b5b19d4a4b5a9be1732b267ce | 1 | 2 | 1792.54036 | -| terp1sc9zsl6f3nhw7ln5682e9k2c6d7xs4ywly5c9j | 0x860a287f498ceeef7e74d1d592d958d37c68548e | 1 | 2 | 1792.54036 | -| terp1z2v7h0fhkjzaes0u9mrjqecuh9lktgrfugqljh | 0x1299ebbd37b485dcc1fc2ec720671cb97f65a069 | 1 | 2 | 1792.54036 | -| terp1kxswsmc28ay60wvz9vdgf6fc9kl6hfftknz54f | 0xb1a0e86f0a3f49a7b9822b1a84e9382dbfaba52b | 1 | 2 | 1792.54036 | -| terp140277mnangejf3udcfzgtrqn474xs7hp02s26q | 0xabd5ef6e7d9a3324c78dc244858c13afaa687ae1 | 1 | 2 | 1792.54036 | -| terp138hx347wvnet0nlen0u7jmgz45dpy6vjg5umz5 | 0x89ee68d7ce64f2b7cff99bf9e96d02ad1a126992 | 1 | 2 | 1792.54036 | -| terp1hx2v6kjkczavcd677g67qzpj67qdmppd904dqg | 0xb994cd5a56c0bacc375ef235e00832d780dd842d | 1 | 2 | 1792.54036 | -| terp1e20gfrw4dwa628wf8f44agq6zk9906jkq406ff | 0xca9e848dd56bbba51dc93a6b5ea01a158a57ea56 | 1 | 2 | 1792.54036 | -| terp14sjp72h0jg8zl2ux099a87x6r5dukrdssady68 | 0xac241f2aef920e2fab86794bd3f8da1d1bcb0db0 | 1 | 2 | 1792.54036 | -| terp166g3hrl766usqcq3wr9qh3ejqmwmuur5nmsjx5 | 0xd6911b8ffed6b900601170ca0bc73206ddbe7074 | 1 | 2 | 1792.54036 | -| terp1tya7478v8ngc87svwqcrfx2zzje6ll3yjffh84 | 0x593beaf8ec3cd183fa0c703034994214b3affe24 | 1 | 2 | 1792.54036 | -| terp1yavqnzc6fwaa5dye7ja9dra4e4x3rlvd0vvjkk | 0x2758098b1a4bbbda3499f4ba568fb5cd4d11fd8d | 1 | 2 | 1792.54036 | -| terp128zp0enr0egz6xge0m03fkjkukcrlz9wqe8096 | 0x51c417e6637e502d19197edf14da56e5b03f88ae | 1 | 2 | 1792.54036 | -| terp1vqk9ux3usqj0xnuuhau8k0wyumfvukmg8c66k7 | 0x602c5e1a3c8024f34f9cbf787b3dc4e6d2ce5b68 | 1 | 2 | 1792.54036 | -| terp19jucryfz0mqup0q4k4vsmx8tj7w6kf0ezmllrt | 0x2cb98191227ec1c0bc15b5590d98eb979dab25f9 | 1 | 2 | 1792.54036 | -| terp1e6qz54pk2rxkeaaxaynjlkz4tw2ahgggaas8lf | 0xce802a543650cd6cf7a6e9272fd8555b95dba108 | 1 | 2 | 1792.54036 | -| terp1t0shvsmlssyzpyel0rswgne22v099an2ackhrn | 0x5be176437f840820933f78e0e44f2a531e52f66a | 1 | 2 | 1792.54036 | -| terp1v234kjreh27t93c64jya7tmtu8j8lum2pqnu4e | 0x62a35b4879babcb2c71aac89df2f6be1e47ff36a | 1 | 2 | 1792.54036 | -| terp1dcvzja6ust2ptlrx60lqu439utmv8hugvc3zhm | 0x6e1829775c82d415fc66d3fe0e5625e2f6c3df88 | 1 | 2 | 1792.54036 | -| terp1tchg8swehgjqn63g9z7y7wrzm7hexmj3jrtstn | 0x5e2e83c1d9ba2409ea2828bc4f3862dfaf936e51 | 1 | 2 | 1792.54036 | -| terp1ndmes2v729tvpdnzw6h0ylfmjyhpd09rs4g9dy | 0x9b7798299e5156c0b66276aef27d3b912e16bca3 | 1 | 2 | 1792.54036 | -| terp16h764fk79f9xkqvfmf6090pjfujgxjnyd4g0ff | 0xd5fdaaa6de2a4a6b0189da74f2bc324f24834a64 | 1 | 2 | 1792.54036 | -| terp18nc8u9h7d6pa49v0x30kmw7qj44dr3a3a2z6ll | 0x3cf07e16fe6e83da958f345f6dbbc0956ad1c7b1 | 1 | 2 | 1792.54036 | -| terp1xtnlcqmv6adq8kku23n358jrthcvc3a9nlx3d0 | 0x32e7fc036cd75a03dadc54671a1e435df0cc47a5 | 1 | 2 | 1792.54036 | -| terp1q8j98pxjpn7ad07qhzfqdaq5adj5eg8xuf66aw | 0x01e45384d20cfdd6bfc0b89206f414eb654ca0e6 | 1 | 2 | 1792.54036 | -| terp1m3n8elfxw3azcq6qq0ztfgn2ped89p8upk90as | 0xdc667cfd26747a2c034003c4b4a26a0e5a7284fc | 1 | 2 | 1792.54036 | -| terp17rjlhmdls0kuqwejrpsfwwky3nzn8svglc72zv | 0xf0e5fbedbf83edc03b321860973ac48cc533c188 | 1 | 2 | 1792.54036 | -| terp10390z5ngj8jmtfu47u7x96ykfmhes8r2v2xqrn | 0x7c4af1526891e5b5a795f73c62e8964eef981c6a | 1 | 2 | 1792.54036 | -| terp13w98u0c5ctr5l8y940w53jjpv5l6mvpfl8j2fl | 0x8b8a7e3f14c2c74f9c85abdd48ca41653fadb029 | 1 | 2 | 1792.54036 | -| terp1lhrleed4puvjyyy5k4m29d8s9ejhpuhhf395ch | 0xfdc7fce5b50f19221094b576a2b4f02e6570f2f7 | 1 | 2 | 1792.54036 | -| terp1h6vgfnq7rf0t3r4q5u2jgdsckk8sa9n60uuaxy | 0xbe9884cc1e1a5eb88ea0a715243618b58f0e967a | 1 | 2 | 1792.54036 | -| terp1afpadj4d3wnue437l6dgtd2ywuwqst8e95sdl6 | 0xea43d6caad8ba7ccd63efe9a85b544771c082cf9 | 1 | 2 | 1792.54036 | -| terp13tsw3ktycc8d34xy9859v5ze5axsqm2ahasv5h | 0x8ae0e8d964c60ed8d4c429e8565059a74d006d5d | 1 | 2 | 1792.54036 | -| terp1ahefp7rcc5444wj20dxx2y5wmvnxcue5mngtae | 0xedf290f878c52b5aba4a7b4c65128edb266c7334 | 1 | 2 | 1792.54036 | -| terp1zy8erlt0tt5y9jdeel99gknmhh45s9a3r8a4h6 | 0x110f91fd6f5ae842c9b9cfca545a7bbdeb4817b1 | 1 | 2 | 1792.54036 | -| terp1zhjglxy66e9am6p5apgke09c94g3sgy3kw0dhx | 0x15e48f989ad64bdde834e8516cbcb82d51182091 | 1 | 2 | 1792.54036 | -| terp1emqa0lv5t4s8js7hxmm2hn8w9lzycl6d8cqazh | 0xcec1d7fd945d607943d736f6abccee2fc44c7f4d | 1 | 2 | 1792.54036 | -| terp1tk0yjpz8g95gfver4dwj9l5ml6k3l9m00agv26 | 0x5d9e490447416884b323ab5d22fe9bfead1f976f | 1 | 2 | 1792.54036 | -| terp1k2zjrztcha8fggp7w8mthfh4pmjymyahmyfwfp | 0xb285218978bf4e94203e71f6bba6f50ee44d93b7 | 1 | 2 | 1792.54036 | -| terp19djwexqdn0r8utfeed2astysj8xx0u6zd35nhp | 0x2b64ec980d9bc67e2d39cb55d82c9091cc67f342 | 1 | 2 | 1792.54036 | -| terp1s00nnpms5txefgknkt22h7vv49pkyfuujp37w6 | 0x83df398770a2cd94a2d3b2d4abf98ca94362279c | 1 | 2 | 1792.54036 | -| terp1wr3n5jwes080uh0xqew56mcrqsgy5u5jweh44m | 0x70e33a49d983cefe5de6065d4d6f0304104a7292 | 1 | 2 | 1792.54036 | -| terp167wek3zcey87qfj2fal96ywtduatns7grlws35 | 0xd79d9b4458c90fe0264a4f7e5d11cb6f3ab9c3c8 | 1 | 2 | 1792.54036 | -| terp1gmyy0s8dhpg9skjrlfyd0m80sahw263p7qtlm6 | 0x46c847c0edb850585a43fa48d7ecef876ee56a21 | 1 | 2 | 1792.54036 | -| terp1qvqnwh4fs294yh9z4xlln9823ls6wfp8kpvd25 | 0x0301375ea9828b525ca2a9bff994ea8fe1a72427 | 1 | 2 | 1792.54036 | -| terp1qerecjdykwjwmgyzj8pnw2vp8amgkcwryva7vp | 0x06479c49a4b3a4eda08291c33729813f768b61c3 | 1 | 2 | 1792.54036 | -| terp16m66t05ka5wpgyayqcrq98jvrhq2tggux8ltm5 | 0xd6f5a5be96ed1c1413a40606029e4c1dc0a5a11c | 1 | 2 | 1792.54036 | -| terp1j9p2jxxlvgy2uxlxtc47p65a44sxw927vvj55r | 0x9142a918df6208ae1be65e2be0ea9dad6067155e | 1 | 2 | 1792.54036 | -| terp1gcpphtyhk43ufaclqza3pkv5spsyrl4h3pcdvs | 0x46021bac97b563c4f71f00bb10d994806041feb7 | 1 | 2 | 1792.54036 | -| terp10ml85l5ef90tskz7n69stez3flh4tmpgzr8mtt | 0x7efe7a7e99495eb8585e9e8b05e4514fef55ec28 | 1 | 2 | 1792.54036 | -| terp1kh3525hn9w5jymycwa5m7e2455u9zzaggv3ugz | 0xb5e34552f32ba9226c987769bf6555a538510ba8 | 1 | 2 | 1792.54036 | -| terp1fd4cj2mg0rnp7sssv6splspaqeyz9ruz92gwc0 | 0x4b6b892b6878e61f421066a01fc03d0648228f82 | 1 | 2 | 1792.54036 | -| terp10ralww5mqhla2s0nge28vf0rvz9ylmca4udytz | 0x78fbf73a9b05ffd541f346547625e3608a4fef1d | 1 | 2 | 1792.54036 | -| terp1qrmjaxfrugnakq4c2vycxcqtfc9q0mdgst0lvn | 0x00f72e9923e227db02b8530983600b4e0a07eda8 | 1 | 2 | 1792.54036 | -| terp16mkl0jy6jmezngzfdjwt3sux4tpsq9x6ygn9w7 | 0xd6edf7c89a96f229a0496c9cb8c386aac30014da | 1 | 2 | 1792.54036 | -| terp14hvnkxkdlglgvk73uey4rqhf7xk9es6mdg8gu5 | 0xadd93b1acdfa3e865bd1e6495182e9f1ac5cc35b | 1 | 2 | 1792.54036 | -| terp1wguk9xg2c5487pga49vsh3sa8583hckrera924 | 0x723962990ac52a7f051da9590bc61d3d0f1be2c3 | 1 | 2 | 1792.54036 | -| terp1j2exw4p6d2gmkvujzc00ups6e5uthwadc025v3 | 0x92b267543a6a91bb3392161efe061acd38bbbbad | 1 | 2 | 1792.54036 | -| terp1pce0m69puur5fqlqsjrw5sj6xy4gckuluqael3 | 0x0e32fde8a1e7074483e08486ea425a312a8c5b9f | 1 | 2 | 1792.54036 | -| terp1pqnxvd08y8llydvpchzk0856qc2gnk766t0vug | 0x08266635e721fff23581c5c5679e9a061489dbda | 1 | 2 | 1792.54036 | -| terp1j3l5jsmfhrpda43y7ssqgthhx302exd28qmhz9 | 0x947f494369b8c2ded624f420042ef7345eac99aa | 1 | 2 | 1792.54036 | -| terp1zlgemgx6e3fz4jrw2hdhynx8qd0zx4wexr8lz4 | 0x17d19da0dacc522ac86e55db724cc7035e2355d9 | 1 | 2 | 1792.54036 | -| terp1upx9z6fg54f3m9wx8p32gmdsmp8rgv84t40rtc | 0xe04c516928a5531d95c63862a46db0d84e3430f5 | 1 | 2 | 1792.54036 | -| terp192254xj7spkaxf7yg40j03e3zfe6wvw8k9f2n4 | 0x2a954a9a5e806dd327c4455f27c7311273a731c7 | 1 | 2 | 1792.54036 | -| terp1dluf4jps0hn46se0nz0gn27zhww6r4c8w2gumy | 0x6ff89ac8307de75d432f989e89abc2bb9da1d707 | 1 | 2 | 1792.54036 | -| terp14e8flm5k2a4jnfsae8k0duq8ea8uxuhaqpljzv | 0xae4e9fee96576b29a61dc9ecf6f007cf4fc372fd | 1 | 2 | 1792.54036 | -| terp1kp5u4n3xyh0fspu5rk7w9299yxjw2gy0k6qy4y | 0xb069cace2625de9807941dbce2a8a521a4e5208f | 1 | 2 | 1792.54036 | -| terp1n8mrghdwp2nylrd6htr8nfq6pflah79a8sngza | 0x99f6345dae0aa64f8dbabac679a41a0a7fdbf8bd | 1 | 2 | 1792.54036 | -| terp16zu2t62gynntx83qdmqpqjaucmcsnffdcwmj9k | 0xd0b8a5e94824e6b31e206ec0104bbcc6f109a52d | 1 | 2 | 1792.54036 | -| terp1v7agamkaqteg6w7fhnk5zkrk6xfhwye78gxa7y | 0x67ba8eeedd02f28d3bc9bced415876d19377133e | 1 | 2 | 1792.54036 | -| terp14q0xju5sunevd9kxxwqm4yqjl9q0y0s9t3hned | 0xa81e697290e4f2c696c63381ba9012f940f23e05 | 1 | 2 | 1792.54036 | -| terp1jxlzyfuhw2yszqz8d7gwkc0jsf22gzdfgp4hg5 | 0x91be22279772890100476f90eb61f28254a409a9 | 1 | 2 | 1792.54036 | -| terp1samhgfs7m3w8ktstn6p8k0d2acpxauwc5vxhej | 0x877774261edc5c7b2e0b9e827b3daaee026ef1d8 | 1 | 2 | 1792.54036 | -| terp1852ga57gmv6ljtyu6y9p4f3fhns2wx8jj3adys | 0x3d148ed3c8db35f92c9cd10a1aa629bce0a718f2 | 1 | 2 | 1792.54036 | -| terp1kd4a0l0dulzm83zw49k8x6tdzerqshh42uap8g | 0xb36bd7fdede7c5b3c44ea96c73696d1646085ef5 | 1 | 2 | 1792.54036 | -| terp19efyfug7qmnql4hm5tqfvfctlaxt73nvtzxry7 | 0x2e5244f11e06e60fd6fba2c096270bff4cbf466c | 1 | 2 | 1792.54036 | -| terp1nqpaz0c9eamar7zd9lwznqkc0l9fzse74jqwqm | 0x9803d13f05cf77d1f84d2fdc2982d87fca91433e | 1 | 2 | 1792.54036 | -| terp1q6t4tgce2dmt944qtgl2j4xltv0ydvqtc7ehmk | 0x069755a3195376b2d6a05a3ea954df5b1e46b00b | 1 | 2 | 1792.54036 | -| terp1974syjwx5cxhz5f47yh9rhnuzvxzv2yaeq9sw6 | 0x2fab0249c6a60d715135f12e51de7c130c26289d | 1 | 2 | 1792.54036 | -| terp1nrpnmsxd7c4ydgd22h2jgj22sj9phju4xt09m7 | 0x98c33dc0cdf62a46a1aa55d524494a848a1bcb95 | 1 | 2 | 1792.54036 | -| terp12m7379wjtqd3d7wz9vjaxphlpsycrge6yuuv7k | 0x56fd1f15d2581b16f9c22b25d306ff0c0981a33a | 1 | 2 | 1792.54036 | -| terp1wtxdps8earmeek3g5zzt5dup5sfwe7vc97fdwx | 0x72ccd0c0f9e8f79cda28a084ba3781a412ecf998 | 1 | 2 | 1792.54036 | -| terp1z9lgdtxej54jfmauy8m24fkp5709u6w98mwz6x | 0x117e86acd9952b24efbc21f6aaa6c1a79e5e69c5 | 1 | 2 | 1792.54036 | -| terp12mpjdq5mypatmjwm9vfcykuvczx242nxvacghs | 0x56c326829b207abdc9db2b13825b8cc08caaaa66 | 1 | 2 | 1792.54036 | -| terp1znjwnak9afmkhfwtncw8wjlpuaehmy0cu99zcg | 0x14e4e9f6c5ea776ba5cb9e1c774be1e7737d91f8 | 1 | 2 | 1792.54036 | -| terp17qcvk7zz8wj3ydacsmvm36r3fg2mypefx7c4q2 | 0xf030cb78423ba51237b886d9b8e8714a15b20729 | 1 | 2 | 1792.54036 | -| terp1antwhx7veyue2x05n9zn4hkq523wkqc86w2vjt | 0xecd6eb9bccc9399519f499453adec0a2a2eb0307 | 1 | 2 | 1792.54036 | -| terp1y738e87t253vwwqr04y3gdt3k0h59ngpw809wc | 0x27a27c9fcb5522c738037d49143571b3ef42cd01 | 1 | 2 | 1792.54036 | -| terp1gsuvpang8dwhwh8ef4z6gz7z4sznwsdfvsxqm4 | 0x4438c0f6683b5d775cf94d45a40bc2ac053741a9 | 1 | 2 | 1792.54036 | -| terp1t3gmxy2x89es6n7th3fh8fwthw66sy7mghw7ef | 0x5c51b3114639730d4fcbbc5373a5cbbbb5a813db | 1 | 2 | 1792.54036 | -| terp1s5szq8kx4vy25df8pm7u7294r2pxhnvhfa45pp | 0x8520201ec6ab08aa35270efdcf28b51a826bcd97 | 1 | 2 | 1792.54036 | -| terp196y5hr2gqx8xut4aqfwzmvslkx8y43kapuldgf | 0x2e894b8d48018e6e2ebd025c2db21fb18e4ac6dd | 1 | 2 | 1792.54036 | -| terp143jxlpw7m7rwa8dr802jewlqjta6zd9gc4jg5c | 0xac646f85dedf86ee9da33bd52cbbe092fba134a8 | 1 | 2 | 1792.54036 | -| terp1tjgnwvtck3mw3658nrejd9hy8vfngrwhd84vgu | 0x5c91373178b476e8ea8798f32696e43b13340dd7 | 1 | 2 | 1792.54036 | -| terp1h5090wfems3tv639m98a5g8du0umnqng43netq | 0xbd1e57b939dc22b66a25d94fda20ede3f9b98268 | 1 | 2 | 1792.54036 | -| terp1vejgq770jcpdzj2w5eje59wzwcvlspr78g8xxh | 0x6664807bcf9602d1494ea6659a15c27619f8047e | 1 | 2 | 1792.54036 | -| terp1cam50lgqhe9u47cxjt9zat59gkvx79k2yfw6ev | 0xc77747fd00be4bcafb0692ca2eae8545986f16ca | 1 | 2 | 1792.54036 | -| terp1zeuvwx63sa6gne6uxhr2lp4v5ehsmfu3j2n8ll | 0x1678c71b51877489e75c35c6af86aca66f0da791 | 1 | 2 | 1792.54036 | -| terp18lymq77k2zysy9s8kjtt56jhfl45xyd70e3tmk | 0x3fc9b07bd65089021607b496ba6a574feb4311be | 1 | 2 | 1792.54036 | -| terp163mx3de2cn7p0rlu6wh4chqdlty8wwpuzrs6lr | 0xd47668b72ac4fc178ffcd3af5c5c0dfac877383c | 1 | 2 | 1792.54036 | -| terp1a65fezzrazlt2mjprw6v43kmctvn0msazwef5l | 0xeea89c8843e8beb56e411bb4cac6dbc2d937ee1d | 1 | 2 | 1792.54036 | -| terp1xg2t4y90zsj848pjj0kufm36u6f7svrm22junh | 0x3214ba90af14247a9c3293edc4ee3ae693e8307b | 1 | 2 | 1792.54036 | -| terp1wx4l0xxqslh2clddwyv8am0cjd2ngfvj5nl00w | 0x71abf798c087eeac7dad71187eedf89355342592 | 1 | 2 | 1792.54036 | -| terp1lvjjzwjjqceu6r4uen28k0952y0rcpt2ev6jdu | 0xfb25213a520633cd0ebcccd47b3cb4511e3c056a | 1 | 2 | 1792.54036 | -| terp1rw7q4969duxgvdqtdyys82j7knn3ehsy5fca9x | 0x1bbc0a97456f0c86340b690903aa5eb4e71cde04 | 1 | 2 | 1792.54036 | -| terp10hakt2puw8jxr9wqd9rwqv4rwy0c93yw9n2lj8 | 0x7dfb65a83c71e46195c06946e032a3711f82c48e | 1 | 2 | 1792.54036 | -| terp1935wrg7vnwc5tauh448usvndpt06juz4grwp7u | 0x2c68e1a3cc9bb145f797ad4fc8326d0adfa97055 | 1 | 2 | 1792.54036 | -| terp1ynhpvpen8nh742aefst8f64efp5dk3a5232ma0 | 0x24ee1607333cefeaabb94c1674eab94868db47b4 | 1 | 2 | 1792.54036 | -| terp1nc4x2cefm7sguwc8f37r8c6j5jh8u8rhd44786 | 0x9e2a656329dfa08e3b074c7c33e352a4ae7e1c77 | 1 | 2 | 1792.54036 | -| terp1y8m4kmwffx2yae0839kt3s259hwv3aec4ltg6r | 0x21f75b6dc949944ee5e7896cb8c1542ddcc8f738 | 1 | 2 | 1792.54036 | -| terp1avsgy32npy4ewjwfxeenw7t5fhyxaqayk696q4 | 0xeb20824553092b9749c936733779744dc86e83a4 | 1 | 2 | 1792.54036 | -| terp10vdfeqara49h2fs5vej92mfywuk87tcg98xhfp | 0x7b1a9c83a3ed4b7526146664556d24772c7f2f08 | 1 | 2 | 1792.54036 | -| terp12xfs0pt9pudgwv42xzzx0jz50khj8m44sj0hf5 | 0x51930785650f1a8732aa308467c8547daf23eeb5 | 1 | 2 | 1792.54036 | -| terp1ynp699s26xpec3arkvsaqugmp9mr5j68hkk0c6 | 0x24c3a2960ad1839c47a3b321d0711b09763a4b47 | 1 | 2 | 1792.54036 | -| terp10s43ut0h3eyr7kzzgzdf53pzf0hm0puvzvuadk | 0x7c2b1e2df78e483f5842409a9a44224befb7878c | 1 | 2 | 1792.54036 | -| terp1306vsyuwptlzpagjjwj4qpdad2z3e9k0vx79m7 | 0x8bf4c8138e0afe20f51293a55005bd6a851c96cf | 1 | 2 | 1792.54036 | -| terp1xynsq6t5xv4dgvk77mpx20h5fpzxses42mjudt | 0x3127006974332ad432def6c2653ef44844686615 | 1 | 2 | 1792.54036 | -| terp1xhg6zdkpp5utr0u5aeg4d6p5eualu84edyx9nu | 0x35d1a136c10d38b1bf94ee5156e834cf3bfe1eb9 | 1 | 2 | 1792.54036 | -| terp16xnw3qea5mm7gdg5xjdn0klz29057q4j2t2008 | 0xd1a6e8833da6f7e43514349b37dbe2515f4f02b2 | 1 | 2 | 1792.54036 | -| terp1qthf93k5hk3duas9y26yrstr0jp83ywr9v0f8y | 0x02ee92c6d4bda2de760522b441c1637c827891c3 | 1 | 2 | 1792.54036 | -| terp1dc5nuxplvt9m3xyxj6ygwlzkr4lrxnz48e8dv3 | 0x6e293e183f62cbb898869688877c561d7e334c55 | 1 | 2 | 1792.54036 | -| terp1dxdz4ew28n0zldajed5lcuyf72uf8c7g0m78ey | 0x699a2ae5ca3cde2fb7b2cb69fc7089f2b893e3c8 | 1 | 2 | 1792.54036 | -| terp1xft8yxg5j67pgh47uhn543fd255mertcxxk5uw | 0x325672191496bc145ebee5e74ac52d5529bc8d78 | 1 | 2 | 1792.54036 | -| terp1gta32zvk3ccp7wxcmu3804n0gv3l5u5mwtw7vz | 0x42fb1509968e301f38d8df2277d66f4323fa729b | 1 | 2 | 1792.54036 | -| terp12vx2q9cfk7shleufu5e9uzz47fjaj8encgv4nl | 0x530ca01709b7a17fe789e5325e0855f265d91f33 | 1 | 2 | 1792.54036 | -| terp15ntrtfh5tlr0u958539l8re7pkljy8arjsw6se | 0xa4d635a6f45fc6fe1687a44bf38f3e0dbf221fa3 | 1 | 2 | 1792.54036 | -| terp1pzjgfppr2vfpdgd3cqpewev7vps7nxh2ppx8ah | 0x08a4848423531216a1b1c00397659e6061e99aea | 1 | 2 | 1792.54036 | -| terp1nenr94arlpl3a52h5hwhqp7euyrkd8pzguh65j | 0x9e6632d7a3f87f1ed157a5dd7007d9e107669c22 | 1 | 2 | 1792.54036 | -| terp16e06ua83pmjw23lcjte4x6s9cs3y5un3v5d3wd | 0xd65fae74f10ee4e547f892f3536a05c4224a7271 | 1 | 2 | 1792.54036 | -| terp1smvps8apryqqcskx7kg5sulnlh254evg7yqchd | 0x86d8181fa119000c42c6f5914873f3fdd54ae588 | 1 | 2 | 1792.54036 | -| terp1plauk3m4rv3f54gemjyu749df3x4j5wqq382n2 | 0x0ffbcb47751b229a5519dc89cf54ad4c4d5951c0 | 1 | 2 | 1792.54036 | -| terp1slkhj2rv3qphyulrpgf0awy964yqw6vytsj05f | 0x87ed79286c88037273e30a12feb885d548076984 | 1 | 2 | 1792.54036 | -| terp1czpzs6nrvlrqlcu8alhzsvrmrvvd4qhyekv8vk | 0xc082286a6367c60fe387efee28307b1b18da82e4 | 1 | 2 | 1792.54036 | -| terp1h8tw8258k3ylvrv56k5009essvdcecvpwtecx9 | 0xb9d6e3aa87b449f60d94d5a8f79730831b8ce181 | 1 | 2 | 1792.54036 | -| terp1x34raud4a2myycqxvcj2p7g85wxhm0cshrv632 | 0x346a3ef1b5eab64260066624a0f907a38d7dbf10 | 1 | 2 | 1792.54036 | -| terp12m2d5f5jytj2445n0jh7vr6wwx608876kuh5kd | 0x56d4da269222e4aad6937cafe60f4e71b4f39fda | 1 | 2 | 1792.54036 | -| terp1cktjl9lnr9d3cn5e9yqqw745d3wrj4rkltdffs | 0xc5972f97f3195b1c4e992900077ab46c5c395476 | 1 | 2 | 1792.54036 | -| terp1zxfw0ahzzz5kpazu3awpq3r4at9g9tedhx5lpy | 0x1192e7f6e210a960f45c8f5c104475eaca82af2d | 1 | 2 | 1792.54036 | -| terp173kd38cukw6d36m2nfmrh6vw2jkqe068eyz7ua | 0xf46cd89f1cb3b4d8eb6a9a763be98e54ac0cbf47 | 1 | 2 | 1792.54036 | -| terp1yxgpvg2zrllqw7v6unsx2mmadfsxyx9hqm2l46 | 0x21901621421ffe07799ae4e0656f7d6a606218b7 | 1 | 2 | 1792.54036 | -| terp1p0a8v8vkncmjhyvyyjaunxn9829klf84s8stmw | 0x0bfa761d969e372b918424bbc99a653a8b6fa4f5 | 1 | 2 | 1792.54036 | -| terp1mdeygs42r25h9dhj8d35j8xxkcqkprya432zg5 | 0xdb724442aa1aa972b6f23b63491cc6b601608c9d | 1 | 2 | 1792.54036 | -| terp1hq40ac6e7xc6ee9xdhedy8dmku0hr2rufu3rmy | 0xb82afee359f1b1ace4a66df2d21dbbb71f71a87c | 1 | 2 | 1792.54036 | -| terp10ekscesjffzeh72jnh9m26sdjrwvtpxmrwxyzs | 0x7e6d0c66124a459bf9529dcbb56a0d90dcc584db | 1 | 2 | 1792.54036 | -| terp1f27gly6lv7hwcpdhp5c708z5tpttfextewxfhv | 0x4abc8f935f67aeec05b70d31e79c545856b4e4cb | 1 | 2 | 1792.54036 | -| terp10kaqdnjpd3l8s3tsdfx5evs0e7w8pxqf3ruupr | 0x7dba06ce416c7e7845706a4d4cb20fcf9c709809 | 1 | 2 | 1792.54036 | -| terp1jeu0tfx948gg6th2r5tkpaulkl45yxtkrxhwst | 0x9678f5a4c5a9d08d2eea1d1760f79fb7eb421976 | 1 | 2 | 1792.54036 | -| terp13lpskhw5ru8k8xavp5aux5r0x79s2uz202xer2 | 0x8fc30b5dd41f0f639bac0d3bc3506f378b05704a | 1 | 2 | 1792.54036 | -| terp1ews6t9exrlpy5dtf59sudkq40xvm8g6zv74734 | 0xcba1a597261fc24a3569a161c6d8157999b3a342 | 1 | 2 | 1792.54036 | -| terp1p7chjqn574l8xs8dhhpl99npr5ymwmtcdtyrrt | 0x0fb1790274f57e7340edbdc3f296611d09b76d78 | 1 | 2 | 1792.54036 | -| terp1n9qctt3nynx3vvfu9xeanmqzenguq3wj3py4j8 | 0x994185ae3324cd16313c29b3d9ec02ccd1c045d2 | 1 | 2 | 1792.54036 | -| terp1arth85yza7epstv6wkvuf2pxlkdtl5ypf35l69 | 0xe8d773d082efb2182d9a7599c4a826fd9abfd081 | 1 | 2 | 1792.54036 | -| terp10r43avr8czfsqa7n24nezwmrtnw3y9e028008d | 0x78eb1eb067c0930077d35567913b635cdd12172f | 1 | 2 | 1792.54036 | -| terp1n9u3jp9u5s9vwt8m5pdy0mhs7f2c4cj8aemy7x | 0x99791904bca40ac72cfba05a47eef0f2558ae247 | 1 | 2 | 1792.54036 | -| terp1avluphaa3ygccrvphvvjj8mmh3jrl8tuuhgse6 | 0xeb3fc0dfbd89118c0d81bb19291f7bbc643f9d7c | 1 | 2 | 1792.54036 | -| terp1ucyr2js4k47wnm7x0lhgwa3lm2cxdg7tmjmukl | 0xe608354a15b57ce9efc67fee87763fdab066a3cb | 1 | 2 | 1792.54036 | -| terp1lkc20lscvv0u6zh5equ4n6pta8vnekqyyf9jmk | 0xfdb0a7fe18631fcd0af4c83959e82be9d93cd804 | 1 | 2 | 1792.54036 | -| terp1g8t5s6lqerltrc78x4sm0lfszd9nhmevs7eskz | 0x41d7486be0c8feb1e3c73561b7fd30134b3bef2c | 1 | 2 | 1792.54036 | -| terp1fh7x3xv5y6f70f3w88gker7tmrfg9z99r7s3yn | 0x4dfc6899942693e7a62e39d16c8fcbd8d28288a5 | 1 | 2 | 1792.54036 | -| terp1fznm9tgkft32czlvx34ke5s9uvty5k6c2egj88 | 0x48a7b2ad164ae2ac0bec346b6cd205e3164a5b58 | 1 | 2 | 1792.54036 | -| terp1u7ufr99z08ef87u4ydps8jtwwdkkajxgfamqrd | 0xe7b89194a279f293fb95234303c96e736d6ec8c8 | 1 | 2 | 1792.54036 | -| terp1rrepypgygg9mdy9ml0zc00lljfsh7gl33vpm8e | 0x18f2120504420bb690bbfbc587bfff92617f23f1 | 1 | 2 | 1792.54036 | -| terp1t2yyeyh4t460n3l2k9mp82f2knwclappu3vdun | 0x5a884c92f55d74f9c7eab17613a92ab4dd8ff421 | 1 | 2 | 1792.54036 | -| terp1nuj54xhqs6j6aus2v2wr9pwl3mlqc6ju6raxgr | 0x9f254a9ae086a5aef20a629c3285df8efe0c6a5c | 1 | 2 | 1792.54036 | -| terp1srtx986xf3u5y8kgvmz96qyjv3m9gxu84xdtn4 | 0x80d6629f464c79421ec866c45d00926476541b87 | 1 | 2 | 1792.54036 | -| terp1avfyl83q5schfg6gpzfzgcat2sakx860e4czfw | 0xeb124f9e20a43174a34808922463ab543b631f4f | 1 | 2 | 1792.54036 | -| terp1tzum0m5svu72tyf0wq5ahsf3hd883cmnrskad7 | 0x58b9b7ee90673ca5912f7029dbc131bb4e78e373 | 1 | 2 | 1792.54036 | -| terp1yruf4lcd3wlv937h8hmemqf3v5y5l45u2rj5ye | 0x20f89aff0d8bbec2c7d73df79d813165094fd69c | 1 | 2 | 1792.54036 | -| terp1hs9nuy6zflcf40lh6ckz4m4zh64pqa2l5kxdyy | 0xbc0b3e13424ff09abff7d62c2aeea2beaa10755f | 1 | 2 | 1792.54036 | -| terp1q40k4wjklw4j4q9afqlpep9hcjh0jp902tghwv | 0x055f6aba56fbab2a80bd483e1c84b7c4aef904af | 1 | 2 | 1792.54036 | -| terp18zxwqvjexf4y9fxnu8c8j2z25aguhw0ehn7shy | 0x388ce03259326a42a4d3e1f079284aa751cbb9f9 | 1 | 2 | 1792.54036 | -| terp103djrcrmatqeqpp5fgsg6umljg0w9fqldusu6w | 0x7c5b21e07beac19004344a208d737f921ee2a41f | 1 | 2 | 1792.54036 | -| terp1zecr5a4evgxjeunkf8j6tcg738azxvldlm2pyd | 0x16703a76b9620d2cf27649e5a5e11e89fa2333ed | 1 | 2 | 1792.54036 | -| terp1mfk95xkm5kr8st5yzlck08l4dg6avzq8thegzg | 0xda6c5a1adba586782e8417f1679ff56a35d60807 | 1 | 2 | 1792.54036 | -| terp1c9kefaunl58xy7g29cr2ywvf3t4wj96jtmkjgm | 0xc16d94f793fd0e62790a2e06a239898aeae91752 | 1 | 2 | 1792.54036 | -| terp1qqest8tvtz2n7t3chal6t8tycqanem7rqfl2he | 0x0033059d6c58953f2e38bf7fa59d64c03b3cefc3 | 1 | 2 | 1792.54036 | -| terp1l48fky5jn8ygmtsycah4v4za5ps0xmfhy2cn87 | 0xfd4e9b129299c88dae04c76f56545da060f36d37 | 1 | 2 | 1792.54036 | -| terp169s6ydet9nd0480297q3axum70alh54uks5znw | 0xd161a2372b2cdafa9dea2f811e9b9bf3fbfbd2bc | 1 | 2 | 1792.54036 | -| terp1escr974es9cqvtrku6rkchh8z9cy9pujg6dnzg | 0xcc3032fab98170062c76e6876c5ee71170428792 | 1 | 2 | 1792.54036 | -| terp1935w7g58rtrx76ganpczynkqg3mmfn26vervm2 | 0x2c68ef22871ac66f691d9870224ec04477b4cd5a | 1 | 2 | 1792.54036 | -| terp193yyw96qyx4t4855cedll82hlgkqum6s6cqlxg | 0x2c4847174021aaba9e94c65bff9d57fa2c0e6f50 | 1 | 2 | 1792.54036 | -| terp14wggcd52v36z4y3c5txj8u0g3zh7vh9caj3sgk | 0xab908c368a64742a9238a2cd23f1e888afe65cb8 | 1 | 2 | 1792.54036 | -| terp1ap0rm7k8fxh4fscxynfw9wrrdu9s053ary3f9d | 0xe85e3dfac749af54c30624d2e2b8636f0b07d23d | 1 | 2 | 1792.54036 | -| terp1dr2jg734r78lurtyrawl4plsmmeft20tjputxz | 0x68d5247a351f8ffe0d641f5dfa87f0def295a9eb | 1 | 2 | 1792.54036 | -| terp1ffvmm4m24ccnncgrc6zn87l62mzlt4sjqcfmhm | 0x4a59bdd76aae3139e103c68533fbfa56c5f5d612 | 1 | 2 | 1792.54036 | -| terp1w60g9fl6f8jfrumlku94fxcxr8drd6ac5dq8uj | 0x769e82a7fa49e491f37fb70b549b0619da36ebb8 | 1 | 2 | 1792.54036 | -| terp1lcupvkxk5jzxh38sqkny0w2ckp0hmy5c9sx3tr | 0xfe381658d6a4846bc4f005a647b958b05f7d9298 | 1 | 2 | 1792.54036 | -| terp1y3z2sfkvt30gw9mlt3ewzapnegay0v2g7wf6lp | 0x2444a826cc5c5e87177f5c72e17433ca3a47b148 | 1 | 2 | 1792.54036 | -| terp1g0dq9f0e70pzxc79rkgkrm07vn4xem87774g06 | 0x43da02a5f9f3c22363c51d9161edfe64ea6cecfe | 1 | 2 | 1792.54036 | -| terp1zjwzcq3kzhfm7ar2fsw4cz8ussszkz683cyeqm | 0x149c2c023615d3bf746a4c1d5c08fc84202b0b47 | 1 | 2 | 1792.54036 | -| terp1flgwwpd46y60rmeh5scjz2xypr2rjccq8p4vut | 0x4fd0e705b5d134f1ef37a4312128c408d4396300 | 1 | 2 | 1792.54036 | -| terp18cfxfcg970ugltgxyd6ghd6tj06r9v26aep2z8 | 0x3e1264e105f3f88fad0623748bb74b93f432b15a | 1 | 2 | 1792.54036 | -| terp1t7c4403few4q6hlsvx6xfucd0qpg3ud9jnqj3s | 0x5fb15abe29cbaa0d5ff061b464f30d780288f1a5 | 1 | 2 | 1792.54036 | -| terp13j885sunpz4hdjqfp7uk4dfcpx3ld3qkfuke5w | 0x8c8e7a439308ab76c8090fb96ab53809a3f6c416 | 1 | 2 | 1792.54036 | -| terp1nthl8yupdqv75zv0ysq4w960pq454rdqhy5zvg | 0x9aeff393816819ea098f240157174f082b4a8da0 | 1 | 2 | 1792.54036 | -| terp1f5x3az86ntaehmze52uvx6hew084ylxca5emv5 | 0x4d0d1e88fa9afb9bec59a2b8c36af973cf527cd8 | 1 | 2 | 1792.54036 | -| terp126vw5hkeayr48335u2nh8hans4v26yr4k8ch97 | 0x5698ea5ed9e90753c634e2a773dfb38558ad1075 | 1 | 2 | 1792.54036 | -| terp1rm7ayt47n92kyahcphzuq7y5w9c8e78tsdpvh9 | 0x1efdd22ebe99556276f80dc5c0789471707cf8eb | 1 | 2 | 1792.54036 | -| terp1znv7eu2rdxxygpaea8fh2lmaf0sq5m686w3cvq | 0x14d9ecf143698c4407b9e9d3757f7d4be00a6f47 | 1 | 2 | 1792.54036 | -| terp1esflfayts5aqqhrc7cfzy0md77z56h0fmjs09s | 0xcc13f4f48b853a005c78f612223f6df7854d5de9 | 1 | 2 | 1792.54036 | -| terp1wcclrenwuwwxk8lyc4kr2236l582uprmv972mp | 0x7631f1e66ee39c6b1fe4c56c352a3afd0eae047b | 1 | 2 | 1792.54036 | -| terp12sky2wuqp330naa29khqxslskfclr5lmvw80wd | 0x542c453b800c62f9f7aa2dae0343f0b271f1d3fb | 1 | 2 | 1792.54036 | -| terp1u6j8s6gtf6ms5rn3y8qugwxzu4s20a2eu9yaml | 0xe6a478690b4eb70a0e7121c1c438c2e560a7f559 | 1 | 2 | 1792.54036 | -| terp1r6m8jaetektg4328ylfmktltxj36jxv5kss3wp | 0x1eb679772bcd968ac54727d3bb2feb34a3a91994 | 1 | 2 | 1792.54036 | -| terp14ehhlkq5vwrrn0d5qrqqdlnenydy8l99827lhk | 0xae6f7fd814638639bdb400c006fe79991a43fca5 | 1 | 2 | 1792.54036 | -| terp1ruf53pcf4qksh7twnhsqc9m94av4u2za9hc04k | 0x1f13488709a82d0bf96e9de00c1765af595e285d | 1 | 2 | 1792.54036 | -| terp154peae8rpcw6vp9shcny39rlzv6ss6caawg755 | 0xa5439ee4e30e1da604b0be2648947f1335086b1d | 1 | 2 | 1792.54036 | -| terp1r0ec3rn7xpwld2ls63gsfcv0k36k50fx0xp8nf | 0x1bf3888e7e305df6abf0d45104e18fb4756a3d26 | 1 | 2 | 1792.54036 | -| terp1xuh4x3qytmxwjn6evypa03lwdak02r2xf88v0n | 0x372f5344045ecce94f596103d7c7ee6f6cf50d46 | 1 | 2 | 1792.54036 | -| terp1kkzlkvp8dp8sr53zy027clwftz9n5gagjwnn9m | 0xb585fb3027684f01d22223d5ec7dc9588b3a23a8 | 1 | 2 | 1792.54036 | -| terp1wtfhnskkh36j9zucmx5rxw9vrtqketw96g2ptc | 0x72d379c2d6bc75228b98d9a83338ac1ac16cadc5 | 1 | 2 | 1792.54036 | -| terp1nkf465eyjduk5eqn3w754nsngvmfv4dahq44df | 0x9d935d532493796a64138bbd4ace1343369655bd | 1 | 2 | 1792.54036 | -| terp15r0pehjxf8r0jd6huxcn50gggs30gjcp32r6s8 | 0xa0de1cde4649c6f93757e1b13a3d084422f44b01 | 1 | 2 | 1792.54036 | -| terp12xlare8q62q235pf8jwakfhvkllhuar9wddcz5 | 0x51bfd1e4e0d280a8d0293c9ddb26ecb7ff7e7465 | 1 | 2 | 1792.54036 | -| terp1qp2rpc4jef2jalh3hl70ny2egf3h6tqyqe3dm0 | 0x005430e2b2ca552efef1bffcf9915942637d2c04 | 1 | 2 | 1792.54036 | -| terp1tfx5wmjpxesss7km0p2hmlrfgvk2kmggudgttv | 0x5a4d476e413661087adb78557dfc69432cab6d08 | 1 | 2 | 1792.54036 | -| terp1040cd9s47smpyah6tm7kqynalw24f56y6am5gf | 0x7d5f869615f4361276fa5efd60127dfb9554d344 | 1 | 2 | 1792.54036 | -| terp1ll0n4evmegnw4gnxp074z2ae542phc36jftx89 | 0xffdf3ae59bca26eaa2660bfd512bb9a5541be23a | 1 | 2 | 1792.54036 | -| terp1ugkgd5cesadxt3je5etx0xyyg80vsla2w0szwg | 0xe22c86d319875a65c659a65667988441dec87faa | 1 | 2 | 1792.54036 | -| terp1vvsdfh2x6tzfcxxcf9g49atmrl38nn2wef3ajl | 0x6320d4dd46d2c49c18d8495152f57b1fe279cd4e | 1 | 2 | 1792.54036 | -| terp1mmzjfflgrc9nzvwgjaljrh70ay4znuepg99upu | 0xdec524a7e81e0b3131c8977f21dfcfe92a29f321 | 1 | 2 | 1792.54036 | -| terp16xf9s09kudgcrk2e3caqlxjp7zmeh67laaxuk3 | 0xd192583cb6e35181d9598e3a0f9a41f0b79bebdf | 1 | 2 | 1792.54036 | -| terp1vv3rrrpjc7f2sv4ajvclup3uglgfrsh8qgctq3 | 0x6322318c32c792a832bd9331fe063c47d091c2e7 | 1 | 2 | 1792.54036 | -| terp1xk224ur4f624dl762nw97dq62rsmrfhfwzew0n | 0x3594aaf0754e9556ffda54dc5f341a50e1b1a6e9 | 1 | 2 | 1792.54036 | -| terp188x8500g2p6hz0mlwszw09r7fxac8sydrqhygx | 0x39cc7a3de85075713f7f7404e7947e49bb83c08d | 1 | 2 | 1792.54036 | -| terp16jh27nx9f3tpqnqswhnpryjc5ty3ed8730pctw | 0xd4aeaf4cc54c56104c1075e6119258a2c91cb4fe | 1 | 2 | 1792.54036 | -| terp1zchm2csrj5njjzvgcg3gamn2f9p8hvr92uwmrg | 0x162fb562039527290988c2228eee6a49427bb065 | 1 | 2 | 1792.54036 | -| terp1zs9jtc8mvlhwreljjhpmplm4f2l3k5cd8m8wdk | 0x140b25e0fb67eee1e7f295c3b0ff754abf1b530d | 1 | 2 | 1792.54036 | -| terp14tr2je5pelypcatdkvwe86hmsgm6y7agwgn3fy | 0xaac6a96681cfc81c756db31d93eafb8237a27ba8 | 1 | 2 | 1792.54036 | -| terp12ds6mvqlx9dhenqlue20l5lkefn555e9l34rxy | 0x5361adb01f315b7ccc1fe654ffd3f6ca674a5325 | 1 | 2 | 1792.54036 | -| terp1at4ang6xmm0530zvkn7luj4yjs9835pcy0v5cf | 0xeaebd9a346dedf48bc4cb4fdfe4aa4940a78d038 | 1 | 2 | 1792.54036 | -| terp1hzsnjczs3juu8m0jmr5gkztqf99g0399rdg2s9 | 0xb8a13960508cb9c3edf2d8e88b0960494a87c4a5 | 1 | 2 | 1792.54036 | -| terp1k0dewpv0ca6547au424w99nnqx0pp9yp4u0wez | 0xb3db97058fc7754afbbcaaaae29673019e109481 | 1 | 2 | 1792.54036 | -| terp1dluhh4w7yf7rrdhfnsscqx42spsunx3y64fjpc | 0x6ff97bd5de227c31b6e99c21801aaa8061c99a24 | 1 | 2 | 1792.54036 | -| terp17d9fp26036cuyqk3urx3an7tjsvecq2whn80lc | 0xf34a90ab4f8eb1c202d1e0cd1ecfcb94199c014e | 1 | 2 | 1792.54036 | -| terp1c8cuyw8daagxsfeygqau2qthus69yhzed9va8s | 0xc1f1c238edef50682724403bc50177e434525c59 | 1 | 2 | 1792.54036 | -| terp1740j2esay7j5gcvqkj4cl6tq7y8rfkv0rp9qqx | 0xf55f25661d27a5446180b4ab8fe960f10e34d98f | 1 | 2 | 1792.54036 | -| terp196hthqnrgwv5ktxvej2g95gfhf60r6gpvrjae3 | 0x2eaebb826343994b2ccccc9482d109ba74f1e901 | 1 | 2 | 1792.54036 | -| terp1eu37gg7dlz2ttuc8p94ns0um83h4vjs4v22hug | 0xcf23e423cdf894b5f307096b383f9b3c6f564a15 | 1 | 2 | 1792.54036 | -| terp1uq4vcjkuq49xq7a6wy9f0rv2r0nkjtlpc7ndmq | 0xe02acc4adc054a607bba710a978d8a1be7692fe1 | 1 | 2 | 1792.54036 | -| terp1wljzefjmsuefg7tpp7rty06440nk5m9fl9a7gm | 0x77e42ca65b87329479610f86b23f55abe76a6ca9 | 1 | 2 | 1792.54036 | -| terp1lvm2sf0l5apqqye253q53662n0ctmyv6t3cnlk | 0xfb36a825ffa74200132aa44148eb4a9bf0bd919a | 1 | 2 | 1792.54036 | -| terp1rxkmh2h04qlf5a5lhmd6d6mexl9289cr8cpjl9 | 0x19adbbaaefa83e9a769fbedba6eb7937caa39703 | 1 | 2 | 1792.54036 | -| terp1rwzjvus0k465j0hvegl9q5lunlnvzfccrcl0zl | 0x1b8526720fb575493eecca3e5053fc9fe6c12718 | 1 | 2 | 1792.54036 | -| terp1y4rk34rulz2c56py9nj65xkmgq0plmetmfjeyq | 0x254768d47cf8958a68242ce5aa1adb401e1fef2b | 1 | 2 | 1792.54036 | -| terp1d2l8msct08qkkdcqmxu8s7zfn0lqr3hnyjk3gp | 0x6abe7dc30b79c16b3700d9b87878499bfe01c6f3 | 1 | 2 | 1792.54036 | -| terp14ypdad5vdznfx2ckffsrx5rxg6hu0p5ee8l64f | 0xa902deb68c68a6932b164a6033506646afc78699 | 1 | 2 | 1792.54036 | -| terp1glwnfrh5jjtdtxlyxsctrmcu2l9vs52ytqujry | 0x47dd348ef49496d59be43430b1ef1c57cac85144 | 1 | 2 | 1792.54036 | -| terp1wsk35k0rq0g2rl4myq9h4vgr5sy8l4jza4cw4h | 0x742d1a59e303d0a1febb200b7ab103a4087fd642 | 1 | 2 | 1792.54036 | -| terp1kld8fsfkp3du3778p59plkedfmt475vl7c00uv | 0xb7da74c1360c5bc8fbc70d0a1fdb2d4ed75f519f | 1 | 2 | 1792.54036 | -| terp1gdxqlty36y2awajf5axr23r00s056evg75kd3w | 0x434c0fac91d115d77649a74c35446f7c1f4d6588 | 1 | 2 | 1792.54036 | -| terp1gs4pf4tnn2prgz6qxjrfqk33raxyan4wgl33zx | 0x442a14d5739a82340b403486905a311f4c4eceae | 1 | 2 | 1792.54036 | -| terp1k2dzuzwgmpv8xulv0av52kl5z4kldwk22u2jza | 0xb29a2e09c8d8587373ec7f59455bf4156df6baca | 1 | 2 | 1792.54036 | -| terp1nwlpgyxqwlqmxnz4ssvgaxyr7jwll8h55y5lz5 | 0x9bbe1410c077c1b34c5584188e9883f49dff9ef4 | 1 | 2 | 1792.54036 | -| terp1zcwtue39n8yzgl0j9r73yyar2gdy6rc3s0n70c | 0x161cbe662599c8247df228fd1213a3521a4d0f11 | 1 | 2 | 1792.54036 | -| terp17ptt35uduf7zhe5nq5yldcjun8svfpcyq8d2xz | 0xf056b8d38de27c2be6930509f6e25c99e0c48704 | 1 | 2 | 1792.54036 | -| terp1xyehm64gq05er8nhza80lx7sxgvyqvxnsf0470 | 0x31337deaa803e9919e77174eff9bd032184030d3 | 1 | 2 | 1792.54036 | -| terp105zrhx8kt50sauctm52a4y2fhp53vtnchq25x8 | 0x7d043b98f65d1f0ef30bdd15da9149b869162e78 | 1 | 2 | 1792.54036 | -| terp1pw46rt2muwjupfnw0tyr3gffh72g784yrep8gw | 0x0baba1ad5be3a5c0a66e7ac838a129bf948f1ea4 | 1 | 2 | 1792.54036 | -| terp1550gpalq0rx8yjau79uqz6xr2lf2msltw6eryr | 0xa51e80f7e078cc724bbcf1780168c357d2adc3eb | 1 | 2 | 1792.54036 | -| terp1k954sqmt0n8ny2cgs786y86ycwku0u5rrt28ym | 0xb16958036b7ccf322b08878fa21f44c3adc7f283 | 1 | 2 | 1792.54036 | -| terp1h7c2m5693zcnxhcfaamprjgjwz6ft4sl9cam6v | 0xbfb0add34588b1335f09ef7611c91270b495d61f | 1 | 2 | 1792.54036 | -| terp14kuszre2jw39n07f2xrjv7j6gwv8x58tmw06st | 0xadb9010f2a93a259bfc95187267a5a43987350eb | 1 | 2 | 1792.54036 | -| terp1wpe23pzd9kmsmt7unae793hgtu4rsn0lxyf24t | 0x7072a8844d2db70dafdc9f73e2c6e85f2a384dff | 1 | 2 | 1792.54036 | -| terp1rwdxyyz6724je2u8u330as7zqfeqrrthxh2mgk | 0x1b9a62105af2ab2cab87e462fec3c20272018d77 | 1 | 2 | 1792.54036 | -| terp1jxp8qufwu5r9k03kaddrx8lu6xvqtr6he3f8cc | 0x918270712ee5065b3e36eb5a331ffcd198058f57 | 1 | 2 | 1792.54036 | -| terp1wvjmg7k78z5ura9snkk9wepvlmt4vvk6hcjc2w | 0x7325b47ade38a9c1f4b09dac57642cfed75632da | 1 | 2 | 1792.54036 | -| terp18ukva6yqmy0kyz5lzs4rzcpd3np93ffxknxpkx | 0x3f2ccee880d91f620a9f142a31602d8cc258a526 | 1 | 2 | 1792.54036 | -| terp1pq73g2xnlydze9axknykf64dv99czksku33naz | 0x083d1428d3f91a2c97a6b4c964eaad614b815a16 | 1 | 2 | 1792.54036 | -| terp1e79sxljpwahqd0pj5em8hlmsyxkxefgkg80wn0 | 0xcf8b037e41776e06bc32a6767bff7021ac6ca516 | 1 | 2 | 1792.54036 | -| terp1vw3q47jgyhgdtsya6zl90rkrsy8qtxpquufqva | 0x63a20afa4825d0d5c09dd0be578ec3810e059820 | 1 | 2 | 1792.54036 | -| terp1sxt0zzsekdg6fh4ynrm5kg50gzfuygr8ltu3dh | 0x8196f10a19b351a4dea498f74b228f4093c22067 | 1 | 2 | 1792.54036 | -| terp16cckwj5km2jnsuvqpx3c6vk8fue7r74xdl3wnr | 0xd631674a96daa538718009a38d32c74f33e1faa6 | 1 | 2 | 1792.54036 | -| terp17ydn992hfpth0dgrz066hhwhrewfd8zy60l9hm | 0xf11b329557485777b50313f5abddd71e5c969c44 | 1 | 2 | 1792.54036 | -| terp1wvvf2zs29eej538dr0aa8k8ujpegqcq6hk0ple | 0x7318950a0a2e732a44ed1bfbd3d8fc907280601a | 1 | 2 | 1792.54036 | -| terp1pdy5vyfc3q9ln0jd3ge3h0xytpk6zj7k00hdnu | 0x0b49461138880bf9be4d8a331bbcc4586da14bd6 | 1 | 2 | 1792.54036 | -| terp1e6eqmhwfe84dsmfs94c9hupxxmleqmze857krq | 0xceb20dddc9c9ead86d302d705bf02636ff906c59 | 1 | 2 | 1792.54036 | -| terp1ve05gvvas5yr42cxchn2pzxqgjzfjka90s4l6f | 0x665f44319d85083aab06c5e6a088c04484995ba5 | 1 | 2 | 1792.54036 | -| terp12zednnjgnsjeg9a6gdhv00z2g8mv4eukn7g4fu | 0x50b2d9ce489c259417ba436ec7bc4a41f6cae796 | 1 | 2 | 1792.54036 | -| terp1r7xghdyhr3pwgs0zlsmx909v3yzj6smnd7dc75 | 0x1f8c8bb4971c42e441e2fc3662bcac89052d4373 | 1 | 2 | 1792.54036 | -| terp12vwdlqh852pxykwceru4g2wqwajwxwk7dtwp8x | 0x531cdf82e7a2826259d8c8f95429c07764e33ade | 1 | 2 | 1792.54036 | -| terp1ndtmapdjwudfg0dvewk90hwrpd8ma5dh29xqvp | 0x9b57be85b2771a943daccbac57ddc30b4fbed1b7 | 1 | 2 | 1792.54036 | -| terp1as6cwrrt7892l8kp6v3escujtgju6puug374ql | 0xec35870c6bf1caaf9ec1d3239863925a25cd079c | 1 | 2 | 1792.54036 | -| terp1n7jyhf4xmrndevpq9t7rfdyazvkr60kq9vmy8d | 0x9fa44ba6a6d8e6dcb0202afc34b49d132c3d3ec0 | 1 | 2 | 1792.54036 | -| terp1gez57hqn7ksxxer6cv6np4xnjgkkmcp2sv6ts9 | 0x46454f5c13f5a063647ac33530d4d3922d6de02a | 1 | 2 | 1792.54036 | -| terp1rq6qduftv0jlmvyywakamrp2a6v0a9dhp302hu | 0x183406f12b63e5fdb084776ddd8c2aee98fe95b7 | 1 | 2 | 1792.54036 | -| terp1z94rkx83hlef92l6k83erpfsz5shnhf0v64403 | 0x116a3b18f1bff292abfab1e3918530152179dd2f | 1 | 2 | 1792.54036 | -| terp1pacae7eztakjxvfnvfgq4yd2t8n6jj68hsrcwd | 0x0f71dcfb225f6d23313362500a91aa59e7a94b47 | 1 | 2 | 1792.54036 | -| terp1c79agudh735pfxyjmavwyngwx82dy29hxa5c0h | 0xc78bd471b7f468149892df58e24d0e31d4d228b7 | 1 | 2 | 1792.54036 | -| terp1e7qxl2538vav009hk4a3rx2prfmdjejxugasyp | 0xcf806faa913b3ac7bcb7b57b1199411a76d96646 | 1 | 2 | 1792.54036 | -| terp1yygfar7s7vxks9h8pe3qv7hgdn80v4sl48l4em | 0x21109e8fd0f30d6816e70e62067ae86ccef6561f | 1 | 2 | 1792.54036 | -| terp10nfczw02pwujjdlqv89cv0a3kn5lrwjvw5wl7f | 0x7cd38139ea0bb92937e061cb863fb1b4e9f1ba4c | 1 | 2 | 1792.54036 | -| terp17g6yes8gu2k9k3h8cara8yd90q6ryjgedqtrky | 0xf2344cc0e8e2ac5b46e7c747d391a57834324919 | 1 | 2 | 1792.54036 | -| terp1ww4vpcpxmdle44pgrmw3rdhjdh4trx862jd8wy | 0x73aac0e026db7f9ad4281edd11b6f26deab198fa | 1 | 2 | 1792.54036 | -| terp1mrpxqjdylwg692fw80m77jmfkd38x687zajrpy | 0xd8c26049a4fb91a2a92e3bf7ef4b69b3627368fe | 1 | 2 | 1792.54036 | -| terp1ar77fuy72xme3654x8kqmmy6clgp32q5jj8l0s | 0xe8fde4f09e51b798ea9531ec0dec9ac7d018a814 | 1 | 2 | 1792.54036 | -| terp1lp4s4rsk5903qlkmc4tn5gugx7agrd6keaqeu0 | 0xf86b0a8e16a15f107edbc5573a238837ba81b756 | 1 | 2 | 1792.54036 | -| terp1228ssvzhn2n5a79qhha5mth4swv5k7x2ddyt9k | 0x528f0830579aa74ef8a0bdfb4daef583994b78ca | 1 | 2 | 1792.54036 | -| terp1nw3lhjxukra7ek9v7qnn5ydlx4atnzcuf0x3u0 | 0x9ba3fbc8dcb0fbecd8acf0273a11bf357ab98b1c | 1 | 2 | 1792.54036 | -| terp1q5enwqs7d7fwdy907wlqztg403amwvcstk26fu | 0x053337021e6f92e690aff3be012d157c7bb73310 | 1 | 2 | 1792.54036 | -| terp14j3lqcgqlxv23x6j67zm4zdgyl7lqsy9nccy3u | 0xaca3f06100f998a89b52d785ba89a827fdf04085 | 1 | 2 | 1792.54036 | -| terp1sk9m2x955n9w62r04pd0fh2cxdvlf8438nkqsy | 0x858bb518b4a4caed286fa85af4dd583359f49eb1 | 1 | 2 | 1792.54036 | -| terp1vs0kkaftlfqpp89kdvrpnwkrqpdmt9v8p6welq | 0x641f6b752bfa40109cb66b0619bac3005bb59587 | 1 | 2 | 1792.54036 | -| terp1gjgwelj42ahqmrdaygawfls2e88shyzwrtwg5a | 0x4490ecfe55576e0d8dbd223ae4fe0ac9cf0b904e | 1 | 2 | 1792.54036 | -| terp1nntjr92z8mg44d4pk88k5k5nh6nsf8zqzgg003 | 0x9cd72195423ed15ab6a1b1cf6a5a93bea7049c40 | 1 | 2 | 1792.54036 | -| terp13plxdttq43y5cs4kvspn8n9pla8hc2rehhn3cz | 0x887e66ad60ac494c42b6640333cca1ff4f7c2879 | 1 | 2 | 1792.54036 | -| terp136s0a82jswwlh3wc2cj3tenu6t4s6ezj0kuf22 | 0x8ea0fe9d52839dfbc5d8562515e67cd2eb0d6452 | 1 | 2 | 1792.54036 | -| terp1pgh9c8qtjty2hlflcvsucm7q3308egpce8x490 | 0x0a2e5c1c0b92c8abfd3fc321cc6fc08c5e7ca038 | 1 | 2 | 1792.54036 | -| terp1lmkt0vgw764za6a4f0megw4dkncapafp3tlpvm | 0xfeecb7b10ef6aa2eebb54bf7943aadb4f1d0f521 | 1 | 2 | 1792.54036 | -| terp1l0gskdsx90hyt4tt67w6w4dmrhakugfklmvky4 | 0xfbd10b36062bee45d56bd79da755bb1dfb6e2136 | 1 | 2 | 1792.54036 | -| terp1nra6c7v4ce92j65aly2ld8jyfpm0dx9czgls6v | 0x98fbac7995c64aa96a9df915f69e444876f698b8 | 1 | 2 | 1792.54036 | -| terp13ys64edvmmg66xkc40hkgu0kwa7zevu5838sd2 | 0x8921aae5acded1ad1ad8abef6471f6777c2cb394 | 1 | 2 | 1792.54036 | -| terp1jhruvtxdkluv5su2fg5p4dn065aaucw6f8nyuv | 0x95c7c62ccdb7f8ca438a4a281ab66fd53bde61da | 1 | 2 | 1792.54036 | -| terp1cxjcsj3xsxtarym4lq26n6llskk5v3jugsrunu | 0xc1a5884a268197d19375f815a9ebff85ad46465c | 1 | 2 | 1792.54036 | -| terp1fq2zrk26kw9980zvgylkcnx3myat0caz6uytlu | 0x481421d95ab38a53bc4c413f6c4cd1d93ab7e3a2 | 1 | 2 | 1792.54036 | -| terp1eqnan455564hk3t8ljfcqe3wtshwx68ky3t5hj | 0xc827d9d694a6ab7b4567fc9380662e5c2ee368f6 | 1 | 2 | 1792.54036 | -| terp1ug4rdhykdzx2hze5vyvdhkg2j64xq7s5f46wf7 | 0xe22a36dc96688cab8b346118dbd90a96aa607a14 | 1 | 2 | 1792.54036 | -| terp1hzwnppyq7slck8rx56qs4earqs5p5p3znd2d49 | 0xb89d308480f43f8b1c66a6810ae7a304281a0622 | 1 | 2 | 1792.54036 | -| terp1lzz3vlvqtrstf0ysrnu327t8tgrkmqckzg0uyk | 0xf885167d8058e0b4bc901cf91579675a076d8316 | 1 | 2 | 1792.54036 | -| terp187kjf4mgqlh4eqvgvwy3l8550wker06l60fkkz | 0x3fad24d76807ef5c818863891f9e947bad91bf5f | 1 | 2 | 1792.54036 | -| terp1cyyd7q9km0zvxt08z6snu7kt5fnmd85zmts7gu | 0xc108df00b6dbc4c32de716a13e7acba267b69e82 | 1 | 2 | 1792.54036 | diff --git a/eth/addresses/n8-free-mint.md b/eth/addresses/n8-free-mint.md deleted file mode 100644 index a1994b3..0000000 --- a/eth/addresses/n8-free-mint.md +++ /dev/null @@ -1,319 +0,0 @@ -# N8 Free Mint Address Conversion -| Terp Public Address | Ethereum Public Address | Tokens Held | Points | Airdrop Allocation | -|----------------------|--------------------------|---------------|-------------|--------------------| -| terp1r55vtlyukveddyhp2nv3y20hzkdzl6w2xutnwg | 0x1d28c5fc9cb332d692e154d91229f7159a2fe9ca | 6 | 6 | 5417.690418 | -| terp1hx74t66p5jxa3vc5rgyuf3kc9x6crnlttvkzpp | 0xb9bd55eb41a48dd8b3141a09c4c6d829b581cfeb | 5 | 6 | 5417.690418 | -| terp1xfs60mpd4wltrgp4v8gxummpl7sr4e6vhxkulc | 0x3261a7ec2dabbeb1a03561d06e6f61ffa03ae74c | 4 | 6 | 5417.690418 | -| terp1ess8urtsw3ra4y0ux6u8efy5xmjw7cqp338dha | 0xcc207e0d707447da91fc36b87ca49436e4ef6001 | 4 | 6 | 5417.690418 | -| terp1uzr6rgwyyzqn34rshc0ujfq2fykcpwlqpwv6q5 | 0xe087a1a1c4208138d470be1fc9240a492d80bbe0 | 4 | 6 | 5417.690418 | -| terp1q9tjmc8x9eknu6y6nk0djdtewj0mny0y8rdux9 | 0x01572de0e62e6d3e689a9d9ed93579749fb991e4 | 3 | 4 | 3611.793612 | -| terp1qvqnwh4fs294yh9z4xlln9823ls6wfp8kpvd25 | 0x0301375ea9828b525ca2a9bff994ea8fe1a72427 | 3 | 4 | 3611.793612 | -| terp1qjpxhuzcja68wc4ge0gl6yqjd3hnpkwc2x9c7c | 0x04826bf05897747762a8cbd1fd10126c6f30d9d8 | 3 | 4 | 3611.793612 | -| terp1q6q5p9u94t4kuu0982x37ru9crkelj662p70fj | 0x0681409785aaeb6e71e53a8d1f0f85c0ed9fcb5a | 3 | 4 | 3611.793612 | -| terp1zfz7fkncrx8r5pj7hcx740zpqqxuhgvkd2mup6 | 0x1245e4da78198e3a065ebe0deabc41000dcba196 | 3 | 4 | 3611.793612 | -| terp1z5phsej6mqvtp83tua4nxqd2vwa8v2jz9hf0lj | 0x150378665ad818b09e2be76b3301aa63ba762a42 | 3 | 4 | 3611.793612 | -| terp1zaxvvr7vkf7q2uwfmlp0y42tayywzpglvl64ul | 0x174cc60fccb27c0571c9dfc2f2554be908e1051f | 3 | 4 | 3611.793612 | -| terp1rdgkn76mmdflswga7h8qc7uyrdnhaj5ednm9xn | 0x1b5169fb5bdb53f8391df5ce0c7b841b677eca99 | 3 | 4 | 3611.793612 | -| terp1rureafhmhxumw9rq28zfaysumwjcpsf9ej70rx | 0x1f079ea6fbb9b9b7146051c49e921cdba580c125 | 3 | 4 | 3611.793612 | -| terp1ra4vrd5xymnucscd2g3hjz5hhwujmzs9976w8a | 0x1f6ac1b68626e7cc430d5223790a97bbb92d8a05 | 3 | 4 | 3611.793612 | -| terp1yrw39xfsypxvrwzj9ht4ezqrkyn00zrk9jg732 | 0x20dd129930204cc1b8522dd75c8803b126f78876 | 3 | 4 | 3611.793612 | -| terp19xqwcgvelqeww4pvt3p7q39g5pcf2592ec6x0j | 0x2980ec2199f832e7542c5c43e044a8a0709550aa | 3 | 4 | 3611.793612 | -| terp1x6gvnxdg9vqmfc0d0zp6ugrrsj835ucjy0hpc5 | 0x3690c999a82b01b4e1ed7883ae2063848f1a7312 | 3 | 4 | 3611.793612 | -| terp18p2x52qt5h4zgl5axu37sumjf8nw2qdtnvl05m | 0x38546a280ba5ea247e9d3723e8737249e6e501ab | 3 | 4 | 3611.793612 | -| terp18zjtd2pl5x8zwmd0l4gtllldjk4hyfp52c8d5f | 0x38a4b6a83fa18e276daffd50bfffed95ab722434 | 3 | 4 | 3611.793612 | -| terp1gvrd6rqckk8rfev8qquyr4ek53ynjt2fn2325r | 0x4306dd0c18b58e34e587003841d736a449392d49 | 3 | 4 | 3611.793612 | -| terp1g3ta6kwunuwavutmalrn5lllygn2k34x4umxnf | 0x4457dd59dc9f1dd6717befc73a7fff2226ab46a6 | 3 | 4 | 3611.793612 | -| terp1gkdsdmhdp0035j3v3rxv4swjg9j6a944y0rxve | 0x459b06eeed0bdf1a4a2c88cccac1d24165ae96b5 | 3 | 4 | 3611.793612 | -| terp1g72ljgkd8jmxqx07tgsq00t496pr2dk2j478j2 | 0x4795f922cd3cb66019fe5a2007bd752e823536ca | 3 | 4 | 3611.793612 | -| terp1ftt35dlsxr3rw0g09aapylgsec8lelec4y5ps3 | 0x4ad71a37f030e2373d0f2f7a127d10ce0ffcff38 | 3 | 4 | 3611.793612 | -| terp1fdpsvgynqvjgvncyeqcjfsk83dlgfl86nj83ng | 0x4b430620930324864f04c83124c2c78b7e84fcfa | 3 | 4 | 3611.793612 | -| terp1f4veg9je5v8d46d7n8ehsxumwy229kjl4n8u7w | 0x4d59941659a30edae9be99f3781b9b7114a2da5f | 3 | 4 | 3611.793612 | -| terp1tsl20l0j2xkswa8f6ww5vtzf5qd2m88vtlk63k | 0x5c3ea7fdf251ad0774e9d39d462c49a01aad9cec | 3 | 4 | 3611.793612 | -| terp1th62hdh6jyc8dzma4t8538dmclwewmpwm0cgtq | 0x5df4abb6fa9130768b7daacf489dbbc7dd976c2e | 3 | 4 | 3611.793612 | -| terp1vjvtmkktj9gq0fwz32d9mzqakp874xcsmzg3eu | 0x6498bddacb915007a5c28a9a5d881db04fea9b10 | 3 | 4 | 3611.793612 | -| terp1wtw8u4aanxav7y7rc77a9093peru60e52qj5t5 | 0x72dc7e57bd99bacf13c3c7bdd2bcb10e47cd3f34 | 3 | 4 | 3611.793612 | -| terp1ws74ec6cc59gnqrnvvh60pfhlwugavnx6yjhht | 0x743d5ce358c50a898073632fa78537fbb88eb266 | 3 | 4 | 3611.793612 | -| terp1wj75nh6ywxwkg8mr7mn2raqc9wfk8dx70axpjw | 0x74bd49df44719d641f63f6e6a1f4182b9363b4de | 3 | 4 | 3611.793612 | -| terp1wcmhxgyyvq6rvhzrn0nh86zaxvapurkmm0s5jg | 0x76377320846034365c439be773e85d333a1e0edb | 3 | 4 | 3611.793612 | -| terp13fcwsgpp0t204cveak795lzrqmm525fmrdl0cm | 0x8a70e820217ad4fae199edbc5a7c4306f745513b | 3 | 4 | 3611.793612 | -| terp137p99eu7n6we8gcxy6c8q5qz2afjurl68tfa2t | 0x8f8252e79e9e9d93a30626b070500257532e0ffa | 3 | 4 | 3611.793612 | -| terp1jz4g0w09mhkddsy74sx62qsvw2nx3q2s6cywrx | 0x90aa87b9e5ddecd6c09eac0da5020c72a6688150 | 3 | 4 | 3611.793612 | -| terp1nz76nfz8uqpz547mq67z65y49pmk2p4t5tcdfx | 0x98bda9a447e0022a57db06bc2d509528776506ab | 3 | 4 | 3611.793612 | -| terp1k5gjw79ck43tlwukcy4hhn7qcyu20ctkxh64r4 | 0xb5112778b8b562bfbb96c12b7bcfc0c138a7e176 | 3 | 4 | 3611.793612 | -| terp1hql0ac926p4g777wh8h0vc935dnrkggkpgmpv5 | 0xb83efee0aad06a8f7bceb9eef660b1a3663b2116 | 3 | 4 | 3611.793612 | -| terp1h2cdeg5kgd9rw98epcq3uy0h2nae5wktau83cq | 0xbab0dca296434a3714f90e011e11f754fb9a3acb | 3 | 4 | 3611.793612 | -| terp1ht9pxhff05tmtppj0aamgdklt5n352kpz8a74a | 0xbaca135d297d17b584327f7bb436df5d271a2ac1 | 3 | 4 | 3611.793612 | -| terp1hhn250yfmdmsqt0hgamk62pse7gfpk2dyck5rc | 0xbde6aa3c89db77002df747776d2830cf9090d94d | 3 | 4 | 3611.793612 | -| terp1he327hy9gas7usrf2wwkyth4ae0k4rfjcyg2y7 | 0xbe62af5c854761ee4069539d622ef5ee5f6a8d32 | 3 | 4 | 3611.793612 | -| terp1hu7f9kxk9u76xd9cdglzdud8zfat0kvzh2nvz5 | 0xbf3c92d8d62f3da334b86a3e26f1a7127ab7d982 | 3 | 4 | 3611.793612 | -| terp1cdaeqf8tstznqwzyfuqczd5nhz8keq9hnk996y | 0xc37b9024eb82c53038444f01813693b88f6c80b7 | 3 | 4 | 3611.793612 | -| terp1c6r2zta9s64v8sy84mkkf0xjr0ws23jknven0z | 0xc686a12fa586aac3c087aeed64bcd21bdd054656 | 3 | 4 | 3611.793612 | -| terp16xjmjx2h2v8pk05ultq4gdr8ccxr2tmfhtk0jj | 0xd1a5b91957530e1b3e9cfac1543467c60c352f69 | 3 | 4 | 3611.793612 | -| terp1mxgnnwxje0wep7ngww2hhmgcs78cljft9e5nnn | 0xd99139b8d2cbdd90fa6873957bed18878f8fc92b | 3 | 4 | 3611.793612 | -| terp1ms6lgez5qz6yd6w7xvsk8ty93eky0sl9tz0dl2 | 0xdc35f4645400b446e9de332163ac858e6c47c3e5 | 3 | 4 | 3611.793612 | -| terp1udwzu5qyrtcl539hfwc8a7w5flxxeuheepc9e7 | 0xe35c2e50041af1fa44b74bb07ef9d44fcc6cf2f9 | 3 | 4 | 3611.793612 | -| terp1udnedz49qzl00xd3rhwc4e5dujjv8n8jv0qfuf | 0xe367968aa500bef799b11ddd8ae68de4a4c3ccf2 | 3 | 4 | 3611.793612 | -| terp1u46fx8g5f5uck22cs8u8e6378cklc38pr7ljvp | 0xe574931d144d398b295881f87cea3e3e2dfc44e1 | 3 | 4 | 3611.793612 | -| terp179w7l70nft3fg2fmhwgtm0plg9al90tk56p4zl | 0xf15deff9f34ae294293bbb90bdbc3f417bf2bd76 | 3 | 4 | 3611.793612 | -| terp17dvrw2vum72dnd7ef8renu25f0j53n50vu9g72 | 0xf35837299cdf94d9b7d949c799f1544be548ce8f | 3 | 4 | 3611.793612 | -| terp1lprehr5cguq6hwc0tgm3jy9czq2ul7qtwl0akv | 0xf8479b8e984701abbb0f5a371910b81015cff80b | 3 | 4 | 3611.793612 | -| terp1lrv5dswm0c649v86h9qcgnshjyctda445ja5gh | 0xf8d946c1db7e3552b0fab941844e179130b6f6b5 | 3 | 4 | 3611.793612 | -| terp1lcxr4u90306wqjj8rtpkkl2s9pvufut9fhv60r | 0xfe0c3af0af8bf4e04a471ac36b7d502859c4f165 | 3 | 4 | 3611.793612 | -| terp1q3dlkn8558kxvhhrvjfy5c7x5g62el3nymxl8c | 0x045bfb4cf4a1ec665ee364924a63c6a234acfe33 | 2 | 4 | 3611.793612 | -| terp1ppgcsk3t4mymu7c99l4ffleprepq0mhju9qd00 | 0x0851885a2baec9be7b052fea94ff211e4207eef2 | 2 | 4 | 3611.793612 | -| terp1pludcwsfwmkp5k8cdkxlqqysvryx60efzpnfah | 0x0ff8dc3a0976ec1a58f86d8df0009060c86d3f29 | 2 | 4 | 3611.793612 | -| terp1y2vxvplj59xqyr3tm7nxwedd8x2pgx40e3s9x8 | 0x22986607f2a14c020e2bdfa66765ad3994141aaf | 2 | 4 | 3611.793612 | -| terp1xyl79uqnkhhzu24vpx6egcjxfk6k7a5qrhye6z | 0x313fe2f013b5ee2e2aac09b59462464db56f7680 | 2 | 4 | 3611.793612 | -| terp1xdg7egvle6rs39tjswfz5tlf4m2g2ajyayuelp | 0x3351eca19fce8708957283922a2fe9aed4857644 | 2 | 4 | 3611.793612 | -| terp1xdvmjg8w30dc0khmr05t5heqtuqkp77n5v30cv | 0x3359b920ee8bdb87dafb1be8ba5f205f0160fbd3 | 2 | 4 | 3611.793612 | -| terp1xm4a6d3syrnvl9vh6prtscs3df3r2swmsc4z4d | 0x36ebdd363020e6cf9597d046b862116a623541db | 2 | 4 | 3611.793612 | -| terp1gkae63yyp74cw7rcwkyjq97tqe9nqd7qgmuw5e | 0x45bb9d44840fab87787875892017cb064b3037c0 | 2 | 4 | 3611.793612 | -| terp12q5al3glr9x4kh6xwt76dgfrluqpytnqdzlqsp | 0x5029dfc51f194d5b5f4672fda6a123ff00122e60 | 2 | 4 | 3611.793612 | -| terp1d7cftlsn9qztyfg2mlg7s5d6y7qs4pfru0s7f6 | 0x6fb095fe132804b2250adfd1e851ba27810a8523 | 2 | 4 | 3611.793612 | -| terp10n9ena9lupa5efu5gs80dqs8fdy8m98d9e64gq | 0x7ccb99f4bfe07b4ca794440ef682074b487d94ed | 2 | 4 | 3611.793612 | -| terp13f8ag0r9k0yf7x58ek5ynnh2zjw0za2zqfsfsf | 0x8a4fd43c65b3c89f1a87cda849ceea149cf17542 | 2 | 4 | 3611.793612 | -| terp1jnxchse0k3t9txfrmnwn37f78p9xpl0pu005wl | 0x94cd8bc32fb456559923dcdd38f93e384a60fde1 | 2 | 4 | 3611.793612 | -| terp156ssd6zmgde4lx69wfvlpx03xeh2l6uhtpty0f | 0xa6a106e85b43735f9b457259f099f1366eafeb97 | 2 | 4 | 3611.793612 | -| terp15azl2qwd6a5elhc47m4r75tq3z4eqr3f3fzs0g | 0xa745f501cdd7699fdf15f6ea3f516088ab900e29 | 2 | 4 | 3611.793612 | -| terp147068etdr6n8rql94suqc3nc40y4mu5uufmszr | 0xaf9fa3e56d1ea67183e5ac380c4678abc95df29c | 2 | 4 | 3611.793612 | -| terp1kh8hpuf795lc0cqs2llsjk5y4fqt8vfm8x52gn | 0xb5cf70f13e2d3f87e01057ff095a84aa40b3b13b | 2 | 4 | 3611.793612 | -| terp1h8vdpzcq7cmvekmuyp6xunc8m9kt6n2r0960u7 | 0xb9d8d08b00f636ccdb7c20746e4f07d96cbd4d43 | 2 | 4 | 3611.793612 | -| terp1c80vv38dqwks5jf3k0dhc7as5lw0zrkc4v62lk | 0xc1dec644ed03ad0a4931b3db7c7bb0a7dcf10ed8 | 2 | 4 | 3611.793612 | -| terp1e9fmzx7fnyutxh8mr3tl6y6z5e93euc0kcklaz | 0xc953b11bc99938b35cfb1c57fd1342a64b1cf30f | 2 | 4 | 3611.793612 | -| terp16q5h9dtech9ae4lfm6lahg2hqj3c57wtuqmaep | 0xd02972b579c5cbdcd7e9debfdba15704a38a79cb | 2 | 4 | 3611.793612 | -| terp1mvns7spxn5r3f5anaj8refuextv2ahd8e4kxdf | 0xdb270f40269d0714d3b3ec8e3ca79932d8aedda7 | 2 | 4 | 3611.793612 | -| terp1u8jy22dzaytxc9fej0rlc4wrn0nqw2u5pqznpd | 0xe1e44529a2e9166c153993c7fc55c39be6072b94 | 2 | 4 | 3611.793612 | -| terp17vk9kntj9yen23x7nsf45zsd63cnu3p4hwvfm8 | 0xf32c5b4d7229333544de9c135a0a0dd4713e4435 | 2 | 4 | 3611.793612 | -| terp17nn9g6rl04c3wqn8rtauua3my0lakfvlt76c64 | 0xf4e654687f7d711702671afbce763b23ffdb259f | 2 | 4 | 3611.793612 | -| terp1764e0ttm9zmt3ckg7nhxd9pyhpf5dw7e3wczpt | 0xf6ab97ad7b28b6b8e2c8f4ee669424b85346bbd9 | 2 | 4 | 3611.793612 | -| terp1lvy73n0j2ctpfr7dfncpkh4t5a80hzw3ze2nwu | 0xfb09e8cdf25616148fcd4cf01b5eaba74efb89d1 | 2 | 4 | 3611.793612 | -| terp1qqtmxpkea27hqrlt6shq7ksvzyvnuadwtqqyag | 0x0017b306d9eabd700febd42e0f5a0c11193e75ae | 1 | 2 | 1805.896806 | -| terp1qy2n58rssuqsvpllskd6wl58xkzxe3u46vcxs6 | 0x01153a1c7087010607ff859ba77e8735846cc795 | 1 | 2 | 1805.896806 | -| terp1qg20rgsfr5pdd9lnlhk84d4v7ezl66w0zhmkck | 0x0214f1a2091d02d697f3fdec7ab6acf645fd69cf | 1 | 2 | 1805.896806 | -| terp1q0sepc0m75kjqkhp8303xrllytctepyafgnfz7 | 0x03e190e1fbf52d205ae13c5f130fff22f0bc849d | 1 | 2 | 1805.896806 | -| terp1qsn8ak9h54lq59znvztyg72t5srje02pa7d8ts | 0x04267ed8b7a57e0a1453609644794ba4072cbd41 | 1 | 2 | 1805.896806 | -| terp1qjm90ml22whjte6gppq4mgw89at8epu5dzgka8 | 0x04b657efea53af25e74808415da1c72f567c8794 | 1 | 2 | 1805.896806 | -| terp1q5xpc0fwsqkavgy2em3gspkvvhe4lye8hrtev7 | 0x050c1c3d2e802dd6208acee28806cc65f35f9327 | 1 | 2 | 1805.896806 | -| terp1q5ch0efga8hp042626rcrj4alll5z3sd7hsjsw | 0x053177e528e9ee17d55a568781cabdffff41460d | 1 | 2 | 1805.896806 | -| terp1qhf0fgnkktlyghqw77ryslw3hhmyjwa34ne7np | 0x05d2f4a276b2fe445c0ef786487dd1bdf6493bb1 | 1 | 2 | 1805.896806 | -| terp1qeakl48vpvkgvl9404lcvtxwj2xpjpg9hc66lx | 0x067b6fd4ec0b2c867cb57d7f862cce928c190505 | 1 | 2 | 1805.896806 | -| terp1q6cpzm0vle70vvfqyrsh005lx57062pzcvq5kc | 0x06b0116decfe7cf6312020e177be9f353cfd2822 | 1 | 2 | 1805.896806 | -| terp1pxpkzuz6ve6jvv2qs2t4ykxh7gsy3jeuse2q3d | 0x098361705a667526314082975258d7f22048cb3c | 1 | 2 | 1805.896806 | -| terp1p87545yf8znrwwxm0wwmhvf00cm8dqv92ultkv | 0x09fd4ad08938a63738db7b9dbbb12f7e36768185 | 1 | 2 | 1805.896806 | -| terp1p2w99hxwqfxaw240adpursjnhyatdm3vntzfry | 0x0a9c52dcce024dd72aafeb43c1c253b93ab6ee2c | 1 | 2 | 1805.896806 | -| terp1pdk6y6js55cepelucqeue3qq9ut3kje4gdsf3p | 0x0b6da26a50a53190e7fcc033ccc4002f171b4b35 | 1 | 2 | 1805.896806 | -| terp1p50dldds400edzg80tevm9uqq44pfnz5vl696l | 0x0d1edfb5b0abdf9689077af2cd9780056a14cc54 | 1 | 2 | 1805.896806 | -| terp1pc2ypyqywqafxcanpqnqccap7pcdt72quykcph | 0x0e14409004703a9363b308260c63a1f070d5f940 | 1 | 2 | 1805.896806 | -| terp1pmzf8f0ccjd0nswnzyvhgwfwx0ugsa65clz7r7 | 0x0ec493a5f8c49af9c1d3111974392e33f8887754 | 1 | 2 | 1805.896806 | -| terp1pm4avdure5axnqd25vxlsk0uup4v7t794aefdk | 0x0eebd63783cd3a6981aaa30df859fce06acf2fc5 | 1 | 2 | 1805.896806 | -| terp1p73lcxapmqx4j2270yn7urydn9qn37yqzcwkn9 | 0x0fa3fc1ba1d80d59295e7927ee0c8d994138f880 | 1 | 2 | 1805.896806 | -| terp1zzhtrfm2q6htvg3a30ky8fqacs9qk65t9nk6da | 0x10aeb1a76a06aeb6223d8bec43a41dc40a0b6a8b | 1 | 2 | 1805.896806 | -| terp1zjpcd9p3pc76gn2qtjmu690tzw92v5tlnphlmv | 0x14838694310e3da44d405cb7cd15eb138aa6517f | 1 | 2 | 1805.896806 | -| terp1zh0kkwfqq2q8phhpp2hmujtqtj9wsgeylce9se | 0x15df6b3920028070dee10aafbe49605c8ae82324 | 1 | 2 | 1805.896806 | -| terp1z6t9zj62023anwp3c4cwvjdda5tjtmpe04ecrd | 0x1696514b4a7aa3d9b831c570e649aded1725ec39 | 1 | 2 | 1805.896806 | -| terp1ryqkyg4apphgcfmu2nj3mwydhwt0shtzxmpngm | 0x19016222bd086e8c277c54e51db88dbb96f85d62 | 1 | 2 | 1805.896806 | -| terp1r8zunndywlyxy5l0t69txkjkrqakyqzxdaf430 | 0x19c5c9cda477c86253ef5e8ab35a56183b620046 | 1 | 2 | 1805.896806 | -| terp1rfn004qr8m9r22na9yw30jhl0s4n606ke9eewt | 0x1a66f7d4033eca352a7d291d17caff7c2b3d3f56 | 1 | 2 | 1805.896806 | -| terp1r0hnax2lnnvmyr250um33gwmmt7fp7s90k0t6z | 0x1bef3e995f9cd9b20d547f3718a1dbdafc90fa05 | 1 | 2 | 1805.896806 | -| terp1rhpl6marh6jzvee9kfl0q9cprua005mz0rtgr6 | 0x1dc3fd6fa3bea4266725b27ef017011f3af7d362 | 1 | 2 | 1805.896806 | -| terp1reuquteaulthvzmxwvgglrpexm66wnx94unfmu | 0x1e780e2f3de7d7760b6673108f8c3936f5a74cc5 | 1 | 2 | 1805.896806 | -| terp1r6y89qadcqw2ej3sm58dszhz6hwutkz8h2cw3f | 0x1e887283adc01cacca30dd0ed80ae2d5ddc5d847 | 1 | 2 | 1805.896806 | -| terp1r7q3z7yevlek5nzw0wmpdcdtvx3ddt9nhv44n5 | 0x1f8111789967f36a4c4e7bb616e1ab61a2d6acb3 | 1 | 2 | 1805.896806 | -| terp1r79nktc94k732ny5rf8m0dlv9tl7aar4zq242t | 0x1f8b3b2f05adbd154c941a4fb7b7ec2affeef475 | 1 | 2 | 1805.896806 | -| terp1yxr8sja9wcwzl78rc94u3lan7f3t2r9e9l93ad | 0x2186784ba5761c2ff8e3c16bc8ffb3f262b50cb9 | 1 | 2 | 1805.896806 | -| terp1y89wcj8p9rmv0grj8svnyg8settc6mvrlarjd9 | 0x21caec48e128f6c7a0723c193220f0cad78d6d83 | 1 | 2 | 1805.896806 | -| terp1ygzyxxy5lrpd3q0sjhdemdzsh35exgptt6shgn | 0x2204431894f8c2d881f095db9db450bc6993202b | 1 | 2 | 1805.896806 | -| terp1yggndhk0ef5tr7u57k57y0qfslh5ne05fgh5ll | 0x221136decfca68b1fb94f5a9e23c0987ef49e5f4 | 1 | 2 | 1805.896806 | -| terp1yt9tpvmvcnkzf074wvks0q5tghn4glu7uya2rc | 0x22cab0b36cc4ec24bfd5732d07828b45e7547f9e | 1 | 2 | 1805.896806 | -| terp1yttragaful9rguqz8t5l9s8as0hydj69lv2ums | 0x22d63ea3a9e7ca3470023ae9f2c0fd83ee46cb45 | 1 | 2 | 1805.896806 | -| terp1ywnfcahh9zfd4ejtw839rw7y9h5v0fq7w8zkzw | 0x23a69c76f72892dae64b71e251bbc42de8c7a41e | 1 | 2 | 1805.896806 | -| terp1yn76jxxpes55wjr0k9ff6xc7sca3hn8hh53tfw | 0x24fda918c1cc2947486fb1529d1b1e863b1bccf7 | 1 | 2 | 1805.896806 | -| terp1y4rk34rulz2c56py9nj65xkmgq0plmetmfjeyq | 0x254768d47cf8958a68242ce5aa1adb401e1fef2b | 1 | 2 | 1805.896806 | -| terp1yuacl66fcevnex4un0x5ctcelex75hssg8fxaa | 0x273b8feb49c6593c9abc9bcd4c2f19fe4dea5e10 | 1 | 2 | 1805.896806 | -| terp19q2thksudcgcpwxpnxvr5xlyh498r34tzhs5nr | 0x2814bbda1c6e1180b8c199983a1be4bd4a71c6ab | 1 | 2 | 1805.896806 | -| terp19v4gpah2fe30apwpyha6yyagn995g8n22gwu4g | 0x2b2a80f6ea4e62fe85c125fba213a8994b441e6a | 1 | 2 | 1805.896806 | -| terp19j8203urge87222jkquq7h03djgj4hyyxyz56y | 0x2c8ea7c783464fe52952b0380f5df16c912adc84 | 1 | 2 | 1805.896806 | -| terp194r0qr33w3dc24e0s0ps7fv020hz0qz0j8f3rh | 0x2d46f00e31745b85572f83c30f258f53ee27804f | 1 | 2 | 1805.896806 | -| terp19kwtcnk0h5dc7e420x8a29v94czcm25t2t2z93 | 0x2d9cbc4ecfbd1b8f66aa798fd51585ae058daa8b | 1 | 2 | 1805.896806 | -| terp1x8aduaqehv55n77h9tlrhua4jv4ftykpph2esf | 0x31fade7419bb2949fbd72afe3bf3b5932a9592c1 | 1 | 2 | 1805.896806 | -| terp1xdtk5twrwpqzsvxe829hr0fexyeu7wcfsngse2 | 0x33576a2dc370402830d93a8b71bd393133cf3b09 | 1 | 2 | 1805.896806 | -| terp1xcgvh52acmh4gff3zv0defw7ru649fl93xerkd | 0x3610cbd15dc6ef542531131edca5de1f3552a7e5 | 1 | 2 | 1805.896806 | -| terp1xewqvem5e7levkwr3fpcdxk63pl2lltp4kewgm | 0x365c066774cfbf9659c38a43869ada887eaffd61 | 1 | 2 | 1805.896806 | -| terp1x6p6ypmvfzndfmwlzpnvexddsc8xgfxln8lpj6 | 0x3683a2076c48a6d4eddf1066cc99ad860e6424df | 1 | 2 | 1805.896806 | -| terp18yukq0l8sgpt4lrn78gq6eur8wrwhn7ye638r8 | 0x3939603fe78202bafc73f1d00d67833b86ebcfc4 | 1 | 2 | 1805.896806 | -| terp188020p32fpnheh4csurjv5phv3ugxv4cr78755 | 0x39dea7862a48677cdeb8870726503764788332b8 | 1 | 2 | 1805.896806 | -| terp18fyffacf23895v5f64wrkluc3qunvfcjsrmn7u | 0x3a4894f709544e5a3289d55c3b7f988839362712 | 1 | 2 | 1805.896806 | -| terp18dnzy9udwgceqwh43284awh85zzduuyks3y9jq | 0x3b6622178d7231903af58a8f5ebae7a084de7096 | 1 | 2 | 1805.896806 | -| terp185x78fmvm8u9vejdck36ml2q2mj9m20d5zdj7c | 0x3d0de3a76cd9f856664dc5a3adfd4056e45da9ed | 1 | 2 | 1805.896806 | -| terp18exqu5fkc5nycggvu64g3xz56zursr9ps24e2d | 0x3e4c0e5136c5264c210ce6aa889854d0b8380ca1 | 1 | 2 | 1805.896806 | -| terp18e3r7kagm4wus6vjp5eh778d0vfks7z2s8rs8x | 0x3e623f5ba8dd5dc869920d337f78ed7b1368784a | 1 | 2 | 1805.896806 | -| terp18ufzej3qe3w8r3ce99m2h77387m2t2vrk330sf | 0x3f122cca20cc5c71c7192976abfbd13fb6a5a983 | 1 | 2 | 1805.896806 | -| terp1gq39ad4f5tmgqxcn420muv89earr3v4vqcd5kw | 0x40225eb6a9a2f6801b13aa9fbe30e5cf4638b2ac | 1 | 2 | 1805.896806 | -| terp1gtr2uju3uhqy0s3xm4wj9lt8ljjvkfzlpt7uff | 0x42c6ae4b91e5c047c226dd5d22fd67fca4cb245f | 1 | 2 | 1805.896806 | -| terp1gdu9ula6e3285z825mjzacr4edlmx9r8jkfp35 | 0x43785e7fbacc547a08eaa6e42ee075cb7fb31467 | 1 | 2 | 1805.896806 | -| terp1gwuqecp9dmahyy57u9kv7ngc86yv9mh2c0qqme | 0x43b80ce0256efb72129ee16ccf4d183e88c2eeea | 1 | 2 | 1805.896806 | -| terp1g3x6z6l35yld4z3e2ewpafa9yla9g0f72nmhpg | 0x444da16bf1a13eda8a39565c1ea7a527fa543d3e | 1 | 2 | 1805.896806 | -| terp1gn5j43wtgdr7uucv978xsn62lw6plhxrctr9us | 0x44e92ac5cb4347ee730c2f8e684f4afbb41fdcc3 | 1 | 2 | 1805.896806 | -| terp1g45derys7k4ywz69dgmygu23rxgawgsz0ppsu9 | 0x4568dc8c90f5aa470b456a364471511991d72202 | 1 | 2 | 1805.896806 | -| terp1gufwu8kum4s294cqvzwqycmwzg7z5tu4n6n2al | 0x4712ee1edcdd60a2d700609c02636e123c2a2f95 | 1 | 2 | 1805.896806 | -| terp1fx8e6nm8qftsa69wj8vqkugw8r4vw8p5tzwe6z | 0x498f9d4f6702570ee8ae91d80b710e38eac71c34 | 1 | 2 | 1805.896806 | -| terp1fgjqhntrvmauaa505r8npk8drm04yjxrwmr94y | 0x4a240bcd6366fbcef68fa0cf30d8ed1edf5248c3 | 1 | 2 | 1805.896806 | -| terp1fgau5l5a4vkm76ejvmsv8reqf3z8k9t5qga4a6 | 0x4a3bca7e9dab2dbf6b3266e0c38f204c447b1574 | 1 | 2 | 1805.896806 | -| terp1fj5vhg495s4a84yvn5mdkq3guxsc3mv7hw3jxt | 0x4ca8cba2a5a42bd3d48c9d36db0228e1a188ed9e | 1 | 2 | 1805.896806 | -| terp1fc2tmh2jntgsjknn3qnd4j4jpt9paqa0urhkup | 0x4e14bddd529ad1095a738826dacab20aca1e83af | 1 | 2 | 1805.896806 | -| terp1fc33zeh0hkt2saefwxpls3r2ceymweuaqtjf0e | 0x4e231166efbd96a877297183f8446ac649b7679d | 1 | 2 | 1805.896806 | -| terp1f6x8cd0t08f5mv69evz0f0pq4djkds93936wx4 | 0x4e8c7c35eb79d34db345cb04f4bc20ab6566c0b1 | 1 | 2 | 1805.896806 | -| terp1f64ulyd9eaj37cqexlajmrvrtmz0e9d4ap53fq | 0x4eabcf91a5cf651f601937fb2d8d835ec4fc95b5 | 1 | 2 | 1805.896806 | -| terp1f664jyx3qxjtgwqpcy3dz6yajczj288xtsp0my | 0x4eb55910d101a4b43801c122d1689d9605251ce6 | 1 | 2 | 1805.896806 | -| terp1f75pvh2gyrwp34sh3gc5ys4djga0rft238vnfr | 0x4fa8165d4820dc18d6178a314242ad923af1a56a | 1 | 2 | 1805.896806 | -| terp1f75cjk79llv4emnjw9mxaupnav5g8dcevpjrmw | 0x4fa9895bc5ffd95cee7271766ef033eb2883b719 | 1 | 2 | 1805.896806 | -| terp12qmwhfqa9cxanzem039dpm44x30jxxdjkdyfx5 | 0x5036eba41d2e0dd98b3b7c4ad0eeb5345f2319b2 | 1 | 2 | 1805.896806 | -| terp12rzzlqvrhfpnt5z74deu8wvx9w39rj9ujv32dr | 0x50c42f8183ba4335d05eab73c3b9862ba251c8bc | 1 | 2 | 1805.896806 | -| terp12xv7jtnuuvjpkrre6k6mmk8jlfx2tpv2jv0lpd | 0x5199e92e7ce3241b0c79d5b5bdd8f2fa4ca5858a | 1 | 2 | 1805.896806 | -| terp124hz242tnhu2zgk30k4u0rgd3wwuspwyt0w2ha | 0x556e25554b9df8a122d17dabc78d0d8b9dc805c4 | 1 | 2 | 1805.896806 | -| terp12usrkxc7wj9eetcwq3ug6c4kyt052ddnjmwewe | 0x57203b1b1e748b9caf0e04788d62b622df4535b3 | 1 | 2 | 1805.896806 | -| terp12al6acy5h5y3zauzgj69u9ejpk57eguxwavfrc | 0x577faee094bd0911778244b45e17320da9eca386 | 1 | 2 | 1805.896806 | -| terp1trzm3q0my72dqncdcrkxt722zxwdgw4q6sk0ln | 0x58c5b881fb2794d04f0dc0ec65f94a119cd43aa0 | 1 | 2 | 1805.896806 | -| terp1tev0rqv8usecl98w23knf8q0stea7078mrd59n | 0x5e58f18187e4338f94ee546d349c0f82f3df3fc7 | 1 | 2 | 1805.896806 | -| terp1tazl7gha2v37sttc0su5geavnlr4xghlpm5qd6 | 0x5f45ff22fd5323e82d787c394467ac9fc75322ff | 1 | 2 | 1805.896806 | -| terp1vzeqc4f76gxqryn407jeqn27utd7t0vzwcncll | 0x60b20c553ed20c0192757fa5904d5ee2dbe5bd82 | 1 | 2 | 1805.896806 | -| terp1vtwqlx8g39d5td6wc7e5qncz35jqze9z0af7sd | 0x62dc0f98e8895b45b74ec7b3404f028d240164a2 | 1 | 2 | 1805.896806 | -| terp1vs5gv3eaftzwgg09e6eykclhsrjwkgrl7f2nc4 | 0x642886473d4ac4e421e5ceb24b63f780e4eb207f | 1 | 2 | 1805.896806 | -| terp1v5lsgqt92sgx9tvlntgekt9n63r6hwysxp8men | 0x653f040165541062ad9f9ad19b2cb3d447abb890 | 1 | 2 | 1805.896806 | -| terp1vm50pqvzhp23gf5vwnprs349v5h9wh8tsjdn6t | 0x66e8f08182b85514268c74c23846a5652e575ceb | 1 | 2 | 1805.896806 | -| terp1v7st67ur7x74kfnggxytgq3zat83xfmetav7km | 0x67a0bd7b83f1bd5b26684188b40222eacf132779 | 1 | 2 | 1805.896806 | -| terp1d95knytazjhsanx5wzc8j7jywzr6hgy5prhu50 | 0x696969917d14af0eccd470b0797a447087aba094 | 1 | 2 | 1805.896806 | -| terp1dgcd7p2zjpwpc20tvqsv65dctsglzkgaayvgqe | 0x6a30df0542905c1c29eb6020cd51b85c11f1591d | 1 | 2 | 1805.896806 | -| terp1dv0atkrkwudhvngpx96xmayvzp2wxlmn94a4tg | 0x6b1fd5d876771b764d0131746df48c1054e37f73 | 1 | 2 | 1805.896806 | -| terp1dwxgjaxas78uh0rpjtklcvn3tw6nnuxg3t9fa6 | 0x6b8c8974dd878fcbbc6192edfc32715bb539f0c8 | 1 | 2 | 1805.896806 | -| terp1d36cpchgccf7a2n9uhngavhun2hl79vj4lnsyk | 0x6c7580e2e8c613eeaa65e5e68eb2fc9aafff1592 | 1 | 2 | 1805.896806 | -| terp1wqkf2geu4znquxthhq277ttvwfxjk7zusep5ht | 0x702c95233ca8a60e1977b815ef2d6c724d2b785c | 1 | 2 | 1805.896806 | -| terp1w8xuqpy3wpklu6dm6k6l34373pufxatcgvlaqm | 0x71cdc00491706dfe69bbd5b5f8d63e8878937578 | 1 | 2 | 1805.896806 | -| terp1wgvanprg3uka6xcquzk3x5fgdhcux8e52j6787 | 0x7219d984688f2ddd1b00e0ad1351286df1c31f34 | 1 | 2 | 1805.896806 | -| terp1w5u49nvs26rjsw7dvk7lx4ys3ajcs2vnr38qcs | 0x753952cd905687283bcd65bdf354908f65882993 | 1 | 2 | 1805.896806 | -| terp1wk7hjampsq0wdqwwklx3ng5rjh2j7nd3xpzm3w | 0x75bd797761801ee681ceb7cd19a28395d52f4db1 | 1 | 2 | 1805.896806 | -| terp1waa4367sw493n53vcaennjvaq5eyu4vh3ktnhz | 0x777b58ebd0754b19d22cc77339c99d05324e5597 | 1 | 2 | 1805.896806 | -| terp10rqgqss549jl2da37q2gnnt07q63pmctnahu02 | 0x78c0804214a965f537b1f01489cd6ff03510ef0b | 1 | 2 | 1805.896806 | -| terp109qquegqnmc8qwlz3ln2kfva3kt7ak7d6gnxvw | 0x79400e65009ef0703be28fe6ab259d8d97eedbcd | 1 | 2 | 1805.896806 | -| terp10vz79wpzew25p5ekuq7ldemwsqfyjyqfcu8hn2 | 0x7b05e2b822cb9540d336e03df6e76e8012491009 | 1 | 2 | 1805.896806 | -| terp10vsfdwx6f8cwrwyr5yrc8zhhjl6r5q4rcz9nu7 | 0x7b2096b8da49f0e1b883a107838af797f43a02a3 | 1 | 2 | 1805.896806 | -| terp10wwnwdetqpdq4qsyrar6n3xztwx9pppvqh9xs9 | 0x7b9d37372b005a0a82041f47a9c4c25b8c50842c | 1 | 2 | 1805.896806 | -| terp10kwmzkk8lhzctufx8v59dqjfz3adyuf555sp9j | 0x7d9db15ac7fdc585f1263b28568249147ad27134 | 1 | 2 | 1805.896806 | -| terp106rcul2su48lf5773s0zptu4dchn5huxt6wnxv | 0x7e878e7d50e54ff4d3de8c1e20af956e2f3a5f86 | 1 | 2 | 1805.896806 | -| terp1sq8jg5tp83pqr8jgff4wry29klzu8cqen6l5c4 | 0x800f2451613c42019e484a6ae19145b7c5c3e019 | 1 | 2 | 1805.896806 | -| terp1sx4h9kwledadpl2hxhs6q5lrg6yaujaqg689tz | 0x81ab72d9dfcb7ad0fd5735e1a053e34689de4ba0 | 1 | 2 | 1805.896806 | -| terp1s37pkne5ay7j46qmn5yec0jj757e404zk6dxcy | 0x847c1b4f34e93d2ae81b9d099c3e52f53d9abea2 | 1 | 2 | 1805.896806 | -| terp1s3lh9khcwdxx0w37az59fxttawmj7s3c5nxjm2 | 0x847f72daf8734c67ba3ee8a854996bebb72f4238 | 1 | 2 | 1805.896806 | -| terp1saxhhekd606g9v38tc74gwtrxyft9hfmgsnqnv | 0x874d7be6cdd3f482b2275e3d5439633112b2dd3b | 1 | 2 | 1805.896806 | -| terp1s7edcdtqj8regjgvh0mxzwzv0e3586npj5jq4q | 0x87b2dc356091c794490cbbf661384c7e6343ea61 | 1 | 2 | 1805.896806 | -| terp13525f7feyvfxklmdsn6meugc2mlw2lak3qdlly | 0x8d1544f93923126b7f6d84f5bcf11856fee57fb6 | 1 | 2 | 1805.896806 | -| terp13ap4n5wzzej99d085qn594h7njj5fr77p00r7x | 0x8f4359d1c2166452b5e7a02742d6fe9ca5448fde | 1 | 2 | 1805.896806 | -| terp1jqanxahm4wethcjps74mdmmn3uejrau4qmzwfl | 0x903b3376fbabb2bbe24187abb6ef738f3321f795 | 1 | 2 | 1805.896806 | -| terp1j8cmf4658a8y2ftzsaj73quk07kdyk2c78a2hq | 0x91f1b4d7543f4e4525628765e883967facd25958 | 1 | 2 | 1805.896806 | -| terp1jg50d2ez3vmmpcuntfzxxvtfse3w6zfyrj0l4f | 0x9228f6ab228b37b0e3935a446331698662ed0924 | 1 | 2 | 1805.896806 | -| terp1jtwgvlr8n4lq3qp975zmt0gy3kqu45jwh7ut08 | 0x92dc867c679d7e088025f505b5bd048d81cad24e | 1 | 2 | 1805.896806 | -| terp1jsrrgdg2tek8lur33stpdastu7lts5fxdy5mlt | 0x940634350a5e6c7ff0718c1616f60be7beb85126 | 1 | 2 | 1805.896806 | -| terp1j3f6jrs4pzv3cd4xdtxugn8w0pf0k945wr6afr | 0x9453a90e1508991c36a66acdc44cee7852fb16b4 | 1 | 2 | 1805.896806 | -| terp1j5x832ufymxek5zu5uwnwpw5pqv2pvl48r6xx2 | 0x950c78ab8926cd9b505ca71d3705d40818a0b3f5 | 1 | 2 | 1805.896806 | -| terp1jhellk9mmke4ud0q3k2nq804rr4mhm7xr9xy4t | 0x95f3ffd8bbddb35e35e08d95301df518ebbbefc6 | 1 | 2 | 1805.896806 | -| terp1jck0gqc8c6httcpqj5r7zezqqx2502mtfhuytg | 0x962cf40307c6aeb5e0209507e16440019547ab6b | 1 | 2 | 1805.896806 | -| terp1jekmf7rtplzppr367gn4mlxz8ytuayqkmsr668 | 0x966db4f86b0fc4108e3af2275dfcc23917ce9016 | 1 | 2 | 1805.896806 | -| terp1j6rw7hjju506dj9mltxt9lmtjkxyvfdfqlqv5h | 0x9686ef5e52e51fa6c8bbfaccb2ff6b958c4625a9 | 1 | 2 | 1805.896806 | -| terp1j6vu52dj5ux97lpwpnflzu7d0fx82gpw8h6ujs | 0x9699ca29b2a70c5f7c2e0cd3f173cd7a4c75202e | 1 | 2 | 1805.896806 | -| terp1jawndz5690pq9rhv9vyw3aj9vwyj3z46ltw79c | 0x975d368a9a2bc2028eec2b08e8f6456389288aba | 1 | 2 | 1805.896806 | -| terp1j7g87cwp4py0c3xe58n5r9x6m9us392phuqftu | 0x97907f61c1a848fc44d9a1e74194dad979089541 | 1 | 2 | 1805.896806 | -| terp1jlqzt87qm09tva3pmxjpvhckvsfrsz6j7vpx6x | 0x97c0259fc0dbcab67621d9a4165f166412380b52 | 1 | 2 | 1805.896806 | -| terp1n8y4yetme6y4cf24gd7qeca9nfa6tq3mwls0rz | 0x99c952657bce895c2555437c0ce3a59a7ba5823b | 1 | 2 | 1805.896806 | -| terp1n22rqpaxv72anrwxtplt9get3yjh29y52wztv9 | 0x9a943007a66795d98dc6587eb2a32b8925751494 | 1 | 2 | 1805.896806 | -| terp1nshtuz54ywwx4m9v7hpgmtq4k5rjvtn9qwmwfg | 0x9c2ebe0a95239c6aecacf5c28dac15b507262e65 | 1 | 2 | 1805.896806 | -| terp1n3esme5mam2t45uzqw5hp9e28a3f7xh9v2nzr0 | 0x9c730de69beed4bad38203a970972a3f629f1ae5 | 1 | 2 | 1805.896806 | -| terp1nnyzyanm8aw36lfq4mag469qmc493c5vgpsv3d | 0x9cc822767b3f5d1d7d20aefa8ae8a0de2a58e28c | 1 | 2 | 1805.896806 | -| terp1n47j5xnhx5xst4kchrn08r6uhgkm9w4qjwytme | 0x9d7d2a1a77350d05d6d8b8e6f38f5cba2db2baa0 | 1 | 2 | 1805.896806 | -| terp15qmwx48nuamq8lmxy4zw9ayv0jvjv75m25yvjd | 0xa036e354f3e77603ff662544e2f48c7c99267a9b | 1 | 2 | 1805.896806 | -| terp15p4mcllkm78r9v0xzkthmyvglanezldzhku8g9 | 0xa06bbc7ff6df8e32b1e615977d9188ff67917da2 | 1 | 2 | 1805.896806 | -| terp15x6fwzf8hqppe6lqw7pld7ycu06jp7jxxpske6 | 0xa1b4970927b8021cebe07783f6f898e3f520fa46 | 1 | 2 | 1805.896806 | -| terp1529u3zu4qx33mp0ls93lyu2kg76gvx93w5x8st | 0xa28bc88b9501a31d85ff8163f2715647b48618b1 | 1 | 2 | 1805.896806 | -| terp150ct75dr8gswwhw0rc57u8sc5usthjk0gsnfk9 | 0xa3f0bf51a33a20e75dcf1e29ee1e18a720bbcacf | 1 | 2 | 1805.896806 | -| terp15kc4whgz2mhnejnhm9r2fqe8gn5g4q023gct30 | 0xa5b1575d0256ef3cca77d946a4832744e88a81ea | 1 | 2 | 1805.896806 | -| terp14qffjylhjc0u833ryhl2zjgwefgmsxn3ckt99d | 0xa8129913f7961fc3c62325fea1490eca51b81a71 | 1 | 2 | 1805.896806 | -| terp14ts4jppnzhddw6ayx8yhpehwdt8pgk92lgmk4k | 0xaae159043315dad76ba431c970e6ee6ace1458aa | 1 | 2 | 1805.896806 | -| terp1404yzgq3cxu4jzcaefqlc2gqz2sxutgwpracup | 0xabea412011c1b9590b1dca41fc290012a06e2d0e | 1 | 2 | 1805.896806 | -| terp1438nme37hjy9vxwy7v3kve7jvwwdzddg42q76n | 0xac4f3de63ebc885619c4f3236667d2639cd135a8 | 1 | 2 | 1805.896806 | -| terp14knk3l7pqu02f4tx39k699t9m0hk6wghm4t4dq | 0xada768ffc1071ea4d566896da29565dbef6d3917 | 1 | 2 | 1805.896806 | -| terp1kz7mamwrvclcmrayh46tu9ne4fx5f083p82yxs | 0xb0bdbeedc3663f8d8fa4bd74be1679aa4d44bcf1 | 1 | 2 | 1805.896806 | -| terp1k8z06g6szytj3s8w5vfluy7uq3h73tcpu27atv | 0xb1c4fd2350111728c0eea313fe13dc046fe8af01 | 1 | 2 | 1805.896806 | -| terp1kfwhrge42hdcrc0nwj7ujdwc25sdgws0lhm2d5 | 0xb25d71a33555db81e1f374bdc935d85520d43a0f | 1 | 2 | 1805.896806 | -| terp1ktfezltuydd4cktdfd4sw720fjgh5nz6pxsjhe | 0xb2d3917d7c235b5c596d4b6b07794f4c917a4c5a | 1 | 2 | 1805.896806 | -| terp1ksjzsx89eg74u98qrgh5rtszeevhfkaeufnej2 | 0xb4242818e5ca3d5e14e01a2f41ae02ce5974dbb9 | 1 | 2 | 1805.896806 | -| terp1k3tuhhx779r5p6f0fpa6rn7dj4xdz9lpe3hj6h | 0xb457cbdcdef14740e92f487ba1cfcd954cd117e1 | 1 | 2 | 1805.896806 | -| terp1k5z6lttshafn43wul9xfa7d8gday697hfxx0qg | 0xb505afad70bf533ac5dcf94c9ef9a7437a4d17d7 | 1 | 2 | 1805.896806 | -| terp1k4k2a6d2vtm6ns0vfxffnf0nwdh72806unag8r | 0xb56caee9aa62f7a9c1ec499299a5f3736fe51dfa | 1 | 2 | 1805.896806 | -| terp1hp2mwckev93r2520sva00dlwk76p5n8dzw23xh | 0xb855b762d9616235514f833af7b7eeb7b41a4ced | 1 | 2 | 1805.896806 | -| terp1hz9kc6srp0q36hrgqatgym6yv5j9w825slh97p | 0xb88b6c6a030bc11d5c680756826f446524571d54 | 1 | 2 | 1805.896806 | -| terp1hxpyg6a0mj8m3zezuyarvhy9sw2gkt4uzgnwhn | 0xb982446bafdc8fb88b22e13a365c8583948b2ebc | 1 | 2 | 1805.896806 | -| terp1htzys52c0e5yjhmt7tu3hkpxqg6dd09m3v9ard | 0xbac44851587e68495f6bf2f91bd8260234d6bcbb | 1 | 2 | 1805.896806 | -| terp1h0trrzv3wst3z6zje5ssr4nsxpw3ga8u585cme | 0xbbd63189917417116852cd2101d670305d1474fc | 1 | 2 | 1805.896806 | -| terp1h0s8m9r52uf8uqn4ep0k0gyydlgxshwcu5j8yq | 0xbbe07d947457127e0275c85f67a0846fd0685dd8 | 1 | 2 | 1805.896806 | -| terp1h4wsq7j0x79ayvdg9kgr094k86ky7jum4qswjq | 0xbd5d007a4f378bd231a82d903796b63eac4f4b9b | 1 | 2 | 1805.896806 | -| terp1hhdm8z6jfz6ua4hx57hpshszx338psdlxlyjpa | 0xbddbb38b5248b5ced6e6a7ae185e02346270c1bf | 1 | 2 | 1805.896806 | -| terp1hheujkggzdwfu4yj30aygrpvsz9zgnaf6t0tz4 | 0xbdf3c95908135c9e54928bfa440c2c808a244fa9 | 1 | 2 | 1805.896806 | -| terp1hc6x2la9szd5um0tyem20fly9h6978gkryq0l2 | 0xbe34657fa5809b4e6deb2676a7a7e42df45f1d16 | 1 | 2 | 1805.896806 | -| terp1h6x70tlpa6xu73s8vrem5jrfg263hc9kt4c29h | 0xbe8de7afe1ee8dcf460760f3ba486942b51be0b6 | 1 | 2 | 1805.896806 | -| terp1hmsl0cmfkvn3pz8dtzljyh038nvk6vk4czjusk | 0xbee1f7e369b3271088ed58bf225df13cd96d32d5 | 1 | 2 | 1805.896806 | -| terp1hu078mzlh7ndjhufzcy36msdsrtnjd638cyktw | 0xbf1fe3ec5fbfa6d95f8916091d6e0d80d7393751 | 1 | 2 | 1805.896806 | -| terp1cpzdulc0yqq6ckaqm89j6ypqrszl3pqzt6ah8v | 0xc044de7f0f2001ac5ba0d9cb2d10201c05f88402 | 1 | 2 | 1805.896806 | -| terp1cznyf242h06umh7twmg4jghgpm0c8jdqk5f9cd | 0xc0a644aaaabbf5cddfcb76d15922e80edf83c9a0 | 1 | 2 | 1805.896806 | -| terp1crf3fzg0us7r5vhpr05l0pwhwnnvu0h2m09f9f | 0xc0d314890fe43c3a32e11be9f785d774e6ce3eea | 1 | 2 | 1805.896806 | -| terp1ctsve703g8n8elmt4radpgx90n52l64wp27d93 | 0xc2e0ccf9f141e67cff6ba8fad0a0c57ce8afeaae | 1 | 2 | 1805.896806 | -| terp1cv5820lfemuwc9c4x9lplp2ewm6tt4z0cpykwn | 0xc328753fe9cef8ec1715317e1f855976f4b5d44f | 1 | 2 | 1805.896806 | -| terp1cjd0ql9nalj505sj9sj7tcugn328uwku9gw23m | 0xc49af07cb3efe547d2122c25e5e3889c547e3adc | 1 | 2 | 1805.896806 | -| terp1ck9gzd4vzx3sac0ptvnf0al85vx3mfywasfuhz | 0xc58a8136ac11a30ee1e15b2697f7e7a30d1da48e | 1 | 2 | 1805.896806 | -| terp1c6alftlmv29sycafzr7qp3rz6dhuvkltc07pfu | 0xc6bbf4affb628b0263a910fc00c462d36fc65beb | 1 | 2 | 1805.896806 | -| terp1cmt7xmdf93fwmzfpjspjyntrcuupt497y39afg | 0xc6d7e36da92c52ed89219403224d63c73815d4be | 1 | 2 | 1805.896806 | -| terp1esd6ajtw2qdpt5kru4trze97z73q6asfejv7qe | 0xcc1baec96e501a15d2c3e5563164be17a20d7609 | 1 | 2 | 1805.896806 | -| terp1e3yg2ujzzswv0a8c240c502ma5p42mqer7mcjx | 0xcc48857242141cc7f4f8555f8a3d5bed03556c19 | 1 | 2 | 1805.896806 | -| terp1ecj8265udu45j6ht8xhslx6pwykf0dqqaunjdk | 0xce24756a9c6f2b496aeb39af0f9b41712c97b400 | 1 | 2 | 1805.896806 | -| terp1ee6kg67zglxzrk0r296nw67x03at6aqtjlc55x | 0xce75646bc247cc21d9e35175376bc67c7abd740b | 1 | 2 | 1805.896806 | -| terp1emq0uyuyj55clycynhnzrhy48lnp93ul4mq73f | 0xcec0fe138495298f93049de621dc953fe612c79f | 1 | 2 | 1805.896806 | -| terp1eug45fa40ye32kxam9urv45cthd9nnpw6umdel | 0xcf115a27b579331558ddd9783656985dda59cc2e | 1 | 2 | 1805.896806 | -| terp1eaw0jaz8s8mqnpuz6xny9hdzfxw5rhl6ekakwz | 0xcf5cf9744781f6098782d1a642dda2499d41dffa | 1 | 2 | 1805.896806 | -| terp1eltj2rm6ew0dqxmp37j6mw8vd7lgmrc9lkrmwy | 0xcfd7250f7acb9ed01b618fa5adb8ec6fbe8d8f05 | 1 | 2 | 1805.896806 | -| terp162mhtapks9ctefrac2z72msen462e0erl80jqh | 0xd2b775f4368170bca47dc285e56e199d74acbf23 | 1 | 2 | 1805.896806 | -| terp16vnad22hwse44km3zhddgxzthw42p4jjx0fh5m | 0xd327d6a95774335adb7115dad4184bbbaaa0d652 | 1 | 2 | 1805.896806 | -| terp16jzacxm7ca0qgakfcay34f9manp9h6e0jjt0x3 | 0xd485dc1b7ec75e0476c9c7491aa4bbecc25beb2f | 1 | 2 | 1805.896806 | -| terp16jgrawn5ltwreet9u3jmnvs79huqs4qy56526l | 0xd4903eba74fadc3ce565e465b9b21e2df8085404 | 1 | 2 | 1805.896806 | -| terp16m8n0ykl4lhzxguayf89l4trvx9ah9faf0lqq0 | 0xd6cf3792dfafee23239d224e5fd563618bdb953d | 1 | 2 | 1805.896806 | -| terp1mgp46njalg77l2wdtftatshyrv25dgwj22plgv | 0xda035d4e5dfa3defa9cd5a57d5c2e41b1546a1d2 | 1 | 2 | 1805.896806 | -| terp1mn967dytwcekl4wvzgk8q6yqa3939jwqg20yht | 0xdccbaf348b76336fd5cc122c706880ec4b12c9c0 | 1 | 2 | 1805.896806 | -| terp1mk9s2rra0gnsdm7ju9l05a40awdxdu4lzq4wl9 | 0xdd8b050c7d7a2706efd2e17efa76afeb9a66f2bf | 1 | 2 | 1805.896806 | -| terp1m6khcj330sk9hy9d85l5l00fjt04yg45y82jum | 0xdead7c4a317c2c5b90ad3d3f4fbde992df5222b4 | 1 | 2 | 1805.896806 | -| terp1up223yacc85plc3upecccyu5jztvugf384p22n | 0xe054a893b8c1e81fe23c0e718c13949096ce2131 | 1 | 2 | 1805.896806 | -| terp1uz2dld4y5sqvf7dweehs3cy988epgrv5tq3z38 | 0xe094dfb6a4a400c4f9aece6f08e08539f2140d94 | 1 | 2 | 1805.896806 | -| terp1urujrn0jgjeh054tyu6lr6gwn59xvg9a25jyva | 0xe0f921cdf244b377d2ab2735f1e90e9d0a6620bd | 1 | 2 | 1805.896806 | -| terp1u80rzkrar3fpn8uqf6k76j6emfgv29s3stfacs | 0xe1de31587d1c52199f804eaded4b59da50c51611 | 1 | 2 | 1805.896806 | -| terp1us8spvlnc44xutev67ujsv0nr0nq507jjmqmw3 | 0xe40f00b3f3c56a6e2f2cd7b92831f31be60a3fd2 | 1 | 2 | 1805.896806 | -| terp1u3u0e6y9g56vqhnupjslquwqt7hknukgyrdevk | 0xe478fce8854534c05e7c0ca1f071c05faf69f2c8 | 1 | 2 | 1805.896806 | -| terp1aqac69gjpxjhhas8ywxlg70lfcw7mqv9xdaeyl | 0xe83b8d151209a57bf607238df479ff4e1ded8185 | 1 | 2 | 1805.896806 | -| terp1azqrm2xqpayh6fw8hwju0v5000gke780xe4tcp | 0xe8803da8c00f497d25c7bba5c7b28f7bd16cf8ef | 1 | 2 | 1805.896806 | -| terp1adh2pmrazj3t5s6muna6jp6272mekva9p2ytch | 0xeb6ea0ec7d14a2ba435be4fba9074af2b79b33a5 | 1 | 2 | 1805.896806 | -| terp1a0u8893x0fyznvap50kmgqpyd2d7qaerz72ut2 | 0xebf87396267a4829b3a1a3edb400246a9be07723 | 1 | 2 | 1805.896806 | -| terp1a53kynatutqkz9quhc0q8y8gt5f47kj5yyjucz | 0xed23624fabe2c161141cbe1e0390e85d135f5a54 | 1 | 2 | 1805.896806 | -| terp1a5ehfwx3txmm7xg77k5pf2tul3gg4xeet3j0gv | 0xed3374b8d159b7bf191ef5a814a97cfc508a9b39 | 1 | 2 | 1805.896806 | -| terp1ah5dvff5zm9t6mhhkde83c2ptehsz9shxw33n0 | 0xede8d6253416cabd6ef7b37278e1415e6f011617 | 1 | 2 | 1805.896806 | -| terp1ac5r0p388xan98z74hq3htq4c5cazvdq5w4f85 | 0xee2837862739bb329c5eadc11bac15c531d131a0 | 1 | 2 | 1805.896806 | -| terp1alfra8q97lcey3ase4yvkx6alscwrhlax9y6es | 0xefd23e9c05f7f19247b0cd48cb1b5dfc30e1dffd | 1 | 2 | 1805.896806 | -| terp179r44c4fwyqy7ptx5zplh68ujdy6h7x4pkf3ns | 0xf1475ae2a971004f0566a083fbe8fc9349abf8d5 | 1 | 2 | 1805.896806 | -| terp17stzyjkqp4n82n8tzxec8enr0ykzv7rcq06xjh | 0xf416224ac00d66754ceb11b383e663792c267878 | 1 | 2 | 1805.896806 | -| terp175ldjn6lh966t0n7kf4rle53yptl7gj64hr2vc | 0xf53ed94f5fb975a5be7eb26a3fe6912057ff225a | 1 | 2 | 1805.896806 | -| terp176fw72fnqvquc3aeeazkhfmwz02rfg8406n0sn | 0xf692ef29330301cc47b9cf456ba76e13d434a0f5 | 1 | 2 | 1805.896806 | -| terp17647le7jrqqfmr5we9mjjslk8xug59fz5akh2h | 0xf6abefe7d218009d8e8ec9772943f639b88a1522 | 1 | 2 | 1805.896806 | -| terp17llrry3hpsfvpr6p5wewqylc2wmy768jd77sgd | 0xf7fe3192370c12c08f41a3b2e013f853b64f68f2 | 1 | 2 | 1805.896806 | -| terp1lztwgfnptez2ycg0fs74xsak8d2huy0zsczwdj | 0xf896e426615e44a2610f4c3d5343b63b557e11e2 | 1 | 2 | 1805.896806 | -| terp1lg6ldxndm8hcpt6qvct580j3ncc0haqxazethx | 0xfa35f69a6dd9ef80af40661743be519e30fbf406 | 1 | 2 | 1805.896806 | -| terp1lt0dzquwgvxgv6hf844krk5wm49j3ur8ewuwlz | 0xfaded1038e430c866ae93d6b61da8edd4b28f067 | 1 | 2 | 1805.896806 | -| terp1ldags2j00zz2p9gdr3tcsvggmhprmtdfgzu7vj | 0xfb7a882a4f7884a0950d1c57883108ddc23dada9 | 1 | 2 | 1805.896806 | -| terp1l0cydzh8ratmj54s3kx0ndhurpgpw9gfz72ynl | 0xfbf0468ae71f57b952b08d8cf9b6fc1850171509 | 1 | 2 | 1805.896806 | -| terp1l0cukdpky7ksqutrpfngxf30mfwas83w544jp8 | 0xfbf1cb343627ad0071630a6683262fda5dd81e2e | 1 | 2 | 1805.896806 | -| terp1ls9swryvh35qydqxg6mcrdy4tdlfh8s26m9t6l | 0xfc0b070c8cbc6802340646b781b4955b7e9b9e0a | 1 | 2 | 1805.896806 | -| terp1lsdg00368720fe2mvj7q4np27v959jwjnxgj3k | 0xfc1a87be3a3f94f4e55b64bc0acc2af30b42c9d2 | 1 | 2 | 1805.896806 | -| terp1lcwuav6sw23g4utsfkhp2fmyeuryj4nwuf5t6w | 0xfe1dceb35072a28af1704dae152764cf0649566e | 1 | 2 | 1805.896806 | diff --git a/eth/addresses/secret_sesh.md b/eth/addresses/secret_sesh.md deleted file mode 100644 index 62254cf..0000000 --- a/eth/addresses/secret_sesh.md +++ /dev/null @@ -1,530 +0,0 @@ -# Secret Sesh Address Conversion -| Terp Public Address | Ethereum Public Address | Tokens Held | Points | Airdrop Allocation | -|----------------------|--------------------------|---------------|-------------|--------------------| -|terp1ec3tsu6ss4v04yfpwynj4e7arx8q8rnhwdtqsp | 0xce22b873508558fa912171272ae7dd198e038e77 | 148 | 18 | 16091.95402 | -|terp1ysu9t29n5wt0meks4dj9huucuux3p82zkhdfza | 0x243855a8b3a396fde6d0ab645bf398e70d109d42 | 41 | 18 | 16091.95402 | -|terp1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq5ffndw | 0x0000000000000000000000000000000000000000 | 31 | 18 | 16091.95402 | -|terp1zkdmj0fz8mv99qjnfk2lafvrl4v6p9um9nf4vt | 0x159bb93d223ed85282534d95fea583fd59a0979b | 30 | 18 | 16091.95402 | -|terp12gpm95ksuq5h4qu0l3enw4jzt2gmeqkclms045 | 0x5203b2d2d0e0297a838ffc733756425a91bc82d8 | 10 | 12 | 10727.96935 | -|terp1v2ev6nm4s47rqrn72pr9sccwxea4qrmyg2y54z | 0x62b2cd4f75857c300e7e504658630e367b500f64 | 10 | 12 | 10727.96935 | -|terp1ssunxemaf4cuvfd5dxum7e7s2tk8n0j4702kgp | 0x843933677d4d71c625b469b9bf67d052ec79be55 | 10 | 12 | 10727.96935 | -|terp1k593md8c6jglj9n009t6lsyy5rr0h330akedw4 | 0xb50b1db4f8d491f9166f7957afc084a0c6fbc62f | 10 | 12 | 10727.96935 | -|terp1qzex3dc33f0hzrzk7d3ajrr83y5sh6qcfzfk9p | 0x00b268b7118a5f710c56f363d90c6789290be818 | 9 | 12 | 10727.96935 | -|terp1ck2j8e5acnhnvpczl6w2hxk8xa445n9j485jv6 | 0xc59523e69dc4ef360702fe9cab9ac7376b5a4cb2 | 9 | 12 | 10727.96935 | -|terp1rsq7ttck6kqrufm209gjq00hf7quvc0mzv33v6 | 0x1c01e5af16d5803e276a7951203df74f81c661fb | 8 | 12 | 10727.96935 | -|terp1kkg5e875wvhkp7r3v2pv24cf8hp58aefdy7rju | 0xb5914c9fd4732f60f8716282c557093dc343f729 | 8 | 12 | 10727.96935 | -|terp1k6ewvj2t5r099y5me2cewqfcty8xwk9uaje8vt | 0xb6b2e6494ba0de52929bcab1970138590e6758bc | 8 | 12 | 10727.96935 | -|terp17v5nv38wpxkwfhu7vhyd8rux8t8ecv8tgrkfkx | 0xf3293644ee09ace4df9e65c8d38f863acf9c30eb | 8 | 12 | 10727.96935 | -|terp17s46wryx2fpav7a2pt8vdvyhc9wxj24ffkx3yh | 0xf42ba70c865243d67baa0acec6b097c15c692aa9 | 8 | 12 | 10727.96935 | -|terp1pux4vkq33lgprglx88xwuk2l8f4gg0zjkx8zf4 | 0x0f0d5658118fd011a3e639ccee595f3a6a843c52 | 7 | 12 | 10727.96935 | -|terp1zxzea3z9zpsqvdfz2vxltfns0khdzakvhee3sg | 0x11859ec4451060063522530df5a6707daed176cc | 7 | 12 | 10727.96935 | -|terp1gk5kzd97wz2re0ug395ugczkf00gtd8c9qcuvz | 0x45a96134be70943cbf888969c460564bde85b4f8 | 7 | 12 | 10727.96935 | -|terp1czwy0guy2l0eum4dwmxpla8m2l4rqca3a472qd | 0xc09c47a38457df9e6ead76cc1ff4fb57ea3063b1 | 7 | 12 | 10727.96935 | -|terp1rrpemagmltpn0mk60x8gqmlwegqhz08kwqpljp | 0x18c39df51bfac337eeda798e806feeca01713cf6 | 6 | 12 | 10727.96935 | -|terp1yt06eg8384ng7djkm9yuufmjy9n9q0fds6tavc | 0x22dfaca0f13d668f3656d949ce27722166503d2d | 6 | 12 | 10727.96935 | -|terp1x4rjj34qcvxgj29c3w27xfenptv9xwwr9je7gk | 0x35472946a0c30c8928b88b95e327330ad85339c3 | 6 | 12 | 10727.96935 | -|terp1tsw7cgzuwwqz3uhdp4p6rdfky6777snajvjmkg | 0x5c1dec205c738028f2ed0d43a1b53626bdef427d | 6 | 12 | 10727.96935 | -|terp1wyuu9dh5ltkscxw5tg3avdcqdcpscvt9uy29mm | 0x7139c2b6f4faed0c19d45a23d637006e030c3165 | 6 | 12 | 10727.96935 | -|terp10s56qlwxfuc2j93mph79sar0q429gmv2ws2rdm | 0x7c29a07dc64f30a9163b0dfc58746f0554546d8a | 6 | 12 | 10727.96935 | -|terp1nqzjun7dcudc58lquyzll6t6l2jr2skdds4m5d | 0x98052e4fcdc71b8a1fe0e105ffe97afaa43542cd | 6 | 12 | 10727.96935 | -|terp1ndupeyjuatnqqzqyndqnstyysqg9055zvz7364 | 0x9b781c925ceae60008049b41382c84801057d282 | 6 | 12 | 10727.96935 | -|terp14xypsjl8jj4gm5r3ngvsa94zkgxs5cjw8z3uwr | 0xa988184be794aa8dd0719a190e96a2b20d0a624e | 6 | 12 | 10727.96935 | -|terp1hmx4ppya6gx828es6nljsqvan6c3y8vk7jlyt4 | 0xbecd50849dd20c751f30d4ff28019d9eb1121d96 | 6 | 12 | 10727.96935 | -|terp1m867nrk3rpn4vu8ezanhfnxvx93m2f6f9sue0s | 0xd9f5e98ed118675670f9176774cccc3163b52749 | 6 | 12 | 10727.96935 | -|terp1qt0csws3cyfr4dh4teumauglng4k0wu0cynxyn | 0x02df883a11c1123ab6f55e79bef11f9a2b67bb8f | 5 | 12 | 10727.96935 | -|terp1ps3cycr8x4eslcakjlh3pzh4djwarnjdfjpt5w | 0x0c2382606735730fe3b697ef108af56c9dd1ce4d | 5 | 12 | 10727.96935 | -|terp1zgauamc7zs8wf6tn6casle0q2fat4dxzldhrrz | 0x123bceef1e140ee4e973d63b0fe5e0527abab4c2 | 5 | 12 | 10727.96935 | -|terp1zvz0hd05xqg283pel2pnvykey87kl6yuee4m9k | 0x1304fbb5f43010a3c439fa833612d921fd6fe89c | 5 | 12 | 10727.96935 | -|terp1y2x39u4h3ykgkaxmuyyngpgsp2trkn6qwfunsj | 0x228d12f2b7892c8b74dbe1093405100a963b4f40 | 5 | 12 | 10727.96935 | -|terp1820jg24t5yyx6dg2z62uk7ykzl9368ygktyhqm | 0x3a9f242aaba1086d350a1695cb789617cb1d1c88 | 5 | 12 | 10727.96935 | -|terp12zrzmtxmexvae9yuh65styx636ahaapp74fdnm | 0x50862dacdbc999dc949cbea90590da8ebb7ef421 | 5 | 12 | 10727.96935 | -|terp12wt02hxzcptlkyh7h64au9p2fheg57ryvuspc0 | 0x5396f55cc2c057fb12febeabde142a4df28a7864 | 5 | 12 | 10727.96935 | -|terp1dnaxecupe048v2j6rshr4gtt3646fkamhhsdqh | 0x6cfa6ce381cbea762a5a1c2e3aa16b8eaba4dbbb | 5 | 12 | 10727.96935 | -|terp1j4l445nlytzcmgf9suq9ld9y6s4ny9ac0akl0j | 0x957f5ad27f22c58da12587005fb4a4d42b3217b8 | 5 | 12 | 10727.96935 | -|terp1n8pu0c952hvtedxr2l9300cmns0edyh87e6nmr | 0x99c3c7e0b455d8bcb4c357cb17bf1b9c1f9692e7 | 5 | 12 | 10727.96935 | -|terp15dgts0gteqk4qts28d9n8agm77l6pz522qwyjn | 0xa350b83d0bc82d502e0a3b4b33f51bf7bfa08a8a | 5 | 12 | 10727.96935 | -|terp15kawgduav6z304hmk9x7qc64ltk0j8l6w5c4wk | 0xa5bae4379d668517d6fbb14de06355faecf91ffa | 5 | 12 | 10727.96935 | -|terp15m2u59hf7f3mrfc4rj5q9ghmgsnk84ewf7xhje | 0xa6d5ca16e9f263b1a7151ca802a2fb442763d72e | 5 | 12 | 10727.96935 | -|terp15ahtxn79sx8qr5hc9a3sawudl2wxv32n72fdfl | 0xa76eb34fc5818e01d2f82f630ebb8dfa9c664553 | 5 | 12 | 10727.96935 | -|terp14pm0hhrfef07r2un8hqgcdg4d7waqtxzc70ytp | 0xa876fbdc69ca5fe1ab933dc08c35156f9dd02cc2 | 5 | 12 | 10727.96935 | -|terp1kjfa77nz488hpfjh9c07jxm3aztw9j90fs53lg | 0xb493df7a62a9cf70a6572e1fe91b71e896e2c8af | 5 | 12 | 10727.96935 | -|terp1cy9kmh0v7pcr9qj3rvce0fulvm2kt4mf0k92x0 | 0xc10b6dddecf0703282511b3197a79f66d565d769 | 5 | 12 | 10727.96935 | -|terp1un75memvx66qxamgzhlcqpuwd6ty9y3lpr9eqz | 0xe4fd4de76c36b403776815ff80078e6e9642923f | 5 | 12 | 10727.96935 | -|terp1azc478jfudvqkgdcsm0dsu4addm0dw37s7nn9m | 0xe8b15f1e49e3580b21b886ded872bd6b76f6ba3e | 5 | 12 | 10727.96935 | -|terp17k52c9xqpmywzs3hqpt5nf532n0hgvsrr7wj8n | 0xf5a8ac14c00ec8e14237005749a69154df743203 | 5 | 12 | 10727.96935 | -|terp1lcr043d8w39pvnl2ql0s5l04ju2rxuj5xxjjyk | 0xfe06fac5a7744a164fea07df0a7df59714337254 | 5 | 12 | 10727.96935 | -|terp1qd6ntgpvn04670stjuh8dzsn6phd2gr9a5dvcu | 0x037535a02c9bebaf3e0b972e768a13d06ed52065 | 4 | 12 | 10727.96935 | -|terp1yzjvscyhz7wagx4450g0k003rk40wn5qwca4dk | 0x20a4c86097179dd41ab5a3d0fb3df11daaf74e80 | 4 | 12 | 10727.96935 | -|terp1yn3gqve5757205pdetjqzkfrfj6grhgn6pz9hj | 0x24e2803334f53ca7d02dcae40159234cb481dd13 | 4 | 12 | 10727.96935 | -|terp1ycnrxfc3eapsml3yuxxm84vp6cwlq5me387q24 | 0x2626332711cf430dfe24e18db3d581d61df05379 | 4 | 12 | 10727.96935 | -|terp19rt9l02hhpucc8n04y45ns928r58x7cm7m4f9w | 0x28d65fbd57b8798c1e6fa92b49c0aa38e8737b1b | 4 | 12 | 10727.96935 | -|terp1f8exd6dzteammjk09jp9kh0p920akmkahvtfj5 | 0x49f266e9a25e7bbdcacf2c825b5de12a9fdb6edd | 4 | 12 | 10727.96935 | -|terp1t9nufak07wj204qknaywj0j36j7cgsgsm6k0zt | 0x5967c4f6cff3a4a7d4169f48e93e51d4bd844110 | 4 | 12 | 10727.96935 | -|terp1tf0vttyf74s0792padv5s3n9ec3j44hzm7ey9t | 0x5a5ec5ac89f560ff1541eb59484665ce232ad6e2 | 4 | 12 | 10727.96935 | -|terp1vst6nslrnfnjwg5sy2ca7v9cqny558n3e80yfl | 0x6417a9c3e39a6727229022b1df30b804c94a1e71 | 4 | 12 | 10727.96935 | -|terp1d6873hj9ad90mp04dwxaq8jx7qh3quan0j7juq | 0x6e8fe8de45eb4afd85f56b8dd01e46f02f1073b3 | 4 | 12 | 10727.96935 | -|terp1wu8q8rpvpc64n722vfh4jmrwwshd89zczgvl55 | 0x770e038c2c0e3559f94a626f596c6e742ed39458 | 4 | 12 | 10727.96935 | -|terp1s7v5z8dthu8auctazztfykk5jc09gjkttk52c4 | 0x8799411dabbf0fde617d1096925ad4961e544acb | 4 | 12 | 10727.96935 | -|terp139kmgdu20j3zazfuskhg0p6r5duaj8pmxu9md3 | 0x896db4378a7ca22e893c85ae878743a379d91c3b | 4 | 12 | 10727.96935 | -|terp13k457znep48lzyc5hy480ds8e23lkkqw3ucgr2 | 0x8dab4f0a790d4ff11314b92a77b607caa3fb580e | 4 | 12 | 10727.96935 | -|terp1jps0d6w0lvdl90r0n2jrl79rs7xq55t9x6v5nv | 0x9060f6e9cffb1bf2bc6f9aa43ff8a3878c0a5165 | 4 | 12 | 10727.96935 | -|terp1jyf7tf45ksghuna8ecahn43mnpyuek34tmytyw | 0x9113e5a6b4b4117e4fa7ce3b79d63b9849ccda35 | 4 | 12 | 10727.96935 | -|terp1jarawk7dv8t0jdlavpqx36ujn62ht87hhl23rs | 0x9747d75bcd61d6f937fd604068eb929e95759fd7 | 4 | 12 | 10727.96935 | -|terp15afzt03jusa0gqvz07xy5hhtfsuepwt20xrurm | 0xa75225be32e43af401827f8c4a5eeb4c3990b96a | 4 | 12 | 10727.96935 | -|terp149kv243x9nt8pwezq2dhzxj7y87y6ampu6k2qs | 0xa96cc556262cd670bb22029b711a5e21fc4d7761 | 4 | 12 | 10727.96935 | -|terp1hytypuj5jc34y3ztekpne9fgl740ax8fphaygv | 0xb91640f254962352444bcd833c9528ffaafe98e9 | 4 | 12 | 10727.96935 | -|terp1638emd78qzhvc2mntmft96u5v0u2f98yp6jtf4 | 0xd44f9db7c700aecc2b735ed2b2eb9463f8a494e4 | 4 | 12 | 10727.96935 | -|terp16j6fh7r4n7mafslend4u85eq2r962acjnary9m | 0xd4b49bf8759fb7d4c3f99b6bc3d32050cba57712 | 4 | 12 | 10727.96935 | -|terp1mzx5lxddcs490ev5nj20mkvy7supru6yzkkkn9 | 0xd88d4f99adc42a57e5949c94fdd984f43811f344 | 4 | 12 | 10727.96935 | -|terp1uh9g7v30yu86sff0kcktz00k7dun6a32qvc2dl | 0xe5ca8f322f270fa8252fb62cb13df6f3793d762a | 4 | 12 | 10727.96935 | -|terp1ax5l0m2k7gqgwdjmn7zc933u8sfmxk997mm5sl | 0xe9a9f7ed56f20087365b9f8582c63c3c13b358a5 | 4 | 12 | 10727.96935 | -|terp1athajucntpfdd90956psw2n8e4wmxt7ufserx8 | 0xeaefd973135852d695e5a683072a67cd5db32fdc | 4 | 12 | 10727.96935 | -|terp1a64welxd2l96q9qh8c5x3lglxc9r2az8kdtl8f | 0xeeaaecfccd57cba014173e2868fd1f360a357447 | 4 | 12 | 10727.96935 | -|terp1au95kfleyx3gj8ug5775sp0f09kj0pjw496eed | 0xef0b4b27f921a2891f88a7bd4805e9796d27864e | 4 | 12 | 10727.96935 | -|terp17qzf9sj3re6e9uhd3s9vn3n2cn8umf3wfsv7am | 0xf00492c2511e7592f2ed8c0ac9c66ac4cfcda62e | 4 | 12 | 10727.96935 | -|terp17mscnln850gtjcxl2kz7hqvrc2a3cfaxa7deht | 0xf6e189fe67a3d0b960df5585eb8183c2bb1c27a6 | 4 | 12 | 10727.96935 | -|terp1q5x3r72j26qq6fevmjxjt6qrjz628yjjg4j9k0 | 0x050d11f95256800d272cdc8d25e80390b4a39252 | 3 | 12 | 10727.96935 | -|terp1q49y654mcw780sv3ann5wtsd237e65038vujwf | 0x054a4d52bbc3bc77c191ece7472e0d547d9d51f1 | 3 | 12 | 10727.96935 | -|terp1p59uyt2uuf2tjg8zh7du67ny7k98kwn4lkvemz | 0x0d0bc22d5ce254b920e2bf9bcd7a64f58a7b3a75 | 3 | 12 | 10727.96935 | -|terp1rtu432t88xus3jarraxyvvwsrd44t40kzrrm05 | 0x1af958a96739b908cba31f4c4631d01b6b55d5f6 | 3 | 12 | 10727.96935 | -|terp1y9adskvtgldrgs3s6g7u9hjtk2n4zdxj6m9ewl | 0x217ad8598b47da344230d23dc2de4bb2a75134d2 | 3 | 12 | 10727.96935 | -|terp1yccegmx6sh56j9cagragrrd944sgckt85teu24 | 0x2631946cda85e9a9171d40fa818da5ad608c5967 | 3 | 12 | 10727.96935 | -|terp1xnl7zph4pnk5me6v7hqsz2shynzl5gd6xhwgkj | 0x34ffe106f50ced4de74cf5c1012a1724c5fa21ba | 3 | 12 | 10727.96935 | -|terp18g6ep00n4d2fqe7lhtywkc7e2hxqdz25mtct0r | 0x3a3590bdf3ab549067dfbac8eb63d955cc068954 | 3 | 12 | 10727.96935 | -|terp18cf2xmwjczlyp8pk4ep37r427dt62c6rdsyjna | 0x3e12a36dd2c0be409c36ae431f0eaaf357a56343 | 3 | 12 | 10727.96935 | -|terp1gr0pesc6eq4ett9c8w97kdn4z5efz0krj3qyj7 | 0x40de1cc31ac82b95acb83b8beb36751532913ec3 | 3 | 12 | 10727.96935 | -|terp1gm57rz4lpckgu3uflwmuereg987kxe525fm72s | 0x46e9e18abf0e2c8e4789fbb7cc8f2829fd63668a | 3 | 12 | 10727.96935 | -|terp1f2peqh92yxzu2dcmk076elexp5p25vp95mh5uj | 0x4a83905caa2185c5371bb3fdacff260d02aa3025 | 3 | 12 | 10727.96935 | -|terp1fe0fgufnckd9n2vf7s4ldyaw6jrrfwyew6sql9 | 0x4e5e947133c59a59a989f42bf693aed48634b899 | 3 | 12 | 10727.96935 | -|terp129p8609cgy5m6mg9a5tr2wujmu48wzhlyww0cz | 0x51427d3cb84129bd6d05ed16353b92df2a770aff | 3 | 12 | 10727.96935 | -|terp125fh9lst0c4xkltrt6x30p95c2ytjv4m20fu9v | 0x551372fe0b7e2a6b7d635e8d1784b4c288b932bb | 3 | 12 | 10727.96935 | -|terp12kjf22lwd27lufwlpzx38239yj5vtxxz7uvlla | 0x55a4952bee6abdfe25df088d13aa2524a8c598c2 | 3 | 12 | 10727.96935 | -|terp1thyvjk9jms85z6dgksa4r77ynmn5m5z66rhx95 | 0x5dc8c958b2dc0f4169a8b43b51fbc49ee74dd05a | 3 | 12 | 10727.96935 | -|terp1tulecg76pmmx7ms203a2pmpv9hc0k2lxstv5vm | 0x5f3f9c23da0ef66f6e0a7c7aa0ec2c2df0fb2be6 | 3 | 12 | 10727.96935 | -|terp1vyfn754kdazfmjxrm523vxhsmsu3f2gvqhygru | 0x61133f52b66f449dc8c3dd15161af0dc3914a90c | 3 | 12 | 10727.96935 | -|terp1vtxg6fxxjepscvc7yqv0l988vqpjwger8dz3jt | 0x62cc8d24c696430c331e2018ff94e76003272323 | 3 | 12 | 10727.96935 | -|terp1vv28arpc3rh34yx744udhl0tur2jxcg5armrmq | 0x63147e8c3888ef1a90dead78dbfdebe0d5236114 | 3 | 12 | 10727.96935 | -|terp1dvl6jn8pm4zc7st79x7dvt6pf8v89yg5u8zr06 | 0x6b3fa94ce1dd458f417e29bcd62f4149d8729114 | 3 | 12 | 10727.96935 | -|terp1wcs5pnx7vdewn6lenks5feurx8pex6f3ltf9mf | 0x762140ccde6372e9ebf99da144e78331c3936931 | 3 | 12 | 10727.96935 | -|terp10yfm709egzp333aqnaf8a4r4djeetq0y3u62z9 | 0x7913bf3cb9408318c7a09f527ed4756cb39581e4 | 3 | 12 | 10727.96935 | -|terp13yz7uj7qd3dkmdrv4y8vnw4h8d3qrs8yyumx06 | 0x8905ee4bc06c5b6db46ca90ec9bab73b6201c0e4 | 3 | 12 | 10727.96935 | -|terp13xcvqnlg2s8u5k4uumqc73j57etk6d76vc6agg | 0x89b0c04fe8540fca5abce6c18f4654f6576d37da | 3 | 12 | 10727.96935 | -|terp13wmmjdhrlm99xyfccngcr47kt4vlrmykrc7qa9 | 0x8bb7b936e3feca531138c4d181d7d65d59f1ec96 | 3 | 12 | 10727.96935 | -|terp13czszds4x22j8ertv9cvay9tfym3hky6k6d9nq | 0x8e05013615329523e46b6170ce90ab49371bd89a | 3 | 12 | 10727.96935 | -|terp13anh7ajz7vht5038ll83ct43rann4492gm6nq8 | 0x8f677f7642f32eba3e27ffcf1c2eb11f673ad4aa | 3 | 12 | 10727.96935 | -|terp1nm3cjxflm5zprqlysdkwtg7y6jsjnjuf24kw9j | 0x9ee389193fdd041183e4836ce5a3c4d4a129cb89 | 3 | 12 | 10727.96935 | -|terp1nmn28d7w5q9hpueg7u0e5g0d9stc9xqqgkla5h | 0x9ee6a3b7cea00b70f328f71f9a21ed2c17829800 | 3 | 12 | 10727.96935 | -|terp14p8q2u6mzgau5pjas4083fsc4uawfcjhv2yqeg | 0xa84e05735b123bca065d855e78a618af3ae4e257 | 3 | 12 | 10727.96935 | -|terp14n8wza9slgwhrqpehqydxecht4rzacs5xqxz0c | 0xaccee174b0fa1d718039b808d367175d462ee214 | 3 | 12 | 10727.96935 | -|terp1kgenpas5ljtnj6cq8d3n77gmucyp34qvd3l4fp | 0xb23330f614fc97396b003b633f791be60818d40c | 3 | 12 | 10727.96935 | -|terp1ktdxsnz4yc7ypv3c9wyd6e3f6g3vng7vgyhmdq | 0xb2da684c55263c40b2382b88dd6629d222c9a3cc | 3 | 12 | 10727.96935 | -|terp1k76tyjp2k2m7g42u7v34sjeuuh8zh63s77dlxl | 0xb7b4b2482ab2b7e4555cf323584b3ce5ce2bea30 | 3 | 12 | 10727.96935 | -|terp1h6h4269f7qnmpvw4egn9kjqp9daghfcx3aj69a | 0xbeaf5568a9f027b0b1d5ca265b48012b7a8ba706 | 3 | 12 | 10727.96935 | -|terp1err7cd6znjgj989d0d5v48gxk3q3ef4s880wut | 0xc8c7ec37429c91229cad7b68ca9d06b4411ca6b0 | 3 | 12 | 10727.96935 | -|terp1eta92vqqsz97rfg868t2sn34774fqksjc5sfzk | 0xcafa553000808be1a507d1d6a84e35f7aa905a12 | 3 | 12 | 10727.96935 | -|terp1evfk2sladnjmkw8q4mzv5qqdgsyq90h6ek6ed9 | 0xcb136543fd6ce5bb38e0aec4ca000d440802befa | 3 | 12 | 10727.96935 | -|terp1eh9dnp2nas49gtearyk9hmkexztpzxkjnv9kh3 | 0xcdcad98553ec2a542f3d192c5beed93096111ad2 | 3 | 12 | 10727.96935 | -|terp16zl6pgugtxmg95trw58q9kw658lxa9tpmtqj9q | 0xd0bfa0a38859b682d163750e02d9daa1fe6e9561 | 3 | 12 | 10727.96935 | -|terp16hqa6p887mvwlrhnw8s29a05mj8pe9s0feyhw3 | 0xd5c1dd04e7f6d8ef8ef371e0a2f5f4dc8e1c960f | 3 | 12 | 10727.96935 | -|terp16ck6tuy3m33ysl8vc5aj93mcm4svyjt82px3lx | 0xd62da5f091dc62487cecc53b22c778dd60c24967 | 3 | 12 | 10727.96935 | -|terp1m59hmhf9r3cwqyrwvgt72949pf4axql5r3hr40 | 0xdd0b7ddd251c70e0106e6217e516a50a6bd303f4 | 3 | 12 | 10727.96935 | -|terp1mcc32rcys4j35a64y3umger9nkxzwntm282s4h | 0xde31150f0485651a77552479b464659d8c274d7b | 3 | 12 | 10727.96935 | -|terp1munc3dne07rzk6l29j6el24ga8mcnn5pv3gym3 | 0xdf2788b6797f862b6bea2cb59faaa8e9f789ce81 | 3 | 12 | 10727.96935 | -|terp1uxgrvkwyqjwq2s5a3sdphquc2e437vw2ms4gmz | 0xe1903659c4049c05429d8c1a1b8398566b1f31ca | 3 | 12 | 10727.96935 | -|terp1uwpyzpeeqqkcyt78qlrhvealn7fgk2zhuy7wse | 0xe382410739002d822fc707c77667bf9f928b2857 | 3 | 12 | 10727.96935 | -|terp1alakrf6z8rzmmmq0ts5sf9sv8c4x0x44zaqrdy | 0xeffb61a74238c5bdec0f5c2904960c3e2a679ab5 | 3 | 12 | 10727.96935 | -|terp173ruhrl9ycxc22m55yh3l4dqj85fmk25s27x95 | 0xf447cb8fe5260d852b74a12f1fd5a091e89dd954 | 3 | 12 | 10727.96935 | -|terp176f07pv0gwfzcx2jm9vkcrptutzz3mejcchtw0 | 0xf692ff058f43922c1952d9596c0c2be2c428ef32 | 3 | 12 | 10727.96935 | -|terp1leujhql706hnh2l0mxha5zd98ecuwdvrvnx8lg | 0xfe792b83fe7eaf3babefd9afda09a53e71c73583 | 3 | 12 | 10727.96935 | -|terp1qxp2kltnacn2xr7rxdfe25a0ddxrdarncaa83m | 0x0182ab7d73ee26a30fc333539553af6b4c36f473 | 2 | 12 | 10727.96935 | -|terp1qv7l0fxu0pgla8ja6n66j75s8gltppuz62dalh | 0x033df7a4dc7851fe9e5dd4f5a97a903a3eb08782 | 2 | 12 | 10727.96935 | -|terp1qw94trp8feu3wekzd0chru6uqxd2p7xp3h2z29 | 0x038b558c274e791766c26bf171f35c019aa0f8c1 | 2 | 12 | 10727.96935 | -|terp1pp3yemxla2rnk6xtya2my5e3lxy686t53rnsz6 | 0x08624cecdfea873b68cb2755b25331f989a3e974 | 2 | 12 | 10727.96935 | -|terp1p9ggjyt77g5ym7keg3u02hpvxlknt5gzzetp54 | 0x095089117ef2284dfad94478f55c2c37ed35d102 | 2 | 12 | 10727.96935 | -|terp1pwlpz727d9980sfq42mg7c57cr7xc8448drltg | 0x0bbe11795e694a77c120aab68f629ec0fc6c1eb5 | 2 | 12 | 10727.96935 | -|terp1pjvdc7h0phataneevnjfx95um9esdvy3w3hux0 | 0x0c98dc7aef0dfabecf3964e493169cd97306b091 | 2 | 12 | 10727.96935 | -|terp1pkqu7929r9qjvse9fhs6nds838nv87fuya3rj9 | 0x0d81cf154519412643254de1a9b60789e6c3f93c | 2 | 12 | 10727.96935 | -|terp1pm628qd7jsf9mk5r0ja0r2nh9kgnm0l24ng688 | 0x0ef4a381be94125dda837cbaf1aa772d913dbfea | 2 | 12 | 10727.96935 | -|terp1plafwvzxwkqzzmu5mt4tz32g2lyju8r64hc79l | 0x0ffa9730467580216f94daeab1454857c92e1c7a | 2 | 12 | 10727.96935 | -|terp1z2uqdkxz8wurdy6xr75pcc0pwdutg6qqvzudw9 | 0x12b806d8c23bb83693461fa81c61e17378b46800 | 2 | 12 | 10727.96935 | -|terp1zejkdnemf0yhln489j80fj6jy76uzrj6ac4pka | 0x166566cf3b4bc97fcea72c8ef4cb5227b5c10e5a | 2 | 12 | 10727.96935 | -|terp1rsxwwm734ct36xftlwqau3x23c30r4tknh5gt2 | 0x1c0ce76fd1ae171d192bfb81de44ca8e22f1d576 | 2 | 12 | 10727.96935 | -|terp1r3qq734a3qmncgsjh0s7rjn5cn9g4cp28tvg03 | 0x1c400f46bd88373c2212bbe1e1ca74c4ca8ae02a | 2 | 12 | 10727.96935 | -|terp1recjz0jvdhw07df3lym5auylhl5fh30njj8ky9 | 0x1e71213e4c6ddcff3531f9374ef09fbfe89bc5f3 | 2 | 12 | 10727.96935 | -|terp1yf8z0qhhs70c3wxrzuasym5h55vr32zww94z69 | 0x224e2782f7879f88b8c3173b026e97a51838a84e | 2 | 12 | 10727.96935 | -|terp1y4qsx3zda6x423tjkrqrh3vtz8mu7ca5l9ykae | 0x254103444dee8d554572b0c03bc58b11f7cf63b4 | 2 | 12 | 10727.96935 | -|terp1985kaf99jayaqf6jrqenwz9sc0n2vfn7z9ujzs | 0x29e96ea4a59749d0275218333708b0c3e6a6267e | 2 | 12 | 10727.96935 | -|terp190y4gqu4atn8y5td6eg2s4acxc4wc8mjlzgay2 | 0x2bc9540395eae672516dd650a857b8362aec1f72 | 2 | 12 | 10727.96935 | -|terp19ssrr6wm3yfacqg7xudevfwzk7z7e67ram4a2h | 0x2c2031e9db8913dc011e371b9625c2b785ecebc3 | 2 | 12 | 10727.96935 | -|terp19sadm3tq4ulj79ga7c4vg4vzjpstfacj5ll4u9 | 0x2c3addc560af3f2f151df62ac455829060b4f712 | 2 | 12 | 10727.96935 | -|terp194qszwad2qchrsf6t22f6m3u2zm6w0g40mr4vj | 0x2d41013bad503171c13a5a949d6e3c50b7a73d15 | 2 | 12 | 10727.96935 | -|terp19764rms307kcm9y6uqkchrrhng8m65wuez67hv | 0x2fb551ee117fad8d949ae02d8b8c779a0fbd51dc | 2 | 12 | 10727.96935 | -|terp1xxeh25sg7ygqwmpltl234r54yx96nwxa59w43x | 0x31b3755208f110076c3f5fd51a8e95218ba9b8dd | 2 | 12 | 10727.96935 | -|terp1grvw6ye6adnplgg0y5wpeghgmgyx5s78hghqq2 | 0x40d8ed133aeb661fa10f251c1ca2e8da086a43c7 | 2 | 12 | 10727.96935 | -|terp1f88vnq6nevayudydhhdga2j4cyvtjsce34q4et | 0x49cec98353cb3a4e348dbdda8eaa55c118b94319 | 2 | 12 | 10727.96935 | -|terp1fscgcwwgqav89lz2lurq7yp45ds434wg4kapxu | 0x4c308c39c8075872fc4aff060f1035a36158d5c8 | 2 | 12 | 10727.96935 | -|terp1f4kxnlkumtyyuzgee5cjv78jlk825g3d7sknu7 | 0x4d6c69fedcdac84e0919cd312678f2fd8eaa222d | 2 | 12 | 10727.96935 | -|terp1f72j9r5tutmq20v7qsq68xg60qftuq9mazcyhe | 0x4f95228e8be2f6053d9e0401a3991a7812be00bb | 2 | 12 | 10727.96935 | -|terp12g56cm24lcmculgzl47wwd7tq7wdzfzqg9fwv8 | 0x5229ac6d55fe378e7d02fd7ce737cb079cd12440 | 2 | 12 | 10727.96935 | -|terp12s930scsf0myn7vzjhpdz4gl9php528hq5zz00 | 0x540b17c3104bf649f98295c2d1551f286e1a28f7 | 2 | 12 | 10727.96935 | -|terp12s9hltg2heh82fr0mu0u9yst9sqypwsftgs246 | 0x540b7fad0abe6e75246fdf1fc2920b2c0040ba09 | 2 | 12 | 10727.96935 | -|terp12nzj2tmc0rgfk43295ypyf670za54ylhkqvknf | 0x54c5252f7878d09b562a2d0812275e78bb4a93f7 | 2 | 12 | 10727.96935 | -|terp125cmzdedv7ctyp649y654c9d49q6ha6y7vewep | 0x5531b1372d67b0b2075529354ae0ada941abf744 | 2 | 12 | 10727.96935 | -|terp12akymu9l7jcv3gfk46dlqyaylk4cjzt5t2s03m | 0x576c4df0bff4b0c8a136ae9bf013a4fdab890974 | 2 | 12 | 10727.96935 | -|terp1t0f4kn7m7zdud7xy7se34sv9yqpk3qhhg63avf | 0x5bd35b4fdbf09bc6f8c4f4331ac18520036882f7 | 2 | 12 | 10727.96935 | -|terp1tczpep2lsvv0tkv6y0qmm047mjkd2968ze2t9v | 0x5e041c855f8318f5d99a23c1bdbebedcacd51747 | 2 | 12 | 10727.96935 | -|terp1vjhskhvc5dape4x5ggt3hq0yhgk090nn0k89lv | 0x64af0b5d98a37a1cd4d442171b81e4ba2cf2be73 | 2 | 12 | 10727.96935 | -|terp1vktxal7l5d0mm7mtavtleu5r0r5rg7swmnc7qp | 0x65966effdfa35fbdfb6beb17fcf28378e8347a0e | 2 | 12 | 10727.96935 | -|terp1dwghjrat9cxm3t3fsqudc2z40e29pt04ng042c | 0x6b91790fab2e0db8ae298038dc28557e5450adf5 | 2 | 12 | 10727.96935 | -|terp1dezhde2zdcekv0nrvt2z5y2m92a77etuqlqzjg | 0x6e4576e5426e33663e6362d42a115b2abbef657c | 2 | 12 | 10727.96935 | -|terp1dexl4spu2c955hf7hzhqmkavrk9val94z9u73v | 0x6e4dfac03c560b4a5d3eb8ae0ddbac1d8acefcb5 | 2 | 12 | 10727.96935 | -|terp1d63xa2xg86c9pssad7tls6e7rdh6j4zvurkq0g | 0x6ea26ea8c83eb050c21d6f97f86b3e1b6fa9544c | 2 | 12 | 10727.96935 | -|terp1w84n2rwlnvpl4q97h936rc74zxdskt3w42s7fr | 0x71eb350ddf9b03fa80beb963a1e3d5119b0b2e2e | 2 | 12 | 10727.96935 | -|terp1wffjghxcdqjzjvddlasnrf89tcjlnnmsfm06sm | 0x7253245cd868242931adff6131a4e55e25f9cf70 | 2 | 12 | 10727.96935 | -|terp1w2tqwlyym4fynvhr4elu84yus64u8rqrdxjs8y | 0x7296077c84dd5249b2e3ae7fc3d49c86abc38c03 | 2 | 12 | 10727.96935 | -|terp1wn68354xrqa7eq6sam2q2wwm48jyj4nlu7ykm3 | 0x74f478d2a6183bec8350eed40539dba9e449567f | 2 | 12 | 10727.96935 | -|terp1w5rdvywgfc5cl66a29rfnen7ey6p6tn6fmmvdt | 0x7506d611c84e298feb5d514699e67ec9341d2e7a | 2 | 12 | 10727.96935 | -|terp10p6pvkek5e4m832hl54w2vanmgjklv3m0vv54n | 0x7874165b36a66bb3c557fd2ae533b3da256fb23b | 2 | 12 | 10727.96935 | -|terp10ewmahd5vdezujdtk3a0ea8v302vd6uafq3y7v | 0x7e5dbeddb463722e49abb47afcf4ec8bd4c6eb9d | 2 | 12 | 10727.96935 | -|terp1s9xkqjvm6sq7efpxephwndqk09nal7xaq5s7ag | 0x814d60499bd401eca426c86ee9b4167967dff8dd | 2 | 12 | 10727.96935 | -|terp1s4j6jhz5l5c0r57p4rhvaxpmd0hz09rxpf7yf2 | 0x8565a95c54fd30f1d3c1a8eece983b6bee279466 | 2 | 12 | 10727.96935 | -|terp1smt8hm0n6css8fyhty6z3h0ef26t6tvk38ckc2 | 0x86d67bedf3d62103a497593428ddf94ab4bd2d96 | 2 | 12 | 10727.96935 | -|terp139qgtwlam0g72ft76vugd0cm8w3uldyjh820vj | 0x894085bbfddbd1e5257ed33886bf1b3ba3cfb492 | 2 | 12 | 10727.96935 | -|terp136pu76tg0vsezv4mwqjcd4ef6a02g0p4j63w47 | 0x8e83cf69687b219132bb702586d729d75ea43c35 | 2 | 12 | 10727.96935 | -|terp13lf0w2uxc90kyxq5z3f0yv4s9ehz3h0wmyp8qk | 0x8fd2f72b86c15f6218141452f232b02e6e28ddee | 2 | 12 | 10727.96935 | -|terp1jptducljvsaxpa9lg6vzqnmfk4s267rfg6lq5k | 0x9056de63f2643a60f4bf4698204f69b560ad7869 | 2 | 12 | 10727.96935 | -|terp1j4wmpvgt6pp5fdjlrqnjsy72mnkep4949fchsj | 0x955db0b10bd04344b65f18272813cadced90d4b5 | 2 | 12 | 10727.96935 | -|terp1j4u2mn33j8fdxf822zrfrch74zq7r647kn4glc | 0x9578adce3191d2d324ea508691e2fea881e1eabe | 2 | 12 | 10727.96935 | -|terp1j7w49d3fzt9l5esqmder0yrdwzemne6lll7kgc | 0x979d52b62912cbfa6600db7237906d70b3b9e75f | 2 | 12 | 10727.96935 | -|terp1jlqmawnprht02pqnc3ca93nrh0t58zckm3yyrp | 0x97c1beba611dd6f50413c471d2c663bbd7438b16 | 2 | 12 | 10727.96935 | -|terp155246y7t2v6szjspumkv07r8fm7jev69qy5pyt | 0xa5155d13cb5335014a01e6ecc7f8674efd2cb345 | 2 | 12 | 10727.96935 | -|terp155d4ud4ptr7jdhggyzwkr4ezukk20qgsxh2s64 | 0xa51b5e36a158fd26dd08209d61d722e5aca78110 | 2 | 12 | 10727.96935 | -|terp15hfwcwp33s0jfyrwk7556004eu8xvf3ae5rsqw | 0xa5d2ec38318c1f24906eb7a94d3df5cf0e66263d | 2 | 12 | 10727.96935 | -|terp15h5wwnxlaatcqy3ux9f24pyvg5lqgwcfew975p | 0xa5e8e74cdfef5780123c3152aa848c453e043b09 | 2 | 12 | 10727.96935 | -|terp15lw5xyqs9dcmad9pj2xhe62nvz3frer2sxe6kv | 0xa7dd4310102b71beb4a1928d7ce95360a291e46a | 2 | 12 | 10727.96935 | -|terp14qgfypeag4097xccewwp8pdeh2zplplsml0sdv | 0xa81092073d455e5f1b18cb9c1385b9ba841f87f0 | 2 | 12 | 10727.96935 | -|terp14dp69l9kawjhn4qgan02tawcr2l88s83xnjxf5 | 0xab43a2fcb6eba579d408ecdea5f5d81abe73c0f1 | 2 | 12 | 10727.96935 | -|terp143z30qr7ktmwu4yyfg9qxypxalnq2cyrfx60uy | 0xac4517807eb2f6ee54844a0a031026efe6056083 | 2 | 12 | 10727.96935 | -|terp14ew3j6llgaqvd0nvn2g036pz3c44yhmwy0j5gu | 0xae5d196bff4740c6be6c9a90f8e8228e2b525f6e | 2 | 12 | 10727.96935 | -|terp1kqam2atx2mty72s8ppml99zq5n36ws6yueqars | 0xb03bb5756656d64f2a070877f29440a4e3a74344 | 2 | 12 | 10727.96935 | -|terp1k06ytqf5h9qg5fnp8qggu3vclaly9yllsvwq2m | 0xb3f4458134b9408a266138108e4598ff7e4293ff | 2 | 12 | 10727.96935 | -|terp1k3np2arln2l77qmelljf3ensy5hxa6vrhxy4tm | 0xb46615747f9abfef0379ffe498e670252e6ee983 | 2 | 12 | 10727.96935 | -|terp1kjd55ttpfg6qsx8y83rkngcramxdqs8upa2u75 | 0xb49b4a2d614a340818e43c4769a303eeccd040fc | 2 | 12 | 10727.96935 | -|terp1k4wwlmfnnl7hlkyqr445mplu2sfgue7x003p97 | 0xb55cefed339ffd7fd8801d6b4d87fc54128e67c6 | 2 | 12 | 10727.96935 | -|terp1k4sgvfrep550c88aefg5e3a32g59t3pu2afuqx | 0xb5608624790d28fc1cfdca514cc7b1522855c43c | 2 | 12 | 10727.96935 | -|terp1kc5yn2ul0xs9cxqs27489n52nnj2k9kqf3uw8u | 0xb62849ab9f79a05c181057aa72ce8a9ce4ab16c0 | 2 | 12 | 10727.96935 | -|terp1hx74t66p5jxa3vc5rgyuf3kc9x6crnlttvkzpp | 0xb9bd55eb41a48dd8b3141a09c4c6d829b581cfeb | 2 | 12 | 10727.96935 | -|terp1hgqrfe4reed0005vur73w8eqpnsfjhaasu3ul7 | 0xba0034e6a3ce5af7be8ce0fd171f200ce0995fbd | 2 | 12 | 10727.96935 | -|terp1hgct9uj30kjfqg38acluqk9fmcatfq035w89xe | 0xba30b2f2517da4902227ee3fc058a9de3ab481f1 | 2 | 12 | 10727.96935 | -|terp1hd4ql0slr4xh600h8mayms5g3akuu9ekazt6q2 | 0xbb6a0fbe1f1d4d7d3df73efa4dc2888f6dce1736 | 2 | 12 | 10727.96935 | -|terp1huvae8n0fv0a5y7286rzkfw63tlzln6cayj3w3 | 0xbf19dc9e6f4b1fda13ca3e862b25da8afe2fcf58 | 2 | 12 | 10727.96935 | -|terp1cznp3rf3m5qre9x9zmm2hmdhsmr6q8urv9tjdt | 0xc0a6188d31dd003c94c516f6abedb786c7a01f83 | 2 | 12 | 10727.96935 | -|terp1cnd5h3xh94sjp5eycv6a2m7856pz49cc4hxxzd | 0xc4db4bc4d72d6120d324c335d56fc7a6822a9718 | 2 | 12 | 10727.96935 | -|terp1c6t59tw5pj0rcql6ey0t8h0wm47wnxl5fr62fe | 0xc69742add40c9e3c03fac91eb3ddeedd7ce99bf4 | 2 | 12 | 10727.96935 | -|terp1clsn0pkh53jcxqp6xnkffqmjl0vmk9evjmtfux | 0xc7e13786d7a46583003a34ec948372fbd9bb172c | 2 | 12 | 10727.96935 | -|terp1edw282j2asjyldrk3euwn6l9uccjdmzpmhh6y9 | 0xcb5ca3aa4aec244fb4768e78e9ebe5e63126ec41 | 2 | 12 | 10727.96935 | -|terp1e032mr3az0r0xarnqqcvuehe9vnlf5nv9uvtz4 | 0xcbe2ad8e3d13c6f374730030ce66f92b27f4d26c | 2 | 12 | 10727.96935 | -|terp1esmf9lex4pqxxxq7rhhp049fd99vwudkgqzt82 | 0xcc3692ff26a84063181e1dee17d4a9694ac771b6 | 2 | 12 | 10727.96935 | -|terp1e3gdjf2gd0g6n6p2x6hmyth6z7469jjpczjnl4 | 0xcc50d925486bd1a9e82a36afb22efa17aba2ca41 | 2 | 12 | 10727.96935 | -|terp1ehysqf3sz8cr5qv0a49wwl9p25wp5xv7jnwscn | 0xcdc900263011f03a018fed4ae77ca1551c1a199e | 2 | 12 | 10727.96935 | -|terp1emmkmzesachfnek58l6wvn2memzx44yjchjwzp | 0xcef76d8b30ee2e99e6d43ff4e64d5bcec46ad492 | 2 | 12 | 10727.96935 | -|terp1eln6nchh7c4mkr2j9gzp4py9yy7wuv63uw48nf | 0xcfe7a9e2f7f62bbb0d522a041a8485213cee3351 | 2 | 12 | 10727.96935 | -|terp16d3r0zztmfpmuy50ref73eudkrrz4ggus50f85 | 0xd36237884bda43be128f1e53e8e78db0c62aa11c | 2 | 12 | 10727.96935 | -|terp16jc4lr94sjx7zm5vgtkz5ldux03fzzr57gdpcp | 0xd4b15f8cb5848de16e8c42ec2a7dbc33e2910874 | 2 | 12 | 10727.96935 | -|terp16nc6eepfnljq2e4dlzqn53h53wcrs03hgw04xw | 0xd4f1ace4299fe40566adf8813a46f48bb0383e37 | 2 | 12 | 10727.96935 | -|terp1mqmywqv597gva6kjya3phdrnyv03u8wzkfq4rg | 0xd8364701942f90ceead227621bb473231f1e1dc2 | 2 | 12 | 10727.96935 | -|terp1m9ktrk49z0xz0hrzw0arx2udslk9dkhdckrpym | 0xd96cb1daa513cc27dc6273fa332b8d87ec56daed | 2 | 12 | 10727.96935 | -|terp1mvnfh88xuuj4y96qe7tzk75kfppkp40y2m857z | 0xdb269b9ce6e725521740cf962b7a96484360d5e4 | 2 | 12 | 10727.96935 | -|terp1md5y86yqs2xrgvngjjqpkffuer6wdrp5guy7j8 | 0xdb6843e880828c34326894801b253cc8f4e68c34 | 2 | 12 | 10727.96935 | -|terp1m0z693wg3aul0cf5ctfnms8xrktuuulnuljq26 | 0xdbc5a2c5c88f79f7e134c2d33dc0e61d97ce73f3 | 2 | 12 | 10727.96935 | -|terp1mckk0328wkuukr8smsyxvh3ly5aqqcuvfkw0ea | 0xde2d67c54775b9cb0cf0dc08665e3f253a00638c | 2 | 12 | 10727.96935 | -|terp1uy95glpt0kwlmz55dgt3y97f40lyz8c48rlv8t | 0xe10b447c2b7d9dfd8a946a171217c9abfe411f15 | 2 | 12 | 10727.96935 | -|terp1uj77ugg6ezvu0w9nppmedkvnw2cduj7n48ndhp | 0xe4bdee211ac899c7b8b3087796d99372b0de4bd3 | 2 | 12 | 10727.96935 | -|terp1agngju4jr9ge5zz6xeeaqt46z464n4ymglnpzz | 0xea268972b219519a085a3673d02eba157559d49b | 2 | 12 | 10727.96935 | -|terp1a0yk5dwndymdlq50ssn4dm95j8vu3dluw5gadv | 0xebc96a35d36936df828f842756ecb491d9c8b7fc | 2 | 12 | 10727.96935 | -|terp1aht5pa3mfvkxl0m05j44uual4v5crcnlzsnxyu | 0xedd740f63b4b2c6fbf6fa4ab5e73bfab2981e27f | 2 | 12 | 10727.96935 | -|terp1a6k6tde9pf26n587m4xh20dx2jfcqy6y0vz0rx | 0xeeada5b7250a55a9d0fedd4d753da65493801344 | 2 | 12 | 10727.96935 | -|terp17qvq6cp7yekcafuj6kay5dk922kr0ldl0x7rm9 | 0xf0180d603e266d8ea792d5ba4a36c552ac37fdbf | 2 | 12 | 10727.96935 | -|terp17fsyacdvuygcxqt4ee60v3ezvxk3qd6hmkr85d | 0xf2604ee1ace111830175ce74f6472261ad103757 | 2 | 12 | 10727.96935 | -|terp17wm5mdw45mdgxtvhhn8zj09exk9v4nv07c6dsl | 0xf3b74db5d5a6da832d97bcce293cb9358acacd8f | 2 | 12 | 10727.96935 | -|terp175nd6rprruennjckr348kd72l7qevzs8v060ty | 0xf526dd0c231f3339cb161c6a7b37caff81960a07 | 2 | 12 | 10727.96935 | -|terp17cc746gr87yp5dgfru3p4sswurrtq5cszvn0cx | 0xf631eae9033f881a35091f221ac20ee0c6b05310 | 2 | 12 | 10727.96935 | -|terp177z484h5pxys08m4yua6z37p8n6pn69538f0ea | 0xf78553d6f40989079f75273ba147c13cf419e8b4 | 2 | 12 | 10727.96935 | -|terp1lw0yuhuetzrul5c0n3s990xnnnrkhyn73xxq93 | 0xfb9e4e5f995887cfd30f9c6052bcd39cc76b927e | 2 | 12 | 10727.96935 | -|terp1lkufq75e3yg34gpc85gr4hcmf2hy5nwmv6xa2c | 0xfdb8907a9989111aa0383d103adf1b4aae4a4ddb | 2 | 12 | 10727.96935 | -|terp1lhl6twyysaq0jgg9vtfe79qn9msr4vqhzxep77 | 0xfdffa5b8848740f9210562d39f14132ee03ab017 | 2 | 12 | 10727.96935 | -|terp1qqq5zyvc3mj4m0xcg6ds9cqumkwhw2zffv7zjd | 0x00014111988ee55dbcd8469b02e01cdd9d772849 | 1 | 6 | 5363.984674 | -|terp1qppy7kzajtejankut5eas2ghx67gld8fj60gh0 | 0x00424f585d92f32ecedc5d33d8291736bc8fb4e9 | 1 | 6 | 5363.984674 | -|terp1qpjn6qa3g7nxxwgd6hzmrf2ae8xqh5hau6t8u9 | 0x00653d03b147a663390dd5c5b1a55dc9cc0bd2fd | 1 | 6 | 5363.984674 | -|terp1qp4rtn6fsq5vfnvps4hjpjhw5ysqjnxzytg0p6 | 0x006a35cf498028c4cd81856f20caeea120094cc2 | 1 | 6 | 5363.984674 | -|terp1qr66u6fd3y689rrdgss3j70y8cqa5gwy5jsjwp | 0x00f5ae692d8934728c6d44211979e43e01da21c4 | 1 | 6 | 5363.984674 | -|terp1q92hqjsqs5l2zsyshrs6jffh9hujze4hx4fphr | 0x0155704a00853ea14090b8e1a925372df92166b7 | 1 | 6 | 5363.984674 | -|terp1qfft7gnh4sq9mq775k9rfyefqg6kvul9muw0vz | 0x0252bf2277ac005d83dea58a34932902356673e5 | 1 | 6 | 5363.984674 | -|terp1qtfmg7guywsp4r2hvkf777h54rske097wmkx8y | 0x02d3b4791c23a01a8d576593ef7af4a8e16cbcbe | 1 | 6 | 5363.984674 | -|terp1q4s4rjhn7mvana57vlxq4ngjmc92gkf5ux8m68 | 0x056151caf3f6d9d9f69e67cc0acd12de0aa45934 | 1 | 6 | 5363.984674 | -|terp1qhcp874wgg572cqdj44aeugs0d97dg83796m6z | 0x05f013faae4229e5600d956bdcf1107b4be6a0f1 | 1 | 6 | 5363.984674 | -|terp1pz8n96f82rcryx5pgs4j39qpwagvmlgtf4njtc | 0x088f32e92750f0321a81442b2894017750cdfd0b | 1 | 6 | 5363.984674 | -|terp1pyd5q36k7wnxjm50h4gljm5km7ccmx4a8j6vjj | 0x091b404756f3a6696e8fbd51f96e96dfb18d9abd | 1 | 6 | 5363.984674 | -|terp1ptnj8lexlwxq2e6qa5sz0seveeyer3mklg3y3v | 0x0ae723ff26fb8c056740ed2027c32cce4991c776 | 1 | 6 | 5363.984674 | -|terp1pvx4hpelld3nn3m03lqwlje4x936ty7g7j8jvh | 0x0b0d5b873ffb6339c76f8fc0efcb353163a593c8 | 1 | 6 | 5363.984674 | -|terp1pdrppqc8cdpslypu0th24gvhlm6gvuje33g2g4 | 0x0b46108307c3430f903c7aeeaaa197fef4867259 | 1 | 6 | 5363.984674 | -|terp1phl98cmm8ndsnrtnur6qzmqjklm8304m2kuu77 | 0x0dfe53e37b3cdb098d73e0f4016c12b7f678bebb | 1 | 6 | 5363.984674 | -|terp1pcthz3593a4rsrlh0jl2f3warw7wcsp04nqdvn | 0x0e177146858f6a380ff77cbea4c5dd1bbcec402f | 1 | 6 | 5363.984674 | -|terp1pecytqc02clmce766npslf8qzu2fwd3lhaq5fk | 0x0e7045830f563fbc67dad4c30fa4e0171497363f | 1 | 6 | 5363.984674 | -|terp1pu5gzht64jymq2atg52gkalw9h9prx98a7dp0n | 0x0f28815d7aac89b02bab45148b77ee2dca1198a7 | 1 | 6 | 5363.984674 | -|terp1pl97zehzul3m0xrm57kk875rgcg304ys076axd | 0x0fcbe166e2e7e3b7987ba7ad63fa83461117d490 | 1 | 6 | 5363.984674 | -|terp1pllaqgc4z6mfc69sz5x2ny6xa7jjge5xsxrzrf | 0x0fffd0231516b69c68b0150ca99346efa5246686 | 1 | 6 | 5363.984674 | -|terp1zqlwqd3uffxqxkt7hudh9l2ecnkhmklgf4mlnh | 0x103ee0363c4a4c03597ebf1b72fd59c4ed7ddbe8 | 1 | 6 | 5363.984674 | -|terp1zpdp9avfqqsl7eq0vt0ye67q7hf274fujtfj7f | 0x105a12f5890021ff640f62de4cebc0f5d2af553c | 1 | 6 | 5363.984674 | -|terp1zdc7lsug6sk9ph6xjekxe8mp9zydtsqecjc39u | 0x1371efc388d42c50df46966c6c9f612888d5c019 | 1 | 6 | 5363.984674 | -|terp1zswjr8c43c44h7rvhn2mvaup203fnuzndgj8vu | 0x141d219f158e2b5bf86cbcd5b6778153e299f053 | 1 | 6 | 5363.984674 | -|terp1z33p6av9n4u8h9njlxa7hgt6ak250hl0ucvfqs | 0x14621d75859d787b9672f9bbeba17aed9547dfef | 1 | 6 | 5363.984674 | -|terp1z42g7d6xmnxnsuakean2tnw4zprc6f959qhhu5 | 0x15548f3746dccd3873b6cf66a5cdd510478d24b4 | 1 | 6 | 5363.984674 | -|terp1zmn09wws0wff7kp42augsaenval8v5ehk5tqlx | 0x16e6f2b9d07b929f58355778887733677e765337 | 1 | 6 | 5363.984674 | -|terp1rpys2v0p5df8x9k6gl6u6xra034wg66squp0mp | 0x18490531e1a3527316da47f5cd187d7c6ae46b50 | 1 | 6 | 5363.984674 | -|terp1rzumlgkckf8v9js6yr2z89djeggep09sa4knrd | 0x18b9bfa2d8b24ec2ca1a20d42395b2ca1190bcb0 | 1 | 6 | 5363.984674 | -|terp1ryfjl60m9r5j8knwmr7jdkcnaz4gtp6wwvlur2 | 0x19132fe9fb28e923da6ed8fd26db13e8aa85874e | 1 | 6 | 5363.984674 | -|terp1r9nqgm244u9s38malcm6ja6txuc8ua9w4xe3yr | 0x1966046d55af0b089f7dfe37a9774b37307e74ae | 1 | 6 | 5363.984674 | -|terp1rgwc5ndg6nr8uy784v3w5spm5areg0x5m9uqx5 | 0x1a1d8a4da8d4c67e13c7ab22ea403ba747943cd4 | 1 | 6 | 5363.984674 | -|terp1rtx0l6tkl03s0cxjk2tpu8h590g4jk0smq2z8t | 0x1accffe976fbe307e0d2b2961e1ef42bd15959f0 | 1 | 6 | 5363.984674 | -|terp1rvzyj8psy7tfuy2na5h8vw2ksk0725zhnes2ex | 0x1b04491c3027969e1153ed2e763956859fe55057 | 1 | 6 | 5363.984674 | -|terp1rwzsw79d5d00uqshmupxurpdpdyn5ck32qxyln | 0x1b850778ada35efe0217df026e0c2d0b493a62d1 | 1 | 6 | 5363.984674 | -|terp1rm37xltns3xpjggt863yfqtk95fuam6kst345m | 0x1ee3e37d73844c19210b3ea24481762d13ceef56 | 1 | 6 | 5363.984674 | -|terp1yt0vjhmj70tmmq2rau37wpflt5hfhx70pdzayk | 0x22dec95f72f3d7bd8143ef23e7053f5d2e9b9bcf | 1 | 6 | 5363.984674 | -|terp1ywsgj6ujehra75wpyk7apcus2y5t9gxtae559k | 0x23a0896b92cdc7df51c125bdd0e3905128b2a0cb | 1 | 6 | 5363.984674 | -|terp1y0wsrmps520p9sum0d5hlxvv8t6h49cusfenxw | 0x23dd01ec30a29e12c39b7b697f998c3af57a971c | 1 | 6 | 5363.984674 | -|terp1yszvcfuezrdw5wmpntxrwnmk99q59gcfyr8td8 | 0x2404cc279910daea3b619acc374f76294142a309 | 1 | 6 | 5363.984674 | -|terp1y5r6stydphuez70gtak2l727fuh048nz5rt739 | 0x2507a82c8d0df99179e85f6caff95e4f2efa9e62 | 1 | 6 | 5363.984674 | -|terp1y4rk34rulz2c56py9nj65xkmgq0plmetmfjeyq | 0x254768d47cf8958a68242ce5aa1adb401e1fef2b | 1 | 6 | 5363.984674 | -|terp1ymf0633kaq0up986f8gk2ktw4q4xn4tq3ugxnl | 0x26d2fd4636e81fc094fa49d165596ea82a69d560 | 1 | 6 | 5363.984674 | -|terp1yuqmj2e3ldhp03hpq452p9k9cwv8cwkk72gzd4 | 0x2701b92b31fb6e17c6e10568a096c5c3987c3ad6 | 1 | 6 | 5363.984674 | -|terp19yyjw3pslp6m03j6cfw3ayqgzmkfdekh3qylll | 0x2909274430f875b7c65ac25d1e900816ec96e6d7 | 1 | 6 | 5363.984674 | -|terp192m028mk4zl65fs0lfme9ednn8hqxzdju7aq6k | 0x2ab6f51f76a8bfaa260ffa7792e5b399ee0309b2 | 1 | 6 | 5363.984674 | -|terp19t8aq9ftm0w44mfknpx539lqs3y6rzwhnhg77u | 0x2acfd0152bdbdd5aed36984d4897e08449a189d7 | 1 | 6 | 5363.984674 | -|terp195qcvlk8dcpx7c5u6zelhuwervcaypyw76ekt6 | 0x2d01867ec76e026f629cd0b3fbf1d91b31d2048e | 1 | 6 | 5363.984674 | -|terp1942wurtu2ht8m8xrr7jzxpys0kny6krkscu3lv | 0x2d54ee0d7c55d67d9cc31fa42304907da64d5876 | 1 | 6 | 5363.984674 | -|terp19kwtcnk0h5dc7e420x8a29v94czcm25t2t2z93 | 0x2d9cbc4ecfbd1b8f66aa798fd51585ae058daa8b | 1 | 6 | 5363.984674 | -|terp19ulrv8aat64euwzfgm6k90h547juy2c6syw86g | 0x2f3e361fbd5eab9e384946f562bef4afa5c22b1a | 1 | 6 | 5363.984674 | -|terp1xydsks8wmnelmxg3nflz26ywzhjpaw3f2wyeu5 | 0x311b0b40eedcf3fd99119a7e25688e15e41eba29 | 1 | 6 | 5363.984674 | -|terp1xwzpn0y9hvh7qusee6nn47whpkzf3thw3gaaew | 0x338419bc85bb2fe07219cea73af9d70d8498aeee | 1 | 6 | 5363.984674 | -|terp1xlw0yk6kcng39m8d5hmjt92j2csxj6gcgsnpsu | 0x37dcf25b56c4d112eceda5f72595525620696918 | 1 | 6 | 5363.984674 | -|terp18fylmm4tuthsmpdsa6hv464gs0sltngsqpews5 | 0x3a49fdeeabe2ef0d85b0eeaecaeaa883e1f5cd10 | 1 | 6 | 5363.984674 | -|terp18wk4s522nr7dhfavpvqs5p25u0tjfup3cj0t90 | 0x3bad58514a98fcdba7ac0b010a0554e3d724f031 | 1 | 6 | 5363.984674 | -|terp184k2fww5qgmmtqfrq920xvv9apf3kzvnv5xj6s | 0x3d6ca4b9d40237b581230154f33185e8531b0993 | 1 | 6 | 5363.984674 | -|terp18mhmex2rk2hm03ncggc88qx62geet06xfadu9a | 0x3eefbc9943b2afb7c67842307380da523395bf46 | 1 | 6 | 5363.984674 | -|terp18ulymznlq5e358x00xnsrzaxkadk5faeq6v8fl | 0x3f3e4d8a7f05331a1ccf79a7018ba6b75b6a27b9 | 1 | 6 | 5363.984674 | -|terp1gxplk3wrz6kjgj59cgrsyvzmdes304cw0knjkc | 0x4183fb45c316ad244a85c20702305b6e6117d70e | 1 | 6 | 5363.984674 | -|terp1gxme7s4rkmau5722wqkcd6dxkpd9dx2d3sweyl | 0x41b79f42a3b6fbca794a702d86e9a6b05a56994d | 1 | 6 | 5363.984674 | -|terp1g2j68nxdl2ms67f9g9235um6ja3d2nfthnme7k | 0x42a5a3cccdfab70d792541551a737a9762d54d2b | 1 | 6 | 5363.984674 | -|terp1gsvmc784tltpzscr8qxp7nmeulgmunuveg0d4m | 0x4419bc78f55fd6114303380c1f4f79e7d1be4f8c | 1 | 6 | 5363.984674 | -|terp1gje3ew4jys2csjlsv0d7vpnavan04jh98mnrml | 0x44b31cbab22415884bf063dbe6067d6766facae5 | 1 | 6 | 5363.984674 | -|terp1gnk2vpzp6wtsmrtqasernekkljutgk3uyj9pl8 | 0x44eca60441d3970d8d60ec3239e6d6fcb8b45a3c | 1 | 6 | 5363.984674 | -|terp1gn7dgcg2ejxvrksc5jgagq2zze3d55mxyvj36t | 0x44fcd4610acc8cc1da18a491d401421662da5366 | 1 | 6 | 5363.984674 | -|terp1gk5f4llxn48jtxdc2p5lvskct787rnekxlpnaj | 0x45a89affe69d4f2599b85069f642d85f8fe1cf36 | 1 | 6 | 5363.984674 | -|terp1g7gnz8qe20f5836nlrkgxqeecpnxv7a6ez4a76 | 0x4791311c1953d343c753f8ec830339c066667bba | 1 | 6 | 5363.984674 | -|terp1fpjuhyv6t6p98x62u0h3fv6yate0l3q9j2680y | 0x4865cb919a5e82539b4ae3ef14b344eaf2ffc405 | 1 | 6 | 5363.984674 | -|terp1fdusmvsyd2uweemc22hx7ckl9jdwv4v622lrpd | 0x4b790db2046ab8ece77852ae6f62df2c9ae6559a | 1 | 6 | 5363.984674 | -|terp1f5ev3y5de6rkw9eryusun0eld0z7jjrzcax3nd | 0x4d32c8928dce876717232721c9bf3f6bc5e94862 | 1 | 6 | 5363.984674 | -|terp1f4nd7khhhyzt8ejqayzfwqf3rgx8vzmea8xpth | 0x4d66df5af7b904b3e640e9049701311a0c760b79 | 1 | 6 | 5363.984674 | -|terp1fm8j6wjp7raz86jx9dh6u69egrz9x7gmpn0d7u | 0x4ecf2d3a41f0fa23ea462b6fae68b940c453791b | 1 | 6 | 5363.984674 | -|terp1fmumhdnug2872tlv7h7rqlxtrj3f2r0z458a8k | 0x4ef9bbb67c428fe52fecf5fc307ccb1ca2950de2 | 1 | 6 | 5363.984674 | -|terp1fanafyylh5ccrucexx6rgdtlcghr0ygyju9cdn | 0x4f67d4909fbd3181f31931b434357fc22e379104 | 1 | 6 | 5363.984674 | -|terp12qth2r3jr8aef0kyxmkrr7p4lth3z2pvkhyuvf | 0x5017750e3219fb94bec436ec31f835faef11282c | 1 | 6 | 5363.984674 | -|terp12gx6gw2ggkgjwppnam0lyk6dpr3z5edv02h5yd | 0x520da439484591270433eedff25b4d08e22a65ac | 1 | 6 | 5363.984674 | -|terp12fym9p0ljfxtph3dd46layw2k7ew7pyrh5eufr | 0x5249b285ff924cb0de2d6d75fe91cab7b2ef0483 | 1 | 6 | 5363.984674 | -|terp12nyc6lq063dz26xmhrd5n2n6cta364sw6l662p | 0x54c98d7c0fd45a2568dbb8db49aa7ac2fb1d560e | 1 | 6 | 5363.984674 | -|terp12cwkvg97zujdt5m64rfxt8wt8s7j65dtsh2j8y | 0x561d6620be1724d5d37aa8d2659dcb3c3d2d51ab | 1 | 6 | 5363.984674 | -|terp12mezqhjytjvemq7cvplq8cvumwrlw33vlsd5s3 | 0x56f2205e445c999d83d8607e03e19cdb87f7462c | 1 | 6 | 5363.984674 | -|terp127jpta0xfmddp28459wx7407344jfwkrluxljz | 0x57a415f5e64edad0a8f5a15c6f55fe8d6b24bac3 | 1 | 6 | 5363.984674 | -|terp1t9we94qkd4cnszh3825d8d2vkwkxznjxj2fln9 | 0x595d92d4166d71380af13aa8d3b54cb3ac614e46 | 1 | 6 | 5363.984674 | -|terp1t2k8s49aw2wyefw3mn9grxrjt4xkej60g65n9y | 0x5aac7854bd729c4ca5d1dcca8198725d4d6ccb4f | 1 | 6 | 5363.984674 | -|terp1twzjjjpwhadfgmksvcjj40lf08u25vye7z8eg8 | 0x5b8529482ebf5a946ed066252abfe979f8aa3099 | 1 | 6 | 5363.984674 | -|terp1tw8shlftfyevxv8nfx9mctn09vyk038gf64qyc | 0x5b8f0bfd2b4932c330f3498bbc2e6f2b0967c4e8 | 1 | 6 | 5363.984674 | -|terp1tw4rz6ew5m7u07w2hf4avnxlmu5nk8ndfplnpy | 0x5baa316b2ea6fdc7f9caba6bd64cdfdf293b1e6d | 1 | 6 | 5363.984674 | -|terp1thyf2myzy3v86pzeyrwpexg7ryyuqk9r8e63mq | 0x5dc8956c8224587d045920dc1c991e1909c058a3 | 1 | 6 | 5363.984674 | -|terp1tc8qfznylcgnfdnr2x5wc8c0hmh8edgguwzqmp | 0x5e0e048a64fe1134b66351a8ec1f0fbeee7cb508 | 1 | 6 | 5363.984674 | -|terp1tcw96hk2zywt2964m730tkkfspqjy40pysk9g3 | 0x5e1c5d5eca111cb51755dfa2f5dac980412255e1 | 1 | 6 | 5363.984674 | -|terp1tcamnlaxnzhp2eetq0ecarjkyyztse64yx4kwj | 0x5e3bb9ffa698ae15672b03f38e8e562104b86755 | 1 | 6 | 5363.984674 | -|terp1tupkytkz422qkr46pafpfyz36jnzumyf40a8az | 0x5f03622ec2aa940b0eba0f52149051d4a62e6c89 | 1 | 6 | 5363.984674 | -|terp1t7jugeykg9q4pgxkfm5yf635yuchu9zaddsdkj | 0x5fa5c46496414150a0d64ee844ea3427317e145d | 1 | 6 | 5363.984674 | -|terp1vq2ak8gyhf0phxvjvyu9n76tfhldfyqypmw3q5 | 0x6015db1d04ba5e1b9992613859fb4b4dfed49004 | 1 | 6 | 5363.984674 | -|terp1vgn4mae47yyp88aydysrqak80rrypp7afl4qsl | 0x62275df735f108139fa469203076c778c64087dd | 1 | 6 | 5363.984674 | -|terp1v2ujjf76h7tma58hsj0macwd2t5kzku0fe32v3 | 0x62b92927dabf97bed0f7849fbee1cd52e9615b8f | 1 | 6 | 5363.984674 | -|terp1v038dugp5t3pa783suykf8998n38ea0f4eaerp | 0x63e276f101a2e21ef8f18709649ca53ce27cf5e9 | 1 | 6 | 5363.984674 | -|terp1vhdwyr2n65fhruglmqpyygvlp446x6awfp0lph | 0x65dae20d53d51371f11fd80242219f0d6ba36bae | 1 | 6 | 5363.984674 | -|terp1v64v58rr7a7pfjuct8gslreczpxwl6e3k9fga7 | 0x66aaca1c63f77c14cb9859d10f8f38104cefeb31 | 1 | 6 | 5363.984674 | -|terp1vudzm6xdxuhe6peympmmz9rgcjt9jhntrgucja | 0x671a2de8cd372f9d0724d877b11468c496595e6b | 1 | 6 | 5363.984674 | -|terp1dq0vlvcv5h6py6aeu4cyzkfpcg5xwzrhlqn7a0 | 0x681ecfb30ca5f4126bb9e570415921c228670877 | 1 | 6 | 5363.984674 | -|terp1dr89znw0ytsufywfaeznugcz5c7asj3phfa87n | 0x68ce514dcf22e1c491c9ee453e2302a63dd84a21 | 1 | 6 | 5363.984674 | -|terp1drud6fp0y3zl5spg6nn7lcwu2kr7msvsprq5fx | 0x68f8dd242f2445fa4028d4e7efe1dc5587edc190 | 1 | 6 | 5363.984674 | -|terp1dy8n65c3vqspkm4h6xc2q5xtdp6x9edacn0q2t | 0x690f3d531160201b6eb7d1b0a050cb687462e5bd | 1 | 6 | 5363.984674 | -|terp1dygmwnlgn8z7dnaf2sx84lm38zs7ke8tvde44h | 0x6911b74fe899c5e6cfa9540c7aff7138a1eb64eb | 1 | 6 | 5363.984674 | -|terp1dycyru23t6fjdcy7uc43dgh5hkw74ahz0qy9ty | 0x693041f1515e9326e09ee62b16a2f4bd9deaf6e2 | 1 | 6 | 5363.984674 | -|terp1dfeuyaf683kvqmjckvjly4e445x966d76wc2uq | 0x6a73c2753a3c6cc06e58b325f25735ad0c5d69be | 1 | 6 | 5363.984674 | -|terp1dfarn7aehvj89metpy7nxvdj2r42xwm7vc5cnl | 0x6a7a39fbb9bb2472ef2b093d3331b250eaa33b7e | 1 | 6 | 5363.984674 | -|terp1ddh5q6525utkhad3d9mhywjzx2qy093jmq2867 | 0x6b6f406a8aa7176bf5b16977723a423280479632 | 1 | 6 | 5363.984674 | -|terp1dwhj9s4hmeznt7dtha579jmakpfz55r6p7hznz | 0x6baf22c2b7de4535f9abbf69e2cb7db0522a507a | 1 | 6 | 5363.984674 | -|terp1djw8k75d09ysuq6rxrv0syv22l4tk3u2lhfsg3 | 0x6c9c7b7a8d79490e034330d8f8118a57eabb478a | 1 | 6 | 5363.984674 | -|terp1dexwgmfverjcd7ukpawa4trxhjcuxytpfhqpv2 | 0x6e4ce46d2cc8e586fb960f5ddaac66bcb1c31161 | 1 | 6 | 5363.984674 | -|terp1dmdppz4zlllw6gy7kwv9xryjvs2q5mekhzn09q | 0x6eda108aa2fffeed209eb398530c9264140a6f36 | 1 | 6 | 5363.984674 | -|terp1da522wm6pnvahzhcy56vyklkx08uef05kjrlem | 0x6f68a53b7a0cd9db8af82534c25bf633cfcca5f4 | 1 | 6 | 5363.984674 | -|terp1wp47hjg2h94lths7656jvl5vkdf7q3yd36xcsx | 0x706bebc90ab96bf5de1ed535267e8cb353e0448d | 1 | 6 | 5363.984674 | -|terp1wz2a8n83p7jjxfgqvkzjymjrsvng4rat4gu56g | 0x7095d3ccf10fa52325006585226e4383268a8fab | 1 | 6 | 5363.984674 | -|terp1wypaur5ye2syecc69pkszp7zwzlwpzvk27wskr | 0x7103de0e84caa04ce31a286d0107c270bee08996 | 1 | 6 | 5363.984674 | -|terp1wyzx0cmcxdzklgenw93zlurwy3uw52l49tqck6 | 0x710467e37833456fa33371622ff06e2478ea2bf5 | 1 | 6 | 5363.984674 | -|terp1wxa4jy7j4s9ueupxfhrlugaqs6ps98ykpspkkf | 0x71bb5913d2ac0bccf0264dc7fe23a08683029c96 | 1 | 6 | 5363.984674 | -|terp1wda5ht2z4fjr7fw9krv5aw0fms050adxr564x2 | 0x737b4bad42aa643f25c5b0d94eb9e9dc1f47f5a6 | 1 | 6 | 5363.984674 | -|terp1w5qvjuxl0zt20ushu6ummtrzpyvt8hnta6fgr0 | 0x7500c970df7896a7f217e6b9bdac620918b3de6b | 1 | 6 | 5363.984674 | -|terp1wutxm6c7euufursjglmlkkcp4hearzl99vw4f6 | 0x77166deb1ecf389e0e1247f7fb5b01adf3d18be5 | 1 | 6 | 5363.984674 | -|terp1waudmr79v2lmymxy4uqade8f2cpsuw7vkhnk04 | 0x7778dd8fc562bfb26cc4af01d6e4e956030e3bcc | 1 | 6 | 5363.984674 | -|terp1w7jr5a552gam9ursalnrztlyd5z7qcyprgv8en | 0x77a43a7694523bb2f070efe6312fe46d05e06081 | 1 | 6 | 5363.984674 | -|terp10qh59986jf5druele7q09u27chvjpflnemcyaw | 0x782f4294fa9268d1f33fcf80f2f15ec5d920a7f3 | 1 | 6 | 5363.984674 | -|terp10z60lh8fek3crknw0utwya5f4hpy4a89te3xqy | 0x78b4ffdce9cda381da6e7f16e27689adc24af4e5 | 1 | 6 | 5363.984674 | -|terp108662h23xtek25ls4z98ajjr6w0w9w452368xu | 0x79f5a55d5132f36553f0a88a7eca43d39ee2bab4 | 1 | 6 | 5363.984674 | -|terp102h9eryppz4jzgnrtagdyzquh6xcg7y6mv9hx7 | 0x7aae5c8c8108ab2122635f50d2081cbe8d84789a | 1 | 6 | 5363.984674 | -|terp10txfxh85r08k6mecz5tf67cpa4068gsguytlvz | 0x7acc935cf41bcf6d6f3815169d7b01ed5fa3a208 | 1 | 6 | 5363.984674 | -|terp10tgq9kp9ttrfmkqcljhwj8522dxc6v9gaqhaul | 0x7ad002d8255ac69dd818fcaee91e8a534d8d30a8 | 1 | 6 | 5363.984674 | -|terp10tckf7lh62dm939qrhh2280fkl3jme5d9l2x7r | 0x7af164fbf7d29bb2c4a01deea51de9b7e32de68d | 1 | 6 | 5363.984674 | -|terp10wqgsekttscsen424k5y8z8l0mu3glhmzxgvld | 0x7b808866cb5c310cceaaada84388ff7ef9147efb | 1 | 6 | 5363.984674 | -|terp10wdnvjf09jwermxpzjnz9pac8jl56x0altd3wg | 0x7b9b36492f2c9d91ecc114a62287b83cbf4d19fd | 1 | 6 | 5363.984674 | -|terp105yash5t3nlfnludkp5yeq08mtz8l64d9ff36f | 0x7d09d85e8b8cfe99ff8db0684c81e7dac47feaad | 1 | 6 | 5363.984674 | -|terp1050eshfl84hjluhn8pee8fnmwy9wkrfffnrumf | 0x7d1f985d3f3d6f2ff2f3387393a67b710aeb0d29 | 1 | 6 | 5363.984674 | -|terp10hu8s3l0keh2hzs0pu5gg9xmatk66p99q0ccnt | 0x7df87847efb66eab8a0f0f288414dbeaedad04a5 | 1 | 6 | 5363.984674 | -|terp106y6j7hhut80pdlrwwslmntu92zs3u66dre7fx | 0x7e89a97af7e2cef0b7e373a1fdcd7c2a8508f35a | 1 | 6 | 5363.984674 | -|terp107ex2hpyqkpsdlufavvxhlclnrstx00dyn8gvq | 0x7fb2655c24058306ff89eb186bff1f98e0b33ded | 1 | 6 | 5363.984674 | -|terp1sy65pj94wnvfkjszqtx78sgyvfp8tdhun9mupa | 0x813540c8b574d89b4a0202cde3c104624275b6fc | 1 | 6 | 5363.984674 | -|terp1sjfe83t5sq3c9rypd38kxnvqe43kx6qrn2n3km | 0x849393c5748023828c816c4f634d80cd63636803 | 1 | 6 | 5363.984674 | -|terp1sjeh7qg8z4jf8aggzc9c7rmv8rh5wkgkvjqe0l | 0x84b37f0107156493f508160b8f0f6c38ef475916 | 1 | 6 | 5363.984674 | -|terp1s4ftrhm6zvzd7fsuhf9psuaq0a4lgre67kt5r3 | 0x8552b1df7a1304df261cba4a1873a07f6bf40f3a | 1 | 6 | 5363.984674 | -|terp1s6gjwlkefr8ygknua0xtxja0c6afym883zm99z | 0x8691277ed948ce445a7cebccb34bafc6ba926ce7 | 1 | 6 | 5363.984674 | -|terp1s6tjmvflk6d28fdjsynpfy9lavhc5tlfmfnyfz | 0x86972db13fb69aa3a5b281261490bfeb2f8a2fe9 | 1 | 6 | 5363.984674 | -|terp13xp82mv462elxvz7h8v87ur3tdme6jhqpk8n6d | 0x8982756d95d2b3f3305eb9d87f70715b779d4ae0 | 1 | 6 | 5363.984674 | -|terp13xvcaj7546essq9kasnnt094vj9r7cvjv4kzxt | 0x89998ecbd4aeb30800b6ec2735bcb5648a3f6192 | 1 | 6 | 5363.984674 | -|terp13828tm2z4rrc5khum4smfnxvyvy783f0kl6s72 | 0x89d475ed42a8c78a5afcdd61b4cccc2309e3c52f | 1 | 6 | 5363.984674 | -|terp133ccsntq8lxnymv9c2697ttjf6ej7r35ym5ht7 | 0x8c71884d603fcd326d85c2b45f2d724eb32f0e34 | 1 | 6 | 5363.984674 | -|terp134qxmjshr9r4g3rehht80wa8k3hx4gv5kv9qt3 | 0x8d406dca171947544479bdd677bba7b46e6aa194 | 1 | 6 | 5363.984674 | -|terp134czscmsg6wlusyut0d80h0zvfwddnvxqvvdh6 | 0x8d70286370469dfe409c5bda77dde2625cd6cd86 | 1 | 6 | 5363.984674 | -|terp13k265g4qals7lnq4t6x35md2r6hu34t8k26k7v | 0x8d95aa22a0efe1efcc155e8d1a6daa1eafc8d567 | 1 | 6 | 5363.984674 | -|terp13c4dudw25gspeumldp06nqak5m3k45d6hs3dt2 | 0x8e2ade35caa2201cf37f685fa983b6a6e36ad1ba | 1 | 6 | 5363.984674 | -|terp1360kdp9ch8qse778d5yd7k69e5kjm67wka8xwk | 0x8e9f6684b8b9c10cfbc76d08df5b45cd2d2debce | 1 | 6 | 5363.984674 | -|terp136upwrf64x4yvuu4mzn639l67n2a6qjfwr57cw | 0x8eb8170d3aa9aa467395d8a7a897faf4d5dd0249 | 1 | 6 | 5363.984674 | -|terp13m9jyraz9d5hjcaqad5cnhtyz272uypwj48n6p | 0x8ecb220fa22b697963a0eb6989dd6412bcae102e | 1 | 6 | 5363.984674 | -|terp13ucgru2jq4d9rk57hernzmt2k4vadfm77h8sf8 | 0x8f3081f152055a51da9ebe47316d6ab559d6a77e | 1 | 6 | 5363.984674 | -|terp13asjn9patga0t3qp3682efmnm4glx9tqfwgrcy | 0x8f6129943d5a3af5c4018e8eaca773dd51f31560 | 1 | 6 | 5363.984674 | -|terp1jqsna3ql5ngusvnw3fnsztu6ezqwdtv6c9eltc | 0x90213ec41fa4d1c8326e8a67012f9ac880e6ad9a | 1 | 6 | 5363.984674 | -|terp1jpuvhx09aur45jjaankclhd5dpmxrrz82q5724 | 0x9078cb99e5ef075a4a5deced8fddb46876618c47 | 1 | 6 | 5363.984674 | -|terp1j9xu7x6ucy9qay3y5krl5vgwp9yrmjmu2jqju8 | 0x914dcf1b5cc10a0e9224a587fa310e09483dcb7c | 1 | 6 | 5363.984674 | -|terp1jgmv5p9w86zw7stesu462dklvp4y8078qxkg2d | 0x9236ca04ae3e84ef4179872ba536df606a43bfc7 | 1 | 6 | 5363.984674 | -|terp1jfpla5q9tj9w4gcm4ap9c05kcxw7nn2ry87yca | 0x9243fed0055c8aeaa31baf425c3e96c19de9cd43 | 1 | 6 | 5363.984674 | -|terp1jt9xtqudzknfer4vk7rpmgx3gyzksalwv0q00j | 0x92ca65838d15a69c8eacb7861da0d141056877ee | 1 | 6 | 5363.984674 | -|terp1j6zd7srztv39ays88rwgygvlqxp2wwrk29x8la | 0x9684df40625b225e920738dc82219f0182a73876 | 1 | 6 | 5363.984674 | -|terp1ngk4xsx37n4jh72jamzrhk0v27yxwnlv3a57u4 | 0x9a2d5340d1f4eb2bf952eec43bd9ec5788674fec | 1 | 6 | 5363.984674 | -|terp1n0zdyq405heqjeutk5wnsyvk2409ycyjs3rg39 | 0x9bc4d202afa5f209678bb51d381196555e526092 | 1 | 6 | 5363.984674 | -|terp1njf0unue4czpqykjvee7s5m8x85g47pgjx8wf8 | 0x9c92fe4f99ae041012d26673e8536731e88af828 | 1 | 6 | 5363.984674 | -|terp1n5jecp3dkmyuw0pxydwh9stgjewgwt4xr8aqj0 | 0x9d259c062db6c9c73c26235d72c168965c872ea6 | 1 | 6 | 5363.984674 | -|terp1n4akudme0kk208xsw2hfns35zqm8exsxmjgn77 | 0x9d7b6e37797daca79cd072ae99c23410367c9a06 | 1 | 6 | 5363.984674 | -|terp1nm0cgm7mzp6vpre7py4vjzganhyqh3daqggaqz | 0x9edf846fdb1074c08f3e092ac9091d9dc80bc5bd | 1 | 6 | 5363.984674 | -|terp15rx5ltuwft877mqe3z90evqlxur95eqgmsur3c | 0xa0cd4faf8e4acfef6c19888afcb01f37065a6408 | 1 | 6 | 5363.984674 | -|terp15r7htk3el3glwzg25hc5fvh3gvvu733mscdd49 | 0xa0fd75da39fc51f7090aa5f144b2f14319cf463b | 1 | 6 | 5363.984674 | -|terp1586dqn8cfr828jur8qtptrpaewadkhr02uak3m | 0xa1f4d04cf848cea3cb833816158c3dcbbadb5c6f | 1 | 6 | 5363.984674 | -|terp15gcn2zwsfrq3uvwupkmp022yga27ku3cnfhc65 | 0xa2313509d048c11e31dc0db617a9444755eb7238 | 1 | 6 | 5363.984674 | -|terp15fzfk238ykrahuh922ufk2kdc6rgulraj8w8st | 0xa2449b2a272587dbf2e552b89b2acdc6868e7c7d | 1 | 6 | 5363.984674 | -|terp15fr5dsq3w9q675drdlej4ska9zd7xe59pmkg65 | 0xa24746c0117141af51a36ff32ac2dd289be36685 | 1 | 6 | 5363.984674 | -|terp152s768aw8u36lavdvyjr0ctmqwcwrp2af2vdfg | 0xa2a1ed1fae3f23aff58d612437e17b03b0e1855d | 1 | 6 | 5363.984674 | -|terp152s7afyqtfyty5ljpgkfy667m49yrfrwsz4580 | 0xa2a1eea4805a48b253f20a2c926b5edd4a41a46e | 1 | 6 | 5363.984674 | -|terp1527x44nnsc3h32wtz7acawdkcz4na7pptmkfhj | 0xa2bc6ad673862378a9cb17bb8eb9b6c0ab3ef821 | 1 | 6 | 5363.984674 | -|terp150q4a95mn4gmt9egq4jz8pjt2pj2rkqp5fy27y | 0xa3c15e969b9d51b59728056423864b5064a1d801 | 1 | 6 | 5363.984674 | -|terp150qltvt6mujdscfw533hcxn5ljs07mmqn67zus | 0xa3c1f5b17adf24d8612ea4637c1a74fca0ff6f60 | 1 | 6 | 5363.984674 | -|terp150rugsfs72aj9yk3mzx7pa7v99mf4gxut98rg0 | 0xa3c7c44130f2bb2292d1d88de0f7cc29769aa0dc | 1 | 6 | 5363.984674 | -|terp153rpjuykz9me3lemveaawkjcj2y2dfls5jgxg5 | 0xa446197096117798ff3b667bd75a589288a6a7f0 | 1 | 6 | 5363.984674 | -|terp15u3ekdqr6lwtyh7f0pskqett0a7tcul5qc7hda | 0xa7239b3403d7dcb25fc9786160656b7f7cbc73f4 | 1 | 6 | 5363.984674 | -|terp15793tp62757adqdxzhaqqh206sfgd6y7hphnn4 | 0xa78b15874af53dd681a615fa005d4fd41286e89e | 1 | 6 | 5363.984674 | -|terp14y8arh5328ju7w2v9e2j3uq3r47txpqh9jt5vf | 0xa90fd1de9151e5cf394c2e5528f0111d7cb30417 | 1 | 6 | 5363.984674 | -|terp14yt0aqc4mfuhmqcz0vq3m30nt7uq3rg00ssx8e | 0xa916fe8315da797d83027b011dc5f35fb8088d0f | 1 | 6 | 5363.984674 | -|terp1486xq2czwm0tlnz03jqad5v63cup5pgs3ek6ax | 0xa9f4602b0276debfcc4f8c81d6d19a8e381a0510 | 1 | 6 | 5363.984674 | -|terp14taf8w6dkzs44lgaky0a2hjwt32pkhermyyqcz | 0xaafa93bb4db0a15afd1db11fd55e4e5c541b5f23 | 1 | 6 | 5363.984674 | -|terp14vjxwjf7kjlkft63mz6eyx5c8jk5x5075jswnt | 0xab2467493eb4bf64af51d8b5921a983cad4351fe | 1 | 6 | 5363.984674 | -|terp14jwckshauw8kwxp8dqmm353534q5uj3rsgllr2 | 0xac9d8b42fde38f6718276837b8d2348d414e4a23 | 1 | 6 | 5363.984674 | -|terp144weh8sxy4277cslhmfu30vxucv09uxnc6p2sp | 0xad5d9b9e062555ef621fbed3c8bd86e618f2f0d3 | 1 | 6 | 5363.984674 | -|terp14kpe2ns4snnaly00rcd974npdp8zm363k33gsc | 0xad83954e1584e7df91ef1e1a5f5661684e2dc751 | 1 | 6 | 5363.984674 | -|terp14cdjea7pkfql6al8gx3p8pyntxdh39d9l0ldtj | 0xae1b2cf7c1b241fd77e741a2138493599b7895a5 | 1 | 6 | 5363.984674 | -|terp14eannwtv30q4z443l74zwz92875ncgyc9j7227 | 0xae7b39b96c8bc15156b1ffaa2708aa3fa93c2098 | 1 | 6 | 5363.984674 | -|terp1467papakk3pzvw2pwgle8lczt32trt09h0nemm | 0xaebc1e87b6b442263941723f93ff025c54b1ade5 | 1 | 6 | 5363.984674 | -|terp1k997gunay0pkasgtlwh5kp7xsw5c0kk65ty8lx | 0xb14be4727d23c36ec10bfbaf4b07c683a987dada | 1 | 6 | 5363.984674 | -|terp1k2rpe50vhsqmfnerjjgl3w23efjjk57qj34uqn | 0xb2861cd1ecbc01b4cf239491f8b951ca652b53c0 | 1 | 6 | 5363.984674 | -|terp1ktec26cznvy0lwcrkp77073rjj66pve5hvvs6s | 0xb2f3856b029b08ffbb03b07de7fa2394b5a0b334 | 1 | 6 | 5363.984674 | -|terp1kwvftlypk5qc6cu6cgqqsd64kajzn93h5epme4 | 0xb39895fc81b5018d639ac200083755b764299637 | 1 | 6 | 5363.984674 | -|terp1k6fldty6p8dvhtadqkk70cygrcr3v46nhyehkc | 0xb693f6ac9a09dacbafad05ade7e0881e07165753 | 1 | 6 | 5363.984674 | -|terp1kltu0l23502zrdfn9p9qd39juty7e5agka7w0w | 0xb7d7c7fd51a3d421b533284a06c4b2e2c9ecd3a8 | 1 | 6 | 5363.984674 | -|terp1klvz0hgy5mu6rqmu4jfu3cn88r42yextgduml5 | 0xb7d827dd04a6f9a1837cac93c8e26738eaa264cb | 1 | 6 | 5363.984674 | -|terp1hq8r2gumhzlu6sjzvverh4ctfh2aa4ehcruhkp | 0xb80e35239bb8bfcd424263323bd70b4dd5ded737 | 1 | 6 | 5363.984674 | -|terp1hqkl9dtyzlr00el08ewxuyc7wa5yw9e8pkvucm | 0xb82df2b56417c6f7e7ef3e5c6e131e7768471727 | 1 | 6 | 5363.984674 | -|terp1hrxk4fvew4s26yrhk8xjuy6tf0krpu73un06ln | 0xb8cd6aa5997560ad1077b1cd2e134b4bec30f3d1 | 1 | 6 | 5363.984674 | -|terp1h9kmuzcv9s44ss2lvfzdzmrd80pdnq8ju7neky | 0xb96dbe0b0c2c2b58415f6244d16c6d3bc2d980f2 | 1 | 6 | 5363.984674 | -|terp1htk5qrlwf32ujnlstd9408ptl96gpu45kpe4fl | 0xbaed400fee4c55c94ff05b4b579c2bf97480f2b4 | 1 | 6 | 5363.984674 | -|terp1hwcgythwgd5chm7nvnh4jfmwzp5s66skg5wx4g | 0xbbb0822eee43698befd364ef59276e10690d6a16 | 1 | 6 | 5363.984674 | -|terp1h3qxmrx4a9sccxe60xnh5t7yvhtt26jeuqqkpr | 0xbc406d8cd5e9618c1b3a79a77a2fc465d6b56a59 | 1 | 6 | 5363.984674 | -|terp1h3e5p7p3azp9hs7gz05pw9kvep2cqmly964acr | 0xbc7340f831e8825bc3c813e81716ccc855806fe4 | 1 | 6 | 5363.984674 | -|terp1hkzhatx36q65k9h72lt3r4dc5s9yv759gtvhpz | 0xbd857eacd1d0354b16fe57d711d5b8a40a467a85 | 1 | 6 | 5363.984674 | -|terp1hh0hc9srqsag8x975zme5c84t3vzhzq5krsk79 | 0xbddf7c1603043a8398bea0b79a60f55c582b8814 | 1 | 6 | 5363.984674 | -|terp1huk4f0utfke739xh4nmrysmjlxqeckfrjpk2r2 | 0xbf2d54bf8b4db3e894d7acf6324372f9819c5923 | 1 | 6 | 5363.984674 | -|terp1ha6gwk7f7xhj4jtr7qz908xlusemkd5csmx86k | 0xbf74875bc9f1af2ac963f004579cdfe433bb3698 | 1 | 6 | 5363.984674 | -|terp1h7znrht6r4unxr26xulnm6mv7gcefl4qwynff0 | 0xbf8531dd7a1d79330d5a373f3deb6cf23194fea0 | 1 | 6 | 5363.984674 | -|terp1h76lev6vjmt3wglf3w63s26wjd9gj5gnwlvxm2 | 0xbfb5fcb34c96d71723e98bb5182b4e934a895113 | 1 | 6 | 5363.984674 | -|terp1cv9mh3gftu90k4yk7cf7qxxyu8759225ud5qum | 0xc30bbbc5095f0afb5496f613e018c4e1fd42a954 | 1 | 6 | 5363.984674 | -|terp1c3pkg90zlcnkhqya5f6pvpk72qtgheygj7hldf | 0xc4436415e2fe276b809da2741606de50168be488 | 1 | 6 | 5363.984674 | -|terp1cusgspfwxj0yh2cv92920ldemh8csafz5yrnsr | 0xc72088052e349e4bab0c2a8aa7fdb9ddcf887522 | 1 | 6 | 5363.984674 | -|terp1cayc9qvrcync2g6f0udex0u95ty47tcdq2l5c5 | 0xc749828183c1278523497f1b933f85a2c95f2f0d | 1 | 6 | 5363.984674 | -|terp1ca34p2t3awpgr3p4qvflthla4wkz4vgc6at63f | 0xc76350a971eb8281c4350313f5dffdabac2ab118 | 1 | 6 | 5363.984674 | -|terp1ertseh4v9drt3ztfcud4hcn6mjcuk0w2ly4ja5 | 0xc8d70cdeac2b46b88969c71b5be27adcb1cb3dca | 1 | 6 | 5363.984674 | -|terp1ervczp9ss6tan4pzhqk5kecxc6mpp5cetw7nz6 | 0xc8d98104b08697d9d422b82d4b6706c6b610d319 | 1 | 6 | 5363.984674 | -|terp1e8pjuecsypqtx55kw8t65dkljzwjmw23cfc38t | 0xc9c32e67102040b3529671d7aa36df909d2db951 | 1 | 6 | 5363.984674 | -|terp1e38yu59mcttqxkaapte0qf6uatkwzn8hqan99x | 0xcc4e4e50bbc2d6035bbd0af2f0275ceaece14cf7 | 1 | 6 | 5363.984674 | -|terp16z6nwsd4rymkprcty49exg2gdzpqwq9t3ne9js | 0xd0b53741b51937608f0b254b93214868820700ab | 1 | 6 | 5363.984674 | -|terp16r4euqandrc54kr0jn80z4qwzmytlldacylj8v | 0xd0eb9e03b368f14ad86f94cef1540e16c8bffdbd | 1 | 6 | 5363.984674 | -|terp16x3l75glx6ckxkjyzdjqrekwwkx03sl8vfm7k7 | 0xd1a3ff511f36b1635a44136401e6ce758cf8c3e7 | 1 | 6 | 5363.984674 | -|terp16x4t60ut9jf4j3srxw23ph262eeal0ufnswl44 | 0xd1aabd3f8b2c93594603339510dd5a5673dfbf89 | 1 | 6 | 5363.984674 | -|terp167x789pxhnl29f8gmrqw30xuqynvqr888sjvqe | 0xd78de39426bcfea2a4e8d8c0e8bcdc0126c00ce7 | 1 | 6 | 5363.984674 | -|terp1mf7047dkmnukya5gcw2q7rlvc9lvfz0zqgyrre | 0xda7cfaf9b6dcf9627688c3940f0fecc17ec489e2 | 1 | 6 | 5363.984674 | -|terp1mta05vd827fmde0aaf0scz678m2h9frn0k68k8 | 0xdafafa31a75793b6e5fdea5f0c0b5e3ed572a473 | 1 | 6 | 5363.984674 | -|terp1mvdplgxwypl6c945ydezjlfds86klzmvm5snh9 | 0xdb1a1fa0ce207fac16b42372297d2d81f56f8b6c | 1 | 6 | 5363.984674 | -|terp1mczkxg0kwpkf69a0e7jngxlz9a4mtchpeec0pv | 0xde056321f6706c9d17afcfa5341be22f6bb5e2e1 | 1 | 6 | 5363.984674 | -|terp1uremqd2angajj0peq6jzpxcl8qh099j0q0vphp | 0xe0f3b0355d9a3b293c3906a4209b1f382ef2964f | 1 | 6 | 5363.984674 | -|terp1ug4f6kf0la4l6qnhe322vaxd9z00uw2slys042 | 0xe22a9d592fff6bfd0277cc54a674cd289efe3950 | 1 | 6 | 5363.984674 | -|terp1u05ls4a3qc2ce8jh4ulgvak0gchy24x3kcuv9d | 0xe3e9f857b106158c9e57af3e8676cf462e4554d1 | 1 | 6 | 5363.984674 | -|terp1uctnndfm40y2vqj7rt0hhhh6n6xgqtfxcwpvcl | 0xe61739b53babc8a6025e1adf7bdefa9e8c802d26 | 1 | 6 | 5363.984674 | -|terp1aq8u4xp2z3j4atycxmser0hclas4al2rsyj2nr | 0xe80fca982a14655eac9836e191bef8ff615efd43 | 1 | 6 | 5363.984674 | -|terp1az8v3x8c794l4u5lz66zcdry0pu7lw7dl2jttw | 0xe88ec898f8f16bfaf29f16b42c34647879efbbcd | 1 | 6 | 5363.984674 | -|terp1axy7w8q803d6wza2aam6z92gk0dw4v02hyaekh | 0xe989e71c077c5ba70baaef77a11548b3daeab1ea | 1 | 6 | 5363.984674 | -|terp1afcaaxn9scpu8805833s6slrdva7f0x200l3ux | 0xea71de9a658603c39df43c630d43e36b3be4bcca | 1 | 6 | 5363.984674 | -|terp1a24dynn4eytvszuanyra30ns0qs3gw5wnwx8sw | 0xeaaad24e75c916c80b9d9907d8be707821143a8e | 1 | 6 | 5363.984674 | -|terp1at2wwkyrc0xu95my6da7lcs5xkfas2skr3vl90 | 0xead4e75883c3cdc2d364d37befe2143593d82a16 | 1 | 6 | 5363.984674 | -|terp1awk5qnyadnmx30x9fpkn8rg5qlrftuvanngw68 | 0xebad404c9d6cf668bcc5486d338d1407c695f19d | 1 | 6 | 5363.984674 | -|terp1a0h9gwx2suaydveqw92e748xzen3406mhrquht | 0xebee5438ca873a46b32071559f54e616671abf5b | 1 | 6 | 5363.984674 | -|terp1a3w2am4m9jl5fdza2qfvewnyekrd9f5fux2zg2 | 0xec5caeeebb2cbf44b45d5012ccba64cd86d2a689 | 1 | 6 | 5363.984674 | -|terp1a3ntar7csupl97m3vwl6ql5t30nencvw3s60tq | 0xec66be8fd88703f2fb7163bfa07e8b8be799e18e | 1 | 6 | 5363.984674 | -|terp1a5z2e0ua7kdemwqg2xl7agx62x7km6vh4gtgd0 | 0xed04acbf9df59b9db80851bfeea0da51bd6de997 | 1 | 6 | 5363.984674 | -|terp1a4kfwfxwhfs8zckmlcqut4hsyn8478y5yq3l3f | 0xed6c9724ceba607162dbfe01c5d6f024cf5f1c94 | 1 | 6 | 5363.984674 | -|terp1aedrg3mka3zytsjnzqn4yjr6qazdxq526nnaj8 | 0xee5a344776ec4445c253102752487a0744d3028a | 1 | 6 | 5363.984674 | -|terp1a6xtd78rad8zg034hryxy6nfphfe4t66znw3as | 0xee8cb6f8e3eb4e243e35b8c8626a690dd39aaf5a | 1 | 6 | 5363.984674 | -|terp17pg9xmnuawlmxzgszu2lflrzdgwvjaxl4qeq6r | 0xf050536e7cebbfb309101715f4fc626a1cc974df | 1 | 6 | 5363.984674 | -|terp17xvjjzcz8szd4q2n2dnjpct3czr5t8m9wzwl4t | 0xf199290b023c04da8153536720e171c087459f65 | 1 | 6 | 5363.984674 | -|terp17ve0azx80tue9uj8w4w45z7823nytuqz60kt0p | 0xf332fe88c77af992f247755d5a0bc7546645f002 | 1 | 6 | 5363.984674 | -|terp170wr6044cv8h44edh2xh4td6mea5wsl286jp48 | 0xf3dc3d3eb5c30f7ad72dba8d7aadbade7b4743ea | 1 | 6 | 5363.984674 | -|terp17s5p73lu33fy4g36hj2tfcgtp475vgvttea6v6 | 0xf4281f47fc8c524aa23abc94b4e10b0d7d46218b | 1 | 6 | 5363.984674 | -|terp17sm8a4xm6yl9xj93zsmd8qz6erdjpkww7n2ddv | 0xf4367ed4dbd13e5348b11436d3805ac8db20d9ce | 1 | 6 | 5363.984674 | -|terp17jhshaf0z34qju3zl04a0ezmnfmnpzcqn9jftj | 0xf4af0bf52f146a097222fbebd7e45b9a77308b00 | 1 | 6 | 5363.984674 | -|terp175q4xmc3h99teag8pfxskcg4pjcflgyhfullf5 | 0xf501536f11b94abcf5070a4d0b61150cb09fa097 | 1 | 6 | 5363.984674 | -|terp17km4u5wqmj87gz7kuct5j36ng75cs9al0tfjc5 | 0xf5b75e51c0dc8fe40bd6e61749475347a98817bf | 1 | 6 | 5363.984674 | -|terp17h6yh66a3kcc834hkj4uvp3yaglarac4vq0s2g | 0xf5f44beb5d8db183c6b7b4abc60624ea3fd1f715 | 1 | 6 | 5363.984674 | -|terp176ezqww7mqwpzsuaqzfkz5u28pr62hxrk6s47j | 0xf6b22039ded81c11439d009361538a3847a55cc3 | 1 | 6 | 5363.984674 | -|terp17un692v2l4n085a064jh0v6w3fhddseag2l5z8 | 0xf727a2a98afd66f3d3afd56577b34e8a6ed6c33d | 1 | 6 | 5363.984674 | -|terp177f2zkuhwljw8haf9etm02rd7l5ua9348u6t48 | 0xf792a15b9777e4e3dfa92e57b7a86df7e9ce9635 | 1 | 6 | 5363.984674 | -|terp1lpaqjcgypq879yvdws4dzwyjxe94fcm6fjuwrj | 0xf87a096104080fe2918d742ad13892364b54e37a | 1 | 6 | 5363.984674 | -|terp1lzz3vlvqtrstf0ysrnu327t8tgrkmqckzg0uyk | 0xf885167d8058e0b4bc901cf91579675a076d8316 | 1 | 6 | 5363.984674 | -|terp1lyuk9lsun3ggt4pfh66q0fj5akkzzrjkws7shl | 0xf93962fe1c9c5085d429beb407a654edac210e56 | 1 | 6 | 5363.984674 | -|terp1l8snmr7xerm5gjdfemss3zpzhqt4yevg3pkra3 | 0xf9e13d8fc6c8f74449a9cee1088822b817526588 | 1 | 6 | 5363.984674 | -|terp1lgr6wwnj6ghh6qcrp7560hudl3wd6exhljulru | 0xfa07a73a72d22f7d03030fa9a7df8dfc5cdd64d7 | 1 | 6 | 5363.984674 | -|terp1ldxc3zqcwvzgltyzvqr8rdsh04krzcz586vj6l | 0xfb4d88881873048fac82600671b6177d6c316054 | 1 | 6 | 5363.984674 | -|terp1l4tvsc0g6r0k5us8rqe3x0vdlk9f97eknfv6fq | 0xfd56c861e8d0df6a72071833133d8dfd8a92fb36 | 1 | 6 | 5363.984674 | -|terp1l6062awx9v4u9sunvg4yl3xzn7qp3e3nswhpe3 | 0xfe9fa575c62b2bc2c393622a4fc4c29f8018e633 | 1 | 6 | 5363.984674 | diff --git a/eth/holders/cht_erc20_holders.csv b/eth/holders/cht_erc20_holders.csv deleted file mode 100644 index 0d0e798..0000000 --- a/eth/holders/cht_erc20_holders.csv +++ /dev/null @@ -1,1478 +0,0 @@ -HolderAddress,TokenAmount -0x44998245c27a9182d9dd321726d3d493e6a2fff9,52230931.14 -0xd2e6ced96b569ba6685c2e86ca0a98c7ec50289d,30201017.67 -0xfcd67eee80f7abfabdf456ae4ebe8c3e040f4545,25525476.67 -0x19fab8f7dffff38268644eaebd3d538f68036000,20109025.22 -0xb9bc2d7d80c09466e7212d202b3fd3b7b9ab599e,12146295.61 -0x2a64e64214781930f2fef8ca44da3f8ecdc0ceaf,10750316.07 -0x8d79147d64985566c8d72183612e953f966ef81f,8824600.85 -0x04392a8b863bed204196ab3473796579e8b10388,8166564.52 -0x0860f25c8f3be3a98db4adcf9371ef79bdc2e32c,7669428.47 -0xc4b920473545fb871da743a0cebb7a4e88ce5727,6641710.85 -0x1b0bc5d02086051418a566f406f52592f365fbd0,6564871.94 -0x7ffeaf30e33b5f56a2c89756da8d458074a3228a,4476217.81 -0x45852af87d14e20281fa1525aa1f64b83793700f,4370768.47 -0xf8c8c07e2ee32e00da62f010fad4bfd1c60b7d50,4251787.06 -0x362f4a7e7fdc2d69b7a3dfa8f993ef0f5737dd3b,3870625.52 -0xe0459778d774f3c1539ab100e37886ca02346c0f,3239286.22 -0x01b684806577d94a1769535f353fb13eb75e6d51,3129960.71 -0xeffb61a74238c5bdec0f5c2904960c3e2a679ab5,3066786.74 -0x0626f46cc8c57b3577f05025dbc34cab2b759443,2282002.70 -0x5e7ae57b4e0f663d1be7ade6e37f1805dc918c0a,2066556.21 -0xafe3e17f15ebc6bad19778edb7f735b66716b4f2,2055661.99 -0xa722b2248301579bcc2f4587ee0e98166b643b58,2041820.87 -0x58406c2e3d738ab7ca1896d7510bcd85aff7ba8f,1810928.12 -0x45f9e4135e17d17ae1489e92d010abb7115007f0,1571879.05 -0x48e7949590819a6ecd9652293e26eec752677240,1536849.11 -0x3a4b023e1205d464e087c9736103c34d1deb73e3,1517840.48 -0x8e01ed2e09c477ad01e04caea735f897d3c6c2bf,1446966.19 -0x2bc87b025e03ab3b2149ec0a0c7b88c5c0a9da79,1398545.85 -0xe97de4109eab6e69d9b3782e86fafba79a2c3ad5,1304933.75 -0xee5c6073175553b21b1925381affa43bb1ee5497,1297389.94 -0x476be5a80d5a1ac93a98ea4ab1afc4f116fa2efa,1269599.53 -0x9c1a148bcc582bdff0ffc4404099d8d64805ee42,1145752.72 -0xe2945346f27de8f7be616c0f0fd3e9b31d563945,1135588.47 -0xeca8d188945379ae8936ea84f2bc56925a332416,1106849.66 -0xeb904a5fee54bd05db80b0e2e7b43c1bce10bbc4,1075266.72 -0x4d05150e03ed966ca363e5fb2ef5b4ab358081b2,1018028.84 -0x0e39e66d9fe4f4431041ccda46db31d6265b585a,1016541.85 -0x3bbef0b3040f123d11b6b7e3c8971185eb38caff,1016322.14 -0x0ada25cc9e9be50ff8ad29799ed653e9b3dc6928,1006878.94 -0x5e65692ad99a9017ae3a7d997bf3ac14e044b0c2,1005924.36 -0x254768d47cf8958a68242ce5aa1adb401e1fef2b,1001295.78 -0x5a31facf243c2c395700a371647d07204ee79c25,999500.66 -0xc8db756c22f1a536434ffbfd7759bb13c5e711a6,928343.15 -0xa99505725bc83a38da8a3786a06a1d709ef642cf,926537.83 -0x0cde7d5cffaef5009d0c772296bf9040d22f7f64,915785.11 -0xc4e597145e010b750eff5de328e0860d734dfc27,907496.26 -0x70c3f70f559051c581a6871cabffd75c50f0019a,865586.46 -0xe0e723fe30aa47361432066886d1b73214c0cac2,851485.30 -0x6e432e8ad8a24ac6b7beeea2c40c53794037f898,797366.63 -0x8652097dd6e877614332dcb2abccace13214d90e,769371.48 -0xed768d1f9e6da3f7c652552b0453de200d0f1c4b,713146.31 -0xb5fd7bffb973314bfa2f90dd3ba74dee3ba9b22e,710796.91 -0x0b1e38f32500f236b68751a1fbf4420eb332aa76,701480.85 -0x0ea842f737f59e71b838e8e751cbc678401dd2ac,686895.28 -0xbc3bbf6158961e362ad70ec94e58ef46b19fb926,682802.12 -0x19c3f1a2e3f4d28c0bd5a4eac18ddd9b01a18ecd,677179.00 -0x5ab73154a4e5ad6512e5b233a7a8364a80111a6a,674938.50 -0x68d6c0d62f776089f4466a4263501d8597a5ea69,661889.41 -0xfc5831587d37969226da5bdd8b90226534a2c06a,654803.41 -0x3671f028bb74df814333b9f9f6a122515366cd14,653398.68 -0x81cd8a48b8fb975a7d3aaffc71b2713d9fca6bb9,645024.43 -0x760a6314a1d207377271917075f88e520141d55e,644087.17 -0x4a94e4b2f0a2d40d39242f61244391ea6ec6f774,636041.19 -0x725aa470a31fd3f69cc291071dc1138b7113c330,631620.69 -0xda16453c9843431102774e03fed09c84bcbe98a3,630824.74 -0xa3fa22886c1430e568121fb0d4956c13d8216363,626572.62 -0x2cb91b4356e08f59e6e28b8d400a5fddd70604f7,604017.72 -0xbdf27cc0775aae45dd8d22371a3ab06e9e793d59,583835.27 -0x6263ecdc72a3adde80f244705260a26bd25608c4,553274.64 -0x415faefeb038eb69acd1df8da06410e17c447e29,537668.32 -0xd285e57ab944cbcee30d018e1e21fa4881c659cf,533836.90 -0x44fc905255c6e8cda084be92fa2a9fa527e136e2,531717.91 -0xdeae28b64675005114d9029f1aeed9a51263bba2,526264.46 -0xfc96fa2d2c55df9671c3f24f8ca6df1337ff0cf0,521718.04 -0x76816d7e2cfe01402c7ac6f45e0e066ed60cb3b6,521133.50 -0x597aa2543278216eb6f0b71ba8313fe4d06f817d,518702.55 -0x7e4ed5e89bfa4adfbc8143fcfe64f20e9a5b09f9,514176.56 -0x3111968a00e452742236e81cfe28a38d6dc6cb05,512662.43 -0x61523a8d1561d4bfd539c383d51604e04bbb799b,508781.90 -0xcf04182c9054160e7bcbbbc0c375b042edeb0652,502331.87 -0x2ea0eadcd1695749a8073e4474575b91aa69cacd,500353.08 -0x4e3a713f0a646033b1981e21cc577392446896de,479264.56 -0xbc97b1d7b094b4e98d8bd13107c9094f7d087372,475976.17 -0x4b6ab04916dcfb0e2041d99b2b6187303ca47a42,474739.35 -0x383b794bbc1e2c08851947ce99cb749b42e4b9d0,474375.94 -0x3b89aeef98af5d16edce6e7ad134f47d3a18d21c,468169.69 -0xe252e3c0b18b6db34a7a8d3b0c128b437a10af99,450271.55 -0x3e1cebe917f26fa3608879623995d5bbb83936e6,449975.84 -0xfc5ac2481a8ea66b1d09e87a70fe2fdccae8a93e,439379.04 -0x04bb78493c41a6232d014a421ee741792c1ad250,426758.63 -0x867072026c8c60ed2550dff131481e3b3bb1fd8f,418069.70 -0x8ac1cab38af8772d0bcfc556ee464186a5bf3962,414770.58 -0xdd49092cf1a07482dd5432e1b0480534401e6243,394633.58 -0xe31eaf798479ff27f662f1fed35f4041430220fa,393489.99 -0x39a5532361d8c750699de07b89c54d948ddba9e7,390958.19 -0xe873c19b33cab017ce0102df4c92f6709b4f5a20,388233.33 -0x515de3cd5356e8fe5a973db7e05af1841ed9e5f0,381966.79 -0xa9dba4aeabf7af1c0c9f68de7381b93fc07c5a32,379747.98 -0x2111809658c520c9bbbfcac7aecf84e72d8c95b7,377933.25 -0x2dbfc1d5bcbca6e08e9d50adb974cc51e1ccf8b7,374964.93 -0xec309902d575e1d80fbcb60fc459a8fed13cef05,366083.13 -0x0028be83aea26315638e81e28a2fcd3fd378e7db,361149.48 -0x505a1b76c671dfc70a2e72992b676e747404d97f,352507.14 -0xd2b063bfd95d05eab1094ee6dcb5a9372c07a867,351290.55 -0x5f1f3748f9532fe73f9b84eb071899e3d950737b,348744.21 -0xd657c0a2a4775595f41a9c84800db841a9b1cd5d,346834.13 -0x98a7d05fbb6e31df91fcb0893e5e9c29def26e72,336638.88 -0xf1dd8d8a27c2474d8c6aba394b09e21ae017e545,331323.53 -0xde72ffc2ee4f6d4f1ffaf4d0ebcf12ffca9d431f,330909.08 -0xc7a1fe3637acc1f4c147c98f2cc54be8420d1531,329706.61 -0xd881be01bc2bdb8afe7de1e0e8299d4ebe9b03b1,324042.70 -0x63c59fa8706812eb65a348f972b6b15cfe17c435,320777.40 -0x86da5a57359ad024d9a3f40b31ce12ad65356f0c,318842.91 -0xc65fa000ef613416c5a2172f288e2942cc39fb82,317318.28 -0xc2dc5eb391af52d491a662b728a42d694f30be4d,311741.26 -0x3d208a787d9cb64f5b6a93997db9f1433eafff2b,302753.20 -0x6615e0aa84de06897a10bca73ccf546fd72b2a12,299243.49 -0x90b3ac838b28a158e450d9bf57a09077d62a8861,299210.73 -0xffb95fe206182c1bdf35d192a1f8359d21694678,297418.42 -0x1525981b79261f8cc6a4f638d3301c0c9e79d1f9,295673.86 -0x2cf05441fe4a2d3cd30b916a9872a736abe15804,294450.53 -0xaaecaca4bc57985f106e0642c7946dc3381ac707,283610.19 -0x07d7be4e0d905f95b9f43f9921fbec10cb3fe691,278277.90 -0x2bcc22d094b7400707cac14163db912d4c372e83,277603.13 -0x9694f2d0f196edc60f0ddef6f7a1a65072a8de9a,276068.94 -0x5a27676e99dd2303238bd2213a0d239cecbac590,274079.26 -0x32572ab7968f117caaa58233e4b664e10be956d8,272098.96 -0x7ec40a1a7ab368b0c4cd446605cf00dd6c6cc0de,268473.94 -0xc922d159f98ebf0c64a3d1de8a37eda28554442d,267742.10 -0xe3801a162bd77195c583a5941cf979dc994b31d9,261277.97 -0x4c91195e15f2192ce48ca5dbd74bf522b81004f3,261039.38 -0x5205ef2516cf8b8c3da55d8853f49d56db9ff903,261008.86 -0x8b1f59e5af0d2712d668f6a56875127091757b4c,258636.21 -0xe80be74f1ffb0dec2b7c649a7a290d5adce48ef6,257051.66 -0x4b2b287ee0046d022d7ffd179e4aeca05ece8061,255984.30 -0x161c49f75f37a4f4922d19bbf1b92c08a410a8f4,254524.44 -0x0b375247de62dfd497a2c80e28190caafbd5907f,253442.19 -0x2ddccea13184186d49b00dde028c2e10b4bb8e6f,249270.19 -0x227dbb43a13c339dd94307199028a0c5d0c2ab6e,248658.07 -0xa6c9457f0fcacc6b053f50b7188af4593f99e6cb,248321.79 -0xd3639ff485d958ff1326c0616e36208535606939,247343.86 -0xed4879e5899bdab0642e188cd3de5e0255e356b3,244189.18 -0xb58b3f559b64e4ced7b7dc9aff915310c62cd2ab,242598.26 -0x27b76378dba83ea916d00a3de78c1ecc6beaf1c6,238520.19 -0xbecc574cb735ede08f3a744ad0098970d85d6a7a,233591.76 -0x08bae64a33d8defb53ee9df657bf343c559718c4,231214.23 -0x9053a9220bc89da0898194057dd7bcc3bf36e90c,230144.77 -0x72a02d91d48ca566fe0b83677306e8fccf284ad6,229384.14 -0x495ea8d1d774358e912dad6163e9c3b6e37077b9,222450.50 -0xc256257c3448802db17f344add35d13c14da4faa,219577.35 -0x9667f6c21086440d21b381c3f91c2759f192c854,217797.58 -0xbffc996f12c3a565a9d0fa31577b5d30ebbcda3b,216758.94 -0x44a4474be961b7683e34f2b204660a842e567e48,214721.34 -0xf366561c5c7d6508248c16f836368392fd7723a9,212460.70 -0xee9095f793493eb332204c8838f3337aa6e582b7,208662.81 -0x01fe9f0b37412498bc62f2086674ac9786d27e7f,208659.67 -0xd15cd937831ef368ec6de6947bb3e2714658e1cc,204570.77 -0x7c02f38de25611887c16b208f85f29ce625f4687,203654.12 -0xdd1f74a9bc67a74d1c0d24f9d17ff942c2181776,203608.41 -0x918fbd0720364aec87c021f63c8bd3dd6638aac8,203154.42 -0x618d8c0df790b95c1f0aa938304d9059037972dd,200574.73 -0xc23604faa1e8755c9ee391dc8938393c22c41793,200206.37 -0x4cb278d8dee9a05982160e4f3851d4a62680ced2,200000.05 -0xb6d2757f1639f382949e56b8c75cdeb23b729b55,199438.19 -0xdfb60cc9f46f8784685367ab84c66037ad4261cf,195398.71 -0x31174b747548a56003edd1507ff11119117ef736,193850.83 -0xea83404d76196c89821ddcba14d3dc1111dafe81,192546.19 -0x2412722eb11cab4023b0979f79f58839b364aa61,192238.75 -0xae672dca4464c1c2d5a79f03142082824d88d031,191539.37 -0xb31e8e0fa531db8e18a6cb9c9db83f45a598c76a,189813.09 -0x038f28a39559de6c586728d60a47d914880589f1,184235.83 -0xdf94a7c1b948d47b33d02104a1b921614979b7e1,181945.57 -0xe0bde56ba27a21557c9c6b30d30fb7e5bc079d8a,180210.16 -0x24360f556c9dd85730f04993de51bfb42cbe4df6,180040.33 -0xc390128456f5e35eaab28d4061eccae0c1ac7728,179416.71 -0x465e0d52207b0d772eaba41b84c1f8f99cd624a0,178779.87 -0xbffa0adbfaa0e20b734ac365e63affeba8f1dd0c,177984.43 -0x70969b84378eaadc2377c6b5a5270ad1fd1683a5,177747.21 -0x1727a8066ecb1b54e13f07b6332150ab2e94f2c6,177706.38 -0xf5eed342cdfeff748debe1e50ff4accff32593f3,176325.25 -0x5c2248818c6cca7974eb7b5901fd4dc0e5f0f897,175850.35 -0x97604e74de5d9ac469ce508a746a4add11881891,171757.93 -0x6d2d668009e030007fda355890f61ecd29495ed2,170907.58 -0x7a6cc15b610a720a9eabac1fe29cf9bb1a6ee6a1,169610.15 -0xfbdb250fab368245a07b02387e5aff2ed6a4bda2,167151.04 -0xaf40195b48973085c3c0b80310323dcfed3923aa,166945.44 -0x0a96534f248c9b98330e377f1091712ce50a9206,166776.74 -0x3bd2470eabc41fe666598ee48faccc1487c140bf,162877.76 -0xb4cff1114e89e53d87f5d3c233db3a768820e2db,161391.10 -0x91ad8aff7eba4a9250693ee94a92e7f853dcf5e6,161268.24 -0xb1c96e906101bf27f8959e40c4392ecb9d497e89,160221.69 -0x5b884452ee814d59e1869ca8cc83e5dfc9995a0b,159986.95 -0x2ef811f96e67108b2bf224bc30944a5f7480c9fa,158516.40 -0xe2c6049024ce44dc33a43222e22c8869f9cd73e0,156442.47 -0xd5819c09522b9eaa133991ebc996880621efa4b9,155789.67 -0x7ac2ad1c16d30af77f52a1e3c7abad8612e363d3,152306.03 -0xa802a52020620b787d261e515b559315c3f99a37,149251.84 -0x7d773340e9d5f5b270117e5675948ba1b18c7de0,148984.71 -0x93845ed221a87fdf6ec4a2e87319e12e1a66e83e,148194.07 -0x1ddeb0c6e2d8123ef438c0c8cb964d6ee3cdc935,147175.31 -0x87b00f4f836e0c5d78255aeeac62566d9e51af6a,146172.26 -0x3d006d8e3a6eb9bbe170fafc8a1ba82fc4fe1c5c,144068.86 -0x8498649db6645e1a39f32e548826d6eb4e6afff2,141373.67 -0xa35072498ec2ae77c804babcf692fbd69fdc262d,141123.29 -0x6f281bb0736143cc3dbb5281918d6dc7d35339f0,140997.89 -0x3f8550c6ef10ed9c95ca850dee528d25fe862d74,139769.36 -0x8d0979a0156dc25e14034bbf199dfd4052e57723,139524.31 -0x64338a791ba8f0584d0059edec9a6bd246d41ba4,139246.92 -0x37e6f3e5934c69a2e0befe44c865eee7e5217649,134413.96 -0x265a335fbddad52b87f3b5297acd1111e0bc3dfe,132288.84 -0xe521ee483fcc5efdb4be0f6a50fef292abcdb3bc,129524.73 -0xb959bbfa32e9e0745018ea23586d61b92e610173,129004.26 -0x830b046d442d9bf37e2289ffcf8cec4a2edf7010,128061.39 -0xe93636aac64838fbea6928c50056090966901ab4,127328.33 -0xd74ff889b65a9f0ec79c8be44ae0f11d379d4df9,126425.37 -0x569f40fb13d9af9181e7d13724f74e9629813136,126015.09 -0xefcf747355306ae46f0f24bd1a8633498a2bf087,124618.70 -0x05d90f7d6d0a1dc67c2b8fe63044b71a09e14549,124008.13 -0xa2d18f6c4ccef7b82ee920c5c6ce2cae1c870abc,122707.00 -0xacc81e58bd20f0cfad70242ae195b80b99210b8a,122236.28 -0xafb6191040a845d5d062486fa9d9cb8715cbce46,121552.61 -0xe32fb8e45c86af8a33424628d157955dfdebeeb2,119806.73 -0x9bab6fb3d7a4025be1acf0501936337b5bec05cd,119735.64 -0xa68df4e3387b2583a04f46f74e985f79cc8f54fd,119143.44 -0xfc87a1017711b68ba48a11a01224b9329da5fd3f,117298.01 -0x25afc5359456be27d2079db8edc393e64351cb21,116485.64 -0x15cffef1e2789a89531e8738d3a1e1141ca4dc19,115783.67 -0x19d0bf089c30b3fbadf0a612f66972c2f2dd1c25,113678.89 -0x94a9ac6407e53edb4539b3db0f2166888a152fba,112929.32 -0x5c999bd175f55ffc313439e0f12f7a4e636056b2,112527.11 -0x1ee72b512debf71757920833c0be0d457a939926,112472.91 -0xc723de53d130b98a73491079f375ad66265bd543,111428.30 -0x82e11e75935635098ad5e9452e6fc834a5921249,110506.73 -0x291d5aaab8f4cfe3af2e97c4d66915b4c24e72b1,110240.98 -0x6bcb0d83cc1096670abaa2f83d8d2d46b6541df2,109394.84 -0x847d46c98d7202c24c5022b4d110216e4707fb83,108357.32 -0xcc1319685209a7708c39cbf1bc1177903ab33fa0,108335.84 -0x99a13f8ebc7fadb53a92c68b347760f1460e094a,107687.77 -0xedaed0522fe6bec64a41bdcad13642c6a03897ba,107540.84 -0xde0e2067ad2a1d6d3d0125f17fb8ab29c0057b4b,107371.15 -0xc54a55befa1fd16e1ef8fd2005a08481caefcf4b,107254.73 -0xd24cdb13a31a09689f023c1ff9c0577fcf51cde9,106988.99 -0x8e6aa910f593cf952b9ef2eb6977849533b53fb6,106958.71 -0xc974656047ae876d47f4511ebbd8dc8c2d937c8c,106676.91 -0xb261a9577063f57ebdc7663ee2c30bb9d0162deb,104679.65 -0xe605659ba16c21fce07029a1dc4abc1037307d9c,103816.06 -0x1cce837c4ab2d9dd44fabe503d213c992eb67cbb,103281.73 -0x347d361e401fbe520474fefabc150f5f914ed31a,101467.23 -0x650f26ef6408bedf8ad6ce255ace369b19cef331,101213.50 -0xf00bd11bf7c06ad80676a08f399b592b8b873502,101178.89 -0x394e182b076cebb9f27a63c1d032325fde5a14fb,100554.32 -0x24f67d9db1b40b591e9b83e17dc2f4456f31bb27,100490.93 -0x83e6db752e1f5ec8bd1341c48f60e193689035f8,98398.30 -0x7cfcd549a8142febde1eeb005307f14374320722,98113.65 -0x5ea099110c8de9b39ae86e1915cd89a015168248,97495.67 -0xd9e9e22b308478e2e7196d6fa72b981705852ba5,97482.48 -0x5e50dcc5652ffbd7bdfbc3e50a7f587196a856ca,96771.41 -0x53035b201b041452267903b04863e52af2efc337,96449.87 -0xd3d73b7f2cf645d748d2762ac3175106fac671df,96327.92 -0x9a3b136c35909946451f18ea355a411bf69cc4da,96077.86 -0xee36000d5d7195a6b452cb44191fdeca49e5edf3,95315.45 -0x9f576731650285c90fd3ff209cc452a4255a3538,95302.53 -0x0dfd6a23fc50b2580117074d1bd1bac26c4b207a,94810.86 -0xb15c938cb816759ccede926ad43fe489c4d0861b,94542.69 -0xec02e674460b954247fe73b7d549e7f5f9250983,94194.02 -0x56786e13ddd7cd48fec8e570e031ee469a922c16,93868.65 -0xb515c4c4bc685b3ee0e16c3d43042d37b7a3b290,93854.07 -0x1a7d90e4952a0085c2704c2ea075ca45f036f459,93619.24 -0xba77a7bdb15940ddd981d266ae052f5bc9a0ea13,93337.16 -0x8d1f94a17ee8f3c6094cf6ba4ff1ced8152a94bd,92449.23 -0x8825cf1d33cff7c51801a584e815d24560576d9e,92021.81 -0xded216a5b1e0b036b0da86489f21bddccef11458,91793.11 -0x8450f110e2311ff111faa21582fa11458cf2a49f,90100.25 -0x92249e76237987f2ff679f32189ae90fea508ba1,89857.53 -0x139a7368b05d5b938608ea0a4a71269eb7c0e818,88511.69 -0x962b9892e4a9609dc75e4ba1701e1f40eae79127,87885.43 -0x12632f4ec1966f9c5edd59bbfe3096b1db3b8bd5,87799.99 -0xbc0d826f32e83ab78a6d3764a6109d337c378504,87784.60 -0x356c043fc1b01ba6257b442a174907b3ccf8f18a,87300.19 -0x667ce55df9f8961fd5d4ead60fa56e5cca921950,87125.68 -0xc5811ddbd4fb95d6a4136c1bf58cd7d83004818d,86929.47 -0x3310f29bdae5559ea3b9d24b0f7622ddb206550f,86535.13 -0x60b69af9ac41806e131140ca69b126ccb1ab3a7f,84671.73 -0x5d44319a643bc6071b8cc4ba0feca9ad04fc93aa,84466.06 -0x8122412d9cc76fbfcdf0c3ede703c39d78c5d9e8,83785.29 -0x1413c02aebe46ca49fb271f6460c695267b3b1e3,82650.49 -0x02127b7a45a6b98b77b81f7a45f3c85aa4383579,82405.09 -0xaa8ebc58540f6f9a2ea512465e13863df5c327d7,81727.32 -0x54e14ef4fbf1759c80aff8a2745282abcb431c1b,81552.71 -0xcf928e7d433be1a502ff1d7c998e7a16286b93f3,81483.30 -0xdd3ded2218e67be97da17e7e2406378fa198efa9,81240.03 -0x23257c698048bef6e3df88361c549c7a82b2bc97,81137.70 -0xd77e743342b18b15ffcdc1abaaa763b3d705615a,81024.61 -0xa9d7456b221103aaa3dd9e5c8e27b35c3fe97ca4,80865.71 -0x14b36de17134f2f71a05419ee4feb81987d5389b,78501.40 -0xaad8c1596866877e42ba4cca83305c6e9ed7f470,77634.18 -0x084fd5127e158ff8227d95ff6899305d51d5bd56,77203.52 -0x7c61b32eae156b82196551233f57f9b20ef63a70,77147.56 -0xc1277eb0415f98bdcb8da5a9af91ccb543efe6fb,76781.58 -0x19decde77c8fb239cb188330486424e42732d2cc,76213.77 -0x93698d01659adbfedf26207cf53d3206d2ce40b6,76207.09 -0xbf201aae7e012310b2a0d684bd456027a19e6563,76022.94 -0x01d68fb87e9c76108536e4b734a3423247755d09,75583.95 -0xb2dba6629f8b1f4135205f6faabdfe463b12647f,75448.50 -0x88643c224f37f2bce9532ba8c9765c91cb6d2973,75312.53 -0x4e648a170307e26bd5c6c92ea06ff7b2652bf3aa,75200.61 -0xbcd8a9a31b0f50e385593d6a26a8bd8fa8b23067,74620.77 -0x408f4072698561b063e436d50ca6bd4bbd621d4e,74247.37 -0xcea0a1459672a8ff00c519e62c10d172d457818d,74073.25 -0x0b7e303baa657fdba046d13e01548bb0b22eb485,73673.46 -0xa389a7dafd07602ea3b964f53819b40eaa10b1c3,73571.26 -0x111af688d0ba06694fe55dbaad9baafc1a316f47,72939.84 -0xc3a7dcc631438f0e6937d726672184a9948148b5,72915.72 -0x005658c9a1d145d506b91d56ff540e7383788699,72574.45 -0xfc81a4476e099c57492a62bdd8f49f626055b18c,72376.73 -0xd2bd4d1911e7df87ff5011049d87316bbc48bf51,72108.91 -0xcc2a71dbc6bac68f1b86812812fbd0317a4e93bd,71852.52 -0xd0117cb83071b5fd30f672e8e2b5cd4e5523f15e,71509.58 -0x4d101f660155f90abf780cd5c12cee97336b47e9,71411.56 -0x262ad6a299027a1bf88c89675b84075a88145988,71391.87 -0x6f5eb6074686452683b1f8e1f4d680f3b5e5f093,71019.32 -0x20ea08d74d504f10e02b98af948a4719d678a2f6,71004.22 -0xbd568cf826b1b8f8770566c293cadfea8327c6f2,70395.70 -0xa5e36e2107175a96955847fa5e62ab8a86a4972b,70356.31 -0xddf0bf2538e83b05b7e32e6d0659a3ab19c6638c,70257.38 -0x164233074aea2c5b94021e3a94ab0f56b00a853c,70234.75 -0x3918892443a7c3f83abba8e2d8b545ada69cd57d,69927.40 -0xd6e5e0a6b3777b32075faf79c78d537e3262f8e0,69675.79 -0x711a9c967ba7ccc56b10d7b23cca5743274849b1,69304.32 -0x783038722cb32ebdd2f41cc17ab6c7452c88471c,68561.46 -0x52b50305384705034fc96a4e3e04f77f6dec5e00,68131.68 -0x756d299693b6a3c8f80e5c6b166d6e92c5bd03f3,67715.90 -0x8574731b254f7be9de16eaeff9cabdb53b3cb06f,67671.98 -0x603844274d7089b3b744bb8c360df6327562feba,67170.06 -0xd8849ecee2f9e67c85c6c1562eec0049123b7e30,66798.88 -0xdfdd6ab0053d1f8cabd516fb1ab93dd1f6fa1d32,66633.49 -0xacf856e71fe8165d160df4921332a58fc4f6617e,65733.86 -0x90fe7e172fdf30e0e734044db21bc968bf1a8568,65511.62 -0x575843e6dd6502dd83829a40b1e475f30e121c22,65431.97 -0x87058b285bb4a6b666400dc70e01c77b4e0f9df9,64020.10 -0xef17fe3eeddece3c69f01d10fe14fd0e2b591c48,63202.58 -0x4a8705ccd1bac13408cf38c72c1a986cd338f27d,62842.74 -0x56cbc4d21643d63b1de86f2311de5ac7f32cd363,62781.63 -0xb770e41d7a3e9b14d41761fed6b200e85cd7fff0,62614.13 -0x0c815ff679942b08ee6ad0039514d28ed2c5cb8f,62579.59 -0xde8a0d367aa3d836f306741f16e85899f0dfc2db,62517.69 -0xb6d114dfa4ba4fe09cf556dddf79a80c3a403c93,62036.50 -0xe6d203c3657f5e6dd347c64104bc768e83f3064a,61988.83 -0xba96233753e13b5bc147ba409785302af1fbcf42,61026.80 -0x592ceb65adc843a030eeb6142455d17f0c0121d8,60443.33 -0xa5b954c04cba071fa8963f6a0eecc61e19ebb564,60432.39 -0xa56465b739ee22a70fb2012b4973bf366c8265e5,60415.76 -0x0b63079ddbc15865b0031b02e9ae47c6a32889aa,60001.42 -0xe89f65f62f52f52b62e9f47bf173b8265df3e77d,59844.16 -0x8f2ef548e71a59194418b7d4cc7365db5679dc3e,59035.75 -0x867dba6a19b1f2cf0ba5b5823273c3ac245ddef1,58809.32 -0x620d55f5ece23d7e573fd5a28c1e9711da079a19,58693.29 -0x0f2b771e7cf2db2e04e9c58177751f3839d5ecee,58643.22 -0x6774f62cc9d81218f5f82724bc90cd64f0f4a26d,58196.56 -0xcc174eb14fdccc1ab80ea6d8653042fb254c3973,58114.58 -0x7497f02047e93fbd831fae240754c9c85cf40d60,58098.87 -0xffdcf662018210406b9ce982b2d161cbc8a81ac1,57977.79 -0xf50e40bdcc929d0d0166a40ef9184a573a33db5f,57846.44 -0x53466ec79cd1060eaf8cf597e314d698149cc36e,57755.34 -0x8b619c4e50e50a67866a75754ad3dc33f5729dc4,57327.55 -0xd85289b0d9adee98d2a3302fb9bba10e5d3a30c5,56958.33 -0x3c9dcd429565e41b2a964c089f8d8bdeb0125a10,56923.79 -0xeae02aee57522472dd90f46d2bf9928554a36dc4,56077.13 -0x44ca469b8d6d2ac330ee6dee57d2a8731493d2ee,56005.64 -0x5e44a32d16e90d346fa49c3d7d35b5118743bd47,55640.41 -0x18b5f62c3830668d64f859a5a71511b2132075f1,55214.10 -0x067ad88bd4edc5ab39fbe4e1a595df2fdcc7005f,55008.58 -0xea69f5b872620f3bc584ded4ce6d3846ee9c5bed,54772.96 -0x8040767bd1304bd210aaca8b3f43ecd3a1717949,54594.76 -0xae239ecc512f12bffbfef83b1232e1f2d536416b,54362.11 -0xbaf66e1f03d860a790b0de6cb9aec272a5b3abb2,54207.08 -0xa829642c8eeb00ed32bc29678870b9a4074af14c,54063.30 -0xa74271c591fcc31d6ee67c6ef93a8233163b7e34,53940.01 -0xa14daa53e1887e65d93b15bc792464d9aebc421e,53539.71 -0x3a6b433f4b497f1d5d49f3462d4d40992288fd8e,53354.81 -0xe412d5bffbf1345549f70c2f5696043761b5793a,53350.07 -0xd5bff4af9633496d3ee11df95ac2c126141e0c16,53318.91 -0x24664d171236dbbfaf5fe8ae05813341e63f36db,53055.76 -0xd854b38cbeb222d1684087c05161efbe6cf9f14b,52766.98 -0xeffad5bd22a02f92e114f1079d4549265e36ca94,52740.52 -0x30f7453f7fcb89fa6fc8a2309f9786eba43242d7,52632.66 -0xb0bde6b2e440cdced97da38f7f94e8bf1c07ef75,52339.97 -0x46c21e16cd70ea53fb2bcc847871ed5adc088e02,52052.96 -0x81a229dffc8f945858a598d19356faffb1c8a643,51303.13 -0x12b53171f1143e8bb7051bdcf0122dc2ad02c387,51292.56 -0x82c35e598e40b1b87618dfb0d31396d76bc255e7,51162.52 -0xde83021d129adb30186951f520f4ad8d49433e8d,51118.18 -0xb4c44ce26c524794e9f7f743829dc4ad988490a4,51075.07 -0x1fd3a7f7cf1c605037a2ee859ec48facb33ee11b,51036.74 -0x224974039610c22db886e3af5c8f0533190febfa,51026.34 -0x04fc5906a7155b20db4afd8266f959b2a5de0086,50820.04 -0x04d6781a86463b8e8798941780864b3768337a44,50613.68 -0x9fffb73846bafd8d02a380a37a4f940f53f13435,50580.31 -0xb3ac09cc4eb4bfde002d2a00b7a4771d72ab9b44,50444.90 -0x4a40b33d2817636837c3ce01101060ecdcda9ead,50219.72 -0x251dccd91d304696b29fcbc8ef54d36bd3243f44,50096.11 -0xb6377d1c0bb4b05a184063d12aa834a16fb0f395,49899.62 -0xc9fbd1f27ed01d18f38a3d47e3f4b9eb0f01dc98,49724.62 -0x21ff63dcb2b5e297a1ad4600d2b58aefe055c25b,49508.55 -0x5d118b846c411dd61b15611f7d11eaec2ebf98db,49219.09 -0x886f9a3a132a4f6926a1e5cea8575647a336f59f,49167.54 -0x4e8a511f117c80b97db153fd0adf77986078e175,48927.89 -0xc754f377b7dc3a5c54944ec5cfe6a0e4e0be8d4d,48680.11 -0xcca6825f1eb6df7056074d08a1f4171a52cac324,48606.47 -0xeff5f304a0904e4492d6012e85cb1f77d476e024,48500.06 -0x13cac5e9d6602311c47c346cebf1dff6b766a266,48448.15 -0x85ad1f3259ae887e53bf07a1a396a0401967fbb6,48066.00 -0x3a7ce2d8eed6d4a2e8c188b049141720e9e14ff8,47686.69 -0xcc209ef4b053ecfac025bc776a144ff13a07533a,47381.46 -0x28e47b02eae65a5f50b63ada685b7ec3898de8f1,47339.21 -0xc9fa9fc3b76e9ce60366a5014d51b349a1fef7c7,47221.89 -0xe54997f88e84b4a3f4b2a1159fa8a3b39984f658,47034.19 -0x4fae279c73fb1bde09a60c4503eeb11b594e91a8,46343.21 -0x5ed366e362d9c3ae2aa2f87e8eaaa1b898251f0f,46015.85 -0x9668e7eb5fcc8d8d7e7b9e1e4ef09d5454141784,46013.44 -0x179f5877ad343f4b7ce5c96096962e4adfb2f79c,46009.38 -0xb0f952e1bd24166dd819b2eecc0455befda245be,45775.07 -0x001e89dc15c3cf73af1f884dbc168df06b1ab689,45113.48 -0x82312964a3decbae95306a9229a8a4dc17215671,44584.22 -0xa6f2dbd30c1a039d9822f7e4d7f5334320de9ef9,44564.26 -0x202fd31bb0b8d73ec7871f75e174f013a947a961,44176.52 -0xa0d1a2ac29ed68985226672d90c6a288f9bd3c8a,44006.73 -0x8e9bfcd073dba70bf430f5936cac86442613cb05,43925.04 -0x88a7de184a0b21f64d66829b69cfacf8c9fb524d,43810.16 -0x3921bd9d6749b17d1f4b7106c15173eca2fd8fcc,43205.28 -0xd62c10e3a867a459bfbf60209e4da053f158185b,42344.65 -0xbc1a5d3dc108c28f27314cff2528adff7d15e514,42260.60 -0xaecb1e845c1300342dcef354fccbd59971cb932c,41876.07 -0x4821c132372c3ec1eb4a516f5f5aedd34978404c,41829.80 -0x8d776a04cfe1dec915f948e06008e99acf572445,41812.78 -0xfb6b1557d67cee4f6fa04c203e0a3bf142ce4a85,41557.41 -0xeba6751566cfc18d4a51fe27be8692c99ab2621a,41332.16 -0x3a83097181f5331f08559cdf384fc3bda9615853,41079.97 -0x861de0806e09534b1e9ef623b80e12a2d024ca35,40868.23 -0x44532f4c859906c9ab46214d1c9442550efa6205,40838.89 -0x6bb4fddd46785f2b8251c06ac63b67a6bd1fceaf,40388.17 -0xd43f9a641259a99db894cf46b1bf1a99b213f5c4,40377.01 -0x3e098b0fe2aaa6582d9215508207fbceed6313c1,40351.09 -0x16f255a0efaa0d94d4d8dd928633660f00361a2b,40238.25 -0x9b197cf953ecf8d4137f875681726ae076ea9a86,40044.94 -0xf3e1b55a28030b516226ee53b2d177730b7d355a,39808.94 -0xc5ef1818924cf27e9245d68fe433ce2e9fdc4a67,39739.61 -0xd77eac3256eaf3355c1a4c6a4fcb08bbe1144ae8,39479.56 -0x4993d2ae34dc5d98d254284ba5edf665501a98b8,39310.78 -0x44896647eebf98edf0f2f8450863eff2d12d814e,39108.35 -0xa0ac200909bbdc706cd75f5d47c5ecd8d87ff4cd,39015.22 -0x8fb74e74c4e55c4864ac68b03e2bdaecf33593e7,38804.49 -0xdec815d7e3ae29440ef5aa5ad9615f6258594830,38530.28 -0xefae2cf9fc744560bd6be9a4b718605704fa826c,37888.18 -0x972a95a5a9b2c3978f20e238e4246125f6493c7a,37417.19 -0x4cbec5f61c3e90b0600bb8a5f0d35a91db990bda,37259.47 -0x839b67d5170912bb5d3c65c826d0e06900d94ae8,37117.18 -0x797a6d918ffbfb1ab58072af533fda34df24e8da,36702.84 -0x3d050f2c99a543633f4c1cdde75a05a204699bae,36506.71 -0xde621a590d48bd4a3682d972c72cbe7cd518366f,36239.22 -0xe143706b706cd1aac1bc6300884f3127e6c92b53,36234.00 -0x5faa58732f6629f74181307df6edfce67a3d89f8,36233.63 -0xf44131754376330572d2503fbf76041a738ee758,36231.56 -0xd5b562caf3425f2e1fc1aa5c6e7100a81aa219eb,36118.80 -0x593cfc43dae33a7277ace8716c295befc2602f8a,36062.90 -0x599467c80e7e4533b1949e6b41ec8e0fce3f327a,36025.41 -0x3ea65ebc28163883a23d091a7e290280728f48ba,36014.02 -0x064af1e16b120bcfe929c1fc9dff971fb4b69fe6,35934.31 -0xc062b7fafa5265f14d6c78bfb6a93f9c9519913f,35449.57 -0xc8a3d89e6e2f69b55707efc9c696870bb55cfbc7,35185.57 -0x96d5f3561efee445dc0c594d13c649ed2f9685de,34912.87 -0x6d91bf6b1eea8bad23d431304e3247631eaae40d,34891.12 -0xedb34d7b03f950387990b1905f88ac6d9e1b3f97,34576.25 -0xbfbe5822a880a41c2075dc7e1d92663739cf119e,34028.04 -0xf96e7564656cb45705270de2d48a86e6cdc92f06,33889.73 -0xeb2b87904f8f669b039869b906ee5aaff551e015,33590.16 -0xec4124f64dcd750eb7aa565a5f1fcc9e82ce1fd5,33312.29 -0x92ddfbd1abcfc0cabee973f07126c93c82534dda,33173.44 -0x1ee63fca1ceed215572f650ac40bbc6664db85c3,33018.84 -0x5897a6637e3f23d11d08e4ed1d8d31951d5866c9,32866.50 -0x885c352a8904925a9201b430b055762cb2d16cde,32720.34 -0xc07b414f03d763ceadcdd5231b0f2e6c9cfb8bec,32628.06 -0x53024329944c60b942a1e3550e4b53a61a51b6a2,32469.86 -0x6331a09d75a0cd66fdfe8d86613ff880198bccac,32385.35 -0xbd310c785a082aaad2c6ff666741ea8716a847a2,32346.54 -0x9391ca21e81f9bb17c41900799c0f9f58b80698a,32089.49 -0x2d508e87e5e886433bb40a9672cc63565108dd9f,32061.41 -0x9f8ca3597e80e802b528677ad8030ba0356defd5,31837.15 -0xb282c65867adff9103ac7905de2de55b188a8d16,31721.00 -0xa779a8cc2d69b5855e9affc57190f031678c8de6,31687.94 -0xb04c4920001b2ee23e4db858cdca1508e7063de4,31657.15 -0x8f4780fb038d18e860554758a8e5695a4d7495f4,31584.02 -0x038a41597697cdcd5ad953cdff7cbada89a3cc37,31467.45 -0xa4b67fa1f51c11b43b11910c2aa174febd51ce3d,31338.11 -0x8f601cf1db616e1c0fe7a746f9920be63461ad04,30943.49 -0xe9ab62e56ae995b3d40321fdc0fc8334b7cc4dbc,30822.67 -0x0490ba2e089c9a8cb45c75816c34c860c84f6d0f,30669.58 -0x47908b6d055e538fd2f17a92440df8f8225dfc99,30591.81 -0xefd4a432c55e0c9f789a9be7f500cc967c74ae62,30442.62 -0xcef6ee802d96ead5f84a60c302ed9f9ce8966b98,30345.77 -0x4c26cd73c5a59009d9d9ebfcb69dc6e87de9e1e8,30325.58 -0x36076e5a401decc61c03da97e732c8f1e984cf61,29982.06 -0x9b1df568bcbe52abeb4c9ea20953f465184916c4,29907.26 -0xe8ec75eb9149ed036eeb28446bcfc1767ddc60f7,29654.99 -0x3155a8d1a00ee515b1af232555ebcc0e14ee232a,29640.25 -0xbd6117903f5f9a03d9acbd173a64e45096d3a93b,29604.83 -0xf484ab20fdbbd654e0a89a40018206298147d11a,29597.53 -0x4f80f4e22df23e5c6fb754e1e9035382bbdaa9ba,29544.00 -0x3fd91100146b65248f775b7b034d1bbe93310100,29504.79 -0xafd71a2a78b953f7764269bd3f6fd3645e61baf4,29496.12 -0xee67d2411a92b01f96cbcb0ac587cd8a469ca8e0,29377.62 -0x32f4c9aad9be100f292bc7c76abb59913bc7486b,29275.40 -0xc974d57ae6ba91f29b540d565953848de313768d,29211.53 -0x5571b14565bacfd38e07b9c52a8c313c9b42264f,29169.80 -0xb127fa91bede2801bf9e3049ccdd9390d8ff2885,29110.70 -0xc9d5ca12c7f0b1745109686af968b25117761630,29100.02 -0x4f3d68586283a72bffc2dd3fc10a9b917e678e49,29092.05 -0x3cd6e94d5041cc3fd5ea56a850cf9573cde45ea7,28945.15 -0x3926f62301924dd499a779a6f8cfefddbbe0b495,28942.63 -0x7dcb14d7219b45acc36b08a3349374e2056bdc80,28937.83 -0xe5e74d1072a004a07dea1b0ff4c169424a0b2078,28933.85 -0xa1627501947acfb5e6c4982f5851bd5f982ec1c0,28539.53 -0x20e8f109f76591ab045a5003b15bad1f36097ea0,28461.51 -0x35d24802736de24811bdad7ffc39766f3d43ed31,28254.74 -0x185670a2205a325b37f65795e4a435db21348eb2,28190.29 -0x144e5ab94a033c615248afeb92cf6bff2504dcef,27911.29 -0x2d071ed8fc2ebee7c2e057f8e23787ab88606e85,27889.59 -0x1005e4b7ac8ea525b8c4ae04e351ccc92f8977ae,27793.99 -0x415a1471439c1ed9a0de78ad9d59324436b900fa,27763.12 -0xdd31a7c689e9ab00a16f5b20b88dd90d6695cccc,27637.47 -0xf808c58855bd44386e2db4f2d693ee0219820ade,27551.04 -0x8f131d6775bfe276e9880839e9f101aca9cc9d73,27446.71 -0xd5dd0270652cebc1547f04e10381549414c55edb,26886.19 -0x1149e32247435e624e9aaf631a74f40c0044994c,26870.81 -0x8dbbdd0391cb1512ddf09dd9b9b5aa60e80fc29e,26829.40 -0x3ff133b3fff9fc995562638bd177fed8146c7334,26711.67 -0x1f401c523f1339dca8bab58a46946f59f4010dab,26545.96 -0xdb3d6de441f62012597377628a14c85b0e988564,26492.61 -0x795c62a116dc534bb17fd39ff5f7831e2af378a3,26373.74 -0x4cb419ae4bd6f28f379fab462e1120a2e88d4a4a,26230.84 -0xf8e883e42f4314a665c4dbb5a2ae66acf966feea,25858.60 -0xe3d59ddc48bd5287f5cd5b3df5d696891739ab0d,25704.91 -0xe0d63b7bcdec6ade4729071990ff8e9e3e244163,25667.15 -0x019d253f251a8818c6cb990e37e4fc988ae7ce9d,25606.27 -0xab30d83fb7a0c2f7b156c447ffdbd897c5849cf5,25558.30 -0x8144661f6e68e2430b7a844183fdf179f8814f0a,25489.75 -0x650548c1624ccb03a4840ba325c27f5e1d4a50dd,25412.89 -0x5934df9df54a945f3889b704afc93aa51706e2a6,25403.07 -0x5c091e47b22e39cc8bde2655a43e4fd66e3a2a49,25398.73 -0xe3d5b483dad271340d1b0714cd27f3108e8fdeff,25395.60 -0xedce8173ad7f9c0f6e4213f512748aa72a444c7e,25371.77 -0x06fd8cf946161dc99b728f3a65d38b8121b03744,25340.13 -0x51829c8eeed36fb463e1177bcb644e3a26eaa2f6,25233.44 -0xe2252a53dff4a1f362dc004b4cf6e2853d04e18a,24960.06 -0x0a72c3d1a6fca3d367cf0554e71bbeefb8c0feda,24881.78 -0x23c167ba09668e082f32c93f09932d3828d738b6,24879.88 -0x03a6ec9de3f92e07441c1c4da1645c725698ac39,24842.61 -0x7387ea082408c54f818fafe7850073c6322193b2,24731.14 -0xab23a421a551129825bb2aaf8c2374b136244d8b,24521.12 -0xef4ba51de50c1b585effbecaeb7eb1666eece39e,24255.21 -0xc2204a98ce268e2a59ad144856a96443c207aa49,24250.01 -0x3ece76b96570d9f41389a7c8ee63d12c58f05913,24196.06 -0xbb4c08c4f16e4c0ba365167facd9c1a2b62d2de0,24078.66 -0x7541ef2c774eecda4a86d9fd5aeece2a6db84c6a,24038.76 -0x2746a1cd35c24a2028cdb00c75acbdf3fd85e22a,24012.88 -0x72e9fdeac6f6a59d6ada677311d63de66bd1392e,23964.39 -0x0ed19425fc154b14ac049f6c84be3cc49540862c,23898.47 -0x8545291dde86f401bb3f035b22beb51936c26e7f,23667.24 -0xc600b7a1f3d0f92226d4b284bb53e001a7e49d7d,23651.86 -0x27f623c43acd51384ec305db6bc6d8e41536ddcf,23604.96 -0xc9fafc98d8482fbafd4c68a72ea881403a003420,23541.35 -0x6939a1efb13dae039f5aec81bf40ccccd28c9476,23538.72 -0xf820ff7c0c5102a3d915bb841cabbc8ad0eee8a1,23523.63 -0x1357cfa99dc85bdd3d873ecf4f7417a03afb298e,23325.48 -0x05bbfdaa332d3517c108b01f0537488f6997e05f,23281.17 -0x30d5d619a78c10475b5f9030ab54537a96952a1d,23268.41 -0x8e09baf3024871a5234431d0098f06bd091d1d61,23146.07 -0xf46e9f6c9ddae4f033553c487ba9d2e196b47560,22934.65 -0x6168aa48f0297f7bae6b0bdc5b5556e7079eade2,22891.55 -0x598e6498903ea2b4d2cae4e8af5a497fed14708a,22760.40 -0xad950a2b4b26f50e662c6ef4bf25d3f8df0de628,22683.26 -0x99bd2a18ef0ed70476f71229726f553181dc8c1a,22621.22 -0x15c1e1cbfb9578fa797f74e2d3e8332149543ce6,22411.84 -0xc9dda97c76dca95b1b5b542cffc17c1d33fce2e6,22398.38 -0x6b9917c5ecb2eb708d3d10ee81c72b36a8de9414,22391.24 -0xa2932936409a5a3ca10c211d0659b1202c798ae6,22389.20 -0x886d52684d70ccee4a1ed7df45428fb46fd84607,21739.24 -0x1584d80d509901a05d5068bc8294de47b460c25e,21642.25 -0x442601f92a3e895b07b8c15de5289dc6e931adfd,21602.05 -0x272ae8d19de8106aa9d2233253d0558ae5c857f4,21385.84 -0xed4de1e7a6e52cd0503c4334305f507bb34e2366,21340.01 -0x645991527e1210c2ba0c2e12e75973f824ccc313,21244.85 -0xe8a6cf33ad226883f3e02659cb465b71461455eb,21213.96 -0x67d0666fa38fbcbe2406f8274fbebde6e963eb9e,21180.60 -0xa46188d118a12e2a6871e68b99747a99e30647f7,21064.32 -0xff1496f24c22b7c96ecbbfa7ec5b3831a450be13,20987.35 -0x95bebe6f4337b2b5919cb17202d843a375b545a2,20934.33 -0xe24161cca447f1f0b2a5c7d0e8f4c2874168773f,20887.99 -0x71b9517155357b317362c31da3c5bf6a0e9c94cc,20633.44 -0xc5f6621114a6750371ed16973b5fbc10f7bd17c2,20631.59 -0xc21da9defe77e78a57c1f5d1f7577f23de48e586,20567.12 -0xa9ad8d04af864e7866d913e457bffe1975ca8073,20554.20 -0x71ceab7c01672cdae4b7b12b504b940c89621b05,20441.35 -0xc31df445eae41d57f3dec40ffaaedcacb5de69ce,20370.01 -0xfbac7d53233ad0c54b2f0d76eae053b380a0013c,20228.39 -0x9f05505a3152b4b9ab8abf06aceb52b205659f2a,20157.84 -0x8dc9f267e46b1e179f1cc270cccb74ef31082727,20108.81 -0x8bbed547b0744a152e3342f93675fd387839bdeb,20094.81 -0x337fed815efd23826a18b11953709b63be6c1a47,20072.61 -0x17a41502a216338b06a0b62e933fa92f9eac3575,20066.13 -0xb2edec4825e9036e4d55ee4de1e768204ec5dc32,20061.77 -0x5735468e52167a9a8bd8ccd913b84f7782cd5310,20055.75 -0x7a863600addad93b98ab998dcabafc25116aa6b9,20055.29 -0xcf79d9c5c77cf41372131cf5dbfcbc2ab75aaaec,20036.90 -0x6c271bc2b6bcc494ce32fdf1a7125a8099c604af,19992.68 -0x27425a964c9d175c5b7be297fb7542e79a4cb2e0,19962.30 -0x948f3099f2143decd6d4fc571022fd2d533d2cee,19950.66 -0xbeded60a60b61285a62756ff8424152bc6ec329f,19855.73 -0xdd18d59c0307c528cf52bfa79c14f9585daab0ba,19826.67 -0x412893899a3ac0ea0747d22131d9e9baa31a72a4,19664.08 -0xeb3c291f323a5369854f17a504729ea92187904f,19660.48 -0x1f9912db09c62249e9060d6ec2c153372d2fd0e6,19640.97 -0x6ee8bb321a661a3541b08bde891f4393697520c2,19523.91 -0xb8ca532ded4bd78b91136356712328794559712a,19475.21 -0xc7ae0c733619bc73b1fd575583e372ce8f7793f7,19463.01 -0x80235907e8879e25359656c025966f3952a62424,19400.01 -0x673a76aa385400838b292995629e11876cb18efc,19400.01 -0x55c87c1df57d4ec996b5f6c60ae41c99bbf0b24f,19366.26 -0xcbcf00f4b35482b9c146b53b866b409f22b0cbd5,19222.53 -0xa6da379755e253b70d7f041d6da04eaf3aef97c4,19200.01 -0x1dc8f555cb6ae5ad84bbdacedf6a2e35b5c2c759,19195.41 -0xd8162dab0ccc897fec98737e82a83b020f29d03a,19178.55 -0xe282dd7e10763d66b5f93e3e1e01652c533c738a,19171.75 -0x1f7cc0767f4f81c248a7da0a52f9fb36b396171d,19046.80 -0x648d818972254b0d6e550998bd1d7d91dabbffef,19035.10 -0x457951dc02ef8570ca9089b2a65203e0c82ee3b3,18987.71 -0x5a35be4ad9e57608845c41edfdb543c13fd7479e,18808.29 -0x9ca5f66f32f9c329193a9af961c061179c6e5f45,18770.43 -0x84b016ecd94e4a8c1fc9b6258509e1accb745edd,18728.70 -0x3338ead999f4995804a700cde2588dccd9285164,18725.33 -0xf7b47db8d1a24ca666896586cfd36367be473c7d,18679.08 -0xb718a751296e5121982f10eb4b09df686fbab4e8,18656.87 -0xd691904825f223b6be284ea110a3cc12eaa9f1bd,18634.18 -0x30e8b02e0db5a05bbfc4eec38dd8b07cdbc96f12,18606.43 -0xf043ba79e90c81eb5b29fe97a74604bb21b3a3f6,18471.67 -0x589c4d0692244b9877cbcaa5acb6dade865edc40,18037.49 -0x0232106f4cb0a71ba14e7d3c62937d1c5a0dc5f4,18019.20 -0x6c1048033d2aa02af606d5cdf41ff74f5c59e4c2,18014.83 -0x3d9167ee4cd19800de122843da9eb55d72d12be5,17994.99 -0x652405e5815602c2a6933af9a8f1da4b11d917db,17761.57 -0xfa010a552da5ff1c1d357ca6c0c2072d9a86c0be,17741.82 -0x52f641c8c29f3883b853571bf5edbcfb18e186a4,17633.29 -0xcb1789cffed488fd2c3fd28502fb35cf5d154306,17620.58 -0xac01d3a2dc81b5fa92fbe09cd03307f165ebd650,17460.01 -0x5cbbb4742cc2c7a874f963c5f1077f684a14fcfe,17393.85 -0xfe634c4a6dce7e3a816a14a5d0c95886b2878f49,17366.71 -0x1c674507bc347f610b9786efa577785661c4e198,17323.38 -0x6725767405b9be120b745b00703c2ec81a70b17d,16922.48 -0xa704c0d06a1914ed31b1e5ea9b6af75d57c1d064,16899.27 -0x3bf7ea9f15d257c50554d50bbf83c660fe242125,16810.66 -0xfc01bca46f1b13f6b25324e68e4da9e3a6e91d49,16689.45 -0x5b1e56845eba8986446705a19e66e3aee39512c1,16577.05 -0x6896666ada588d56521d731697241df6edf9f2c2,16574.82 -0xdab7d533eb027d67b5c3a3637e1cf2ec1a36dc0e,16487.26 -0xfcef0accf8150c83c90a7e91f24e14395ab713ea,16374.68 -0x9d239b77df5dd73b02a2deb94b52a96cf2a17b5f,16345.58 -0x3fd3913feceb07a49a7a4971f0dbaa8a38614cb5,16287.97 -0xca01bceeabeece25b1bc4ebebbfc1fee087fcb3e,16176.68 -0x877c1f281613e92d763dc2739c4a8a49c0d6fdf8,16082.05 -0xfb2f87bc360e7cdd085b95ca226fd0a5ff3c0700,16075.30 -0xcc4c2ce235edc7a72177510aadd24b22458ccedc,16065.63 -0x9acf3ca7188e529a8547cacff1117ecd69fb1cb9,16065.00 -0x383043acbcccd333c6cb38ece73a2840f6973a64,16002.51 -0xc6acb0901b59f3b7ed37b0e91e323a420d607fab,15921.75 -0x8ea6a60ae9a9473279a6869c11232056ab68f9a3,15870.40 -0x7ae07ac30e988a8b130e9dabfdfb161eddcdff0a,15842.86 -0x223d602f3eae89ae749b7242ddde81ea793d37ea,15718.79 -0x8ec9963640676ad5a6d2c2e6dea4199e7b0652ac,15702.02 -0xae94155639fb5fe7810b150aad24cbd0c1e24c54,15677.63 -0x40476de9fad3869429c0f0c96dd5cd832ca43493,15530.64 -0xebae022b742a16770c2e5a565648bcd5fa6ca9a7,15513.07 -0x3cca66689ee2d459931d648367c6b2f72dbd92b5,15359.90 -0xb976ddb94716e3c137bb502d435b39181411bdc1,15344.64 -0x9f8d8c0fef603c712718fb1d5dc4e8efb4144242,15341.54 -0x530424658cfbd3ba9b60cd5577ed8d2444f9d933,15325.57 -0x9d7c849cdf4dbb8ee11e0ce979d101f55a474f4d,15266.02 -0x3c75c93d0d90cc735ca43612d16fabbcf03071ca,15228.48 -0x899b11881f977aeb5d9fac5105ce62c877f11763,15054.16 -0xa001a636dc54018f7c4d9ff7f7e85372f357ac9e,15028.73 -0x43b1b086dd147692ce05c5200f9d7711cf8a7e50,15028.11 -0xb68a9a509b7cfc01c4b3fda89deeb26f281192cc,15027.64 -0xd19da579b938a8302c0dad0f86a4b20cb09e2753,14974.72 -0x426d43f2578b13f7003f5ed97d61fa17c31c8d2c,14958.80 -0x992f6fc2dad07d95b8e248fdd9fc625a75d4e5ea,14828.64 -0x83ae10559cd5ea311030aa17e1a41e68d612b039,14825.06 -0xab6756aa855b81049aee2d6e476f6d710bf2694b,14824.70 -0xdc604bbd9e6e1a786429be2ebc4eb00e4a219ce4,14609.67 -0x84cf6efd9b5edae35d6ea1e780f6f56bc7abc3e1,14550.01 -0xe0b6bdc8a366da7de2a4bbbb41b8661ea6e5ca26,14521.30 -0x407911e5959667a68de5f6653cc2887187569e11,14477.83 -0xa49be736a831d6542e33f30a6573026f2d6ead43,14464.27 -0xf8586045fc199af292b745029c3061597a79ef5b,14331.28 -0x015b68e37e520cbb5e97bd32f3e703a2e043df9c,14329.90 -0x6a50ea9ddfdefeb216685bab82d266a3428a6955,14302.15 -0xdbf3ec27de51873f60f4ffde5ce5971797b64fab,14259.33 -0x5885149ae03ea5ea31050afb143c5aac784564a8,14240.87 -0xb152f6540ca610b500edd3c5f4691f8ce74051b5,14240.52 -0x6718dd40b67462c137b9234593dd7003d84f269f,14193.52 -0x2f35ab8651791602ab73d7d9f8493d836e5bd0e4,14162.23 -0x84fa268fb0de341924e9f75946f75ec66a5c6add,13929.51 -0x6c630151705f5228464c61bb15a254d4fa29faa5,13820.43 -0xf70228fbb84b942e9eeaf98d12f17b7aba6d33ad,13773.59 -0x765ae4e24f340089415a4eb4b2ed1ec81f95d457,13736.39 -0xc28cf66517cdb691e4da896d41d280a2e3e37d02,13580.20 -0xbe8df4df5e9da6b7a6322b0c5594c46be09aa978,13580.00 -0x7169449839c8bb95505da7c70d94d0701896967b,13549.60 -0x1f10eafe34d23582ecacfe881c9bec0b3084f83c,13522.99 -0xe9e636e53164820407a1921818626fe4a49ec0ef,13503.97 -0xc3d30ed0f28b91fa436b99eda8221139e087a3cf,13433.86 -0x464def4c3c271aca758b44fdaf724d58a74b1933,13405.09 -0x912fc8ed80a0dd244316b46da7de179e1425145b,13384.71 -0xc9cfdc5b7bda9b9d94ca0ab01ff315dd6d2e9dfb,13357.55 -0x1183110166f9c57572ea63021f527f828187d62d,13355.67 -0x35cedf05a11ea372cfa1c85e711602a4dd4e56c5,13280.12 -0x925fe4ad1f47827ff6314c6fdf9b3b7bfed52553,13212.17 -0xfe9ca70441b4751a786b643b0dbc0c64d3c2c221,13210.90 -0x9ca8e0cc75a4c6039cbbf30dbb469be843dcbbec,13152.52 -0x92879349d6d890c00d97e7994031c48b297538f4,13145.46 -0x8f299fe28d12817055afadf80871f378ba8030bb,13124.55 -0xddb503e424d824e7319b57342b54613232bf747d,13060.55 -0xa3e525f573668bed0fc2484084d1505189ee3aa3,13017.57 -0xcb12fc128316269905fcb15d2a6faf8b8342fd95,12980.53 -0x85baa5df48570fb528b106ea8b08c548a1902612,12972.00 -0x3cc1f48c2d7e761dcb3064d0e2fb8ebf8ba437dc,12918.66 -0x0dfeeffa6ade70d0650140caa9ab414942524c4c,12843.62 -0xbd48394433959ca28c1bf0b69663a20651f6490e,12842.30 -0x2c21f65ef52d69a5615f5fb0df24a1c9a88a637d,12807.14 -0x774e0e2c5c7798b78660f3a577feebc824f22f43,12757.44 -0x81b16d34e35f638f388979458944685988a48aea,12753.02 -0x62cd18dc2eac6f4e7e710a909b69a8f1d80a822b,12723.33 -0x0e811d7216562ea1f9dd4509e694515da7a7d19c,12706.67 -0x8c7dbd09d2bf886c285d1c61f2f72f5ede3b672a,12690.66 -0xcfdbd138e4567a922de33a158514250deab0521f,12537.54 -0xb501c8b8d5eac0799a16518f5f99331c7306c722,12268.26 -0x17a740f3989b262b561fad155d7cbb73b247804d,12218.97 -0x877dce849bc7cb0482103d6937c2a83d029f4a4b,12183.60 -0xc15f59cca21269e0b694dd8c08b38f4e87265b40,12125.00 -0x568a2862f1d6c329d9ee07c7878376c741dbe719,12077.44 -0x895df2d6a0a1e33c096d4415c863426576d34285,11899.10 -0xacb3929c945ef172ccb3cb16bfb114aad8f697d4,11891.05 -0xc4dc0012cafbe249ce9ef720e07e322ca75eda8e,11869.15 -0x66a88b4452c20e98e66e93b7efe2f6abfdce5064,11790.85 -0xc4aaec5b095e4e640fd3979063b544a8dd987cbe,11770.33 -0x32ddf5988eeacf80ff5e6ec6d841a4f8df85c05a,11755.41 -0xcc627a9ba13c8edc67a429405e0ceb2afca046a5,11693.97 -0xeb3c24add47aaa3ca1c182a31d5e4538bfcbc6b8,11640.05 -0x8baf5321ca89f212ad694bcbe95485838c7a658b,11640.00 -0x9354071444b43531e9558848c8ef6e5015862a93,11604.28 -0x3f2623e4a10368d9c66a64f7bb912d9224ac0b4f,11539.47 -0x3bc4003481daa40ad806c139b71c16f4dbd2c14a,11455.29 -0xdb701940d73582937d447f9cbd1bb4714f5782af,11443.32 -0x2c6c221d3761b46dd4d90f48c367fd47e207b38e,11432.28 -0xe324c065fb80dc96b61495c2508c061fa0ce04d5,11396.80 -0xf8656b16505491b1198016cd2fdde197c8d5ee34,11395.31 -0xd646cb16b49580e00f24cae4d025a579a2eeb3cb,11343.76 -0xfb4ea5b65e726d0bcb7a3e90bbdf658fa7bd2b32,11181.92 -0x09361a70c484a9bf0adce4673427d3fe0b07514f,11181.01 -0x6b720639253cd62b41045fbe5493833f20e18541,11134.88 -0xb91074ec58fcfd7ee222c36a5bcaefc5958e9191,11068.72 -0xd8ebf1c110d3c9ad6197a4c7a7d6e5f50f2b43cb,11041.15 -0xf1f6bef88c513f6e6246e4c89c41e3784fd315f6,11034.27 -0x37332b10fd3056a9a52d2208f5fa9b71bd77cc21,11009.45 -0xe19698f3e7b0b98c30c415e05098226472fc7632,11002.71 -0xdc9279c2a8d7b2cad813949262087fe6bbefd708,10981.02 -0x766c1b0c54e2361df54b395778ee650cb5cbc030,10963.82 -0x7aec49cb2e8e41f7b92f97379945a84802ee1f4f,10928.74 -0xaa6f6b9b19e52568231ecece1b99b31ecb0c4b22,10892.50 -0xf4aee163db3eb4725e6ef64d6729cd2b39132ddd,10849.91 -0xe9c30ac3649246584d60c765595f1d23a3442bbd,10799.43 -0xbb09672f652fefb8aec4943149689113246e561a,10751.66 -0x8508d6b4a0181cb37e590817ead0c5d507a2babb,10627.82 -0x66912192fb99d8d056a6d56f182e3d1f1a7a0559,10515.04 -0xd3b09cb9d5b32669f7687f6004ab279d52f7f34b,10504.53 -0xcdaf90d67f3b6b0499f6455c1dc2a795c3efff81,10497.92 -0x1e096805b5ed0ac5595c5b020eee50a176906125,10497.88 -0xcedd0bbda24292d7cd0e1141e2522a1d392b90ab,10453.69 -0xa42647baf842cd6c5f3719f1a86d9cae71fb8929,10408.10 -0x49dbc4e309612788eb84bdf4ade6c3b04a7b83ef,10339.52 -0x2cc05ee74ee0fe6d50503e581e049a4b5240fc2b,10306.49 -0x4807960725e2dc5204c64c32ab655eff7f70c3e0,10275.57 -0x074b9e8abb64ebadfd66d33f27ec4daa9f244adc,10242.64 -0x3c0467c71d788961091af20153c1b924759e7056,10221.96 -0x46497de44028d4e56639615cc4142ee8f8c4454c,10161.95 -0x0e26e750fe88ba9a2bc123373000f74bea5219a0,10150.72 -0xd3ddda0ee51bd7f616add19a0494d7c45b901dba,10120.74 -0xf89dfc8d07c4a1113424881c03fe6f3a48d7aa89,10106.28 -0x1b6b1f2fe36daad6545ed8f741839c3674428809,10086.53 -0x1d83958808f7970380af9c6b8daff6831c75e099,10081.53 -0xca5f3665f27baa0967c055db45713dab1be1c23d,10057.31 -0x5d4300cb563a9795380f36654b8132bd4e901bac,10055.49 -0x2c8a48ab61b0f5c6d645ae5b197a658f50c3c4ed,10013.88 -0xe4728a065afe20e4eb9ff9f85a93e487ea22822e,10004.69 -0x31536bde3df5b067081940a67484f36317427466,9998.20 -0x29e9d9bb916c943db9b5e33d7ad4985371e1376a,9981.17 -0x152028329fd4b54b5ed0360eabddbee9cee092ce,9909.38 -0x90527768a4a8c1c4adda3a3c38da87219ad23e19,9859.20 -0x77901688cfe699710835932c3efc0054f824e527,9843.31 -0xb9cd07258668a5ccb987bfbaf2233f6a7e251c64,9843.12 -0xbe37dc6b3f941c5da99e39425c35f9000c5c37a8,9838.77 -0xa9af6a86d1d22abeb85ffc06f02ab962e75b6b89,9806.16 -0xa08b6ffea834ff56d528a890126426b20c1ab639,9785.13 -0x8bb3679b441098a3c1878914afd4034eee88b747,9773.67 -0xa68319606dbc571273a7a341151d628c393107bd,9700.00 -0x77a0256d29dcaa5b23612bd92db8c555a643fd0c,9700.00 -0x62ea38c04276953263e1d47851a39c013efb5c5b,9695.19 -0xacd7b4f134b395e9d5cc016dd166b17cc756cd0e,9687.80 -0x67ffd350543c9a0aaec794bb7888efe89e098721,9678.64 -0x02d1cf57a0f70a1593798ca84de9abbb7586364e,9616.29 -0x8ea6be36261f662913f1cf1789d182996d58c3a0,9578.76 -0xd427d503a05fb0e6b2ee74037eefc1e5d8d29c40,9527.51 -0x0c75e77d4c6564099eba2c03a3e4d02ced216866,9345.80 -0xbf48427ccf24489ff97077be470d38760447468f,9337.45 -0x53e0eda403691a69d050705c887b167bb47f31a5,9260.87 -0x521c38ca39799a89a4a2c3319720801158031d2d,9222.69 -0xd60d93ccd511df0d0717a4565a5bcf54893d0cf4,9184.19 -0x9e790baf70de84130d0db66f4c3532e7f69a66a8,9164.79 -0xddb8dcb867af35efd7bc7ea4da1cb260a7826ce1,9129.18 -0x0cca8507cb19a868a8f6e55dbe69ec9986c2491e,9111.43 -0xae592f671b15d30c8796ef49fbc02506d1f8df5e,9082.66 -0xa8df25c1a2425c8dfa00cff6ab7c894fcd47974c,9043.00 -0xebca9ef195e7a3caa35d1c7dc5de32380b0d986a,9032.32 -0xc17f468d80d6abb6fea1a03bd2d817f5f8b50b2c,9016.16 -0xbc9cfc2b994105f9d661b4b763b9e25af45b4091,8958.27 -0xec9dca52ef8087a8abc0d6ace3c0a3678137bc2c,8771.27 -0x9d807058d29bc9ae1736e6df649d44a5989d830a,8759.83 -0xaf5a9f1818828c4d584bd270d3b0e0c0ce8c0022,8743.49 -0x6b1f19ca94bca9002d9475850cded59ff35ba6c9,8691.99 -0x34649e963bc5c93c47568c4a31837b6474f965ed,8688.05 -0xb82e5027a87709ee00296ff70bf5b2e9c8b58c84,8651.86 -0x020b93583003e88f05e8c598d08640772e1b5819,8648.52 -0x476eed457fb49d9a2dd6189f54d669cd60ed29d9,8576.30 -0xcffc86dbd2ee8d54fe8538da9afde959ea0e9aaf,8532.16 -0xc60d6e8a56ece40804a21b8f45afaee82ea91eb6,8466.21 -0x6beda786d92a2cef3e734a812c31becc8635befd,8351.70 -0xb67b7f4732203ab65027eaf36f93cfbd48c3a74a,8327.47 -0x0c7855bd36d7f62329397ce6db95c0e494db02f7,8313.53 -0x3915313fad074a0909626418415b4b46300c1bc7,8297.97 -0x0ab02d0fdda69efbdf302ab94c28dad1cb5956d8,8280.32 -0xe8aad7ea6ec49db98655690f2d9f7500f3cf49b7,8257.61 -0x50b684948ae030ac5bb3a205574b68699886d0ea,8245.00 -0xd31edabec4b6fe07f963c1ea14465cf0635eb612,8243.47 -0x8be93a41d0213285c454eff3b627cc13e32b08c9,8207.68 -0xb6d3c464f2162e0f60e745b6bcc7dea5dc637c64,8202.79 -0xcf4fbd4827046e81edc21084300b6c5ca013c9dd,8137.65 -0x8858c63667bf9fa86ac54c9cc119a650fcb1c094,8057.22 -0xeb2629a2734e272bcc07bda959863f316f4bd4cf,8037.37 -0x9202082c4f32971315e199c235130ad528042b23,8035.01 -0xecc14bfa15b3f99340e0c9871d76b5cfe9b2bbfd,8007.16 -0x487718e7cb24e13e2fcc1c5f6e1f641bbd94545a,8000.02 -0x61815fb19634661a80e0f1a9c8bc5b6cb3eab20b,7987.81 -0x872f5dd898e5c8b01d17a4a8a9205b88c3dc5fbc,7972.00 -0x0761eac65003d984d27d7d9457a5ea927a434d0d,7960.33 -0x19a262abf70a1ebe8abb4229a185009edbec65d5,7927.03 -0x4b411bc3266a1e9976432ca2d6dc40f2ba18c87e,7902.91 -0xd43bba96d666ffcbeee8ed28382c88e7907b9830,7839.01 -0x8840320aab84d069fee6f139c7b150730c1081e0,7815.41 -0x891c58b9a3a2eeda35bd48cde3bd5ec5bc8f7594,7781.80 -0x31e1b5b48fe4b62a5f2d6ebe033c7ec12d071767,7777.93 -0x125f230214f37dd59dd77566136844181e6648d7,7762.29 -0xdaf216df37f87a5453f03fdfabad2d7dfe501662,7717.09 -0x6642ffdc7826a0d92449262c63857762ffb9202b,7710.19 -0xbb5279071b6e3a11f381c02f841075133aa5bf9f,7709.38 -0x5110d388a252fabddf5feec1718164308607700c,7655.02 -0xadc3381663cab5dff1c4f041e5fbb2e3fdcddf64,7645.44 -0x8dc86b4ef04fb4175ea9c89ba9e2a9a47e3b8646,7574.64 -0x8fdd879951e2b9706e0ca659d657eb7053001898,7568.21 -0x1e630928d5bc3cb941f167054ff2d61e78ad557e,7553.86 -0xa81e8e93ac001078b063b76f95f0557f2f33c71b,7536.39 -0x75e17d28b1c4d56c558226729154238bfa492c19,7525.11 -0xb134925525234a887fca60b59ad564ea6e8baf3b,7521.38 -0x7fcfc082071ca383dd30e11858b484370eb78a87,7469.04 -0xa9aba990d6b99d2c02049611e5999830e0f5b721,7469.00 -0x3815ebe693fa52cef699ae389fa7b3162205b286,7443.24 -0xecfedf69ff487c0a673684af6161b5737ab83daf,7430.89 -0xa48fdc8364dc53eafe605764e2e09204d9d042d0,7320.59 -0xe9d6ec1fd61157e4c936809e5cd5f3403fc5a16d,7310.60 -0x2d3a4e0b8f6b65d3b1f40ab281f40c4ed4fb488f,7285.97 -0x131729c7da3695b5992822a644229ffe5d8cc6bf,7264.51 -0xffa3ad5c750aefdd215a05ad58d43d2f2c32cac7,7191.75 -0xd4fc60b48bdda231a6307607b66622f707dbbcb1,7049.92 -0xcacf077451368ea057ec6991d0688f89241b0baf,7034.79 -0x078b2c64b8d618fba8363b234a98d48b9dc2a154,7004.56 -0x067cd6167badf67f54e6fe6716513f5ea8323922,6981.99 -0x4588247d6750eb6a18082e187d318b822401b83c,6851.69 -0xc9c5874e2396fccd4cc18fb496e5a3897cb341ff,6847.36 -0x869fa090d40ba4336c7a846738205ea4ca86c99a,6801.03 -0x7fcb8c6dab3b6baf66f9e1833340dbef7601d5ed,6782.68 -0x80147f193be25896211aee17b3a9d3d3f43f95cd,6759.71 -0xf0f58291631909c1acced1cb7bce2d330689ac41,6757.69 -0x82dbba3542901e7b1462fd0e5eb1848c8290145d,6713.01 -0xba9ae2a9e2cc8b1d4feb76f170eb62c8bdc5ad19,6649.64 -0xaaad2a743766dac862eab81c5a4ca1ebe5db21f2,6649.64 -0xfd81297c9ee089be2745bc5b87626c9768b8f344,6633.78 -0x5f2eed23d8ce9d350f5bce571be68bacafd61123,6561.11 -0x5a32531e67fca6f06e20feb48e49991c8e679243,6555.98 -0xf29f8cf33ee7fed97adcdfb62148b5852cd2e6a3,6516.84 -0x588e153c6a0913b160c7c6d64b861bec59862734,6480.92 -0x5ca366097052f628000c5b6b1ce0e825feb961b1,6457.08 -0x128ef160b7d569d458c708eca23b8a24ca6e622d,6402.70 -0xc9594aca3d34f3a1aaf3a8a200c7f44b4b5f19c5,6394.91 -0x43712ccd50030f99f2cc839b1db3f2785c3c4f14,6381.16 -0x4b4c8c8be41f5474a20e43371625bdca9fd48f63,6350.09 -0xb834578d2f03967c35a58685ec75439b5b86e1c7,6297.38 -0x094730f2828dbd984bac57cd3e6244de84488198,6291.96 -0xb5e76ad44a67539c4b8a3f84cdc064fc3086508f,6275.55 -0xb1e0decf28f0c01232392a6799193929873ebc21,6275.44 -0x983a1f7ada6267f09508f547628030d5f6010452,6250.05 -0xa062264883caf70259a05ef046381d53136c5cd1,6235.41 -0x74d11601e301b2b565119a4b36b56ed603e2d97e,6226.39 -0xe7a292a15fb80a8476d60dbab0ed99a1d20f3311,6223.80 -0xef3e1133bc5210eef2217c44c982e3259ecb7143,6129.44 -0xacc03a8b655fc3d0ed1a9de5211dab6eb9313aac,6124.82 -0x33bf235d99c8cbcffe0eae8620271eecf6abe798,6066.75 -0x4e1f7144839f69cf1709b726f14b4c249219b8cd,6051.07 -0xe2579c01ea40195db4c8a076bf9143c897d26f08,6024.87 -0xf577726939a214ba84a55c3627c2d0666e962437,6024.22 -0xf4a52a43953cf6e9394d9db77c47e9acca346eab,6017.63 -0x3006e95992719153336d7652ebdebe2adc7b2967,6002.16 -0x8e1f4cf2d222da2dc7ec568318809d73db335c5c,5985.16 -0x9b3d25f086c48403e4db52f0a80fd7e0bffcad0e,5973.32 -0x1f7d67cc06a081a58608318a339af57dbcb1de04,5873.90 -0x3996e27915fcb280e5aa5f121dea6a2f655284ba,5828.98 -0xe348a3e1132f61fab665a53e021e7a95ae9604dd,5820.35 -0x52c5be3ce033fbf39762659d723df9ee175bc74d,5735.90 -0xb2386e9a142ae045895f28d8f3a0bf6774cc9df2,5663.86 -0x70b2a2292d16a13178252105fcc1ecfab4e0b485,5644.43 -0x8bc312fe6b289e95c23c6494dbf305a46f1c2761,5637.17 -0x1030b17ffa174c8db2ca5657ef2aebcf2d0d6b2c,5552.44 -0xfcf93e8bf7323d160991ac9411d4c879f6f9226e,5550.03 -0x10d0a8286400020f15196de26e520ead81ccb305,5506.94 -0x11c277fd34f4d8ae564f4db2c4ece0d26020e0a1,5500.06 -0xee1607e4eb023cf41baa9af64f4f9f0065ae3fb6,5488.03 -0x49a6cb28b56547188b3c4e7c44136acea19ff4e9,5480.65 -0x3863b4fd1cabb7593de33e67ca5257c9d47c679f,5452.16 -0x73305f211792ddf1e32d7e5dad8b5f692f65a230,5406.94 -0x8e2253ab277695ca24074afbc1eb47012c83e62d,5401.30 -0xa0760860f8cfefae215f1b6a1486dfb93e7bd310,5387.04 -0x34852a43db330f9d52a81b2fd1ed30f1f084ee15,5361.48 -0x7c622fe976b51fb76d932b65ae57994410595656,5323.44 -0x6b9248acbb081b4b0192ab8504ea4502cce83701,5304.87 -0xc38e663bec58b87a5cb5b5e9baf8a11ed35e0fe9,5283.67 -0xf00961e326769da5aac5f75c7b3107ab39cb8403,5273.72 -0x869ab5a527b83b769310584985bcfb5faddc9685,5222.02 -0x65f83f2c8a932dae6af5efb20f6b38ef07846433,5209.39 -0x74b174650f82eddfbd0bac9bf1d4f00ab33dbcd4,5207.36 -0x87e1ca307f5beba03aae5b0eae15cf030a686e39,5165.35 -0x1a82d00544e390c2fee2f1b7cbc612e42d109bfa,5154.15 -0x3514f953ae42f2929445f7037b87a9d5e829a14a,5130.37 -0x18f949b6630579ef595cca0fd772bd5bbed32a73,5129.13 -0xa4edade797b3c429e07527b46eb0a9f60a4d4b8e,5080.62 -0x07ff0509640c07f74aca421ca3b0764ab7e5a1ce,5054.89 -0xde9c8a5a64cbcbb7d384f274c489b6a39adccc35,5032.51 -0x0862ab8fd6e15bb77ac73b52add19f832c5d6cca,5027.08 -0xe75e66c742db08a347f021b40330902d7489d360,5026.23 -0xf971c6dd1467c643820c54cb92cd87c96895b56b,5013.06 -0x7e3a87237c1043e4eba3a1b7caac8def0a1df3a6,5010.27 -0x6b70c70795e5909b772ca8e7044fc5640fef1019,5000.00 -0x43eebf10a511b62ecde4810d8feb084accfd4118,4976.73 -0xbbc997635e2239aae9b516cfbf1e76eed20fe44f,4947.00 -0x235fdd9fddb2b7f933bd471dfab08497b12e61bd,4942.50 -0xbee2946277642d9ecaab502472dccd6e5ada825d,4898.89 -0xbba9b9346e8c4207a2f73a6c5b0ddc1a2cd27c1c,4859.70 -0x9c6f50afe055e6b6c5969429d937df63bfc6f8dd,4850.66 -0x2e12d5289d980011711481d8647983fd0938982b,4850.00 -0xceac3de1bbeb21baa08af6a1b9befdd4e143b799,4850.00 -0x8908ec2811bf706924a007be9c4ed98f490441f6,4850.00 -0xcbf2f3a485da9174854cb6b401be35ca51031ac4,4798.82 -0xf2c6d298a32930fbfa6ccbef8c08c06ab6da3b55,4785.09 -0xe7067e4e7e2ac03897f250d0c9ece4478e3eeb1a,4665.07 -0x9c4b82734008662a409f2ba6ad38ef14644a6932,4656.34 -0x452dcdf45fcf5fe123f85dbc2c7f248d5fb93aa7,4642.58 -0x75098f2630b535b02320d0dcdcf633ff590087e9,4626.43 -0x9ffbb123425f7b1a92916d747be777d74489c113,4614.47 -0x079a46c22ddfce1809ad7980107fa4d740efeab3,4593.14 -0xf4b5caf7b66158f612f4db112c1bf5d0ab32198a,4592.14 -0x2a2b750c989d2ef249900774aa4165cd72af7486,4578.29 -0x0586ac101312628a13430cbada43b1406c264188,4568.58 -0xf4ca994f82928d71018a3b77d57ab7ce83bb5cc3,4528.05 -0x16534d74cbec193a1708cb9d412a3e042994822e,4516.97 -0xb0e69b10a6235939fc239adb76ac518d7e5d61fa,4403.85 -0x04589d4daf1b07ea66cfb9adb9e0b6b19a911896,4371.38 -0xe76bc504d365acf521c2fdf0c51187768c68cbaf,4360.69 -0x44250b87cab3f20aa8cc80215c63488dd5af8a17,4288.99 -0x9517cdb1fee5817bbd9442d473716da10dfbb582,4287.93 -0x4b00696f4e6f8eaa276688a43d3162e80d6effe6,4264.43 -0x80e2ebff823142f6664d4ec4b26613c1fabea7db,4254.97 -0x9d2b936bcc4fd9723f904b920b2d68cef6063133,4252.69 -0x574d70453f81de2cb333d767bb9d9e930172af45,4247.82 -0x9ae6b341f0f0171a5a400e6c8e3b605ec64e4180,4194.41 -0x53c28014b894db6508d7e77fc5957b9b7abbc561,4135.39 -0x9c1c9433cde8dd5fcc3429cccbc146fa0110419f,4130.39 -0x3b4f46af1a9489172261d8b86ad4f2de877d7f5a,4127.28 -0x29a9f1826ec8d99270c1f58e7340383157e927c3,4094.29 -0x6548a3f202f5299580a3e11c84b26e0a5265bb4c,4078.88 -0xcf1793beaf447e79ad0b00088bdfb68ff5575ce5,4032.63 -0xa92c074de1351c84bc4c1fd613d85af5a08c5480,4030.41 -0x4a4993dc61cab792641ad3e09317270a00d3dc43,4008.38 -0xfcbc9b988d21ee154da7b3e26d82fc5f0aa5f0ac,4007.64 -0xfa486328f7d6d931227caeda28d354091c66df08,4001.18 -0x666b5510a2da4512da701d4939879229ebbf2e27,3994.31 -0xd60148a8727dc56123687a8e6f97f01544bba48b,3988.86 -0x725b3c8fbdb338e46289fea24e26a6fe60acda3e,3983.92 -0xead0e67c5ad21b559596e1756a924ac32ee6f507,3977.00 -0x901cb4ad99cdf98207fb752b47482cdf04fb4a08,3961.13 -0xa0561278a9f2d881a1a8b7ce170f4bf4515cffba,3955.15 -0x003eee7763c6bfdf8d96d3a72a2c3cd4b74674e8,3928.07 -0x65319604a8bff7ca3618d558c84d445f524cd395,3920.20 -0xa9bf46aaf54a9e365d4b47010072b70f44f58c51,3895.85 -0x94c40be945536faa698548f2175ba5565b77cc23,3855.76 -0xcdafe2ff716e8cd33124039d16c66bbada09a301,3852.41 -0xcc03658929f17508bc770ebb0da7aedd06533772,3844.17 -0x7ab7736d75f185eb3d09592e9ae8bbdd789d2c42,3827.88 -0x4b0312cfdf617b6236409d6c903fac910e50a797,3817.84 -0xadf0d15dcf0597c636a78263eee3f44b8fb9755e,3731.34 -0xd92fd1790913a9d8a957f6f6496e8a8461b79b28,3723.45 -0x5c0e310a6b56a83bd9416f2158653475db22e28a,3720.22 -0xf6138c2c60e9a4357e58fec54f754d3a0350ebcd,3664.47 -0x6493e5ea6932ba323ad9d10359f20e86bd87037d,3660.81 -0xe660ab2831d66639343c4b77fabaf59b043536ab,3649.67 -0xb4518020aedd915420290d4175a620fc9314b6ab,3646.10 -0x683afe03a6eb27bce2992ab0e0d839ac1d60d554,3644.07 -0x7db9370d17c0ccc2a023a4c8ec800ca7f691f691,3629.46 -0xe9aafabff8220006778478eddf47d538ce41a7af,3627.76 -0xdf0a8ac484a57410a50009ae5c9cccab853be9f2,3622.93 -0xd88552b5ef59944f174471f9121862a0c73c08b6,3612.28 -0x856398e2952eae4e33efcdbc5f7b59c3041c543d,3612.28 -0xf716842645388ca236b1d56cadc02c21db7810a0,3612.28 -0x68416385fcf5ede299d73d5fe89fbdd78e614973,3612.28 -0x671ab876f4084ee91602c7556265809f3dad803b,3587.97 -0xe2ae9e281b3a5bb57f7481e1b83f5a3a7897a6ab,3574.37 -0xfe3566a30159e082f40232c5dbd3a6919322ffd1,3564.10 -0x4cccf33b1c99bbf43b9eb89f1055b8f08d875dab,3555.24 -0x09d21bc60a4c36ff5c2c952fd69b751bdb26aeb3,3522.83 -0x9dd34b35433b583ec19d3465f96d1bf9bf1b896e,3435.46 -0xf199b23dc5919b6828615e4e4ff992e6ff386128,3427.00 -0x0e28c49dc087ebdbac04d5536c022a013a495364,3397.13 -0x1d5903a3a470b5de86687df7e440c1e32c746560,3395.68 -0xb406478558a8cd0f3f7af9e1e6258dff722e8cd4,3374.38 -0xc1038049c5b90d1b6236c8b553041ee3879bb6f9,3374.04 -0x4675f44edf7ca05e6bbbb158c6b80f03dd3dccfa,3372.36 -0xcec305d90121e64ecaa286e6abdc66ae8e70c566,3311.31 -0x67b35231ebe7946ee5b1b36064d2537e0963900d,3305.53 -0xb757c8754e2997a5ef8472506a8e9adef6714f2b,3300.45 -0x75d9782566c0db2005e043d3f14e8fa02c52bbba,3298.25 -0x72a707209e4c31556ebd57f242c0e1461c974910,3297.82 -0xf29d3fd5974b920b9a593197f1c8fb68a1401b96,3290.07 -0xb71519e4e211085da92332f603638be216a644dd,3272.10 -0xfde2a52117afbe5fd438c202bcc4cb8d5ccb9971,3244.56 -0x32eca4059082bc27dc4119d9646e98f3f826a485,3230.39 -0x1fc851ad372d6dfc6b1475c5049205c09c28f4b0,3228.13 -0x16722b2e0d68ec1c34bd0001551099610431d016,3224.33 -0x37c7f50d31578da8299025c4a9d0d7b593fdff5e,3207.55 -0xcffb4e7fc78616227a0f4f11301770723c559e27,3166.30 -0x6f693c30f29e65e7179e2a1d18e556e2c4083f4a,3165.57 -0x80ccf3094241263209acb9b8a1c5189a64d153f5,3163.76 -0x7c9e13f471913b1268d968f049d2a9c545c0c120,3143.70 -0x47fbf3bc91ab95c59c16a842624ae90220a90217,3135.69 -0x0511f88a0cb75d61d61b7b4c46866bb63d16ca30,3126.90 -0x6b89d35bf77cf2861b78c8acf8c58b5c6f9d21c0,3124.69 -0x0a1cded8e7a0993c4a9e646f1d7e377089697e9f,3118.80 -0x1069ea8f8ac059203f5b6ab5b114f17c98ef978c,3118.78 -0x85a07b9d577a0544c434190712449a8198f0c6b0,3076.43 -0x0aac44ece6878864e58460711188faf71ba5eaef,3057.27 -0x73b7a413c649d3b21aefb1dabe88256c239f9a90,3055.38 -0x98b3571ce3ffbca72853f201f9018bc3197e31ba,3053.58 -0x78e4452db5a25600cf9b83dde993775f0a700450,3040.49 -0x1f29ddce4826e92e9c5fe96ae14bdba06372d908,3000.00 -0x0083c85a6848d0ef038a61a8b69e76c751ff2c31,2986.47 -0x8c3d175e9a64c5edbdf8ca454367ff147dcd58c7,2957.53 -0x1b873ac2e6b0df382134f88577be4c03b4188904,2938.28 -0xe416aee68edce24488dc9aa43bdc6760c5690218,2923.13 -0xb8b4e1a8750c24f13e10c361e7b811d0fba9b83f,2912.47 -0x46a3fdff5aa10ee311b472e9ed27d692d126a5fd,2895.14 -0x671d51e8d347d770db46c241c5f5a08387400a20,2881.26 -0x88b6c5fc9e48f319853324d2baaa884409b204a8,2875.28 -0x642c2f6b7e82750f3668595f26b1db9e98354a66,2863.15 -0xf06983705024a0d755c3780c3d2d4d9d653cc2bd,2860.45 -0x9a83839d4acd14a8e360ac85d344c86a6ed3c377,2859.00 -0x7c4031c0b6be4a48ecd15138eeb4be24aba956aa,2854.48 -0x45a1f5b5cf075f58f8f8a5c12e540f2c3414f2b8,2850.95 -0x889ba263fa06158fbdd8a00a9001906925e838ba,2848.03 -0x3f7d4f8980abae9683f0fc96a579cca3719b73cb,2828.87 -0x1b780f882f2f1bd26a924218d6837a0688d9ec04,2813.90 -0x1ad19c236d9a460e19da9264de8f0bccd76492ee,2773.04 -0x17576a210f111f4a495072109dc243b527fbaaad,2733.07 -0x92cfa11ab5282a5fb8f8b464c44c5671f0aeff0a,2720.51 -0xaeea0940b7a2ad9265e322455eadc5b52688a341,2695.41 -0xc19ea2393f2e9ec54c793fc732aad1776ab3bc85,2637.97 -0xabcd1be5c3e448d3e797203a8e8ba55837dc827a,2635.23 -0xf9ffabc4219321ced9301bf83e11555b5c8206f5,2607.41 -0x6a5c9b543bb509e9ce2d86eadf5a74a7650afcd2,2594.90 -0xbaf393ab07637890584548d2c65ca0669431258d,2593.93 -0xa3f4b6c0efb5235c4b308a67541266f8bb0646e2,2567.37 -0xcdb4bd9e49f7fa70c1baac91ca8fffea1d625ce7,2547.74 -0xb0cdd4efde1fe7152079f82cf5ef6eee71f656f6,2545.66 -0xf9248fcbdb7514af6c3bfcd7996dccaa6096f65d,2539.02 -0x2e10d42f9d1a11adaeaf48711213a9a219526157,2517.66 -0x9f45f429a8655e94522aa47f58fd61ab9ff59be8,2516.44 -0xba019e932e88839bc053a09e2e9f8e73d620b82a,2495.89 -0x8d49cf3a05ab5a8bb8dddc1ba94583e7687b426e,2458.02 -0x55f8d8460326ac005d2fa80c65876293d764784f,2455.74 -0xc166c43380952e560d7f439388d909cdf58796bb,2452.63 -0x4bd4c02067dc21e06e832ed2d3d69e0e649a6926,2451.31 -0x76e8168e026fea8267b3c3b2014eb9319eea8472,2444.92 -0x41674df49c1f263dde457bea8411ff0a17a94837,2429.21 -0x72083a3d799e5e082193882401b0dac700813469,2425.04 -0xa52741fd9936c1c7f1a72c526054b63e2a667783,2425.00 -0xfe48521c5fb73fd1d3b469a25ebc9c9d633f473f,2425.00 -0x7d91086db44683bce781a5acc83935dea3cde016,2418.95 -0x695e533a16308e71e2420c99f9442921e14c4d0f,2415.63 -0x0f0cea80102fda6236d47977844ea56cc6d7e2d9,2379.19 -0xe25487175d2bb9f0f26d241de1559dd0ae8f5723,2369.92 -0x3325b22b969c590fd57c60083667229080420388,2345.38 -0xc78a697c75e9c9c595cd2c298d484654ee59650a,2331.40 -0xcd70fa38146e11a300cd74b1279994c16292b8e4,2285.17 -0x3c4ceee4edee2a89f26a226a0f234aa672a8a4ff,2192.20 -0xf595095232e2efff5dc7102c6aede4cc51272e64,2173.54 -0x06c663a78c8c8e4f21e62c23197fdc71b3ecddf5,2157.95 -0x260362e5c91f7ba832c4b322eb51cbc501095cef,2156.78 -0xe74b63c2d9815ffa1e012f48e4b9442c1ce91e21,2136.59 -0x8c3c6dbd7c9a6e1cf9600991c29cfa01cbfc8ea4,2134.68 -0x26b0204febfa61856492315e8861b85b7ff8d781,2127.21 -0xb2b042ec449a86f05096544558131d21cabd9874,2112.52 -0x7026afdfbafa8b11acc7b67e62e9b3be5542990a,2109.03 -0xeeb1e609c1c0e66f84d89d526ed4f5fcfc41c1c5,2107.12 -0xe422ff790065e39ff18c77e578df4c4ddf709861,2088.68 -0x537030b9293b9615ad187185be2a83b40355d3cc,2075.81 -0x6bfef774c2d8c8edbb57d17a1ff7d3e3219e7b6e,2056.98 -0xad762f78a8df6c179253c2ae8fae392718f4d362,2043.91 -0x3e136349a631cf5066dcf2b1a5548de9ca0f2ef2,2038.46 -0x92fb670d817235ad18753bb3a3eeba5f37dd37b9,2018.99 -0x3357762f146a004bcc2c987e8d76a286f4937c1a,2017.43 -0x2ebdb04b4d0311a49c0a3c1263e11489f8c665b8,2012.20 -0x04b5b54824b060f8f155c88feb02e9dd4f089ecc,2000.35 -0xf7b765303fda95d28e153ab23cfec028d7fcb5fe,1973.90 -0xd848c131f73a2bb977baffb995d79a832b666658,1971.58 -0x6875c6d0366376924e4a04251e7efb528e8cad25,1966.35 -0xee587bdbd39304d686d04c19b85c85b22f283d8c,1955.56 -0xecea90ba4c4ba1dc57f3860e2202044443ef1311,1950.56 -0xed25e92a685b2ba14c3a6914e0ef3a9595bbbfd4,1940.13 -0x8e5194225ffb187a7fa778cc2a369ffa40459518,1940.00 -0x85d60c07e70a58d6f3b0dd229ecb5b06556ac8b5,1938.42 -0x40723465ae65a3b6c689c37112fc1f2b3476aec2,1920.00 -0x10272c8503df4303de0e73e603712cb7d0bdec88,1916.75 -0x58d62864de11d0b6f6899b98c1dbb0f87b7e9bdf,1907.33 -0x7199265a49d4451eb27685245e7e9f736dc3a598,1857.96 -0x530a799ccbfa22cc7dda4ce4cbfcb6fcfe22f222,1843.00 -0x8036901d604fa1566c8f6e7e293cc512a50ad5d5,1817.42 -0x87bab63e5fadd3f9a15d2caa6be9964c0781bb28,1811.15 -0xc0cb30074827381048c5ee595844e3e245f17877,1810.01 -0x23af448d0ea133a692bc344d4d30dd79225506d5,1805.72 -0x9a69e7a31d28e42df1b9d658b2cb7af92e0a5446,1794.57 -0xe0ffa0f9f434e49614d114a465bd037478f12a1d,1770.59 -0xecea241f7012b7d30042b57746fce8d978e697d5,1754.66 -0xa41744e2bc966ac1d7ed94a956b3f3c94d3c5adc,1728.24 -0xf7db0f40c9be6a3e9defa03e083c0caae77a21f8,1721.80 -0xf607470824919d2ac6691e877ee990d0da92f5ac,1719.89 -0x255d9f8a60ee47c5df6e5e08b0b6f6c195d258b0,1717.34 -0x23719fb51dffbb50f6c999ea99b13891c2979696,1675.17 -0xfd1a761c8d1baab0e3521d1799752f181d6b5e5a,1662.82 -0x8215d2d1e2a14f8bfdf08e676068994eb025f1e6,1622.69 -0x4393194fc23eac541e4ea588ffa98588c81fef62,1606.26 -0x31527e48e2673a89b74d5d8e5be154a38a98cab8,1605.68 -0xffdd73db0e430bdfb832016fd5066b2420ce84a0,1507.34 -0xbdacf41323ed9fdb3af902ad2d9e38c20f002360,1492.80 -0xb8332a61866db6a2463dc3654955a4438b063f7f,1492.29 -0x9cdf4ab2745dc71fbbfc3aca21c474c89f0fc42a,1491.79 -0xd6f0bb3c74188b1cede14c916ffb5836fe43bf67,1473.72 -0x257add37fb8df0d6ed37670d116d9f5703a20225,1463.34 -0x55540514b6c637ccb077d14fac7035ca408cedbc,1451.21 -0xfc655859ec036abe9dbd7d256d2d7e286c4cf245,1440.00 -0xe8053088ded2c8d4e4a6b005b40b7b038e47df26,1423.39 -0x289659df322c889809f0739a061003abdc833e13,1402.34 -0xc816da8d7ecd8875889524f9d963763e7683570f,1344.18 -0xdc7b8e10cadb1ba3543c4b4b56bd9c677e101844,1327.57 -0x6764b1f4516ac21b91251cf39bacbdf1c5eb42d0,1316.92 -0x844bc7691a3c949de90fc3bc412909b98f99b9b4,1293.41 -0xcc12bc166b6f76d419d1a1730cac89bde6c5ab40,1260.08 -0x677cd70fe2cac6d7b2f83a24089e88542e6c92e2,1243.15 -0x3e43c872de9aceb4fb8bb8ddf64d0579f926e39c,1192.81 -0x4d89819bb7226af40d368de45ba1ef2f093ee8bf,1192.79 -0x5b5efcbdfdc432ae59613b4d6a9fe7e167a7b028,1160.67 -0x87a9b41ef7bdbdef23a6fc5fc67641ee5e05c632,1121.04 -0x212dfa3808ebeff63bf9b9d69aecef559d43978f,1106.16 -0x9e34c95f181a7a84a5e8df9f29084e1346833747,1078.26 -0x3fdb4d65127d49ae4d0b4ac0ca0e9d1d79b8a93d,1076.58 -0xff199e72cb0fb8452b5d35edfcf9b3725b247fe7,1067.73 -0x252ab0d5147d930baf5d5733ce356d7ca1281c46,1065.26 -0xc990592054f086b6024319a2c70e8fe9b5ff628e,1064.03 -0xde036f86d20db573b364f5522abe94b6113b606f,1056.70 -0x164a203b1634c245db7a094df59eefadfa152833,1056.23 -0x2cbbec15f5cc2d21dff911e8e013c1122a1f99d3,1030.45 -0xc6e081b654c4dbb12da3c2da6e4b3a9e8300f5e1,1000.07 -0xb744aaf575e490d0246c786d8938ac964f33dfe9,1000.00 -0x9d64c1923e2fe0eabf5391f30a5ee42b86c5e892,993.84 -0xb827bf44619affefd28d0e82652ae885d4cede64,992.51 -0xc5bfd7920cc8152e1c75f35099f01b6d2f32f8a6,991.30 -0x2f995a7051161bfd8100024af0a18d67f9bec407,970.00 -0xcb4503ed270b0178db6d7689f3dee250cd5a139c,960.00 -0xe28a4c48deb365fb5ac6ee2e74d352cd9e60c0b7,950.87 -0x33e47855f1d8c062e0d067147ae54fe4ade3c8f4,940.83 -0xa2d3aa66a573098e10389334e2cae59d5595fbec,931.91 -0xa013cd3f1e1764d0eb7c3960338eb61ef14d7bde,929.59 -0x35c15d34e56761422f394dc7e9bfbfabf965e2f0,929.06 -0x67d935b88276cd80843c8697119cdd7531a12284,924.51 -0xb5cd958fd88149f2c50f739b5e76e46eca704d71,921.99 -0x3b3751f3afde8f5d9589dfc4c381295c30d8cefc,906.98 -0x283c09e4403de922b29f610159ab73470032a5a2,864.36 -0x51b7d2bfef22b014a12a08dde19a5497adc5ff90,834.91 -0xff741c991486bd235ecbdae5c2a4f644cdd5553d,832.64 -0x533487eee8c6e2d2f90214f4bd60eb906975aa9a,806.88 -0x0673a50275b12bc08161fbd881eda1449d4ada56,805.48 -0x379a924b1ca4c498a0bd9ae3b30ce0a973ca494a,781.61 -0x1bb955b36999bd0d1cb272fcd26a4aea8bf24888,757.61 -0xeac6ab84a66e1dc18df197e8b43c209752fffb31,728.11 -0xf7bb5c574451b35611593cfed98a4b0507f44ffa,686.77 -0xf962e3fa44760b6b874219d75cae9f0cabf82447,654.26 -0xb0e510018621863402940f6693b6908e9f1e6a33,605.67 -0xdfe0383ea4ead9cf29d704307f5b1bca9fa84d3b,604.31 -0x77ca786a63f19d82c5aadbe86ef28a2da9f08479,577.98 -0x46310d5a9ae855b4a76093161cbde923e5444932,566.72 -0xba5c09efe2b27d6161d3eca619af74e2bae2495e,532.08 -0xaa4eb09a80b3bf2cf9b0af503036ee5bc8bd4169,514.03 -0x16c255f3a528d3cb5c69b00361ace7995112f6cb,488.66 -0x142b88b0d403bd4b09bd4d287a591783ef7e3d35,485.00 -0x619ddb20e32f557eddc905dd3c92a7590e1fea9f,485.00 -0x0656c9c769ba42a15e7fb0d19c0318e43e033ab8,473.90 -0xf920602a12001afc30ecfce1f95ca866e7115838,451.70 -0xfe580d3688a9ccfd79da1b16fa34a35d8336fab6,389.80 -0x0d6b9137c460b36a4cf2b467bbf68a74413785a0,381.41 -0x4f34ea8f615d5f80106ec8d1f77647b95206caed,376.55 -0x41de441ef7835174b9b448a354a33e33d76edbba,341.71 -0x4d5a04333fdeb6d9854d4c766cb4b8097945b3d4,341.00 -0x880a1815e247f982a5ecd6f5335d25b5cf05bb74,335.90 -0x9394bb607c3fdeef82efcccc53d65b18a97889ce,335.56 -0xdf6242d30358d86f2e1c1da623a976bdb429fb7c,283.39 -0x871b50b87ab9ea2e24d945bb545e5edae446c705,278.53 -0x046546bf11cccddf01f87703a616385d236722ce,274.45 -0x38b46fd063f93304fea85eae1f0df264d0e765b5,261.54 -0x9e03d640c198985e5fc864d5a5873622ef046023,250.93 -0xba070aa21165336868c63451e28573ea70c74688,246.24 -0x82e9a5d07b03f15fbc695690abf7f0567628a07f,242.50 -0x4cf47fa013b7edd0f168672344f96fe3df0646e6,168.15 -0x00000000500e2fece27a7600435d0c48d64e0c00,145.82 -0xb006299edc873f0dcd5b5578d2ba2dfa1041b289,133.41 -0x4a7e0a8758a4edc8c86314c63826b9a52e61cb17,130.07 -0x0cccb4f8d23ef645b25d8fcda3b70266dccd0bb9,118.29 -0xbc991841cefa5c239296d2e58d6b2fb7b57226e2,117.04 -0x5d492615711b15b63b019cabc7aec0452e9883d2,111.68 -0x5b14cc67c79a4350e75c284e34cc5f3bc6554c93,103.20 -0xd5fe99a67a0d5b5a22f408cafd84ea61087afcaf,97.00 -0x022267c6247a0782db8f928236ca391109c134ce,96.90 -0x2c81cb4249257a83b5952375a1bdd8c1456be057,96.74 -0xa43e6349a2a9a80e7428e00e3305d38a177c6e6a,94.67 -0x2d583d5e3029d636004be62a67ec133eadf06f24,91.74 -0xaaac04c215fed1cf41b18dbdc0c2721290500c6d,89.26 -0xf7139b12d22b7c2d530579ea05fc0f6927ff854e,88.97 -0x5848b99cc53d96e494acb5632858a751bbe3e84f,86.47 -0x2f7d2d744bc3a5ba576a7f588281e624394cb412,85.76 -0x1110d8ed986050a950fd35d69444489af364b8a0,83.57 -0xa6c8aeaa62b5368c660f2372c45a14f6f5255e0e,83.55 -0x8b59c563ccef04e76a0cbf4a7b198ecbc335ab8b,80.83 -0x3b3ea33c1adbc48d2ed5c3b1dbd392f5ea266653,68.49 -0xc6617e31312f3e69ce8051127d7de23c7c1225a1,68.24 -0xf799e9b71059096ba60d3a04679d3a69fa667e70,54.46 -0xa0d5edac939979b4517298e8ad7e81daec29cf6e,48.50 -0x919b43db2efccc839792d915882858abb3382834,37.22 -0x8c71fa49f6217047b501d455cb651acb92965e7e,29.00 -0x931b23dac01ef88be746d752252d831464a3834c,21.87 -0x193206e8b9f5c911179c1f3adb24362a176ae2ed,20.82 -0x3bf3a2512580574300931129388a24280e5309d7,20.50 -0x9032d5176a99337fb894f7e4a2bedb14b3eeefbb,16.29 -0x8988ac2e5235e3e66a829ef338f82f581d5a0b80,14.70 -0x357bf50a1c16e6af7bc6d96b2a442eeb35a92d5c,13.42 -0x74a893a98d55fa8eb69c4b486bfdd31ddd1b1b27,13.06 -0x53c45ab6648eb87311a2040bac1fc82ee66a766b,11.13 -0x154986f80d852d38959e865f7c33515618ed17b5,10.54 -0xd61c634f4c8772d7f24a6d11bd62805c5c3ac8ce,9.22 -0xdcb59512017d397ec423883e27f3fc9923c4157c,9.18 -0x8760f1d1c081ee34a536f97a99c267b804511531,9.03 -0xeb6529e84b654d993768434516c3e7dc618ce5a2,8.86 -0xce93742a632e708ab2d2205bd74afa6de16c64b2,8.65 -0x79b7fe17eb2a0fcc4949c3abfbfacaa3c446cd89,8.39 -0x2f851890a847780aa43c3c2717bddd117dc0c89e,8.32 -0xbb2f153a916656ea54310733ec1e9d6529e6c5e7,8.10 -0x4fdfe1c002086703bac6443c72429d11aa1f7e91,8.04 -0xa30a41823cdc52ff1576802b0cfca16ff9ec2b4d,7.84 -0xf7e4e74245f2a780d2a20a4db5ca3be423c9bca6,7.70 -0xdef1872a88ea375de731d12e309b55d9abd59f47,7.64 -0xee1796eb567295f7b180d0bbe3229c7128bceb15,7.33 -0xb927040e1b706a3c2d0caae0f9d1d1e49253bb1c,6.5556891 -0x4a6314c7e12358d49065d8b09457315c1b3fb122,6.3348148 -0x473acbdb7a446e39bc81089261232dc5111ab2be,6.0685236 -0xed6c8a152b84f4ab24a894e5f52390b3b1bec62d,5.8564931 -0x7aae0ef1494a3cce8e0291dc2ca61a88e53094f0,5.8073948 -0xe677b161a2ac068febd16b428560a7b6260b55f7,5.0069010 -0x8ee4248f59dc321b8619148648d7437f20997216,4.9690209 -0x1da7f907aec06fabbbb012d6c57ce4d8798bc637,4.7486630 -0x68b3cafdde3931bf6ebcc6235892bef8bfdf2862,4.0425488 -0x2f7dd64e09d276841606ceca9ea6c86a4aa91051,3.9789793 -0x55bea465787832a08496986d9dce03d9b829688d,3.5576587 -0xdc0719ff99feaca4e70113e955f3ee41edb16cce,3.4024953 -0x4dc9e4871f779183a5d067adbf37c4c7914cc840,3.2302176 -0x36aa8ee1d6923ff3f5604c6f0a99fd0518ace0d3,3.2037625 -0x30b8a82c7014454be3bf67bb172f6312e2639b63,3.1603725 -0x12a6611b7c032726b3e36dc20e208409dc40653f,2.6281994 -0x9705d89f792eb7608ee611fd494f389e8c4d1d45,2.5581283 -0x87bbb4a19c3ea00c060871d6628d15bdd4cdbacd,2.5356054 -0xad00f8439bda2622152b58bf5a57546a9b96b91c,2.3515089 -0x445f98817f47daa764cc60cca49a469f0811e453,2.1740353 -0xe47a58c2747fd02981caafc23903a78327b3973f,2.0439888 -0x34e9e24eca0077f0c412c44ef67f0fcccecbdeb5,2.0281443 -0xf309ff23277f4ff55220437bb6034beee2233f0b,1.9872644 -0x8ad6e86d9d98e8fdd88abd7a0c66ea715d11baa1,1.9745455 -0x6b43ab598973072a60e3160302354a4e9f894590,1.8716376 -0xf5ae5e8f6d7f2dc4fcf78f3e63510f5434104934,1.7998974 -0x178184ea566c9e8a74125d31c5f430068902fe25,1.7729704 -0xcf3da12b32968ce0bc57fd0d4f9c23336054c67f,1.7605740 -0x39294277cdca627131f5eb2cc887b7d8b781bdf9,1.7119509 -0x88dfc88243ef22e8a3e0af454a96f13d8c5bfa63,1.6574394 -0x0ae024f8e036fd39a458ef4f87108f0810000541,1.3713627 -0x17422ffdc0995607f404d48ac99255bbcbfd93ea,1.2903197 -0x0f192053ec35bda740718cb6d61a7da5e78d447e,1.2318251 -0x54cac37faab79eb26c8707ecc9ea6a163565a758,1.0789013 -0x5080174f91fce6cf834d7e67210c21718da758af,1.0319644 -0xe0518631bf8df2b441bfe0101792a91e3bb803cf,1.0292921 -0x4e4b744f07577a5be779ae9a025ad9d8a1917af8,0.9825838 -0x5ca6030ec9d4712face27aa43aeef62482a4c46b,0.8359498 -0x2302c5641e8d23524893c289829b9fe5fc9f6fc5,0.8169392 -0xc625a41c5d119287b443a161b8a5bd10acb1afdc,0.8026137 -0xaaa56f86d8ca801fdfb8cde4aee4a3b8aed3fb0a,0.7936476 -0x090fc15ae505170bc703a80c611d444ea749dd1c,0.7863583 -0x027375676a311fe8d6eb35373cac9da26c82c52a,0.7742845 -0xe32ba4a9388421182362890f8188c25eec2a0df8,0.7667092 -0x7bd130cef7c21862705650f5d82409b9d5afe9ac,0.7415630 -0x05d5f959b95e6c62e64d6a476d873d980c3f34a0,0.7376877 -0x60b020238a481071ad5960cbb1258b782d954bdf,0.6727837 -0xd17a23b00cb27aa6553bc25f10cf8ae7514637da,0.6664498 -0x4c659a172f0a7b48c265261dcdafc196dd92338d,0.6608226 -0xf8f3257eb61a71ab9c6b31a8c21ca3d2a88d59ec,0.6511343 -0xa865216cf5f009ed122b37df662b7fd0a097d238,0.6360924 -0x2e30a690e62264b57395128b5c226f57c785f3ab,0.5864633 -0xf72f0549788543166e1c4698a251dc380fe8975a,0.5451477 -0xd93dfb1e8ba2b2acf4ec6d32a12fac2c4892c93e,0.5310978 -0x8ecaa4593808d6aaa2eed20fdddcd79d6e7724eb,0.5296436 -0x16dfd33fe02463aa3f7272ac9573f8ccfd65982a,0.5045229 -0x6431107b107503acbfae8089644b43a1aef4f1da,0.4705321 -0x4c4f70687cd420881709098716016de7599e7c75,0.4045229 -0x40723785d9979b82eff6827b17f3bddbc422d61f,0.4022833 -0xb2ed317af2d473d0ae6da675dec9819336b4a409,0.3900434 -0xae70e4d09bbc39b6fa0b41e55e5ea14803f9915d,0.3717610 -0xd37582d4b044d67b8f5508d59c86d17ded7a3e02,0.3642686 -0x916925a77dff36b03627df2e3329864acf94396e,0.3586794 -0x0628690461e99847846f717d6b81843064f10a2b,0.3379239 -0x5a9018bbc39a35c6630b8863d12d445680ef95e4,0.3282835 -0x358d829454345e32a71e5bd07991da6acf5a97f8,0.319228 -0xa6d1383d1ed141ab64d24520b3fab43190528c9e,0.293273 -0x75c8af7854599920955562d8d0233cf9d92b55cb,0.290083 -0xa51b875a9604c55f2644a521b3cdd62048be87bd,0.286670 -0xe32bbbc9752d6629a7a5cf8a47fd1f877b01f4b3,0.283756 -0x5b9f57b74397d96a07086efa05f5456200877fb4,0.283754 -0xff7772368d1615ae8a23a96f911d93725e212c87,0.275941 -0xfe93a4981d0a6cb62c94b037bc870c793efe9f4d,0.273266 -0x0703c2f7c7b47e6367b1d979dd15560e2216597f,0.272938 -0x8e85f6b2da55ab39f3e4c3834ba8fb50302ced42,0.247534 -0x36a5b04435c66594df2b5f2d5aa53f1fcee7a27f,0.220945 -0x1abac8f97321a9c1ae725eb58a1bb2b74ff99e85,0.217880 -0xf2e5e038ad8190de889db9f7ac046c030f8c4274,0.217865 -0xe3fd0215cc2df67b5a0b07d57b39aa3b6fd4bb49,0.217058 -0x27539b9ff29051766838d2aac1d03b49101dff78,0.210352 -0x7774a04508d26d26ee677ebb3c16b237e93e0997,0.208213 -0xee51e86c0132043ede2b8ae94fdaacba63a670ab,0.201988 -0x1684ce5cc56e812702c7a24ecafefea8dead4de2,0.183924 -0xc73be6b0e227cc4ed05cef02501f73d538d14d47,0.181092 -0xc3abf1da9b726eab96f0bb77aafc9cd1dee425fe,0.180035 -0xf34a46e10f37cdd542b6593f61a1021cc3f07cab,0.165600 -0x8ce9db6185925b64d270bda88df6e3398f54021e,0.164005295 -0x3b738d40c7d3c40a6f71e7d9c99636fdaabc2202,0.155170938 -0x4a3a7e2cec7c36d3eac70413b54a8604b9ca6f58,0.154275756 -0x770c7b7cb8bd767bb2a759eadd78aeb708d2b041,0.152204306 -0xc94e34a7031b28b3aab5fc489a0caba495a4b812,0.149802730 -0xdc43a71ded9083010e6f8e41ca4751f57813c12c,0.149083962 -0x8a8f342c23eb973166cb4a0f292e01ed3a4aa54c,0.147608111 -0x6e07ecde853c7b51313a3cc8e645efd8b39ec0dd,0.140068000 -0x918a97fd6d7d7e3cc522f8f9667397952d8d195a,0.139099158 -0xd71337ec47951a78543303aa9e18b14c62fa5402,0.124904412 -0x5329f13f15839dfb2c5360029d0fd1d614c99e44,0.120858530 -0x7891aaa68801b708dbc3263b52400979a042c232,0.119665017 -0x84c069494aa69e4074b721833aa13b5b7ed374a7,0.104813470 -0xda802e74ae7dc8733e687c15c7fb76310f010a5c,0.100173726 -0x66763402709c9aa3a33f4cf673221b0c2a796087,0.094372559 -0x5c596014250d7866089536b2b7fa368627b58eb2,0.074084347 -0x43beb821917e107566d00f30b782a986a215c12d,0.065834842 -0x06778a06a8cb2754b020db5f891878a0f8136432,0.06537351 -0xbc88c5ff7eca5fc69c0a5bec917b58d36bc0bf2b,0.06234147 -0x36aa3448c283e3f5dfa92a28ddc70e0d2b94e965,0.06071586 -0x528d4e4e0dbf071ec23013f06d8487bad5a8a68b,0.05973497 -0xc22f2ac4b34dda0e90aa57952ecb4590455d370c,0.05833930 -0x1a80a14836ac42fb67aa579a5c2d46ffd93da78f,0.05401194 -0x3453d97c732def4dc87f408fd0ca307a86711a7e,0.05235179 -0xd0c97f0a55dec81a0b2bd558cdfa3fb4b0a68940,0.05085306 -0xa16c8d30a847a3187809fc4c320090006ff0b932,0.04898174 -0x87f9d53ed97b2941e498ab4bd254f0c85b76785f,0.04847610 -0xd8a6ac93581dce1b859421b0fafcb7150408cfc8,0.04834473 -0xfe0fbd1002965d9401148d36af1674f04a924661,0.04598909 -0xf1d674847448cdc0d33d3f2b153f4fd0ace376b6,0.04456973 -0xb3ef7dc548ac8a59f1aadbc055d2396af0282643,0.04240874 -0x102a1347778b72863c3d3f3858d50ce91e562b76,0.036916 -0x06b808d605ae13f19281edc8f20df1f3be10be27,0.035769 -0xc5c49ca190a8f69b7816ba3ea3b34ce167cbcaca,0.033002 -0x8723a9967c24fb758042d9ad0607954a2544e541,0.032846 -0xa57d8d7733ecb2df5d32c9314755bc8d8895462d,0.032464 -0x7052bde87fa19b6ee8645cdd708c9d46aad115da,0.032439 -0x50039728db5e910ed9fa30e7ae8fcf4ef90bfa0a,0.031202 -0xcd206c878b019dae76892200b3d6017e523b184e,0.030902 -0x49de2f852f729be40344df94534b3aa1fe090b8d,0.030172 -0xb0348772d64bf52c33f8c105f078092c31d87a2b,0.029243 -0x2376f07aa7f22f990f6eebec7dc15cf78b77e9a8,0.027637 -0x156e53959375529bf5fb0273c5b5dd590bb482b1,0.027243 -0xebd793b09efe99b01b54cbab7fb166a6dae415b6,0.024165 -0xd31a6643f9110fac83c8338a55a775b3746d16ac,0.019920 -0x4a982d4c5acd3d4bfbdd5a878dfe779ee11422cf,0.019908 -0x87f69a6bec671088341c9e745150b3b2c5e17103,0.019084 -0x5f05bc30443c4d0a16527ac95cb0aebac37b76ac,0.017238 -0x4eef1ab8baaa9ca45670a5ed29331f42632d07d3,0.015338 -0xcd325b68bdd76112916c70855d96bbf1213e01e5,0.015036 -0xf3370f3192dea14ad414b90280b194c9530e90bb,0.01 -0xa85643219db87ce905b5ac9e2abef74253762fc7,0.01 -0xc095be3d180e19eb11d47978aaa0c7c04d86265d,0.01 -0xab85bd2ddd084e4518d4dfe040a98536c8293252,0.01 -0x9a14a6da4e88ef1d68e1b117d0fb818f6047da3a,0.01 -0x5982d3820e234e59c4c3d0447db7be3bbf4a2db2,0.01 -0xb7882dea59371412b887db72e8cc894a2c66b4c1,0.01 -0xf8753794262076c2557b184d463c7469d27412bc,0.01 -0xe4bd14e366856488b6d0989a3133662a977f3dec,0.01 -0xe250badad7c4fa01b79a53b445924ff86f5aef8e,0.01 -0xd31cfab1e5f4158a131236d246c1261cbd9a0a98,0.01 -0xd37d940190b8599c4672111036cc08180cea3780,0.01 -0xb22b131553972ac30707006d2adb0e2e1b9786f1,0.01 -0x442a27dff8f627885559fd4729ae84fe176c480f,0.01 -0x4dae6b765dee3645080328bd4597dfb535040b4a,0.01 -0xf75c3e5c45343147bb188dc99072512814658286,0.01 -0x2ea480e60c0bfe8afa4c17251cf71e67980bd756,0.01 -0xcbe7cd986ee76724d47586be4d65195a61e7a84c,0.01 -0x80ded599c61815cfceae741f19bb4847011f4421,0.00598 -0xdcfde02f47e9dcc4b30885a07091057093c74d19,0.00556 -0xe91db78a83a86e804f74de2fbf43c50a1b046c40,0.00534 -0xf2a7686a6ebbce34de21c51ecef6ddf7206c6973,0.00482 -0xad9462ad294209ab9eded41d56ff770343fc8f9c,0.00407 -0x5efce21e4fd48892397bcc28af29b53cf088d770,0.00328 -0x77a05434a7169907b998716aec335f19e18b738c,0.00255 -0x7560005c87fc37721e4251e8909b7db71a2cbabd,0.00236 -0xba07dfccd8bcf74e993f3ff5f83fbb6861076be0,0.00217 -0xcf49efc3e8977e16c7f271b9e9dbb256871006e9,0.00119 -0x69e3ef85dc4eaea4c587b2e594ff24ac1264f809,0.00093 -0x10366d895edf7397759e92947b51e4b5ee075179,0.00055 -0xe94aaafd6c7a62ed43c86020755df35b02783034,0.00017 -0xcbcf35a4a7978133e1c0d52d23b2058af7c0e6d8,0.00004 -0x5428af2193538482151eac70f9ec8a58a2af5935,0.00001 -0xba526eed2695fdf36f089f67e8fee7508e26c6c4,0.00001 -0xbd66bae441077d56ce0252e1d8ee89e5c58215e6,0.00000 -0x2d08661f6e266dde0658e49abade41832139ecc2,0.00000 -0xaa0dd66ee0935ad6ae4b13d70190847e0b9a384b,0.00000 -0x00000000003b3cc22af3ae1eac0440bcee416b40,0.00000 -0xf3a894b565d15e03ab537525275e87d1c929644a,0.00000 -0x1d6e8bac6ea3730825bde4b005ed7b2b39a2932d,0.00000 -0x000000000000084e91743124a982076c59f10084,0.00000 \ No newline at end of file diff --git a/eth/holders/crypto_canna_club.csv b/eth/holders/crypto_canna_club.csv deleted file mode 100644 index 07c243f..0000000 --- a/eth/holders/crypto_canna_club.csv +++ /dev/null @@ -1,4406 +0,0 @@ -HolderAddress,TokenAmount -0xda1a941f2256469411f18170794bfc770078171b,300 -0x2a350fab2a136f53f6738ec8ab8516f9c73e2348,205 -0xc697be0b5b82284391a878b226e2f9afc6b94710,121 -0xc1563bdf57bdb990c89070aa72cda57fe8d6913d,99 -0xc972bb57b1dc271af27fce3686f3eb9b6a1ed8b7,61 -0x90c685c31953c2b2675f723e7fa74efc83fa8fca,61 -0xb8f9e33fe0a4a21e6e0f70d88d6904fe8137a7fe,60 -0xe69d6a4ab26a034c4e7f1038e9dfe40bb423486b,58 -0xbdda70eab3ed2494b7dc219951aaad7c5b7b06e1,48 -0x1bc9b2b85a8a9ab96c835d1143269df662c87a07,46 -0xa1af8a47b9077105772d3ee4f0192daa33230573,45 -0x0e95bfa75078c63a091177105494c179582bedf6,43 -0x986204cc94428354885e237d87dc0ff9836dfc89,35 -0x1ef7bcc3976056d3f0238b6f8653287d4d2ea24e,35 -0xd9d0120911ba8e617d1f7113ff5847815535c499,34 -0x867f3c7bac32012252fe6860e4f58adc0af9d638,31 -0xf7ba55933a15ab5c3946a32adfcfa5cc7f259aee,31 -0xc645677ce475e6bb1d14a42d0be45da24b636c99,28 -0x14b369e83cf6f3992b5f02b9fe1a1998820f2dc2,27 -0x97916e27632ec5f1f4c549ba7bf4c8850344a32b,25 -0x9474f08cb0b82863a04bdcd26238e274baaae42a,25 -0x2687fde6ba8ea164075abe7ebeceac395fed0dbf,25 -0x53dcb1143f7f2da6c9e182d4d42ec45b0ffa5726,23 -0xd0090551de20806bc1389df02cb7da6448fc135e,23 -0x0a61693925f8092040c3e5ff950daa58f8ef263e,23 -0x53a9a93830ae137383369e790e3b0da0c87ab099,23 -0x95272acc5000f969215508b1a1d3840e63af0680,23 -0x155f26ebab82734e99311084d0be5884c1b9ae5e,22 -0x6f583c478e61f08fde0097bdcb8ae7a88a28255b,21 -0x96236adb640ec620a85898378375cedf03ca21ff,21 -0xe8df15b815062f7a2516bb5d4178eb9c8d9ae552,21 -0x7ae400f5d217badf4b13295719bd1150c10d0080,21 -0xaf7392a6d728df880fe94e3d8e45235a2dfde9ea,20 -0x9d4c1c518442ad9eb23cb79a4792d508b49c81af,20 -0x83212aa318b1d71e1292116d2510f1c3fb38c998,20 -0x8c8cc1831a72db5ee2482ad9d7e1bc4a2e15a9eb,20 -0xee7c5c1d372d39956801836433afb307fc8d4c21,20 -0x91e10dfff22bc964bc5638176f0c4e42898a3470,20 -0xa217f131c0dc2cd06b96d0f928fc7160a4bf54a8,19 -0x442dccee68425828c106a3662014b4f131e3bd9b,19 -0x7f42b0b1aa0783916fb808032982a5eae74d78db,19 -0x076b426ed5c028f37c513686255cb378b8ea7c8a,19 -0x2b82ad50033363fffc3cf001743cbbbb83cdc11a,18 -0x1010595f96ab62b31bfeac411ec5f8f60db5dc23,18 -0xd8f35ef085d202fa7cad0e0c61da737b60e1f855,18 -0x9f387401b2c566f621081989f7753b7cbdd1fe77,18 -0x512daf3a6b8d1ec4306cf7fc220a938ee9cf0a6d,17 -0x3b844993beccf7935c643dc35dc4a538b7903702,17 -0x3f95d7fdce43f5052a0f9bd3d376dea6d22c2560,17 -0x604501403f4bce44e2e37cf9e42d605f11a165c5,17 -0x9fc676ca14e6d51762b7299aa2bd43dc02077c90,17 -0x5a2b6e84fadaa8b23ce782cb6226f87d1ba02416,16 -0x4b9e0566b1972d2f275c926eee8d9951d02b1733,16 -0x3121be326af3d70d61dbbef2899067862ab127b8,16 -0xb8182622e3e62cad7ea708c7a4feb76787de57b0,15 -0x49f191839c8d2716a5acf70e3913aa0ec3c012a3,15 -0xe3e5b592d283504312e07784d3a851152b0da6d3,15 -0x111bb2aac9d9ad2c44d67dc2200c8219eca62939,15 -0xd210dc1dd26751503cbf1b8c9154224707820da8,15 -0xb13532e7d5fc4f39a15966aefc314b5843e2e036,15 -0xf0dd30a0afeb439d1a553f6668b0ff8959afdc2d,15 -0x4c993a5f40431838ba3385841b94fd3519a7dbdd,14 -0xe10775adf44c95b109a9911d24a9ce6f1c1b5566,14 -0x814d60499bd401eca426c86ee9b4167967dff8dd,14 -0xf7f2475a0866ae4a8bb1c67b4e2277bd3319a101,14 -0x38b97b9fbf78c423196ea0cda490cd2496f92ab8,14 -0x7e58c7e2c80fa907aad0c1530080af249b185f10,14 -0x7dc4726de04af31e910dffae48f4fb09a7b893f0,14 -0x85d719772a2556fe778023205414115d11d5160c,13 -0x10fc43b3d62d2e87ba0c58be39d10eba1dbe738b,13 -0x5878e1dc19948cc5b204d504387e78de98458682,13 -0x2057cbf2332ab2697a52b8dbc85756535d577e32,13 -0x20a5014e9f7a462994c0cf5240fe10c7d1325af3,13 -0x966b092d572e51e16c65d134cbda7b267d643d02,13 -0xc1983926cab280597c4106cad0470ab121e3af7f,13 -0x82151488ff654e5055520e188bac08e6ab0af3f0,13 -0xb3efab33b75eab9b2e7f1c75795af2b04dcfdb5a,13 -0xd03cc4eddb22989f0cfd43c86a7b1960cdea784f,13 -0x4fc9e9094330ba64bdb4f8295e33809e63b5940a,13 -0x60c228cc3b53dc351101e7178d818869bc0b3947,13 -0x6e364a3d387fce7d2a35c199eddba51680fc7ba0,13 -0x816730b2762e10d581c4b20aaf515f3f60baaf64,12 -0x2630fafa340758e01fabe6a206d292601ef333dc,12 -0x994b2b32530c95cd4bdac0ec0e0b41b187385b94,12 -0x8813df11cf5ddc4cfb234ed7bf78b2cfa9a63ce5,12 -0xdcaf84e17bb0609a19350178018b27851a5a2563,12 -0xf63bdede8dd13d2b5942c654ca645b611441bd4c,12 -0xb7496e5d97f81924256152ad1ed22d8e91959343,12 -0x14ab7ae4fa2820be8bc32044fe5279b56ccbcc34,12 -0x44dda7c0915c2523d0ed7957785132e76b3483e4,12 -0x60676e210d3117ce849c858b1eba42cdaa8d8949,12 -0xf8fc319ea001c193f47275abf1c6626930ca80fa,12 -0x5deb58731024ef186239e0e4d1b8310a220f4f60,11 -0x13880e4a26ba665543da985ee04edf5f705557a2,11 -0x91eeeca4c7305b67f1acffe43e2d0193ea602abf,11 -0x8413f65e93d31f52706c301bcc86e0727fd7c025,11 -0x08d159f35449cc667628ac62334c5c694b38e40d,11 -0x52e70830785fb22d6ea975a4f56f563efc617daf,11 -0xf0becdcc896a61c0e4dd375c9243db230958d7f3,11 -0x607502216cfe3bfe8407ee5ef62e9a4cfefcb66c,11 -0x3553ebde8853f89a52f9d541dc4b9ee766ac3a13,11 -0x4ecbf4eb227d7c71e0b6555373e6ad81c4cbd081,11 -0x01b3c7202c680271d7e4091f06b31366d68680c7,11 -0xbf98949e0bdfe8a7d36af5dd8cd2c3d4c659ba62,11 -0x5cac90f3b563426728778e287e64389525ce74dd,11 -0x4f95061a94ade673b5f4f0a97016d5e57528218c,11 -0xe4e30c64a50d4c8f68dbe683f00b3d2e429ef740,11 -0x81dd06614ed7c1b9221e929b43c0cf9e8611aeb0,11 -0x5c4fe960950ba0e09a72869c3d51fe70f07580e0,11 -0x45fb2136c8dfa3b080225f0fe872c1cc93ca15d4,11 -0x60c0bebcc37d1d1486bc37258547d7bcdb27d295,11 -0x37ee21f7c37fce696e9fa286831580bf6bdeac19,11 -0xa0834b8ce819cc984cf6f5f7101a3ebc9ce3fe1c,11 -0x22678b147a46bee86b79acbbde00b7f2e6c02da7,10 -0x4ba83c4e9d96514773fa9ca672de4c38c9dd07d9,10 -0xed5847639328edd38e7ce934442ff4ee8e714f7c,10 -0xc3c6a0f4b79fe0c3b71981e3b1986b77daa8312e,10 -0x1deda5fb4fc5956ea560c3f379bf52fa9b686b2d,10 -0x2067bad494367b860d4f5f1c2a3862110ae4d75e,10 -0x056fc9f87ae27ba058288a4e8264effc7082ba1a,10 -0xf944072b3767de20b4da40c96125d35d8f2ece1b,10 -0x3db85335352d142503ec57ac57ed1baa5b866208,10 -0xe95c64e8880868b4242d6396648d9e5c24d0ec26,10 -0x14ae45d4da3062cd85ba99a967c5d13b9c8ce553,10 -0x72b9b8643b008240f6dfa0c684614dbb60458d38,10 -0x12f16863343061bdfbf85292a414a159dd92dafb,10 -0x4bcf84b11c36bfe81b40ffd4cac562ff79ca1a1a,10 -0x448d77988d531449e88d8dbc811ed728179f72b5,10 -0x5b12f1cc85da9455800ea646be69303b93342309,10 -0x6654c845cff01f4652fbfaa12364c556934656ac,10 -0xf31a818b4e82bb4c50958a573c5304d2a5e573ef,9 -0x5c16a1799791acb83919e578707bf736bdfafefc,9 -0x9a5df8a23fb61fc6c1fe7807290bfd0e577aa4ec,9 -0x9109f2be512d10d37ffff0209e2034b51d7671ee,9 -0xfce524c2aa8ca0249c43ffce0ae46717c0e8873f,9 -0xa245b6925cfb08bf67c252cbb79c55f4b37536ca,9 -0xbcad173f804e4245ad852fc600776aace2a4b9a3,9 -0x3bad58514a98fcdba7ac0b010a0554e3d724f031,9 -0xff9a11ceca9f3f96e661cc549962984d770b615c,9 -0x840bf62e055500e06ec30f0dc2a710aaec0afb86,9 -0x620912d9d129a7d21213591da52c42e33ab0e250,9 -0x1803d2900141b58d1347806d345171a8121cf4ed,8 -0x9a33ac1be5833cdaa83d88e121cac3ebc5a7bd5f,8 -0x65fdc1863a34d51bd40be0e8582554ee42769d4b,8 -0xf2580f9d452c1ebf113ca5c69b5c5bcd926ee925,8 -0x36b198016ca27ef82b65dfb86473547324e8200f,8 -0x4ebe485c1df060f6fc6e3c3b200ebc21fe11a94d,8 -0xe193075ba397600c073df2e0146ff2ea3e31c3e6,8 -0x2dd063d7e83945537d0f689213ed91ece30d96b2,8 -0xf664299889376125e872d6d81aa94457147996ab,8 -0x42a60d2f2ffa2150c568010a8d425f0aad284fd2,8 -0x6e1d9ac48f065dd02997e5da3f0e2dfd9687cb9f,8 -0x951cde7a37c285081624a4cfb4e55064b81aa6ce,8 -0xaf31363e743ab69ee7d2a27c1c3864c66f8983a7,8 -0xb63188d98921f0202b218ba95d8d7f9e63327b91,8 -0x0d460ec3517dee5927dce832a7d2df22b559a59f,8 -0xe3182e0ef507589b142606ad78748ebf3849b228,8 -0xe0d938b6992160258eee163d2a7c931fe9c93946,8 -0x3ee3d0ccef50bc9a6ac43e763180c0c870fd2787,8 -0x00653d03b147a663390dd5c5b1a55dc9cc0bd2fd,8 -0xb493df7a62a9cf70a6572e1fe91b71e896e2c8af,8 -0x7d53e371eacc57ce82d8e37d7a0b59ede61b70be,8 -0x65d50fc812914d78ea48c299de6b116800642026,8 -0x330658ed2eedf8cad5de83cd47971566e75c80a3,8 -0x5efdb6d8c798c2c2bea5b1961982a5944f92a5c1,8 -0x1327d11d3dbceaefad9590bab28a811d6bc073b8,8 -0xb2ecf0a0d4361e243dcc5206b71aaf2dff0b805d,7 -0x39bc3bf912e9662ebcca8cbe20bf1c2a32048956,7 -0x720e7be35069a46596d96dc0e58cb40675ebcfdf,7 -0x79f6b3e28822fba81d4a38579f54c9db219ced58,7 -0xde07016d42fd56977a58db6056ff43b4e21769f7,7 -0x06d06a495cc6a39743d08649fd286a78c73ab7b2,7 -0xc3533e4aaa51819eb539a651894356ccdc47b26f,7 -0xf252383ee958eb1833453a6a2b9d8be4cc923b44,7 -0xf2a9a3f59b5327be4feac80e6668e53bac3bb7f9,7 -0x57db24ceec940249dc19d4f3dfb186f910b99cb5,7 -0x103b429c3c18d2e47fbbf8e09b619ef325539219,7 -0xade44991d931ca62e4b56f59a7a8e9160067f48a,7 -0x1680a8bd0feb80dd3d9d7e65dbf3e521d38ef598,7 -0xcc55405ced0373b38c53d7a693993b2d9293c10d,7 -0x8219475060fd581b737f02a5f911d0ceb8375df8,7 -0xb6c2a138a1fc5de5fb3f52b8b02c6fcbb8461cfa,7 -0x49efd2f6917360328f7c79b47e9c5b19e4f80747,7 -0x689e0e5b4127cbea5978e64c0538085411844f8d,7 -0xc604443843a091f1bcaa91d3741edadc5490832d,7 -0xed16c04a5295bd40a920c95f81682aa0984cadf7,7 -0x707357f2d99f4432225195d5304a3112200d2cfc,7 -0xaf2457cba375fce160db66a38a067d8a86358fba,7 -0x4f95534b4371a4781ece981b03d73b584a995b05,7 -0x016fc831f9c9884bc17b99341da9a0b69dba1f5a,7 -0x61dffc1e2c3d25992fac1248d91f81e4b97e03db,7 -0x5e8b0952f5f5a9a8b5311fe792b7749b6155675b,7 -0xe12c2b561a4bee0360393e12b2a076e87c627d9d,7 -0xa1d112c61544bb72c83a866a08155e1b18831028,6 -0x1f8e7e0caece1de5aa5051337aaad7d4c24669c4,6 -0x98eff5deee2e0a9205423f2f796ec88d1d99b2d9,6 -0x03aabd25ea3c947f764a157ca47bf27aa847b6a0,6 -0xab94868be77fab48b80886b7a2fdba9c36c0806d,6 -0xde95a6269608fc9344912c36f3802913092e02d2,6 -0x7a10ee6b0c827178f7ea5ae48b9774b2e1129a36,6 -0x86ab846eab1db8ed6f410cbc7c5497de0b7b4536,6 -0xa43e0f27e0c03f674bf7a72cafc3ea8c345c3937,6 -0x062f8932f46e4f659e3b431df348a6616232f2be,6 -0xae6f349ffa9c531e689acb3b3fd5e741abdfa16a,6 -0xe0057a40a3f1f9f2a8618baa9bdcaf85979e6527,6 -0x3b69dffc4d1c7d6c002f14fc5e76e038c73c3e00,6 -0x18e6c263ecd40ad31d9079b20730f04a59dd73b0,6 -0x450eb7c423a9ccb91939f340948e48de9bb55865,6 -0xc404dd1cd172aef530db7992c2e1303f3f4d33c4,6 -0xda0359df622bacb3ec9b949feeaae7420a084c8b,6 -0x68aabbf22cc874f8bc616adcddc4203b04afd130,6 -0xf75cec71469c63b61ed98afc572e6d06395cd44a,6 -0x548dae45f91a5799c175181c1b1ba37a63a1747f,6 -0xfccd32c6d69efe031441c17922d6ccc62fd4a463,6 -0xb4eee967b461f27d7c026fc9233c6679873b4721,6 -0x7a78f14a6f6158462b5fffe33e4c83be22926210,6 -0x0fb90b14e4bf3a2e5182b9b3cbd03e8d33b5b863,6 -0x6ccc566d56645b2867baa22db0eacc7532548e4a,6 -0xa5a88a21896f963f59f2c3e0ee2247565dd9f257,6 -0x755d99bb0a5c5627d3d21dae00ff1b6a5fbce8b6,6 -0x772c907d8ae97b925c2732df0dd7910047f02081,6 -0xb754a8b9fefb146c6364bdfe39fc12c46d01b3c3,6 -0x52aa7bc0f0885e6f33b68e765d4067b1923e8505,6 -0xf361e5cd3bbb79597a8fc5c6b487f575326f2d1f,6 -0x738b37f28ac0e0f44a7acdf5a1034c448c14cc1e,6 -0xefa98e0f44ca5d034e8e99feb02d0474e1707d46,6 -0xfd345f425ec3b8149b0c64784f412243a9838a14,6 -0x17de8591163a8a9b6752efb9d05cb7290e887a6c,6 -0xa07befd58b8345544f208595b292cff5d0c1d841,6 -0x76f769794d31d83514db3cc987055ecfef3ef6a6,6 -0x2256228d3500ff4a448852904d166cfc4245229b,6 -0xbb5bf95a3ab59277fc8de4c8a90273bffe542019,6 -0x19ae3065bab2d1dacf60c1681422ada378fa5823,6 -0x487bd1474757a6cf32df6466dc7ba9a46c01bac0,6 -0xb46615747f9abfef0379ffe498e670252e6ee983,6 -0xa2272469c824d2b34407c08c1b377f3027406fea,6 -0x68667f9b371742fc25735727a220d044f685326a,6 -0x6fd80b18d73cd2f5f972b3c2829456cc16d6d543,6 -0x0ad7998a38a42eb69d166ba18fe55fd1318eaeef,6 -0x219cd0a6d161b8b6fd7a3d7b3609fb0da8f45d3a,6 -0xbedc86ca4e3028f8a5f9223ebf85a0412c856c23,6 -0x51c915cbbb3d5cc8ea88afce369265c0f759d5a8,6 -0x01818ef4853f3e394ceb6f0798063c7d311f654e,6 -0x0c15cf0ed7e191f136716b974aaa1d33620e8fd2,6 -0x6e85e758aed0e2a452607c7ba1895a03c8500750,5 -0xa98321b8e554d426dbec05987af0441ae0e87910,5 -0x4df20811f63519532d0c6dc68def530f52c4e06e,5 -0xab99448b70fd0408ba0114060e6410b56cfb145a,5 -0x44c670b4095aea791aa590746f9960d7e8a99b80,5 -0xfdc2b224cc1fd65d6cdccdd896510a7d89af81c3,5 -0x221c2f9fe59f6d6dd569cb8fc94755e247afc309,5 -0xb1af92252166bea164e2b70eac8de738d078edb4,5 -0x0d5a22d350f079a72ebb4d45ecec8150abb60bb2,5 -0x7a0a036a1dc42f4f28dc18325744475624331f84,5 -0x203750d4b97979e1ed4ad083db831a5ad232c169,5 -0x0e1f65ed5d15a8723aa5e7146cedbd3876942b39,5 -0x4f7d74cdd204a78b67c8d265cc17218ab5d8ffeb,5 -0xc32ff65467b2c446f23ec6966e949249bedb3731,5 -0x827e89bc6dd5e6c75450e878f368af069b7f86b4,5 -0xb74d5f0a81ce99ac1857133e489bc2b4954935ff,5 -0xffa97863a506f560f2c0f947b493a456bcd7c99a,5 -0xa1f39f1a900a44ddfc702f9071808a07b841f377,5 -0x227c555dfe4009ed5602fe15a4b1d0897142dc0c,5 -0x2f406bfdd803c0701f9a624b819f4470b2dde75f,5 -0x4de11aeb08ba9ac4f7887f94fe5edb41c081451b,5 -0x7f74b71b5c3a200d9ff327d1f6f8fb695393ec5c,5 -0x350b4ee5898182e6f481a8dcb629e42bbf222d13,5 -0x3b7b41f27b89f07269a0599f15fba723f21f2442,5 -0x3593bd7b5a4376455378c7b13340745b70bce908,5 -0xe27953e859203598387968f04f55fd130a234c67,5 -0x6e9bb68ee1a66c18ff7e2fc9b1db567127b2244e,5 -0xb29d0f3b7feeea31064b8f2b4bc853575a4109be,5 -0x67a66de57a6bd2f614a58de04b873bf421d399d3,5 -0x8eb6b7c7907d0d3e197dd46467fde55d8ae9e885,5 -0xb5619ca0bdd458ebfbc2b8b4b823e23d5717ea67,5 -0xee1cb06ac67f7e119fdf7a5f7867f54dcf68204f,5 -0x18b4ddab23483770af0b105e21145dfdaa047ab5,5 -0x5e207c60ff93bae1dd37622712db282a4a056f17,5 -0xa975c354fd081ae0c4a70eaee85d42e82f4a52f6,5 -0xc13ba51d26d1b2022fa51e25243bb49a54c4a953,5 -0x3282f7a8d396fd37927a63897fa9ca98178ec480,5 -0x62424e141ee0128fd1ed2fd26f85c556f1bd01c0,5 -0x3cf2ffb730189e808ca91da9907490fbac3d6a75,5 -0xaa621b960f22911462550c078df678493c22b2ae,5 -0x7fce4538cc7d5d78f93ed4c7c49a468f7d1f180c,5 -0x3a4934ed20663e2a1b2c80e3034745f723fed342,5 -0x5430b41029916cb31b02b85dc7855adfb63b1d96,5 -0x91c29d30090c77eccde977ea530d6385459871d9,5 -0x599685013d42a81d171567f8c738d48d3351d15a,5 -0xd2e31eb9cc0e357b510f67c021ba716412c54806,5 -0xc23d3085a6c132eb7bec00a471a2ba10658d7edc,5 -0xb8486f271bcd6354f752017bc069440127bb5952,5 -0xc797a3672c0cc4cca963ecb282a0285218811d9a,5 -0xbbc84bbacaea57f1b768905a08e26483525ea286,5 -0x199dfbc294740b210774ae384534bd216de149db,5 -0x16b35676e16d4d712de82185ad98140429f5cee1,5 -0xbe67e4309e65bb73b5aa8dd3bd8748e1417553f1,5 -0xc74d172f2944c7842355db518dd8e336596e40de,5 -0x9ba6813d69f376578f3e650b45eb851031b8d931,5 -0xeeeb343c8ce1109c6d07c549bf6c5b864017a145,5 -0xab9e8032df984016b9a5db42f86fbaa85ac89697,5 -0x4a6cb72561623271a84490191f2429ebb611dd51,5 -0x8f388d0592cb95b2bb499bc47b46f192cb5f4086,5 -0x9aa1f4a3aa55d32d9d2a7d0b738b456939cc10cb,5 -0x6fe138faec9448c9219b67cb309e42c83c9cdf37,5 -0xede9d85404ecb20b2286c599bd07866dbc6e218d,5 -0xbdfc4ef75c75bab124be9634ffbf93a503f56ad8,5 -0xba8ab3a6e3aa1648087e714c6e328672e7c62287,5 -0xcc375aa9000234ae9e88a04bb3d140687c4aa9ed,5 -0xdafa7e670e29109fe1da4701ff8508c3ff300214,5 -0x0000000007fbb23c230992f608a209b752c8c563,5 -0x1f5a7e79fe4ab9b1ea0413ee8b44e8a76ef7f9a7,5 -0xca50cc37abaa58d19e3a23ccb086f17f8384cb3c,5 -0x23efcded4c8cd0ae382797ff893eb61abc3d2d80,5 -0x52b65efdbc8c38d4cc9078e4cab9b706f6ab36b2,5 -0x7f2ca521994a500dfde17f0fcaebe14930e12d79,5 -0x9605879a4cd2c4307825780e14986a04604fe68d,5 -0x2b10c0f8aeecfded688bc02b506badfa73a3e556,5 -0xbf84f2994ebbb293df4da3b42ae38fd09904618e,5 -0x136f8e2e4de3f18fad5aa9ef6167a3abd748d8c6,5 -0xb4cf7ff2a63692623570ae38a86bd0f351021d3d,5 -0x3ebc7267006f62bfcb2446afd11b7c975abe6435,5 -0x03fb97b66be4f149db8ecca417e176268773a35a,5 -0xff29851258b6eb7e9902f18c79c00ec552e83633,5 -0x4b790db2046ab8ece77852ae6f62df2c9ae6559a,5 -0x98bb54ffab5219405984cd9700f0b2ff58c7f6eb,5 -0x6dacc92a335dfcc58d65e4e8aa35a344f73c52b9,5 -0x026d02831bce444d063354a281227c9fa1b9b52e,5 -0x75c72c01f1ea661269ed8e01df79c222aba9ba51,5 -0x6d16ab5fc5cf160b04b8ad90bf4554fc72a5d18a,5 -0xbc3a98d26bc013356fe01f5738867b2cd292a147,5 -0xe009bb8aece611d7746db20c400663caa4668505,5 -0xa28b7e6e4c916c0923810d2047f82a63b9312493,5 -0x20e14416fb0af31b13bcc4ff909703020748d731,5 -0x2aeb41a182ac31e6f34851074a94f49699846736,5 -0xce77bd70a6794f7f3e02c7b128346ef31fce36c1,5 -0xa1909bdc4cb656be152946757de730b144aa3aa6,5 -0x18daef405ebd1dfc025e2d1fd40f9b1f37ec036d,5 -0xd801bb8b8c0bcc0d6f8037f903fb5195a89e65e0,5 -0x44d036f2cbef163f2472da5a11b2fd326e740cde,5 -0x9e13f400d1f4f6dcb36dc8b7abe72ad28519f03a,5 -0x70d528c6b2cadcc9831409a4716b4bfad795bb52,5 -0xdd255d77115bbb52796a7c5574479ec566d3e2ac,5 -0x21e71f536e0f929f30d481ffd4554bd01e9b29be,5 -0x3106e6664e3fd7f13c1336513b495b66936a7350,5 -0xb2db0f39c6203de2884cdf219300d5556afa2368,5 -0x8a1e282821cb50329e9b08180ee74b69d996d3c4,5 -0x17d3e1d974c9dfde2ce474cb3fdc9575554e6a7b,5 -0x6dfe8a6e2518fc62baf710490f36906e5542d9ff,5 -0xa01d7e4e848467cbd2ca864150f27a9d286c86c8,5 -0xa253b63db114feaa751b96a21a3e1be17d172a84,5 -0xfe02f7c9a30afdb3927e1a7a747ed2af80e175b7,5 -0x6d79ddb41cb26675dae6e934df7528ebe118f322,5 -0x5b2d405a5c7f4eac2eeb9e9e8f4760a9f7a33e4b,5 -0x09674c18d7372d87c6a7e17c600423e4334bd1eb,5 -0x49c03f0b1eb21fb661fdb6911c6684b0d694642a,5 -0x379082a9e6c2319dedd2dca10a999ec1b6d76116,5 -0xabf6d89b4e13d671c2254efbbe9fbbe7f07fd2b2,5 -0x06f95664e273e6e14b902933d7fd0f91f8d5da5a,5 -0x153728745a891e5f0de2142a03d1f33f1ce67c61,5 -0xd2c894e3ae98f342761dfd4afd7d23a371ca95c6,5 -0x5c0b29bafd3ba1ba715a2293cee2b412f898c272,5 -0x3005b32c1817d042573bc0ed2ff15e47252f248b,5 -0xcdc116e247f9b046586571b8a52b14028dc4311f,5 -0xc70899910d03c32093f421252db8ddaec20ce0ae,5 -0x61b7b779deb3d02054d7e10e8c4e70d1609c5b00,5 -0x99c31ace2466fdc5f4252209a3c0ac079d260b6a,5 -0xce1c5a5d1640a267694bf03186a041ed880fda22,5 -0x3c8907dfcfe1602e2cfdd0eb5145bf2a571ea16f,5 -0x1b3c398b8045bc4eff5ff2427f2922b78aa23239,4 -0x72eae297f8f5f3bf3974cdb1148593ed0fcf290d,4 -0x61d73cba29120850788ee797e6c53f176a6c4a9b,4 -0xef984be913c22645bdd7dc1388b3d2b9c5744092,4 -0x3659a744dc954dcf6636ea1b75c813ab50a4bc45,4 -0x5fb043d0e9f5a337e78759ab7564e8ee2158c828,4 -0xad5c955274b7b66330c070417c79e5896ba91e75,4 -0x5ea9681c3ab9b5739810f8b91ae65ec47de62119,4 -0x49ca963ef75bceba8e4a5f4ceab5fd326bef6123,4 -0xa4a8d44646e2f4c4a74b892303a13c85fb876338,4 -0x97a38d6d50509e16287b52f0458914ead45320ce,4 -0xdcd6426ac17fc77815ffb00a44e28b41c6516699,4 -0x9a29f67263ebefb9c6e1b0a94cc4059248191089,4 -0xef9a80ec49086c393bca96ba92a78f77377d4800,4 -0x62dd369d50d91f9b53acf356bd6b6432d48754bd,4 -0x375c8d30ea2363e374915fc341f0412d001587cb,4 -0x3bb0d0fc31d5c8cc420150ff4d76c8ab10333c88,4 -0x935002727a6ebbcaf01a0039db0e6b1f9c175f0b,4 -0x4e43b17a7cdd7894b12ba77a0b72f5c16f8d3e0a,4 -0x36fc63a184a21866b95b65242fc312af641401fe,4 -0x9d643c47a6bdbcdf7b2414ed839df8746780e397,4 -0xf7a8dc8961687a60326ae2b576b13822810f5a93,4 -0x8f08ee5e3e44bdc28127e050fcb13f5e4671433d,4 -0x77d9b71cd2f52e9a196182163c5d757d33d73a3b,4 -0xe92356c05d03fce81063caaafca1493ef6619445,4 -0x3f79e2b257daace6a35f3cb97abdac003ba59515,4 -0xfa68a2b3665b1ef3ce6d166b06dc0500f8e5472e,4 -0xcb73b46d4826fb305408ed7b2fbb30b9c9978325,4 -0xe1c83d448788af03049c7239da79007536f8affd,4 -0x6a8a5c4a843f1dd1f3a769c75c7112be2a568b79,4 -0x331c4fba3aeea4d217624c50f433dce8f6bff9cc,4 -0x47886f5343ebbc0678050383ce1caaa40861cce9,4 -0xa8a5a17d85f6e877465cc2c34f08a67ec5dc12ed,4 -0x3edbd56213347120bd8b1cda2b2f5a109b9385d4,4 -0x9bb640a0381c1f899d30f31f98b340176c09d571,4 -0x806346b423ddb4727c1f5dc718886430aa7ce9cf,4 -0x37e189b454e70611042ac5c51179fe7d795d5238,4 -0x50467690132b0ba0acf3367aa70ea6b1e484b62b,4 -0xe4df048ad989396bcb7f95a3e8606e8fb8f16a31,4 -0x26d2a88ae26173323f552ab717ff56c55a100389,4 -0xf8aaa9bb4605f2fd43a220c8c33a2d9f559dc346,4 -0x1013c88cbcf4396b89fe23c7352673c6becd1ff0,4 -0x3be2f713aee93120d8f4e68f471f3051d43b9755,4 -0x1c96fe3bd7ae5d1145f9ace3063c2ccb12a56b9e,4 -0x32346b95d68044a60c0a5a2172d3d56e98a1aa5e,4 -0x097c3f4e449ce84edea4ccaf0a87102ca4f75cff,4 -0xa9c8660efacc106b8aa4e9e24904552b922e7c6b,4 -0x5c6ec56843182fe04271715c6be04bbc7edf0f84,4 -0xd449175208274b6d9084edbf89e3a3879f9babb2,4 -0x9bf0012a8e8d2773c3df612aece2c6da1bafd489,4 -0x4de20e4fd38430668eec7c40b0f20d6b75b24960,4 -0xb0b092448ba039685a2f557d9624971a5bfa2215,4 -0xdd855f892196a685c9f4d80cb1d556f1f20f56d4,4 -0x936afd2d46d0695f5880ba5d429f5681632d5e78,4 -0x2dc84af695d2815d8e56828a1fd91e7b135df6ee,4 -0xe703f231ab056ecb99c92a1232cc1020acfc72f8,4 -0x89998ecbd4aeb30800b6ec2735bcb5648a3f6192,4 -0x79c800da3577ccfa8813edc5abd91d328bc44bee,4 -0x8d0fd6773b5d80739ddf69de8a1d0cbf79407f5d,4 -0xc160bcf9a40532e3c1c4ce83020469cb851081cc,4 -0xe24dac7a8828d4d862b9389fb0e98b6f1fe28f54,4 -0xf23afb867ae9df4a64971c31b1b850e4fd4c401d,4 -0x6cd4398d8a9dd8efbeca17274e973449425980b5,4 -0x0d747819834ddb27e03cc2acf174096e2255cffe,4 -0x338006afcd1fc7b52d13e99ef936d11475d803f0,4 -0xde2d7d45837cef4eddb9f112c8c01ff70bb2bd09,4 -0xc71abacbfb2a1a6349d49fd7fabf96d5bbe24e85,4 -0x379158a28d02be9da5711b0087b76822980b8c75,4 -0xce74dd90be6c92f04ff4e5fe03fc7757f6102a0c,4 -0xbc560df2937e636526d8151745608761d7e939b6,4 -0x32119b4c651b0ce16f10baf3599f946fe494d6b7,4 -0xc423ec887183b5d5845baa522c534ab6cc1444e6,4 -0x5705aedeacb92d0121d5080a28da9a7e2469133f,4 -0x7946cdba33a84805a66c80edf408712611d1bc28,4 -0x37486f1e2b3b3d50422491a51cb349327461f089,4 -0x83db494e45bb3d93ec9b5324fd5fedaac6beae8b,4 -0x509291eef289159b01bef7748f2e1c5d59a35666,4 -0x707405f6ea45e456d24351de1757070713bacf5c,4 -0xf013e5f697e84c6831220a21a96556242ee9ad86,4 -0x35c8222d2feba4b43d4fe23c0597a987374dccec,4 -0x3df88380a4095b849a23bce7c659b56993f63d8b,4 -0x821807c8d7a4ee14903a042e280d1ff0f9646a10,4 -0x9c4d96683af2329edd49c257d5411defff4b8d5c,4 -0x966d35960c00c20c1911bf2692c278267add139d,4 -0x24a54f415aecb0dec7196699e0ab50d97a1b956b,4 -0xff5cabb0fd2ed9c1008cc703a488cac8ad4724a9,4 -0x195fce941ae0c972b8dc814d2059537b67f14038,4 -0x25ed2a781424d0066c44c80732746a5804ed5022,4 -0xe6ddf6e3962592590883d22fe4a8b2156b23e3aa,4 -0x8271d3a2ff5e4cedb85f415c977bc374cd33fbee,4 -0x149b85d173f6318315a7b528672b846948fbd4d2,4 -0xeb0b03bae1d707f5b698a8b5c2d9dab9647eb790,4 -0xd3a23af611a64b5dd99daa6275958bf63e59d766,4 -0xb6926d48150a58165902a773119181eb4fc17e04,4 -0xce802256a43c26446935d1fbc59140ae0f37b143,4 -0x49b13cd6e0ededd6eb93b627cc8364d65de37176,4 -0xf03a247b9abee6e15627efa781a911adcd410466,4 -0x3f7ac575f3c6a9e848b1f1ec3a51ad24bf2b1624,4 -0x0645e5e8e9dcd91f507cba441bf5136eaf8a3c84,4 -0xbca5e9795029da1bb1c08d20f0a397766dcbe53b,4 -0xb5c08a347a3d51971d7459e0974df2b717628651,4 -0xc54572e677b2ed341b09b62485eb511643d14a3b,4 -0xeffcfa62d2b9f6a900a6a186f29e3e837c8853d1,4 -0x8aec564ef5a37bcb5fbd54ee22d6c151579c8628,4 -0x2b21898c0b0629516038b86b1d3b2cc85c3c680e,4 -0xf2441fcbfc456250a3f97054a59518da6cedb12e,4 -0xe5ca8f322f270fa8252fb62cb13df6f3793d762a,4 -0x849393c5748023828c816c4f634d80cd63636803,4 -0xe03953f734277be6f7a3baf608fe6a40f60aa65e,4 -0xa859dc0f8922edb2b387c791b209795a177c8b16,4 -0x56609a8e0601b9afabc90923bf20df0523993ca6,4 -0x2847195be314ff5b3d386287a4f207b2f5e45c38,4 -0x7e2a67ecfce3ac2f55ebdd181b937350c9e1c78c,3 -0x60a27897cdc28e9b203538ada40cc0ffc5b06b29,3 -0xa401b3973caa622bf7399ba266508d4d544fa12d,3 -0xe9227c3f5110c7cc56d6acf7a11b2b923b61730b,3 -0x897756077f31c9cfc61039b2d31d84e8f83facba,3 -0x98ef61a73a79a61d2eab1c9fb388566caea11fc0,3 -0x92fab452e2f14c7730f79031906e06326c916946,3 -0x9d4c0a059a8b2d1e74994178d8a93d5bfd925f58,3 -0xe72f8f633ec46f6c086820e3f9d96d518ad433a2,3 -0xe82a1846e827512403fae86f82b0f94fe38d9834,3 -0x0f8c611ed91a8586ed5063ad467325abdfa3a015,3 -0xc2bd956dcac8268ca78f55d6b33bba92eeac443d,3 -0x01c463dfcbd285cf4733f6ec1e4bf58e8182b088,3 -0xcf3b555729822b93ab8f05c9124b10243cd3748f,3 -0xc290d6670b3ba5ecf7644018687cf48a4e36214c,3 -0xfd33921e206af4a5d086662b7e7754a7a5cfd733,3 -0xc2c34f6cbbfe8196eaa67d72e92d121a3dce193a,3 -0x55b7db30ca7491a4d2aac3726899382f6eadd5a7,3 -0x8d3bc45d7b30013c37c141f6ce7c981b2613efaa,3 -0xfc6cfbf3689a8fda662587d8a829ca820b99e06a,3 -0x895537e51225476ac7d247e0a0438b17a3931c47,3 -0x941b4c03446eac02902c30554ec683bab3d40ff9,3 -0xf138b002f7f514936873081b9dfa56672cdae42b,3 -0x0bf12d3f83addcf9df5fcda18f363913b89654ca,3 -0xe35d493257168bfd3a334c6bc8852886638e50f8,3 -0x9e01448d4174231f19975e4e5965ca20c57b9184,3 -0x30b7c528d4cb5d36c86aa8e77e052b9e4b7e7539,3 -0x027dd3b7a9653202e87a5b3a2b4e4c5878243ff0,3 -0xba92f76584b5485206b9d2adb3d3d06a813e2cde,3 -0xd270335499c3721655bf701b9f4a63da1a6b8781,3 -0xcbbe286c5119f331063ec614fab776f6a3799368,3 -0xb08f95dbc639621dbaf48a472ae8fce0f6f56a6e,3 -0x98418050c804aaa79fedea932558c628d611bab9,3 -0x4ed08edd10ec1e2f137189b03801c2037166fdcd,3 -0x7b233351b9b34c1ed594647cd850558fefde1a0e,3 -0x1423d7ba74817a2617fa3e69b609a54e4daf6f79,3 -0x5b4672cffee5e64a2a7d17c157abdb4edffbe3df,3 -0xb2509e1090ea96535af9d2b8b5f775ecfd636f0d,3 -0x97bae4cd5f417bb1a6c3bfb4e5d701b773d3bf86,3 -0x129d57759b9218dbcb72040b209af16834fb7091,3 -0x88fa6597b1fc6fd7db0c29456a7489b90f5ed1d0,3 -0xa11f83cbb07fd0327415bd424b986132e009f643,3 -0xb33969b4681622cd4f2e802f87bcb338e7a171c5,3 -0x477d97b5beaf16c6d9adb5bde33fa11bd17b73e9,3 -0xff4f2c41af6bac672164357677466ded6b92dac0,3 -0x667c66a1dde2ef5a2f92414ae51e07a8d91e135d,3 -0x1a7cb57c04155a7e09767c97a24fa1758fa129d9,3 -0x577ff1df8c33f95c6180bcd7b56251a9d1f3422c,3 -0xb59c9476187a7ced6629a784e142ec0f2df5309d,3 -0xc5eb4ea00efa37255d9f922360a78a60a0e8c79e,3 -0xf9b35e8386e40d23a0484d8317ad823dfa82b368,3 -0xe0c43cf26b0bacb408c6334468700179c61aeebf,3 -0xe9db31cad82767375f04f7304a0e083c7e80ae76,3 -0x0a2bc233d223fa0911a4ab429e6c8960734e1757,3 -0xa927130b0670e54ea82fdf74cd67497b3b0785ed,3 -0xbda270eda162217cc5db87facae1d201cf438b1f,3 -0x838a1c2f0cae94072332c346533acdc6c590971f,3 -0x9eb177785aeb034bf46481ff7c56f4e94f88c9e3,3 -0xe3d69bcab5daaea39787eeaf4c0369de366d71bd,3 -0x0d8985610d09959afb8ac3f8efef31ec5d9c2acc,3 -0x1c3827273f82f8ce7304646bf062712541259986,3 -0xa5437c9d2f62f79ae22b1dbd0a735feec7cef6a7,3 -0x9f41ed10480919f486cf355e8856b7f14c061d6c,3 -0x0da0df4be467140e74c76257d002f52e954be4d3,3 -0x2de787fae6cc452d0784767d20661f35713510ba,3 -0xe3478483a9a7ecd8cdde248ea43b48197b19e09e,3 -0x767dbc119783a2703c870cd09c9a951767bbb5de,3 -0x00a3ada968a89b5f599e4c6324c015009c85a6e4,3 -0x568be95e96ba2ef72aee6797d64095f3a4147d72,3 -0x9e7dbfa325f09fc75f04b7d9d47db9fcb5e8ac91,3 -0x630fb09ed325e903bd09cb5fcbb30b736c10af4d,3 -0xa458c7ad686589c6bb7239128c15bb124760c173,3 -0x38127a32b7d90c24cbe9ae2945c445291e4313be,3 -0x1d13bac26f5e81ba836c9c8b110b10aa20dfb8e8,3 -0x70a938e72d4d469388aa7e7341c02b73772b77ec,3 -0xbe549ea85b800a910b18066c30929446561fd4ce,3 -0x94aa21b1da98314f1b8f9d8aab6ffb2d0099a564,3 -0x8a4d493882ba6f213c2fd797640c26829b784d4b,3 -0x4f46e6582f07175ab59c9d2e358d3afdbef0b474,3 -0x7146cae915f1cd90871ecc69999beffdcaf38ff9,3 -0x0a3434a1d0e949ff2681b5a4733c29f0fac086f5,3 -0xebd102fa185b2952bae825ee52e4cb945530d491,3 -0x78e07de627d0acc55badd19eba7b818a29ed1f01,3 -0x89244834b6defbfa8698cf52d4143c84f35a6c20,3 -0xad89d44c4081e0ed36d24a3c517fc13eb99f83e9,3 -0xd7312203a608f97bfdfc808369d79cb745f8cf16,3 -0x9db59920d3776c2d8a3aa0cbd7b16d81fcab0a2b,3 -0x98d07314a85eb37cbed0c66c7f0d5953c755c7f9,3 -0x662136aab9d0bebbd5e4c0f65a1ea91752aee0c3,3 -0x1861d5abce29c9db610580750042c488627981e8,3 -0xaf6aec04d6a9938f9bc9fb5ceb531d0d6f32d238,3 -0x62d2258a1a25baf09c7fe061cb35494c0d1ab4a1,3 -0xfa7d1a5fab836fbf56b6a45c76125abc8f89ae99,3 -0x7e5573836391c3240c95b1698ee3f815bf01c904,3 -0x01fb51f8a664f0f2b7cf8f6eee89f7c1b7e05ba1,3 -0x9341a1e7c6b2f82aa8e41cd40bacfce4ecdda624,3 -0x591631285f17e0e3ae23c2695b632575b2455a1c,3 -0x26ba13d38dd4a58249d6e0b70b218ebf58589f4d,3 -0x6506e991f84182d91be7d21fbf427b95e1e7e8ec,3 -0x729436ba95da0edaee5962cda230bc0b597db4f0,3 -0xae051e32df2facb1b1cae583fd10481b6deaac73,3 -0x72d26eed367a8550d2dcbe01479325f570a403eb,3 -0x4a33a29ade766580efb33bf8c35b7dd492c47e37,3 -0xff0efcc4cd78fd8e256e7198aec3b6352fd7b0d3,3 -0xc1728560397edf7740c2f38167cb042a20d1aa7a,3 -0xfd9fa650c72f851f513f0583986c40b8f7bb6b59,3 -0x0fe074bfdd4c32d3644021bb721ddb2cd2d4e8d4,3 -0x6d25415569524deb1780ecc9b6f66097134af29e,3 -0xb710cab13db8a9fe13cfa261b34524d1c3ae2823,3 -0x20bfe91dd23fbfdb30feb509322334abe3ed9585,3 -0xaeacdebfa89295995566dbecb7de29bd860686b5,3 -0xdb517690de79eec1386c739fa0bf7edb289345e1,3 -0xc67801c92ef5e7271c45c3c69daa360d5545bd49,3 -0x4c85ece5bbf191d3e1b76934c8372d4ae3bf6927,3 -0xca2617c0c16a78dc0b29ca72a88785e5797ae61f,3 -0x5167c766fbf599a1230287c77a5069df14077368,3 -0x5e8ae80aff87ef0ad7fdb59454a8ce16592c6272,3 -0xf865bdb508d7048fbf28d88ee920d6fc080aaccb,3 -0x37efb5fd87c86b95f691064d26f6655df565a59b,3 -0x3686a4b272c646ef6fbe34377337d95db7356e63,3 -0x9fbc65a78e12c66d6dd014f85ce742acba1da45d,3 -0xdec559e1ec7a85f686610f02b7cb721030197f7c,3 -0xd972bb7ce0c457983fb47bcbe9046681854bfc8c,3 -0x5fc9b8eac2f94ee1224958c2cc8b7112b714786e,3 -0x859cd1be0af21785fdfdc25c4da9c819721af230,3 -0x0f59f5f3039fe15c5cf0ec1d0966ac84630c29fe,3 -0x5858d523dca58049f68bc5df579dc8444bc11743,3 -0xc659512d0045c71835380e1314be8ec93ae8f738,3 -0xeaeb2eb04d6c41e3bab9a5ea971a46295cd0a1d0,3 -0x73da8b89afe472ad7e74db571a03fa621e0da6e5,3 -0x2309ef90f255774affab64b7813dad9ab3695792,3 -0xa9132fff716a43762e19fad3ab14e63b71ca3d8a,3 -0xfe8d12bb904e686843e02f7ebc969651a80accde,3 -0x8873084d75ef7389ca8d9d86ec5459837d4d09f0,3 -0x86ba5aa206be5b43d6ec0015d69f4786ba7c7e97,3 -0xecb25c2427ea37758954d2f43fb76630612c4aa3,3 -0xbedded6eed41149b13063def9bb4c6979760da9f,3 -0x59696de67f25e53884ca7ef2ca65a4b30ab3d89f,3 -0x51d27bef2561868b400d513606dc48069b3831a4,3 -0xb0fbdb31e382b7186d8d08c4a09c935a33a0996e,3 -0x9f39b2cb78dfdf9dbbfd7f967d49723e6cc4bd85,3 -0xf3f59914c371fdd88a47bd2dfccd56545e63028d,3 -0xa73a41ca2468b93efcbeb721768def8f7d5ac78c,3 -0x946dfd884bea8def9fa61a84c55461c904309f7b,3 -0x6858f224b85dfaaf533fcf8d2172ba712a0fd352,3 -0xa2351b384384e0d632781adf423d7a14458d8375,3 -0xe6391c6a362b821517455725c7c1b582351fdb54,3 -0x414776300a6555e3a68c5e1312c15cdfef5f8e48,3 -0x6ebcba8a2ca57fc78e3b47be6df6cac3ab048e53,3 -0x81e4fb0c64bf49f89b57f6648562fc9a791b2e92,3 -0x15ab88f5954c62c4856691990f4475274cfb3ede,3 -0xe30b0db3b14921866fc4d2b89453eb0f741dcce8,3 -0x575ee64c347cb0675f22edcda20fe90a83f5a965,3 -0x3713ae8dc57367536d11ee85a00b973635018f8b,3 -0xa7ad4296d9f41434d1982a4c4cd98df88121858f,3 -0xf8afad900fad71956e4e8cb4bbd143a51974286d,3 -0x6b11d23e1c2078780b042c35b95e31c8d6834883,3 -0x3099d8a9ed45b2581bb00a4e7bfed15c6e21016f,3 -0x01e07aaa48007ec1504bc49802ae68c81f916b13,3 -0x8e71d1087648d7a36ca71451f825b090f164aa9f,3 -0xe0fabc9c44a82e0e3e31775474a6445cb42b494a,3 -0x36e7b903cc18f0513963e145df49a2e7ac278d53,3 -0x21a8f29103aee1be41ed95fff339e0ebf953a99e,3 -0xe27e8990e299f25a0052b6b9af2e87b6794fd25a,3 -0x6bedc20d252a1ae2371f250d569a6025da0222be,3 -0x102967afe8d1b52464d1243524755f716388f3ee,3 -0xd73d8b381844e0240e3c7d28fe6153ceff185471,3 -0xa5572bbac4a332700b4ed62cda2f0aa86b88d566,3 -0xa746f4bc4255931ef35096784855fcaa35ffee04,3 -0xb8b5c352ac90a93bdb3bca4bc9fc817a09ff7b00,3 -0xa657d3c5927527dbd8f3e13852acbbf4bd83857e,3 -0xae010719535729100b10e5964faa90124cc64a6b,3 -0x5556a920f2099b440b69993f902f3fbc40553904,3 -0x505da95b8e6d0d3283e7378f63f3ff38c3c21820,3 -0xada29ff55d83b28b4f8080fb2ef090bf7aa60f91,3 -0xfbae7e3d03be85c1329082294bca7f8bb87e2b5e,3 -0xcce9370d2a2fd5b46b9db19213e9048b5b45c3bb,3 -0xb1a2f4aff950aaef8109ac1f3bfe9d9767f3c20c,3 -0x7d043b98f65d1f0ef30bdd15da9149b869162e78,3 -0xfd5b2fcc298699831a14cea9131112b35aebe7da,3 -0x6dda96967b8444d168af079f76c534b17e22620f,3 -0x95c4c019ac6fa02a436aa99c8ee378e32953931a,3 -0xbc71113089825c378e3bd9b52e16ed517f77f90a,3 -0x5a823e29d721732b0446c2189657299163b59363,3 -0x42fe3fab45e908ec52a704325c00018d3acf1ea1,3 -0xa2a7adc5409f8dce92ab30aa62598def604e869d,3 -0x4d5b3b669b56c96ccfb8cb882ff2707eb618e854,3 -0x09dbbbfd4ce3a0a1f43d0a9d100c8a5378703027,3 -0x302f30b077253cc405038138ecf6b5080966fee1,3 -0xbea7b7fa6f801f7784bddb28c636d027f989122f,3 -0x65654112dc8cba7a48b94c362f3c0830e12ce11e,3 -0x4353e33a793d3d5d70d70471d6d6ce5e229f1b8a,3 -0x3db16213c7cdbacd12f99219de5b6d9b7ce528a7,3 -0x440f661ee333a5049e7f186a3f85b2d37a09b2c9,3 -0x92cd26304c475c7638107dee8c6a7e83f499aa6f,3 -0x83270d2d79e7ca6ffffb30cfe4d293f41f170ef0,3 -0xe0f3b0355d9a3b293c3906a4209b1f382ef2964f,3 -0x52974353daa1c6e02f949daffec7b2f6d061af29,3 -0x03eaf0982f42aeb4a90be76b16b7d687094c8d50,3 -0x6df6998b5c2db032eba0c8c13b67826e2bd8c379,3 -0x111c2042b2fdbf2ae97604136755b8862e8b4ed6,3 -0xac06a545a56f8760a76d070735ca41570c138efd,3 -0x100799be6e2ed6ffe228c5a8aa7ce90c6a56701e,3 -0x6083ab418b3681d0c197b1b2d2f2b48d2a6939fc,3 -0x440d50ac98a55f9a64af8efaf9fee007a6213c36,3 -0x5c725b85c60f207cd9c68e36293073e5303147a3,3 -0x51703a5ec1edca9d91446c7c4961279915a95ffe,3 -0xdd2e381ff4004b29202f6e16d73987f6093846a4,3 -0x4ac965a17a6bb43d30a88b3f3bc35fc73fc727a7,3 -0xa38ceafb08cec787f6dd45031ccdc413a29c39d2,3 -0x33975b5cf757440ad83f30526eb8abd4a6806af0,3 -0xe420e87562f70adff0a64f7d179b6bb919e4c986,3 -0x23b6dbaf63997087e43fcb41c95326f0be8787b2,3 -0xf4e654687f7d711702671afbce763b23ffdb259f,3 -0x9772d21ad092918d212f02fe04cd35c450ed9e42,3 -0xeb6e64c7d3c58edeb829df85fa8b68452ea97c5b,3 -0x8578350486ade0e19e6d685d973d7c57516cf36e,3 -0xc12e23114b4ad2055ffe49bfdbb37dd75b2eddcf,3 -0x61419a14fa5613ffa3286ebbf95c5cb370b9c671,3 -0x7d70cc21d0848357815c316e7aeada905161761f,3 -0x1a29a71096765e9c03dfe995f1790a1e8f007c48,3 -0x8cb7e4a04352800f6cbbc5c517c9fab2779a0dfa,3 -0xe417a1a9c3ced73347ac34f1a6a5ac0019a22661,3 -0xefc941ccf58e0d0114b7ec23ff3171d86ca97704,3 -0xbdae535fe88d68316fc973e9905e6be31d5a572b,3 -0xe2b6568befc1af29009fc5f2b1a65effbfadfa24,3 -0xfebed66fdc4bbb578e75d2386ec796db216bcf8e,3 -0x72e464537c954e5451e96b725fdf22105dcf4ff4,3 -0x224e44c4863e2ec6c62f6828b7c89b9b2c8cad9e,3 -0x1c51a4078d600b2e3d0075b99a4c961d25ecc075,3 -0xdc2ba78c864729884af9123f13607a648f031d30,3 -0x2df7733027338982c9f145ed52da9fb026b7ffec,3 -0xb835b804a952d7d6611dc0a69b60891883496dce,3 -0x1b415915001528f20b9148afb592d5445b1120aa,3 -0x2740f7857b9c0768a730fb906434ea23f5883520,3 -0x55e4e21b0b10a557050a7f157009ffdead8e9f5b,3 -0x8df9b23919a18e394259ea164ea0c55afbe7a593,3 -0x6c719836105879783760eaef03a8e004482ed33c,3 -0xb4e027e09563d66f90363acabaf5e2a6cd4079fd,3 -0xbb681f83d7861fe2e351dee610292fafabe34175,3 -0x92db9b273edd67dac79aab4a9cd0d973f8a5dc5c,3 -0xaa704ec6a0b7f002e2ae4447c52ec056a8eb6f40,3 -0xba87a91595545b09d03f0d7e4ae1f1f57cfaadb7,3 -0xc8018f71bbcc42c6a50d4926b1a9073482906695,3 -0xb53e70d03351b923908bea07aed3b885cc685f87,3 -0xf1285258b1f90bf942472c821c8b2381129868e9,3 -0x32e2f310dd2996ac37fe0ce255e5ce1c1ffcda76,3 -0x4f47355952aacf58c0ff25d96c88b718f2db2b18,3 -0x339f45311b4520f31fcd0541d4c481fbfad6fe32,3 -0x2776a02fe8046dec55b1df8f4825dd5bb40dcadf,3 -0xc8113bfd005b4c2de35212ea750357002868548f,3 -0xb036e72849511a481d6d1467baf8e6b1bff40d89,3 -0x52b32c833f833eabb7703b5192debde86fb7e24e,3 -0xfbc11557932bde86f672b6db48431c30bf363563,3 -0x35d8abd5252d9812fc8bb052e33823e8dac270d9,3 -0xa032ead5371c8a812189502ed79338427efe648d,3 -0x373aa2c91a85cb964272ff3f3d25d45da289db5f,3 -0x942310e159854eb403c48484ff13e8de2c180f84,3 -0x25e224ef8a638bfed1e1fb6143fdc4966e5839b3,3 -0x635a81aab62e4ede854753fbaa4444914a800f3b,3 -0x75fe4792c8014b38f766ed0bf248de1d48cecefb,3 -0xe6a9d02ed5ba17a74440b8d4bc82d1bcd698dca3,3 -0x4f3c098e52a758343351c7818798974eb3ef9908,3 -0xfcb001eb6c1873db490e341b806d635a8a9e3d30,2 -0x301fe9c584c3714a5982b80a0a6dfd6565e99c8b,2 -0xe4d876257c2ad0857337234d56df5298c12d1132,2 -0x91e545f09a8519cc555672964b8fc38107409e65,2 -0xf42c40eeb491836060ad2476d2e8c4a89ef07708,2 -0xa41a4b84d74e085bd463386d55c3b6dde6aa2759,2 -0x0c34f96e0f394b54333a2821e0e5a6270e1b8216,2 -0xd699e6726ce0258e3895fd48163cde3610630924,2 -0x616ef7feead896cce14547adf7a6544b6119c831,2 -0x3bbcf2972299e6da5ef830af78791e3a7ed7278d,2 -0x547e239e6efce67e2d767f814a66fca3229d948b,2 -0xf93e0d1d0046dad6ef99fba524151a46f42a04e8,2 -0x8f2ecfbb4da2af3b03ebdc5370e39d29d56817c9,2 -0x26c9094534cbe89de334e4f52696fae1c26bf4ff,2 -0x85a04c8618b10bd602e83f80b1d84fe6b0753a5d,2 -0x6e61851aa4312e1bea08e63ef6037c55758fb34c,2 -0xd922ad1bee813b2938cd3408411ef13375473d2a,2 -0xbeac1b73d9341adaa44dc74ed35b7f9955bfdd17,2 -0xe55ae119c3e275779a602246d82816a864d064ee,2 -0x8be77f3dcc29e6a3efdbebba80d81257312525c4,2 -0x68cb53f84ad5f92be90bb21e44092b0ebd5197e2,2 -0x7b01429e5ade22c5b4002f0da287717e8ad05375,2 -0x146a8605bc2f953b31c0497090dbbfdfe103f65c,2 -0x1cf2663f97e55212d11f917812efca8a63326207,2 -0xa5f0c698ca7858b7cee31613ff2c133e6e968485,2 -0xf0cf918683cb6c9c2dbc48f77fd5377f401e476d,2 -0x6257ec425cea907fcb8881984f6c1e62ca7580c3,2 -0xbd3a71192e7bd7ec404c0700d974abde5d4e0d81,2 -0xd724dcd91c4810b8778ca92e9b9c0935a9d85a20,2 -0xf2344cc0e8e2ac5b46e7c747d391a57834324919,2 -0xc29240cde41c959d1ecd324f5cc796394d04ac60,2 -0x1a6e0306e3d8b32ce91f596293034b3a16e4a45d,2 -0xdbf01a7705451170e1191d354ee9eb84245f4861,2 -0x339c2ddaf2532d40fb5388572612930f5d41521c,2 -0x696c53f2c21769ed51a6b6514d25763422980551,2 -0x6eabb9bcdb1290ce289950b3f7b4566e74061e7f,2 -0x3de96a30a5fe8d792985760ffdafda31559d7b80,2 -0xc792b1a1cd45631b7b9d213cf108a16de34ee9c9,2 -0x18a9825beac68e8f727d9b1dd743f9f2364373ee,2 -0x92f158cbdb731d01ff6c02fa607cf10986915f67,2 -0xefffd31d7326dc97256e1de09a669ba30b9955f2,2 -0xb536dbabac7e3dd883a8900b24a29b65d48d33ee,2 -0xd13f8fa28d2e825f01cb61551fb75bb1cc164884,2 -0x86d33bbbf6cdbbfabaa7ee9c99322d0f3b70b663,2 -0x04df0901422833825af1a902298abae63c317cd3,2 -0x8b87a71f83b3eca9ee3024e799ce7a3fd660feb7,2 -0x6ad93b2fba17e89e00831cd34a1f39ae091def0c,2 -0xe9b00cabe946ba5fca845c5cc8e5e813383cb554,2 -0x181cf636653b6e48b7ac3af82e6775060dc2cfaa,2 -0xf92a4b358c0765398b74d81d61de4017fd2f200e,2 -0x2bbce58ef9488c69bdc89840a027753800b3634b,2 -0xafd8fe3e22f126dddfc0f5d4d545ee9893a76c1a,2 -0xd03bf4c3322e4d86182d774b8241657aadc4d666,2 -0x5707529167caef8cbffabe2c4b9a10999c6d7e7f,2 -0x262a5f7c66ef4a91a0329360ca3b514406e0b9e4,2 -0xfafd6bf4c7667d6e391647a74fa46b7c7e5fe568,2 -0x831b4e4e5a75d29185995755c8860238b51da9c9,2 -0x16de77d1743960e569aab13ffa05026ed9ba3001,2 -0xdaefb7fc0a3c598a7138ccf1bb31ce7ad7da16ca,2 -0xcad600c6e81a9c3f96049f01c22b0a0c9f099f3e,2 -0x92db74bdacb0b60be8fdc95ced85703bdde8432e,2 -0x5708fac57ce9dc3eb2b092acf115121e4589920e,2 -0x95551cf63f5794287ab2ab4ffdb3b07b3df31702,2 -0x8a067b3b349c330980390497c30129a05a304ce6,2 -0x94ba8f891a611e3782f1135b8ab5a0d0225d9643,2 -0x807b4ec34a45b7cc0358c2a0d06ea3eecd1622d4,2 -0xfe7a1f98eb6405c1664448335b7f6bb9374395e2,2 -0x2cb99cf52a8a50625c5ad45b2f7f464bb259f0bd,2 -0x7373087e3901da42a29aa5d585f9343385fc2908,2 -0x67c6cd886f6f29aa6b124698d84d3e472177ba29,2 -0xf7200f7a475b53446a10421dea95299fa9319a85,2 -0xf53c25752377755f06b71d0c6b9167f54508f6f6,2 -0x7ecba251b6303ce78b2fcdbd5ef48b0693aed21c,2 -0xba61b46b6907a7fda8fcd5a6e9978f154845a63d,2 -0x6341363eadd291e9213d1cf9d973452777ec549b,2 -0x7f38570bb43987919ee4196f66cabe2b43617f6f,2 -0x0c61d3d099c6a2fc6ad9f0effee4befa8a0d29df,2 -0x0db562ea15572fccf861ac08d877f251ed8ad9c8,2 -0x8f1f527d9699c1fc200cc82a855e7645fed25e92,2 -0x5481c6dccfea67ec4d62600673bc3d84ffe56928,2 -0x72b786ff9ef6d56a2b2dddcfff9bf78f353b145b,2 -0x131aa683891c534828ae98c4f743aba334769371,2 -0x6186290b28d511bff971631c916244a9fc539cfe,2 -0x5c85be54f90906c79b38cfa1ce52aa4b942af23a,2 -0xf2454b633fda877512cc36854f74c65b76d4c918,2 -0x25b3db3e68031bb6bd3115c211947412b5f335b5,2 -0x686907e4866f71a5202f813ff5a8d0a5ab745bf4,2 -0x742565c7ff96a89187062a72e15a3e7137b36ddf,2 -0x86a25f6e81e2f3d05d2a32d147820a9d1cd75d51,2 -0x5044087db0f38ee84536cf8ec852cb31cdb4a8d5,2 -0xfd74e27b577edb609d34bd4e7a6bcebe2e880d76,2 -0x97f3ef2a3512203faa6b92fc731ab90bdbb631fa,2 -0x086f0f5d2cec81f9fd69332a2aac8872188fdd8d,2 -0x9e9b772cfd6503234b4be31e391e905feef55767,2 -0x3520e09a511236f92e3c8a4a5053b06c8d901366,2 -0xf971a32a18377aac860398d010d76c489b3e4b4c,2 -0x9d21918e3eae3d1861c8ae731ebcc1b6b90d67af,2 -0x02bfa1de8edbcb6236921d04b71512bbfe1971a6,2 -0x738df6bfd711d04416daa15b10e309fdf5dd5945,2 -0xc46c4e9155fed6859023d92f98643fadc49b62c5,2 -0x43f0fe10d8dcaa78487b6b8bed83dd3b230a293c,2 -0xafb1317a99cd22175fb08e7473245e1d1ec716a6,2 -0xdf3851668cf6f2125cb60d6c8d33db18bcb44c69,2 -0xfd2bf13bf0e2567bfb244c76c4e07ca71d5e29f6,2 -0x89621b037cdaf3629ab9aa6079fc0bd77dab46fe,2 -0xbddae6e7a7b160e59307bc83067995f7e3082886,2 -0xd651e2c626ee210fc38676124d5007ac822ad749,2 -0xb39ae7399dc315dcc49590b1a41e7f857c036a9b,2 -0xfd186097b50370f400d0b428b9d5ff30b445a1ad,2 -0x7222e496d47b08fcbc686d85f2b1998a21c6d1ee,2 -0xe13548960a822ba56c66d5e773db69cc607c3537,2 -0x2493c86b62e8ff26208399144817ef2898c59460,2 -0xa883b60c5ead0efd604b41a7c0509c3c6b81739e,2 -0xb7e52f20ae971bb82170d2e05749e33170caed6a,2 -0x81afcf6dd79897cba488471ecec2f41bf3f7ca9b,2 -0xdd05cf59988c2c2086db9a5f133c80e436a1724a,2 -0x99644e820c8cb7b64f32f62492db26aaf9f354ec,2 -0x47549b52ea9aa8f5063bc76dc74aa044e4e94eb5,2 -0x879cce26c96ff905c28619eaaa776e537e9578ac,2 -0x3ee22efbb227f636c7a1a05e0c69a089e0aeb056,2 -0xfcfa8f54b3554c6cf1c76b5c6d98564d0a285289,2 -0xfabdbb824824abd1e66e2888770bc84369fdf0bb,2 -0x8f808ae932e3978737952b111bd1331e051796e1,2 -0x67a7a29d58819f0d623a45912bb0b5aa8e2fe586,2 -0xeae7b697af3b43cd1c5b4bb01ebd62f55c8d5a35,2 -0xb429dd9e3d2c49ae5484d9b4a048874129cfa279,2 -0xeaa5fb0853b939f7c90c3848b4978f23309588bc,2 -0x2c6b29fd8ce13b42bbc2986a871348acc6386179,2 -0x1697e1072d8d4d299468bf1d96c0375391fae8ff,2 -0xb4004de40a264bb7f1fc31f65d6603c0944ce35f,2 -0x3274d89c5c27c33bf44ff44c027a6f986e4e7bd8,2 -0x3a57b6f47f68fc3721f17fdc895b60b1cc1a2e40,2 -0x3f98cb7f657e28d78d03188244d9290377701ecd,2 -0x06102c7cac12825208e0e61a681caac0686a452b,2 -0xd5f7f73c97f8d22a3f6bf9f00476048191c18488,2 -0x9303cbb2e1ce6f2c9ac0fefdc3a75c1c821ab6d1,2 -0xacb80fdd2fd8a0c8a0d727337eb8e34e266735b6,2 -0x2d4a7c6be7eb43196ffc703132536981c5fd0d37,2 -0xfd6f10c0dfb000192ab9390130ccfebf8d1f392f,2 -0x097b7236882f6bf3769457a8ed88da1cd7803141,2 -0x81c1aa4bf93eca02292cb0dfa8d6d86d2fb3ba35,2 -0x1d7dd63ae3c12d2e46cf83cad38c63a0e1195708,2 -0x23d817fa0f3c9f77e45880dbe99eddfafb59142c,2 -0xf0a3b6daac28a0fce094f2cf264e040373d86f3f,2 -0xccd342c5a02805ee661318be1f2d062a68dc68a1,2 -0x2d90257e9740575dff36229ffcee085da0305e46,2 -0x565239f963d4efddd3083a2d5ef0f3e9b35fac5a,2 -0x8c0cc870b279cf3e3efb7c2ca53a3231dd995c8c,2 -0xb9647f9b0cff996c0ac1cf6ac576f117bfc9b919,2 -0x6c21bbdb5b0b632cf17a5db8489cc0514cf3d09f,2 -0x0c3a00e863b818dcbd3b0742a88c6489640d62a5,2 -0x8bac9ff69caddadc4cdabd2f70eda1189010db75,2 -0x6ffbc344188c05b840bdb1751de3e2c596813b1c,2 -0x4f54d1b054ee8377f771667c0d1734d9381e1330,2 -0x7a7a2aa98030d87ebb0c815aa963082151351310,2 -0x18dd509486858ac622ce217d9ed2ad89e4005f88,2 -0xbe6b5dbba3d59fa6a0c3d5bb787aa5d5ee4f535d,2 -0xa7bae728db6ce4f324957b7bb93fa7833f19d925,2 -0x61a4fc9028048e562b2a49d8dccf2378b644df03,2 -0xe76e678d133329621604159a1307aa73693374d4,2 -0xed744b64db443f86f05d41d3cdaf5075a735e792,2 -0x5cf27815411d0eac8eb726e7227fe09828a85780,2 -0x366c0ae1edbe7c648bb63fc343910b4e54ee5f87,2 -0xe60098c11d12ccf747ed4b6660d52f3697b0ad99,2 -0x9634cf61fbb9dc05de5e6763fa14a0894955e912,2 -0x723b47e5a6ce22a62fe229bba5c5a8493ff5ad34,2 -0x750aa261e9537ef279bf9c87ee7f7a1b59b7de62,2 -0x6d26e9c2f9de0dcdeaddaebec25fd1338678ace0,2 -0x68df552226be34bfc14bfc9d80aff4a83f79b27b,2 -0x2286826b403961bf1cbe1774097134e3cffc2f89,2 -0x4065149108a615930114bb511818fc0909aa9269,2 -0x8358305333cbb564148cf9fb44f3134f2208421a,2 -0x1a00f262f45eb2b503a39253a9273404f9de5bf7,2 -0xafd25c718e72af3679ead60d03236bf18ed1d6cc,2 -0x6e3aa85db95bba36276a37ed93b12b7ab0782afb,2 -0x3783119553a0461a2eccf6097da901e064bab2b8,2 -0x27874c3df025a028bbe5efe7fbabeb4a5d4882e3,2 -0x0a4eaf65c8cf5a6a0212be8d78e804d521f2c095,2 -0x8eaac8be90e2111351802ba55f7fa68907409e29,2 -0x27f8d0537b4d42c6ac65f095cb0e10fc3b1a6e7f,2 -0x68233a413a6b48b348f2ae3e646baaaa839ca245,2 -0x012e168acb9fdc90a4ed9fd6ca2834d9bf5b579e,2 -0x483dee970c067a6e333084b64b3b4aed3164d2ef,2 -0x9cc63ee25498a1a6d873aef6f269e6bc0fb350b1,2 -0x29b801cc7fc7d5cefa310b1d444d3827eb33dd84,2 -0x9dc46307fd4218493b8431590c83ba44defce430,2 -0xcb963bcb4a3f52748f83f6e4d6e7f1461e69fc63,2 -0xfec33a90737254dcf9aa33188a11f32797197f93,2 -0xad918529d0f55cde12bf80251881ed1cf6dad3d3,2 -0xb87eaaa894efaf7a7bf278f4eafed013b4c62e52,2 -0x917bcc9c8e32018ff8dce7f83f2d902e38d1a128,2 -0xc88908b233501ca848df3156fdb30af41ec29a8b,2 -0x724fb5a927a4e1abfac11a168e8c3ffd188fac61,2 -0x06fd7f49ca5bc7929a92b1c7b4639f049b413820,2 -0xb5050f2827c0cecb9888f48c0e5f141da44d3bca,2 -0xb4ccf8e7e7b1b074958d5bcf9379ad19789faf50,2 -0xf9eabed5cfb85a0e9caed2ccd12cfc6a7cfc9501,2 -0x4282150306e6beaced96131fd1f029c56b76d69e,2 -0xba4bf72fffa678aa2b26c74efd3b4e6cf349a75c,2 -0x489795dc70252cf420177f6ca9a3feb2195a34dd,2 -0x389774a45b973235e16bbd962a95832d85f96567,2 -0x94e3904e57766c581e1289751f927b0351dfb116,2 -0x569d2b9ccac28e754607b116ad74cae2d4b98815,2 -0x927286d1af5e05a840a7380434264b672457920a,2 -0x929e5bbac4ec61fbc8de6e85fc441e241b88f568,2 -0xc8b285ba550715c521b4ea3aed4adfd726e86204,2 -0xd869804d43447cf4ab3d74bfd386501352fe0d24,2 -0xa7aefe461c4bd1b44496fce632a18cec0ac04172,2 -0x22302d6e072ffe967e512ea7ea7171aab221da76,2 -0xf896fe281abdc45d6b8688c0724c6e9ec0db0e01,2 -0x48fe49b7c002e6cb19b79dc2bf4a0a24d5e24a40,2 -0x1d372a25931848ddcdf27f24d064e9d09e44343e,2 -0xeb960b689241e9ab7c22aa733f496f682b77e762,2 -0x7de89d7aaba1203a824c0cb9aad1dfa22293a363,2 -0x14bd613f47c2048cb2f78853ab49bd654caf2aba,2 -0x9080196182f77b89bb5b0eee3ddb48cfa716c4c3,2 -0xb45714bd67b88a178b19bd813e85b36eb0683e10,2 -0x348fb4d316b4fe7d7b172da77ab786b3d5be6f1a,2 -0xdb101be66c901928446cfcd2baf984fcb0be4900,2 -0x4b310044ef4c80a7c87e9dd85058f24e3d30acd6,2 -0x6486b759f768e97e590728549a6ba085c300618a,2 -0xbc0ae97629637b04b0ab802ddc0bb41c89557e17,2 -0xa8a153d0815362ba40c13793e5c7ccf805951fa9,2 -0x5a6e40b29bf20e4f60e7becb571af5ad5796a3c4,2 -0xc1558fdb5a30cbb27663163975bb71d4efc6b316,2 -0x08102f98afd4dfb40111d19da0a4280e10763855,2 -0x8b31bdb32907f277f0af33ddfe799b5ce6ac72a0,2 -0x3f286c1796fd88a59fae248da7db7afe7489ba78,2 -0x6ab65fd52a5e8f6a88424606c0882ef7d91421cd,2 -0xbf3f8279fb1e9718963b8657e7012da42dda6a7e,2 -0x4771d1cc38b445bfbc4e4011c99f0a712dc5843d,2 -0xdd3a36128a66856e1cd26950fdb39b25c9af9ef8,2 -0xcd4de97957dec8c2113e5dedabd3eb07de0b395a,2 -0x6a6eb1b1a1f3f3ad6a7119d14a95849f7feea3c9,2 -0x0fdd14ef0af54c4f03a6e6dce7bb333779e21922,2 -0xb89c2f6bb674bd6aace2a1e274d40e6dc4775b15,2 -0x4361d26d673202c15def5fa1f71927d551554df6,2 -0x996e2ab0e5736d1988205c1792fa3ee6defac6aa,2 -0xd59db7188f6d635896121dbbeacb0dac51f216ec,2 -0xf8440339dd3d486c1bc168ba31bba893082e5dd9,2 -0xfc840af78a496b52e378dfa94838402e1b7f71dd,2 -0xaf8c40143c2c136d6cb11592d90a5ec957744ff9,2 -0x461187c1575dfea8def01920bd32d696da7030eb,2 -0xff672b10b0cf498924938b6a32d9f7b08fa32c05,2 -0x7a55618cc62baca56861cdbab1cb3655e7d65bb3,2 -0x3127da4b13788785d9a7479620bfc83c2236fa47,2 -0x47b9279ecdcc10a9ea27c702a6a331c5302edf59,2 -0x6d9a6835d7562d0458c821eb7b1438a313b9ae13,2 -0xb05307dbe6ef56d01869f183a446565ce104985f,2 -0x0da5951eae5aa2f9d3f74341ede0ea590bedea68,2 -0x5bfb15bd66c42ef526724bc4691f5097f3eec102,2 -0x4139bdeb7e245679e89f44272ea1de0baebde6d5,2 -0xbf8c807cc67e7551ac79dff39493c9f5c61a283f,2 -0xb7eabaf5403f69ffe2039db246cc3d9a8a5de84c,2 -0xf0a68efb75687513af0399386a567d3d4464cd14,2 -0x846fc2e54474805bb8bf06a39830fbbb1811c17d,2 -0x70a30db1a191391459509f5fd6e0d53b6daf893f,2 -0xfad5447dc0b7a85735963924bace9b6510baa55d,2 -0x021cd6e21865c919164d76e310b1352252b8c6ad,2 -0x6a8123a6513227fe3f05f0f3816b1ece5cefa8f3,2 -0xc054b96cac998eab617ee4e17e28355179bab811,2 -0x64f1acc17c971a78a98546df0d29bc7c6d840b8b,2 -0x668aed09eab920ab876a91a95db8f477657a5d33,2 -0x4716a6058e7916be509f6d93a8986867e6ac8fde,2 -0x37e00155230f649c1662a982965083af4047d9d2,2 -0x4d25bfe7a7ed7a8e570b11623eea0f2adb354124,2 -0x0f86ecf111669aeca3e10f4098b35817605e6cb2,2 -0x87348c002c6a433d4cb180404e68f82766b9084f,2 -0x5d2fb5e9efef2f77f7a673715ae9509f5c30b73b,2 -0xd8666fbda12841a08798cc860cae557169d897ee,2 -0xe9b05bc1fa8684ee3e01460aac2e64c678b9da5d,2 -0xb1e6a082271e5be9df427f8b924951d31929de62,2 -0x015adcfd6d37969f553330786dc968c43a70a29b,2 -0xcefa22191e49d3d501c57c9a831d01a09f7c1112,2 -0xc4441d8fa5559d97aa7749ed5f3f6245e7ab94cd,2 -0x8125f508b07579ebcc35c8d997fb9563157a3772,2 -0xfe7b9925abb094835a15fd864a986bddc5129811,2 -0xad7fb85f8ec55c3a38a1027e3b61f94fe2dce8cf,2 -0x1beb56d07ef658380a890e8da326ca1117ccf27d,2 -0x36bba2955490f46396e87f6db052e1106deaaca1,2 -0x37d0fc5a1d955db132bec6c588d215fc9152bad4,2 -0xa520dd26743ff11ac9aeefabdb81c158d3e97618,2 -0xfc686b85f1638788c43f6f31fd8b0a34fa9fd511,2 -0x9ef9c73d7d8239b93fe48b35a6974292c2ff1e1c,2 -0xbe31331d980efacf98212637b57ffbffca2e9571,2 -0x55865b476ce832908482c26729e4f2be09d4dae3,2 -0xb72ef08e7dfc4a6d4227ae60d3a5bed1ffbe2cbf,2 -0x9e15718989702149b9c39a422ee6dbd9c9b0b21c,2 -0x32be1bbcb3661902229c4e6977cd336085342b55,2 -0x5683528851ebe95161059182342fa78e9789adf4,2 -0x382b4f09440210c78931739c0929f6166fe349ef,2 -0xbbb76f409df39f490e55622e7be36cbc5c56d632,2 -0x9d4999a09c7b36d17dc22fb20ead236e36f87067,2 -0xae32e8359e84f3c24096c07378c7253e4c4e16bc,2 -0x66e9120e6d1e9a67582f22f42dca2775efa41b46,2 -0x15f2495c6164caf00aaafb2ff970f3de9ba556f3,2 -0x604694757fcd0607ecf60ab1f8d6462e7a03f8b3,2 -0x014cce037e5b5eea4b6daaa16a03b9b35a8375c0,2 -0x2504407012559909eb9ea18273d2617d0c658243,2 -0x46de54cce2f0f1a903b9c1933a834a167ef9407b,2 -0x4559b3015d4282877643d4f9ecebbb28ea05ceb5,2 -0x0190ae54b02119a782d4203bcf15ad06e9ebd7b3,2 -0x4ec2202700515d0b52f3f0feb5f56929d2cac559,2 -0xda6bcb743ff93e2f08162d411804d305d43f37a7,2 -0xc199d54be70c9837449b8ded44b6c960dde9dfe3,2 -0x419393f164c9c90a3ac2d67a50565df57976ab95,2 -0xc938bcf88dc5b02202814ad9acc78e9660194732,2 -0x6fddc55577c2fb9b6775dd53e0721c121920ac20,2 -0x5516d5df39ebf0277e8e9b5596c3ff5eec213a9b,2 -0xb7b2c4c044ebfaf6accc4d3e7d57cedbffb6f07d,2 -0xf31c4b8315d5f6d80465ca9805fc728a6d1f16a0,2 -0x4d12220cde781c79fde6c532cae280f183aab442,2 -0x41cf646302bd7277cc21d2e117b147fc9a6d6b95,2 -0xffa628ead5a8fa81531d50a6b571287f588c9da1,2 -0xd9f30ff6c1568fde979ee426a98ee1c178bcfe0b,2 -0x5f72067a8353b3e0d1aa976436572d088afe93d9,2 -0x04686dfb7ac42de80b9386acbd1fe20c551e239d,2 -0xaa15900b61c80aebaefcc358bc2d182a9aff4ae1,2 -0xd876c5766c4cb241a981a6fea6452c710ff61b26,2 -0xb4cf0f5f2ffed445ca804898654366316d0a779a,2 -0x09147dd84249eb1d30346b5dfccbee5bba26c310,2 -0x149b7dfd4b52a35c5cc3f75368fd4bd300042872,2 -0xdbf4391fd70d6111dbf55d5b613d0c2784ab6199,2 -0x0861c706a23430ba659d11d59f700e0ce439da08,2 -0x80c6336599c943d244832a71016c35607b4f5bae,2 -0x2291c10c637dfdb789f48f2b89656bf2abe70b1c,2 -0x943c210da7de576cf26917546c58eb1bce046b72,2 -0xd7728c6fc53b926b1fb0423a1d86e164bc767d05,2 -0x8a69b79bc7e73b2ef9b9f11ad3e17bd2891a34ae,2 -0xf8ce9f1bd06c7559ff45336d55b1c9de46ce019d,2 -0xf7d993147f69f3812f5f1ef50067dd7ebde93e8b,2 -0xb196cdcc83d9e9ed40de8801b8bdbf91c0d92084,2 -0xceb8de9fc753f7bd034a27f87284b17cf1afffae,2 -0xdbc437b6c4ede1773b60311dbe486c911cabbfea,2 -0xe09f520e17131a91bab4024ff2b79dccf45e1afb,2 -0x6c731917da1bdeba3d031d4ea30029f32cee9d83,2 -0x837b4a0a15487c3c285249183b8ab1c6d33e93fa,2 -0xd3029225ecf009b196b8358d9e897344c0f610c0,2 -0x611e4072f91560a80e317cfc8c2458b2b05529b9,2 -0xe72c019d650311842a2885851f47c45a2c65c784,2 -0x3a778cd12f244273b3e27d2e76be71fc33157deb,2 -0xba80ba75900b9cb79d57e0bb0c760e6363b62483,2 -0x911c3a6a92b0c850b6c3e18ba6057feeb51d6d28,2 -0x92b3b6eee8cf2b2399e0ca6f746b8a116aa4326d,2 -0x28ac01ebf289292783cfaad9bbf2c7fe2666dfbd,2 -0xc7f8e17a84a8b18fdbe539c62a02a2709a044c65,2 -0x5cfb4c64da10334edd2e126ba89a7e6ee8bab5b2,2 -0x0acdb31cb2220ebcb20cda84f09477e6b52fe424,2 -0x2e86e07360750e4980c1eadff54ed0e68f298af8,2 -0xdd046ca033c773850073c36cce14d0acab9842f7,2 -0x5ec7cf3e1ec61488777510e21a1a9c2598d30aaf,2 -0x4eeb3f1d0d260fe58b8566da1dd0250318049e65,2 -0xfa71c65ea53ea795075d4b1464831dbffd4579d1,2 -0xfd02d8be04b31087cc79d69e47e50109dbb3a5ee,2 -0x8dbb471b492ecceb0a2c626d2b0456ad301a5753,2 -0x12d208f5c127ae8bd7e965e53456425ab0e316e6,2 -0x2a1d398d2fd0315963d981b9dd319ae49b729f2f,2 -0x7a4b037246a597cbd4d5492ac2e7fe12c135546f,2 -0x45c0cd7d47cceba7d1104e53c89627ea379ee74a,2 -0xda0e04a636faab958bf5712fc15752f6da451346,2 -0x7b8b0d269dfa020e3c06ac87ffdd392e6bbd68b1,2 -0x2d497f27e487ed2360f93185790aa1af6f3708bf,2 -0xf0df9da910f36986ab9141cd2b03233d068c1c04,2 -0xaa3dfca67c7f714c2a5e11ca02e52a64b22c2a37,2 -0x113ee41d97416d0afb2915e9c4ed6d4a4e9c299b,2 -0x58783060f7a091e8f6ae043826209416178eda83,2 -0x40f49761cf76a76cbccb4e49ab44956a7495455a,2 -0x5efa253bfa8c626000393c6c654611267261d942,2 -0x821ed6173de7640ff9ff0770bdd020c29eb771a6,2 -0x258bcab7abc959d033e588828916ac45c0adda86,2 -0xa43bb09bea32dfc147ad9aa4ee65301a6381217f,2 -0xfeebb7251827a89143049d400573f71f54676adf,2 -0x7aa37e107a71b077cdb586af1e2fb38be3911aca,2 -0x6567d838308f11efdb1eff28e63b9bee4d68e2ba,2 -0x7a355c8dc16005439e7a59ad9d0086640cc5ec48,2 -0xec13437728948df4b5fa3a3bff31462e1b33bb9f,2 -0x914bfd316354f1e918feffa8776339b7671246e8,2 -0x6c58db2a455b239b27645dbe4ac9629424b6e899,2 -0xf3fa30c7224ffea96a3d7d379dfe35d996abf810,2 -0x7847b1c8ad03a188036dea54ce7847fb418e9217,2 -0x9bd4b86122a42650878af3731abc8aa901155f62,2 -0xca1bcc5afdcc45e87b1b73adcca5863f01c46629,2 -0xdea40be773ca1c31a51fe0c363ff56801f85850c,2 -0x8d0f3988d864757bb429b08df92b93c185bcc2ea,2 -0x8445165437cb63affb2f143378d0ec63e0249582,2 -0xa12ba7d500ea7def2bfd61bcdfcd72a9392eb8ef,2 -0x44f31f36f728c01cf9d922f9b887da7651a256e7,2 -0xb2c88ec36085a95b820724fd8a25a0544c1b0907,2 -0x2512b5ac683a3325c5511b25a626cef656d49da6,2 -0xf6168297046ca6fa514834c30168e63a47256af4,2 -0xf5bda2e5cdc4f26b2e0cd31037213d4f2e8fce3c,2 -0xd67a478a85eaf671176c8480943c21ebbeddb43a,2 -0x96aeffb076b9ebbcddf454bb7ba015deff092c9b,2 -0xadd96f8f8eaf95b88aab2f502a01a054881451a4,2 -0x9e4c314891879376d884fef8e45465990a812f45,2 -0xcdae1bab521e6ad0756f41166e1ac68d4b5ba55a,2 -0x4fcd164b7316fc3cb6d89c1e941591b0cf06c97a,2 -0x7e89a97af7e2cef0b7e373a1fdcd7c2a8508f35a,2 -0xaa923062030d4533ecd2b90cc99d7e616759f552,2 -0x7ed7ab81ccefbcadf4cadd49827f84a5872311db,2 -0xc92723518cc91cc03f0851f8d7113e29e22bb117,2 -0xb7358fa1e30ff898a8390d93dd8484a39072e71c,2 -0xf60892cc8acae2a690c962ce0f60be4d7c310865,2 -0xcc794234b1eef8ef72e8fa53bc70a6386a60cbc8,2 -0xafc5144df729069130e1eb0cd76c45420a42637f,2 -0x21826fb68c04e67744c2c2dd0aa61acdaec2f297,2 -0x5cc60711c09c3f758b8be3f5fd6fa50088afe8fa,2 -0x9d65b14eb91f0f9e9bc9bb75faf9fd019c50d1ba,2 -0xb8c3e2e2a3465b74b7a57f8921a1c3f6e69302e2,2 -0xc302ee7fa5275eb35f42606e8edef3b0690de155,2 -0x0db5e7924d87d2ec27876882e7af911a58050dd1,2 -0x4b7e2ce8152cb16a1a87615d0f4854399fe7f7e8,2 -0x293f41251cb9930e183e098364eb9f2c51c0ab66,2 -0xc250af2aebc34c431f3846a872088e59b5906eef,2 -0x1522616ff5974731c2b9f1f4a13131c97b87fa21,2 -0xd2d06c5b3f8aad0375a6e24619c1535f3ce1c364,2 -0x9935d24659c3e89f83a7bb551c95396e42d96198,2 -0x14640922d1dd0622576ac790db8e20d671a2709b,2 -0x0900693ed5f542b3d67b6c98e3dc664cd23721a6,2 -0x5e9f96cec38b684bee7634244a4679ca77df4fae,2 -0x4136e3aa19aadd36f5f70b86658c72c3ea50eeca,2 -0x983b6a2fdf50aadb66c29b159040e81e6ba7a84b,2 -0xbe7e9c5eba34b5db7e606233fd2d9d6a1fb25a2e,2 -0x225b996977fd72e491c2df5679076f0aaca9f161,2 -0x994ece872abb226cdc997b3953df82dc6252f89b,2 -0x343c80183e14183024d3a2c822612b78c94ed2d9,2 -0x8ad84464dc4b5b07da8997fdbef2e9cba6ec19f0,2 -0xda4fa6fd841e9f3cd46218f0410ae0159ac31259,2 -0x30930d527fae5397fe7514f93e830bea3215f031,2 -0xcc50d925486bd1a9e82a36afb22efa17aba2ca41,2 -0x629b324685d689235309e9ca87ad0f6406a4a497,2 -0x4af60b6f389313d27f8ffff2b361b3dac2a11cd1,2 -0xe1df6813a38f90ebc3aa0aa6acf24ba2e12d99ce,2 -0x417983a86eeda5d14b4f3610f928a0c60e9f0783,2 -0x003da9cc2c7489c7b8cbe6aa0e3ee62bcf0172a1,2 -0x3f910d480f37c761dceb3eb6b194d18180cc587a,2 -0xb98e1aa75d00da83138f7127210935deefdabbac,2 -0x4e6532ba8773e6d602de8dc1ef2df7cb1b97bd96,2 -0x9be72120c584dbca17a0197108d842d50a7ed7d4,2 -0xcccc8dbc16eb7dc1e5d81e39235117ffcb6d9de8,2 -0xeeed9684c5b3f0b6d65bb756b5b92ad70374b263,2 -0xee4184ea21ec73285fa93d7d70e41b708f1a515a,2 -0x95899c231613fa8c99554e05ea95d0be90a8d655,2 -0x0688d147ef9ab769a08bbaf7bbd6a1a127dc7c88,2 -0xa581da998aed72f9f1e48567ce848cb846f8bc49,2 -0xdfe8aabbc18695e24e5eb143f5068974d74d81eb,2 -0xf53fe8bc89d71e76c4a543f7b0c6a4d1ac02ca3e,2 -0xecbe727398d488553e18ccadc1c6997506c5f1f1,2 -0x4a6aef725ae41b23d0d520537b852a037a4d123a,2 -0x9e910c0d8eb905eaee0317e9d6b7004862fd31b5,2 -0xa9b1e21dbd3dd4bb129a7ae4421dd9b099e4231d,2 -0x53d1e347324edeffd41ae1e76fdc89af8750eb55,2 -0x36c0ba3a6e30d5637d90f7c778d3fec2aecc3990,2 -0xa07ba84b31661c105cb6d8df5086ce3ddbffe9e8,2 -0xdc00556e829e1f4bd2b95286cb001caa7b8afa76,2 -0xa89728188f1b9336ab1739d9ab44ccad861030f8,2 -0x11a04750983e4a0a6c5df5c0fa349890a08f9001,2 -0x5d527e462abb52edff579b88e0781f1280514f95,2 -0xe855156d4ddd8dcbd0f5af9d0537320b1e8f4ba2,2 -0xa2d52092447ca7c84505c7aa6fa54c233b0313f2,2 -0xdb1edb2b27294c7914f53af1b5f766aa4f918573,2 -0x7bc0a49295042454c43d72393563c64f7b32e287,2 -0xa6f8c0bceb037c2368f777cd7cd7096bdcc4ca00,2 -0x5368f2d2bd5e37f317c53baf1a7996b5e432f34c,2 -0xdaaaa23309b0e73e9664fab533f9ec8df98cec07,2 -0x1d012c299bb15623e213eb5a6ce54e318ee90137,2 -0x50cde770461ef53b62e083313d64b5b274b4bb78,2 -0xa4a5206a3b9c0c80647bc959a86899007edc93ba,2 -0x5480cc10ca71ea89e35a0722c59dea6e245418a2,2 -0x6cb38d1d0f64427321c88742b3d3b94a7500d8c1,2 -0x45b467742fab7029fa3839e14eef13592db94ddb,2 -0xeabd4f4f10524944dd8a410681dd970cf7ae6e86,2 -0x9efed1442bbd41222eb7db4e072943e0a6e86cbb,2 -0xadde5bd3adaa10e6b35d21b3209edfdd58d34e8a,2 -0x21c64ce21baf554d01ecca831a9e19799a547920,2 -0xbd62e88d42b47ead006d3adde3f0d39a6358cfc6,2 -0xbfb4377dc4ad72f7f2505400666bc657e438cd6f,2 -0x6fd5e120dc8af1dcb2ecb73de4ed408a4ed46569,2 -0xae152e45395756cdb2496f004c019eb1ea58e6ef,2 -0x4f08620c53f2b92fca61c78ee502ad50ccecb10d,2 -0x24828b98f6a4e93f61eb8c1e39ff8f221994af21,2 -0xb42f5ef3b558dc451dc1f279539ecdde88927da1,2 -0x0e08627f146169f12d26ae13705acc9239fb7968,2 -0x5e4e434c2c1eceed7f4718899b44f054ec50f351,2 -0x5270c3c0fe2b700d5530cecfe4300d30567dd6e0,2 -0x5c07cbbd3f74925a362acab166e9b1c59a5235c3,2 -0x3d962e5542315d258c988ae29981b19e92398ee9,2 -0x747b43d551e26aaadc41c6c75dbf716e93157f4a,2 -0xb74dda5fc99d1b3b9c930df2cbc3425d797e2a29,2 -0xf78da1174e9b46981521aa34d97bbb65a49d9fce,2 -0xbafe6cfc0b26f5260a162f4d938b4ded1f89b021,2 -0xcb136543fd6ce5bb38e0aec4ca000d440802befa,2 -0xe82ada0be4719ee528f96689ba590e1a10f753da,2 -0x7e57319728b5f5a6ccaa1e16b9e75e284fcf766a,2 -0x1e3219c1a0dec2c4958ddacd24a23f5c78cf54fb,2 -0x7c34c62eaf0a8807e921d8942cf470a844e66c9f,2 -0x86bc8c47a026c64c9861158067dda842edac8490,2 -0xc3f0496b59f720a00c0a31b5114ac0698fdf0896,2 -0xf2d4fafe9a5391bccdedd82fc5c9369ccfbf43bb,2 -0xd3498e9c4bcc64f4663c84c580522f5aff3faaf9,2 -0xefa3de74d34be4bcf71b9a8e60de92b6a6d5db72,2 -0xb8462ffabf8034a7c2f155e1d95e0621bd3471f3,2 -0x98f8858bdd9b76bd36ed0164d557ce4a99aa31e9,2 -0x4e6fb88e48711d9f692942304d48a3afc843e99a,2 -0x50b83df900b2dc30ddc24631494cf43202d387a3,2 -0x304cb3f0fe62d076089ef36e566b1c12272ed3ab,2 -0x8db88cb0658d072a5044d885c2fc8391b0d10a5c,2 -0x6320d4dd46d2c49c18d8495152f57b1fe279cd4e,2 -0x0c0883329c4af294e12e2a210064242bb13a6d1e,2 -0x17bb363983fa9aceb511dd544b1f1d7b4bd51df1,2 -0x7f1c6d0017915f2dc140c96ffef2eee1d9dcead4,2 -0xf4eb70d74dd59c0a757558596b93d1c365e8e4db,2 -0xfc9a06fe473ad518b7c8173e71a76d377d8a9afc,2 -0x832fa91f19c63210b959dd72f5573fa168280b73,2 -0xd0161fddf79f2028c3c027bd7892ad1905f53ceb,2 -0x76e12c0d29e9788a1400de6fd8c4e1288b233516,2 -0xef1f2a053d897c08fd67c0f2e0fb9a1bc03799e4,2 -0x507d90a9cb68ca144b1f88fce44ce8af678ac9e4,2 -0x96e57150058c769a6e6c5176a9433e30f3326cd9,2 -0x917524e9454c64b082285019bc2a7079aacb8696,2 -0xad4112208c23628ad11f04babb6291ad61ee448f,2 -0xa3fdacf8869917d41573085a6320511a262b954d,2 -0x78be728383150acb5849ca67211bf73f97b0bb90,2 -0x01d900d21d1f8424108854ac4f9e04adbf99b584,2 -0x5ae2b03cf9516cfd6ad09bbb6dfe44abae71534a,2 -0x848c72660955bd9c360298bc3f0932f0a9d409a4,2 -0xddeb0b8aa6af75df17f0fb2cf8214f71191ca42f,2 -0xc7d2c3beeb16d3b93377bba85037861062c99cbb,2 -0xce54b77cef1f53e968406d1d87b145a840f3ccfc,2 -0x2a89111ab254c723072d73b3fbb9572d3a504c49,2 -0x8fcaa8f88a9d4c83a473279427dc1d78d848ec1a,2 -0xf53231eec1134809b5f495da426ff7d8980d0f0c,2 -0x55013e79dc8fb573588b22447633c049e13ff1f3,2 -0x994da5d15543a6c26ab0a3f2d55abed12710f1b6,2 -0x8ba318cc328519fafce33cf190093712600d683e,2 -0xe008437ba0adb9aedf4d6d929f0a26a2ef1bdca0,2 -0x533036f1ef1083cccbc9fa83fa96833ecd1fefe6,2 -0xcee1837fd75c099fc0d0e0939a4c376f8856fd8e,2 -0xc1ec2015f669f0fc8a62ba4646095f8a56988a96,2 -0x37108b4c13d8ed2132516bcfc922a82d0812ce88,2 -0x894c0ae2ae192e2d315245ec60498e73fc671eeb,2 -0xe348920892fbb7eed8941fda21dda420b4b81635,2 -0xd3a2801a1dc59fba7f6369bf1f2c528a547bc95e,2 -0x0fe4ee0b53d6e952fbe01cdc046461c6a9482f72,2 -0x808124442e720a6219508d7922845c5bb4efd7d1,2 -0x7e85e26dda3ce6188859bb40cd26e0848c147325,2 -0x9d20ad78024835955a47d1e3b1fc1341de698278,2 -0x68ba022d99d1abbddf53274ba07975e739a1e3ce,2 -0x71ce6360afa8387c8eda2502afebae52c91bdd72,2 -0x1e27fe22958b3c73c1a6070639390b9c5116b40e,2 -0xe342a0e2b258c0889637d0b695215ee3e1bd95ce,2 -0xe96f111a575b914c055bd331fab5ede7f8c38d14,2 -0x5bb7418590c9d509ff8498f531bd2c6abdaf769b,2 -0x1b4c4bf1278f3551c5dbf9609406af133768eb38,2 -0x4b9ce56ba10351ca2395e163320b9863da8a1423,2 -0x7cbed430cb3152e4fd0842bd50747559ec02ead5,2 -0x84dbb7db96cd5d4635ec6269682498efa78551ee,2 -0xd8871a83bb754e5f0d2605df3ec8689330d986e5,2 -0xe8bbb74f5a0734819e80f5a560250fef20b3b48a,2 -0x1a6a9bbca9884a63677a9e852a1d7b784e5c7b0d,2 -0x4524f6c1b91f2aa5505cead5e5755a0f9b100546,2 -0x4f86e2019bfbe4c8bd27555a7264a8518e7b6ee1,2 -0x585ec8558910fffac7dcc0788c6d7d5be05c283b,2 -0x5493d6a3fae2a49df13766d81bf2fac652a4d926,2 -0x4cecd435520a996024eeb7fb77b38c088308345a,2 -0xadcd32e2dca8eb101bd1496c34bff46fc76e8b58,2 -0xaa21411d691836f43370bf7007f4374362abcc04,2 -0xa03dd05aab8adb0432462b4233bd63d64786296f,2 -0x1e70f83c7fa47a92383000ba7408bfcc559d1adc,2 -0xa1b343a634932ef06d0fdc2af964c5409258d81d,2 -0x1d80afe6895366814dc084a8e9e18c1e108f3742,2 -0xa6f8d2871f7dc14da5238055c08c25e845c36286,2 -0x55f82ab0db89fa58259fd08cf53ab49a513d94b9,2 -0xcb83cfde0788a5b9df69ed8b17dfd3d68d24cbaa,2 -0x19b226d525070228efc6be9950c67e72ab838c11,2 -0xc550d36b0548b30ec35fe23fa6ba2500570d7637,2 -0x2d194cfa49b5f36042748489a48b8678aa1c4048,2 -0xb24b9e6569ad087754c883488b4c2002b97f77a6,2 -0x72d866c219a511adcf82aa1dfbf16b0f964d6292,2 -0xbb6c2b58b4e1211fad58a793e881e2885a138a95,2 -0x97d9225418a7e8fafbcaa017573b0476b939bafe,2 -0xb67bf0befda1770a17540d6c84f2227f812f0f2e,2 -0x413168c443432574b5d687b8ccc8d3de43b9ebf9,2 -0xb437394226e581c0d9ace33544736ddfd8ec2f69,2 -0xba405659489325db06d013cd94651779c2c4e485,2 -0x18b9bfa2d8b24ec2ca1a20d42395b2ca1190bcb0,2 -0x8f6ad87119ae729dededa42f32c842f3c0103ec1,2 -0xf6aa477268682e9d40028c8560bc90306d2b0813,2 -0x448d4b99d4af48949d99bf8a595bde9a32ca163d,2 -0xb8903d33924b10b9cda7fd9505e395f1ae0b8532,2 -0x5d2dac8eac332ac9f3a1d1e5ca5ee7a051f0ed7a,2 -0x82b24347244059a55433e0c288a3ef6a780bebfd,2 -0xe47b7b18dd9533096cd1bbbf42997c04ffa52697,2 -0xe90fc378d3975653f65b774165ad6ef506364ff5,2 -0x88a24583d2eb401b54a01e04e1dd16f8f53c9339,2 -0x242d18af2f91ddcc05d8314e9aae9969f060ecd2,2 -0x525752c1b52b7f8bbce7b176cd217c9936003fe2,2 -0x3087f6ff67ee1a3be754eb056df82bba13f5af24,2 -0x4203037adc7674df36fb696b28bd45901d0f5b42,2 -0x06d3040dc2d8a11ca0851d9f96b7125bbc396a15,2 -0x2d989f93cd9f24a5ee5e900715edf7b987ecb2f2,2 -0x4be1e130bdf038fef91f675d80c524c0487326eb,2 -0x760ee646957cc314c2a9cde07ec0b12a3ab435a4,2 -0xdc594c0019fc2b246d08357016eb498a77b5dd49,2 -0xca321bedf163e282cd0ffe3408dd2aec6da55b76,2 -0x6019d05446a00e0909191e0c9fdca0208e1e08c1,2 -0x62333e082f959b304ee98d6ae78ac731fe3b9052,2 -0x29e96ea4a59749d0275218333708b0c3e6a6267e,2 -0x97c1beba611dd6f50413c471d2c663bbd7438b16,2 -0xb69b4b9ccf780c474fcbcc5e0091cd6df8342e9a,2 -0x3a4079e5ca74fd5fb79cc0b17b110d246c5bcc5d,2 -0xc4cca7049fba013313f57e0139b954913d541ad2,2 -0xc949f4b78cdb6aadb354969b84eea26ab97bfa8c,2 -0x342156f37f033cf3315e465e70ad6384760ac78c,2 -0x7676ec0a10c26a09cd1f2203729bcc2ad11bfa7a,2 -0x2b6cf45b5b3abbe1ba49b7f5fcf649bf475333ef,2 -0xc86b12d850fdbbf3260a7baae862f85857aadbba,2 -0xea225cc9a8e199ae1fb89b690b2dd662cc5d7b56,2 -0x9611837387070852f57f3fd812a826e44b6b7422,2 -0xcfbd0f4a720e4d4307dd9ecb43ba06a08d6ab84d,2 -0x9bdcdbf5c3460d947b64490802b93e49d917d130,2 -0xda001710cdc4c57dd7a1b3c7f7a1ed237c929887,2 -0x1fe42014dbd8a64d0bb86e6fbcdaf8e30c4e1c34,2 -0xb6836ceab7ce98de4fe7931bc6db890d2ae63c3f,2 -0x1e340365db08719c42ecd018a6ef01bd63c6f17d,2 -0xb6461e88ec7fa46ec7e5bf7bc14aef1b0403a710,2 -0xc936c28629fbfd9b67f4cd588f77fa853b6669b0,2 -0xe87d06c3d496092c3ba9bfcf194a664ba8ab44e5,2 -0x049aedd49363c26da423e8c09efaee0545c2fbc5,2 -0x722d0a825e64cf554f0526dcc8be15feb1ebb01a,2 -0x0a8d5241593a18b8aacf2b85fb5088d4ef6b6fcf,2 -0x61b4a14bfc69f10c697680d596b7462e0670ba66,2 -0xa393334b4b69c6879123a2f08d687813afbb17b2,2 -0x8e72ae54ec2c556070c1d395a0be8397a1e66474,2 -0xdb7eb46079e05b9ef58f89d64bb1a072d311e3c7,2 -0x95e9cf7a017ba2f9625e07df02d5ac8ac54593eb,2 -0xf90b28816c12fc7c11805a7219e4a3bd70c11bfc,2 -0x7b39d26c15b0692f89f3ea7109e0c8a3ffd04fd9,2 -0x8cf087faa7e196dbffdb7c9ed55b8c2914b5e9fd,2 -0x243855a8b3a396fde6d0ab645bf398e70d109d42,2 -0xaf14020d77e37634dc32d42006fb88c891ec63cc,2 -0xf46b076ff8ac8ae163fcd6d9a6e076903845cd09,2 -0xaa9ea90f234d72ca1f6b0e7cce72355a1d003b9a,2 -0x03b8d4bbdbb2b1e469ba0d453703d57435b21b30,2 -0x6facdd42b6daa13f359c84b3d122c39da39577dc,2 -0xbb4b12ca6f6a3b94952c7b1433ad7f97a78a08ad,2 -0x5229ac6d55fe378e7d02fd7ce737cb079cd12440,2 -0x34e6db0593c49438b286d45f572a599afec7fdde,2 -0x50830fde314b41309e6af545be3a926d62da4ffa,2 -0x43c84df9f78093fe457810a9f63deceadc8fe88f,2 -0xb3f0dfb6816bee8b82cd06d1f7de0f6889f58c72,2 -0x961159923ca42c0201fb9a82dedf788ff10dc00b,2 -0x01a46e35d6d486507d9adaca2e6558c084996b07,2 -0x95d2f45f0808fe774935a77aca4cc3924907510b,2 -0xedaf375b4f63f0abbcc177734ce2e3e1cfa2670c,2 -0xaa47b97f520ea1b5fb5660e359fd97ff0726aa97,2 -0x8dbec4ba4a287255a15f3ccd41fbd0b8eb09d988,2 -0x2b20c6bbd9fe0fd862b67584320fb805aada799b,2 -0x19bc763eb1402fe570f624fc078cf5505925b8e2,2 -0x6c482ca2b55ecfe9cb168a9a7c549c5f86f43e3c,2 -0xccd7479db8d56583292cccd6df48b09f82007e61,2 -0x40b7bc49df0e779b6f9c6677be39492dba060977,2 -0xe96465a66d6b68ee1a40bf38659be4cfcfe5768a,2 -0x6e47a1f9b3163253d82be3876eedfae09630bc77,2 -0x6eeddc95c88272203cb33d182084ffa26f48db35,2 -0xa40665365d5df9dc86b60a29d1ee462c3ec6f1e9,2 -0x2adfe10089642612543a0b6374ed0ac005a4850e,2 -0x477014e112f5402a53491d1aab0962dca42d47c3,2 -0x0c27368996abb3d27751bfd6fa6e114541fac8a4,2 -0x86b39b85d4fea3788373e7b4b407eb2c2375f688,2 -0x427c629591dd63fe80bd7e4ba83f5fa805542c1a,2 -0xbf7f8d3711285c9d6ee3238bc9b169a0ba2bc9ed,2 -0x17adc8b32c8131fff707f863048cf27962aaf163,2 -0x2cf41f874f4b60d8792ae16e5e343ede2f574353,2 -0x60c1c80bc74637fde43823d75455b580be9c6aab,2 -0x3b06d475525002c67eecf44a3d47a75b774426a1,2 -0x1701cb5164b7a31a89f2e31734614be4361187bb,2 -0xf00492c2511e7592f2ed8c0ac9c66ac4cfcda62e,2 -0xb8cd6aa5997560ad1077b1cd2e134b4bec30f3d1,2 -0x79a92b9bce07f7cb7460ee08b62d8f9e1c87f9bf,2 -0x513a6279fbaa176ce9cfb634f6fb956ca95e3e4a,2 -0x9d619cef2861bf3edf7a1f7c326fc2650da1cad1,2 -0x7a17c21804464ceb7b54377755c3aef894ec5f25,2 -0x71ca32947f8a4a3cc1987ad99f0571278763cfe5,2 -0xa8832711b7d74e3821dd0be4478e0ca414276c62,2 -0xc365b481cd9c3a980ee92b3ff4c754150a34f2ae,2 -0xf664d820b53d3e429e115792fe71ba2834a7473c,2 -0xf4935ac5e80d4ca2ea81bf949a6496d915ebf8bd,2 -0xbfd8e3f6283fa462ae6dac5deced06eff86f944e,2 -0xc7056eebfb4b4726e5c8b2992b6c1dc8dd427a66,2 -0xdde2c197f8b8526b0e0e5b008fd52442d4d253e4,2 -0xfb46e73420c186a96043d199e3a68e259d902d2f,2 -0xdd8bb9be226dd79c3bb14be9df5642f39cd081db,2 -0x4ec3cae2bd6cb2579b34048376b4ba67efa511c0,2 -0x720b0759a3b01cbc0601123eaa21949c6dec6871,2 -0x108a25a78fd824b8d6ab3f24f8357b4f0f805bce,2 -0x36400d8230b607b389b905f2bfbe3c8c1e14ee54,2 -0x2cdd199de6531f5b48cbceef6b4ca728f773fa8a,2 -0x7961c43e47cfc447c142d8a7ebc19dece99bbf31,2 -0x83d55640def49cb648aaf3bd58018a6683ed1197,2 -0x01d5cba374ca125b87ef6a4febdc81aa78503cbd,2 -0xe04e88474af44dded3d5f04719b7e00159846156,2 -0x42106c8d84cad33a24b00064df56080e338082f9,2 -0x45c3a38911edc45842fce6c27ee59e165959375e,2 -0x68c8a8b1afc6e7f81e3c1c07778a5bb8d886d5c9,2 -0x3cdead825705dce98488879ff34b9511d8915958,2 -0x452c31ccaf0ef6681486f78c56ece57c194d85c2,2 -0x3752832be6403046a56478f20b7fec5808c66c3f,2 -0x74570ffe35683ed157ce65046d6a25873398f482,2 -0x56427133887cdd81da966801126d382695a7221c,2 -0x2c7802819637189338930e494f7ee4032d476640,2 -0x986e42f742dc9b13d7f5de5ebd03a6d8a0cb68b2,2 -0xcf303bafd1c6525633d5ba3f605c88da4205aca2,2 -0xf4346e50db01b517abd8d68cd2b9b6f111c711b2,1 -0x82139687faae8a29851902783e02e699de0e0846,1 -0xdeb71ae5b652885b3ae99ffad63a5787a72249a2,1 -0x347d60941302bcb2e8acba3bd78a8102413d14d4,1 -0x4581b2a9a4dc68d084624ea966ee4ff2f72bb82a,1 -0xe52bdc6e1592b2e9d300ad7b4d3852ce41cf4a70,1 -0xbd84136901cecf1f8883fb8189dedd6b9f02e0f6,1 -0x22dc5541318140757db8ede44c53d7547358b5f3,1 -0xf7c9cae52b345f3c8dc8105577e87f7911b52f4d,1 -0x55a3e5aa703362a4e89655f9514890848f7f20bd,1 -0xbb7a8328c1747798f8782396dc81c92d6d3e8d1d,1 -0x33085376887e8a71a61e16c13b130e933ec82082,1 -0xdb9068691f5eb9a763a40be03e30c8c092e60041,1 -0xd505af77d421aff12a9a820e8cba4784e3a8cb24,1 -0x13cda8ca7c48d0644c45a0ff5d282bbffc6d8c81,1 -0x0cd10ce9c6edb3666ffde6413084ea243a5f790b,1 -0x2c1b62becd768a5bb0f26ae88efa8133d2e0c867,1 -0x50530095702552e9fa7818f60e6bdff5d0540af5,1 -0xcf0b68d30f7ebdce98544c9bf021df3ea8d62731,1 -0xf2dfcae8fef5b5cd5d89a527d193da567a5d6297,1 -0x7df6378d01ebad5d41f76ced301d913d443f2c7f,1 -0x71a388b8870849d92b548d4e752e7b0e7301de3c,1 -0xb6151dcd76563244711af9469c1ae7f1a2e06231,1 -0x3bacf6b5ed3370c278e2b3735ace7ff91ac129d2,1 -0xef36f4d2a2f04d9284b1758518a9b8c6371accea,1 -0x198c9a0caf41751052e24a9f12a1f74ba7ecbc2a,1 -0x04f2ba567c378c6a86072e6107963e80c8a6aac4,1 -0xb85fcca7a189e0aece9994dbebfcd5be386e16b1,1 -0xc7502c148b7cf1f9fe9e7a255a77f9c1fd7dccaf,1 -0xb4b2c46a860cb7e9c5d247b6309a822d5e7bba08,1 -0x48b0d4f512f5dc616dd780f31af2b24925f6ca82,1 -0x08fb7c3a7093d4d00066dbfe49fc072b9079013e,1 -0xabaf489d77c04b9881cfcddb709a5fbd0463740a,1 -0x14ab1d205f6f48ae440a6e814f5377b9888f2fc2,1 -0x34678cac9cc0d59e541f1bf4895c89112a4aefcf,1 -0xfe9c0d49a27c820bc955e8c6fdafee7be318d98a,1 -0xa679c6154b8d4619af9f83f0bf9a13a680e01ecf,1 -0x54be3a794282c030b15e43ae2bb182e14c409c5e,1 -0x46efbaedc92067e6d60e84ed6395099723252496,1 -0x4e5fcf12d175913f6c9611ff987d64691a544378,1 -0x6ded5d510caddd7e917dd431879548dd810bf6da,1 -0x1df428833f2c9fb1ef098754e5d710432450d706,1 -0xd0885451654c9d6c5017582d544e9916f86a245d,1 -0x348cdc3d51607e3e22198e724b185a8bc7f49f7c,1 -0xc0dfb5200eb821d564c8899359188a1bfb395f1b,1 -0xd6d1149502961f0b0e1985253646a9e7bd06cbe8,1 -0xe00f5f98ce064484c30e45002618c46f31272bdc,1 -0x011ea68c15f4a8316da45c1e7844311cdd0ba149,1 -0x2d6836b5d89e319f38ac3c058f4c835f0c69b398,1 -0xd56418050deaf7e838fe91ee945af6150953eac0,1 -0x41357f986bec5e47e196e902439528dfe1ad5051,1 -0xfb8071d8aeec1b2ac89e3cc60f139567d6e81e08,1 -0x017715b9a71dabed2ddae0bbbb6b0896509c8212,1 -0x7814302f56e7c4cf05ed587023892e566d1b1785,1 -0xd83dd8a288270512b8a46f581a8254cd971dcb09,1 -0x0026fe006864252532a850449beed49f07ab4729,1 -0x5e8e7a1e4b919c4548085bc8e6a3e8ac254f14a9,1 -0x29d5cea7d511810f3ff754886b898fce16a6d8fd,1 -0xf4d281fce716d5ecc244f8c247bb631b1be1605d,1 -0x891d7af42a84fd2aeecac16a7df46a3ab46689ef,1 -0xbbf3eca24367c0b99ac2ff7466a752f1c3282189,1 -0x351d395494e169e18be8efca5a88531d23cdb14e,1 -0x2aa28da27be3e4c93004e6913307b03b63234473,1 -0x98e9cce83a2f64131367a0129d7752d05919d1a2,1 -0x43b27614c91ac838d9e1b1353a8a9b561a1d7548,1 -0x856c7e074e5850d4eef395ea7e0afbb3223c8eb4,1 -0x5ac4a971e1eb953932294f53d465bbcf0fc45985,1 -0x96435779758e6731550fa6eba3aa88369e1747fc,1 -0xb5c1ca8b257cc4b5df761ccd78083debb5a3ab30,1 -0x6717adfe9911b0cff858625bb513fcb4e67d1659,1 -0xf0174c73a5badf2012b80623beb37ebe435d3fde,1 -0x440bd23858e50918895171f24d4e142e5a1abe39,1 -0x47045d1ee924ad6ff890ce8b52d6c1f08ad42235,1 -0xad6cd62067f3668a296f44755777810bfdc33b37,1 -0xfd0c7e73a457d5c6bdd06ebc7b9a32c08fd5c663,1 -0x635a632383a227edaf11a20764bed0462d2ff1ab,1 -0x93d2184af7f600b88ce3ba024095184e3d17d340,1 -0xd62de5467cf323d9c104db427f9209f06de8aa89,1 -0x4e8bc703f45c88c4dbc914c1b5f6f1f9db6dcad9,1 -0x1cd420f5508c1cc04e0d0905cf1f04d69ee92d69,1 -0xb76f65c1f98762c84596af062597f6173a9bd2ad,1 -0x7036571da80dd49b43163aa5674578252cfbf991,1 -0x5b11d95bd844e5de93bc9759a35fc89b40152133,1 -0x4a3588812a9da7a2b1d3f5eba57c7169008f7c38,1 -0xcc48857242141cc7f4f8555f8a3d5bed03556c19,1 -0x5973341ef216a81e6c75c97a35584d2cbd25a90c,1 -0xa70677751dfbcb25d33332b0ac17d9d0024e79ed,1 -0xe3b3595f4110bb1dad45d1b05b2e866ba83f6b39,1 -0xed1c64d8a571af125ee3df6076787b179ca7414e,1 -0x9dfd0023744901073b88bb0b01e4234fffe91fde,1 -0x2c416df824c653d39471ba3ac9c36894fd2731a0,1 -0xe40e3bf5e4b845af70d1869f975b0cb12ae9e282,1 -0x481e61c353bd775643aa1bcf995cbdeaec918658,1 -0x30c5f56f618d28c7ae66be74391ce7a1d04416e9,1 -0x45d79d839e2ba525ae10392e124215d583ece695,1 -0xdc488f12cc0565b029c2f240733d55a60cb205ea,1 -0x75c8b0e21f79e688ba4bbceb6cde8cae6ceb1b5b,1 -0x34d8900f7fd420ea84511452f315212428757c8f,1 -0xbc0246c81051fb45705d2c90b52cfddcafb938d2,1 -0xe9a788dacd3de5cf4bee7ec2fb3cd36110825464,1 -0x9675b636174d547796cc31fd8b67e24c62f875da,1 -0x21b52546d6b2451e461d81b7a3c89ddf4d65cd2e,1 -0x47a02bf0edc7a2b3ebff6a7f00ce5071ada3c590,1 -0x4591679c93892252260c5c4d7362adffc4de8247,1 -0x94d24a9664dc75fb447cda5bac54b8b412cefcd2,1 -0xb7d4871c8b501d8ab895b691be7e5ce21c94a3d5,1 -0x774ac33123c7b1e32997a9542c46da7008a62579,1 -0x830cfedc48e00f1a73c1c5a2d3067326ca5d5f23,1 -0x367457011483b1c800d108df2f60480a406e915d,1 -0x262ca38628e153ed3ea40ded4087cff0daf74d3e,1 -0x575189a1f927de8f54a366e7997aa5e92800be69,1 -0x3fe4f40c2aaee0526b421800cf6114d740d61217,1 -0x752a19d348399170f57d3b9be81e823dc0b631a2,1 -0x09b1c90047fe6998764081e7c4bdd68c3c0f0c28,1 -0xf76711b9a1771d8e84d80e09e378587dfeef8d8e,1 -0xe4a090d0f94c384e8b69beaec1c7cee33921bb81,1 -0x2bf47d48d5bb0cbf63b10eb60b04f8fb09713842,1 -0xbbbfd98c4c0be30ae51b9c5a009beccca6ad8ca9,1 -0x16d4c80363a1c298d7388cfa75675b057f1c49ec,1 -0xf268a1308cc463e0a81102e41c693d262a63404a,1 -0xb39d51079247f5a2b012d5ab91157a9ef3622edd,1 -0xdd177053b92716270fea2a17d91e3dd97fcd7395,1 -0xabf527a831831044345bcbfa0fc39978a548e5f7,1 -0x9de3d7a01112e9b64d544b450041a81ea63cec76,1 -0x4dc17f234784a62c0f6e04330b6ef10ad0874d0f,1 -0x273a93dd514137de52d9176493858b5b19f480c8,1 -0xb00af4c2ea13ddbd5b22def748f29f2e529d0600,1 -0x6f2c254674e6439fa8b85abe29d8fd13bf5d6d7b,1 -0xaa3ee54bfd5db2ff576cdcdbfdd952de6b358b2b,1 -0x326710029af8b61f56fc56a809c1521bae59b643,1 -0xdd343c671abb706d8e4f5da9cd9662753e44a01e,1 -0xab7dde540d93219906cc431cca83723611312823,1 -0x51b24873351fae8021ca20f65f9920c18028e080,1 -0x5ad25d19638309907e5057b6f4fcf9be899f9eb8,1 -0xcb6ab058a3f59a6ec1b57b65a15c9aeaa4ad94a6,1 -0x23c5b47e858c03ef6905803cebfe47b38054063e,1 -0x62e11d951fe969013f7ef754b6ce3bc28efcecaf,1 -0x59480d300ad462d72988e47b42cfcef6db6e2251,1 -0x82cb2b7490eccf6e64abf35ef1640262e85aaecd,1 -0x97f88c8d342989b8ad169d47a31a47da4004f48c,1 -0xd9748a9d69bb9b4d6c5685bd20a382ced9eeca3c,1 -0x549e1eb7b4de1f310583319f3ade374a3b5a9ff6,1 -0xc659e68fd7f85e9887554cbcac47c13c97e9dff5,1 -0x2eb642535d1090cd12dc0cc206c641076a2bdc65,1 -0x4bbbfc6493348fca68d7de0497c8ee469d197f65,1 -0xae0bc3956053dd553c5602730ae4991a15b58e58,1 -0x9f087a4860f72d39fbb6d46fd028e490ba3e8f94,1 -0xe18a1d42e54dbe84f4942802777d72b37b7d21d5,1 -0xd2e8530f30cc43ede9b0403f2461320d7034ed8b,1 -0x7a6bcb1ea4c44cf1764e64dfb85a55487ad86b12,1 -0x4683169bc1335ffd68d31db103c5d29635db3a1a,1 -0x8d14c4e5c8d981f2b52501f0eac91a5726168726,1 -0x55bb0822378119bba9554f9a5d135f66052bcdaf,1 -0x740b2ea9b6c4b895d0b04c762509c0ddebf5c610,1 -0x25c9abf0e3135368d5d7ebc3b82e94d59233d5de,1 -0x185b8e36bc73173c3163572d2b54e8f126e1ba2d,1 -0x7ad1d034db05b76b15d491522a84280ed959b07f,1 -0xed1081df848d10c89f9611336472d65f0261d100,1 -0x1e1e0fe5f629feb7cf54901ccc712f48facd2e60,1 -0x4a77745b99112ee012ff765d6738a56484a2ee08,1 -0xc57461850cb66b2b8208f42de7fa2382d1276bd2,1 -0xd8cab1d24e686e4feb9781772d1f9a5bab9f0645,1 -0x5ae517ddd9f9a55bc381e9c10daaa909e992875d,1 -0x6b6cb469585ee441900f333d1064f750950bf020,1 -0x4686e9e0bd23fc2a363d639dc00b1212e6be7dc7,1 -0x386cfd04c08f165d5055d2faa67ba63d68f9bb2d,1 -0xb010d7ca83e23629a0035527e9089afe5789f1af,1 -0xf56222893c0382f83c855dfc2683a96b4e3ea79f,1 -0x55bc8f5b007b29c5ac09c01796879987f6b55f26,1 -0x55b52f1d80a7aa0910c1c357d012f6f5de9cbfd9,1 -0xfb3c1034c128f7b6159898e25294adc39ea877d9,1 -0x33f074e97685fd1a4359133501bae0ce242ab5a2,1 -0x0e6b1386e537e784b65128c61ba648eef57c3baf,1 -0x2a6b86aa1c9053063a67a84b41733d23d9a0d4ff,1 -0x0f5aff589ee6b64514706000ad3fb2943b0eaf4b,1 -0xec22eec1150e24ad3a9f07e42f09d4503d4123ad,1 -0x454c66152a110eb759b2fc09ddc52cd74dca3f54,1 -0x95b673a57fd1fe69d4ba1fc1a601a4cc6a881554,1 -0x8ad0439c479048ff0cf4383346e2e49c51db7210,1 -0x839fbb36f1200c91b1f5fa8d1ebe1d9c29f110b6,1 -0x94042981fbe827237acf0d49bbb51fa8c1c56aa1,1 -0x909ba5964c9b550dacc1188046602e1ea6628b58,1 -0x6515a46069b84fc44b21de5a17bc740cb73e9676,1 -0x84ecd8bae0fff81b722a24d4e00b010bd02691d4,1 -0x84d5113aa9e224b104b1b08374ab40efaa37c673,1 -0xbff38315c78dd979162db7d16ebe8a91139b8896,1 -0x847f7d263be66b2c97ad60e3c8543e5bce482c23,1 -0x26151c8b34ff370e235f98a24a278ac8576fe9e4,1 -0x4ef360873ce51c61ec8e84c199485ed0d98362e4,1 -0x0480783c167aeb27d1b258e21f79fac696a42ea7,1 -0x5f199f9768f31e8c5c3e8e875982958bd2e94ab8,1 -0x67fe7d9d2f55bceae2b9163619d7c5a6a303f81b,1 -0x7c5fb46bea32d5d5835021e0d08fd607f84b3111,1 -0xd4efaa7ac9214b4ec2cc60e441cb4ba3b2e61970,1 -0x9f332b32d18522467ee63f061508752fde41fae7,1 -0xb5e34f65834a90781cf1356181f7932e839ec1d9,1 -0xe19934fc4e0a2e584f442f9ab0e14545dc49758f,1 -0x2d078c2766a7fd2f19c8b1770c20658f1c2625ca,1 -0x057ee54e4d2e78a10c2d033c79cd35b02a4d4a26,1 -0xe9bb04441b68f98c65beea173ea93aed4dd8c560,1 -0x06c0f7587685e2f5de7ccabe9f424dc6bad2af9c,1 -0xe3112c26b6a065fd1b5e1bfc47dfe6fb332a72eb,1 -0xab4787b17bfb2004c4b074ea64871dfa238bd50c,1 -0x026eea8f4c483ee54fbe3a8a4f9dca2f50727e32,1 -0x2aa5a5f46b40216d7cf54b52984404c514fb3eb4,1 -0x52029325ab640c933e86fea95002c1b9a774a6b5,1 -0x08c867b4782eaa1624e9bb10c2ef83d325182419,1 -0x5fe828bd16fd1f85acf892780d967b173f3ff468,1 -0x0c5e91130eb3e0021a068426d0ba6a543b6c14f6,1 -0x1203f4a4ac0572d58ae4d6f18b8ecab5e8137fc5,1 -0x26f743a72715379d0490f1c3652f024ec588d953,1 -0x608670821f1c34dc05e341a41574f4e2378062d8,1 -0x75ac5602618ea772333263479b5640c79cbbc008,1 -0x8911a2acc24f60424fa8442ee2ce31241eafb524,1 -0xc44505d1111ec42279aede122a77cba17359438d,1 -0x0e984c300f72dfdf5192f2bdbf73f7cbd1c63802,1 -0xf7173714d1f4097ab8722643b034de2bbf9c70b8,1 -0x000c5b30d67dfbcc919edc4175d4b2e11e5c8313,1 -0xc6b4a892433a682eb97dbd6cebd9372b0f0fe05f,1 -0xab05fe7f1dee4cdb5640d79fe847ef80204451f1,1 -0xaecded0c1ebd0d791893fb633f1142e8ed8baf52,1 -0x798ff514d08e535dce8a93b708526ea8b7d1cda3,1 -0x7a3248379026970bd6ac978370b5d2350e142a10,1 -0x8eb7c18f8e64ed967b4f2aa528b98aaa552d234e,1 -0xdaf639f8b086a448edaaea58e26806637cce114a,1 -0x11c82905eec9e42b846f596252132165d763c651,1 -0xb0f52fb20775860103baf5716f229ff42bd73da8,1 -0xeabdf7d6adab860a0fc332352c83ecabd304d176,1 -0x21e6618113ae32e22921c1f0dea6a56186be3324,1 -0x532fd36ea87cf9f316fad40b39385a4716065b8c,1 -0x2624e6bdce94156695330a43617de537518052f0,1 -0xeb1e62f444b793f6b0791dbdcbac82d7da211ec6,1 -0xe84694e5f139fc33c897767fb7a9aa40e9cf2ada,1 -0xbde96ff13210800843649dbd08bd3529c446baa4,1 -0x47b64416a1d0ae7378b2484de003bf9ca29d1424,1 -0x2c0ab662ea6d3f6b9d2071c77b8eb856f60df0c5,1 -0xaf469c4a0914938e6149cf621c54fb4b1ec0c202,1 -0x1ccda283852c9448fd3901a84d67b60beb28c5ce,1 -0x8e6d3d19001a17bf91428a3dec463c205e3a7f2d,1 -0x17b737e3142330b7c21290568f43da1e75c55c7b,1 -0x897d309b674a3d5b27c220c6bd94e6b47342b922,1 -0x3fe7493385eaae7ec98dc33f77b4fbe71aeb5edd,1 -0x85162b355eee83ed8d29c3cada25b80ca86e80d1,1 -0x18e87bc255040810bede0941a65768ecb2bd5d0e,1 -0x1f0139ef20519cb0ea2d3589d722d0fc7dbc53b6,1 -0x61e208ceb3f80bae2b8ca1fb1eace7e29518dd9a,1 -0x5d186204c7c568bbca7ac860ea14d03d3f92ea55,1 -0xf28d40554e3a6e07777e1f23f829479e6405e89f,1 -0x7abd9ab3a4149206f72c15ff35bd9fbbb017d4fd,1 -0xf0ab40b1a57685f43320a5bebbc1fe62caa87d49,1 -0x4deba5d346229a946dca0b6be8aac2675bcc9f3e,1 -0xdb9547208f1f2010a99387b1f6da8ccff82d8246,1 -0x26f755132d69da9e2c2b27cf80e65ae0fa79bf15,1 -0xf1fced5b0475a935b49b95786adbda2d40794d2d,1 -0x13f1c6aa9480f5950f5037d56c5582b6e8395624,1 -0xca05da65c7f83a30556ffffb035e58bada4d9ccf,1 -0xd37c9d02a14806e1c96b67fd40e5c53b605ecce4,1 -0x2d92214855f88f1a3f24b1a3f8f6d533cd0e2e37,1 -0xacc16117fb88b84c9d567b61609444ecd847923c,1 -0x7e29f10a084d7a46f8ebf4801294d0ea8a6b64f5,1 -0x4518344525d32415f3ebda186bdb2c375d9443d6,1 -0x4c97ebe6607f70abd9b8aa5c03643a8d36bb2f06,1 -0xc68d1f0b693812389a59d36128a51d44609e4476,1 -0xa63ac74c662604e0a510de4c7c6b7babecb47f5b,1 -0xc7bf7c7d146d7b19b248989c015684ae8228b618,1 -0x744b57a8644e8f624b598f2796817c6e29b3d1e1,1 -0x1213a3e832ccaf762af3ec5742b861bf59f9bf6e,1 -0x44b3b7c9d648d958f6e7d63e7ed6c8d8f5923761,1 -0xf19517e74152e58c2b7c33014aa2a33fc837eca7,1 -0x84bf627c6c0d04fb8b2bca0e644352fb9e51bfb2,1 -0x1fd4eccd488bbe08b218d9284fac8456cc036f78,1 -0x22d2e6f4c641632422a9000bdab4d989e73d7dc5,1 -0xd82bd082f3970be683b3b0208371e0eb70eb593e,1 -0x2054915d5a8520e1a79d0eb8c9a997ae675e3bff,1 -0xa3eda01803e0f6ab036a7914478271cb1366560f,1 -0x6f36b03d13b9af47d44f86db2c58737b293bfa30,1 -0x6de7452d97eff50055151f1d9c05a84f3c08350f,1 -0x439eb1d8faa21c3a24daaea7887815141c3070f7,1 -0xf20d68920f8b764a8d4f30d97504f2801d5c16f2,1 -0xaa770dc849df64c58c705f659156d4caa478bfa2,1 -0x36a54980b0bb03be5f51ba44304254a2b209d8a0,1 -0x8c431639e1cb4c26c6a338f234c4cb7500dfa417,1 -0x0a56041a9a024c2d077b3f2b40bea0c39d657e57,1 -0xbd62af4d19edfb98f4f3cc2c26ac79aa5bca7a3c,1 -0xf3d9281fa183b74f32b96e1c5244596045f4ede8,1 -0x0bc2dab96f47dac7c58db9469402cf3c7775a537,1 -0xb329ea46cd804649cfc0c22a42b18821b569ee13,1 -0x86dcdac9ac096332ab5dba1c03ac50eb6555280d,1 -0x0ff6d641c9490bc09ca49442b424a4e8468f887b,1 -0x3fd25deeddc38d9663c9d8d68a862cf215068078,1 -0xca3be8fcc0bb1e966aad0fb5705ba11b517bd219,1 -0x5bffff86f9df65cf4170738225d6aa0709757ce8,1 -0x9b1feea748be8d0d787b73a23ae7d432da8fdd2e,1 -0x890908ad4b50848fce93c77f05a367c17374a903,1 -0x63170e7d67398f229775a057cebaa4e37da65be1,1 -0x042810a4f61a86f956898105e8e08819bfbe7695,1 -0x8c0eacd366a5085a8bbee1b6c18e216a8c7240b3,1 -0x7879d92f39425ec5c06a12ac29188b6bfac20097,1 -0x08e92ce891a119532414eaa12a37dde431cef8e9,1 -0x9a2e8574906bc9763559cac7f2c41ec368077372,1 -0x619509910da106189ebbbbe90a472938981c8c67,1 -0xed4ea7ca134b4943fe2f4b79baf5352180f69638,1 -0x0ad15588269fe30b9706648343839ecafe96ab48,1 -0x94345931e7d6cd851d0eb8808c968cfcdd95c254,1 -0x1ddeb499cba9b515f27cf480161e7a0e2fe4efcb,1 -0x32a3f718e3844fe18ce645664214f8b62b3b7d94,1 -0x29454769a26d72017d1b5d0aed64aa21829d1dd0,1 -0x12db1016b7853728fe8dd5aad7ad032143a9ee5b,1 -0x311aac4d6a2ca079169c6da99aba5f853c6ecaa0,1 -0xd324bd4402f92e8a28e08ba35dba4a99102e4737,1 -0x789a90409b8a3a5582c308f3161330ade00a67a1,1 -0xd733a1eab0f9f9ba1f746dbbb09bc5da0e5ff8f5,1 -0x3c88ba0330a3684afd5ff53b50b0baff1004bdc3,1 -0x31dbea195d89cb667f878be344113c08998cb6e8,1 -0xf13abd73fbb95effa1064e81951ce8e8b9f85e4e,1 -0x37b76e9fcc26673bdfef3fcb3cf0e8539bf176b5,1 -0xfad1f0c78cd6a6421dbb0fbb1e42886ca04009e4,1 -0x38f1dfdcaf2f0d70c29d4af6a4aa9e920efe8b18,1 -0x01a45f7fbf7453092e49b6db137568f9cfab8ead,1 -0x88dba2cf8911a80cc50a1b392b5ff6b47b930330,1 -0xcaffd18e26eca4b9f80664bc31f1fdf26e91df52,1 -0x1e33fa287537f185f0cb89f8ef69bbf54fe64ec2,1 -0xfbc0db128e47f2685d52d31ce8d5d9fef761e063,1 -0xacf36c7afecc6aae80de6151413f6fe1c778e0fd,1 -0xcad3d7130869926dd0bb4f9bee6b394a617fb201,1 -0xeb30bac344efaa91965bae2260f576317bbea11a,1 -0x0b7523e694faeebc3b79c0f039c711595ad8d382,1 -0x36e9dd9e61c0f3d2f539310e1b0d0e6993b25de3,1 -0xa9d8fc82a817c40855abadd1195313fa91de1679,1 -0x460a1ba740d05834f4ad4ae09ec4cc05bdadd050,1 -0xe0e8c1d735698060477e79a8e4c20276fc2ec7a7,1 -0x6639975922f0c861c90cb07d84092db166525e63,1 -0xd83cfcb6805a6af7eb3b799ee7191b9867e5a16d,1 -0x7a349a913243c84b428ccae73f1a6636235b151a,1 -0x5d2bbd8b0113d5ca3b565adfb6155c53fd3f527a,1 -0x9a116b9b8531d83c2e1ac61babd4fdf622b2dbb9,1 -0xd511f7d8738e519820f4e4194bddb253c1ce517b,1 -0x7b86ceee7eff80693f4b2a98da209eff29531d50,1 -0x5d976735d28899a160deaf4cac4838100b38c404,1 -0x9f79e17a35bf290925191245e1a1b4510d457497,1 -0x1628969e0863dd7a05bc12ef3912110e0b5ef89e,1 -0xecf898e3a0f5dc4e4894dfbaae2e2b8303a8363b,1 -0xbe51d26a236277cba3fb39414cb1724298e32878,1 -0x008a228d35b485b980f12e4222a2dc5055eb17ba,1 -0xa8481e94eeda61e7fdec6e9678daeb677d57e136,1 -0x6b9293c6226ef79221e262bc4e288e2eda7386ae,1 -0xd6482891610b749b5b9498fbab5ef62ff331000f,1 -0xf461b7e6cc342d2942379cab5332671d4b9eefee,1 -0x5c7cf5a5df5ca98e435e66fb0fc04a9ba883a8c4,1 -0xa2a359dc7daf72681a26d3d2a376dd3566d21ee5,1 -0x21c8c156b8c314b0131887407a2fddab9ee2c609,1 -0xfbcfe39834bb75689346114965facc3417030ec6,1 -0x8230150f3d5eb700a776718ee78a08cc56f0fb73,1 -0x9aa35afc0da5c8d72e88b212993128fe8b318f2d,1 -0xb13e0755500e68454ea2f1ffade02e01037d2893,1 -0x9fbbea72f6879307b9bf12e2bb67fb2df3c38d76,1 -0x5407d918fc2c144de3fec53e79db8385b4d68394,1 -0xdde346eaecec99ff62b8454fbd721593d40e2fbc,1 -0xd6649d223ae58e44075d5965583d810e64de9edb,1 -0x5b930cacefcc622d16a64730764d80589d08ae8c,1 -0x09343df739fcbcaf4ffd9776b56d2c673370162d,1 -0xf3cb88465f7ff4cb5b509a4fde91d8132c5c1ebd,1 -0xdb8c009f29f8a376e7ae2fc75d55e8c12f109ab4,1 -0xfafeb831fb3266f880ced8c65950a570b3ff4905,1 -0x73767570ebec5800b75a48cce2fc0a8d1031871d,1 -0x8860db2fed7d0553db80800df42f61f00d6f2b21,1 -0x1eccd61c9fa53a8d2e823a26cd72a7efd7d0e92e,1 -0xf4fb814b08fc9b22a382d9cb2f33f3a960e98082,1 -0xd509bb752fcd77f737a52621286185af04fa2e61,1 -0xddd002d3a50f346b1b90bc638d9bbf9e54d51dd2,1 -0xfebec31bdf1972c42e683476b89b40d9871a62f5,1 -0x4575fc2a22bf8a281641a65c4b4d7341ddf367d2,1 -0xd24a5b3a49ec2ed0dace25f1debed07e340befc9,1 -0x0f7c548c3c100e1ad6a1f092d95884cc4dcef4bb,1 -0x450844ab03c3c9aef4e81aa785f6730decc2fa64,1 -0x59ea3fcce97f50f44d2fe92c8eb52850cb96a1fd,1 -0xbaebd8de4c08353105b6ef236c0e29399cafd699,1 -0x399b8fc01be731256c3ef7df19180b89ec436645,1 -0x97bd42e430ad80a19dd5be90a1ee82aafe85bdbc,1 -0x3a5a1d1417f0a45d9072c7a65dbc64be06c4ed50,1 -0x8201efd71d90ed75c001048f674fba6ec1855533,1 -0x1a85d5153ecac9ba3d1f8ded0ff794df4bc1da51,1 -0x50826215ec6cf3d9e2a9358ae5e125b0be5f28c9,1 -0xfa807752170e4617bf239710b86945ae8f845b14,1 -0x399ceef8895505e358bf1c77f69d31b875a202d1,1 -0xd83c7bced50ba86f1c1fbf29abba278e3659f72a,1 -0x6d9e25fc03f5445232fa4e09c93a3ffb8d51be24,1 -0xa85f50e81e60f61987613994c1335ebf6bde9baf,1 -0x97ee208376fe687b5ab07197ae229b5c348e3fcf,1 -0x73ee60f0baa9da6a24b91542d1a5acc2bc5efdf2,1 -0x128b4afcdca087d1ecca2ad0d015d6d948205520,1 -0xa43a8b5ca81ccfede49c7435d2cd89cd12e12845,1 -0xecc0cd2c0fbd14619e2be383c71e63f0baf94967,1 -0xdd636cd6918919627b75eceb116e657385eb42d6,1 -0xa71b8e23cae3b65856831b6adf7732c7d2018411,1 -0xb281059e6f4a54584a9a557e8766085e4afbe3e0,1 -0x9967fc0e92bfcf0440b8eec8170cb13dfe067303,1 -0x29125d8764c7340f4558bd86f191f2ef33b6dab1,1 -0x5e61fa3a03594c496bac51997af69c6abf86be64,1 -0x1d4235ffbefdd00b72409327f8ba37b273181e33,1 -0x49d20f1b85acca6a58c48ce56f5eed980b047c0a,1 -0x24089b1ae5465a3513301ea0338543561ceef7dc,1 -0x80a4b80c653112b789517eb28ac111519b608b19,1 -0x7fcfc832ea3ea6aa66fffe80747c67b475326f45,1 -0x01a2494d330064d829125b59548e44d42bbf0ce9,1 -0x3be9b9ef04264d256c411207d4b18fd4c2a4a3ec,1 -0xe32d79b94fbd822ccbb8ede31bf7e407a46d08fb,1 -0xbe6a5992d259990ddf43dbd681568db292ba47d7,1 -0x681a64617e1083c36cbebbd8ac9e64938d3c2591,1 -0x68a3d50a9e66090e7ff7bfa90ba8d37fe1f93aea,1 -0x283feebc59dbc7d0b8375ec245c31802a793b9fa,1 -0x68ddaad1a42e5d661a2c0fc86755ec295f33db29,1 -0xbf3adc45453ec246b2e41986b6b357f4e12f1dc4,1 -0xc69eef9524927907e1616b1fa7576d6c56903b42,1 -0x3beca91e1b840a9a3c09bece1a2e826208e89cf3,1 -0x4644a9afe25b01405b9099c32fbf123f919d4838,1 -0xea2ae0658f0bd1113ff558a17fd547875453f325,1 -0xe786810dbd4b0c9862059a766d834df50fbf4e1b,1 -0x473e081039f3dad7f1ff111e7e2918c95fd78324,1 -0x09a317aa8caf4b928d9d6869fd2fdea6db8bd5fb,1 -0x0d144929e7358f2419eeca17078c8ccfe9031fb6,1 -0x3f3e7aabf9b8ce2d176666cbdaa4982e481d86f2,1 -0x991ab31265a96f969ffa276905bbe55928857ea1,1 -0x5299d859bac1c370a423cbfea25034c5ee787043,1 -0x8e3ea1ecb3ab6f5ca527d385e4b0079d3c5c4992,1 -0xfdc8b2c922398c9ac2392b93d74aa9cb264549ce,1 -0x0d0274ffcc833f0dc6950181a1134a4049c832c1,1 -0x43bbfa2821b4dbc2528796d8ec48e46541ff8a6f,1 -0x1992a137593e4169b51019b9ceb1976378c44a9b,1 -0x7533c4c1d881aaa75d4b039325866b2f8b8c5ec9,1 -0x3e992c4a8e4b366c583b603a6a6e25c4e63e9310,1 -0x4466f1a160ad95f8f616f3fc0dd0d565855cb84f,1 -0x8f5526328eafb07474712a361259386b0231813b,1 -0xd383fa9fb743bac75c3c5ca51ff6ce431b29016a,1 -0xb2b2a054fa6033f273a5401161ae1ebfea9f347b,1 -0x1890af2b415519f855366c39a6b8c557f882ebf4,1 -0x04fa0656791fe0c4ebbefb3e79905ac3b2082907,1 -0x3e019e13f4df147e501f4186fad718ed7a0c3281,1 -0xd8fb9e041d3ca0cef5670e58c8921a35e647f5d6,1 -0x1c3046f0cabbe1d82f3b78f3b7747ca12cc271fc,1 -0x26648e3f7c7b12e55f6637f4bb5bd75314af943a,1 -0x6c3b3437e2073811e5ad6d3084730252f1fdacd0,1 -0x62abe7f56b87e9c41a5aa0b34516c9b21ee7b725,1 -0x6022ec04885f671818a4ff7426908e17022e5e29,1 -0x42f7c5275ac4372156027d939843c9c42523df2e,1 -0x255bf9a1f7e308dbd7829a6b9e6abb2c6b031d1d,1 -0x76ae87aa775365c896b5bbdbb3bdddc8b8b568c4,1 -0x2fefd184d1732eba4e6572bd529b87ab31c81fe8,1 -0x7378d12530a13331c370fa5790ee8ee7ddcc7960,1 -0x40bdd53703448ecaadf06fab1a3814167df71978,1 -0xb4cfd105b4c30493c69c8ab0c5da288fdc8f6553,1 -0x3a62cff099d1a93f645bd451444ed49fbc2b4b6b,1 -0xa647cd18878596c724f75cfe7c6e746cde7f5ede,1 -0x5b8bc59bb0ea04a01d0a6a5b348424040f868765,1 -0xcf63050a1afa9aa0f83debe9e045d98f47dcf7cf,1 -0x99f04b12e8863411e77795322e80ae2aaf948dfa,1 -0x784dafe0450a479ef5aea891ee40ab35a38cc7f3,1 -0x144e1547ad7be53ed5f751406a661540b860d522,1 -0xb247678699c154d1deb16fc215bfa1a7adac0e9d,1 -0x550de1fbaef4e3513858134c175f48f6d6040f14,1 -0xc0549087333b7972088f3aef2b07eacbe0834b44,1 -0xdfac669a420fcd90a64bb579fda5b27bbee226eb,1 -0x7296b9b34da7b10cb3117835b81496bbe6a4835c,1 -0xbeae26d02783859f132275ee6e80a54dc7c890a7,1 -0xee7241903aee962c54a12dd7c5a4ab109aaf678a,1 -0xe76dbc8def6cf9a296366386b8f7295514a1eb57,1 -0x415f78567c431a922f12fa29bc1455e8459feeb6,1 -0x3aa52cc5528c512adfdf1d593cff3afb49fbe254,1 -0xd6004b3b293d6010a89c072194ada59c2e3450bb,1 -0x69df7dd293eeff309d8fa12126be3f5d2eb277e2,1 -0x45f6288093f69b333a58d6195e6c3a881cd7a3b0,1 -0x55296b41b2d9f37e13141ae0d8da0f981cdf6e27,1 -0xc958f028d1b871ab2e32c2abda54f37191efe0c2,1 -0xc5130c5f2b38636fc8aab0fb535a79bdfdf6c71a,1 -0x7482b336283041386942fc106fd47f99976d1a06,1 -0x9b644307d735abff8970d1a83389c42172f0220d,1 -0x86455ac5cbe7a2ce8527638bf9691fbb4bace7a1,1 -0xdefc085c3c9d5d36cb4461130e5436f78dd15800,1 -0x188c30e9a6527f5f0c3f7fe59b72ac7253c62f28,1 -0x87f9246078dae14e4773a142c8a3f2d71bdb0c49,1 -0x71a750f70031938be528be6210059a0db297b978,1 -0x035223ac7d096d6ae37afabda951d242d79a198d,1 -0x4f99dff01f2bfdc023cb62ddc9a1db52de3923cd,1 -0x26c407bbd5a2109edfa76ce5f2976c216ba940ec,1 -0xcd877d9d432f41b356d9b5f3af0e15fbbbdb761b,1 -0x32a9be580423d5a6185341a2f95562f99c26d81f,1 -0x9b31a51df352c7cc0372b013172dad16cb40e314,1 -0xa003a596019bbb2937ada238e59ad033f2b23af4,1 -0x393d1d472344fb67db26a3d8e575e671c014b1f3,1 -0x3f9db5df10a9a2290f2bba4121fd15634f7c7e21,1 -0x13b12363f33400a79d318b15f2ac9867f98afef4,1 -0x76c9506619be2a260ccfc8883be4bb7711232010,1 -0xc26fabacb88625504640b6c4d226200717804972,1 -0x45e37811cb300727c0c99a0de02a176fe8c5c249,1 -0x12a1ff31d0c6d2af4e52c5fbb6481e8beca9999c,1 -0x69f5af1592948c1189017776f4025cbb4fa206a3,1 -0x516595ceca22ecbcabda405f7e8a64cd45adefe6,1 -0xd4aca93f82cce61871f525dea043f938b0752dbb,1 -0x6776e5b394bde7e773aafcaff071d1a169e4edee,1 -0xe50c3a1f42dfd0e21a6b284d3a66c4e3667fa1d1,1 -0xb67d58cffae63a95fb380b952e65b1a8eac44d0b,1 -0x1e0125f1a556bad8d46cf742a87b933f0dd9d148,1 -0x545c6b29c918c5f36e9ced23fdc1f9884e6a56b1,1 -0x0c9964684c8ffeffafb38f5771f955dd96ef853d,1 -0xde919cfcaaf17b4358dfb8f4bad57bf10ccbf99a,1 -0x1af347c004d1c62a6ea201c3f91f8dc987856d56,1 -0xaf45597c066ceeaeb4654bb6b0ae06f722ca94fd,1 -0x52f71b4185458248c0e0a777aea130d922462a0b,1 -0x14a3cfcd69331cb5ae8f2186fe0ed25732634cbc,1 -0x144c6600127b5f744a32c3c893bf941d60db8837,1 -0x0f358127b7dd891319d4c1d1d61ca38b60933d7d,1 -0x189962bb90b207b542de4fba988a4671b0c702a8,1 -0xdead749cd5d36589b37bde9801490083a29e69e2,1 -0xf848e384e41d09dce3dcaed37e1714418e68ea7f,1 -0xe0934c70c7c13160c7f3c21b92c1405772cf4a24,1 -0x790ac4d747035a63113216ed1efcaae3519d213e,1 -0x0f2e136ff215a05a65dd5e8765c7dd49dbb19517,1 -0x295961cdf31de4617e50528ea78322143c6f7b7f,1 -0xcde1f07a06ec3f84c4f1c574983e35c7d8d3ee42,1 -0x361664ae40e9e50ea141139553b99a6b4f3b900b,1 -0xa19a30d126ae2e7fcce0ae0e445171923cf0e117,1 -0xaa6fd0c3dd82e34b1a0ce7a526235336442fd678,1 -0xe16ec2bda9548668fdb4e4ef58225f67a2c9255a,1 -0xf647af28e0a20d0116764177b7b1d05b12143ced,1 -0xf7cd6c262244a69d8b3f61bd1728871a3f79110d,1 -0x91846ec28a29eda9fc4a78d1e010b76f5fb6028e,1 -0x1c8d0076978500ece8aa02a5024ac2990cedc519,1 -0x8b6c8641c998eb832926a81091b607e7e5ede489,1 -0x3dcb8273c23296654a4f372e8f8184ab2fc60fb0,1 -0x515f545a78eda9ab04e21069787ae63dec19447b,1 -0xe96decb942b8b5c6bd57f08f146fca12772cb1ef,1 -0xc1dfa9180482f5bb322200929d8b1bbc390a5c2b,1 -0xeadad91279a811968e5f23bb2617c36b44885c1b,1 -0x4b50489d134c918fd370ee805fc1fcd24039b0ca,1 -0xcf699c4c79ca50ea25a062e54583ba04722da0cb,1 -0x9caed8a01c87721570de895a9725334a0a0cdb70,1 -0xc3adfca8524bb94678dddb98eb5f51bfc1430dd4,1 -0x3938f63158de24fdedb8f8953db13bd581118f89,1 -0x97557db165c299663ef134f18e1fb3f093a1f15e,1 -0xeb3b4d6a77ba3a0f613d89210266cb605059d642,1 -0x7cae0e26534b3beac8208a2b8711e698df53ec0d,1 -0x5112a05bac9779a260351990180cfee3d8f1fae5,1 -0x6784833aae3f4d701b842933e272ab81870f255c,1 -0x0063664d2b6c4266c8f7515aedfa762d3b5dccfa,1 -0x084b6cc30ca2cfb942c00b4313ed36761c05c253,1 -0x6b6812c15610698aed91b4f0435a9825a5d5fc48,1 -0x144a51dd7cc41a055ba6d4cf0ab0a59445c30cce,1 -0xdf9b0d723776972c5cae27fdb4f3ea827a5cf283,1 -0xfbf9f4db8db1386464aef8d09bccfc26979aff46,1 -0xf27a05179a8a43ea19c501415f11038cc157700d,1 -0x14c85c69067130d5a400310af6f0f75fa04253bb,1 -0x8521f4cb66fe166f81315cf31ad76d454461b2a2,1 -0xcb63de5613de3add32a48c6736f34e1c8de5281b,1 -0xe61e3cdb18f3c1d3cba4073be32d8c483a28230c,1 -0x60c5bd3339a926fc7ba96719215729e94ec0db6d,1 -0x521bc9bb5ab741658e48ef578d291aee05dba358,1 -0x0b26f382d5dad1963d44f2c8c18be9d63ba02870,1 -0x1f3df531b6083f74c520c2969c65a13bbd321b1f,1 -0x8d41a41067f56bdd11f5b33b78f03cf3551c39e1,1 -0xc39953b0609fc3905467bcd7421abe91e264b297,1 -0xa8c5115c8e44351b2bc2d401a1f033bb45129dc5,1 -0x97c81331f73280ba5a2f71a892fa1521d691283e,1 -0x5bba567cd6569b36da187c99e074a5dac9ba6662,1 -0x012acf70b23eeb7ef05220b5b8ab36beb880d6ce,1 -0x9231f684b131e9d428e538a40ccc23d4899826e9,1 -0xa6e3475e2d4a9937b61be131407598ed188b54f3,1 -0xaac47da553470db0a1ad04f4d9e2b7b423e6d83d,1 -0x5abdc3cb826fc0277d642c9fb52fa76fe3abb4e7,1 -0xfed592b64a3b0bfa5121a5e9190716605b7eb6bf,1 -0xae9f54f73097c8ed7f11f600e2688e1b030e76a4,1 -0x08c499e363e4b19f7b132bc8d1898dcd3f0e56ea,1 -0xf82ca3b827dedf46f1111452e301e0c83ff2278f,1 -0xcdd7a57264bafe4a71ceed348609287e0ee2135c,1 -0x5adc7f1081c8fb8cf700dae630b0c8d9b0cc0617,1 -0x4e7d158e5ddac09b096b638f59526ddf0ba3112c,1 -0x1d176d935dae7bde3f88de06f4fb548acb1a7e8b,1 -0x37780b737d697485f771433d36772350bc4f4dd3,1 -0xc1be5a2c952b70846802c7eba53e3bc284ada22e,1 -0x96dfc05a1c80de134f24f4637aa588429743f291,1 -0xc5c275049598fb6c5cec14bc95a8558321c2a5a3,1 -0x28ea6d93e131319823ea6c9b447c66bba6f3f379,1 -0x365854d5766aa8bf8a1a3cc383f3ec8888048c20,1 -0xc5b45c738f877b8bf3cdcddd76248096c8235d7f,1 -0x37ef5b0a412cd864e368c53f77a0de4ac64b93f1,1 -0x00189b281d7249950ecbe735653536c4a1821351,1 -0x82b1f29c5608238df2618f996827933c0d844079,1 -0x73ed81c7b8e82d98aa2183e4e95e5cf22c7c6660,1 -0xb230664e25745de152ee5ea00778e9d478c9ad75,1 -0x907fb2c4979347dfb537ed4fa7872c201eca00c8,1 -0x24bcefce2e2bf2489f540217cd8ee7b90fb8f6b2,1 -0x7b0ee0cb3b4a371f373688491ff6f8007bfc466d,1 -0x5d748f90d62f99f6c2e4b95664e287cacfb06052,1 -0x68fc752ef1df7db88f69999547f7e6733506b1bf,1 -0x7a25535dbc985ca2611b0ada5df8517e8a8195af,1 -0x0bb2d322e506b755d208082277774232fb9c2362,1 -0xcef0642a5557c7e70b2988f0c29af5928e5d1bdc,1 -0xf9e86d521db0692b7c0b54c926b7a3b1f9595896,1 -0x30513ed9ac2e1668d82c8f6cf86942fd507856ef,1 -0x0411e7a2a2461784668e309bbc63402d20ed26b2,1 -0x3a83cda9dcb53bc4a06b0a5f6b47d6c8736b416f,1 -0x6f2cec570a8efd399e76207cd46291544b741735,1 -0xeea86aa231a0dd132d28df77b04ba54ead76d400,1 -0x856dc1658263fe51f081df4413b6647ead58f81b,1 -0xbb1459764626946522a14f83c44a4cdbf0c5b781,1 -0xd1b2e3450ea1c337fa2aa439aeadfe70f3ca18a6,1 -0xd8e865a535ddd4ab13607c00d7e69c2ad484d2d1,1 -0xeec77cf771675792194b04a941ac3f5326b86130,1 -0x670f9a7580a8fb9093d97d61590838de7d6ec6eb,1 -0xf8df8bcd05671120e9b84e310f573ef52626e1d6,1 -0x959f34404af5f4f4877ad80b40401573b969e58a,1 -0x4cd50f3c3d99a552f3ed1e6d24e2cef7db4e9269,1 -0x02bc238607fe322d27481c9915d0df861123e1d5,1 -0xc8886117339a36f462b2c732d1e1acde6dfef492,1 -0x303a03169116a92a3dede84a1e74a5b9783891aa,1 -0xdafe7be4662224476254863290c5300f3f9a4228,1 -0x8dcdf0fc1997d6e2acb6e77a1df4230a6c2ccc54,1 -0x4ef8a388ece28dd35be29a76c01562ef96317453,1 -0x36a5d0ce4a6d768660ac76bec2ffbeca7c11b5e3,1 -0x97b640a9d082398eda9e3dbf1b9bb9e9473e843c,1 -0x8548a7fae4f8b8e54224f0b35d490bd9faed8c31,1 -0xb242bb44cec982bf1d6540c0860deef99479214a,1 -0x0aef48ebe3ffa769b2d86fb140d08f04706bedfe,1 -0xa41a3e777079c360039fba705812f88a68f55369,1 -0x4917fdcd6b6c8dde1d9c091f076858dcd0985b83,1 -0x675b29a2413937ceead056effa6cabc587bf0d4e,1 -0x369cb234262c6738309531a0079658a9b47848fd,1 -0x5795d9d4eb2e6420f7b25a1e05965a1db1e56286,1 -0x3eb2a8ca5a69951f42aad20899a925b76b29af26,1 -0x7a827fa01ad4985ca7dff695131b28a1600b9130,1 -0xe29bc9b2d97aa5faa2f9e3d141a39b0ccdfe682d,1 -0xfd56c861e8d0df6a72071833133d8dfd8a92fb36,1 -0xbfdc24b25d0ec718fc5046e27c90974fce2c22b5,1 -0x9af6990ed3906318a107760b65d51a587bfc98b5,1 -0xa351c2c7fcb788ced08272e503bbeae785503c22,1 -0x15371cd0f09410168587a45ba432005511888908,1 -0x9addb88919bcda368a4f177f5ead45947d5aed6e,1 -0xae94fbd8d72962f27f6986cbda690e39078d9f1c,1 -0x978430359bab6c10e61bb585238617be740bb4e0,1 -0xb0dff01b7414afb14e1d2fa2c4943aca5c6686c5,1 -0xea8c647c737099e7aea135090ec296f5179142e2,1 -0xb0fea22fb35631c0cbce9a3c6ccea618de9ddfd8,1 -0x8f2a29530f8ae0006028b621269d7ef264604c75,1 -0xd59941e753de0a6d91fb35f40f78fd1de2f1fa68,1 -0x798058bebdee56342ee185785400564fe474e692,1 -0x7d19667db8d6d2d4fabc0bc2b2c9c7dedfd3a5a8,1 -0xd1d2eca3a63c03ec2e6d1791dc12aef04595be6e,1 -0x2afd710d857262378efe996769902dd4cf918017,1 -0x2b36100e02702b9011bc17ac1d451c3144d39d45,1 -0xcf9fa1018ae60e66e52dc475ccae0637d412281b,1 -0xf2c130b9755ce370984b22c33aaca389e55f03e4,1 -0x4f74588774de9549b2b19d33c0cc32c5d4f3cc96,1 -0x439b7d1c4312c6dea6e1f542892e1380b6321020,1 -0xa8dfca656918ba4655fee328e8d08a49b416b9eb,1 -0xe73265536d1ce7b06b33c6f9110ee1268b5b9e6f,1 -0x2d7b38ccf60fd1f5e74bd1239120bac5717ec624,1 -0x99bc8703188b77b6293678a9a24a92d73a2684b3,1 -0x048a6b96eab966044be7c52d62e344ce694df438,1 -0x2cf152c800cbb03e57213b723078029c3bfabd3d,1 -0xbabf746dee56bac078d8e282c69efc8f1207d2a2,1 -0xf863088b84d49ecb9220c63d6079204596299620,1 -0x0ba961b46bc2b48658fb5e294642cab3343b409f,1 -0xc36d6c5795baea8eebe6d26b742a618323ac48f3,1 -0x84e6ae8ee5bed663b98eea1b12be2aae10dd597f,1 -0x1138fb5d67edfb059a061324e19be601431ac8ff,1 -0x1b00d76d659a3ce6523c36cdfa088196d247b90d,1 -0xaa54fa7c21aa518787208923d8d173f2b22658ff,1 -0x16966bc6233bd23ab6eaa2774ae6783b8e49b808,1 -0x172489afa0b8545c57270bd7a2c176ec78ccc85b,1 -0x387cba7659e3898153bcf6cad87e0f095c383906,1 -0x897ce667bcbab468fdf4a6f058e73bf826adf9ac,1 -0x092cff73c77a9de794d25b0088ded0e430733dbb,1 -0x1e466e6a1b2a58b58ae32397a86157522d4b00e6,1 -0x16d83472832a1ae95a6a06124e963666d94bb4bd,1 -0x8520af6399d40abdb12e778abe28839da0e69fc9,1 -0x943487e53a1a4307bef51448573622224c1a72a6,1 -0xab87cde2a10a0a76f08a7ec29655cf2ea42ffa20,1 -0x59eb752af4247e4b2533e43dc554406f706527ec,1 -0x2d914750887a4e4247629db355bbc9302370c549,1 -0xaee9343330b5f40c577464d9c0d3d3ef876f909d,1 -0x1ac7fcf83d5655ac8f63cfcfa283a5fe9a3c98b7,1 -0xb1b64aede391f6e367ff33fd82cd93017cc2aa51,1 -0xb6aea9be708e318640a98a75be070b20d60dfdf4,1 -0xdbd161be988b95d2b263f8eac431264240227127,1 -0x3c49752e1b208c8f506937d893cfdab6c4a5f62b,1 -0x28b6a7ceb42fe62aeec75b6a3577d1be0c03c1e5,1 -0xc6959dace7606d46298ea5d9c2e2f09f2bc3fbeb,1 -0x605f832fe7f4fd2106c01873dde9960f06ced909,1 -0xf39930153abaabeaa5ef614324fa95adf0bf9fef,1 -0x88dd999a2c97ff7bdcf3e7baea3b368a01a1b373,1 -0x0432b5baead0d230c1cf460ff0972a498dac6bcb,1 -0x9f65b061517e72094863dc8bd8f007fd06999338,1 -0x64e7ea3c9612d9aba9f6e1ae63aa27678dffe6c9,1 -0x4eb49cf7fd6534d3e2bb2633b340f80e773897a6,1 -0x7eb36a9ab894a5cdf0d445ceceb444ba12f4303e,1 -0x522148ac438a4d68110c259d04daca5b425be0e9,1 -0x0f1265b60c1ed1a21f689ebc1e52cd3c24724649,1 -0x89de388b4a1016d8c9905dcc6f1e49b762aebbea,1 -0x8699b0ffff9136df5fed0175baf4b65477378a3d,1 -0xd3270fe3c8edd8295532f7e68c665abeb22e42f2,1 -0x1c9f7a9aa776d875d88e740a0436da62709c9005,1 -0x18d8b65f80454a74491a1265736a574973d9c781,1 -0xbebc901ea1c0b15bea954a3bfd9296c3b70fc4ad,1 -0x4b8e65cb88a840149dd173e8f0702cb07d8e3401,1 -0x3920715a86ac84efcb2fc34a8269a09dc520b024,1 -0x7e84b92e6adaff908924fda3118d8f1010d986af,1 -0x7fe494de8a522a2355306cb2d30544096939ecbd,1 -0x9006b4cc30a8a7ef03b5bd8c8aed09562f32146d,1 -0x8fafafb82dfb548ffa9a32c4433f1ab30aa2a9fd,1 -0x3051fa2812cb608a64a0de2db987fcfc302f36a7,1 -0x5ced88e47350b190fd414fc9e031f57e942b8a3a,1 -0x139ccd0685c201ca98b84c139ab7e7d0143ae436,1 -0x2a239a0dd0d618930803ba540f1669c0e0766877,1 -0x84c7dcf0d7eaa3e4584a9819c2cb53a6b1f0fc7b,1 -0xbe952ace9ff2b1fff37231d94d72902f35cec362,1 -0x4efa8d1e13cea85393126483c7b0a0d4f4c84e30,1 -0x95f9fa712776480df0863be73d0d52a49ce11cd3,1 -0xde189ae760768bcc4efef4a3783e18570d083118,1 -0x39a571428b0e5bea03adb24e5c5ae688be128354,1 -0xa71c420fec21c3f57a523af67550a9da9f2f4331,1 -0x5481032ecc006ebddc39e478b9544ba04ed8c2af,1 -0xb78ee63059cdc5cdf7cd84486d60a449fc069c0e,1 -0xf42606685197cb74f805b1e13ccfd65229a2c672,1 -0xace1c1abc6776f2db7d672791c8e1f404f2ead7a,1 -0x5058af7b827e261a6c81f71e2a3883a91a0079dd,1 -0x1c68e82962394a2dd0ec0a58292c2af549192967,1 -0xdab9e66572d455dc3b61c27b6b5f49336eccf1ee,1 -0x60c4a5d409c24e96c2d3af17797a1c9ac23226bc,1 -0x429efaaac9e43dae0e9577ec95c1b657ad1adc83,1 -0x422f9242b41813482e8c7acadc8ff6b3c3686f32,1 -0xe47be0ef1921d3b18b07686e1e9b547357817c84,1 -0xa725af04f093e20b645cd81cedcba224665f66ac,1 -0xaf6ce6bae0fed18c5e5e56b56d63cdd457646dec,1 -0x2789f2b3fbe64275c894ea65646e96b4d8994d9b,1 -0xc6a5ff80198b54bd921cf8b4ffb7ad89bc40f527,1 -0xac5f1c6cd153d303a442ff93b60521750b3890d4,1 -0xaabc4031e7b1a2d02e8a4f8cb07bfcab66850e10,1 -0x459905759f561db407e3b0512cdbb6364b3e4656,1 -0xcb14c883cb471fb35b50b2982f02e8200d66257a,1 -0x8d1b1f73a5845fa94ff993bec9c69a7f72faa265,1 -0x99632eb497843f55b7bfb8d88843a6889a377332,1 -0x1ea0bfbcb47863e1a15e5c8e17f3d12626453014,1 -0x5fe79feb249012773da1ef7484c29a4c4fc6245c,1 -0x461badd7380dd032e21a4aac36a4f09afc2aa589,1 -0x5b7beb30a2009d1b6d388ce319572556b24861af,1 -0x1a8e6b349c100f2971a0c09be029567fb160b9ef,1 -0xa28e586e24e6d78d05e822188ddc118ac2fb034b,1 -0xbfdc2972b24e54cebae9539be4ac58478f526ef2,1 -0xd2e77a074e8b0f15c6ae1f71cfefd2adeb70189c,1 -0x8c6d90e336800465a8375f3b31f3891a18b25767,1 -0xc8f1816e996236f53aad73d1ae93fd0d7b36f23c,1 -0xde3ba1b41e6c612a3ca3213b84bdaf598dffdb9b,1 -0xb91afcb0c95d18203d2858501456b9b0e9c7ea6b,1 -0x766779a58e4a7db930cf268c67e9abe2f3a5d5db,1 -0x056310649e796ac2e793295db72bbd83ccafbf56,1 -0xc3dd5ae457c89252b2cccb4eecf167b97a504fb9,1 -0x7f1a3cf10e246b0da89c99e0cfbff7ab2681dc65,1 -0x10591fcd9278b7c49e152337a4ddd535d261ccb1,1 -0xa228ec4a4ed13d96dd1bf56fe83bd235f29e922d,1 -0xa74865d18ea141f362b829e10cab43fe3c35e930,1 -0x1f6ad75b49fea4407b198fafea84d3f6c98d2893,1 -0x49e74e31787734c3543e99bfacd457cb8286b239,1 -0x9c89964f2b024b7876ec552b46780ab6235faf26,1 -0x1eaecffe255d276091a180ed230c3f0bf50e5fe7,1 -0x366e3ce88b92c3973f3522ec91d6fcd11bda8cdc,1 -0x099c38ee0bb49ab6c91809152d352e6d2820f3f4,1 -0x07858607cff52d67d3580b013c00879a0c35d4ed,1 -0x89e407cc7561b4ee8e1d0e9a37438709717661b8,1 -0x5148c2d7cefc4c9a795a80d9bffe49d39b9838af,1 -0x22a72f2789a0c1b0c00a4c37ecfa8dcc7954e3c5,1 -0x01618be858cfab9bb11bf46a16a2c3d9a0fe00c7,1 -0x52cbdd9e700cbf1a710c2e4432b6f31472218261,1 -0xfceb90dd34ab5a0c409a18f23bf2bfe675388b97,1 -0xd1598557e6b5699701c9271e52aebadfd6da3dfa,1 -0x9f4ae0b609645027137bb95491bd31df16ac77d7,1 -0x22294b2fea0e5866f59383b31f31b16b7fc86df6,1 -0x80da6d10ce4080bad13f998884be7aafd537a7fa,1 -0x8fef14aba009a1a28e51dd76c3e5e854a1a383b0,1 -0x9daffd05c569cabe19d33c49007d32acb6ace663,1 -0xacf890389ff734d23aeae8ea8bcbc1cb7b9fee08,1 -0xd1485e67cf18e92c4336c6cdc6b189b40bd4b9d0,1 -0x99845035f32b63e56d294af45e5bbf2eb1fb0acc,1 -0x6ffba0f70a845fd5e714257b4c4b8625f108edc6,1 -0x1e6ee6cd157a573bbae8de48ca34d8d92f14fc97,1 -0xbbfd5c6a1d949faf7c042123507c099e7d4bf63c,1 -0x60a4a8d44d14915783ba533f557488f0f1fa82d4,1 -0xe6c68735e8de202899b1096f3040a665435fe5cc,1 -0x1e9c9e965de0ce5f877bd0dfaf6c60e221051525,1 -0xee3f530ef6dae8e886ebc350c44f34b42b199fd0,1 -0xf4756c1b4ab6edd4f179570a803618e28259224f,1 -0xa10605cb80c8110efa6062ead80c50b4b4230b13,1 -0x836a2db4a9195bc2117832955f98ec9c2d5e7211,1 -0xb621ebcda4cdc16ba587d893241a23f081ddfd17,1 -0x033587b155db4da365b03a3a42a673341dcee2f1,1 -0x4198670eb1136919f619245d1945071406f75a60,1 -0xcd9846ccb28f13e5fbd28c2bc4f2f8733ad9cc00,1 -0x9e21f8539224953e9242e6e37152b7f595223762,1 -0x024a9784606b4484f13b68903738a930e0ab442e,1 -0x80918b0eac03d091c09d205604d20378b82b97ee,1 -0x169f6e2ffc40bd9bbfb86000057faf10fa1183cb,1 -0xf41e9d88a658eec1fe981987a43a51f072e0df91,1 -0x367fc2e96447b51a456767755316e23d3b273906,1 -0x31cc561ba5e38d296ede5031c2d1dc13c5b40664,1 -0x0869151e87d8430109f93ad69930b61ee9a7ecfa,1 -0xcccd6bc9ae993dbc778b146e5be811626940b8d5,1 -0x4fb2a10a27ca6326bc16b04eb45034ead74bad28,1 -0x22e5f874b60286052378ed668488c632f2e5721b,1 -0xcb1a541f101d00831c08d4f5209e07d9107dedb4,1 -0xcccca855866cbffd38c4b9e151441bff414176f0,1 -0x462215aa35cf769078b0a10b5248542fe86f37ec,1 -0xcbc68e66d9bc0d9c343a29421775e68cf0089db1,1 -0xb301bf5c415a9f70e8c6729f23f452b8d113b0d3,1 -0xf62c9b60299d7addd8e2db388a426283d2476755,1 -0xb88f002634cd733fa51eecf4905bcdd83c5b2adf,1 -0x9b85d428b5327ab0604868d46cfad2802b66918d,1 -0xf754e3f2977388ac178126ff3c31df1f29f42094,1 -0xd73af800c8e42a339b9aaf8aced3b19ee5c49104,1 -0x7cca6cb707ccef586a3247ca1a466c03dfa58f92,1 -0x87b77ffc32b6185dddbd4949d573e27eca237ab8,1 -0x6c175859025bdacaf8bfd69a3c1c7b3042ad6d04,1 -0x0cc1a15c6452215a86f2294c63bc37267574381a,1 -0xc49c70f0c87a60110c5645583448e55e0fce5eac,1 -0x977acaee9bd726d2cdb1e6e2943a636dd65d73b1,1 -0xa49cac739b48a8cc81513ce22d84578aeddec2ee,1 -0x38f9905c8be6b1e02b048022e348af2c09ca9cf4,1 -0x425801b3e2921f2924c655158d09ab0cd78e7618,1 -0x40ec5fb352417988018c8d53a640ee0d8878f414,1 -0x1d99a93b99dbd1321a4022f6bbababd07ac485d9,1 -0xdfb7b991cd8d36e747f81495da43ab429489bf9d,1 -0xc54ef28f24595b52e5859334ffcb6014138f3b68,1 -0x7031fb47d464ec098dfd79384bc357cd24cc5f34,1 -0x2498a48bd90c12d6aa82c620929cbcf3d0a2005d,1 -0xa8fee7ccc1438ca50bf9565a8826a085a35a5736,1 -0x4d047d974f7beb4bfcfdf9559fc398f596d676c9,1 -0xdf10fdffcfc114c6309d73843858c743a1f61737,1 -0x3afb39cc70d07735be24aedcd55774edf54070f6,1 -0x612f74f22da817285247bf550b7224cc86643627,1 -0xaee96e7418d5b19fd20c8d954f4fd3ea0baab12a,1 -0x8a3fa7c946b5200910002ee1664e13722a031a88,1 -0xa3419664e7c2545ec339267bc13c5b46c4acac2e,1 -0x94d1ce256143ade8ce53f61197359815407343eb,1 -0x2f0e466a96a5fe94479309f700bc69c2167a7b7d,1 -0xccc5131db50b631e0c6c4490b111c298dbc0c7c9,1 -0x12286d9c123bc7e72aa402cafd90b12d6172c209,1 -0xc694a2ebb25c64adf61f40dd5b857613f00379f5,1 -0x78bbfd239b6e4ef046a432006bae504216033855,1 -0x8566e79d58391fd2833f4d7252cdb71325033433,1 -0xe28ba688fa79fe2ceab0650a451c0121e71c1662,1 -0x2df11633fcd026e6d57a29ac401750befef26562,1 -0xe39f7d36bd272302661551beea94c054000a5c73,1 -0x86711ce1bc97b6d732fe306a13231fdf55e64856,1 -0x703e2a77fb3c6c132d95d82bbb0e58c18abd15b2,1 -0x21f23e44c17604df9a9e42197e1906580b8e31f2,1 -0x52bd1cd1994487e82ec9e98b2a45d27f8650f013,1 -0x85cc2b1205cd3d7ddb0d0b9245fad850b211af95,1 -0x5261851f6024a62dfc804e672d68bcfae59b0c84,1 -0x51136c3db8011a7c742bb07ef3fb070fcba0d9cc,1 -0xb743b379cc2d631b05652dcb8623ce637cc3d27b,1 -0x1674bf0498d726e034e893ec6da8fa3d0db503d6,1 -0xf8fce1599ac89c3f0b86015dcf63951d084cc7c2,1 -0x3e8e0262e4cd3773181e203b3fab273d232493c3,1 -0x7f7b8b77bb5ed492f0e23dd7317cb57842224c1d,1 -0xf46b8e9f9e01badad4e0d138277fbe3a61d07c18,1 -0xc3184a1cdd3ecc1fcbb10825b4746c68b9802aed,1 -0x2399154679959db9647c2972c32b942c0c608e1f,1 -0x0141b2a64e1586528f87e4344cb95556e1225c56,1 -0x488ed54ca0ae6d64683286278be99e9c3a9c203e,1 -0xa31a77293ca86cdf0e42de4e8d18ca807bc0e90c,1 -0x55b00779b5118b1d49cb00cec9abad843256e363,1 -0xb7e691e95333f9927c1d64650127ca4e6db5800d,1 -0xcd20bcd68b88449de2a7324943a6dbae04c0d750,1 -0x61aa1430138824abd0c1f0878a3da2ba18071e8c,1 -0xdd6edb937fe79cea30eaf7218a5fd307a5edc831,1 -0x2420a935c70837c37b1642617620d42847f2bbd8,1 -0x8661aaed387479d0fbf1bbd778a0123db12fe5cf,1 -0x54356096a6fb7b88747b35c35f80a84fbcae63e6,1 -0xa1d5f9004b37bb5c0b11eb7a7a74bafc3e84ca3d,1 -0xf5ac9490bb007d99edf3044985e2a993e833844b,1 -0x8c8fe672a84a675c8a5b4c0b02b985341af9e83b,1 -0x6951c33ac15431205e03e1ce592ff27e971cbaf8,1 -0xbf16e6809953b2e2ed5722773b4fd4e672a80546,1 -0x6d20e6264a38bcd00475364446567cf5dd7396f3,1 -0x04c35badd15938aa8afead03f8aac828e4d2ef2e,1 -0x80fddb44346936b33e614797d6e55970615193c5,1 -0xe3716b098600058dc8aedbaff72c10736421d329,1 -0x7c764b26be1bfedc1729ab12fd86815b8093ef69,1 -0x54669ca58bf3a59caea8ae5135db491e4738f65a,1 -0xb521d5369ce8680a6cf83311e50b343f5d748f33,1 -0x897dcbaa846bc420de5cfca7031bd3363b15342f,1 -0x9658a28622e554ae8564d6021c7ac2c48c4c95df,1 -0x362223f2c650c1ed2d27c71e6d91f65b001244b2,1 -0x9caa23b3ecdb26ee385eafba8a1d22420b0afa17,1 -0xf1664ab75f2465a3bd54f5c1d0306d89eca6ab65,1 -0xfeffcbae4451a26bfc2c81dcfadaf9b27eb8e703,1 -0xb57c962f7e17b3aacb35de80bd95e7b4b2915275,1 -0x898179f6d659ea454f0ad35bd88a793894f62a78,1 -0xafd01ecb7f834da5d9dbed0bc3d32f4d70ae3da7,1 -0x57794e0563dbcb56deaa60980d796a39655d4b5d,1 -0x3a1020944b37f0f8760225dad1183333d887081f,1 -0x4736b438d76d9eaf216561ebf8b67a6eb1360df3,1 -0x0d82ebc0e779aa73a0eb899252f9d83167872903,1 -0xf12c5b5617068ea2085fb4d801a3cc8ff4243265,1 -0x4c1a55dc5315b2fd5ec8df624a7e1012f38851fa,1 -0x47cd660951eb44ee5c09f2f350b18dd6182ff107,1 -0x5f23dfdbc250b2c3ab739090f33b00281678ab93,1 -0x597d94248c5181232e83ee054b74f01548090f33,1 -0xb746fa3a9e1904d39bf5e504a504f3074dc1c6d5,1 -0x1e81bb9d6a736da975ea9329af8b81a25fbdc20e,1 -0xc238da7a347eb5f717685896089617a69c439736,1 -0xaabd872c45a02a76678d2aac621d028dd1c08dbf,1 -0xf1f22b56e999814f6d1ee2997359c9406790012f,1 -0xaa5bbf9cf788c6c6d35cfc22ca3278f278f693e3,1 -0x7df0401bcacef59df23be98dfca96b01422fc469,1 -0x7996814a66f36679bb64fa2baa294e9bd5e14fd9,1 -0xb0c4cf5f23228438ac147561c875a179397acc4e,1 -0x21c5940965a6711de86be7203966023a68441ac9,1 -0x55ed100dd46199621f484f25fe90b7b78f0c32c8,1 -0xaddaf99990b665d8553f08653966fa8995cc1209,1 -0x16e18211db9c7e75f0ebf08aa3c6c444b6f2443a,1 -0xb8a3a3d90e59b8559b10e373e8be9af9ed4df6aa,1 -0x4fb72539eaed194914f5372aa89f1938722aa3c7,1 -0xdd0f08dad5cb2a920f6f9a72b2d9f44699df3a0a,1 -0x94f6a69737d4bf07d5c08e724c504dd4ea2c4d43,1 -0x6780b61905a774f9abf8c1bb3bc22e70bac66410,1 -0xbff9346c0154a5c88413e31ec6cc7c3f9a636647,1 -0x72ec6681a5167761be30ac9332522a6da3004b1b,1 -0x4a38816688640fee2a44ff5d89fb73eec366cc99,1 -0x5b1515a2013379165c1272354e67204a75ce5273,1 -0x1c2ff9f71799392e588f791e2fd0fa229938b8a2,1 -0x497b35227f76088afddb4eacb9de6a7e2270bfba,1 -0xf1586629bc66fd04f49ef80735e3ff613bcf1b4f,1 -0x7049871039097e61b1ae827e77abb1c9a0b14061,1 -0x5d54dbac524eed9fe4606f65fc0f069e704323a6,1 -0xdaa72b5bad99c4f3498fd1990f7cbab79d464087,1 -0x9f0cf614f2766e34a65b938e1f63a7b0496462b4,1 -0x29505f8bd14fe0ddbd558c57865935660ac9249d,1 -0xc7a0773924777dab183743fd8e3b859e95f0c5b4,1 -0xd906fee0514edbb9a700836871101e179016a9a2,1 -0x0949952da2c782efc9fc035738d09d3e49430aa3,1 -0xcd7899c751dbd65a146c50e9e47033bac90c8d00,1 -0x1b8207df0c744b083f07cd4f6434477f60b60510,1 -0xa05318cbd62f8fb023d057a55a44245631102202,1 -0xf4f51000ccd532c7166d6e4e15bf8f0d0080bdfc,1 -0x91f90c5386868937527e28bd0abc42d6df0c11b5,1 -0x1627902c8aa6572894ce678d0703ead3dbf74d5e,1 -0x85fc2bc98f3bdc7feac6a0850437a40eff440659,1 -0x0bebeb97b7624fa4f897100a985800e77de62475,1 -0x861c1e123d0f82e239d414d00244d1e6d35ba2de,1 -0x652747304adf71a95bccdc13b26ccdee10c6987d,1 -0x0b39c7565d7395b8d4d6929e416f17ac1b83978b,1 -0xfa3b43eacf84283063b63d190d7bbd0f0f80a8b2,1 -0x77016474b3fff23611cb827efbadaea44f10637c,1 -0x2d43961006ed46138fc6428db2b42473e140c9e1,1 -0xc112ab97e2aafb327c2e1b1fbc04fe0a511aa3f1,1 -0x4457e3fdafc412365caee5ed0cdee7ff7cbde45f,1 -0x7123f17d457cbd66e68641b8993fe7115ea3fe1a,1 -0x742d371a686a20ed116346e7315aee73515eadca,1 -0xe71758660904d74618c0f70d6606bc270096c899,1 -0x8821e0a4d1d5dcd0d6b6f735e2cece7ccc365ab2,1 -0x7e5b399e254665590266ac6a9e2a1e3336576cc0,1 -0x7ade19defcb1245f20d28f41c5fb83d0a7b658e6,1 -0x4f6b8616adc463705edd91f9ac6798b3ddfaaf3a,1 -0x4504eed1a5f8d0069bc5abe216eed1274257446d,1 -0xef9e96d606877cdfdf58ec1cc12fcd783064063f,1 -0x580b4f5768148ea220e865f2e1fbd0984f0ce8b8,1 -0x32802eaeb136e4b34ab0c031981dac77b98856e7,1 -0x33be75c85fd2a7ff84d28c56135351b122df4a8d,1 -0xbb08ee9575c2f68a4f28b46233025f812146eef3,1 -0x128804e1b2a4c20472e6be061c8eed3d986acb7a,1 -0xab83996cf53b6eb77a2fb27fb101b278670cd440,1 -0xa299b3b7055024597e8192779b428e02526cd1ac,1 -0x1f6b4982fc2289769b506c13506970d81cc59648,1 -0xcbba3c795182791913faf00f9a7322602c775421,1 -0xb8068b48e718f2e71f75fe1dfcd1bfe0e411f1b2,1 -0xac75cdc34283406b050cadf4ea5902a9310b138e,1 -0x71c6f9677840ffb540b667d4c0ad860e2cf61f3c,1 -0x45b3daf3165135847cf6775dbdafc10cb0f34396,1 -0x9cbd3c070a904f54f70e9bbd03bfa26071b8cb54,1 -0x4d01f372067c16f27938d337c91ccfdbf2e006c3,1 -0x191e71d71fc4d740328b5d1a2ad516c1fd26c431,1 -0xcc18c0d3d77f3de5af57d5f2ab6ee4de0342b874,1 -0x2321644e4ca9cfab479b2cc807f4d0afa805cbb3,1 -0xf33b2f1d22828f9862b377559fbe763697e9d95b,1 -0x911d75733a0e8acd9e09ad7cddc10987267515cc,1 -0xe4b2b223725ef8ab53e6ce85ffaa38039574c514,1 -0xb090099ebe4eaf5146af18ae980176dec91f6f98,1 -0x7a811d73dd8bc0bc6431b576df18a51b11857eba,1 -0x4885c18a202ecf3877d6a50b550f96cc98843478,1 -0x35fc36299b97df9b0aec0e1e26a91b9e0c286d47,1 -0x595827e500618c2c8959813b10672fc813ca42c1,1 -0x004c708f399cab8d43c6994b01418d560acad8a3,1 -0xf4f99fb402ca269d6889bb871da3f243718d92b2,1 -0x4f20a47dd1682f736d627686e344ab12f12dfdef,1 -0xf10daaf0ffca649977d30ffba56404fdf42248fa,1 -0x0443eb3317063a01a08725dfcc72a1cedf9a5a1d,1 -0xa584592336085761c8e8ad13ff51b7d867f5c402,1 -0x83d2dc29a58aa735ae0979edd34a408c763a2a25,1 -0x5c3941d12875071901fe901dcbb26784fc7421a9,1 -0x79c758cecde838e7e49e9fc29e822e1e8f795b5b,1 -0x097a5344eb462d5ddef7b8dc9c02506f317e2629,1 -0x125161073267bd5136a119031e036651e32a671c,1 -0x430394656619150dfb1cb908ab0e109b372bc94e,1 -0x82ce5e9cca371b4600d8886c91f452f6d4fb30db,1 -0x4eb33f158ca6a9cc71751010a4d2eef5704e3fec,1 -0x9ab96f9e04593e73d7e6833f6adeab79c2b6fd30,1 -0x63f9ed2325c7766c5229e579e5c081ff586ef228,1 -0x6d81ac1d86bf91058d321161eda7b46ccaf3c748,1 -0xc285c67f8674e37e2438ae554c7a73d508473e75,1 -0xf70ef482cf6dc920fca74f1b9fc717f4d356edaa,1 -0x615b68d10629a844f86a73daff3dc43d1b9fcdc3,1 -0x2d785c6533199a38f5c1992bc54fc9bafb408981,1 -0xfa3439293c048348af6ee9d299ee045d505bb70d,1 -0x24ce9df9d146e36a205313a923d6bfb56f13c8b8,1 -0x1b811fab3618e727d5d38d7e6338262ca372a3ca,1 -0xb33c27a974d1ef9f39a5d6e50c17b6aef71c8594,1 -0xde861afe602fdec3a5854a21d346b3d3f056ed27,1 -0x1e9eea8688130c71e46c2ebdc040aa34024a0f47,1 -0x48758d9121ab4f37ef7cc5c3c965e77a6c883df7,1 -0x38fa8dc1bafc593eb581395e8bfc0cb6925f22fd,1 -0x91f13daec00de1706459ac45674bdf0f539b6f0e,1 -0x0cd702eb9037b9a9d7005d9e766a9fa8af0d0495,1 -0x9aea29e7e6f72f689dea0563f52a9dcc7d4855e5,1 -0xa9eac7d9751cb802eaa79fd4c32da2c2c62af30b,1 -0x5f89fd0015bb9d3fd60c53c4212b65bf851f9a04,1 -0xf85a9f2d6a528ff9d5a583d8ee12b0aeebba971f,1 -0xf67efaac6184823a6e7a5664adcc8f10773ab0cb,1 -0xa668c0bcde75f4de0ddececa10fa01506a5e8a10,1 -0xdf10bb788ba25e173c9ec0df82e4204d0d1a90e5,1 -0x46d257f9c6f347abe29f7c969de5c736a703a2d0,1 -0xc984ee2e04831e5a1440443a3fcd8a539db01b3d,1 -0x2e88435f98b73b02621d2411c81b5cdc1fb97364,1 -0x878946b29449441c87f6fe1c459b62fc1613d45c,1 -0x94453d1af345de44edf98417db1f08025d1bc473,1 -0x69ce9a24fb4b74a535f4c8e3c2e795586006f11d,1 -0x78d5a5d097df40785ea12b86045715d3887af411,1 -0x57a15518b0ab5309d6459dc32a8acd1e89e4f333,1 -0x8175e7653f1f09316ec18dae703f455cac3687ea,1 -0xc2c81b77cb6495f9f698f6ba155142d62e493432,1 -0x2eaa7df909217096911824f8bff79004fd684619,1 -0x45cb238706912d2a36ba433480817feea0418d9f,1 -0x99b2648be337168035103df00d84317d1af2ded5,1 -0x029e0619b5ba062334eb8ce96ee48257edfa7f89,1 -0x56ea713a4ac97687a88a4599a238a712c7887e75,1 -0x66311bd2cb75c30fd472013c1353333fbbcc3b44,1 -0x6767a7296ea3bde8c01a1678e0ba3beb2917cc80,1 -0x6be2622962d3444e3dbb7d4585d38ef6154bb506,1 -0xa0d72886894ca485180c446013cdfed992f83ab1,1 -0x8826acc6c3414991b49688b05f4baf33b12b4d34,1 -0x78fa606b4b5d77114b7f86c69b713b103c238c55,1 -0xd72cd2f1e50d336e2e04324f9e17c3a8b298aa9e,1 -0xc46a49fd4a8854e7f9920653909e20922489e1de,1 -0xdac5748e20c5d9d5e88f92b71072223d2fc6841d,1 -0x8b7265917135c7e036013e54e6c6a2324591f444,1 -0xc027d73b3aaebe621f0f05a7fb34a3dca5702fbb,1 -0x8b4aaf33b310656986c55e1490ef3e2ba77967c6,1 -0xe56a3625123cb20f9f4954a2015b8116e70e9a4e,1 -0x4917a58a44013f2107d23f8db414db745a0e73df,1 -0x6c2d2ee2929827bf1b7181d4bfba11b549ddce32,1 -0x8c28488b493e4a7cff37717456036937db013f9f,1 -0x671ddb778816391fd706fd0c2a9ea73029143f17,1 -0xb2f929ec51462db12af0da6f0ffdefbfb70cf667,1 -0x130d1f8975f76668cc55da6a44c32a78d45ea9d1,1 -0x59a1358f87fd8886c507cb307375f30749851e2b,1 -0xf6b84cc29cf0311cbb9fbaf5313e9f5b39a0fd22,1 -0x5887ee0a46bfbb8e896ad9c2fe054786479890f5,1 -0xdf6b0c526292ed2395e67c12bddcebe7c63ba6b8,1 -0xe3d3f5cfb7847bc5efd243f43343f0550a45cf1c,1 -0xb9dea2b72dd4923e2aa32157eafcc74d9481697c,1 -0x3467edf9fa6748f301755a464659747f4f35807f,1 -0x05d3e43b5ee0f48665c357658b6af7b1f8800049,1 -0x4f13caa5e5aa8d43dc91d39265fb83ce1b1ab474,1 -0x985b01c8421252ae35e2f4dfcc4862bb856bbfa6,1 -0xb9eba47fc604f68b0bafc04ba6296fe3c7956b55,1 -0x57f4714487ed32c495e770a3356730389b9843fc,1 -0xdb173c971e2c445468c9e525618dedd1618cfeab,1 -0x2fcff753784404b30a74b5090703c986d343497e,1 -0x629a3e85c7b0cc733be9de8206b2712776290258,1 -0xbbf5affda8e775d838a6854efb6f8477f630b4c7,1 -0x13be2c9bf0aedc6796321570563b4a0ba26fd53f,1 -0xaabbdb03a995ab8f1749b5aa7fa47cf338d79f17,1 -0x28d3dd4e87446db9485adcbd32f402d2a1224661,1 -0x42a2f4511c2b006671bf9c7b71f53da2d3f33444,1 -0x492ed46669081db05530225add6b45f92e50bb4e,1 -0x2df3d52fcced0bd59ebf59d4b67f6ddbc1de8bda,1 -0x98997d2a401fdffb8b64f157520dc03b8ee3c1bb,1 -0xe6eb6a25a32e4d3839faef9960445be9e41dad61,1 -0x8fb2f2ff2ce7e4d48bc110bb0742ffa942f9eb82,1 -0x0f7c3b018347eebfba36b12d53928b00dc95327c,1 -0x7cdd673b904f8629c78e7189e4a430461fb8976c,1 -0x5cd62413d31b90e6b6e284a4779ae4a974abfdf4,1 -0x032570fa2895fa876eff57c417e7224da0490cc5,1 -0xbd584ce590b7dcdbb93b11e095d9e1d5880b44d9,1 -0xc49b9fc898eb09cd28741f80c65afd84107a9a76,1 -0xcb488e2767e0381b90fc869647687f83df9d0027,1 -0xf1c888c763c5857c925fcc8952b6d31011b4de0d,1 -0x11a505f1c082d5cd0e0466ee6f6f09b621c8fe37,1 -0xcc7f6756233a787ac15609837e428f243d42424c,1 -0x26c4828e411c4c03247d8ed8cda5aca484cdd4e9,1 -0x76ffe6baad3f43a602d933a23e525e102806b919,1 -0x416fb32f91215f7a17fa30b9dfa6e1038ead014a,1 -0x4e6242aa1ef574cfa9fd23b7905c347588ddc706,1 -0x140891729ec85866753cd363176de33adadf56e3,1 -0x7b300896bcbdd1c95d3805a76c894bdf9abaa473,1 -0x5f578a06068f13dd1a72917890d36b97988b03b4,1 -0x1990da4015f39a6a9e0ba9d334e940d7a017cf39,1 -0x824cef7286eac9bf2102362bc57f7632bea44477,1 -0x0778371a572b5618c7ea97b9ad842510c8ad5568,1 -0xfcea51772755ba849b39376f01f89abc6721317b,1 -0x212747444ee9160bd2ccf39c0be9c741497bf490,1 -0x7e032a1cc0fd2082d1f27992e47f117658272b51,1 -0x407ac549394fa6f05a344b2d02a4ae584fe1c3dc,1 -0x2b4ecb20b3789f3db2eeb41ccacc74bcfc89b387,1 -0x52cb97e15127321f72d12819be8369799ce9ab6a,1 -0x74cb2cf6169c27198ae421241acd389980b7b520,1 -0x15fc7f8431c3e8346425fb403bd4a00592d1441c,1 -0xd4a030608dc78b76b01c923d73ac3565357419b5,1 -0xa4805d64ef43076cf8988aaad47e5548c0db7fb5,1 -0xdf5896a7bb61e8b55460608c3410294abce14585,1 -0x1aafbe524f9c0c66d8ff84cfd865d81334497518,1 -0x487d0c7553c8d88500085a805d316ed5b18357f8,1 -0x69f4d11acc29a02cc7cf321f26286da32463b138,1 -0x4e365a6e1803761dc92bc3c5ddec6faf6d09e0e6,1 -0x4092309254915e9edd1c79390224fe797abd82eb,1 -0x2d40df75f83e05935a347e35f8486e600c8c7892,1 -0xcd435d644401e0341476b608a2144ad23dfcd249,1 -0x2ba14ec9fdda2d0b67f8bd62ce589f8310406ba4,1 -0xfbddf9ac941be9376da4d845467cb360c231bb1d,1 -0x8eeb0aca2a2f87fd8b5f81680558c8c3715bb285,1 -0x7fdf5e94866d3f71b32f2fb802860ecde5556684,1 -0x0de3a6d0f32f4a234aef37e79fb386351067294f,1 -0x99c5e20f19ec39f0a541f112366a101560fa7cbc,1 -0xe40a2a4c6dfc11f40f2bee39a3785f2c33c1d33b,1 -0xe5bcb05d604468202a033edbaef9b402c7b29810,1 -0xefae386368cc976bd653b97bbfa4e22308c714cd,1 -0x4c676730600090080002d07bdefc1860a3f39817,1 -0x74db22fef155fb0cc690a97cb4353ededf536f98,1 -0xbf2a422a204a9b84842e9d63d43d38cf6931ba55,1 -0x3b686bb0bcd1d63f58e83d24d78cb05e29ecaa2f,1 -0x221cc1de1308916def6977e7280a3a6e633ba10d,1 -0xfe85e7e41d7fc6652989e34932d84066e597561d,1 -0xd388affd618f5cd4dfb489a77d7e78919b0d772e,1 -0x6b207cd91ac894190ee156da46d080040a3af9d0,1 -0xb10d351ccf64648d27477bedc2722aca885d65f5,1 -0xbb4571ac427690c869fb98d0ee41e31bd2ee3332,1 -0x11bf738d728c4b41c8053a27ef0af112d2981462,1 -0x0052d2e4af4548e6cf19e817b944cedb23ae09df,1 -0x60247f45eed66373ef411d78cf4ddf65a4dec6f4,1 -0x9879169c9f3a474efb1383517d0c30a10bf67718,1 -0x7998003c1ce8c9334ed851514564d4bd6fd23d8f,1 -0x2e289bc52eebf12954250371b734f4bafdc187e8,1 -0xb47d1395a31075485079fe7f6cc17e8660a5a148,1 -0xc55c4209678dff0bfce02039f23fe59afea068f7,1 -0x8a44794cb67b44bc717ea3d854c26590ae2477cf,1 -0x8eb6868c402b28a679b7f4af4ae5c1b81014802b,1 -0x99355a5ab602c49e8ae7c775268e580ce6054edd,1 -0x9ed0e98e94ff81b7011fb2aeba8518e867c7093b,1 -0xbdacdef5820fdb9d9087f451b01be7a2523b9409,1 -0xe1449f7e10132153ebb22410c719fbd5f0bff6aa,1 -0xac50ec0180db0cc14e2e2f58a6e0968adf7a4916,1 -0x18836acedef35d4a6c00aae46a36fade12ee5ff7,1 -0x2db51a21e4a522f9d8a38a424fc90d901fa9c44f,1 -0x8fccd87a2a763d16dfb1ee3cd26e1497b91ca493,1 -0xfba4b04297c0a05878e4b46b2bce66046b092a80,1 -0x5d38bfcc4f6b45e53a3840b05bf346f49fa6ec08,1 -0x584463a06039db74a3f76384017b8f38bbe706fd,1 -0xcef1a057e722bdcf906e8eac1414f8baa4e5a580,1 -0x1695609ecf81d10f9b1227ced1a84eb36cffd57a,1 -0x04a0a3da5b104433625bbb34efb06ea742fca8e3,1 -0xc8f8d57deb431f3c4a7dbc2048d7ebae5b7699bb,1 -0x466a7a77cc83de45a04e91a89f5bce1039380ffa,1 -0xc4d59742bd702e92e746d44b3aa2b7c99a780325,1 -0x5af268ce315ccca6d59c0c5b10e9e5e1d8477433,1 -0xf4ff19c30c98533fd6d3cecf09b3d6802e470dd0,1 -0x8c0ef6b43ab0d6cf5b6820a086f1e8bafafaaf64,1 -0x1ee41f0dd158ae1ae4692e1b3d16dd98c64f3b96,1 -0xdd20435f369ef49d38386bb9bc629e45f27abee2,1 -0xb8f064bd0507f149a559e0541ad3c0f4c16eddd3,1 -0x40783477a69d8520f38c5f26b6f194220c27f0c0,1 -0x01c1d7334e2cfed733559edfec32aecb01813144,1 -0xb94af7fef06d09e9d4778346fe6030fb0a5789f4,1 -0x8e49a53f09226f633405214e9d56707d12d97af8,1 -0x2d8868275aa73896bb784b9623fb32d75551116b,1 -0x61e7f602b1fae7b87e7dbf556bee491b3600c247,1 -0x313def03be211e1afef18279bca0ce95f846137f,1 -0x6ded1ed6f34159fb61576c88b4776380c8fc4460,1 -0x76ba8674f08b13d6f78d74aa00c594cc9ed965d5,1 -0xa57e3bccfb933e6b3240919a71ae50e84ec7ae5e,1 -0x89d7007b1855ed9c15e9bbf3734ff10cb082d176,1 -0x8cf12138d9ed0d4793350234bdc1191b0c09c814,1 -0xc567a84a704c0867af121e96f300331c64f25e81,1 -0x6b47b0e5de11a4c7b2a880bbdc35ca11621a669e,1 -0x59c8a548c0cba1d89b9e13d19c31ec45967b465d,1 -0xd723b315afeff0ad0cd7246d7271fc2fd6754ee8,1 -0x6df78bd31f79d89f41208598411edc9b37396d43,1 -0x7ad84e097ac8261fba7b4b1afe23ed84553a618d,1 -0x546b6b750f95c5fd6ef4fd5160e30038af4957a7,1 -0xc490500607846e9d18b669d03451abfd50817f51,1 -0x6b707e6e4077972e72175b8fd68c157cd430d19a,1 -0xb75b091ae85107c950b9042287b8ad11070d6e38,1 -0x31a0da569b461adf48564b1456945165c067fb04,1 -0xc9f99bc399dc439a202aac66debf67e0c12e80eb,1 -0x4064d5163b8360be3ae29ea510bf63a648940131,1 -0x1ccceaf45873e1a9464b493ee813315a8de06707,1 -0xb3237c16ba36dc9980e9db1b2992807a0084c4d5,1 -0x8905ee4bc06c5b6db46ca90ec9bab73b6201c0e4,1 -0x100d9e93f8066972bf67579ea53b5ac04f343c60,1 -0x5b541da1233cac8f5b3061ea3a2b674ea6c0b648,1 -0xc00f658a68affc4742b319cdfdee8a58fb6d19ce,1 -0xe3d545e01d89866b0cc7d4ba347f04a2ca8629df,1 -0x4d35b59a3c1f59d5ff94dd7b2b3a1198378c4678,1 -0x93ab591d43c88d7630efc87f9ff58dbfb9633638,1 -0xcfb8d8ebd1c4dd1d8baaa8c0e1a95e6864b05b4f,1 -0x3cf80aed32d04106c316b0f6d2b15925f1cfce84,1 -0xfb57adf6a9272e8c544201cdd80088cfaf9bfbe0,1 -0xe49f1d57b6b947f550d780ab1e1fec0c1b2836cc,1 -0x5f3c5a0146a9e30d8cf61271c9b69b5eb4f3d929,1 -0x130d343d0337c86e66cd0d553e1d4f6f156c5c12,1 -0xe0646773f1af6805d64db006ea375a5d6c205194,1 -0x940b06e1deab94a79545fad26fc80b0593cf3ef6,1 -0xc9bbdea607c7ef19e468208727e329b735b3de59,1 -0x2fa8ecc16f0fe5140d4eb3168fa08e909d1121ca,1 -0x4a6ee15744d2ffbd373f76fa36a21ef711c753f0,1 -0x775751b37b1ae17a85b983970f807e348be2b633,1 -0x36a038c060619801896669775e89475093c76479,1 -0x6d10ab9b038122124de213a2ba8c9e6234ff3d4c,1 -0xc860a37a28bf35a42316a3159142caa0cb9939dd,1 -0xc4fd7ffff670d78fb4a7572813d916bc7b1cc382,1 -0xbffa0bf79185567f133f5f3d619e4e717f8d8b8f,1 -0x326002b7eb70384551c651062d7a0a7ab1552f79,1 -0xe244268d1136485101c338598bde105d989ddaee,1 -0x901211b1d57cf49fe2e5fee0031614760978461b,1 -0x933fb91573ab07d14d40f259fa205f6b2d0d5a6c,1 -0xd5b46091a8bee2980e069647f1c5de781b573986,1 -0x070ce39b5b0fee9ed5c5201fb1778d175137be03,1 -0xe71859a7d000648d397b6f1a33b491bd38f26ef3,1 -0x2c01d5196e2657aa12670d128a3546a71cdb24b6,1 -0xef2d4e5e978c15f18b887ce9e3c8185001dd3c59,1 -0xcc81b4631c4b321421267c1d4b43e7b2d7c52a23,1 -0x3a1936de5cfd48044f833094cb468cb56a0f718a,1 -0x1d4d668d1e6a3bb6f8064b1df2ede9f3e118a5fb,1 -0x2457e26c89ac2e18ff3b1703b42067aeb0783ca8,1 -0x3bf826415da10cb25a9a8e8a9e01b97bfc8875ac,1 -0x3ac4161dc070da4c6734c75538bb6ac64a0f0e63,1 -0x0311b7fb781b99df12406c848d78818b95e8e06d,1 -0xebd607c0f1fe614a5a35458dac3ea84d595d2fa6,1 -0xd670b5ba02e791db789495247e062196d4e5be50,1 -0xd7a363c8632333a2c22fd4c87c1b6f46e15dbe16,1 -0x65c062b350bd0b70a67622e876a37668a205fc37,1 -0x77459a7ff6fc5d1fdee6c1a651f238fd0afd7aa3,1 -0x8590024b579d97a1957a9083eee3fdd5c10eea4a,1 -0x978c188eb0ad763a58bb7f9fdb254a513110aa5f,1 -0x9654617220e021f942e844855621ed08ac9154c1,1 -0x473916d896eb60547c02c3277f9709b696cc24e4,1 -0x29e5cbdc707a9f4a7ec952b9f2a0726ac20fc308,1 -0x7634f9382124d4410087199f8e55e4d87cbbe9b1,1 -0x2a99dfa88c6258c0fb800d03d2962c90fe16c669,1 -0x5fc0fe76eef0c6ae30d3c8309b98ba92ba7340ec,1 -0x1010f073cf06d79a497cd93881553c072ade0387,1 -0x302000b0113e462cc52f6f8b7f64120acfbbfea0,1 -0xab474a14c784d900ae1337b1f5657fa80d990220,1 -0x29d6ab0e6316f90766c0a158eb204a2bf60ac23d,1 -0x3057b630604bee61c09173ac32385b97028856fd,1 -0x7efa2c77eeb2e7dab5f8a851ff3d07f284e4cc77,1 -0x11621faa7af2b9d330a1e8fce32b2d422d0c5cb9,1 -0xe631241cf2d082d4484e8dbfca585b055aca22f0,1 -0xffe3a794afeb8e8ed5789399d1eda68d161008cf,1 -0x01219d90cf63c385e1578b6bd48dc0976462a042,1 -0x650cb6982afdb217876bcf23798c4eda9096d2e5,1 -0x3c12e377a4f67aceb9300fa423ba26acbe40ebb1,1 -0xf851cba0eda1eaffba1b8684d747b81bf505a2de,1 -0x0824f953c8253a2edf98b8de116b7bdccf7c33cb,1 -0x21ac15089d75c91c78ad02371492da7acc81be66,1 -0xb172bdf53f72b73cafc6208fa0e2f7b2634d7800,1 -0xe26abcb5a64eaa8a9ff25c51e6b1ba6f609fa5fa,1 -0x11c9da7b6e7ff1a9374af75eb458b2165c441eb5,1 -0x6bdd034247df342ac1be9074e4eed0ec93b1e9e0,1 -0xf7a27b162b32adf08eb269813ed3af0f371bec9e,1 -0xc836c97a34442f7f30be7ac77f5a13b626532241,1 -0x0cb7a06ec845edca1af6db6b6538c4ca0942019a,1 -0x9ced6c82326c7dbc222dd17b6573e69cfe3983f2,1 -0xfdca407507279e1d66f3866269fa25a3bc932096,1 -0xbc15b4665633ec65925040fab61d0fc1c4eefaab,1 -0xcb3f68b6a58661d657ea1e90d9bbe2df6a1c4a28,1 -0xdaf140bf45808a302cac4d51af189c68def17fec,1 -0x89bfba20e2f6829331d01616db44dc4c39472c67,1 -0xc714b81afc0c00faea1b75e85265abc146a6ae33,1 -0x50df5ebb37d3e69a8b37480949dbb7ef96ad71e9,1 -0x3d39bb41500b18e6c890c98f43c0b75d7448844b,1 -0xc75097ca87dae7cc349f4fe26f8f40b2b952711b,1 -0x9ca7a1bc3262839bc2ab44881ab06c66d6edaf39,1 -0xde3e3b60d7e513a9478ba354e799b70fc9ed65ec,1 -0x8db13287aa28225489c3cbdc8ee37dd8da92e473,1 -0xe321584b9e79942cbd603c9c61f74072cfcdcb6c,1 -0xebc4e294408b764ede5b834535ae7ee2d99fbdaa,1 -0xd89d9d239a5657da77ce49933928437d8f15a38d,1 -0x5dad7420beb54078a86afc70a0c45a95424eef43,1 -0x79b23ef32752709550987eaea081351a9577b021,1 -0x455471ee4594990624eebd9296eafe04bf037433,1 -0x823d557c2c7658b441403ccb1d769d63481d34ae,1 -0xefc5e969caa7014ca59c0164f3b0a31430eed678,1 -0x58e264ecd9c5d8182acb73c566fa48dfc322f92a,1 -0x7eee9eb50558db4728b7beeef9557ee2068c6fbc,1 -0x058bf09d0c5f866d5f2f8696a225f121805f5b6d,1 -0x51814d060699ee9919fae591f1dd0de4dd9803bf,1 -0xf62d841e7e28809f63795d9fdef71ff2e1f5f66c,1 -0xbd1aa3ed2e0bb9a4b7050a90462c2a00c56b6f45,1 -0xe7874f71d273077d9977c35a46a7114b66ce0d51,1 -0xf784c42180511e4a0db09f27069e6ddeb3f79ab9,1 -0x9295d179e11c4116ea2f0b0feb8b94cee4423213,1 -0x6a6181794dddc287f54cf7393d81539be2899cfd,1 -0x9135541bf46a7e0fdd4ef5c25cbf693236640212,1 -0x393f4e86cf31302342744dbb3f04394ca6fca3ea,1 -0xb546462c4c73a5513422ee7dd8e13913c5b82a83,1 -0x2f6737a7cb10c06f7c4e0153f5eb908ba133c715,1 -0xc08a111f737c5ffc07a2558c554dfc4de5694ec0,1 -0xe5235a9af7d79bbe3a837fb78942a1cc490732be,1 -0x45d56f33bee17a7d7c070ce00826279f8b1da053,1 -0xca27dcf9ae7936509dde8f68d01eae8a84796365,1 -0x630ec05dcb1cff78e413e813f458c349d24bdc7a,1 -0x46c593b67a217eca59e50ebb59185669cf6ce301,1 -0xd7382de5a85485da6a79885e6757b108ebebc758,1 -0xb76016a18cb7ed9456384bfc8c1e8664a5e29359,1 -0xf5a8ac14c00ec8e14237005749a69154df743203,1 -0x31e795b2d27738246c482cd13daf81612874225e,1 -0xfa84ff13498da950b7cb711a5fcaadf2b1a63b22,1 -0x3243ef980156985fbb09dbec8dedc7c929b4536e,1 -0xfa45bc9649ec1ca536b511e60ca3667cec24e3b1,1 -0xb036d91f06e40e6c966beaab84c06df4efd4ef66,1 -0x4ed30beb4aa2be46a88147cbe155182c2944f943,1 -0x63aee0ddf3a5a541ea6a97c0d54be182849011b9,1 -0x7953df452d35c51d10c878a59b82629ad716ab9c,1 -0x97976acbc40ee87bede81b07d842e60d400ce393,1 -0xd2a62076ccd4832ea16e96f59ebe1d2b50630df2,1 -0xda86321c22134f5bd7c4ed5dd40278da8f6abab9,1 -0x217f594c5bc26372a68897ca82871011036dd09f,1 -0x34507ecc5ed07c5ad8174134789e322c19f41310,1 -0x7fb05aff0435b4c93325a7f3e34839b984be6494,1 -0xdb5c99b6d6525294096412d50e667ff6cec7a746,1 -0xeb2af6c1c6d23c73195f296164d7fe8446cb0b55,1 -0x57b08b101ef68efd012b98fb6c51f28372f46859,1 -0x632a0313e0da9df78a7f2551325f29fefb7e8fc2,1 -0xd04e0ab6498eef38978314800ab303e5209f51ef,1 -0xe04c7f3e81f4e954d378714ecae9f945a064a79e,1 -0x052aab347cc1967d4820d8749072de5cd7696f76,1 -0x62d0d07cb2b1c468ab37a035d8c5c7d3d2471830,1 -0x371ab7f85b1cf5268d2f7aa1f8f348ff44ba2b7e,1 -0x236b247c6796e9aee683a2c5f041922fbb6c5f80,1 -0x7b5585d844a5af06e274c7d66ce12a2a3d2469f0,1 -0xa967f8f465f33af4b8c0b72ef3ec8ada2dc7e3d3,1 -0x7ba3b6dc13a370ed9f27849c0c8a79827a559efe,1 -0x1e81a5a9715b139bb63ec3a176a6baa82a220692,1 -0xf7d2cda5fdea5b429ff1430e6544ee2ae6813a80,1 -0x19414d6eec83b472f5598d673fc0952e660fcd7c,1 -0x969f7fda55f2cdcca348c1bb22e94c1b6aa81402,1 -0x434bf1b46a91ba052459da4adf73606d91ddb9b6,1 -0x63607f53d97dc1536af38f1004855e189a61060a,1 -0xfb36125680c010017843e2e4a3cbaa82d3f89633,1 -0x8e3632743163f6a4d38a6953e071958f95d88fb3,1 -0x75b7fe05ed52f8044cae74b2fb1f103d085bf7f9,1 -0x0398775728ce96f2d5d8cda8290f7af65388be65,1 -0x8b98a65979570c46b0d32ccb432db885867ce277,1 -0xfd665545bd2948f26a1110d3f6a9691e20c7eac8,1 -0x051a0259259db0e5785cb2ab04f72ca9e754381d,1 -0x520e3ff45c84b87dfbe6ad5b7c1e0ddf09f6fb19,1 -0xff8ec35a820f268ef8c7a4d2a1444a09533a6a56,1 -0xf18f2227615170f9133391495cf6fdbe1af9d7cf,1 -0x3909c5a540e62bf718bfcda853df51867490c1c8,1 -0x0c5b0c481758d82b79fbfbb95faa1ffda7713a51,1 -0xb543ded5bd9df325339a329981be56d8ae6af175,1 -0x07d2253c1e9ec2b8ac5ce2ffaf0676c4f5c4d44c,1 -0xc255bbf72691f6363c7f96e475f48786e62de4c5,1 -0xb00a0af5ed3dcec55e2222e25a151ae35408e0e6,1 -0x0acb169093665dfdd69af8ef1314499fce7e0edd,1 -0xcb6415d682c3b9321ddab827b5744315cf76a2ce,1 -0x3850d7fdf44db5ba8ad5bc2e055f3531b1465ee1,1 -0x4156e58f583b6589f2ceae2aaf37320a4baca2de,1 -0x579882aa9599ea7cee0c92921689d29439f58d47,1 -0xee3fba2abdcee3b6f4087084e319ccbaee8a5c3a,1 -0xdd156cb6552ace53af81eb2c647110bd4486224a,1 -0x6cdbf8a58d1aeac244bd6b49458b6c305442a542,1 -0xef4082463bf87ce4a84536908888e6056e8fff3c,1 -0x2ecf51c3897f11dcc4aee79304098422f6e486c6,1 -0xf349784d52cc3558b681b281c3aa68486ddb5f4e,1 -0xa77965b00909bdf4b30e3b970402aada18f28161,1 -0x97f46282646d22c9122b6b439ec5ef7f84a10048,1 -0xdb4e7c4d1c04ff5f4b3655801006b7dfa72936fe,1 -0x4fc013fee4b3f0111cb2bfd771c0e966cdfe2673,1 -0x71c505496ed9f57cf0d5c760c005436d071ba824,1 -0xf2aba42dcff6f912a2a6b4a52c279ad3246b17b9,1 -0x9c847e90d04a66e80f120ed8dded29bdaa6f68fe,1 -0xc5a71f3cedb2fa0c2c84089a0343f5bd93ea7fce,1 -0x8238b9fff5e96cddfc56843483809c0cf56a46f6,1 -0x3df8bcb3c65016e25ae0f7a72f0edc91ce9c01cf,1 -0x874884bdd17bfbb1a2fe524ae0b838825c3ef977,1 -0xb31dc49aa3f0c58149286afe401aba974208d7ee,1 -0x468e2d815924f52b4e36bee9a4b8bf2de5aeae3d,1 -0x03dc9bd163242842cd05cda3af73d1df1eb66d08,1 -0x896f39571fd7682bc7c6f21e5f4c62f070c1c9f6,1 -0x22b1b6a3b9a2e3f372c1cf40987ac5693e094683,1 -0x8e31c102e3be18e985fe5c3402a324a826cb0270,1 -0xfb875d4fdad3da56fe11e35220e6784814fb5b34,1 -0x4210a778c557d6c0991f589e7761207b52080fc5,1 -0x514a2a2953cfef46d67da516d3660406fde5c445,1 -0x1621962820802fa5a80652b782f82544ed2d2324,1 -0x7af8f2fe9d551e8cfb2662cd9fea7a07d1dafd1b,1 -0x28dcb9efd2adffa02e8cef3b1bbd11b0bbc0ff5c,1 -0xc86786750cd2e47131fa886bd57658df1b03a04f,1 -0x77e693c9fc13c6320d73231ed0439ad31623597c,1 -0x17afe7ac060229cf3e629c455d1456c02cc13919,1 -0xcf481c5e00f1d9899559e3024f86dd6871dc3035,1 -0xc0e5b4ec3ad87291e497c8e488dcba4b2e0cacd0,1 -0x11ae298e74a77ec562a5ff262ee0586568eb03c5,1 -0xfcd61aac2e0d61939b349151483046d3231a43e0,1 -0xac886baac9cb5205770ceb5bd9fee245b6d6ac20,1 -0x748bf3c14de3d8c40f3cc108ab204c94611190a3,1 -0x13c830664d800d2be65e442c93b1e4e12b528329,1 -0xc40abdca5cc0e4cc4f015c0794b904ca30c2abf8,1 -0xc706e6fd04aa2e5c09bddcdc8ec2ea83c3f28d97,1 -0x76a42157c9e21a550f32de7c2166fc49de0a38c2,1 -0xcd7e51ef45049b0b3d72c70387e03cf9a1dae505,1 -0xfa046cd927644a675ccc69208a6ec534cb546817,1 -0x6de62bcec6356a587ed2e9656f85c0fcaffc1454,1 -0x49432b32f26486135e56cc92db68360b8a78657e,1 -0x0b9ef052752495d152cdce3a87a1e0fbf0aef1e1,1 -0x796977a8c2c7e4ace3fbd78dc5165d907b072924,1 -0x805df4f6bd729f3a06613d811e47c711462ba48e,1 -0xd7dfe4db8f85831282d3def95ab14a068ab70c5e,1 -0x0c4d17f647625ee35adc4bc178ecb5e07ef3b0be,1 -0x9ca0acd6441577a71cac60d5c959d2b074018128,1 -0x74781a0ec38e8d3840a221ad20afd4e8f0d4078e,1 -0x38ea461bc93e26d5ea2861e34e7138d7c388a458,1 -0xb06fcd27452be39409675c0c073e388c24b46d04,1 -0xab552931d500c46350030608853ecb2d2b33fcc2,1 -0xaa39e9277cc26887f7a4373babaf7082732ecf50,1 -0xa7a98d3d3d61782d5f7b154f50ca9ef1440d3cb2,1 -0x048e666bfeb14275e849cc74dbacdf27b81f0e6a,1 -0xd298acd73a4e44feea83132cd338acef4ed93e65,1 -0x2bde80e4c73de5d34f9971fb970cf1fbeb25c953,1 -0x17e41cb229745654c7c20e01b47ef90ce96b60ce,1 -0x282625baf5589bf71c54118d9d6a006a1ce8a06f,1 -0x6b592eb90c7a659aa7a8dffb6fd4ca02491ac9eb,1 -0x20100f833270e7e40a4a894b7586a653ec97fd86,1 -0xf3d84aef6f1555b0f5a78b65281e23a4920c5a15,1 -0x8aa0cf50486569c7f685a02bdee3551872410a9f,1 -0x42715165b77ba1681194650cdcd0eb724663de0d,1 -0x0c7cf39362441d4637c9434a764241d6f31668aa,1 -0xcacbc7cc0dbb736a9aa1fe183195c6d627922ed6,1 -0x152c3d6ade7424e43763ec2a582dd411459b229c,1 -0xb1f7a72e62e69e072b4d5b231b9a9cdbb9dbc817,1 -0xa3ef80469d398fe1d78bad992a8208fbc8cd277f,1 -0x4ce68dafec8a0db4943b76f02d6d2b7efb959f60,1 -0xe865e5da26e23afa01d552c52be59156f68aba40,1 -0xddcc15da517b39bb2a5c34901193c85c18ae4ce8,1 -0xe9f61a51d3dca2b6c46bd0434f6a2cde22814cae,1 -0xbf9dafd9816e69bc8efb9412896744ee1c3e011b,1 -0xb40673cb2b015abc6684b934aee456bc47a06af2,1 -0x1a412ced0d2e4d98a3f608478fe9898e9f78d85e,1 -0x9f2af6b8426afd712f91e90305a5b7903e2b01d5,1 -0x57e96ea0de273cbac4562bc782f9160e0691b531,1 -0x279067a6b5ed5ec3794e751eb00020ceaebce593,1 -0xec1673c39f98a5782bb1b10fe3d6af44b7df287c,1 -0x48ad180fbab19baed87888320819fd8e24bfa98b,1 -0x268f2c25ca48cb8752baba8bf7faba77aef333aa,1 -0x828093d9d3ba1d42e470843a3729d59865398d94,1 -0x6754febd0985e5377ca4e495efac8f18a771f7cc,1 -0xe6abbb52d14e22bf2b3a4d7752628d8c17c25f7e,1 -0x01959e491ddd3ba6029742ed27f4ac6bfe04e341,1 -0xd3b46f76e5d810f415325d5cd93c04e74c3aee1a,1 -0xab0fa6a699954c2296bf768d9579bc11abfacf77,1 -0xce53dcf94e9dadc8eb56b67e581e8003138460bd,1 -0x692f0f15d28d02745844cc4494d21bea8d68466f,1 -0x29442920a4d667a4bd23da119d7d591d8e615e41,1 -0x06f021058425c67fccad0674d480e79e05bf4d5c,1 -0x5649560530eefd6a22d576dee3456efc58dc7a04,1 -0x5ff127184ff5b5fb5fe2c78b6aea704f25f5c863,1 -0xa3a6b32704858395918c4b5542dd6de6344addf2,1 -0x0b0eea969850be93df355f38d4b50adc02f46918,1 -0x967d774729e3d09e22108af24418dd93d9ddf573,1 -0x43b214d751a0af799d77a6bb83f49294401695f1,1 -0xc87e72effc7f7893d2e53a73f00220bab3265a43,1 -0xdaf5c26aa9d8756c0c2eb72b4a494608ac90c034,1 -0x797e1a3beba5e6448c486b5365171181736c47f2,1 -0xaa9365173171074287ac83c1363f3d4669bab9fa,1 -0x5802f2ce3ddf754a84a9602095410b49cda44682,1 -0xcbbf7b5e3ab7099ff92220629dbc96827a00170d,1 -0x8ae741a6a9732ae3acc54d437abdb1a4db3a8ea5,1 -0xb5d7752659227d07390981ce5d9d069c023174cf,1 -0xfe258bb6a21ff3f00c03f5340ff16643e696feaa,1 -0xae4a3b25b708cf5e8bb95bf56a88f2bfbf63ed2b,1 -0xb8466d7cd6db47f39d3a59cd6efb9d8b89941032,1 -0x99a66aa60fea4d81de7d262f5d7dd467dc2c1e7f,1 -0x6f3982a21d7e16008f732a362a8faa9f42bfcab7,1 -0xc63895dad5d4e3f5a839f9cac997173629eaf9e6,1 -0xe78dab9780ad0136581ca4a81775d7e5258da036,1 -0xcfd0ea118222498b0a331cb84e893d149e8a2209,1 -0x58245020b8781dafd20ba5130c289ae9cb0e321c,1 -0x5f3af60bd4d7b45c4ba3357c63996ae292ed0498,1 -0x231420a3116ee1cfa0d9f73093bc598a4e63d391,1 -0x9852406a433882419822a973562afc2b8eb6b6c1,1 -0xdfa8019f1c6c7fb00b62dfd1d90a0805fe3efe86,1 -0xd918de4b999fc75ac52bb9033a41b4c0e141d051,1 -0x8514982905aba230ea16f3ffd7aecc666d968f80,1 -0x0ba11b19b24ffe82a61cf9ea9292547f8bd5de82,1 -0xfe66cb51da321cce8a6e0f933f4e50586f90f73e,1 -0x16729f34cce88639f30a94310c0c48c45f9d5dd8,1 -0x1e8e4aa5df8dc9791a2c96a201ab6e7cb44e5dfc,1 -0xdf5718b4e4bb6cfe148d8a78c4fdeecb1269e3c9,1 -0xd87ebcc42af82529a712bd94f034362a7eab0c91,1 -0xf1e566abdaff85298822d88cb8421d0bc3f46b17,1 -0x56efe32351411b4320235f97ec8a4d4fcd19d57b,1 -0x4307b8f965d1d10e33abdbabddecc07afdc07333,1 -0xae855202dcdc2b795f00063587f0a6965c1f3744,1 -0x5b5f8734f8dbfd6a63b1327cc876324c6fa2f9ee,1 -0xc9137836d731a86a4dae80a994f16005f233cba5,1 -0xb6648e2a9e92673432e504d5449a4c706333ce82,1 -0x433c5ad792404612c137349af2613349942481ed,1 -0xfd401d46bcfb3444ca24b69e1dd2ac1f39eb4cb4,1 -0x0143a19098512a845215c6d1315074b899840062,1 -0xc5513ac382e254324b2dc5ddea3838ed89f4cb2e,1 -0x7a84b804a29c225e5b509b77f1936ad6e2424fd0,1 -0xe530b4d098b820289298cbb7cd74d7803ac0ae39,1 -0xb655def5df3f3df2ac37d3253e4079b42dc3b51e,1 -0x614655a2c8e94a727f272d9c21fb97e9e2619f9d,1 -0xc9f48912e5ffd8d4d9455dd69be1a5e0d830f333,1 -0xcb30cc0c10e76742b9f5ee6ef8f0f3068942b20d,1 -0x6ccc6d5eb8c42c3c8e05d6d0534e16a7c1410fbc,1 -0xe95b0acce3dd4312d1ddfbcdd8fbd183bac1a846,1 -0x3f347b1696e4168d575756c5c8654d619c03576f,1 -0x9bbf29b3da4d72c7940021b7d7d55cc4122b74f6,1 -0xa796458ea9f206a77ea338adde09fc88d1c2ef15,1 -0x08886d8152fac1aa7f66694b982b817439a2f402,1 -0xecf83165bdca0230ecde1ec36f284d196c1e0c2b,1 -0xd20a9fa5ca5db848ab79a95cfe1694d2924d7cd3,1 -0x63dcb4a88c929516cc129d4305b4010ac0402ea7,1 -0x3f2faff871985c765f01ae4ff767cfc8e3e42d42,1 -0x29051199dcb50db388494815e147638c84e42f24,1 -0x39b5f8177d9397d29ef69c1ff47825eb8c8099c1,1 -0xaf55dddc298777392fcaa1ce3bc362b2790061c6,1 -0x2844855e50bc9ac1a24c441d121a9bdc491e9188,1 -0x3e033c22b7ea6a0b85ec9d0d446f91525c7a9356,1 -0xa7112c321f7d3b6aaa4e38b1ffd0e3224267d1aa,1 -0x378e7c66f41dd2e6c8bc530cdd7d69eb8e4c9c71,1 -0xf3572bf06f20d9c62a89a4adca6d62b742328bb7,1 -0x5b1bfc9b46a4956f46718e562a291dc6b81bb82b,1 -0x21a002acfac6a3433f313ed5622cab05ab5499f0,1 -0x6118538ad06e51ac5d94796e58402d73ec0ec7ae,1 -0x098368e3554cdd7b4f29b8ea1bec7b59732f6371,1 -0xab02ced06e8d5681391c0057d1119c3f35cfaef8,1 -0x667de7ad7c5226a2944c8027c13fc993408a0f39,1 -0x5f50ea3054a3f5b5d2be6cbd87db343af8d17b3b,1 -0x3968df40b7e27651e1c8264c161d82dae4a6c52c,1 -0x1ea06b060c06d27ba6a3c6a6732f22bf87cec07b,1 -0x1013fbf0451c94b4cef99c276c29679b51b09902,1 -0xbaa6e18865c3d464d8bf58c120dda4af19d10b5f,1 -0x8e3c4246137ac85fd620dabaf2d39ecb13f26f07,1 -0xbbe8888eff4dcfbb53760dcda8558693a07a27a0,1 -0x912b88080945687f639087c4b321dc31c10e8f8c,1 -0x81962ad4f877fdf2d0d8f810d938b92caf06f460,1 -0xc94362365c0f697b5371b216c6c967bdb94d3378,1 -0x94e73d7aba5f058299775668c35e36a4366e3146,1 -0x9720ee8fa656d80d01a8d6bf69d36c382e66cc8f,1 -0x64b745f2637393eaa2d844c48201a9c4c028400a,1 -0x85faa4b4db91969bb1e713cc5605b8d3b0498bec,1 -0xa8122340f53c8043488335705191af5c5bd069c0,1 -0x672e4377eb251fd7cc1c501611ea39de28fe1d1d,1 -0xfc9de25ee2344cd6f0af396d4b639ddf352a8130,1 -0x534fde773bd45497752ea94ea28222f80b536735,1 -0xe972047e55481c2f6e8a850344a715132ff94ef7,1 -0xd58d410fa82f9192e607680f5e23261301941a10,1 -0x4ab1e214c3e93cfe63a83222625c8ea9bcd75191,1 -0xf24386bc867b3da017ca0816b8979dba4dbabc6a,1 -0x437621e4452c5cb34866f2a4cbe161380966bd39,1 -0x7945ea90bf1e2d24a57381e34f1713dcf0928777,1 -0xa9aaf28584ceadfe8747752d6ef8ffae0379a982,1 -0x7a6da2e4981295b176f477088b3582d3759bdf14,1 -0xaf7d55d96d442725841f344e314c3ab9824d5673,1 -0xd6d4859a22d1cd317c0f926c7fab515e6a893a0e,1 -0xa0d81cfe8a7c0184b55bf0de848443853a8b7cb1,1 -0xb435c990a7378d2716bda55218fbd116d855853a,1 -0xfd404c6fbdfd88465d37cb8a26be5bf3d2e19ed3,1 -0x22ed93fc3e0ac08fb334f98b8a2f038b9b76fd4f,1 -0xe2fbcbbe0db328106b76ee4ad8bb20b44da67091,1 -0x449a426acd1a176d93f2564742c898482cb8f9f7,1 -0xa20f1c4f217da611d17e48ce49528698d236693d,1 -0x6d156ea3861bcd7d6767d71bc1ea75fad00f3fbb,1 -0xa9f76370d35ac22d3affeb884f06692f4a7efa45,1 -0x349ed0f6d3cfa87c875ecec3d11d75e612b8a351,1 -0x2bfad42b3f68092d01f1ae2276a8906aeacfaf0e,1 -0x997dcc4f1689e38709c888596572cbe6e1430ab8,1 -0xe01b6112e8abb12a16bbce8da4adaee4dd45c523,1 -0xa19912e7ed7c529eacb66f73a2e0c75eaf5708ba,1 -0xc7bc96d17f7b98242c541873726b7369400c6f1a,1 -0x2f3b7a20bcdc03fe9d95b980334243617baf2870,1 -0x2119672aa46c69abfee090503ed6345767c926bf,1 -0xe0574280534243f989eb5a7976b855a3c96439f9,1 -0x825449d201ab8fbb27e339141d0bd75c2ef7ce21,1 -0xa68c0283ba5cab43c0432e439499272ed2341918,1 -0x283b400e744601e48341329c71c6b8bee780c5bd,1 -0x08fa9fb0ee98753634b1f4834fc1e917e708b8c4,1 -0x70b255c0ff43db20e2dac920b617b89d2ef5b141,1 -0xc40ef903a95d7f6489ed387c051085eca657a2fd,1 -0x3e5a504826cf87636467823ea89ec4458fdad56c,1 -0x8b5049f580e0091ceeb0a6e568ca9a0e7089fc12,1 -0xe3d7a8ae179f2fe7d67c93d03372e47880b36775,1 -0x25786cb08fc99d8afa24277ec0bf846a9e3cb187,1 -0x811459ddacb34d624f74dad886ae223cb33ce1f7,1 -0x940acd9375b46ec2fa7c0e8aad9d7241fb01e205,1 -0xf41b7f9deb1276f16bf4b1bfdcbe028902609f12,1 -0x1875144a844d5516bcc3bd3e60ff9b22b5a4aeb0,1 -0x0f78e581312c9e1dae27af138c11945f29d602ac,1 -0xba7bc3ede409af88cbdf7d006170eaa0b70936c4,1 -0x0787456b28ded8787b46c030ccd4a0c7eb09ea77,1 -0xffa1a52290ca86653c751c593dc4d996ca3fdac8,1 -0x6980776d7abc01887618c4b12ad0c97cff41f2bc,1 -0x782775a739cfcea830c0f891edb3157ad5cb4b1b,1 -0x695b5f3e4a0b677b3fb5ff71a0d51dee080e0c65,1 -0x30db9102c06eeaf8cbf3878e2bd240cee2dfd091,1 -0xcb05ac3cbf0d54f01d02caa65a813550f40586db,1 -0xca9f8b12000d78337975b12607554ec7dd16c767,1 -0x58ac164fe63fba4e0bf161c41962927062372c81,1 -0x064052125bb4d05ea946ef407429fb79ebc3e737,1 -0xc6dc59f217cf210f342f37c748ea8889b474ed5e,1 -0xf2ce3b812063f12505cd8efd9dc99207235b5a39,1 -0xc858721bae062810c8fb0b19906d9889d88a25e9,1 -0x03e2d1fcdc35e88cc3069269dfcb962915c52360,1 -0x139ffff1b2ad29c20c8fbf8b8631b882c98742d4,1 -0x776592844b9d320929d262f74919644855297f70,1 -0xd83a8e4735dc9d44b64783a25d2a26636b7cdf01,1 -0xe59880a2c79061dbbbbd8e34b44777ae848fcf80,1 -0xa68f696d9025bbf02b3a4d396bd80673c2f88e05,1 -0x53cbce23df9b3939d9113a9b7d5ec657f04d5f53,1 -0xc103c35b4d64aa8e966826ca5b4c7ddc93f52148,1 -0xf0a01ccf9ad7092301e3e883e86b7b4b304a7a8e,1 -0xc66916850600ce4aec811b42b9a38cd353cfc63a,1 -0x9f04d650dd189acc5b14d4b6931ea6601f3aa247,1 -0xf30be19c1b40300ae32f6b8f12fbd8a211fb9ea4,1 -0x60e44e5d48e3622d60806875f2622a6828f9736f,1 -0x7454be0631bb688b36cd65ecc4119d9d74fbc52c,1 -0x5c28bd058a91c36d1fc6890c4ac09a8b22fc28c2,1 -0x9150df052c9ce5a68fb3a0028a657a274ab43258,1 -0x666bae215259244db48e1e63d3b5712205724a49,1 -0x5a1a4e6b669618b86293b91c5f27a3cfd78af5d3,1 -0x9ec2212d912ce1142984384cafa758cd4e956952,1 -0xd92b88e1f369579d0b12fc0afae2297b1e4fce25,1 -0x37b73c9a463b948764c46065dd5289d7b0eb0884,1 -0x14f312622e3b1e5030aac0e0fc3c5732787111b8,1 -0x99010aef8dc984df76d1ba385d8e247001cdee23,1 -0xc2c97eb3231c9c1886512fcceb6b8a9ed865bc39,1 -0xa3e5a67ccd64c30fb41cfa1dd4100e197e98d8b0,1 -0x57d385da440eb497c7a5c99dd79285a366028074,1 -0x4688cbc7cf01b354b49d43127251722301a4cd2d,1 -0x1812dab8fa8120a346bfaeafa2e967f7e1ac73fd,1 -0xbd1edf49ae3511af70dd42ba83959d0a0febd94b,1 -0x66bec918f6f8c753a2eb2464d54756ba351638ac,1 -0x0e2c8b5e179deae55fd6e0781e53e7f96e76dbfe,1 -0x5f512a77d7e7f46f33d5e0fef38a52706242b32c,1 -0xe91e64ffc72d3ed9000327c16a1df4ddbc037ecd,1 -0x4193dcf34907e9f2880695947125667c891954b7,1 -0x763644efbe6ebf2c78c45b38eace9e67e0217820,1 -0xf2de702b354727b9d488e8c32bf3ad70f5c77c4b,1 -0xecb5c16857b1036b8572133fcedf64a99e525534,1 -0x93f92023962cd16363cdf14f2ac793d5a88191e9,1 -0xa9929f5d0626354afd82d58da75da669553059bf,1 -0x8035b5321984047a2297be65d455e769eb96e897,1 -0x80348b3f1ad4f6bc9b36d05cdaee914d340e93d1,1 -0x19b3c777ee31974094518cff8228c6e481ee4dc7,1 -0xbac2b41985a377284809c201d5d93a66d94dcc4f,1 -0x542e496077ded4fdd432054011727da3662cbfd6,1 -0x92924fde17f2cbc1c8b9788b8560dbf15a463fff,1 -0x802670a216f53cc0fb9e2dd547c695b9944e959d,1 -0xc318e2b9c87ceacb87ff613ba4e6589124411447,1 -0x51b09df21b7554d9b7a3a259afefd1fa6f458ae6,1 -0x18c39df51bfac337eeda798e806feeca01713cf6,1 -0x774adf5811f765054d6ef7c90779538c124a5255,1 -0x7749b318ba58a19f08520fa1b9411337c26f7f86,1 -0x04cc5f5058061f008a80129bf8e5a905aa45c0ea,1 -0x2a310a79e9438243f2c13d926243372f1eb0b77f,1 -0xe5c2b91a94540d9864e7a288de04c624a9ec9972,1 -0x6d05852d71780ab94493e340171a6a097fef3b2a,1 -0xc469623a43a420664e8f5e2c5d1b048e46f507ed,1 -0xa88302c0d1e260807e8b1f987b28d6bd32153443,1 -0xbfcfbdc87780c11a78e995ac2f30b115c9015f31,1 -0xcd95a71d3ce9b575bedfc371208184459a06abf6,1 -0x51bc8ac8d73408140320687fcd1f7032589c78bb,1 -0xb686cc4493414c7c7e6792a26ff64a328d7f7cc3,1 -0x939138b7c03915c00cd95d3607af6ef05503ea3f,1 -0xbb7fbc2ba234a7dec21614d69a52efcfb2c11c66,1 -0x0b250b69dc18fceeb050b50eac6c635684d26067,1 -0xc37b50048977a1cad877cc5974995adf8c9134bd,1 -0xff35ef99cdc780121e31dc60c73552915981d56e,1 -0x3cdb25b2ed7db63a927c6c459b53a5ec97903718,1 -0x9e156ab53e2801084145e50ac85f0701fd6ba7cc,1 -0x9d52d1cd2f23d31a7f2fafc2c03d964b0f3308bb,1 -0xe795014c4f9e6b48927c981172915e507008cb6a,1 -0x6652483a07e9d177088e3f56bc3fcbe008855edf,1 -0xe6fa7d45b43f0c2d22c11d505ca6eb0e3a197d42,1 -0x415231621d277e80eecea8fb53a637a443d4eebd,1 -0x615b6c2d7a731d1f5f79fc667cc97e28d5044a94,1 -0x67fde19f0178e71abb3a0a62d2fd33470d3208d2,1 -0x1edcbf2ab3473608aa0e283b85eb015cfb19f199,1 -0x8637576ebdf8b8cb96de6a32c99cb8bda61d2a11,1 -0x7055d2b309057d3396f7d005c8e1d61269b993a0,1 -0xdd2f3cfc6310f0365e83dd964d38a06e10cca69e,1 -0x409083b83be12c811619bfb7a5584995dd0a4976,1 -0x58a8d947adfefb332956c4e21c054aa3843ca16e,1 -0x95363e523d30b92621ae8190586cf31ad1348f43,1 -0x411e1165e6ebdfbceb32fcb8ef741b51241520a1,1 -0xeb013d2c00c4ed3bbb8f8435182915e4954874bc,1 -0x4f66e2e083b278092ffe747300304277249eb47f,1 -0x63e811e185fe35c15d23f747226aa8b9da676af0,1 -0x098f1925660faff87aa134b15b4032f484cbc079,1 -0x232277915e57c76c4ebc0bfe67c937617c76255a,1 -0x0c0d475854e3da4b22889c100642e3e3d443ea65,1 -0x867d078c836c6f40c316da3aa4f5c79f28f8e53b,1 -0xb435a754363d2807aa8addddb44f758b5a76a71f,1 -0x6e8945359e5c8d45c2d1f2bae89ca3e503643732,1 -0x3b18aa1ed3a0cb9044cda7b8281a3f54c55886d8,1 -0x880b136a5e89b8e70eedeadb6859a71444d52885,1 -0x3c1f9da752eff0e86c34eb03c0152c829ca562c4,1 -0x72e1fc503f73b8316a560d13b1b53f1108e6e2f4,1 -0x4c235fae3510c662070c13e9816bd14af0864ad3,1 -0x26827e20f784ded3bf6f9026ceadd90e0e46b103,1 -0xbbdf148dac6954b53535f5f399edf81f6064005c,1 -0xcf00447be1626e3bbb75be14e32c47e454a07bee,1 -0x86bda1093d2aa3c73fa503ea23c9b3393432922a,1 -0xa9364e31ef23cfb58645b2e9326065dbfbe3b6c4,1 -0xabce80c3080d7df62ebbdc50d0c6b248bdec9481,1 -0xc9591575995b850ca185f31401fd296fbed27a51,1 -0xe8e08e8775ceecda8c334726202a412a646d2f65,1 -0x91942026918fd219c6b62f739c4dab80dd6673b6,1 -0x72785171492bbb395ebea0f16b301a7730c7cbd3,1 -0x4baf1e054e81a4c8a7b8807e870fb3326c2c90f8,1 -0x5ce69547fa2846161cffb75899e7396932883922,1 -0xa794044425934f74cd59d0bf9c306f763e88114f,1 -0x88cf8d702b94f8ede8f4776e4306e6c54f97cda7,1 -0x2d023c5cc5eac7098916fd0270d07fe11daaa647,1 -0x7296077c84dd5249b2e3ae7fc3d49c86abc38c03,1 -0xf79359ab3e3dfc5eea1da63c06da6d3f09c0c73f,1 -0xa0851418809a2360618d1dbb2aaade075e7b94d0,1 -0x491cb43383acb79e8652e413ac913af0b57e2e28,1 -0xf7c60adf900d28da61266a28b9d00426ce02ab60,1 -0xfa4758098daef3ce06896988ab0b0f25162a40be,1 -0x634271d5d00ec0c26875c7c417e65b4dac2e6acc,1 -0xa7c723ab839d9662100794d4a4ed9a339aad0fdf,1 -0xb87f9c5ea09d09847f770106296b40cd6a7885f1,1 -0x7facc25d396ec74000cd3d1ebc66555a942a50d5,1 -0x4de8f9519d144a24b711d48c1ab191f712f5ec5f,1 -0xbc85500b3f3fc6fd1767461872110437a0c4ffd0,1 -0xcbb5cf934dfddb6edaae26cacab221b42b7b06b0,1 -0x5e8f5acf1a30dc16485e94f519976ea7d12fd93a,1 -0x030571ccc7d904e115430d7fdc0b087a06a1cf3d,1 -0xbc93835e03b4b502494a86b7720a6e55293eaa30,1 -0xa41ce0d9857503ee05b0595fcee8905d6b576943,1 -0x0078978d493a5a0db7ef37f5cd0b4e89adebfb42,1 -0x5fd64794ada9701b20670078eabefe19d9aa2ee8,1 -0xa70c7e0ae665ac2b2ba2481bd5601651e6906135,1 -0x51427d3cb84129bd6d05ed16353b92df2a770aff,1 -0x90dc8595fa858c9619bc6ff36f908938519909a8,1 -0x9baab30f99da5ac3d7b3fedf0275d2bf12546ac7,1 -0xf60a6ecf1713dd339b33f14cfc8878173cd30e2f,1 -0x079a968a08b786ab238a028382d19180ff2c426e,1 -0xc55d43d13b680759ebfe54e1b45dec72adb159c1,1 -0x9508cefda9ad2cd206237efc2204edeaf5c94a38,1 -0xc26986c84a97bc56713072b2dba4d748e41cac3d,1 -0x6b30a93c60cb3d6f95edd1c16213269c036a22be,1 -0x371eda50b037947d3c229fa5090e09558f14fd42,1 -0xb0ead27ff964848bc6f429602d2b5e370569b559,1 -0x0e8f131552c9a96db80895ae67b62c43fff8255a,1 -0x4e0ce1355aedb4cf531394df291a76506ab2235c,1 -0x95aaa0fa5982075ad732d4a84dec4a4b1843bfb3,1 -0x94c0fc7284d7c012d88eb8d87794ede1aee5a310,1 -0x1ab44d578fc17e264b0d71f3829406d41bc51952,1 -0x5598498c2a98d6d3d03b484df1fd4bb7636b4d46,1 -0x97a99da15fc89d96b3fbe673ffd8f69f6ce7c9b1,1 -0x47dcbdf671dc8808d1397bda92b2caa4a7c4e951,1 -0xfe0e4bb72cbeabbc9c461d2c0e610becdb0969a1,1 -0x61b34f271bcc343b6c1d11ffa6ce0b855fba8e7e,1 -0xd4e80a9b81ab6949e54cb3b1f1daed41d0461353,1 -0xaa9120109c02f48d24b9f48f6ca6db46cf82c2e8,1 -0xd1e28b6b13cab1c27739ba2f69edd1c41b2a8bfc,1 -0xe6037dc8a9e7d99dbcb4bedcedb7a742a0142584,1 -0xec4ced839c0f9a123b2383f3d771ca620cfb26f4,1 -0xcfc6bbfb3f8584c7ff0aeb032172ee472ed4e7dc,1 -0x58d105a58b41f3d6968df173b8511bbb08419ad0,1 -0x71a4efce49dcd97e2b0ef176e48fb13f14895d4b,1 -0x07e97e1f698c6f328057cce8fd0f320cbae439d3,1 -0x577b9c5cef58a56d81ebb29d4e3cf544df0fcfbb,1 -0x86aeba262c901efff17882423e50abca4f9d1b10,1 -0xfbd90e71e7407efc70ddf1c695ce7465d63d85cf,1 -0xf32a1ca887c4a187a2989eb9e3cf1d301816685a,1 -0xb066c7bc19b0c9af1617696caf50730f2c61519d,1 -0xb310992476bc673d4cb8b874184d157ed4e15c9e,1 -0x2f785ef4f514f6b785ab93062e05cfcc937fac96,1 -0x22a030216d92cd94fb87ea92eccb4b492854460e,1 -0xcafc5da963f955d5a5146b0072c876f3096cd52e,1 -0x530999fa8688fc0730ed1ad925bb1235b4068c17,1 -0x598a8dc7ace1825b840421c054f490a5d6c2283e,1 -0x67d2190ffc4d7f4d924c9faa4d30606b5e93be3d,1 -0x48204faf3bc385652dd5ce010e6ecdc98536a34f,1 -0x3fe7e457fd7540d479c338c943f510d45f437466,1 -0x51d44ec474e3a115deff4e121b64b58f02e9b645,1 -0x976b4194924fa098ce4ae563e081f2db01cc34d0,1 -0xad13504aa911e909ffef9384f1201e61bb27955a,1 -0x4c19374949da6b25769a9e934f32896a210661b3,1 -0x61ebd09a0d222a919b2fd4cdf4c52934d41731bf,1 -0x121258262a45501819d2a14599dc34c2f47376ea,1 -0x1a7c1fbb675951f6eb4377f522f965ab53c70d93,1 -0x5a66f4bbaeabccff2e99fb16889968ed436f75c6,1 -0x1926db00f4e096fd363a6504098d6633d483157d,1 -0x7e07bcb53047eb799054e6fa9feba2669566a40d,1 -0xe72f14812f6a7fc63d4f7e6b638778a83eee1fa0,1 -0xdb18013ed47cbc101d9c006c074758b04849aefb,1 -0xfcd67eee80f7abfabdf456ae4ebe8c3e040f4545,1 -0xc2ad9c963624984621a34cb5d18df6ba72c18457,1 -0x8206d72701881e66df2f250b4d7dc5a7e680b1bb,1 -0x978af3c75111e7af938973f4a69565492e147f52,1 -0x799e203535194df574addea23e6cf635c335b6ca,1 -0xeb71c48040623dfa3582dc76d9a0f375a713d3ba,1 -0x3c1de84de1cc0fc37e7aaef3f2b81a1c731b6ff9,1 -0x4ecf2d3a41f0fa23ea462b6fae68b940c453791b,1 -0x9c269f7656d66d2a2b41a0e82141a2367964ccba,1 -0xc4153a274ee7e8511a1536ab1c34049e37002ea2,1 -0x21864dbc9c5613de2b0dfce80efbcb003a0e4615,1 -0xbe47566074a05123165cd0601e5300443842265d,1 -0x197ff7ff79d6f29924621bc6f519af370da124aa,1 -0x1c5892fee861c4e93bfd488d988acca6a38c4d8c,1 -0x4dfa043a20e4ade5ad6864d35fda5a78193cb56c,1 -0xff84f0b6591644e7829f2a6828b3915781e0f5ff,1 -0xe3e94c758d8fc7963b8202cdd20fd5ee344bce97,1 -0x6d955b2ba82dd58d30bfacb96f997ca0226bd3bd,1 -0x62eb3e90696d302f80c48d859943f0e244823436,1 -0xa91cf52f8f347aca5891e5d9e48040b892041008,1 -0x8a9cbf0872639fe1048d0ceb6cceee063a6efdae,1 -0x44693cc1d41b6ce23d481fae73e6e7989acce2a2,1 -0xc53cbd99ea3a72dfe921bb15c3782bb774287c4e,1 -0xf87d53fb7f7c5657b93a94192df82afa97069698,1 -0x3410c4751dd76d1038d5deba3a28616279a85629,1 -0x3ac415b9a412494c37249da50f3f5e98154d21ed,1 -0xfbac3516677cc50dea378bc6452377e3bdfae7dc,1 -0x5aac7854bd729c4ca5d1dcca8198725d4d6ccb4f,1 -0x159429ae206ac52901b57ebec116bd9d05b5e58b,1 -0x5ce84e703292ef2e1721dbc1351ee4e1c6cdbe49,1 -0x327ec442254e9dc1dd91c2156725e0a523c06850,1 -0x27c245c13ebf847743a81ebe14274529eee37be2,1 -0x8df7351de0c54521f21097b145c193fe7bb93d03,1 -0xf494f82d1bc5c25560a9107dd35b663cf5c23d1a,1 -0x08d816526bdc9d077dd685bd9fa49f58a5ab8e48,1 -0x188e6bcf123deb2f10ac5141215b4123423c6f35,1 -0xb4db02f8c4b5159e5368ce4749fd9344a3339997,1 -0x4e740910c9344163298d70309e5774d1b9e84b96,1 -0x1f34117c2457e7fc3b10ef1f5f01ba3d44513698,1 -0x3271160da8311f3dd142964d09e2285484ef95b8,1 -0x58b60e1a0447e56959061015b76407baee6990ac,1 -0xbf0b9364d9efa8e4ae3dfa97a971776a931554a0,1 -0xb3abb1ce43712997d03102924e0a886c77036159,1 -0x70b4e1800d01b4954831face205167c41b758207,1 -0x47ee00b3a154e0e110b241bc3004a7324c0f3e42,1 -0x5cdc34315faecab7ca0010073ae5b6ddf959e73c,1 -0xd6cc117d363d8713c035927885e615c87e6bf532,1 -0x3ac9c5d5d98a725396ff757627736b0ef11c2b0d,1 -0xa496530631f54cde03c60ac13472fc259f3a5a7a,1 -0x2b31fb197135fb23aa1d44de47eade6507e3cc88,1 -0x398c462ee23e527a360aced26effd73dea9a6860,1 -0x532025c80b0111ada86c99e4c656af81268a8537,1 -0x6f4c07656617f965c753941cf96c02e3653ee40e,1 -0xaf591c6b8aeed3bd21b5d5b864413750245c32f7,1 -0x8ce859bbfc33b59aeb73c2ad2a5475f8031cf852,1 -0xd70e6e0c52804fd755c4a57e67e7d7e40c3e1287,1 -0x495703148a2f6d19e093f9750918cc83aa878bfe,1 -0x985b9d4b397d7d01ef329540d829a295dc5e6899,1 -0x70e3b98bf6fe9cd83a28dcac6b75129f41fd7a95,1 -0x1ffb8f948777a3f3701f72184bb9b9ddc6312bc6,1 -0xa6a1e7c6c86ab9881d08e1de13580bfa9d22317f,1 -0x6db1a2b02483f68a98394edcbdf866e982c6f9ef,1 -0xa350b83d0bc82d502e0a3b4b33f51bf7bfa08a8a,1 -0xbaf9cc44b80a8229346ac0d52c77ec28d7f37b29,1 -0xaffb4f40fe791fbe987333337181b06cb9d11237,1 -0xc8a8ab659787761ba1fb31d600e6eb706f4b88cf,1 -0x118bf0693d1f51541e28253e67bb1d88ab24b7b8,1 -0x13e0d0a9e4024f1804fa2a0dde4f7c38abcc63f7,1 -0xf87207204c262ccad00c6ab96848ff3b2a077bed,1 -0x78aff490d9d9a99fe2542fe686d10521761f8342,1 -0x97f3b8c16f2c772350f06ff26fb2b3921c26e5db,1 -0x7778dd8fc562bfb26cc4af01d6e4e956030e3bcc,1 -0x0a4f8ed5d2dc54182730e6740e9544873cb53505,1 -0x3937acca86551b97b43b988b6156267546e17856,1 -0x77039399801f462b4ed13444a266b16355c471bf,1 -0xa86e29af882d6f0a4458a96d2609b147f4259d41,1 -0x314c0f3e51acb3cb5af5665a00aa4ef87bc6f4d1,1 -0x434f5325ddcdbbfcce64be2617c72c4aa33ec3e7,1 -0x7d37ef1adcf13b4cfc7be70e9b7f56d380d10d43,1 -0x819eec2c66a512ef94f3a9ac3f7f5d0fdbc2cc64,1 -0xd4aa9dec54619b042e28944dae4620a8f742cf21,1 -0x99ddebdae29821b15bb0b970b4459cc4aed61b2c,1 -0x7ff585e8b619b95bdc37c0cc5f03c9385f5d620c,1 -0x6bee081f5856f763f91dfcebe86194449581a527,1 -0xdcf6beacf3641ef3d54203e3b4eddf536859ceb8,1 -0x99454ae8e7f531e1880565206d5306cc1b47b0ea,1 -0x60604d35ff3e5274ce8513c9edc936c2b855ec65,1 -0x389b5ec2e16f156d9eeb0d709bce06e4f6140640,1 -0x6bc09ce56e98a268da1532d5246bb886c8fc601a,1 -0xd35dc2ef49490a3e26c5c323b99ee9b3faedf361,1 -0x30a126343686c90bf573b1e312ee37a6c1e0132d,1 -0xcef49e194818f927fdc17d824cf9b9d660b28e3c,1 -0x45e9f021f0d739c47660aae53a989856403ef18e,1 -0x23f80533e30cee70711cfcb21c032c7eb2e52b12,1 -0x6167db998daa9aec02fb8b3089e1a57909ab8a0c,1 -0x1d88001a3661c7e2b886deceabdf67e4c8d89d4b,1 -0x1f1d8d00a9a5da112bbec340be24786f4f2f14ad,1 -0xb78e4b90d3f9138caa65d2d1db74a89e3a6e0201,1 -0x03cc098b9a95629921cf407f0cd9987dec3c3559,1 -0x0891d9e441e52b9fc9b4af343221b6f02672bac7,1 -0x25431650e79da5fd0516c2ac523188bfa1e1f2fa,1 -0x3b922ad5a5bee816a63b29b05a3271bbc9089d75,1 -0x709d28027b8bf264b911290806b3b693fcb61cae,1 -0x3453e65c7280a4983e593ba422dd6d968778e262,1 -0x2aba7f1644ca5398f5a2ee393f74bd84d1c77641,1 -0xafe6e36ab8c048a24fe58078468c5b82989425f4,1 -0xe51c26896659d238ef1d0ca3edc1fd4ad73bfb7c,1 -0xf2d3f997b51357d172077a797056f4a2183ffa3b,1 -0xa67b8e98251a5d3f3e417505bc1ae4f0aae61079,1 -0x67bcc9728d2b99ffaa721e1b5b53531d0814eacd,1 -0x9f453f9aee026b4d7970df654c5ca7476a400d58,1 -0x776a41c48718fb41c3bb7b4283a91bd4763ee08d,1 -0xb9bd55eb41a48dd8b3141a09c4c6d829b581cfeb,1 -0x730f93ebf85c59a69161eeb9990cfd34d00a2782,1 -0xf8d3cd61d5b6d0c893d23710731155df8d83522d,1 -0x0042e7b8a10705b9180acda98426b2d03706f836,1 -0x8eddeb7bc9b4615d458b00f27e536cf7091db83f,1 -0xaa7ebb673228e101a08654e32fcc303d9c6e0cc2,1 -0x3b8bcba563c21b128dec8f15d97dba8ffae76275,1 -0x6e11d6928bc5a77af299159469d8211a1b20bf5e,1 -0x7a898da48ae2e369b5ef3e36b6ffc8728b2962c3,1 -0xf59c8d614f72e73c9cf92a9df5f3ab1a6cc6ccdc,1 -0xefc107b8619cb4d41c94af5638b95e0981677224,1 -0x1954ca032df517f50a4d2ab59d76c41f50a6607b,1 -0x545ef01cad749e47417fef1e841529898ced41fd,1 -0xe0505fcfb998c3fb241e8031181644306f15491c,1 -0xf87c00900176804708ea2909af86c561e6bcb021,1 -0xa38d0347afa6647bc27511bf75ffd909612b2618,1 -0x975477588dd12a959dfb8ef59bbec7ec05619c01,1 -0x491adacecae2043e3c7115e0e679cfc02ff400d0,1 -0x613d43eccef3a273ab70701d5b4839b1c4f7b006,1 -0x477dc70ce062ddba63930bf673cde716ba509119,1 -0x309bb4e9cc2f72ed7f4cf4e642e15d72d5c7364e,1 -0x12636b6b4f2b2c3625826400ddd5adf5a6014850,1 -0x80890f7fb7c0971b07ffa07ae6d4133085dd3d26,1 -0x1d84618a2dbd5dcdbb985cd9a8c6b5f01b4619b3,1 -0xb76874e7adfb2c11e835742464988caa75dbeade,1 -0x6234bd6391fff0cd3174b121a3c5e2b77af6dfda,1 -0x78682a3a6a2651200e89aa06559fccab2e69f979,1 -0x91d80e00a4591bcacf5b24d7c3f795626fa3ecf8,1 -0x411c9e0637afd6b0ef8eb63d4b57e0fabaebf92d,1 -0xdb19c16ecf0777013f8571650d4132b86512c784,1 -0xce40809a20e63594c8a76862659246ef46545ecd,1 -0xa70e9060da83208cf7d3bcc349cad08e034f58e4,1 -0x0f4cdf6562c3a293fbcaace86545cbf3216f931a,1 -0x36df9d9586d3a445672d1a8a0a99498cc0c7da9d,1 -0x303f76395e3c544f1f206768cb54b701f7203283,1 -0x699cce1eca250d067e84b08a9b267aaf1432fd4d,1 -0xa3408bdee71ea99414f1154e7a23c975edc81dd8,1 -0x57be7cd243c7630af03336ca50577b898843d184,1 -0x05c6d077d57a30a2c8dcec5849b7d04dda6d6665,1 -0xe8e7ff5ec4a73229e427ad08da49c0b95e40b778,1 -0x8416cd4747a783419f6848f74bb09fdec5920f78,1 -0xa9cadcd89f4906c82672b4154ffb19c4e8409ab5,1 -0x1809754df5ac133a1cc7d4eaf45ed38cf9b39ec8,1 -0x10d425f1ad54ab7b0b7713e93754e52a0a498e88,1 -0x0d813661959c9a2ef053413d1af7aecddb5a48d1,1 -0x1363fc24c92083dd1d1b762823209a757992a555,1 -0xca9a8fd726236e258c27e780f0b3631aaa25b38d,1 -0xfa8b30e01e91bdd7f1ca3f8a5b1104b9beebef48,1 -0x2f869bc21199479862ab4ce1e9003fb7797ee1d6,1 -0x5669794c3f6dcd768cfad21b2b4f3e54737b2c13,1 -0x5ac0431a1b8ff38445d50771db99a1bf026deed0,1 -0xe40d01f6e9b07d691854de319f086de0ce511c28,1 -0x813518d09e5b1305f43657f5c5525351714f3704,1 -0x1c19d79b26462269fecbb8308377d6bbe9cf707e,1 -0x4b756f060bef0c28069b9ed46fd16f1f0344e145,1 -0xb4764cfb304dc43604ec637e4797503e06dcff32,1 -0x17fcc78686b16d47849431236379fec12d1cb202,1 -0xb4b78e7603c324013de9946a04f1a017060bf0ca,1 -0x8e1d3b2ef77230e018e4c3b4be2d08fad505632a,1 -0x4901d86653eea6a7c319e8f667b0e3f66c27c307,1 -0x6bbf0557e0cfe1fc03e8c32438de7c329a6f221b,1 -0x29e1fbe3e39bc98dade0e9094513eb5d52b02c36,1 -0x4b2c1ce6a01981dc3ee79825bdc3f3cd7932bf11,1 -0x5d3571480cfce8ee7fa054774a527dfef0fd7d28,1 -0xaf804f77161953c56f0738ffe379c32ca3efec27,1 -0xc02f8d2c3192f186d1fe2ff69ad3326b04ef6c5e,1 -0x5854d8442f09580065552c1c146a177add274298,1 -0x9612cb3bf4d6596803892eb3cd030c9b69d0b615,1 -0x21490b6c693ed7de3047109208f21389cd2ca965,1 -0x8c3684d311d9e8fa545c30247cc3d5158e731653,1 -0xc2752f2789f08809f52506528018f1fde31b78e2,1 -0x366ad1e1dff2c125ba63b6a088d6d2d8bfd7363a,1 -0xa733d081624b4d65817a34172f08b922d278b442,1 -0xb137959ec81ff03576634a723830ec20cdc67749,1 -0x5150d9da3912343aad2fd86a82aa29bda08b182e,1 -0xac36df2c45916591936625755735173e92a90c11,1 -0x2639f0adb71e6165c93f30217b56bbba9a9bf165,1 -0xcbf40d8b9e8498a42e045a7834310507118f4892,1 -0x92586fbc3e2c54789323c388896cf184283a6f60,1 -0x33dad8b400adc32ab54a39e9fb14ed79737cf036,1 -0xe5db01c9d588ede7c9939753fb877ebe296ba529,1 -0x10f98bcd5948c2f89711d319d1bee0ad223c8bed,1 -0xfbc7cc075ca06db8cba90e3862a8559791a5f327,1 -0x99267ba26a6e10e8810bd9451dad064178af1d62,1 -0xb2790cdd3f528c14c09e3c89d2a8d570940fe440,1 -0xdde9793e26cc831feeb817f34eb44ba982a96bee,1 -0xf89bf3ce26c0e0b5818d1ba276853253652fd935,1 -0x3b5f2c728836da13f1bfea28d1779d000214e1a6,1 -0x6dcf46bfef10f939e5e71544d129f1489436df94,1 -0x25618dae61201fd8d78569c0c299f6681e4fe8b7,1 -0xbdb7819a671b83e04800a98e00294a67d7d2ec7a,1 -0x9e377cba5d4a650a1245411dbbeca1c0bbb68ec5,1 -0x5d931c7560122b2e657d189ccc20cbac6fc80ff8,1 -0x7c891febd0bc456863677a1ceb20d5acc80fba52,1 -0x7b5f875e8e244164e44b0ffd0b5eafc7cbadeb3c,1 -0x9dd918ca6a6d8b8ace4baba6bb6401dae9703cde,1 -0x8d4bf3072cf852b1b136639ebd1c010f03d9b404,1 -0x3fd326080491fcb9cabf2df4d2b47224f452836c,1 -0x1600c45b57e7c11da89004bf4904349adf612b95,1 -0x4fe6996ff451afd900653467284a1a9d419713d6,1 -0x9875f6b45b838c8f08c2c79f7709de7b8768601c,1 -0xa41f8e5a5ebf65410029d5dce5dfe7828605e91e,1 -0xdc5b036dd2939106ddf0c3a3060c0f2927ab8c2b,1 -0xd186de3d04298a514dc97172ede58b93f15192a6,1 -0x8cc7f1dc21d7d5f7c390606b3bc469aff12eea70,1 -0x802fa189c521fb7baef801c41a6b67552cb795bc,1 -0x43804905c02f551ec5420a88005bc66a1baf3ab0,1 -0x2c2a02c27627d28a067706f7656292b47a070c97,1 -0x9774eca96126f782da2c8058857773d94511bbee,1 -0x29526df890815cd9f839a241995704bd633c7697,1 -0xe55770684d71bebd9e446312225856976d36a67c,1 -0x937c1736501951ac8b5b1f687d9d3924148bc556,1 -0xff0beab3c4980860d720bd374d60f22f76bf6657,1 -0xab118e023fdb93b73a96f88ed599a6ccfe855ad9,1 -0x50afc21c6c5bc001fc7117fe0883ab300a5efe7a,1 -0x70f9b79f9acea7c703998452f42ae5f18b510404,1 -0x4ed77f99bec3ea379c2908d9ffbeaae1a1f6c10a,1 -0x5c056a1a76ae1e80af2bef9ac4973fa4afa959b0,1 -0x341f5284e38544b80f00354d0acf248394b0125b,1 -0x3613d3ec2596e48d7b530978f55850f716f05d7e,1 -0x54c90ceb394633ed16b16f208ae4c0a5c34ef466,1 -0xa48a301126bfb074ef92a710aad0558cf6b9cf3e,1 -0x0d5ea8269570c55007423ef9c45730826b147c78,1 -0xa5e33fa7104eb7a5b5061c5532f6c4719ea3af00,1 -0x32de1371b72d1a9137f648a84f92074fa49be49f,1 -0xb3c6f691c61305418563df31c283c3583184c584,1 -0x93aeae62691abc4664f99b6a1a2993503d52a5d9,1 -0xc3e013c79c9af35feec4029157495fd9bc9ccc3f,1 -0x6e62a95c08e38e43cd244f8faa5f5c67ca15c400,1 -0x586a947406f866fe579ff690891f9a6bca5312c2,1 -0x95d8e860e97fe8e34370596f509629643ba1a7a7,1 -0x476d09badf0117519e1eb405725edaff622cef52,1 -0xb667542525fe26a8cc596cb906b53a88db7419a9,1 -0x7ef183f1effd95acf14dffbd50ad569fdd27fb1e,1 -0x74b5f9f000b679ca894e7e02937b24af25380924,1 -0xc3936b2b786842a2369c10cfd9650720d82d8f24,1 -0x307c89b193c83dbe9bddb51c16492c5677673dab,1 -0x9135447eac9614cbe1ca6c75043d48bf64f48503,1 -0x61b664fd53e7615a430f84d59031188d2630c9ad,1 -0x441c7ad57b603d646c6bb2f118085b5cabd926d2,1 -0x86e5937e4c6df887a5ca31df3da00aea643084fd,1 -0x85f231bd54cf38ecbb29bde8d19dfb517489257b,1 -0xac9d8b42fde38f6718276837b8d2348d414e4a23,1 -0xa4e5c6260daedacbaf015021724097068a8a08f8,1 -0xc4ff9246fabec920df7622a06b4fb220b1ae2503,1 -0xae0c1ababb56c0e65af4f0d49e1315ad39ba5b52,1 -0x7aff191b383adfaff18ccdc904a05fb3c45c951e,1 -0x50a6536816c82bcf1a3424cf57c6d12f1e50ee04,1 -0x5561f32108d280ea6c921f28d1d7197d72980b9a,1 -0xafb4d7b4ad0d9a7db34d05c8e3778508e2a5a869,1 -0xaadf1fdbc3d5f23784f327685a947d2ce4ee8294,1 -0x92fb805e5da36e577240173615cecffb0319da66,1 -0x56bbc0b7b55fa72d24865e17cca08071013da914,1 -0xa916fe8315da797d83027b011dc5f35fb8088d0f,1 -0xa11706a22a0cc6fed7858e2f807c368cd2a056f8,1 -0x9e22969798b97944deba2bc24f3fedb35a1981e1,1 -0x309eee6a14931b3e8c88af6481758925ac6a25d0,1 -0x705fff613fb72b7ac81ea3e1a61aad9f59f91bdf,1 -0xff8ed98be1b0669a996bc664aa6e40c92445c87f,1 -0xb0f303e9d463c81d5fc5589144c5dce8aa429cdd,1 -0xf8501ee110c0a082586fc0a6c19a1d91da770f4c,1 -0x6dba7f95386e4129f92b59482fa356bc74f29c5b,1 -0xf2eab8a39bf02d85b4eafb5e2c570dd4f515f090,1 -0x52f261a1d7458517912c4cf6d8b4fc536c3851af,1 -0x7864afe84c12709f13d18659d2ec978ae31b04d5,1 -0xe9a9f7ed56f20087365b9f8582c63c3c13b358a5,1 -0x06d2deb0ee9331d0d1b24fe1c4f0c9338dca0ce7,1 -0x9f6be83b101c0a49b1351fbb99d4689eea4f6f04,1 -0x2404d65219bd2c630a4e61b8ad70ef8590dc23a3,1 -0xec03ee5453359c594bde364f909a74a843e88ef3,1 -0xf735a2e05844f8a32404a7f2368cd5ee0387d280,1 -0x1f9f7ff3c2302dead90d36bc525946fd137a9ab9,1 -0xfd60aac6abf02e3a04e7bcfe237146e2974eb9e9,1 -0x252e7d8818cf5b5d393d066caa742dff07af2d0d,1 -0x12f200812d7c2975b951de54cf796878e6e9f855,1 -0xec64eb7859b7f94ef776947bc81682fd8541bc4a,1 -0x9cece3ceddd56fb7cccc77c8fb274c97f3a26b64,1 -0x37f95e6592d92ece7c3997a32bc3cd336ee5be17,1 -0xf9d17d0ee8d06a7989d648b6f6ea205114ebc1f3,1 -0x586e16dad14ae9c438be919333ce0613ca68351e,1 -0xca4a046576b22ea2b00eb4d1d5b5fab8c9a4fa91,1 -0xf99a50dac7a4776bfa1d02b16180feb360b4dd16,1 -0x4b3f322d3967e6d7f5f8280384424e53ddef5415,1 -0x2d87e6e9b96fa299ddedb88daf5a4deec31d4bc7,1 -0xe2b9ba1564e14908dc279a775fecf1256b9a93e9,1 -0x5a5e25b90775565e73a5feeaa9ffcd1f8432272c,1 -0x485da04e8a7d0fae624bae5f3a6b26274c3cf785,1 -0xa69ac951781b96ee457cf5a1810ec63a019a85f4,1 -0xb50352167b2b961654159febc4736b779c9b9412,1 -0x240b6abfe46dd32a82c4f5155275a9f090fd847e,1 -0xb9ef2f38045ee63aef69a556f786a6ce73d26cab,1 -0x0c41ed956356ed2f57c891fef614a5068a78f6cb,1 -0xc2e4f2b341dd772d2774b9c35cf1f6c189b394f5,1 -0x4385ff4b76d8a7fa8075ed1ee27c82ffe0951456,1 -0x11feb86d8f5c64b4af5f8c5126852a8471af41b8,1 -0x51a023ac7894a6dde07c985fe6d545fd48107ed8,1 -0x86b5ace2ed2f8f4cdff9f78f3b50e49963ae478c,1 -0x0a3739edfc49589c36fcd71dcf4c03e2c8e09d2e,1 -0xe628528b91062b7fa131cd73247b4f606b66c116,1 -0xe65143c4a1facc0b432d9686af3bf7bb1a303342,1 -0xa9a0f19d28b24e7922180585a502c8a46149490d,1 -0x1913388453176668a17b6155d537fb6163b62bc9,1 -0x98d212ba5cdf990b8eb7160c772f2fa1db61a750,1 -0xa206729dccb2bd38a211285e6f5557e40c486659,1 -0x087bbd1ecc15cb3a6cc6f1287a8f332a71da6e80,1 -0xaf9a158773499e619e853043f8589b7cd3d2174e,1 -0xa62bc836e4b90ab64fd2b4f42390a999d10c0d9f,1 -0x94c030ed5fac66269bc32b8a33850365c28cc998,1 -0x93b3af013241711ad536d8c7b9bfea5328f7559e,1 -0x7acdf486687e31778ff5b4318a01822d3327c8b7,1 -0xcadafe8df50b07ee72fe21875c41eabd80f5ff02,1 -0xced4370f9ef4109063e01cde0ba78631451cc526,1 -0x6ffc4b87bfc7e087ef6ebf3987a7b4d5aef70c7c,1 -0x1e91f6d954978b60f34c92abb2dc854ea20d3695,1 -0xd51e19053bfd1063da0a3a4852a48f6e14810c96,1 -0xf73a6892907e0cac9515fecbaddd12ed104b0f80,1 -0x921165eb26eced2e62021618ab0229e3c9fcaca6,1 -0x8e930b27c6416e09066b49daa66e65077c7676f2,1 -0xb305a0f87f502fb1b28ba3b896413a49f4b18867,1 -0x06e17882d1813c3a7726d0d8db60fa90922bea42,1 -0x5e2e7cf7e73096a03bdceb7a52cf41dfb0f14e88,1 -0x785423440d5b4d799df9f0c439921801d881f191,1 -0x2b1b3eeae21bd18593521456cf12f3ed5db84950,1 -0x3a03529c22a1097974bfed4a2107bdb1493e869a,1 -0x393d436e1f5fb5b89e7387fd4a26cd18b2dfcb1f,1 -0xe1a6ae1fa3884ca37bc339c969dbddb6620004d9,1 -0xdd5426dbe0f22f54e1e9e9505224a4506d2e8aeb,1 -0x125c3bcc6acff31a90209f37081c1f12f93bcf19,1 -0xa5b5e50fab4e2b32351997094962a08a440c9426,1 -0x992319a291713ca3f1f8550b94a10dfb99b5cd0b,1 -0x88ddb944aa3de7529ef22f4fd79854549253e378,1 -0x23186bf70d96e206f88752e4d3e722b4da08f074,1 -0xef33bf0c0b777016db26f0e4dbb351d17ae95af6,1 -0x1fbb9c242ed03f05f3f57d33d519ce2ac782b2b0,1 -0xee9f5f04d4de1db0c05879ee5d87ab1f448c4102,1 -0x46e52a150ed5235910ec3e2e688c72ec0b6028b3,1 -0xa0a5992a12b01b019e2edfb04fccdae28bf198c3,1 -0x6c7eb61c2a44ae70923af2bae88e3363a19fcd9b,1 -0x93b21df8f52b9b86d26fa2bad50d2975159d2f37,1 -0xbfd91c16fba8e953459d95115a37b0e327baf57f,1 -0xe0dd3b1f1ae24ec706284dfd27a6728493cf5577,1 -0x05ee3c534b3c640889148539568847b034424be8,1 -0xc9b1839cb143b6379d6d7cd7952daab15c5e6880,1 -0x05eea37708ff0f1fb33bccfefec659fd5225c9b4,1 -0xf980f8f9f975733f817a83f67c2378d920e91764,1 -0x4dabf8064a6af64a00a812fefa76795d3c1f3432,1 -0x406ac754f371b7de141ff61364f5fef4326c2390,1 -0x58d97151619418951010ea30623f9f89a3913403,1 -0x4d7a463a6bf06a82d9fa25d40476ebd36d24fd99,1 -0xb0dd0e4825b91fa8a5c4fd0b54773f28923bfe7d,1 -0x0dd942c70763c35bc700aa7c0694a439f1004fc2,1 -0x88a72ff1ec6162a3a6320c2b1db339d8ee6b9ca6,1 -0x375aab5c5d18e6854f95ebd61fb812250d142af3,1 -0x791ba8c2d528ed164f3e4a452a020a472a415e6e,1 -0x90feedb893c1cbfdbb5ba78bcf86b2fb3c2caa25,1 -0x44cd900a50944d5d7838cdd0e9f71f7d4bd90c32,1 -0x5a2f05ab4d2b4e5a9a856db636bb4e95d3d6bfa0,1 -0x547875955a3b716ae078c17c603d4ca151dfa1a7,1 -0xf0be18bcb2be01109c25384f14073a0557377b8d,1 -0x4406033bf96c94db5e9c421fc720fcd88d986610,1 -0xf50f829178919be54e11f26ba4d5efff4eceedf4,1 -0x4f32447bc12919040db7d44c6db3c75f8b4400d6,1 -0x7594a283e95f470a6bc9f58b4fe8e5182d7bcb89,1 -0x9d602b83420a61c693a52a22ddc48dadf30e58bb,1 -0x364e968034eccae03eec5c4ced95fed24e273e4a,1 -0xa4f8ebd91ecbd9c2e1e03ecd7d56d71c6bdba849,1 -0x8cb194a48f0e37ab10661ebecc67d4de5f4bb5a9,1 -0x86ec4cbb54bd0d82163f3c208b9ebce30b54d69a,1 -0x22e33fade9b6f805f3e75c7f9f15ff19690a2d0a,1 -0x2a77c129b609de902494a77c022e3cea27d20033,1 -0x44cdcbcc58e90b86b1df55321cacc86f589ab7a3,1 -0x88abb32fce6dd01c163c1d119f5b1588d6aa2f7d,1 -0x65d77c4c24a938efb718de5f9736e7a01bc0e074,1 -0x372bb2514274405f2189df82b97dbef84a7ea87e,1 -0x2bf6eae40a79d9705136e5b5386b60418f64897d,1 -0x5b6a4e134f68d6d9b6f4ab317d5ddffe3415ccae,1 -0xaa288c3bde1f32980b27d7527ee1a5c77afff050,1 -0x6bdf9fc8055e5232c2cb9a47dd5265a502cb74c1,1 -0xc96f7040a36fe8b928cc337d32588968f081a613,1 -0x769347d82f2ff0e989c9ccf7cecf07c863e5791b,1 -0xd119f2f744b29d0c7978ffff3ab68f7754f2f638,1 -0xab093ebbb9d97b1d571e9db56209a43846775c75,1 -0x650dd13fe783ba81b4931705c4f80a1365a4290d,1 -0x9b9f4d1dba7ff2eebd80277a828c61c66c6da401,1 -0x704447145c528964f27df5c2ac881dd051c20705,1 -0x3eaa63f4eac84e9e8a315de1a51529ccf4c1130d,1 -0x8e430a6593ce1184555de0621128110c23e65907,1 -0xb2c71b4efd5e357abf8a5722a3c83bb4c74ebeb1,1 -0x3642372b816709dbbea0b2e09a7e0f70548a2391,1 -0x3d1805699ff92f10384f6deb5ce39cfbc93021e9,1 -0xaa3b9c2beae31f5fed3f46ceb4b90918c4159bb9,1 -0xc0fe24f13f7e7a006b2664f80a1998350724e083,1 -0x7f7dca6cfae1a104cc0a93546fb430989134a04a,1 -0x200d6019a3b7f6fff98161ca08c86f9b5e6fc084,1 -0x9e2e028bf25af5a3e6b8c1121ddd4ffd287c8bd2,1 -0x4f34adba9cd33c06b56d6ca1995fd25a5f774826,1 -0x1c5d428f092ea64675b452cedc81fe90db8c44d4,1 -0x6a81f2be7a9951ab1774860af20d20fa5fab31ef,1 -0x126b1c5a59fbef04fc8e094a69dc8586babb3752,1 -0xc22f792fe40d19b5ccff7f82fe183bd9556b6123,1 -0x6146f92c3cc483128be61ae6dadb23ece08df918,1 -0xd9f7b3a00d437f5519b2bdbcc504920bdf2f22d1,1 -0x99874e909088b09a29beee50a64aaefbc382e325,1 -0x284bee8480888b22e221641791cc3bc86337624e,1 -0xb62266c083d62fb427ed3abd98c7c88c7f32bc3c,1 -0xb46e8b98021d3cdfc60e98c9c2ef7c93fcb06ef1,1 -0xd0f6ed7e4efa9314fe489fb7e6c82403fad62ff1,1 -0xa18b8eb95d2c0e86e020804f01b659da627395ed,1 -0x345b47bfa3d61b8826a1fb4ac6f4c18cd15a6079,1 -0xd9077ef87aa3032c4fefead2fbbfcc61213b2e64,1 -0x9c85f04c0b64046ccdaeb1ee86c496868c56e8b2,1 -0x764ded3bc20b4368c2e0b05c8f59578bc177e8a6,1 -0x0de0545a53f79e53c7408a8c44a3fef6d41f2e82,1 -0x1a29a6c02927a69f25fed93802fb305750f43e36,1 -0x89396cd2566842beebef49731317abac1a8846d2,1 -0xafccce0e6239b72cf708c45a8076ad2ae59e761a,1 -0x51ceb786cc0936c8e59232bae365bb73113a2e10,1 -0x42290de0d0bf49ee33b478ed3ea9ee907f46d0dd,1 -0x33a6789a531fa6240fd33a27f75880a0138ba433,1 -0xca8bbd16cd837f2b7c387609aecfb1c088169e62,1 -0x50862dacdbc999dc949cbea90590da8ebb7ef421,1 -0x012771012142f4c637ab7c3128a1510dc9616642,1 -0x885304672a0bda45cf8dab4f63a59bda111a3c4c,1 -0xe374479695fd5eefbc1caaa8e9d705f05ae24f2b,1 -0x470d9cae7d9d476c4d078ff21d32d27e077f816f,1 -0x4cca008abe7568652ba18a899373fa994d114f63,1 -0x3b68b16c51d88028c313275c1fa806c8b75f69a0,1 -0x262150a13f45ea8d9ea43a2c13f2ec98e2f48b6c,1 -0xe6249734875307b4b2474bbf0c8d6705b0ced23a,1 -0x875a9d68aeae4a7e30804a88f5b2f2a203159ae1,1 -0x1269e6a15bfd5b57e16e28050ab41f955a4bfc18,1 -0x3736f88c153156ed2eab9ff17d535e554e1a8b28,1 -0xd9649bd366a0b42c3317643040aeea6c70907947,1 -0xb6684c28f5b7b094adc36a97c61b56c7a5bf5772,1 -0x6a0e3059f298d589255b4de5b410a128046d641f,1 -0x43914691ed57161173906fac34bbb49eaffc5100,1 -0xd5f390f58546ce167e0b94b99a1f05b3cd5982f1,1 -0x1d5185c1fc44caf9247194638208d4d80e93753a,1 -0x3297bfcb1487c132fc9d7a37024e31252b5fe653,1 -0x0b849234856beaa9b22f5f6e55e4b1a1a31be25d,1 -0x7547c9e3a87620489c80dc3047394c645639c271,1 -0xf089507fb828f5e82243f7b6e02d80b4dccf7871,1 -0x5ce0b7c8389978f616bdc00b5fa7d12bcbd9d1da,1 -0x3ba788a1d5142bab6b2a2ca5cc3a129b11b146df,1 -0x5cb55329ec0fa6ef15b7d89cd6657494b39aa658,1 -0x21730eb5b4cda72a024c846bb59c02731c793b40,1 -0xf5f9f4676bceba420e9317768722ec6e57ad5782,1 -0x009d8bab2054869a20e588702a1327083bfcdea5,1 -0xb403634e9c3d162ebcad4da9f2541a5a4a785032,1 -0x718a03113ea3609cc4b188dfeb9c45d9d80fda18,1 -0xed86c620464a069f3cd51f07939e7719e8d9c3a1,1 -0x1f25fcc921668fa7efaaab87fafd9fae1546514f,1 -0x41410f2d62be40845a94a04c05365931132d517a,1 -0x0a968907ec8b6520538d4af97a337155cda38a8a,1 -0xc05c703bc09907fdc90a9883f7039c470f404bdb,1 -0x19a6c1274d539dd532ce278c121670a814b9bb96,1 -0xf9f508c0d640745297cff2507b1f05c784cabbec,1 -0x2700ab07bb42ff12bc7db66e82e4b356db36b705,1 -0x11006d9c51617359558c53e849d23c5cd89c39d4,1 -0x28fe77731453f157083089ae674c4ed1b14dd157,1 -0x9196ad64a5743b71d37a9571f419b41f603d5c6e,1 -0x57c9898443125749395803ceb7529301fb6068b9,1 -0x06a34b54b3ed364b13d7f8fd090577364235546b,1 -0x25e95104199f6fa7b40c3a1802edce7dacfb13c1,1 -0x80de81e4fb9af049ba70b572840cf3cf846d3ef9,1 -0x8231107bd4373aaf495f781b38ab3400670f9d89,1 -0x898b4d413a7f32275edbe075926657c83909886f,1 -0x12bcd3182829e060e67e95090a5970bd3efd4061,1 -0x60ded73b188885cc33c724bb76ba0724cd4a92f4,1 -0x9f32d62a02b999a8c4e760ce48c0ce7641803c78,1 -0x7da5aaaffa977257b20c7aee40653f5d97ba3b1d,1 -0x3b818c072b671edf5d9c40c3f09335343adf5441,1 -0x5b222f8bc75d9af8dfc64d1e1affa54beb828cc8,1 -0xe11d79d86232de39c00de6621fb5cb25fba8c8a3,1 -0xd87f6f6cabd6a26f05ba824e6f00efa417d178ab,1 -0xf15a45a902a71e23cded2c326d3f4c9128f29a4d,1 -0x4e10a289a042ec37e16aee62f71db5d344fcf991,1 -0x7bd7b07589a507d7e9dd6f0943be14f630149857,1 -0x1304fbb5f43010a3c439fa833612d921fd6fe89c,1 -0xc386cf970412fe62e88055c96a4ed619cfc9bf3a,1 -0xaaf049381cc32b439f66e2a10cfb998986c903d2,1 -0x6218529d052c3fa2daf7af3f70baac29ae070538,1 -0x265b10ebbed5805000b5195606f2f4c615696eae,1 -0xea2f7b134f1f2ba9beefdb86b1377d59101ed92f,1 -0x389d2e16e81a665b1c3d4d21d42894b3b58a3be8,1 -0x27a1622c64ac4bba13b04dc6267556304dab2c3e,1 -0x93aadbeb2bb9d69cba9e4e6f581b4b2ebd143a83,1 -0xdbbaab6cbf19f0315aa13e007bdf4abaeca6e3f5,1 -0x8df3e70911ba2b903267c2be96674fa0ab37b690,1 -0x63c401e0bb6136f357a197f78d1ab70d14551d3e,1 -0x7de5542fc5da8fed12a54e08501307ecd3860770,1 -0xfc38190a35d21f4de2f3a1e630aee8759c727ba2,1 -0x7da0182b25cd358191a01b9a8bf967ea2e2fb1c3,1 -0x4adf0dbc8bb29a61be114c22879202a76790c9d9,1 -0x356329b3704a8a787df9ac00f2834c362511c226,1 -0xb827aa3bf868ab566703f87e0c45988d92472bbf,1 -0xae25aa7aa3aec1ea4e6d1777d87a8826bf6a9c41,1 -0x639effa54c3f1c0b42a4932164a123c3cfe27034,1 -0x8a41db8ae5c1ccc3b08ad4f7e90908eb8c0cb459,1 -0x6e9a97f337e4547690fc8aade03859fe80b5e91f,1 -0x0201cfaa262967fe74178f3719694e5911545eda,1 -0x0d81cf154519412643254de1a9b60789e6c3f93c,1 -0x0c8a76f923305addd8ec74738f0b0633e6d0ddf8,1 -0x4dfacc461927cd83630bad025f941fa56df2c966,1 -0x83a1e1f544b8be7fc269989eafcd20f7f0d81370,1 -0x2e35af439422916adae595724b8fcf1daa0acb1b,1 -0xba89ff56b3d9d0d81b94b740bdc03c5dae5e7269,1 -0xd47c7dbf30bd1fef709d6abc4ae6568b89f6bc14,1 -0xf4f0d6efb7e3abe866f9315c6b04b455205561f2,1 -0x98ab3c4309d69b763bcb48605b4e72dc4d099fe5,1 -0x1721298f14282709b19b4e13eba9e57aed687495,1 -0x4734473062bbf1197ea1324e691075a8e9971d48,1 -0x0bf09e74bfc3dfb06d805aadfb900330d0cf5909,1 -0x110ac62f045a164da7fb379ff4f8ddf849f3e38f,1 -0x214a337117ff85bffc730ea8ec617655853fe2ee,1 -0x2eb29030b43fb4ca2422b3335067779860366d1c,1 -0xecf3b5b82c89fb38811dd84b41717845db433fb5,1 -0xfdfb63de913856667821b488f6741b4976951c01,1 -0x3a949daf5a5d0d77169785b3f5aae4592a4572e1,1 -0xc597222297cbe9a47b5b900eb76ef22d8ea022fa,1 -0x91cc56bfb364f576dbe94d6299994dd94b90a0d5,1 -0x2a43617908b26a33d80a9f2e62b921da1c07c157,1 -0x2ad3c3c10d2c730671e791e6d2a2391a7120336d,1 -0xc0e0f3f4eeec89c267c75cb2fd417a8cf54d0484,1 -0xb2c5ae080a236fe89a87fdbd1f9d58ad4b57c6b2,1 -0x42712a9dad3fbb0685ae016190b36a1fa1fa5fa8,1 -0x432f3b022858c048100ca3e7a26c5f70c18964d3,1 -0xc1bb3d14a6e26343562ef96bfd54150e0b776fd2,1 -0xf545393e5553c9d8f554eae2868ab00db23d1dc6,1 -0x762ce040414ef2281095da6fd93559aafb31ad93,1 -0xfb5a4c5e5e922e274410e9e4d280ff6c16ff1072,1 -0xccc4372a06ae0a627b341450b7f4c802c1e23100,1 -0x8011ad159d0f685c2e6679eec1bfc90ae5ad1690,1 -0x6dfe179546bc56dcfe2a4b0a622ab3b93a11f92c,1 -0x92812de516e8be5ef4cd4c8916626870fff95988,1 -0x17d98182bcbe754b5a27a22e1403b9090d69cfed,1 -0x56467a044c1f871c1ff83d804f80c6a86a247aea,1 -0xe4faf36869f096eb3fec5455798f09177539609a,1 -0x6b681061273bbc6b8e14f2f9a076668ca577c719,1 -0x2038d70ee8b1314cae3327c511e2fe747e22071e,1 -0x276963b293750b7f7e3c98bc2f50c7af9388b1b6,1 -0x8b482b5a1ba99c371223229cf23d165baa05f8bc,1 -0x6439543a2ff1d78d25abdc8daa75bb004e210183,1 -0x6516eb8b8ed3636aa14a2cd12987c87147ee1c83,1 -0x6691e72fef00cf9cbfb6ef4dc21a9cf83135c08e,1 -0x5b76b72cb2a1fe891ef9e4ac8b42de5adce45827,1 -0x04b3e3a1635852aa61492ddf721eaf4e96ad6799,1 -0xbca4e188c6216c6c63000c4c3b3b44ee7b13c757,1 -0x1fa2c413d4373d197ae6f5b00514aba10db4d3b8,1 -0x958722bc001713d972966db8fc39b7a70d9ad056,1 -0xa1596ed4382156bc9cf4b8fa2ae09f78676197e0,1 -0x46d002b7122dc2dbe8b747cf08a7222ac389a639,1 -0x2d1162d197687dec16d68030c5dc918253095d56,1 -0x4eb0af08c008291218f08021103159ded0dfde33,1 -0xa612b66f90aab112d881be23744de9a176fe87f3,1 -0x4f1cf0338871bfffa17efdf58b00f96e28ea1d22,1 -0x956d00c7ea41d5ae741536ec26633645c5d80a10,1 -0x504970d1cbefe8c68835960c7831a2eef9017a0a,1 -0x8b9bce95528d14fb59be69a9e4aed558dbeb603e,1 -0x39f0a723b04a23565f73616a26a8b7b1a010e60e,1 -0xf8ed9f571e456030e8c0a1eeff26743a402e7181,1 -0x05e8d70179ea811ba9e18a9da5fb3039934fa47d,1 -0x71ba5e16c78fecc1fb9e71f1aae8f6e3ff782994,1 -0x442fede81cc508d9afae24da037df8427ce37fc4,1 -0x96e9b3440d96beeb6d11eb32c39aa1a03ca1bf69,1 -0x4111b6e9bb9c435b5bcc787579af5cdf0058a0f9,1 -0xc2e0fd51d3718599e93cb62aeae94e8f37c0cab5,1 -0xd094a1aceae6f185e993955a036efa69f8045ba2,1 -0x94ca53e917bf19581585360490ad10d95131d411,1 -0xc3016cd9d712659ef2459749d00ed5c0fede28fb,1 -0x0285c07428dcfae966975eab57e96ec7dcfbc064,1 -0x519b20da753574518474b4eab85f95fb0b8bed65,1 -0x955a2744ae5e7a8a335d6e13aa80f5db96be3296,1 -0xf48520dd8f63f7c5ccce0a0c1f0d8b65ce65d487,1 -0x8c8160d81693b54e605d528d5a474e3b9dabf794,1 -0x268d7dc826b3bcbce86f09ccb595d5f84e547abd,1 -0xc1a2fc82e5a1fda18671708f039114a3542b6354,1 -0xba61f7767272ef733819c132ea956eec8e010042,1 -0x32c673e865e4c110a49368d7a685a10efdb014e9,1 -0x6ba0e7edc260d13afaee08f7d6ea4e170babb0ca,1 -0x5448d9a854e8ae87227d0f9bde54d33dd2e245c4,1 -0x98cf6ffab2ff4d0835a966b02deecb110683b439,1 -0x13ab31f6b268160a1cd7c3805961e150d2daa7c4,1 -0x0d5897fe5185f7c4e3675b9c6f585db78f3a82ee,1 -0x4bd44450a29b82309828410af76c3eca42161d77,1 -0x4de270705c24980fdba16bd005e7f20dd918a575,1 -0x910f2563fb2edd7ad69c16d6c1ccf0296f1f77ab,1 -0x6f68695e4f6f0dce04fd5eb4cf1230f26e58a237,1 -0x3283df49a4b2d5f0522759e351907298ded8f4a9,1 -0x38c02044322a1d0915f7905b35b89a635b261b48,1 -0x6b3fa94ce1dd458f417e29bcd62f4149d8729114,1 -0x891c5a00fad6e2195d23161590de694d67a269ed,1 -0xbe3bf4d05a51e7e93d6f4dfa1c28e6d018c7910b,1 -0xc1b03a44dcdb959b72df91e0f24ccdb98a1ae5b3,1 -0x10479690c91faa5917528c743f264db11a764c0f,1 -0xc94a434ecdacbf79310d114920aea40ed2212a39,1 -0xcaa1dec19bccacd74f0c12b89f0c22c93133eb7a,1 -0x3be4d183d1fb1c90aadda534764d9838699f3d57,1 -0x99d0222e18140ce3a5fc08bf4679acf4a025b087,1 -0xc1662a61a101264bf1a55f1a641fb700c580fe0e,1 -0x877b6d569f6ab2a99c31fb9034d7765346c49427,1 -0x795bfa641e6180910244c91919cb2c3c62f785be,1 -0x163fdc4c5908d2cd1c7acd809ba6ac91f96e877a,1 -0x5062bbdcff393ded642d4de95cb552a28d5de758,1 -0x3cfe7167852232a1bf3bdfc1560deba88e0c430e,1 -0x00f5ae692d8934728c6d44211979e43e01da21c4,1 -0xab5309888c39646bb222a70e0bc1c69e3326ee77,1 -0x4c6a421722a53ce3c97e00de8a5da1d3c6eb2eb9,1 -0x5f1841d3df01764528d2ac8e4986350749abebc8,1 -0x050ef2521d9456655fd8495372e91e10108f9fab,1 -0xcda7fd6027ca0dd1d44f09e0bd3552bdedec3292,1 -0x295a3ff63705bd788b53776a1d5590da3d39e1a0,1 -0x26471e7a37ebba9e308c720f7ba2173484bd873d,1 -0xb33dd8b1ada02aedb0111f03f07a0fcda08aebff,1 -0x3ffd349e9e8e685d25fcfbe07aac5040fe37371f,1 -0xe22a9d592fff6bfd0277cc54a674cd289efe3950,1 -0x9992edb03abc91e273e2fdbcc2128f69b4b3c6e9,1 -0xfe30dc7fd5051aa75c0ce1ee33e74d76a72d3eb7,1 -0xfba1b8e733bcddc74695ef43c2040d6c0ff87f88,1 -0x54c0650da0891371e744bb339e46607c69e84f3e,1 -0xc2d96b4d96096575f3d243f64c9294053fb578d8,1 -0xd901f4902f4bae6b31968409b750dddacc2cb299,1 -0x811de8dff3b4d92b52f1d540cdd92ba4ae88943a,1 -0xf14bc852bbd0fdf2822afa39ecb6b514b55c0f99,1 -0xfcc2d631c320035bf59e48a49c5f729ebb452ebc,1 -0x4d02edf5775596156236c2a40bdb428e03676c80,1 -0x58369a92bfd60638552bfb9c4bc41626bbfd0661,1 -0x9fbf5a1b75ed1ea0e7f8a7a477826bf953eb76df,1 -0x4084d813284783b9c4c6287d2e02f698061d2c87,1 -0xc665b8b2c8127fb23b6b28cf9a2179b587d7b8ec,1 -0x715446cfec073810566adffe035ffe727bcedbd3,1 -0x966e3a27c5d7a504cba53f4ae2e97ae693406f88,1 -0x67eda32972dbea06301909b1293c1da7fc80b402,1 -0x91587065abbb9f2d23010a4e4564cb30956a274e,1 -0x895d12d2ba8935086cd2e553a34a1037b5373df7,1 -0x2dda3e8b4fb51d40737056d67414c0b4be920690,1 -0xc1e05074bcacd1b43e53c12250577efcfa9b35e4,1 -0xd6d29de23e2b4f6b69650753c2b4518325b70732,1 -0xf8cef5c660af25d9d60a29d35f3a2f82dd5f7752,1 -0x9538f402d8498c025021760fca1548268277f57e,1 -0xc2070a0d9d41bf4545a9f13b7358070bc244a635,1 -0xe3ab00071a569d2cdd44b83e97027d044a336e71,1 -0x16e335cb9d2129bf84c1ec4c1ff51cb21db2acb8,1 -0xdeecb83428b913da949a5713bef311f95a5f95f1,1 -0xa7b35df9adfc11031c6e70cc391d5b76af2e91fa,1 -0x6a4d154e48f31624440737809585ad3a1cf33bca,1 -0xca8a5aa2a64f87532fec1b78d76aa9bcf18b71fc,1 -0x0a9f9e01b917e9aca2cb347368ae73f9cf775e82,1 -0xbd1cc1037503b0c871ffdc98b7038fc812bb5e16,1 -0x35dabdf093544067fc123a530902cc308f7bb636,1 -0x327aa975cde6dc5061420843bf887365c512b624,1 -0x122ac1c050d17a82ec8f9ebd8721b1a33ea40284,1 -0xd8c6fb8fd757a90b330ec0ec2043a19266f19431,1 -0xff92f57e093488cab03238b96483a3f4f9073f53,1 -0x0f9ec3066aa9ae0853b1d2fdbd7209b824da757f,1 -0xf66e3e167ed2c305a63b44e51d4c456ed9a1002d,1 -0xf7f59b3396a093a2a28d86023f6d5281b658743b,1 -0xdb8cc17c23c2bf1622dfa5b92e85c3022a9feef1,1 -0xe10c2a62906060d4a25749e18e36541427b6dc8a,1 -0x23ee17717e208c731e3027c0dcbc4f447c19a98f,1 -0xd8a00486d4f0b9c253ad24e3ef4907615eb5405b,1 -0x9a2f17c3ee992d675576555f4d2222311c715e22,1 -0xdc77096537b0e84077e4e78ec875a444487d5970,1 -0xfd4944363435e2f6cd6e0cb27d98cc7dbee035ff,1 -0xc7847a20c3e19f18e79e1036711852775da2371b,1 -0x2dfcc264b08a181bc7c38b9901059bab369a5a4e,1 -0x968fe56e12a4a8a633d0e3f06e51bfabe789faac,1 -0x487433c05344040bc5db6737f1a35a48262c049b,1 -0x6e5f8228e3d5df08548b5cd06ff0b75969e23e4d,1 -0xa8f45e2a7ad237fa3f9e9c6308eeb7384c2dfb37,1 -0x0a4ceb653efb19cb77b54547017f1bbcc706cd9a,1 -0x69808d96bda09a8a9e22a111a83a365df35d206e,1 -0xee9d5a195fc7d1fe958a9e905c8110be4dfd6da1,1 -0x2f975a4d04f0337fde8981a1d0456c3cd44c1d34,1 -0x1f4be14f342a8dae916863cc7ba214cd6d8fcaee,1 -0x77b0f07278a4506dd2515dac9b17ab9d54b66ab7,1 -0xa8501f6350da64fd0298bdc4985eeca7fcc5f51b,1 -0xe49056f43894ab000f863f00c9285799c8dcf68e,1 -0x4f78ee5f1b24b74fd09cb451bcab773cfd334c16,1 -0x40e6bb0ddf95d710f4e32461f136ada7baf73aa0,1 -0x1c18f292e305e5b50e843954bc56188ebfc000c1,1 -0xaacb32a4b6af26810f3f10d2f3bda95ebf62a529,1 -0x04ae0d7f4e588f0df3a1d85b5b6c3028a3a69d1c,1 -0xca69a57a7319f028fa2008448f7a170ab40ec71f,1 -0x841c62e25d85951d8a053a0c6ea98da83d16313c,1 -0xa02918549b8b61c687e0daaa328962a8027b77c0,1 -0xfb4379cf8c70c3b98ce876be80fe1675c1e5e3de,1 -0x7f29bba5fb0c2a57dfb73d2dd9fed2e25acfbc43,1 -0xd82babcc30aa8398bcaf0a18841b5728d1a4ec03,1 -0xf07844767a7c054250b9ccdb42844548dcd75d67,1 -0x2c12a3ebfb16eba77c2c6126ecf240aded7e601b,1 -0x9424cdac2312665072b68a6a2ebdf2864899aea8,1 -0x12694ef507dd82296d5b312dd2403495d68d55ef,1 -0x3bb41eb7f28fe4701f16eb0daae095e9b8a2321b,1 -0x7cf38fbf82a37daf74e03d5de2b74ed0d9715360,1 -0xf932530876fe3a320e26f1a06120ae3b90e4620d,1 -0xf48c80f6be9b21ec8cd777946f3e0e3662370ff6,1 -0xab4ee02b16ad5039b6a4412bc947ade184d3086b,1 -0x8bf0b289c8959c48470cdef180ad73cb48bdea34,1 -0x44fcd4610acc8cc1da18a491d401421662da5366,1 -0x9273569d8081db02addb123355bb7066aedb23cf,1 -0xd1581c7a49b9bba1a43e779fc5a5fe7d233a3cab,1 -0x2c2031e9db8913dc011e371b9625c2b785ecebc3,1 -0xd7271179ab20de682b7692fbd73963e5317ef573,1 -0xeb298223f82ecb1e8b21c9f0ca5e7ba7a98c732e,1 -0xb7fdc38c524068708c751618d789bb3f64a9eb41,1 -0x39f3eacce3f7f06694eeec45e0e86814cabd390a,1 -0x2859b94612af8b09217bab15c2a63e5cfc01cb55,1 -0xb13fc6c541c44afeb7debfc30f77dc6dcc1e83f9,1 -0x28edaee718a48614c9b1914f80d22dd218e9beee,1 -0xebd2ed4df26176a90bd88f78ff8b91e30cd21c59,1 -0xc90567b9a915911b65724edab34b2bfca335c18e,1 -0xbb383ee6c60574084cf24b9cd34f3c45752967f3,1 -0xecad5a8bf01bc788c999493bafce8c997d415ff0,1 -0x033df7a4dc7851fe9e5dd4f5a97a903a3eb08782,1 -0x62beee3e18762afea5143af11346861122f3f08a,1 -0x7897b87e840e51709374ea6293c550340da5f599,1 -0x7447a7e0ce02695018b0f1db670da6932120bf0d,1 -0x99218656fd1491f359f0e19aabdd0bce93c008d4,1 -0x3906253e8b0f22211b51d3d2d614b1f18addbd75,1 -0x1f9c28f741f093c3d7cb2c59ec592dee056595e5,1 -0xae54c4e40689705fb556a3fb39277080ecd527bb,1 -0x534b8531e362da97d808ba2ab3959fa2597bef11,1 -0xee14467ec4004675a45521e4b5a5843ade551d2e,1 -0x62e5dcd45ba3fd2d314d97b0a1df960b7be8b47b,1 -0x0f1030a68c42f833e41357fffbcb4d84c5e6a8b9,1 -0x62d08e319cfc6a26ec7955a052907044d9c4edb8,1 -0x5a2789d77ee4268409a50f24db828efdfbbd3c86,1 -0x33788caae7266ee21c0a888cc25158cccebb44d9,1 -0x3207a227f3a39ecd353fc225760289be72a469d6,1 -0xd8cfdaf2799d8788d1e0e9cbb9ef7d6202867c87,1 -0x0dc3edf769f34962bbda01ebef4f700287f51e9d,1 -0xc0d1df79972889a34f40a2773e1b73dc6a6217db,1 -0x69cf8e927d43e463ecc797f5d57469e6cfbc9a5e,1 -0xd048424b12c2c7f1e2aa7f286a4ce6f59a90e6ae,1 -0x75b8667e2901f39cbc8c6a433f4c638652c4d6b4,1 -0x762140ccde6372e9ebf99da144e78331c3936931,1 -0x77113d4e2e48f6d2801e8776ad2e0347e88d9e8e,1 -0xce9d70880d05a5e877c2d4b16030b636f40ba026,1 -0x917bd6ac28bf4f77e41b019871534a87875e08fd,1 -0x20d64f7a9b31a08871a091414e1f757bf3eb47c6,1 -0xc920c11333164cbd482b05743d39db29e70a630d,1 -0xf9c10dc0acac201388c96374e3386f568962d0e8,1 -0xd0099aec4190642813518532efb359170ee9bf87,1 -0xd9d13b075fc8f234c69b07fcd34a27f302a8e5e8,1 -0xb81a4654f0b4a09a3cdcf40e4b286d071dc37e13,1 -0xc0a2828b1833e558f7ca6543eddef5b5aadc20c3,1 -0xfa9de126f3d5f788e13ccfd4a7531bb92737672d,1 -0x53186cc2d8836c9777b89ebfbfcb259ada4b699c,1 -0xbd37e161ceac3954dc936dfecfdaf4436d6389f4,1 -0xb0909939f4fa3e014e60d5a48169080d0dc7d683,1 -0xcc8694b9214b4248c23b59dd1cccb67b31942852,1 -0x9a75474221d27edfd81261e34f83c8469f55b090,1 -0xf9f96a473990a06fd55d4afe02c9f6ca71440ea4,1 -0xc7f354b172e53c0dffa8db17b028f634cd2efcbf,1 -0xb9edfd96a60dbffb6abe8ccd48cdd275e8918d4d,1 -0xc44ac20abb80a4b0a042f36c8c15d41182e7814b,1 -0xedc1040e47f75ff85867ff4358c6229801af31f8,1 -0x3bc4bd8fb51aaab5c5c36059be9852e6c24c937b,1 -0x3847d51b50507e27ca0889d33edf3b6a6d9de45d,1 -0xe361fe974dc0d01404947142f1b1c8c7bc288155,1 -0xc92d20247a8b20e640d339428968b2501e579c7b,1 -0x4f85ebd74f5b4df166ce5584d49bcc568b2d45ec,1 -0x1d7e23a8599df80853f01ab8020b1d979974f21a,1 -0xc0be21edb0b7f5c876b914d63306e49c0afa9409,1 -0x9430c51b084fc956fd527f39905baffd710826ab,1 -0x367c6dc40e84b5b6c10bbaa47abbe4a3476348c3,1 -0x2bcaa768a15233d4e1075b0f4012b7453fcead32,1 -0x5a8b9113be48fc3a9075072bad78b502a51d22d6,1 -0x8491c699fb36ef21625140444be5cbd0f2328174,1 -0xec4eae1ffad9f51095b4fa0061ea69de32a85de0,1 -0xc84ed4a3a2e9c899bbc17bb260363d3baa5e6909,1 -0x26f792eb9808041706b3e0ed96d2fa353fc05cb3,1 -0xcc3692ff26a84063181e1dee17d4a9694ac771b6,1 -0xe18a4f21c74c1e9eaf542538053fed16bea63d96,1 -0x27fe707956f8b21aeb62cf7f31d8093649baf832,1 -0x356040db3b961d8c3b23f0ff789f0e839bc4ed1a,1 -0x2edf296433a08eb66ad9f4576b3e80362cadf0d9,1 -0x3878cb8397f76bb071d650319e06b37cb8da98a6,1 -0x62b92927dabf97bed0f7849fbee1cd52e9615b8f,1 -0x765593247a3ed5f29105423083a1e40d350247e9,1 -0x464cadec89e727e1e5bef6d9f10b6b4c1faa77c0,1 -0x6e335dad43382c8300e7efdfe699d3fe6f7206c8,1 -0x63147e8c3888ef1a90dead78dbfdebe0d5236114,1 -0xd5d2f377461d4cdd74be58e839876c4670298170,1 -0xd312907f81c0ec1e0a9e61e91b400c0d766a5cc1,1 -0x05ae0683d8b39d13950c053e70538f5810737bc5,1 -0x908635944c05153dd06d57bcdb98fdc72b36d362,1 -0x7f495c24a4d893416011db39452c5013d0df90a9,1 -0xae5d196bff4740c6be6c9a90f8e8228e2b525f6e,1 -0xe809968423551135675f38ca77d9595c5d225918,1 -0x438ee34be7c6deefbdf0afc21c0d5375b912e0d8,1 -0xf6ac36f999351a4392b3ddcbfa6514bbef6b3324,1 -0xda3a16fc021c405d09a480ca6c097d0b1355b22a,1 -0xf701ac3fd11e1b702e751dda3987d5e89bba7080,1 -0xd0fefd8d5f2ea822d0d674a0c0e79a29f1341a2e,1 -0xe2600029547d1b50b99f4ae9c167ae84049aff6c,1 -0x89066d5ceee7d977f635e46005b21c98fef6cfa8,1 -0xd3de7e5bd37e1642ca568a21baf98e30c066de62,1 -0x9573fd435f93ea3d149af6d78459a2bde24858b2,1 -0xc225c8bb41197a6c7592f120bd3c11af2110ec8d,1 -0x57837baf2690a0fd31470bff9f17371ca7c2926b,1 -0xd895ad4d3d032329607bde60ec5e280bf9f32c4b,1 -0x1cca677e0e1fa47ad46a998cf2fe6cd0222428cb,1 -0x5ca76d95fd3e1ec2c9d35a2570da66c5903a533a,1 -0x96e02d995923a81949c73d7445a1b57639d1c415,1 -0x76e6a478b913827ae1091073c4c60182517e8a88,1 -0x0b3f90a987faa52fcb4d446e37ccf912dad55d8e,1 -0xeaf07dfa2c029b595b92cba2b1f1a1e532c71d4b,1 -0x3bc0d11bd51a7e70e3313466529a2da043e7709b,1 -0xee07237831687f2dc29d208361c6d2faf04c59a7,1 -0x39a7fabf0692e81a9d4be401aeb670266227e2b0,1 -0x61c7ac045486a34f1f2055384006c90f632955d6,1 -0x3c8b1881df62a2b96bffa01b298415074afeae61,1 -0xd5af636aa615cf84f129216bdb43b3ffeaec5393,1 -0x96a28b57e294bfd33f320ad752419b4ac194b837,1 -0x4c12efa9d8803d02b5b6c88d25fa33daa2843509,1 -0xf2d6434fb48b9ab9d9be7d4732c3eef2316ca934,1 -0x60cebfa10c7eeb35ae1fdd01a4df7fad0a51f6f7,1 -0xaaadd3e02f0da85412173ac0dccb394e63028e2e,1 -0xfe708d9fd0817bb4e4bb1175f60c08930da88e88,1 -0x3fd1d237d50909d22e3fee6a0b1f8d5e95be686e,1 -0x64590bc9f16681a1d913a39f8f0cf157b6085cc2,1 -0x86eb16c76c0398f2217e6bc96be02e54f18098ac,1 -0xc45b7099791991844d63bbe183175ffb32cad2e0,1 -0x3249a41e4cfa364eb1715022fbd0d4991e07ab43,1 -0x6c628ecc2527cc784a672e26152f6d961b22787b,1 -0x5d9779de0be302e378ebc18c2b700a11e0973664,1 -0xcf6174481f4ed04622ceeb7d483bc2c2bda0e2cc,1 -0xf97bf1c9ffede8e37c4419c7a10207dbf52bb041,1 -0xeb5acf417446017a0e372af9e2c4ce9868a2e944,1 -0x3835708fe7d89b029d70ac8520dfbf48755abad5,1 -0xe5ea6daa019ba806871bfc373d2196b8bacee422,1 -0x03726239a6fb96fca22521ad1ac115d279e9ca53,1 -0xdb6fa268c30cb57a65c44e2e28c704363a51dd4f,1 -0xcce68c59acd635fa96181fb09ec6e1e2415fb808,1 -0x4b666d97c1247e5f989aed852b8babea06a4255a,1 -0xd0bbff2d7c635f15c6b8c5f068e82cfc54bffb56,1 -0x6a2ec22820fd37c4cef5c4fa07763f760947e818,1 -0x1e06933c7dc544762afbe7966c08b744038d2891,1 -0x929adebe50a1749cf58c84e29c3ba8c6acb97597,1 -0xac931a58cb1a877febfb15d1726a2f55ce533d6d,1 -0xdff917ab602e8508b6907de1b038dd52b24a2379,1 -0x0d1ee21b1d6d50a53a7c9ca397442f1596813240,1 -0xd537c74b112e31524cf98f3b789694d7ffb6e6d5,1 -0xb8e884e81e124b42caeab9eb3e480652c4f35286,1 -0x1ce443c67b346623964c252b084a37add7dfd9e6,1 -0x1c5dd175666c1e08579982071c11cca8a9809911,1 -0x6bbc7d0f1cfbbe227d403d07c4872765d970e6b3,1 -0x0e14409004703a9363b308260c63a1f070d5f940,1 -0xb5322202f151ac36b42bb5c720038e4ee2a22fd5,1 -0x0898fb908025b1360d3f255b07cfeb1d8f57c1cb,1 -0xfb1e51afaf3c6253e6010da989f05a519baa54ae,1 -0xd23e0d263cf04cb87d23e245cc9abda599f7817c,1 -0x66c0d2181eeb92cdaf8f9c402afbebbc1029b135,1 -0x5eeb21cd9535c3130e683e5ffa51d25ae0926150,1 -0xb03bb5756656d64f2a070877f29440a4e3a74344,1 -0x27e78f8bb63d6ea7d5d7cfd7a402daf9c1f0af38,1 -0x641baf74e26b94d09d99e8502e1df35be3e26330,1 -0x14268087d71c98711d3007b876236933b5f99910,1 -0xd2a515f2dc07bc23ff47f089047e5fc39ace329a,1 -0x3b23503185058c72a3f778f0a3fe2bd8044738b0,1 -0xa7108eabd6d9947a5cdd0a0bcccbdfd12d3d17d6,1 -0xa0cd4faf8e4acfef6c19888afcb01f37065a6408,1 -0xf297d4ee8e37f24ecd9a6b4814a5dcc7c3e2ed38,1 -0x287ee6bac043a76ccfb9b1e07de39ca71cd19744,1 -0xe3159610ec8dec7fc6c95f2fd6a6ef5900b8bb90,1 -0xfeb1d08479cbf915c12aa9c113f28febb30693f0,1 -0x7b0186e0f5e793ca5b9df0ac10f6434264428c86,1 -0xb993907f8fde564cd0c02bf640eb0fd32debf377,1 -0x49754f4f2aafc9a41024e3f484fa8cd88a2bd741,1 -0xe564e6a3273c8a5a9067fc4a0f65724cc9f5347a,1 -0x58c303ffc715ed0cdd1b73cff6cf1fffd1404bd9,1 -0xc0d95fbb7bf19c7665a1c4042b683182b34e2150,1 -0x82aef5ce65694fac11a4b1e127d4015a3cc11026,1 -0x6e222b1acf1682dbbde8cb830779feed5420b2fa,1 -0xe017ddbb991daddad3de84805657bd6a97e3c05f,1 -0xf3dc3d3eb5c30f7ad72dba8d7aadbade7b4743ea,1 -0x1efb9776307bca9c23301bf3499953c55ab649e1,1 -0xcc40cfc146afae593333b4f0932063089ddb8c33,1 -0xb3d264380ffcf9e764a16ee9addd08bdcf46093f,1 -0x98f1b94c3974f6bea3c41758a8df9f2d54de3ac5,1 -0x24057a4017f8dc720a9d3709ed7e4ee93304d9c1,1 -0x9f1920d0cbb63ed03376a1e09fd2851d601234c8,1 -0x2c425ac18c04062b5e39d6cc1677f3d004dc4beb,1 -0x82bb461ba31db119a581fde411f9d8575036f546,1 -0x618f3350b8f55ef2d3956da9669242f699671a0f,1 -0x51cfff9d29ccfa9433aa3df81400fb8e0c318963,1 -0xcaaaec015a35499cadc0229e7c73ec305643f444,1 -0x6e1799764629fa3d9739fbbc0d9e2c2bab7ffb00,1 -0x31337deaa803e9919e77174eff9bd032184030d3,1 -0x8aec7d498a7bcd56afbd454d501d5a9d8f24682e,1 -0x9e7b0dad75fefaca619a1424036d04e2458fd347,1 -0x0fc1292d775831c5f071c3357410d7f0876f2292,1 -0xd472a55e1fdfca79ea408e61b2b2802c17cf5a15,1 -0xb162759967614204bd18361fac8256ff550cf1f1,1 -0x6bf159fd28cc011f2f86fb04c2f9c52bbfeedf3d,1 -0xd965d580fef4a917becde106fccb58a4568062a3,1 -0xacccd214e9cc4fd8638607c77493a75ec6056cf1,1 -0x155183e2810a13922afb94eee705334cc7a9a1f9,1 -0x1b759a0afb46e377fecc0f5a186d235a09f1e8ec,1 -0x19563d26aba22fce11893f29ec7f62ed878d97c4,1 -0x4cab3285fc6b9e716987f8b35b8a1d4b4151b8b7,1 -0xfbe5b5a03f1f66d0cd1b080390d3018f7e5e5179,1 -0x6ad109e83164800471540493fc1bdf02bb11561a,1 -0x7ad002d8255ac69dd818fcaee91e8a534d8d30a8,1 -0x7e1cdd4bcdf9443a77981b384304cae5ef40014e,1 -0xe676b8af42f549ecd4c7f1f1ac2bc1cc170c70d1,1 -0x53c57daa15feadb67d274050a11023bb172f2566,1 -0x5c1dec205c738028f2ed0d43a1b53626bdef427d,1 -0x2155b1330c4aa623e0d81cf3a57ebc04df02f164,1 -0x5c6d20d0b5c67850ab4eab2b9b6683aeceb98046,1 -0x90c0e8c6e4791b9e4f99272fd70016a682056847,1 -0xc7637ac7a0934c4dbcc0aac4d39a724582595867,1 -0x4da630b8ae9f6b1d90136dcac2d16344b8052851,1 -0x38c356c9dbc39f2a82a34374748cbbe61839d52b,1 -0x24c8c07b5c0eeb907be1e438e3ca3a850b2cab0e,1 -0xae586a1603bedd5c2c78bbfe0469b812f0ad8b9b,1 -0x24672e6873834038b0aefe2891f5863acffdff5e,1 -0xef1b3c3b0287893296780441be5b6a1dd8632820,1 -0xac25b4d310dfde4841b572edca22e73f0c625b39,1 -0xaf93b1c6c44c3c679e159ea4030aeb65fd461cd1,1 -0xe69c1d67a9a3231f3914b7d04e56aadeceede767,1 -0xc9bea4ce3eadb5eabc4a5a8f390052399af1fb8f,1 -0x650929e4d09e2b07ef919f26e9cf87b44a1268f1,1 -0x3ddf19947022fd6aceb5b079e158da69464ad658,1 -0x2a831fdaa965970a50331ef424991ed985f7811e,1 -0x4c8a472bf54fc484ea8781969ab5959254d91d8c,1 -0x754a7c295a48cf90e374a664a1c42296f03501b6,1 -0xda7f1a1a335a766f8a86f45f54180a9cfc79a35c,1 -0x5e93bc666a583d2826dec60589f28b129ee9e458,1 -0xf27d8389a29d092d5b065afb0dd999aae39ad3f4,1 -0xad326cf78546dced565e9c7a25eb8c07aee78a16,1 -0x7a13b558032296acdcf8890f0fcf1f94d7d7a425,1 -0xe071ee8359bf96f8f719a1f75fc35c95201d4ae3,1 -0x8dbbb22811d53bf49d2cf2519d36f809acafe031,1 -0x02c12c9b0d7309bb2980a6f18f233117c24d4b7d,1 -0x1b9a51f795a2bf2ebad35315957b6c59b73661fa,1 -0xaea1216edaecb5b3c1f05b90cf132bd31991c1f2,1 -0x6f78eb27a3c70eebe0bb1636a2f971d0296028b7,1 -0xce2dde9e33c11a5b1b4219342ab08703cd8d970e,1 -0x0dc3b93468688272d6864380fff989eb9dc023d6,1 -0x35cbedc3412d3c93dec4afa60ddf38c2a9c38865,1 -0xc2e2077406130c7ab30e4f350a0e0bcaa994b7d7,1 -0x3d2f6303adf4593e85472b650ffc8290a5c20764,1 -0x3b36e1326e08fe5e8fa11fa9645a238fca4aef9d,1 -0x2a6f7c911ec1351009e492e0f00e6666a48d6e05,1 -0x0764b85eec17cb20f9f9e031639275b3d2e3b491,1 -0x7d52791af3b6a6588a38375de5cb9f7d0a7619ad,1 -0xab2d7c834a05645a1b070ee3129d7dd9caf430c4,1 -0x28ea97352733398fb14bdce7b43a25e5b55a7e8a,1 -0x4453598a723a5efe2bccad4909f93d7c522b7fb9,1 -0xf4ee8168e65935ca21b335bdc7360660fb4a8393,1 -0x63a20afa4825d0d5c09dd0be578ec3810e059820,1 -0x55e0055896abb2701c865afb70b002c7be741a75,1 -0x1921db674f1368fe9f66610897be5bda1e7bf903,1 -0x259f7663d980a8979035677fdbeb2f78dc1b6d67,1 -0xb76e8f99f8abbaa45d47292972cade11300b6dcc,1 -0x32845e613daefc84255a9db0590a0fb57d624d5b,1 -0xb24c4e46ab8b91a230f67c568f95e7141ffdc479,1 -0xeed489a100880c2d18361aa4d37b210788863c4d,1 -0x6acdfb227d9cb801800a01732f4216bdcf4a0c4f,1 -0x4de05e7b146cc6fc5c05e6427f58f57d22c26a05,1 -0xba387b268cf1465731cd1372d4cd0b01cb0f982f,1 -0x797f62310412ca58149c439ca1a915bd3216cbcc,1 -0x829302c1056bbf371fe272491cc72e039a40b8ae,1 -0x6ba37bc1fca5619599e21bee459c590a42e2a625,1 -0x52895f442952fd2cdb68de4e7ce9933bc4ddc44b,1 -0xb225e4060a349386fe087a1ad1bb9418e1794ec9,1 -0x51eb2a2b126ffec4d14207f2f5a16f27ebefaef5,1 -0x040b59ac0ffd626303f464b7fb7d0d3f0bd35260,1 -0x96118cfc371c4b5b63bb738e42b61c7161ce3b5f,1 -0x9362473680af1d3e552992f90c0f90cad53b397e,1 -0x2adb67e9a555194fe4e2184336571b30091da442,1 -0x0b5a852ef0ca7cdca71f17d5374313d454cc4cbc,1 -0xdaa23dd1aa67114d85f6ced237166a130e975d9f,1 -0x1bd33758d1c45f93fef90c99cce3585756b1590d,1 -0x2118bf1c529fe8c0096681dc7f6d24a549f8c03e,1 -0xb948d0cde77015f63c0b6512092ac324dc4adc0c,1 -0x0f71dcfb225f6d23313362500a91aa59e7a94b47,1 -0x7b6292ca35c20f26f6821062d84e55e314241ed2,1 -0x0248ee89239887340a6c875bf71779d389c214e5,1 -0x6545a0dd57a0087b9db8e8a67ab7f633b2857efd,1 -0xceb20dddc9c9ead86d302d705bf02636ff906c59,1 -0xfe7bae2350d55ba9326c0a548476de4a2d87c0b5,1 -0x8e2d22131b1023d670a4df1a0771f490fdcd145d,1 -0xa3796f4f3a117fafae8a9904cdd1e05ced478d8c,1 -0xf7b09ef907410bedad6e3d119842f36b36bf0c94,1 -0x27bfb0c49223dcf9273f6212d0adf07e5755ff7c,1 -0xc3d248b2b402c4d370c4ad8043aa06c93e28ee8c,1 -0xcd252636e6067b8dc5345787aead3c11d453e766,1 -0x23b3f731050b039bd80a5e67cf8ce8e874f83539,1 -0x8d406dca171947544479bdd677bba7b46e6aa194,1 -0x3b4ab5dbc2c80ab69cdba788530cdf5e855c5fd3,1 -0x132fd637c9260f3d74649c6995875473b9dbb0a5,1 -0x943ce41d7b6e669c552f93c5c56536132e122650,1 -0xf8338bc0e3da2d59baec66d550716a4f53d4a5b9,1 -0xe4d18a9c06a994ea8f458b9e522313506193c640,1 -0x00b58770b74675042f38154388722eab77ad3f97,1 -0x93ef3f1b38b6cb069c868f56836a8885dfabfaa5,1 -0xcf802f89c0db3bcc74300f94be772048a0e9c95c,1 -0x32356cef9bfb7e44775f4baa1e457db86f2bb12e,1 -0x83e5b7ff6a11447a98fbd44de4de9ed9e76b28ed,1 -0xf4a129481c31b6c0af621b9a593039d89ad81c8f,1 -0x7c646e2b34bb50e373088a41acb4eeba679335b3,1 -0x7136605ee460c7f03a8e9a15e4d3248bb2779017,1 -0x40471804f6e45698d42ca83e5a5b640c7c2c2dff,1 -0xa6ddabf6497976248feacad696720bfd1e8cd2b8,1 -0x3acf34272c011ee08e5c78a802d312520fc1f27d,1 -0xe8d03ac271fe20db0e2e73fc12650d91dbc1e231,1 -0x6e8da581709031704a94984b34cd6400265ccb8e,1 -0x97d7532c6121480037321ed637b4857898a57c52,1 -0x60fb6d5f97c8c6897d636967fcbe6be167cd7b21,1 -0x9a560c3cebb3a8c0f28efcc43f4d12e942f4eed7,1 -0x745295964ef932d5655e3f508831eeabddfb9f75,1 -0x024aee37f4bb174f1c97cc87b8c41c9ebc9dc601,1 -0x7d72736adc03a601ed50c7ab66aced802f7c26cb,1 -0x616fb99f06fef3ec346e52fc046f13d6f90d1e6e,1 -0x658fd2d3f271bdd64a4ced1aca4297e511f7b418,1 -0x063863d3f3bf890afba8f230b33df83e99e1213e,1 -0xe238190592e389b1f4cccfa44f4360e242f61a9b,1 -0x343ee44b971417b351ce1d4eaaba7c4d5c9b3d28,1 -0x7ac0c5eec785a8658a5b5702cd9a12fa19deec0b,1 -0x74c474c254931d2249daef68238f5a917088d9de,1 -0x2b017d1e6c37c121105a5daf23bd4215c9e0bd2c,1 -0xf3ce2a1ae3b6ccc4c303893b487cc7c561a3fc6a,1 -0x4dcea957000f5cba794a206f780bfbc0549a088f,1 -0xc4e3c36e11a07fe98f7250592180bfda9849aa18,1 -0x1bff2b878d89860b9642745c096149ca3f75335e,1 -0x99e30f65c141cf4c8d8a423cb65a7e96870e9c48,1 -0x98dfc6a6fffe79593a60d8a4a6d5e08579750405,1 -0xf3409f775b918fcba28be49e6b82b4dba7bc0294,1 -0x577e25fb901a5bdc2e1853cc169146dfd2eaffff,1 -0xe4448a649e32996c037bd963a82a1e5fd9c28f46,1 -0xef32ba875935765745768df2b9ac6e0c8512dacc,1 -0x488546a666aa515101c5f3d38d96ea0cd7ce81d5,1 -0xe3cca3960d50503c6dfefa7b3c5ba12736ca1a08,1 -0x3822ff4f0ed19138becb3ceb02457e5b56151da4,1 -0x9be75f1a19b9ba5896cc7bbf4a3047e0defbfacb,1 -0xd5a6c61f02e4212dec386f09c1670bdb300690e9,1 -0x6e317ff3b57fd0ca0bd74fdea409dac59c5fb237,1 -0x9a73279100664407449521510d56545175200461,1 -0xd4431ffd7ecf3b749f39e61a01c3bcc54514d0c0,1 -0x9b2d57662693a82c2346923e076fcccc9cefae22,1 -0xc47fa44886ea409cccc5d2f673f1316fe072a083,1 -0x03c9239f8adc2247964df0ff7a74d3944cba5762,1 -0xd2e668e910c91424cc943fa186a19b56ec36493a,1 -0xf245cb6ce2dc996ec16a74c5bdaacdbd4fcf16e9,1 -0xcdcab3ea3e0c3e88885495a5798253d68db2a2bd,1 -0x139305f88a263b0e74daac6ecccb8e41ddc2ba7b,1 -0x39cf3831fabe9216428f1001b626785c1991a32c,1 -0xe2f7b6d471a15d4fa2b66c72b9f425a765746666,1 -0xac760d3ca949b3136d3e9ab645e9ec94ba3649f5,1 -0xd6b267f91a62f30eff0141312dd82418cc29d272,1 -0xbc9592320497f871e2accbfea9c7e29be34580e2,1 -0xa0557e5c59cadd90138d4ef36f754ad536917322,1 -0xef2f339fc06f50be6cbbdc47e90b5382c211abae,1 -0x7cd38139ea0bb92937e061cb863fb1b4e9f1ba4c,1 -0x3f7a7a2f6523eee073c1929a7e57090d5b0a8c50,1 -0x2cd52f072c0bda2410e48ac0d654e9e21a832156,1 -0x79aa34e0855c54365fde13ae3c9813ffe8a9f741,1 -0xbde93ab6fcd81158bf3e1da50d6d3ebcd4c31d21,1 -0x7c649c0e1f0c40b4e2280d7261f571728acfe438,1 -0x07feb01638bd2576c183c28293daf04c938f221a,1 -0xa082041a2e164f00ee5444fcc374489747e0a80b,1 -0x6a3fa8d3778601b1036a5482083fcfd071f4db7a,1 -0x3a9f242aaba1086d350a1695cb789617cb1d1c88,1 -0xf3486f2ac4eff4c5465a8c637c4a46e96cbb4427,1 -0xf64c3776518e08cffba15fbc471b6fe4b997a757,1 -0xc0a61b303c08f020f5f0ff5edeac877bd6adcd6a,1 -0xb917e7de6b1db317de04d1628e9d9db28ec88d1f,1 -0x2658828b2942f65db82893d2c17975c2bc4d372d,1 -0x89f51238e11e3c42de2fbeec9e9d60cbbf4ffdbe,1 -0x8eb6effc5b72067211664bd641f2515dae79ec99,1 -0x71b7f0c5f064dd4278feb6a8f732f7167df3ed27,1 -0xb745ee12c8582b63f244ad834a760c02c7ba2d6e,1 -0x0ca743a3178e0f32b9fe101790da3e3c47f6c155,1 -0xdb10364cece4497a30306706ba8926264962afd2,1 -0xcb69740187a6415d3497470c2ea32e633d456051,1 -0xea71de9a658603c39df43c630d43e36b3be4bcca,1 -0xd51e3e5da724fb76e749ffda4011ee7107257b81,1 -0xd1b61961815d5ad693d30206d4cf7757cb9d98d2,1 -0x8d27bf5171099194f002118f41a09bc150165cea,1 -0x97096298ede6cbfbc1c0ea718c34f0e97bdaf5c0,1 -0x807c972a631837d3b0e7da5a601693fe00a75935,1 -0x9abfefe192b65ca3797574e03af170b02ff529bd,1 -0x53f0c54f6240fe7944ba130e6fe376c65afd48cf,1 -0x55e38e3b039bf0dfc56c58e774775bd450ba636d,1 -0x4d6c69fedcdac84e0919cd312678f2fd8eaa222d,1 -0xdd274af351ca2f8294548790a3462da068f68810,1 -0x112b6eb434c8a497efbd16e98eb0c1b6236bfe8c,1 -0x60c6ec170117b002740fc3693e49f50bab5de24f,1 -0x16daf058b13ce33aacd75580e16e4bdaedc47438,1 -0x1f2ce585fdd5dd024133422aa24f637fe5181eea,1 -0x26112d31e3a79c74d029ed5cd6928089f2f70cbb,1 -0xf782cb3e79add9f0cd8861bbdad6fe9b0e29ecc3,1 -0x0320536e42e69e0c86fb36e334d8a548dc34d4d6,1 -0x32ca3aa5d57e1e8dc3e289bf41a1dd86846158cf,1 -0x80346fbe4e69a49c3281891f8e8d0424f63e4310,1 -0x0af7f9d16104befc9604556c7f30b1ee1f361b13,1 -0xdf17f86923266b4ed9b78e5c26da55b98cdee854,1 -0x66860eff3f937a016d1fbef90b090995aed74d0b,1 -0x57aefb0b9dc001229dee5a8e04d82fda3bc19755,1 -0x1e5847c75c961c25ecd81fcae4bb24ed5023da2a,1 -0x99e28ba2e3d34db26cf91b6cb8ce6d694802cd7b,1 -0x3cd6ec4a152fd8fac40824dd2e0d0547212c7485,1 -0xb211b6b004aaf0878f0c0ffcda2ec2b79b980e9b,1 -0x301e79c764c688f794d0bbbc84cc7a27477aa006,1 -0x44113f71ba1ae3ee58515e0997df08ac7a36637d,1 -0xa4239cb0ded515cc368b15a4e8f6b42ac005571a,1 -0x22dec95f72f3d7bd8143ef23e7053f5d2e9b9bcf,1 -0xa71f0b3a58e502aba5cf9d2154431a12507b9220,1 -0x1cc5deda303b6d7812e99e5ffe1daae4bb61b652,1 -0xe546b43e7ff912fef7ed75d69c1d1319595f6080,1 -0xc165cc41a84f3619d2e1a15b76388a5d4aca5fc2,1 -0xca059495aeb6a2ca3ab5da0c6aeba3f5944861f5,1 -0x8c1c6060817a6e1ac3f8ff1b2de284c156410a63,1 -0x37be17ff229f451fd5112643fdf6c5386e68dee2,1 -0xa674e0fef280afda76322fc3902e627c2b7ef8b4,1 -0x305e90e2699e30c7a611d59780dbf1f8f4f72b4f,1 -0x9780d252125cf2c26e0ef5432776e22701507e8a,1 -0x181c63a78a3338e9cd2ba8809f0e9761834e47bb,1 -0xfa8ed87d6e962f124e446f18f1b9592d53a1dd3f,1 -0x76e8c88d41f783fc7d36dc739379f2939ff0504c,1 -0x3652face1bc583d40b8223409e9430e584bdc286,1 diff --git a/eth/holders/galaktic_holders.csv b/eth/holders/galaktic_holders.csv deleted file mode 100644 index 28c7818..0000000 --- a/eth/holders/galaktic_holders.csv +++ /dev/null @@ -1,2569 +0,0 @@ -HolderAddress,TokenAmount -0xb45e2f1b1854e68716a198922dce63b8566d2128,66 -0x99f4242e7f95ffc83151d86cfe7db78630bde49e,53 -0x058d55e9bdbdc42637f9fac4f4f86d7002d5cd4c,52 -0xe0268949232a2fb9099f31faca947c12ffb54f89,48 -0x4562fb470f02198315e77cdeae0a8c6c0434a57d,44 -0xf7ee6c2f811b52c72efd167a1bb3f4adaa1e0f89,36 -0xdfa46ca527c502f6ec459d6fc98de2017bbe4511,34 -0x46a1f4c003a1cafacfe63c60f21ab874a9e13705,33 -0x6a160fb296cec7f849e37817839f4a229d83a21d,27 -0x52e72e4e210a2a5999e2fc3d14c134b8a1d55fe8,27 -0x5bc4134ab3e945da2d853663e8963b4a0cb38535,23 -0x0ea142441af0e36e3402f737a356133843035f36,23 -0x4673174468a9438c8c3ce45b99558790f68d002d,23 -0x7f8df7a5d72e88ea27798ff604959d235aab5090,22 -0xfc2918ee0d5c7b3b7ef51b576a853e1d832d4bbf,21 -0xdfdec88a797b8855b40dfe21d2f31e0140e6a1f9,20 -0x783c72467a2aab6c083b89c5b8b1edcf939d1321,19 -0x3dac22ed25519610456c8474c86e5fe320ad6828,18 -0xda7d81f16d82d42c98648207f62aeb47799e8b04,18 -0x015ca88023a79b62f72e9f4fdc04ee890053e03c,18 -0x0c86fe69fa22ff01e7d435694547ac601a066db5,17 -0xfa3269147f830b603ee0b444d9e85f611156387e,17 -0x598a6a1b562286236248eac59385a00f3682e8c8,17 -0xb825152e9f34b4c8e3f1721d60cc7650277ca441,17 -0xc324b07a386b38c2443c9afbbe20eb97b57b7e7a,17 -0xb023f9bcd39fb497467b1891648842e9bf206278,15 -0x8f11a50844ea912d8526d8a150edeb8edf7215ff,15 -0x9bb0a03c1f3ea549b4556e5fac5763e512d0e4dd,15 -0x21897e7ee89a8189986920a87a2b8c5bad505a3f,14 -0xef512beb56b5b52ce07cda4c5ac243dc9da20849,14 -0xeadabef15c49f367a88f87e11bd94bd44a02ba5f,14 -0xf5656fd37b1d30b96493ac543260c66e4df44b1a,14 -0xbbd69820d5fd3df42ddde84e26b2a72225ef21b2,13 -0x2889d7820e5c277dafb7223d4cf0040fccfec3b4,13 -0xeaae0d9cda5aeb9ba96450a33cde0664e6d88c61,12 -0x27c1ea76c391351896275c71f4cd00b5c01454f2,11 -0x223e6eef8aab98a8c7701df307771f4e1a979d28,11 -0x838c39443b4955bb1608af0d2d5f316133f8b55c,11 -0x40d775827365ae4d54cbc08a1a1c4f586b2c1d0a,11 -0xcd51e184e472521db731cc05684b3cedc7298e61,10 -0xb89ef9c7a2394f8814b78500ac19d26bf5644bce,10 -0x3752b9e1e01148274642d59a7717133f1a37a2c1,10 -0x8da2eb2f2409400c1397dee39b761fb6022c7241,10 -0x8c1d452c33706ebead3308400edd4e6a23cd4f32,10 -0xac248e36e949c9fb99d140034b8d75db15aa5b09,10 -0xf9f9f32fcf6c47b1d4cefa9b3d2bb90da92e5d46,10 -0xd6c68726a0f1bdebe4d658b2c092126fdcc7379b,10 -0x820997eae97a4200e398aa307ff7b097a711264e,10 -0xb0796ebcf58e986923415a1ad67e4e753411da0a,10 -0x7f8b0457941ea2dfa8d806c008935a1c0dcdf3ec,10 -0xa5fedba481e3836aebed0dc7ca2f183948c4acdc,10 -0xe19383a1389751bc31f4b25dbc9429e953749a0b,10 -0x9b0d0ee22fa6858dd2791858139ae885686793cf,10 -0x7a60a141b7389280a9680647a3b23690a2b9b8af,10 -0x4de61016cf648522804818039579642452299b04,10 -0x9440dbb5a2f114d3f04958f4437b531ea025af7e,10 -0xa31322446260f58338435bd519f3a00a0d158091,10 -0x99b1c566522b93a88cb7d282af247cb4f5dd32fe,10 -0x0aaaac358f29ca7290f78651ae9b08285b5e16d4,10 -0xc83c1c0ec641c55b2a74968d66d0a493690205a0,9 -0x622b2aeb27596910f90d4e6248f796dbad1fc99e,9 -0x36e10f7bb46a7e8a9000e20ac6bdc20721d15f1a,9 -0xea2ad92161e43a96e3dd1f4f133758f319b9c9e0,9 -0x1acfc7818b5b02329f9680ce6f2a6c33947b841d,9 -0x8620f8676c61ddc91bf4f7981dd00dd0905042e7,9 -0xe0e4b5f6c98207fcbc761476de28859541c842b7,9 -0x29f905bd1593d471407f07a2bdbc5cf928558a8e,9 -0x482c741b0711624d1f462e56ee5d8f776d5970dc,9 -0xe336b85bf8c89479ebf0eedc2819a0abbd6bce36,9 -0x8061fea6516bc87f3219dcba464a1b50378ec3dc,9 -0x89d32b5593b6349858f248965926be98eacf621f,9 -0x07a6d58cac8d98af26508635815ce1e56458c5a2,9 -0x277cb97399e69b6fb99e0fd93c88a7cb1a6d4d16,9 -0xf3dc235ff7025cef31e76c65c7fa7151f3343874,9 -0xa6e950aa70ebaaf99686a5d95afe8aca8b5e353b,9 -0x1df9a5aaf1eeb1bec44aeefa667fc04d5ad2ebc7,9 -0x566dd107de9857cdfa11bfa26ca8f610bc40a0ae,9 -0x42f3f76ba5202d7a4c48fd428b5613c657689bcc,9 -0xa28e586e24e6d78d05e822188ddc118ac2fb034b,9 -0xc4e9e5310d90b5cc782e900b316bc3b595e9c2f0,9 -0x18799f860f9adb26e076d581603037f79342e0c0,9 -0xf5a8ac14c00ec8e14237005749a69154df743203,9 -0x70737e350082cb50428c0ed17988cc904347f3fa,8 -0x91e0d232c14cb5a680ccab63134629efeb26cf39,8 -0xe508ca502ab7cec51aaf87c6e5111935884d2bb1,8 -0x3ef9f11226f24d239eaf63c142f4f212ecd37b04,8 -0x2d17c4472c38029af27a0ea75b4186175e7436a4,8 -0x7024dc438ee59a7b2fd406b13721f5abb0e423db,8 -0x5db60d88755ebb70d05073d6b41f0f8d0122823a,8 -0xaf53b814e16a1d68e704c41f6ea27b1cafa6e3d7,8 -0x4d72d4269ab46962713ca19cab8161a87684a163,8 -0xf2739ef0556253677337295ca49a7a11499f01d1,8 -0x2d3c7d7827fc6269519a24e6f5edbd58b2aadbb3,8 -0x31e8f645be07584c3c62690258eb4ea11e6cb95b,7 -0xc5ce9a7524df197560cc04a74fefdb3feb075c68,7 -0xefa5b2600dba10b03d9e6967582dd24bf02193fc,7 -0x730b2c4709f387a29d718a74ecb973fc73c29070,7 -0x3fe2bd23148bda8648313899b49b47f7d7cdf764,7 -0xb5f347c5b5ca9046742640d4aa26cce02a6f355d,7 -0x47d7de1d52c92516f51ab5b00f2abeb0ebbde692,7 -0x4239d789d1479c7c0d085d1864abdfd8b4fe0ea1,7 -0x1313cd5847a2256d73e290e23fcf9836110d76f5,7 -0x19bebe4d8c466d75de20ebeec726f274de264e0a,7 -0x91bd42dc8eae70f507751b978e0c2aa349d9fe32,7 -0x73ab5ebbdea34ccdd9a87ba512b3ee54a061e4f9,7 -0x65566631ac1d57ac717c5eedd562c27c5a8c9d6f,7 -0x37f91c9a7d0bbf939d77e33441ebeff1d6187615,7 -0xdbef0d40188c6e68c443cd5d71e2d7737119db23,7 -0x1846f080015ab53c7a16ab463b5e6aad61b0ab5d,7 -0xb431a216ba015a1e2db5bb3ffec335a272d90b2c,7 -0x5d7bcc9a89775293fe70eea769562602a48a12b6,7 -0x61da46095a7061bdd2c4b5401bd53e58e3588012,7 -0x5703f5d81da197d82d9bc90c155e0656fcd4b737,7 -0x0f607e317e6e1534e0c6eba4620ca4bccbd20ca5,7 -0xcc0d0b539c5c08f4ca11bb15cb79758a034ac38f,7 -0x19925d32ea737de44562b6b6f6daef9b257d5eb2,7 -0xc330e99c16420ad690fc2ca47ff608a72410aa23,7 -0x61bd20ccba182213e24223b1d3a9b4d0df5cea46,7 -0x8c90ebc60c71038b91827e2d58d6779c6af98010,7 -0x91364516d3cad16e1666261dbdbb39c881dbe9ee,7 -0x3e27638518db964a71a0971c1f5bc7be6b6db77e,7 -0x4b95e82077ca2e771ae021d9660882c1f421e29b,6 -0xc5cd331c0919209cd98bc47b20fb18ee0d49f562,6 -0xa75bffaa06349623195a6e4c2f46f9e42a1a3343,6 -0xc46db2d89327d4c41eb81c43ed5e3dff111f9a8f,6 -0x2858ce589592be3dbc4e65e653da10b73d7c42f2,6 -0xb527787c366f7b4eaf6a1c9a229e52061dde9094,6 -0x796bbedb76f07d51e6e9f416ea288b701a8078b6,6 -0xf6ba9e07f27150cafac85226279f2e32e26fd477,6 -0x9b0252108e88bc82404c98cf5cb02e8a8267082b,6 -0x1b1f056e26d9b7bc09dacead39b2e902f1301508,6 -0xcd71beb74eaafb7b1c4477d3be679146263481be,6 -0x7f6c39c81438a70a8c8e624102861dc2fb8903fa,6 -0xea8edabdba21f16db0f49ea3183e4c1b173b6fdc,6 -0xcbf6443a48d3e5696dfebe4c916bea211af342b4,6 -0x9d19fdbc6f5760e72f31b1d3fc32733b50c89080,6 -0x1c70af2b86df6b0046643c3193db8da1ac1e508a,6 -0xfcc9ee2ab1291a5635d5eb7fef4ab9eacc20daf3,6 -0x32606c4aa95ea78d7c5b1e0e347e3e9ae451434e,6 -0x8e53755655387ac6a7c7fbd2758cc370f51f6e87,6 -0xa00321a1e6d63806447f752dcd597575635f181f,6 -0x20c6c90839bb78e17bd7ac67734b416dff633256,6 -0xafabe2fb2a70e31444a82e6faf43a67d5bc5d4a5,6 -0x9a42d11c654207c729a1431e23dcc67611651acf,6 -0xb3b873b45b002d19149acd69a2dbe19aeb7de0af,6 -0x28e9eb009ba89740ddab3d7545f25d3fefc77242,6 -0x954ed86b5c304d7ba760802b70f0d807f4a8d3f7,6 -0x6d29803c2acddc6b9b1ff44b2226ffd70817d276,6 -0xce2a22b4b52fc18e4343cc075e9fd8e6c438286f,5 -0x2d76d141eb8456ee18f49f48287fdd357162c5aa,5 -0xb7159f2a8380c8c84a6664916b59b1588670e6ec,5 -0xffb7000ba44cbd619be0527136b4fd002ccd5292,5 -0xf7fe024f8c4069f4003e3f452ebb6da04fbe656c,5 -0x0477463312558bbfc34323a33bd838c278898cba,5 -0xbd8c79740bf625f5054e86a2ce4e73879382f923,5 -0xd12258a19168f9383eabbe3d2a61dda3cb0088d4,5 -0x092b8a56946f993896f300e6302a84c04b8e7781,5 -0xf7da35b4c01ca338d44dba3a88b50d642de0f319,5 -0x19c3a650e519da6d0c6b9565b2537ea9cba7be72,5 -0xbd50fb86bc870b5d76b3b10ebd9df77ae247e21c,5 -0x31ec61c0fd16d3c7a0479eedb900d2898460716f,5 -0x4f764a08c66251e13bdd85b4bb0652b739736328,5 -0xd7492ae646cb1cd1b57f57fb6dc88446586b1186,5 -0x2e9ec84be79701e2355624df15eb2c76c04a636f,5 -0x7900305835bf7384db76190d5d3b0bba33d97fc0,5 -0xd1785136d0f049a037d4c6e14836ec92f8ade29d,5 -0x5ce574a747cb8a6ef14311cf19eb22fa0c58226b,5 -0x49f5ac8dace13d75bf08e57168d8bbd4d7dbc0c6,5 -0x5ae0b622d18491e4d121b7491dfb91013e9208fc,5 -0x59510c1c5a5b9db77c3755692291b892bf342d1e,5 -0x93e886c1fe12627bb02c111e9529a6698be72d64,5 -0xa87a421b6830b92d27eab323b3a2aaa571e5c4ff,5 -0x546f236713ffba75c81ebf3ca3d8e77ef81be125,5 -0x997f4ec4a5c88db4736b95c692f27d5822f198e6,5 -0x4e0ad2dd94ae7447a24e824c46061dbe983e0a1f,5 -0x27073cd0d709d89c391af9767595d91c78ed43a7,5 -0xf288b48050a4317941b69c4d7716263fbbe4265d,5 -0x542895af4ec50cd2a659648d9918b60de0dce01c,5 -0xf8b4b932305f196f34d63cd05d7376a258f22666,5 -0x294ae4c4007b3a109b108ed0133648a73d3b8b1c,5 -0x3c0147890b88e3e87b42deeb3f8d646c50be0db5,5 -0x33ba3aa6ebf9b8f69142f6251a66819899f46cb3,5 -0x1ece09b936922ca9c98657433744dc8411f3a497,5 -0x00c432be312c7326b983c19760d07bc76b9bc68f,5 -0xaf7c1f5faf53b58e333d28af3b548273c534d6dd,5 -0x6f68bbe0f66095e20d6c9bd1e70e2855db7da9c0,5 -0xf05e8e7f299b2e3c12e629d214334fb63b6c3896,5 -0x8667b6ebfeb87e697571870f85a06b7fb9146be9,5 -0x107bd02dcb7bf79b679e1d0ce5e2b871ced1db51,5 -0x71d4e450fa22009ae1e09b7e91bab1e3551dc1ec,5 -0x5488d9881cbbf84ee0a53c9874c6b0a6e6758a28,5 -0xeb8403366443ff0ec62c93ed88cb12fb01d4be76,5 -0x8b60e4c0f7089d2a3e85b6132216bd14233973f0,5 -0xbf746bdc7b7386d989ce254884d50465efacabd3,5 -0x18b2b4dc29fc2242887470cfaa4b3a1adc437d8f,5 -0x74c9bab3669fbc5fe5c5f4475ab600bb7f11c47e,5 -0x8820807256c96b0938ba7e26720a4f53411bcaf0,5 -0x3c07fd7df33dc84056e54262156d1dfa6c440a9f,5 -0xbdfd36a3f70861de3f4de16d0f87c6e92451b7b0,5 -0x355185e3eafff8fcfce0421c560303b706c8cf68,5 -0x10b6d83b1acca229c93bdfb6d5363960576d0795,5 -0x40f0b23a24071f5f44b363deafcf3c6cbcea0946,5 -0xf5d4a3b9fb77d1d5600a10e0e1c4efd12f9be751,5 -0xa4c8bb4658bc44bac430699c8b7b13dab28e0f4e,5 -0x972f8495f12a9d70785c34ca836e995067994d7e,5 -0x7c6553933a471b43ce3a76a02245c5162c82522c,5 -0xf7a4e695d5b0486a0c03ba0490ad9ed8bf79e9cd,5 -0x7a005d77d8ca59bb2c9fbf5792d57b29d1114d89,5 -0xb630cb13adb127ae4ad667976f20f449225d1e8b,5 -0x9074d355fdad4288d95825474ccc754cf3cb616c,5 -0x5d931c7560122b2e657d189ccc20cbac6fc80ff8,5 -0x23f94c9b10ac61b257c0b1e0bb34b240c4b917b1,5 -0xf76b78ff77c51f2ce37631c60082966cf86818e2,5 -0x27604f8977476d56011b3daba5b4aaabda98a413,5 -0x2ddc237af7b1472aabe73cf6278a6f89226684ec,5 -0xffcf112e3164b88c19a111021e34fc9ddb1690e1,5 -0x3f6a881cc8aab6b200d14b84e16af1ff1efe4b0a,5 -0x83074bbcb13a6f5d22402b7d2dbff64e89a3cf25,5 -0xccc600f36682c5c963cadd04802a8996c380d1c8,5 -0xeec3c0081c941001a59d3ef01b124d794a20db3f,5 -0x3833197d48c697455eec36d82e9917c9cc8d0c55,4 -0x0372082fb4022bb6d23dab9612afaa6f6a88ca87,4 -0x6bc29c5d17976959cc7a38bca2ead5f15110dd99,4 -0x616d44878c745ebccdfeb759305564b232c1431a,4 -0x525d4afe04716f23a9261df0d191d39e9496f54b,4 -0xa607353ef9c3ab9081305118a64c2b1d8350f9ae,4 -0x589124027f2637cab0686def556bfd1617302672,4 -0x13a37fea8b4a55d7e9bd7b61ac80dda496f9ec56,4 -0x283c27705af410fee8aa0f76f6cc8c3d27afe559,4 -0xd3a15ffebea117ad00d65bd74057b1b7041244a0,4 -0x9021748b9fb35d7d9e82cad87d09c535f8f389da,4 -0x64e455b205abd81f01fc3e491ff19030c397e466,4 -0x1d861a8e5f295a7ae9381f9bbf5f1c6d70a67298,4 -0x3b88b4260b538073b061f86184fc1b84ead7a8ee,4 -0xc6e56268caf48f25d261d6698ee2a7e81f5ae2eb,4 -0xba15e64df1bc50c249f7de8ef1ac8b2a9bfc87ba,4 -0x6a11bbcd712d807d7c61eb456b2156e4e067b9ed,4 -0x2084bda155279f88cc579bcb6d9bacfc9fe05998,4 -0x1642c8b161bc2a6929c6a38fafda12130f0f7780,4 -0x96fd61202a698ee3eac21e247a6b209ea5ffeb91,4 -0x9ea235b9cbd523353fa79e67c788f034ba94e889,4 -0x0bebc821cdfc0776cd5bd79bd8a99247ba1164f2,4 -0xa2040d6b10595ecba2f751737b4a931a868f0655,4 -0x864098f67cbd6af5b178b8768bb702a22b8b1b21,4 -0x05e0124b7acc95a7a3932051939fe2d0211f3de9,4 -0x28583f507bdcc78296bbae0f5fb7b1ea7a49eab3,4 -0xe495459c945141f78dc6d2e2b8cde7fce6de4bcd,4 -0x7498afb52e25e303f231ce48fbb54c6c70e2ce7d,4 -0x80894c9c28918626dd9a2cab6387cc032cc38d8d,4 -0x2a357c6bc693cd8b95d04ed8888f27356acb4aa1,4 -0x4a922320b7df82d4b282003813ba7857ab26b676,4 -0x131bd365299fc00a9b0fa2b9ca3d4c51f365c1bf,4 -0x572c2b7aa6cf579b3958fd8ec518c9f8132ff6cf,4 -0x4ce509ce68bfbcf7caebd63bbec0998d44371d9f,4 -0x88266282cc2814db2c721cbd63851d88a3bf316c,4 -0xa65e18e6307802d7600b822e7d2459e294aac875,4 -0x7772881a615cd2d326ebe0475a78f9d2963074b7,4 -0x578241ed8b42d4a539651d5ceb942ccc4e61318a,4 -0x325f3e565e17b7cbc1161d0890f91921a4285dd0,4 -0x5cbf0e5f6810f26f803af12ffbcf6b039fbea06e,4 -0x7588661dd5a0c891faa3bd680023d4b835b082a5,4 -0x6c0f73a620da46b845a2ef66ef511b7dd999e866,4 -0xa26ad9cf5d06602bb8ee694773a7adbc935c9e06,4 -0x3fbcb5e201976840e984acb3c8df0967431c2964,4 -0x410154de3c7deab3ab5d9edc5324ef49a8fe8461,4 -0xc2079e5b077eae969dbeca3747bb855ae9df8f3f,4 -0xa752ff930461aaf03c52af57afeaec75d4cf4e4a,4 -0x14be9b6098b0a924cab4be5fb1a572f5d312d85c,4 -0x895d1b625c05862751c6a5d9de5475b040b3068a,4 -0x15ee8953d78bd40b964691a537436fe029a9a2ba,4 -0xac30e0dd01419e54a47bfdb0b6b5cce77d52ef55,4 -0x092a4dadbd81cb100675ff3e3e3bb9a2e1a51345,4 -0xe32ab2bd406f3b89a2180152f4c8b33794b92994,4 -0xd8810a7da2107c75e4116663ecffc163551a25c0,4 -0x5845e23f4d83a52ab4a686e64d1dd80b7ed3e0af,4 -0xae88f6a642bcdc56169ef1cc3d2a1b8215935348,4 -0x952cd4dbfccd554946f36583bdfaecf24e1185cb,4 -0x662d5d79849113a5403af776210307a7c82a5267,4 -0xa2a78ae7397a8c307aefc30987e1b2c2bb6f7f81,4 -0xbd5d037d13579fb4525ca8a1db36fb10d77db95a,4 -0xdc4b80ca6f031876a953a7c3554b95ee5aef4cff,4 -0x965a47130a64204d9937f8a772eb572fe319e040,4 -0x12c9e47c6cd4f9a26c5511941d1092fb4ab7b794,4 -0x66a51d2248588269696654f3f2de33c878b5f1fe,4 -0x3d1c7dcbf883c0717bbec30aed5a616bd9002b01,4 -0x57129022f2aa3b0305a039cf5d85c980a36c4841,4 -0xc5c08107950750c24861758671846959205b495b,4 -0xe49adb1720eb49e585600b42009ae958767aa569,4 -0x0d4178564cbf36e7eb7166bd9292080d2f7484c2,4 -0x75ddb7ab958135bbe2dab48d6286826f6aa5e3b4,4 -0x2658b7a45fef1983bccdb0e0a0e3f2a6420c6ea2,4 -0xdef7d28c6307f16120a3e0b44013ee62ab6517d1,4 -0x7ce5039a2383ba2cdf57df1a8bd353e021c37492,4 -0x4249591c8bf2277f990153b4326e5321821ec353,4 -0x1108f57e2cded45ae83f2bae0c7299fd4a213f20,4 -0x2eb2d66c929ade69ed7908a88c6965810a7c6d7e,4 -0x64b250f20852cd6abed687750ccceb9fcf0532fe,4 -0x6cad4ffcccbb244e478547f15561f1a3ed43d297,4 -0x456580b040808a70cc320a477a47e6bb793fdb5a,4 -0x35eef2e74ddc0c1446e486b1b16523b43118fb16,4 -0xa672d5b91e8695ea9803c696a32d90537a274a63,4 -0x824de5d1236c5285914f4a3929f917d03c95096b,4 -0x128b0331d28ef527994e8a705484017697d025d1,4 -0x3a6f996e0d052cd61a9bfa0af8fbf53ab4b214d6,4 -0xd537413a3651fe87443526c38977b9ce86448696,4 -0x894c0ae2ae192e2d315245ec60498e73fc671eeb,3 -0xf95d1b96319583be65a67ac51aa0695941573bd0,3 -0x7d355113ce55db91963c7c49d162edf70fc3449a,3 -0x785c49be9ac1c552d3615e0ea826cc443a6c36dc,3 -0x963352d2cb9ca570c673e5f43219dc4ae09ad0ae,3 -0x7a55332ad75498f3f9329c41064ea9102b65b8c7,3 -0x377f9142b91a6232496cf5504b6671346ea37f51,3 -0x7f10bd16029a2a79a7f869df23da412a4b5e8fe4,3 -0xbfb38c787fd043e3aeecea7d7ed0282ccf8c48e2,3 -0x005ff202c271d2419fb03ec873dedfe163a5ce36,3 -0x9d8af3a59887293b83d52f0ce9d0874d6fca41e6,3 -0x1e0fd4f9fa3fef4a5a32d4daa14be6d3a95fec13,3 -0xae099730dfc04c086acd0ad9881f86ac62ad0b7a,3 -0x8c1ccc12125a2d5ce2e06cfec24724d23e561ae0,3 -0xef8b51deb653b6527a0cf2f614f1563875df4f4d,3 -0x2ab9974659ffd76f605b67859537778ea62482a2,3 -0x9c465314f682cc0173fc289eff5a250191744fd6,3 -0x21918521ec3ad70543997f2ee30df78af8acdee6,3 -0xc897916429792e60d746af786a098d84c6802139,3 -0x54296fe0c5eb70ba5d893e744733ebb9846ece72,3 -0x031f584479760bf6a0e6e3246cceadb6e4d66bc0,3 -0x799f55040101bfdf90a5eb3c1c1729f7f362fefb,3 -0xecad117bcbc78eb8679724317cfad498a0ad716b,3 -0xef78ed9b7d811978bfa1ab220380d6ee1f08ff8f,3 -0xe36297fdb05fe351d616fbd7c44c667e63bf6092,3 -0x178797f54ab24d7b75e25de0c04051a6e36cc1b5,3 -0x857d5884fc42cea646bd62cc84f806aeb9a2ae6f,3 -0xee3dd252a1691ca12ed60e0a3df50f8ee4e420b7,3 -0xe9a0dfa349bd7af1bfd68dcb6f39c93cbfe541c0,3 -0x551e75b7f324f7c4fce863db2898ffbd85e379ff,3 -0x7ee72ba89de8d67736319f445636495fb52dc063,3 -0x2cf4553b684b64f4b2e66201768df3fda8d0c7b0,3 -0x3ed44949a90d06b6c3349f9e1b2c3b6df2fa39c8,3 -0xfcb4ca2e553eccc923bb40b4adaeadb32d4d4904,3 -0x2683fd74d76fabfa96b3f71f291adb461af82c8c,3 -0xe3cba791a2d84e5b7c918ecd7545eb4413f0f1ed,3 -0xc685bb1b5a41faafa2828518b9d2d5e5d3eebe0b,3 -0x25e25ba87a86767b738a19084d6d38cffed2a5ee,3 -0xd657c0a2a4775595f41a9c84800db841a9b1cd5d,3 -0x8e4c50bd203e1678858808dc747615a544f4fc98,3 -0x31a3f45b960367860e3e56dc7545a65479bd0311,3 -0x76ed176df46efcd9540c3dff138964afd7f0e874,3 -0x0cdd65d3e6e80da2e5a11f7c1cedace730372d7e,3 -0x00167777e0daf9dc2d3a76195ab56e857ec67ab2,3 -0x01572de0e62e6d3e689a9d9ed93579749fb991e4,3 -0x15bc0008e906c2fc4e3d32967960e5fe98ac08e3,3 -0x4c7c3d053c41065993c57d09ac015cb39431dce0,3 -0x67979f4c85b72786df0c382189285c33e3d22fa4,3 -0x9a71ee60d7e69860f7e4c05a6a8f91b77a0494f7,3 -0x663e6556f519942a4b679b810cac7cf7b29e6197,3 -0x56e773b0a620205e9f72265b6013b65b84c2c4af,3 -0xb692845ba589757cbc2982c2e32656ccf0080e9e,3 -0xf208a854d8dd608ad95644e7ca3a59a31aacde9e,3 -0x3d57adfbf9691a70a46df1abeaba45cf8f1a2b7a,3 -0x330afedd6c1c40e42a01a5f57708fee766242582,3 -0xe1108780c0b44a0dc8890ff32761f1b4887fb851,3 -0xd50daa26f556538562ba308dc0ed45cface885fe,3 -0x365c066774cfbf9659c38a43869ada887eaffd61,3 -0x28cab2455d1d1b8f816e94badc446ca04a98581b,3 -0x4e8c7c35eb79d34db345cb04f4bc20ab6566c0b1,3 -0xe7769e9c195c58de50b8453c76cff98e4c87c50c,3 -0x4782dc6a55e7d7f96314807d9d5513d565eef948,3 -0x72e8656dc46954c53debe1ce5b018819e53ed709,3 -0x17b1cb1ad28e8e8b038139e95cf6223ee7e8b572,3 -0x3a49309413793b32f6a308769220147fedbffa5f,3 -0xc8dd40ba1bdb6a3f956904f02b14db24013b8b5d,3 -0x403802ae6ee64251f3c6c873b47a41031e3c1879,3 -0x2f9d0e4aec075e3305e734b7549ccb7328b2aaed,3 -0x37ee21f7c37fce696e9fa286831580bf6bdeac19,3 -0xfcea932ce672b998d3d06eaf140a3ef29336c30e,3 -0x7703e55f30b0d295f04797de0f8c290b69f831d9,3 -0x7d636749537d3488d02169c2a988653c95b35d46,3 -0x6f0afdf97bf823649f0482799eb094ddbceb1416,3 -0xc6503fb7c752d28ce022cca884d7c9e45c380659,3 -0x9563270b085e7ab23ec3bbe146914bc9ae733b6b,3 -0x86a083a6c89c46fc244549243cd4342a7566f80f,3 -0x7218f254d79e612cbefb93c9c3dad295eaaf9501,3 -0x69d7cf0ce35779098f0356ec56b03b9ebebf4c14,3 -0x4f95534b4371a4781ece981b03d73b584a995b05,3 -0x7629c01686e48282e7a4f1146e1abdfe00d4162e,3 -0xe70a57b0cf1970a9cefabf4669e43822d5196b80,3 -0xd859d03b22b16691733473a1488ed4810f62ebd1,3 -0xabc4556fab927b0768aceda31ef47268b8ff2499,3 -0x8381176d4f288ef45754f0226689554d4000dcad,3 -0xce54b77cef1f53e968406d1d87b145a840f3ccfc,3 -0xda007a8dfb10cf1855a6b054b5ad515914a5adc4,3 -0x366457456f7dcbd9c2ab3ae30068033bf8d600c9,3 -0xb6ed8218eed72fa69f28ee64f9237d4b2b56c334,3 -0xeb2560b6226b45e9d460c8cfa074a85ef9f8da31,3 -0x1d197fd4e7975efd21add0ce3128c488bbd70b83,3 -0x6d90a2fa563c1c4dc9f5fd8f3618797bdc48675e,3 -0xe6d073b5ecb661f829cbb5d7aa319f19c1b102b0,3 -0xa6fc12d81662d1e2986d6ee163d2624fab94d879,3 -0x7f441f4506f2dec506a52f338be68c9b029a5eed,3 -0xcaab814f380df2a628ee9523312a9587518e256b,3 -0xbc8897b712985ba45a58197fd31688c0e65e8b85,3 -0x6866b9b6ee721f37b161501c56f457de38796d0c,3 -0xa273e60cf517b656a0ced3932d5be2d84bbec1a3,3 -0x7885811c1bf44f43e68624bf15df8c0b5155dc4d,3 -0xf5116c846bba3a3b025f4762f09a2e36e2ba2c93,3 -0x792efe6e2029037be6d9072b85bd2310f6cfbcb1,3 -0x9f5eb697c22a1e0bb3f36f3cc01718890ebd7a70,3 -0xac9eb11e6a9f8b64d6269821705ef3573ac21035,3 -0x4eea5f8f0a7e8eebec69dc0b2fce64560158fe0b,3 -0xfe481d61f52e8683a121069883622d811c057d9e,3 -0xdcfe9e4f45944f7e3d7d29a07fec252625dbce42,3 -0xc2f49df29a2859064646e93c0941d4c096a9b082,3 -0x5b47261b018acf3ce25907ffebb9988f4cc8fea4,3 -0x947e62edaf9a36313782a8d0ae4e5737d01cb869,3 -0xc49124c2a543e4793fcb086ebf1274ccdf3a8b5a,3 -0xd87dffef1178ec502ec74668c30742129948d872,3 -0x1ab7ad4d4a9664a91c3a372f01866db4048af5bd,3 -0xd4c1ed7099ecda01fb59fe1081c5706b0ed51fc0,3 -0x97db0e57b1c315a08cc889ed405adb100d7f137d,3 -0x96e57150058c769a6e6c5176a9433e30f3326cd9,3 -0xe0d07d4460b6c6990eb731673124c9840dfce89a,3 -0x8399fcc99346d409fa6a304521b0051629c5987f,3 -0x7283922a628154751f53019500a5156e09402b1a,3 -0xde923df474661ddf3727c913ebfee3df0b37beb8,3 -0x814d60499bd401eca426c86ee9b4167967dff8dd,3 -0x1dfd24205aa1e1aa0c1a43e1d3e058f306d206be,3 -0x90c41319d32b488b0d27b022c553755d9785d3d4,3 -0x7a47c5bc8cbbe6db4c092f96f8133112ae5561b8,3 -0xe36d7c7b9d5ad9120e5599a28d2d5efc8790d5df,3 -0x4e00299a05a69e0237589c1530df7c0151291174,3 -0x4260b3a2c3dd17c3a40e368753396b1e6eab73c1,3 -0xc2065e8c845448b6fd7a3ad168918f2ba6e9d45f,3 -0x1c466a398658100890db7296d11a2a23072f176f,3 -0xddc86fbb738860c7d3e4b7130acaed8cd958711b,3 -0x349927a09a06428fb44da1cd8cbedb0a5aaa2ae1,3 -0x5afe16a6e8676cf4460da4f59bb8a196d15ae33d,3 -0x69542358fed24ba6ba1d6121f859ab4eb1ea5875,3 -0x588d988d2c01b5ac3e00044f5ca4afd97e6ca9c3,3 -0x43115dc0aca3a728ce49d7f6459d103caddfa164,3 -0x4a14a0e054f13ec44338578fe65d1080686697ad,3 -0xe0c0a67871cc836c6958acc09cd4a2488efa1cd8,3 -0x9e9c0431eafe5addf548bacfea974ccb550dad45,3 -0x88eaaa05be950878821ec9a53d28af36b5e680fd,3 -0x5370b3ca55bb561e7bc050c81848873b9bcebbec,3 -0x0cf7de031b6d8407bf7b8fa9f91cd53417ba0181,3 -0x1725ddb2547bfc9afb52e4e341cf70e2817744cc,3 -0x590dcfd47e973bcbc028ccef5ad4ad76e0902d6d,3 -0x85db21364ba325cfd3719ea60bc952b86d3b5484,3 -0xc31c333af5d5acda308146a2a8523b3106e6163c,3 -0x0e1f8708bfbfc3c9986bf6e393dd29d6885c66db,3 -0xfc18d1e3f3968e11dba72c58133c852d04aca10e,3 -0xf818df532be7104b1f898dd1fa3e6b42008afc22,3 -0xf62a49324b9d01e19cee5114175156723ae9691c,3 -0x5a8a2b03354647f0fa332248f89f3c52f176e103,3 -0xf8a9888f6f5f467afffcb7ea90529fd195a33d6c,3 -0x994899ba2d175baa6c2e0d713c8680144365a2a3,3 -0xe090d18834584181ed73984acd58856bb6b04c45,3 -0x60c2bc377101c2ab067250a610f5249f4ee38c9e,3 -0x4310c23b91652e725de106ce2ba8c785237ec772,3 -0xa189d618b79a64ef54b2d40f492b86d7178e89ec,3 -0xb893121bbae998297dd22084deb3dba66fc1c31e,3 -0x482834bef952d186cc64a3840a63ca2936230868,3 -0x88745f69d14f9edbc682309d306180fd6b3a2ff1,3 -0x0d0b3b531cdbb38f854613969d83334cd73dc7cb,3 -0x6dafbb255353915cd0b2c59ef5af9dc5c7a4952a,3 -0x04fb263bcb96fe84f7f5c58690992518dc15318e,3 -0x02caa5c046d7b9c92e21caed72d887575adc01a9,3 -0x03f643628e2d8f5e646c6df4871c004e5c16753a,3 -0xf34625620f983b55d5522cfd419394181c14217d,3 -0xbeae3e55b64deea7410b3cf7ba3b9d7fcafe917f,3 -0x2a41afe46559bb78f78783d0e319b13878c8f9f7,3 -0x12968013790cb189941a1c8296a227f21480d668,3 -0x2c419c8b207b10b39673482d83caa3e11f3604c5,3 -0x7b9440008d6b41c808bd638c2ef24bcfd28f4a3f,3 -0x4d33d84f667f22644b09f501f09ccbd3e876c68e,3 -0x43b3a3686ff8b0064a267b482494900a9f8a9645,3 -0x7be771e0439b5a24345d9a6f6035ce7f33a0ed46,3 -0x4700701aafd01a5f5fbca965ea681ad50e161eab,3 -0xd80598be13cb295b6d8ad8d233488c404cc78f1b,3 -0xed6e20b86aa8e94f010ef6bd3ffa3bf657d3af26,3 -0x71c885c769699d8aab74d8ca4ca94c8094d1b4e5,3 -0xc8a074886c7291d0b091723bf2aa309496637d3d,3 -0x33637c5b989ec06a580e7ee7f09cdb3447f5ffba,3 -0x0547ad4c8b50b1c3f6d14769cae651371e1fdece,3 -0xdf5fadbbd2a69642c1a3527acf03deba1d4aea0b,3 -0xf274ded44a2a2ccdc92817e15cf8ae5524048a70,3 -0xdaf3109e34a72c6fd44db26c23c99f7f4dcf0528,3 -0x272ca71913ea69c582bba35aee59d4f542936f42,3 -0x5c8dd862f4b0dbf09ec543906881016bb82315ba,3 -0xcd3749be8bb6852fadec3316ed62ee3dfe0f8a0d,3 -0x395a135dc927d4a043b809971b29c9d05de08368,3 -0xac2ef512d940f35e5d86d0edf82aabb62de8facd,3 -0x05ae0683d8b39d13950c053e70538f5810737bc5,3 -0x6458beb0ed3353784cbcc36c6274e671f097200f,3 -0x695b73138dde4ba2c0e7bfb47ef3f2ea62c4db10,3 -0xcb91239e68056f3006fb7df66b78fe6ec7a2db3b,3 -0xb2dc41ef1a3b154191b36f1a6a9fc2089b07d19c,3 -0x4fb02e43d5c7d6fed9ed3254b0d514b43f69d18b,3 -0x4d5d267e38cc5515a74fb14638d3c51238274ed2,3 -0x26f7a1c90527ba2c957d8a47a137326290db7b95,3 -0x1ca6a4426a251a1bef870baa3d1002bb1c2b8a4f,3 -0xae51c642f00e85d5b3534e0b404bcfae6802f4f9,3 -0x6206d5426af834886d1d424aaec7a1e03478e702,3 -0x99a47547ee8623e44fd6d0775c3bf218282afe61,3 -0x72703b554a7089f93ff1fc6cc6c0e623900a7b80,3 -0xfe2fa5e4d69ecd186eced58870991bfd1bbeb6b0,3 -0xab18c6cd9eba9d482b16bf5f02f24901dc90004f,3 -0x069a118b23cbf8a5c39567bdeea55177504f0363,3 -0x30b3a618a56c0c1179e00b289e16ea2ac6661fa6,2 -0xc633da0dfd8dff36ba84e074625e2dd3f9d3a42b,2 -0xc132769a4219962a01d0c13cf05820cec8571576,2 -0xf19a4211f9d2bfdcfde0fe2f91410c682ad7e0e5,2 -0x14f5b17d0e83488469142561697076044b994122,2 -0xfa7e92745572c80f98e877aff52b6bcab459b486,2 -0x5f298487e8ba2689014df636cb9b770724232b92,2 -0x2e5e5a120c4aeccc1b4db0458ff91da185c439cf,2 -0xc75bf237872e6d9a9cf65ccc5c14455b4715d0c6,2 -0xe18afc357a90cd0d230ee466b98b4af0beead535,2 -0x57e0d8a09ab70c549c742aaba7761c7e42665bf8,2 -0x931c9818a8d84fa031bb6f65a244280c45121085,2 -0xcbee3fdcd2278280badf3c52c11c60902548a9bd,2 -0x6dc9e79d3b58d53a7a4371b1bd3d813205ba3d9a,2 -0x418dfe6482a605bb501464eab112610eaf1819d8,2 -0x405020c797a64f155c9966c88e5c677b2dbca5ab,2 -0xc65956faeaed2f38097767cbe7f89cf11a47546b,2 -0x5a9b819baa173860df2834bcc61920e3fe3afa92,2 -0x738bb14735bebf2bcd5390b71345c3b3bcdd7f8b,2 -0x70bd4480d480011b6930f91688c0ce710c2bf9f1,2 -0x5b486cfe033974d98f3a7c6fd87b2a6ee2de7b44,2 -0x3d24b2b1836d1745c7dd0d7a369996e065d72f2f,2 -0x6d06a7130c3342f3e0c60e931640f1b30ceebf9d,2 -0x545702c470d00fec02bb2e980f9abc543e71c0fe,2 -0x08429d111a5bce249f45aa43216f6ea8a687187a,2 -0x51679ee189d0f4aa24565d3616baa53244bd7ef1,2 -0x8b988bd9dcf697f37e94575ae08fb50c5c841359,2 -0x5084273e47f43ec61ed92762d5faa103ab264fb8,2 -0xba8013387b1243d212033da2da5fddb278c5183e,2 -0x56144c451305007c318768ab6ac6071971eea363,2 -0xb1c74502337f4cacd2ca01ccb475e9e1bd28e800,2 -0x04826bf05897747762a8cbd1fd10126c6f30d9d8,2 -0x2e22f1ba318a0b22881c40d18713941e17156755,2 -0x153bd2f95642018fc6a4191c9c2d42ba372f86f1,2 -0x9beffa000d3e53612db80b5a1d73ad208ff0a0e3,2 -0x23701526361cea152997b964d414f7c14595c487,2 -0x400d7e20f9c06a23e72f6ca0f3492a3f24f698ba,2 -0x638b1350920333d23a7a7472c00aa5c38c278b90,2 -0x269a1ff16e097a6a551a62d516745367278b2f77,2 -0xa351c2c7fcb788ced08272e503bbeae785503c22,2 -0x202e53e88aa60190857f30de4395d3d9614791e0,2 -0xdd33f7cf7f76dafae4f8bceab11eb1ff21b032de,2 -0x56fc662c916f5d6e042fc064bbd8d24b33789739,2 -0x107b49c995c482c85d3b7fafd422919415d4b0a4,2 -0xd9651b65416f6c90864d351c0bb104368928d1bc,2 -0x98b8b64a6f904510a6b0ff096955d9a297ecf42c,2 -0xe70e649eeea90af1b101f20a68736134a59049cf,2 -0x71775a2b0d6bcb01c4cd14fe90ad05e88df10643,2 -0xd42e18930e039779f4faefa6a20e3aeed03ac0e0,2 -0x18de027cbea77942802a0e0bdb76b1e461158e32,2 -0xa7d6d85597113be2cf1beea8d85fe16b104fadf7,2 -0x2a4c6413f3be6be8378dc11fcda366979b412342,2 -0x60aecb5dad34182674b4b123b56befa97ce2d441,2 -0xd4ea1187fc3b3e6ce210232585d1a1b107d25656,2 -0x6ed1d3efac0d330deab25c11fc5ffa6b7bdc6548,2 -0x68c5a8cc46f4598a973137afb9bb9e4fb62e3f4f,2 -0xc34563c9e5a18a15748a5043944ac4bd8734947e,2 -0x9837479f649ad77c89a7b13bb8f44b4a2183274a,2 -0x3bf4c98b5d254ea7522daadf0e083e22f7047a73,2 -0x28523ae8fc1ef411669a4f284d34f2030434d38a,2 -0x96c164585abae940ed0430089d8186b119f09d78,2 -0xb743df68831aeef2d700b61864f42c20651bb0d5,2 -0x0526069cedba1ea6069165f504154ba629b762ec,2 -0x7412bc256355abd22dd53de3a38e8995b5d4c1d1,2 -0x0c6d59f4d4a53d4fd88397de2eb1a5d09984eada,2 -0x09d89ec403b589493660b70e9f0803aebcb7e028,2 -0xdeb98afeac958173147bcb41690501e49971a30d,2 -0x78f4e9ecca080474bc293553ac601bfbb6226915,2 -0xa697ed3b07a1b5e9b0f1a242d7471e9eda1ed60f,2 -0xbb569d55348b1446e8f26057d77aa97b2e3102dd,2 -0x459b06eeed0bdf1a4a2c88cccac1d24165ae96b5,2 -0x5aedcc710540f4da0ee2471572ab70fa9cf9d707,2 -0xa43d8e306c3371ddd5a307ad54919965736509b5,2 -0x1b14a4a306aad6eb86f6bbb2608c8c41c4a46baf,2 -0xeb2b6802332c2a86be4479b1993ba05afd91d300,2 -0x241790f3467a494931292784470650506f3d9d8b,2 -0x41de1eed3fe18618f0df558ea363c522ec18e194,2 -0x32ae0bba90d0929e50725f99d135ad86a05b7220,2 -0x0a0ea80a032712a7837760c28d3a81fc0b8b2d61,2 -0xafefe11cc7b3a72983f5cd6738237d72b08496a8,2 -0xf4d7bdee03f9eef82f90f437388734690d08b942,2 -0x355e7a3cebd7bc3736feb9122d12a0b66c7f19eb,2 -0x8b62a2a9ac24ff36e80ba218459a1d480ee9b8bd,2 -0x062f67589994ec264eb6b63852d6d20e27a46a45,2 -0x227b7e7dd35e3468462b2917ca277dc8bc3992aa,2 -0x9ca4a52d3f42502c26543c7c462485f1fee681d9,2 -0x5af7fe4b38ca869c042ee754d58843444de86904,2 -0x0cf26483337cf91bf8c1bc6f9053e0e1aac27365,2 -0x129051477b9ccc5b48d1362a1f9e9eef6b02e9e3,2 -0x5fd25575f3ed23ef4df4d03b0754cb433297fb1f,2 -0x897a7ce8b2a7436f409f538994e9f05779bc413b,2 -0xed9178bf3d18e2580c4d9176fe862bed311448bb,2 -0x604b38be27c12eeb09f52ae5cf02ece323d2b0a5,2 -0xb513b45f1fe1e82d7169a45d2bfb6c90dd6cab0f,2 -0xc0c01bca398cfac4404e18d5eac8b174dc06ec58,2 -0xbe639b2c0a4f701aebb33b6366930342466ca632,2 -0x84797b0f0667e43b16a642007187d342c7e86b6b,2 -0x120db88b198cd38c1a604159cdab94478f4d657c,2 -0xa8d6b42a88bd1aeb61e6b7dce475c964bd72eb18,2 -0xac5ac2e4688870f7171966bbd787bf062085ba93,2 -0x71f158478e5f9eec4362341080b1ee0cb7690aac,2 -0x86d8e71df8cf1d225b133422f1c750cd6ddb138c,2 -0x81863f0cf78358fada029b7d5fa0b84674802ef1,2 -0xbc6241de67bef03a01a47adbca0cee14a48f8c0c,2 -0xdbb0e06e2d0b8e307f134c4e041a05b342c6e304,2 -0xa34b3aebf33d4e244c3df9015365ef68ee62f7c3,2 -0xd88fc0296a843274bedb71fb3c8bd305fbd014ec,2 -0x798b9de7d93ae252c7b1529fa556102aef02a982,2 -0x3d864fa1ea2d7a7eba8a22a70b03a85392baedaa,2 -0x9289ef365ee9bdabe022df45b86ab12874c4c8cd,2 -0xbda120754741620f6eee6c0ff4021199fc946ef9,2 -0x5cc72bc5738c21d0089012eaa1c79065d99fdc38,2 -0xe18ce9b6e10b133776b75599c3d3e37896111bc5,2 -0x5437c4c23ff2f0280f53f9b5f04366d689c62d85,2 -0xff9f34fb5fac386537af81c305e2631a01b04930,2 -0x75cc56d981741830ff56e29ca8212c9ecbae5caa,2 -0x6fe1ad923a069386933e2c7f18d576a1addd0426,2 -0x2fd2e0b0a1c4d6bcdff517d7df95f7d56eb1e234,2 -0x08f03850f2ddb31a1522dd91e7c531eabfa6576a,2 -0x7ad84e097ac8261fba7b4b1afe23ed84553a618d,2 -0xb2e615512c5c74573916854e0e62920c918e3455,2 -0x7c13e647863fd820f9043e749a8669f9d298cb9c,2 -0x55b6b2fded429d6bc4c06a90a9703abae2ad561c,2 -0x22a24376a7551d9c3cf0f5b742820e1e67ff7a32,2 -0x0272272c1dabf0b3d44fe04cf6a60e7d054d35a2,2 -0x2d571e80c0e57da35e81b610082a861145f84950,2 -0x25710c1add6e93a9b839845716a88d5ce9f2d24a,2 -0x24ec430a352413cc7f354d2c7ef422b8540b4f2a,2 -0x399939b9345622596baa3d6f8989c442c6c9ab00,2 -0x51b6e1cb3f424ee88fa5466efac42831c1bee1dd,2 -0x84c279acdeab721636745469203f48b3252b2f74,2 -0xbd69e08896bfee0df14a2110acbdc36312f2978d,2 -0x49dd7fb11441184b01bf250ff66822c33b66c189,2 -0x2e94615f9e9033f9fb3bbded1c3947c1f6af8d9d,2 -0x7409d02429865a024274f124c944df96825d6527,2 -0x9532070f403d815e10d70631a94e01912865e704,2 -0x27281d17a0cdc7c46498153498c6e84458f6e10e,2 -0x4edc9bf27ba4faab3465ed79ad522ed31c493e04,2 -0x46c537b5b5faa8a61e4f3a6536e7d4afdf293282,2 -0x6730e9b0430b185070f5d6afaa61cace1d5e9221,2 -0xa3c1f5b17adf24d8612ea4637c1a74fca0ff6f60,2 -0x4959e9198dd497244d6964865016118e130de400,2 -0x8f2313d6ef0e16144d052eaf03f617854f81d2a9,2 -0xfb30f3529b13502422b7eeed63d70ce5311414b8,2 -0x51ad8dfe402f346b9b4294b4dab898e4786ba181,2 -0xbddcd3bc3f1b4280b7b29fb5351ef8aff86cae3a,2 -0x31ac24feec0bdb5fb1dd3b79cb8ca4a4dc81240b,2 -0xf14f1281b89a476465b9467e7f1aacd7e96bb17a,2 -0xdc07e784893d9f808aa2d6ddd3db727f96bf9b4b,2 -0x210d12492997bff01ea8d6c22f5e82904d78cb3c,2 -0xc4f6a1d264dc933d77778717a2e4675167646b7c,2 -0xbfbda87cda6e77e126e6543ca64b2ab84cbf6e7d,2 -0x3943e1111315c2f188323446a91b0498c03cab4c,2 -0x5645f25434bd28dbc2c904de3fda89b9e8808249,2 -0x3862c9e048b899fbc1edaae8f42c453e7fe276e9,2 -0x1ce3bcd3bc0c848f7c6241168533d0ec4ab248f0,2 -0x357931791284f40765b462aa7ad217ebf82920cb,2 -0xe339417ccc5ac776199fdd2a710f3958a60af5d9,2 -0x96f376509714a64c7311b35c0cc5ff784109a453,2 -0x959b06ab52d4a24888b2631514fe098f58c653d7,2 -0xbc4b4130faa93a4e9c113df485488fa3731d1767,2 -0xcbe30f6393f476954a566e7aed8e76f9d1db7fcd,2 -0xb116f194179418b24713a6535149ef637fa13325,2 -0xadbc39c2544a21e90a0bf3c977005520c5ff5ed0,2 -0x41c2aba286ba087b3a5bf19f523858f93515f025,2 -0xdac64134ccf7d279b8c617888fda109eae6642de,2 -0x134f6b93ada33709539a2ebbe35546e12ebcd838,2 -0x57d7bf3e052deebfba21ab5855baec853cbd1086,2 -0x97dfa8a7d0f5c29234bfc15569700c0d4fb5437f,2 -0x7f36dd92fec9ab453283fdd5a0b956d3e56d3685,2 -0x56c58075ee42e7c28ec197bef0549112262e0ea4,2 -0x1b54bb6f5193523276f134a5fa917bad865b7782,2 -0x77322fc0027c0686302ef44cb4a8de1c6175b8a5,2 -0x7112ccf9dfcc4147eb172f05fda9e63bb51466d0,2 -0x106ea65d056f808709b3f64a2306017df53b809c,2 -0xd43b50718ccd93c9476c282b268c11593c715002,2 -0xe401ad1151f02937cb8d3425249786b1374b0947,2 -0xfa5d05df712b059b74ccefe4084785be7f2ea1b8,2 -0x627d934102eb07d83fdc63e2a50af96493a44572,2 -0xae30f9b73318f42f5e01e597b97c902f4f556df4,2 -0x8a4b4647e041539d125598ffb3289ff7ab7b1347,2 -0x8e80280f3b2b7f54766e31c6995c315848a6778a,2 -0xc74464ce1b8d30af96016c0e744f3c1988952a4f,2 -0x27d4d8f3fc12e5984062e44d73c958e14e00daf4,2 -0x91a397707dd875da80d3acb13bafbfa90137453a,2 -0xb25689403f067dab25da3e3177560f064b1166e6,2 -0x4da76b5f55510c61028b8779b612da9fb0c832b0,2 -0x3d6b99e2c842331e838976433cbb03499541b33e,2 -0xa2085e0eb73fa194743027c0f943c11044dcc308,2 -0x5b1b5d7f419c8c26a6ed51b46db09ae6376a82da,2 -0x9a8498e1310db02c4ebdbaf5da068a83a2f548c1,2 -0x86aa8434e21baf5b2abfafa55fd5d482a2fc8f0a,2 -0x20e1f247881f7fc5ccc17b1f64f740de860b300d,2 -0xab81dbb20e15b023b9e46849f935f454c26e6a80,2 -0x10df29dec6d94805d45e0d48329b020b319004b6,2 -0x080040790fe22348f599fd3cf8d5cc98172d391f,2 -0xe3c6ee7782b54803465048429b67020a6cc11c0c,2 -0xd38b57b0de053cb04a8a717e8eddd6eff2c78743,2 -0x11c4741fc0dbe1d4570e8b6f5b12d8bcd817d9da,2 -0xd87b51cc8172fdb2a04da65a850c7cb914d6c4f5,2 -0xb4c99f987a9f68ee0a3347fb74c060bc3035b491,2 -0xac6d1ac81cfb38d389b280b73c80520bca0c9939,2 -0xeca29a43adabc1106f5dafefcc80c5e790a0c466,2 -0xdc9d314355d38431bf27426fe45f8db5785b8d9b,2 -0x3b7f246d8340de4fe0495bfd243fbea798503c7f,2 -0x5f147e262508f652685a3508c79dd198494189d5,2 -0x2d041bb79c45ec50385d372a8642044e4eafe569,2 -0x9a271653b7330fa8ca00a4de5b575f91c2cfc02d,2 -0xe366efdf11ddd698eb79b0c88a77927b388f04ac,2 -0xcc844bbf3e5c0800ada73bc688fb1b4a2022e370,2 -0xfc7fd1a43935b45b43c460cb176a62e644476396,2 -0xf37c6004b40bc7c2a9ea429ffd14e5ea696d71fb,2 -0x7e5f618a4882201aea24ab9aadd13682635b120e,2 -0x627949b6f6b989969129be99729b027864470957,2 -0xc70d48cc22569268d31b4e8008f84b5f6c7035fb,2 -0xed2318cff223c8555c0b827a99d86d7fa9b8ac98,2 -0x8facb186998f380e3669cd0e21d1233a6b53a28d,2 -0xb0fe032bcfd09f3b935ef963da4d65945cca4aaf,2 -0xc61b29748d966b9f21e83c49bdff5f883751e445,2 -0x0f3473d555b10c8ce62371372718f00cd0eb0416,2 -0xdd3f7118c355c852d24ba50b677787e2e12e5908,2 -0x9b2cad9cebf91f9f2d87a10293f0e54e4dd56c74,2 -0xcadc89b17f6dfc3c4b19f653c1894f8943d4f284,2 -0x9764d9cc39aadc6daa7b8edbb474ee507187ce6c,2 -0x2d5b0a12dc559fe687e6b9488ab6c1a1f2b3840a,2 -0xd11efe96527fda776b1530ad157c8160533cb5e4,2 -0x427a7c2cc31e78e9798d5b4d0f75ae23744ccd65,2 -0x84234d0e91fe8066cc90e40f28f22e7e89f59198,2 -0xb2eb076154cac8a66617d16b612a7146d4e9104a,2 -0xf7b648e2556e40cacf762900c670b096e43966b5,2 -0x3f391dd681bddcf9ec857cb4fc80e6984e871613,2 -0x838bebbbe97f6fb2f8914f045c9d23c9c3360fd6,2 -0x9cd4d6245cd1639be8a673e37351cf8ca4e89402,2 -0xee790dd47b0cca5ba3979844982dc856309f9bd5,2 -0xbd584ce590b7dcdbb93b11e095d9e1d5880b44d9,2 -0x1f46ccaad2a05f594064762fd4a8bf19bba0b6ef,2 -0xee074ddd0ada1c604bb5fab77508d0a1649c839e,2 -0x6b494873bace56b04febee6839cd68b3b94c7f8b,2 -0x9d46bc41aac2fc41869b32bf3fde8b175ab443d4,2 -0x9a4c65617d4bb8c96129eb990184fe0baa35cca1,2 -0xae174f4e25860a7bd2631c87c738a4a9722102e2,2 -0xe6ea7766dea84f622cad7c82cda966154e770926,2 -0x3ebfc865da4d908c3bad033d37fde347a990859b,2 -0xebd56f0884a8ddb3ad47c767c5647738b04ed1ec,2 -0x11b31523e0b6fbd8416e64daff9bf26b900868c8,2 -0x3f9ce1b5158be3d134fb5623a8244ae7ba353803,2 -0x4d81ae3c4a934ce15717a4c80138f0ea9a83ad16,2 -0x45150a1de283bbec02f4d9b118adae075acd28d2,2 -0xb5270a7d230def9c2a1dfe9f0a49831ebd4c8dbf,2 -0xf37dc99bab44959d7919c4560ec8dee026648e76,2 -0x21a4391dc17c1887160228fe0d794fcd089829ba,2 -0x417aff89687ac8129a8cc2f0a6e3e4e30c92e12d,2 -0xe8996228b2a7a7937af6ecb2bee5b99baba6af3c,2 -0x0d9f101288550703244ab0fff47bc0a29559d947,2 -0x3b952913518f24f1b67daee205164d8b9dc2338e,2 -0x09610296c2c16a7b68f528fd085757c3ded8593a,2 -0x77039399801f462b4ed13444a266b16355c471bf,2 -0xe809968423551135675f38ca77d9595c5d225918,2 -0x8772f570b07ea5259b6891dd79bef0786e921c1f,2 -0xa8c64edd9a2b7cf7ea639573d8668a0e76634391,2 -0x32c9948491adabfd9ab9ae51b5295d6fea78f5d8,2 -0x922dd05e7928420e5f2900801ed72db5464024ed,2 -0x2ab1735ab09f57db6436aa70676b158ed70a70bb,2 -0x8be3fd8a423c38131aae0330b20ceec425e0e50e,2 -0x60ed33735c9c29ec2c26b8ec734e36d5b6fa1eab,2 -0x86061f5e64d18f280e777973be7ed09de2304f61,2 -0x0dc903afb13b941e2967f4cb1c37bbc91f5ccaa7,2 -0x5824b63d46b551eaf974bfb2107e7d1c4f3f7909,2 -0xaf78275fe7c3dd9fe1698963942f548a3cd32be2,2 -0x30bb18fb6b34645caeadd7b1246b3d456712ebd1,2 -0xcbde38ec5a7dea3526b6209010c64b44ee91b6c1,2 -0xe623b7b1892545cd7abd4cbd658a0210a30889ec,2 -0x218d75b17f491793a96ab4326c7875950359a80c,2 -0x79be25c9de55ac00d65673eac3a32b6ce3d6d59b,2 -0xed3d7456997d9af7d284230b5017b35d140da798,2 -0x2f1799d1bdcc4e922280fd5bcea7b6dfe86c2593,2 -0x3af49d1799a33435a8814cee22e56bee80747d5a,2 -0xcd13397678118d5530b76bcab6c867620130d072,2 -0x807f4a2729655cecf87a783c26b56dd212ddd273,2 -0x7daa8740fe15f9a0334ff2d6210ef65bd61ee8bf,2 -0xc1d68eedf8219c793171b988145963f9229808c5,2 -0xc40aff3b5d5fbb67d7a80364eefbe8cfc3907de0,2 -0xdf9d7348de322cea56861b6d0674d28cab51e810,2 -0x4b274a36b9b4c10310ce96c4f6e1400c60b1ae7f,2 -0x5108375fde60b49b237bf3cc5c289088f6b92493,2 -0xe449898f97a885b57d2d11f35ea26c689f9ebec0,2 -0x023f650c0f614167ce44c53f3ee30fffee0fa6d2,2 -0xc5b73156dbb41652590d58c842521f723f4a763d,2 -0xd233b9db308f7d79063b36ed59789ec9148b03a5,2 -0x3e626731961734d28e393fd35ea99848546c5656,2 -0x8b30775ff772789481a33e18329a538049cc6939,2 -0x447edfec13e3790c8f88645ee955d8e8cf523338,2 -0x84f4da3add07dff42d51336d5b7420741bbd8ab7,2 -0x0185ff7b44cc6c5f3698a6a86dab24523edb3c9a,2 -0x0da76918bbb6a46e4dc122e75f5da8ca304374c6,2 -0xabf1ff91cecd9990b3f29363b62b87fd76f55f4a,2 -0xf16323db45ffda53adc9eeb30632009041069699,2 -0x7d6bccfc0f40871e23ead9686da0f6a0fdf3c8bf,2 -0xbffe952968a7526fce2b03544af5e8d5df9c071e,2 -0x3171bc7a6e36dc1768676875fc36804de502343e,2 -0x95e09cb608d6333ff0904763851d548c25342739,2 -0x58a385c1a18bf73ff263f530f00cee4edd886e2b,2 -0xece153bdcc29c8d0fe6f776ddf0ebc47f365ec3b,2 -0x47f20a14d7df028124c631348c69681b1e8b5bb9,2 -0xd36954df517cfd9d533d4494b0e62b61c02fc29a,2 -0x46566a9a38e81d3f4a0e9aa798d007efcc8bc61f,2 -0xea270c79d5d4cb4f4c372fe9e9cf590fdd808494,2 -0x149b85d173f6318315a7b528672b846948fbd4d2,2 -0xa4a3954df09c4c05d90cce70ae2411f2cb0a05ab,2 -0x371354f630af0087a5d7ad268eae0a98da088b0a,2 -0x6fef3d3226e9da958cc66bcb513db55224e1f1ae,2 -0x52f1fe8ae288e7058ed5500c85a768dd596c8941,2 -0x3fb53766072d62db92ed857bbc560a1f63f1101a,2 -0x4cf7e47900fcd74f1066e98a37ddcea87616552e,2 -0x1d24e0a7d8ca20a67d40141a9fad033e0b635afa,2 -0xf28ab2c7417cefe8c960006f3ad5f1a66475a353,2 -0x2eff66424163bdf065c1944b8d00e0ef7b676a5d,2 -0xac1122e8bca55d11eb5fe653fcf19a7b7149c560,2 -0xfa04fcccdc6eacea794aa59f9b0027ab744be3f6,2 -0x098b43234405cceb5fa5332784364e3455b5793f,2 -0x3f934f59f5cff412ded98c07746fe564726bd7b3,2 -0x746b1abadc9bba488bf0c42c93dcfee7f6c40db2,2 -0x7b800021e2529d26f45f4f7a3d0d91a3706ace19,2 -0x791ba8c2d528ed164f3e4a452a020a472a415e6e,2 -0x6edbdac8aca744b67f7c3492012130af8626b544,2 -0x8c1b6ac61cd3442bd788e7a438ef76e741046921,2 -0xc9f1619018edec330f7fccda5eb8f9d1e2064fb3,2 -0x00f53dcbcb4a2aa7ad50d76aafc528d4794ac019,2 -0xc4542f1f90ed0b0b690cf722282a37e8356dff9d,2 -0xd1afbe4da2a5adc6faf30fcbea9e4eea0ba8c70a,2 -0x3aa77f3ca568bf54419d1a8cbe1a7f3b01e5f625,2 -0x43a3ecd64a6ebd1f3391af05a4c331faf37f1ab1,2 -0x65ba4f92d7dfa813ddbd849d9faf38a723dd9b12,2 -0x3633367a5623ab75d0d8c6623781679a6638fb2d,2 -0xac0a6b8b39845dced9b77bd39f1c87be91775484,2 -0x49ca963ef75bceba8e4a5f4ceab5fd326bef6123,2 -0xfd985be31088544ebca737feefc5f731b99fa810,2 -0xdd4fc7e7deaa6f2ffe720a4b8d054cde32936004,2 -0xafbff3e871543754552c33a84035ebb9ee7518d4,2 -0x85caba8f5e6a1bdb98fec8542d70c7175ceb5f38,2 -0x43ed0dd90c136f6d4ce6bc4a47c5748d2d694c7e,2 -0x75e71e70b2c899f7e79869d69e2594493eed7f39,2 -0xb9be6a60faad391059aaccfb5af3729f1e03fe52,2 -0xa03212293bc3bb7e6722d185a89312476aa5fb1d,2 -0xd04629c6a513ce3eab8ec5b281f8ff2a03b78b34,2 -0xf7a1670960f3ad9670588688eff211ca783e8afb,2 -0x95a43c71b1f637d022c5697e290f6b1d56d70741,2 -0x051ceb0bee9653ee5e417303bcd842e3d9d1b459,2 -0x4daabc9f0acf204e9d5f8035f701d5142fdcdc45,2 -0xef16a708b9feeaa44aea2eae66b0a6df4951f5b6,2 -0x8ac389385548e94480dfa4b5398d1a495c34f489,2 -0xf590b43df3ea9412c3178b7b0e89682ca6c459a7,2 -0x1717eda82c92e16b33bc67a1f8a0b5ba47c63632,2 -0x58db63029201728db873e23016c336eaafd15cf2,2 -0x7faa753695c7de5695e28b966f695f62de43748f,2 -0x9be313209be2bf005942d4ddbafececde5f18b30,2 -0xed5345e8fcd2b06e560eaa42205ccb5a9b344e0f,2 -0x6729ca860f557d1ead06b887349c183b43f4f701,2 -0xd54d1376a86817f8bb382d4e0bb419c28ca6ac9a,2 -0xb0b90862cd60290ca5c0882f046790718e4c2068,2 -0xb446d7c98533780b700afde8f21bcb44bcfb4d59,2 -0x445cf1c563c5c924ebd69ec68d1218decfc67821,2 -0xb95c90bbdf3b63fa444e52491a9c2299254135f7,2 -0x4b1f0656a527d5164b968b86a6f30d6623acc24f,2 -0x3e5b4f8b898c50b6a3c19eae701d211a3d1ef246,2 -0x9b4d9554f77ab3db6f378d9c7e4302958fbb2c36,2 -0xd18347edbe9492b4a8f3a9f4047f0ac00110b4b2,2 -0x170ebfb951fa438768671615f03763a7cb443361,2 -0x3bd49fa4f3c7b71da36203072b2d69b200998bca,2 -0x2f6365ccd0550e2a3ca8b644762100060343602e,2 -0xe703778f89291bd74a39c0679a461e275061ca31,2 -0xda5d65a1ea27cd0363356877f81003c5e7518954,2 -0x58535f64becd08150244b3cf1471f02b7f349df3,2 -0x2e4b11a2410b2f687dad771a87c1af144a02cd61,2 -0xce6661c62411e853192ea33379e91352987c3de4,2 -0x3407c11c20b69d2f752642d328980140380e31ee,2 -0x3497bb5f184f75d409f16addfaa23245c4a67675,2 -0xa6009d5b7c1692405e658439d0fa0e4683694135,2 -0x7193a8d715ac3536110e8d7e367044c1825001c4,2 -0xf854187ce72d864010eef890b030f8bffc1e3070,2 -0xf5903552a7b73b0dc7f877fa93d6fa8d93f665a1,2 -0xcd0a288eaf3afb68a4ebda27d81ce63749558e2f,2 -0x169f66fe4ec8c14c8feca1ce4d1b34561f5413fe,2 -0x20a6f2a053e330ce13c6d514fe68f6288aae0df8,2 -0x80ea9cc5e062d9910733d6ef34a756970c71b97f,2 -0x6dd5b1ab60a187d2997b44e3384063fbc657c1e6,2 -0xc2d742fdbb31442b843a098dcec3c20054c28986,2 -0x64709a52e2e919fd241919fd9bdd049aea5b8137,2 -0x6bb985e8f805b97fa041ba4fa187c68b5d24f649,2 -0x75dfd3a19e6499726c0ce05c6bb4d99eb74ce6c0,2 -0xed981a65a3c8c96b8e13b33521812f1991c20bd1,2 -0x1d71e6d3d6272e63dcf06cf0990b925487e75227,2 -0x8d894500675c860d86619cc77742b8dca7ef74e2,2 -0x7deef9820571f7f9a71a26a11259458bb4517b32,2 -0xf62e85a8615bfcaa79f5b8847b379131e156c293,2 -0x8ad3525392c491e4ef3c034f0ca19770420d4f18,2 -0x7478f3eb9a84e584a1fea7862e246bc7c6f07590,2 -0x79fe7b6023883174ad6c82781ea1d7d020f01762,2 -0x1ce73dac8b6128d0d2e34a3289bef234368bc5f0,2 -0x3a7bd05287cdab1d7124957d8274371cbc2561ed,2 -0xa5511d299c3ad909106a5ef10f380af2621f4cd7,2 -0x3fe6121e85e1044ace788b938f91a53141054b8d,2 -0xf296ad0b1d4264d8d092a973b4eacbae19806ffe,2 -0x5d5deb2f6f51be9abbad66d1a63399e53d97362f,2 -0xfdce053e489b42fc7da5db4be1f962d3edd63244,2 -0x76c8bd8dd6c28b41555341372293c1f6ad1bdab5,2 -0xdbab8e6b9ca77e93239db702c221d8b800393429,2 -0x5355f2017acfc420d0765b4cf7b4a9f3ab126bad,2 -0x30bcb8b60e82dc487257cd36231107262d83325a,2 -0x627dc2820aba1442bccf6ae476b619e098f2a592,2 -0x1feb2e25219950bf70f9ad7dd5743a62b182ef33,2 -0xcfc82578733ff6e3d29de3844e9cef08318df58e,2 -0x53ea1904951a25753656625014b9d95d63a2e379,2 -0x40df5c0e9bf6c2ac0ba2fbeed6035dfe92d7bfe3,2 -0xd43e547e080f8f591d83cc8efc16bd63baa66b24,2 -0x864dc0fcfac8ea62aa2e136624575ccc8809f0f0,2 -0x4e668c04215ae5648ebb2e071fdba0a72f1c226d,2 -0x730f51a252436bd8672c7d91487a12b41cf9629c,2 -0x7a6538b45842807650c9bcbe67aed560ba89f0d2,2 -0x754b148c8958f84b37225c93e6efd7873e206aad,2 -0xe1ec1bf20e70ef8644697be924616f0b5e2c83f3,2 -0x131ea4dc4cda09d7d075bc3e3537959dc759c193,2 -0xcffaa22be77cd620f2677dc7622fa19d3a8549bb,2 -0x48e68d7ab78dcfe167d52bea8e5dffa14916bf89,2 -0x4668f8db524799f896663efcafd860123953744e,2 -0xaf8c481eb42defb31ae67319382624a68e28f5e8,2 -0x2ea1fe876995ce948fbc5815f943c6f8eea00531,2 -0xffdce00bdf3334ddc860656aec47bd20fc42405f,2 -0x70ff27250546d03df9c5f44bfa9370c2e47fa1d9,2 -0xb4375fb69a25e7b975d18f6c53de9c62a12456ac,2 -0x30b9ae263c4b125611f31dd0027ca3ac90d8bb9b,2 -0x716a4e5840bac5ccc7ae262e48ecfa984aa50649,2 -0x8a23e25aa36781d7bc28e2eb00990133f80257bd,2 -0x17bb250e7830041857ed026738250b69b97f10b0,2 -0x9d2109a55a3c2a7c79b16633327dde70b6e07fc3,2 -0x75a6085bbc25665b6891ea94475e6120897ba90b,2 -0x9be03894b73bfcbbb2a8ccbc68b592e37ef04161,2 -0x6b0ddc53474a855957b58b6aeb3dc1bf64bc0276,2 -0xfa831d0f9317e491824ba678ffb461c30d0d5837,2 -0x35542b2050277cf77173c84322b4d038eab196cd,2 -0xa28d5c97eefe3f7a2b52ea267eb9fa1392aabb82,1 -0x4fb213a26226cc62cc0dd0012c906f7838d32364,1 -0xf7a82b409c70a33edb12f7b281436bf1456c3b01,1 -0x548eea42bc5cbd8dbb6c997c926759112576ff06,1 -0x0443eb3317063a01a08725dfcc72a1cedf9a5a1d,1 -0x8a7eda14e84610625ccab653c8df633fc0b2875f,1 -0x65d46b267514edcc4a52229e9300ee387daedefc,1 -0xc49a789b74b35fb145565c5a53e6f2f1c4102a3d,1 -0x02cb436fbbef14788edf2bf8098946ed3fbba3db,1 -0x11a3f3be6a215ad0e0d78fa36633bf9e5f6be76b,1 -0x0cb005ab128702ed62a2f93844edf41f3864da45,1 -0xa622cf6eb0673f8b186dfc61a07eee5acd4cd930,1 -0xf8d59b69ac74215af0cb41736ce23bb0e8314e8b,1 -0x5f02f2795638484553fab83e6002bc01c021a256,1 -0x413ab8a3f694278d81fa9af5e904aede80894d85,1 -0x6e99bf4540bf77b73f1c450fbcd955e13cbe0bec,1 -0x3a1fc922fea0d4a1fa780a1f70395640bc709f76,1 -0x7e68611e0cddcc26cd2e2420f4d9943e786f4595,1 -0x89656db4397a92ca914c3576a8e9c1a7661af646,1 -0x2222c42d79487ce54bc39d1b1494318714c2f740,1 -0x860736719f6cd2de820187ea9dcae73a3e9e5b20,1 -0x17879b55d72af403cf410fae788d0e7d2f157e80,1 -0x989bd597f807a5ca50b3e3c985fedc3a475b80eb,1 -0x34860d4bbaa9c07cb89557ceb25098122ae18f9b,1 -0x5ff368c9a7f9b9b7752cd16f95173e659a104fa2,1 -0x5e2d237d530beda1daaa6e1168a05b76cde04bc4,1 -0xc1e5f8f617e52d3ec2acdb39f71bad1416568904,1 -0xc5d9caf1a380781cc3e489c0998bf69b5b4ce19f,1 -0x7ad6099ba2f677cd0edcd8804c740636e1e06ae7,1 -0xf12cfa40195c354e12540ffd6f770fb4dbbd2675,1 -0xc3663cdd5b4f3e38cb816b1cd545e3c2371e5f7c,1 -0x05902daf519b17bc66d3c25bf3da6f3ee45e1b45,1 -0xfe5fca76016b1c4eaf57fabc9e3b680427cc5ad1,1 -0x7a6a9596af512a7e5b1ef331a70015cd3defa1f2,1 -0xa257662b9ee003c3ca05a1e25be51f0ef724ade6,1 -0x8af88d1a17769f146e31f4282138235de1c19bd4,1 -0x21f265553792b3973529d49fd03a1ae5e6fb5502,1 -0xf3b384ea79ebad243390bb17d19e00b703e0c203,1 -0x3e2178cf851a0e5cbf84c0ff53f820ad7ead703b,1 -0xa86412888c12b15733a3b44bde306696bdbb787f,1 -0x18b0a87b6b6671279fad4948b287e5b934bfcc5f,1 -0x591631285f17e0e3ae23c2695b632575b2455a1c,1 -0xc686a12fa586aac3c087aeed64bcd21bdd054656,1 -0x042325bec51caffa958bd3556202149c2324b8d7,1 -0xf3f0ceaf0f5e7459e120c93eae785e07bbcead88,1 -0xec8145ed6c60262c7f6dcdf735857368b66cb1d0,1 -0xa66214a8c2b0e858b67cf7ecc2523cfc4655da96,1 -0x31ecfcb2ddf274f89f086612d49fe3d957e77db3,1 -0xd3029225ecf009b196b8358d9e897344c0f610c0,1 -0x4e1a3dd441bb6f8bf6b1e96f431d03f95812cc66,1 -0x9ceef42fc9eb2e7afeb57c5f6d11da1e0cdaa5f1,1 -0x92d48c4de995677efec025aa53d570cc7a882cd9,1 -0x244492e630c46e434a1b51b8c36a549ceb8b68eb,1 -0x4ba58a074e60392710e0ed4b87c1ea2eec20fea5,1 -0xc6a2bc1bd7dce6d724e3b0894c86fc6741d33b01,1 -0x32e22404f3f9d7cafa0e0bfa68256e23e2ae1d97,1 -0xe54cf30a3f31f3076e9ab5bd122379545a137b4c,1 -0x8753982d800bbbf1faf478ef84c3e96f2775d3b9,1 -0x2a19712b4513412b3f3f8e8e67bfcf357acb9104,1 -0x9ad261d8b1178e4a6f27b43408361ac24168983d,1 -0x5b0d3a1da6dcd87996fa939361809068fc176be2,1 -0x8873084d75ef7389ca8d9d86ec5459837d4d09f0,1 -0x1f4e60f583f1718cd4bf0fef03f2fc94d6431ad8,1 -0x39252998c830dc462ca4c8be404fe2c066ee33d0,1 -0x0d6cccb1a13df2ecc4a27675327cd7488d2c2886,1 -0x9e1422e7ec2b6f9c859146ebff103a61d41bca9a,1 -0x2ef6a4cecf4b21e63d5af841cecd4ccaa8aac623,1 -0x81feca3359deb9ce51eeb21d51d9af80257156f2,1 -0xdde4ce1a05a44fe4509158716de19c679a9ef8a0,1 -0x118d596b4b15e149c8e16cca48af3855dd415a75,1 -0xcce72c4370243719a304cd97145a2820d8848939,1 -0x248afbec09c971372278c1052253e4c308d5430c,1 -0x3c98a8b217864354defc24c10477b154b7fb2e00,1 -0x16e28d771f0855796db5fac7a97740e964a99f67,1 -0x4ecaae43913b511364cbdabca7adefbcc40d3de1,1 -0x4c2815c34b6dc9e2b4695011f5c1726ddf26ee7c,1 -0xd70591f20da54175a05283fc2e831cd6a68384be,1 -0xb212b1a6802c9ccc73305e087da583f6a9f13b0c,1 -0xbcec92103a17cf3633008f295f0314eca8c19644,1 -0x136c6cc2a467471f6afc35dba5c5fade7020d456,1 -0xb0b74b35d53b4caa86ce239dd129d7b473af812f,1 -0x00c7b1c00dc0f5baa8cd126e84c49cca19bc8b99,1 -0x2743a75912fbc34b521da6d910ecb5f336e15bc7,1 -0x108d98be5b45e763333ef5be83cf6fadae04955c,1 -0x822c58bec9379dda3692b855f31d2e59c19887ed,1 -0xea5e43caafe3801126988c785d2c688b5c1f2ec2,1 -0xcb463dd20d28a251dec5d32aeb4ad4147eba2f83,1 -0x6aa2d39b93f2491b5816fdaf4108966b09b86678,1 -0x54f2f5c53326ca65e6d60a94ccce84798084b4f1,1 -0xf01d1f0645cac238ba09b7ca58a7a6d00e795f21,1 -0x7562500ed68594f45e55be29e71c9d48bb7b8ce5,1 -0xe03320a1c5d094733d60ae594ac77858d4fb4019,1 -0xa0df267afe0438460754496ce0f32ca006cc9360,1 -0x6f086e111c0701015ecaf8a51e710aa8e2499478,1 -0xde913866f9789921a9ea4d837699e1e25dcf8943,1 -0xce8cc95d2fe5872cd60998ac4602b2b3349f6b2c,1 -0x2df31ce03c190cdaa101205841166433f0aca811,1 -0x2ad93906fca0055f31f91f5339b7e1a656729cce,1 -0x5a61aa3e679c0c3c010a595374cc3bc77eb5af7d,1 -0xef90dd7379d0217be1564a1d8ae45b467b56d039,1 -0x46bb7bb87194c16df1701f882b3707636aa87767,1 -0x38f9905c8be6b1e02b048022e348af2c09ca9cf4,1 -0x5a47356c629f2fb9da68c77a6fbf9fd2bcde026c,1 -0x0384c15fef5797b7b9058be69d7b56fec529c476,1 -0x45f8aef4dfabfbf943416db1e43f088e543bfdb6,1 -0x93c07e26e3c8d31d33f133400e0d3fdf584c3099,1 -0xf7eb20c41336bb16b81008c52cbaf19f80093aa4,1 -0xb84ecb87c4f2886f6712375b06ffc39623b1352b,1 -0x9f7908afeac019de5533475d8a4438841d0fa3fc,1 -0xdcb7f5d91f4d4344b18daad0e6a77643ec5f0746,1 -0xef0ebe3c4f6b8d09d4330305e7991202ca922a5e,1 -0x8387f575a44678d4b4f081b38bb74ac841d7a7ee,1 -0xb5edc4ea482d77f28c7ac2210cc00d09f27037e8,1 -0x14db191c2af6ffe48f7c8a3b5c2aabfb41b879d6,1 -0x7953147480ebed59f01066b67871ab6f8c76e121,1 -0x021ec15302691af93c864e5be173a659f972bfb7,1 -0x435094c6710890e8b70c8016a5812494376947e1,1 -0x37b9af770f5ef7566dca77cd9bfbd57b20680aa3,1 -0xc16ba571325eb80c636ac49103a87725f1030682,1 -0x71f2a19178ab7c2efd96838f42380dad765b804e,1 -0xa9da2e4b36d75d3aee8630c6acd09fd567091f10,1 -0x219a0c85b89225dac5c3cebd5b94f595a27e2cc9,1 -0x4fd5b4a5bc2e10a70e8df32faa3bf55006594b68,1 -0x5552d0da92958b80076adbecadef92c799fd9982,1 -0x50add54a6e0eb6d552dc447225e22142bb8048ca,1 -0x4159a0b7fccd0ddba3cc5f2b5040262c825bd005,1 -0xb1f46301b39872d591c6e79efec3b75ecb0c9781,1 -0xa3ebb2e038f6e8cb4b716a839319ad23ef743625,1 -0xd6b44c6b2219a6b9936e81888e4ac969b1943e26,1 -0x0211647255935bb0f2237f1dd4ac17c075c0f8c3,1 -0x52cd9d9e956bcc917eaf9bdb5c91de1c351f635e,1 -0x6942a7dc7f0658de11452231246c05a83c5ab971,1 -0xfced4f2ef8faeff5f02d803e025707c19b644cc3,1 -0xeab37b9b0b3ff2d24e70bcf7b15ff574b410c4d5,1 -0xfe81637f003e97934f7946b130922899cf604ff0,1 -0xb06f01fd167c1af49f4b120d5ea6ae8ece1b53f6,1 -0xec5a1658de07ad5b951ea2f29550acb9fcb69def,1 -0x95a808a7f56fafbf07c66565dd5a05b6a768dc20,1 -0x037712a5afc6a377cc5efcdbff729fc4503f3936,1 -0x313d082ba93ac46a329467bae9a4f9c694f433d7,1 -0xc30e6fd13cd8556afc36215c80f17e46046c85fc,1 -0x2c33e7d6a29c69e88b980cf92a0aaebbf056eb47,1 -0xd363965eeb3e0fd06f61aa05e6a9b129f7c5777b,1 -0x4e8babf611e57a415d44cde5b0ae7f9bce8f070f,1 -0xe6f286933790224ac5cd04006f5764d50fb4ab20,1 -0xb01d1c8fc20b9fda10de441f4c7f4029b496c587,1 -0x35a1c9b1ed12332be6b1ad5f232c6071acff2185,1 -0x6d2772a4ff4c12f37b961eaaba5c79d447fb4a1a,1 -0x9fff540f87629ce0338ba40c220b827b251ed625,1 -0xcb705eb36652fdbba7327b789553d0d04998659d,1 -0x4746702baa2e0291c680e72d0bdee207a410ff16,1 -0xa40e4f517cfb215f764b99f03cbcee04c36cd58e,1 -0x3d42e1b839865b10f895f4bde0511f3583c30cc0,1 -0x93fdae215370bb6872abd303f4a0de0d4b6955f6,1 -0xba435ae7a1efbfa38c13ab44e733f1083c89575c,1 -0x6b14e892b805143bdcdd7459eea2e90f12146651,1 -0xccd6dc90c03193a2daec6e54fc46a37da4b09121,1 -0x9cd082097a0c6d0b797e975c3b18284b5406d7a0,1 -0x5d9711b9ee26012f7bd9a3a987e4ddc407e0fe15,1 -0x0cf49d148ce538c21fd77eeda401efb32899dc12,1 -0xa66cdb81d8f2505f927faa408180bce3aff3909f,1 -0xab705726ca1dea9c0aca84d640091cedcc46a3a4,1 -0xa4fe85d23a7e287479f43928a3abb924a5b01269,1 -0x272e9497c91841a2b9db4033170eae4cae434bb2,1 -0x0f6a1e8cd1169fc477e1d337b6c4d3dc509ce7b6,1 -0x8c63ca56f9c3ef93f2b8df66f582de03d3ad4d17,1 -0xf49bf94e5e77f2e2aed41bebd8f4ba9a03135f07,1 -0x4fafd7503973d841548024d60025b3e7b4d73a00,1 -0x83a38433a7fa157f72afb9290b35c4d42c98a270,1 -0x74bc826d11591a35ef685c9a90ab2dda23ecc69e,1 -0x323cecb8a02203c44ebf158d632a80d2a538ef87,1 -0xbe36d0a7de78f4a5c7f8defbfb90d37c1251f4be,1 -0x56e9acaf82754b80e29f499bc8108949f78c477b,1 -0xa270e204b7329de814346c56905f9a0824c4fd6b,1 -0x4fe47925b24739433aa55fa464b21add087054e2,1 -0xe63c0520910aaf1a2324d4f46dad39cc3b55ceac,1 -0xf131772381360e6a36581ed162523e339f6e1d67,1 -0xcad6915c3c8a875b0a6144b723997e0ca46293bc,1 -0xc556fabb203d372ec025da92854a67d6af460f78,1 -0xd273d3e115a177496fbddc8d3e933515a942f5e6,1 -0xc4bdfe13d6dc537e2a234c120d05aaefcc279f35,1 -0xa5bae4379d668517d6fbb14de06355faecf91ffa,1 -0xb25dadc9bae40bb57b8c13e75fccb2ea2aca076c,1 -0xcd18edfe46d5dd66b236dc3c22c2453ee9436cb8,1 -0x5b1bc9a80e0eff7c48d948a427f06a55dd0f43ed,1 -0x7d147a9b5a474b83d7a7b0267d2fd381a868c368,1 -0x12ae011cf58d33e6d7ebe6efc89e8876225269b7,1 -0xd4469b51c1b892b0e5868f2773b74f3b7539c0cd,1 -0xc397a5c046cd873af52e79048736a739941ec98b,1 -0x899253dc17319b44ea932453959f3a5a34aa0fe4,1 -0x53fe98769ebd8378082cedd297dbddb444ec9c4c,1 -0xf3a280ee8048047217fe93ae04028f3d21c97b90,1 -0x4459b80ceea7adf85611ec0f11b7a779fa1089a0,1 -0x18e1fe01de1de2b8c9b23e7be3db10d49b738d8d,1 -0x24a4e10d37b1ffcc1917b492688566ea4f74ea22,1 -0xe1da153088a595d90c7fcb6e915f6208d8e2cdc6,1 -0x85ce66b104462991c0138d35829c6d96a1c20a46,1 -0x27566215f066ea03ba10188772e125375d609edf,1 -0x8d29f7603d37bd47fafaeb7a050e21f9b623dfb0,1 -0x0659e219a9bba6e34d34eabf892de8674b91e4ca,1 -0x893b45d0992086ab7ae864bf80654402f6261b27,1 -0xcfd23b8e3dfe5534cf195d510dee2344cac93098,1 -0xb142505fc3d0a8c99ebb5ae72016cbaa5416ea45,1 -0xd10da56e41d1353a88a323dd3dc46267333af3fb,1 -0x02bf9d9885ab40a40835e137449db9600f366e6e,1 -0x65341d2b0083138fe978f747f2b12fce9a6fa27a,1 -0x9ca26730aa028d098c52c3974ab89ec81c74f56c,1 -0xeba25cfb398aac0b5da8a34ffcfa472ad8f6e60f,1 -0x0da35e87320c26e7aec7c4465067de0d9e37b6e5,1 -0x11191523124465e1b2be9cca2242c7b3e57d3a0d,1 -0x6d0816e2b9ba354aabd2d41f0ae5797bdc0dcfc8,1 -0x3ddd565121d57919151865300d3e853f10fa5197,1 -0x2e769e620c1384578cf7531b9b29c64448471cea,1 -0x1fe3db18f4220f924ba9f0606788bad40059c6b0,1 -0xba0089779d505689449783496c3c6fd7449c0d87,1 -0xadaa8d8edfef7905df2c6f5f5c825c0a7718dbfb,1 -0x2d3aa1b6a5478b4348db9b78a47ef3c52acf3a58,1 -0x88da36152d4691e8d4efc998ddb7b22fe1b16898,1 -0xdeeb76d5ebe18f1b2ea98871c287ea97e06b59b3,1 -0x5730a4ed5b30da679a12f23e13daadcc7b65e624,1 -0x7dc888c57d04932d18404c268a73cd7b018cf5e7,1 -0xaf075883d775d0e313949e339af76b2c3ce12765,1 -0x02b47aa6585071649096dc99da19e67f9154b1be,1 -0xefaf81b63ef63f0b72fb3655bccbe2b7c335a175,1 -0x0e9e263087906fcf6e49a2e6e70d890ac3754757,1 -0x383b82332870440ca6c4fc5db091b4132809a96a,1 -0x158b0a1231b91c2c2e7a6e048913b71549b894a3,1 -0x902c91d8ff694572814425cfe7e456fea23dbf19,1 -0x858538bd9d3f3433e2701e0ddc1e3d4a165699a0,1 -0x8441f889a817c739e07ab58d65094098c534ad57,1 -0xfc50b32e5f2199c27aac7e8c716f53f1c8dc5856,1 -0x61d0b688c4f6bd9014c16131b7b74ce35970c654,1 -0x3f029d5798e4c2a2320607c77ba3cb5038044ad9,1 -0x4b7bae8c8716a97191344a3269d0c75196811505,1 -0xb698be40b6ff59cecdc5472bcc6ba5dc8c087786,1 -0x0b7c4eef5e39d1a69868d7119ce1219f2a79ef99,1 -0x81d12c287be3c0212afbd4b4f09574f4c1a33c7a,1 -0x55535de387ff859105a974da0106cf2fe93e2478,1 -0xed62b641db277c9c6a2ba6d7246a1d76e483c11c,1 -0x77aeeeb7c9d7445fadbc17f315f230bc69f419f0,1 -0x6901e5ac5d1f6a3bc1e88b1d014b697e683e5c2f,1 -0x60a2d59554c1a956f8b88f3c4ad1c6427f28f17e,1 -0xd5929c85bab03db68b1c9c64b6c1bb606fd55505,1 -0x3bbf88f87e92d73414686445263fed8c29fdced7,1 -0x08675b498e158121e57ce6007ba058cecdf5514c,1 -0x29675476d6f6fe53982c62c336ac6c6ccee11e2b,1 -0xd50b8e22d6db3a69f2112b33907e743524d0fb83,1 -0x5d95baebb8412ad827287240a5c281e3bb30d27e,1 -0xb341c23fd8874b85287bea44e93d30bccf89debd,1 -0x2d023c5cc5eac7098916fd0270d07fe11daaa647,1 -0x6ff31e226a35b8d5fc7382813a072449ec577b1e,1 -0x5a7e5bf072ce374acb2a72e6cb105f9682ba7d13,1 -0x7d20884d6a0f26cec98ef5dfcb5afd6e5d386549,1 -0x28ea68195192b083e106612e86c97f4afa876b18,1 -0x30d199a7fa7a786996cf06d23f6a6e30e60d6491,1 -0xc7f354b172e53c0dffa8db17b028f634cd2efcbf,1 -0xa7c3945cc5fde9bac9bc43fbc09a796e39d2dd8e,1 -0xb3771d3419ab1063b15eca7a9ab68076ebc34b60,1 -0x6352e18c480c464334202ee322f87ad155b1bc34,1 -0x4dc8bc753f495f346cbfabc1b43cadf67f1bc741,1 -0x2fcd5b84e04ea940afff17173e67ec64376e1dfc,1 -0x786f377c1ea1ecf253fd590db6433b7f7b84d708,1 -0x2860782bbae75aa3aff5ee2b2aa0476ae93fe3d7,1 -0xc345870709369dc81c8095d5088a349e40b820be,1 -0xa77acff6b70d2a51eded73821aca3bc701f00e72,1 -0x558207de3fd376f7de3353eca26e181f0e179b71,1 -0xedf7ceca52bc2f7f776ba81092b8bc53215f6c0b,1 -0x8061405ea4702e66db4a2a0c0be5504ab4577cab,1 -0x86eb4fc76166561c9d8ab8b89870eba82701e226,1 -0xf1a4d90add6c73e70ada4205ceb88bcdc250996c,1 -0x3fb9ce956d9380eea5010415b21979790c328cae,1 -0x8b0b5f0d411a8e63eb6294051ccba4de281b05cf,1 -0x094e82eb22078fed1703342d96efd072f33b7cb2,1 -0x001f0e8d5eb2fbf14003492a61d2d20da451571c,1 -0xf0912ae44946bd40b2b60c93fec695803e882e5e,1 -0x4e2b8023ab52345818293df2cb8905fdd7474a00,1 -0x9ffe02bf8ac69ea2e666475eb6e89aa30e6eef7e,1 -0x9843bf9d99fdaa7f6b9de6f1c3c253c9ed0d35c9,1 -0x73cd3ff079ff9291892c2f89491a5c60c3e8d203,1 -0xaf906155a4e624c7d39f8f15271a5f8b01b3915e,1 -0xc0910a17b732e9fd89426c95f7aa8429ec616ca4,1 -0x4736b438d76d9eaf216561ebf8b67a6eb1360df3,1 -0xfe4703f50b9565b67fa28f4520baa46cd4521995,1 -0xc8a5e04987ca1bff06d6eb1c16926a6dcdbd9735,1 -0x264051d5d43ecbec3afee657b28448da20ac56d9,1 -0xb19ae610f9b9694eac23ddc8ddab62f959031ad6,1 -0x79bc997dedd61121164d6b300a6084b9e19520ff,1 -0xf261490b0e5ab9eff3f70af5f64aac9fa667c6dd,1 -0x0a945304d825cc05a9750641e21d78d54437e118,1 -0x1c96c981531c542100ab65d7c561280df43ff9f6,1 -0x52df1f2bc528ab8ba7b9211c722b62b46d7b982d,1 -0x801307b9f0bbf79a8dfb6c857c84e45a75b9ff7d,1 -0x3a7cc7722544b64c89fb95293023864a7efa5fcc,1 -0x6de4dec2d0d95c746b2f801783484efc8c2f2055,1 -0xc2474142573394b11298a637b6a616ac92c1f744,1 -0xf3c69588bacdcfeed8f3dae8d369d08f846dfd4c,1 -0x7e442ed9caa54ae689636c65304cf6ad81fcee35,1 -0x795697494b59794806420707ee606c02cd5bc9be,1 -0xa51d3befe1baf4a0128282163e7a7f3816adc6b6,1 -0x741f767fee9542608aa9d6d867573dd900637fc2,1 -0x24ccad84ef8989ae1412be57486cf4b809fce9fb,1 -0xf0b728eecad5c69d5f37ef43d62d28e8dfaefe05,1 -0x34ac95ea10cccbbf9e8d93ff5c1950b8205b79a6,1 -0xdf4639cc600bcd9c6a5f4d62b6bd7811f20142de,1 -0x092e0c72973530c76b20c99d2097409d2651b5cf,1 -0xc28fa76f1985821eb20456c8f2ce67543f881cbc,1 -0x58f2d2866ccea4533897dca7e83a805bd09cedc5,1 -0xa4f7962e5318fe28fb9def79844fe876acb48cf1,1 -0x87686fbfec03b3d50de0ba030145ff2343b84979,1 -0x5e1127be6dab460330e97e0dbb4912accf6ea178,1 -0x928cae3350c43df501ba8f6c2b132ab034e6eb14,1 -0x97638b7427a46c08cca724bc89a6d2b348503e7d,1 -0x31ef99bfe64c3019fe94884feba575d22897b452,1 -0xb9b912c9c976099c1f061263bd233e2e51340905,1 -0x9a5736c522160521c82d3c26c29778cd443fa5ed,1 -0x2f7a3761dc480e97306cc72a967dcae296bc6767,1 -0x45d36f5f4a363d3d716f2f9e5a04b355f14be99b,1 -0x45ced3afe67e06ac5f342d15b5aac568752606f6,1 -0x8d831af167fd380d1c0884458b95e3e2248ae3a2,1 -0x073017d201f8f7f7122cee51f6b9692723968782,1 -0x69f7106d6709a7d11b2dc2f7f01ff0a1d2d909fe,1 -0x466ac09ab6eb9be8eb2226284667e10067e55d13,1 -0x1ffb7a981e19e38adafe1bfeb1496275fe074f99,1 -0x64fd4ca23c8ee9e88575111a88cbb533c025db97,1 -0x1920408996bfe129859e31c8db482aaa5c20b1d9,1 -0x24747286ca54e9dea95e01f3a223034aaa0ed5c4,1 -0x7e788c62c9ca849dce399e90f912beae14424616,1 -0x0500d25538d73c7cb9ade3f530352a05e3e43cc2,1 -0xec247b56a193267f62a497e4cdd3d2bd26b1caba,1 -0xf0e2f156e4bc6e6234ad8420acaaf4e859295af0,1 -0x60b547c3b1bafec6da37879d6745920cb4901a45,1 -0x12be25f0bd5be3a78066078189a74589f67b51ed,1 -0x85d7bf2e84d4d010628c8440802e908b8402cb7d,1 -0x67c91232c0ae9e78bb6107191260dff610a62404,1 -0x79743678d39248a6d95b789b121000dad6fe683c,1 -0x13e9c7c081144c42fd439640cdefce906e67a633,1 -0xb853568d8ce3a66228e33a9d19f19f17b6cd2e03,1 -0x0b2bbbfa148579a38183fdec747b5a05ecc88791,1 -0xcaf784dad9da1e9eb69726e8cc12b92c533b2556,1 -0xf25a3fa34fbb8a3e13c836bf26a5eb96d01bc2fa,1 -0x8c4acd9c3e86ff0e551aa697c7946522c956b3a3,1 -0xf155d38ef94208dffb5d2332d58e17d008625744,1 -0x620d6789008180fc66af0ca3c926ec40bd3ee3a4,1 -0xe24e6c1f12240ccd5f0b30420ab4b7f9ac4e7b70,1 -0x7ff31dff93c89dead180ea1f7a41e562b7d36917,1 -0x5c1cdea6df8d57e42af7947fff52caf40e42dd1a,1 -0x052d00bb189ce78ae245826095695016dd67a63a,1 -0xb18b04d004434ef599ff8238aa1af4898e9c2f11,1 -0x27ae95656d5a423ff934693fe1f6f9638fdff0b6,1 -0xdb7a4d4e8476b72f431c40c35e39d33199fd471b,1 -0x51c158459db4001aafc0d4724f479a7d184e381f,1 -0x9ad57c5c93eafa5af2be9da37eecaaf5814f41b0,1 -0x029aad14f6d8312920a2072c947eb1b380e05de9,1 -0xa7543adb9e90c9f0e508c02157acc7c6361ed681,1 -0x8b8b792158e203fa189a18518735a14f59d9ddd2,1 -0x316a6ada41aed3d788dfe6b14a6c78489b00993e,1 -0x19bb5922bc24e78bf716287473641a577aa1c16f,1 -0x0946213ed94b78d6ff34e10e97009ad480c3d492,1 -0x125633d74dc8590dc5e72ae1fe1c9b8d02e56a02,1 -0x16ad18330be9884629cbeff863ae3d7c008964ea,1 -0x4c07f62c7bb6315aa70deb736c4030cb9c3f2a1a,1 -0xe50000934a2b8021a9b7dde8a065dbbae9ca2029,1 -0x5945c8dbf4e3fb4eee2acc31abc880fa762ff6d5,1 -0x6cf0913150159202de562659b42d3183bd730ebb,1 -0x94f666ff38c1c911b887c0a252f69ca4ef69c8ec,1 -0x1ffcb895d63701acc1c75aa16bb01d0d61739298,1 -0x0527a861490c866ebd25568e7494531d27ae7b32,1 -0x285299d7c378308544136964d12f355bc51d3b3e,1 -0x63e2320b59ae1669fb2881c98bae676cad4bb423,1 -0xf5a868a69dcb28edbacc09f0a00a9cbfc215ff6f,1 -0x7e75ae3093900f30994ddff50d8b74cd4baf1b2b,1 -0x52eeeec6495a2c7d92651c0a2cf45ea70558e41b,1 -0x1bb0063e666c8b6d635e6bf92bfbd33d37a64bd0,1 -0xed2f7cd45f1bcf530b1588186ce09faa5104a179,1 -0xab3492b41a1b5a9ca8ffb9393c071ccb1931875c,1 -0xdc29b42c98a51747503d897cbdaeff56954cf187,1 -0xc9e4bb320c212d4c7ea1f3d314449c6989360fbe,1 -0x4fd659f5d6280876d219559453669ec62cd91c84,1 -0x8d55ccab57f3cba220ab3e3f3b7c9f59529e5a65,1 -0xd2200ad6e4e46d045004759c5ba8bc2e39f71933,1 -0x3806a8e4c942461307020474c2e0dcc43fa7fac1,1 -0x349cb33039918abe1123dbb0b58125f0a13015ea,1 -0xc7bfd78f9dd1d23234c4c5bf8436cf20182df8bc,1 -0xe4d4be522e3770ed68ae20fae3f1f04ad65e85e4,1 -0x338db7d7429d561c22390b421ece52a2e27c841b,1 -0xf75cf146ea30383885ae090e658655500c872536,1 -0x18c7ae558036905747de225eb2dec423bd40a79c,1 -0x51bbd3fb4306dfc010f29d70982ae31e1248137e,1 -0xbfd2ae4797e47b79950ea55a978061332ad155e7,1 -0xb69eb0f1a7923443c3cbe7f9326258a9f8ddb24a,1 -0x67e5cf1fd5e5e1944731800c789ca1b17af81873,1 -0x08f69cfd7b3033a3a0bc345bf4f1fec844b27589,1 -0xeb608ceb44953ecdbf8b9409435a9a5a0972cdf4,1 -0x405e3dd7c8e81e03f549a28c52dd03cc7ded64bf,1 -0x6c027c1edd38dd5d3ce2dfc24d34121de1b96542,1 -0x4f34c582fe857c23cea01a1892cd542c1d7fad4e,1 -0x9475c4d8defa0205ed7b3cb2d46651199a3f19c4,1 -0xcfdb5c26b95493482ddd8aabbe75d2899f11b463,1 -0x19a1e55c51a39b5a890dd2961651a81a52a730b2,1 -0xc0f25f32392f72709de05f95f7d6dee88c7a0329,1 -0xd61d21c65988433e02e049a1d429ba07be981a3b,1 -0xce4eae33d0777bfb987c7ae650b65141155d44a4,1 -0x33d7e4ca66588da91a229a131af16b99e9e2844c,1 -0xb51a8fc482780cad0bb3822367aaf4acc9c02ff0,1 -0x12f1f79f9e219567c6f5dd7bcb63f5ff9eb65c1a,1 -0xb562a14db318c37196ed00ae5c08c0b81363f9b6,1 -0xb11a71af65d2848474081e5afcc97a9ebc1d137f,1 -0xc02ed0f067a9a3ea80c77fcc118c94bcee06de3d,1 -0x5ce70d64fb355c7de5f8c1a5bce0903985f66f9a,1 -0xd6ab3210442765d0bd806db6643da28d307eb422,1 -0x6d2cc555f81ddd9979cb802afabcca5329f3e753,1 -0xe9b28cbee3d82b132b0135e7b4ec3b53c037074e,1 -0x49f875c4e6c32ea22a1e715dffac28c0ff402faf,1 -0x74d73025f622777374e036dc28f242f7ebdeae07,1 -0x925319752ebc11c9a33db11fd200716befd77bdc,1 -0x8a1137f86d2e33bf6a1fb97159b0327bf1be19ff,1 -0xa9f6ba59697e14507c14815afe9907deda3784cf,1 -0xb864637140c2dce02bd2731c38bac206038abb75,1 -0x588fe5d1e150428e154527d13f73655b7d47d70c,1 -0x713d17168ebb0fea6f674e59cc05a787786ae816,1 -0xddf403807c103624d3ccee729a88103f3fb55cb2,1 -0x743f85acb8cccd8742b5a82b9ca0296296dcfa2d,1 -0xaaf9d78925f73dceaadc29feb25f76e63511b248,1 -0xf83d854970c6d7fe7a6f6d26872cc121b996887a,1 -0x1d6a1365b5fc88488ac7ded83977e8c3727d87c8,1 -0x7623b2fca031224add8e4ac31b220b8e056bf78e,1 -0xd087ab0be31e666a13ba27270dd36105aa6094ec,1 -0x4586ee094f0d1a3700ee66687ac33a682c226509,1 -0xdcfc3704b2826905ca1c117c262f6474d0cf6a95,1 -0x8545291dde86f401bb3f035b22beb51936c26e7f,1 -0x990aa8ef73fc356c84c8bf4598021b02534fc278,1 -0xb422c116a84695dd374d600689f7518efec1f4db,1 -0xf0e8fcd380b36ac524034bcefa5734633b5cab28,1 -0xf1f02d52ba537cc754914f4628005996cf038582,1 -0xe3f4884bbbd3c7aa680095e9de56a5b98461a025,1 -0x87b667c84cf5afe55aab034ffac69a92abe264cb,1 -0x2ab07f0a3ad83384367f7542e2212e18e256e8b5,1 -0xa880751549f264591e9dc74d017c7d8ee16eb2ca,1 -0x5df4abb6fa9130768b7daacf489dbbc7dd976c2e,1 -0x828239177b60a59e2e0f766b9332255f1bec9897,1 -0x85bf2b3bab317e7b81fc17bb1dc562dd3f538465,1 -0x32e70bed0c315391d9dbc9e60dc03745b29946cc,1 -0xf868869a7a0e180164c5162791a920c9b17d37e4,1 -0xfaa11800e3b81d17257f2b370b24be3930a5a324,1 -0xe308ecbb41d1d92d0a3d84475704c71f5c1829ea,1 -0xf5e0b259aab2b1d136befe44eefa6d7de85e9402,1 -0x4826c88b5d6d11cc8eafc78d1599cf597e415bf0,1 -0xd2d76518d7620bfb9189e5716eb7957464457da9,1 -0x9cfb24dd0368da75fd35dcd3c2a2883cb30ad272,1 -0x7b786975a9287cbfcfa2ba83f1c22c718c8348d1,1 -0xf30a10c9dc89f92bccfe2bc055cd499e72659867,1 -0xd9a7d489b2644daebce4250242151885e91b0968,1 -0x9c0ef7359b0615b801c3c60944e5b7069301e585,1 -0xa9d2249a479a6a3cd75575b55eb84784437d055a,1 -0x887fb037ca3f3725fe12c928443ece0280dde1e1,1 -0x104641d7e2dd196a46e8b6a3a5d498d880668c68,1 -0x8359a1832c846b38163db3bc11d70f4895162237,1 -0xfa98e9346fdabde1983e686534179391510143d5,1 -0x81f2072526351ec3053cac5026ac4f6a78c7cb89,1 -0xddc4166ccfb8f9c0a3836a7b6c33124fa9a71f26,1 -0x3a94e645d8e607dd65496428bfc85b9c0e40babb,1 -0x4c47ab777f1f64d1f3d6efbf1cc7ab5a5224af4a,1 -0xd1a7f001b714e13c4961909b9cc294d68d5bf102,1 -0x4a3b66b8a019181c4741fbfa53fdd1bb25389f7e,1 -0x9ff9cb4adf25a11368f6800da3408b1277f58ad0,1 -0x2d63700f76d523d5aa0a3c04492ed56ab3e6f371,1 -0x382f672b95ece16acf684ce05eb9665f826ff10a,1 -0x5d2fd14412d395a05e7e70de081753e3a3bda6cd,1 -0x28e792ebd27e27e47b4b83ce1054fe6bc46d2032,1 -0x6eb6984153d78f38345f1373abcae48a9e9f271e,1 -0x87992c28c12e818cbf8bfed8efb61158cace4e46,1 -0xb0e36c97ceedb548d98466ea1c4dabed6d458d5c,1 -0xb83fa1b4154f15ae4e5c414470726febb0c7f5a1,1 -0xed4f5cd9442063301f98911c9bf5431e23504bc4,1 -0xd8b35dd37899812a9100b62dcd1e0b4b911d8405,1 -0xad070cc84cf70c0c8154305c5fabeb05ad804676,1 -0xe3ad1a936eb7c86617bce4b370f8674258f79c79,1 -0x93872e77b0a51fb0e91dfdf8ba3037722363a205,1 -0x3958cf3126c88ff649564b2db51a5f7e829e751e,1 -0xeaab59269bd1ba8522e8e5e0fe510f7aa4d47a09,1 -0xce7bc6046d9722676159ced01a52fa8812e1c306,1 -0xff1b4990136303f3772799091e52cbdfb9ab8e4d,1 -0x627d45c82d218b7e2ee5cec3784144f13367b323,1 -0xae15ab7bb0a56846aa688a4ec97c56a858f4173c,1 -0x7f754bdb5e76deffcf035e764922d71439c3e875,1 -0x4bf16c55a746149f6a7c79a890fbede63ee32e7c,1 -0xf46ac5d16e5392d6539f1e7a2188b280197db7c7,1 -0x47a11e5d824d5d4c4914b1ab2399baa6deb808e3,1 -0xe289298ba8e762be64a12bafa55c13a57e74f77a,1 -0x427fdf7ffd5e08a74473ff6b326bd730e00a687b,1 -0x442a174151a9e025ae5de9cbe4d587454c9d5b03,1 -0x4060587c17df9957362ea9313ded16759d89d4c8,1 -0x35f412f8d9b6db48f980326ea84ed6c6b995f18d,1 -0xcc221768137a38325d5cbc3e1bf09e323f4b612d,1 -0x2c959d590574304c61cee88144c3805e294e9528,1 -0x4d2b6b28d39512245392f8e505c438207420a895,1 -0x79cb9bd6586def6af059168f9a303738b1aee9fd,1 -0x2b24e055defdf87498b3227d8f5e76bc1e4707bc,1 -0x22228ac41629263e487ac4f7826fea74c049d570,1 -0xc8fafb75ff350924cfaf970cfdb3e38ab7191d9e,1 -0x2186a623fc5255685456bf453ca4b552a9b0730d,1 -0x6581aa92fb325280252fb7bfb5c58394ffb234fe,1 -0x131b05eb1dd0d8aa6ea7f832b885ff80cf67ba38,1 -0x98b0cdecbd66d8db4fd450ce608adc67e9e3dd3a,1 -0x87e5059731742642273b33eace176735ac8467f0,1 -0x6f6f89df394c65929217c8feafc24f268f3780bf,1 -0x34a54fcf95cbc590d3c8e8cce19485a33c6d3828,1 -0x4aed2a0caf6074d79675165ae170bd639994cdcd,1 -0x1d3ab981ac3ab27b35e4abaaa0a4de1c48b04c52,1 -0xe7c333e29a8d8b318dbc9abea7775974ef880c3b,1 -0xb98725dd8699ce468536567476299c43aaf362d2,1 -0x41320d3d256e4b9fc59aa6689a67c91c333851f7,1 -0x2b759fbdbe506247a4493a3e7aeceea35fed6196,1 -0x4e2a55d3553549ed7ec1a8c6834ac871b264bf2e,1 -0x5d8966ed231d7a3c179732f49d88e894cda0908f,1 -0x102f831e6ce0d9018871e5b5f98e574425ecde4a,1 -0x8ddc78b9085ea28682bce68074d75f93f78b5b47,1 -0xf59732bc8e1d2796f282957ee86e106ac94ff649,1 -0x8df01af298efcb47d7be2ac7d8a8c2f645cf7888,1 -0x076eeae11e645d27b4a180d74982332a71feb660,1 -0xb1b65358137f276e2497e1e6360ffd5c7a498ef0,1 -0xa18375d9aa55f86458770d4541e39f660a68adc5,1 -0x6c0b9f3868d2870f69315bc9e68af0ea26ca9e3a,1 -0x0e38a6fe82169a3c5bdb0d3a09ccb23f30c1863e,1 -0x425e3076f62c405d493b4583d8b9074d633e33e5,1 -0xc41929ed736e3a0eca4fc0ea714195d64fc169b3,1 -0x3219ecf31af9ca9b84414af86017f1979b0e7cd7,1 -0x3220a1b5d989a92d55c2bc6ef14f139ba0aed9e5,1 -0x2e9c12fa49e59b6b93aa059d21518652a7bb37cb,1 -0xdc259b798f1e35865115295eff10ef0ad894f994,1 -0xe6c1182f5b4a10a603aa9fe3d385c62228330c93,1 -0x8f7f053eb8371f9c1fb23133c7c3721cbee87ee0,1 -0x037e2dfc7cffba5c68944e2a286c6d46f511f691,1 -0xf19d6a990d514bdf91c67ce38e78f2abdffc9e4b,1 -0x039a5bf4c4aef45f49dc44e85ff4a05a2cd61f14,1 -0x99b63f4f0ef103a74e8f43abba5c87f212eb5dbf,1 -0x4c0961fd98fbe23379f9c3386137f1fe0f633149,1 -0xa208fd743a21b31b992d0de2478974a1c92737f9,1 -0x10b1b1ac4c7e4a07b96fefc397cedad8ef2471e3,1 -0x1c6f1a832e73949c97fe335a98b6a5fc3c9c29e9,1 -0x564d6e7d896f4810ca434308cf65bf65133b64c0,1 -0x2a876d0667d81d2a8a3a683371f828a8ab95f487,1 -0xc7d6d1cf80fb62f06cdf6a12bab635ca8ac19378,1 -0x2edd0804795966d2aee41a21dc166d048f6215f0,1 -0x5d50d85ebf5b7ff52ef24f20c468769747af1f98,1 -0xa98b5a7526f7b4bc56b0c2071115c8e6aa1c9fce,1 -0x7049871039097e61b1ae827e77abb1c9a0b14061,1 -0x70cfbf72a1cae67f3f95caa8ffa746229b3de0b0,1 -0x23ed0c4e2f2b5e67ed75cfb72442b4171c6e5eef,1 -0x29b1b7cf7bcfcff73ac19e5669c6be8bfc4f9174,1 -0xb8b287ca2eaa93db6f625266e5d4e6318ff23e30,1 -0x052d45d6e1bdf9f59620963cca05038c06f11d07,1 -0x4639da088bae1b4f7ebb5122a29dbde4032e0b79,1 -0x0abbda1dc11d99ca868878ca050da6036e216577,1 -0xf2c34e38a4415f198f822bd54b91eae603faaca8,1 -0x17663f86fcfb22d5f64d9df0a3d65a95dffd36f5,1 -0xb1fa25350cd089a251dcfa082612aa5bbee0ac3f,1 -0x359f295e1667214bb18bb78f0f721604a34dc0a1,1 -0x6c6e1a4d4d3417ddc8cbba6bb896dae41c48fb08,1 -0x3530aee16f230e127a86ef13ce7a7a0820e9e579,1 -0x147cc3cfddc294da42e38216db74d435be3e332a,1 -0x895d1025937a8b65386e1fc2fac839d5a03ec883,1 -0x4fa5cf05c793c8d7818f64751e4c842d17e0a655,1 -0xb2edc53ff82b9800e748b42ef2074bb0b8275f07,1 -0xa6a60fb56889a469f44fb4203dcedd55803ee793,1 -0x038381a8a6e5e39b981680f02c27a404b816239c,1 -0x7b01429e5ade22c5b4002f0da287717e8ad05375,1 -0xc97db897ad76f793655cb786f6cdddfc0dc7682a,1 -0x0dcb2ae1df83e6fdddfc45954298507569873a73,1 -0xaa2b1daaaa5d376d48cb022e1dfc4c5ef9d0efa4,1 -0x88ec2a956568a71bfedf5bd717b4628ec29e2679,1 -0x3d7618c825ff1b3a9a8694567f8dd81ea5820b8d,1 -0x423f06e9a0a68958a2e1f91b5e888ba33b53de63,1 -0x175680d5a4df0417da797c50c9f2823a1a254dbd,1 -0xda43a90e8fcf9e53f54ed5eeacc3a93bd731f406,1 -0x1b83c3fe4d40ceba2b2ede3f67e7f35385841dca,1 -0xe0462111b7fccc81207560c6dac2847dc2168aa6,1 -0xd9774ecf2ff8196ee1201c3ebde1f77ea4705f87,1 -0xab870e4afecd2f7b7fbb4832977735bb3c61ff59,1 -0x21e93bc092c76737400c8008d5578cbd435aa4ec,1 -0x13d1c2488e20da97553d05f57275cc993230ff59,1 -0x76fb13f00cdbdd5eac8e2664cf14be791af87cb0,1 -0xadde710ecd94797de0d2280782bab55f6e989e5c,1 -0xc6e2861d007dac67e8d4b62c6620ed8d7706404a,1 -0x562e1ea8a68f1704a0dcb3e42718e63b4c0d6629,1 -0x0f4a98a05f7201ce375525723e3cd841804766b0,1 -0xd4232f49540a95962d43a282b4b62c6910558e65,1 -0xe2fd2c038df8030ccc06abb9566dd4fa133759d5,1 -0x2ee5c84a564ce7b5b44af668860633a7f745a62b,1 -0xbdfc5b50863727bdb657f6b527a6d1f1543aa976,1 -0xf3e88f2a4593300d9c6251567df093ee2660f260,1 -0x13a7a6a46a28143382a97c0b6e4b7fa6865d3d59,1 -0x226308bdb8d6b7cabc0bd8ee31c71568ccbf12cf,1 -0x869cc837a999c3ce0af1b02c2c2ca444ecc8ab74,1 -0x89b4b7b597d9d091e55426b7ce7fc722577de1ec,1 -0xa5dce742f3775059d9406342d2ecbb0ff8e3a3c2,1 -0xd56ec5610bf9884acf50e27ed0fa2c78be747ba4,1 -0xd7272f37e384b594e885237aa29013cb49295e14,1 -0xbd52159f39f400da5c15c39c28cb320914b0b62a,1 -0x7af74883fdb872b39f8452b5ccd1721af294522e,1 -0x9b5fcc2a532280e1f435c0bbd5d8f1b9cf6bbea8,1 -0x0e2d5d46cc4633c0c885c078465941a8f19c5714,1 -0x081591764a13e72aeb6bed098e7da34063ea8ac4,1 -0x9fac181f3a7b1816e5b593b2e5659332d87d8a3c,1 -0x51a528da1083ba23943ba2092ee2a278c8715779,1 -0xbd98dc6799326f18100ecfe3653ad6129ec75e4a,1 -0x5c6aeb200225e97b6169abf348c5e086266e25cd,1 -0x3376bbe8bb5df32ae90a1614a9f68284d3cec862,1 -0xf6a83d4af6d84aa5a19d99aff4a5ad52256111ee,1 -0x924f280b2291b5b8ec8453e12dabde9b36f5d67a,1 -0x3bec98c217f498388ae94ef815a9d91b26c81300,1 -0x841f4c20ef4f427326c771e1931988a431da6337,1 -0xf279e7a33fb76387c9c574230bbcb8d58719efc8,1 -0x2b6732e457028092147683f7d983dcd4c224cf73,1 -0x3fa3dd7b2fcac3db09fee64de4cec8b01e17275c,1 -0x6138cca5441bec2e4f30c6de11744e70a4d9b252,1 -0x3202d7ce403fe827db73f3051b70bcd59d93095d,1 -0x4fd1c76d6727bcd6e496a3cb9617a97691187f2f,1 -0x85e16094d42571edc16d4a1c4ec05d06e8729fbe,1 -0x8fb70bc5f07190de24d20e7152af6d052c2a757e,1 -0x048edcb9ab96adb9138c8eac53d3b2c4ea9f0867,1 -0x973253503028416c510c5b7da55fdde5be661149,1 -0x85062c1561db3337a23c316c4422a677306a89e1,1 -0x53032baf62d9825ee956dd06ddd7647d02c8bf30,1 -0x475809e91085166e1757c5d2cee1e1a876aec092,1 -0x22b72179f9bc780144a0f15132ae097570c68a9c,1 -0x6c7d083cd4166e38e02509369bd36c826720e89d,1 -0xd28d9661dd8036f8338b1018f76a178c37bbaf66,1 -0x6aadfaf5bde7280c06f4e8606c3f28d1e092f8d4,1 -0xe052113bd7d7700d623414a0a4585bcae754e9d5,1 -0xc137754cef0e22ad0df01369d37e971c0acac829,1 -0x1160f5d8eae861f1aa8fcabdcadad57083302d7c,1 -0x405d4e696e42dbae1a6970ebd599482323269ef9,1 -0x40ad7033340eff815cd8e7622290919454dee9a0,1 -0x1b76a43cdf09b6a6a967fd1d626484957c830acb,1 -0x27f935c4c4a1c30b51c761e96c9b51c08a557765,1 -0x94042981fbe827237acf0d49bbb51fa8c1c56aa1,1 -0xf83fd67131d164fa77f049ba1f8a11494db98ade,1 -0xfed360f407cead484324a4f1c58fe998598e87f9,1 -0xf811d258066e6eadfe51a8571536ba16c4f29c62,1 -0x1730c092d6a36881d453e262afea370aa5854627,1 -0xe4f3502eb0ceaf6b66d0e571e493c5607ef03ce7,1 -0x5f51b675e58fa3a4fa7c9dc1133575160c0b5018,1 -0x207f4b5efce0b8133d1f6201a0e2d468b24e58ba,1 -0x88dca96d8a71ec6ae86494986a5af6c3aa685819,1 -0x7eb573e0f8a77d403c9320f8a0b7616b9c3d8d91,1 -0x5ba5e1366e06e67c26ef2766e45239b36fd748ff,1 -0x7a03d8d970545246cf99cc5bfa348d6dedae2977,1 -0xe0b77f46d082ed76ecc427bdd0ec18fda47a245c,1 -0x1afa0452bca780a54f265290371798130601e23a,1 -0x18d38d02fb011e1e3179afc96d2d3d8374cae51d,1 -0x3bdf1b3eb857021330bd8773966a401934ba79b0,1 -0x18c40f37ba2c0f56cbe43b8d283b45c50b1e91a8,1 -0x49ec8c6deb19618fc10e11e12a2ca714683d1b3b,1 -0xee92308a642b6e02f47899e4058c1fa36811c534,1 -0xdd400391f8067939f1e3e45d0b1dfef3a30f03ce,1 -0x51efa5037e0fbfe3ba4d488cf842d6c9bd49faab,1 -0x0ef35e82fbcb3ef976743b249ebe3defc9f972d9,1 -0x36d191b7d2b9978cd5fcb9101a3b304802539c62,1 -0xabcd9085ff656c8e81689faacb661a8dd3b0403e,1 -0x06d9211066c686cafeb93966512a4211c82b8571,1 -0x6b15dedf9c0d3c1a62c13397c3d88986d8503a94,1 -0x740b2ea9b6c4b895d0b04c762509c0ddebf5c610,1 -0x1282238b6a86be85fd530c4464caeacb702851e9,1 -0x283348de0bf954c5d932023601f0565776f1f5ec,1 -0x17d7dfa154dc0828ade4115b9eb8a0a91c0fbde4,1 -0x2fb45a16551855628400dea0a1f21c4ae09113e6,1 -0xa512376cb9c24488278d1f04e613af92722cfa75,1 -0x67239018dce99e41f451e5a88f0b1b35c1fc09cc,1 -0x49ddb3dde49c65c1b260ce47d493caa6b0b43916,1 -0x6b3612841afda6f729b9013a727d85a7be1904c1,1 -0xd3adc755fa093d638782d2ec813edcae0ff0417d,1 -0x06f0bc5e0bd7186045a22b138d0664cff4451f11,1 -0x4b9acf924eafd2e6d87c20626964df5212b9b10c,1 -0xed7b1a5305756d9e1fb16b25627635e709616ae8,1 -0x1fbf48ec45adae3e4d21da30d271fdec4267b040,1 -0x536d0090221c17df5436d15580f19725a7c4c972,1 -0x79268f3af502d0f4f5a8298f719cdde70b9a88a9,1 -0x7e83719a30940da349ae534a4658ab46045ccd87,1 -0x2b5df607597d9c6f6979560b6bcebe2a41d1c59c,1 -0x4bf9d5a70094bef9a6e5486626c7e1a2f6432d81,1 -0x82c6eb101f7574e738dd26519cf355a256720e7b,1 -0x4960956bcec3a639605229dcd649859691301fa8,1 -0x734d25889baf67c62a04d43b8473fe2a979602b6,1 -0x7421fb3e4a09f50f6137763370742606854788ea,1 -0xdb540c282eb3bfdff80c75f00144668bbecc5fbf,1 -0xe069a6dd9fa00b67c52d7f913fe445bf63ed529e,1 -0x0156d25cf7b384a3558452e550341bdcaa5ea1b4,1 -0x4f39f481dd0f76d7edb4bd0d73f419c5656a9bc8,1 -0x103d9b0f8a0ffb9392e03d91a70ef50ab8a4c632,1 -0x559c06d22225b94f1f146ef0a77279a79b5865c5,1 -0x7dd6248c55cf396995f5d209ab7bcfa4dd5b3cd6,1 -0xf979ae153b2d0873ed8ef8f2b815f80c50aa1c68,1 -0x7245b3b23e5498698efe311f8c936adfba809d91,1 -0x2fab5c946b855bb3d535a74c6d247c3452fd4b18,1 -0x06f4e545378dc9697df30f85b049621037f48176,1 -0xc5f996612de71fc06ef9658cde85727b9680482a,1 -0x417c8c2d36b6fbcab9fb14cfe7ff457cd28a399d,1 -0x9ee56565ccf36579a65afa9d62479a88f1b2f620,1 -0x17b3db750431107c812e313808360485aa93d0e0,1 -0xc417857f4a3bf58df110b763382a9cef8f60cbb8,1 -0xe0be498fa6169efd9df0c60c67dd3999b957a328,1 -0x8b20c281a96648b86330bf9819e10f71b6e67c0c,1 -0xd6f82502f20647dd8d78dffb6ad7f8d8193d5e29,1 -0x753b71abdb88ab2856637f7de03c4b323ef8328a,1 -0x6c31b772cc57cac99c85d2d0b0df8e54b07a7a55,1 -0xd2d5ed4be0466b8278ed0fba9d844cdbbdbbdd9f,1 -0x385f5c2b5e3ede4b3503411a8a20539267695a11,1 -0xd3270fe3c8edd8295532f7e68c665abeb22e42f2,1 -0x90460e088a899030806069339261b34b3195764e,1 -0xb81b7df968d1c636ba273e7268580546a881c254,1 -0x61d8cdb5ab17e6fbd6168af30a9074c2e69ae491,1 -0xcc3d988e05a833a5fa7763bb545f06cc757f7821,1 -0x51283e0d48bf8251c8b6a2792424112e1de6feb5,1 -0xf5ae7ad0c09afaaf57e39b67c9587ebdb588210b,1 -0xea323bae90fc37b789062073dfac9f08f77baae6,1 -0x1791f745823ddd5cef25a0a9947a8f0eadad958f,1 -0x7845f6acb6c82350528bcc8244257af46b365a93,1 -0x2fee8a17edae3c9807aa42b8cb27e448712ac04e,1 -0x0289fe4ce9fed141551628546a79b80c8d33fb5a,1 -0xf2ce5bec69ea6cea78a4a3f018a7cde8a6e96142,1 -0x98755fcf2203e2a4c93e138c30b24c2fa138cd71,1 -0xb7f3431b4acc6b9eae7d179aed3383f21bf8cd84,1 -0x914b3363d31546de3743d1724a242f4616f9c597,1 -0xe330e0b1c3e454a68a6465a2b48ba8e6dc0d5707,1 -0x5e4e7b3718d30121158f1897b1a0c54ea4080be4,1 -0x0e4b2db181c4e7c29f5b822a6e99d88dcf551748,1 -0x093a6d40cc473283f19157df71bfb623dd13a945,1 -0x7da511d8f3761638bcb4d3e1c13146aa00aafec1,1 -0xf57c8cedb1bf6d83f0a80ba7bf88563e2be8a0e1,1 -0xfaf421d4413e51b3427e9d65cf0999f603da5f63,1 -0x10a3b2ebe870f410e4604b11dcea990684733633,1 -0xc517d770202ce9f7bdd4dcb69c12aed285c73533,1 -0xb73a795f4b55dc779658e11037e373d66b3094c7,1 -0xadc80251c5876154c4dc94589d17fd769d5ceb69,1 -0xac5e693e5e77fc9418b4185c88aa4408b9521f1e,1 -0x7cdc15eba13609a244e96b6b9e4c4a95f81ec953,1 -0x0e5f54d12ce44d39c9e9d07cbdb553f872a2b859,1 -0x63b7d0006102e672e6936fcfe6197e4c782f51d4,1 -0xb92f55aa40e354eb09207fbd6c0f60bca7608c7d,1 -0x274166ea2289f01c1d454e157f6e1994d373177b,1 -0xe9470ff8e7758eb58f00e4816243d5f6e4fa0838,1 -0x3e1177dc99ca431c671bf9db67b53d9e0917dadf,1 -0x73018870d10173ae6f71cac3047ed3b6d175f274,1 -0x528d80ce96ed800e239d543971b2e40cc7550749,1 -0x44755076e342d293bebc86b25c3f11c754f9779c,1 -0x3f63b8d33454c007e61500990027e2bb4a7ba1cf,1 -0xdbb9ed9409280b20617a6f955b1f8e3044ed377e,1 -0xdd7d584fdaeee2d65286060ef0265994e095d8aa,1 -0x3f7f511fca5e1dcde1efc9f69c4002f388396534,1 -0x1561c3218ab5feeec5a0a7b817596eabd257e5a3,1 -0x3ee5f7cff0b88e754b84d5dcce6ceaa1c423e53a,1 -0xe1e73693030c9f23abef935fddd216cebe74817c,1 -0x833567a60b26cbc5ebf7f091312514e781b597b7,1 -0x2222c84b5527eb220b5235e032baa651dfde0f9d,1 -0xc7a07c73ee90c7eec4528215d716053242dc2852,1 -0x82e133653e5069a61062b28795ef19a99a3d2c75,1 -0xae4c1ff7d6120d6e157b6fb68c3a3c3ab8986287,1 -0x46a2b9d223fa2d959151d85e5732d985b2bfa92f,1 -0xa6254489f1c2a146576ae0fa29bd2f58ce577cf9,1 -0x34e2ad25fe2c4d97ed167566c17bab6470e5c157,1 -0x35c98c409663813462787031189b46dfa7aadc60,1 -0x213ee0daca7e11835ea44152802826707520f9e8,1 -0xffc07e0e10eab7c8c3e0635ccede06240f4f32ee,1 -0xfad5d8ea727623c3da373592efe8a206ff1f4280,1 -0x5408e156a7fe2e707d9c290fc1df042a02599c96,1 -0xd55de9a32e1eecf2192945141d3235f21bb43f46,1 -0xdaf49a4cbbb70351589e72bb8177398489da4eed,1 -0xed8e924735f590572361b52657abd9a3260f35a0,1 -0xb3c184cbd48c757793c5c8403c2907b7cb93981b,1 -0xed31347d05ada4c35db6abf18f2e7c978b33104b,1 -0xcb8fc1e0bbc295124bcb5da6f7bebbd23ab37060,1 -0xba075b7e3d9274459e592afa2f7daf41efcd3359,1 -0x7f42f06764f5943ce467325431f27a7bff3c7309,1 -0x1165ba078cc3ae8fd41f2d745b3de5c09be4ae78,1 -0xcc60ef872fa037b12d6bd64fecee1beb3ecefece,1 -0xfba235a48f3189b3b689089b30b0c11a7881c84d,1 -0x52a57f1922dc511186a1cf87da2266ce61e30940,1 -0xb120a5f3c0fd740da727c58cf17315360ba59a7e,1 -0x8f9be4310f9abb0e5843cc6363908c9b01dfeb3f,1 -0xc6aae6f389e248277eb9bd926755404d4623d4b0,1 -0xf0d4d7fdb66a75a750a4b8a5f7dbec6957fbf200,1 -0xfe03ebc82509e6035bd792fe2bbe26c6252f74f1,1 -0xca625e8dfc02b6c36c6d38d2dd65106afa1648bd,1 -0x4fdcecf3118ec6c0461206d0981fa086f417a07f,1 -0xd13816a75472aab9419e665add6d8bc88df3795d,1 -0x2e682257fe59904df4fa89ac0f318ed2a7111612,1 -0xaf5d090ed0a925f987c08b07b1a0dfbe9e54ab26,1 -0xf5e2b30228036da9e3927cf9551f43d46a8a52b7,1 -0xda8b5366282134760422f626e424bd8e269dfa96,1 -0x1f59925dcb315bb3adab3f18277c456ab73408b0,1 -0xfdcd06edd66582102ea8e8c2cb1fa271cfec8dfc,1 -0xd9a6808c0a073656d24041a42e232c2c76dd169b,1 -0x7b1539027fec23b1efb7da421a354ea01385389f,1 -0x012118906635d371c5f917c77bd7ac0d5fff4997,1 -0xf410648fd83afbcb7eae0fa0c11023388c293584,1 -0x687a016645fa2f78d56640fa4a04600b744d4c7d,1 -0x3f6857b5a7830c06fa48a0efdaffaa70f9757d07,1 -0x7bcdec25acadd8ad599f402cb945727401f61fd5,1 -0xa865f0d842a3582af8f0eae74d646151f2d2e980,1 -0x0fc2127af727c5dcc3b1110dfecb7d901f9a987e,1 -0x38703004fb251859b3c400a08c0a53dedf0c9c09,1 -0x65bc8ecbb83175d6c0471946f2672ae35014e253,1 -0xabbb8aa2e9200d67e4097796fcc39353fa0b4864,1 -0xffdc52b54f14e04e66768d86eab5554f08061139,1 -0x09516aee75758321c92de32fb6789307e20071f9,1 -0x71a7f8c92133c45327aca4189b03857319ed8d79,1 -0xbad858a0cf09f210fcf35cbf83569178879b47f2,1 -0xbdc7a955505e20410061744f556f6dec761bfb8f,1 -0xb290785e590760fbb9c56eca157b92328cd66d0d,1 -0xb0275620a18ba88121f23e76e3c62f4f0a7c776a,1 -0xe4c4cf407b89835ff9c0717be6423efc1a4504da,1 -0x4051121907c722ec06562ff73af58b5e91c83de5,1 -0x1f4952065cdab23cfe208e317ede8bf92ae1f433,1 -0x65d43d26d8040b1d579d61ff0f25cf2b4774bc3e,1 -0x109135c783ed5eaa97d5e9a837fd1a40ed21716a,1 -0x3725007c2c7186f1c8e5733ee9a6c58d3ec2159d,1 -0x08064f60c55512f939f86929d79d004933f92858,1 -0xbc0686f687b5eeb027c60830917e38659f7b34e3,1 -0x0ae71d559d0463129df5e54daf333346e441e8fe,1 -0x54b174179ae825ed630da40b625bb3c883cd40ae,1 -0x3616d598780e223d0ce17af327d402b95ab05a39,1 -0x33f8ce907f85c3e7546effeb49e705712154d4e9,1 -0x97061784e145580720eb7c4bb294f9be445fdb7a,1 -0xa8f8594d91e6e542bde9d7ca12a98ee093366f31,1 -0xf9545ff91748662bea9f2659693a3b6c2b912931,1 -0x28ab42d3d52df261cb139370ce80015eeaf81b81,1 -0xb2e7f7cf519020c8b6ff32a088fec95b03ccc715,1 -0x4af3a57a6ce3fc4adc593a604c06732b8358f598,1 -0xf674099c77321b5d8371fdd2d6b429df0bbefd1b,1 -0x90d91b735f506630a73e2b02ec5247b93e67ab21,1 -0xef62dab1e70f596cd354289c5a9192038f938f6c,1 -0x8d9a7da9b453f2a28a676fd70dd8cd622077068e,1 -0x821ec1bd94fb961315cab6a1f9b11d506d68de12,1 -0xeeb1d690d008cafb8363742d4357a18a5a4faa17,1 -0xed35165ae87d998093b179f2770ee9b1e498edf3,1 -0xb13721104b75281c1484b2b0155ddf567d628cdf,1 -0xdf2903057af20d9c2e666820ff306fdda0b8f157,1 -0x848c72660955bd9c360298bc3f0932f0a9d409a4,1 -0x37df6753b197637e10876263443e4e1dfe1cbdd8,1 -0x589f8a989f515d16d43a263eff2ec99878784f06,1 -0xc055de577ce2039e6d35621e3a885df9bb304ab9,1 -0xb0d4a61ab14e6c73df8ec47c5f2b9c039605bd87,1 -0xf3af0d18fc596b9317882592348077b3f9c210f1,1 -0x233d1552e7f31185059f22d4c6442c98e94de2ed,1 -0xedd1f30d69898e4cb710cfb47c6114d31e6fed06,1 -0xb26fbb2d0777208cf9d92f0c0bc895c9155e0ee7,1 -0x93275405aed13b011d3399b2bf56a6ee6da5f803,1 -0x9c5f7ad0e573e0d679a57bae2bb3ddb0d346d88b,1 -0x6f2d8c5400ffd9f943baa9357a429e9a8bf42957,1 -0x19665de7a7ae238bbd83917f66c33f16a78c78ba,1 -0x194858bb661b0ade2bf4fe6cfeca83a8712c2b6d,1 -0xbb646ee5fff00d29d1b998517f51775dac070bcd,1 -0xf727a2a98afd66f3d3afd56577b34e8a6ed6c33d,1 -0xa3ac1b248b7b8843e2f97dee2e5fa5d6b4895b8b,1 -0xde6bb9a3ea0825d1ae143e3b5dc9944e0579412a,1 -0x001c781f486bd7fe9127bf64c89984164de43490,1 -0xa1b07fa6ebf476eca992b852c9a9359af6c02440,1 -0x774dcfb3e95e3b555465cbe84cd61469e9ee07be,1 -0xc823d02bb20cbd340eb7cbaf7b8067c90da1e704,1 -0x531518139717cdc8fdb013bdef55bbf60b379bdb,1 -0x890763472cc536f8c8bc14bbb87b6ccae8a0c2f0,1 -0x9c9d8f330ad7e136f60b1adcf5092b24a83dae0a,1 -0x1ba8d2bbce4c2fd4885f032e298c80ab728504b7,1 -0x718eb2ac7046434a4bc8268527e1123aecfedefe,1 -0xfd90fae3cda71f06f197f2812c3cb04cc221dc3a,1 -0x26a6cae8647ff06f96b19a67bca2ae426288fcb8,1 -0x3ab1af482fc59834eb23bcc9029b7b5fd206a511,1 -0xdfcdce56c884115172eca935009e697603e467f7,1 -0x539690733d0d86dbd54abd47b199585b18aa7e4f,1 -0x576c70a0cb4cddcb39c1f1387b400d1ce4051194,1 -0x9b167d0f690eac2ae8ded4b5f053d0c7e8b4f327,1 -0x132a46c75cab834a163ee410667c728258544cc9,1 -0x364e12e1ec3f2b133af5fd803e15c8e2f297b8df,1 -0x7dbd0493d10251a382e339bf127286f4ce644e3a,1 -0x5abf2e4a4ad5c8d8a91efcc17da09250fe9e7285,1 -0x99d462d829e044508a458e46c417d08d783c14bf,1 -0xfdb502bf6fa670304df571a47b3d841c976345cc,1 -0xd9ece59e9d08307df31db4a945ff0a1c33b0ca35,1 -0xd16aea911a06f2faa7b7ec616f0b97edf8a1a579,1 -0xf5185e020560db95dd7d6001ab73f5a6a7ef6007,1 -0x22e740787050829a49fa4a288c45aa61fcea983f,1 -0xf4002ccc141a6c5125326f190f10304e4cb06a01,1 -0x4557adba9ed5249a90c6aa5af855788414de2f15,1 -0x5d8bff9300b6944cb2a2b88ae36fbaf8ee820afa,1 -0x7b39b745d0898b084a560c839370f85be33eebb3,1 -0x994a61593ffe4ca11fbbf6a88301ff6b63c87d03,1 -0xffda881000714677d31ecb2744ebbfed75b4f8bd,1 -0x077fc167a043b0293b2abaeac35d6684c731f560,1 -0x49d007ee62752718541691ffcbdf4ee46c407752,1 -0x4c22cf23fae027174a5a6451016beec9aec63c01,1 -0xed9555eaa8924088f56f3474d8de50e78eb38c9f,1 -0x3783302d7e0ac25ff3b03c4f53dcc21bf921273f,1 -0xa7550955bacc71cfd5ca3b7752299544f92d4266,1 -0xbb8ef7d895ab35afda9884548bbad04ad2f5f0f5,1 -0x3a73f9985cf6795190a15ca18bd0240779dd6396,1 -0xc512d8bbce4dd676d6c0e1f7f50c67ef17365c86,1 -0x38fccb5aec574934a3f5a29951c91867e84f6314,1 -0x144b6ab73fdcbad8254588e291358b25fa658398,1 -0x92ced8e2cc9494887f98368800c29935443e67eb,1 -0x4a80465ed07e0611845b467b44da1c7898f72d86,1 -0x7693f5b7e19dbea27332e0069216b09d927a3609,1 -0xaa71500301605eda3ec70268c49c10c42b1cf117,1 -0xa0bf4bb6b2bf61342f37234756d15306339562fa,1 -0x283f6056b5097b3211fd7cfb0d44a8c70742f850,1 -0xa5271bc240c3ef46c697799038b58d3943d871c9,1 -0x862219afead37428afe3d2260c3e6e4bb3dc78d3,1 -0xab6ad368259033ffaec79119716abb2a4ca67653,1 -0xc199d54be70c9837449b8ded44b6c960dde9dfe3,1 -0x74c25f9b0c8ecf7115621b8a1db044c7c67be69e,1 -0x0859467769c7ea9f1ae9b36a6758126455cfe205,1 -0x447ec3c5970cf199d06fb6ad075992ae1cfd4d88,1 -0x442d9282f4babf805023697188f54614e46aac89,1 -0x711da63df9246c8a2b16dac1b344073f01151667,1 -0xcf35d36de930d520eadda55ac63539cdfb0f9375,1 -0xfec36af66ec12f215a182af4975df7194452e2d1,1 -0xe1d6da41d135dfe714286330ea729548d9f9cc8b,1 -0x0ac08dd503ec22616f265f2e14ad42c4d3b41616,1 -0xf6f0331648818f1536af4f30c6f12bcdeae7298c,1 -0x3ea0d0708768bb72596ade00117013f01564b04d,1 -0x1f08e1630a84ce2bacff616846c26d003e68f7c4,1 -0xeadfe8f77e5f58c67631c6398e5e17ae32ba2e52,1 -0xc9dbb461045b8fbaba51ab9affcfc84b11dad461,1 -0x64ea0fa30efed0d53900fcd4fb10c6c47262f0d9,1 -0x26a6dc267e276fded7b40251c8fc08b1b40df367,1 -0xb45f9821c681d0748ae6f7254990240f807cb27c,1 -0x33bf7cc697a39227d37671ab2cf4bbf54db1e5e1,1 -0xc722b1a7663db94011fbc7a858d0e9a78935dabe,1 -0x37b1fc6b6f9e5318388fb6d7187e53c06ef0e6dd,1 -0xf66eedd08d71f14c0c127ff8c251f387543f8a0c,1 -0x4b94923982133d15a70a251f98fdaec7ae11d0ba,1 -0xefd04f4c376921a057953ab1bd02665fa411ab41,1 -0x98c26fe42a7d4c4228d812d8bcba1776c4b4ad77,1 -0xd8a2330ebe3b6e14604449fc750c3622f6c8173b,1 -0xa8b6f2ed9d843e8f0349616eb8b0ff70f0e3c704,1 -0x50662dbf9e6df08d43672b21f630727d38cc3849,1 -0xdf8771330b0d8c5060b1cb998282593e31457507,1 -0xe269b65c32c6e5be9422cda3901528586d43f6a7,1 -0xd5474a4e5583d03afde0ffe6f1579ec9ec8400d5,1 -0x9ada4f4076f55bd56fbd09c5c56871f1cdc536cd,1 -0x15f47243376ed9fce0d75475ddeaae0ce29a108b,1 -0x6cc5ba8bf94e987d92d32eef2326284ef74dba04,1 -0xd7448fd62ad870c0ac16b6831d36078f3cf768f1,1 -0x044d2deaff685333ce9ecbd13fd8334b3698b14f,1 -0x59d21b528c4b1cd291cd33582acb40484272cd7d,1 -0x3b92671792da226f502de8f79cdd279f0c366636,1 -0x3f03409918d8a54feacf3adc09a7af8e62a41400,1 -0x38f6613f707a1c3b0b8812822fab03c0a9a7392a,1 -0x269957f987bcfff7ec38fbfaeb8686c86c805def,1 -0xdf51b66cd3090509cdb865b25a87a7629605383c,1 -0x71d0d7b6942990b89eca7c749e7971cf72b3b80f,1 -0xc293859e6818c3d3d2ea39287cd92bf87efd2d12,1 -0x56b17b99d67be413573882669ee9c859b5ff7817,1 -0x7751beae6385b78e9ac275a028bdbb75e64fad6e,1 -0xe40be32f37ab196652292fd1945ded0be8a840e7,1 -0x095bf22c21691c2dbe8cf9a05fd3a357d2be91c3,1 -0x397fbd1e27352175cc5b6baf171a30911268823c,1 -0xd84c9774ddf51a5d1fcfbe022f9d93e36eb4c23c,1 -0xacb818130ac9cd4484848848a0ca3e7dda4bb265,1 -0x1c1392907dc7aac1e489bb70017c9785194ad5c0,1 -0x37813ff0d194cd609807d92961ec56b696e92221,1 -0x22eb040cd35bd34ca116dd072c6a7e5f12176163,1 -0x2d4544b84ac6287009f6f79f29c15490ea284bc4,1 -0x6937a767422c879a90ccb1765c0370431a87f70a,1 -0x736a8561cac6a011d35cf92a1637baa2742dd3e0,1 -0x5ffa7534805c00549a1f72e6c4da77258cca8540,1 -0x268966a12e0d6da00c14b14804a2e01008222e1b,1 -0xdfec43d9998d050d9fe9796257cfa633a66a3463,1 -0x71d2ba56208f58605a7d000403f642470ca86fd2,1 -0x9ab5647afff22bb017c5e8fcb0e3af02c929bbc2,1 -0x34d1179345a2ffddb69cef3542ebade86b992b7d,1 -0xf2cc5ab715d7f0c98bb49606ef8270e00180c98e,1 -0x3f295571b870254ede911bdfae5c21331d68e731,1 -0x1d9f3201ff20d61f180e47d3ee01670800b2a76e,1 -0x62151699969b78716a053e1172fee74132fe1ee9,1 -0xb9ea02ffc5f9b2cf3c6f79886df0ba2888c83815,1 -0xae81bcdc9c069f5f0828d69ecd0f5015d29b0203,1 -0xa8e95d233730c2fc4c526b961a5f87124d5f77a9,1 -0x7915d7499328c833ecdf61d71c79662febc9ee75,1 -0xade81469d204f84742791715e5d8f23671e8c5fe,1 -0x131e0d90aa0fd997015768da63137b3add162c37,1 -0x117fef8869ee4e13859d96c98e9de396dc3f2b76,1 -0x2d2d2f3710c600b1f6f53fba2870f3664e899466,1 -0xa6fc152a312bbcc932d49956fd48736457b61b42,1 -0x67e64a4ae4c1e24a355a65f79e13adac8fe8ee0b,1 -0xe1ee9c35c9211d8a500cc9d3774e28b34e6e3d1a,1 -0x9cf05279b78075067cff43b06dde51e3179ace6f,1 -0x05fd95ea740c86b167a167b328b4e6ace5ba1d6d,1 -0xd1b6461aace9d17d702c64eb3e0f1216a0e0c53c,1 -0xbd8c99b0d69725a9c35a01a7ec94a4021d7410ac,1 -0x9f848202148904149db385f1559d3b70f2d5d99f,1 -0xece45773c0d09458d69b4ab967bcc67df2a7039d,1 -0xc2d035ecc40efb3e8e8caf923df50bb4e27f39d7,1 -0x42f657c4c177345e90e41f7e10af027e2f0334ea,1 -0xb26475502b448e5e52df013563dafa3dca4d11ca,1 -0xd2682e662e04184bba48e48779d0aba98cdbd15a,1 -0x410996d066258334d1f415942083132ec1b2df32,1 -0x012cabdadc7d28d8a099a7175d68dd3941239b68,1 -0xea5f5ad5b9e27b9ae49b08fb317dd2ef4ebb5435,1 -0xffd6db4f359a637ae686c364af6bbd6852e03d23,1 -0xa8b89863647238cbe536cc4886724477fe07dc3a,1 -0xf84555ed94af8a266ddf23af5d2dfc9da45b5a86,1 -0x7bb3a715fc756137af56feac0d91295b27cb250f,1 -0xfb54a7a039c3f805cb7b4783bd36eca3b14fbf7b,1 -0x2046d8d006af7b63f08beb3c3e95d3b697cf7dbf,1 -0xa5c6b330e0db7474d60a7a379dee841b946a309b,1 -0x801996a2c64416797833ba5fcd9fc0cb69369198,1 -0x40c099f9aaff5f7c3192b817660b19db11d547e2,1 -0x36ad951c6c7b022e9365abffd8ccadf9b9cb997b,1 -0x41ab87ae7552b11d993b774f62f38de07cf6ad40,1 -0x79ded079b6f289dc888b09b0fe5d35fcfe764c4b,1 -0x1d0975be56dbd70cd8fd1a2fc691c6b8b9d4b8c2,1 -0xa9cdc432a3d1a1a5f43b353950389790be640b4a,1 -0x1ebb6b95a74f1f2f6bf71f4f8984dc2a82dbf260,1 -0x0c15511b3e49985e8d58a0062a4145658a138b4e,1 -0x76d3592236a682581ecc4d529c41843d87513804,1 -0x68a2acdc6ac23a690e2f0e626e52869e9f45b90f,1 -0x30311d905639bc2a6533422bab778a16b1ef071d,1 -0x5666b892e60cd76cae23d5c0d12fff4d39c2d7f1,1 -0xdcaa90d9f3b75cda80764326f6594b58d0585d21,1 -0xff9398a46e598bc66f28f969d556e95b21cb7868,1 -0x64f1fa767dc5f050431bd1d1d3e72ea0ad865a06,1 -0x82c180a1de52d751b1f4863832b5ed01e9f0833e,1 -0x4c56951e9908e596ee6bbc7bc32d469eec43b45b,1 -0xe4a5b683257c0d7b269b88a313fda5f980adf04a,1 -0x9ee49420ade329ff711bd4d45761377cf1215db3,1 -0x3ce8202824fd5673788f9e014d2d37ea18c2afc5,1 -0x2064c522652607046413ebc84718569b859b234e,1 -0xdd6403a539c741e34c8b5bc774a39f5601c48890,1 -0x874d7a7d23def59a4ebe5722e9a5089d8ef54845,1 -0x3d98726098eaeb8055ee04b87fe856bb32781f8b,1 -0xc841b622dc2f8fb729a20218b955fedbc7abfb9e,1 -0x5e8b89e3877f7925d6250d7db37e72b17485ee02,1 -0xe487ed5ec80cca6e8a44f6d6f3f712088df8ad4f,1 -0x29eae91dc55872d559bf7de683fe150bf832a6e5,1 -0x03f0e71ac43276fcf0b327b1abe8cdf5974aecc1,1 -0x425ab2051e0cb14701bd00bfa7e65aa57da252df,1 -0x25680fd89f0b4e0c4ab18512a2677e35315f86c2,1 -0x836e7cbfe79a896962bda54be27e495a3e0b2a02,1 -0x9028417ce5773f5a16d24326ed13ed6074bb3278,1 -0xd37358eb3e329f1c5a57ab66816299e7a88aa224,1 -0x2918ceda641716fd6bda3ccf691c3b54d4c87b6e,1 -0x58415cc885717052276dbaa4567584d73d6d3bac,1 -0xc3158c8adf2ffe26992972262216f4e7847eaf1e,1 -0x953c36badfa27f916653446fbbec0c20542d45f6,1 -0xb34068c9679a6964236d59f83df31d1d26cfe5aa,1 -0x5d2fb497b9b664d5b3dbe32cf8b0e57e5da7bf0e,1 -0x10a8631e98ebd4a1eee46fabcf1e00ab71a33b11,1 -0x90cb3b0781320a156787414846fd1dd0b077588b,1 -0xf0b665db7ffe29c05076ac0521a3ee610a2843be,1 -0xbb24a48833724e7fd693baa52d761ec8fc6120fe,1 -0x2a47fec1d395d054f7ca4a5e5e650be5475f2ef9,1 -0x3da1fc1e5ceb31c9e0632647ea8c7c4fadf35b7e,1 -0x05b3301b4fa008f7274d12575c1b4e28f23b7bd2,1 -0xaa97596be166ab6738b47ece6db2d8d85666c3f6,1 -0xb7fc14073052da785411c020302e5948427d5302,1 -0x78ae105859547305bfc5fd6f041112b7291e816b,1 -0xe35b91c89c078f44524e81f208faf85847538f6f,1 -0x79d899379844d35a1a1f5d51d3185dd821f44dc1,1 -0xa91689a8be49687f8fd2ad119b5ad74bebeb6f04,1 -0x6e80f0a0ef5f8da9467b4ce8fd7afe176bee9439,1 -0x02d68207622d9bdc557b8cc101862442eeb872e6,1 -0xf36c101104d2ea40fe97ee04425e50a55f1f6b6e,1 -0xb5f11f09e5a99437e08ec523d05fc3f1e6bf0f42,1 -0x19891d5c1a99d140a1749e92ea403a196e86b259,1 -0xd17411fc2a86505c60bd353fe0fb0e6c593bf0c6,1 -0x90077550db8d23f3825634c3497ad3a594013137,1 -0x1e61b817a95457ce2761eeea634c818a97b90750,1 -0x5c073563ea5f17c7414081c9ff6b180820bcc78b,1 -0x703a7c97562b26a75f1fb97fee13f60116a0f172,1 -0x8b0144c5a380bcb46b25f7b370307e03dc716093,1 -0x48bb463710c5a42ef01e1fdbeae879758b597f4c,1 -0xb9e12f5b38d4f263fa2268c27f43b0f3311018a9,1 -0x32e79ba128e42825c642e733bc6a3543c20fbe3e,1 -0x350dbc94aada493fa640738963f72bbc7e0656a1,1 -0x3447649d7e58abc9b28b6843f52e24ad5efeb7be,1 -0x7c8bd56fa5877d78c1ba76504a41e4ca727d1ea4,1 -0x73d8838ab8d39a91db65465fad0032a9babdd3da,1 -0x0ae459b81c4e92aef01e3886fe007146ef7dd2c9,1 -0xc7c22f5a98025b1145c412183fa81bed7b4e3fb3,1 -0xc1b010a7c1dff91133372c106accbe595a027043,1 -0x8ee69806cd134703a60540fb53a86041fab5550b,1 -0xffcb3a904ac72226ff3ff20a1b45d1d139404f0d,1 -0x5b0a763948a486c0704d8bac04d6d7f331c50f57,1 -0x053690ddad5114b309ae5c8ee6465d5d45312f08,1 -0xbc9c5859ee6984b0e424c0ce336fd146cc34d459,1 -0x3bbbcc2851b532626e073468faa35edaeabc13d3,1 -0xcc1b18f8dd6016b58488af953d73b95113d8a917,1 -0x52731a9d5ca3b596c5439d407293152b346c1ce2,1 -0xaefcbcad09d299e7292f810a38ccb067b46e32ed,1 -0x53f50cb7b42b9c63e3cc0b1e96a5346187fcd483,1 -0x21e6261a201cb77c29f44279d97a607a96275053,1 -0x1d1151d14ba5d127adad2e4852efe7892574bc9f,1 -0x3cb0849110441cf8d474d213c84a0e7a67e0964d,1 -0xcf62926d499fb2e549ffab33bad1b6c36c72a968,1 -0xc5087953d83168f4d0d257ba686f7e2d7945c2f6,1 -0xf8533206c0220a160ba8952f2206239d10b70df4,1 -0xde62dc13ddad2550ee7326b4bbfa05a9d059c85d,1 -0x4034e65e8ed65f0d68332ca74e437f31983f5f25,1 -0xdb3501a03121d53de54d77361a5e7257db2f2de7,1 -0x5ebc99fc01b15542ced1def2d3ccb63290bdd139,1 -0xf7eb182394f42ddda6b4eb92873138726966aa9c,1 -0x4284d479869c7c2fbf3c54fa0a805473741f3570,1 -0xe41dbda75df84aa4a120a764d20a0983ea5896b9,1 -0xfc60b11b370928368e6242fa3b96996b0e04226d,1 -0x575146d9307e9ba57cbec6ee54daf1918c97cac9,1 -0x2ae3ab34d9f7158d5d241667bf0e8894c6d8acc1,1 -0xf626061a8d065488ed70798990999c44f213f24c,1 -0xd97c688271897e655ae3dc5aa8453ca4e4958215,1 -0x9639e20abd05231b4d798a42f775255ad8f6135a,1 -0x3401ea5a8d91c5e3944962c0148b08ac4a77f153,1 -0x5c6bd31ce4f49cd5bb0b728c156fbf6ee28d8810,1 -0xb2e9b284ba6229b160c81afada49772f866939db,1 -0xccdfa5d350c1a8548f7feb47c661ea637f62f6dd,1 -0xbf305c657250546dfc5c64b4c1c356ba12664842,1 -0xdd8560bb692959e19ab01c62044f0eeecb10209c,1 -0x9ee84ef3ef7d882f8dcd58747822bf7aa5df3a14,1 -0x6d22b24d8dbc508bf6236fe1ce7d5e46e2c2f8be,1 -0xdf9460eb19b8094cf3c2ff0a4c22e14caac0dd9b,1 -0x47430de9669b7d303fe3c5aafb3a7357753d1c22,1 -0x503f7fb115f3f47573860c5859ac05b281b96a99,1 -0x7cd7b654abc05f60f94fcaecf0467a2e4eed2fce,1 -0x4dfedca6faa39f460dc26c6e700c33dee12d6b7b,1 -0x2e10dcfefcda2f726af7a3d091ecf0a1d6293188,1 -0x0c92e0928638c26e6431b649eb20aaa156b2e16b,1 -0x2f33d7dda19aa06105a486bf27bc1c092008dec6,1 -0x3d65d2181105b9821ab89bc5852d173b4247a8e7,1 -0x7a207bc1948684ba8aed04f0af018b11564da0c1,1 -0xa704a1c53eecc6e68b0280daaf96f1bd28e61fab,1 -0x1b2f6378b95ebaea01dc5ebe050eb7577988bdab,1 -0x3d1f07d3c60268edceea094f1f7732ca8f86e78d,1 -0x616e7830366c2a6fca58c13dfdcbf24a9772842f,1 -0x1bfcfde0b5f0916bc6d8274e882c0dca3bc30959,1 -0x754a4aaa27da4405b2184366917e2202bb44ea88,1 -0xe5906d97119a8a980d4e16a6e586aa49ce9d5f8e,1 -0x80c76b93b010550df0928269133c86f59b801267,1 -0x0b32b6a775ccf57ff75078a702249a65c8a581fe,1 -0xb5093d3587f0a9a272a4e02ba8a9848037516a51,1 -0x7e00414d9afa99c1d2ed5fa3929efbc011774f66,1 -0x7beff284f483f9bce3b17b93683b9c35db3e5091,1 -0xdc190d7cea8e8bf0b381617062200c10cfff0a91,1 -0x4c066dc45200d510e339915e6997141a4ab06433,1 -0x57c93ae8304aa9f9268f97d5bdf32d5a9df3d559,1 -0x0e8f131552c9a96db80895ae67b62c43fff8255a,1 -0xe709e2816358171e410aaf589fc7df84a7dbd642,1 -0x49cb3c71b6d2b5a142b686c5b169333d6415fa57,1 -0xeba3078ec0a67b3324f03e3a306e7db43a5ac941,1 -0xc97238a30a2a426bbf50f6c561bf6e3951926b69,1 -0xc0eeee42a336bdeefbd4073c1f2f64e5340342e6,1 -0xe641fc222c5f132f88839ab42ba2b95940b5ed39,1 -0x10172678787d842616ac46aee170f95d7b37c041,1 -0xd59115cf49acc71f81330bd007c0c522a2acf9d7,1 -0xe94913e403c85b68c3f01da74d2d075547567d49,1 -0xdc9f805b7dccd325fab23eb9fd5dc605640e2f5d,1 -0x46e7e8df488875ad30c31dc7edab152a8921f71b,1 -0xac94e534b0bcbbe281e9031d2aaaeb622e9c671f,1 -0xd8ef17547694f58b37bbe9b0787b90be881d042f,1 -0x16fe6dcfec140a51cc7149e736b798e07fb0c299,1 -0xf3d0cb1b3db63a5f98a0ecb05d0d9f263058b7cb,1 -0x60935017db857a5d2b18ab2871d09df2bfeb8db2,1 -0x8bf6efbf66d881c23a584140e70c5c5d428c58d1,1 -0x08ff44da4c1319a89aa3d2ab42bb6864c154106b,1 -0x8fafa2c7bd80e705bcb1a2dcfd27ffa6c2508299,1 -0xa62dbdfa0cde5b17ac1c4ffb11f390a7438900b1,1 -0xae2be1f188b8fec1874e5562461081e35b44f392,1 -0xb637db26bfa923d1b66b0bd18d608a1dc112bf54,1 -0xb373e9f3cbc4ff4210afa08c5c9a1132e8fe27fa,1 -0x25f71a5e1b2bb01624c390eb2d99b29b71f8d359,1 -0x1f7fcdb7c0a57cc3c49dbb50323d12ddb41286c0,1 -0x3fc888873131d6ad75229df27c1173250b09090f,1 -0x1425c88ce0780e5bce5f405333c81f9336dc52ea,1 -0xe710b2ddd4e16fc355be0f9fcb9223f110d778c2,1 -0x790fba8fcbf29476f7f2a04f495bc786530f5c5d,1 -0x9cb3973d58427be11d1e97cc8c862544beb7f4c2,1 -0xebb18b3b68975e314510c9abf8f49b03d2d0bdfd,1 -0xd18e1d893f8c7134cd9228d936312928a9b68ad4,1 -0x0c36df3a8d31a5d5980c78d1759b981d5e7667f0,1 -0xcedc2f3a8d79ac3c8dbf3583902ed071cc4f0123,1 -0x29e7d5ca8b803dfe96cafa1035cf6049a304d9d8,1 -0x6b872e9ae3d38f2c5b79320366ec6173d327213b,1 -0x3bb96a76997d20009a192b8d575f2e20fed21dfa,1 -0x301f50482eac1048043e0625b7cf537839557a77,1 -0xadd050864a01b42bcb4778c03580ce21bdcf5d44,1 -0x2bb324bec6184c3050ef4bea38f96f2e74bd75ca,1 -0x41fa133107558aae44705a9723fda6843d60abdf,1 -0xe20e82d486f72c0a13bd850c06d33b80975d2aeb,1 -0x767ae578b41be33a9acbef5e70dfabfc4dacea5e,1 -0xb1adf8af19df6ae52c4135698da8587b077fbfdb,1 -0x31668c4b07d9d14a903d20a29b96c7fd8274a99a,1 -0x1e64b24ca3253e31d43105dcb537ea6e089d563a,1 -0xf009574e1e008bfc337100788d8331ebe63b9411,1 -0xfe52581740d0bbdda211e53778efa8644a2f2845,1 -0x4c126472cc5b751e10d315e4a590c884c5ad7e00,1 -0xafdd93e050d17f33b2977fe39ff5cafefb6ee785,1 -0x32af1c2c5d79c6518abb977d1be3354c4a1baa95,1 -0xad2627337bcd64b81f878171fa8dc6aeeda5f6f9,1 -0xfc9e8b938dae01b2eada4377cb7d21e184fe615c,1 -0x873652247281ed383b3c3a958d7b175b787fbda3,1 -0xcd728b15999c73b59a70555a64da83ea36a2a82f,1 -0xd7dd3c885b467193fc454064a39b8d8f104b902b,1 -0xa0a0ba0143a82d289fd4db507f06e18be0e8f6bf,1 -0x75cb9c509c495ae7660772a07b734a5b1125209c,1 -0x13e48abf4248251934a7d14c857c89e996243851,1 -0x70f22de86ad456dc2b379719f6f76fc47d55947f,1 -0xc258988cbf6dc8cddfe46fb725b3344b8f0065f8,1 -0x5e635ae6ed0b26f2d22e342bcd52b7eadc43acec,1 -0xc0e3d523c618962f8fd2e855b43c798e469f9f20,1 -0x732b56a95a1e307f46053d53e7cc3ec40c6a8f8f,1 -0x071ebdd7bfe7d69f51abfa47b1f91c8c4aacfcae,1 -0xa78ef0a8ff567aec601c770a2f29aec6d63b24cb,1 -0xff64928a1f2b92901081e6a635c83cc69ef4ac29,1 -0xc5cfcfa56fa5223d67f8bea60c28faf6713c74ee,1 -0xd9cdf6d83f4da994f9e3e7618f9b85c3eb7355fc,1 -0x8833724cdf2b7192723164c4df3a32349ed49182,1 -0xf6228b371ed59e03d579e4b570dd5c8a7d25326c,1 -0x85c448af0a9ecad0c1736bd2f7751b4a87be49a3,1 -0x802720f980e5f9bd7358ad0bd9caa272d0173e00,1 -0x7bd1e0b0e91c1f25c371d434a1e82eb6c18ff888,1 -0xa1ff0c6d0e5995ff859912421b5df89104a32f5b,1 -0x4d3f330ca3f175ae4135ecde5368e92bea1c6045,1 -0x3e6492b94e3ddf128189e4d3a767b8c2428a9e74,1 -0x8c1fb0d115d04ead73337f8188ac564e0132067f,1 -0x5071c414c6941c2f358b603527ec25c21fcfce63,1 -0x8d3663821b91ec99892366032fc55abfd1826678,1 -0x80f6d7138ba478b9501c44988503f23d37fcac6d,1 -0x15b44ecc70537ab888eea50e8fee63061ef57b50,1 -0xbf401b81e2d01bfb80d32a7b71fc0715d6d76d45,1 -0x9854d24cdeeb61b49746d7bcf04961ef03a062d3,1 -0x78172debb2c90cb4187cd3eae29a1cf9d2864b03,1 -0xb313dbd81c2191d9a9f5715ccc02e48ec4ca8ddd,1 -0xf0b197f46e9defee904a4f0f63ce9515d5f5b496,1 -0xeb86ef5ccac57290d1316316067607d8a8c19278,1 -0x0cdcce08983407fbb883c6c05a65b4ba062741cd,1 -0x014469d630ebba94880e0cae38ddf4efa2866918,1 -0xbbcd0d186135d44a9f4855af36b81608a0f24e96,1 -0xebd05e6f2a958355d069902d4a6d2bc994839b36,1 -0xc9ebea64b47bbdd5b2be44b26e599e9561dc36e2,1 -0x0289ec5571b3e02c3ff3261231c04c66752432a5,1 -0x5f788e9872b217cbf52cc00ba68e821017f5f2ad,1 -0x57ef4fcbcac222198836b7a4d11f99a6ed5aa7a1,1 -0x483cbeaabcf61c1b90436641a38e0f2f5f007e60,1 -0x9fd6ab077f45d09e83e600e1dff9c20c24a7dff5,1 -0x5926915b87ad12e8fd3aa83e9571684d2c5bbb64,1 -0xec6f1de1a5d672ea379ce8abcd501d455db155ae,1 -0x64fbcf2f7ab6de55fcbb4d7d6b2dc777d9499e39,1 -0x0f661f4d63765a57e3585b74cba15491b2b5d818,1 -0xe35a3d96c9c2a3fcb24634a53568585db447642b,1 -0x2a15ad5b8b4f1810c51579811d97b51cc73eaa38,1 -0x02797808a63694ce333c96151ef1d4e6f1b9fcb4,1 -0xe536cb06764e1ef138a54902bd7c73416714e546,1 -0x53f42691df74ad573f5b8a461ebefe09ecddf920,1 -0xba2e80144fe3ef8881fc5a816bbc607768e91321,1 -0xe9af8de8afbed81e72b09a97568f568b31ceefb1,1 -0xa07ff1e234f5eb6f73867e4c72b2402e9a7a71a7,1 -0x18a026437d58450730c37e5bd3d0a451dd9c5243,1 -0xc0acaa668af06267e1c8850bdda28c0431d313b4,1 -0xa1b978c328e78c1bae146346e6b7a5d98c55549f,1 -0x8820ff8a68294f0bb5ef77d7243f0224ba0a0f82,1 -0x57c9898443125749395803ceb7529301fb6068b9,1 -0xc2b8e64eef1a686ac4e7bee997e9a73ad87d60ac,1 -0x98cbac06efc75a0f0f42bed8a73f15ba85392ca8,1 -0x00832b52771c0f340b5b42bb12e23d3202c99489,1 -0x53b9fb382a61b81814ea765f2ae4263c79b815d4,1 -0x0980145476ec24d7f1f51272744d98ccb2dbb0b2,1 -0x028b9f3066e6e9e70a135046d575d515407e7db9,1 -0x353d48f0d95c6ac3baeade8cf3bd1d63d3264b29,1 -0xa53adb1a7e26e1819e4722d3ba8f6b34fee3e714,1 -0x49daa3787887106eb16c6af30fad6d722959c792,1 -0x0c6465eb6ee51251d808a46541701dd3e68786d0,1 -0x463373f0013df4b5b0170ba92aa920ea38b056a3,1 -0xab4095d9934e9326cf7b77b14b1e8b739e190437,1 -0x8a2738252be6eeb8f1ed0a302c61e7a81b09f48c,1 -0x7a008f578158ee396e8afd813c13c02a0b9fee38,1 -0x48b95d71aa4ffc69359b67feb6d472d9aa969fd2,1 -0xbaca5687f66c47dea13c1b1f282f6f7b71c64a75,1 -0x04ff37343abfaf33e13d0cc10a142924e89e2f73,1 -0x6ede47f936b9d6eebf548bfa49e7ddc1258c6abe,1 -0xb06eda96b5091b0d1144ff3592b72dda72c43647,1 -0x5af272ae8e196052fa8eb0124c3100522b38eb70,1 -0xddb62f3d0b5212e1a379663f9b8ddabb7ac0fa90,1 -0x949ab2ce510f65d9f269a68d0386b80f88996be2,1 -0x143753b876f3efdd40df59f367f2c9bc6220ff5c,1 -0xd0148069a62f2e392d2eab92e6e6b7983512e788,1 -0x1eec19f49c4f592ff36f8cf6375e02204f1d2674,1 -0x04da5911a0413a39dc4f4a2dc86b220b45f7c48a,1 -0x6352aa7036fb7108a8f006b9bcdf3c7d447bf13d,1 -0x20100ea0b96ba35a1b4ee2e934a122ed59d2db78,1 -0x134e2674a4d43e23920981abfe89e724b2df31d3,1 -0x4f29f3105ee511b66923ba97e95154119f9f31d0,1 -0xe403b17145b4a7778cec740f727210bc1f05e634,1 -0x2420ac35fe78a6eb5b2648354c06076a8b7a1d42,1 -0xaab4ce32055aab5b1c2feda84beec1ee76fedced,1 -0x7e18519cb2803c44368054a9e95f4e932650e6e5,1 -0xd76b4b93a98932b54cb89a2c829dfd2edb6a5020,1 -0x49be5654fc6e8a65e80b5bdc9c18da545f32411e,1 -0xb7eaef3a09d093a74edf3de73f3d308e0fcca1e1,1 -0x59b9c05b0ef3d0f91a05b4161874dc8428150835,1 -0x41acd98431084f1371cb9fc3c217c43090a7dc08,1 -0x801887be75514a71e9e6dcf1d14927d75b0fb874,1 -0x8036b233bb4389e63bd0c3d8724072b443a819c8,1 -0xd8bafb8829950e360dbefdce26710288e96b1931,1 -0xea815ea1035eb7dd2a07f4b7d4604c8d9b222ae4,1 -0x36ec46193368e9a903b10c027c6151f4244104fc,1 -0x7afcc373866df56c88a6c2d9c0b3ea7aef813233,1 -0x7340ab2de471f9f9b9155ff7103f4a13e19ba706,1 -0x62e854cc3267059ae46c482e42b159b953bc9dbf,1 -0x07b316ebfc0d9d48b4961df9db9a2da218e925ee,1 -0x5e9a1a5a0222bb4ed3f3714d90f26e046de093c3,1 -0xe2f82e1a3bef247657787df83a3c35696fd29609,1 -0x7b68897d294d84812964f11a9b2c5115dcd209f9,1 -0xc1d6ff2988871b77a4c3a2f0b21d85a08fde34d1,1 -0x6b5a0a7d7840b791ccc46af02da126fc1126d9c3,1 -0xb602d49a76d99cab5744fd0cfc172d2cdf933752,1 -0xf20a0269edf97405d1823e02f35b5e52d1ae574e,1 -0x9208952458091a8e80177b1523328a6b9317c9fb,1 -0x52f7e19d66229559a0f4fbde1216819ba3a0a3d9,1 -0xa987e824f1ff2a7265fed24093abf4c8f59689b5,1 -0x70b2a6a17ae26c651d49440a76d72a29d64498fe,1 -0x18e919d2861c8af19de38a85a66784aeb8964e22,1 -0x656208638a9dec76eb943101634d2f5303315406,1 -0x920ba93d6aac13695b12a8c71d7b5d88585b50e4,1 -0x9489e33b8283ea9d0ce28f5066099225d8a915da,1 -0x449ec3fefcdded559961c2de688df2242c414eb2,1 -0xee18dee4558e56c7a7d6c7175efc3be0798fcfb4,1 -0x234419e17e73699fe7d2b9f2dbcea71f7c227b1c,1 -0x73aeaad71d218d5ef821122abbd96072f4465754,1 -0x49257ec4037fdbd8c3ebe122776af24d884f32ee,1 -0x82b8b6d49aa74f7ecdbc7d817e6285c7c66b7dae,1 -0x0a441c906216d873ae8406b49b29ca769b3e04f5,1 -0xdcfbffd70662e4ead0cc9eeb3863bde9767b6fa0,1 -0x89ce8d05797b3746992dfaf012c62c8804e0daa9,1 -0x0279cf37305e82383992224ead706ab1a8119d24,1 -0x0184e5d6cff1d8de438806bfd1a81d8447648d2f,1 -0xdc160d100c4bb3c923e60a56ae7e178293d65b39,1 -0x9fe28e314e2f13b9368d9a50570191aa48341324,1 -0xa85150c3d2e26717d245e30e919de1cff2a898a2,1 -0x0682b83c61b43c86d3953014cd8324a1e54ea5ea,1 -0xe2b5aafd1707c25e233f3d594acb1c0de82ef9f2,1 -0x98b63fe0ff5c9ea408ffc7c9fbda9f2852aa90b2,1 -0x5c809401907a5dfe2543df9e3a70dac63be176c7,1 -0x97f7c5b9247ba0d6cde3d2efbb00b67f55963c19,1 -0x1c1867c45463c305a63b6be9cde63ca47af4fd3d,1 -0x32d597bbae096858aa42337b458f6edf9bb4337b,1 -0x6f145f7bd61792669605cc39fbd44deb53719761,1 -0xb685e14bc13fd4125ecbd965462cf5871c72a5f6,1 -0x735f34948437f8d11e1161cd44f89d2aaaeadd64,1 -0xc9309071686a16418cf0745e9e9a4b116bbc0970,1 -0x0f92e9624cde0dc95d602cacbd615ed9def2b17e,1 -0xd648177ae62d48e6d282d21fc07df20a5f1cd400,1 -0x709a9ff8ae3074f4fec3580c3a822d5ba9bec38e,1 -0x9e8e272b7063575e880bc6162e3f525eea84a19b,1 -0xef7498417b3964e0cdbe39a4b2f279f21ffdfd8f,1 -0x2b61f3d032b721bced14200ebf1e895378510e80,1 -0x3c5c98d99cd86a08346fb0056c52239721d49e50,1 -0x9d6d8cae0e59ea8e5569903416c5373d16b83d6a,1 -0x5cb9eb6693067c5b11d20b4e2a09e5ef58224921,1 -0x427b4f67fe4efe942354b9cac0213e1de34d4b81,1 -0x007fa2bf700de23cc4d7b86b4e3bb77868717107,1 -0xfe11d24eec445292c48e6d89e41dfae5d54712c0,1 -0x9b592614785ec3e55663c8764b002f1d2ff9bd49,1 -0x94ad5bc068269267dd153b3766f60a88bdc8103e,1 -0x3ca0334f056dc588d2a551d99563e301c9c3a61b,1 -0xe4d8885b42d81ebe60bb877ee416310a392e9aaa,1 -0x23fed2634fdc629c1a82eb6ed3391efad2a58670,1 -0x6acfa6d9c448f67b450320cd706e61c0f6716ae1,1 -0x8614310d552b05b06bbde0cf8ce4257180bbcb49,1 -0x900c65ce984b7aa7ee28ae619351dd2196de5bb5,1 -0xef56b9bf4ee03bbc7ffeb347aa3796c554d0ca47,1 -0xfc6e019feef70c066facd4273d5e444430353bb8,1 -0xbc5ea8edab8423d04eb7b8b5f82db756285c430f,1 -0xae4705dc0816ee6d8a13f1c72780ec5021915fed,1 -0xfccd2582f03d4fe0c169c886a0c4892ec5d7dac8,1 -0xf851b5b8c342d8d270a6f51972d74c048e670133,1 -0xb2b64604cecc1396b3f90994c00e0d7481788473,1 -0x9fe0d5f3b66601aa429aa8480af981a53225cadf,1 -0xc06bf3d69d0afee1816b19789e8bad2cd0b989e7,1 -0x007317061ce359f7be8ca4081ac57df3fde9bbd6,1 -0xe4f58b4801444090eafb15f0181c6b034244aab2,1 -0x9a99023cdaa267ebdbdd6eeddd0cb2830f0094ce,1 -0xca8b07e50f3f01c223efacefb78d9ca84e544646,1 -0x817a019d1559b70f2d2eae7e30a8d6c5f07cfb60,1 -0x08e908d03d80c6f359f1b08769799615310c9f6f,1 -0x22c333606066e68191d0f6cf9a399b1158e1e514,1 -0x4d64b5bf863ec7f8d67952aaf1ec13f5905ba378,1 -0x84492fb2bc9a965a488aa6e7cefbfb2f1eaf6263,1 -0x41d902202fcae07ad57539e9fd29941ccc70cd26,1 -0x41b3dcb55dc562a0559cdfacd32220b588d44daa,1 -0xd398b8a3d9b6c6972754289190d2f76536d2146c,1 -0x8dd94e944f40029eca9680f7c9a464206796da1b,1 -0xafe47d6f287ce1397f6d1af56868ce8981d555e8,1 -0x70b5d194fecfe74e77da5072fc1bc2281f230098,1 -0x1629765779ee337a5c0d0a2b853fcbb14cf38e7a,1 -0x88df41a58d8c00742ac9ba0a304c63f9451b3fa2,1 -0xc9a693b5e1c8b3a46528be8e1ac912932bf2788c,1 -0x32d30f61e571514645b7b4516041b003dda62823,1 -0x7e885358c81fcf2ea47caabf32ea3abe0ad15550,1 -0xce0a752d2ba8623417c33c9de7dc96e22b76d114,1 -0xd09d59b158b57ddf4d385684484743631eaa10d3,1 -0x7d6956792338c7fdb83207ab0bc0874fc8ea5c5f,1 -0x7a747510d5f729499f0e6fb1dc38f9f431000107,1 -0x3423d495f0c43bf2591d6a79765ad13f77b43fff,1 -0xc767b0dc5ec57b801cd9e2b3a0d03141da1c5732,1 -0xd67afcddfec4f2c87daec2d436ab8539cf2315e6,1 -0x66fc291e5023b42ade26432ecc9a39609e7db465,1 -0x76b4f770f94ca357c2cedd76999b65b1bdb078f8,1 -0x310547708c64f19bcded249471cddd9f0815e775,1 -0xd44d0cfc3d802ade249f0c96475d5a39a55564e0,1 -0xc9a6180f8e3a3f2817b99120184fec638fb972a5,1 -0xb9c3b25cdbba4a9b593b0beb08d6f4c089977091,1 -0x5db20437c9b6368f07a3988b8f67c2174486e7aa,1 -0x181fbeead37f61f6e9aefdcc7ee22ef115a565f8,1 -0xb5fd79e1c33014075e12e4f69f685117cf119544,1 -0xdbe9a3c9348e9f543775b67512303ec9ddf21515,1 -0x11b2075fcacc5edb7a7e67e9c27d2dc2fb0ec134,1 -0x16f75e98a4ce47b0c43b525f30ede4ecec95e9be,1 -0x7966229651390d51d88d70ce59af4c8aee592ef3,1 -0xa0a2c93473d00d246bfe8c1de38bcccb50b27589,1 -0x02dcced9956acb7f532108b088bc3e5227f5962c,1 -0xa51bd9e5237b2eb19e8876b49050e8af0efe210a,1 -0xd416051feb5c6608123d614a95201d0775766a45,1 -0x97117264dcb58f690a2d69982306f680621aa083,1 -0xef0b4b27f921a2891f88a7bd4805e9796d27864e,1 -0xaa3f52c68985075d5662f9d11ad4056ac89a496d,1 -0x6330be524cbc97b742581822a34794e398477696,1 -0xfe18f04f24facd017a9df5d95759d8a6e8d0bd57,1 -0x3168f1b642401234d48890ee9c30f67feec02c21,1 -0x3a9eef4770734421d57b9434c479b2cf815fd9c8,1 -0x3ce1fea89121b0b775e6a4ef19f3819993586237,1 -0xf4a26cb030aa7ac7e1727c0716916936c0e04cc8,1 -0x01bfad534ba2fbc7fad7de8042112474021ad77d,1 -0x35ebdce680ea2736873b712a12e89f8501120fa8,1 -0x0e692adbde792b5d1b0a79912cbe9c394cb5aee1,1 -0x0a0735d4dbd989c725259bbdee98d0caa6b9144b,1 -0x68f15674b623418e6f1b43d947cf0a0426b54393,1 -0xe1716880c981c27501987f9192d2e849fbe533ba,1 -0xbfdbf9e7f9bb163352097e1ff9238f2843292090,1 -0x686aae92e48eb6ebcda2993b258c97c1742d63ee,1 -0xce83f5d5577b78c61ce91e5e600cdd9409782a0e,1 -0x366c753db239f76562f051cd182902e056fbc878,1 -0x141ff286c5b44fe73dba85cc99b8a8fd83664b4b,1 -0x51fb7dcb26c026b1782d2dffd3bbd6ca0df20306,1 -0x66d5e90e34400e643830304a9ab36fc2fc245a41,1 -0x87ec0b731433c13f8c300e6a41ce5993b304f5a3,1 -0x19bac497eef98b007908984a96b5783e4afb39cc,1 -0x9486bebbe3b55296e600ece7e1fcecf319d0aa7b,1 -0xb81383e8914e790b4571b693193e78c0163da3ae,1 -0x3a33c951b69ba1b2fb0a0624807f8402723d4cf7,1 -0x297a298223bcf5a275592c6c03ccc07df8c19aef,1 -0x2a4d27abf7ebbce29131c9e8fefd3ab335aa4cce,1 -0x654eace4486a32a1e5424d8a156a4cdac916fb7f,1 -0xc71fcb40cddea406fb2f75fb7c2a0cd38ec236b2,1 -0x291121da7faeedd25cefc0e289b359de52b8050c,1 -0x9a3f63f6129e3c47e6ee8f4922c696d61e7f7a03,1 -0x7ee18ac06d2a1f4670aeb3ba3c2c6d34fdb17f50,1 -0xa4c01e85de0d875177a5fdca053143b60c99cfb5,1 -0xee9158199b2a11696f048a1151156bcdbe431e32,1 -0x0892fab548175d8b6bb6bf8d6460f9327a8363df,1 -0xf0de4ede3d1d1a29006e5d23f8e30344e3ad493c,1 -0xb9bd55eb41a48dd8b3141a09c4c6d829b581cfeb,1 -0xa251c3b888d77419d7104a90739493ffdf25ff7f,1 -0x3cb1c25b7be8d74d0f9e094e7ca0c6342a426ed6,1 -0xa3867f7d90094f16e12bfb1a9fdfca64e8ae9856,1 -0x7a88ab95f56cfed5ee5ffeccab5406ac64fc021a,1 -0x57153b4653ff726af2692506d9e4a2fec823c4c0,1 -0x7bdcba2aaef8f60df714b01de81551e1146678d6,1 -0x1b091952b6c7b3dfdf344db438fb0de5f4571dd6,1 -0x1edda013c367d0e3a32d16835c31dfec1faed642,1 -0x1d86cefcd6d45922dda50dd07ee1dee1f4cc7006,1 -0x33895f4a011497460865d8a08608a8870a503b7f,1 -0x4f2c16c8bd2135151a001c043c9b7c6eca05ff71,1 -0xd36fd2e4c64b3c9837c26b8c52ef221cda9c43c5,1 -0x545efe4ae05165cf327e33f8ea6f8bef279d4f86,1 -0x24dd5e34ea393584ebcd228bfa57604887ae398f,1 -0x8cef1e438442067df44955e66cab9b015d6a54fe,1 -0xf839ae19a58070ce60b0101eb9674730be882dbf,1 -0xb90f2d02115877982cdf338c74424c77969749d0,1 -0x972b58187a7a111b4071fc26ca3a2c0df5c2f028,1 -0x667ec4a76761f7f4cf9e33ff42e42e97baf7fc80,1 -0xf144228cf890b792e0ba9b4fc3b196e14937158b,1 -0x234c533a7ae1afd33366995b64e9a346dd79c530,1 -0x2dcad37d683bda417bd93a739109c211875cd527,1 -0xa1692038b33f0d59ee2c639e7ffa0b5258ae86b7,1 -0x2eb8b675be847b8afaf71b7e831016070d8c7e92,1 -0xdce5844a7012718fa598bc927b189baf30fe239f,1 -0xbd9ee204274b036202914c576047abe5ded78492,1 -0x2dff0f236dc33137360d9e79616fcb5b6da6c7aa,1 -0x45eb65ca5220e1c55694b3d8fe2b1364b2b26314,1 -0x5ccf2835e74759cbeaaacae36b41dd084ed00e6f,1 -0xec0f8a757bd6408d9e5543b6df6f5f03f3fe34c6,1 -0x0f88aa84c45942ac54c42ff68a78b8e30784b05e,1 -0x7b578244ba5ffb702b83f55159a09cb907c6b656,1 -0xded2c8b82de10cbd82ac0a84ed6bd5963dd1e89c,1 -0xd0e0fd4df40f55446b9799bc26a710cb8903f291,1 -0x3110300644b632f167850db30c0fd75aaf65465b,1 -0x7e44e00009ab5c9256dcaa099000e1bd940d9f7b,1 -0x687daca4e1e4909daec05936d98acae4641c899f,1 -0x9061cac09605f3ef09d1bb622720292c0b710e81,1 -0xfcf744ee8b76e7f3a2e2cb510487cf8f0926e819,1 -0xfed9ff0edfc6dde5872eed4b9d4cee335e99ebac,1 -0x744b308ec12659c924be896b5b47582a3b2d66ba,1 -0xc1ba0b430b65cffd5e9e13cac6c9510789d3737b,1 -0xbd50a53cf7591f8ba6c62b4e12125bdf047d220e,1 -0xb9b15afddbd9093e14d9bdcbbbc1b02ccd9941e8,1 -0xf8f9649a25d7b7347b1224861dcdc4102afcbc01,1 -0x97d852801d8c728bcc4de82640c8811406434eb0,1 -0x36865b90f2ebf8303fe6bd9a77a10b72ebb172a2,1 -0x007d6bd06db64c367cd02e7ab83138260904f220,1 -0x578aa7954189e35dfb0d5ed5d6bb8e5bf8498d7a,1 -0x90ac8785f976d1474c59b842657767195a19305e,1 -0x74d71ab6604af7fc56f811283ccdd3a06351f5f0,1 -0x8381b83c446f9311d7ee22697509c49a79d23940,1 -0xb36a80fd740c161c88b3bac534588c268670405c,1 -0x4a6f66b2c7da432d6c3fc26f90aa1250920f578b,1 -0x303dd6278bb88ff0aa1c6d9e54c1ac142ec3d84e,1 -0x0410d85d5fb8a8b5108399cfe91b884acf21404c,1 -0xf6394436ea2085a0645878f99e6e07392cc5d692,1 -0x0e32587d82d2509f31b4016cf70678df897a1453,1 -0x8f5bfce6fd874edc5b86dde2dbceb37274d338d9,1 -0x25596712315084eeb74feb7ec667017a8dda8f1c,1 -0x25f817b452e7ba924435ec5fe05b731a3a905d81,1 -0x6fdf6524692ef7bf426a6b6bcb4a54c86ec75e81,1 -0xb833bd24aada67241dc014a902de188df289ccc8,1 -0x2e089bfb864d196047f160039508b89826848550,1 -0x0c7e156d6d020c7da299d59831c0c9abede473e0,1 -0x27a4d7c98c6fd65190e1deed5c588bc43c92459b,1 -0xb1f9ff2c9a2fe6ccadc73e322978e6410fdef4b8,1 -0x84d5615f63a7e2a4e29fd76aeca916f0d6c9448c,1 -0x5dda84c0b8185a227f6f8b64a15ce7a7613ba72f,1 -0x7c665b46c6ffa21d1d33e79e94da8f6a81ad3b83,1 -0xbf4384e296cdb78d9e48083e974a801e0fd95f3f,1 -0xf59ed69f4db64d9a51ffac04bc608e9c567ff887,1 -0xcff28fa2b443d44dc5dd5ae6b4d2b28fde2fec68,1 -0xf3781dccc14763d6c82d0944ee0f0503903823f6,1 -0x6a9b4bd87aa49574e107556fdeb9c7eb1c5f03f5,1 -0xd55d4ce19a682a6e6d30e24583f3dd230bc1763b,1 -0x3fc98bb4d0642622da044b6cc175e3ee100c0963,1 -0x44cf9689823f5d82ff49bd6d6dd9a7bc7b910da0,1 -0x12ddb6b13f472dbaf1f3d874bb411279186cf344,1 -0xfefb5b290f74dfa5fc4b43515d029281614d1680,1 -0xd534f02c86808fe93cfe793a382db2573d16eef8,1 -0xf0050336d1b33fc14738f4108152c78fd7457889,1 -0x47886f5343ebbc0678050383ce1caaa40861cce9,1 -0x95804bb715a4f901b42b906608f2b9c2e6b6f768,1 -0x461d42b8803927fe7bc04eb7ffa8ddf5a66e32d6,1 -0xfc9af641fbeaf1ffc7144938f22cb03c43cb70ed,1 -0xe0792b03970f7fd6f79a38f9c51d82c91f70ea64,1 -0x13522132adc1fc8ba45a95b7d2be36c03f239af4,1 -0xd587fd90c59af7090a771e5015a6d6e318ba72a2,1 -0x15542ed0b322e3d706490d191d41d4c6810567a6,1 -0x2aaefb3abcba0bf9b1a906aac69819ee9dec670b,1 -0x373c0c950a31b460ed2b0bb6944fe19e5b84568b,1 -0xe802d484b3bdfaaa2e5f3b8e032893d1c77810f2,1 -0xc6310184ac79c902846910285185340877970425,1 -0xdf440c14103af0e3f4293bfdd8b21754e02d1bad,1 -0xb9c7acb3e169d0fbe71c138409529e1df29b2f8f,1 -0x69718af41d7bdc55a9cfc2a8e5969270c93f0914,1 -0x1d8a9e8d00f6b7f65dac2078475119bc02da0682,1 -0x078233d5a138cd05653813561fc27b2f1f32ba8a,1 -0x2c72b56d8c0a205fbd9127ead1811b56aafb2540,1 -0x0b1378c1571277deff68c9cb48c323c8af4944e3,1 -0x9b511061f59f594e6a21afd2cd2ab0a5f130b261,1 -0x3de57f2679e9f3517ba1bd1bf8fb03b9abf765f1,1 -0xfc96b1d5078cda2b81c2df2efacc6946f2b169ee,1 -0x7e7d90a2af2fb84b7bb5eeeafbac947b215d5ad4,1 -0xb9d347aec9ce7b62c7e5fd6605af90bac0192528,1 -0x96ef791ddf36416935c1099d0e4cb6a3609ced61,1 -0x4fbd24354bdaf18228f19b5dd5728e9554a0f681,1 -0x7522039bf005a38d19c9b574d8ed3e7d6433e7df,1 -0x25f769fd43099de9643d83038821f82db195a844,1 -0x8e58adac124fdb6e8c4a10842e8808d0feae7413,1 -0x642afa4ec8d84487faebad4d6964965fab1aa1a6,1 -0x720df068ca59f885da677986e7b996841ff7b38a,1 -0x1e02acffb6f8a608883bfd900a7bb7335756534c,1 -0x47b2b4dba3618852b6570c2d467b7a56a035a589,1 -0x4eefffde551cf43c64e058e484407c242931a715,1 -0xe024a7252d14d2a911c58624c01f62b764f12cf6,1 -0xebe86d665bf7311680fd4613706a2837e6cab8e8,1 -0xc9af7bcb4966ea6d28665ce12d34f892f05f0e59,1 -0x89135f8ffa1e107799caef5328c6d3ae6e7d849c,1 -0x1ada64bd35545dac88503cc073012cdd9e149573,1 -0x7ab348c8f488a95fb26531648295edba50a5e6f8,1 -0x75a1644abde9c136e4e459d8cc3ec06b6905be3e,1 -0x6e6ae2610f23e3a59fe27b191a8857ff90838133,1 -0x41211f81da815c93ea5ce1d3ee563ceb7f4d2c43,1 -0x0f5c13a5ec41fe75975a5b1e76d32af6af62c361,1 -0x2f6cc67dfec133d145cd2f295a2ae5f3b359e14c,1 -0x3efd0a574df41cf0d3582fafbca84a909b8e8e2b,1 -0xf3c2b92755336ec3d1b8ef006519a7bab23d6b29,1 -0xa7faf09d160d777c98beef579087266f6da167c9,1 -0xfb8ef9ddcbce6c25e01ab67f901813cc63bae64f,1 -0x0a4b4ca6fd926d82b2be41e1c8017e811d7b029c,1 -0x68962fe753be22fd98579d63fed69862120ad474,1 -0x998aa4ad02a919a853bd2762e9152a92d2c75ab3,1 -0xfd61350f8d9041a136fd38eb427d75fc050876e8,1 -0xa77915f0810a5884ac4ac83f75a2eca6cb925984,1 -0x96a3092fb085a3a2b15c00968506b9feadd60056,1 -0xe0746c5c3a3e96ae53496afdaaac9d0c87df9621,1 -0x2edfb1a49e62e2ac30d63405158b9c7ae799633e,1 -0xb85b13856c2ed202e07f7c4254101e4acf975b39,1 -0xca5170984edfd2275dcb65aeefa0d41756477007,1 -0xb7b104178014f26739955526354f6e0ea9ccb19b,1 -0xa17bbeb24c00e3b0eff05687720cf7456662cbdb,1 -0xf84146135d2754db7f086112a221a001ca6277a1,1 -0xe0680981e3c86ba68f5c3160bb9c96a984f4dc00,1 -0x59a150c20a1ab1553afd42157efee6fe7a7b5926,1 -0x4f7cc18927b0b973fa11e8861e9a9beeab7f4e65,1 -0x1145fdfb4d797e0c4c25f454caf0ff3b6f728da6,1 -0x00722bec749c008d79cb996251645235b61194f2,1 -0x526547d317405f24c34a887c4eef918c6b918c70,1 -0xc9fe4bfbc7f39b5353c13620f84bdd3a10359504,1 -0x935ab0d8c81070f8198985c8a312f74caa2b38e0,1 -0x5be0bdb98c5358553ff52773daa7ffd23d247063,1 -0x740be0eb5543da64c8e2a3b695dc89e83caba63e,1 -0xfdce2df23bd6265e70dac81d136349a106252fdb,1 -0x9db2e2c16846613d858008051943e3e857cd85c1,1 -0xd8ca15602056cad62c65feac7e073624d457697a,1 -0x96ffaab6f4d71fca3507ecaa266707f1a4aec969,1 -0x7801e809c4b5c73314fc74f81443b6e3845686cd,1 -0x26237fb92fe1fbf8fd086a82c60986134ae6ef0b,1 -0x082969b5dd35f4cd4293a75158aa0054197e8e7e,1 \ No newline at end of file diff --git a/eth/holders/hlk-token-holders.csv b/eth/holders/hlk-token-holders.csv deleted file mode 100644 index be0efa1..0000000 --- a/eth/holders/hlk-token-holders.csv +++ /dev/null @@ -1,343 +0,0 @@ -HolderAddress,TokenAmount -0xd1d26e8f7c71781fca279fb8d0a374fba9431193,116 -0x0bb521bd6b2a0eb81a0750e0d78c50917323d958,45 -0x0ccb2e9fb6fd9a0cd52369c82b1fae2885489ece,31 -0x1acb0bd525b02e48fdbe96baf4ea366d7fd32aae,24 -0x363deba39c26918594aa8c0319293fa50be031af,20 -0x4d41e3565e5772ddbfe07fbec98013a688920806,20 -0x9eadb4c0e373404e89b8916aa295b9fd597a0d91,20 -0xf1f08a5996e7790a58b251c5de3c78d755c103fe,20 -0x5ebcb20bdea4364b3c127e919192f3734e44c132,16 -0xb549e9891c7a2a5081305a003bbb02ac2ce308a6,15 -0xdeb740e652bd1411bce53db7a9caa7b93c4a8a9b,14 -0x6984abf56f07a9b77f9c86505662df02abd18ca9,12 -0x1c0d75faa13ee79f746618833689dccf27081b0b,11 -0x391b87b1e72d6743e09aeeac7972adf06e42e8c2,11 -0xd7941ba4c875569f7730d28c22a7b3ce62a1d4d4,11 -0x1fde2e8657f0ef39f2fa599f8718ece16a750377,10 -0x2296604466f30e2f308c6945d6320a5b2636b2e0,10 -0x28d97add070d26e55c5e4a5f863f1f5fee7621df,10 -0x32f1e28b7211ab43024c93fba05bf1b8a10f6a8a,10 -0x3eff592ba8a49f915e38b7274ea4ff0aabac8eff,10 -0x477dbec58bad6f6318ca70aff2d9953ba3b4dcbb,10 -0x5beb15bd30407742cf284d3061f6210319d58937,10 -0x6920baf4c25bb7ac405df8b2d3756dcd51272324,10 -0x6b993428cdb4162cac6d9749abb352442cec760b,10 -0x80cd06844cdddec53889ad845a08383751bd3320,10 -0x91db62bbb2a0361dbd65a0e9b2690dbee8b55b30,10 -0x972588106474dac0ae166a5ce335d6c8d1145766,10 -0x9fe24e47e1645708a57261dfe6719c54c0ea3fd6,10 -0xa019b8c19144fd14b61436ab3eb39642434a1a47,10 -0xa9ebd285aed3e918507e1a15188f4986ffbbd1f2,10 -0xb1cc6e3750e6c9aeb5926fa579fabd9599d96a75,10 -0xb313d19a0df3ce833546305528738157ce9f05de,10 -0xff0847bd6c84bb02bb0dc617e59def64e309c756,10 -0x414128601a932e7dc45355183c8a08a46e6497af,9 -0xc5e349c8b9b381e2e849edf2de38264e60d0c2f8,9 -0xab9fcac42ce5614c592426b80f3a34c3bdfde698,8 -0xcdcd48f77a34dc3e1d12a0f93b77677c76993865,8 -0x07d5e4470b13d8dddcb9d894789197e9366a953d,7 -0x08d6191bf9548c41d1deb3b00ff70a7539b45841,7 -0x4a0010c14ae9c0e7cd07a10a8860ccc9929afa10,7 -0xa6bf3910ca1d6da87d180b3da6237a50633a4c72,7 -0x0851885a2baec9be7b052fea94ff211e4207eef2,6 -0x131a6606ab4cf8ccf0f67caee009c04291fcb47b,6 -0x1478e099f87c642547687080e8411f711d874929,6 -0x2fb835ff22f0a648dbe6c1001590739ef365ee1d,6 -0x45238161e909921a3829c402537a10416ef55f38,6 -0x4a3e09669b55f0e935d962319301fae7cbd01524,6 -0x5cbe213efdae55806f6e3d9c5f78e0bf863cb9ce,6 -0x5f3299c51e55cd781f9e74069055bacd3f086fcb,6 -0x67870f365138e90115047e949a452401e7420a63,6 -0x9db68d2c65627f4510a49d70b527979a33c44812,6 -0xb079d24ba76df7208fb55a047275d1f8737654b6,6 -0xc3fcb65dc4d78635b84a4ae58f0bbda180b96886,6 -0xd200a85e8eb63db4bd38e19179c831543cb2d94e,6 -0xdc53a5b3281f67ad261f04f4e0ec6dce03eee957,6 -0xf3555d421c3f3a15091c508ed564bce3ed0b1f3d,6 -0x19f80171872b4545f419c2838278334b245773c3,5 -0x31c36f8488efaf972d4274a19e09bdb45b7b914f,5 -0x3d2f110f356ea3cbe501cbfd17ef12f17b198099,5 -0x4d02f7f8d039e657360aee2557a59794dfef4172,5 -0x59b1627d6c76bab46af2d4056a09e6161320c423,5 -0x69986d5af481c14ca1351c8f330a34a0afcd90bd,5 -0x6ee52ddbc80aaeef68023d484cf7f9444d10ea21,5 -0x82809adeb2619765553c45abb7cd02ce5e6c933c,5 -0x8c36aebc5dc85b88af2cf4cb674711516cbf879d,5 -0x9e08e4f318ff3633f1797f69e2afd77964abf781,5 -0xabcd831eed69fe025aeee88a6a8770ef30303161,5 -0xad76b250d59eb8ad6b39094aa3eed9578e7ce111,5 -0xaebc2677489fcd40f55f823736b391c2e1aca4a4,5 -0xb1bd6e10f13ab9c4541bfec5b9f13e372aa34104,5 -0xb718d1332bf366d5d27330e828ea85e6be5d2b54,5 -0xc6caf3e706973331524447158f20edc0c5700291,5 -0xcadb44cd5c22908896676b9b4cba0117a138abc7,5 -0xd3e347bb97e7a36c1f0c356d796a3b92cb4d9a6a,5 -0xe869860e90214cc9cb221e14b83149bce6b15fb9,5 -0xf3f7b3ede0e1955dd011017ec038beddf30c0356,5 -0x09846c9ed5d569b3c2429b03997ca9f7bc76393a,4 -0x20903153d13ec240fb89faebc9ef65cbc6d80eb6,4 -0x27f7062d8747046d4c367e19a999518d3e7e2ab1,4 -0x2d9cbc4ecfbd1b8f66aa798fd51585ae058daa8b,4 -0x34543aa177d10f4507014409126e499e28ac122d,4 -0x42336c1dde2d35157147e34898286d36ec5c4b2d,4 -0x51409bee46664b9044731824578b9d3213bfe647,4 -0x5c8762d3e00d60a2335220ca47dd5a7ee9f7f3d0,4 -0x5d02f0d074b28c31697bf563c699c098532fb151,4 -0x5f92ee31e3b9791ae4cde737929794a5b83db695,4 -0x62eded46a1afd3521529ca01a7d01ab3978213c6,4 -0x6835c12ba1ec58709a54871c38aa43af7b0eb248,4 -0x69f6fedb833b8a4e6b2206255a907e7c3e212c63,4 -0x702085684b5b4229f1017ef1de1e774631e12865,4 -0x87dadaec173d4bc12fe94b7f47c66b6229084eff,4 -0x8f722655f3426938ee1897becfb392b27a742812,4 -0x99427af6db508772aff31579f16aa72907ff0496,4 -0x9d3bd8c00fb68d94d7473a7e32bccf235f747cef,4 -0xba55a4ad8b09c532fd5f330768a5c415e5cd689b,4 -0xc6334cff18eed8b3d9c087af7397d2535927f7b2,4 -0xd4752bc48c04beddfe4ad2a1396ea233e5c4f3bd,4 -0xddce1c53b307558af995a28245a279aabba4b37f,4 -0xe35204e44a5cc128f2d3adbc75c0e17b7f6a93d3,4 -0xe874c776cf8aac61a6808e305f35e81063c99b2b,4 -0xf699cac76cf3a92f4173f4f827adc7ba300b77c2,4 -0x06e1ab8baa241b8a527dbc320573305c7ee80528,3 -0x071132449370104f8cf2c2b15e65339fe10b2ae2,3 -0x077ac19ff94d46f7155ea660c92ab53bf8868763,3 -0x078ff97b956203be7d6ab97d56e6e1e9756dcab0,3 -0x0e66a715078a09678b040aa654631eefdcc7d234,3 -0x12255ebf6d31a153602a29da68d55cd0305adc47,3 -0x137a2129a8be4c080dd6584d3130276e141ca005,3 -0x14afd80fbea9c004e07fb8c60c1c8b4869b870bf,3 -0x17b448ad15dd8f53ca29249b9960f5ce2c9bd2a6,3 -0x239e46a3843058a62a199d63752f788d132fd741,3 -0x24bb3fbba92b9697487b9ce7e216c03a7e6a38ce,3 -0x29f4fe365338c828bae61230e849c156a433c15f,3 -0x2b4e149e02a4dda35c977e2959f9a27ec9b57bf6,3 -0x2b8151fe3f4fe70464276850b3bb6437af4a4a77,3 -0x3b4db317b8150ddf1358fab34acbbc60f1099192,3 -0x405f76aebafd61b3d44cfe12c61416ab37098c4f,3 -0x40c2e074e94672359a1d4ad0677666c514900efe,3 -0x48ec9d21018e9a8e70d26ac936e53ff4532ac8f8,3 -0x492376381366174e5358b75dd3fbbff56b2233c7,3 -0x4e71fc7c6174fcab3d7b79d1f07ec6263cc3ef7c,3 -0x4e937ecfa028e512645e25b9c1392f87a324a291,3 -0x522608fdb35df2ebef8e2d3902b98b9c56e81b7e,3 -0x57215145405cf086e9a5a0135199515987f7945b,3 -0x5c79a96906acea87502b8bcb28fa30ba0ed29288,3 -0x5e8bb171efb4ef1da79479c794d5b8ec550233f1,3 -0x694657e1652c7aff20240d5dcc9566a3a641148e,3 -0x6ebb90f9acbf280707c6ae4919c97dfc8d90c786,3 -0x728537c54b19f1437ee4162d1578b7eb52665918,3 -0x741e7b4a449db1c0f34312716dd7ba46ae0b962a,3 -0x760105f66d34877c2bc43c6681a0e40ba2bd5a02,3 -0x7635f317b8b365dbff2e87aace9a5569843f7699,3 -0x76effc94545b91ec0d104da0f8fb57bec77673a6,3 -0x792cad19a3580bd89d5767e0c40444b2c8b6a888,3 -0x7bcb7bd67648d9f3cb4d73c77ec6b91f5ce6441f,3 -0x7f5af509de65c41f838ca41da71297b7e6e46a4d,3 -0x80c3ea7cdbe81fa33df114c69094e682247ebf00,3 -0x80ee6671a09dae86c5f01fb67c94fa660070deec,3 -0x8348142049d036042056854db492dc20d3cf6583,3 -0x89e044d3b45e2a7a30bda6933f38eac9a129ba41,3 -0x90640954810ab29ab0514dcf4b15dd5344ced86c,3 -0x939b43b85a8b24f7c37e57db68fb80a3556ce3ed,3 -0x9ea0d30e2c80171e1aece22d41f67c0b4aa02bf8,3 -0xa1023b71ba67023dc0755b0a69ad49763ecd1a89,3 -0xa2e6fb5bc88fb29a857c5fa8d07500b135dc1d55,3 -0xa613e0c3d9a7d9b75b29c094569fd73e0c770d26,3 -0xa98076c27df3dfe8af5d68d8be88fec50922c07e,3 -0xab501997f3d9f929f0a5f5278ef7403b50693674,3 -0xadfa18e47a362ad034486ad5a7f815557a0070aa,3 -0xb06b7777cc550624c15a0845609910c29c5b850a,3 -0xb0987e408cf12202365b7733c6d870c2b91d01f7,3 -0xb45923280468f3d51c5d2841cc2dc1a74786a330,3 -0xb6517c4cdaff29181ebe17a8a52238d5859d7db2,3 -0xb75a2be8b62fcf8f06f1b9c6328d6a0553086d8c,3 -0xc242ec6cfcc9d53efe7b8f9ed649583e1cb1e137,3 -0xc3639c32cf14277ae6e9dc55f956826daa163fe6,3 -0xc6dbf031790710e6d249121dc371d8575805515e,3 -0xcba3d9d6df166f2c2d5b010c60081bd81109efd6,3 -0xcd46a5b5478b7cce47aaf139e3ab469f091fafe8,3 -0xd5fb9801199ecd9dd072244c7cdd50fd3607e3e0,3 -0xd602900f5e73c9103a4f9d31729401f6a4d1dddd,3 -0xddc6234aeaef5625954995fcd5d097d78c4431ee,3 -0xdfac3142f75e9e83ee17865eed5bc7482e574f1c,3 -0xe0d6a1312f61029a3db62dd455c039195f7ab4e1,3 -0xe118b4f9cffbce9530831ce1ab8d426e6274ba47,3 -0xe4208e0c56ceb31ce65a442792b0928265ab97aa,3 -0xe5f45d4a5941819125cc72f2bff275d37f4a56f9,3 -0xfb5be301df4fea08f72c253b4d80f606834b3572,3 -0xfec96efee9f1752b5ba19dcfc8afdfb7bd25b977,3 -0x06d143b42a3b314ece47b09e393e1713ef4f6e5c,2 -0x0dd51fb6bcda54203056e9666299ab9cd453ef82,2 -0x11bdea140cb111ed24110723a1577b03118936c6,2 -0x14e3851602229456ce6945deac915c9b2a132508,2 -0x17e738d9056cf0926ffdb0ff15da4fe64661c867,2 -0x1c5a1d2915a59436752d3519e5a39c8f454f5226,2 -0x205005a3bd87763cdf8aa0f8ccf768222b977491,2 -0x35b984a79b760a771f92855603fdfdc583a83aeb,2 -0x38af7644b120b56e2fece98b8a9a3de14f8fbf1d,2 -0x3e1db2b97938424102fda608d587b0defd0c162f,2 -0x4235bf31d109eac8aa5c6083fd0b983f33c572cc,2 -0x434f1c02a7d2023feaadeaa66deb12e8f1a8d136,2 -0x452fd9833ca76ec5100bff9f8c2a05831ec9fa6c,2 -0x45b3f409fc3fdc498ad8e7a2e94a2f679ac27aca,2 -0x4952631a64643a3eff9db923cb7d2e9d69101ed3,2 -0x4d191c7a781d1c7103c4050cea12c0b9c7234f75,2 -0x5808f4ade3505b818d8abb54154d6224045dc1f7,2 -0x583c201874d7db4e4f5cb99478da3e6ed12126fa,2 -0x5b33ea8b7836ff4d14c75f0d461fc67a23d777f0,2 -0x5ce5fb71545020263b962bac91983815c5faf900,2 -0x5d23dba47f5257a017e8a4504bbf45f72e93b795,2 -0x5d30dc36255ae4ad6022c7b8ba640e709993c4d4,2 -0x6218c88fa911c38f335cbda3b32205c8704fd721,2 -0x797f62310412ca58149c439ca1a915bd3216cbcc,2 -0x7d31223da624e164036a27aba5add059b353ec9f,2 -0x7f1b9bd14a0cc46d45a938c481b1910d6584fcca,2 -0x86d8fbeb0ed3093aecfd76b8fb4b789dd7de2ee9,2 -0x896fed8b86eccf6e8fd9a98e325325716ea76e71,2 -0xa3bd15f1c7e88e5df7c72930467bf162a0297a34,2 -0xa63a25026e2d86fab7a23af924f425ac92a7fa24,2 -0xb23190aaec1050c2d85c4f8cfbd09d2b45c5a1dd,2 -0xb3d6c17dd4f7a7b6c061c8ebe74f56a818613a0c,2 -0xc5ea2ffea98b1a26dce30a3e49e31432f70befa3,2 -0xc8d6bee318a867420b8f3e2032f058d80619b650,2 -0xcc23d9b859a24e1368e028aa5c64cb7caf919e06,2 -0xd3207414f8f0dc6436098660a95763f441abe83d,2 -0xd3dbc9a15c2a2d3a6e9a816928b4b139409190ed,2 -0xd5d6e598f59e4ca3c2dda5374ba7aa66f1cabac6,2 -0xd7c732c58449b3becc4827ea8cabf6f9d9ce46c6,2 -0xe32e96ba2e9ed7b1d1ef980d60f3ea00fb6e6c41,2 -0xe9b9a41075a3d168180046fe01f07ffdcb05119b,2 -0xea8e50d517c6a4b7d1c1c68bfe6f7d241a8cd12f,2 -0xecdff50dfbcc02ffd963286bc676c094b79c3381,2 -0xee6c4c4bc8bc269f6380756b300a060b8d583c49,2 -0xf4485e8fae8e3295ec21d8a686e5f222284d2db8,2 -0x00033f420f318bd5b0b9eb2bb005a18818630b96,1 -0x0018dbc11b9dace64ffa15303ac2785e6234440f,1 -0x02bfa1de8edbcb6236921d04b71512bbfe1971a6,1 -0x03a507043314ef13a83afffbaf15d89055f64666,1 -0x045b5b8999df21cfa85a9f571b36bb5cc5afcacb,1 -0x08d8676a8d729de31c3a85b2369191da7d3d40a4,1 -0x0a00175601827bf8094885310338b5186e1bdff8,1 -0x0b3d84b4cbaf363a6eba9a85c2467428277abc26,1 -0x0d322d8e46570346a2b2be71b243890867a48bfa,1 -0x0d88697e0b6cb01fb49e0c3416e4413da70a8d6d,1 -0x10c163364fe153cadf6532a5b34481eefb99d96d,1 -0x11b963036d98f3b51170a7f445bebdc44a1c1cf5,1 -0x1827d3e38eeff09f349aaf2e1ee413ece15c0308,1 -0x18fbe7878f4c447d97bac1ddf3523d5e4155fd21,1 -0x1ae95e5700184703a6bd67ec4337ccec56267358,1 -0x1c88583c03a2e9277bf6043e595dd83b19dabf64,1 -0x1fa47ee12afbbb6081f80726d3093efd57eb6194,1 -0x1fe8de7ccd3f690d839e76d935fdfc90faa2aadc,1 -0x2316e34fee278571a4f45d81d8efa06371b3d735,1 -0x233d6e258cff7e30abb3c566143ad3ba99f7ca9e,1 -0x2341912fdc39ab158cdf9f4c10b19ace5da6c4dd,1 -0x24f5edb3135223b4bccbddad5928ba14600dc9f4,1 -0x26a684a266ca87620ddb190293823fc2a6b2231f,1 -0x294c0fa8a3d45782ca0dcef8c8216b5b3dd10aaf,1 -0x2a5fe45808603a26d0d227e884ba7f5e72b81021,1 -0x2bf546648af2d883c7c468b409fe375ecaae8525,1 -0x2d01867ec76e026f629cd0b3fbf1d91b31d2048e,1 -0x2f262bdfe6e355b3a884b5bfb0d55ffeec578fbb,1 -0x30697491092a1d54f5a037bc0b6f38d6e2b01833,1 -0x3196d0cdc10edf96085bb487f3452e4d70c3ba67,1 -0x33777754e555adc3bffebefd833497bf6bdfb727,1 -0x361fd522936786099d6820884315ff8d56777e3b,1 -0x363e739add909e69485b1bfbe75f30b1ce687049,1 -0x372c8ff76faa14ef10dc553340a60278548dd618,1 -0x38276a7a400cca803986e99f023166dfe6c2c492,1 -0x39605f4b38801d963c505de0ccc1445c16e2d116,1 -0x3a4cdba6d81c702a592f7683963a87f12cb946f1,1 -0x3b3c41758249c5d675d61775810bae93d35034e2,1 -0x40cd1b8e97cc430a52ea1194e10f7843b00ba18e,1 -0x4466fdf8b168abc2aaf4c4869b7aa2f9e03bb6f1,1 -0x44cd1eb889948cdb00c2b18eb5d064acab745735,1 -0x4a7d2ef9f5a618c98089c60e23e461b4374701ce,1 -0x4a89987a01462a0a41cfa672a6bc600d32ee0a47,1 -0x4baef3190235c0ab06c2fa0f11408f69e9d611dd,1 -0x4c900a390d7ce84eed0c8268aa0436280dd3b837,1 -0x50f7ece9183d1894e7aa9b6b770b6a4bb2b7455c,1 -0x53815b9b9eb106c8ee98e0cb32085f37cee9172b,1 -0x53965cd7992bc61b4807aa7ace3bec0062c90de2,1 -0x54f9564392ced35edcf3e6554108c81f26dfae41,1 -0x564c52535e60652e77b1b4961a1e92848bfeba15,1 -0x5960d61a0622fe7ee8bb332db1bfeb2c0ebde514,1 -0x5bda332691bb533c42c3fa978b914b1479b01b2b,1 -0x5d06bbd476deb800a1ae6a4a8eb12628580d837d,1 -0x6184f98f11c2b5631070aab65f3e15e932fe4340,1 -0x6210477b3025bf5ea50a35d39e7d2875dc11661c,1 -0x668ca185c3cdfa625115b0a5b0d35bcdadfe0327,1 -0x66c6870e9d4ccdb68d38d9cf2beb23c791085e0d,1 -0x68376130d60cb27e0fb6e94a01ca77e4a8550872,1 -0x69bd9e7477fbee5e0d41a7d55f6b459ae4d7fb24,1 -0x69db2e3b0421f159b18311151db9e3eaaa607cd1,1 -0x6b85b562ed739c8c434dbf7c0b9602e3e37dd53b,1 -0x6e777e0684841c590ae82df4105252b17e0e48a0,1 -0x700c80cba10801b020279820fca7fbe3b9e54928,1 -0x7176624352ed1af51936cc76860da028c39c69e6,1 -0x71943096a0b5b0c0ca002b8598620aa71e142c25,1 -0x74c238acbb6e8c0f1443a0524643c38047cc9cf4,1 -0x7a26ce1f0aba6837c11da35bc6ae849de8524412,1 -0x7a631b4a6b1d0a6b1e433d92690d7c8aba4f23b4,1 -0x7c15c86f4aab4596a38dcaa081dc1203352d9e42,1 -0x7e54b69600341571d671f6c3e10c27f83233e481,1 -0x841c60e01f596f91f2f12c1a24544219eb10bfec,1 -0x84891e81ba863c299b782f03cdcaf8aa4a2b0999,1 -0x86143d0113655d688c1c4e92a49fac1b32268087,1 -0x875f46b18781b5ff03e02e264eceec0c6c61e56b,1 -0x8bb2b6a1d0b57d1833b87cd1b9fb88541eb77c34,1 -0x8d2f6743938a439ba9d4ef1619e5566bf935033a,1 -0x8d39c1f5081bbc71241a15d58699767fa13d4ec6,1 -0x909c98be61808b1545f439c0e0976fbb2229ef0e,1 -0x98593125193c4c66003948d19a5800d2729dd909,1 -0x9941241fb469024a5cc9cb94db1e5866a70694b9,1 -0x9974c0bd5be697c45b659ae9cf4fafe2cce73566,1 -0x9a3694eaf539b403e9e96ac9eee76508f52e1856,1 -0x9aa26ddfa477983fbc00aefc05d4fb1a67907207,1 -0xa23fe66186b3fbcea56e4b3cb26197ebc2eee87e,1 -0xa4e617acf30db8de68e9f54f1c9bc628f93c41c2,1 -0xa789526733085d9cf663162ac02578040c949446,1 -0xa9dea8bec24233b274a50867f50b801b0042abfd,1 -0xaa3c6c95d1aa9bb27e0c98fb268702d9bda87611,1 -0xab036ec63d96c6ad9b7fb465294e3a4d36b0bc2b,1 -0xacb818130ac9cd4484848848a0ca3e7dda4bb265,1 -0xae0fd81b40ab4da7c8e0bbdc5e26e6341c1d62bf,1 -0xb2c4e87b89a837c72482d1571f7a7e5435a3be8c,1 -0xb3e7e854a309e1d693929b3c8321424ed6016753,1 -0xb93c7e668f74352066e297e4e3184d088da22b01,1 -0xbbd22e74deb5e394895d8819f40c80fb6f4b3962,1 -0xbc25ec02b37c3cc3b71b25cc6b53aa83db4731c6,1 -0xbf100008094a3dc5818bd80e2ca40ddb6daddf7a,1 -0xc23a1d93e58df770577e2fb6d2e20dd8856b43d3,1 -0xc4508a37239dc0e56fc850e47e79c3353878d295,1 -0xc492c9ac8e9ea32e9082726f43e01220618318ee,1 -0xcba76f016808ddec083eb8bc0de93efce96572ea,1 -0xcdbaec32ee867e7bd329fbba630348c37235d453,1 -0xd02ae0f2687f47cc74e37a81e9df85a12130d772,1 -0xd0819fe2461d359a2743677212013ea6a12283c2,1 -0xd41308f50858da2b7cc641e493fbddf34775393a,1 -0xd5a5699041a118b889f5e76c7dc21044633a2712,1 -0xd5bfc2bd9eea4c70d5be199477ff720329fdcafa,1 -0xd8072c8c4f96a17e9dc4e38252814fc0e90b7269,1 -0xe0724d8eeeb0fb81ea6bbfa279edb76cbc9afbff,1 -0xe27d3dcede99d513f9062b46a2d19905717b0589,1 -0xe481bcf528c6bd442a52fcc9d25af9db1cff732a,1 -0xe67a6e8d685d59efa25310d6cccead619f835291,1 -0xe777da688e03fa5e4656a67e0b93ea45109f7a90,1 -0xeac88e10dd8267bc5b0f02804c6243d3eba64e0a,1 -0xed1b51094fd4df3a4fb8007a43a37e123b5e387c,1 -0xeec21715c69fe1140c16e756f91bca467327f0c3,1 -0xef5c844e19cb25fd1ef82e58867732b00cadd29f,1 -0xef7258d4af180247bd938681ca2fae04e16e4526,1 -0xefcf5c850fa6cfaa21af6564afd425d600999f39,1 -0xf12a5e8ba083bf5621ddb1f8287fa3d52d079ac6,1 -0xf4ef07b9cb8488f99571d626790055efa8287278,1 -0xf5544d177592111d3105595ca49037be4adbd0db,1 -0xf863929e18f0fd8a012bace28b2e0927390145d9,1 -0xfacdec64baeffd9d06128d29d52f2bb7a2df8085,1 -0xfb0beb6f95c8baea9e282608056d2f2ea342f421,1 -0xfb110791ed67ea32f8884fd6d960e44480ad6429,1 -0xfcdccfea679758e438411362fed4e8cfd200ce23,1 -0xff85dbf504d656592c3942816e12adc5fbb5c46e,1 diff --git a/eth/holders/monster_buds.csv b/eth/holders/monster_buds.csv deleted file mode 100644 index e1d2ded..0000000 --- a/eth/holders/monster_buds.csv +++ /dev/null @@ -1,3388 +0,0 @@ -HolderAddress,TokenAmount -0xc8cfac3f1e083d0ffa978ee82b7a5c4bec7b51a7,289 -0x0008d343091ef8bd3efa730f6aae5a26a285c7a2,178 -0xcaa1299f86744874f8c6f66f81f096cdea044718,95 -0x760d06eb52855dda4f27ed66e6adbe89c1dbd1f5,88 -0x771face11a14fb5c8ddb131cb1851f9531e37e2f,75 -0xb1cacc3bbddc12d6911b6424613ac845e577dcf0,67 -0x2ecfb2f430cacb4b8361e8f5a08e6c76e42410be,66 -0x0fa67ac110e442bac595c931e63bf0dcb3242c6c,61 -0xd6d6d3ead9c5165a57b7b335300ef392395d44c2,60 -0x3febb7a93aa9865c7bc1ae14dcc94ff0a7132d46,60 -0x6662304e3198c8d54530fbdf02a869fa84537639,57 -0x8163cceec5de6b788762051a175fdbd4b2a4466d,56 -0x110fcf02604f276f9fab52a96030598e1de79c68,55 -0xa2d2e484bfc5393eca657ef0c3e8c6c63c593ab0,52 -0xe7ae2e8811be1ee814d35b36dbcd107be60b46ef,47 -0x2f18b0b0d6c0bd56b6da2785ede406832f273d25,47 -0x896967704caa0f718459f68d2336e31498b6a4ef,47 -0xe6563194f9baa6e3064086a98bf73608fc17cbfd,45 -0x681a64617e1083c36cbebbd8ac9e64938d3c2591,44 -0xa7c9c91bc610ddb41e864cb617e8327914270563,43 -0xfa19e36d0321b22a3fca87e852c8c7c51b882dd7,43 -0x983cb3da627aac4d8c0979e76d9619af2f350490,41 -0x6f5b679e376deea6b7a0b7d544f34400f8ec99d3,39 -0xd0322cd77b6223f777b254e7f18fa55d74756b52,38 -0x0925d347f811d264879271d2905f54309eaccb93,38 -0x35bd17b9649afe0db984f921c7cf5b241eb5ee52,38 -0xdc954aeb2737e12a5042c9454c2c08e3e7e5b6cf,38 -0x3ce4ba9e7040ca2c21d8efbb26b7c3c1b138a9c0,37 -0x407fe60dd56c32d8cec52c20748683d4e5aa9ffd,36 -0x56511585a5a23dea48fcc0aa0a9a13800dec0531,36 -0x49317b33a82fb576fba1462364d02569e766e33a,35 -0x92c7e46e07bcd564c1a838ea5233256f9a0f34f0,35 -0x4c9b9ae7c62eac1946070b772d424af8647acd11,33 -0x1ba997cbf3eb16e7399c9daec17fa60b53f9c13f,33 -0x133fab28caec665ade2a67d1b360ea1eb18b812c,33 -0x103c1e3ef5ea441b18de28b78f858710b11dc5bd,32 -0x29833e6a24d64a382d3bc34d1caa631091ad016b,32 -0xc86e86a2e84d27060efdb549904f33cab026de37,32 -0x18e10f83e1102639ef8a4185b30d5366a2252be5,32 -0xea02b8e433d73ba0a44762faf0254b0183e359fb,31 -0x1825ac5015bd754e9c643481f50ac11a8f4bc294,31 -0x2e0d63ffcb08ea20ff3acdbb72dfec97343885d2,31 -0x43b42b17bab13b79679ce1dfa3f706831ee96f72,31 -0xc3f58fd90e93261ce18ba55287c6ae7cfd9aec24,31 -0x09516aee75758321c92de32fb6789307e20071f9,30 -0x0407e799b5ec310f37f77e11bb559ba9aaeadf8c,30 -0xb91b71ee17b6adc358c325cba30186758454b2ab,30 -0xb2d68609a7374d81ee096c965467bba5c20e6dd8,30 -0x5c140051f7b49db97cefa4ed57aa4c1f91d46c00,30 -0x2895e412d60af197ff293f28174f67c1db0178e3,30 -0xc60633d64e217425a17d574baa51d4d1f648d630,30 -0xdd73e2072a969969a3cf54c7da7d93def1416fb0,30 -0x5492e0112e49e5fed0a7b1278c76df655e509a99,30 -0xf53a550800de2523c8ae1845db20d385a4a83c56,30 -0xd80a70370695c68503aaf1552926d6477e585947,30 -0x5cc8a75a5dce35b56ecc8bcaa984598ce1e6d3a4,30 -0xaaf1bd09e780c1c71e20929708154271e7a36e89,30 -0x07834e0a49149811b7763849a5dc4b6882fe0da9,29 -0x720a4fab08cb746fc90e88d1924a98104c0822cf,29 -0x23d741527e183d2eb5af6a14f336fe08cf970d34,29 -0xe7117e5291f47af3186c11cdb2f3b134775871e7,29 -0x8a08f5acb45d1c28c5db1f0f7f02ebc9a3bff731,29 -0x60c1c80bc74637fde43823d75455b580be9c6aab,29 -0x7d761b63b489001273461650ac85a6b8ac2cf4df,29 -0x84f0cee6916d7bdceb696ff8d8dd6f1ef0d18e9f,28 -0x22d9b7690ede5eef0ea93726d746e98b3df4dd99,28 -0xb747add394c09e9a222092f0c2efd63c000e5be9,28 -0x64072ae2095677ab7e8df63e1fbae89b6366d6b4,28 -0x7165a04c41c9e5e67d4850eab1dc6ede84d117f0,28 -0x6fdc859bfad3bc680647c8c58530faa039e1fc03,28 -0x167f79457c6c18918c6c994bc39d6e03ba05dd8b,28 -0x95a0d43072d4b605a26480da0fd6ee5c490922ca,28 -0x85871cebe4f54a9b737bfcd2fe3fc0b35e6c666b,28 -0x2bfacd1873d8debba69aff1de149d83c95296a73,28 -0xac57887f6bb71f993e18b015fbebea6ed1524ace,28 -0x18867a60b441bf9571b337e1792d92f1f3cb1690,27 -0x5a61ff4f0a6b6cf99c756c45daa2a15cfdc16ad6,27 -0xbad69c95bc16bdc6f3fab21793afe4adec34df39,27 -0x132d7688c80935e013668a1a183f9d133853ffc0,27 -0xee2f89cd8513cfb9dd4f03ec36e4ce0b04412c47,27 -0xb565b99bf5603a221004ca9f8798bc3eacf3e798,27 -0xc9f7bc0ed37b821a34bfd508059c75460d6efb37,26 -0x9bf9008c638b1b46d5960a3c5212bcd3b13fe5d6,26 -0xc3a8b0ee40098e32c1d749ebcdc6c144ada911cd,25 -0x6c2e99e086d4cd1c760dc3b979fce5846968509c,24 -0xe874ae2e889730f81151daf265d2bdf2bb5dccdb,24 -0xf636b6b5913ee5c3bf4d52d13ce6c40179c794bf,24 -0x4c2b6801a640423a5d302d3fcc129f61a58fd463,24 -0xee636f6a95d6a8c7a262f346ab06b24d28b03195,24 -0x07198e158c787cee594cd941e1d9bdfac81f7764,24 -0xb8c3e2e2a3465b74b7a57f8921a1c3f6e69302e2,23 -0xd4bcc2844f726e3aa4e7feaa4a4a55ede001415d,23 -0xe77f50bb4734131b9dac49ae9ba243164030d1cf,22 -0xec8e08da68e0d9f1769a45896c4fcb2bbf5b8756,22 -0xf348366c8df3210f021ab7b40b8015a55e90dda8,22 -0x6297d8f6832b3152ebbb679b6902f2d0c010940e,22 -0xb236f2db2b3ee831564560c430ffcf0e2a77b626,22 -0xec15c18ee20c055aa597b093f9b273ace632c9e8,22 -0xf96cb1bb32542129b2f2f3248e90252d7291f27f,22 -0x23c988ca97d1898b308fb19d07c3b2774c696d59,22 -0x3bd77b00f02c8bcff586c565e2c5e6b6c5878ec3,21 -0x0b7d6664c84b2530a995dfacd4475f759a295f16,21 -0xe00a7ee3d4de8ff97a99e37466ed9821648dd3f3,21 -0xf433bdbf45ae8396805f5882c9f395b246e62af8,21 -0xda6ad74619e62503c4cbefbe02ae05c8f4314591,21 -0x2ed8b9f312e7f746687c7545fe7e22adcc1709a6,21 -0x17145a69a96819358f942f727ecf9cd20ea10935,21 -0x6dd35fbd5adea4afc4ae09a43126a460aa273679,21 -0xb3e4f19ecca0f0028f5b20d9a7187f981e191d9a,21 -0x19d2245fec89d5e5eee9706dc7ec911b2241cbb6,20 -0xfd0d8b38dff4dd5abf656b752fbe996e360cdc1e,20 -0x1684427375f4b67a03b15721f9269d3a79217e96,19 -0x8db375c6a485675af09764f83604ddb95db08a2b,19 -0xf0b33ceafab33f5e00a86d74165e21e7b8a75fca,19 -0x6478c54d7e93801950ef4970424d2e84bd1a7ea1,19 -0x0e562273bcc78185a447e516288704edec6c5622,19 -0x8d3f70206c4547f0844b9d2a6f3639634ee0bed3,18 -0xba06df8755e8d19da8855a92c778507c162458a4,18 -0x95fe3c0101b4348af50d3989810be0ccb0ddd81e,18 -0x3e5ea631c54084e3b8470464511ac0ce05725ce3,18 -0xc13a80fd29cddf5290d2e301b3121df0b73b4401,18 -0x7bfe09ba46a974ded1334b8671b836f7f35ced5f,18 -0xac59adacfc64339dd1be47f50d77389deb552cb2,18 -0x1e4478dff7a83392ea03c0154a21a937df405230,18 -0x79b723cc87142514a33c472e5802a26499dacfd5,17 -0x5b85988f0032ee818f911ec969dd9c649caa0a14,17 -0x2df3f91a9947b652d94040215846c2110343c399,17 -0xb83daeabc2189d72bbf0e8a8a7dd77676e0051ef,17 -0x147e468c3f1d1a94c40463c0fadaf2bd5994e1fd,17 -0xd7393bcd3d9889e67d62fb8e91c52d49035f91b2,17 -0x8572ff250455b085ab0aa303fd8481ac641e81e1,16 -0x74a2acae9b92781cbb1cca3bc667c05313e14850,16 -0x297419b983e64118129473c55cfa4184e3dad249,16 -0xf978c535bd6f5f570c3a43d051d68ccbe26a3022,16 -0x28ab42d3d52df261cb139370ce80015eeaf81b81,16 -0x18d53087774623b7fa5da94b4f2a7a988372a22c,16 -0x28e3e03240c4b7101c474bdbcab13c6bc42cc7eb,16 -0xdd762af79fbbc73b51941fdd1fef8e89101eb51b,16 -0xeb5d7b7cd71f27b16d9dfbd4fe16c59e3e670743,16 -0x0e3c3b32c96dccd70404cae4e15eb3c974db8d99,16 -0x8967d820cfe4cc24054270ab2f7c1f553e1bcb5c,16 -0x51ec15594230ddf21a7ea5a4ac392bb8dbda527e,15 -0x7df2b505d5bdf08cca4742c12447ce465151e678,15 -0xbbd815335ea8ddfa9bc1766cd06f64050d409b52,15 -0x90c75b2ea55e82766cc33a7a648fa37b07bfbb1b,15 -0x314754b51f9c068a8d4ab9807e2505cc9ec56bc1,15 -0x84ee3dd0a4c448f845611ee28e7a0168623e5f87,15 -0x8b8c5d0445e47d77b00675b21ee895defa7bfaa3,15 -0x1eb7b04236b95943dcddfd2e96dbb1ba3b37f44c,15 -0x3f0a6f58990782cf17a45fe74901ab0ff6b342a2,15 -0x72d0455d25db9c36af5869bbf426312ba923c643,15 -0xb91a23971cabce0db9dbde18f554e47f8ff6f9f3,15 -0x7b7a7bb315464585c04726182eeadf7fecacf96f,15 -0x5a0bc3d7b86fb8e19905941e8f0700d70355f311,15 -0x025b96fac92837546a1cb77560c8627815a85d14,15 -0x2bb68c26e75b01d2cbb9b1d71432fc53c4c80350,15 -0xafa90635ed8ef93b9859bbdda68015204233f6b0,15 -0x18defe7836c3f4886a869837596c477bf1ed538d,14 -0xcbe2c22413bc89e11d9854e90104ee098eaee61e,14 -0x27eb78c1eade6fc040d25b94e7acf6bbe0689f0a,14 -0x997e404803f0c1b434eba87a03a6267566485ea3,14 -0x9296f4abee772107cad2041a4112da4fc7a75fb6,14 -0xda2dd7a292cc05b3f39fe37cda844603464985e5,14 -0x4d3aadc777388c5d14b8debac21a9b8ea77624b6,14 -0xdf4a200e713bd0a943e583a345e52ee3cc033d5e,14 -0x783cd2a49c9d39e67304a4440aad05552b9fc5ba,13 -0x346670eec09b5aeee3aa7117314d52cb07781960,13 -0x1da6a4cf0a189fff6c3bfc383941a898baa2c503,13 -0xd7efae6e8e0556ebb5e77a499a34fce6a4d8c722,13 -0x73ae7a8d69eb84c4dbc717b933ee8a78b723c225,13 -0x143271bb1489575c0146a7e8dbd1a6c116e8f619,13 -0x447102e2c29795abb03c8692c994f65de154f7f9,13 -0x061d3a3dd1da22fc3fca9004d71d82ff927933f1,13 -0xd5c1e614a0093210f387b0e1860549c78824f226,13 -0xddc86fbb738860c7d3e4b7130acaed8cd958711b,13 -0x44a90a432d391532fb95267c243c7c5ce81deb3c,13 -0xc75cc029efa8f4a02528828319526c79a39feeef,13 -0x3c156fe5dac12cfccc41784522381606f641ae55,13 -0x46d64afd43b9248d8fc7df7f587cc92a90bd4dc8,13 -0x2b57edee7891121752ad882bb2a57e53ce55f4ae,13 -0x20251a0505ead51fb2c6ce5c1f399924ea068322,12 -0x4e8e17a0b34640225c073d4f980a25b857f6d406,12 -0xacbb228856f194aa5f7001525211c22f097c75cc,12 -0x6f69f79cea418024b9e0acfd18bd8de26f9bbe39,12 -0x9ef3a795c09978892cdfc374bffe0d6212b20291,12 -0xf98abe2ab88865dc422990e6b86ec0df6fe5d052,12 -0x9e30a1e5e13a2e0f2ed775bbd420fb7cb31ebebe,12 -0x323bd39ba914ea88228bd17bacf3c4d96102bc99,12 -0x955ebb45951c3baf2d39c253cd9a828c21767a2e,12 -0x18bd67edbcb6e1072c0ffdca2add8fec805246db,12 -0x53d1afcb3a74e717c0b4a9bf2ad38b77a71f928d,12 -0xf9f56b6dc4c297b0d942b0e03f7e67d6dd0ed7be,12 -0xabea8ea391afeeccd9f4eac807595848c5bc7c57,12 -0x4bdb1cffa8e8f45bb982fb3b8a6e9afa87f4ce03,12 -0x5c118ffde79e6433ea5c293d5d5b40ecfad248fb,12 -0x1c443c54c79d0db1ea795b97af3b493c2744abfa,12 -0xe3ad8f93d406f43520efa9fcc92c7afd14b23f45,12 -0xb3b9cc0a406f5dc8315c728b752a62cf1d8f0426,11 -0x53fcee443133e74f16616c3ee9bdb44ecae26b07,11 -0xebd9bb8bb470051339a7f13ab6842397b9cd6254,11 -0x2e2476a246c01a905972f7f05d9560fc901e5512,11 -0xdee87255fb9d768ac3ff0185792fc13ab8b8112b,11 -0x43b78533e92bc690133ad65e7ce22ca2c8ccfffe,11 -0x9147869ccea29c46f487caf13ea9436451935dc5,11 -0xc0686412cde0884c8a5e782213a635142265e1cd,11 -0x01016fb114d52c533fec9b16156609e6b04188cd,11 -0x36991b237b1a2c2eafd94274f11e589d3c041c95,11 -0xa41a4b84d74e085bd463386d55c3b6dde6aa2759,10 -0x579d7b6d6aefb3ad424516ee3089a632e0ac42f8,10 -0x644a808301b9d807633d10f076a7480adc8dff82,10 -0xaf7031b4f2a1a52338fe6bd75409e38564838154,10 -0x3b36cb2c6826349eec1f717417f47c06cb70b7ea,10 -0x22a9f4ea3b0211f0b29e62b3a7f9a0488ddd1e72,10 -0x06020f527c640692542d542a4d25fc104e8f46a5,10 -0xbba17e3e501d91b9023ac4c1eed11002ba0cc08d,10 -0xdc49b03f8c565494b3f5608b7b0edb322e0de476,10 -0xbb30ec96c3d45076d73e977d0ad2badfdbe60ab0,10 -0x7b764c69dfcd79e50bc75d722a4b30b2917d8075,10 -0x08bc8766eb306e86457746519db9cfb3ca6aac32,10 -0x038db6bde9581754039a3e87482bbf790d7053ca,10 -0xa8deb26ca351a843eac39451adbd438e2eddf128,10 -0x050c174ad31a20568b64d9752094d45df7da4e3f,10 -0x9b00e24bb358fec9be49c52068971dc3e2315561,10 -0x393c7432e569b3ab36e0c2bef85119ba8c0f8d33,10 -0x2b045691fc01e9e49509ff9ec8d7924d812692f8,10 -0x5023ad88cddfd255b273a938cd1618f9c6b6e01f,10 -0xdcd41caee7b767bf6742bb4d20d3ad7aab942a42,10 -0xf8059a21f9f082a043fa2ee138b757d73c689297,10 -0xc43169184f312a8b07fe176429dc2b52c881b514,9 -0x3844d476af45580f654aa9c317376ae4754d63db,9 -0xcadb44cd5c22908896676b9b4cba0117a138abc7,9 -0xd4c4015775c99d20f0baa118d738ae0e01f58234,9 -0xeefbc827847d018d79095216674112eda4be2ec2,9 -0x6928693227f6a31c3b1f9e2b7fa5f1cca979d69b,9 -0xd293d6d3b788065be654b0ef28f5f4aeeb7202f5,9 -0x1151ac6ab78519ed034d671820c78e7ba98e846e,9 -0x3993b5c2ed521529674f485f0191d50f8576b0da,9 -0xc3e18bef1b7a1c83f90216635d0203a29d1eb7b5,9 -0x3b0b262b187001522c34edcafc378500133ab230,9 -0x0bc9096def9dee054203ecd4d4b382b14163249e,9 -0x78cea29aca1d3de197ef761ff0169beac6877124,9 -0x2f15760031306b4ce6c089a8bc205886cd43726c,9 -0x6f7aa46c31e9395677bb59ae7f984d9309a969fc,9 -0x8e246c8c37c82d3f89726773e58b43baa8614214,9 -0x4c02d98cf763d6a73ffefa6496c8c109c3ee1992,9 -0x4042857bbd069ef964d8319c5859ac566fc6e9e4,9 -0x21b2923d6689c8eb7a3d2592cc5ed380e2875aa6,9 -0x0f692f4a862679008bbf48cc0a7abdff12908f79,9 -0xc29a9fc1f1b0a550340f17ddaa04a4e042a2a3cc,9 -0x5b300324d88a766d8ed209800f28a12fd66083c0,9 -0x7f1a61ccc4cce394294cdfb2df1360f2d40f2548,9 -0xc250af2aebc34c431f3846a872088e59b5906eef,9 -0x8e1d3b2ef77230e018e4c3b4be2d08fad505632a,9 -0x1fff3ca76b10156cad152f60ce2791469e91cc29,9 -0xfca399b892f4e8306fc31b312a3399f422976886,9 -0xe98843c12b414fa6d5cf8ebad9a885eee87ed6af,9 -0x1d61f4c16894fea4300f1b8f7a395d873346efd0,9 -0xa5bac7c1f14bd7b06ab0177e11ea8a549e79751a,9 -0xbb67e3aa406dde048ac971b812abd42713fe06c3,9 -0xbf6619794a5e1ef1ed01a4ff7eb619e76d62c7a4,9 -0x6f859b3bc892de3ac2762d26dc03ec6ffcfa40a4,9 -0xf9cdf0c0d60a1afe5731f8d959a32b5c8d7c88c5,9 -0xb5c08a347a3d51971d7459e0974df2b717628651,9 -0xe84b20bfcfa79c77a81638c0cdc344f551d38e24,9 -0x60acf8d95fd365122e56f414b2c13d9dc7742ad7,8 -0x6615b227c9c6347e29ef69af79a83974f659ae9b,8 -0xf2fae450695c75291647f67ac3a4d3b5d168903d,8 -0x0dd273b85e5578c488559107ac98a1ab98f208aa,8 -0xe3901d0a64973a4f9e163a9fe8448dcdc98ba8e9,8 -0x136883b2841d7de5c13ecee65788fde191da5f20,8 -0x5b1a00402c6aabc799aa30d009fb26ec7980ba0a,8 -0xcfc65ebdcd6b90b9036913971f963e8d9d83f37b,8 -0x4af9745f06875f3cc4327f2989baa0fe43ea99fa,8 -0xf23576ebf815077d9f21dac0f1c8bdf5e9854795,8 -0x617d924a7600c0ef6e741e4adb97a26d03bdd534,8 -0xfd4c89c2c840b4eb9b87ac37975955195b1224ff,8 -0xd3c7bcb6f657ae356efc8a7b69134d71206cabf9,8 -0xbdb3d2d8e1f390a1070210e612ef5082cd2bce27,8 -0x0dce3a4bd03e9676b1e00dc1d1f103ed9c39178c,8 -0xc638d6e358646ac9edbb36074b0cadfe8b7d6518,8 -0x24f01da12667d5679bc2f4df44c919396ed152f2,8 -0x21182c428147a78fee3eadecb59e508ad4f71988,8 -0xcf16b319049a035fd988322909d76e75bee8eb1c,8 -0xd4a14393416a321b74168e259a9592982c88ae72,8 -0xefa7dd48c2c141cc5044090b87f099986bc02f55,8 -0x388445266e5d3c029e2ddcf18c803124efbf79b8,8 -0x5babaf7a43bda23e6cac6738b9d588beeabb28f0,8 -0x824b839f2a03346c3062a4d3ead9e87ba3a93f68,8 -0xefd97f824a0b4658e31ecbfdd9b4d5d78c7a84f2,8 -0xa6cbedf76ff4075806b8e15cc2d8641ffe079464,8 -0x4676b78d1ef20149d45bfc7ef3fe4f127c184be6,8 -0xd6f6fe4d2d1984c0738699ea73ce7eef9b18bfa2,8 -0x61cf07ffd09ace43a38adcb4b99d97a2fd6cc772,8 -0x7b15e6c439b27a553b65a9904ce571da6691a0fb,8 -0x44d4297b0acc5711df494e8ec3164e0a2ce47769,8 -0xe7b3487dd1e1dca0feeb1e592b7065e0a90f0734,8 -0x57dae169fd0b09b5470ec61c0e8dd9ca733551db,8 -0x4d72d4269ab46962713ca19cab8161a87684a163,8 -0xe3d92a740f0478407b3da06ed38cb052cf2bcd4e,8 -0x36ca8471d9ca3656304255216e1b2f1a9280f1f4,8 -0xb72aab309dd644c2362df76d63ec568df23996b5,8 -0x1d33584acd677ee90dc0d365a4a4c4f09533f75b,8 -0xaaa9da267f352865e1d29b6773d21864e07e049e,8 -0xafc3088cbed724363b731793183a9f5d4a494aed,7 -0x4a8ebe5f4987ac27cf9483c753e80c4b7e5276bc,7 -0x9a837c9233bb02b44f60bf99bc14bbf6223069b8,7 -0x028fe2ff94af8f9e7a0ef0cadc719c155a530ccb,7 -0x0980490630587e0cc131a6dce96b2bcbd4286395,7 -0x917d6eba229425bb917ecffbd821df6b199d9591,7 -0x41f6d8e7a5fdfc397f59b6922cd9e20ee86d0626,7 -0x113654a07c0e59a2417f82513fe719a747d57982,7 -0xf1f57b31a953f8e481c5c8f52fe38600268dba14,7 -0xa394e5a73117a50edcb7c6440d44638cf854b92c,7 -0x413ab8a3f694278d81fa9af5e904aede80894d85,7 -0x1177089c08fad3d2d3d5c88e03e3a9813f703ab7,7 -0xe0e573ea9146904bfebb705b5ce79b1ebf1a551e,7 -0xd930cad47fdb764bb1b6ade92f4e95e8fc0073bc,7 -0x9dcf33d6be32ecf8846f05c4407781bce8e59a89,7 -0x144c7cb5d23b299b8ea0aced7ae02972b62b3ab4,7 -0x10e70b522e48f8ef064e47d21181233704e628b8,7 -0xc2602fe29d554a970c36eceb83e5d47438e76f6c,7 -0x39ebd6368594c8f32023a00d5de1bd28255d6626,7 -0xf3fd9cde0dc0675bc18dd99210b56d40c4286542,7 -0x50471203a2be347d16e300e6875adf3509118c5b,7 -0x7647e9ecb95e13596607236421705ee2c345067c,7 -0x4201fa0ba937b7b689934465a21e35c2c224d9f7,7 -0xd3fbfc43e789f691c15120454a32cedcd52bcf58,7 -0x3753fa57980fd180655c281158e428ca994d6dfa,7 -0xd8c9faa30a119f74792cf36122208fd27586cc86,7 -0x4c40468a127ced157a4b21bf927fe471033d4770,7 -0x424c1842adddc287306fa40fea29e5fd21f34975,7 -0x14852f300bec90d1c60193fb127802ef6e0dabef,7 -0x9f3c44a7331ca9da2d3432bcb0df91186a27e3d7,7 -0xa376012f41e6b4d954cc0e9564ff43efa6585424,7 -0xf7537f712c380d068604af7c383516837191083e,7 -0xd81cd67392b69183c0f96c29af8df09bbd9f5f84,7 -0xfe9d9b55f80c23436c36dfbe7f6fc8dc3bd1f587,7 -0x2953399124f0cbb46d2cbacd8a89cf0599974963,7 -0xccb82565577e00542c2cbebceb3df14b0915c0f8,7 -0x85cc0b17fcbde700c6efeaa3cf66c4430345830c,7 -0x6de7cac2d804133b551a02a4cb700098452940dd,7 -0x2dc84af695d2815d8e56828a1fd91e7b135df6ee,7 -0xab6c422c93acf4fe5c5fd2e382605fa6a7fc17a4,7 -0x1262f6f10bd906d04d9410e7345af4e64b7e0bfd,7 -0xba4bdae039d4b56ad3a8e854ca2f051804929b6e,7 -0xc7f82116d0b7d1a94f6857153efbf5a80c6a0352,7 -0x23af5518409043cf8e438ca96e2bff719442dea3,7 -0x1eed494e6ec9343d8c2f08181b81d1e324f42e6b,7 -0x2e6fa5037258ef1c97b953c3465cc4291c94a737,7 -0x33194e0e28ae923f6f52e2282a817d069fa93548,7 -0x71c3aa6abaa1df47818d19117fefeeacc7493b7e,7 -0xab0d9d9c57d42a79333e475925def2bb35ba6925,7 -0x275381048c9d6b9cde3375815466f9ae14736a86,6 -0x263ae5d5c93573cac6392bf65815acf6570f8637,6 -0x59123de0290f4ad5d58e55543d478c699cb3b405,6 -0x48c50f05375cc0af7c3d7f08010ebc992cc5666c,6 -0x2b291be98c53e2fc88224745cd0b75fa02121f28,6 -0x439b1e70f04eb999d12eb2e7bf2a62d3b116a7a2,6 -0xdfbd8c34c437ddd19af80e8490efc569ed41152b,6 -0x34d3b5fc42591d404ee14a01c7ee59f8d9535046,6 -0x49ed970921226220cc913e30b20adfa9baf3fe7f,6 -0x5fb52b83b5796c069ced3b64eae162042d9e51a6,6 -0xb9ab9578a34a05c86124c399735fde44dec80e7f,6 -0xa00e00c64764b31006104766942d2f437326f0ca,6 -0x6ec04cbe2f8e192d8df0bcf94afb58a4094f7c91,6 -0x38542c3e4861df0efe2406dd6aeec28d53d509bd,6 -0x5b705164a2e3579dd7e2c1a0ac8332ae53ebdf57,6 -0x2eea411e3e73e50141beb3cac413fbae5d5b7efb,6 -0x130491e6b348e40a3f3daea738c31200b905242d,6 -0x7da5f2796d9f746b02bcc039ffeaf0c4a21fdfba,6 -0x01ec946b3d4c8407521fdfc9d74677db10770eb3,6 -0xfad6d4cb1fe57fdf6e58cc1abe5e4d9cb3b3081c,6 -0xe7d03cb67a89531acdb2791257b60391a7ebaa12,6 -0x26d5f241a576693572b90c716707523bb1138cc2,6 -0xbfc9e7ce220b4adc1c2b5f3beb0abc8bf30832a8,6 -0xfd4938b02074df1d3aa15a97ee561f40704b2195,6 -0x2a91af61145656fc7f909912ed4db131d82d70be,6 -0xc720b3acb8402fb3d430c18a2d84a1852ee20b40,6 -0x137a2129a8be4c080dd6584d3130276e141ca005,6 -0xbe2615b571502afa5a5dfdb0361e7f2f62627606,6 -0x12b115751e0f608da1281d594351a8a28816ce79,6 -0x7d1678940b2211052f4201d4a02d45762c707243,6 -0xa42bd211e2ad70b13eb1fb97184d4df2ec63666d,6 -0xc8f38dffbe6f7555b7782d50f6bcadffe12b009f,6 -0xbb3d7b0d3e01f936b22db4a79f2e82052c197e81,6 -0xcbc4526db1f6119945ca25966081a11494644b80,6 -0x37383276b29a939c856d4b15785d867abb471d8e,6 -0x8eec49c06322ad8181ca3bbab3899507977bb9d8,6 -0xced18824ffaa2b63ad1c54f177a4c92970c01c09,6 -0x3ce18f6fba484c9af1c1ff5c7a6f72b1358a06cb,6 -0xd81fc8cb5457cbe3bf93115588330e1debede3e0,6 -0x1ffc5610794999f0b1d9d33c5e07a3628336bd67,6 -0x9312843c7c10fb6cc7fa864989658587ca754b74,6 -0xf85ca8b73133fee167aaa935d4138e0fd6fa2622,6 -0xb54b21f5f79274f1d5946033888f152b47222c8d,6 -0x251c1c2c483a02febab4c7f86102a6a797892984,6 -0xe056923adffaa765ef98e8c5da06dd13d326cf82,6 -0x43bc512692b03ed5342970e5f92455cd2c9f6c9f,6 -0x60843934fbdbb6f3473b6f7182ba852d4113a048,6 -0x92cc57ebfa4c7640dbcee82a3206e1f813706b6c,6 -0x338f8c00ebd8f543680ab41e75d029997b38c423,6 -0x903ab2c7f1a9476993c35132bfde21b409b4bef8,6 -0xb91dda44a6c14ca1a307df5c5e9de7db93bab71f,6 -0xfd2c3c73ddf31757b66d3c134d52b31bb5e8ef14,6 -0x4994e58813dcccb6cc27261b7627e400a99be1e9,6 -0x05fb992e94a103ce68e9cc67598975d69eb278a7,6 -0x66bae105057e789b92e926c41b055d3951957c12,6 -0x4a90e18f3e90074a820532a3da62b347ea86711b,6 -0xb1c7f6fafbe39aec0b23f604210a93817447f9fd,6 -0x951749049598ed5cb5f444c97224b6cb3b280850,6 -0x10c94f678c2e115632f1613b5d173e4fd2bc346a,6 -0xb93b847be48944f1a7a8d10e52b0b39364ee9e35,6 -0x83bd6e3e0a4bab7bbb720ae19065e4d65c470a09,6 -0xee636361f43034ad608d76c97702f6f9ec4d7f3a,6 -0xbeae503df4f8a8b8276f3015f765a79525d8b555,6 -0x971b2e9f9f93935478df1e27046989d41357d958,6 -0x70883f37bbc224f1de48c2c94d5d94cbeea047e3,6 -0x099af98b6e6b3a8b055f9777f6724cfbe04d5a59,6 -0x65cd64f936b25ba20b006bbd8c89ba420f3e6d3d,6 -0xb135b0ac8ed1658e89eec65396f97fb10bd4899b,6 -0xa570ca3bbe2cd3bc3190df0e62235b31a18d5724,6 -0x0100d403c7fbab5a16bb58e3cae5cec64ebefba8,6 -0x43d6ac129b4739aa00b3534814ee86b42d1b0913,6 -0x051b92659cbffa7cea8dab95e2c68c5733369e92,6 -0xcf911e8cd853286c5d1e22178738db80b9f15008,5 -0xa6c39fd51f2ee74b1d131a9ae799e861adf2d225,5 -0x05e4072151cb06ed757406f41c064ba696573898,5 -0x058f96432ee18ec9f2c8c5b8f54459c26962fd6c,5 -0x5638e59905a007ae0e0825ae10f62854f6c1a55b,5 -0x0ab8c667b5c18fae4dbd8c76dae71018bea2daba,5 -0x357039febbf491f11ffe0c6aa3302c7fc956b1e3,5 -0x5e207c60ff93bae1dd37622712db282a4a056f17,5 -0x9ed930440be3d3bf3a24e8d64c48873d3cbecdd2,5 -0xda5297d101a3b8993e3fa22a0200d9051fb6d254,5 -0x571d5d068387447f659ef1956448f4493917d2d0,5 -0xb67d58cffae63a95fb380b952e65b1a8eac44d0b,5 -0x0ee57e90f79ae75bb143cdd5000a971423cb416c,5 -0x18e0d471720a3aac6bada270b226191a9db798fe,5 -0x8888888888e9997e64793849389a8faf5e8e547c,5 -0x42a60d2f2ffa2150c568010a8d425f0aad284fd2,5 -0x35a9bfd953b4a9b7b64718c5a0988fa6a88f1ce5,5 -0x7c296a96c21a007ba044ab17ae4e3f3444a5a568,5 -0xa9e5b3c2573d7e917cf7908c46b9f85cad44240a,5 -0x5c5905ae4f927dd4ae5c6c74b426b5d52ee4783b,5 -0xdcdf8acd5950f7c370bd749bd6b9bcf1b3e6edc4,5 -0x43f44ad26a18777f500fb7496d1af795cc1d3543,5 -0xd9885fc13897dd9171d0bc3024e88908ecb76fdc,5 -0x621e8abb67863f971ec2c21ce7c2a8e1dfcb8d66,5 -0xd8891897f4b87af7a79b116ed170d976c7646fcc,5 -0x535aac66e0afe2983522d63dec2dab15945c66ff,5 -0x1327176369bbcbd5c8a3aae1d79b957f29c517ba,5 -0x535875cbf04846b853c72f4498765bf9bb7676fc,5 -0xb7edcb897711b4ded8d1e10b931daaee2cdd7f8d,5 -0x3598ed2969984ad70141398dedbd65967ab7b0a0,5 -0x28cdc7571a8c5f79cd66e285b49b8de8f1d5eade,5 -0x2f18a5e91ec4b41cd752b7149f99c3fe2c48754f,5 -0xbf4f8dbaa42761add7046586111078bf8b007cbd,5 -0x876b2711dd6f48a03ca3af8e5b1cf4199b0e63d2,5 -0xe748f643b9b5debe0a025e118512be787e5a1ea8,5 -0x4539f132e0cdf4fcdf3bf9238408b828ec8b9842,5 -0x302df26252ce5d51a09ba3095c1dfa0a1f4baa9d,5 -0x0bea56157a7c2ea55a5c7bfbb962f9285fafb87c,5 -0x634281cc727eeab07539863a74c3303d9a766314,5 -0xae9deddf056811f91fb58208a0ef973e1eecc911,5 -0x94af8a09df2cce81d5e8d14e18fb8824e2269785,5 -0xdcd58462d2c40a5299edc905b8f484b4a7dad390,5 -0x7b5c6b9dbb33cd57559df1720e67313124fc4cc0,5 -0x508a3c644b887c2875b19e26318dfda977db9d05,5 -0x0d7d5666de7ddf4b64a7c3fe54f2522ccb3a7605,5 -0x16e5aa191fccdb58049d1f1a4fe4f16af4c19fac,5 -0xf260b6af4a66e9560f8e12774540046bb49de0cc,5 -0x4ebb116b96e9491649313f0cb3c78a294e643cd9,5 -0x9b8753ac5a975708a654d16f7a1c1fc9a7b98828,5 -0x592eb762cbef68438e4b63609fd9736b2033e831,5 -0x7fb6bbb8bd4c70ddc33d71a5adc1f21db067c277,5 -0xf546c3d65511e9c7a6dc3f6467720d70dcb72833,5 -0xaf812e8babab3173edce179fe6fc6c2b1c482e39,5 -0x29c73af2a5011c7be46b009e84610dd12b2b0c55,5 -0x3b3d5008e09451935500f140369c21c779707470,5 -0xa470bcc2f83517cc630f3ea191f0f24dec667bff,5 -0x9a19fe2cdb5cd3b8cb2e512b563d5581890f7eea,5 -0x21cd97f2f2d03818a249ffa92c42eafeb7cee64f,5 -0x8d8b1f0a704544f4c8adaf55a1063be1bb656cc9,5 -0x4e47d800e09e8df81357a2d467ff3bfd3fe25c54,5 -0x39ec647b6a532d84d36c0aa7074c8c57d29daf0b,5 -0x7586c178a2642bd21447ba06473d8c0d3f26ea6c,5 -0x083be8c439fe468a5529108edfcbefd21a8b6da1,5 -0x1082aede3a456fb92a2b2f1568e55d21c5d0ecf2,5 -0xe81bd85ad080ab2fd193e4e9a60cee36e7fb7034,5 -0x6080cbc0840d38e73a55f121df5ccc2aeaac0629,5 -0x70d330c4b0d4720339751d0359679584bb2e8dec,5 -0x579a28f0dc9800400234516499deaa4de5be0e25,5 -0x9d992e5fea2e61f5bfd7a4f5bd9ca26e222d36d9,5 -0xdea9c3c36ab933441fff5c506de088fd74c00d10,5 -0xb18ca1ccc0ec0282771fcc19a422698d93c92289,5 -0xd7b2205fcdde716cdd8933d4684ec67421931948,5 -0xdba3f3546718c8424ce7cd3eaeefc396966355ca,5 -0xb940b1c3c6deb79ba4aa92c5a508e796697cc8f8,5 -0x7eb573e0f8a77d403c9320f8a0b7616b9c3d8d91,5 -0xa7c9305169c840a452856f46e5101d4c65c611e1,5 -0x22e64fbff8f5c43664804a5254770e023d9a285e,5 -0xddf767f258adf0af89896621349cadcf8722f771,5 -0x4bff9b3ede66c6daf42d6deae4c784c520ce5ac1,5 -0xc56c84a944918d6275ad0605e6963d675f1d3065,5 -0x5198b5905e7547d3cba18be1241fa32caf353bf1,5 -0xba527a51a8b3e276001ac9901e63960737b04e93,5 -0x17d5240035975e8a584de01e48198445270058d2,5 -0x0379754c4bc4ae3ed98a4e50f5146da585fc5cae,5 -0xc1c25bbcaa46fa5ca222beca5ca2aa0c2a2c3351,5 -0xee4a291a3f0c0c551442bd18b31d6f79d272fbd1,5 -0x4e51a06e4643197e1be2f050b6af60f9ad3cef06,5 -0xd54d1376a86817f8bb382d4e0bb419c28ca6ac9a,5 -0x00aeb3efc496c91bdf1ffacb117cfbc775c4a755,5 -0x48e68d7ab78dcfe167d52bea8e5dffa14916bf89,5 -0xd0bfa0a38859b682d163750e02d9daa1fe6e9561,5 -0xa02c70ae06d6105a0521f48c16b54045e51ee6c9,5 -0x42106c8d84cad33a24b00064df56080e338082f9,5 -0x0000000000000000000000000000000000000000,4 -0x5ac63c982818e8352291ae0d8f34ba5bddb65a3c,4 -0xe876b553741a879967f8c502b757e919db1a8b5e,4 -0xede6d8113cf88bba583a905241abdf23089b312d,4 -0xe80de17dd3fa25e11beda818305bfcf44146114a,4 -0xd2ac479d7f5f792f40129b47441ab56e47de86cf,4 -0xd5cb70343d5aefa0210510c8be67681ab8886a69,4 -0xf706c06cfcda4c03420a532361b51ce30885a187,4 -0x59f983c339495d71c310be7c7f9890868d35fce3,4 -0xed8ae2e67af00604feff19e0a042cefd94cb4622,4 -0x3aaeed95b37ba5c84a61c6628dc4334608dbf5f2,4 -0xda38e0f96aa4b3d1e9b50fc0c0b4fff9075cfeaf,4 -0x045ed9ef63ef20c20835f0dabc86d4ec01db43d5,4 -0x2adbe24377fb1bb454aa58121858d2115d66d1bc,4 -0xe8e72d0839dd8c159678537041d987816f664192,4 -0x8c8f1be5dbdfa432bbfb33d6a13779e889d8ccf9,4 -0xe8771a6247f9b9ccecce195d12e4afb9abaa847c,4 -0x245a93497bad08531490c8f36c0af99f3b58d9cf,4 -0x166fbe095ee91924cf7fffeea1cbc75dc263e581,4 -0xd839818f62abdff56f18b0120c3a26f943ccc370,4 -0x854933064ee0732f8dbba63c62a487e15efee183,4 -0x0e05fc263cb57db89aa9f32cc3f4743244520c45,4 -0xfde00627debab88dca967fd63696e625d5f45677,4 -0xb02160d146901e838f9e9e796296ece30c129e0a,4 -0xf9db0104a9bb72350941038d448d5721aca6981c,4 -0x69f2ffe94bf46c739294c16a4853ce9438a508ae,4 -0x738c581921325e19fd701c983231a4c31c0a90a0,4 -0x00db032d3481643510b2e5a1b00c759dabf9075c,4 -0x90f29f3013f6948e170c2bff81809306f641a972,4 -0x87b148ffe44b9b24e87f871af2547da33fd3c099,4 -0x8a6003f75845a896925dda2d91d1959021c1be33,4 -0x0d86c95d25abdef680c0fd2e653390482465149f,4 -0x4444da3cfa07c77a8977da1275723a8b5deb14c8,4 -0x649d1d528085371fb8d1e9e097231f8641025b88,4 -0x5e949b4b448f8c0a63beda9df8db9aee15b155e2,4 -0x32b03d1564d436bdff842f19ee02c68422b0b89b,4 -0xfdc3e8edd74a90fe971ef7d56a0c66c870b10f5d,4 -0x91623b85675608dece212ee1e650ccbc9332f93a,4 -0x4327a9667a4e25f7e0b3482f3321bb286182f992,4 -0xd4de3015966af25abc558d0506570e8256588f27,4 -0x13feed6b23be320b4097559c942e16f37e159051,4 -0x27c9c9494fcd44e3643e5f9431873222402c7dd2,4 -0x3420c97d3c35b33e5c3465bb7c2a16cde4fa4f5d,4 -0xff0b372384778479004e5be8d9061c3cb42a4d95,4 -0x997ea7a8493d896b501bb24011652b8e2de47ae8,4 -0x97fd49e4d3ba5770ad3993926dbd7e9fcfb71587,4 -0xcbba3c795182791913faf00f9a7322602c775421,4 -0x8bc4a7aaeb0318c4a92b7fdf6d005b9ca5db9f1c,4 -0xe1835f855b8e647f89f978894eaee00b7ca23ebd,4 -0x2863661754bc182af5a596da4433448979f1c589,4 -0x002f5a1947d7c627c9aa1683b7b943857671f018,4 -0xce734fd52ad7018d0f670552074291082487acf9,4 -0xe153c45d960bceab27356e602ab58683f85e0932,4 -0xa7d496a19af4a08db830eaee60f1564b079d1d15,4 -0x586bfebb7942b7cb040d3893185e28395e964f10,4 -0xb415daaf22a53bfa51599a931e1d8cc593e3700f,4 -0xf2011798e8de997bfef9b47d1e4514d3623d3196,4 -0xc19e51a53fd2457aa4d3e3e811b5823750c9429b,4 -0x4065149108a615930114bb511818fc0909aa9269,4 -0x8f221939cae8dc0a69a593b1a7705158927c26ea,4 -0x80dc4aa5924bbce45e42341640503459d0d0bb88,4 -0xbab53c0cb0ee6fc9f5683e436b795212e4d0e7f4,4 -0x2bcceda3a74900822cf06456f24d1f550b8d08ed,4 -0x6a6f144c068db84e2ee15633db640bdcbc1d5ab2,4 -0xef6460a065721f0d34404519ef4ca47aa9c740e9,4 -0x7f08d733a2c4e65e88975aef8f80fa694ef339c1,4 -0x2d0d77065ab397ccc8d7ccfd847ef46074a93c38,4 -0x8ecbd344f42ac8a241ef39f1d416bc9fa6315cbb,4 -0xfcd1d2894ca5a6afa07c9579f5fd7ac4ba7a5481,4 -0xe77787c945d59715b87091254c1c08e0f76078d9,4 -0x9465dcbef0deaa126125dba57ff1c0a7bf12af70,4 -0xb7a0a50ec25e1dc0151a85278594af932de96f08,4 -0x0711427ed3a2570d1bb879902e929e4322482b10,4 -0xe19f9b7e1ece7b765d4cb95939221919d6c23611,4 -0xd9b4342749b93504138eab8bac8e9279a0a3e91c,4 -0x56d5214312eb12f59478ae83910702ff4c51f518,4 -0x95f0b988cad962739b4191bc826593ee85efb203,4 -0xd0aacbb70ef93a105b65ae97cd9e483a767f7e75,4 -0x16b99d194b27e65d56679e1da09884d9827de6fe,4 -0x2ab2736da290a4df6ef2c6b9dcefefda4613cd3f,4 -0xbb6ecfe281094a157960a1011a9f1dd8460fbd25,4 -0xd59656fa517bd5c3dc3588ff6b1dcdb4228139f5,4 -0x2b4c6a6f61c8831827735592ddc99dd93fb10f83,4 -0x6a76ebe9f75459846455a9a7c7d10e1ed4375322,4 -0xd08f90fae1ca79ef29476b901ec2c70cd2e53878,4 -0x7659a48aa5c5282d403b2b53c3b66b19c344d3d1,4 -0xdc7f3c5fc1ce22e8d8f2c35029055bcc06ea1dfc,4 -0x2829532830899a2d921364a62fe80e3269e924d2,4 -0xa797dd9d337c332783bf442a0cee37a694081745,4 -0x29f4c31f0553d92a92ff06aa026fbb0b2c52360a,4 -0x94dca45520d78307a7f171f22f66d1feaa963410,4 -0x0970242737793fb2291044dca961125baaa6c538,4 -0xdfa8d72262a2c381fa2bbad2ecc1cb1ad41b9422,4 -0x6ad02d849e179255ac56b89eccd6236715ddffdc,4 -0x993342fcb728bfcc6b99cf6fe8a53e64c3f8dcbb,4 -0xb18dca871202f7457dbd2a59d96435cb16a8aee7,4 -0x4f1dda5c58226dc2194ec17dbbb74f3f49b05d18,4 -0xd22701b99dd60448f14d20adeead84cbcb2073ea,4 -0xdf345e11427c8f97517515956e080fe4a6d7ab9c,4 -0x808cbb82e70ea8886296461dabe016c021beabb0,4 -0x84823567d84595bcdad7e6c016c9ef486e71dd14,4 -0x28848661c67a1695739f59eee78fee35e2e0e24a,4 -0x2bd10d1fec246ac2c295414dd21cf28566753439,4 -0x874fa30852843703e2cec64468460269aebbc31f,4 -0xbaa9238efc4e706bda15af1211f2ddf8a742de38,4 -0x2269cb1ca47546700e6c311b4aa1150d468ca2b0,4 -0x17f5bb7bd7ca529d6a506730ef7dcf668f7b414a,4 -0x922926c35306c205ee639d6f0eca25346613e725,4 -0xe1d2f719f29e9af0220d7b87ffb4279de6fb75a1,4 -0xc5bfe310476c426b53726212517c5cc6cd67f128,4 -0x70e2c293f5d6ddc0115723d935bec697b83aaf47,4 -0x691c5d7e23faf55f0ca98ee14647691698943df6,4 -0x445c372fc4005fe10dd09a1fcbd6be0433e23344,4 -0x34f81a16e04fe6723d1f6c02ccd048f217cc18ec,4 -0xf10cbd53d8614d1ee7128f5100714faf4f76e533,4 -0xc782fd2bfbabb616c838bd600813c31a1380059c,4 -0x0606702fb2ca6d8707c8a449d63a1bd9dffe14c4,4 -0x464097a018a2f0b08b4205fb7fc95533c33d0087,4 -0x9687039707b8c130826e2f65d299fd84576bba19,4 -0xf4ff91bd202818be22740d78bef9cdceec285a6e,4 -0xd5e0978654cade8fc01983899df720cca7a1cbb0,4 -0x6301add4fb128de9778b8651a2a9278b86761423,4 -0x6dc85eec61ce39af1f35a6b2b3ad2e72b3bdacbe,4 -0x0297c8d39bb7c90bfe03e60ed674d175e843d62b,4 -0x8aa7c31032afd956bd0125ff1a42ac12ca0bbb9f,4 -0xb1f7a72e62e69e072b4d5b231b9a9cdbb9dbc817,4 -0xc2368aa1cfd066ff104053e93c64034c19fa41fd,4 -0xf11d4a681da75ee7dab1d4aeb8a6771a97b93097,4 -0xe2ea08d1ff6eb2d238086b57d7b2441ebf045512,4 -0x65710ae8bb90efc9240409e5135dc59ebffd1461,4 -0x00653d03b147a663390dd5c5b1a55dc9cc0bd2fd,4 -0xa3d30adcb8caa3cbe2a05f02bec6c8a7ebd76926,4 -0x1367f8730178babe8cf3dd1f437f87986c72d0c9,4 -0x4122ac127311bb4bd22cec65ae3a8007d8ab9489,4 -0x50a73647938c37834cffc05a3034585f56dffd1c,4 -0xb866c4c1a4e0b7699cd6b1e9bd2c7a36de1da303,4 -0x80f565516bbb0054e403c787be3234e9fbfa7861,4 -0xd81be2dd1fe5e3f9aada3ffea6d64e62506edacc,4 -0x0e1a2155eb0ce4a58c2d242be0efea0b09e18d26,4 -0x81d12f54f683688b00d8874f147010f6eb8ab8d3,4 -0xfed6626664e380ce13a4f7e9e03023c2dcbad59c,4 -0xfb602647103435f4af16ed88cbefaa4ec08393d1,4 -0x8185191ca6bfb4b76214abb3572be413e51d24bc,4 -0xeee755fc057b5ccb3e93c779480a987f52516f53,4 -0x433c5ee60f1069c3acb2af7356c5e1586b013df3,4 -0x3a4fea4930d1b1192f03671fd17caf0fdd6854b5,4 -0x7f42b0b1aa0783916fb808032982a5eae74d78db,4 -0x2e80d29042f8bdc17d6b557a2d12a703fe9c34bd,4 -0x2658828b2942f65db82893d2c17975c2bc4d372d,4 -0x8092f051d18e2740b29506ef88d159e385a53baa,4 -0xf7baba78ba749879d9c1a4b08cc1f8b5248f9de7,4 -0x2c49633f8282c6ddd4b857e96c7b3cc3d8f86334,4 -0xea7a45c46ab76725ce472aefc171b35b40ea4093,4 -0x759640918fe5ba583aabe74c3b9f26911e984e16,4 -0x2388663b7a20b4cf1c9f16f660a86c681d6d85bc,4 -0x3e74607ac4d7c30a6a276bfba6465b6074488f0b,4 -0xbd101fffac618cc704f005315143dd63b445c5e7,4 -0xe15af41bc008cd0e66a2bf0eb49830623ff49a71,4 -0x1cc34cbce001ca085726a68acd2dd68f3674dacc,4 -0xe37cb4d180809d14353ec2a76993bd6fbf2612bb,4 -0xd1d9feb0567e55a50369840c5edb36e7016c69c2,4 -0x3a949daf5a5d0d77169785b3f5aae4592a4572e1,4 -0x2d93a9ca431c059ff56e95cc55117c189dd0798f,4 -0xbcfe7cd506852eb635d23863697ee42c969c1aba,4 -0xb107891dcb0864035a1b03374cb43bb76631b5b5,4 -0x717e2c1082baf957d82ef065ebc265d5ffc5b21b,4 -0xb22be4324e1d24d2e23efdd22477dae564c6223a,4 -0x12aeda7b946a1a39f1c8e7af378d26b8c00acf2a,4 -0xbdaff6212b9008ed8c1b65b926726a6e9d92428f,4 -0xf23d4021bad0c2f50fc97910ec249bbae0dc3ff3,4 -0xc02f318365582557a482eb5d1834dfd7af4a3f59,4 -0x000000000000000000000000000000000000dead,4 -0x45fb2136c8dfa3b080225f0fe872c1cc93ca15d4,4 -0x95e9cf7a017ba2f9625e07df02d5ac8ac54593eb,4 -0x6acdfb227d9cb801800a01732f4216bdcf4a0c4f,4 -0xb6fdc6a562bb6574509d7494063286d53efafa87,4 -0x67b1fa3ebe1da2790e92e2c01e2b195f77f087af,4 -0x96aefe3e43e1379930a05c678a927fa415ad8ad0,4 -0x4d1480d245fcea63c86bee65b4d282f93efd8354,3 -0xcc0960243d099bcae96c0d1aeacdda01434d2ebc,3 -0xda4d6c8cf48e7c473ef7bb3ace63a5b586598b56,3 -0x612f74f22da817285247bf550b7224cc86643627,3 -0x98d0e673ac757c9f87c2e842cd474bcdd185d310,3 -0xa0c08f25fb30f43bc83346ad3049295db5ecf5b6,3 -0x1c74fc953de9e46dff6c0b0a9043948935aa524f,3 -0x5293c8e5099257dba32f31a469314192f94f66be,3 -0x7caa9f43822e288782e3e8797c8a16774c689b3d,3 -0xceefd560769f2b7f8180895e23431e00da86b6d7,3 -0xa9cff968cbd9794f4e4ef9ba7471a048a259b024,3 -0x4cbc0391fbcbe1cabc323de4482d6c52e838d63d,3 -0x962b5a5faefd419f845b1b7d55e47db59c3b4e4d,3 -0xb6fa9e3a261245c1912771a5e2b5a741c2f4f2bb,3 -0xf1f36a0999269b47f70451ec7e27ba5aef8784fc,3 -0x36fed503281891b58e44d4d10aa2260f352e6fc6,3 -0xa2c77935b3bb2cf44964446486786d5464a25b7f,3 -0x87af0ea309642e90dacfadb0c526cc72eb9c89bf,3 -0x19820bf4c96b9ec98ad89e783b8cd8465ee0dca8,3 -0x00cc5bbc67845e6b52eb8af79fe0aa062fd76fc3,3 -0x7c6bfc5502eb719137c4c857ebdefbc49451b680,3 -0x97bdd765c51fa00abeb360a25be73b59bd9b3c84,3 -0x35d465d2eae83fbb150839e2d087d933d232d4bc,3 -0x75daef9ee9adfbbddad83b93f22f5dd6d860aebc,3 -0xe2f7b6d471a15d4fa2b66c72b9f425a765746666,3 -0x9cf4cdb8bcfc24f88c755834a5992ed322f1055e,3 -0x0f278c56b52b4c0e2a69b30a0b591d237c783907,3 -0x6c7b3b71e3b74193a1da84dd49cd703eda5e146e,3 -0x762d4d913beb20782ae2da1cf4c1e5f4183fd0cb,3 -0x5c45734a601522e286e2827d625b2fe230805c15,3 -0x978617f954907fef7a1cea7ec6b25a197be7737d,3 -0x41dd16a55424ba523e17636f82622872e6321666,3 -0xe874dadc629f29383a5f3545ce7b94c995d5aed4,3 -0xd79b00064034b52ccbf23a35b54e38705fae8936,3 -0xe039fa5f8b0983c7c40a8551362d02bcca954a65,3 -0x1b7e138acf425595c7f6f103f0476355702749c5,3 -0x9f3e8979a1d064fdcc900be2061370f69f306cbe,3 -0xe6daa149785cd6133f5e82e4ba9377ac30ca9a70,3 -0x2b7661955d8df0efcb9172da6d50bcb1e63e8fa4,3 -0x27f52921afd2ea3933a55553274149d2bc7d6d61,3 -0xa839bf4eabebeb68cbf8a02c5b75e13f9f7cf6b6,3 -0x3b3ac88fdfd33d8eb95d62d884ac552e46894887,3 -0x324c88b7c20670ce4f53338fb08a1f97254eae0c,3 -0x80e1f5ad1c969a0c199a5982a8920bff30e3e117,3 -0x86cfe5b9d71a61eb489fb323d8b839d89983fb37,3 -0xbec16539d77067976b8c807148b2c36ed9731fde,3 -0x96a07e9bf00b5b6328c795b4ac6d346c75d7dfd7,3 -0x5896b609abb4ccc6c2f4d470980f569fb3b947d7,3 -0x5dbf92aa31de97d1c8b159bcb08bf8e50cae6ce3,3 -0x583f9cf941c1e6f135a8088eda7c8524550bb9db,3 -0xdab336d6aa0b294d3957171b95058c5e028eabc5,3 -0x34fb6abc67a85ad6e9eefaf7c5ee00a5b858ab04,3 -0x227837093cd0670200b96fe540ac30a41d4919aa,3 -0xf60756d30844e79822bfcc599f930c280778c7e6,3 -0x02b6de3443e1bfe39b29449159c5e74d35425073,3 -0x6b6895d703be4de737199cd52780a2729fa76041,3 -0xf3fe640a2f9c03cf2055d28da854af81fea31fa3,3 -0x5ab9cc5e04a2a6d24b50fc7ff6b6ef8c407a12a5,3 -0x5d69c3ae67719ffa014c27953209aa7081d13209,3 -0x1739c9d0a44aeb5f4541d9fa78736eaf176b9365,3 -0xdcfe7ecb16e9a1fd69b4aff054a478f93c41635f,3 -0x45b6160cba809ee44516e161c1712a66e0facfbe,3 -0xdf6852f0e33420e45a83e03ad358068702c23772,3 -0xe97b346214a58f8673025574768ef1f7ee10ed48,3 -0xe58582c70e839b4a374eb4ef48022af555a8d13e,3 -0x05fafb4c0bed99f43774a60860d0a45c6a8818f4,3 -0x54b8d3a8b3da83a9a243854bded39807b382593e,3 -0x2791457f44027ae14fe8c61187ab04904b855335,3 -0x2452a22b8749f37b9131d10934c3777374237f6c,3 -0x09fc3d40e0805bcfadf0c19e0f618670eca0a166,3 -0x136db9bc21e5df3468a4cb323b46ee8d14d8baa2,3 -0x4b6c946857569e26c9565652050a54ba0a72109e,3 -0x57194731917e4055c60a8f823834916dd5167443,3 -0xda54fd7d76b05a693fb5d6bf17bdefc12792dbdf,3 -0x867a5b65ecab019dea7a3e45e5a9717ff5bc5e68,3 -0xb0efeebaef875186d8b250aa69377aa8ccc93283,3 -0x121f79e6304db1f9f30c3c0f5e3f22ee3a73b638,3 -0x9f62ce1b4c31945157139f74a75cd0d465723ffc,3 -0x1824c287a2cbf4e6df125ae1dcc6218b4ce1adb8,3 -0x982b046b9cf3c3ac5d400da0803b40c6d690c61b,3 -0x9b8a06cb5544a070df8bd2584cb3b1a2fe051309,3 -0x7947d8081d3f4e92f3d1cae47827c0ba23a29b89,3 -0xbb3038ca46e21de389bf28b09ea093697384958a,3 -0xde6f7facbe3b172b9f58820ef40e22ea614b892d,3 -0xebc47639e7c2931d602ffaa8da9930d07b79a999,3 -0x89f516c10f3d16cd29dc3bed9d7934970954bd06,3 -0x90a9ef6ae13120f87788dd37905d3ce3706f95ba,3 -0x5da0153a66094168ee4a33a74ab682e39dff9e99,3 -0x07c81fa8952a7053fcff25c581056d95c4a2c124,3 -0xf6ca3cc21510c17c39af575cfed81431396a873a,3 -0xc6e7b03c162ec6cd94be8ea0e315a31b3f2ea68a,3 -0xe2053fd2d9fc41ef6290e90dad5dbcb025ddb160,3 -0x1dcaac7a353f4f34e4958aa93651967983c26a2d,3 -0xa41549fba56afda21c4a96482cd62c66296d79be,3 -0xb8243a38a1cfaa3914ada7ed3b1bcf6f38f68f99,3 -0x2b5fe36aaec5a6b479a1a2b2b6ba46f278991fc6,3 -0x4f129fbd6fe4c632c04998adfb392d93da412ce1,3 -0x41d049327c1256568496ac2c7452ddd26cf20908,3 -0xed75d387aae9c91be2f2d2b023a3047347438617,3 -0xa662cd6002092164819a659ce8a2535588f054c7,3 -0xd730c5a0542d5f692b509fba1d383ce54519a114,3 -0x3b2da3387cab94de9b6d9baeddf68d1b24c8b824,3 -0xc26abef026701030e2b04a03a604d7c5bb683956,3 -0xf1f20949698c78075ba16031fe6a7c2f6848ca78,3 -0x9bf3ab72694eb615a5ad0c60dcf8588284c1afdd,3 -0x1acbf11e27ab0a0dde8011d28d42057bb84a8ba6,3 -0xaaf50ea472d57af137f8d2670e898dcb90c36bfd,3 -0x4db21004560f0208dbc2b66e8d7075a9660165b0,3 -0xeed1e9053bb3991dea78a30a1831cc150dce3336,3 -0x5fa7886f95caa65733f6bb955043e9aaac4cc8b0,3 -0x9a9611760a8fd973a99f1d82defcee5e5ee2660c,3 -0x4d9e79fc1fa04ab392239427c66cd0637dcc558f,3 -0x805618b82a3854cae9821ddc4b4cc493a4c1e12e,3 -0x029659f95a2fb67703831bf3e604d8ba253e26cf,3 -0xa29dc996b45b0e0ea2188a73913321f28bf4240a,3 -0x8a0ebb27f82342a06b7c8d9cab5ad574e072ebdd,3 -0x7e1fc73e0aafa8fa5e3f364ca05291c1470d4809,3 -0x6b3a6c9baed8be4649b4e6f6867b3580265c78de,3 -0x124c7bcda93d57703abbb8fb82cad60f3baf2528,3 -0x0beaab69488fea5fc026ecf59c7039979f736743,3 -0x09fedd3fb2907449b812d8e243daa02a2f54f946,3 -0x1e023aeac9a80eca5213277d3fb3aab0e8d799d3,3 -0xc0072c5793771a7563f43698a4710ba56bd6d9a8,3 -0x7382613781a89a85c8c8497a3efd0734600a80b8,3 -0xa3a449f5f21d7d2cbe8472ddf24a104e4ff716f0,3 -0xe89f464af189cae0bab2894ed2d5fde2661d50e5,3 -0xc3222bf2d42222cfe71fe9f50bb7e9a7fbc6d4be,3 -0x06d697a59c0798833fa510488a77cffeb877faa9,3 -0x2c9b404211b1b7a4e0817fc6608d70db17f5d15e,3 -0xcaf6828395ec51941d98385b862c44fc6b721e35,3 -0xc42a2dfc1f3bc4b0334776154609a731429bdfcb,3 -0xef302a443781c6598c5dc8016c42d96c19089481,3 -0xdad1d161bc45457b4d79ab46fe0c764b194d68c8,3 -0xf2b3b229c1d6161cb9204f684fb369b1603c80bd,3 -0x9501a7fa84e2af47d1d819e61bd74f19fd76184a,3 -0x482f1371927af8f69790f6374cd95824c648a887,3 -0xf4dae4d603b15165660a53f84afd5c0adc3b5c8c,3 -0x8ba68bbc908ee29a5febee4d64fc34312ca5a3e6,3 -0xd950b9a4f667184c386b0c57311784c762d591b6,3 -0xeb9b49981c8f1ef7441225a63aac5b4d03fd3b58,3 -0x0300f7bace786c9e9a7da093efd4b11d34b99f8f,3 -0x24417d2a160cddebd2e8cb1263e1d7b984f48ac1,3 -0x0dfba37c5dc1149be766f3b7fd25ee3eda087f1b,3 -0x06c3ef82948d59fbaaaccbe224e364ac6b8cd080,3 -0x068fb51a5e89253104ef701739153f0be1776759,3 -0x0593e203835b56e930ac831ace44d443698f5527,3 -0x24b775e0d16ed56c74e7140d0dc7e578e971107b,3 -0x3800f80a7bb06ac7ed1ad4068c1f8bd21462712a,3 -0x994476aa0bef744a286e3f5f66eab2320a6ab96c,3 -0x11329e673811f08f367c0949d2afa65eaddcf129,3 -0x38590d56fe803e87056383acc6b8c0c3be9396bb,3 -0xedd011efce6f8c8b92493cf84abc445b8e0992dc,3 -0xbb0e93d18ad63e124898897773d546a4b3d9b74d,3 -0xa5c05adef1736971c74609a5a1ab61a54c6a3bdd,3 -0xf45166517a76547c8a9bd80172463d97cceb6236,3 -0x87d70a75ca2c0dc59a70c40750a09b443efb5785,3 -0x7b86ceee7eff80693f4b2a98da209eff29531d50,3 -0xe3a884a216412576f85f51fdcba0831eb74e0144,3 -0x660b8aafabc52d1312036ccb45dfcd1772c5994b,3 -0x85a19dd2ad0d1d2b25bb164810fad08cdc0b33d7,3 -0x4a20c3e96664a18086594785d182b173a8acf512,3 -0x0fbc99ee157e6c1977e71f4ad412c5fdae74a047,3 -0x70a3aeaddb426fb5325ceb74d17d0fbdf162590f,3 -0x0298fe88e6ff7eea54f04ba2eae6cf2621e9f083,3 -0x85d9dac8cd5e3a9346ea5da189ace130042de8db,3 -0x169d0506fd624692c363bfcf57478b69c52472c3,3 -0x8701bde9cdcf37d1fa67f811f68c23a97b4cff7f,3 -0x090c984cc693b991d7cbaeddb43cb75f13fe5f2c,3 -0xeb6d9f182cc3acac423e955d29bf1475e6d4f055,3 -0x1c28d10f80f400a43b46e761f7319e28a31b6ee5,3 -0xe19241802f8fa20c53150d4988849efbd509be3f,3 -0xdc2d10a46879530ad6fe40628b3d9eb4a62b0502,3 -0x5f7418f15a9f374fe184d70986424653e54773f4,3 -0x8818d0c53d6f27ccfbed2690c7a65fdb1d94f351,3 -0x73529b27ee53d348d274e52f849c3d49a5fef043,3 -0xd7ef51070d65231e0b9ccf592ba5b34eb05fd674,3 -0x7b6f8af7ad2c8b4772e9d3cd30773bf3b1981dd8,3 -0xd82e6c1e0bd2a753136bfb8c9d378e4ef3cac9b7,3 -0x183d890902e0e5780fed74817801f6363e90e130,3 -0x076d61081c2b57f86aee60bac1cc4e018470a814,3 -0x649a8aaa8398900b704ecb4630e9e6fe1b301c33,3 -0x1cb1de31c01c42410b61d3ff38d5dfc1211522bb,3 -0x5b486cfe033974d98f3a7c6fd87b2a6ee2de7b44,3 -0x19c259caeac0c010b96368d5163d14223ff74577,3 -0x2ecff4c3e07985fd8db44a3a3f3855e298946103,3 -0xb9f97856a25d58c4e09df021ddb88ad88f1b0b5b,3 -0x42817190754709ea128e108b2872266578a2c2a5,3 -0x48750ff8cc9c07fd36c1eb230ef3a49db8b4813a,3 -0x49e59de5dbf06ed83116afaa0570bfe13a8d5ba7,3 -0x57a9f0e75a0de3fbe88eac0ca84367ad8d4b3213,3 -0x767e47b65604305b1d81a756a003700c55bfe7d2,3 -0xf1c5b92895c892f1a635fcc18c755beabda48c3f,3 -0x1ad0220dd6db112fbb95d0e49dd8b0e19bdfdcae,3 -0x767eb448020c6ab10cab7c2cce8cd09925df166d,3 -0xc563ea0be5abb00fe81048ba29b9515335c4d643,3 -0xb9e557e2bdcdfbca2335b0ae73ae0a1f44f748b2,3 -0x5a2e6a2385631ad608e6bed27405b26e1eb72404,3 -0x4e91be6a1869bae66b6e5847469f4c42fa067bcd,3 -0xc1fbba3a647f41bd2cd4dcc23aa564d552ee8e77,3 -0xb8822d63458ed04117b728202f23bfb7628f6db4,3 -0x63cfd8675c33a2579a319aaaf4b763549edaa796,3 -0x0b6eb230e62edf598458647e696a9e0a0227de83,3 -0xc91d85d115fb87dbbee0518f076d2ed5bcbd2c26,3 -0xae80dcf8109e2774d38884ece6c11191c7a1c583,3 -0x02304d460e9074e82e5efd18e483422033f488a4,3 -0x7cf703ac5f9bc457ae57268eaeacb8446b5ae439,3 -0xb7b9622f087c1dd53e861e05cfd8fe7cc400bbf1,3 -0x6f8bf21a018ab23abe07784c660cdb0844fdc239,3 -0x5e276ca97e60030443a3cbe36ffbac65be69ff6b,3 -0xfadd349ca812c4c99ac070341c7f5d018b7d6ce7,3 -0x048499a8b3e389efc3dfbd782405f7c0eb1ff2c4,3 -0x0ce0fd1082af6157caa9429ed60d01b26ec6ee54,3 -0xfff0e275b2b19163fe8726007399bc3175198de2,3 -0x60ebe5a551186d9424a4eecb3ad6684150e24015,3 -0xb812b11e5bfbeda4f33da7d96ecb9bcaf8276d71,3 -0x7373bca0cbe768cdaf77613a8ae864e740c24fea,3 -0xee78f64e1613db75a4625c4a18095bc269c9379b,3 -0x5091555760dba6af5bdceebe74b023452c053576,3 -0x609e1de29d5e543a6eba15b73d9ed335e90004b3,3 -0x90039385d69128a15b7cd87bc4d52788d934d232,3 -0x844a4c1f017f5827e79aea44ca35a7985053e9e8,3 -0x0d07e83116652b9e6cb51c1aa08358ab74422952,3 -0xe508ca502ab7cec51aaf87c6e5111935884d2bb1,3 -0x6a6920e4b458dfe010059152821d7ae10fb24614,3 -0xeb13247415a04388d0d7abe8dc3287808b7c3086,3 -0x102aaba4e63a56e42b667fd3847ac75744a3e4d7,3 -0x5caf74be679e1d4ec668d4868a3af79ce6038d78,3 -0x4320701b77ab26f741561d0a62eb045a81af0f09,3 -0x3fc4716c23a5d9f56b9b6b3e3b046b9b8ec8aad2,3 -0xc4ef960f5b0131f5a7eb287747cfca91e7f10be5,3 -0xa81e7c75c6e04fce7f2cf5ed105b8c1135c9bba3,3 -0x85df04927b38f01a73f2c17e9d72bda8b943813f,3 -0xd3db5eeb0013b77c4f5c57353e1ae321f64dd76e,3 -0x37a240230a284bd6048f5737b4ae05df55f7a6ab,3 -0x998c33d6a3bf3e22f9e588bb2099cebac473951d,3 -0xb11172572e6cf6d9d5674b7ab782c78612582b46,3 -0x33de307838ce27c0d45c58c8e681f911d1effe9f,3 -0xf981e1d2d0d43ab4c37478db36e378e59fbefb82,3 -0x85001c23c185f473cf0ffa5c5c9532626b36c1eb,3 -0x5ed804d6a6718ac0d5da05f3450432dc42774dfd,3 -0x79baa45f7e883c1194e401ea67ccccf945c22cd7,3 -0x11713c4da8138d4f3c3753a111fbc394bbdd3b3f,3 -0xa62e88d4a96f39aac4628e0683f7432ee81a5956,3 -0x85c0c8346d37f64af19c4cf6785280244b048271,3 -0xa33e4d70758a1f4cf4dd259c2e4fa4031d6ef17e,3 -0x3ea08230177262b27299d289f38a1ce39bbcc587,3 -0xfbb608bda7ceeb8a62dea28a4e023415d05cf3c6,3 -0x02becd2e3ce9cbc9316522ae8f3383498f41cb31,3 -0x7a1726127af45cb14ed7493d0c48eec4addfdf8a,3 -0xa35e1c42cfb02596d92b935b83badc786f8c16fd,3 -0x74c03b805716fc730bcec5df22b7485687ea9cd5,3 -0xda8ada90146b255884489358fa1a419609c2bacb,3 -0xe6ffd182782e5c89f8a6a1eefe5f728449e5da14,3 -0x1c1d7e85f14cf6e86892d0bded33b42a5615e577,3 -0x519ce2aa599c939bd562201887e427fae4453fe6,3 -0x6aa56faa22cf3d87ae2d1a38dc5982e377bcd152,3 -0xa185ef6833c17c96edbdbd9e40c7bd3680f19177,3 -0xad39011c8589db50cbdc6064ab80d7bbb69f0917,3 -0xc00667d8b00f35b3565a5c4458dff1cd718e3527,3 -0x37bbf55fb761571a234ace584abe5b6fa34a53bf,3 -0x6fb1ee9517ff1a33262b31aae2aeb6992f22e599,3 -0xb6adabf4f57987e14085f8994109e7a725d5da7c,3 -0xd4d21eb83acf91c388a40fd7c1dcc75d57212ae0,3 -0xc0cbdcd0591a729ad46534a01c48a57604dac3ac,3 -0x0bf43c971df5ea4e6d8f367975a10163fb3fb4b0,3 -0x29fb426a1f5fd6fb105d3c15252a4cc088854bf5,3 -0x43c6cec971bb154915485cd3f7905ef8142d36c6,3 -0x79320481fa88a4261591987fce542136a7d9ebdc,3 -0xe28d10e8f258b64669e478318520093fda7f69b3,3 -0xb6eda012b5c14c1e5e74950fba023c5be79057f2,3 -0x0f2a907eb927b08fbd2e80e98e568a768d9db77d,3 -0xf68ad90a095a1a97ec7c18b803a09421754b2a02,3 -0x96e57150058c769a6e6c5176a9433e30f3326cd9,3 -0xf77c92b48b9c95d0bf78e42ddfd246ed4fcba7f0,3 -0x33d35922bbfb6f868849e198971b3f370ffeb8fd,3 -0x2088683a569a4fb49dbbb08008aec85b7e400e3a,3 -0xeb9502bc812c21e71d7119bf0167ab4545eeb779,3 -0x8acc2a3a4a412cdd0f3c8af97ebd572f80d9293a,3 -0xf3284b154e17de2744b895c616dc8d040707a4c6,3 -0x470a2ed139b7b967119f2344df98d81ee5a1c756,3 -0x46b7c25af166c0d9a9c21c796ad54380f808dacf,3 -0x3fed37c938a3b18d1db32950cc4e16f31898d0b6,3 -0x31f23a5a4298ea49532d7721b2823dfe06346e6d,3 -0xb98b703b2ca5d787c504ce110527ae64b2b59e8b,3 -0x5b5433e9f7f5e5f6febef055e3d22d6779b15822,3 -0x905d13367f3bb940072a133c81563f1b1a6779ad,3 -0xc88732bd19424aaa678553a5b712ec2d12cf607e,3 -0x2d37b4f77088eb8ee6d55ba00659eea5710811f5,3 -0xeecdfe7035bbc1ec75347510e9927ac12054e414,3 -0xc889b2a22acee4cc6eead1fdbc35319f9268a36e,3 -0xbde87e3098a95913bcce1be493f8a636ae26e5f8,3 -0x526b9d955e18aef0d1474b6ae019710ba914c159,3 -0x50de79fb748944e79ba0433180a394356fa00c60,3 -0x2165408aaf4b54381d0556c05e98a3d8b3d8579b,3 -0x01dd3a8ef7f2e6eb3721ca797b0c3bf47463843d,3 -0x6afd10476d1ae9d81c233de3390ff808a98b649f,3 -0xeeb1cdbfceb5386928d2a657cbd65f2368f7f91b,3 -0xf1dfbfc3143377e8d5e705c7f88af2d255484341,3 -0x2bb3c372a9269b90349195e8cb7134ce138b41ac,3 -0xf7fc93523e6f9965d6bb5f27ee797771d094c0a7,3 -0x737b4bad42aa643f25c5b0d94eb9e9dc1f47f5a6,3 -0xc82170729d3a3888e1a5d6ca7116b402661b3ced,3 -0xba9c4d1df8c2f7d1ebf3a9f6b34d04a552aabd6e,3 -0x1e340365db08719c42ecd018a6ef01bd63c6f17d,3 -0xb20cbd4e763d6c8ba6e97ea7a3a15f0b18eba046,3 -0x4e9d88da2e2dcfbb9ad023b82c104af26cc5e452,3 -0xc4b48ec7f2d724d72578787a88a5665e3b8f2541,3 -0x8d4fd5a4fde181e9cfe3f06ea2d1d2c88bd6f890,3 -0x53bf3215e96d8846ce3047d8b9a9c8c25edc0776,3 -0x525503efe6acb4cb1afe2dbb9c1a434a5843658b,3 -0x96e0a11ee3bd3e94edf669d568b9dd09ddf23776,3 -0x1e451c6463dae3e348de2323edae2b4be6eabb2a,3 -0xbef25e0b188f0090c7ac88488d97b2aac77b4d4d,3 -0x2e6469c5d4256c098ac51b9655dfb27d6f996a0c,3 -0x590b13ab25877d8b12a9e45df9aab9a2ae382ed4,3 -0x047afd81fc0b94e6d50e38e0428a7a23ace25dfc,3 -0xc15a5bc296ea52cdd41ddaacf517eadbbf9181d0,3 -0x9cea0bd63f2965e7e619f85d1568df2444ac3f54,3 -0x5395e455642c0f9d8631e45dd0809f93b93ecf2b,3 -0xda27bf313dcef0ee3916c9506a6ad45f306f9f3b,3 -0xda6743a5cf68d62d129869976e9be81a561a4206,2 -0x64c2838ae4ea458729fbf317c7bf5c47cd52b887,2 -0xb620c22be689dbf1d68605cd960db8c7d00e8400,2 -0xdf09092bae5c265e404e0a8ce01ebf341481f531,2 -0xd9718542d7832b322e92fa03f408d02a4d47c2c5,2 -0x9b4cf900888549e2b75991bc1335940f1e8fe924,2 -0xdba926f8e426f4a843fa0141ec46b682f3d9baf8,2 -0xac1029c35e7f192e397191df07c35b846013ebbb,2 -0x45db2751796beab0bbbb632c4756a96aa3e12ba7,2 -0xaf66cda2573e76164b9f84e4fb1c24c161b8ce54,2 -0x6eed4e427fa59e84e35a98547c8054b96188171d,2 -0x4b8a930e59b5151bcf5447df6dfac704f5841272,2 -0xcd9846ccb28f13e5fbd28c2bc4f2f8733ad9cc00,2 -0x277fb2af5ce837a8e77c5607ef463e1919796d5d,2 -0xc0e61eab5d7586dc80ab65269fc8454931316014,2 -0x794b4fb5af3076a6a9a01250cc23592c75c90fed,2 -0xb6f79c232dbfba711b9764225a75d39f633ad8d4,2 -0x2486630bc0a951906d90a90ad385d751c1e6ca66,2 -0xc2017439b2ab883c2949c20469b36485b770b812,2 -0x7c4c5f2b13307bb0d74416513d80fce524535492,2 -0x97c3d5ee78079c553eac02f13425e89e52dd0ec6,2 -0x1bb6ad7cd3cb7c86e1a50a5a5e956567d47eefd0,2 -0x25d70876ff984cdf97a4ad00d027c3f0a22c8fd5,2 -0xcc47fcbfdd6e558fb39cf5ef4d92e59890476b86,2 -0x6fedf764f61ceaf1dd265b5cea32dfe35e48fa24,2 -0x662263a3ce46205673f23a70fca6a4e36eff3ec3,2 -0xa8ca9a70684eb995e3ebd77aaff564c71eb508de,2 -0xe62191bed11f60b7b85349cd14a3c97c242e7993,2 -0x5462ef107899f80892f3b5df19aa1031f1b27717,2 -0x05e704a2903c8ed616c0926308c88ee3b94128c3,2 -0x94ef50afac9c04572813f36fb8d676eb400de278,2 -0xdccf8891df18ba447d35a6886a2a620ec70ae3e9,2 -0xc12eccd96634d0eeddb634d599db90a4f3ecedee,2 -0xf4a2b98f08cc4c60ee179a2a84fb158b231778f0,2 -0x47162e548d00ec046e0205c1addbf9f976f6c418,2 -0xfc7195826eba803aed7161ad2ef32a837d595cd4,2 -0x9369af37574aa581beee563cd576cbdb3f083efe,2 -0x147c1cff9251a27b2bf505c42df13a8905a8f9b8,2 -0x101519c1a71b5517a67dbb72563916fa438eab2d,2 -0x3c7b8c495c40f815ec455cf30351cf5267646454,2 -0xd6bd8448426484a746529e2dda957f1c59b28ff4,2 -0xc7753d4a5763517213b0f14fd58982a028ab07d3,2 -0xb404ac20c5280b4eb935bc42f2fb967529843553,2 -0xdde530e2c405a0043d0467672dbaa6c37b946b2d,2 -0xcf8c56356bfecfbe8ae28f3e30be893362791d74,2 -0x6513b753670786367922fd32efbb6ce18abd3041,2 -0x197804f78a660337456ba5097f96b8ef286bb70e,2 -0xe4faf36869f096eb3fec5455798f09177539609a,2 -0x3d5f1ad033c4e7c6a6d433d50d694c488dcaebcf,2 -0x14931b97bf3eef2685a74f9fe22f5890316fa78b,2 -0xfc20abfcac9e80850c34a8c97ab7e9e7846a00e4,2 -0xf08a1ce8fbfca5214a5969ec20b62e60587245e8,2 -0xa74412901541cc2d0aeb7133dc82c68b609897d0,2 -0x43ea17c992b7252245a96070d45a5313bbbb2c27,2 -0x3b6d9fb40476ad3bff4dd7224b0bf78e82cb8513,2 -0x4f4fff16e447903ab5ce1b7755105458ac507006,2 -0x4f41fa9664eafe2a9b8b6663d81473b942345df6,2 -0x81869bdad4531f56b0a6f38f6b6b5c63dafb3f0e,2 -0x836cb3b4d254991dc3d2deba8c649f34e1bdc50f,2 -0xd81ce8e89dd987c8ab630858c8f1e9df14788c35,2 -0x616f556cea8fd9238e8ca0a5604c5835f89e662e,2 -0xfee86ad5f76f546a870d93f44f080e67458b6402,2 -0xd68271879bd3d957432af5d1b8a6687584c217aa,2 -0x8205f2ab276c78d06a8f9be9b1c97a776c7dd805,2 -0x1f450446c6db78afc0d53e99d3bce31cdda6c094,2 -0xb8ab84afd7eecfd33fbbbedae6788cbca9e04075,2 -0x963b81df4da9ba199a5c43668d3faed263aadb01,2 -0x6c892c41dbe40eeaea6c6ac7bd1e6fa4bd971a61,2 -0xfe23ea0cec98d54a677f4ad3082d64f8a0207eb7,2 -0x2f9610d49ed538fab6e865dc304debb0d739ac23,2 -0xb46fa01ecb6a86aea5fd27ed21865e4d4253ec8b,2 -0xf610fb9e45cdbf73e86c4f3f57507d532627847d,2 -0x6d8370a8744f850e6d8df160eebef545fccb9f65,2 -0x21f23e44c17604df9a9e42197e1906580b8e31f2,2 -0x000000000007232d9e1d5ae25a80a0d707e94a4b,2 -0x7ae84f744106f3c527762f0d5234ee866ce0e540,2 -0xffad348aa778486e98808110abe7e2bf036c53f6,2 -0x73e074a21c680712cc145ffdb239b4af23c08832,2 -0x060653901adb47986ec3825e4aae6f8e58ef543a,2 -0x708962c647c7641620386193db92590c9e4d0c60,2 -0xd1398f8e919d104123601249e73351d5f5758bfe,2 -0xd0b7cd6a151a3bd7a7f50c187616dff11c089e64,2 -0x06a207e260ac4eb10741dc1930aa554905d7e193,2 -0xc30231807c6adad9ed6b8e71781208af6dcd42d7,2 -0x078471b9975b4ad6fb8404d93c9253ead2d737a1,2 -0x521194d247e2dc2298bb0d5609e409d6baa10eb5,2 -0xcbbe286c5119f331063ec614fab776f6a3799368,2 -0x99cb33037bd3c628d0d6fb3f63f32d5ba56c63f3,2 -0x93e6dbdc6fe8e7707a6a543e6c9ca276c9fe4933,2 -0xfbeebefa8db8b3df57e89e739bbd461bce7e9109,2 -0x7e2c8caa894f0a630c6c700a4712e0083209555d,2 -0xe19934fc4e0a2e584f442f9ab0e14545dc49758f,2 -0xb329ea46cd804649cfc0c22a42b18821b569ee13,2 -0xe6c58f8e459fe570afff5b4622990ea1744f0e28,2 -0x8a771e39d7840ad1a683056c34d32621b799986d,2 -0x65b4e64e3e6d4a155f8193ec608c1a49e914a7af,2 -0x8f6da0c1662ee72bf3b333d94efc1d9ebb615577,2 -0x036bbcd47e8a66c4f1559674b3993df75070648b,2 -0xa65a540d69d60401761cc1f4adf22fa637156a3a,2 -0xbbe008b31612277754e2fb915f18829949413371,2 -0xa1d28791561cb2b9313f7aafb22b9cbf77a76d55,2 -0x4010a28c7e5e70ef8c399c5597995aa4adffcfd5,2 -0x893f411b83c9ad7919565f7c906972e6641bb285,2 -0x0378b609fbc94c91b4d5816365ba031f53c21768,2 -0xc06057acf5c722e961184d3eb751d93bada7d72c,2 -0xf39082341425894fff0ab328cb06a66d9ca7fda4,2 -0x79e54e034bd348cbac1fdae3bec36e3fdc2dc8e2,2 -0x1b4966114f3a7a4cb21c7e1d0a70567a29f82c34,2 -0x19bc8a60fef36eeac2a61fe94562321647e14e85,2 -0x709d1b1153f96d8ce8bf0c4754b59ee14b866380,2 -0xf336e96b7b6966a0b6aa057a56052ad8def9b09b,2 -0xc091a0a9e4bb4f620342bdc540b8ea327760b1c5,2 -0x85ae29cfa53fd3fc324c0287c14e308b9e7a0797,2 -0x4e7cd3458cda9c75c39c40b4393108141ba0e2f7,2 -0x506e733ceee4f0d6f815d3ac1b89dac840075919,2 -0x233380caccd8097142f63bd1fa27d2810d1176c8,2 -0x2fdd1fbb9793f4ac4e51ceb7a75660371796c19a,2 -0x29392c594993412f67faea8e14fc9f90ce568beb,2 -0x4ccd6139e0de868de5d2a2d6a12edc0503294456,2 -0xf300af7c19931af233adfaa99aeeefb9bba79339,2 -0x785f41730ceae7dae24e2b34af605794a6f03f83,2 -0x9424f7faeae1eaee9ca2abbca18fd6afbc246776,2 -0x588c5e5efa2c4c5e0bb71ba4138afa4c29511c34,2 -0x614a09512fac5ff0239de6e8eaedaacc841c8565,2 -0x79bba531c0c1bea1a2db08fdc69df5aac083b230,2 -0x18a6a993674262e166c475edfae0858f6d0456e6,2 -0x9163b4323f817a901adb1b8b97e566392c5a4247,2 -0x6249a9c03b148acd773d806a50e1aa983e34be0f,2 -0xe725a14c6f6164bbd49438b22c82cc8b08ccf584,2 -0xb7e91d82789d72da1c15687e5b434683ae99ffe0,2 -0x729e2988fb13e7e30a91be3140a15851f120023a,2 -0x215b5b41e224fc24170de2b20a3e0f619af96a71,2 -0x35688bc74753dc062d17a3412cacd580b3630991,2 -0x2fa91601623de8738b9fc431de646b1f93504a10,2 -0xcbd6d9f403e60d2f83e0a54893866ea6e003fbef,2 -0xeac6151434c63d107d5df46dfb0c18e41e70b50e,2 -0xa65b44e85db0c0a280d203a88af460c308c86842,2 -0x2e2dff9cb1df6065747a62bcae441b3452e6d711,2 -0x7f6847acc3e8f4f335628d3eeb4dc01577d79f5a,2 -0x7a574bf1765eb7a989a5184682d3433369a58df6,2 -0xcc5186bd0c32203a014bacaf527a6c049eae0553,2 -0x95234f434b78e945198f5322ea0fcfc8677405f9,2 -0x49ea77be9238bad95efd63ca487b87a46b57a9de,2 -0xc9ec3241cd8fe9cbeb520a94ccbba47c81bd5d02,2 -0x0aa350fb487f75d4f5d6ed920a5ae0923ded06e1,2 -0x6274db34b87efc197cc547b866fb60095e12883a,2 -0x504750551f6ecc28cf488fdf5b5709f0156958c3,2 -0xec45630878a5aff8e03d94c3d92584c00dbfc665,2 -0xe8a9165cf9a2c4813d898b2614542d2b7830a146,2 -0xacc2a2a337d96e2ca934a8a336862cb617f95a16,2 -0xe39841f61814b727d50209084390e6cca81ae96b,2 -0x9f089eaf6a3a62bd506c428ab0ec97c54e02abe7,2 -0x1371f3b0ed087758dfe8895770f4a53272b4befb,2 -0x86f7e7c0af2d6ccca871363d1ccce95d0a887351,2 -0x8a9c8a5e0f8deabee0d9fbab1f3ad018aa0c8f75,2 -0x8d0f3988d864757bb429b08df92b93c185bcc2ea,2 -0x99848c9dcb8a2deba408ab84be33ece00dcb8293,2 -0xf45a37f858e97054841e1f2128eb86ad73296707,2 -0x532e4a0d1f364772291c34d16ae348ac10600637,2 -0xff6e113ebc88c6a8c75b5880b290750a38803b3d,2 -0x4c2f4626af91ef176f7ebfd4e8c44b780d027433,2 -0x83b2071951ac3b2d9405f69844a31f0de64de504,2 -0x2953b3edb10d7750920f11667a154183024f2232,2 -0xf23305f4ab411547862d551a07c9b5c48c20a84e,2 -0xcc85d3b7fb301d347ff4b6139e47f5a65a09b709,2 -0x0fa428832e289d9ea5bf69c7db7bdaf9927dfb75,2 -0x9b6408e870b36a0616dae20cf8aedbd21dcce1b1,2 -0x2bfa96dfd42e989d77be132dbb104aab8a0502c5,2 -0x3c8eef6273ae5b0b9fbaefc9edeedec6953b296e,2 -0x4cd909f6a14404ee6bd46907dee9022cacb99e3c,2 -0x8365b10f8cd2f27cc6baff996e9f820767f81b05,2 -0xb53111ca4054772d3315f1ac253dec0eb39bae1e,2 -0x235192674b0949fe45019505a30a51c5a5304d58,2 -0x00e05c1049a996a56156119666cf9faa2aaaa693,2 -0x32eafa6051eb525fb4c1a22dbe5e2035d504f1e7,2 -0xf6218d14a9013d6d8596fcd8e884b2e96323ff82,2 -0xb689edf76883c88023aec877f72abc3a26aa2dae,2 -0x594fd8d5bc6d7ba966ecaafa945dfa6251a2c551,2 -0x8fdf0b2dedfc3d4048b17eaafd4fd3b5cfdbd427,2 -0x88191f7ac4d235711d791ac142f72f32c7799474,2 -0xee8b5bf5c9b29cd86b33930ee36a2f75649d1255,2 -0x130ab6a72c6e03ad77372feefe1c1e18f463a5e8,2 -0x0d4436855cfbc3a3d5adebe3bb72ab6b5bc37831,2 -0x634c756520bbf085eddf66dc416cec6fd016db01,2 -0xed77db96ff4ef6e4c9151ecbf04d6e76c43c29e8,2 -0xddc21e3ff9e53f1bf1a00a4b47f5ad0c0d985cb6,2 -0xcb180736aa89333d623a6ebcad21f3aa30b532cb,2 -0x37a7bb5e8996fd8b4b5947a4dccce7da873feacb,2 -0xedc20c517aa1ece483d018f19b0a473d70de91b0,2 -0x107416d4fd723ecce1ec79771d894ed6880c9154,2 -0xf83f7fda18ed2100ab5b0e24dd49e81ead4b46a1,2 -0x356b5025470cc8ee135c519dbad4a5369da0b4a8,2 -0x05f69e8b50317d7a7536ec844c1cc763daa9ce2c,2 -0x7ba1e83caf050da179c50775d2daff2da8accd06,2 -0xe76e9dd0809d0122923631699be6ace7ff4102bb,2 -0x93cd03c8aaa9e6ecc76d98604ddd06a6461eadc1,2 -0x071ccbf8064f38887dff51c10bb11da630891f08,2 -0xf7518a8d41630b42736adb3e12c89ca7c53caa8f,2 -0xcfcd567e2fcede7a0cfeeec9cb879bc025802225,2 -0x169b8e5784df150e0dec0f26059b3a18272ef629,2 -0x41e79ee32ac253518a576d6d4b75853cbba536f3,2 -0xc9a44cb3245fea992e8ae0fa46b7a755ad9a6b3e,2 -0xba5b3d58f23ce3a0411b3a6a85b17e13d279d317,2 -0x90db4d48fe5b78a072272eef58130ecea38fcad1,2 -0xff9c6c4472231a5a9c99b1393c96f50dad9f5df8,2 -0xb0f1b2e11ff7faac07ef698c78b1a796d902714e,2 -0x04ebe8ab7b47795f96a5f5542801aba4d598f458,2 -0xbf260d5b1d458b214daf5f022739441757647351,2 -0xc940c890c1b455a872ae8ac51016d303fd6de2fc,2 -0x63b1f0514c600cfd528153ce3ed89208378d9572,2 -0x560e5162f0b894c26aa97fdff26b587102f9f51a,2 -0x00c10443748a2706427e756588bdfe345ac540e9,2 -0xac0a7656b5d62e7d54b11f8b5294ce0ac1bb7118,2 -0xdb345fe000a23876058eab6322579e688e0e6afe,2 -0x3725b1f2ffef0f882248cdbe6980bf418a16d8ff,2 -0xbb4164041b19c7b1f2ed204f3c4be229d1d9fcdc,2 -0xbfe253c6166021e6258265d4166636f3c9219533,2 -0x97e4a256f8fc74fd27185e42f9874bffd41a4e60,2 -0xda6760a7f35e4f30d0ba550ec23d107bbd938d9e,2 -0x22eb2fa87be7a007660ff48eb9e59ef9f083de22,2 -0x31c2199565e88cdf259ebb6f13b0d9f7af072cd1,2 -0x33e34e4a9e6718429daf793feaa63ccc8ce1fad1,2 -0xe523bd0f83555e8a48e4fb8533b80e314b9fe63f,2 -0xcdafe450ce9bafced67a9e1d2d036daa5dd1ac37,2 -0x22b79c38bfd98a304e94f282e1331d515d61d73d,2 -0xa59c429bc92c7a8b05ae68a0651d362249ed679f,2 -0xfdcc8737ca1ca2b039b0f5306bca7d2c5bc90402,2 -0x3382e1b20452c543d293d99095dcf8988627f1eb,2 -0x7d3e968688f00f4656856d6cb316a7ecd4de4a80,2 -0x37fa3cf2fd0a358120bfe1aa3b4def5cf9711c63,2 -0x5a80d3dec587d242f06db92a4398668b66f183c6,2 -0x5d170ce48c66e06b4e66f4d28e58d8673753612b,2 -0x6939695106f17918254e29960e4920c09ba87624,2 -0xa76e80209610480aafd8807a20325e7a9030ed55,2 -0xc533ddee84393ea416a2f148efe3c9e746ef8f0d,2 -0xbc98fcdc59f74d3937178ab0ffc6291f16e800c0,2 -0x4509624050a93d2f37a1afd444c07907b8031ab0,2 -0x8f140829c52b06bedd29ee3d8df018035992805d,2 -0x73cff87ddcc41702205bf25877c4f18f9e12c987,2 -0x64d844ccaa29e5674bb31bb721c620c605795dfc,2 -0xcf4ba7e158dfb76ba274b74db4cccbe7365b487c,2 -0x625cdcd5eac316143104ee4ae2d2ba7635f2a2f1,2 -0xe309d9e154f9ed41564b39fcea7742a12f213899,2 -0x705b691db0b71f24ebaefcc7672df88e4b0ce414,2 -0x047450fa236f8c9680bcae81ff21b1480e800fb1,2 -0xdf9cba70a976447aaa4c13a5c54f5d2107f33259,2 -0xa6fe37100d1df6432e4b9f7d6c15449de5d29a7c,2 -0x4a237ad0818dfb8f274ce7c5c227840cb48d50d1,2 -0x97e7a32139c892c0f0ee9d5280c0f979f0b491d0,2 -0x22e2dbc33c22a02ab7ebfc4d2fd0cb53e8bdd0fd,2 -0x60b9fef3cbaf928fc4200bf390e939c023304e84,2 -0xae0c5770969d6d2087d7c2c9026f08d242e53d35,2 -0xa04fdd4db3aced5949216c28fda982704a1e3739,2 -0x82a5e448edf4a8d540526dfd805745abf8ea9df4,2 -0x8bdf750815f30a205b92f3eceb775662b79d5122,2 -0x2c57c88f0e3b0e05133d843265e556b8de797f9e,2 -0x8bfea62ce76d2e37ab5fa72ad00f62619b42c1ae,2 -0xdeda5c419993038530741e85eae65d46996e87d7,2 -0x5e3436890f0402b345ccb3711b1f9de901e196dd,2 -0xef24fb9c27bcfbc9f625e682f92e02181717fd51,2 -0x6362dc17918e291999aa06403857494434a9df9b,2 -0xccd44e68ca6836ca296d6052cde58913fd2bbd8c,2 -0x8ebcd4549f7c2c65a3c37595483e41f72de1d0a3,2 -0x2aaddc7084766fec23a68d522dd88a2f2ae8a949,2 -0x2cf1dae5e529f3025d5d0036d59da06a024fb706,2 -0x1cf854f9d93295d8ac57a8d3c077afba981090fc,2 -0x2da6b0f1c96ef2b479cb74bd9184d695fb525d75,2 -0xaacb18af34409dbe574deeb073277714fd871cbd,2 -0x617b185592cd2c6ae9bec3b8e2b9c1eef7cd5a5b,2 -0xab2834d0329c4a1d37aa258c14a55f6d91012290,2 -0x090ee38080c5042b6ce147ece13a1a140432fbcc,2 -0xf30e65025d0a330faccb0b0e7e4f9989f2847557,2 -0xc651d683af2ddb54e59c6977d3a411b911ea881f,2 -0xdb8f3817d2131f36cb49305709dbe9d9b9097a10,2 -0xd57a8376787064a5da5bb91cc1efc06127efd40c,2 -0xe52b9463d573e706fdce0f23a17b47790032c36a,2 -0x858656c6d5ec3863f7a3af8913c930d6f4bdbe42,2 -0x42f7c5275ac4372156027d939843c9c42523df2e,2 -0x6a31db8c2b9ae5721b92c2e21f3b553ef3d9827d,2 -0x327223f9453adebd9e28818c974d0aed77f4e754,2 -0x1846f5c3cb21ab1e1c204a9b0d28c21f8f824c19,2 -0xc8ec438f4c6712e7e6c9c4eb1aa5b6a3d466a778,2 -0xfbe778f3f2324ab31f4e23a9cba5be0c228704d7,2 -0xe8ac0cf3a9cea74e7653a863499e8e661440be13,2 -0x92f789e53dc3c35082852b665e581ec61d139995,2 -0x51854c434ba837efe44c393d2eacca186049425f,2 -0x7b943e4cb3be59e52a41ef0c232b0d2dab9cb7fd,2 -0xa318e3a946dc91b6d68b520f722c9e2ed617b8ca,2 -0x2755852fd15305c7c3b8138e1da757e5e5f597ee,2 -0x166f05b380df985a7b34e26c55f52e07a93a5ee9,2 -0xfd07481b85118b322a0921bcc3c65db242cf272d,2 -0x38a1e7820a5e58cb7167df938343325874f674cb,2 -0x342533d4f33a6529fb52a32dcdda9fce8c089a34,2 -0xf495bf06433b0d905d64db7f58dbe287313269eb,2 -0xb368b21d5c49e27629ea6b394845b96e072cb59c,2 -0xd51e6060f2c4e3ea4b83bb108157d822f8765b39,2 -0x6f4d62498d09158d41504518ba892453da7c234c,2 -0x626e19c0ac19fb975b0dcbb79bb4f80b4c3e9598,2 -0x252f52b9d41f5b9a246b9e804451650c988b192f,2 -0x3071e467f055540dec4dd8c2470727c90d897984,2 -0xd09aac0d3704ffa41c97f929b5af2a348f574fa4,2 -0x3793b49119427d7f89f3682f67456511192a3e83,2 -0x66b460320c535b0efa6ad40ed1bf2c89de2c1b93,2 -0x028e32f8dafad8ad08cf82a2530f81dac06a5175,2 -0xd266d61ac22c2a2ac2dd832e79c14ea152c998d6,2 -0xa6073cf48c5742c1f2211a3c8ba962c1664e089d,2 -0xfc921c6f6259c9f061056d92f02ec358ca1e4917,2 -0xf0a899124ca7101055e45c1aad374092c7c357cb,2 -0xeee2e0166e342e0b56fe9d5b76ce2c8eadd935b4,2 -0xb97807a4a58a4db96034bdba1897a6d43a9a1784,2 -0x6b2bb0202e8baa89ce8f42b7c76a22cdc37b7157,2 -0x0ac68fea14e963c208020c0e6dfbff6f6d8668f4,2 -0xb7abdcb6a334845125d94313c7255b8984deed12,2 -0x7504b3c18647b2f8402935aa5437ecb6b2492560,2 -0xfb9950a3759de555130e3d139b3c770e660bdd2e,2 -0xab94523869559b379793307c072505fd24f72c6d,2 -0x859d4fa3f9d94083e4ff90ffe9f56e252839e1ae,2 -0x66a9fd6f50fbc50774d7c635f9631b3adc554869,2 -0x72541c77f5099a951b30a0550378b869d83404dc,2 -0x9de6394533266a6f6aaf538a0be86191c6957155,2 -0xa4fbcd39dc0e8c6b1c3d89751ff86855d8f5b98d,2 -0x9813664b19e3d05e660107c660d8f6a445f4fc9b,2 -0x5db7830960f1641b2a11343435edcf69af284406,2 -0x5373a3642144502fbc0b03a682773a64381b9f54,2 -0x0b0f74488c2d7ab782f08e3020a3bb769c11f30e,2 -0x41d4fbcf26fa6bff8904f67ec695ab8e72e866d6,2 -0x41b712c0aaa05686eb99b29624cfe71b778b1a21,2 -0x8609149d68db4a64fbab57b6513d1009a9507a74,2 -0x5909e69452b24006a3625957b92b7d7f742759c2,2 -0x6ab133af137fd94294afbc4dfdebb6ded94a572d,2 -0x49fd33a2b0169ccf53465416a0dbed643f1e1439,2 -0x033a01c0364d946bd4b81094de6dd420659d1711,2 -0x17727c60e28c528b958082bee0b6e82bfe3f9541,2 -0x6d7b2215ede6e937b13a0057ee34e82e51f24c7b,2 -0x80656b1ee9d95a23c4ee1f81af62525bbe07e171,2 -0x2eebb2bad69185e4cc320410c619c20035ee78f5,2 -0x4e1ffc7b919bda65466ec3a6b498300ab417b00e,2 -0xf71168c26f3df2ef00e13fe104f33142c62f83c4,2 -0x108ccaea5b64c011a03187f822126c3851659101,2 -0x53ae921d43f2ff8877406b8cbac472cdd7df629f,2 -0x05bc84b50d7c60fc06d603b229725575ab2cc0d0,2 -0xb2b3cb13dd21eb057ebcbc659828b45be54b8e7d,2 -0x7d4dbb084be75f5a2959da44d2dd021b64f52955,2 -0x54ae70252f74208fc6cb488e3b652f5f36df5b5a,2 -0x230091867144699da607e5005b336ab09f923c3f,2 -0xa1b005480a225f61a93c12028d897ac32e92e0f1,2 -0x2933587e92e9f140ba36e5920fbc69eb6f77f98b,2 -0x8965e037cb591a63d1c15f456ff3a155382cbb29,2 -0x32b1dc6a72eb673c539cea9d0c029d92a6344d7a,2 -0x566a60a59c5b82722ac8897575669ff4ea3e7478,2 -0x38a74ede9c93d4254320faa60e34504f5ff91a6f,2 -0x440bd23858e50918895171f24d4e142e5a1abe39,2 -0x2da668c1b6d281181cc717306fcc7c9c463fa17f,2 -0x52c551765ae826c4b9beb73184c6af755ece0385,2 -0x79d899379844d35a1a1f5d51d3185dd821f44dc1,2 -0x4e39ac121aebe4a612f25cc5d5cb7e125c885cb1,2 -0xee4f84810f4285b8a231484aa1050e053c1ec8a3,2 -0x45d9578e5a6af44233c2042db9b80ca9e017bfca,2 -0x159bf2d04a7f4475e991740ea8acd67eb66f9edf,2 -0xb90b1bd6068b243b2f8602c3e445b072c1e3f999,2 -0x19dd9425fc3bff996d0eb3f21afb457c467d1882,2 -0x8ce5839af44c340d9bb79778fa3f2af9439cd6a0,2 -0xe27e8990e299f25a0052b6b9af2e87b6794fd25a,2 -0xeee23b04ae90243f7abcb15bcb914387d73895b9,2 -0x252ad4c147630634170971fe0bee72feaf7dfcb3,2 -0xa9382e09eebbe26a9be9e96b30c827f593104b13,2 -0x9c8e4092a5f8b03319ad6ec22a4d5ac199aa634c,2 -0x8eea83ed73858bfc97336187fb37445c43a4d855,2 -0xfe088852bc33ef53d3712b53352129f427f56fad,2 -0x9fd2a0729d2852a4f0d41e37f27805199a3dfdfa,2 -0x6d6976bdf14a6c331982e6da4bed4bc16119a896,2 -0xb42efc7b57730875eed2ad502261fa7659086ade,2 -0x5df1b16c0c7691b14307f9cdeea1105f13b2783b,2 -0x2098e959ef98d415bb0407b4b48234e407da5e76,2 -0xf58c535e9b50ab861e50f1152140ad936e895bdd,2 -0x31d2a7107556a6173c09623a6c0c05e59572009f,2 -0x9f99f166977bb2971285ee71d02df5feb3468d10,2 -0x744f4782fc29965f57917e61583c9120e391f0fe,2 -0xefd335b521afcc04cc403dba507a4003c4a3a2e2,2 -0xf1a2c9493a7d6f317724b27e8b42ae588f80bf78,2 -0xa72e7840622612136c08b03cd84b331e7b35b7cb,2 -0x00b3264448d8484e4f8d5125bfe4fd00263ba19c,2 -0xae058d02fb7f0ce217f542cdae612365e7203b84,2 -0xa48ad7feec36b1af5964fe91e51a31fcbfbae6ed,2 -0x6cf9002123b932b5b8898013bee42a1ab72dac18,2 -0x7f7ff97f8eda702ae8170d28b65848a5581a1539,2 -0x141338f5c867c56239b8ac08afa1cf2425ed2648,2 -0x7d1442e4e0ede206ffa207b6b02fb9bd80e921ef,2 -0x89fb6ecf2c7a98ebddfea218e69d214e9bac0b08,2 -0xf417315f03db70d1ca6f40c50958ac4d8cae2f55,2 -0x9ab7adae1579ea2843742e6618433995b0f51044,2 -0xe9c5f16ec048ed0185dbe6cbd670a2c55670dc7c,2 -0x69b8a24edc9053b3d007710e7b986df40a0bc7eb,2 -0x448770879f1508f9078f200eded7d107494b89af,2 -0x2ed087297c56f469c033ff2188a5916f4478063c,2 -0x59918d98f5c964df0c0bbd07207f75068e24453b,2 -0x0f9a34a848e00cc3ba1cf4b2933982451107c574,2 -0xf1db519a7b03e537e9aa6e07792c005bfdf559ea,2 -0x8315ffea76940dc9aca8e09b6a61f48927e0a87d,2 -0x11c08018a6ae314b08fef4e5709015aa3663e568,2 -0x5803399ac950217f63d66d0cd9eb012fd143fe69,2 -0x0b793ab8ec9fedf631b1373e1c5828c2c15f5f0b,2 -0x03fb943d3d580037625fccf7397d25d9537e5d32,2 -0xcb2ae72cab1cdad8cc3da6d3f82faad95d57677f,2 -0xcf135f02ff1b63090c23d1ae4c46b216185f9d55,2 -0x0c46d59a04ffe2efbc933e95ad9356b7923a0b14,2 -0xeae59ddd04014542e3d1218d966b5addf36b98bf,2 -0xe4a31c5c69a48c56f53a9a014c8e68e81dd4573d,2 -0xf0eb59c434d0bcf3f732f88251f1d6c7f7457048,2 -0xfe27200952dab2cf1aec242dea422f26c9dce4d9,2 -0x543fe70d71090471b054db0d026ad1e6e7cf52ab,2 -0xd3e59ca19ef57037b6a9818baea4415fcc252ae6,2 -0xc250111c545947f32d5708167e87a6e42b01144e,2 -0xaab1158d37c0154ab8f452c128bcc4ff94fd174e,2 -0xaa1d1ad81c6fade6ad06f6e939d76b1cf342b3da,2 -0x82274193a5b6ca9bcf5c31ef5cf8be3a2d0b7ad3,2 -0x3ae1965e21997d1ed4fc42accf5adaddf96e6d0c,2 -0x90721a8e13cc9352971d5841bee6e3c03108ffb5,2 -0xf740bee352bde8b517411849d1250aabd391b322,2 -0x91d4012118b9aa7e6aed15c0ae26bc106dd4d05e,2 -0xce3027970a7a76ab6e2de50419ee25ff8ba534d6,2 -0x5a2a4a9d322f8ead0279546a6cfc394e3a330d09,2 -0x74518017108830bef932fc340265f45aa996ffb2,2 -0xc61d7a40f09b1d281f4478d2d902cdca18f78574,2 -0x77dc6ffec36a9dd4574b8a864f6a39352a6b9b79,2 -0xe6cd007774094c9f171632930625a66bf9bb36e5,2 -0x19b3f163438cd8fa2c6861d82e027b3ae8c0d307,2 -0x8b1fb959c0c714809f1e8c50763b856dbb1b1e89,2 -0x616287a252ed249061466ae121c4ac2dc59e6f51,2 -0xfa5d05df712b059b74ccefe4084785be7f2ea1b8,2 -0x72917bb1724fcb325cbbc7bf8c55e1e9154d6f8e,2 -0x4db953d0462429c63ce5251c371b7c5a24563954,2 -0x59d3c3aafe1830e5e75cb33addb03b48b37dbbc7,2 -0x9d15d0a1ead6521840443a71ef673320e947029b,2 -0xceaba23c6336d7c59f2cec471c9c51a865059233,2 -0x7a0ce9b72ab0e8c55f3e088d2a6f57863b06cde0,2 -0x31425d8728ba770107f12bf609609c0aba2ab367,2 -0xc60068d96a72da79bd5e3bfcd7005bb4ed4b1b7e,2 -0x5c06682029c842e90860c8b3950052fb2e1bda0a,2 -0xf1b34f2a6287157577be77d8a9f807beb96ed89c,2 -0xc105e5ee275db6c369837aeaf4b917b333a2d6e7,2 -0x5b2349675f51472808a5e24b983f661d3f4a3e95,2 -0x2b5f40d479db2c506e33c3acab71470692a3ea3c,2 -0x2452d7ea760ee7f6aaddb8044caefcf6dfa1de8e,2 -0x68af312900ea49b606a56db1abca86ff24d126e4,2 -0x56b46c76fc49d348571bac149e2b26814ee7f66b,2 -0x0161e853b8bea3b58b33d7fd443f99650d62404b,2 -0xe2d52f8584b2d4a3c43653e76440222aceff55de,2 -0xba2e80144fe3ef8881fc5a816bbc607768e91321,2 -0x68ce1344e78c003a820506405cc9f5806a10ad01,2 -0xc844bb1d41c052d73f002080f19c17c9e5545291,2 -0x7a89bf03a0f4d8bb3c8e7031adce8ec043a25c01,2 -0xa4733b73b55676232c36547c17c771710ce7d649,2 -0x271b6651e286c3e24e626eb5f1808893ef1d24e1,2 -0x8ed1f4fc279fa3594e8d943f3622f65c3d03b147,2 -0xd78147a35638e13725a3cbb6e5d687f23f680a37,2 -0xc22a65575042dc4afb44ae8fb320a3f0cf0e546e,2 -0xacf53dd3d1d136c08ce9f3e7debc2e09ea5f4cb0,2 -0xb4ad82c3fa0f18b118a53d419dfa4f2877b46a4d,2 -0xa16917927836c70f398bc12281b3a8ce6df281fd,2 -0xfec609c6402b66f6b791f88bd24d0ab27b17712a,2 -0x3fbe5c86084f73586027805ed8c85b0117b1c4fa,2 -0x51f85fc07c1f8a51d33760dccd78e6f75cd0567a,2 -0x7ed289daf45bf0d175f6ccc9dc69db32abe95d3b,2 -0xa9f097e4673ea2d616bd12789f7f9db695a559a6,2 -0x3a383e431a09621fbda8d02beeaf9b66d8cf9ac7,2 -0x362961ba0e6ec9bed03605aba8f1ca40e4328000,2 -0x53627004393c652faf68c490e1f99770379c65e8,2 -0x165a1c698ba1a671476f2dcfa71e0204ab01553c,2 -0xb645d4e91f76cbba3cdf0de5c941184e65644948,2 -0x92b950e67fb8e9b93dca180e9c272f4c0f77f881,2 -0xfdff36535d4341ad6d06f6ffcefbb3fff4c14b7e,2 -0xbb52415a1e39ae8301ab030cfd55f87d6173ddfa,2 -0x1244cba9fb6258bfe1ff23feba8bb22741692162,2 -0x48463ecd39366dc83c509b58737d891e67c5b59d,2 -0xcb6c0739608500b3529e7d4cee072bcc4575864e,2 -0x32f92789d36e194629057099cafefa544398981b,2 -0x1aa51f270742a053312c4c2e6cb8bf5bfb9b5f28,2 -0x6ce55caca95a00e938ea07a3ca38f2c941fe917e,2 -0xf49fe95233e796ccb6071b0c2a464170d74b1f9b,2 -0x0c4b7833bf42c2dbf98b6f532d876a7d0398ed69,2 -0x0c56825b60add68d79c3b40bbd306c308516708d,2 -0x942b4802d18ae43508c632c67000692e5b381011,2 -0x1c68e82962394a2dd0ec0a58292c2af549192967,2 -0x1ec1166eb15b091d2a22230b49f693bc2b5c80b1,2 -0xff571b44ca9c2f65910da4dbe1224ef1159bbc41,2 -0x4b6a3c0797728ac3e1194f1917cf0ea82e44c684,2 -0x1125143dd994cebcb03c77685c2b2f95098bf811,2 -0x4ab648278a6087a160969387de60f5a5f59ae707,2 -0xb11b185490d500621c91a4f1f6654c168c0f4d64,2 -0xd178c2f714e8473cb9eba8bf558277e28d01f058,2 -0xc1663f28ce0aa93391a150743119a55d1ac1f470,2 -0x27282f75ec1c5580b53e025e021c0343fc17fffc,2 -0x1f78866ded61eaefbb9fd592a2dbeff5f756629f,2 -0xdaa6d7eb513815c3953e9ab4403b106c8f934749,2 -0x9075344f54938af6deada43e5630477d35efe666,2 -0x1800f8d50071aef9ab472722e5779d86004cd2d6,2 -0xaa69063fc345e0ecde43f3d10b600a1cc5b4900f,2 -0xa25bc584e25f94c88288c38b364bed0344d496e3,2 -0x6026e0dd49ba60eff206a2988892c72d6d7f842b,2 -0xaf6189601af06a5d9721111481d32cd900f6bf29,2 -0x07561d27c240ba864296a47468df02017a804747,2 -0x7567fa7d5423ba0350dda7e960c66dd3182187bf,2 -0x00c7f1fbe7138987552172b19c4b96f170dace56,2 -0xa8c916844329cd6a78bfec56491e87eb6afc67df,2 -0x4cc71b1327bb329fe24bd95276f639a0d9544346,2 -0xf3ab84bddfd1536d421dca2f1eb7198c5cbb6990,2 -0x45268ddc5f9d2d3814131997c4b7c7c7e7caf68c,2 -0xd53c48759e516cab89bbc36b57128755d0b8f691,2 -0x7773633346fc56966165e7e2a1152a46436399e5,2 -0x3f519fa36c438129ccc2dfaf767033125bf7ab05,2 -0x9ce2334e8b1dcccb40bcd0e353270cc444169976,2 -0xd0f48a775c21b8ec7fed1761c99aced693a69e89,2 -0xfabd58c9993e9978a255cf3f74065903ed8b1cc8,2 -0xf2fd8f81e29de5d0fa931036eb32347a636ef6ea,2 -0x31f07f1806428eb55ee2c93768b6d8f7e5a8a2a7,2 -0x608dd5242ba17fd78da694fc54ae1ed06fc788b5,2 -0xe4765356396d280de0690cd763a4612a44778bba,2 -0x2ba878a1dedf06bea8d3393af8e48fb1837f28f1,2 -0x84ef693b69003236a1e12213a958e4a6ad7aeab2,2 -0xc78c6fc47c53a7c3749a00ace18e67eb2326dd21,2 -0x804668c981764062713e765c046a74e8687376a4,2 -0xfa75765424a28cc86c34cb100eedbf46cbb51629,2 -0xcd15d8eda2be4b3fb22d1b266adea16d2dbb6941,2 -0xaec2872d4d479f18a78a16838cae6133e3bdc635,2 -0xf6b28ddea0890597cae48ad7b96140b3e38e6775,2 -0xeb2af6c1c6d23c73195f296164d7fe8446cb0b55,2 -0xac86c77f8236c8dac932b4b98f0762fe841a9693,2 -0xed05551bea56796b9b87e983a34d4973d265e888,2 -0xb0f6bdb2039fb25aa2b2712dcfa2a07843a84972,2 -0x3cf35b11dc2b7492d29c74a6b4fcbbb40e3657a5,2 -0xb4a0764748067bb34791b14c27c943eac4183a53,2 -0x6a6798d961877731cb7f566586089526e71e677f,2 -0x77a3d8dc4ec023b05cf1f9499cdf0f4bf073968f,2 -0x285304c4cc2a512407cda997a805e551a5d5ad89,2 -0x266988c1f5648f7510eecd85162e24cc5a391f14,2 -0x293fc2ca0622678e3836560d3c5d65c4b83166b8,2 -0x4bfcb7df031887e10a3a50fb033645e09dc1143c,2 -0xd0ae53069dfbdfceb151449d64d85ab981bccc93,2 -0x1425cda6205569b58b0cc9260887505e5c1af573,2 -0x73068a732a3f45be050a0af0b91c2e5d2b3c10a7,2 -0xa9c7a5175de3cccc188cf80c18959cf4de809475,2 -0x5fd61b0017ee66113cf5191b0962df73f78f9920,2 -0x7d447153f51a04c8d009e2831cc88bd1896aca4e,2 -0x4998613036d5741a69c681356213407e6ca18093,2 -0x4a819bf2c318cc8c8b9d0e1531f95fa10829cf6a,2 -0x0efb322a9b425a6b319059c1cceb1da03c328720,2 -0x556427a641376dd1e60059766a39bd4837036bfe,2 -0x8cac07e16321729035c72b59eb0ab0c6691d7f19,2 -0x46880bacaf668d04ef3c04978663ef086a6ad116,2 -0xa6d9cbf86da81ce1af1a166438553aea4a5ffca3,2 -0x295c93c0e6d405c4e07e5dba80be9d0e2f2aded2,2 -0x7b4d92ba4e14bae7a5e2c92117ed86e40c0dfaad,2 -0x56743c9b8d7abe9f92fd2efd2bf6069e736256c2,2 -0x8c4d3906c36b616a49995a3a17adb5358d80dbe3,2 -0x6457377e477dde3aa0d70bbb28d425f385583b18,2 -0xd0d5a2c122aad2f80911ca74a77e34b6e43576ba,2 -0x930a08431415f84412a5c7b914fa649bd7a44c2a,2 -0x4034d1831e3f9f6771e6623f02457471e53874d7,2 -0xe39b9077f7e6520a5204877858f8d78bb05b33a4,2 -0xca592f90813b2a96484aa91afac644ebd36c747e,2 -0xedb8ba8efef4c049c337e307a6a1cf0e563cb99f,2 -0x6659ec8907f45601fa2ce1b05e79f066ec64eeb9,2 -0x5d72f1d641f782f63d90961ff5640ba713398e11,2 -0x37af0a03022f3888b5bcc3ac8967fd6f18ed70f5,2 -0xd2a9fc9fb2a0739053a34c6dae615c7df00a8403,2 -0xa861ca9563e24fca2d907135817c154de1d78498,2 -0xd7728142afdb418a4507c473637a3426b445a6c0,2 -0xfb7941d8fd9102f538f0474155bc92ad5eaf9646,2 -0xba9456458adf037ecc6ed74ac778a37f53a0004a,2 -0xe244d6f9cfea9fc1688c675974cc682771bb7e4d,2 -0xba4a35e24441ed4931fbf327189e93c9dab8c17a,2 -0xe85effcf5a30ded71a74a2b996b6534a78ca3f9f,2 -0x9d054b5eea8d3df0b12be31ddf51366159c357c4,2 -0x0a804e0e28a921273d1348512c6a40aee1e5236d,2 -0x3bf2a508bb66bf739eba9058f434b24aa1a60e40,2 -0xa43d3ada51339716371abc37ac52e81702433e46,2 -0xa60593b6fb013f0a83aad2fafded0c652f0c1954,2 -0x31573288d66f61249b19df504622899686acfe0e,2 -0x20e649d7e5faa6ee80df8354043f78660ccdbfe0,2 -0x609266883088851f2173610429081c79e36937b7,2 -0x01c9ea664b6d06bc4609cec8e75dd600221e1c36,2 -0x97174cb9d99913ca6fd1de4b6b8de8500438698a,2 -0xe52449369503019b64185f56b9c07ed519b3865c,2 -0x9ee6ecdb3b1cb8c098017ff71ede02ca3b244251,2 -0x73209f7d04a5882dac99f7149fc209b7477618d8,2 -0x3817d6e0ed43b61e4c2c87bfc002b53064301b77,2 -0x9ffedf3bbc5d7b8a4076bc7a9dc8f3efaec65a86,2 -0xc42bf2a3acfa4f2ce8e772a6e05383d277920ce2,2 -0x6c579184523c8be92732c49b70034fb807822c39,2 -0xd2e77a074e8b0f15c6ae1f71cfefd2adeb70189c,2 -0x5777772cbf42d5cc9d54569038feb0f381f40067,2 -0xf66eeb76b939db411dbb212f98a0f7d0066b0e85,2 -0x9e350eddbbb739578a18822fa837e20969a839d6,2 -0x81f91a6c7bae16714b1baf885261749b8e270df7,2 -0xe6170f2afc2dcbc8b54a5705b61a16e28d6d1193,2 -0xab6242afa2407074d4b8c9e38a78af7fc9be4497,2 -0x07b8ff87fe2ab97e056d8ed28d7c075786aa8028,2 -0x0c921058eac8e6d96b2fc9c5821db6b5eca77630,2 -0x7da69b8054ca7f9d81389fc3838161dc9300472b,2 -0x86b665e94d815e7f3580b25e04c0c25a3828c3dd,2 -0x4e9df54ba3db24a2647db43ca608e4486c93703a,2 -0xfd338d22200c6f8076d2620f20cbf2819247b20a,2 -0x7005216552ee9d6ffa7466ff10da40cd2422c213,2 -0x1975c31e527e3bbd2b1cd9fd4553b52bd2120046,2 -0x3a73f1a5e32c01737b83977a26c8e7507d14c4a4,2 -0x02564e834f0eb49fdcae55acf3f6c19b875eeecb,2 -0x940fb751a3b7591ccea697d5d9f76b8ea8024286,2 -0x927bbfb8f4ae53b42087a35828db39e2aae29e36,2 -0xc19fb3c9428a1f985927f337eda51b618d6b939c,2 -0x8e6730aab17064952e1fdb95492400a916c38490,2 -0xfaa5ed3a85c0c4f5a4b9fa415f9f5aa1c8f01717,2 -0x2d368d6a84b791d634e6f9f81908d884849fd43d,2 -0x933e4f15ee6bc453893b13602b9473b0305e910f,2 -0xd15e9e10cc7fd71a07821ffc3224cfdd397cbf1a,2 -0x3698fbd3587bc22e1d17560f02286e824271ed78,2 -0x536a474fb45a032515c97e497f745a49500bddac,2 -0x05ee3c534b3c640889148539568847b034424be8,2 -0xed4576145bf0b9a1233632e164dd66fa6b789044,2 -0xb54b0b6ece21d4f9221b1a5336d85f20239c38e5,2 -0x6769c0cecf54c84ba04b14076fc3b3ded8190bbe,2 -0x186bad94057591918c3265c4ddb12874324be8ac,2 -0xbeb2e0f1e14d5c315797a1bbaa81ec39c4c9c729,2 -0x3207c4f943bf66d0c000184329e2ab540b7d339e,2 -0xffa752354a09ab8a3fec6dea1a2e279fc5e0f803,2 -0x24983515f00bc935c2a3f6f858b861f3a76931c0,2 -0xd2ef3068f7a746dc89a3232891ef1a0c699e2e18,2 -0x24671e6d4d2280e7fbfd4b94b43b47461a130184,2 -0xb7786489e40ba42ae8218834d7e3a59bd0482434,2 -0x2ab9974659ffd76f605b67859537778ea62482a2,2 -0xc20e58b7fdc26fa77877f965da6bf70358201719,2 -0x4942521ecdfa400a8499886d7569c6478ed5a213,2 -0xd7050f224b443dcae899ecda2a001b52e979bdb9,2 -0xf9b668f73a6e78164beb4b86497d68e91765ae8b,2 -0x1ddf09540a4b944e0ba5215a6e5b97dc1aa8cbd3,2 -0x028963a19b9582bca85301dcb802e6415c43e333,2 -0x01792159bc843bf661b94e2079123b31e193007d,2 -0x6f8973809b94030dd4c930fd1182e5d5dcdcf9f0,2 -0x4b515f0961e5a207872e380b549c56d3521e861e,2 -0xc874a74a21beca86788e81458385914d0eaf4303,2 -0x7d98b4d17330029a0d59d5511d1e40ee6bfc59c9,2 -0x53bbf5a43eace1d176ec7f914da3ee01dfa8238f,2 -0xf2085fe82ad92ecb2966219e9cdb311254faeaba,2 -0x428c70ef74cfe1f0b78c9d87fe013bd7a2b5f231,2 -0x0c8a76f923305addd8ec74738f0b0633e6d0ddf8,2 -0x3cd87315e5d330e4fe9d3bbfab4f5841abcc6931,2 -0x17cbb6b0525b363ea7af63dac11f865aee1e18a2,2 -0x56dd9f864bab6820266226795b315d3e1bf4ce0b,2 -0x54e60e75a94d649056e9ff9dbec2d4982b7603ec,2 -0x525e723c4530d4c9801e5a18516920ff5539b534,2 -0x2af30a68daa1e9885d454a660d46d17975ce87c9,2 -0x8f8c78b99bf1a0d38de628245a0032460dce07e5,2 -0xa38ec37d589bb6875e925cdd011687d0ac3f5a15,2 -0xeb29553cbd7c5265a1de07797190fd5cf0516463,2 -0x721dc4a27fb7210665d26b3b4a046109b43dab3c,2 -0xffeff3c7efce832d1e1727192bc1dd7d7206a776,2 -0x8afc7fd1c734a8bbcf74993d26816ac86ec37faf,2 -0x1abd48fdab70a56a2bcf8c4b583267be3c5abdce,2 -0x82b36780912558f8201b706bff1d5d447ed8679f,2 -0x1a59dbab673a579fb8d29472c80c931768f95de5,2 -0x96d33651aa2ed19f923cd2e2d25fe4ecbc397d26,2 -0xb42e1df979d69b8935124a7dc717a9fcddd5f138,2 -0x9a873c667096fe4a7164b81b1023c4188bb52ec7,2 -0xee23ec5b8e94a0a695cb47062737b658fe225a20,2 -0xf8541d706b1a2ac3d0ff25c9aabebf2599ec1b9a,2 -0x5b230ec1ffc37092fedd4170841806e7202a0f7b,2 -0x2d4d916c77075d736a0239ad50b16e22100cc747,2 -0xf0257947aaba8c6b3e34380b6ca1141261fe3360,2 -0xdaf5eba2f3d3dc422d62632fc9d5d457cb875b8c,2 -0x9b835c2dfc90adcdb796dc29bf2fc5132ee17f3a,2 -0x9c886f40b5ff6c06ee8da284d16473538a3612da,2 -0x56ff93341e3f7fb520d9cdf1aff3628fb1e444fe,2 -0x67c0a38a9dc74227e9c85e42af20adfd849b2589,2 -0xdb359aaa237142a91b1bb1405453e724306ff636,2 -0x9c70faed6015c9221e7c5ff734e3c6bd0a2f6576,2 -0xdff58d1aaa4aa174c759c51d402b6ece7866a3f5,2 -0xf01b4f7153689ec2f53a48818eda8f740a6f41b3,2 -0x100f8038bfdfc871d9eff79d3cf01ff1d27f4360,2 -0x6c1930a05d0df55160ecf79f9b6c79bb37837dc6,2 -0x366d0741bd7b994d345e1095a14a560f25a0d20f,2 -0x27ccc7ec03a771c2e325a45610482a0d7d07c4e7,2 -0x219da46ade9071809646eb4501c3abb99db1e9a8,2 -0x5fdeb4ef4352347d863cf8b48a32074f2c862a09,2 -0x8bb0e2b5cf5ea4d6e9179da052a9a593f27f4974,2 -0xd95f15629b7922747a6877adb4dfdc4cdbcba30e,2 -0xd6bd234e381630b0b7aa18a78448c42129d2556f,2 -0xf1003e0a0dc0b0f47a82434b7559280100ca1fa1,1 -0xd221f4a6dcbb1fea4c5c5aa551b212f202c321fe,1 -0x17e80b4e239298c4c23f5445b5017d7d91d22fe5,1 -0x143971698ec1bb61a74ddb753e784f5c75de1b56,1 -0xb1bb090f332743cb2c618271f0a069d6d0f26b86,1 -0x11dc25a040c3fd126cb6d22c3a211fc5c65e6be0,1 -0x11f0b3ca0220baa4ea4468e2e3180edd217d7496,1 -0xa6dd144e8087a99fc237cc2343619d07f4fcdf14,1 -0x3d46386becc128f900e707b04dc1ba3c4144b43b,1 -0x3ed92b74cfab0817f77df2305541b279be78b923,1 -0x666fc0fe476bb55e1bf7dd900ab635448cddd425,1 -0x5ca30328e15bbea55cd10d9d170ce060b223e598,1 -0xf6121549978022f26be2d4fd0d780eb683229343,1 -0x9c9272ee0e9a29e31bdac7d21a9d9a2a3d52e3e8,1 -0x8268cf783c5809da09035bf63c6a518328c27e58,1 -0x5ee260685e066c05892baac6b3ed03cbd1dce51c,1 -0x9784f967ed6b958f7acd94b17944f30d78689b10,1 -0x717c04155697d2f5a878c9ad7c8e40322c1decf8,1 -0x8833ca5383445e194b9d70c4d8dd3fad368efa07,1 -0x8205ecc26495ff55e1d6d84f59bd82c2dddd646d,1 -0x38a4af18d0cbc405aae0c8db17aa16fcffa066e2,1 -0xac3f4f024d7ccc4a40cf174f3641178eacffd114,1 -0xfb18421fcfeaed1b972cdc6aeb2a4d3a890aa1ef,1 -0xc547319ffb2576f92542d5bc2b11093ed70b3f60,1 -0xd3aff88abbc07be0d7e467bd535cf47f67793346,1 -0xaa4a07fb5c4eca87bc080fa7404224b16a6eff38,1 -0x7f47efd592990f28f927d7fe1591d29733fd3a89,1 -0xd61c34e913019f7f645eca8f3b68c584f0284995,1 -0x8775f0895864c8bbfddefe13d3453ad82dbaac82,1 -0xbce52168fe0ffe19ad8d1efd968bf7378c8be32e,1 -0x6c8fcfacf1d90f862956f6ee1183344507ba6ec3,1 -0x2aac053fed79bb499976b6752d74054a131e97b7,1 -0x5dc4561125fcac2030d07301c50153cfe624391b,1 -0x52e14e8dfc87e8875ce5e9a94019f497b82b3e01,1 -0x5475647b2393328ecd47b0256782365c7f42fb15,1 -0x1e57075ca422cbff5060c55bf439aa92e0a8bee3,1 -0x866636c294876edf685b4447818c6a1f21f7d695,1 -0x67a8734f5d97bc462df92346af4b29b417d39d97,1 -0xa04588968b06588675373a2ebb1525b287401da6,1 -0x5b8863a736b9f044af8911d864ac61506a9a0a6d,1 -0x82edf43b1f64f34096660187425b135dc98fd454,1 -0x85345e4095dfd7d5252a69a9a7537afda09b1280,1 -0x84cdea84725943cd3c78b2b588ab3942ab889645,1 -0xe11ade3d4b5b034054152915ceaf777020501c92,1 -0xe0c45e5d67c07528fce6a38bf1907ef4a856e91e,1 -0x88c475198f46e549af08d1c765921d9acc43ed9d,1 -0xc4aa828e3dbf15da47b13d06cd8deac4ec407197,1 -0x0832221806df52ff6759ff283cd47eb52b86c2fa,1 -0x93137dadf12e4b1ef0adf6a3a36b1d8d2efa0074,1 -0x50684afcff413e3314f5b3dd3c35aee9c1ad78be,1 -0xc75fe38dce675ca98b3f3fb6e9402ecf5e120d5c,1 -0x904b7301ec1b77f2d795d447dac234a0bf0b25df,1 -0xf098f32faa2ed72562b877147212f24c6131d5a7,1 -0x53ecfac77f09e613f541600297b8736af95a335d,1 -0x54f8f480d9d868df33fcebeb7171dfe653be5bf5,1 -0x1317c62f99bde9bf41dcc0381b5cad04cdd50bf2,1 -0xebb96faf16ee34cfe298ce5f9047e69777224b92,1 -0x24f79f1b1b73fd3f66f4acabea86cfcefbd574c2,1 -0xa2e2d9f702a4df82746a2e2bd8e9cd76a4760a72,1 -0x7675291453daf025cef152bef7296d4ef9d72514,1 -0x77424437e320fc70ab04d983e259ca6e6e205c86,1 -0x09dc47c3c21a11f41e25a058c1dfc07951661c22,1 -0xbeaadbfe2e46bdd52fb18a45e03f620d2086e1b1,1 -0xf102978e0c95207ad6ee2d39d18f1e7497d89ead,1 -0x4cffda883723afebf49d19146ac239b81fda224c,1 -0xafacf7164c9100fadc0a47f99d42664567d100be,1 -0xce06a3e4124dca37825026dbd8fe6f7df372894e,1 -0x58a385c1a18bf73ff263f530f00cee4edd886e2b,1 -0x9484dc6cdebfed3fd91f6257575699e99710f295,1 -0xe528d09b200349403ed4f469d39341f74835b4fe,1 -0x35e3bb99e96d8be0bf0ed1527f875b6e4964e049,1 -0xce40e731c86979ef32697cf3c3467acbf08dc186,1 -0x8c74c3153e829a9c7d60bd057b27d2eb3222dddf,1 -0xaafb164259d27122530aef535dcd059f5b3dc844,1 -0xdbefee517025559e7898d3a48f18221c32d3fcf5,1 -0xc875ec84448bb026aab70ce52d28b3091eb65e82,1 -0xe623400e82f664df21c63381c2c5caf5be134da7,1 -0x93107b05ff39f13386eb5914db1c89aa50a9686f,1 -0x9d546e20cd75b62276787a1e4db2b9393633e2d6,1 -0x7e8b539955abe7df695e875a38584a2251dde463,1 -0x5ebd576a5db3d8d5d4970a73657836a7422386d8,1 -0x2d2f80ecb07f01532c044d1423bb930f9ba4f700,1 -0xffc979bf6ed9785c57a262296fe57ee666f66b01,1 -0x84b12ad49c04b839bde7a053bf0ed65b21d65941,1 -0x75812f748b57f474d09b36b3f976e587aaee9da8,1 -0xedb6c2c4ccca97aa7dd3968b90b1d4037420ca55,1 -0x83d14f36b0f5f14f5287ea727b819fa92a9b2986,1 -0x2e195d7062149a411d4528c822e970a21ac28149,1 -0xb1def0a3d230735610acca2e5be6a33aace6baed,1 -0xf0bda1946d4b2cef6943a07f8814ebb05aff0cf0,1 -0xfe98d4c9cb3703f9fa1fae73804b8feadbcf2c48,1 -0x2421805568981da1ca81a2c495b51d23e67806be,1 -0xd23badd536febf260a3613954c101c2b2a74dab3,1 -0xf735fbbbfc96d7d4d343eb4930f445cdf57ca5c7,1 -0xaca3aaa88930c86975359e783474cb3e1662d674,1 -0xebec918d4bb22dc75221d865e645added4e72a8a,1 -0x355d247ef208eec724813949440dd2a16c3488f5,1 -0xaf53e4bb4069a5409a77d682ae327bacee78aaa8,1 -0x7f5088fd22b12c8ed8f0fa80e28de94cdaf71a16,1 -0xf017c7629f3d8a1fdf8f7d03b5e1773e68d4728b,1 -0xd4a08cf067c83d1b2cc1d26831569b7850804be7,1 -0x1752ab586afdfe141478206ae944eb9146352440,1 -0xc851d9c6a6a5bf109493dc909e3faa311e0b220d,1 -0x5bebb3c29c14459b35a35dc6cd91bf1833d52755,1 -0x7bbaa3ce60c757f78ad68c5816b5cd0b893bd2bf,1 -0x9dbd80da6d78981f88b1406a964048857252b41b,1 -0xf9be8af9f649113a10529526e4c4dbe0f1f90289,1 -0x38a259d6be2df7c11401feba3342ee0ea4f3c58c,1 -0x2647e08cb113c258e9c89a70ab79e8128d202cf9,1 -0xff3857921decd6c871c1fce6c414a1a130865638,1 -0xd1a050afd8d270b721b04c14a96f9dae48272a1f,1 -0xd572f6d10b198c01757f62e7167883ad3e7872ec,1 -0x25f435b8a8e815a0026fb4021a7166bdefac5d97,1 -0xbff5fca62293648a9803770b22362f5681fab110,1 -0xce37b185721b7ed7ddd6d07bde2ff9c8baba5519,1 -0xb232360d37362cf0458bc156839feff1b0955891,1 -0x76d1160b3c7cd97e2e1f26ec74f6a237304d3bcb,1 -0xe043be3cdf8fc0c3cb62b4731ad5b0742f895734,1 -0x5a6e40b29bf20e4f60e7becb571af5ad5796a3c4,1 -0x1721e4489fe2b2a9a8c95256028e7f3025c50569,1 -0xf0b95bc02c2e391f92a89a7657814453e4f9d76e,1 -0x1b3d04bdb1c2618ff0ce43fde00c3a1cdb418d11,1 -0x49f31ff1fe29b5cc692391f9a0a81c5195e6fe82,1 -0xfc9cce1115ba9eaed488c37f09e8fc8ac07f7c4e,1 -0x77ec1cbd64e6c7e3b7965d2a47a670956054c6e9,1 -0xf5f51c1f1a330d2dd3860d0e94bc0efc716305d7,1 -0x35a1c9b1ed12332be6b1ad5f232c6071acff2185,1 -0x6fadd14635ced43a8c2eaf11894d2771524ac2c2,1 -0xe6a2d4f1b87eec8535d2618eb2be85ce960a0651,1 -0x444dfe74c96fb17082af3dd347b9799c0c9e9edc,1 -0x92248b8808bbaa8b3e473a53a1b86f68c7f99616,1 -0xe19adc684c906dda7f425eb49763adddcb83f81e,1 -0x6996b45792afe0b9449e74f719e8fcd9d2e4a78f,1 -0x78b0204d711baa74a8ffc0092ea9ca2a44362c45,1 -0xfd87c3d2e37dcc91f0f74157a12cfabb7801d4b3,1 -0x6ef5011856fb7a0d837340afc30522459a389942,1 -0x4543e5710338bf6e514258ae7f4033ea29c700bd,1 -0x0ccd463180b319a0ac4dabd6afe759a716bf4866,1 -0x8fc87c199203332c1cc43430b9fad2b1868e44d0,1 -0x36c645d452aee01ae0d2496b14a7c4e04f015231,1 -0x8ed887d6fdb56d56fc6b62f1d2f8a3444d0f0f6d,1 -0x693b7c6bced40c1bea99a4737870d6384b2315d4,1 -0xc38c375c705d5a0d36e6b03731142a1da2f5f494,1 -0x39670f6e3dd32c2d9286b17b6b922d33948d71fd,1 -0x749ccdb8fe18ecced1d4b2d7ff34c6f4eebabe54,1 -0x102ab46b3686f7b3405c1d1f296e314b571feacd,1 -0x58f343cf49ee937d628af837c5473e85bddadf0c,1 -0x4a5027f0faf186e484453c4c413eff3152dd49a1,1 -0xb5f3a2738518773cba984b74c67dfcab9bce761e,1 -0x291d490d7f72d1e9c6dc3548ab4cb55eb27c92a3,1 -0x3815b87b355a7af24bde3dce518ed255a82ad11c,1 -0x0421870e96a8e183e869aa811292d739340696d0,1 -0xfd09676d635b69a07edaa10a4eaadcd4aa7a8b26,1 -0x7a56dd7fe45d326393148b42147709f5d44a6121,1 -0x7f2d08ab0d5672db36da1596932cba988fee95e1,1 -0xf0b980b6e752c79bcaa11a777097921037a98548,1 -0xe114da6e0d77b5b6e15b421af08e9b45d8ae85f2,1 -0x434327fcd2210a5996b1d95dfbd62cd61ce2fbb9,1 -0xca0b43613e6639ced88c5e55780ec422cb5ec8bb,1 -0x792d6a81920d3b8a45afccac4fc485e0c08308bf,1 -0x6d81ac1d86bf91058d321161eda7b46ccaf3c748,1 -0xd508153492f9bc15ff3348dd84ecaba3b3182810,1 -0x6c421769c6e24527e854d90ef1a725c616c0fdb0,1 -0xd600f05ab84909078a4f02d0279d41ed31ac40ed,1 -0x669735809ff59029991d52435b274b1b18ade6a8,1 -0x31db502798775a77fb5f528ddc0605e075a47365,1 -0xd17c98f73d1cdd2a230d29bd59d0bcbe80228025,1 -0x3e5a3d2c764e2384e57b7697437c46cb766e2244,1 -0x72ef48d6ca4991f1ebfc4a20afa92a39dbbc50a9,1 -0xec6d1e2e3abce5a83d4860ec5c83ece64d2b77c1,1 -0x66441fe403e183a982d09e9bda73db6813c4830d,1 -0x52ada6601158e29f5218926609935f1044d760f7,1 -0x2013e12a81da75654d5f2abe0f4863f6ea8cb24a,1 -0x0fb82129fa3333fe189ec8364b15d98614317d18,1 -0x5e5b5294d8e32960ca2adf83b591177750d919be,1 -0xf05b01e6a1793279e56e5730746dcdff14b3db17,1 -0xf59b2794936d61009a9657f226a9d6541ba2d671,1 -0xf5af7c78fa5b2de16ad2189bc27f134d951693dd,1 -0x5b9915aa990cea3f67e0af53c05573aafc420656,1 -0x330452748a511296b5ac232d7e614e2ccdbaa0d5,1 -0x5c7559a65c40210ec1b2df2ff6d3b0766d25f525,1 -0xe9b1d6dbe74e4e2e398a0f5c598c9c3de83c54fd,1 -0x033465f1a262b563e5fc2e4366e7e2ced480753e,1 -0xce09d76b11539388721ab36268fce4cf0155f01a,1 -0xd830e867d2e36eed3a3e9b881b1989ffdfdf45cc,1 -0x3eae3466e9c40442d6a40689d28e4a20be2e4def,1 -0x946034cf8f20734455591441c4000dfa225ae600,1 -0x8573e23cba270e67176ea8b491766f1ba5cd7e2b,1 -0x74d1f7040dcecb26c3746c133a4a9d16e2351e35,1 -0xc1c5740c5be7191028e5a0818b521123dbdc3065,1 -0xe9bccf975c1d18839cc0522647df6004d01dd4f9,1 -0xa7fb1c0522a5757c59383c6961e7217fd0fd6a06,1 -0x733f95ca0185ba65c1ab4eda0d576360a3888c44,1 -0xfe25c775234cc494ce77f1d949403dbd76dc91da,1 -0xc8ef2e76deae8394a632cd8403ce4b0993fd615a,1 -0x045a58fdb369cd17596058641ffda7ae017238f7,1 -0xb25f5cac63c92c1034ca37d712b85d008b3b8789,1 -0xe768f0a69622270fee54bfcef6d51c7231e9095f,1 -0x925a7b682e4600e7e570c9b0a6af29c27d82f806,1 -0xd1f5715e1c5c7f85b9e2a9baf81eaa11aca6b718,1 -0x7ecc4bb1aac22dede5bd12ada75f0d5042fbf105,1 -0xd9937c22fd15daad6cb97093a32da0ec33d3cea3,1 -0x43e105b984bdee2940788bb4a26e34418d273ead,1 -0xf234b9dbf5e41f9ca357e5d2c7cee8361041cd88,1 -0x3292c05abbef1f99126cdf4ceaba04c2841c5539,1 -0x6fbcb50bcf01ea62a6d41f468d10dab834986bc8,1 -0x6238359a55694f9bc696596b86cee0ec9edca0ba,1 -0xeafb33a7864d0166ae77d4223c5b87d5ee58b1fd,1 -0xbc6b87df01815631d8b9569cac41fef91030c7e2,1 -0xb35f6c5456a46d0731252c0523b691b0c93ccd2f,1 -0x80b5fd1e11069dd8ab72cfbeab05749d4b5240bb,1 -0x8eca8b43a6e1a9cbd7ee5f6a9b3c17458a759b59,1 -0xe07a374d69702d9437c0add5875772286035377d,1 -0xe6ba5a9f512a9afc21c5286b15e17aa4d4b45f45,1 -0x095c580c1922206c810f5f34f99d5fabc9ef4627,1 -0xcb59d4fc32af154b22758347243523ace690485f,1 -0x92684f29b96aa1d0ef73c353fdb1cd0298d4f0a7,1 -0x2447a7a7f03327b5410f2067413e5b208b4e8b26,1 -0x84097dfb406acca23ee3b0bab7cf89ff5c77e86c,1 -0xa56c04347abee42f663eff9bc2d0147b97c8f782,1 -0xf92abbc360ccc01d3defa697ce27e0777c8f6062,1 -0xb5de4990aa979b698dbf363a413d67a3704ac59a,1 -0xdcdd14f9a30cf718487e6c8fffcf99db2eb0bd44,1 -0x5534579ab2552ecdf33df86195e16d7c930c1063,1 -0x54a199faf4a63d9281d80d9b2e228551ffd6819e,1 -0xa53362e1c161664ef18f28dea8c9e99d9abe1a60,1 -0x0f15327fa73f98a47a33b7cad2e88a22c8a543f0,1 -0x13eaba8c5776cbfc431448a9c0bba07fffe66792,1 -0x1f3b40893cddd2a245e2548d7d7a3ad0f7c2934c,1 -0x25f22d746d7d9f4b4b87af15f1e163c25632e924,1 -0x93000812a24083de29580c516b01a5136d2bd056,1 -0x186f169f381df54a410c3bbd9cbd8f28b52cdd93,1 -0xad7858d1d47fd043edda9b045a25eecbe9809476,1 -0x09eab44014e7dca26a8a446015aee1b7933f88f7,1 -0xf8e9080706236882861ef90d0c273fa005767972,1 -0x344fb69485a7f1f747d196cf5576ca52297f16ab,1 -0x65b53c92b242aebcf3f45fb018c423d641ebc823,1 -0xc6e90a981ba4c7df0a9008b770cd34f41a5aad0e,1 -0x4ec164aa1207880ef5ea859e19df71e535505a08,1 -0x5eff35d620168bd496b39243fee0afdc593e972c,1 -0xc4ec941cbe8e621af46143e432175cf0a385e671,1 -0x1571af968118cc4b9a480eac8c36531cdfa38afd,1 -0x007e4e679e14f17d62607418f546e2d97d9e5a61,1 -0xb506f70558ef2644ba4f35fb06c874af0ff6f54c,1 -0x844305f0fc702639b09771716e51871caeff5456,1 -0x8551f4d9b49d774c453a94c56195b72ec9769088,1 -0x8cfd7040653bb42cbe427917192ca0c67628f03f,1 -0x836ef42bdf34d09390ac721eaf35ed73bccbafb5,1 -0x9ad6852b088a0ba04ffe763f8b70f2d45346dff9,1 -0x1d5ea072f7a8a2c6ec3868c23c908565b2aa9a1f,1 -0x9de5fb2e82681cbf0f9885b2e17c7aadaf7c6a32,1 -0x008cf140b21e1e56ddc010546051dbfa9ebc9ec6,1 -0x233635104617b66f0a91a0e46961ff0e19ce00b7,1 -0x091aa9705caf4c6a4e672ecbeaaaf322c133b513,1 -0xeaf2f2331ae2f65293a72f8a9a18dea2b90007b0,1 -0x83751d420f438e588261ece6b048c40ee6eb7a47,1 -0x27210b3dc1aa854e024170f8486201eb11d9f667,1 -0xbc7a3d6d49340480cba9cda01cef86331ef5f6a9,1 -0xb62af5e86e25385b597a4c74233f87ecad806ac4,1 -0x90bb9480053f38946c6f1a2508abba2756544c45,1 -0x910a1c54849623508634b08c22d35ac5cb5b6010,1 -0xf7c2079de26a8caadfdf67d92104aefc82b88f01,1 -0xae416e324029acb10367349234c13edf44b0ddfd,1 -0x2f9be3f95e84fb3251ad90134f03edbb25d8dd0b,1 -0x12879d3901801ca8a31d9aa1555a966116b9e478,1 -0x0d1733f6b0d4f92330556b5f9d284ccf99f6080b,1 -0xf41feaa9d4544b80b2806a981f82c679589e75ae,1 -0x3aef8c8c3bcfb75708a69aa9219917030e302cce,1 -0xaa47a4ffc979363232c99b99fada0f2734b0aeee,1 -0xb96950ff49021b4e1c6b4db4ac76da89d72d537b,1 -0xa4c6db0a39db92b006bfb7b96617e960d80c4d22,1 -0x91bfc391fdd6e07f54283bbd5f1417c58e872bad,1 -0x21a0b21596e298a3656729f0699f8304394d7a3e,1 -0x5a1b6067a6a80a401c423fa28a8945208bab0af5,1 -0xd2e5899b1d373cd905a3cbc622a6c55077e23299,1 -0x40a213f49caab72ebdb06a2988934ab0ad3782eb,1 -0x8973c056aae3731aacbdf1a571929306b278574b,1 -0xf82ca3b827dedf46f1111452e301e0c83ff2278f,1 -0x7407a0ad26ef7fc704a592f9391edbadb6e009f6,1 -0x7bbf7176f4c0a84cf78ed95b14ec9e7a6f2452d4,1 -0x26e4ffa29983da7e436cc6d9ac268e66b4a5b891,1 -0x299f7b2f7592a74f438a8df757d9ddaa1853d563,1 -0xdfb25a88d1f8111c0b11b80a4122ff60c23bd22c,1 -0x85deeb89bec5af0659c483497d7d9549661a307f,1 -0x686d160c9be40480203fcf3e0cd44eb8d1678e85,1 -0x9330e95fe1a7d6fc37d1229587555aa9a45de4ad,1 -0x69ad46db87e7682116a65aef368260cfbf7ad951,1 -0xeab70f918a7d8c7bfa096653d9d97bd5a4d68bf7,1 -0x032264cecf2a5c6d10f876713a6f30240f2a080f,1 -0x3c6ed28d1e46f98cf6b6f21853f5fd1b556f538b,1 -0xc2a639c930a3e931171be1136ca400d2b5138324,1 -0xe4f24891f70a536063404d7aacee4903ee0db86a,1 -0x73b282049b7b2727064cddbd35c0f465394c71f7,1 -0x6f34427d983291e9db9fecf6052fa9574298f015,1 -0xf8a7fdd037c5e8a437d25c7eb8fbf5501fb07e58,1 -0x880ceded76172478d1de02d90a99a1804ce73ea5,1 -0xf5ce244e4b66f4d02f2a5e85d26b8882429cce47,1 -0xeb0c92438134a80737767a848039294ce259da59,1 -0xb7b5a731faa8e6a954a9257ba84d5bad76249812,1 -0x382b4f09440210c78931739c0929f6166fe349ef,1 -0x455bb52c8fe5e9ad2f9d17682faeef0e804a3d2e,1 -0x06d3f041a413d1dc5f62d83e482f190d0c040970,1 -0xd97aa203a055c29e301e5cacbe046bb9d2ce90e4,1 -0x339f5052b6235629761714c130418675a8ed1cc4,1 -0xd0c6d5591581b12902ed0f154d5211003e81675b,1 -0xb66f337963afa71b48c19a389788f1cf94ec4d78,1 -0x557e28577476d5838122fc6d4030f59f77294dbf,1 -0xae83ff45e5ac47d71e1a1237b624f4cb5f6f08c5,1 -0xe8e857bf7f9cc5873c20ef39355733dcdb99c64c,1 -0x850a5ae5c960c6d504d174204171717f9a0f7e44,1 -0xca9d44e75bb08b5e8087fac69f769e5fea8bb293,1 -0x7385ef7e84b663b4c5732ca68a5dd9b75b662c14,1 -0x3ac2cc26fbb230e704393dc79e97cca47e709247,1 -0x8240b5883765189923c7d09b216c060a3923e1c6,1 -0xa97870e375bda0a2d2901ba25a8d7c48d3dc74dc,1 -0x41603879b16897f7ef0b87327e3fadf8e36641ae,1 -0x581d3f084bbb21d1091d2871b31e600d36f0a6d9,1 -0x02b4714f3c2bf10ecc0cab8a497251b4c74092de,1 -0xd0f2387549b317c0c7c28bc41d57d00f11442ffb,1 -0xc6308b8313a743b1731d42adc9a13eb94ed8cb1d,1 -0x8bbeebad55fd821a8c255726a3b55760efbf1da6,1 -0x1b7aecfbfdb087adbe9b4e7ce9ca65d998532d09,1 -0xf73b6e67c8ec4e8f8f5960b63f152424563eeb12,1 -0x475d7d6eeec0309bf4bad2a32f0507c24a1f146a,1 -0xdae670d213be511dc3aa7b1229cf5b57a7108f27,1 -0x03ff50c21c6e90d01b35e3d4d3e9c25709bf2336,1 -0x77db22a395295a6783348c84dfde7b4427c01bd6,1 -0xf9b35e8386e40d23a0484d8317ad823dfa82b368,1 -0x7ecc8994da8a2f1639cb54862a8c12f9492c5410,1 -0x0b00a80c0b3a4ab5fe67812bdb34e7882f127b72,1 -0xc08bd9042ca14a4b1c8ae5ce22e4d192f8ecceae,1 -0xab751cbb6c32fa82da14cafd40d3e6d5ba621eda,1 -0x96caba82e45487f4910bfe6f77d754e5a13811aa,1 -0x6fbbb66fa82b5227c040482787a42d22a3d59bf2,1 -0x79b861d92f132a9cc4bd11b5682753e21ae44055,1 -0xdb6bdb4eb36c0efe661ac7ed7edc4a69adf86999,1 -0x066b300bd0ea89fa5ef839b67f31e4581b58d8fd,1 -0xa8fcdb8d1761a5080f52d69b97b71b4520a44e8e,1 -0x664997664c54d396e7c51e2bd12e92141071d1cd,1 -0xcce1f55bd6d1d17af710cb4152a7b51d2b2b95d6,1 -0xc7c3d41e8544a2c4fe90ec9afb939b6a58c59c26,1 -0x9135c0f0127f1a6cc40f1e2fd74e293f9e66f8de,1 -0x579fc3375ef2128cdcfe2f3b73366e550b6efeb2,1 -0x23c9d24a3cb3d67965ac1384fccbe4181f882014,1 -0xea9d0fa8d3c329404ae3c04ace46af83b313af29,1 -0xe603c2df619a6cc48142dc793be44d9882978d17,1 -0xafd8fe3e22f126dddfc0f5d4d545ee9893a76c1a,1 -0x48d1538da954c4c561f856f01713c8789474389e,1 -0x1c427e2dec519ac04cb49c0a9651f8a1f690172c,1 -0xec6abbd0b5f5026fdd0cccd262eaed6990959250,1 -0x6dbb9d989289bdd2f11ae7b65783ba8cac6027d0,1 -0xc17063c0f8aaaadb04b8b77b65b9180234fc3e4b,1 -0x94c0afdf98c179cd22289d5262ef539681fdfa0c,1 -0x94b216d0ecd29aa2b7999280eba7a694d0b07d6f,1 -0xb368bb342d9a6e617c1b1f793469cf10050ce48a,1 -0xfe07053fce12e9f8e58acef04f239c144b294565,1 -0x27066d336c9f25c2477cc5a319ab37ba5f5ca508,1 -0xc571927925d6a22f745be61e26289fde4432ee67,1 -0x5493b07ad51fb534158df05e55020abba4e0f501,1 -0x6c12bba9c75ec5bef06fed1022f65ed96db3a6d6,1 -0x679048d2039f7d2087d5d0f6ffff6b41e060eb76,1 -0x0fc94e98a5e15ce4f77eec5a5a9b764d65ab4196,1 -0x3bb608acc9943e7c59a7aef76e43c26e7a99c522,1 -0xb32e86a789432bb61517c774e57f3fc0d2aa872b,1 -0x4dea1185da6dc1dafa103601e88ecfc5d6f6cf67,1 -0x12d0b0bf996629e6d906c3173c376e913283dbac,1 -0x4736b438d76d9eaf216561ebf8b67a6eb1360df3,1 -0x8f5f09cd405d0338995cd670a8ff6eecc77c0f5d,1 -0xa46f18148144ee2b531fabf0932e25ff22ffcce9,1 -0x148317d14f1d427445b58c7bf2c2b234e00549c1,1 -0x0f411b8cd8f17c6be289a56b70ea23d729f67007,1 -0x1d309f17ae5645e189268ff739daf8ff68ebd312,1 -0xd5e2dffa969aeaa780929ea6c23584734da2371a,1 -0x99ea08234e2a4a0eb55b33042e9c7e386354551f,1 -0xb1b17c7b082ff3c44b586ea1aa13e748012679b0,1 -0x879158635ad4aa68398692d382e57c9906767467,1 -0x119462b279a72eb22e74375cb0dadb807f62e787,1 -0x4db61cf296a0674434a692f9f2be06aef65cf497,1 -0x0710ee20cb035b50f6aedf58bf37b8dbd842f1ed,1 -0xcda75e08317a92cdadb2ca993c74a08203998068,1 -0xc172adabb84d4d968a09492cc9430ef40f1084d6,1 -0xe039ad4f784d06c8aea28f0219cd0c7f98e5fab3,1 -0x0d4b11ed2d9019f845231fe5276cf1081d1733db,1 -0xdd5660545c26dab57cb19065cb9cd37f1e97e8d0,1 -0x71281411a338c9fb813ca350510f805a6aa54990,1 -0x52bd1cd1994487e82ec9e98b2a45d27f8650f013,1 -0xd3ea925f68794c8fa309b042f6ce700526a5ced4,1 -0xc1e2979dd22d4e2bce327d87a09f08a4019cb926,1 -0xca781de558121853fa3f348f4fd0da3e42af536c,1 -0x4aa68e3c3e48fbe06009482d31ea253322b23036,1 -0xe7d6c8e99cc5ccf2e90c26da74863afaecf6cab6,1 -0xba457daa5fe6d758aa8eea552ce863dcf2a8db9b,1 -0xf4edaaf70ee27c68364aafb6f5c390b0f36ffaac,1 -0x19a95e206cfe9936f0bf7c874dff5eeda5458136,1 -0x14028389dba0c90fdbde27f0643b6360e590616d,1 -0x5338dd2b0bb2e5bf5419f048887dca92fcc036d7,1 -0xa61055a38b430a3c4b5040c3dbd954c96e3af296,1 -0x45c9eb27d46c68303eab0bf130b5e51a7eaf7793,1 -0x05177f868e9a932b5de94f7324cf7dac2bdb2d6e,1 -0x854264180132df6b1ea67a12476b8b2d8ad5c4e8,1 -0x137c3c2cd35f97bad089859b3d69479b48756dfb,1 -0x60b80cdc71eea83eed2c92a8ea32735194840c65,1 -0x8efaeb6ece34f64b39f2045471a9cd2fe7aad495,1 -0x4676f6132a50d6bc98d4dfd1578b41a030ac2d12,1 -0x05a2d75e888c9bed5880fb83b1ef64bc277cff3e,1 -0x76b8d44e5dd06d425024b6c1bc32eeab0e17b052,1 -0xa2c4a04eb9523093972e8e9252c9f1fe460480e5,1 -0x60d1773134de81a85b12ace0dcc9d293a9b450db,1 -0xd1d9169f3dd1e7a2e89b1a5e62b7425f6fdb8fe6,1 -0x90e3eef1ebd4627060f590ff8efe173ebc5a17ba,1 -0x7728af2488a138b672049c1e814dc2cf9d52780e,1 -0xd3332f6c640f67be63b57772e73f93efe6edd6af,1 -0xa53e72eed7daf63f920e510b3d43339f5433413a,1 -0xf83e0547f929cc8597fc62efd7e51c8873aca2e8,1 -0x881350d021053086cb011d4a7bbbeede427eb79f,1 -0x0cbff21cf74b1ff13cf91a499eafa20bb8b800fa,1 -0x54143c1e28b2f54a77ea8fd046a939e3ea808d0a,1 -0x4f3e40b79d8f1718e49a6f40d180a6fe7be03d40,1 -0x2e0d74578149d44d999d74d3f33eda713e2d1840,1 -0x247c9e92f0960d3f1298f12159f75c3c944b9a14,1 -0xd22803c2eac639ecccc0bdbb1e9fa1a2e0f56b08,1 -0x3f6a1a21e7a0c370dad919f4f90a0f46273a9d73,1 -0x272ce9cf8f219a35501985bff7662a591a5d701e,1 -0x431890fa0849cde8c9d38637072f71784d7ad07d,1 -0xf757b9261bffd0f2a9a6666e760d611fb94bad64,1 -0x0cfbd3cb889885d3cd92d121aabb651bf019da14,1 -0x906d2b7862ad17bf6535de17fc4dac54ea2a5c38,1 -0xa39a237f7a3003231394aa24ee07b9668c443933,1 -0x6014d0fc6079b40c12d896ce74f487977806982a,1 -0x04dec5e92d8d3f746784a56261bcf56eb3ae716f,1 -0x0fa39d34704bbc9ee8801275d254cf28af08ea41,1 -0xd41699fefdf4116047a5855a9c95aa8293c44006,1 -0x350f03aabd49bcbd94e81fdb9f37e2de5006c196,1 -0x57bfefa6fa6260f937aefaf5892838fdc6275710,1 -0x21c78fda7d43d991ba3e7783cf4825a1f268f436,1 -0xaf5a5cd6da86838efac0ea91a712857d6aca53ac,1 -0x443b0596a9c9b234edf70b66a99efec5f0d6869c,1 -0x843c17ccbbdd9b94850a07fa985651dfb76b9c0e,1 -0xdfedf8e3fad9136e22ff6e975a885d47e5de2e25,1 -0x3c5beb264c86fd63fe9c02dc40988308a88e1a0d,1 -0x131d366fb820032ace0e5ad3309b8ca7785b3a93,1 -0xad5354fe143c9e49f8f7f0c410b1d1999b106814,1 -0x7eb186f4a522f2dee791aeb2858ac55c7566137d,1 -0x07ad5417cb3c41a977035d10db4b0e2ba5121b56,1 -0x07d300d2866b82dfed8dc2bb06d69019218c7927,1 -0x906835a7441c935919db4419dea1a0306e521f22,1 -0x350ff071e17117e60131a0a036f4f72ad36f89df,1 -0x61540cd93d55fefdbd5dc7aa80dd61c724b28d3f,1 -0x4425b331dbe27cdf96e3fde7b8400bb248005032,1 -0xdaaf7b411c33a834571a85e604d52ef9f29a83b5,1 -0xc0525a515c660103c0b82d83ec64ca046d80808f,1 -0x62b301f6899af91175e1e29242934b25b037f3a8,1 -0xa387c67da5b3cdf02d8674cec6beda9bfefee0c7,1 -0xe6f924f3b269a2b2b21327395fd0522b0d7bd437,1 -0x99b613b7bc72762812cbcedb23794aee1fea23a4,1 -0x7c4c6d1dcef645049c4d54a3236ff5303c609dee,1 -0x2efe85f9a1c86b4864d82aad0a457e1990d3b147,1 -0xd00f34e5c731e028913fbd3b1f66ccf43371f9b1,1 -0x0dc61ad6e35377be2183e5279455401c3866c281,1 -0x6a557b89b64a9329144b48c7e672c451cadad520,1 -0x9f9934d598664fa82467178a08541681058f5b99,1 -0xe5e9b743cb1974e8fb7e2dcd37fc40a6d0637f9e,1 -0xb955ef17211189eec4a760a9f69d5af6b7128a17,1 -0x9477579824fd31b3a18bbb8ecc2680dba48e02ac,1 -0x0ae0feb3d3c90049eca7c214997112a5c4ea48d6,1 -0x3abaa0bb09165dd869e1e41aee7fdf2a134952cb,1 -0x5956d5792e7f7f8317ce9117a3d742b8d25bb387,1 -0x6db2485a3bff699840add5c2f9d103a72d4d4dd7,1 -0x949793fbc4870085273b5a9fe820a1daeee06fcf,1 -0x29062e4a6999246dcb8c129837ee77e06b9a0122,1 -0x145912db98d10e8a0e5f462255916a8e7b220086,1 -0x24b30b4f6e212ccdf19c0e0bc4bfbca5ecafbc81,1 -0x8855b66cb30a4728ca106e271675b0c24d0ab5fa,1 -0x381125c264702f5fac31593572fee97978b10f66,1 -0x0fd4e6dac226e9a13f3246184c1fb2c54beafe34,1 -0xed536154422faa51ae5a957f89d8d3aeb2c91c9a,1 -0x9542aa93131eef09d305c55c65d9d77e0d6669dd,1 -0xf3d40460d3582d477544e095d9f90e791abedc5f,1 -0x9cd9f4d2d11a32c437e3ea72fcd43b1637aec352,1 -0x1dee90ef8fe3a1f0b8b6b3f92189b3d152887bd2,1 -0x0ff0e514f11bbdefccbd5ea29cf2b7ef5fd607bf,1 -0x039580a3bf69dfbe4e11304c763ad6a8a61d5bcc,1 -0x526cf160f2a47b1cc1e5019dade58a1a1df6bed5,1 -0x8c3b5b64ed19bbfc68a1c22bf3ab68de9e848b86,1 -0x7c5e67168aa53674d9df740463f08a3a077470ea,1 -0x4689099792fb6463c90bef17cff5fe94739cd4e7,1 -0x2018001dd96b1f48db2475df3848c57eb5436cf4,1 -0x3eadb55cb2b7c30c6f966a33139b338a3affbdb0,1 -0x15ec5421bb4af44ef029858a7738b0dc4ab7ac64,1 -0x372ba0323ec1152c2c028deab97c4adaf07191ae,1 -0xdc6d9e4ec1a1cebc50a0a6ec13187ae26923992a,1 -0x111681f25c359944b048ef0d39c9b6d08aa94dea,1 -0xeaed12cab918a60646a412fea79abb18987bc83a,1 -0x3f19196348842e4775e7b648c3343bd2cecd99ca,1 -0xcfe23aeaa54596a191dfd0e8a34a2818bbf6a64a,1 -0xe28470253f0c9c7afbae7f61795d6b1ca4644b2f,1 -0x46305d0e26661ce125d943819822f8e27190eca9,1 -0x49425db7c2a8018c59dcda8fbcb4ad3a34bfe510,1 -0x62023eb2964fdc5b2a370b03f895d20a9ebf0034,1 -0x8e6277bfcc59d10d2b6d8f951535a9a5c610d7b3,1 -0x292c12a1b8cf30c493122821ed04e7224b651fb7,1 -0x63c9cd8bef08ed8dfe4a6e75dbb6a8206b66097f,1 -0x9382579caaa20fb7342342251ac20ebcebf9e597,1 -0x2b2aa08672cea8206b680917bad12dc1677c215f,1 -0x1afe6f00c676edfc35655e7f685db40d0a3fb7db,1 -0x55526172deb106bcb037b280c13cdd5fca9456cb,1 -0x13a25759ff82ebbf2897c87dae62928e6c06bdaf,1 -0xa9fa30013ef07897230907502efe799c9f91c109,1 -0x99a166e0bd883f413ca1056471fef89cf2837262,1 -0xa93cdbd3880a1104ff383d11f04e69ad0397579a,1 -0x6a52f9f2dd70265a965590708e0fe579cad0cd58,1 -0x67e53503c8560b9275996d6e5c4343eace5d098c,1 -0xc4f44c66c53c49d094be7a824b869956183e0b57,1 -0x76cb2a234a56cfe6c7173e39742b691df94cae74,1 -0x896fcd75b5a262d0296f82ce0ec8b9681cdafe9c,1 -0x093944a7c3418c3096732d2c0a695dd3a20241d8,1 -0x391fbdcf21b84cc1cf4d21d34fc46c2158dd08c3,1 -0x7e4c93fab2d29436b51c7310f2b7783f5a15a170,1 -0x2369602aa298203d511cca3285063c238a028430,1 -0x573dcd3be09cd6d483f79ba5625ab9db4ea93beb,1 -0x25b9a1b65ccc6d7233bae9a710a58b1ae0f2fbdf,1 -0xfdb52dffdebcbd031051d2b3a2b9660fc1f1001a,1 -0x8ddc972bf4733dbcc2c2de35b6b9b05d0558e35a,1 -0x72bb770d87c34d4400848e1bbe013a3f28352e58,1 -0x8c3cefc64894db77b4ff57ad3e11fe1b33def103,1 -0x233d80455f1782b82fb2c0916d6c733f1f5ff64d,1 -0x9e097e8999affab83e502c91db8a52e12ed8fd25,1 -0x7820ee8aa4de36c0dbb023fb77d8e62793da3dfd,1 -0xd898614cfc60050d29d5d30c5dd01ae98d837f21,1 -0xe8658732f6005dd0a827e81ffeefa0e1e9721b27,1 -0x2b0f10e5beef6c01119b0dcf430bbfcf3fd1642e,1 -0x11ef0c9b6e7cb2f4f0c5282be85bb7a4f3c919ec,1 -0x98cba3180fcc9c9b7e1ed8ba996db1c090f9be60,1 -0x566e62982f0318616977dac873e83d1d0c825ddb,1 -0x483f9bf6cb0fcbfd5d6b560e28cf49be348bab6a,1 -0x9e33078f3398be71da0e0fba182af22eea0ebb12,1 -0x922670c6de2df10f8d1db76a8133c7d91042ba28,1 -0x9e825de7d9f9876b35a2785f50355ccc59f22541,1 -0x5f9a28ab34e4826509a9dc9c700d4e4fbb3cc17f,1 -0x3a1ce53babf49aad81d56165328670aadbd411a4,1 -0x62adb8f535a19c1fdf24f86f6eba50857d37fa3e,1 -0x4b565fd3505922bad91843d0b7c5f8bff55fa3f6,1 -0x40972fde79fba4ff653e9af0275ad8914ddd9941,1 -0xb2a5ee9a5abe5e4aa526793f284e2eb2c26a9d2e,1 -0x57f62a322dccc1bad908911b80e2019b74e7001f,1 -0xcf4f27a00e789b7919c4ad61c03c796794908962,1 -0xec4434b98d3f95a2ac64f0cdbd876855b8ccffbb,1 -0x47f94655852a750ab27c16787526eadd920e3184,1 -0xa72386626036e742577e54e68680604f82de5812,1 -0x392c54e4217a9ee7d17becf428bf956899eac34a,1 -0xa9214877410560b17560955ca84eabde4e30dcca,1 -0xbad934c6734758d2a4a7e0c277a74967b822eeda,1 -0xea5cf39ef7cbb1e268a7e705a7df7a518711533b,1 -0x09d213cc60a42ffd6653b262702a50924fd2d0fb,1 -0xadd4d1dd3d4142a9d3f88d145d3f5dca0eff925a,1 -0xad8c799ade7adbf2db7499a6ab342bf50b06c02d,1 -0x99cf4e2a0563ad6243776df5156890e09a9adb4f,1 -0x6a8bc1e31dbe4cf708217210599da74745f17e2e,1 -0x6048ac11cc1098d3e42e7b8bbe7e84463476dfa8,1 -0xd2e8a9a0c47a00f21b899e116721432a71156484,1 -0x729aab808314f3ffe41177873afa4635455c4291,1 -0x762966a1997362cbbe2b37d8c195a8031bc9fe86,1 -0x83304978d2069c80ffac643a8c589db0ffef17ac,1 -0x793869ea3e50dd5479c79e294bb13052fa61a14c,1 -0x8b720c4d849ac11b9f8ef4eeffbe7a5d3e82f6b6,1 -0xec2d18ff2eae5e5c9df72be8195f652af1565183,1 -0xe2641ba668608a3ea0781b6293b6e1d84be24528,1 -0x237a7ae75b4604e16d80961d2dd4a085b223be18,1 -0xabc1875d2884e340a005e7420b3bf332319f8187,1 -0x19d0231cdf6eedce612a960480cc37cbee302531,1 -0x13fb4c7e6525a24417caa8b026d3ff900685ef51,1 -0x83367d99d5c479706917a820091186664254894a,1 -0x2dc4f8f7d9a23c97049257a9f1b06af72745b51d,1 -0x79a741e4a87acc2daf8549f8d54b855c0f276e45,1 -0xa89e004a603c695fd2996489f9ada8f4dca64f10,1 -0xe883918466959099b133c566564d08a48a0035f3,1 -0xb12aa8282b00de547fda518cff984a375a61a29d,1 -0xb6f0f50a084a8fa6c120c3cfa49e873da76d7154,1 -0xacff43309a4e50e81b572505e9bf06f011230037,1 -0x1a6154d900ab11329e88f14a0bc630a021bdbcd2,1 -0xc345d810d0b77d5feb3b80956e9bf9f2d0097a74,1 -0xe61949ec5efd1d0cfa3e7b02d1d607160401d0e0,1 -0xb10a7f3a48c3048ac08235c9493e5e53cf0f39bb,1 -0xbd01eef9219caf67c9a0f661daa8c9d7e2f31cb9,1 -0x5de6a1d6b6fb803b4225bf72f96896b62aeb300b,1 -0x6e1ac9b3f4499a73385dd8d2daed6449406d49f4,1 -0xbc58a9eea6360167a0c3e81b13404a9b9b8803f0,1 -0xf83a39a2b1e5245be3ef993ea9f56267164d3aa0,1 -0xfc905f0bb6c137149ed6a0a9347a14a0c7ef4736,1 -0x4da49609134ff4d4d89767a039a6277bc2d5ad54,1 -0x6a02085e2430780c07ff8c45c1b56dfe2352f9b1,1 -0xe80400a17b6d3ca21a5064d52fd76f55252bd9fb,1 -0x3fa78f41554398ea8fb78c206dd1b0f4920f3253,1 -0xff1d504b5866952b088cf2580177733048925b62,1 -0x099744686edb8eaa6c7c077d81c07496950b51ec,1 -0xe039881b8ae12b32825f3d081677ec9e07287fb2,1 -0x3cb8e1faaf7a17dbccf8fbe99604d80be4331532,1 -0x726ee17e22b5a4bf445d32344cef1d48c84a20cd,1 -0xd3c027d7efb4b6d80095dfdc24c60503510b327a,1 -0x0b75924851738a885a8f95d786d91244cbde45ee,1 -0xdbcb39bb4491f0fd60414067aa6d3ba3715b71d7,1 -0xb3bbcc59f39ac17f0acec13be453a96d80612bda,1 -0xc8377ed53acc07a160c7fd1463b097a5ee18666b,1 -0x84307d5c68cd955ea8c4a1494dd13613700f6794,1 -0xf4469f73628120aa2cd55b05947c081811510e72,1 -0xffd7087f9086e111256171ccfa22128b3ab4791f,1 -0x9cd2958f06ec1275b49ad25525dfb36cb7a89c21,1 -0x5144cd4a4d83ab9bc3c003e7ad4a52e345720329,1 -0xebb23d749258047d6bba17ae3238eb3e7d7fcf67,1 -0x962998d14a7c46c8c94a65a757c332c908b01562,1 -0x21e85e473ac65ec1a875f914ce0c8a19db332494,1 -0x909c545ed09f6a5db3c59b6479537dffdb097938,1 -0xd3347d6d0c140426ced11a1f48a9284b7a30a303,1 -0x14924660053b1038500827bbaad618b03694f1ea,1 -0xea6958830ff40b0e242f429cd7bc598e8f7a5a48,1 -0xdfcdce56c884115172eca935009e697603e467f7,1 -0xa498877e2c6c3f44ac4586814d9b1192fe58e1f8,1 -0xf79998035beb2b44ff6a7c187b94fc934e01fe53,1 -0x3d0e63670e82960d8809e01b79f94ee97b22fa05,1 -0xa829bb3aaae7da3c85594679a3d4ddb9fa572c24,1 -0x83d26065f0a863a1ac2bfe26f6ddfd6ac97d3a7e,1 -0xa283dfd91be8d638ea7e8d4800c20980ee2dda68,1 -0x70cc66c68e020adcd83488a1e1d0c95ec3eed46b,1 -0xbe8f724b5e113f2ec8d424046540b1129c294bcb,1 -0x8e9322f68cc7c29d62375ffc9cc7a6dc8d9e52b9,1 -0xa8f033380c7a198b137651feb3912d3e902cc808,1 -0x997aa3a651b90878eccefcb6f4d85af0237428da,1 -0xb37ea42ce001924b96bed46a33efa4c4b65147fc,1 -0x1ceea59fe1820085c12d4e0c243e587d808b3b90,1 -0x4abf7e46e2b22da1d040bd240c4e965742b6ea8b,1 -0x5136d77f2799097e9d023ccb6e2e275046cdfe1d,1 -0xde6186276a33a94ed11e2c44f3a23863a0ce8202,1 -0x2bac5788651968c72aeba8b2b228313d9b26e0b8,1 -0xeaf470d628b4d167f606249d2db4ceebd8517b4b,1 -0xb824c643641f4df6497465e907bbd19e678bcafc,1 -0x7c2e6d3b67a594e647009a01d25720be279f0eaf,1 -0x468fe63f12dc1787342a2dec5b9cc6511bd68650,1 -0x36658f9e5b27255dffd3a3994ddd5898adef97c4,1 -0x88ca61159f583bfa754807ae6f08e482b8ee8563,1 -0x074d91980912dcc791f82ba20120c0823796fcd2,1 -0xb56929bfcb859c72e4f580b386b7025ba0eda62e,1 -0x1ad32e84ba7e329d19735ca693a6144dc2108809,1 -0xb3ab08e50adaf5d17b4ed045e660a5094a83bc01,1 -0x626027a6c98f1fc3733ada50e44a4f389113b19d,1 -0x793d460fad68db67a4c068624254ec6368a86af3,1 -0xbb8e2deb826ee0292bc0bb7118c49b35dee4e52c,1 -0x38a61a047066a9871884ed46385ab93fbdb5da2f,1 -0xc5eb0d455c38ac977fbd70e25566a226ea4a25da,1 -0xb0f7150808be601981137f9ec7cd9614a37fe076,1 -0x7258fe3358b73d9233ab559d5039c96883ce8328,1 -0x41135aa6845d2104b8edb75d06a087aa82dfd8ae,1 -0x5a550583e0c7f11cbc51527232e18b2715520644,1 -0x2847bc9bebf8f15d57ed379e2e8ff7d688fe34a4,1 -0xdeccf7d43d50b8cef14f0172f2b041ed47a5a75e,1 -0x8bce03ea535110204c08634ac12191f2648e4734,1 -0x622e24d3e721fc386678c85792f48388c1150220,1 -0x186faf8391183d116c8c4b6f729b375070d2f45d,1 -0x104ca06f9d68d14c473743d2aeccf01a59b71860,1 -0xde429fbb114fb4a3c1e6a9354ed9596411a9eed3,1 -0x613dbe54c9015ac59841e907067c39dcdce60c23,1 -0xa97a886cfa62ea3806a4382e5b4e6367d057f0ca,1 -0xe6c4f49cefd99763e8869d40711227696e9f6908,1 -0x714610543f367f6c12390fcfd40608df4e9567c7,1 -0xa30fe7a3ae8a47bd7865947e9a8cc8b8e7d597ff,1 -0xcf14240cd39ba2de6b49608aa3cf171a7649fc7e,1 -0x109d0756851299059088fca03a4ff9506c1313e4,1 -0xb069b0cbc2be8f6b1d9cfff4cbdfe325458a4c2b,1 -0x24b0cefeb12ebaef601a0ce178c6e52c4ae1f869,1 -0x4ae1ab2480845f827feb00db2ba36be0fb3350e3,1 -0x16e7f268be49b67c0e4e1aa4efc6ace0eb6c716a,1 -0xad797d40190fbdb85d315bb2c5630fccdc3d06b7,1 -0x29a9229cc2bca74db7e439f628c2107581a03649,1 -0x6441b620f9ecb92bd25a74a94aee17bf291c2ecd,1 -0x0d5db73a3b30a482a8b51a00c9e949439008333d,1 -0x9ee714d277c5cf7f453bf69be41b7edfac19cd67,1 -0x22bc52bf65b56e62e88f0ce08ef17b70f1043c81,1 -0x43c25772391433d0c59a92ed3cfdd7a3e5bc4931,1 -0xe862dbd29a5f9e59c9aceea219f7bf76d111761c,1 -0x6a92fdd2a8e33345f800932a94c23f6408248657,1 -0x423d6989badf1247346cf7e4b52bdfa9a3940ea6,1 -0x7f74b71b5c3a200d9ff327d1f6f8fb695393ec5c,1 -0xede723a6cea654303bf9e963ebf6315d3e962910,1 -0xd7756091cb3c013cea475473b2e00b080b692dbf,1 -0x418297b815d7c99701c3ec61eb05d1cba0c1ff07,1 -0x6ccd3bee114e4e8e9a9da9b720e5afe00a559774,1 -0x503d2966cd4a26040c111824dbdd1537a34e9fa2,1 -0xa5071aadbcfe90d1dd658429cbe84f51514d0831,1 -0x558a63512f2ebf27834ccde1b93d69638556866f,1 -0xa02d1b80d516ceb92d7a419e68f6d440d23fa0a7,1 -0xdd343548df0ffa7315c478ac69f4d68a5468ccdc,1 -0x982599f9bc8f7c333be92b33ba588d3cf912f5f7,1 -0x6256f92302aebb983d7178b48c703a18fde6cc4c,1 -0x863c07628df8d4f54ec96f2446d5742058c3ee30,1 -0xc1a8d2de4f4b72b728d007fe06004de1762b974d,1 -0xa36227eafa336b4a896569dec6574517a54ab670,1 -0xd909aadc2b47eb58c2fd42c088fe17bf0b9a7a15,1 -0x82dc546ccdcfde263daea92c4e65d8c85160f075,1 -0xff6c490c57efaeaf5c90254cb9ee7c18df856221,1 -0x17be7bce1e18b56382403ff3e1878335fe876c16,1 -0x04cab8e93944fd08d2f12f7985e7dc499ec772f1,1 -0xd03df5b360ff46cd36b9833fe857509214ef5e44,1 -0xeff9b50a7ecdc91bda82a0b0d46ce50b97ed4270,1 -0x7ee029811c01100d317079ed6198a7856899e590,1 -0xf5cffa0a784955c981e3f54242c3b4bbb55910fb,1 -0xc58169971fb9e6d696bcfb6fc25095dcdd9c96d6,1 -0x55b7db30ca7491a4d2aac3726899382f6eadd5a7,1 -0x3b8fbabe6726a368735499e854a78a343c2eaa80,1 -0x4c9c3626cf1828da7b58a50dc2f6aa2c4546609e,1 -0x63d90997a6fecd302a0630f1e1389c7144136f6c,1 -0x43934bcb71a442a0100930e1fecab6327de759ce,1 -0x1e529993c8ec36c93083fd4147262f6ddaef1489,1 -0xe557027432c3a3802437567f504b390a704c4e41,1 -0x7e6c790dbfde36a8ba48927366b095e014720f21,1 -0x0cfd9b9d85b27cdf5cf6e6284e6b5459355cffa3,1 -0x392d4722c6142471b33da3c1bcaf6dcbc5d1039d,1 -0x02c07322bfd5dbc6aa58dd1ea55eb9bbfffdd11b,1 -0xb7fcd6546c697352ea31f62f36d73f7e57c79779,1 -0x8510cb8e91e246091cf38777b37bbb522472c4f3,1 -0xa174a97a83a6d34ce5bf9e56f779b7302e22c4cc,1 -0x4377e83edb9bb6905795802cca6845d72c237b36,1 -0xd41fa11e017818a868ceafb5b9b11a28c9fab6a6,1 -0xba47f65368998abfa933b6f163b72aebe912feba,1 -0x6d69fb9088d736536f53bce2ee4a4364a3c51cb3,1 -0xb776c2ebf508b94c3b5125793b891b83accfa7af,1 -0x263ced4436ea7ddd158521d85c34c5d6a14a2327,1 -0xe03e3f9ad56862184594f95811bd18cdc0bab495,1 -0x15824243f0468873b4c0cfba8fdc62ad270bbee9,1 -0x93fdcedac24bf1d2b8a133363073df0140e2e4b5,1 -0x59dcf4006d1aa4ee572b48cf762a02f64c44e4af,1 -0xe8373b251dbb90c0e89bc8baf2634442c9e5f44e,1 -0x5a6b730935630d8d8be23d3ef36e19ff388a4a2b,1 -0x2007f9c32f926669344676461aa80f78eb83ce3f,1 -0x15f9f77e2450f07a52dd2e1e8ed2bb74742d1135,1 -0x632fdf9378c4c549e29a1e902531f26fa72442ef,1 -0x1df4d5954912b9d4707ff7350570af0f8b6092b5,1 -0x1e346c05a781fe900e4884ba566b27b973622adf,1 -0x073b23dac314750200baed90b35a01de52687982,1 -0x2fc18c0ebb3a59a46ca91e1b1b42217cbcc30073,1 -0x650658ec6615a83ea4a7c91a8deb550079ae56d9,1 -0x88f964c4cce207eaa77cf9ec77e0a2e716b6f1f8,1 -0x99216d07099604c76f57edfe2b34f7b292f4331b,1 -0x17a805ba26461504bc6c2782fa22ddfa73c88837,1 -0x2220d8b0539cb4613a5112856a9b192b380be37f,1 -0xcc2a738006c236397824602843919b87e64e2ed3,1 -0x049dd5226e9ba08c41b1aa229b176ea4677d89d9,1 -0x4f7cdac21005bd2b8579933d8c4904dc586b1e6d,1 -0xd080e5c49afef093a69691e2ad5fd4050a133732,1 -0xe19b78d22cba068f1f1a74e70e9f135838e32854,1 -0x83216e82a4a0ae8c380433f1d0c452f34e513002,1 -0xa9186483623e7aba81267ef3cf634eeb14934b17,1 -0x076534d1bba5fa60e1fa50a198739a17dc122838,1 -0x36076e5a401decc61c03da97e732c8f1e984cf61,1 -0xf0fc74bf0c21433317ac0cf9af51854f9b645d90,1 -0x63421ae93c44f5f3f58b7e3ad1245e955db49897,1 -0xb84f1d211ee53991737046936b4ba02cc6cab492,1 -0x06355362cd8ab65f6349535d0aac83dd911c3d54,1 -0x81094383d052f474636c2491b37bb317914097c4,1 -0x8387c6b99dd825875495af3c46c7b81d065b802b,1 -0x8ca4753f0601acea33e7ca8a9423c6fafe2f960b,1 -0x0f94325dcc0e118fb3454bceff6bcd814ad2b58f,1 -0xf7163c603b0d538c789a37e406c6182152f7cc81,1 -0xb774299e256955fcd3c2b6cb8eadcb15ed26d7ab,1 -0x1b8aed0e4a275ea96a41b917bbd37fd08010b6f5,1 -0xe50cd5f38cfd3b9d7c0c29ae56656fcef22b89bb,1 -0xba86ef371a71ea22231cb6a892ce5129230ed98c,1 -0x12789c79ad0499cd9b93ae56d402c4ce4840b270,1 -0x27791af1b186d9b00cff887a3f07e2d72086e28e,1 -0xdddf58fab219f9bf28228d6b5fcf9e97970811ff,1 -0x71dbcd7fffb380387bcdd7f334176ff605ee4fa2,1 -0xf394d8fb5ecc68d803febc10fc3481b534c0578f,1 -0x7e308d9195a6ee15143c09299de2ed8d13b385f8,1 -0xb0e7c2319993c00b9430d18bdd9f98fefb6b5857,1 -0x84cd19d5d8385541e8cba155968e2db9148cb5ed,1 -0x5d2847ce2b471a51a033fb9e82a16eaa96f40971,1 -0x4bbb2aa998c96f4c2fc58faf1560b826e2b8c191,1 -0x32f8cbe48fa82cf3243954229190b85e483ac798,1 -0xbcfb54c6a895cfd2f68044077d2abb1271881921,1 -0x9473901b9bfeae3cdac49d0ad1922bf00effe840,1 -0xdbeac536cd9469daf050d6b65f2b1d1f4be0beb1,1 -0x041edb0ebd9afaf6c6edbc35beac5a8f6ad6ee5f,1 -0xf6e4b456d677447467c37da1e56906feea8fff9f,1 -0x080e1b85b8441e7b10fa877623c9088bab48ecfa,1 -0x4796b840b4889fc566b3d44c2d75165bf55950e9,1 -0x8c638e70aa2d456462d96ef7427a76b6009ff827,1 -0x31ba3ea04adcddf7b9b82f550c953d759b4e059a,1 -0x34e210c8c5df9a08cbc1e1209980a96842bed04c,1 -0x8ec0495f99a932fa5c32631646e030606301e4fb,1 -0x4b8bbc30e9a634ae60509ee3e15dd773bebe7e12,1 -0x314e8d2289b9c9c3711de359f6440ae2fc9332bd,1 -0x5b18b1d43d0bd23857b2abfa015479b6eb01a5f4,1 -0xe336c6763e06063d3d11229e99b46e301cf4b3be,1 -0x530df64704290a675c25accc21386d9ecf8481f8,1 -0xa9e0ddf3b3f44ddeb0962d12a336d2fadbcee067,1 -0x8cee93f98bc5f8c1d2ee9c2370bd44b6a380f793,1 -0x8c55854b5fca0b953cef647286169d69d5b01cbc,1 -0xcde489055fa7aad095eedee2af4b8fefb081fc5e,1 -0x09cb45a2d182d4b051b53cfc5f7fa5869c43fed0,1 -0x4d5fed1ec33a9f84178c664b379f8bb3c5a63f3a,1 -0xf90a38e8923c871c0021f8f40078d8220be24d52,1 -0x057ed494a326db7eba9c53b8af27ea2652be5346,1 -0x6f6905bc316d854b6ba87006358a2cd11e7efa4c,1 -0x306a4263cbbb9af69d2164a2a11fec7fce7b660f,1 -0x34ebffd8fd9d6187a82e591687e823e3c969bb0f,1 -0xd4d7631be2556c25fecad9300811b693c6db3791,1 -0x100b7e9b0c0dfc10f6fb9de20d12d8c79058d9ec,1 -0x3437aaad1646ebd15fe5b30ca861f5686289767e,1 -0x932fc61284d1e63e3d5c37c50949ea2ebcdaebbe,1 -0x7a5dbdee31c85d8b8fbff8a132c4507c2fe7e889,1 -0xbe3856e94d850939272e11c0cdc715bb285f793d,1 -0xb6daba18bad5f64eb587f09e01f01e7d2492afb4,1 -0xf54ef92ebb57388e9bd4f47e83339ca51f05174f,1 -0x6ae47b52501bef7ef61f13d137a88954ea5c4472,1 -0x4468b3584979063722a160257b31642c1e9d9a57,1 -0xa725795c82cd97f08ead7e7e43ef80511932b6fb,1 -0xd9005c35e85408edba929291bfd4cdc1b4a72dd4,1 -0xa0125fdcb3e65a2ceadf459b8d4454167ec51d7e,1 -0x736cf440d8969f3561c549790c369f67e5c47c6b,1 -0xbd059ce581f66b3cbdc74f1837c11c14464f08ba,1 -0x44550e16f2e0a04a7d3eb441fdbce749e1e103ad,1 -0xf1961d81d1072ca0d12ea8f4eb83f99cc77d242a,1 -0x9d8d4a4b66925f8b825c4b2dccc6203c22158c81,1 -0x2688ca2b7f6d267386ffd072319d4ae6f8d9f042,1 -0x3085ed06d975668203304731292f4eaf909b1d44,1 -0x55b48b41e6f1b3799f531bdf80e630f961de0161,1 -0x17f222b959590031e4127983d1860f819c5f7813,1 -0x5119568907851530f15cc9ff4a2cf088ad58f9b4,1 -0x7f9159d7294bb6d251ac78e1211f0d31ab6e4f3d,1 -0xd3df704b80c43c7efaae7d92579fef68ff208a36,1 -0x5ceb129e8622440989918f3e30bc85fe68d22b92,1 -0xfe091d4498053adde73c2370d606c2f54d6308ab,1 -0x5a209c0b52d343976aa7a61587226cf057c01b3b,1 -0x936915228baa7a2b422820b87b8ad29f35cb6cf7,1 -0x2e4135791a4774edc76ab92770b0bc384dcafbf5,1 -0xaf9e773c3fbce316316f2561e940ca38a59978b9,1 -0x2b0f0f8cae825eedb1f2334afd7d49a8ad4be0f8,1 -0x47ef230b82b5b861f5d935ca720af18ee42428aa,1 -0x8147cb56fef46b8cfaa883c55584de5ecdaad776,1 -0x950b2645830369536ac5ba501a0c059c703fdf9e,1 -0x24ecf1ad3b724f5ce24ff506d3abe294943bc314,1 -0xa0d9c5fd5261fc24b894ca663ba2763d295d3f8f,1 -0x08b2b82c763fb7a450e0e8a79ae3217fd2c01d84,1 -0x84484023dfd1c8205ffc8808c8663777f136d1eb,1 -0xe55924a59ea1c964ae3d4de54ed4ea365daa65f9,1 -0x7f6576907a06db0f4ab58d3063e70f4270893bf0,1 -0x2ac6f6702f5d685a69258283db04b8bf8494f58c,1 -0xf030fb9a33963ba492da7e97151c1a87a60fd706,1 -0x6e9367570f26c9329d8f5d1c8c4c0024a939ba15,1 -0x8689e9f72a3de234492a52bbfd1aa83034b75a91,1 -0xf55e2cf8b038e7d0113399235b072a4058fc2431,1 -0x718e2ca0a522f1ae2676063d652453f316b79aa7,1 -0xe4562f7a9af49d982e80674a87d5708f20731423,1 -0x7ae0d113882423492ecf08763ec7d2990239251e,1 -0x08d01302a967d413745fd6827ab46651b7d1a369,1 -0xd86f166e0f605ba3b0d417be2d2c83c6566b991a,1 -0x5216d97db8f1388ec2b13f585e76a797a39a9c86,1 -0x867686c532ce0570e9aa64eeaf1a3954921c5fdc,1 -0x74320bbe6e7c58208fd448dfbd6cd3a65a0fdf49,1 -0x03970a7283b4db0f307c060cebe8797cd22c56e4,1 -0x9cb46438ee5ee8feb8545c2720ac3b9b51cd1f79,1 -0xd57122b55c7be43348dcbb79e36240c13190614e,1 -0x4e0ffaf3089ef0d3f1eb3ac37a237a2cf7336918,1 -0x589a562797036b4f8632b140d5512f95eb5aa064,1 -0x100eae9210a0184d3bfa696c41aa9e076884130e,1 -0x1e466e6a1b2a58b58ae32397a86157522d4b00e6,1 -0x4beb70f466eb5b3ffeefaf5a0ca4f086011f1d2a,1 -0xeaa31e52aca2adea4c6da65a7024d71bac6fb350,1 -0xee791b90b9d03c177185aa7ea5df8fd855d0c0d5,1 -0x267d3ac9b8409574f79e8584e57f2919f2014a01,1 -0xd64763b46655c14c68f8b40d398965ece98fecda,1 -0x58503588b814704c2c98ae8396d5ad5e818f6633,1 -0xc33df195b1608f5c729c8e68688ce3a8b556649c,1 -0x17e00e23fb76827d2837210f77640e3711c93e23,1 -0xe4bf41350b96a4cae422d4ad02124d1a89ba71e4,1 -0x62b77bdd697997a88ebf48dd357502531329e1df,1 -0x307858a60d2670e32461953133a1492a6d1ca5e6,1 -0xce6a8bc0b433f86f0cba922b223f8a6eec0578ee,1 -0x8cdb209aefaa36bfff0710a80ed31ab39195acd8,1 -0x785239bbff630de492d9aa410abe70ac1e6a096e,1 -0x04c75cd08a5499d693cc2dc77b4347eb918a9dc0,1 -0xc6d71833f035dccbddabbe78b7d7576100f26947,1 -0x43f30df3266fec92cbacf32130a94afb34237f3b,1 -0x0628f16e2d1c51f6fe84d4300b63330e75e3a183,1 -0xfa658b58777e1f4f4c2073a6fd51a76b0480113f,1 -0x569a27b76cf8db13275a5a62e4ae5ff2d18f15f5,1 -0xf9a17346ee4ca18e38fe586bc1825cbdbdecd8c0,1 -0x89bc34a29a5aec73dc11a84054880c34b872edbb,1 -0xde1cd364af662b31f4a3064f4475569587e822b7,1 -0x7d6bccfc0f40871e23ead9686da0f6a0fdf3c8bf,1 -0x1d0a873ccae52fbd0f59aed5bfccbc3556d490b1,1 -0x123b4e6ce9f3debb20bba1883650654a3b7bc7b2,1 -0xe310e361e99a05a36b3e0abd67fa78e4fa032193,1 -0xd433c1b56055b7adf8e5e2982e7e2c00c378706a,1 -0x0b1c34dc7d2ca783dddf4a04b4103fb39afb3296,1 -0xe0f75822ea6927bdfdb38146cc73a29c692faa78,1 -0x56373e1c8cbb23bc284cf3ac52f3c9d2f5b52198,1 -0xfaa01170131f6c61a9c3324233636812106647f5,1 -0xe9e525e3825b7f466e1b6b03c34e7a877030f2db,1 -0xfb0cc363163dd4e24085013347cbc4c998a66374,1 -0x7b375f59a1ccf1a53ff849c761265b5a8024383b,1 -0x0a7ef98e1bb0566844c523be0215781b6f2a11cc,1 -0xc856968b04bfe6a235c031ec47cc1decc1f238ef,1 -0xae6bc004ad3f7444668be955630fd9dfa4c98d87,1 -0xa4487cc225667e9200758ecec2c01df933261f1f,1 -0x32a1874657673c8403059cb30880612af7d2c9c6,1 -0xace940c0b34676e9e9562542259c2926df7fe719,1 -0xaf57b81213c5134b92e37d83dd79f584e6a12a8a,1 -0x3face43ecbcb0b0617c34971cf3a5ea40f8db011,1 -0xeac59cb1c974b3aba71e1a94ff388e87632fabe3,1 -0x78c9a9006dabc2840af4ed4cb1db8d69879b01ff,1 -0xeefaf9ca5cab4bcff3bafd3249f1358d687c6bb1,1 -0x20ef965ea9adc4cce9e59c44aed24efc3c7da7f9,1 -0xb1033860c7e6d47d0947d311e6efaebb020ef85c,1 -0x0a17e9bfa2a9472e3f28988c2aa4a6af5bb93102,1 -0xae13065934e60deeef5b892e514bf80f5b2db595,1 -0x2e5bb6ce34f90b37cf633d2cea96277661e6ac60,1 -0x2f6e5c930b0229ca26acb83536871ce9bd87a3f3,1 -0xbc2f0cd8ba96d637d63f30891e2d1f8b03500b83,1 -0x317f69a5246ed4bad85877e1977a48bd29127344,1 -0x1069dbb0855bc6e5aa6ae5594e1fa4cd504224af,1 -0x792ec994b2605ac6f7103ab0e457cf124fb62ae1,1 -0xfc4931aed298fd7661ea6ff86d4c598756ac28a1,1 -0x3cfd8bd21c821b96dfd544f5c42d3777de27d791,1 -0xfd981af4f6f7465e2fdc6c082bdc9547604f3690,1 -0x9cc90b102fb8570e55c49fd3a025e4370c545d1b,1 -0xc4ef68733ce0bbac45f02c2b183c9ce7c21843dd,1 -0x6703c1c427229013648455fca1a5ad40b83dde5f,1 -0xae6461da23ed144274c65d2710ac2fdffad729c0,1 -0x0968de68479390807f4097140bb67bb52b1e6dc2,1 -0x3291eadce3a5779c37cd78d1ef8b6a25ab89685d,1 -0x9e3fd72ec711a36d9691e0cc34888af168fe0cc4,1 -0x0bc2f8272584595353478c62371caf65d49eaf98,1 -0x0caf6cff0e453d3037ec894652a0bdeb24fbea46,1 -0x31e3db6d4f78a3015a4afa48367547220ed60ea5,1 -0x287bbf27b3bea73fb7e2b2fa1f8fe50408ad0540,1 -0x460c744488bb0f0c30d25842758bf378940bc225,1 -0x4d1750f3ab3e746538f302b9ded3db31317b64a7,1 -0xa097b3c2c32751c0df718bcc4f77ae982dc10b9d,1 -0x4ff3f1ef6c246f52a4302bb9edde5671d1658905,1 -0x1dbf2621deecf53be40615a51feea16c85b91d7a,1 -0x16da8160b2e776e850ae3e4bb912f93494e448b3,1 -0xa23a88c9a0a5ca56fb896f6429ab74336aa0d426,1 -0x9a875f6ce282e8009aa9432784f8124067032c99,1 -0xada3f8551df5bb07bebcb810137dc4c11009f9be,1 -0x9bf4597e9702afd5ae1417dfc8317bc55d809b56,1 -0xe5de77792114279ceee7d76dd225f6c7a17db1a0,1 -0x729d023839967d2629e3bd93ea136d9b8515b2d9,1 -0xe5f5ab194a83c694964ae4814565d15e49ca0c8b,1 -0x9b83c91f81c13879534ccb76d92eda8478c35699,1 -0x961e6df7ad418b6903d79278ceee080eb134113e,1 -0xfde4fdcfb54b32060a61c75a7d15c7a526a6823b,1 -0x3d4fb91707bac9dade5296256d71aa554cb03ea1,1 -0x3adef196636c6e46e9bc3e03312543c569e55aaa,1 -0x1017f6ff01be86434ee093df035720e0830c80e3,1 -0xb01d4592904e5044b40f02d91c9eb631321af2b4,1 -0x15771e86da6ad7e9dbf3a3cf1c32027845c1b273,1 -0xc1a32cb082ae11a9b4562a96ab43ff3c1e174f6d,1 -0xefaf494887d4d76edda2892f256e949c3566d3a8,1 -0x51b4a326b905789c171539a02eba0d1d875ede1d,1 -0x78a21c541d0fb0bc7e09d3bca17d05f6aab4027c,1 -0x5f3f6dd893a49ba95a215aedb221db144973adb5,1 -0xdc3acaf998cb0794104dcfcade285348c3216353,1 -0xb1e22281e1bc8ab83da1cb138e24acb004b5a4ca,1 -0xd89d6bbc305d658268474e676187b855ddc8ef1e,1 -0x1102ed261f01c26eb3a3e1160a5a430545aee025,1 -0x0b7b23bd6191111661e382e007fb55572227a3cb,1 -0x177e7c4c5305fb6b3f3595a566d34a9e3c25fd39,1 -0xe9750e228514a9537c9b91a02e12325124b68cd0,1 -0x54064e1bd4d7dacc2db3c7f615c7c72b8c0b9d92,1 -0xba61b46b6907a7fda8fcd5a6e9978f154845a63d,1 -0x30e3442dda78084b54f94271c4754b077900cadd,1 -0xc88a9ce9c78f3a94dc5452cd462feaecab216d4e,1 -0xd92b8b8a69b77a103c48def1316953c3606156af,1 -0xa5b613735bdbf284045ac880609cbb0aa93ef112,1 -0xa01c06f0a12241bcb68ef11505d1bfa4dedd90d2,1 -0xb0f42a79cc08111e7164dd3e86df296ddd48eedb,1 -0x0a153a55b20b1e930c26f985db9870236a292343,1 -0xfcd1907ea659472f26c705657c610ca4ac0bb0e7,1 -0xbdd62685384999abda4adb965b432d7645f5131e,1 -0x5790f3c9f3a734437219843e88f6ad1f5ec0baf3,1 -0xe6267cb0435d392cd3f3ae78b3fea6f695865c23,1 -0x08545761b08240d98520d1c0f61a8084520c52e1,1 -0xd11e3e8815ab3bc592a032bd1b56b01a89d83a66,1 -0x1fb448c846a919406558e3cf4b3ac2bbbd55f684,1 -0x8d19203e5ec3bde9273023d396e17d342a7b33d4,1 -0x58ecbc9b5ae73306fb948873a83c2c2e3742a015,1 -0x9dd9ecc0a1e41068be8f620ab1eb4a8beea9f885,1 -0xb8de8a67e3862cc3bef259a832d1d6476e3be734,1 -0x9bb31abc561f78199446b2b731e083938be3024d,1 -0x58951a4b2817984775abab1ec65bba11512d8484,1 -0x34d0aad6c7289687e81cf38ab12b3c80bf8b779f,1 -0xa7977b898d0d1ec71c36ce371290d71f8483969f,1 -0x6a3486f11539764c5a2f98d66a3e197bfd6514c2,1 -0xd45a8d4a71cf12e809366bc9f8a269d79a7db241,1 -0x0c693d9ff4354519359e858b300b6da9f6ec93bb,1 -0x6eab8a03452189b3b0a4ce8e284d724bf61a054e,1 -0xb0a6d2ac0def4e0ff704f0d2158da624389fd524,1 -0xc4e60fae892f6e7ca79abdaedfbc41e5b612559d,1 -0x50099a4e8bce6069313827afcdc5fc9f966562d2,1 -0x31ca6ca7f7a3298bc6c5103aa45847f34e382a1c,1 -0x9fccc9bfbf322fe4caf26429d2a9dca5db58eaae,1 -0x1ab6cc16c1620a1dc7be1b7acb2dff0b49d4ee7c,1 -0xa7257dc66f2b0a64d669cda4bcad85eb92ccbb69,1 -0x9060e5f33213f6ff0f8ae327e0b287d3773d0fcb,1 -0xd4b72e297b531333cb83a0eb52a873e3ee1138bd,1 -0x2bee22bd267cd07f2daae021374414fe031a3b04,1 -0x4dc3164f52164f842634600943ecf66ba3bc71b4,1 -0x25b746daac96c3a096867dbdf9342266620a51b2,1 -0x9c3277b6b33585e04b12f75f28e483351bacb8d1,1 -0x8be0b7b8fa7274ad892a9068ebbc5e745f76f73b,1 -0x6e05d216ff8784b6fde7935a14c8934b4c95f4f0,1 -0x6530d9a19e2c2e737b7ecc4facf51df979be344e,1 -0x2c548f9d2726c94d4d90918210efea5b759d6aa9,1 -0xd0e8665c24aedba5d22a5ed669afb37403e9124b,1 -0x2579056de44af4d028a4c0c5dce7cc1eacff0406,1 -0x48445c60f61d0d11a605647d217fe7bf76784ffa,1 -0x91444b2b9fc973f1eccae3ad25d0fd30a1a4f834,1 -0x26f6271e89bc52b7accc9607ee60cd2d703db0b1,1 -0x47ab38ddeac7c4aa96d001344d88fa48bf286896,1 -0x395e9a68cc79840e22f868fb4b0568a222af3f95,1 -0xf3f0191ee494194ec9fcc12d13cacb54d4a28403,1 -0x978252ece7d06967bbd3dcad9a3eb73c556b421f,1 -0x464f5080ce975c44faacffc9c8efe31d5c8a7818,1 -0xf6746ac682b56ab6c2be761789eb920d9aff7e53,1 -0x1d7af58dc4a2242ea8b72af0262e1e5836324448,1 -0xf127d21900bcebb8dd150cc80fb8d980fac8ef17,1 -0x0f356e10029fcaa866abc369594d5d19023238ca,1 -0x2ba8d39f4abb42efd5670db9981d7f9e82d6fa39,1 -0x5e0bf28934797cce28bdef8221182bdf82eba68a,1 -0x8db23656ff6a68ced16eda88a925931fab2c9624,1 -0x2eb44be6c21d9e6dfc533403f0f7d9e0f586ca07,1 -0x49768ccc323a415d57ce26f8aa120486c705a83f,1 -0x6a8f8e3968918a53b92b4c66012e0000c3910ff7,1 -0x300a975718081c8b4b4635b0f297999b69a00745,1 -0x9d9744f61d5a1bdec6e0ac35b2f9191f30838490,1 -0x037ede0a1ae1f124057a38b1fc387c3dc8951237,1 -0x4dc78ace18469f4a9344d8fa43f96b4898a6bc56,1 -0x02e6e2d228d0a1738bc9330536fcc72df9666f11,1 -0xaa4811be0c2de5865e02622cd89ff22b6069caa7,1 -0xf8cd6bd412f5be4944ac888e5390245bdd28fac3,1 -0x5513beed7a5b6888969a5b2e6d8c9ae023c3a89f,1 -0x075aa6208979240f58d884d80099000ca5dd49da,1 -0xb3e6e79bd8fbd1dda19f2f51335f8a7b1979a362,1 -0x90f3dca3689f727a602f83363d54c2cfb2dc2623,1 -0x8570ccbd0539109ea7c680db19d1716489387d62,1 -0x62a4592b43512a731a094225a652bf9f745c41bb,1 -0x188af961ceb352cd86960497a4d0343e2eb4a6ff,1 -0x213df617ebeca5a25db6903ae69f4e9074ce32a5,1 -0x7671b32c46facb7499156af010e40efff755a706,1 -0xaf3366d72bc77817a61b28cdd7989530bcffe571,1 -0x209beb50ae7eb7c8348b7b4ed9e2d3309dafedba,1 -0x465fc7966b2fb9b0c3a94a6831aaece256e01c4d,1 -0x34338594d05236c35ca8a935c33d52ae058ea666,1 -0x9893117455cf1e8ac3e58e41c5885ad5adb1c9ff,1 -0xce9808c83b9c7d80e16a9d54b5bf00398d7e7a0c,1 -0x7d187b564325824e6e39e74e91a5635755779d29,1 -0x8471a680d80c6edd1c6e8d879487510f000ee466,1 -0x5bd5d26f3c92ba98f1d04563ee0175f84d0798a0,1 -0xd52084eab9da7cef5314d3fdb96b29304acfc4b3,1 -0x9cbe0203fdb8dd459bd146b0dce796a13650a3e8,1 -0x93db3015acf1826e98c9edc38eee75a6eef9fb79,1 -0xc7abf54923030935ad8a628b7c87516e31c09cac,1 -0x6f25efe0195ddef46e913aacfb34e3b665449b4c,1 -0x6735ed18b1422221e869034b851dd963e92a8a46,1 -0xade87cbba58ab70a1287fe53e8a79f7c547969d8,1 -0x0eb2ecca9af2bffe3b36dac66e5de7827d6980cb,1 -0xc0fac54e8cb6b61f48cbd9b226f9a8c537837b95,1 -0xd17a422aa12b57f209e3ec376a7c1009f6515287,1 -0x5458e495537542f7f5a3db9ec6af63c36a5e7625,1 -0x0bb46c9b57c573cf3f2903b7f248b72770221916,1 -0xe8afb7c355b68a2a9c616e7877d0ef3352c59d5a,1 -0x91d1edce803713d4901a17e97b18ed899a6ea9ee,1 -0xbb698d52fe043c45e4c4811995ae67abc5758b71,1 -0x407e1c60b708688c89c72bddfef9fa348845576e,1 -0x1165dda63a6ac389879a9bd8921385ad434ee62e,1 -0xe4dc9ab118c3a277f90807a6d7ccc268809c763d,1 -0x6bfdc57cd6ee066841c58077bcaaa19ad47ffa93,1 -0xbbe27f9b417d3a3092ef04ea3453da2154a5a35d,1 -0x056785dfd75f4cb7fd4036c7912bf9fc3b3fc8e8,1 -0x382a86769c7c49d1d40904eae6593bee4571494e,1 -0x5b583d2dfef1f87e29ba73625754716d3bd3c8e7,1 -0xfb0915d4fd03d351e8317818402a4124dc8c56d3,1 -0xd68d51335ad481c2726b2450e30ad2a64107fff3,1 -0x2a1be8def3a6e0f9003153f44217988af552923a,1 -0x25370840a97eb6e09a45721fdf42e51cf5ab4f5e,1 -0x70a3a80a07efe7a73fb229b1c2943d92a9c7eabe,1 -0xaf69a9ad33df21490cf8cd8a3f7ce259cb2ec232,1 -0xad34dd5d14e562eb5351fec8bcb7ecc94319bb2a,1 -0x1cb6db191375c339140461f7bb290bcf6de61c0b,1 -0x07baa05335c7fa207b65d6c35926c21a4e9fa23e,1 -0xe4afeef97d66447b319e13b10b60d0470c406df6,1 -0x3b375030bd39b823737be8b9cbe583cdc03afb6d,1 -0x03b9e8bd185c383201fd221aa7f7b686e4de8daf,1 -0xbee96868cd18de0794f46b8bbc6bcd89bbef0193,1 -0x8bcfeda81e9e5543ff9f342c0f25c9ea345d751f,1 -0x594879662ad2920cae31bb295e6d24ba25a89ff0,1 -0x02567d98dba79f6acf3798521fb517aa6f40a888,1 -0xdd5b25366a83cc76f21acc4ad5a8422d2b5e5b64,1 -0xa3ee99179261119b342c36e80287c158ce05fda6,1 -0xf968669f4962be5154045860869d4a1dfad5c60f,1 -0x8b6acf296759e8f78d1ede6ad50d6544939c877b,1 -0x9a2d81785778b708507c298efabc7928ff4162f2,1 -0x8e00311f5a80f1bf5ee58615a5c194695b9a955b,1 -0x8010a53664c7a691968e7e87515cca84b8c49a8a,1 -0x336fd0c8d9829247b2a1034e6257911e8fc7f260,1 -0xe98ced6b57e4e0e93c1ed1bfc2ad3a43e6bd2189,1 -0x2fb26b3210429fe31a892560c4dea2a5db16b876,1 -0xbb379fd5c382462b036285cf212ef86b447230ac,1 -0xc14b84fbc731fbf9ffdf76fab82ed5e65a233bcc,1 -0x05d9966d5a05494d66bd0db73064db7c441b096a,1 -0x7d38bc797828b929039f116ed2448356455f748c,1 -0xc580c70a11bf2da3d701de8fa999cb83d6a5b73d,1 -0x7f797943a860f8bd567d4fa23d4d9fc85347f427,1 -0x0568fc269f150317386ae58e0d831d86dd09be19,1 -0x18e4351436c02574b37c3526cf3d8c2057fa3ca4,1 -0xc4942898f6df93a37e11e77c8e10fe1c03de1ab4,1 -0x767a0b1f4f983e064c8d33ec94b51d9c9355a6bb,1 -0xee6ffda94fca8b25fa337d4b63a5f9ca6e78465d,1 -0xfc29d25c5be7c7af818ee7a8dbd218e958f01a51,1 -0x34cccdf81258a93b8c4e88fb2d2d4e864435959e,1 -0x8a48edecd328d02c9cafa0572f5b8b08e419f05f,1 -0x4840dddbc9f08bf4cdf1b0997232691ce5674f2d,1 -0x45b99808c8b9bf822e7c89d79cf92d2db1659fb2,1 -0x1235181e7c1ee463724d47f16ac4b7ad64adc4c0,1 -0xc5bfa2e838b21c00311b2dea9c450adeb260add6,1 -0xee5280e9eb7b9d33ca03332db7382b24f4a2d009,1 -0xc0d7b8234be1d8dcca64207d1cb17ff04b5eb85a,1 -0x7ecc263722b25e6a02d6fb2c26a73e4e5b856d2f,1 -0x8d82dc35bd537c5217ab494205bf60b7d89ab5a8,1 -0xdaa914dd16cbb6fefcce34dff7e9a88f8531744a,1 -0x3f6b1758c8538a76e61548e57de42fd931a3c135,1 -0xc3fbc3f485f0d9b0bd21b13a4aaa8340160156cb,1 -0x9e32829ec1672ad0fb925fa54a163837ade78f75,1 -0x944885c42c7a4af56cdd1118bb6046097831221a,1 -0x097b715e071d460a5a51707628c3530ca37464f8,1 -0x3a9de22f712a5b8c63f394addefda6d54ae19888,1 -0xea533b0e2d0c25d2eb830b10601578484fc4f5e1,1 -0x94ff57bd1f6aab2259bd8839e5eaa564adabfb1b,1 -0x42cd50b383d6098688bab8a68a2fecc8e8eb7367,1 -0x3af503a5197e6ce5017e5dfa39d3e751293108de,1 -0x4b643df959c1dd2ff7b3fd83d099df8f1180939a,1 -0xd8f8803ade3866030b824b935a4d19a5f61ebb0b,1 -0x3ae5edbdd1342ce6acaa48342792315d52e7b067,1 -0x939dc788a1902cf04788e6cc993fa4ef88400ce0,1 -0x8d4583655cc7a5b36ee3abe3747176b42b698ec4,1 -0x87c3298bbf72ee60bdff2e48dbd757199e970db8,1 -0xcf31cfd506c42dec40200960b1b94f9e4d94f781,1 -0x911022bd2129ca7e878559cb62923a84b09f1a8f,1 -0x8b3f14f0582fbf275be87d265c931b4dfd5f13b7,1 -0xeacb799e666a538965a39f1c87348afc170829e2,1 -0x0ec1e202d670b8f3780c2a9ce21b11648818f9a9,1 -0xfa84014d273d00cf8a542d8d46b02a431fa80d42,1 -0x6b4eab73c13b43331782457269150a06bf12f57b,1 -0x05e75fb47a8ce29db27e05fa0f10ebff5aed3566,1 -0x3629a59a1542121402cf8d7da9eaf22cd35e1777,1 -0xe9b1164e3be42bd8055a34f4b11e5f2f767efb1c,1 -0x906bf92ee56e4ab326d1ef6344593152e7f9cf13,1 -0x24f0a0a76f6057829f292a09287df79d24249186,1 -0x0d589bcd7fe676e2433852b9f208765318df2834,1 -0x0a5436f09f2af4442504ea9296bb857245d8ec1e,1 -0xf89b7926ab791947540675d4459f831170f0930b,1 -0xdeb71d52908b23b9f5be8a6c7b548e4f890b85e8,1 -0xe558fc2b8800f16c9a874f9d39f8e312ef90eb89,1 -0x34d0babe6ea775fb9e31c122dfdcbd702797d6af,1 -0x53a3d2a39d3853baf6af40cf69ff018ccf455739,1 -0x33a58a4c5f9d66afdc6f38d9190a79a508561a75,1 -0x3db09eb3ee8bcd945d186babf5a3ca5e30a42648,1 -0xb682cc2d08c0d41d4bb8aa1999b64e49dbc83abe,1 -0xa97621daf9ff2c847f3152062ba2c78a5e9438de,1 -0x205d27fdf015bd52d50d97e0b8c2d44ddf37fc35,1 -0xb0404e6a505522e7949cf67e16bc19507bc3d0de,1 -0xf270166815d23eba5cf73e47c4c7f20b23fcbced,1 -0xa8bebae05029bb487171f4640b278f58fda2a2ec,1 -0x3682974ee48938bc6d85ce08fd72f4643eb03942,1 -0x7c9e47da378ad09f1272ced1651fb1a5e1a8b303,1 -0x8b6790d5cc07945c379e5f21eb3e99bd1c55b0fc,1 -0x7ab213032ad6b8ddc52a20bd18d5bc3a13a602fb,1 -0x9aedb4905df3839cb03be265dad406404f52593e,1 -0x73fd8d92e5da54f79946bbde52167eaba6a7b715,1 -0xd5a57c5bd12d4bb0afe5e1ad15750c57eed920ec,1 -0xf023b754672464f7cf4976f3a92761f71ca6292a,1 -0x74f497097dea4055d9b6ddafeb9b2c2a10c1984c,1 -0xffe46b7066835d2c495195a907082cc048cabddb,1 -0x3b52bff84320a05cd158e637b1b53692d94ace7b,1 -0xde670b75b9ce2d581979d1947a310f09acc561ac,1 -0x04271e080eff6bd0e9dd493a23b61f43f09a91fd,1 -0x06dd20adad4d60a7f0647c26c2a1931ebd3b3bea,1 -0xc72120f9d1ec40492516940b998752a69ce80356,1 -0x1f3d329c6100543a19659460d839d3f7b09fa28d,1 -0xb1e17c8d773920822d24b31e7594bbf68249ce4e,1 -0xcece4107acc0c294fc922f2a7c54b8ed63467f5e,1 -0x99427af6db508772aff31579f16aa72907ff0496,1 -0x49e74e31787734c3543e99bfacd457cb8286b239,1 -0xb78d1015d3361e40e26103a3b48edb80aaddf0ef,1 -0x2ac70c9e9392723d3511e1bb4f29b8d281b9450f,1 -0x70409de21346ca00967fbe6933bb4a9130730ea2,1 -0x8add80beca0f7d8758a34094880156238d8d82b2,1 -0x06538e448215c8f19e3c6f266b7325f9bf0d47c7,1 -0xb167d5d56f06eca7f2c9b282f51483cd4ecb7223,1 -0xf23d423c1f49d3248d20a21292b7c9c83732d374,1 -0x37c69ef3b006be31b98b1a978c86c0f79a3adada,1 -0xdd47539ab7aebde2176cf6bfe72a2e3708f3a64e,1 -0x6cbcdbb8f072506f89acdefdbdd430645738dd8d,1 -0xd6f76a66fa9c8e7056833ebd540e48a36ae29ac3,1 -0x6a3931a6e1916961c018e16c29d99621f0f51e64,1 -0xfe61033b252062e7ff0eba1ad4e38a66b09b66a7,1 -0xa141722f2a6a1dcc11b69ed91f82d640fe80d543,1 -0xf82a6d18e1bfd3aa7faab4ff596d1e5464f976cc,1 -0x9c44495ced9f08a0741dfa3751e949e838de95ff,1 -0xeac7c4d87bb40b978feab997d45c48ae18c8d654,1 -0x533aebd0869a718cedfadf94deb131c8951712dd,1 -0xdc6d81894b8805e54f93a9881ab2a6bd1a41ad40,1 -0x79c941aba3855cecd537b5d165fac2eced712cde,1 -0xce931144f69d4d7c67e317cb4dd13c38699a9d53,1 -0xee8d9330aa2ea91b62b69a498b9266b7c01a84a2,1 -0xed9bf52359801c684c3c4ad8d5e2bf84262f9edb,1 -0x2eb7e759484b8de1416cd10fdb41d398f4d85849,1 -0x27c41e8ac918ed261f4c8f5952d955db0d82ea21,1 -0x189047da63f6de500dd407b6492b5ef2c5a68bae,1 -0x2c9934e35e9517eb77205634dbb7142e6c904957,1 -0xf80e01118b7601433aa72606ed96eb111503b01a,1 -0xcced64b375692408cf80c5799a328de3fae17022,1 -0x22f2941a6bf33566947538ff2a7902894cdc5fb4,1 -0x3c2a3d0cd4f6467bd50cebf4464747b33bbff020,1 -0x8b25241e7054a6372b3846367f3a24eb59c567a9,1 -0xe8f783fe39d4a69a8f537ff703b89a85eec77930,1 -0x5173eff3b976431d815c4f9ed2e587639bb06b06,1 -0xed602002c38134d4eabbd2ddd2fcc4a122b90e9b,1 -0xfaffa0ebbfa585f4499532243ed1efbed68caf1b,1 -0x2c5c1d801a65daa06d2494d0e05ce0b656f63d16,1 -0x3c22b21cbd5236b0754c862219ed170126af6d48,1 -0xb2d4980b7c2195a9a736e45e46d9938a5d459e0c,1 -0x95a81fdbe0f93984b869fe6503919349d613a22d,1 -0x8aa98cb2a382f968092e84c565c33515e89124aa,1 -0x60ac1fbfc81a14247a6df619d874b4545eddaf43,1 -0xccfec23bbb290f5e0c57c93258ae5086263bcc0b,1 -0xd71ae16a92d59f2f3f970b9237e89390a942bc0e,1 -0xd8260d111c88c0e5fef7c2306c4b2045e720919e,1 -0x440e70c989972cd5458c87836d46512d38cf383a,1 -0xc9452a69fb32dc45ebe321f53b674ae792b74f81,1 -0xd31f2e2b5d54fe1e6a32d54a22f5c2649ba351c9,1 -0x1e607069ca0e04854c6ae0c771c0d81bec418c16,1 -0x7385534bd87f6c6bbd89c0e27612382c17083e65,1 -0x93fab4da3fb0ace7c49d8721ac07b6c7c9e81856,1 -0x01cbaac7143a95b0f62ee6274f89c09648d293cb,1 -0x99f296ff497e44f57ce58632652a2306e7be4c3a,1 -0x194105f3d860b2d694a8f0f88537602d1aad65fa,1 -0x8aa4e0842d7b8114b63228666355a8487da77d7d,1 -0x2250acfa03085c8878651d41ddf22829b7076fc3,1 -0x13ce08d758c493b2f4ad655c300687050971f8ab,1 -0x51dee806657e106e75654d71a2d978b1f65bc76a,1 -0xa2094a94ea92d24f8c5e644f3e206316c9d68856,1 -0x4437e02b6042e3a4cf907bd15ad72f5020d24b3a,1 -0xb1d167c7afd3009fff7668cacac8212bb5413d96,1 -0xfb91ed95d9acba2d9ee62ec3cc65e6b88331d312,1 -0x4297fd84c13ba87adbd4d46d032e2df0c9aa5e7e,1 -0x5ae0671df0697ce4098ce2dc034838f70579b09b,1 -0x41bff2c37f54c95cf0fe1143b08cc10f73d1b530,1 -0x27c5f8580e5949330038893f7088c72a1c11ee07,1 -0xcd0110fe6b29997feaa5ddfa463ffeb021c4cd4f,1 -0x4378e3c5176418e210f556d1fb8fcb140f3e5009,1 -0xe30e7b783856ae54c037909203eeb3527d29803f,1 -0x88830df6b8bdd26b95b121bc12326a3dfdb82888,1 -0xce6934dc5bd5ffd7e71ca92aa8d9f25417750bfc,1 -0x408f50e45ad8261277ed927bdfadc44bc8b93421,1 -0x902f5a4d6c044cd90f8a03ae2c1e4b21d1f7aa63,1 -0x851a5b9acb1aa76eed5d8ecf01f1a4d15baa701a,1 -0xde94862d59e24f05c248b3c45e9a85fb4878495d,1 -0x9fb5f4d5123398f6ad1ce022ec9e67202c5e6195,1 -0x132ef59c8cf9af64178d3135eda84592d5f64dd0,1 -0x1a38210c0d3281bf864d6270c70d10a6c41db3ff,1 -0x9537a6edd7fda1a44855439b988db09dc808c897,1 -0x15a75a1c75bc8446b64878326ddb05215468591a,1 -0x97d972cc8505b25ad3eb4ff1cc784e9df52b1d61,1 -0x8fcab9b18ac26726c7bc6d812fa269124d8c7c11,1 -0x006d56cad962b97c6739ff9de24f32915964367c,1 -0x292ce86e49607c593f13d49790a562a85b52e7e7,1 -0x08ebbb147c4ffe452f67002733e607777c7d62c3,1 -0xe58e4ffea468a0dbe71e60724b81d4e87b09c627,1 -0x3de0d163f58e49b6fea3107d487b516843942562,1 -0x0715c3d77a637598707ae4c2ef2fb462b5213a0c,1 -0x91ad152d59967e47e370bda496f87ea7b7a2f451,1 -0x8aaf789bf190c46f335641f6460847b808919bfe,1 -0xded445e1b1898219ca1da2586cfd0ef7aa08d16b,1 -0x2817606024e4c78364a2c7aea3e97725b98d66e5,1 -0x5f87d56cb292384ab469bbaa27767181404c7c14,1 -0x5a7ead1075b83174bdac1303c887e6a0d96fb3c3,1 -0xd4c81bc471743da0f7e50d08b0057155538bfee9,1 -0x0347ae22c2ab2875f69133162ab276692093cce3,1 -0xab5d46fda3a22b9ee0c7a80a7877aaeeb5c8d890,1 -0xf508c2be6c8b5f10a6ea4637332ec9e3270a6fd0,1 -0x8ec676c77abe128a32c93b2d0dc4cfbb60775046,1 -0xbef33d90d2da013245b37c049b86befd78ef4ebd,1 -0xaf8028280717ed29dcb8ed01a9f2dad27822f925,1 -0x6c652556393c1f0d59cbc05a41d505333a405a6c,1 -0xd90f7923a2cc0d8f904fc214298450494de68b81,1 -0xa3d57d1a2470bde547a216cc6749a86c04dd5f39,1 -0x85387ffee079da9e0ddf1adf0372ee2e1c952ddf,1 -0x9f25aab566d9007684b8e2569f46cbafc615c513,1 -0x22c6e9211de7188e0f4542b3eb1915b84ca75a44,1 -0x9a9f9f7df8da515ac640f05f8131fa695f2cb037,1 -0x090ad75be18d47ce45261e797dbc2bdac139ee0d,1 -0x98c2785efde10ac874411a1987b41d288c119437,1 -0x9975dace7c8151225ac0d76bb2fc2c6f10a83ac4,1 -0x001216745c57a80f803d84e70eb2ec1acfa21468,1 -0x98268948278e168d57e3409e42b9dfa97f0d7aed,1 -0xbf1801e681f13a697630a364396fa8eb4b1987dd,1 -0x038c275a365b7bf84fbc5c86156619943df1c123,1 -0x7c801ac54c033220ec88da0ddbdc1826199494ff,1 -0x7d8378d189831f25e184621a1cc026fc99f9c48c,1 -0xca32ea8be39815c82f770a8c43495f9e1837cd0d,1 -0x30ed5427201f2234c7cce7dfc14b8b246d8d4de8,1 -0xc2951f21f24eb199b820e4ba8ec30b2e86e1b715,1 -0xf271fca7f2896c43db0251676c5bfc61e6e51042,1 -0xedea243054453fff88f9e6cc62b5c4d5ad664597,1 -0xe577062a3c63b014c478f728eb3a4d0299a4de32,1 -0xce85f20fe0407e028a58032e0f0e6b8b20d19a6a,1 -0x872ae46549d0164fab8904897bf141f655aa77c3,1 -0xb89ae959e8f205f9416c7557fe8e00d323c5f1c0,1 -0x9eecb703f1156c653022ce82f31715083d93cf76,1 -0xc8b72b4f2c6054382853fef08abe7ea6c8c18176,1 -0x2936104e0bcdf314c56e6fa3085be7c63fb1d611,1 -0xed3a4df957187b6ef9f68f60ad842698859c85ef,1 -0x3a4f4736585557ccbda5e4844e7c736a27823fcf,1 -0x465613ee4576c34756481c9ded170623d3d191eb,1 -0xc54d623e4cd6722119d4256fbe956470117c139c,1 -0x1bc874626cc9d45c80a257760fdd3090145a4370,1 -0xe0da04370ed16409b5b4c6377cd22a9b7ee4d2a2,1 -0x2a3ba560206d520b288f719ffd23c9189136392d,1 -0xba829f1cd17ce20ac553b9785daa1e2e75eed766,1 -0x379e0a87acb2e7072e54f5fadfe92d9619a5da5c,1 -0x78ecde4db3a9fb80339bfd9e59e30d8990b28fef,1 -0x8f9be4310f9abb0e5843cc6363908c9b01dfeb3f,1 -0x3b67e5ff0354df0bbb4c149c280b2886c0daf5b3,1 -0x57cf1644004d90d7e0b4af16dff71f2889f97ae0,1 -0x4b97b5f868a98e988d383aa59d8603747ea1a7f1,1 -0xd7286d1d6be73b095b98bf262a43dca0fc73fc3d,1 -0x52f1e3120d299bfebfc05b7c51745e855570552d,1 -0xd7ebb421e7d002eafd452c18c9db486bc0bed4d0,1 -0x27be9082da46bbc5a7775a82f3a5d836578a629a,1 -0xb10a7cdaa33e9f2b42ee13752d3d393463df26c2,1 -0x486641bc8a5e8a414016bc39566a74f9140478fb,1 -0x76e0eddbb88203f959b43612cb1f8e9e661f036d,1 -0x7f375c72cb7e04342d047e18198818ceafe345ab,1 -0xcf34f326ff2016c9ae87bafa77eb3df4f9da1803,1 -0x906f4ee32c402630366242b492c6a2859ce38bd3,1 -0x75d452437621b00302391c383cfc73bdb1eacc18,1 -0x31617759518133edf52a4b892b59db906a9ca90f,1 -0x66d387868e23b4b83055615334364bd66293e3f0,1 -0x786a612e35243c485d768de696614189fff495b7,1 -0xc9cf7b80159ab0b3fc6c1e539473c0f45d60326d,1 -0x5238f1022d8a40d435330aab04e616ebad08aa1d,1 -0xc92d20247a8b20e640d339428968b2501e579c7b,1 -0x1dd5c3c570a3218e0a118519bcd72c68c306deac,1 -0xa59fef7595ffcb4ae1fe5c7d4da5e2f8472ecad7,1 -0xd2df886cb83be42ee3b868ebdf45926ad87c2266,1 -0x7a331f60ff7eda98574ad419624991ff50f738e3,1 -0xd33464c18c5f5d45f2eff53ab4b8b5f17a788c23,1 -0x6306ac6fc248aedc642dd1426ab85f48a9d58ea7,1 -0xea41d411a0683dcdb3aab9fe7a6c754f05a2d1d8,1 -0x770853a5cb23211f9aa8cf23ffae891a5e8bcec3,1 -0xfb3436ec8f1df8657ed200e4458e63a23649b172,1 -0xc9377b597ca47a54387c11c3bf257e226672c444,1 -0x3f99740c56d6617fc666d4efecb53f952d3e1c28,1 -0xa1a8d11118f5322b5b19d4a4b5a9be1732b267ce,1 -0x860a287f498ceeef7e74d1d592d958d37c68548e,1 -0x1299ebbd37b485dcc1fc2ec720671cb97f65a069,1 -0xb1a0e86f0a3f49a7b9822b1a84e9382dbfaba52b,1 -0xabd5ef6e7d9a3324c78dc244858c13afaa687ae1,1 -0x89ee68d7ce64f2b7cff99bf9e96d02ad1a126992,1 -0xb994cd5a56c0bacc375ef235e00832d780dd842d,1 -0xca9e848dd56bbba51dc93a6b5ea01a158a57ea56,1 -0xac241f2aef920e2fab86794bd3f8da1d1bcb0db0,1 -0xd6911b8ffed6b900601170ca0bc73206ddbe7074,1 -0x593beaf8ec3cd183fa0c703034994214b3affe24,1 -0x2758098b1a4bbbda3499f4ba568fb5cd4d11fd8d,1 -0x51c417e6637e502d19197edf14da56e5b03f88ae,1 -0x602c5e1a3c8024f34f9cbf787b3dc4e6d2ce5b68,1 -0x2cb98191227ec1c0bc15b5590d98eb979dab25f9,1 -0xce802a543650cd6cf7a6e9272fd8555b95dba108,1 -0x5be176437f840820933f78e0e44f2a531e52f66a,1 -0x62a35b4879babcb2c71aac89df2f6be1e47ff36a,1 -0x6e1829775c82d415fc66d3fe0e5625e2f6c3df88,1 -0x5e2e83c1d9ba2409ea2828bc4f3862dfaf936e51,1 -0x9b7798299e5156c0b66276aef27d3b912e16bca3,1 -0xd5fdaaa6de2a4a6b0189da74f2bc324f24834a64,1 -0x3cf07e16fe6e83da958f345f6dbbc0956ad1c7b1,1 -0x32e7fc036cd75a03dadc54671a1e435df0cc47a5,1 -0x01e45384d20cfdd6bfc0b89206f414eb654ca0e6,1 -0xdc667cfd26747a2c034003c4b4a26a0e5a7284fc,1 -0xf0e5fbedbf83edc03b321860973ac48cc533c188,1 -0x7c4af1526891e5b5a795f73c62e8964eef981c6a,1 -0x8b8a7e3f14c2c74f9c85abdd48ca41653fadb029,1 -0xfdc7fce5b50f19221094b576a2b4f02e6570f2f7,1 -0xbe9884cc1e1a5eb88ea0a715243618b58f0e967a,1 -0xea43d6caad8ba7ccd63efe9a85b544771c082cf9,1 -0x8ae0e8d964c60ed8d4c429e8565059a74d006d5d,1 -0xedf290f878c52b5aba4a7b4c65128edb266c7334,1 -0x110f91fd6f5ae842c9b9cfca545a7bbdeb4817b1,1 -0x15e48f989ad64bdde834e8516cbcb82d51182091,1 -0xcec1d7fd945d607943d736f6abccee2fc44c7f4d,1 -0x5d9e490447416884b323ab5d22fe9bfead1f976f,1 -0xb285218978bf4e94203e71f6bba6f50ee44d93b7,1 -0x2b64ec980d9bc67e2d39cb55d82c9091cc67f342,1 -0x83df398770a2cd94a2d3b2d4abf98ca94362279c,1 -0x70e33a49d983cefe5de6065d4d6f0304104a7292,1 -0xd79d9b4458c90fe0264a4f7e5d11cb6f3ab9c3c8,1 -0x46c847c0edb850585a43fa48d7ecef876ee56a21,1 -0x0301375ea9828b525ca2a9bff994ea8fe1a72427,1 -0x06479c49a4b3a4eda08291c33729813f768b61c3,1 -0xd6f5a5be96ed1c1413a40606029e4c1dc0a5a11c,1 -0x9142a918df6208ae1be65e2be0ea9dad6067155e,1 -0x46021bac97b563c4f71f00bb10d994806041feb7,1 -0x7efe7a7e99495eb8585e9e8b05e4514fef55ec28,1 -0xb5e34552f32ba9226c987769bf6555a538510ba8,1 -0x4b6b892b6878e61f421066a01fc03d0648228f82,1 -0x78fbf73a9b05ffd541f346547625e3608a4fef1d,1 -0x00f72e9923e227db02b8530983600b4e0a07eda8,1 -0xd6edf7c89a96f229a0496c9cb8c386aac30014da,1 -0xadd93b1acdfa3e865bd1e6495182e9f1ac5cc35b,1 -0x723962990ac52a7f051da9590bc61d3d0f1be2c3,1 -0x92b267543a6a91bb3392161efe061acd38bbbbad,1 -0x0e32fde8a1e7074483e08486ea425a312a8c5b9f,1 -0x08266635e721fff23581c5c5679e9a061489dbda,1 -0x947f494369b8c2ded624f420042ef7345eac99aa,1 -0x17d19da0dacc522ac86e55db724cc7035e2355d9,1 -0xe04c516928a5531d95c63862a46db0d84e3430f5,1 -0x2a954a9a5e806dd327c4455f27c7311273a731c7,1 -0x6ff89ac8307de75d432f989e89abc2bb9da1d707,1 -0xae4e9fee96576b29a61dc9ecf6f007cf4fc372fd,1 -0xb069cace2625de9807941dbce2a8a521a4e5208f,1 -0x99f6345dae0aa64f8dbabac679a41a0a7fdbf8bd,1 -0xd0b8a5e94824e6b31e206ec0104bbcc6f109a52d,1 -0x67ba8eeedd02f28d3bc9bced415876d19377133e,1 -0xa81e697290e4f2c696c63381ba9012f940f23e05,1 -0x91be22279772890100476f90eb61f28254a409a9,1 -0x877774261edc5c7b2e0b9e827b3daaee026ef1d8,1 -0x3d148ed3c8db35f92c9cd10a1aa629bce0a718f2,1 -0xb36bd7fdede7c5b3c44ea96c73696d1646085ef5,1 -0x2e5244f11e06e60fd6fba2c096270bff4cbf466c,1 -0x9803d13f05cf77d1f84d2fdc2982d87fca91433e,1 -0x069755a3195376b2d6a05a3ea954df5b1e46b00b,1 -0x2fab0249c6a60d715135f12e51de7c130c26289d,1 -0x98c33dc0cdf62a46a1aa55d524494a848a1bcb95,1 -0x56fd1f15d2581b16f9c22b25d306ff0c0981a33a,1 -0x72ccd0c0f9e8f79cda28a084ba3781a412ecf998,1 -0x117e86acd9952b24efbc21f6aaa6c1a79e5e69c5,1 -0x56c326829b207abdc9db2b13825b8cc08caaaa66,1 -0x14e4e9f6c5ea776ba5cb9e1c774be1e7737d91f8,1 -0xf030cb78423ba51237b886d9b8e8714a15b20729,1 -0xecd6eb9bccc9399519f499453adec0a2a2eb0307,1 -0x27a27c9fcb5522c738037d49143571b3ef42cd01,1 -0x4438c0f6683b5d775cf94d45a40bc2ac053741a9,1 -0x5c51b3114639730d4fcbbc5373a5cbbbb5a813db,1 -0x8520201ec6ab08aa35270efdcf28b51a826bcd97,1 -0x2e894b8d48018e6e2ebd025c2db21fb18e4ac6dd,1 -0xac646f85dedf86ee9da33bd52cbbe092fba134a8,1 -0x5c91373178b476e8ea8798f32696e43b13340dd7,1 -0xbd1e57b939dc22b66a25d94fda20ede3f9b98268,1 -0x6664807bcf9602d1494ea6659a15c27619f8047e,1 -0xc77747fd00be4bcafb0692ca2eae8545986f16ca,1 -0x1678c71b51877489e75c35c6af86aca66f0da791,1 -0x3fc9b07bd65089021607b496ba6a574feb4311be,1 -0xd47668b72ac4fc178ffcd3af5c5c0dfac877383c,1 -0xeea89c8843e8beb56e411bb4cac6dbc2d937ee1d,1 -0x3214ba90af14247a9c3293edc4ee3ae693e8307b,1 -0x71abf798c087eeac7dad71187eedf89355342592,1 -0xfb25213a520633cd0ebcccd47b3cb4511e3c056a,1 -0x1bbc0a97456f0c86340b690903aa5eb4e71cde04,1 -0x7dfb65a83c71e46195c06946e032a3711f82c48e,1 -0x2c68e1a3cc9bb145f797ad4fc8326d0adfa97055,1 -0x24ee1607333cefeaabb94c1674eab94868db47b4,1 -0x9e2a656329dfa08e3b074c7c33e352a4ae7e1c77,1 -0x21f75b6dc949944ee5e7896cb8c1542ddcc8f738,1 -0xeb20824553092b9749c936733779744dc86e83a4,1 -0x7b1a9c83a3ed4b7526146664556d24772c7f2f08,1 -0x51930785650f1a8732aa308467c8547daf23eeb5,1 -0x24c3a2960ad1839c47a3b321d0711b09763a4b47,1 -0x7c2b1e2df78e483f5842409a9a44224befb7878c,1 -0x8bf4c8138e0afe20f51293a55005bd6a851c96cf,1 -0x3127006974332ad432def6c2653ef44844686615,1 -0x35d1a136c10d38b1bf94ee5156e834cf3bfe1eb9,1 -0xd1a6e8833da6f7e43514349b37dbe2515f4f02b2,1 -0x02ee92c6d4bda2de760522b441c1637c827891c3,1 -0x6e293e183f62cbb898869688877c561d7e334c55,1 -0x699a2ae5ca3cde2fb7b2cb69fc7089f2b893e3c8,1 -0x325672191496bc145ebee5e74ac52d5529bc8d78,1 -0x42fb1509968e301f38d8df2277d66f4323fa729b,1 -0x530ca01709b7a17fe789e5325e0855f265d91f33,1 -0xa4d635a6f45fc6fe1687a44bf38f3e0dbf221fa3,1 -0x08a4848423531216a1b1c00397659e6061e99aea,1 -0x9e6632d7a3f87f1ed157a5dd7007d9e107669c22,1 -0xd65fae74f10ee4e547f892f3536a05c4224a7271,1 -0x86d8181fa119000c42c6f5914873f3fdd54ae588,1 -0x0ffbcb47751b229a5519dc89cf54ad4c4d5951c0,1 -0x87ed79286c88037273e30a12feb885d548076984,1 -0xc082286a6367c60fe387efee28307b1b18da82e4,1 -0xb9d6e3aa87b449f60d94d5a8f79730831b8ce181,1 -0x346a3ef1b5eab64260066624a0f907a38d7dbf10,1 -0x56d4da269222e4aad6937cafe60f4e71b4f39fda,1 -0xc5972f97f3195b1c4e992900077ab46c5c395476,1 -0x1192e7f6e210a960f45c8f5c104475eaca82af2d,1 -0xf46cd89f1cb3b4d8eb6a9a763be98e54ac0cbf47,1 -0x21901621421ffe07799ae4e0656f7d6a606218b7,1 -0x0bfa761d969e372b918424bbc99a653a8b6fa4f5,1 -0xdb724442aa1aa972b6f23b63491cc6b601608c9d,1 -0xb82afee359f1b1ace4a66df2d21dbbb71f71a87c,1 -0x7e6d0c66124a459bf9529dcbb56a0d90dcc584db,1 -0x4abc8f935f67aeec05b70d31e79c545856b4e4cb,1 -0x7dba06ce416c7e7845706a4d4cb20fcf9c709809,1 -0x9678f5a4c5a9d08d2eea1d1760f79fb7eb421976,1 -0x8fc30b5dd41f0f639bac0d3bc3506f378b05704a,1 -0xcba1a597261fc24a3569a161c6d8157999b3a342,1 -0x0fb1790274f57e7340edbdc3f296611d09b76d78,1 -0x994185ae3324cd16313c29b3d9ec02ccd1c045d2,1 -0xe8d773d082efb2182d9a7599c4a826fd9abfd081,1 -0x78eb1eb067c0930077d35567913b635cdd12172f,1 -0x99791904bca40ac72cfba05a47eef0f2558ae247,1 -0xeb3fc0dfbd89118c0d81bb19291f7bbc643f9d7c,1 -0xe608354a15b57ce9efc67fee87763fdab066a3cb,1 -0xfdb0a7fe18631fcd0af4c83959e82be9d93cd804,1 -0x41d7486be0c8feb1e3c73561b7fd30134b3bef2c,1 -0x4dfc6899942693e7a62e39d16c8fcbd8d28288a5,1 -0x48a7b2ad164ae2ac0bec346b6cd205e3164a5b58,1 -0xe7b89194a279f293fb95234303c96e736d6ec8c8,1 -0x18f2120504420bb690bbfbc587bfff92617f23f1,1 -0x5a884c92f55d74f9c7eab17613a92ab4dd8ff421,1 -0x9f254a9ae086a5aef20a629c3285df8efe0c6a5c,1 -0x80d6629f464c79421ec866c45d00926476541b87,1 -0xeb124f9e20a43174a34808922463ab543b631f4f,1 -0x58b9b7ee90673ca5912f7029dbc131bb4e78e373,1 -0x20f89aff0d8bbec2c7d73df79d813165094fd69c,1 -0xbc0b3e13424ff09abff7d62c2aeea2beaa10755f,1 -0x055f6aba56fbab2a80bd483e1c84b7c4aef904af,1 -0x388ce03259326a42a4d3e1f079284aa751cbb9f9,1 -0x7c5b21e07beac19004344a208d737f921ee2a41f,1 -0x16703a76b9620d2cf27649e5a5e11e89fa2333ed,1 -0xda6c5a1adba586782e8417f1679ff56a35d60807,1 -0xc16d94f793fd0e62790a2e06a239898aeae91752,1 -0x0033059d6c58953f2e38bf7fa59d64c03b3cefc3,1 -0xfd4e9b129299c88dae04c76f56545da060f36d37,1 -0xd161a2372b2cdafa9dea2f811e9b9bf3fbfbd2bc,1 -0xcc3032fab98170062c76e6876c5ee71170428792,1 -0x2c68ef22871ac66f691d9870224ec04477b4cd5a,1 -0x2c4847174021aaba9e94c65bff9d57fa2c0e6f50,1 -0xab908c368a64742a9238a2cd23f1e888afe65cb8,1 -0xe85e3dfac749af54c30624d2e2b8636f0b07d23d,1 -0x68d5247a351f8ffe0d641f5dfa87f0def295a9eb,1 -0x4a59bdd76aae3139e103c68533fbfa56c5f5d612,1 -0x769e82a7fa49e491f37fb70b549b0619da36ebb8,1 -0xfe381658d6a4846bc4f005a647b958b05f7d9298,1 -0x2444a826cc5c5e87177f5c72e17433ca3a47b148,1 -0x43da02a5f9f3c22363c51d9161edfe64ea6cecfe,1 -0x149c2c023615d3bf746a4c1d5c08fc84202b0b47,1 -0x4fd0e705b5d134f1ef37a4312128c408d4396300,1 -0x3e1264e105f3f88fad0623748bb74b93f432b15a,1 -0x5fb15abe29cbaa0d5ff061b464f30d780288f1a5,1 -0x8c8e7a439308ab76c8090fb96ab53809a3f6c416,1 -0x9aeff393816819ea098f240157174f082b4a8da0,1 -0x4d0d1e88fa9afb9bec59a2b8c36af973cf527cd8,1 -0x5698ea5ed9e90753c634e2a773dfb38558ad1075,1 -0x1efdd22ebe99556276f80dc5c0789471707cf8eb,1 -0x14d9ecf143698c4407b9e9d3757f7d4be00a6f47,1 -0xcc13f4f48b853a005c78f612223f6df7854d5de9,1 -0x7631f1e66ee39c6b1fe4c56c352a3afd0eae047b,1 -0x542c453b800c62f9f7aa2dae0343f0b271f1d3fb,1 -0xe6a478690b4eb70a0e7121c1c438c2e560a7f559,1 -0x1eb679772bcd968ac54727d3bb2feb34a3a91994,1 -0xae6f7fd814638639bdb400c006fe79991a43fca5,1 -0x1f13488709a82d0bf96e9de00c1765af595e285d,1 -0xa5439ee4e30e1da604b0be2648947f1335086b1d,1 -0x1bf3888e7e305df6abf0d45104e18fb4756a3d26,1 -0x372f5344045ecce94f596103d7c7ee6f6cf50d46,1 -0xb585fb3027684f01d22223d5ec7dc9588b3a23a8,1 -0x72d379c2d6bc75228b98d9a83338ac1ac16cadc5,1 -0x9d935d532493796a64138bbd4ace1343369655bd,1 -0xa0de1cde4649c6f93757e1b13a3d084422f44b01,1 -0x51bfd1e4e0d280a8d0293c9ddb26ecb7ff7e7465,1 -0x005430e2b2ca552efef1bffcf9915942637d2c04,1 -0x5a4d476e413661087adb78557dfc69432cab6d08,1 -0x7d5f869615f4361276fa5efd60127dfb9554d344,1 -0xffdf3ae59bca26eaa2660bfd512bb9a5541be23a,1 -0xe22c86d319875a65c659a65667988441dec87faa,1 -0x6320d4dd46d2c49c18d8495152f57b1fe279cd4e,1 -0xdec524a7e81e0b3131c8977f21dfcfe92a29f321,1 -0xd192583cb6e35181d9598e3a0f9a41f0b79bebdf,1 -0x6322318c32c792a832bd9331fe063c47d091c2e7,1 -0x3594aaf0754e9556ffda54dc5f341a50e1b1a6e9,1 -0x39cc7a3de85075713f7f7404e7947e49bb83c08d,1 -0xd4aeaf4cc54c56104c1075e6119258a2c91cb4fe,1 -0x162fb562039527290988c2228eee6a49427bb065,1 -0x140b25e0fb67eee1e7f295c3b0ff754abf1b530d,1 -0xaac6a96681cfc81c756db31d93eafb8237a27ba8,1 -0x5361adb01f315b7ccc1fe654ffd3f6ca674a5325,1 -0xeaebd9a346dedf48bc4cb4fdfe4aa4940a78d038,1 -0xb8a13960508cb9c3edf2d8e88b0960494a87c4a5,1 -0xb3db97058fc7754afbbcaaaae29673019e109481,1 -0x6ff97bd5de227c31b6e99c21801aaa8061c99a24,1 -0xf34a90ab4f8eb1c202d1e0cd1ecfcb94199c014e,1 -0xc1f1c238edef50682724403bc50177e434525c59,1 -0xf55f25661d27a5446180b4ab8fe960f10e34d98f,1 -0x2eaebb826343994b2ccccc9482d109ba74f1e901,1 -0xcf23e423cdf894b5f307096b383f9b3c6f564a15,1 -0xe02acc4adc054a607bba710a978d8a1be7692fe1,1 -0x77e42ca65b87329479610f86b23f55abe76a6ca9,1 -0xfb36a825ffa74200132aa44148eb4a9bf0bd919a,1 -0x19adbbaaefa83e9a769fbedba6eb7937caa39703,1 -0x1b8526720fb575493eecca3e5053fc9fe6c12718,1 -0x254768d47cf8958a68242ce5aa1adb401e1fef2b,1 -0x6abe7dc30b79c16b3700d9b87878499bfe01c6f3,1 -0xa902deb68c68a6932b164a6033506646afc78699,1 -0x47dd348ef49496d59be43430b1ef1c57cac85144,1 -0x742d1a59e303d0a1febb200b7ab103a4087fd642,1 -0xb7da74c1360c5bc8fbc70d0a1fdb2d4ed75f519f,1 -0x434c0fac91d115d77649a74c35446f7c1f4d6588,1 -0x442a14d5739a82340b403486905a311f4c4eceae,1 -0xb29a2e09c8d8587373ec7f59455bf4156df6baca,1 -0x9bbe1410c077c1b34c5584188e9883f49dff9ef4,1 -0x161cbe662599c8247df228fd1213a3521a4d0f11,1 -0xf056b8d38de27c2be6930509f6e25c99e0c48704,1 -0x31337deaa803e9919e77174eff9bd032184030d3,1 -0x7d043b98f65d1f0ef30bdd15da9149b869162e78,1 -0x0baba1ad5be3a5c0a66e7ac838a129bf948f1ea4,1 -0xa51e80f7e078cc724bbcf1780168c357d2adc3eb,1 -0xb16958036b7ccf322b08878fa21f44c3adc7f283,1 -0xbfb0add34588b1335f09ef7611c91270b495d61f,1 -0xadb9010f2a93a259bfc95187267a5a43987350eb,1 -0x7072a8844d2db70dafdc9f73e2c6e85f2a384dff,1 -0x1b9a62105af2ab2cab87e462fec3c20272018d77,1 -0x918270712ee5065b3e36eb5a331ffcd198058f57,1 -0x7325b47ade38a9c1f4b09dac57642cfed75632da,1 -0x3f2ccee880d91f620a9f142a31602d8cc258a526,1 -0x083d1428d3f91a2c97a6b4c964eaad614b815a16,1 -0xcf8b037e41776e06bc32a6767bff7021ac6ca516,1 -0x63a20afa4825d0d5c09dd0be578ec3810e059820,1 -0x8196f10a19b351a4dea498f74b228f4093c22067,1 -0xd631674a96daa538718009a38d32c74f33e1faa6,1 -0xf11b329557485777b50313f5abddd71e5c969c44,1 -0x7318950a0a2e732a44ed1bfbd3d8fc907280601a,1 -0x0b49461138880bf9be4d8a331bbcc4586da14bd6,1 -0xceb20dddc9c9ead86d302d705bf02636ff906c59,1 -0x665f44319d85083aab06c5e6a088c04484995ba5,1 -0x50b2d9ce489c259417ba436ec7bc4a41f6cae796,1 -0x1f8c8bb4971c42e441e2fc3662bcac89052d4373,1 -0x531cdf82e7a2826259d8c8f95429c07764e33ade,1 -0x9b57be85b2771a943daccbac57ddc30b4fbed1b7,1 -0xec35870c6bf1caaf9ec1d3239863925a25cd079c,1 -0x9fa44ba6a6d8e6dcb0202afc34b49d132c3d3ec0,1 -0x46454f5c13f5a063647ac33530d4d3922d6de02a,1 -0x183406f12b63e5fdb084776ddd8c2aee98fe95b7,1 -0x116a3b18f1bff292abfab1e3918530152179dd2f,1 -0x0f71dcfb225f6d23313362500a91aa59e7a94b47,1 -0xc78bd471b7f468149892df58e24d0e31d4d228b7,1 -0xcf806faa913b3ac7bcb7b57b1199411a76d96646,1 -0x21109e8fd0f30d6816e70e62067ae86ccef6561f,1 -0x7cd38139ea0bb92937e061cb863fb1b4e9f1ba4c,1 -0xf2344cc0e8e2ac5b46e7c747d391a57834324919,1 -0x73aac0e026db7f9ad4281edd11b6f26deab198fa,1 -0xd8c26049a4fb91a2a92e3bf7ef4b69b3627368fe,1 -0xe8fde4f09e51b798ea9531ec0dec9ac7d018a814,1 -0xf86b0a8e16a15f107edbc5573a238837ba81b756,1 -0x528f0830579aa74ef8a0bdfb4daef583994b78ca,1 -0x9ba3fbc8dcb0fbecd8acf0273a11bf357ab98b1c,1 -0x053337021e6f92e690aff3be012d157c7bb73310,1 -0xaca3f06100f998a89b52d785ba89a827fdf04085,1 -0x858bb518b4a4caed286fa85af4dd583359f49eb1,1 -0x641f6b752bfa40109cb66b0619bac3005bb59587,1 -0x4490ecfe55576e0d8dbd223ae4fe0ac9cf0b904e,1 -0x9cd72195423ed15ab6a1b1cf6a5a93bea7049c40,1 -0x887e66ad60ac494c42b6640333cca1ff4f7c2879,1 -0x8ea0fe9d52839dfbc5d8562515e67cd2eb0d6452,1 -0x0a2e5c1c0b92c8abfd3fc321cc6fc08c5e7ca038,1 -0xfeecb7b10ef6aa2eebb54bf7943aadb4f1d0f521,1 -0xfbd10b36062bee45d56bd79da755bb1dfb6e2136,1 -0x98fbac7995c64aa96a9df915f69e444876f698b8,1 -0x8921aae5acded1ad1ad8abef6471f6777c2cb394,1 -0x95c7c62ccdb7f8ca438a4a281ab66fd53bde61da,1 -0xc1a5884a268197d19375f815a9ebff85ad46465c,1 -0x481421d95ab38a53bc4c413f6c4cd1d93ab7e3a2,1 -0xc827d9d694a6ab7b4567fc9380662e5c2ee368f6,1 -0xe22a36dc96688cab8b346118dbd90a96aa607a14,1 -0xb89d308480f43f8b1c66a6810ae7a304281a0622,1 -0xf885167d8058e0b4bc901cf91579675a076d8316,1 -0x3fad24d76807ef5c818863891f9e947bad91bf5f,1 -0xc108df00b6dbc4c32de716a13e7acba267b69e82,1 - - \ No newline at end of file diff --git a/eth/holders/n8-free-mint.csv b/eth/holders/n8-free-mint.csv deleted file mode 100644 index bb7c4b4..0000000 --- a/eth/holders/n8-free-mint.csv +++ /dev/null @@ -1,317 +0,0 @@ -HolderAddress,TokenAmount -0x1d28c5fc9cb332d692e154d91229f7159a2fe9ca,6 -0xb9bd55eb41a48dd8b3141a09c4c6d829b581cfeb,5 -0x3261a7ec2dabbeb1a03561d06e6f61ffa03ae74c,4 -0xcc207e0d707447da91fc36b87ca49436e4ef6001,4 -0xe087a1a1c4208138d470be1fc9240a492d80bbe0,4 -0x01572de0e62e6d3e689a9d9ed93579749fb991e4,3 -0x0301375ea9828b525ca2a9bff994ea8fe1a72427,3 -0x04826bf05897747762a8cbd1fd10126c6f30d9d8,3 -0x0681409785aaeb6e71e53a8d1f0f85c0ed9fcb5a,3 -0x1245e4da78198e3a065ebe0deabc41000dcba196,3 -0x150378665ad818b09e2be76b3301aa63ba762a42,3 -0x174cc60fccb27c0571c9dfc2f2554be908e1051f,3 -0x1b5169fb5bdb53f8391df5ce0c7b841b677eca99,3 -0x1f079ea6fbb9b9b7146051c49e921cdba580c125,3 -0x1f6ac1b68626e7cc430d5223790a97bbb92d8a05,3 -0x20dd129930204cc1b8522dd75c8803b126f78876,3 -0x2980ec2199f832e7542c5c43e044a8a0709550aa,3 -0x3690c999a82b01b4e1ed7883ae2063848f1a7312,3 -0x38546a280ba5ea247e9d3723e8737249e6e501ab,3 -0x38a4b6a83fa18e276daffd50bfffed95ab722434,3 -0x4306dd0c18b58e34e587003841d736a449392d49,3 -0x4457dd59dc9f1dd6717befc73a7fff2226ab46a6,3 -0x459b06eeed0bdf1a4a2c88cccac1d24165ae96b5,3 -0x4795f922cd3cb66019fe5a2007bd752e823536ca,3 -0x4ad71a37f030e2373d0f2f7a127d10ce0ffcff38,3 -0x4b430620930324864f04c83124c2c78b7e84fcfa,3 -0x4d59941659a30edae9be99f3781b9b7114a2da5f,3 -0x5c3ea7fdf251ad0774e9d39d462c49a01aad9cec,3 -0x5df4abb6fa9130768b7daacf489dbbc7dd976c2e,3 -0x6498bddacb915007a5c28a9a5d881db04fea9b10,3 -0x72dc7e57bd99bacf13c3c7bdd2bcb10e47cd3f34,3 -0x743d5ce358c50a898073632fa78537fbb88eb266,3 -0x74bd49df44719d641f63f6e6a1f4182b9363b4de,3 -0x76377320846034365c439be773e85d333a1e0edb,3 -0x8a70e820217ad4fae199edbc5a7c4306f745513b,3 -0x8f8252e79e9e9d93a30626b070500257532e0ffa,3 -0x90aa87b9e5ddecd6c09eac0da5020c72a6688150,3 -0x98bda9a447e0022a57db06bc2d509528776506ab,3 -0xb5112778b8b562bfbb96c12b7bcfc0c138a7e176,3 -0xb83efee0aad06a8f7bceb9eef660b1a3663b2116,3 -0xbab0dca296434a3714f90e011e11f754fb9a3acb,3 -0xbaca135d297d17b584327f7bb436df5d271a2ac1,3 -0xbde6aa3c89db77002df747776d2830cf9090d94d,3 -0xbe62af5c854761ee4069539d622ef5ee5f6a8d32,3 -0xbf3c92d8d62f3da334b86a3e26f1a7127ab7d982,3 -0xc37b9024eb82c53038444f01813693b88f6c80b7,3 -0xc686a12fa586aac3c087aeed64bcd21bdd054656,3 -0xd1a5b91957530e1b3e9cfac1543467c60c352f69,3 -0xd99139b8d2cbdd90fa6873957bed18878f8fc92b,3 -0xdc35f4645400b446e9de332163ac858e6c47c3e5,3 -0xe35c2e50041af1fa44b74bb07ef9d44fcc6cf2f9,3 -0xe367968aa500bef799b11ddd8ae68de4a4c3ccf2,3 -0xe574931d144d398b295881f87cea3e3e2dfc44e1,3 -0xf15deff9f34ae294293bbb90bdbc3f417bf2bd76,3 -0xf35837299cdf94d9b7d949c799f1544be548ce8f,3 -0xf8479b8e984701abbb0f5a371910b81015cff80b,3 -0xf8d946c1db7e3552b0fab941844e179130b6f6b5,3 -0xfe0c3af0af8bf4e04a471ac36b7d502859c4f165,3 -0x045bfb4cf4a1ec665ee364924a63c6a234acfe33,2 -0x0851885a2baec9be7b052fea94ff211e4207eef2,2 -0x0ff8dc3a0976ec1a58f86d8df0009060c86d3f29,2 -0x22986607f2a14c020e2bdfa66765ad3994141aaf,2 -0x313fe2f013b5ee2e2aac09b59462464db56f7680,2 -0x3351eca19fce8708957283922a2fe9aed4857644,2 -0x3359b920ee8bdb87dafb1be8ba5f205f0160fbd3,2 -0x36ebdd363020e6cf9597d046b862116a623541db,2 -0x45bb9d44840fab87787875892017cb064b3037c0,2 -0x5029dfc51f194d5b5f4672fda6a123ff00122e60,2 -0x6fb095fe132804b2250adfd1e851ba27810a8523,2 -0x7ccb99f4bfe07b4ca794440ef682074b487d94ed,2 -0x8a4fd43c65b3c89f1a87cda849ceea149cf17542,2 -0x94cd8bc32fb456559923dcdd38f93e384a60fde1,2 -0xa6a106e85b43735f9b457259f099f1366eafeb97,2 -0xa745f501cdd7699fdf15f6ea3f516088ab900e29,2 -0xaf9fa3e56d1ea67183e5ac380c4678abc95df29c,2 -0xb5cf70f13e2d3f87e01057ff095a84aa40b3b13b,2 -0xb9d8d08b00f636ccdb7c20746e4f07d96cbd4d43,2 -0xc1dec644ed03ad0a4931b3db7c7bb0a7dcf10ed8,2 -0xc953b11bc99938b35cfb1c57fd1342a64b1cf30f,2 -0xd02972b579c5cbdcd7e9debfdba15704a38a79cb,2 -0xdb270f40269d0714d3b3ec8e3ca79932d8aedda7,2 -0xe1e44529a2e9166c153993c7fc55c39be6072b94,2 -0xf32c5b4d7229333544de9c135a0a0dd4713e4435,2 -0xf4e654687f7d711702671afbce763b23ffdb259f,2 -0xf6ab97ad7b28b6b8e2c8f4ee669424b85346bbd9,2 -0xfb09e8cdf25616148fcd4cf01b5eaba74efb89d1,2 -0x0017b306d9eabd700febd42e0f5a0c11193e75ae,1 -0x01153a1c7087010607ff859ba77e8735846cc795,1 -0x0214f1a2091d02d697f3fdec7ab6acf645fd69cf,1 -0x03e190e1fbf52d205ae13c5f130fff22f0bc849d,1 -0x04267ed8b7a57e0a1453609644794ba4072cbd41,1 -0x04b657efea53af25e74808415da1c72f567c8794,1 -0x050c1c3d2e802dd6208acee28806cc65f35f9327,1 -0x053177e528e9ee17d55a568781cabdffff41460d,1 -0x05d2f4a276b2fe445c0ef786487dd1bdf6493bb1,1 -0x067b6fd4ec0b2c867cb57d7f862cce928c190505,1 -0x06b0116decfe7cf6312020e177be9f353cfd2822,1 -0x098361705a667526314082975258d7f22048cb3c,1 -0x09fd4ad08938a63738db7b9dbbb12f7e36768185,1 -0x0a9c52dcce024dd72aafeb43c1c253b93ab6ee2c,1 -0x0b6da26a50a53190e7fcc033ccc4002f171b4b35,1 -0x0d1edfb5b0abdf9689077af2cd9780056a14cc54,1 -0x0e14409004703a9363b308260c63a1f070d5f940,1 -0x0ec493a5f8c49af9c1d3111974392e33f8887754,1 -0x0eebd63783cd3a6981aaa30df859fce06acf2fc5,1 -0x0fa3fc1ba1d80d59295e7927ee0c8d994138f880,1 -0x10aeb1a76a06aeb6223d8bec43a41dc40a0b6a8b,1 -0x14838694310e3da44d405cb7cd15eb138aa6517f,1 -0x15df6b3920028070dee10aafbe49605c8ae82324,1 -0x1696514b4a7aa3d9b831c570e649aded1725ec39,1 -0x19016222bd086e8c277c54e51db88dbb96f85d62,1 -0x19c5c9cda477c86253ef5e8ab35a56183b620046,1 -0x1a66f7d4033eca352a7d291d17caff7c2b3d3f56,1 -0x1bef3e995f9cd9b20d547f3718a1dbdafc90fa05,1 -0x1dc3fd6fa3bea4266725b27ef017011f3af7d362,1 -0x1e780e2f3de7d7760b6673108f8c3936f5a74cc5,1 -0x1e887283adc01cacca30dd0ed80ae2d5ddc5d847,1 -0x1f8111789967f36a4c4e7bb616e1ab61a2d6acb3,1 -0x1f8b3b2f05adbd154c941a4fb7b7ec2affeef475,1 -0x2186784ba5761c2ff8e3c16bc8ffb3f262b50cb9,1 -0x21caec48e128f6c7a0723c193220f0cad78d6d83,1 -0x2204431894f8c2d881f095db9db450bc6993202b,1 -0x221136decfca68b1fb94f5a9e23c0987ef49e5f4,1 -0x22cab0b36cc4ec24bfd5732d07828b45e7547f9e,1 -0x22d63ea3a9e7ca3470023ae9f2c0fd83ee46cb45,1 -0x23a69c76f72892dae64b71e251bbc42de8c7a41e,1 -0x24fda918c1cc2947486fb1529d1b1e863b1bccf7,1 -0x254768d47cf8958a68242ce5aa1adb401e1fef2b,1 -0x273b8feb49c6593c9abc9bcd4c2f19fe4dea5e10,1 -0x2814bbda1c6e1180b8c199983a1be4bd4a71c6ab,1 -0x2b2a80f6ea4e62fe85c125fba213a8994b441e6a,1 -0x2c8ea7c783464fe52952b0380f5df16c912adc84,1 -0x2d46f00e31745b85572f83c30f258f53ee27804f,1 -0x2d9cbc4ecfbd1b8f66aa798fd51585ae058daa8b,1 -0x31fade7419bb2949fbd72afe3bf3b5932a9592c1,1 -0x33576a2dc370402830d93a8b71bd393133cf3b09,1 -0x3610cbd15dc6ef542531131edca5de1f3552a7e5,1 -0x365c066774cfbf9659c38a43869ada887eaffd61,1 -0x3683a2076c48a6d4eddf1066cc99ad860e6424df,1 -0x3939603fe78202bafc73f1d00d67833b86ebcfc4,1 -0x39dea7862a48677cdeb8870726503764788332b8,1 -0x3a4894f709544e5a3289d55c3b7f988839362712,1 -0x3b6622178d7231903af58a8f5ebae7a084de7096,1 -0x3d0de3a76cd9f856664dc5a3adfd4056e45da9ed,1 -0x3e4c0e5136c5264c210ce6aa889854d0b8380ca1,1 -0x3e623f5ba8dd5dc869920d337f78ed7b1368784a,1 -0x3f122cca20cc5c71c7192976abfbd13fb6a5a983,1 -0x40225eb6a9a2f6801b13aa9fbe30e5cf4638b2ac,1 -0x42c6ae4b91e5c047c226dd5d22fd67fca4cb245f,1 -0x43785e7fbacc547a08eaa6e42ee075cb7fb31467,1 -0x43b80ce0256efb72129ee16ccf4d183e88c2eeea,1 -0x444da16bf1a13eda8a39565c1ea7a527fa543d3e,1 -0x44e92ac5cb4347ee730c2f8e684f4afbb41fdcc3,1 -0x4568dc8c90f5aa470b456a364471511991d72202,1 -0x4712ee1edcdd60a2d700609c02636e123c2a2f95,1 -0x498f9d4f6702570ee8ae91d80b710e38eac71c34,1 -0x4a240bcd6366fbcef68fa0cf30d8ed1edf5248c3,1 -0x4a3bca7e9dab2dbf6b3266e0c38f204c447b1574,1 -0x4ca8cba2a5a42bd3d48c9d36db0228e1a188ed9e,1 -0x4e14bddd529ad1095a738826dacab20aca1e83af,1 -0x4e231166efbd96a877297183f8446ac649b7679d,1 -0x4e8c7c35eb79d34db345cb04f4bc20ab6566c0b1,1 -0x4eabcf91a5cf651f601937fb2d8d835ec4fc95b5,1 -0x4eb55910d101a4b43801c122d1689d9605251ce6,1 -0x4fa8165d4820dc18d6178a314242ad923af1a56a,1 -0x4fa9895bc5ffd95cee7271766ef033eb2883b719,1 -0x5036eba41d2e0dd98b3b7c4ad0eeb5345f2319b2,1 -0x50c42f8183ba4335d05eab73c3b9862ba251c8bc,1 -0x5199e92e7ce3241b0c79d5b5bdd8f2fa4ca5858a,1 -0x556e25554b9df8a122d17dabc78d0d8b9dc805c4,1 -0x57203b1b1e748b9caf0e04788d62b622df4535b3,1 -0x577faee094bd0911778244b45e17320da9eca386,1 -0x58c5b881fb2794d04f0dc0ec65f94a119cd43aa0,1 -0x5e58f18187e4338f94ee546d349c0f82f3df3fc7,1 -0x5f45ff22fd5323e82d787c394467ac9fc75322ff,1 -0x60b20c553ed20c0192757fa5904d5ee2dbe5bd82,1 -0x62dc0f98e8895b45b74ec7b3404f028d240164a2,1 -0x642886473d4ac4e421e5ceb24b63f780e4eb207f,1 -0x653f040165541062ad9f9ad19b2cb3d447abb890,1 -0x66e8f08182b85514268c74c23846a5652e575ceb,1 -0x67a0bd7b83f1bd5b26684188b40222eacf132779,1 -0x696969917d14af0eccd470b0797a447087aba094,1 -0x6a30df0542905c1c29eb6020cd51b85c11f1591d,1 -0x6b1fd5d876771b764d0131746df48c1054e37f73,1 -0x6b8c8974dd878fcbbc6192edfc32715bb539f0c8,1 -0x6c7580e2e8c613eeaa65e5e68eb2fc9aafff1592,1 -0x702c95233ca8a60e1977b815ef2d6c724d2b785c,1 -0x71cdc00491706dfe69bbd5b5f8d63e8878937578,1 -0x7219d984688f2ddd1b00e0ad1351286df1c31f34,1 -0x753952cd905687283bcd65bdf354908f65882993,1 -0x75bd797761801ee681ceb7cd19a28395d52f4db1,1 -0x777b58ebd0754b19d22cc77339c99d05324e5597,1 -0x78c0804214a965f537b1f01489cd6ff03510ef0b,1 -0x79400e65009ef0703be28fe6ab259d8d97eedbcd,1 -0x7b05e2b822cb9540d336e03df6e76e8012491009,1 -0x7b2096b8da49f0e1b883a107838af797f43a02a3,1 -0x7b9d37372b005a0a82041f47a9c4c25b8c50842c,1 -0x7d9db15ac7fdc585f1263b28568249147ad27134,1 -0x7e878e7d50e54ff4d3de8c1e20af956e2f3a5f86,1 -0x800f2451613c42019e484a6ae19145b7c5c3e019,1 -0x81ab72d9dfcb7ad0fd5735e1a053e34689de4ba0,1 -0x847c1b4f34e93d2ae81b9d099c3e52f53d9abea2,1 -0x847f72daf8734c67ba3ee8a854996bebb72f4238,1 -0x874d7be6cdd3f482b2275e3d5439633112b2dd3b,1 -0x87b2dc356091c794490cbbf661384c7e6343ea61,1 -0x8d1544f93923126b7f6d84f5bcf11856fee57fb6,1 -0x8f4359d1c2166452b5e7a02742d6fe9ca5448fde,1 -0x903b3376fbabb2bbe24187abb6ef738f3321f795,1 -0x91f1b4d7543f4e4525628765e883967facd25958,1 -0x9228f6ab228b37b0e3935a446331698662ed0924,1 -0x92dc867c679d7e088025f505b5bd048d81cad24e,1 -0x940634350a5e6c7ff0718c1616f60be7beb85126,1 -0x9453a90e1508991c36a66acdc44cee7852fb16b4,1 -0x950c78ab8926cd9b505ca71d3705d40818a0b3f5,1 -0x95f3ffd8bbddb35e35e08d95301df518ebbbefc6,1 -0x962cf40307c6aeb5e0209507e16440019547ab6b,1 -0x966db4f86b0fc4108e3af2275dfcc23917ce9016,1 -0x9686ef5e52e51fa6c8bbfaccb2ff6b958c4625a9,1 -0x9699ca29b2a70c5f7c2e0cd3f173cd7a4c75202e,1 -0x975d368a9a2bc2028eec2b08e8f6456389288aba,1 -0x97907f61c1a848fc44d9a1e74194dad979089541,1 -0x97c0259fc0dbcab67621d9a4165f166412380b52,1 -0x99c952657bce895c2555437c0ce3a59a7ba5823b,1 -0x9a943007a66795d98dc6587eb2a32b8925751494,1 -0x9c2ebe0a95239c6aecacf5c28dac15b507262e65,1 -0x9c730de69beed4bad38203a970972a3f629f1ae5,1 -0x9cc822767b3f5d1d7d20aefa8ae8a0de2a58e28c,1 -0x9d7d2a1a77350d05d6d8b8e6f38f5cba2db2baa0,1 -0xa036e354f3e77603ff662544e2f48c7c99267a9b,1 -0xa06bbc7ff6df8e32b1e615977d9188ff67917da2,1 -0xa1b4970927b8021cebe07783f6f898e3f520fa46,1 -0xa28bc88b9501a31d85ff8163f2715647b48618b1,1 -0xa3f0bf51a33a20e75dcf1e29ee1e18a720bbcacf,1 -0xa5b1575d0256ef3cca77d946a4832744e88a81ea,1 -0xa8129913f7961fc3c62325fea1490eca51b81a71,1 -0xaae159043315dad76ba431c970e6ee6ace1458aa,1 -0xabea412011c1b9590b1dca41fc290012a06e2d0e,1 -0xac4f3de63ebc885619c4f3236667d2639cd135a8,1 -0xada768ffc1071ea4d566896da29565dbef6d3917,1 -0xb0bdbeedc3663f8d8fa4bd74be1679aa4d44bcf1,1 -0xb1c4fd2350111728c0eea313fe13dc046fe8af01,1 -0xb25d71a33555db81e1f374bdc935d85520d43a0f,1 -0xb2d3917d7c235b5c596d4b6b07794f4c917a4c5a,1 -0xb4242818e5ca3d5e14e01a2f41ae02ce5974dbb9,1 -0xb457cbdcdef14740e92f487ba1cfcd954cd117e1,1 -0xb505afad70bf533ac5dcf94c9ef9a7437a4d17d7,1 -0xb56caee9aa62f7a9c1ec499299a5f3736fe51dfa,1 -0xb855b762d9616235514f833af7b7eeb7b41a4ced,1 -0xb88b6c6a030bc11d5c680756826f446524571d54,1 -0xb982446bafdc8fb88b22e13a365c8583948b2ebc,1 -0xbac44851587e68495f6bf2f91bd8260234d6bcbb,1 -0xbbd63189917417116852cd2101d670305d1474fc,1 -0xbbe07d947457127e0275c85f67a0846fd0685dd8,1 -0xbd5d007a4f378bd231a82d903796b63eac4f4b9b,1 -0xbddbb38b5248b5ced6e6a7ae185e02346270c1bf,1 -0xbdf3c95908135c9e54928bfa440c2c808a244fa9,1 -0xbe34657fa5809b4e6deb2676a7a7e42df45f1d16,1 -0xbe8de7afe1ee8dcf460760f3ba486942b51be0b6,1 -0xbee1f7e369b3271088ed58bf225df13cd96d32d5,1 -0xbf1fe3ec5fbfa6d95f8916091d6e0d80d7393751,1 -0xc044de7f0f2001ac5ba0d9cb2d10201c05f88402,1 -0xc0a644aaaabbf5cddfcb76d15922e80edf83c9a0,1 -0xc0d314890fe43c3a32e11be9f785d774e6ce3eea,1 -0xc2e0ccf9f141e67cff6ba8fad0a0c57ce8afeaae,1 -0xc328753fe9cef8ec1715317e1f855976f4b5d44f,1 -0xc49af07cb3efe547d2122c25e5e3889c547e3adc,1 -0xc58a8136ac11a30ee1e15b2697f7e7a30d1da48e,1 -0xc6bbf4affb628b0263a910fc00c462d36fc65beb,1 -0xc6d7e36da92c52ed89219403224d63c73815d4be,1 -0xcc1baec96e501a15d2c3e5563164be17a20d7609,1 -0xcc48857242141cc7f4f8555f8a3d5bed03556c19,1 -0xce24756a9c6f2b496aeb39af0f9b41712c97b400,1 -0xce75646bc247cc21d9e35175376bc67c7abd740b,1 -0xcec0fe138495298f93049de621dc953fe612c79f,1 -0xcf115a27b579331558ddd9783656985dda59cc2e,1 -0xcf5cf9744781f6098782d1a642dda2499d41dffa,1 -0xcfd7250f7acb9ed01b618fa5adb8ec6fbe8d8f05,1 -0xd2b775f4368170bca47dc285e56e199d74acbf23,1 -0xd327d6a95774335adb7115dad4184bbbaaa0d652,1 -0xd485dc1b7ec75e0476c9c7491aa4bbecc25beb2f,1 -0xd4903eba74fadc3ce565e465b9b21e2df8085404,1 -0xd6cf3792dfafee23239d224e5fd563618bdb953d,1 -0xda035d4e5dfa3defa9cd5a57d5c2e41b1546a1d2,1 -0xdccbaf348b76336fd5cc122c706880ec4b12c9c0,1 -0xdd8b050c7d7a2706efd2e17efa76afeb9a66f2bf,1 -0xdead7c4a317c2c5b90ad3d3f4fbde992df5222b4,1 -0xe054a893b8c1e81fe23c0e718c13949096ce2131,1 -0xe094dfb6a4a400c4f9aece6f08e08539f2140d94,1 -0xe0f921cdf244b377d2ab2735f1e90e9d0a6620bd,1 -0xe1de31587d1c52199f804eaded4b59da50c51611,1 -0xe40f00b3f3c56a6e2f2cd7b92831f31be60a3fd2,1 -0xe478fce8854534c05e7c0ca1f071c05faf69f2c8,1 -0xe83b8d151209a57bf607238df479ff4e1ded8185,1 -0xe8803da8c00f497d25c7bba5c7b28f7bd16cf8ef,1 -0xeb6ea0ec7d14a2ba435be4fba9074af2b79b33a5,1 -0xebf87396267a4829b3a1a3edb400246a9be07723,1 -0xed23624fabe2c161141cbe1e0390e85d135f5a54,1 -0xed3374b8d159b7bf191ef5a814a97cfc508a9b39,1 -0xede8d6253416cabd6ef7b37278e1415e6f011617,1 -0xee2837862739bb329c5eadc11bac15c531d131a0,1 -0xefd23e9c05f7f19247b0cd48cb1b5dfc30e1dffd,1 -0xf1475ae2a971004f0566a083fbe8fc9349abf8d5,1 -0xf416224ac00d66754ceb11b383e663792c267878,1 -0xf53ed94f5fb975a5be7eb26a3fe6912057ff225a,1 -0xf692ef29330301cc47b9cf456ba76e13d434a0f5,1 -0xf6abefe7d218009d8e8ec9772943f639b88a1522,1 -0xf7fe3192370c12c08f41a3b2e013f853b64f68f2,1 -0xf896e426615e44a2610f4c3d5343b63b557e11e2,1 -0xfa35f69a6dd9ef80af40661743be519e30fbf406,1 -0xfaded1038e430c866ae93d6b61da8edd4b28f067,1 -0xfb7a882a4f7884a0950d1c57883108ddc23dada9,1 -0xfbf0468ae71f57b952b08d8cf9b6fc1850171509,1 -0xfbf1cb343627ad0071630a6683262fda5dd81e2e,1 -0xfc0b070c8cbc6802340646b781b4955b7e9b9e0a,1 -0xfc1a87be3a3f94f4e55b64bc0acc2af30b42c9d2,1 -0xfe1dceb35072a28af1704dae152764cf0649566e,1 diff --git a/eth/holders/secret_sesh.csv b/eth/holders/secret_sesh.csv deleted file mode 100644 index a9806fb..0000000 --- a/eth/holders/secret_sesh.csv +++ /dev/null @@ -1,528 +0,0 @@ -HolderAddress,TokenAmount -0xce22b873508558fa912171272ae7dd198e038e77,148 -0x243855a8b3a396fde6d0ab645bf398e70d109d42,41 -0x0000000000000000000000000000000000000000,31 -0x159bb93d223ed85282534d95fea583fd59a0979b,30 -0x5203b2d2d0e0297a838ffc733756425a91bc82d8,10 -0x62b2cd4f75857c300e7e504658630e367b500f64,10 -0x843933677d4d71c625b469b9bf67d052ec79be55,10 -0xb50b1db4f8d491f9166f7957afc084a0c6fbc62f,10 -0x00b268b7118a5f710c56f363d90c6789290be818,9 -0xc59523e69dc4ef360702fe9cab9ac7376b5a4cb2,9 -0x1c01e5af16d5803e276a7951203df74f81c661fb,8 -0xb5914c9fd4732f60f8716282c557093dc343f729,8 -0xb6b2e6494ba0de52929bcab1970138590e6758bc,8 -0xf3293644ee09ace4df9e65c8d38f863acf9c30eb,8 -0xf42ba70c865243d67baa0acec6b097c15c692aa9,8 -0x0f0d5658118fd011a3e639ccee595f3a6a843c52,7 -0x11859ec4451060063522530df5a6707daed176cc,7 -0x45a96134be70943cbf888969c460564bde85b4f8,7 -0xc09c47a38457df9e6ead76cc1ff4fb57ea3063b1,7 -0x18c39df51bfac337eeda798e806feeca01713cf6,6 -0x22dfaca0f13d668f3656d949ce27722166503d2d,6 -0x35472946a0c30c8928b88b95e327330ad85339c3,6 -0x5c1dec205c738028f2ed0d43a1b53626bdef427d,6 -0x7139c2b6f4faed0c19d45a23d637006e030c3165,6 -0x7c29a07dc64f30a9163b0dfc58746f0554546d8a,6 -0x98052e4fcdc71b8a1fe0e105ffe97afaa43542cd,6 -0x9b781c925ceae60008049b41382c84801057d282,6 -0xa988184be794aa8dd0719a190e96a2b20d0a624e,6 -0xbecd50849dd20c751f30d4ff28019d9eb1121d96,6 -0xd9f5e98ed118675670f9176774cccc3163b52749,6 -0x02df883a11c1123ab6f55e79bef11f9a2b67bb8f,5 -0x0c2382606735730fe3b697ef108af56c9dd1ce4d,5 -0x123bceef1e140ee4e973d63b0fe5e0527abab4c2,5 -0x1304fbb5f43010a3c439fa833612d921fd6fe89c,5 -0x228d12f2b7892c8b74dbe1093405100a963b4f40,5 -0x3a9f242aaba1086d350a1695cb789617cb1d1c88,5 -0x50862dacdbc999dc949cbea90590da8ebb7ef421,5 -0x5396f55cc2c057fb12febeabde142a4df28a7864,5 -0x6cfa6ce381cbea762a5a1c2e3aa16b8eaba4dbbb,5 -0x957f5ad27f22c58da12587005fb4a4d42b3217b8,5 -0x99c3c7e0b455d8bcb4c357cb17bf1b9c1f9692e7,5 -0xa350b83d0bc82d502e0a3b4b33f51bf7bfa08a8a,5 -0xa5bae4379d668517d6fbb14de06355faecf91ffa,5 -0xa6d5ca16e9f263b1a7151ca802a2fb442763d72e,5 -0xa76eb34fc5818e01d2f82f630ebb8dfa9c664553,5 -0xa876fbdc69ca5fe1ab933dc08c35156f9dd02cc2,5 -0xb493df7a62a9cf70a6572e1fe91b71e896e2c8af,5 -0xc10b6dddecf0703282511b3197a79f66d565d769,5 -0xe4fd4de76c36b403776815ff80078e6e9642923f,5 -0xe8b15f1e49e3580b21b886ded872bd6b76f6ba3e,5 -0xf5a8ac14c00ec8e14237005749a69154df743203,5 -0xfe06fac5a7744a164fea07df0a7df59714337254,5 -0x037535a02c9bebaf3e0b972e768a13d06ed52065,4 -0x20a4c86097179dd41ab5a3d0fb3df11daaf74e80,4 -0x24e2803334f53ca7d02dcae40159234cb481dd13,4 -0x2626332711cf430dfe24e18db3d581d61df05379,4 -0x28d65fbd57b8798c1e6fa92b49c0aa38e8737b1b,4 -0x49f266e9a25e7bbdcacf2c825b5de12a9fdb6edd,4 -0x5967c4f6cff3a4a7d4169f48e93e51d4bd844110,4 -0x5a5ec5ac89f560ff1541eb59484665ce232ad6e2,4 -0x6417a9c3e39a6727229022b1df30b804c94a1e71,4 -0x6e8fe8de45eb4afd85f56b8dd01e46f02f1073b3,4 -0x770e038c2c0e3559f94a626f596c6e742ed39458,4 -0x8799411dabbf0fde617d1096925ad4961e544acb,4 -0x896db4378a7ca22e893c85ae878743a379d91c3b,4 -0x8dab4f0a790d4ff11314b92a77b607caa3fb580e,4 -0x9060f6e9cffb1bf2bc6f9aa43ff8a3878c0a5165,4 -0x9113e5a6b4b4117e4fa7ce3b79d63b9849ccda35,4 -0x9747d75bcd61d6f937fd604068eb929e95759fd7,4 -0xa75225be32e43af401827f8c4a5eeb4c3990b96a,4 -0xa96cc556262cd670bb22029b711a5e21fc4d7761,4 -0xb91640f254962352444bcd833c9528ffaafe98e9,4 -0xd44f9db7c700aecc2b735ed2b2eb9463f8a494e4,4 -0xd4b49bf8759fb7d4c3f99b6bc3d32050cba57712,4 -0xd88d4f99adc42a57e5949c94fdd984f43811f344,4 -0xe5ca8f322f270fa8252fb62cb13df6f3793d762a,4 -0xe9a9f7ed56f20087365b9f8582c63c3c13b358a5,4 -0xeaefd973135852d695e5a683072a67cd5db32fdc,4 -0xeeaaecfccd57cba014173e2868fd1f360a357447,4 -0xef0b4b27f921a2891f88a7bd4805e9796d27864e,4 -0xf00492c2511e7592f2ed8c0ac9c66ac4cfcda62e,4 -0xf6e189fe67a3d0b960df5585eb8183c2bb1c27a6,4 -0x050d11f95256800d272cdc8d25e80390b4a39252,3 -0x054a4d52bbc3bc77c191ece7472e0d547d9d51f1,3 -0x0d0bc22d5ce254b920e2bf9bcd7a64f58a7b3a75,3 -0x1af958a96739b908cba31f4c4631d01b6b55d5f6,3 -0x217ad8598b47da344230d23dc2de4bb2a75134d2,3 -0x2631946cda85e9a9171d40fa818da5ad608c5967,3 -0x34ffe106f50ced4de74cf5c1012a1724c5fa21ba,3 -0x3a3590bdf3ab549067dfbac8eb63d955cc068954,3 -0x3e12a36dd2c0be409c36ae431f0eaaf357a56343,3 -0x40de1cc31ac82b95acb83b8beb36751532913ec3,3 -0x46e9e18abf0e2c8e4789fbb7cc8f2829fd63668a,3 -0x4a83905caa2185c5371bb3fdacff260d02aa3025,3 -0x4e5e947133c59a59a989f42bf693aed48634b899,3 -0x51427d3cb84129bd6d05ed16353b92df2a770aff,3 -0x551372fe0b7e2a6b7d635e8d1784b4c288b932bb,3 -0x55a4952bee6abdfe25df088d13aa2524a8c598c2,3 -0x5dc8c958b2dc0f4169a8b43b51fbc49ee74dd05a,3 -0x5f3f9c23da0ef66f6e0a7c7aa0ec2c2df0fb2be6,3 -0x61133f52b66f449dc8c3dd15161af0dc3914a90c,3 -0x62cc8d24c696430c331e2018ff94e76003272323,3 -0x63147e8c3888ef1a90dead78dbfdebe0d5236114,3 -0x6b3fa94ce1dd458f417e29bcd62f4149d8729114,3 -0x762140ccde6372e9ebf99da144e78331c3936931,3 -0x7913bf3cb9408318c7a09f527ed4756cb39581e4,3 -0x8905ee4bc06c5b6db46ca90ec9bab73b6201c0e4,3 -0x89b0c04fe8540fca5abce6c18f4654f6576d37da,3 -0x8bb7b936e3feca531138c4d181d7d65d59f1ec96,3 -0x8e05013615329523e46b6170ce90ab49371bd89a,3 -0x8f677f7642f32eba3e27ffcf1c2eb11f673ad4aa,3 -0x9ee389193fdd041183e4836ce5a3c4d4a129cb89,3 -0x9ee6a3b7cea00b70f328f71f9a21ed2c17829800,3 -0xa84e05735b123bca065d855e78a618af3ae4e257,3 -0xaccee174b0fa1d718039b808d367175d462ee214,3 -0xb23330f614fc97396b003b633f791be60818d40c,3 -0xb2da684c55263c40b2382b88dd6629d222c9a3cc,3 -0xb7b4b2482ab2b7e4555cf323584b3ce5ce2bea30,3 -0xbeaf5568a9f027b0b1d5ca265b48012b7a8ba706,3 -0xc8c7ec37429c91229cad7b68ca9d06b4411ca6b0,3 -0xcafa553000808be1a507d1d6a84e35f7aa905a12,3 -0xcb136543fd6ce5bb38e0aec4ca000d440802befa,3 -0xcdcad98553ec2a542f3d192c5beed93096111ad2,3 -0xd0bfa0a38859b682d163750e02d9daa1fe6e9561,3 -0xd5c1dd04e7f6d8ef8ef371e0a2f5f4dc8e1c960f,3 -0xd62da5f091dc62487cecc53b22c778dd60c24967,3 -0xdd0b7ddd251c70e0106e6217e516a50a6bd303f4,3 -0xde31150f0485651a77552479b464659d8c274d7b,3 -0xdf2788b6797f862b6bea2cb59faaa8e9f789ce81,3 -0xe1903659c4049c05429d8c1a1b8398566b1f31ca,3 -0xe382410739002d822fc707c77667bf9f928b2857,3 -0xeffb61a74238c5bdec0f5c2904960c3e2a679ab5,3 -0xf447cb8fe5260d852b74a12f1fd5a091e89dd954,3 -0xf692ff058f43922c1952d9596c0c2be2c428ef32,3 -0xfe792b83fe7eaf3babefd9afda09a53e71c73583,3 -0x0182ab7d73ee26a30fc333539553af6b4c36f473,2 -0x033df7a4dc7851fe9e5dd4f5a97a903a3eb08782,2 -0x038b558c274e791766c26bf171f35c019aa0f8c1,2 -0x08624cecdfea873b68cb2755b25331f989a3e974,2 -0x095089117ef2284dfad94478f55c2c37ed35d102,2 -0x0bbe11795e694a77c120aab68f629ec0fc6c1eb5,2 -0x0c98dc7aef0dfabecf3964e493169cd97306b091,2 -0x0d81cf154519412643254de1a9b60789e6c3f93c,2 -0x0ef4a381be94125dda837cbaf1aa772d913dbfea,2 -0x0ffa9730467580216f94daeab1454857c92e1c7a,2 -0x12b806d8c23bb83693461fa81c61e17378b46800,2 -0x166566cf3b4bc97fcea72c8ef4cb5227b5c10e5a,2 -0x1c0ce76fd1ae171d192bfb81de44ca8e22f1d576,2 -0x1c400f46bd88373c2212bbe1e1ca74c4ca8ae02a,2 -0x1e71213e4c6ddcff3531f9374ef09fbfe89bc5f3,2 -0x224e2782f7879f88b8c3173b026e97a51838a84e,2 -0x254103444dee8d554572b0c03bc58b11f7cf63b4,2 -0x29e96ea4a59749d0275218333708b0c3e6a6267e,2 -0x2bc9540395eae672516dd650a857b8362aec1f72,2 -0x2c2031e9db8913dc011e371b9625c2b785ecebc3,2 -0x2c3addc560af3f2f151df62ac455829060b4f712,2 -0x2d41013bad503171c13a5a949d6e3c50b7a73d15,2 -0x2fb551ee117fad8d949ae02d8b8c779a0fbd51dc,2 -0x31b3755208f110076c3f5fd51a8e95218ba9b8dd,2 -0x40d8ed133aeb661fa10f251c1ca2e8da086a43c7,2 -0x49cec98353cb3a4e348dbdda8eaa55c118b94319,2 -0x4c308c39c8075872fc4aff060f1035a36158d5c8,2 -0x4d6c69fedcdac84e0919cd312678f2fd8eaa222d,2 -0x4f95228e8be2f6053d9e0401a3991a7812be00bb,2 -0x5229ac6d55fe378e7d02fd7ce737cb079cd12440,2 -0x540b17c3104bf649f98295c2d1551f286e1a28f7,2 -0x540b7fad0abe6e75246fdf1fc2920b2c0040ba09,2 -0x54c5252f7878d09b562a2d0812275e78bb4a93f7,2 -0x5531b1372d67b0b2075529354ae0ada941abf744,2 -0x576c4df0bff4b0c8a136ae9bf013a4fdab890974,2 -0x5bd35b4fdbf09bc6f8c4f4331ac18520036882f7,2 -0x5e041c855f8318f5d99a23c1bdbebedcacd51747,2 -0x64af0b5d98a37a1cd4d442171b81e4ba2cf2be73,2 -0x65966effdfa35fbdfb6beb17fcf28378e8347a0e,2 -0x6b91790fab2e0db8ae298038dc28557e5450adf5,2 -0x6e4576e5426e33663e6362d42a115b2abbef657c,2 -0x6e4dfac03c560b4a5d3eb8ae0ddbac1d8acefcb5,2 -0x6ea26ea8c83eb050c21d6f97f86b3e1b6fa9544c,2 -0x71eb350ddf9b03fa80beb963a1e3d5119b0b2e2e,2 -0x7253245cd868242931adff6131a4e55e25f9cf70,2 -0x7296077c84dd5249b2e3ae7fc3d49c86abc38c03,2 -0x74f478d2a6183bec8350eed40539dba9e449567f,2 -0x7506d611c84e298feb5d514699e67ec9341d2e7a,2 -0x7874165b36a66bb3c557fd2ae533b3da256fb23b,2 -0x7e5dbeddb463722e49abb47afcf4ec8bd4c6eb9d,2 -0x814d60499bd401eca426c86ee9b4167967dff8dd,2 -0x8565a95c54fd30f1d3c1a8eece983b6bee279466,2 -0x86d67bedf3d62103a497593428ddf94ab4bd2d96,2 -0x894085bbfddbd1e5257ed33886bf1b3ba3cfb492,2 -0x8e83cf69687b219132bb702586d729d75ea43c35,2 -0x8fd2f72b86c15f6218141452f232b02e6e28ddee,2 -0x9056de63f2643a60f4bf4698204f69b560ad7869,2 -0x955db0b10bd04344b65f18272813cadced90d4b5,2 -0x9578adce3191d2d324ea508691e2fea881e1eabe,2 -0x979d52b62912cbfa6600db7237906d70b3b9e75f,2 -0x97c1beba611dd6f50413c471d2c663bbd7438b16,2 -0xa5155d13cb5335014a01e6ecc7f8674efd2cb345,2 -0xa51b5e36a158fd26dd08209d61d722e5aca78110,2 -0xa5d2ec38318c1f24906eb7a94d3df5cf0e66263d,2 -0xa5e8e74cdfef5780123c3152aa848c453e043b09,2 -0xa7dd4310102b71beb4a1928d7ce95360a291e46a,2 -0xa81092073d455e5f1b18cb9c1385b9ba841f87f0,2 -0xab43a2fcb6eba579d408ecdea5f5d81abe73c0f1,2 -0xac4517807eb2f6ee54844a0a031026efe6056083,2 -0xae5d196bff4740c6be6c9a90f8e8228e2b525f6e,2 -0xb03bb5756656d64f2a070877f29440a4e3a74344,2 -0xb3f4458134b9408a266138108e4598ff7e4293ff,2 -0xb46615747f9abfef0379ffe498e670252e6ee983,2 -0xb49b4a2d614a340818e43c4769a303eeccd040fc,2 -0xb55cefed339ffd7fd8801d6b4d87fc54128e67c6,2 -0xb5608624790d28fc1cfdca514cc7b1522855c43c,2 -0xb62849ab9f79a05c181057aa72ce8a9ce4ab16c0,2 -0xb9bd55eb41a48dd8b3141a09c4c6d829b581cfeb,2 -0xba0034e6a3ce5af7be8ce0fd171f200ce0995fbd,2 -0xba30b2f2517da4902227ee3fc058a9de3ab481f1,2 -0xbb6a0fbe1f1d4d7d3df73efa4dc2888f6dce1736,2 -0xbf19dc9e6f4b1fda13ca3e862b25da8afe2fcf58,2 -0xc0a6188d31dd003c94c516f6abedb786c7a01f83,2 -0xc4db4bc4d72d6120d324c335d56fc7a6822a9718,2 -0xc69742add40c9e3c03fac91eb3ddeedd7ce99bf4,2 -0xc7e13786d7a46583003a34ec948372fbd9bb172c,2 -0xcb5ca3aa4aec244fb4768e78e9ebe5e63126ec41,2 -0xcbe2ad8e3d13c6f374730030ce66f92b27f4d26c,2 -0xcc3692ff26a84063181e1dee17d4a9694ac771b6,2 -0xcc50d925486bd1a9e82a36afb22efa17aba2ca41,2 -0xcdc900263011f03a018fed4ae77ca1551c1a199e,2 -0xcef76d8b30ee2e99e6d43ff4e64d5bcec46ad492,2 -0xcfe7a9e2f7f62bbb0d522a041a8485213cee3351,2 -0xd36237884bda43be128f1e53e8e78db0c62aa11c,2 -0xd4b15f8cb5848de16e8c42ec2a7dbc33e2910874,2 -0xd4f1ace4299fe40566adf8813a46f48bb0383e37,2 -0xd8364701942f90ceead227621bb473231f1e1dc2,2 -0xd96cb1daa513cc27dc6273fa332b8d87ec56daed,2 -0xdb269b9ce6e725521740cf962b7a96484360d5e4,2 -0xdb6843e880828c34326894801b253cc8f4e68c34,2 -0xdbc5a2c5c88f79f7e134c2d33dc0e61d97ce73f3,2 -0xde2d67c54775b9cb0cf0dc08665e3f253a00638c,2 -0xe10b447c2b7d9dfd8a946a171217c9abfe411f15,2 -0xe4bdee211ac899c7b8b3087796d99372b0de4bd3,2 -0xea268972b219519a085a3673d02eba157559d49b,2 -0xebc96a35d36936df828f842756ecb491d9c8b7fc,2 -0xedd740f63b4b2c6fbf6fa4ab5e73bfab2981e27f,2 -0xeeada5b7250a55a9d0fedd4d753da65493801344,2 -0xf0180d603e266d8ea792d5ba4a36c552ac37fdbf,2 -0xf2604ee1ace111830175ce74f6472261ad103757,2 -0xf3b74db5d5a6da832d97bcce293cb9358acacd8f,2 -0xf526dd0c231f3339cb161c6a7b37caff81960a07,2 -0xf631eae9033f881a35091f221ac20ee0c6b05310,2 -0xf78553d6f40989079f75273ba147c13cf419e8b4,2 -0xfb9e4e5f995887cfd30f9c6052bcd39cc76b927e,2 -0xfdb8907a9989111aa0383d103adf1b4aae4a4ddb,2 -0xfdffa5b8848740f9210562d39f14132ee03ab017,2 -0x00014111988ee55dbcd8469b02e01cdd9d772849,1 -0x00424f585d92f32ecedc5d33d8291736bc8fb4e9,1 -0x00653d03b147a663390dd5c5b1a55dc9cc0bd2fd,1 -0x006a35cf498028c4cd81856f20caeea120094cc2,1 -0x00f5ae692d8934728c6d44211979e43e01da21c4,1 -0x0155704a00853ea14090b8e1a925372df92166b7,1 -0x0252bf2277ac005d83dea58a34932902356673e5,1 -0x02d3b4791c23a01a8d576593ef7af4a8e16cbcbe,1 -0x056151caf3f6d9d9f69e67cc0acd12de0aa45934,1 -0x05f013faae4229e5600d956bdcf1107b4be6a0f1,1 -0x088f32e92750f0321a81442b2894017750cdfd0b,1 -0x091b404756f3a6696e8fbd51f96e96dfb18d9abd,1 -0x0ae723ff26fb8c056740ed2027c32cce4991c776,1 -0x0b0d5b873ffb6339c76f8fc0efcb353163a593c8,1 -0x0b46108307c3430f903c7aeeaaa197fef4867259,1 -0x0dfe53e37b3cdb098d73e0f4016c12b7f678bebb,1 -0x0e177146858f6a380ff77cbea4c5dd1bbcec402f,1 -0x0e7045830f563fbc67dad4c30fa4e0171497363f,1 -0x0f28815d7aac89b02bab45148b77ee2dca1198a7,1 -0x0fcbe166e2e7e3b7987ba7ad63fa83461117d490,1 -0x0fffd0231516b69c68b0150ca99346efa5246686,1 -0x103ee0363c4a4c03597ebf1b72fd59c4ed7ddbe8,1 -0x105a12f5890021ff640f62de4cebc0f5d2af553c,1 -0x1371efc388d42c50df46966c6c9f612888d5c019,1 -0x141d219f158e2b5bf86cbcd5b6778153e299f053,1 -0x14621d75859d787b9672f9bbeba17aed9547dfef,1 -0x15548f3746dccd3873b6cf66a5cdd510478d24b4,1 -0x16e6f2b9d07b929f58355778887733677e765337,1 -0x18490531e1a3527316da47f5cd187d7c6ae46b50,1 -0x18b9bfa2d8b24ec2ca1a20d42395b2ca1190bcb0,1 -0x19132fe9fb28e923da6ed8fd26db13e8aa85874e,1 -0x1966046d55af0b089f7dfe37a9774b37307e74ae,1 -0x1a1d8a4da8d4c67e13c7ab22ea403ba747943cd4,1 -0x1accffe976fbe307e0d2b2961e1ef42bd15959f0,1 -0x1b04491c3027969e1153ed2e763956859fe55057,1 -0x1b850778ada35efe0217df026e0c2d0b493a62d1,1 -0x1ee3e37d73844c19210b3ea24481762d13ceef56,1 -0x22dec95f72f3d7bd8143ef23e7053f5d2e9b9bcf,1 -0x23a0896b92cdc7df51c125bdd0e3905128b2a0cb,1 -0x23dd01ec30a29e12c39b7b697f998c3af57a971c,1 -0x2404cc279910daea3b619acc374f76294142a309,1 -0x2507a82c8d0df99179e85f6caff95e4f2efa9e62,1 -0x254768d47cf8958a68242ce5aa1adb401e1fef2b,1 -0x26d2fd4636e81fc094fa49d165596ea82a69d560,1 -0x2701b92b31fb6e17c6e10568a096c5c3987c3ad6,1 -0x2909274430f875b7c65ac25d1e900816ec96e6d7,1 -0x2ab6f51f76a8bfaa260ffa7792e5b399ee0309b2,1 -0x2acfd0152bdbdd5aed36984d4897e08449a189d7,1 -0x2d01867ec76e026f629cd0b3fbf1d91b31d2048e,1 -0x2d54ee0d7c55d67d9cc31fa42304907da64d5876,1 -0x2d9cbc4ecfbd1b8f66aa798fd51585ae058daa8b,1 -0x2f3e361fbd5eab9e384946f562bef4afa5c22b1a,1 -0x311b0b40eedcf3fd99119a7e25688e15e41eba29,1 -0x338419bc85bb2fe07219cea73af9d70d8498aeee,1 -0x37dcf25b56c4d112eceda5f72595525620696918,1 -0x3a49fdeeabe2ef0d85b0eeaecaeaa883e1f5cd10,1 -0x3bad58514a98fcdba7ac0b010a0554e3d724f031,1 -0x3d6ca4b9d40237b581230154f33185e8531b0993,1 -0x3eefbc9943b2afb7c67842307380da523395bf46,1 -0x3f3e4d8a7f05331a1ccf79a7018ba6b75b6a27b9,1 -0x4183fb45c316ad244a85c20702305b6e6117d70e,1 -0x41b79f42a3b6fbca794a702d86e9a6b05a56994d,1 -0x42a5a3cccdfab70d792541551a737a9762d54d2b,1 -0x4419bc78f55fd6114303380c1f4f79e7d1be4f8c,1 -0x44b31cbab22415884bf063dbe6067d6766facae5,1 -0x44eca60441d3970d8d60ec3239e6d6fcb8b45a3c,1 -0x44fcd4610acc8cc1da18a491d401421662da5366,1 -0x45a89affe69d4f2599b85069f642d85f8fe1cf36,1 -0x4791311c1953d343c753f8ec830339c066667bba,1 -0x4865cb919a5e82539b4ae3ef14b344eaf2ffc405,1 -0x4b790db2046ab8ece77852ae6f62df2c9ae6559a,1 -0x4d32c8928dce876717232721c9bf3f6bc5e94862,1 -0x4d66df5af7b904b3e640e9049701311a0c760b79,1 -0x4ecf2d3a41f0fa23ea462b6fae68b940c453791b,1 -0x4ef9bbb67c428fe52fecf5fc307ccb1ca2950de2,1 -0x4f67d4909fbd3181f31931b434357fc22e379104,1 -0x5017750e3219fb94bec436ec31f835faef11282c,1 -0x520da439484591270433eedff25b4d08e22a65ac,1 -0x5249b285ff924cb0de2d6d75fe91cab7b2ef0483,1 -0x54c98d7c0fd45a2568dbb8db49aa7ac2fb1d560e,1 -0x561d6620be1724d5d37aa8d2659dcb3c3d2d51ab,1 -0x56f2205e445c999d83d8607e03e19cdb87f7462c,1 -0x57a415f5e64edad0a8f5a15c6f55fe8d6b24bac3,1 -0x595d92d4166d71380af13aa8d3b54cb3ac614e46,1 -0x5aac7854bd729c4ca5d1dcca8198725d4d6ccb4f,1 -0x5b8529482ebf5a946ed066252abfe979f8aa3099,1 -0x5b8f0bfd2b4932c330f3498bbc2e6f2b0967c4e8,1 -0x5baa316b2ea6fdc7f9caba6bd64cdfdf293b1e6d,1 -0x5dc8956c8224587d045920dc1c991e1909c058a3,1 -0x5e0e048a64fe1134b66351a8ec1f0fbeee7cb508,1 -0x5e1c5d5eca111cb51755dfa2f5dac980412255e1,1 -0x5e3bb9ffa698ae15672b03f38e8e562104b86755,1 -0x5f03622ec2aa940b0eba0f52149051d4a62e6c89,1 -0x5fa5c46496414150a0d64ee844ea3427317e145d,1 -0x6015db1d04ba5e1b9992613859fb4b4dfed49004,1 -0x62275df735f108139fa469203076c778c64087dd,1 -0x62b92927dabf97bed0f7849fbee1cd52e9615b8f,1 -0x63e276f101a2e21ef8f18709649ca53ce27cf5e9,1 -0x65dae20d53d51371f11fd80242219f0d6ba36bae,1 -0x66aaca1c63f77c14cb9859d10f8f38104cefeb31,1 -0x671a2de8cd372f9d0724d877b11468c496595e6b,1 -0x681ecfb30ca5f4126bb9e570415921c228670877,1 -0x68ce514dcf22e1c491c9ee453e2302a63dd84a21,1 -0x68f8dd242f2445fa4028d4e7efe1dc5587edc190,1 -0x690f3d531160201b6eb7d1b0a050cb687462e5bd,1 -0x6911b74fe899c5e6cfa9540c7aff7138a1eb64eb,1 -0x693041f1515e9326e09ee62b16a2f4bd9deaf6e2,1 -0x6a73c2753a3c6cc06e58b325f25735ad0c5d69be,1 -0x6a7a39fbb9bb2472ef2b093d3331b250eaa33b7e,1 -0x6b6f406a8aa7176bf5b16977723a423280479632,1 -0x6baf22c2b7de4535f9abbf69e2cb7db0522a507a,1 -0x6c9c7b7a8d79490e034330d8f8118a57eabb478a,1 -0x6e4ce46d2cc8e586fb960f5ddaac66bcb1c31161,1 -0x6eda108aa2fffeed209eb398530c9264140a6f36,1 -0x6f68a53b7a0cd9db8af82534c25bf633cfcca5f4,1 -0x706bebc90ab96bf5de1ed535267e8cb353e0448d,1 -0x7095d3ccf10fa52325006585226e4383268a8fab,1 -0x7103de0e84caa04ce31a286d0107c270bee08996,1 -0x710467e37833456fa33371622ff06e2478ea2bf5,1 -0x71bb5913d2ac0bccf0264dc7fe23a08683029c96,1 -0x737b4bad42aa643f25c5b0d94eb9e9dc1f47f5a6,1 -0x7500c970df7896a7f217e6b9bdac620918b3de6b,1 -0x77166deb1ecf389e0e1247f7fb5b01adf3d18be5,1 -0x7778dd8fc562bfb26cc4af01d6e4e956030e3bcc,1 -0x77a43a7694523bb2f070efe6312fe46d05e06081,1 -0x782f4294fa9268d1f33fcf80f2f15ec5d920a7f3,1 -0x78b4ffdce9cda381da6e7f16e27689adc24af4e5,1 -0x79f5a55d5132f36553f0a88a7eca43d39ee2bab4,1 -0x7aae5c8c8108ab2122635f50d2081cbe8d84789a,1 -0x7acc935cf41bcf6d6f3815169d7b01ed5fa3a208,1 -0x7ad002d8255ac69dd818fcaee91e8a534d8d30a8,1 -0x7af164fbf7d29bb2c4a01deea51de9b7e32de68d,1 -0x7b808866cb5c310cceaaada84388ff7ef9147efb,1 -0x7b9b36492f2c9d91ecc114a62287b83cbf4d19fd,1 -0x7d09d85e8b8cfe99ff8db0684c81e7dac47feaad,1 -0x7d1f985d3f3d6f2ff2f3387393a67b710aeb0d29,1 -0x7df87847efb66eab8a0f0f288414dbeaedad04a5,1 -0x7e89a97af7e2cef0b7e373a1fdcd7c2a8508f35a,1 -0x7fb2655c24058306ff89eb186bff1f98e0b33ded,1 -0x813540c8b574d89b4a0202cde3c104624275b6fc,1 -0x849393c5748023828c816c4f634d80cd63636803,1 -0x84b37f0107156493f508160b8f0f6c38ef475916,1 -0x8552b1df7a1304df261cba4a1873a07f6bf40f3a,1 -0x8691277ed948ce445a7cebccb34bafc6ba926ce7,1 -0x86972db13fb69aa3a5b281261490bfeb2f8a2fe9,1 -0x8982756d95d2b3f3305eb9d87f70715b779d4ae0,1 -0x89998ecbd4aeb30800b6ec2735bcb5648a3f6192,1 -0x89d475ed42a8c78a5afcdd61b4cccc2309e3c52f,1 -0x8c71884d603fcd326d85c2b45f2d724eb32f0e34,1 -0x8d406dca171947544479bdd677bba7b46e6aa194,1 -0x8d70286370469dfe409c5bda77dde2625cd6cd86,1 -0x8d95aa22a0efe1efcc155e8d1a6daa1eafc8d567,1 -0x8e2ade35caa2201cf37f685fa983b6a6e36ad1ba,1 -0x8e9f6684b8b9c10cfbc76d08df5b45cd2d2debce,1 -0x8eb8170d3aa9aa467395d8a7a897faf4d5dd0249,1 -0x8ecb220fa22b697963a0eb6989dd6412bcae102e,1 -0x8f3081f152055a51da9ebe47316d6ab559d6a77e,1 -0x8f6129943d5a3af5c4018e8eaca773dd51f31560,1 -0x90213ec41fa4d1c8326e8a67012f9ac880e6ad9a,1 -0x9078cb99e5ef075a4a5deced8fddb46876618c47,1 -0x914dcf1b5cc10a0e9224a587fa310e09483dcb7c,1 -0x9236ca04ae3e84ef4179872ba536df606a43bfc7,1 -0x9243fed0055c8aeaa31baf425c3e96c19de9cd43,1 -0x92ca65838d15a69c8eacb7861da0d141056877ee,1 -0x9684df40625b225e920738dc82219f0182a73876,1 -0x9a2d5340d1f4eb2bf952eec43bd9ec5788674fec,1 -0x9bc4d202afa5f209678bb51d381196555e526092,1 -0x9c92fe4f99ae041012d26673e8536731e88af828,1 -0x9d259c062db6c9c73c26235d72c168965c872ea6,1 -0x9d7b6e37797daca79cd072ae99c23410367c9a06,1 -0x9edf846fdb1074c08f3e092ac9091d9dc80bc5bd,1 -0xa0cd4faf8e4acfef6c19888afcb01f37065a6408,1 -0xa0fd75da39fc51f7090aa5f144b2f14319cf463b,1 -0xa1f4d04cf848cea3cb833816158c3dcbbadb5c6f,1 -0xa2313509d048c11e31dc0db617a9444755eb7238,1 -0xa2449b2a272587dbf2e552b89b2acdc6868e7c7d,1 -0xa24746c0117141af51a36ff32ac2dd289be36685,1 -0xa2a1ed1fae3f23aff58d612437e17b03b0e1855d,1 -0xa2a1eea4805a48b253f20a2c926b5edd4a41a46e,1 -0xa2bc6ad673862378a9cb17bb8eb9b6c0ab3ef821,1 -0xa3c15e969b9d51b59728056423864b5064a1d801,1 -0xa3c1f5b17adf24d8612ea4637c1a74fca0ff6f60,1 -0xa3c7c44130f2bb2292d1d88de0f7cc29769aa0dc,1 -0xa446197096117798ff3b667bd75a589288a6a7f0,1 -0xa7239b3403d7dcb25fc9786160656b7f7cbc73f4,1 -0xa78b15874af53dd681a615fa005d4fd41286e89e,1 -0xa90fd1de9151e5cf394c2e5528f0111d7cb30417,1 -0xa916fe8315da797d83027b011dc5f35fb8088d0f,1 -0xa9f4602b0276debfcc4f8c81d6d19a8e381a0510,1 -0xaafa93bb4db0a15afd1db11fd55e4e5c541b5f23,1 -0xab2467493eb4bf64af51d8b5921a983cad4351fe,1 -0xac9d8b42fde38f6718276837b8d2348d414e4a23,1 -0xad5d9b9e062555ef621fbed3c8bd86e618f2f0d3,1 -0xad83954e1584e7df91ef1e1a5f5661684e2dc751,1 -0xae1b2cf7c1b241fd77e741a2138493599b7895a5,1 -0xae7b39b96c8bc15156b1ffaa2708aa3fa93c2098,1 -0xaebc1e87b6b442263941723f93ff025c54b1ade5,1 -0xb14be4727d23c36ec10bfbaf4b07c683a987dada,1 -0xb2861cd1ecbc01b4cf239491f8b951ca652b53c0,1 -0xb2f3856b029b08ffbb03b07de7fa2394b5a0b334,1 -0xb39895fc81b5018d639ac200083755b764299637,1 -0xb693f6ac9a09dacbafad05ade7e0881e07165753,1 -0xb7d7c7fd51a3d421b533284a06c4b2e2c9ecd3a8,1 -0xb7d827dd04a6f9a1837cac93c8e26738eaa264cb,1 -0xb80e35239bb8bfcd424263323bd70b4dd5ded737,1 -0xb82df2b56417c6f7e7ef3e5c6e131e7768471727,1 -0xb8cd6aa5997560ad1077b1cd2e134b4bec30f3d1,1 -0xb96dbe0b0c2c2b58415f6244d16c6d3bc2d980f2,1 -0xbaed400fee4c55c94ff05b4b579c2bf97480f2b4,1 -0xbbb0822eee43698befd364ef59276e10690d6a16,1 -0xbc406d8cd5e9618c1b3a79a77a2fc465d6b56a59,1 -0xbc7340f831e8825bc3c813e81716ccc855806fe4,1 -0xbd857eacd1d0354b16fe57d711d5b8a40a467a85,1 -0xbddf7c1603043a8398bea0b79a60f55c582b8814,1 -0xbf2d54bf8b4db3e894d7acf6324372f9819c5923,1 -0xbf74875bc9f1af2ac963f004579cdfe433bb3698,1 -0xbf8531dd7a1d79330d5a373f3deb6cf23194fea0,1 -0xbfb5fcb34c96d71723e98bb5182b4e934a895113,1 -0xc30bbbc5095f0afb5496f613e018c4e1fd42a954,1 -0xc4436415e2fe276b809da2741606de50168be488,1 -0xc72088052e349e4bab0c2a8aa7fdb9ddcf887522,1 -0xc749828183c1278523497f1b933f85a2c95f2f0d,1 -0xc76350a971eb8281c4350313f5dffdabac2ab118,1 -0xc8d70cdeac2b46b88969c71b5be27adcb1cb3dca,1 -0xc8d98104b08697d9d422b82d4b6706c6b610d319,1 -0xc9c32e67102040b3529671d7aa36df909d2db951,1 -0xcc4e4e50bbc2d6035bbd0af2f0275ceaece14cf7,1 -0xd0b53741b51937608f0b254b93214868820700ab,1 -0xd0eb9e03b368f14ad86f94cef1540e16c8bffdbd,1 -0xd1a3ff511f36b1635a44136401e6ce758cf8c3e7,1 -0xd1aabd3f8b2c93594603339510dd5a5673dfbf89,1 -0xd78de39426bcfea2a4e8d8c0e8bcdc0126c00ce7,1 -0xda7cfaf9b6dcf9627688c3940f0fecc17ec489e2,1 -0xdafafa31a75793b6e5fdea5f0c0b5e3ed572a473,1 -0xdb1a1fa0ce207fac16b42372297d2d81f56f8b6c,1 -0xde056321f6706c9d17afcfa5341be22f6bb5e2e1,1 -0xe0f3b0355d9a3b293c3906a4209b1f382ef2964f,1 -0xe22a9d592fff6bfd0277cc54a674cd289efe3950,1 -0xe3e9f857b106158c9e57af3e8676cf462e4554d1,1 -0xe61739b53babc8a6025e1adf7bdefa9e8c802d26,1 -0xe80fca982a14655eac9836e191bef8ff615efd43,1 -0xe88ec898f8f16bfaf29f16b42c34647879efbbcd,1 -0xe989e71c077c5ba70baaef77a11548b3daeab1ea,1 -0xea71de9a658603c39df43c630d43e36b3be4bcca,1 -0xeaaad24e75c916c80b9d9907d8be707821143a8e,1 -0xead4e75883c3cdc2d364d37befe2143593d82a16,1 -0xebad404c9d6cf668bcc5486d338d1407c695f19d,1 -0xebee5438ca873a46b32071559f54e616671abf5b,1 -0xec5caeeebb2cbf44b45d5012ccba64cd86d2a689,1 -0xec66be8fd88703f2fb7163bfa07e8b8be799e18e,1 -0xed04acbf9df59b9db80851bfeea0da51bd6de997,1 -0xed6c9724ceba607162dbfe01c5d6f024cf5f1c94,1 -0xee5a344776ec4445c253102752487a0744d3028a,1 -0xee8cb6f8e3eb4e243e35b8c8626a690dd39aaf5a,1 -0xf050536e7cebbfb309101715f4fc626a1cc974df,1 -0xf199290b023c04da8153536720e171c087459f65,1 -0xf332fe88c77af992f247755d5a0bc7546645f002,1 -0xf3dc3d3eb5c30f7ad72dba8d7aadbade7b4743ea,1 -0xf4281f47fc8c524aa23abc94b4e10b0d7d46218b,1 -0xf4367ed4dbd13e5348b11436d3805ac8db20d9ce,1 -0xf4af0bf52f146a097222fbebd7e45b9a77308b00,1 -0xf501536f11b94abcf5070a4d0b61150cb09fa097,1 -0xf5b75e51c0dc8fe40bd6e61749475347a98817bf,1 -0xf5f44beb5d8db183c6b7b4abc60624ea3fd1f715,1 -0xf6b22039ded81c11439d009361538a3847a55cc3,1 -0xf727a2a98afd66f3d3afd56577b34e8a6ed6c33d,1 -0xf792a15b9777e4e3dfa92e57b7a86df7e9ce9635,1 -0xf87a096104080fe2918d742ad13892364b54e37a,1 -0xf885167d8058e0b4bc901cf91579675a076d8316,1 -0xf93962fe1c9c5085d429beb407a654edac210e56,1 -0xf9e13d8fc6c8f74449a9cee1088822b817526588,1 -0xfa07a73a72d22f7d03030fa9a7df8dfc5cdd64d7,1 -0xfb4d88881873048fac82600671b6177d6c316054,1 -0xfd56c861e8d0df6a72071833133d8dfd8a92fb36,1 -0xfe9fa575c62b2bc2c393622a4fc4c29f8018e633,1 diff --git a/eth/points/ccc_points.md b/eth/points/ccc_points.md deleted file mode 100644 index 5b4e36c..0000000 --- a/eth/points/ccc_points.md +++ /dev/null @@ -1,36 +0,0 @@ -# Crypto-Canna-Club Points -## Overview -| Total Possible Points | Percentile | Points | | -|-----------------------|-------------|--------|-------| -| 1 | 1st - 65th percentile | 2947 | -| 2 | 66th - 95th percentile | 2520 | -| 3 | 96th - 100th percentile | 564 | -| | | 6031 | Total | -## Breakdown -| Percentile | Owned Tokens | # of Addresses | | -|-----------------------|---------------|--------|-------| -| 1 | 1 | | - | -| 5 | 1 | - | | -| 10 | 1 | - | | -| 15 | 1 | - | | -| 20 | 1 | - | | -| 25 | 1 | - | | -| 30 | 1 | - | | -| 35 | 1 | - | | -| 40 | 1 | - | | -| 45 | 1 | - | | -| 50 | 1 | - | | -| 55 | 1 | - | | -| 60 | 1 | - | | -| 65 | 1 | 2947 | | -| 70 | 2 | - | | -| 75 | 2 | - | | -| 80 | 2 | 712 | | -| 85 | 3 | 262 | | -| 90 | 4 | 111 | | -| 95 | 6 | 175 | | -| 96 | 7 | 26 | | -| 97 | 9 | 35 | | -| 98 | 12 | 48 | | -| 99 | 18 | 38 | | -| 100 | 300 | 41 | | \ No newline at end of file diff --git a/eth/points/cht_points.md b/eth/points/cht_points.md deleted file mode 100644 index 845a6f7..0000000 --- a/eth/points/cht_points.md +++ /dev/null @@ -1,36 +0,0 @@ -# CHT points -## Summary -| Total Possible Points | Percentile | Points | | -|-----------------------|--------------|---------|-------| -| 3 | 14th-60th | 4717.48 | | -| 6 | 61st-85rd | 5565.86 | | -| 9 | 86th-100th | 4490.71 | | -| | | 14,774.05 | Total | -## Breakdown -| Percentile | Tokens | # of Addresses | | -|-----------------------|----------------|--------|-------| -| 1 | 0.0023 | | | -| 5 | 0.0657 | 73 | | -| 10 | 1.6901 | 73 | | -| 15 | 131.41 | 73 | | -| 20 | 1,426.71 | 73 | | -| 25 | 2,516.44 | 73 | | -| 30 | 3,620.80 | 72 | | -| 35 | 5,070.33 | 73 | | -| 40 | 7,295.82 | 73 | | -| 45 | 9,714.74 | 73 | | -| 50 | 12,753.02 | 73 | | -| 55 | 16,368.86 | 72 | | -| 60 | 21,301.95 | 73 | | -| 65 | 29,003.9 | 73 | | -| 70 | 40,260.82 | 72 | | -| 75 | 55,640.41 | 73 | | -| 80 | 77,548.05 | 72 | | -| 85 | 119,778.30 | 73 | | -| 90 | 225,223.96 | 73 | | -| 95 | 521,250.41 | 73 | | -| 96 | 645,024.43 | 13 | | -| 97 | 897,018.81 | 14 | | -| 98 | 1,140,873.88 | 14 | | -| 99 | 2,493,894.39 | 14 | | -| 100 | 52,230,931.14 | 18 | | \ No newline at end of file diff --git a/eth/points/galaktic-gang_points.md b/eth/points/galaktic-gang_points.md deleted file mode 100644 index f91cbbc..0000000 --- a/eth/points/galaktic-gang_points.md +++ /dev/null @@ -1,37 +0,0 @@ -# Glalaktic Gang - -## Overview -| Total Possible Points | Holder Info | Points | | -|-----------------------|--------------|--------|-------| -| 1 | 65th percentile | 1619 | | -| 2 | 90th percentile | 1450 | | -| 4 | 100th percentile | 464 | | -| | | 3533 | Total | -## Breakdown -| Percentile | Tokens | # of Addresses | | -|-----------------------|-------------|--------|-------| -| 1 | 1 | - | | -| 5 | 1 | - | | -| 10 | 1 | - | | -| 15 | 1 | - | | -| 20 | 1 | - | | -| 25 | 1 | - | | -| 30 | 1 | - | | -| 35 | 1 | - | | -| 40 | 1 | - | | -| 45 | 1 | - | | -| 50 | 1 | - | | -| 55 | 1 | - | | -| 60 | 1 | 1619 | | -| 65 | 2 | - | | -| 70 | 2 | 685 | | -| 75 | 2 | 319 | | -| 80 | 2 | 439 | | -| 85 | 3 | 202 | | -| 90 | 4 | 84 | | -| 95 | 6 | 26 | | -| 96 | 7 | 11 | | -| 97 | 9 | 22 | | -| 98 | 10 | 19 | | -| 99 | 15 | 13 | | -| 100 | 66 | 25 | \ No newline at end of file diff --git a/eth/points/glass-art-collections.md b/eth/points/glass-art-collections.md deleted file mode 100644 index 0e16197..0000000 --- a/eth/points/glass-art-collections.md +++ /dev/null @@ -1,7 +0,0 @@ -# Glass art collections planninghg -| Name | Link | # of Holders | | -|-----------------------|--------------|---------|-------| -| Shurlok Holms - Teddy Talk | [Link](https://discord.gg/tfJWbNDmQc)| - | -| Heady Glass Society | [Link](https://t.co/zGAdfZXjmR) | | | -| N8 Collections | [Link](https://nathanmiers.com/)| | | -| + More Here | | | | \ No newline at end of file diff --git a/eth/points/hlk-points.md b/eth/points/hlk-points.md deleted file mode 100644 index 9381692..0000000 --- a/eth/points/hlk-points.md +++ /dev/null @@ -1,37 +0,0 @@ -# Hippie Life Krew - -## Overview -| Total Possible Points | Holder Info | Points | | -|-----------------------|--------------|----------|-------| -| 2 | Up to 35th percentile | 256 | | -| 4 | 36th to 90th percentile | 724 | | -| 6 | 91st to 100th percentile| 99 | | -| | | 560 | Total | -## Breakdown -| Percentile | Points | # of Addresses | | -|-----------------------|--------------|--------|-------| -| 1 | 1 | - | | -| 5 | 1 | - | | -| 10 | 1 | - | | -| 15 | 1 | - | | -| 20 | 1 | - | | -| 25 | 1 | - | | -| 30 | 1 | - | | -| 35 | 1 | 128 | | -| 40 | 2 | - | | -| 45 | 2 | - | | -| 50 | 2 | - | | -| 55 | 3 | - | | -| 60 | 3 | - | | -| 65 | 3 | - | | -| 70 | 3 | - | | -| 75 | 4 | - | | -| 80 | 5 | - | | -| 85 | 6 | - | | -| 90 | 9 | 181 | | -| 95 | 10 | - | | -| 96 | 11 | - | | -| 97 | 14 | - | | -| 98 | 20 | - | | -| 99 | 22 | | | -| 100 | 116 | 3 | | \ No newline at end of file diff --git a/eth/points/monsterbuds_points.md b/eth/points/monsterbuds_points.md deleted file mode 100644 index 5bd6dab..0000000 --- a/eth/points/monsterbuds_points.md +++ /dev/null @@ -1,37 +0,0 @@ -# GEnesis Monsterbuds -## Overview -| Total Possible Points | Holder Info | Points | | -|-----------------------|--------------|--------|-------| -| 1 | 1 token | 1683 | | -| 2 | 2 to 7 tokens | 2786 | | -| 3 | 8-289 tokens | 891 | | -| | | 5360 | Total | -## Breakdown -## Breakdown -| Percentile | Tokens | # of Addresses | | -|-----------------------|--------------|--------|-------| -| 1 | 1 | - | | -| 5 | 1 | - | | -| 10 | 1 | - | | -| 15 | 1 | - | | -| 20 | 1 | - | | -| 25 | 1 | - | | -| 30 | 1 | - | | -| 35 | 1 | - | | -| 40 | 1 | - | | -| 45 | 1 | - | | -| 50 | 2 | - | | -| 55 | 2 | - | | -| 60 | 2 | - | | -| 65 | 2 | - | | -| 70 | 2 | 685 | | -| 75 | 3 | 319 | | -| 80 | 4 | 177 | | -| 85 | 5 | 92 | | -| 90 | 7 | 120 | | -| 95 | 13 | 137 | | -| 96 | 16 | 34 | | -| 97 | 21 | 29 | | -| 98 | 28 | 35 | | -| 99 | 33 | 31 | | -| 100 | 289 | 31 | \ No newline at end of file diff --git a/eth/points/n8-free-mint.md b/eth/points/n8-free-mint.md deleted file mode 100644 index 1469efb..0000000 --- a/eth/points/n8-free-mint.md +++ /dev/null @@ -1,37 +0,0 @@ -# N8 Free Mints - -## Overview -| Total Possible Points | Holder Info | Points | | -|-----------------------|--------------|----------|-------| -| 2 | 1st to 70th percentile | 460 | | -| 4 | 71st to 90th percentile | 324 | | -| 6 | 91st to 100th percentile| 30 | | -| - | - | 814 | Total | -## Breakdown -| Percentile | Points | # of Addresses | | -|-----------------------|--------------|--------|-------| -| 1 | 1 | - | | -| 5 | 1 | - | | -| 10 | 1 | - | | -| 15 | 1 | - | | -| 20 | 1 | - | | -| 25 | 1 | - | | -| 30 | 1 | - | | -| 35 | 1 | - | | -| 40 | 2 | - | | -| 45 | 2 | - | | -| 50 | 2 | - | | -| 55 | 3 | - | | -| 60 | 3 | - | | -| 65 | 3 | - | | -| 70 | 3 | 230 | | -| 75 | 4 | - | | -| 80 | 5 | - | | -| 85 | 6 | - | | -| 90 | 9 | 81 | | -| 95 | 10 | - | | -| 96 | 11 | - | | -| 97 | 14 | - | | -| 98 | 20 | - | | -| 99 | 22 | - | | -| 100 | 116 | 5 | | \ No newline at end of file diff --git a/eth/points/secret-sesh_points.md b/eth/points/secret-sesh_points.md deleted file mode 100644 index f75bc92..0000000 --- a/eth/points/secret-sesh_points.md +++ /dev/null @@ -1,36 +0,0 @@ -# Secret Sesh Points -## Overview -| Total Possible Points | Percentile | Points | | -|-----------------------|-------------|--------|-------| -| 3 | 50th percentile | 822 | | -| 6 | 90th percentile | 1182 | | -| 9 | 100th percentile | 147 | | -| | | 2151 | Total | -## Breakdown -| Percentile | Tokens | # of Addresses | | -|-----------------------|----------------|-------|-------| -| 1 | 1 | - | | -| 5 | 1 | - | | -| 10 | 1 | - | | -| 15 | 1 | - | | -| 20 | 1 | - | | -| 25 | 1 | - | | -| 30 | 1 | - | | -| 35 | 1 | - | | -| 40 | 1 | - | | -| 45 | 1 | - | | -| 50 | 1 | - | | -| 55 | 2 | 274 | | -| 60 | 2 | - | | -| 65 | 2 | - | | -| 70 | 2 | 116 | | -| 75 | 3 | - | | -| 80 | 3 | 52 | | -| 85 | 4 | - | | -| 90 | 4 | 29 | | -| 95 | 6 | - | | -| 96 | 6 | 32 | | -| 97 | 7 | 4 | | -| 98 | 8 | 5 | | -| 99 | 10 | 4 | | -| 100 | 148 | 4 | diff --git a/genesis/README.md b/genesis/README.md new file mode 100644 index 0000000..e13f0e6 --- /dev/null +++ b/genesis/README.md @@ -0,0 +1,31 @@ + +# Genesis Distribution + +The suggested genesis file for Terp Network included a mixture of [**ATOM delegators**](./genesis/gaia.csv), [**BCNA Holders**](./genesis/bcna_delegators.csv), [**TERP OG Participants**](./genesis/terp_og.md), [**Scavenger Hunt Participants**](./genesis/scavenger_hunt.csv), **Genesis Validators**, **TerpNet Foundation**, and **Protocol Treasury Tokens**. + +Each inital account with TERP (excluding Protocol Treasury & 1 Terp for each Genesis Validator) was vested until `1697803200` UNIX time (Oct 20th, 2023). + +## Overview + +| Project | Max Token in Percentile |Points| # of addrs | Total TERP | Token / Point | Tokens +|---------------------------|------|------------|----------------|---------------|-----| --- | +| ATOM | `56.290873` | `1` | `121,390` | `14,461,396.21327` | `119.131693` | `119.131693` | +| ATOM | `581.059663` | `2` | `34,320` | `8,177,199.40752` | `119.131693` | `238.263386` | +| ATOM |`11,695,142.809644`| `3` | `8,145` | `2,910,982.918455` | `119.131693` | `357.395079` | +| BCNA | `56.104789` | `3` | `360` | `2,084,727.2724` | `1930.303030`| `5790.90909` | +| ATOM(1) + BCNA(3)| - | `4` | `110` | `65,0104.48613` | `1477.51019575` | `5910.040783` | +| ATOM(2) + BCNA(3)| - | `5` | `33` | `6,029.172476` | `1205.8344952`| `6029.172476` | +| ATOM(3) + BCNA(3)| - | `6` | `9` | `55,334.737521` | `1024.7173615` | `6148.304169` | +| BCNA | `3,835.224107` | `6` | `483` | `5,594,018.18094` | `1930.303030` | `11581.81818` | +| ATOM(1) + BCNA(6)| - | `7` | `249` | `2,913,536.518377` | `1671.564267` | `11700.949873`| +| ATOM(2) + BCNA(6)| - | `8` | `174` | `2,056,694.192484` | `1477.510195`| `11820.081566`| +| ATOM(3) + BCNA(6)| - | `9` | `44` | `525,325.383396` | `1326.579251` | `11939.213259` | +| BCNA |`32,910,049.646754` | `9` | `376` | `6,532,145.45352` | `1930.303030` | `17372.72727` | +| ATOM(1) + BCNA(9)| - | `10` | `36` | `629,706.922668` | `1749.185896` | `17491.858963` | +| ATOM(2) + BCNA(9)| - | `11` | `33` | `581,162.691648` | `1600.999150`| `17610.990656` | +| ATOM(3) + BCNA(9)| - | `12` | `31` | `585,094.037517` | `1477.510195` | `17730.122349` | +| TERP OG & SCAVENGER HUNT | | `1 - 1.34` | `43`| ` ` | ` ` | ` ` | +| GENTX | - |`1`| `4`| `4`| `1` | ` ` | +| **TOTAL** | - | - | **`164,574`** *unique addrs* | `33,710,039.965536` | - | - | + +*Note that these are estimates curated from live data & current scripts available, there may be slight discrepencies still, always verify yourself!* \ No newline at end of file diff --git a/interchain/bcna_delegators.csv b/genesis/bcna_delegators.csv similarity index 99% rename from interchain/bcna_delegators.csv rename to genesis/bcna_delegators.csv index eea7c5a..77eea68 100644 --- a/interchain/bcna_delegators.csv +++ b/genesis/bcna_delegators.csv @@ -1,3 +1,4 @@ +address,balance, bcna1465kg4xaa5sl3vlm02zwe6y7jqltyncvcsygxr,32910049646754, bcna13zv80wzv0x9drchzldynjnp24j6fz760h3mf6y,5630004000000, bcna1zqs75sw8qzz9e6l83mfu9tyn067l5jcpqqn5h7,4685204000000, diff --git a/interchain/gaia.csv b/genesis/gaia.csv similarity index 99% rename from interchain/gaia.csv rename to genesis/gaia.csv index cafb023..349dc7b 100644 --- a/interchain/gaia.csv +++ b/genesis/gaia.csv @@ -1,4 +1,4 @@ -address,amount +address,balance, cosmos1ng20n6f42ja982y6plm6dhu7l2l0lmsf3k86vw,7982000 cosmos1gl78gluu5tczygk3ht6eg3p5zd2zsx8a6ye99s,8061246 cosmos1gz6e92uqdduequkkfl20kaywqq942sct0d8xuv,2824311 diff --git a/genesis/points-distribution.csv b/genesis/points-distribution.csv new file mode 100644 index 0000000..7e87b5e --- /dev/null +++ b/genesis/points-distribution.csv @@ -0,0 +1,16 @@ +Project,Points,Count +Gaia,1,121390 +Gaia,2,34320 +Gaia,3,8145 +BCNA,3,360 +BCNA,6,483 +BCNA,9,376 +Merged,4,110 +Merged,5,33 +Merged,6,9 +Merged,7,249 +Merged,8,174 +Merged,9,44 +Merged,10,36 +Merged,11,33 +Merged,12,31 diff --git a/genesis/scavenger_hunt.csv b/genesis/scavenger_hunt.csv new file mode 100644 index 0000000..16d76a0 --- /dev/null +++ b/genesis/scavenger_hunt.csv @@ -0,0 +1,26 @@ +Address,Points,Original Allocation +terp1zhweh0qv72twxf3s22dpg23w9f2vzelmcum3au,1,1672125000 +terp1y64wre98vqyfldmg626x0g34hll7ksdh3lgpum,1,2240647500 +terp1v5t7tma3ydh4de3pv8zcxh8e58krky5xh9v3sx,1,1672125000 +terp1syqau7gee27ml462flvjhxucer6zdy7pvw7a95,1,1672125000 +terp1skeqnjwmjpv50n5lak2kzj6ujz59gu4m6ashlr,1,3344250000 +terp1r0z2xj642rjmpxdp59gaf3x3rjtwsmx4svvt4w,1,3912772500 +terp1mzns2fp4urelqxyjxyjelef34j9eynu8ckg3v6,1,1672125000 +terp1keu4upjzy5t4wj422gdhuld0rjkm4c9y7dzqws,1,1672125000 +terp1h2qmh8wntzt5ve76zkq64j2l6gup98vv63rjc7,1,1672125000 +terp1ahjjfn3jhmfytaevfdcfn6c0rtkqejaauncz3t,1,3344250000 +terp1etx55kw7tkmnjqz0k0mups4ewxlr324tjlur54,1,3344250000 +terp1eff25w2su9zxhe9lzea65l9xyptv8saxr9x7ck,1,3912772500 +terp17wvqnrqvx7q5wrpm428vp758rcvkff2p8vlu7x,1,3344250000 +terp157l6m32mwjmu5ue8txulkccamyuwqlglx3y0pa,1,1672125000 +terp152v036x9h88sje6482spehqv5t6x3d2ne5q8a2,1,3344250000 +terp10kq6fdfvddlwf29pxpf4g6y8ds786283wcxhjr,1,3912772500 +terp1zufd7f4zp8wrd29lrd4akwx8tj8tw8qsp9yrz0,1,3912772500 +terp1hzjshhytzexhkatvh2rjru94738ukckyufl55g,1,1672125000 +terp1uc52al69sqxa76r5qea5yct9lwszng8zfnhnmc,1.34,3344250000 +terp1u9nx0mxq30h6dq99w6ptju09pz3m32jxn2l22c,1.34,4481295000 +terp1g80p4suzrz4vqsvs3za0yqhqcphlvnjy00kanl,1.34,4481295000 +terp1cjcndhjhxj5ru9f05gazzpr8lhz5fz7d8a6zw3,1.34,4481295000 +terp139x6xcc5hgtp3ql4uvq3s4trgwr9qqlt694hv9,1.34,4481295000 +terp126jdyc74p70ahzrf3wvaka7hmeke8g2n6m720s,1.34,2240647500 +terp1y64wre98vqyfldmg626x0g34hll7ksdh3lgpum,1.34,2240647500 \ No newline at end of file diff --git a/genesis/summary.json b/genesis/summary.json new file mode 100644 index 0000000..da21c92 --- /dev/null +++ b/genesis/summary.json @@ -0,0 +1,13 @@ +{ + "unique_address_count": 164574, + "distribution": { + "original": { + "totalAmount": "29584549.852289", + "percentage_of_supply": 7.04 + }, + "new": { + "totalAmount": "33710039.965536", + "percentage_of_supply": 8.02 + } + } +} \ No newline at end of file diff --git a/genesis/terp_og.csv b/genesis/terp_og.csv new file mode 100644 index 0000000..cff3084 --- /dev/null +++ b/genesis/terp_og.csv @@ -0,0 +1,33 @@ +Address,Points,Original Allocation +terp152v036x9h88sje6482spehqv5t6x3d2ne5q8a2,1,3344250000 +terp17wvqnrqvx7q5wrpm428vp758rcvkff2p8vlu7x,1,3344250000 +terp1uc52al69sqxa76r5qea5yct9lwszng8zfnhnmc,1,3344250000 +terp1ahjjfn3jhmfytaevfdcfn6c0rtkqejaauncz3t,1,3344250000 +terp1fxccvvhhy43tvet2ah7jqwq4cwl9k3dxmww052,1,1672125000 +terp1etx55kw7tkmnjqz0k0mups4ewxlr324tjlur54,1,3344250000 +terp1vlfkzyfe56um24jx9zp96t4v957wr4wtnm9p6t,1,1672125000 +terp1hdt66yvch9a8naxaz7xx7pgzkt0ghkvhlgs7s8,1,1672125000 +terp1cfsgggrn0zgkac7632d8v6xw65a5knjtln3s30,1,1672125000 +terp1g80p4suzrz4vqsvs3za0yqhqcphlvnjy00kanl,1.34,4481295000 +terp17fq4f7vs5lu5fm3f7fms9xdj29amnevz9xaqst,1.34,2240647500 +terp1huacpxux37sqdhgvruz7qj5wk88gh2hz6xya9g,1.34,2240647500 +terp169g8s6qxjl5j6ap8yrrh3qpu9p5nh5hvhyskjq,1.34,2240647500 +terp1u9nx0mxq30h6dq99w6ptju09pz3m32jxn2l22c,1.34,4481295000 +terp1fak8qed3zu86d8hlmkdsee9h2xtutawl3ylw0r,1.34,2240647500 +terp1y64wre98vqyfldmg626x0g34hll7ksdh3lgpum,1.34,2240647500 +terp1kymg8jgly66q2ry9nmjdw5kkc0l4dkf5yjetg5,1.34,2240647500 +terp10kq6fdfvddlwf29pxpf4g6y8ds786283wcxhjr,1.34,3912772500 +terp1eff25w2su9zxhe9lzea65l9xyptv8saxr9x7ck,1.34,3912772500 +terp1skeqnjwmjpv50n5lak2kzj6ujz59gu4m6ashlr,1.34,3344250000 +terp1r0z2xj642rjmpxdp59gaf3x3rjtwsmx4svvt4w,1.34,3912772500 +terp17cxqykcmedcfdfudn8rrdczxjx2vzh6jf03ejh,1.34,2240647500 +terp16795j3j4epyf7js6f8ht8scyy9c708xfhrmymm,1.34,2240647500 +terp1xvujnytmkv0380m2f39wukyr27f62e3vc5dqsx,1.34,2240647500 +terp1gqrg30uaf2s2m7tklp75n9w8g0gus7nn2jr9nz,1.34,2240647500 +terp139x6xcc5hgtp3ql4uvq3s4trgwr9qqlt694hv9,1.34,4481295000 +terp15p8v9yldc3f6r60z7046atyvvyh7njd8ngz7k3,1.34,2239647500 +terp1rwyn6w46u3067enhpdceqasg2um8dddtt5ursa,1.34,2239647500 +terp1rxdeh5dj09wnuma7j0qf3c8rl6rsk05sevrrdz,1.34,2240647500 +terp1un9ar4a0sqkcxwnxc43x3xq6yppc9d6n0hvsx5,1.34,2240647500 +terp1w6yzswlclrh5emqefd3tvhhvvctspysydex5f2,1.34,2240647500 +terp1cjcndhjhxj5ru9f05gazzpr8lhz5fz7d8a6zw3,1.34,4481295000 \ No newline at end of file diff --git a/genesis/total-points.csv b/genesis/total-points.csv new file mode 100644 index 0000000..67f4576 --- /dev/null +++ b/genesis/total-points.csv @@ -0,0 +1,3 @@ +Project,Total Points,Address Count,Tokens Per Point,Total Tokens +Gaia,215592,163855,119.13169319826339,25683840 +BCNA,4158,1219,1930.30303030303,8026199.999999999 diff --git a/headstash.yaml b/headstash.yaml new file mode 100644 index 0000000..b72ec85 --- /dev/null +++ b/headstash.yaml @@ -0,0 +1,382 @@ +projects: + - name: buddah-bears + csv: ../headstash/communities/buddah-bears/buddah-bears.csv + snapshot_date: 22-10-11 + chain_type: evm + category: headstash + allocation_percentage: 0.11351805970149254 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.01 + cutoffAmount: 37 + holders: 25 + twoPointsUpTo: + percentile: 0.07 + cutoffAmount: 9 + holders: 147 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 2281 + totalHolders: 2453 + normalization: + sqrtScaling: 7605710 + logScaling: 5471305 + - name: cannabuddies + csv: ../headstash/communities/cannabuddies/cannabuddies.csv + snapshot_date: 24-11-18 + chain_type: evm + category: headstash + allocation_percentage: 0.03535937313432836 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.02 + cutoffAmount: 5 + holders: 5 + twoPointsUpTo: + percentile: 0.13 + cutoffAmount: 3 + holders: 26 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 207 + totalHolders: 238 + normalization: + sqrtScaling: 2369078 + logScaling: 3838767 + - name: carta-beta-gang + csv: ../headstash/communities/carta-beta-gang/carta-beta-gang.csv + snapshot_date: 24-11-19 + chain_type: evm + category: headstash + allocation_percentage: 0.028718776119402985 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.01 + cutoffAmount: 3 + holders: 2 + twoPointsUpTo: + percentile: 0.11 + cutoffAmount: 2 + holders: 16 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 139 + totalHolders: 157 + normalization: + sqrtScaling: 1924158 + logScaling: 3548663 + - name: chronic-token + csv: ../headstash/communities/chronic-token/chronic-token.csv + snapshot_date: 22-10-11 + chain_type: evm + category: headstash + allocation_percentage: 0.08119662686567164 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.01 + cutoffAmount: 4370768.47 + holders: 13 + twoPointsUpTo: + percentile: 0.15 + cutoffAmount: 161391.1 + holders: 176 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 1066 + totalHolders: 1255 + normalization: + sqrtScaling: 5440174 + logScaling: 5001812 + - name: crypto-canna-club + csv: ../headstash/communities/crypto-canna-club/crypto-canna-club.csv + snapshot_date: 22-10-11 + chain_type: evm + category: headstash + allocation_percentage: 0.15212098507462687 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.02 + cutoffAmount: 12 + holders: 89 + twoPointsUpTo: + percentile: 0.16 + cutoffAmount: 3 + holders: 616 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 3700 + totalHolders: 4405 + normalization: + sqrtScaling: 10192106 + logScaling: 5881538 + - name: cryptowizards + csv: ../headstash/communities/cryptowizards/cryptowizards.csv + snapshot_date: 24-11-18 + chain_type: evm + category: headstash + allocation_percentage: 0.016997985074626867 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.03 + cutoffAmount: 10 + holders: 2 + twoPointsUpTo: + percentile: 0.16 + cutoffAmount: 3 + holders: 7 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 46 + totalHolders: 55 + normalization: + sqrtScaling: 1138865 + logScaling: 2821600 + - name: galacktic-gang + csv: ../headstash/communities/galacktic-gang/galacktic-gang.csv + snapshot_date: 22-10-11 + chain_type: evm + category: headstash + allocation_percentage: 0.1161485223880597 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.02 + cutoffAmount: 10 + holders: 52 + twoPointsUpTo: + percentile: 0.19 + cutoffAmount: 3 + holders: 436 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 2080 + totalHolders: 2568 + normalization: + sqrtScaling: 7781951 + logScaling: 5503407 + - name: heady-pipe-society + csv: ../headstash/communities/heady-pipe-society/heady-pipe-society.csv + snapshot_date: 24-11-18 + chain_type: evm + category: headstash + allocation_percentage: 0.010992089552238807 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.08 + cutoffAmount: 5 + holders: 2 + twoPointsUpTo: + percentile: 0.43 + cutoffAmount: 2 + holders: 8 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 13 + totalHolders: 23 + normalization: + sqrtScaling: 736470 + logScaling: 2227680 + - name: hippie-life-krew + csv: ../headstash/communities/hippie-life-krew/hippie-life-krew.csv + snapshot_date: 23-06-16 + chain_type: evm + category: headstash + allocation_percentage: 0.04238665671641791 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.09 + cutoffAmount: 10 + holders: 31 + twoPointsUpTo: + percentile: 0.29 + cutoffAmount: 4 + holders: 69 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 242 + totalHolders: 342 + normalization: + sqrtScaling: 2839906 + logScaling: 4092000 + - name: monster-buds + csv: ../headstash/communities/monster-buds/monster-buds.csv + snapshot_date: 22-10-11 + chain_type: evm + category: headstash + allocation_percentage: 0.13335076119402986 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.06 + cutoffAmount: 11 + holders: 204 + twoPointsUpTo: + percentile: 0.2 + cutoffAmount: 4 + holders: 474 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 2707 + totalHolders: 3385 + normalization: + sqrtScaling: 8934501 + logScaling: 5696964 + - name: rebud + csv: ../headstash/communities/rebud/rebud.csv + snapshot_date: 24-01-23 + chain_type: evm + category: headstash + allocation_percentage: 0.05543628358208955 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.12 + cutoffAmount: 11 + holders: 71 + twoPointsUpTo: + percentile: 0.32 + cutoffAmount: 9 + holders: 117 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 397 + totalHolders: 585 + normalization: + sqrtScaling: 3714231 + logScaling: 4467425 + - name: secret-sesh + csv: ../headstash/communities/secret-sesh/secret-sesh.csv + snapshot_date: 22-10-11 + chain_type: evm + category: headstash + allocation_percentage: 0.05261644776119403 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.05 + cutoffAmount: 6 + holders: 27 + twoPointsUpTo: + percentile: 0.48 + cutoffAmount: 1 + holders: 226 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 274 + totalHolders: 527 + normalization: + sqrtScaling: 3525302 + logScaling: 4394369 + - name: shurlok + csv: ../headstash/communities/shurlok/shurlok.csv + snapshot_date: 24-11-26 + chain_type: evm + category: headstash + allocation_percentage: 0.013166582089552238 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.03 + cutoffAmount: 89 + holders: 1 + twoPointsUpTo: + percentile: 0.3 + cutoffAmount: 2 + holders: 9 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 23 + totalHolders: 33 + normalization: + sqrtScaling: 882161 + logScaling: 2471828 + - name: special-k + csv: ../headstash/communities/special-k/special-k.csv + snapshot_date: 24-11-18 + chain_type: evm + category: headstash + allocation_percentage: 0.015545149253731343 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.02 + cutoffAmount: 15 + holders: 1 + twoPointsUpTo: + percentile: 0.23 + cutoffAmount: 2 + holders: 10 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 35 + totalHolders: 46 + normalization: + sqrtScaling: 1041525 + logScaling: 2698789 + - name: stoned-ape-club + csv: ../headstash/communities/stoned-ape-club/stoned-ape-club.csv + snapshot_date: 24-10-24 + chain_type: solana + category: headstash + allocation_percentage: 0.10400262686567165 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.06 + holders: 124 + twoPointsUpTo: + percentile: 0.32 + holders: 535 + onePointUpTo: + percentile: 1 + holders: 1400 + totalHolders: 2059 + normalization: + sqrtScaling: 6968176 + logScaling: 5348628 + - name: wake-and-bake + csv: ../headstash/communities/wake-and-bake/wake-and-bake.csv + snapshot_date: 24-11-18 + chain_type: evm + category: headstash + allocation_percentage: 0.028443074626865673 + tpp: 3664.20563303 + points: + threePointsUpTo: + percentile: 0.06 + cutoffAmount: 10 + holders: 10 + twoPointsUpTo: + percentile: 0.32 + cutoffAmount: 3 + holders: 40 + onePointUpTo: + percentile: 1 + cutoffAmount: 0 + holders: 104 + totalHolders: 154 + normalization: + sqrtScaling: 1905686 + logScaling: 3535226 diff --git a/interchain/scavenger_hunt.csv b/interchain/scavenger_hunt.csv deleted file mode 100644 index 1af3f9a..0000000 --- a/interchain/scavenger_hunt.csv +++ /dev/null @@ -1,26 +0,0 @@ -Address,Points -terp1zhweh0qv72twxf3s22dpg23w9f2vzelmcum3au,1 -terp1y64wre98vqyfldmg626x0g34hll7ksdh3lgpum,1 -terp1v5t7tma3ydh4de3pv8zcxh8e58krky5xh9v3sx,1 -terp1syqau7gee27ml462flvjhxucer6zdy7pvw7a95,1 -terp1skeqnjwmjpv50n5lak2kzj6ujz59gu4m6ashlr,1 -terp1r0z2xj642rjmpxdp59gaf3x3rjtwsmx4svvt4w,1 -terp1mzns2fp4urelqxyjxyjelef34j9eynu8ckg3v6,1 -terp1keu4upjzy5t4wj422gdhuld0rjkm4c9y7dzqws,1 -terp1h2qmh8wntzt5ve76zkq64j2l6gup98vv63rjc7,1 -terp1ahjjfn3jhmfytaevfdcfn6c0rtkqejaauncz3t,1 -terp1etx55kw7tkmnjqz0k0mups4ewxlr324tjlur54,1 -terp1eff25w2su9zxhe9lzea65l9xyptv8saxr9x7ck,1 -terp17wvqnrqvx7q5wrpm428vp758rcvkff2p8vlu7x,1 -terp157l6m32mwjmu5ue8txulkccamyuwqlglx3y0pa,1 -terp152v036x9h88sje6482spehqv5t6x3d2ne5q8a2,1 -terp10kq6fdfvddlwf29pxpf4g6y8ds786283wcxhjr,1 -terp1zufd7f4zp8wrd29lrd4akwx8tj8tw8qsp9yrz0,1 -terp1hzjshhytzexhkatvh2rjru94738ukckyufl55g,1 -terp1uc52al69sqxa76r5qea5yct9lwszng8zfnhnmc,1.34 -terp1u9nx0mxq30h6dq99w6ptju09pz3m32jxn2l22c,1.34 -terp1g80p4suzrz4vqsvs3za0yqhqcphlvnjy00kanl,1.34 -terp1cjcndhjhxj5ru9f05gazzpr8lhz5fz7d8a6zw3,1.34 -terp139x6xcc5hgtp3ql4uvq3s4trgwr9qqlt694hv9,1.34 -terp126jdyc74p70ahzrf3wvaka7hmeke8g2n6m720s,1.34 -terp1y64wre98vqyfldmg626x0g34hll7ksdh3lgpum,1.34 \ No newline at end of file diff --git a/interchain/terp_og.csv b/interchain/terp_og.csv deleted file mode 100644 index 0739d9c..0000000 --- a/interchain/terp_og.csv +++ /dev/null @@ -1,33 +0,0 @@ -Address,Points -terp152v036x9h88sje6482spehqv5t6x3d2ne5q8a2,1 -terp17wvqnrqvx7q5wrpm428vp758rcvkff2p8vlu7x,1 -terp1uc52al69sqxa76r5qea5yct9lwszng8zfnhnmc,1 -terp1ahjjfn3jhmfytaevfdcfn6c0rtkqejaauncz3t,1 -terp1fxccvvhhy43tvet2ah7jqwq4cwl9k3dxmww052,1 -terp1etx55kw7tkmnjqz0k0mups4ewxlr324tjlur54,1 -terp1vlfkzyfe56um24jx9zp96t4v957wr4wtnm9p6t ,1 -terp1hdt66yvch9a8naxaz7xx7pgzkt0ghkvhlgs7s8,1 -terp1cfsgggrn0zgkac7632d8v6xw65a5knjtln3s30,1 -terp1g80p4suzrz4vqsvs3za0yqhqcphlvnjy00kanl,1.34 -terp17fq4f7vs5lu5fm3f7fms9xdj29amnevz9xaqst,1.34 -terp1huacpxux37sqdhgvruz7qj5wk88gh2hz6xya9g ,1.34 -terp169g8s6qxjl5j6ap8yrrh3qpu9p5nh5hvhyskjq,1.34 -terp1u9nx0mxq30h6dq99w6ptju09pz3m32jxn2l22c ,1.34 -terp1fak8qed3zu86d8hlmkdsee9h2xtutawl3ylw0r,1.34 -terp1y64wre98vqyfldmg626x0g34hll7ksdh3lgpum ,1.34 -terp1kymg8jgly66q2ry9nmjdw5kkc0l4dkf5yjetg5,1.34 -terp10kq6fdfvddlwf29pxpf4g6y8ds786283wcxhjr,1.34 -terp1eff25w2su9zxhe9lzea65l9xyptv8saxr9x7ck,1.34 -terp1skeqnjwmjpv50n5lak2kzj6ujz59gu4m6ashlr,1.34 -terp1r0z2xj642rjmpxdp59gaf3x3rjtwsmx4svvt4w,1.34 -terp17cxqykcmedcfdfudn8rrdczxjx2vzh6jf03ejh ,1.34 -terp16795j3j4epyf7js6f8ht8scyy9c708xfhrmymm,1.34 -terp1xvujnytmkv0380m2f39wukyr27f62e3vc5dqsx,1.34 -terp1gqrg30uaf2s2m7tklp75n9w8g0gus7nn2jr9nz ,1.34 -terp139x6xcc5hgtp3ql4uvq3s4trgwr9qqlt694hv9 ,1.34 -terp15p8v9yldc3f6r60z7046atyvvyh7njd8ngz7k3,1.34 -terp1rwyn6w46u3067enhpdceqasg2um8dddtt5ursa,1.34 -terp1rxdeh5dj09wnuma7j0qf3c8rl6rsk05sevrrdz,1.34 -terp1un9ar4a0sqkcxwnxc43x3xq6yppc9d6n0hvsx5,1.34 -terp1w6yzswlclrh5emqefd3tvhhvvctspysydex5f2 ,1.34 -terp1cjcndhjhxj5ru9f05gazzpr8lhz5fz7d8a6zw3 ,1.34 \ No newline at end of file diff --git a/justfile b/justfile new file mode 100644 index 0000000..6e380fa --- /dev/null +++ b/justfile @@ -0,0 +1,34 @@ +#!/bin/bash + +fmt: + cargo fmt --all --check +schema: + sh scripts/sh/schema-and-codegen.sh +lint: + cargo clippy --fix --tests -- -D warnings +build: + docker run --rm -t -v "$(pwd)":/code \ + --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \ + --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ + cosmwasm/workspace-optimizer-arm64:0.17.0 +test: + cargo test --locked +headstash_generate: + cd scripts && node main.js -10 +# generates all genesis headstash data, using final output +genesis_sinsemilla: + cd scripts && node main.js -10 && cd ../zk-crates && cargo run --bin create_merkle -- data/genesis_sinsemilla.json +gen_my_notes: + cd zk-crates && cargo run --bin gen_headstash_notes -- ./data/genesis_sinsemilla.json 0x0000000000000000000000000000000000000000 +build-geth: + cd scripts/geth && docker buildx build --platform linux/amd64 -t discoverdefiteam/geth-rpc:0.0.1 --load . +# publish: +# #!/usr/bin/env bash +# crates=( + +# ) +# for crate in "${crates[@]}"; do +# cargo publish -p "$crate" +# echo "Sleeping before publishing the next crate..." +# sleep 30 +# done diff --git a/points/README.md b/points/README.md deleted file mode 100644 index 91e08bc..0000000 --- a/points/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Points -### [Cosmos Hub](./gaia_points.md) -### [Bitcanna Network](./bcna_points.md) -### [TestNET Scavenger Hunt](./scavenger-hunt.md) -### [TestNET Terp OG's](./terp-og.md) - -## The Goal & Approach -The goal was to find a solution to normalize a set of variables (project, token balance, wallet address) within datasets that were independent from each other. In order to do so, we used a percentile rank system. By plotting where a token holder existed within a percentile range, this was a way to normalize the point distribution between projects to try and keep things fair. - - diff --git a/points/bcna_points.md b/points/bcna_points.md deleted file mode 100644 index e96051d..0000000 --- a/points/bcna_points.md +++ /dev/null @@ -1,36 +0,0 @@ -# Bcna Points -## Summary -| Total Possible Points | Percentile | Points | | -|-----------------------|-------------|--------|-------| -| 3 | 25th | 1479 | | -| 6 | 75th | 2940 | | -| 9 | 100th | 9 | | -| | | 4428 | Total | -## Breakdown -| Percentile | Tokens | # of Addresses | | -|-----------------------|------------- |--------|-------| -| 1 | 1 | - | | -| 5 | 1,000,000 | - | | -| 10 | 3,000,000 | - | | -| 15 | 10,000,000 | - | | -| 20 | 25,000,000 | - | | -| 25 | 57,250,000 | 490 | | -| 30 | 100,470,000 | - | | -| 35 | 149,685,000 | - | | -| 40 | 260,020,000 | - | | -| 45 | 407,153,698 | - | | -| 50 | 590,340,000 | 493 | | -| 55 | 904,896,255 | | | -| 60 | 1,156,400,000 | - | | -| 65 | 1,610,733,668 | - | | -| 70 | 2,491,000,000 | - | | -| 75 | 3,940,066,947 | 490 | | -| 80 | 6,517,247,351 | 3 | | -| 85 | 10,875,700,000 | - | | -| 90 | 21,685,932,946 | - | | -| 95 | 100,323,484,794 | - | | -| 96 | 171,491,875,375 | - | | -| 97 | 266,525,244,402 | - | | -| 98 | 385,761,760,000 | - | | -| 99 | 763,940,719,836 | - | | -| 100 | 32,910,049,646,754 1 | | \ No newline at end of file diff --git a/points/gaia_points.md b/points/gaia_points.md deleted file mode 100644 index b51eae5..0000000 --- a/points/gaia_points.md +++ /dev/null @@ -1,37 +0,0 @@ -# Gaia Hub (Cosmos Network) -## Overview -| Total Possible Points | Percentile | Number of Delegates | | -|-----------------------|-------------|--------|-------| -| 1 | < 74th percentile | 115,202 | -| 2 | < 95th percentile | 41,143 | -| 3 | < 100th percentile | 8,229 | -| | | 164,574 | Total | - -## Breakdown -| Percentile | Tokens (uatom) | # of Addresses | | -|-----------------------|------------- |---------|-------| -| 1 | 1,022,940.85 | 1,646 | | -| 5 | 1,489,000.00 | 6586 | | -| 10 | 2,116,247.80 | 8500 | | -| 15 | 3,058,886.35 | 7954 | | -| 20 | 4,273,949.20 | 8229 | | -| 25 | 5,100,000.00 | 8462 | | -| 30 | 6,243,700.80 | 7995 | | -| 35 | 8,375,753.85 | 8229 | | -| 40 | 10,000,000.00 | 8451 | | -| 45 | 11,608,854.20 | 8007 | | -| 50 | 15,044,540.50 | 8229 | | -| 55 | 20,000,000.00 | 8795 | | -| 60 | 25,010,000.00 | 7996 | | -| 65 | 32,553,996.60 | 7894 | | -| 70 | 45,142,923.10 | 8229 | | -| 75 | 60,468,955.00 | 8228 | | -| 80 | 94,000,000.00 | 8236 | | -| 85 | 130,267,081.15 | 8222 | | -| 90 | 233,299,107.20 | 8228 | | -| 95 | 581,059,663.70 | 8229 | | -| 96 | 800,000,000.00 | 1649 | | -| 97 | 1,070,005,670.00 | 1642 | | -| 98 | 1,829,515,833.90 | 1646 | | -| 99 | 4,304,455,719.12 | 1646 | | -| 100 | 11,695,142,809,644 | 1 | \ No newline at end of file diff --git a/points/scavenger-hunt.md b/points/scavenger-hunt.md deleted file mode 100644 index e5ae2ad..0000000 --- a/points/scavenger-hunt.md +++ /dev/null @@ -1,37 +0,0 @@ -# TestNET Scavenger Hunt - -## Overview -| Total Possible Points | Percentile | Number of Delegates | | -|-----------------------|-------------|--------|-------| -| 1 | < 70th percentile | 18 | -| 1.34 | > 71st percentile | 14 | -| | Total | 32 | | - -## Breakdown -| Percentile | Participation Points | # of Addresses | | -|-----------------------|------------- |---------|-------| -| 1 | 1 | - | | -| 5 | 1 | - | | -| 10 | 1 | - | | -| 15 | 1 | - | | -| 20 | 1 | - | | -| 25 | 1 | - | | -| 30 | 1 | - | | -| 35 | 1 | - | | -| 40 | 1 | - | | -| 45 | 1 | - | | -| 50 | 1 | - | | -| 55 | 1 | - | | -| 60 | 1 | - | | -| 65 | 1 | - | | -| 70 | 1 | 18 | | -| 75 | 1.34 | - | | -| 80 | 1.34 | - | | -| 85 | 1.34 | - | | -| 90 | 1.34 | - | | -| 95 | 1.34 | - | | -| 96 | 1.34 | - | | -| 97 | 1.34 | - | | -| 98 | 1.34 | - | | -| 99 | 1.34 | - | | -| 100 | 1.34 | 7 | \ No newline at end of file diff --git a/points/terp-og.md b/points/terp-og.md deleted file mode 100644 index 749c685..0000000 --- a/points/terp-og.md +++ /dev/null @@ -1,37 +0,0 @@ -# Terp OG - -## Overview -| Total Possible Points | Percentile | Number of Delegates | | -|-----------------------|-------------|--------|-------| -| 1 | < 25th percentile | 9 | -| 1.34 | > 26th percentile | 23 | -| | Total | 32 | | - -## Breakdown -| Percentile | Participation Points | # of Addresses | | -|-----------------------|------------- |---------|-------| -| 1 | 1 | - | | -| 5 | 1 | - | | -| 10 | 1 | - | | -| 15 | 1 | - | | -| 20 | 1 | 9 | | -| 25 | 1.34 | - | | -| 30 | 1.34 | - | | -| 35 | 1.34 | - | | -| 40 | 1.34 | - | | -| 45 | 1.34 | - | | -| 50 | 1.34 | - | | -| 55 | 1.34 | - | | -| 60 | 1.34 | - | | -| 65 | 1.34 | - | | -| 70 | 1.34 | - | | -| 75 | 1.34 | - | | -| 80 | 1.34 | - | | -| 85 | 1.34 | - | | -| 90 | 1.34 | - | | -| 95 | 1.34 | - | | -| 96 | 1.34 | - | | -| 97 | 1.34 | - | | -| 98 | 1.34 | - | | -| 99 | 1.34 | - | | -| 100 | 1.34 | 23 | \ No newline at end of file diff --git a/proto/Cargo.toml b/proto/Cargo.toml new file mode 100644 index 0000000..981c352 --- /dev/null +++ b/proto/Cargo.toml @@ -0,0 +1,21 @@ +[package] +authors = [ + "ERGORS Agent Team", + "Generated from ergors and ho-std packages", +] +edition = "2021" +name = "ergors-proto" +description = "Protocol buffer definitions for Ergors storage and orchestration layers" +version = { workspace = true } +publish = false + + +[dependencies] +anyhow = "1.0" +prost-build = "0.14.1" +tonic-prost-build = { version = "0.14.1" } +pbjson-build = "0.9.0" + +[lib] +name = "ergors_proto" +path = "src/lib.rs" \ No newline at end of file diff --git a/proto/buf.gen.yaml b/proto/buf.gen.yaml new file mode 100644 index 0000000..f42fca5 --- /dev/null +++ b/proto/buf.gen.yaml @@ -0,0 +1,9 @@ +version: v1 +plugins: + - plugin: buf.build/community/neoeinstein-prost:v0.4.0 + out: src + opt: + - extern_path=.google.protobuf.Timestamp=crate::shim::Timestamp + - extern_path=.google.protobuf.Duration=crate::shim::Duration + - extern_path=.google.protobuf.Any=crate::shim::Any + - extern_path=.google.protobuf.Value=prost_types::Value \ No newline at end of file diff --git a/proto/buf.lock b/proto/buf.lock new file mode 100644 index 0000000..a29f6d3 --- /dev/null +++ b/proto/buf.lock @@ -0,0 +1,21 @@ +# Generated by buf. DO NOT EDIT. +version: v2 +deps: + - name: buf.build/cosmos/cosmos-proto + commit: 1935555c206d4afb9e94615dfd0fad31 + digest: b5:0a29584117fe6433fa593d03fbda6b3964ddc59b986cd2277833ee01d4ac215a14b0286241462cd0dee6b460a108823dff5c7c42c9c1f4f7df861fcfa4bbebdf + - name: buf.build/cosmos/cosmos-sdk + commit: e7a85cef453e4b999ad9aff8714ae05f + digest: b5:78173376f272d38369c9e503118643f068b44a4f48c268a4a4e7af5a35807364ba52397ff5ed72e1ce18042df0d7cd757e7f862d429ccb844bd8bd7f8d0ab72b + - name: buf.build/cosmos/gogo-proto + commit: 34d970b699f84aa382f3c29773a60836 + digest: b5:15d77a039fd9ab81ffb28ce9601eeb687840474dd11cf645341d50c1bba7f70b01acdf0e9781d09d42d0e4bcb720eac96451827b6cf24146e2a6b2bb3d65a96c + - name: buf.build/cosmos/ibc + commit: 7ab44ae956a0488ea04e04511efa5f70 + digest: b5:17407a9bf53b990c5d362bc9bd357931aeb8516c1393b1de79823e09bcecc3c8217e0546d5be897599da6a60499bdda1bcf950eca6c4bad4209b98c937e725f1 + - name: buf.build/cosmos/ics23 + commit: 55085f7c710a45f58fa09947208eb70b + digest: b5:ab3cb4080c6974b1dd378d3e5602ae86ab7396dff1f4f25c5298c9827519ef0329e4be0e4f5f2d8cf61b1925f0c627cdfcf64955414c453036be05cab56994f0 + - name: buf.build/googleapis/googleapis + commit: 75b4300737fb4efca0831636be94e517 + digest: b5:d227a018d00bd477f62a1b3f394c87c142f7429b8bf046f7d5e6a1bb3d0e5293a96491d50825983683c295f038cdace614d258a083baa5f766985c9e618c5d2a diff --git a/proto/buf.yaml b/proto/buf.yaml new file mode 100644 index 0000000..c5d03cf --- /dev/null +++ b/proto/buf.yaml @@ -0,0 +1,26 @@ +# buf.yaml +version: v1 +roots: + - proto +name: buf.build/terpnetwork/zk-headstash +deps: + - buf.build/googleapis/googleapis + - buf.build/cosmos/gogo-proto + - buf.build/cosmos/ibc:7ab44ae956a0488ea04e04511efa5f70 +breaking: + use: + - FILE + except: + - EXTENSION_NO_DELETE + - FIELD_SAME_DEFAULT +lint: + use: + - DEFAULT + - COMMENTS + - FILE_LOWER_SNAKE_CASE + except: + - UNARY_RPC + - COMMENT_FIELD + - SERVICE_SUFFIX + - PACKAGE_VERSION_SUFFIX + - RPC_REQUEST_STANDARD_NAME \ No newline at end of file diff --git a/proto/headstash/actions/v1/actions.proto b/proto/headstash/actions/v1/actions.proto new file mode 100644 index 0000000..663d4a9 --- /dev/null +++ b/proto/headstash/actions/v1/actions.proto @@ -0,0 +1,111 @@ +syntax = "proto3"; + +package headstash.actions.v1; + +import "google/protobuf/struct.proto"; + +// Create a distribution headstash tree for a given distribution param +message MsgCreateHeadstashTree {} +// Create a Headstash instance +message MsgCreateHeadstash { + // HeadstashInstanceParams bytes + bytes params = 1; +} + +// response of creating the tree +message MsgCreateHeadstashTreeResponse { + // genesis tree root + string root = 1; + // total leafs in genesis tree + uint64 total_leafs = 2; + // total eligible members + uint64 total_elig = 3; + // total byte size of genesis tree param file + uint64 total_size = 4; +} + +service HeadstashService { + // client access to storage layer dedicated for headstash keys + rpc ManageHeadstashKeyFromStorage(MsgManageHeadstashKeyFromStorage) returns (MsgManageHeadstashKeyFromStorageResponse); + // retrieve token holder distribution + rpc CreateHeadstashNotes(MsgCreateHeadstashNotes) returns (MsgCreateHeadstashNoteResponse); + // Creates a new headstash instance + rpc CreateNewHeadstash(MsgCreateHeadstash) returns (MsgCreateHeadstashResponse); + // creates a note nullifier given private inputs + rpc PrepareNoteNullifier(MsgPrepareNoteNullifier) returns (MsgPrepareNoteNullifierResponse); + // generate headstash instance tree + rpc CreateHeadstashTree(MsgCreateHeadstashTree) returns (MsgCreateHeadstashTreeResponse); + // determine piecewise distribution + // prepare headstash config +} + +service HeadstashActionsService { + // find new headstash + // list headstash info + // perform headstash action +} + +// request for client to access a circuit verifying key from its storage layer +message MsgManageHeadstashKeyFromStorage { +// technique + oneof tech { + // sets key, or removes key via id if empty. + // keys are mapped as values to prefixes of blake3 hashes of the hex encoded binary + SetHeadstashKey set_headstash_pk = 1; + // retrieves key via prefix (blake3 hash of pk) + GetHeadstashKey get_headstash_pk = 2; + }; +} + +// set a headstash instance ProvingKey bytes +message SetHeadstashKey { + // headstash instance ProvingKey bytes + bytes data = 1; +}; + +// get a headstash instance ProvingKey bytes given its storage key +message GetHeadstashKey { + // store key for headstash circuit + string key = 1; +}; + + +// response for client to access a circuit verifying key from its storage layer +message MsgManageHeadstashKeyFromStorageResponse { + // store key for headstash circuit + string key = 1; +} + + +// Create a note nullifier for a given note input +message MsgPrepareNoteNullifier { + // note-denom + string nd = 1; + // value + uint64 v = 2; + // fixed-denom-index + uint64 fdi = 3; + // recipient + string recp = 4; + // epk + bytes epk = 5; + // epk + bytes esk = 6; + // headstash sinsemilla root + bytes sinroot = 7; +} + +// Return the resonse for a spefici note input +message MsgPrepareNoteNullifierResponse { + // all instance values required for proof creation + repeated bytes instances = 1; +} + +// All relevant information created during successful headstash creation +message MsgCreateHeadstashResponse {} + +// Create a list of the notes for a given address and headstash instance +message MsgCreateHeadstashNotes {} + +// output of note instance location +message MsgCreateHeadstashNoteResponse {} diff --git a/proto/headstash/extendo/v1/extendo.proto b/proto/headstash/extendo/v1/extendo.proto new file mode 100644 index 0000000..3f28f56 --- /dev/null +++ b/proto/headstash/extendo/v1/extendo.proto @@ -0,0 +1,9 @@ + +syntax = "proto3"; +package headstash.extendo.v1; + +// HeadstashVoteExtensions defines the vote extension structure for nullifiers. +message VoteExtension { + // Headstashes defines a map of id(HeadstashAddr) -> new nullifiers . i.e. 1 -> vec![0x123..] (bytes). + map headstashes = 1; +} diff --git a/proto/headstash/snp/v1/snp.proto b/proto/headstash/snp/v1/snp.proto new file mode 100644 index 0000000..b890a08 --- /dev/null +++ b/proto/headstash/snp/v1/snp.proto @@ -0,0 +1,61 @@ +syntax = "proto3"; + +package headstash.snp.v1; + +import "google/protobuf/struct.proto"; + +// serialized note data +message SerializedNoteData { + /// [nk,nul,nc,v,nd,fdi,recp,spent(bool)] + repeated bytes set = 1; +} + +// claim a headstash note and broadcast claim +message MsgClaimHeadstashRequest { + // proof bytes + bytes proof = 1; + // instances: [nk,nul,nc,v,nd,fdi,recp,spent(bool)] + repeated bytes instance = 2; + // headstash contract address + string hid = 3; +} + + +// response of claiming a headhstash note +message MsgClaimHeadstashResponse {} + +service HeadstashSnapService { + // claim a headstash + rpc ClaimHeadstash(MsgClaimHeadstashRequest) returns (MsgClaimHeadstashResponse); + // find new headstash + // list headstash info + // perform headstash action +} + +// A transaction that appeared within a given block. +message DownloadNullifierStateResponse { + // data + bytes data = 1; +} +// A transaction that appeared within a given block. +message DownloadNullifierStateRequest { + // id + string id = 1; + // id + bytes pk = 2; +} +// A transaction that appeared within a given block. +message UploadNullifierStateRequest { + // id of claim + string id = 1; + // data + bytes data = 2; + // sig + bytes sig = 3; + +} +// A transaction that appeared within a given block. +message UploadNullifierStateResponse { + +} + diff --git a/proto/headstash/types/v1/types.proto b/proto/headstash/types/v1/types.proto new file mode 100644 index 0000000..b9b3c64 --- /dev/null +++ b/proto/headstash/types/v1/types.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; + +package headstash.types.v1; + +import "google/protobuf/struct.proto"; + +// HeadstashNote +message HeadstashNote { + // psi + string psi = 1; + // epk + bytes epk = 2; + // esk + optional bytes esk = 3; + // nul_sk + bytes nul_sk = 4; + // nd + bytes nd = 5; + // fdi + uint64 fdi = 6; + // v + uint64 v = 7; + // recp + bytes recp = 8; + // m + bytes m = 9; + // null + bytes nul = 10; + // cm + bytes cm = 11; +} \ No newline at end of file diff --git a/proto/src/lib.rs b/proto/src/lib.rs new file mode 100644 index 0000000..e69de29 diff --git a/proto/src/main.rs b/proto/src/main.rs new file mode 100644 index 0000000..cbdee5c --- /dev/null +++ b/proto/src/main.rs @@ -0,0 +1,68 @@ +//! Build ERGORS proto files. This build script uses the local proto files +//! in the ergors/ directory to build the required proto types for the ERGORS system. +//! This is adapted from the proto-compiler code in github.com/informalsystems/ibc-rs + +use std::path::PathBuf; + +const SERDE_JSON: &str = "#[derive(serde::Serialize, serde::Deserialize)]"; +fn main() -> anyhow::Result<()> { + let root = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + println!("root: {}", root.display()); + + let target_dir = root.join("../").join("zk-crates/zk-headstash/src").join("gen"); + + println!("target_dir: {}", target_dir.display()); + + // prost_build::Config isn't Clone, so we need to make two. + let mut config = prost_build::Config::new(); + + // As recommended in pbjson_types docs. + config.extern_path(".google.protobuf", "::pbjson_types"); + // NOTE: we need this because the rust module that defines the IBC types is external, and not + // part of this crate. + // See https://docs.rs/prost-build/0.5.0/prost_build/struct.Config.html#method.extern_path + config.extern_path(".ibc", "::ibc_proto::ibc"); + + config.extern_path(".ics23", "::ics23"); + config.extern_path(".cosmos.ics23", "::ics23"); + + config.compile_well_known_types(); + config.type_attribute(".", SERDE_JSON); + + config + .out_dir(&target_dir) + // .file_descriptor_set_path(&target_dir.join(descriptor_file_name)) + .enable_type_names(); + + let rpc_doc_attr = r#"#[cfg(feature = "rpc")]"#; + + tonic_prost_build::configure() + .out_dir(&target_dir) + .emit_rerun_if_changed(false) + // Only in Tonic 0.10 + //.generate_default_stubs(true) + // We need to feature-gate the RPCs. + .server_mod_attribute(".", rpc_doc_attr) + .client_mod_attribute(".", rpc_doc_attr) + .compile_with_config( + config, + &[ + "./headstash/extendo/v1/extendo.proto", + "./headstash/snp/v1/snp.proto", + "./headstash/actions/v1/actions.proto", + "./headstash/types/v1/types.proto", + ], + &[], + )?; + + // Finally, build pbjson Serialize, Deserialize impls: + // let descriptor_set = std::fs::read(target_dir.join(descriptor_file_name))?; + + pbjson_build::Builder::new() + // .register_descriptors(&descriptor_set)? + .ignore_unknown_fields() + .out_dir(&target_dir) + .build(&["."])?; + + Ok(()) +} diff --git a/pub-crates/charcute/README.md b/pub-crates/charcute/README.md new file mode 100644 index 0000000..b7b3e1f --- /dev/null +++ b/pub-crates/charcute/README.md @@ -0,0 +1,16 @@ +# Charcute + + +Public Suite for verifying and generating verifiable instances of headstashes. + +## Functions + +### Verifying Headstash Certificate + +1. verify smart-contract code +1. verify wavs set +2. verify headstash ipfs params +3. verify token minting params +4. verify governance params + +### Generate Headstash Certificate diff --git a/pub-crates/randomness/Cargo.toml b/pub-crates/randomness/Cargo.toml new file mode 100644 index 0000000..31a78a0 --- /dev/null +++ b/pub-crates/randomness/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "headstash-randomness" +version = "0.1.0" +edition = "2021" + +[lib] +path = "src/lib.rs" + +[dependencies] +blake3 = "1.8.2" +rand = "0.8" +# rand_chacha = "0.9.0" +# winit = "0.30.12" \ No newline at end of file diff --git a/pub-crates/randomness/src/lib.rs b/pub-crates/randomness/src/lib.rs new file mode 100644 index 0000000..62ecffe --- /dev/null +++ b/pub-crates/randomness/src/lib.rs @@ -0,0 +1,236 @@ +use std::time::{Duration, SystemTime, UNIX_EPOCH}; + +use rand::rngs::OsRng; +use rand::{RngCore, SeedableRng}; +// use winit::event_loop::{ControlFlow, EventLoop}; +// use rand_chacha::ChaCha20Rng; + +// Combine OS entropy with a CSPRNG + +pub fn ultra_secure_random() -> [u8; 32] { + let mut hasher = blake3::Hasher::new(); + let mut os_rng = OsRng; + // let mut chacha = ChaCha20Rng::fr(); + + // Mix multiple entropy sources + hasher.update(&get_os_random()); // OS entropy + hasher.update(&get_rdrand()); // CPU hardware RNG + hasher.update(&get_timing_jitter()); // Timing variations + // hasher.update(&get_user_input()); // Mouse/keyboard timing + + // bls381 ring via chacha + + hasher.finalize().into() +} + +fn get_os_random() -> [u8; 32] { + let mut buf = [0u8; 32]; + OsRng.fill_bytes(&mut buf); + buf +} + +// impl with actual RDRAND if available +fn get_rdrand() -> [u8; 32] { + let mut buf = [0u8; 32]; + buf +} + +fn get_timing_jitter() -> [u8; 32] { + let mut buf = [0u8; 32]; + let mut hash_input = Vec::new(); + + // Collect timing variations by measuring loop iterations + for _ in 0..100 { + let start = SystemTime::now(); + // Perform a small unpredictable operation + std::hint::black_box(42u64.pow(10)); + let elapsed = start.elapsed().unwrap().as_nanos() as u64; + hash_input.extend_from_slice(&elapsed.to_le_bytes()); + } + + let hash = blake3::hash(&hash_input); + buf.copy_from_slice(&hash.as_bytes()[..32]); + buf +} + +// pub fn get_user_input() -> [u8; 32] { +// let duration = Duration::from_secs(3); +// let mut collector = mouse::MouseEntropyCollector::new(duration); +// let events_arc = collector.events.clone(); + +// let mut event_loop = EventLoop::new().unwrap(); +// event_loop.set_control_flow(winit::event_loop::ControlFlow::Poll); +// event_loop.run_app(&mut collector).unwrap(); + +// // Extract events +// let events_vec = events_arc +// .lock() +// .unwrap() +// .iter() +// .cloned() +// .collect::>(); + +// println!("{:#?}", events_vec); + +// // Hash all entropy sources +// let mut hasher = blake3::Hasher::new(); +// for event in events_vec { +// hasher.update(&event.x.to_le_bytes()); +// hasher.update(&event.y.to_le_bytes()); +// hasher.update(&event.timestamp_nanos.to_le_bytes()); +// hasher.update(&event.time_delta_nanos.to_le_bytes()); +// } +// println!("bytes: {:#?}", hasher.count()); + +// let mut os_random = [0u8; 32]; +// OsRng.fill_bytes(&mut os_random); +// hasher.update(&os_random); + +// let time_entropy = SystemTime::now() +// .duration_since(UNIX_EPOCH) +// .unwrap() +// .as_nanos(); +// hasher.update(&time_entropy.to_le_bytes()); + +// let hash = hasher.finalize(); +// let mut buf = [0u8; 32]; +// buf.copy_from_slice(hash.as_bytes()); +// buf +// } + +// pub mod mouse { +// use std::collections::VecDeque; +// use std::sync::{Arc, Mutex}; +// use std::time::{Duration, Instant}; + +// use winit::application::ApplicationHandler; +// use winit::event::{DeviceEvent, DeviceId, WindowEvent}; +// use winit::event_loop::ActiveEventLoop; +// use winit::window::{Window, WindowAttributes, WindowId}; + +// // Store mouse movement entropy +// #[derive(Clone, Debug)] +// pub struct MouseEvent { +// pub x: f64, +// pub y: f64, +// pub timestamp_nanos: u128, +// pub time_delta_nanos: u128, // Time since last event +// } + +// pub struct MouseEntropyCollector { +// pub window: Option, +// pub events: Arc>>, +// start_time: Option, +// collection_duration: Duration, +// } + +// impl MouseEntropyCollector { +// pub fn new(duration: Duration) -> Self { +// Self { +// window: None, +// events: Arc::new(Mutex::new(VecDeque::new())), +// start_time: None, +// collection_duration: duration, +// } +// } + +// fn add_mouse_position(&mut self, x: f64, y: f64) { +// let now = Instant::now(); +// self.start_time = Some(self.start_time.unwrap_or(now)); +// let elapsed_since_start = now.duration_since(self.start_time.unwrap()).as_nanos(); + +// let mut events = self.events.lock().unwrap(); + +// let time_delta_nanos = if let Some(last) = events.back() { +// // Safe subtraction: ensure monotonicity +// elapsed_since_start - last.timestamp_nanos +// } else { +// 0 +// }; + +// events.push_back(MouseEvent { +// x, +// y, +// timestamp_nanos: elapsed_since_start, +// time_delta_nanos, +// }); +// } + +// fn should_stop(&self) -> bool { +// if let Some(start) = self.start_time { +// start.elapsed() >= self.collection_duration +// } else { +// false // Keep waiting for first event +// } +// } +// } + +// impl ApplicationHandler for MouseEntropyCollector { +// fn resumed(&mut self, event_loop: &winit::event_loop::ActiveEventLoop) { +// self.window = Some( +// event_loop +// .create_window(Window::default_attributes()) +// .unwrap(), +// ); +// // Start timer when window is created (approximate) +// if self.start_time.is_none() { +// self.start_time = Some(Instant::now()); +// } +// } + +// fn window_event( +// &mut self, +// event_loop: &ActiveEventLoop, +// _window_id: WindowId, +// event: WindowEvent, +// ) { +// match event { +// WindowEvent::CursorMoved { position, .. } => { +// self.add_mouse_position(position.x, position.y); +// } + +// _ => {} +// } + +// // Request redraw to keep alive (not strictly necessary for entropy) +// if let Some(window) = &self.window { +// window.request_redraw(); +// } +// // Check if 3 seconds have passed +// if self.should_stop() { +// event_loop.exit(); +// return; +// } +// if let Some(window) = &self.window { +// window.request_redraw(); +// } +// } +// fn about_to_wait(&mut self, event_loop: &ActiveEventLoop) { +// // Check if time is up +// if let Some(start) = self.start_time { +// if start.elapsed() >= self.collection_duration { +// event_loop.exit(); +// } +// } +// } + +// // /// Emitted when the OS sends an event to a device. +// // fn device_event( +// // &mut self, +// // event_loop: &ActiveEventLoop, +// // device_id: DeviceId, +// // event: DeviceEvent, +// // ) { +// // match event { +// // DeviceEvent::MouseMotion { delta } => { +// // self.add_mouse_position(delta.0, delta.1); +// // } +// // _ => (), +// // } +// // // Also check for timeout here +// // if self.should_stop() { +// // event_loop.exit(); +// // } +// // } +// } +// } \ No newline at end of file diff --git a/readme.md b/readme.md index 74e6d2b..4fe791e 100644 --- a/readme.md +++ b/readme.md @@ -1,39 +1,15 @@ # Airdrop - Terp Network -## Overview: Inital Token Distribution -The current suggested genesis file for Terp Network includes a mixture of [**ATOM delegators**](./interchain/gaia.csv),[**BCNA**](./interchain/bcna_delegators.csv),[**TERP OG Participants**](./points/terp-og.md), [**Scavenger Hunt Participants**](./points/scavenger-hunt.md), **Genesis Validators**, and **Protocol Treasury Tokens**. -Each inital account with TERP (excluding Protocol Treasury & 1 Terp for each Genesis Validator) will be vesting until 1697803200 UNIX time (Oct, 20th, 2023). +> ## One Note: This is experiemental repo, unaudited, and not yet a stable release +Welcome! This workspace contains the logic for generating, implementing, and deploying headstash instances. -### Details -| Project | Points | # of addresses | Total Tokens (TERP & PERSY) | -|-----------------------------|------------|----------------|---------------| -| ATOM | 1 | 114,846 | 13,276,409.490870 -| ATOM | 2 | 40,877 | 9,450,913.236130 -| ATOM | 3 | 8,147 | 2,825,424.701792 -| ATOM + BCNA | 4 | 1,443 | 8013565.901289 -| ATOM + BCNA | 5 | 264 | 1496618.262216 -| ATOM + BCNA | 6 | 79 | 451199.612292 -| BCNA | 6 | 100 | 1087560.976000 -| ATOM + BCNA | 7 | 4 | 43964.846400 -| ATOM + BCNA | 8 | 4 | 33320.440350 -| ATOM + BCNA | 9 | 4 | 44889.661160 -| BCNA | 9 | 4 | 65,253.658520 -| TERP OG & SCAVENGER HUNT | 1 - 1.34 | 43 | 111913.879345 -| GENTX | 1 | 4 | 4 - - - -## Airdrop Cycle 2: Cannabis Culture Communities - -| Project | Unique Addresses | Date Of Snapshot | Total Tokens Allocated | Average Token Per Point | -|---------|-------------------|-------------------|-------------------| -------------------| -| [Chronic Token](./eth/addresses/cht_erc20_holders.md) | 1255 | Oct 11th, 2022 | 12600000.000000 TERP & THIOL | -| [Crypto Canna Club](./eth/addresses/crypto_canna_club.md) | 4405 | Oct 11th, 2022 | 10969140.000000 TERP & THIOL | -| [MonsterBuds](./eth/addresses/monster_buds.md) | 3385 | Oct 11th, 2022 | 9660000.000000 TERP & THIOL | -| [Hippie Life Krew](./eth/addresses/hlk.md) | 342 | June 16th, 2023 | 1111949.026877 TERP & THIOL | -| [N8 Free Mint Holders](./eth/addresses/n8-free-mint.md) | 316 | Oct 11th, 2022 | 735000.000000 TERP & THIOL | -| [Secret Sesh](./eth/addresses/secret_sesh.md) | 527 | Oct 11th, 2022 | 4200000.000000 TERP & THIOL | -| [Galaktic Gang](./eth/addresses/galaktic_holders.md) | 2568 | Oct 11th, 2022 | 4200000.000000 TERP & THIOL | - -### Check [here](./eth/README.md) to learn about the parameters for the airdrop to token holders of projects supporting the vision of web-3 + cannabis culture. +| Package |Description | | +|---------------------------|------| -| +| docs | documentation and specification of the circuit layout and tooling +| zk-crates | libraries for proof circuit generation and implementation | | +| zk-packages | js libraries for wasm-bindgen related fun | | +| pub-crates | libraries for logic not specifically related to privacy | | +| test-press | full testing suite | | +| proto | Protobuf definition and type definition generation for headstash library | | +| scripts | tools for distribution generation based on existing token-holder distributions | | diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..9227702 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,3 @@ +[toolchain] +channel = "nightly-2025-10-11" +targets = ["wasm32-unknown-unknown"] \ No newline at end of file diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 0000000..584c859 --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,42 @@ +# Scripts + +These are helping scripts for un +This script checks for and sums any duplicate allocation together to generate a csv file that does not contain duplicate addresses. + +| Command | Description | Files Created | +|-----------|-------------|---------------| +| `node main.js -1` | Runs full workflow to generate accurate genesis distribution | `scripts-data/final-output.csv`, `points-distribution.csv`, `total-points.csv` | +| `node main.js -2` | Prepares accurate allocations from genesis snapshots (`gaia.csv`, `bcna_delegators.csv`) | `scripts-data/final-output.csv`, `points-distribution.csv`, `total-points.csv` | +| `node main.js -3` | Analyzes exported state (`morocco-1`) to split accounts into active/inactive | `accounts-active.json`, `accounts-inactive.json` | +| `node main.js -4` | Compares expected vs. actual genesis allocations, flags discrepancies | Log output, discrepancy reports | +| `node main.js -5` | Summarizes differences between old and new distribution | Summary files in `scripts-data/` | + +|----------|----------|----------| | + +## Adding A New Community For Headstash (EVM based) + +### Step 1: Distribution Snapshot + +- Date snapshot was taken +- .csv file with `addr,amount` as headers +- create new folder in `../headstash/communities/` + +### Step 2: Percentile Distribution Calculation + +- calculate desired points for percentile range & desired token per point + +### Step 3: Addition To Scripts + +```js + { + csv: "../headstash/communities//.csv", + points: [ + { points: 1, min: 1, max: 1 }, // 1st - nth percentile + { points: 2, min: 2, max: 9 }, // n+1 - m percentile + { points: 3, min: 10, max: 10 } // m+1 - 100th percentile + ], + tpp: 1660.079051 // calculated token per point + }, +``` + +## Adding A New Community For Headstash (Solana based) diff --git a/scripts/calculations.js b/scripts/calculations.js new file mode 100644 index 0000000..47be001 --- /dev/null +++ b/scripts/calculations.js @@ -0,0 +1,390 @@ + +import { readCsvFile, readYamlFile, toMarkdownTable, escapeRegExp, toOverviewMarkdownTable, loadProjectAddresses } from "./utils.js"; +import readline from 'readline'; +import { HEADSTASH_YAML, BASE_ALLOCATION, OVERVIEW_README } from './constants.js' +import fs from 'fs'; +import path, { dirname } from 'path' +import { parse, stringify } from 'yaml' +import { fileURLToPath } from 'url'; + + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + + +// Helper to prompt input +const ask = (query) => { + const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, + }); + return new Promise((resolve) => rl.question(query, (ans) => { + rl.close(); + resolve(ans.trim()); + })); +}; + +/// prompts user to determine fair % ranges for 1,2,3 points +export const fairPercentileRanges = async (distributionData) => { + const projects = await Promise.all( + Object.values(distributionData.projects).map(async (proj) => { + const records = await loadProjectAddresses(proj.csv); + const holders = records + .map((r) => ({ + address: r.addr, + amount: parseFloat(r.amount), + })) + .filter((h) => !isNaN(h.amount)); + + holders.sort((a, b) => b.amount - a.amount); // descending + + return { ...proj, holders }; + }) + ); + + console.log("✅ loaded projects:", projects.map((p) => p.name)); + + // Generate 3% increments: 3%, 6%, ..., 99% + const percentiles = []; + for (let p = 0.01; p <= 1; p += 0.01) { + percentiles.push(parseFloat(p.toFixed(2))); + } + + const configResults = {}; + + // Process each project + for (const proj of projects) { + const { holders, name } = proj; + if (holders.length === 0) { + console.warn(`⚠️ No valid holder data for project: ${name}`); + continue; + } + + const total = holders.length; + const percentileValues = {}; + + // Build data for table + for (const p of percentiles) { + const idx = Math.floor(p * total); + if (idx >= total) continue; + const rank = idx + 1; + const { amount } = holders[idx]; + const label = `${Math.round(p * 100)}%`; + percentileValues[label] = { + rank, + totalHolders: total, + requiredAmount: amount + }; + } + + // print percentile range md table to readme of project folder + // ✅ Print the nice table you liked. will be in same folder as csv file + console.log(`\n📊 ${name} - percentile ranges:`); + console.table(percentileValues); + + const readmePath = path.join(__dirname, '..', 'headstash', 'communities', name, 'README.md'); + const newTable = toMarkdownTable(percentileValues); + const header = `## ${name} - Percentile Ranges`; + // Read and update README.md + let readmeContent = ''; + if (fs.existsSync(readmePath)) { + readmeContent = fs.readFileSync(readmePath, 'utf8'); + } + + // Regex to match from `## ...` to the next heading (or end of file) + const regex = new RegExp(`(^|\\n)${escapeRegExp(header)}\\s*\\n[^\\n]*(.*?)(?=\\n## |\\n\\s*\\n|$)`, 's'); + const replacement = `\n${header}\n\n${newTable}`; + const updatedContent = readmeContent.match(regex) + ? readmeContent.replace(regex, replacement) + : readmeContent + `\n${header}\n\n${newTable}\n`; + + // Ensure directory exists + fs.mkdirSync(path.dirname(readmePath), { recursive: true }); + fs.writeFileSync(readmePath, updatedContent, 'utf8'); + + + + // Interactive cutoff configuration + console.log(`\n🎯 Now setting point tiers for ${name}...`); + + let threePerc; + while (!threePerc) { + const input = await ask(` 🥇 Top __% get 3 points? (1-99): `); + const n = parseFloat(input); + if (isNaN(n) || !Number.isInteger(n) || n < 1 || n > 99) { + console.log(` ❌ Invalid. Please enter a whole number between 1 and 99.`); + continue; + } + const decimalValue = n / 100; + if (percentiles.includes(decimalValue)) { + threePerc = decimalValue; + } else { + console.log(` ❌ ${n}% is not supported.`); + } + } + + let twoPerc; + while (!twoPerc) { + const input = await ask(` 🥈 Extend 2 points up to __%? (must be > ${threePerc * 100}%): `); + const n = parseFloat(input); + if (isNaN(n) || !Number.isInteger(n) || n < 1 || n > 99) { + console.log(` ❌ Must be a whole number between 1 and 99.`); + continue; + } + const decimalValue = n / 100; + if (decimalValue <= threePerc) { + console.log(` ❌ Must be greater than ${threePerc * 100}.`); + continue; + } + if (!percentiles.includes(decimalValue)) { + console.log(` ❌ ${n}% is not supported.`); + continue; + } + twoPerc = decimalValue; + } + + // Calculate number of holders in each point tier + const threePointCutoffIdx = Math.floor(threePerc * total); + const twoPointCutoffIdx = Math.floor(twoPerc * total); + + const numThreePointHolders = threePointCutoffIdx + 1; // +1 because 0-indexed + const numTwoPointHolders = twoPointCutoffIdx - threePointCutoffIdx; + const numOnePointHolders = total - twoPointCutoffIdx - 1; + // Inside fairPercentileRanges(), after: + + // Save the actual token amount thresholds + const threePointCutoffAmount = holders[threePointCutoffIdx]?.amount; + const twoPointCutoffAmount = holders[twoPointCutoffIdx]?.amount; + + + // Save configuration + configResults[name] = { + threePointsUpTo: { + percentile: threePerc, + cutoffAmount: threePointCutoffAmount, + holders: numThreePointHolders + }, + twoPointsUpTo: { + percentile: twoPerc, + cutoffAmount: twoPointCutoffAmount, + holders: numTwoPointHolders + }, + onePointUpTo: { + percentile: 1.0, + cutoffAmount: 0, + holders: numOnePointHolders + }, + totalHolders: total, + }; + + await updateHeadstashYaml(configResults, name); + console.log(` ✅ ${name} configured: 3pts ≤ ${threePerc * 100}%, 2pts ≤ ${twoPerc * 100}%, 1pt rest\n`); + } + + // Final result + console.log("📋 Full configuration results:"); + + console.log(configResults); + return; +}; + + +export const updateHeadstashYaml = async (configResults, name) => { + const doc = await readYamlFile(HEADSTASH_YAML) + + // Find the specific project by name in configResults + const config = configResults[name]; + if (!config) { + console.warn(` ⚠️ Project "${name}" not found in config results`); + return; + } + + // Find project by name in the YAML under `projects` + const project = doc.projects?.find(p => p.name === name); + if (project) { + project.points = { + threePointsUpTo: config.threePointsUpTo, + twoPointsUpTo: config.twoPointsUpTo, + onePointUpTo: config.onePointUpTo, + totalHolders: config.totalHolders + }; + console.log(` 📥 Updated ${name} points distribution in headstash.yaml`); + } else { + console.warn(` ⚠️ Project "${name}" not found in headstash.yaml`); + } + fs.writeFileSync(HEADSTASH_YAML, stringify(doc), 'utf8'); + console.log(`✅ headstash.yaml updated with new points distribution for "${name}"`); +}; + +/** + * Calculate project points using square root scaling + * @param {Array} projects - [{ name, totalHolders }] + * @param {number} baseAllocation - Total points to distribute + * @returns {Object} { projectName: points } + */ +function calculateSqrtPoints(projects, baseAllocation) { + const sumSqrt = projects.reduce((sum, p) => sum + Math.sqrt(p.totalHolders), 0); + if (sumSqrt === 0) return {}; + + return projects.reduce((acc, p) => { + acc[p.name] = Math.round((Math.sqrt(p.totalHolders) / sumSqrt) * baseAllocation); + return acc; + }, {}); +} + +/** + * Calculate project points using logarithmic scaling + * @param {Array} projects - [{ name, totalHolders }] + * @param {number} baseAllocation - Total points to distribute + * @returns {Object} { projectName: points } + */ +function calculateLogPoints(projects, baseAllocation) { + const sumLog = projects.reduce((sum, p) => sum + Math.log(p.totalHolders + 1), 0); + if (sumLog === 0) return {}; + + return projects.reduce((acc, p) => { + acc[p.name] = Math.round((Math.log(p.totalHolders + 1) / sumLog) * baseAllocation); + return acc; + }, {}); +} + + +/** + * Recalculates and updates normalization points for ALL projects in headstash.yaml + * Uses existing `totalHolders` from each project's `points` field + */ +export const applyNormalizationToAllProjects = async () => { + const doc = await readYamlFile(HEADSTASH_YAML); + + if (!doc.projects || !Array.isArray(doc.projects)) { + console.warn('⚠️ No projects found in headstash.yaml'); + return; + } + + // Extract totalHolders from existing points data + const projectsData = doc.projects + .filter(p => p.points?.totalHolders !== undefined) + .map(p => ({ + name: p.name, + totalHolders: p.points.totalHolders, + })); + + if (projectsData.length === 0) { + console.warn('⚠️ No valid project holder data found for normalization'); + return; + } + internalWriteHeadstashYaml(doc, projectsData) +}; + + + +export const internalWriteHeadstashYaml = async (doc, projectsData) => { + // Reuse the same helper functions + const sqrtAllocations = calculateSqrtPoints(projectsData, BASE_ALLOCATION); + const logAllocations = calculateLogPoints(projectsData, BASE_ALLOCATION); + + // Update every project in the YAML + doc.projects.forEach(project => { + const holders = project.points?.totalHolders; + if (holders === undefined) return; + + // Ensure points object exists + if (!project.points) project.points = {}; + + project.points.normalization = { + sqrtScaling: sqrtAllocations[project.name] || 0, + logScaling: logAllocations[project.name] || 0, + }; + // allocation % + project.allocation_percentage = project.points.normalization.sqrtScaling / BASE_ALLOCATION + }); + + // Update every project in the YAML + let totalPointsInAllProjects = 0; + doc.projects.forEach(project => { + const p = project.points; + + + // Safely parse and clamp ranges + const totalHolders = p.totalHolders; + const threePointsUpTo = p.threePointsUpTo.holders || 0; + const twoPointsUpTo = Math.max(threePointsUpTo, p.twoPointsUpTo.holders || 0); + const onePointUpTo = Math.max(twoPointsUpTo, p.onePointUpTo.holders || 0); + + // Count holders in each tier + const rank3 = Math.min(threePointsUpTo, totalHolders); + const rank2 = Math.min(twoPointsUpTo, totalHolders) - rank3; + const rank1 = Math.min(onePointUpTo, totalHolders) - rank3 - rank2; + + const projectTotalPoints = rank3 * 3 + rank2 * 2 + rank1 * 1; + totalPointsInAllProjects += projectTotalPoints; + }); + + // === Prevent NaN: validate total points === + if (totalPointsInAllProjects <= 0) { + console.error('❌ Total points across projects is zero or invalid. Cannot compute TPP.'); + console.log('👉 Check: do your projects have valid threePointsUpTo, twoPointsUpTo, onePointUpTo?'); + return; + } + + const tokensPerPoint = BASE_ALLOCATION / totalPointsInAllProjects; + + // Final pass: assign allocation_percentage and tpp + doc.projects.forEach(project => { + if (!project.points?.normalization) return; + + // Safe allocation percentage + const sqrtScaling = project.points.normalization.sqrtScaling || 0; + project.allocation_percentage = sqrtScaling / BASE_ALLOCATION; + + console.log(tokensPerPoint) + // Assign global TPP + project.tpp = Number(tokensPerPoint.toFixed(8)); + }); + fs.writeFileSync(HEADSTASH_YAML, stringify(doc), 'utf8'); + console.log('Normalization applied to all projects in headstash.yaml'); +} + + +export async function generateOverviewReadme() { + try { + const data = await readYamlFile(HEADSTASH_YAML); + + if (!data?.projects?.length) { + console.error('❌ No projects found in YAML.'); + return; + } + + const table = toOverviewMarkdownTable(data.projects); + const sectionHeader = '## Airdrop Cycle 2: Cannabis Culture Communities'; + + let mdContent = ''; + if (fs.existsSync(OVERVIEW_README)) { + mdContent = fs.readFileSync(OVERVIEW_README, 'utf8'); + } + + // Regex to match from `## Airdrop Cycle 2...` to the next heading of level 2 or higher (`## ` or start of file) + const regex = new RegExp(`(^|\\n)(${escapeRegExp(sectionHeader)}\\s*\\n)([^\\n]*(?:\\n(?!## )[^\\n]*)*)(?=\\n## |$)`, 's'); + const replacement = `\n${sectionHeader}\n\n${table}`; + const updatedContent = regex.test(mdContent) + ? mdContent.replace(regex, replacement) + : mdContent + `\n${sectionHeader}\n\n${table}\n`; + + fs.writeFileSync(OVERVIEW_README, updatedContent, 'utf8'); + console.log('✅ Markdown table generated and injected into', OVERVIEW_README); + } catch (err) { + console.error('❌ Error generating overview:', err.message); + } +}; + +// validate: +// community points summary reflects what is in headstash.yaml +// all projects allocation % totals up to 100% +// tokens per point * total tokens matches projects expected token allocations + +// full headstash sequence +// - use exsisting, or create default yaml file, based on each project folder in headstash/communities +// - process any solana project +// - determine percentile ranges for each project, print md tables into projects folder README. +// - determine scaling factors, resulting in complete yaml file +// - create final-output.csv & final summary MD, printed to \ No newline at end of file diff --git a/scripts/constants.js b/scripts/constants.js new file mode 100644 index 0000000..6b9b97e --- /dev/null +++ b/scripts/constants.js @@ -0,0 +1,68 @@ + +// inputs +// total tokens in headstash begin distributed +const BASE_ALLOCATION = 67000000; +// total supply of token +const TOTAL_SUPPLY = 420000000; + +// pecentrages of genesis airdrop to gaia & bcna holders +const GAIA_PERC_SUPPLY = 0.061152; +const BCNA_PERC_SUPPLY = 0.01911; + +const ETH_RPC_URL = "https://mainnet.infura.io/v3/YOUR_KEY"; +// YAML files +const HEADSTASH_YAML = "../headstash.yaml"; +const GENESIS_YAML_FILE = "../headstash/scripts-data/final_tally.csv"; + +// Exported files +const NETWORK_GENESIS_FILE = "../data/genesis.json" +const LIVE_NETWORK_EXPORT_FILE = "../data/export.json" + +// Genesis Relevant Files +const GENESIS_DISTRIBUTION_FILE = '../genesis/scripts-data/final-output.csv'; +const PATCHED_DISTRIBUTION_FILE = "../genesis/scripts-data/patched-distribution.csv" +const INACTIVE_ACCOUNT_FILE = "../genesis/scripts-data/accounts-inactive.json" +const ACTIVE_ACCOUNTS_FILE = "../genesis/scripts-data/accounts-active.json" +const TOKEN_DIFF_OUTPUT = "../genesis/scripts-data/token-differences.csv" +const SUMMARY_OUTPUT = "../genesis/scripts-data/summary.json" +const POINTS_SUMMARY_FILE = '../genesis/scripts-data/points-distribution.csv'; +const TOTAL_POINTS_FILE = '../genesis/scripts-data/total-points.csv'; +// Headstash Relevant Files +const SAC_JSON_PATH = '../headstash/communities/stoned-ape-club/sac.json'; +const SAC_ENCODED_FILE = '../headstash/communities/stoned-ape-club/stoned-ape-club.csv'; +const SCAVENGER_HUNT_FILE = "../genesis/scavenger_hunt.csv"; +const TERPOG_FILE = "../genesis/terp_og.csv"; +const BCNA_DELEGATORS = "../genesis/bcna_delegators.csv"; +const GAIA_DELEGATORS = "../genesis/gaia.csv"; +const HEADSTASH_FINAL_TALLY = "../headstash/scripts-data/final_tally.csv"; +const SINSEMILLA_JSON_FILE = "../zk-crates/data/genesis_sinsemilla.json"; +const OVERVIEW_README = "../README.md"; + +export { + TOTAL_SUPPLY, + GENESIS_YAML_FILE, + NETWORK_GENESIS_FILE, + LIVE_NETWORK_EXPORT_FILE, + SCAVENGER_HUNT_FILE, + TERPOG_FILE, + SAC_JSON_PATH, + SAC_ENCODED_FILE, + BCNA_DELEGATORS, + GAIA_DELEGATORS, + HEADSTASH_YAML, + HEADSTASH_FINAL_TALLY, + ACTIVE_ACCOUNTS_FILE, + TOKEN_DIFF_OUTPUT, + SUMMARY_OUTPUT, + PATCHED_DISTRIBUTION_FILE, + POINTS_SUMMARY_FILE, + INACTIVE_ACCOUNT_FILE, + GENESIS_DISTRIBUTION_FILE, + BCNA_PERC_SUPPLY, + GAIA_PERC_SUPPLY, + TOTAL_POINTS_FILE, + BASE_ALLOCATION, + SINSEMILLA_JSON_FILE, + OVERVIEW_README, + ETH_RPC_URL, +}; \ No newline at end of file diff --git a/scripts/exported-state.js b/scripts/exported-state.js new file mode 100644 index 0000000..c450238 --- /dev/null +++ b/scripts/exported-state.js @@ -0,0 +1,255 @@ +import fs from 'fs'; +import csv from 'csv-parser'; + +import { readCsvFile, readJsonFile } from './utils.js'; + +import { LIVE_NETWORK_EXPORT_FILE, SUMMARY_OUTPUT, TOTAL_SUPPLY, SCAVENGER_HUNT_FILE, TERPOG_FILE, NETWORK_GENESIS_FILE, TOKEN_DIFF_OUTPUT, GENESIS_DISTRIBUTION_FILE, INACTIVE_ACCOUNT_FILE, ACTIVE_ACCOUNTS_FILE, PATCHED_DISTRIBUTION_FILE, BCNA_PERC_SUPPLY, TOTAL_POINTS_FILE, POINTS_SUMMARY_FILE } from './constants.js'; + +// finds active accounts based on network export file +// - parse export file to determine which addresses are active and which ones are not. +async function processExportedState() { + fs.readFile(LIVE_NETWORK_EXPORT_FILE, (err, data) => { + if (err) { + console.error(err); + return; + } + // Read the CSV file + const genesisAccounts = []; + fs.createReadStream(GENESIS_DISTRIBUTION_FILE) + .pipe(csv()) + .on('data', (row) => { + genesisAccounts.push(row); + }) + .on('end', () => { + const updatedGreaterZeroSequenceAccounts = []; + JSON.parse(data).app_state.auth.accounts.filter((account) => { + return genesisAccounts.some((genesisAccount) => genesisAccount.address === account.address); + }).forEach((account) => { + // Separate accounts by sequence + if (account.base_vesting_account && account.base_vesting_account.base_account.sequence !== '0') { + updatedGreaterZeroSequenceAccounts.push({ + account_number: account.base_vesting_account.base_account.account_number, + address: account.base_vesting_account.base_account.address, + sequence: account.base_vesting_account.base_account.sequence, + original_vesting_amount: account.base_vesting_account.original_vesting[0].amount + }); + } + }); + updatedGreaterZeroSequenceAccounts.sort((a, b) => parseInt(b.sequence) - parseInt(a.sequence)); + fs.writeFileSync(ACTIVE_ACCOUNTS_FILE, JSON.stringify({ app_state: { auth: { accounts: updatedGreaterZeroSequenceAccounts } } }, null, 2)); + }); + }); +} + +// - parse genesis file to get original distributions to run calculations. +async function processGenesisState() { + fs.readFile(NETWORK_GENESIS_FILE, (err, data) => { + if (err) { + console.error(err); + return; + } + // Read the CSV file + const genesisAccounts = []; + fs.createReadStream(GENESIS_DISTRIBUTION_FILE) + .pipe(csv()) + .on('data', (row) => { + genesisAccounts.push(row); + }) + .on('end', () => { + const updatedZeroSequenceAccounts = []; + JSON.parse(data).app_state.auth.accounts.filter((account) => { + return genesisAccounts.some((genesisAccount) => genesisAccount.address === account.address); + }).forEach((account) => { + if (account.base_vesting_account) { + updatedZeroSequenceAccounts.push({ + account_number: account.base_vesting_account.base_account.account_number, + address: account.base_vesting_account.base_account.address, + sequence: account.base_vesting_account.base_account.sequence, + original_vesting_amount: account.base_vesting_account.original_vesting[0].amount + }); + } + }); + fs.writeFileSync(INACTIVE_ACCOUNT_FILE, JSON.stringify({ app_state: { auth: { accounts: updatedZeroSequenceAccounts } } }, null, 2)); + + }); + }); +} + +const readGenesisDistribution = async () => { + return new Promise((resolve, reject) => { + const genesisDistribution = []; + fs.createReadStream(GENESIS_DISTRIBUTION_FILE) + .pipe(csv()) + .on('data', (row) => { + genesisDistribution.push({ + address: row.Address, + tokens: parseInt(row.Tokens), + }); + }) + .on('end', () => { + resolve(genesisDistribution); + }) + .on('error', (error) => { + reject(error); + }); + }); +}; + + +const summarizeAllResults = async () => { + const csvData = await readCsvFile(PATCHED_DISTRIBUTION_FILE); // assuming this function exists + const totalSupply = BigInt(Math.round(parseFloat(TOTAL_SUPPLY) * 1e6)); // scaled + const SCALE = 1e6; + + // Count unique addresses (assuming 'Address' is the column name) + const uniqueAddresses = new Set(csvData.map(row => row['Address'])).size; + + // Calculate totals from CSV using scaled BigInts + const totals = csvData.reduce( + (acc, row) => { + const original = Math.round(parseFloat(row['Original Allocation']) * SCALE); + const updated = Math.round(parseFloat(row['New Allocation']) * SCALE); + acc.originalAllocation += BigInt(original); + acc.newAllocation += BigInt(updated); + + return acc; + }, + { originalAllocation: BigInt(0), newAllocation: BigInt(0) } + ); + + // Calculate percentages relative to total supply + const originalPercentage = (totals.originalAllocation * 10000n) / totalSupply; + const newPercentage = (totals.newAllocation * 10000n) / totalSupply; + + const summary = { + unique_address_count: uniqueAddresses, + distribution: { + original: { + totalAmount: (Number(totals.originalAllocation) / SCALE).toFixed(6), + percentage_of_supply: Number(originalPercentage) / 100, + }, + new: { + totalAmount: (Number(totals.newAllocation) / SCALE).toFixed(6), + percentage_of_supply: Number(newPercentage) / 100 + + } + }, + // allocation_delta: { + // description: 'Difference between intended and actual airdrop distribution', + // additional_required: { + // percentile: totalAdditional, + // display: `${totalAdditional.toFixed(6)} TERP`, + // note: 'TERP that should have been distributed but was not' + // }, + // excess_overdistributed: { + // percentile: totalExcess, + // display: `${totalExcess.toFixed(6)} TERP`, + // note: 'Over-allocated TERP not clawed back' + // }, + // net_impact: { + // percentile: totalAdditional - totalExcess, + // display: `${(totalAdditional - totalExcess).toFixed(6)} TERP`, + // note: 'Net shortfall (+) or surplus (-)' + // } + // }, + }; + + fs.writeFileSync(SUMMARY_OUTPUT, JSON.stringify(summary, null, 2)) +}; + + +// Calculate token difference +const summarizeScavengerHunt = async () => { + const scavengerHunt = await readCsvFile(SCAVENGER_HUNT_FILE); + const terpOg = await readCsvFile(TERPOG_FILE); + + const seenAddresses = new Set(); // Track unique addresses + let totalPoints = 0; + let totalOriginalAllocation = 0n; + + // Helper to safely process rows from a file + const processFile = (rows, sourceName) => { + for (const row of rows) { + const addr = row.Address; + const points = row.Points; + const allocationStr = row["Original Allocation"]; + + if (!addr) { + console.warn(`Skipping row in ${sourceName}: missing Address`, row); + continue; + } + + if (!allocationStr) { + console.warn(`Skipping row in ${sourceName}: missing 'Original Allocation'`, row); + continue; + } + + if (seenAddresses.has(addr)) { + console.debug(`Duplicate address skipped: ${addr}`); + continue; // Skip if already counted + } + + seenAddresses.add(addr); + totalPoints += parseInt(points, 10) || 0; + totalOriginalAllocation += BigInt(allocationStr); + } + }; + + processFile(scavengerHunt, "ScavengerHunt"); + processFile(terpOg, "TerpOG"); + // Convert microdenom to base denom with 6 decimal places + const fullDenom = (Number(totalOriginalAllocation) / 1e6).toFixed(6); + + let result = { + totalAddresses: scavengerHunt.length, + validAddresses: scavengerHunt.filter(row => row["Original Allocation"]).length, + totalPoints, + totalOriginalAllocation: fullDenom + } + console.log("\n--- Scavenger Hunt Summary ---"); + console.log(`Total Addresses : ${result.totalAddresses}`); + console.log(`Total Points : ${result.totalPoints}`); + console.log(`Total Allocation : ${result.totalOriginalAllocation} TERP`); + console.log("--------------------------------\n"); +}; + +// Calculate token difference +const calculateTokenDifference = async () => { + const genesisDistribution = await readGenesisDistribution(); + const zeroSequenceAccounts = await readJsonFile(INACTIVE_ACCOUNT_FILE); + const originalAllocations = await readJsonFile(ACTIVE_ACCOUNTS_FILE); + // const nonZeroSequenceAccounts = await readJsonFile(ACTIVE_ACCOUNTS_FILE); + const output = []; + + const processAccounts = (accounts) => { + accounts.map((account) => { + const matched = genesisDistribution.find((g) => g.address === account.address); + if (!matched) return null; + const tokenDifference = matched.tokens - account.original_vesting_amount / 1e6; + return { address: account.address, tokenDifference }; + }) + .filter(Boolean).sort((a, b) => b.tokenDifference - a.tokenDifference) + .forEach(({ address, tokenDifference }) => { + output.push(`${address},${tokenDifference}`); + }); + }; + + + output.push('Address,Token Difference'); // Header row + + processAccounts(zeroSequenceAccounts.app_state.auth.accounts); + + fs.writeFileSync(TOKEN_DIFF_OUTPUT, output.join('\n')); +}; + + + +// - active account multipler: +// - 1-10 tx: 10,000 THIOL, 1,000 TERP +// - 11-100 tx: 25,000 THIOL, 2,500 TERP +// - 100+: 50,000 THIOL, 5,000 TERP +// - active validators multiplers: +// - all existing validators: +// - 4,200 TERP & THIOL + +export { processGenesisState, calculateTokenDifference, summarizeAllResults, summarizeScavengerHunt } \ No newline at end of file diff --git a/scripts/genesis-script.js b/scripts/genesis-script.js new file mode 100644 index 0000000..0f08065 --- /dev/null +++ b/scripts/genesis-script.js @@ -0,0 +1,284 @@ +// Genesis script that creates a single file containing all of the balances and distributions for gaia & btsg holders +// 1. convert addrs to represent terp bech32 prefix +// 2. calculate points for each unique address. + +import fs from 'fs'; +import csv from 'csv-parser'; +import { bech32 } from 'bech32' +import { readCsvFile, readYamlFile } from './utils.js'; + +import { GAIA_DELEGATORS, BCNA_DELEGATORS, GENESIS_YAML_FILE, GENESIS_DISTRIBUTION_FILE, INACTIVE_ACCOUNT_FILE, ACTIVE_ACCOUNTS_FILE, PATCHED_DISTRIBUTION_FILE, GAIA_PERC_SUPPLY, TOTAL_SUPPLY, BCNA_PERC_SUPPLY, TOTAL_POINTS_FILE, POINTS_SUMMARY_FILE } from './constants.js'; + +function createDistribution(ranges) { + return ranges.reduce((acc, range) => { + acc[range.points] = 0; + return acc; + }, {}); +} + + +function getPoints(balance, pointsList) { + for (const point of pointsList) { + if (balance >= point.min && balance <= point.max) { + return point.points; + } + } + return 0; +} + +function convertToTerpAddress(addr) { + const decoded = bech32.decode(addr); + const newPrefix = 'terp'; + const newAddress = bech32.encode(newPrefix, decoded.words); + return newAddress; +} + +function processBalanceData(data, pointValue) { + return data.reduce((acc, row) => { + let addr = convertToTerpAddress(row.address); // Convert to 'terp' format + let balance = parseFloat(row.balance); + let points = getPoints(balance, pointValue); + + acc[addr] = acc[addr] || { balance: 0, points: 0 }; + acc[addr].balance += balance; + acc[addr].points = points; // Note: points based on current balance only + return acc; + }, {}); +} + +// Reusable function to count addresses and distribute points +function countAddresses(balances, distribution, exclude = {}) { + let count = 0; + for (let addr in balances) { + if (exclude[addr]) continue; // Skip if in exclude list + let points = balances[addr].points; + distribution[points] = (distribution[points] || 0) + 1; + count++; + } + return count; +} + +function findBlend(blends, ...projectNames) { + const blendObj = blends?.find(b => + Array.isArray(b.blend?.projects) && + projectNames.every(p => b.blend.projects.includes(p)) && + b.blend.projects.length === projectNames.length // exact match (optional) + ); + return blendObj?.blend || null; +} + +// Aggregate and process CSV files +async function processGenesisDistribution() { + let data = await readYamlFile(GENESIS_YAML_FILE) + // get atomPoints + // Assuming `data` is the parsed YAML object + const gaiaProject = data.projects.find(p => p.name === 'gaia'); + const bcnaProject = data.projects.find(p => p.name === 'bcna'); + + if (!gaiaProject) throw new Error('gaia project not found in config'); + if (!bcnaProject) throw new Error('bcna project not found in config'); + + const gaiaPoints = gaiaProject.points_ranges; + const bcnaPoints = bcnaProject.points_ranges; + const mergedPoints = findBlend(data.project_blends, 'gaia', 'bcna'); + + + let gaiaData = await readCsvFile(GAIA_DELEGATORS); + let bcnaData = await readCsvFile(BCNA_DELEGATORS); + + let result = []; + + // Step 1: Calculate Gaia & BCNA based on balances + let gaiaBalances = processBalanceData(gaiaData, gaiaPoints); + let bcnaBalances = processBalanceData(bcnaData, bcnaPoints); + + + // Step 3: Merge data from both sources and calculate combined points + let totalGaiaPoints = 0; + let totalBcnaPoints = 0; + let totalGaiaAddrs = 0; + let totalBcnaAddrs = 0; + + // objects to count # of addr in each point range + const gaiaPointsDistribution = createDistribution(gaiaPoints); + const bcnaPointsDistribution = createDistribution(bcnaPoints); + const mergedPointsDistribution = createDistribution(mergedPoints); + + // Count standalone Gaia and BCNA addresses (non-overlapping) + totalGaiaAddrs = countAddresses(gaiaBalances, gaiaPointsDistribution, bcnaBalances); + totalBcnaAddrs = countAddresses(bcnaBalances, bcnaPointsDistribution, gaiaBalances); + + // calculate new allocation from points and percentDistribution + for (let addr in gaiaBalances) { + let gaiaBalance = gaiaBalances[addr]; + if (bcnaBalances[addr]) { + let bcnaBalance = bcnaBalances[addr]; + // Attempt to find a matching merged point combination + let mergedPoint = mergedPoints.find(mp => mp.bcna === bcnaBalance.points && mp.atom === gaiaBalance.points); + + // Calculate combined points + let combinedPoints = 0; + if (mergedPoint) { + combinedPoints = mergedPoint.points; // If a match, take the merged points + console.log(mergedPoint) + mergedPointsDistribution[mergedPoint.points]++; + } else { + if (bcnaBalance.points === 0) { + combinedPoints = gaiaBalance.points; + } else if (gaiaBalance.points === 0) { + combinedPoints = bcnaBalance.points; + } else { + combinedPoints = Math.max(bcnaBalance.points, gaiaBalance.points); + } + } + + let gaiaPointValue = gaiaPoints.find(ap => ap.points === gaiaBalance.points); + let gaiaTokens = gaiaPointValue ? gaiaBalance.points * gaiaPointValue.tpp : 0; + + let bcnaPointValue = bcnaPoints.find(bp => bp.points === bcnaBalance.points); + let bcnaTokens = bcnaPointValue ? bcnaBalance.points * bcnaPointValue.tpp : 0; + + let mergedPointValue = mergedPoints.find(mp => mp.points === combinedPoints); + let mergedTokens = mergedPointValue ? combinedPoints * mergedPointValue.tpp : 0; + + result.push({ + address: addr, + gaiaBalance: gaiaBalance.balance, + bcnaBalance: bcnaBalance.balance, + gaiaPoints: gaiaBalance.points, + bcnaPoints: bcnaBalance.points, + points: combinedPoints, + tokens: mergedTokens + }); + + totalGaiaPoints += gaiaBalance.points; + totalBcnaPoints += bcnaBalance.points; + } else { + // Add to result + // For non-merged addresses + let pointValue = gaiaPoints.find(ap => ap.points === gaiaBalance.points); + let tokens = pointValue ? gaiaBalance.points * pointValue.tpp : 0; + + result.push({ + address: addr, + gaiaBalance: gaiaBalance.balance, + bcnaBalance: 0, + gaiaPoints: gaiaBalance.points, + bcnaPoints: 0, + points: gaiaBalance.points, + tokens: tokens + }); + + totalGaiaPoints += gaiaBalance.points; + } + } + + + // Step 4: Write final output to CSV + result.sort((a, b) => b.points - a.points); + let csvContent = 'Address,Gaia Balance,BCNA Balance,Gaia Points,BCNA Points,Points,Tokens\n'; + result.forEach(row => { + csvContent += `${row.address},${row.gaiaBalance},${row.bcnaBalance},${row.gaiaPoints},${row.bcnaPoints},${row.points},${row.tokens}\n`; + }); + fs.writeFileSync(GENESIS_DISTRIBUTION_FILE, csvContent, 'utf-8'); + console.log(`Final CSV generated: ${GENESIS_DISTRIBUTION_FILE}`); + + // Step 5: Count addresses per project and write totals + const gaiaAddresses = new Set(result.filter(r => r.gaiaPoints > 0).map(r => r.address)); + const bcnaAddresses = new Set(result.filter(r => r.bcnaPoints > 0).map(r => r.address)); + const gaiaAddressCount = gaiaAddresses.size; + const bcnaAddressCount = bcnaAddresses.size; + + // Step 5: Write total points for each project to a new file + let totalPointsContent = 'Project,Total Points,Address Count,Tokens Per Point,Total Tokens\n'; + const gaiaTokensPerPoint = TOTAL_SUPPLY * GAIA_PERC_SUPPLY / totalGaiaPoints; + const bcnaTokensPerPoint = TOTAL_SUPPLY * BCNA_PERC_SUPPLY / totalBcnaPoints; + totalPointsContent += `Gaia,${totalGaiaPoints},${totalGaiaAddrs},${gaiaTokensPerPoint},${TOTAL_SUPPLY * GAIA_PERC_SUPPLY}\n`; + totalPointsContent += `BCNA,${totalBcnaPoints},${totalBcnaAddrs},${bcnaTokensPerPoint},${TOTAL_SUPPLY * BCNA_PERC_SUPPLY}\n`; fs.writeFileSync(TOTAL_POINTS_FILE, totalPointsContent, 'utf-8'); + console.log(`Total points file generated: total-points.csv`); + + + // Step 6: Write Point distribution + let pointsDistributionContent = 'Project,Points,Count\n'; + for (let points in gaiaPointsDistribution) { + pointsDistributionContent += `Gaia,${points},${gaiaPointsDistribution[points]}\n`; + } + for (let points in bcnaPointsDistribution) { + pointsDistributionContent += `BCNA,${points},${bcnaPointsDistribution[points]}\n`; + } + for (let points in mergedPointsDistribution) { + pointsDistributionContent += `Merged,${points},${mergedPointsDistribution[points]}\n`; + } + fs.writeFileSync(POINTS_SUMMARY_FILE, pointsDistributionContent, 'utf-8'); + console.log(`Points distribution file generated: ${POINTS_SUMMARY_FILE}`); +} + + +function checkAddresses() { + const zeroSeqData = JSON.parse(fs.readFileSync(INACTIVE_ACCOUNT_FILE, 'utf8')); + const nonZeroSeqData = JSON.parse(fs.readFileSync(ACTIVE_ACCOUNTS_FILE, 'utf8')); + // parse into account array + const zeroSeqAccounts = zeroSeqData.app_state.auth.accounts; + const nonZeroSeqAccounts = nonZeroSeqData.app_state.auth.accounts; + + // merge into single object + const accounts = [...zeroSeqAccounts, ...nonZeroSeqAccounts]; + let csvContent = 'Address,Points,New Allocation,Original Allocation\n'; + + let totalGaiaPoints = 0; + let totalBcnaPoints = 0; + fs.createReadStream(TOTAL_POINTS_FILE) + .pipe(csv()) + .on('data', (row) => { + if (row['Project'] === 'Gaia') { + totalGaiaPoints = parseInt(row['Total Points']); + } else if (row['Project'] === 'BCNA') { + totalBcnaPoints = parseInt(row['Total Points']); + } + }) + .on('end', () => { + fs.createReadStream(GENESIS_DISTRIBUTION_FILE) + .pipe(csv()) + .on('data', (row) => { + // grab address, gaia points, bcna points, total points + const address = row['Address']; + const points = parseInt(row['Points']); + const gaiaPoints = parseInt(row['Gaia Points']); + const bcnaPoints = parseInt(row['BCNA Points']); + + // find address from final-output in exported state + const account = accounts.find((acc) => acc.address === address); + if (!account) { + console.log(`Address ${address} not found in accounts`); + return; + } + + if (!points) { + console.log(`Address ${address} has invalid points`); + return; + } + + // calculate new, correct allocation + // this is calcualted by ((% tokens allocated to project * total supply) / total points allocated for project) * points + const gaiaAllocation = ((GAIA_PERC_SUPPLY * TOTAL_SUPPLY) / totalGaiaPoints) * gaiaPoints; + console.log(`${address} in Gaia with ${gaiaPoints} Points gets ${gaiaAllocation}TERP`); + const bcnaAllocation = ((BCNA_PERC_SUPPLY * TOTAL_SUPPLY) / totalBcnaPoints) * bcnaPoints; + console.log(`${address} in BCNA with ${bcnaPoints} Points gets ${bcnaAllocation}TERP`); + const expectedAllocation = gaiaAllocation + bcnaAllocation; + const originalAllocation = parseFloat(account.original_vesting_amount); + if (isNaN(originalAllocation)) { + console.error(`Failed to parse original_vesting_amount for address: ${address}, percentile:`, account.original_vesting_amount); + process.exit(1); // Exit with error + } + const scaledOriginal = originalAllocation / 1_000_000; + csvContent += `${address},${points},${expectedAllocation.toFixed(6)},${scaledOriginal.toFixed(6)}\n`; + }) + .on('end', () => { + // Write the CSV content to the file + fs.writeFileSync(PATCHED_DISTRIBUTION_FILE, `${csvContent}`, 'utf-8'); + console.log(`CSV file processed and output written to ${PATCHED_DISTRIBUTION_FILE}`); + }); + }); +} + +export { processGenesisDistribution, checkAddresses } \ No newline at end of file diff --git a/scripts/geth/Dockerfile b/scripts/geth/Dockerfile new file mode 100644 index 0000000..0901239 --- /dev/null +++ b/scripts/geth/Dockerfile @@ -0,0 +1,50 @@ +FROM ethereum/client-go:latest + +ARG NETWORK +ARG DATA_DIR +ARG RPC_ENABLE +ARG SNAPSHOT_ENDPOINT +ARG SNAPSHOT_FILE + +ARG RPC_JWT +ARG GETH_AUTHRPC_ADDR +ARG GETH_AUTHRPC_PORT +ARG GETH_AUTHRPC_JWTSECRET +ARG GETH_HTTP +ARG GETH_HTTP_ADDR +ARG GETH_HTTP_PORT +ARG GETH_WS_ADDR +ARG GETH_WS_API + + +# ----------------------------------------------------------------- +# Install tools required by the JWT helper (openssl, jq) +# ----------------------------------------------------------------- +RUN apk add --no-cache openssl jq + +# ---------- Runtime environment variables ---------- +ENV NETWORK=${NETWORK} +ENV DATA_DIR=${DATA_DIR} +ENV RPC_ENABLE=${RPC_ENABLE} +ENV SNAPSHOT_ENDPOINT=${SNAPSHOT_ENDPOINT} +ENV SNAPSHOT_FILE=${SNAPSHOT_FILE} + +# Geth‑specific env vars – the same names Docker/compose will set +ENV GETH_AUTHRPC_ADDR=${GETH_AUTHRPC_ADDR} +ENV GETH_AUTHRPC_PORT=${GETH_AUTHRPC_PORT} +ENV RPC_JWT=${RPC_JWT} +ENV GETH_AUTHRPC_JWTSECRET=${GETH_AUTHRPC_JWTSECRET} +ENV GETH_HTTP=${GETH_HTTP} +ENV GETH_HTTP_ADDR=${GETH_HTTP_ADDR} +ENV GETH_HTTP_PORT=${GETH_HTTP_PORT} +ENV GETH_WS_ADDR=${GETH_WS_ADDR} +ENV GETH_WS_API=${GETH_WS_API} + +# Copy your custom initialization script +COPY entrypoint.sh /entrypoint.sh + +# Make the script executable +RUN chmod +x /entrypoint.sh + +# Set the custom script as entrypoint +ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file diff --git a/scripts/geth/build.yml b/scripts/geth/build.yml new file mode 100644 index 0000000..0a1425c --- /dev/null +++ b/scripts/geth/build.yml @@ -0,0 +1,25 @@ +services: + node: + build: + context: ./ + args: + # ---- Geth configuration ------------------------------------------------- + NETWORK: mainnet + DATA_DIR: /root/.ethereum + SNAPSHOT_ENDPOINT: https://snapshots.ethpandaops.io/mainnet/geth/23700000/snapshot.tar.zst + SNAPSHOT_FILE: /tmp/snapshot.tar.zst + GETH_HTTP: true + GETH_HTTP_ADDR: 0.0.0.0 + GETH_HTTP_PORT: 8545 + GETH_WS_ADDR: 0.0.0.0 + GETH_WS_API: eth,net,web3 + RPC_ENABLE: true + GETH_AUTHRPC_ADDR: 0.0.0.0 + GETH_AUTHRPC_PORT: 8551 + RPC_JWT: add-yours-here + GETH_AUTHRPC_JWTSECRET: /etc/geth/jwtsecret + ports: + - '8551:8551' + - '8545:8545' + volumes: + - ./node-data:/root/.ethereum \ No newline at end of file diff --git a/scripts/geth/entrypoint.sh b/scripts/geth/entrypoint.sh new file mode 100644 index 0000000..403dbab --- /dev/null +++ b/scripts/geth/entrypoint.sh @@ -0,0 +1,35 @@ +#!/bin/sh +set -e # Exit on any error +echo "Starting Geth initialization for network: $NETWORK" + +# Create data directory if it doesn't exist +mkdir -p "$DATA_DIR" + +# JWT +secret_path="${GETH_AUTHRPC_JWTSECRET}" +mkdir -p "$(dirname "${secret_path}")" +jwt_secret="${RPC_JWT}" +echo "${jwt_secret}" > "${secret_path}" +chmod 600 "${secret_path}" + +# snapshot +echo "Downloading snapshot from: $SNAPSHOT_ENDPOINT" +if ! wget -q --show-progress -O "$SNAPSHOT_FILE" "$SNAPSHOT_ENDPOINT"; then + echo "Error: Failed to download snapshot" + exit 1 +fi +echo "Download complete. Extracting snapshot to: $DATA_DIR" +if ! tar -I zstd -xf "$SNAPSHOT_FILE" -C "$DATA_DIR"; then + echo "Error: Failed to extract snapshot" + exit 1 +fi +rm -f "$SNAPSHOT_FILE" +echo "Snapshot extraction complete. Data directory ready." + +# geth node command +CMD="geth --$NETWORK --datadir $DATA_DIR --http --http.addr $GETH_HTTP_ADDR --http.port $GETH_HTTP_PORT --authrpc.port $GETH_AUTHRPC_PORT --http.api eth,net,web3 --authrpc.jwtsecret $GETH_AUTHRPC_JWTSECRET --nodiscover=true" + + +echo "RPC endpoint enabled and exposed on $GETH_HTTP_ADDR:$GETH_HTTP_PORT" +echo "Starting Geth with command: $CMD" +exec $CMD \ No newline at end of file diff --git a/scripts/headstash-scripts.js b/scripts/headstash-scripts.js new file mode 100644 index 0000000..2a6f784 --- /dev/null +++ b/scripts/headstash-scripts.js @@ -0,0 +1,258 @@ +// Headstash Scripts that creates a single file from each community distribution csv. +// 1. calculate points for each community +// 2. identify and merge any address that exist in multiple community distributions +// 3. if solana wallet, base64 encode wallet address +import fs from 'fs'; +import { fileURLToPath } from 'url'; +import path, { dirname } from 'path' +import { applyNormalizationToAllProjects } from './calculations.js'; +import { readCsvFile, readYamlFile } from './utils.js'; +import { HEADSTASH_FINAL_TALLY, SINSEMILLA_JSON_FILE } from './constants.js' +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); +// step 1: determine point distribution for each communinty +// step 2: determine tokens to allocate for address based on tpp +// step 3: check for reoccurring addresses between all communnities. if addr exists, sum together points allocated. +// step 4: if address is not eth address, we need to base64 encode the address (as it is a solana public address) +// step 5: create new 1 new csv with final tally +function determinePointDistribution(pointsConfig, walletAmount) { + // Ensure walletAmount is a number + const amount = parseFloat(walletAmount) || 0; + + // Get cutoffs (these are actual token balances) + const threeCut = parseFloat(pointsConfig.threePointsUpTo.cutoffAmount) || 0; + const twoCut = parseFloat(pointsConfig.twoPointsUpTo.cutoffAmount) || 0; + + // Compare balance directly + if (amount >= threeCut) { + return 3; + } else if (amount >= twoCut) { + return 2; + } else if (amount > 0) { + return 1; + } + return 0; +} + +function isEthereumAddress(address) { + return address.length === 42 && address.startsWith('0x'); +} + +function encodeSolanaAddress(address) { + return Buffer.from(address, 'utf-8').toString('base64'); +} + +// Create an object to store the final tally +let finalTally = {}; + +async function processHeadstashDistributions(yamlFile) { + let addressCommunities = {}; + let communities = []; + + const data = await readYamlFile(yamlFile); + // create percentile ranges + // await fairPercentileRanges(data); + // await applyNormalizationToAllProjects(); + + for (let project of data.projects) { + try { + // Read the CSV file for the current community + const csvData = await readCsvFile(project.csv); + console.log(`Processing CSV for: ${project.name}`) + // Process the CSV data + csvData.forEach((row) => { + // Get the address and amount from the current row + let address = row.addr; + let amount = parseInt(row.amount); + let points = determinePointDistribution(project.points, amount); + let tokens = points * project.tpp; + const microTokens = Math.floor(tokens * 1_000_000); // integer in micro-denom + if (!isEthereumAddress(address)) { + address = encodeSolanaAddress(address); + } + console.log(`addr ${address}`) + console.log(`amount ${amount}`, amount) + console.log(`points ${points}`, points) + console.log(`tokens ${microTokens}`) + // Add the tokens to the final tally + if (address in finalTally) { + finalTally[address] += microTokens; + } else { + finalTally[address] = microTokens; + } + + // Add the community to the address's communities + if (!addressCommunities[address]) { + addressCommunities[address] = {}; + } + if (!addressCommunities[address][project.csv]) { + addressCommunities[address][project.csv] = 0; + } + addressCommunities[address][project.csv] += points; + + // Add the community to the list of communities + if (!communities.includes(project.csv)) { + communities.push(project.csv); + } + }); + } catch (error) { + console.error(`Error processing project: ${error}`); + } + } + + // Create a new CSV file with the final tally + try { + console.log('Creating Final tally CSV...'); + await createFinalTallyCsv(finalTally, addressCommunities, communities); + console.log('Final tally CSV file created successfully!'); + } catch (error) { + console.error(`Error creating final tally CSV: ${error}`); + } +} + + + +// Function to create the final tally CSV file +function createFinalTallyCsv(finalTally, addressCommunities, communities) { + return new Promise(async (resolve, reject) => { + let csvContent = "addr,allocation"; + for (let community of communities) { + csvContent += `,${path.basename(community)}`; + } + csvContent += "\n"; + + Object.keys(finalTally).sort((a, b) => finalTally[b] - finalTally[a]).forEach((address) => { + let row = `${address},${finalTally[address]}`; + for (let community of communities) { + if (addressCommunities[address] && addressCommunities[address][community]) { + row += `,${addressCommunities[address][community]}`; + } else { + row += ",0"; + } + } + csvContent += row + "\n"; + }); + + fs.writeFile(HEADSTASH_FINAL_TALLY, csvContent, (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }); + + try { + console.log('Creating Community points summary CSV...'); + await createCommunityPointsSummaryCsv(addressCommunities, communities); + console.log('Community points summary CSV file created successfully!'); + } catch (error) { + console.error(`Error creating community points summary CSV: ${error}`); + } + }); +} + +// Function to create the community points summary CSV file +function createCommunityPointsSummaryCsv(addressCommunities, communities) { + return new Promise((resolve, reject) => { + let communityPoints = {}; + + // Calculate the sum of points for each community + communities.forEach((community) => { + communityPoints[community] = { points: {}, addrCount: 0 }; + Object.keys(addressCommunities).forEach((address) => { + if (addressCommunities[address][community]) { + communityPoints[community].addrCount++; + const points = addressCommunities[address][community]; + if (communityPoints[community].points[points]) { + communityPoints[community].points[points]++; + } else { + communityPoints[community].points[points] = 1; + } + } + }); + }); + + // Create the CSV content + let csvContent = "community,addrCount,points,count\n"; + communities.forEach((community) => { + Object.keys(communityPoints[community].points).forEach((points) => { + csvContent += `${path.basename(community)},${communityPoints[community].addrCount},${points},${communityPoints[community].points[points]}\n`; + }); + }); + + // Write the CSV file + fs.writeFile('../headstash/scripts-data/community_points_summary.csv', csvContent, (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); +} + +/** + * Generates Sinsemilla-compatible merkle tree input + * - Reads final_tally.csv (with 'addr' and 'allocation' columns) + * - Assigns equal amounts of uterp and uthiol = allocation value + */ +const generateMerkleInput = async () => { + const csvPath = path.join(__dirname, HEADSTASH_FINAL_TALLY); + const outputPath = path.join(__dirname, SINSEMILLA_JSON_FILE); + + try { + const rows = await readCsvFile(csvPath); + console.log(`✅ Loaded ${rows.length} rows from ${csvPath}`); + + const result = {}; + + for (const row of rows) { + const address = row.addr?.trim(); + const allocation = row.allocation?.trim(); + + if (!address) { + console.warn(`⚠️ Missing address, skipping row:`, row); + continue; + } + + const amount = allocation && !isNaN(allocation) ? allocation : '0'; + + if (amount === '0') { + // Optional: skip zero allocations + // Or include them with 0 amount + console.log(`➡️ Address ${address} has 0 allocation`); + } + + // TODO: allow defining tokens and their amounts + result[address] = [ + { + name: "uterp", + amount // This is a string + }, + { + name: "uthiol", + amount // Same amount for uthiol + } + ]; + } + // Sort addresses lexicographically for deterministic order + const sortedResult = {}; + Object.keys(result) + .sort() + .forEach((key) => { + sortedResult[key] = result[key]; + }); + + // Write output + fs.writeFileSync(outputPath, JSON.stringify(result, null, 2), 'utf8'); + console.log(`✅ Merkle input written to ${outputPath}`); + console.log(`💡 File ready for Sinsemilla merkle tree generation`); + + return result; + } catch (error) { + console.error(`❌ Error generating merkle input:`, error.message); + throw error; + } +}; + +export { processHeadstashDistributions, generateMerkleInput } \ No newline at end of file diff --git a/scripts/main.js b/scripts/main.js new file mode 100644 index 0000000..94c07b4 --- /dev/null +++ b/scripts/main.js @@ -0,0 +1,58 @@ +import fs from 'fs'; + +import { processSacNFTdata, encodeAddrs } from "./solana-utils.js"; +import { processGenesisState, calculateTokenDifference, summarizeAllResults, summarizeScavengerHunt } from './exported-state.js'; +import { processHeadstashDistributions, generateMerkleInput } from './headstash-scripts.js'; +import { processGenesisDistribution, checkAddresses } from './genesis-script.js'; +import { fairPercentileRanges, applyNormalizationToAllProjects, generateOverviewReadme } from './calculations.js' +import { SAC_ENCODED_FILE, SAC_JSON_PATH, HEADSTASH_YAML, ETH_RPC_URL } from './constants.js'; +import { readYamlFile } from './utils.js' +import { determineAllPubkeys } from './pubkeys.js' + +// Process command line arguments +const args = process.argv.slice(2); +if (args.length < 1) { + console.error('Invalid option.'); +} else if (args[0] === '-1') { + processGenesisDistribution().catch(console.error); + processGenesisState(); + checkAddresses(); + calculateTokenDifference(); + summarizeAllResults(); +} else if (args[0] === '-2') { + processGenesisDistribution().catch(console.error); +} else if (args[0] === '-3') { + processGenesisState(); +} else if (args[0] === '-4') { + checkAddresses(); +} else if (args[0] === '-5') { + calculateTokenDifference(); +} else if (args[0] === '-6') { + summarizeAllResults(); + summarizeScavengerHunt(); +} else if (args[0] === '-hs') { + const data = await readYamlFile(HEADSTASH_YAML); + await fairPercentileRanges(data); + await applyNormalizationToAllProjects(); + await processSacNFTdata(SAC_JSON_PATH); + await encodeAddrs(SAC_ENCODED_FILE, SAC_ENCODED_FILE); + await processHeadstashDistributions(HEADSTASH_YAML).catch(console.error); +} else if (args[0] === '-7') { + await processHeadstashDistributions(HEADSTASH_YAML).catch(console.error); +} else if (args[0] === '-8') { + applyNormalizationToAllProjects(); +} else if (args[0] === '-9') { + // reads json of solana NFT holder snapshot, creates csv with # of tokens unique addrs hold + await processSacNFTdata(SAC_JSON_PATH); + await encodeAddrs(SAC_ENCODED_FILE, SAC_ENCODED_FILE); +} else if (args[0] === '-10') { + generateMerkleInput() +} else if (args[0] === '-11') { + generateOverviewReadme() +} else if (args[0] === '-12') { + const provider = new ethers.JsonRpcProvider(ETH_RPC_URL); + determineAllPubkeys(provider) + +} else { + console.error('Invalid option.'); +} \ No newline at end of file diff --git a/scripts/package-lock.json b/scripts/package-lock.json new file mode 100644 index 0000000..3fd2dd2 --- /dev/null +++ b/scripts/package-lock.json @@ -0,0 +1,1039 @@ +{ + "name": "scripts", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "scripts", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "bech32": "2.0.0", + "csv-parser": "^3.0.0", + "ethereumjs-util": "^7.1.5", + "ethers": "^6.15.0", + "yaml": "^2.8.1" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", + "license": "MIT" + }, + "node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@types/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/secp256k1": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.7.tgz", + "integrity": "sha512-Rcvjl6vARGAKRO6jHeKMatGrvOMGrR/AR11N1x2LqintPCyDZ7NBhrh238Z2VZc7aM7KIwnFpFQ7fnfK4H/9Qw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "license": "MIT" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/base-x": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", + "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==", + "license": "MIT" + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "license": "MIT" + }, + "node_modules/bn.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", + "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==", + "license": "MIT" + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "license": "MIT", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "license": "MIT" + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/cipher-base": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz", + "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/csv-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.0.0.tgz", + "integrity": "sha512-s6OYSXAK3IdKqYO33y09jhypG/bSDHPuyCme/IdEHfWpLf/jKcpitVFyOC6UemgGk8v7Q5u2XE0vvwmanxhGlQ==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "csv-parser": "bin/csv-parser" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "license": "MIT", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ethers": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.15.0.tgz", + "integrity": "sha512-Kf/3ZW54L4UT0pZtsY/rf+EkBU7Qi5nnhonjUb8yTXcxH3cdcWrV2cRyk0Xk/4jK6OoHhxxZHriyhje20If2hQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "22.7.5", + "aes-js": "4.0.0-beta.5", + "tslib": "2.7.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz", + "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/hash-base/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hash-base/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/hash-base/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/hash-base/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "license": "MIT" + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.5.tgz", + "integrity": "sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==", + "license": "MIT", + "dependencies": { + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "ripemd160": "^2.0.3", + "safe-buffer": "^5.2.1", + "sha.js": "^2.4.12", + "to-buffer": "^1.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ripemd160": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz", + "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.1.2", + "inherits": "^2.0.4" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^5.2.0" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "license": "MIT" + }, + "node_modules/secp256k1": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.4.tgz", + "integrity": "sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "elliptic": "^6.5.7", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/secp256k1/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "license": "MIT" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, + "node_modules/sha.js": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.0" + }, + "bin": { + "sha.js": "bin.js" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yaml": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + } + } +} diff --git a/scripts/package.json b/scripts/package.json new file mode 100644 index 0000000..1880587 --- /dev/null +++ b/scripts/package.json @@ -0,0 +1,20 @@ +{ + "name": "scripts", + "version": "1.0.0", + "description": "", + "main": "index.js", + "type": "module", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "bech32": "2.0.0", + "csv-parser": "^3.0.0", + "ethereumjs-util": "^7.1.5", + "ethers": "^6.15.0", + "yaml": "^2.8.1" + } +} diff --git a/scripts/pubkeys.js b/scripts/pubkeys.js new file mode 100644 index 0000000..70c8d52 --- /dev/null +++ b/scripts/pubkeys.js @@ -0,0 +1,70 @@ +import { readCsvFile, appendToCsv, readYamlFile, toMarkdownTable, escapeRegExp, toOverviewMarkdownTable, loadProjectAddresses } from "./utils.js"; +import { ethers, hexlify } from "ethers"; +import { ecrecover, bufferToInt } from "ethereumjs-util"; +import fs from 'fs'; +import path, { dirname } from 'path' +import yaml from "yaml"; +// for each address in each project: +// retrieve latest transaction with signature +// - if no signature exists, add address to dead/stale csv file +// recover pubkey using ecrecover +// map addr,pubkey together + +async function determineAllPubkeys(provider) { + const distributionData = await readYamlFile(yamlPath); + const projectPromises = Object.values(distributionData.projects).map( + async (proj) => { + // `proj.csv` holds the CSV path for that project + const records = await loadProjectAddresses(proj.csv); + + // Turn CSV rows into clean holder objects + const holders = records + .map((r) => ({ + address: r.addr, + amount: parseFloat(r.amount), + })) + .filter((h) => !isNaN(h.amount)); + + for (const holder of holders) { + const result = await processAddress(holder.address, provider); + if (result) { + await appendToCsv("address_pubkey_map.csv", [ + result.address, + result.pubKey, + ]); + } + } + } + ); + + // Wait for every project to finish + await Promise.all(projectPromises); + console.log("✅ Finished. Check dead_addresses.csv & address_pubkey_map.csv"); + + +} +/* ------------------------------------------------------------ + Core logic for a single address + ------------------------------------------------------------ */ +async function processAddress(address, provider) { + // 1️⃣ Get transaction history – ethers v6 `provider.getHistory` + const history = await provider.getHistory(address); + if (!history || history.length === 0) { + // No tx → dead / stale address + await appendToCsv("dead_addresses.csv", [address]); + return null; + } + + const tx = history[history.length - 1]; // history is chronological + if (!tx?.r || !tx?.s || !tx?.v) { + // Somehow missing signature data – treat as dead + await appendToCsv("dead_addresses.csv", [address]); + return null; + } + + const pubKey = hexlify(ecrecover(tx.hash, bufferToInt(tx.v), tx.r, tx.s)); + + return { address, pubKey }; +} + +export { processAddress, determineAllPubkeys } \ No newline at end of file diff --git a/scripts/solana-utils.js b/scripts/solana-utils.js new file mode 100644 index 0000000..cf07938 --- /dev/null +++ b/scripts/solana-utils.js @@ -0,0 +1,58 @@ +import fs from 'fs'; +import { readFile } from 'fs/promises'; +import csv from 'csv-parser'; +import { SAC_ENCODED_FILE } from './constants.js'; + +const processSacNFTdata = async (file) => { + console.log(file) + + const stringCounts = {}; + + // Parse the JSON data + const data = await readFile(file, 'utf8'); // ✅ Properly await + // Count the occurrences of each string + JSON.parse(data).forEach((string) => { + if (stringCounts[string]) { + stringCounts[string]++; + } else { + stringCounts[string] = 1; + } + }); + + // Sort the string counts by value in descending order + const sortedStringCounts = Object.entries(stringCounts).sort((a, b) => b[1] - a[1]); + + // Create the output data string + const outputData = "addr,amount\n" + sortedStringCounts.map(([string, count]) => `${string},${count}`).join('\n') + '\n'; + + // Write the result to a new CSV file + fs.writeFile(SAC_ENCODED_FILE, outputData, 'utf8', (err) => { + if (err) { + console.error(err); + } else { + console.log(`Output written to: ${SAC_ENCODED_FILE}`); + } + }); + // base64-encodes solana addresses in format that will be used to verify offline signature + +}; + +// base64 encode solana addresses +const encodeAddrs = async (inputFile, outputFile) => { + const inputStream = fs.createReadStream(inputFile); + const outputStream = fs.createWriteStream(outputFile); + + inputStream + .pipe(csv({ mapHeaders: ({ header }) => header.trim() })) + .on('data', (row) => { + const addr = row.addr; + const encodedAddr = Buffer.from(addr).toString('base64'); + outputStream.write(`${encodedAddr},${row.Amount},${row.Points},${row.Coins}\n`); + }) + .on('end', () => { + console.log('CSV file has been processed and written to output.csv'); + }); +}; + + +export { processSacNFTdata, encodeAddrs } \ No newline at end of file diff --git a/scripts/template_airdrop.yaml b/scripts/template_airdrop.yaml new file mode 100644 index 0000000..b37faea --- /dev/null +++ b/scripts/template_airdrop.yaml @@ -0,0 +1,160 @@ +# genesis-config.yaml +zk_params: + contract: + - method: # new,existing + - new: + chain: "cosmos.terp" + - existing: + # ... existing params in new + contract: "terp1..." + storage: + - method: # oneof,composite + - oneof: + - composite: # custom blend of oneofs + deployment: + - method: # oneof,composite + api-node: + - method: "new" # new,existing + +chains: + cosmos: + terp: + chain-id: "morocco-1" + prefix: "terp" + native_coin: "uterp" + gas_coin: "uthiol" + rpc: "https://rpc.terp.network:443" + grpc: "https://grpc.terp.network:443" + api: "https://api.terp.network:443" + +# Global Parameters +total_supply: 420000000 +activity-multiplier: + - range: + - min: 0 + - max: 10 + - additional: + - terp: + - thiol: + - range: + - min: 11 + - max: 100 + - additional: + - terp: + - thiol: + - range: + - min: 100 + - max: -1 + - additional: + - terp: + - thiol: + +# Projects Configuration +projects: + - name: bcna + csv: "../genesis/bcna_delegators.csv" + chain_type: "cosmos" + category: "genesis" + allocation_percentage: 0.01911 + points_ranges: + - points: 1 + min: 1 + max: 56290873.26 + tpp: 5790.90909 # tokens per point + - points: 2 + min: 56290873.26 + max: 581059663.70 + tpp: 5790.90909 + - points: 3 + min: 581059663.70 + max: 11695142809644.00 + tpp: 5790.90909 + + - name: gaia + csv: "../genesis/gaia.csv" + chain_type: "cosmos" + category: "genesis" + allocation_percentage: 0.061152 + points_ranges: + - points: 1 + label: "1st - 74th" + min: 1 + max: 50000000.0 + tpp: 119.131693 + - points: 2 + label: "75th - 95th" + min: 50000000.0 + max: 500000000.0 + tpp: 119.131693 + - points: 3 + label: "96th - 100th" + min: 500000000.0 + max: 10000000000.0 + tpp: 119.131693 + + - name: scavenger_hunt + csv: "../genesis/scavenger_hunt.csv" + airdrop_type: "genesis" + allocation_percentage: 15.0 + points_ranges: [] + + - name: terp_og + csv: "../genesis/terp_og.csv" + chain_type: "genesis" + allocation_percentage: 10.0 + points_ranges: [] + + + +# Blends of Projects Parameters +project_blends: + - blend: + - projects: [gaia, bcna] + - points_ranges: + - points: 4 + distribution: + gaia: 1 + bcna: 3 + tpp: 1477.51019575 + - points: 5 + distribution: + gaia: 2 + bcna: 3 + tpp: 1205.8344952 + - points: 6 + distribution: + gaia: 3 + bcna: 3 + tpp: 1024.7173615 + - points: 7 + distribution: + gaia: 1 + bcna: 6 + tpp: 1671.564267 + - points: 8 + distribution: + gaia: 2 + bcna: 6 + tpp: 1477.510195 + - points: 9 + distribution: + gaia: 3 + bcna: 6 + tpp: 1326.579251 + - points: 10 + distribution: + gaia: 1 + bcna: 9 + tpp: 1749.185896 + - points: 11 + distribution: + gaia: 2 + bcna: 9 + tpp: 1600.999150 + - points: 12 + distribution: + gaia: 3 + bcna: 9 + tpp: 1477.510195 + + \ No newline at end of file diff --git a/scripts/test-snap-n-pull.sh b/scripts/test-snap-n-pull.sh new file mode 100644 index 0000000..96b4b06 --- /dev/null +++ b/scripts/test-snap-n-pull.sh @@ -0,0 +1 @@ +#!/bin/sh \ No newline at end of file diff --git a/scripts/utils.js b/scripts/utils.js new file mode 100644 index 0000000..f9edcad --- /dev/null +++ b/scripts/utils.js @@ -0,0 +1,157 @@ +import fs from 'fs'; +import csv from 'csv-parser'; +import { parse, stringify } from 'yaml' + +async function loadProjectAddresses(csvPath) { + const rows = await readCsvFile(csvPath); + // Assume CSV has headers: addr,amount + return rows.map((r) => ({ + addr: r.addr, + amount: r.amount + })); +} + + +// Read Yaml file, parses into JSON object +const readYamlFile = async (filename) => { + // Read existing YAML file + const fileContent = fs.readFileSync(filename, 'utf8'); + return parse(fileContent); +}; + + +// Read JSON files +const readJsonFile = async (filename) => { + return new Promise((resolve, reject) => { + fs.readFile(filename, 'utf8', (err, data) => { + if (err) { + reject(err); + } else { + resolve(JSON.parse(data)); + } + }); + }); +}; + +// Read CSV file +function readCsvFile(filePath) { + return new Promise((resolve, reject) => { + const csvData = []; + + fs.createReadStream(filePath) + .pipe(csv()) + .on('data', (row) => { csvData.push(row) }) + .on('end', () => { resolve(csvData) }) + .on('error', (error) => { reject(error) }); + }); +} + + +// Convert percentileValues to Markdown table +function toMarkdownTable(data) { + if (!data || Object.keys(data).length === 0) return 'No data'; + + let rows; + + if (Array.isArray(data)) { + rows = data; + } else { + // Convert { "1%": { ... } } → [ { percentile: "1%", ... } ] + rows = Object.entries(data).map(([key, value]) => ({ + percentile: key, + ...value + })); + } + + const headers = Object.keys(rows[0]); + const separator = headers.map(() => '---'); + + return [ + '| ' + headers.join(' | ') + ' |', + '| ' + separator.join(' | ') + ' |', + ...rows.map(row => '| ' + headers.map(h => String(row[h] ?? '')).join(' | ') + ' |') + ].join('\n'); +} + +function toOverviewMarkdownTable(projects) { + const headers = [ + 'Project', + '# of Addresses', + 'Date Of Snapshot', + 'Est. Total TERP', + 'Average Token Per Point', + '% of headstash allocation' + ]; + const separator = ['---', '---', '---', '---', '---', '---']; + + // Sort projects by name for consistent output + projects.sort((a, b) => a.name.localeCompare(b.name)); + + const rows = projects.map(p => { + const csvPath = p.csv.replace('../', './'); // Normalize path for URL + const readmePath = csvPath.replace(/\/[^\/]+\.csv$/, '/README.md'); // Replace csv with README + const projectLink = `[${p.name.replace(/-/g, ' ')}](${readmePath})`; + + // Format date: yy-mm-dd → MMM Do, YYYY (with proper ordinal suffixes) + const [year, month, day] = p.snapshot_date.split('-'); + const date = new Date(`20${year}`, month - 1, parseInt(day, 10)); // Ensure day is int + + const formattedDate = isNaN(date.getTime()) + ? 'N/A' + : date.toLocaleDateString('en-US', { + year: 'numeric', + month: 'short', + day: 'numeric' + }).replace(/\b(\d+)(?=\b)/, (match) => { + const num = parseInt(match, 10); + const suffix = ['th', 'st', 'nd', 'rd'][(num % 10) - 1] || 'th'; + // Handle teens (11th, 12th, 13th) — special case + if (num > 10 && num < 20) return num + 'th'; + return num + suffix; + }); + // Calculate est total TERP = tpp * totalHolders + const estTotalTERP = p.tpp && p.points.totalHolders ? (p.tpp * p.points.totalHolders).toFixed(2) : ''; + + // Avg Token Per Point = tpp + const avgTPP = p.tpp ? p.tpp.toFixed(6) : ''; + + // % of total supply + const percentSupply = p.allocation_percentage ? `${(p.allocation_percentage * 100).toFixed(2)}%` : ''; + + return [ + projectLink, + `\`${p.points.totalHolders || 'N/A'}\``, + formattedDate, + estTotalTERP ? `\`${estTotalTERP} TERP\`` : '', + `\`${avgTPP}\``, + percentSupply ? `\`${percentSupply}\`` : '' + ].join(' | '); + }); + + return [ + '| ' + headers.join(' | ') + ' |', + '| ' + separator.join(' | ') + ' |', + ...rows.map(row => '| ' + row + ' |'), + '| |`' + projects.reduce((sum, p) => sum + p.points.totalHolders, 0) + '`| | `' + projects.reduce((sum, p) => sum + (p.tpp * p.points.totalHolders || 0), 0).toFixed(6) + ' TERP & THIOL` |||', + '' + ].join('\n'); +} + + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // Escape special regex chars +} + + +/* ------------------------------------------------------------ + Append a line to a CSV file (creates the file if it does not + exist). The file is opened in append mode for low‑overhead I/O. + ------------------------------------------------------------ */ +async function appendToCsv(filePath, values) { + const line = stringify([values], { header: false }); + fs.appendFile(filePath, line); +} + + +export { readCsvFile, toOverviewMarkdownTable, readJsonFile, readYamlFile, toMarkdownTable, escapeRegExp, loadProjectAddresses, appendToCsv } + diff --git a/scripts/validate.js b/scripts/validate.js new file mode 100644 index 0000000..7a5fae6 --- /dev/null +++ b/scripts/validate.js @@ -0,0 +1 @@ +// TODO: validate current yaml file has accurately calculated values diff --git a/scripts/yarn.lock b/scripts/yarn.lock new file mode 100644 index 0000000..526fb51 --- /dev/null +++ b/scripts/yarn.lock @@ -0,0 +1,661 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adraffy/ens-normalize@1.10.1": + version "1.10.1" + resolved "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz" + integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== + +"@noble/curves@1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + +"@noble/hashes@1.3.2": + version "1.3.2" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@types/bn.js@^5.1.0": + version "5.2.0" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.2.0.tgz" + integrity sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q== + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@22.7.5": + version "22.7.5" + resolved "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz" + integrity sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ== + dependencies: + undici-types "~6.19.2" + +"@types/pbkdf2@^3.0.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz" + integrity sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew== + dependencies: + "@types/node" "*" + +"@types/secp256k1@^4.0.1": + version "4.0.7" + resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.7.tgz" + integrity sha512-Rcvjl6vARGAKRO6jHeKMatGrvOMGrR/AR11N1x2LqintPCyDZ7NBhrh238Z2VZc7aM7KIwnFpFQ7fnfK4H/9Qw== + dependencies: + "@types/node" "*" + +aes-js@4.0.0-beta.5: + version "4.0.0-beta.5" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz" + integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +base-x@^3.0.2: + version "3.0.11" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz" + integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== + dependencies: + safe-buffer "^5.0.1" + +bech32@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz" + integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== + +blakejs@^1.1.0: + version "1.2.1" + resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" + integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== + +bn.js@^4.11.9: + version "4.12.2" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz" + integrity sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw== + +bn.js@^5.1.2, bn.js@^5.2.0: + version "5.2.2" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz" + integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== + +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +bs58@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== + dependencies: + base-x "^3.0.2" + +bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bind@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" + get-intrinsic "^1.2.4" + set-function-length "^1.2.2" + +call-bound@^1.0.3, call-bound@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.7" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz" + integrity sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA== + dependencies: + inherits "^2.0.4" + safe-buffer "^5.2.1" + to-buffer "^1.2.2" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +csv-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/csv-parser/-/csv-parser-3.0.0.tgz" + integrity sha512-s6OYSXAK3IdKqYO33y09jhypG/bSDHPuyCme/IdEHfWpLf/jKcpitVFyOC6UemgGk8v7Q5u2XE0vvwmanxhGlQ== + dependencies: + minimist "^1.2.0" + +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +elliptic@^6.5.7: + version "6.6.1" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz" + integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +es-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" + +ethereum-cryptography@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz" + integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== + dependencies: + "@types/pbkdf2" "^3.0.0" + "@types/secp256k1" "^4.0.1" + blakejs "^1.1.0" + browserify-aes "^1.2.0" + bs58check "^2.1.2" + create-hash "^1.2.0" + create-hmac "^1.1.7" + hash.js "^1.1.7" + keccak "^3.0.0" + pbkdf2 "^3.0.17" + randombytes "^2.1.0" + safe-buffer "^5.1.2" + scrypt-js "^3.0.0" + secp256k1 "^4.0.1" + setimmediate "^1.0.5" + +ethereumjs-util@^7.1.5: + version "7.1.5" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" + integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== + dependencies: + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + rlp "^2.2.4" + +ethers@^6.15.0: + version "6.15.0" + resolved "https://registry.npmjs.org/ethers/-/ethers-6.15.0.tgz" + integrity sha512-Kf/3ZW54L4UT0pZtsY/rf+EkBU7Qi5nnhonjUb8yTXcxH3cdcWrV2cRyk0Xk/4jK6OoHhxxZHriyhje20If2hQ== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "22.7.5" + aes-js "4.0.0-beta.5" + tslib "2.7.0" + ws "8.17.1" + +evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +for-each@^0.3.5: + version "0.3.5" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz" + integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== + dependencies: + is-callable "^1.2.7" + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +get-intrinsic@^1.2.4, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hash-base@^3.0.0, hash-base@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz" + integrity sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg== + dependencies: + inherits "^2.0.4" + readable-stream "^2.3.8" + safe-buffer "^5.2.1" + to-buffer "^1.2.1" + +hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-typed-array@^1.1.14: + version "1.1.15" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz" + integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== + dependencies: + which-typed-array "^1.1.16" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +keccak@^3.0.0: + version "3.0.4" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz" + integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimist@^1.2.0: + version "1.2.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + +node-gyp-build@^4.2.0: + version "4.8.4" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz" + integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== + +pbkdf2@^3.0.17: + version "3.1.5" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.5.tgz" + integrity sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ== + dependencies: + create-hash "^1.2.0" + create-hmac "^1.1.7" + ripemd160 "^2.0.3" + safe-buffer "^5.2.1" + sha.js "^2.4.12" + to-buffer "^1.2.1" + +possible-typed-array-names@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz" + integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +readable-stream@^2.3.8: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz" + integrity sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA== + dependencies: + hash-base "^3.1.2" + inherits "^2.0.4" + +rlp@^2.2.4: + version "2.2.7" + resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== + dependencies: + bn.js "^5.2.0" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +scrypt-js@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + +secp256k1@^4.0.1: + version "4.0.4" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.4.tgz" + integrity sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw== + dependencies: + elliptic "^6.5.7" + node-addon-api "^5.0.0" + node-gyp-build "^4.2.0" + +set-function-length@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +sha.js@^2.4.0, sha.js@^2.4.12, sha.js@^2.4.8: + version "2.4.12" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz" + integrity sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w== + dependencies: + inherits "^2.0.4" + safe-buffer "^5.2.1" + to-buffer "^1.2.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +to-buffer@^1.2.0, to-buffer@^1.2.1, to-buffer@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz" + integrity sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw== + dependencies: + isarray "^2.0.5" + safe-buffer "^5.2.1" + typed-array-buffer "^1.0.3" + +tslib@2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== + +typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz" + integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-typed-array "^1.1.14" + +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +which-typed-array@^1.1.16: + version "1.1.19" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz" + integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + for-each "^0.3.5" + get-proto "^1.0.1" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + +ws@8.17.1: + version "8.17.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + +yaml@^2.8.1: + version "2.8.1" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz" + integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw== diff --git a/static/bb-dist.png b/static/bb-dist.png new file mode 100644 index 0000000..0142df7 Binary files /dev/null and b/static/bb-dist.png differ diff --git a/static/buds-dist.png b/static/buds-dist.png new file mode 100644 index 0000000..257f765 Binary files /dev/null and b/static/buds-dist.png differ diff --git a/static/cb-dist.png b/static/cb-dist.png new file mode 100644 index 0000000..5422ff6 Binary files /dev/null and b/static/cb-dist.png differ diff --git a/static/cbg-dist.png b/static/cbg-dist.png new file mode 100644 index 0000000..bb6267d Binary files /dev/null and b/static/cbg-dist.png differ diff --git a/static/ccc-dist.png b/static/ccc-dist.png new file mode 100644 index 0000000..c8ea38f Binary files /dev/null and b/static/ccc-dist.png differ diff --git a/static/cht-dist.png b/static/cht-dist.png new file mode 100644 index 0000000..bfb9705 Binary files /dev/null and b/static/cht-dist.png differ diff --git a/static/cw-dist.png b/static/cw-dist.png new file mode 100644 index 0000000..91d6ccf Binary files /dev/null and b/static/cw-dist.png differ diff --git a/static/gg-dist.png b/static/gg-dist.png new file mode 100644 index 0000000..e72e470 Binary files /dev/null and b/static/gg-dist.png differ diff --git a/static/hlk-dist.png b/static/hlk-dist.png new file mode 100644 index 0000000..5bf88da Binary files /dev/null and b/static/hlk-dist.png differ diff --git a/static/hps-dist.png b/static/hps-dist.png new file mode 100644 index 0000000..021001f Binary files /dev/null and b/static/hps-dist.png differ diff --git a/static/n8-dist.png b/static/n8-dist.png new file mode 100644 index 0000000..815561e Binary files /dev/null and b/static/n8-dist.png differ diff --git a/static/rebud-dist.png b/static/rebud-dist.png new file mode 100644 index 0000000..c0ccc7a Binary files /dev/null and b/static/rebud-dist.png differ diff --git a/static/sac-dist.png b/static/sac-dist.png new file mode 100644 index 0000000..30a4fdd Binary files /dev/null and b/static/sac-dist.png differ diff --git a/static/sesh-dist.png b/static/sesh-dist.png new file mode 100644 index 0000000..ce3276a Binary files /dev/null and b/static/sesh-dist.png differ diff --git a/static/shurlok-dist.png b/static/shurlok-dist.png new file mode 100644 index 0000000..5e57678 Binary files /dev/null and b/static/shurlok-dist.png differ diff --git a/static/sk-dist.png b/static/sk-dist.png new file mode 100644 index 0000000..0689d77 Binary files /dev/null and b/static/sk-dist.png differ diff --git a/static/wab-dist.png b/static/wab-dist.png new file mode 100644 index 0000000..d4eb989 Binary files /dev/null and b/static/wab-dist.png differ diff --git a/test-press/README.md b/test-press/README.md new file mode 100644 index 0000000..e754e40 --- /dev/null +++ b/test-press/README.md @@ -0,0 +1 @@ +# Test Press: Full Testing Suite diff --git a/test-press/src/suite.rs b/test-press/src/suite.rs new file mode 100644 index 0000000..ead611b --- /dev/null +++ b/test-press/src/suite.rs @@ -0,0 +1,12 @@ + +// unit test +// integation test +// prop test +// verify current deployments +// suite +pub struct TestPressSuite { +// app +// wallet gen +// headstash gen +// cw-headstash cw-orch suite +} \ No newline at end of file diff --git a/test-press/src/unit.rs b/test-press/src/unit.rs new file mode 100644 index 0000000..1e7b0f0 --- /dev/null +++ b/test-press/src/unit.rs @@ -0,0 +1,21 @@ +mod fields { + mod secp256k1 { + + #[test] + fn test_fp_div() { + let a = Secp256k1Fp::from(1000u64); + let b = Secp256k1Fp::from(10u64); + let c_expected = a * b.invert().unwrap(); + + let circuit = FpDivTestCircuit { a, b, c_expected }; + let prover = MockProver::run(17, &circuit, vec![]).unwrap(); + assert_eq!(prover.verify(), Ok(())); + } + } +} + +mod pairing {} +mod pre_proof {} +mod proof {} +mod nullifier {} +mod note_commitment {} diff --git a/zk-crates/README.md b/zk-crates/README.md new file mode 100644 index 0000000..c7c02e8 --- /dev/null +++ b/zk-crates/README.md @@ -0,0 +1,8 @@ +# Zk-Crates + +| Package |Description | | +|---------------------------|------| -| +| cw-headstash | documentation and specification of the circuit layout and tooling +| zk-headstash | libraries for proof circuit generation and implementation | | +| snap-n-pull || +| submodules || diff --git a/zk-crates/cw-headstash/.cargo/config.toml b/zk-crates/cw-headstash/.cargo/config.toml new file mode 100644 index 0000000..274059f --- /dev/null +++ b/zk-crates/cw-headstash/.cargo/config.toml @@ -0,0 +1,5 @@ +[alias] +schema = "run --example schema" +wasm = "build --release --target wasm32-unknown-unknown" +wasm-debug = "build --target wasm32-unknown-unknown" +unit-test = "test --lib" \ No newline at end of file diff --git a/zk-crates/cw-headstash/Cargo.lock b/zk-crates/cw-headstash/Cargo.lock new file mode 100644 index 0000000..92b5e37 --- /dev/null +++ b/zk-crates/cw-headstash/Cargo.lock @@ -0,0 +1,1248 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools", + "num-traits", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest", + "itertools", + "num-bigint", + "num-traits", + "paste", + "rayon", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", + "rayon", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bech32" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bnum" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e31ea183f6ee62ac8b8a8cf7feddd766317adfb13ff469de57ce033efd6a790" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + +[[package]] +name = "cosmwasm-core" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35b6dc17e7fd89d0a0a58f12ef33f0bbdf09a6a14c3dfb383eae665e5889250e" + +[[package]] +name = "cosmwasm-crypto" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2f53285517db3e33d825b3e46301efe845135778527e1295154413b2f0469e" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-serialize", + "cosmwasm-core", + "curve25519-dalek", + "digest", + "ecdsa", + "ed25519-zebra", + "k256", + "num-traits", + "p256", + "rand_core", + "rayon", + "sha2", + "thiserror", +] + +[[package]] +name = "cosmwasm-derive" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a782b93fae93e57ca8ad3e9e994e784583f5933aeaaa5c80a545c4b437be2047" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "cosmwasm-schema" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6984ab21b47a096e17ae4c73cea2123a704d4b6686c39421247ad67020d76f95" +dependencies = [ + "cosmwasm-schema-derive", + "schemars", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cosmwasm-schema-derive" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01c9214319017f6ebd8e299036e1f717fa9bb6724e758f7d6fb2477599d1a29" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "cosmwasm-std" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf82335c14bd94eeb4d3c461b7aa419ecd7ea13c2efe24b97cd972bdb8044e7d" +dependencies = [ + "base64", + "bech32", + "bnum", + "cosmwasm-core", + "cosmwasm-crypto", + "cosmwasm-derive", + "derive_more", + "hex", + "rand_core", + "rmp-serde", + "schemars", + "serde", + "serde-json-wasm", + "sha2", + "static_assertions", + "thiserror", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "cw-storage-plus" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f13360e9007f51998d42b1bc6b7fa0141f74feae61ed5fd1e5b0a89eec7b5de1" +dependencies = [ + "cosmwasm-std", + "schemars", + "serde", +] + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "unicode-xid", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-zebra" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "hashbrown 0.14.5", + "hex", + "rand_core", + "sha2", + "zeroize", +] + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "generic-array" +version = "0.14.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "halo2_proofs" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "019561b5f3be60731e7b72f3f7878c5badb4174362d860b03d3cf64cb47f90db" +dependencies = [ + "blake2b_simd", + "ff", + "group", + "indexmap", + "maybe-rayon", + "pasta_curves", + "rand_core", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "sha2", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] + +[[package]] +name = "libc" +version = "0.2.177" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" + +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "memchr" +version = "2.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff", + "group", + "lazy_static", + "rand", + "static_assertions", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + +[[package]] +name = "proc-macro2" +version = "1.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rayon" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rmp" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.106", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-json-wasm" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05da0d153dd4595bdffd5099dc0e9ce425b205ee648eb93437ff7302af8c9a5" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "serde_json" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", + "serde_core", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tracing-core" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", +] + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "unicode-ident" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "zerocopy" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "zk-headstash" +version = "0.1.0" +dependencies = [ + "cosmwasm-schema", + "cosmwasm-std", + "cw-storage-plus", + "halo2_proofs", + "sha2", +] diff --git a/zk-crates/cw-headstash/Cargo.toml b/zk-crates/cw-headstash/Cargo.toml new file mode 100644 index 0000000..6e2b20d --- /dev/null +++ b/zk-crates/cw-headstash/Cargo.toml @@ -0,0 +1,33 @@ +[package] +name = "cw-headstash" +version = { workspace = true } +edition = { workspace = true } + +[lib] +crate-type = ["cdylib", "rlib"] + +[features] +default = [] +library = [] + +[dependencies] +ark-bls12-381 = "0.5.0" +zk-headstash = { workspace = true } +btsg-account = { workspace = true } +token-bindings = { workspace = true } +btsg-auth = { workspace = true } +cosmwasm-schema = { workspace = true } +cosmwasm-std = { workspace = true } +cw-storage-plus = { workspace = true } +halo2_proofs = { workspace = true } +hex = { workspace = true } +serde = { workspace = true } +sha2 = { workspace = true } +rand_core = "0.6" +ark-ff = "0.5.0" +ark-ec = "0.5.0" +ark-serialize = "0.5.0" +blake3 = "1.8.2" +pasta_curves = "=0.5.1" + +[dev-dependencies] diff --git a/zk-crates/cw-headstash/README.md b/zk-crates/cw-headstash/README.md new file mode 100644 index 0000000..6fe5230 --- /dev/null +++ b/zk-crates/cw-headstash/README.md @@ -0,0 +1,108 @@ +# Cw-Headstash Proof System + +Singleton implementing proof system for consuming headstash notes. + +## TODO + +- implement as WAVS instance +- broadcast msgs via vote extensions +- query on-chain contract for merkle roots +- update on-chain contracts on state transitions +- implement privacy enhancement features + +## BLS12-381 Support + +### Signature Aggregation + + Multiple BLS signatures can be combined into a single signature of constant size. This is huge for scalability - whether you have 3 or 3000 signers, the final signature remains the same compact size (about 48 bytes). +Signature Aggregation: Multiple BLS signatures can be combined into a single signature of constant size. This is huge for scalability - whether you have 3 or 3000 signers, the final signature remains the same compact size (about 48 bytes). + +**Accountability**: Unlike some multi-signature schemes, BLS aggregation can maintain accountability - you can prove which specific parties participated in creating an aggregated signature, which is crucial for governance and audit trails. + +### Key Rotation + +Key rotation is critical for long-term security, and BLS12-381 proof of ownership functions facilitate this in several ways: + +**Secure Handover**: When rotating keys, you need to prove you legitimately own the old key before authorizing a new one. BLS signatures can create a cryptographic chain of custody - the old key signs a message authorizing the new public key, creating an auditable transition. + +**Threshold Key Rotation**: In systems where keys are shared among multiple parties (using threshold cryptography), BLS12-381 enables coordinated key updates where a threshold of participants must prove ownership of their key shares to authorize rotation. + +### Questions + +- do i need to store all the keys of the set to assert the threshold requirements are met when messages are incoming? + +- what needs to be provided when we are rotating just one key out of this list? + +Rotation keys accepts a list of tuples containing the old key to rotate out with a new key. This also requires the consensus of at least the threshold set for the operator set. In order + +### Resources + +- +- + +## TODO + +- cw-json-filter support: filter preinput for tokens for prevention in duplicates + +``` + ╭──────────────────────╮ + │ MsgAddAuthenticator │ + │ config arrives │ + ╰─────────△────────────╯ + │ + ┌─────▼─────┐ + │ on_auth_ │ + │ added() │ + │ validate │ + │ + store │ + └─────△─────┘ + │ + ▼ + ┌───────────────────────────────────────┐ + │ AUTHENTICATOR NOW ACTIVE │ + └─────────────────△───────────────────────△───────────┘ + │ │ + ┌───────────────▼───────┐ ┌─────────────▼──────────────┐ + │ Tx comes in │ │ MsgRemoveAuthenticator │ + │ msgs + signatures │ └─────────────△──────────────┘ + └─────────────△─────────┘ │ + │ ┌─────▼─────┐ + ┌─────────────────▼─────────────────┐ │ on_auth_ │ + │ on_auth_request() │ │ removed() │ + │ stateless validation │ │ cleanup │ + │ (MUST NOT mutate state) │ └─────△─────┘ + └─────────────────△─────────────────┘ │ + │ │ + ┌───────────▼───────────┐ │ + │ AUTH PASSES │ │ + └───────────△───────────┘ │ + │ │ + ┌─────────────────▼─────────────────┐ │ + │ on_auth_track() │ │ + │ safe to mutate state now │ │ + │ (committed even if exec fails) │ │ + └─────────────────△─────────────────┘ │ + │ │ + ▼ │ + ┌─────────────────────┐ │ + │ Handler Executes │ │ + │ (normal msg logic) │ │ + └───────────△─────────┘ │ + │ │ + ┌───────────▼───────────┐ │ + │ on_auth_confirm() │ │ + │ post-exec checks │ │ + │ can REVERT whole tx │ │ + └───────────△───────────┘ │ + │ │ + ┌───────────▼───────────┐ │ + │ TX COMMITTED ◀─────────────────┘ + │ (or reverted) │ + └───────────────────────┘ + + ║║║║║║║║║║║║║║║║║║║║║║║║║║║║║║ + ║ RIVER OF AUTHENTICATION ║ + ║ process_sudo_auth() routes ║ + ║ every arrow above ║ + ╚════════════════════════════╝ +``` \ No newline at end of file diff --git a/zk-crates/cw-headstash/artifacts/checksums.txt b/zk-crates/cw-headstash/artifacts/checksums.txt new file mode 100644 index 0000000..9436c63 --- /dev/null +++ b/zk-crates/cw-headstash/artifacts/checksums.txt @@ -0,0 +1 @@ +064d522c0e6f5d35fff13365161ae3d09cd485f806eedd3cd88e926a64f22bfd zk_headstash.wasm diff --git a/zk-crates/cw-headstash/artifacts/zk_headstash.wasm b/zk-crates/cw-headstash/artifacts/zk_headstash.wasm new file mode 100644 index 0000000..e319e54 Binary files /dev/null and b/zk-crates/cw-headstash/artifacts/zk_headstash.wasm differ diff --git a/zk-crates/cw-headstash/justfile b/zk-crates/cw-headstash/justfile new file mode 100644 index 0000000..cc1f786 --- /dev/null +++ b/zk-crates/cw-headstash/justfile @@ -0,0 +1 @@ +#!/bin/bash \ No newline at end of file diff --git a/zk-crates/cw-headstash/rustfmt.toml b/zk-crates/cw-headstash/rustfmt.toml new file mode 100644 index 0000000..0a97762 --- /dev/null +++ b/zk-crates/cw-headstash/rustfmt.toml @@ -0,0 +1,14 @@ +# stable +newline_style = "unix" +hard_tabs = false +tab_spaces = 4 + +# unstable... should we require `rustup run nightly cargo fmt` ? +# or just update the style guide when they are stable? +#fn_single_line = true +#format_code_in_doc_comments = true +#overflow_delimited_expr = true +#reorder_impl_items = true +#struct_field_align_threshold = 20 +#struct_lit_single_line = true +#report_todo = "Always" \ No newline at end of file diff --git a/zk-crates/cw-headstash/src/headstash.rs b/zk-crates/cw-headstash/src/headstash.rs new file mode 100644 index 0000000..bd9f7a7 --- /dev/null +++ b/zk-crates/cw-headstash/src/headstash.rs @@ -0,0 +1,232 @@ +use crate::tokenfactory::TokenStrategy; + +use super::*; +use cosmwasm_std::{CanonicalAddr, Uint128}; +use pasta_curves::group::ff::PrimeField; +use pasta_curves::pallas; +use zk_headstash::address::RecpAddr; +use zk_headstash::note::{ExtractedNoteCommitment, Nullifier}; +use zk_headstash::value::{NoteDenom, NoteValue}; + +use std::collections::{HashMap, HashSet}; +use std::io::{self, Cursor}; + +use zk_headstash::circuit::{Instance, VerifyingKey}; +use zk_headstash::{Anchor, Proof}; + +#[cosmwasm_schema::cw_serde] +pub struct HeadstashCfg { + // gr: genesis tree root + pub gr: Binary, + // ts: token strategies + pub ts: Vec, + // w: wavs operator set + pub w: WavsOperatorSet, +} + +#[cosmwasm_schema::cw_serde] +pub struct HeadstashNote { + // i: instances + pub i: HeadstashInstances, + // p: proof + pub p: Binary, + // r: raw recipient of headstash. CanonicalAddr + pub rr: Binary, +} + +impl HeadstashNote { + // verifies a nullifier does not exist in the map, and will save to map if it does not + fn verify_recp_posiedon_hash(&self) -> Result<(), StdError> { + match pallas::Base::from_repr(self.rr.as_slice().try_into()?) + .expect("proof has been verified") + == RecpAddr::try_from(self.i.recp.as_slice())?.to_pallas() + { + true => Ok(()), + false => Err(StdError::msg("recipient addr not represented in proof ")), + } + } +} + +#[cosmwasm_schema::cw_serde] +pub struct HeadstashInstances { + pub anchor: Binary, + pub nd: Binary, + pub v: u64, + pub nf: Binary, + pub recp: Binary, + pub cmx: Binary, +} + +/// Implement CosmWasm Instance as a Halo2 Circuit Instance Struct +impl Into for HeadstashInstances { + fn into(self) -> Instance { + Instance::from_parts( + Anchor::from_bytes( + self.anchor + .as_slice() + .try_into() + .expect("Invalid anchor bytes"), + ) + .expect("bad anchor"), + NoteDenom::from(self.nd.to_array().expect("nd bytes")), + NoteValue::from(self.v), + RecpAddr::try_from(self.recp.as_slice()).expect("recp bytes"), + Nullifier::from_bytes( + self.nf + .as_slice() + .try_into() + .expect("Invalid nullifier bytes"), + ) + .expect("darn"), + ExtractedNoteCommitment::from_bytes(&self.cmx.to_array().expect("cmx bytes")) + .expect("ExtractedNoteCommitment"), + ) + } +} + +#[cosmwasm_schema::cw_serde] +pub struct HeadstashCoin { + /// v: value + pub v: u64, + /// nd: token denom in circuit pre-input specification + pub nd: Binary, +} + +/// Validates nullifiers uniqueness & distribute funds +pub fn set_verifying_key( + deps: DepsMut, + env: Env, + vk: Binary, +) -> Result, StdError> { + // ensure sender is this contract owner (or this contract) + // hash & save vk + let mut r: Response = Response::new(); + Ok(r) +} + +/// Validates nullifiers uniqueness & distribute funds +pub fn process_headstash( + deps: DepsMut, + env: Env, + claims: Vec, +) -> Result, StdError> { + let cfg = HEADSTASH_CFG.load(deps.storage)?; + let mut n = HashSet::new(); + let mut cts = HashMap::new(); + + for claim in &claims { + // verify no nullifier duplicates at once. + if !n.insert(claim.i.nf.clone()) { + return Err(StdError::msg(format!("null: {}", &claim.i.nf.to_hex()))); + } + // verify nullifier is new. adds nullifier to map if so + verify_nullifier_stateful(deps.storage, claim.i.nf.to_hex())?; + + // verify denom is supported for this token strategy + if !cfg + .ts + .iter() + .any(|e| &e.proof_representation() == &claim.i.nd) + { + return Err(StdError::msg("incorrect token denom")); + } + + // verify headstash proof + // Proof::new(claim.p.to_vec()).verify(&VK, &[claim.i.clone().into()])?; + + // verify recp integrity + claim.verify_recp_posiedon_hash()?; + + // increment allcoation going to user if multiple proofs are being claimed + *cts.entry((claim.i.nd.clone(), claim.rr.clone())) + .or_insert(claim.i.v) += claim.i.v; + } + + let mut res: Response = Response::new(); + + // TODO(hard-nett): implement multi-token support + for t in cfg.ts { + let td = t.denom(&env.contract.address); + + let mut denom_entries: Vec<_> = cts + .iter() + .filter(|((_, d), _)| d == &t.proof_representation()) + .map(|(k, &v)| (k.clone(), v)) + .collect(); + + match t { + TokenStrategy::NewFungible(d) => { + // Mint one message per recipient (batched amount) + for ((_, r), amount) in denom_entries { + let ra = deps.api.addr_humanize(&CanonicalAddr::from(r))?; + res = res.add_message(TokenFactoryMsg::MintTokens { + denom: td.to_string(), + amount: amount.try_into().unwrap(), + mint_to_address: ra.into(), + }); + } + } + TokenStrategy::ExistingFungible(d) => { + // Sum total required for this denom + let total_required: u64 = denom_entries.iter().map(|(_, amount)| *amount).sum(); + // Escrow: check balance first + if deps + .querier + .query_balance(&env.contract.address, td)? + .amount + < Uint128::new(total_required as u128).into() + { + return Err(StdError::msg("insuffiecient balance")); + } + + for ((_, r), amount) in denom_entries { + let ra = deps.api.addr_humanize(&CanonicalAddr::from(r))?; + res = res.add_message(BankMsg::Send { + to_address: ra.into(), + amount: vec![Coin::new(amount, &d.raw)], + }); + } + } + } + } + // } + + Ok(res.add_attribute("action", "process_headstash")) +} + +// verifies a nullifier does not exist in the map, and will save to map if it does not +pub fn verify_nullifier_stateless( + storage: &dyn Storage, + nullifier: String, +) -> Result, StdError> { + NULLIFIERS.may_load(storage, nullifier)?; + Ok(Some(())) +} + +// verifies a nullifier does not exist in the map, and will save to map if it does not +pub fn verify_nullifier_stateful( + storage: &mut dyn Storage, + nullifier: String, +) -> Result<(), StdError> { + NULLIFIERS.update(storage, nullifier, |n| match n { + Some(_) => { + return Err(StdError::msg("nullifier already exists")); + } + None => Ok(()), + })?; + Ok(()) +} + +pub fn query_nullifiers( + deps: Deps, + start_after: Option, + limit: Option, +) -> StdResult { + to_json_binary(&crate::paginate_map( + deps, + &NULLIFIERS, + start_after, + limit, + cosmwasm_std::Order::Descending, + )?) +} diff --git a/zk-crates/cw-headstash/src/lib.rs b/zk-crates/cw-headstash/src/lib.rs new file mode 100644 index 0000000..9a35bef --- /dev/null +++ b/zk-crates/cw-headstash/src/lib.rs @@ -0,0 +1,636 @@ +pub mod headstash; +pub mod msg; +pub mod smartaccount; +pub mod tokenfactory; +pub mod wavs; +use crate::{ + headstash::*, + tokenfactory::TokenStrategy, + wavs::{WavsOperatorSet, WavsProofOfOwnership}, +}; +use ark_bls12_381::G1Affine; +use ark_ff::Zero; +use cosmwasm_schema::{cw_serde, serde, QueryResponses}; +use cosmwasm_std::{ + from_json, to_json_binary, AnyMsg, BankMsg, Binary, Coin, CosmosMsg, Deps, DepsMut, Env, + MessageInfo, Order, Response, StdError, StdResult, Storage, BLS12_381_G1_GENERATOR as G1, + BLS12_381_G2_GENERATOR as G2, +}; +use cw_storage_plus::{Bound, Bounder, Item, KeyDeserialize, Map}; +use halo2_proofs::{ + plonk::{self, ProvingKey, VerifyingKey as Halo2Vk}, + poly::commitment::Params, +}; +pub use msg::*; + + +use serde::{Deserialize, Serialize}; +use std::sync::LazyLock; +use token_bindings::TokenFactoryMsg; + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct CwHeadstashStructs {} +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct CwHeadstash {} + +// a historical set of wavs operator keys after rotated. once rotated we list of old keys iwith block height changed as key. +pub const WAVS_OPERATORS: Map> = Map::new("wavs_operators"); +pub const HEADSTASH_CFG: Item = Item::new("headstash_params"); +pub(crate) const GENESIS_TREE_ROOT: Item = Item::new("root_gen_tree"); +pub(crate) const COMMITMENT_TREE_ROOT: Item = Item::new("root_cm_tree"); +pub(crate) const NULLIFIERS: Map = Map::new("nullifiers"); + +#[cfg_attr(not(feature = "library"), cosmwasm_std::entry_point)] +pub fn instantiate( + deps: DepsMut, + env: Env, + info: MessageInfo, + msg: InstantiateMsg, +) -> Result, StdError> { + // validate initialization params + msg.wavs.verify()?; + msg.token_strategy.validate()?; + + let ts = msg.token_strategy; + let c = env.contract.address.clone(); + let d = ts.denom(&c); + + // check for prefunding of headstash + if ts.requires_prefund() { + if !info.funds.iter().any(|c| c.denom == d) { + let balance = deps.querier.query_balance(&c, &d)?.amount; + if balance.is_zero() { + return Err(StdError::msg( + "at least 1 token required for existing denom", + )); + } + } + } + let w = msg.wavs.proof_of_ownership(deps.api, &c)?; + let mint_msgs = ts.initial_mint_msgs(&c)?; + + // register self as authenticator + let add_auth = CosmosMsg::Any(AnyMsg { + type_url: "/terp.smartaccount.v1beta1.MsgAddAuthenticator".to_string(), + value: to_json_binary(&btsg_auth::MsgAddAuthenticator { + sender: c.to_string(), + authenticator_type: "CosmwasmAuthenticatorV1".into(), + data: to_json_binary(&btsg_auth::CosmwasmAuthenticatorInitData { + contract: c.to_string(), + params: to_json_binary(&w)?.to_vec(), + })? + .into(), + })?, + }); + + // let me: HeadstashVk = VK; + GENESIS_TREE_ROOT.save(deps.storage, &msg.genesis_root)?; + HEADSTASH_CFG.save( + deps.storage, + &HeadstashCfg { + gr: msg.genesis_root.clone(), + ts: vec![ts], + w, + }, + )?; + + Ok(Response::new() + .add_attribute("action", "instantiate_headstash") + .add_message(add_auth) + .add_messages(mint_msgs)) +} + +#[cfg_attr(not(feature = "library"), cosmwasm_std::entry_point)] +pub fn execute( + deps: DepsMut, + env: Env, + info: MessageInfo, + msg: ExecuteMsg, +) -> Result, StdError> { + // TODO: allowlist for writing to nullifier tree + match msg { + ExecuteMsg::ProcessHeadstash { claims } => { + crate::headstash::process_headstash(deps, env, claims) + } + ExecuteMsg::LoadVk { vk } => crate::headstash::set_verifying_key(deps, env, vk), + } +} + +#[cfg_attr(not(feature = "library"), cosmwasm_std::entry_point)] +pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { + match msg { + QueryMsg::Nullifer { null } => Ok(to_json_binary( + &NULLIFIERS.may_load(deps.storage, null)?.is_some(), + )?), + QueryMsg::Nullifiers { start_after, limit } => { + headstash::query_nullifiers(deps, start_after, limit) + } + } +} + +impl btsg_account::traits::default::BtsgAccountTrait for CwHeadstash { + type InstantiateMsg = InstantiateMsg; + type ExecuteMsg = ExecuteMsg; + type QueryMsg = QueryMsg; + type SudoMsg = btsg_auth::AuthSudoMsg; + type ContractError = StdError; + type AuthMethodStructs = Binary; + type AuthProcessResult = Result; + + fn process_sudo_auth( + deps: cosmwasm_std::DepsMut, + env: cosmwasm_std::Env, + req: &Self::SudoMsg, + ) -> Self::AuthProcessResult { + match req { + btsg_auth::AuthSudoMsg::OnAuthAdded(req) => Self::on_auth_added(deps, env, req), + btsg_auth::AuthSudoMsg::OnAuthRemoved(req) => Self::on_auth_removed(deps, env, req), + btsg_auth::AuthSudoMsg::Authenticate(req) => Self::on_auth_request(deps, env, req), + btsg_auth::AuthSudoMsg::Track(req) => Self::on_auth_track(deps, env, req), + btsg_auth::AuthSudoMsg::ConfirmExecution(req) => Self::on_auth_confirm(deps, env, req), + } + } + + fn extended_authenticate( + _deps: cosmwasm_std::DepsMut, + _auth: Self::AuthMethodStructs, + ) -> Self::AuthProcessResult { + Ok(Response::default()) + } + + fn on_auth_added( + _deps: cosmwasm_std::DepsMut, + _env: cosmwasm_std::Env, + _req: &btsg_auth::OnAuthenticatorAddedRequest, + ) -> Self::AuthProcessResult { + Ok(Response::default()) + } + + fn on_auth_removed( + deps: cosmwasm_std::DepsMut, + _env: cosmwasm_std::Env, + _req: &btsg_auth::OnAuthenticatorRemovedRequest, + ) -> Self::AuthProcessResult { + // prune state + WAVS_OPERATORS.clear(deps.storage); + HEADSTASH_CFG.remove(deps.storage); + NULLIFIERS.clear(deps.storage); + Ok(Response::default()) + } + + // - sign the hash of the proofs being verified per msgs. this lets us recreate the hash on-chain and verify actions, + // then recontstruct action values from proof inputs after verification (i.e coin amounts, auth params, etc.) + // confirms wavs operator set authentication. + // recomposes aggregated key and signature to enforce threshold minimums + fn on_auth_request( + deps: cosmwasm_std::DepsMut, + env: cosmwasm_std::Env, + req: &Box, + ) -> Self::AuthProcessResult { + let cfg = HEADSTASH_CFG.load(deps.storage)?; + let agg_g2 = deps.api.bls12_381_aggregate_g2(&req.signature)?; + let msg = to_json_binary(&req.tx_data.msgs)?; + // reconstruct msg that was signed (hash of req.tx_data.msgs) (TODO: BENCHMARK) + // `Hash-to-curve: H(msg) → G2` + let qs = deps + .api + .bls12_381_hash_to_g2(cosmwasm_std::HashFunction::Sha256, &msg, &G2)?; + + if !cfg.w.msg.threshold.is_zero() { + let w: WavsOperatorSet = cfg.w; + let agg_g1 = hex::decode(&w.msg.aggregate_key)?; + // e(agg_g1, qs) == e(G1, agg_g2) + if !deps + .api + .bls12_381_pairing_equality(&agg_g1, &qs, &G1, &agg_g2)? + { + return Err(StdError::msg("auth_params")); + }; + } + + Ok(Response::default()) + } + + fn on_auth_track( + _deps: cosmwasm_std::DepsMut, + _env: cosmwasm_std::Env, + _req: &btsg_auth::TrackRequest, + ) -> Self::AuthProcessResult { + Ok(Response::default()) + } + + fn on_auth_confirm( + deps: cosmwasm_std::DepsMut, + env: cosmwasm_std::Env, + req: &btsg_auth::ConfirmExecutionRequest, + ) -> Self::AuthProcessResult { + let auth_data: wavs::BlsThresholdAuthData = + from_json(&req.authenticator_params.clone().expect("cw-auth params"))?; + + // verifies circuit proofs, reverts any stateful change if errors. + // Self::extended_authenticate(deps, params.clone()) + Ok(Response::default()) + } + + fn on_hooks(deps: cosmwasm_std::DepsMut, env: cosmwasm_std::Env) -> Self::AuthProcessResult { + Ok(Response::default()) + } +} + +/// Map nonce -> indexList of wav operator bls12-381 +/// we want to be able to query: +/// - the list of operators given an array of their positions in the index +/// - the list of operators at a given nonce +/// Stores: nonce -> list of operator indices (e.g., positions in validator set) + +// - merkle tree must be fixed length, meaning once buffer is full from specific tree, +// - we must create new one and be able to have users reference the head/where existing is to prevent expensive use + +/// Generic function for paginating a list of (K, V) pairs in a +/// CosmWasm Map. +pub fn paginate_map<'a, 'b, K, V, R: 'static>( + deps: Deps, + map: &Map, + start_after: Option, + limit: Option, + order: Order, +) -> StdResult> +where + K: Bounder<'a> + KeyDeserialize + 'b, + V: serde::de::DeserializeOwned + serde::Serialize, +{ + let (range_min, range_max) = match order { + Order::Ascending => (start_after.map(Bound::exclusive), None), + Order::Descending => (None, start_after.map(Bound::exclusive)), + }; + + let items = map.range(deps.storage, range_min, range_max, order); + match limit { + Some(limit) => Ok(items + .take(limit.try_into().unwrap()) + .collect::>()?), + None => Ok(items.collect::>()?), + } +} + +#[cfg(test)] +mod instantiate_tests { + use crate::tokenfactory::*; + + use super::*; + use ark_ff::UniformRand; + use cosmwasm_std::testing::{message_info, mock_dependencies, mock_env}; + use cosmwasm_std::{coins, Addr, Api, HashFunction, Uint128}; + use rand_core::OsRng; + use token_bindings::{DenomUnit, Metadata}; + + #[test] + fn minimal_test() { + let mut deps = mock_dependencies(); + let env = mock_env(); + let info = message_info(&deps.api.addr_make("creator"), &[]); + + let msg = InstantiateMsg { + genesis_root: Binary::from_base64("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") + .unwrap(), + token_strategy: TokenStrategy::NewFungible(NewTokenConfig { + subdenom: HeadstashTokenObject { + proof: derive_nd("test"), + raw: "test".into(), + }, + metadata: mock_metadata(), + initial_mint: None, + manager: None, + minters: vec![], + }), + wavs: valid_wavs_proof(3), + }; + + let res = instantiate(deps.as_mut(), env.clone(), info, msg).unwrap(); + // println!("{:#?}", res); + assert_eq!(res.messages.len(), 2); + } + + // Helper: Create valid WAVS proof-of-ownership (matches your working tests) + fn valid_wavs_proof(total_operators: usize) -> WavsProofOfOwnership { + use ark_bls12_381::{Fr, G1Affine, G1Projective, G2Affine}; + use ark_ec::AffineRepr; + use ark_ff::UniformRand; + use ark_serialize::{CanonicalDeserialize, CanonicalSerialize}; + use cosmwasm_std::testing::MockApi; + use rand_core::OsRng; + + let api = MockApi::default(); + + let mut poos = vec![]; + let mut agg_pk_projective = G1Projective::default(); + + // Generate valid keypairs + proof-of-possession for each operator + for _ in 0..total_operators { + let sk = Fr::rand(&mut OsRng); + let pk: G1Affine = (G1Affine::generator() * sk).into(); + + let pk_bytes = { + let mut buf = vec![]; + pk.serialize_compressed(&mut buf).unwrap(); + buf + }; + + // Hash pk → G2 point + let pop_hash = api + .bls12_381_hash_to_g2(HashFunction::Sha256, &pk_bytes, &G2) + .unwrap(); + + let h_point = G2Affine::deserialize_compressed(&pop_hash[..]).unwrap(); + + // PoP signature: sig = sk * H(pk) + let pop_sig: G2Affine = (h_point * sk).into(); + let mut sig_bytes = vec![]; + pop_sig.serialize_compressed(&mut sig_bytes).unwrap(); + + poos.push(wavs::WavsOpAuth { + key: hex::encode(&pk_bytes), + poo: hex::encode(&sig_bytes), + }); + + // Accumulate public key for aggregate + agg_pk_projective += pk; + } + + let agg_pk: G1Affine = agg_pk_projective.into(); + let mut agg_pk_bytes = vec![]; + agg_pk.serialize_compressed(&mut agg_pk_bytes).unwrap(); + + WavsProofOfOwnership { + poos, + msg: wavs::WavsAuthMetadata { + aggregate_key: hex::encode(agg_pk_bytes), + threshold: (total_operators * 2 / 3) + 1, // standard 2f+1 + total_operators, + nonce: 0, + }, + } + } + fn mock_metadata() -> Metadata { + Metadata { + description: Some("Test Token".into()), + denom_units: vec![ + DenomUnit { + denom: "utest".into(), + exponent: 0, + aliases: vec![], + }, + DenomUnit { + denom: "TEST".into(), + exponent: 6, + aliases: vec![], + }, + ], + base: Some("utest".into()), + display: Some("TEST".into()), + name: Some("Test Token".into()), + symbol: Some("TEST".into()), + } + } + + #[test] + fn instantiate_new_fungible_success() { + let mut deps = mock_dependencies(); + let creator = deps.api.addr_make("creator"); + let alice = deps.api.addr_make("alice"); + let bob = deps.api.addr_make("bob"); + let env = mock_env(); + let info = message_info(&creator, &[]); + + let msg = InstantiateMsg { + genesis_root: Binary::from_base64("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") + .unwrap(), + token_strategy: TokenStrategy::NewFungible(NewTokenConfig { + subdenom: HeadstashTokenObject { + proof: derive_nd(&"test"), + raw: "test".into(), + }, + metadata: mock_metadata(), + initial_mint: Some(vec![ + InitialMint { + to_address: alice.to_string(), + amount: Uint128::new(1000), + }, + InitialMint { + to_address: bob.to_string(), + amount: Uint128::new(500), + }, + ]), + manager: None, + minters: vec![], + }), + wavs: valid_wavs_proof(3), + }; + + let res = instantiate(deps.as_mut(), env.clone(), info, msg).unwrap(); + + // Should have: CreateDenom + 2x MintTokens + AddAuthenticator + // println!("{:#?}", res); + assert_eq!(res.messages.len(), 4); + + // Check CreateDenom + let create_msg = &res.messages[0]; + match &create_msg.msg { + CosmosMsg::Custom(TokenFactoryMsg::CreateDenom { subdenom, metadata }) => { + assert_eq!(subdenom, "test"); + assert_eq!( + metadata.as_ref().unwrap().name.as_ref().unwrap(), + "Test Token" + ); + } + _ => panic!("Expected CreateDenom"), + } + + // Check MintTokens + let expected_denom = format!("factory/{}/test", env.contract.address); + let mint1 = &res.messages[1]; + let mint2 = &res.messages[2]; + match (&mint1.msg, &mint2.msg) { + ( + CosmosMsg::Custom(TokenFactoryMsg::MintTokens { + denom: d1, + amount: a1, + mint_to_address: to1, + }), + CosmosMsg::Custom(TokenFactoryMsg::MintTokens { + denom: d2, + amount: a2, + mint_to_address: to2, + }), + ) => { + assert_eq!(d1, &expected_denom); + assert_eq!(d2, &expected_denom); + assert!( + (a1 == &Uint128::new(1000) && to1 == &alice.to_string()) + || (a1 == &Uint128::new(500) && to1 == &bob.to_string()) + ); + assert!( + (a2 == &Uint128::new(500) && to2 == &bob.to_string()) + || (a2 == &Uint128::new(1000) && to2 == &alice.to_string()) + ); + } + _ => panic!("Expected MintTokens"), + } + + // Check AddAuthenticator + let auth_msg = &res.messages[3]; + match &auth_msg.msg { + CosmosMsg::Any(any) + if any.type_url == "/terp.smartaccount.v1beta1.MsgAddAuthenticator" => + { + let parsed: btsg_auth::MsgAddAuthenticator = from_json(&any.value).unwrap(); + assert_eq!(parsed.sender.to_string(), env.contract.address.to_string()); + assert_eq!(parsed.authenticator_type, "CosmwasmAuthenticatorV1"); + } + _ => panic!("Expected AddAuthenticator"), + } + + // State saved + let cfg = HEADSTASH_CFG.load(&deps.storage).unwrap(); + assert_eq!(cfg.ts.len(), 1); + assert!(matches!(cfg.ts[0], TokenStrategy::NewFungible(_))); + } + + #[test] + fn instantiate_existing_fungible_with_funds_success() { + let mut deps = mock_dependencies(); + let creator = deps.api.addr_make("creator"); + let contract = deps.api.addr_make("contract"); + + let env = mock_env(); + let info = message_info(&creator, &[Coin::new(Uint128::new(1000), "existing_token")]); + + let msg = InstantiateMsg { + genesis_root: Binary::from([0u8; 32]), + token_strategy: TokenStrategy::ExistingFungible(HeadstashTokenObject::new( + "existing_token".to_string(), + )), + wavs: valid_wavs_proof(1), + }; + + let res = instantiate(deps.as_mut(), env.clone(), info, msg).unwrap(); + + assert_eq!(res.messages.len(), 1); + } + + #[test] + fn instantiate_existing_fungible_no_funds_fails() { + let mut deps = mock_dependencies(); + let creator = deps.api.addr_make("creator"); + + // Balance = 0 for "existing_token" + let env = mock_env(); + let info = message_info(&creator, &[]); + + let msg = InstantiateMsg { + genesis_root: Binary::from([0u8; 32]), + token_strategy: TokenStrategy::ExistingFungible(HeadstashTokenObject::new( + "test".to_string(), + )), + wavs: valid_wavs_proof(1), + }; + + let err = instantiate(deps.as_mut(), env, info, msg).unwrap_err(); + assert_eq!( + err.to_string(), + "kind: Other, error: at least 1 token required for existing denom" + ); + } + + #[test] + fn instantiate_invalid_operator_count_fails() { + let mut deps = mock_dependencies(); + let env = mock_env(); + let creator = deps.api.addr_make("creator"); + + let info = message_info(&creator, &[]); + + let wavs = valid_wavs_proof(3); + let mut invalid_wavs = wavs.clone(); + invalid_wavs.msg.total_operators = 5; // mismatch + + let msg = InstantiateMsg { + genesis_root: Binary::from([0u8; 32]), + token_strategy: TokenStrategy::NewFungible(NewTokenConfig { + subdenom: HeadstashTokenObject::new("test".to_string()), + metadata: mock_metadata(), + initial_mint: None, + manager: None, + minters: vec![], + }), + wavs: invalid_wavs, + }; + + let err = instantiate(deps.as_mut(), env, info, msg).unwrap_err(); + + assert!(err + .to_string() + .contains("invalid amount of operators defined")); + } + + #[test] + fn instantiate_invalid_proof_of_ownership_fails() { + let mut deps = mock_dependencies(); + let env = mock_env(); + let creator = deps.api.addr_make("creator"); + + let info = message_info(&creator, &[]); + + let mut wavs = valid_wavs_proof(1); + wavs.poos[0].poo = "deadbeef".to_string(); // corrupt PoO + + let msg = InstantiateMsg { + genesis_root: Binary::from([0u8; 32]), + token_strategy: TokenStrategy::NewFungible(NewTokenConfig { + subdenom: HeadstashTokenObject::new("test".to_string()), + metadata: mock_metadata(), + initial_mint: None, + manager: None, + minters: vec![], + }), + wavs, + }; + + let err = instantiate(deps.as_mut(), env, info, msg).unwrap_err(); + // println!("{:#?}", err); + // assert!(err.to_string().contains("proof of ownership failed")); + } + + #[test] + fn instantiate_stores_genesis_root_and_config() { + let mut deps = mock_dependencies(); + let env = mock_env(); + let sender = deps.api.addr_make("sender"); + + let info = message_info(&sender, &[]); + + let genesis_root = Binary::from_base64("YmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmI=").unwrap(); + + let msg = InstantiateMsg { + genesis_root: genesis_root.clone(), + token_strategy: TokenStrategy::NewFungible(NewTokenConfig { + subdenom: HeadstashTokenObject::new("test".to_string()), + metadata: mock_metadata(), + initial_mint: None, + manager: None, + minters: vec![], + }), + wavs: valid_wavs_proof(1), + }; + + instantiate(deps.as_mut(), env, info, msg).unwrap(); + + let stored_root = GENESIS_TREE_ROOT.load(&deps.storage).unwrap(); + assert_eq!(stored_root, genesis_root); + + let cfg = HEADSTASH_CFG.load(&deps.storage).unwrap(); + assert_eq!(cfg.gr, genesis_root); + assert_eq!(cfg.ts.len(), 1); + assert!(cfg.w.msg.nonce == 0); + } +} diff --git a/zk-crates/cw-headstash/src/msg.rs b/zk-crates/cw-headstash/src/msg.rs new file mode 100644 index 0000000..cd7dbb8 --- /dev/null +++ b/zk-crates/cw-headstash/src/msg.rs @@ -0,0 +1,29 @@ +use super::*; + +#[cw_serde] +pub struct InstantiateMsg { + pub genesis_root: Binary, + pub token_strategy: TokenStrategy, + pub wavs: WavsProofOfOwnership, +} + +#[cw_serde] +pub enum ExecuteMsg { + // RotateKey { keys: Vec }, + ProcessHeadstash { claims: Vec }, + LoadVk { vk: Binary }, +} + +#[cw_serde] +#[derive(QueryResponses)] +pub enum QueryMsg { + /// check if a nullifier exists + #[returns(bool)] + Nullifer { null: String }, + /// Retrieve all nullifiers + #[returns(Vec)] + Nullifiers { + start_after: Option, + limit: Option, + }, +} diff --git a/zk-crates/cw-headstash/src/ring.rs b/zk-crates/cw-headstash/src/ring.rs new file mode 100644 index 0000000..068717d --- /dev/null +++ b/zk-crates/cw-headstash/src/ring.rs @@ -0,0 +1,249 @@ +use cosmwasm_std::{Api, BLS12_381_G1_GENERATOR, HashFunction, StdError, StdResult, Storage}; +use cw_snapshot_vector_map::{LoadedItem, SnapshotVectorMap}; + +/// A privacy-preserving signature scheme using rotating keys and snapshots +pub struct RingSignatureSystem<'a> { + /// Stores ephemeral public keys for each user at different heights + /// Key: user address, Value: ephemeral BLS public key + ephemeral_keys: SnapshotVectorMap<'a, String, EphemeralKey>, + /// Ring membership commitments at each height + /// Key: ring_id, Value: aggregated public key of ring members + ring_commitments: SnapshotVectorMap<'a, String, RingCommitment>, + /// Blind signatures that prove membership without revealing identity + blind_signatures: SnapshotVectorMap<'a, String, BlindSignature>, +} + +#[cosmwasm_schema::cw_serde] +pub struct EphemeralKey { + /// Blinded public key: pk_user + r*G1 + pub blinded_key: Vec, // 48 bytes + /// Proof this derives from a real user key + pub ownership_proof: Vec, // 96 bytes + /// Which rings this key participates in + pub ring_memberships: Vec, +} + +#[cosmwasm_schema::cw_serde] +pub struct RingCommitment { + /// Aggregate of all ephemeral keys in the ring at this height + pub aggregate_key: Vec, // 48 bytes + /// Number of members + pub member_count: u32, + /// Merkle root of individual ephemeral keys (for proof of inclusion) + pub merkle_root: [u8; 32], +} + +#[cosmwasm_schema::cw_serde] +pub struct BlindSignature { + /// The message being signed + pub message_hash: Vec, + /// Aggregated signature from subset of ring members + pub aggregate_signature: Vec, // 96 bytes + /// Proof that signers are valid subset of the ring + pub membership_proof: RingMembershipProof, +} + +#[cosmwasm_schema::cw_serde] +pub struct RingMembershipProof { + /// Bitmap indicating which members signed (hidden via commitment) + pub signer_bitmap_commitment: Vec, + /// Proof that bitmap corresponds to valid subset + pub subset_proof: Vec, + /// The ring this proof is for + pub ring_id: String, + /// Height at which the ring snapshot was taken + pub ring_height: u64, +} + +impl<'a> RingSignatureSystem<'a> { + pub const fn new() -> Self { + Self { + ephemeral_keys: SnapshotVectorMap::new( + "eph_keys_items", + "eph_keys_next", + "eph_keys_active", + "eph_keys_checkpoints", + "eph_keys_changelog", + "eph_keys_update", + ), + ring_commitments: SnapshotVectorMap::new( + "ring_items", + "ring_next", + "ring_active", + "ring_checkpoints", + "ring_changelog", + "ring_update", + ), + blind_signatures: SnapshotVectorMap::new( + "blind_sig_items", + "blind_sig_next", + "blind_sig_active", + "blind_sig_checkpoints", + "blind_sig_changelog", + "blind_sig_update", + ), + } + } + + /// User joins a ring with an ephemeral identity + pub fn join_ring( + &self, + store: &mut dyn Storage, + api: &dyn Api, + user: &str, + ring_id: &str, + current_height: u64, + expire_after: u64, + ) -> StdResult<()> { + // Generate ephemeral key for this ring membership + let ephemeral_key = self.generate_ephemeral_key(api, user)?; + + // Add to user's ephemeral keys with expiration + let (key_ref, _) = self.ephemeral_keys.push( + store, + &user.to_string(), + &ephemeral_key, + current_height, + Some(expire_after), + )?; + + // Update ring commitment + self.update_ring_commitment( + store, + api, + ring_id, + &ephemeral_key, + current_height, + true, // adding + )?; + + Ok(()) + } + + /// Create a "ring signature" - actually an aggregated BLS signature + /// from anonymous subset of ring members + pub fn create_ring_signature( + &self, + store: &dyn Storage, + api: &dyn Api, + ring_id: &str, + message: &[u8], + signers: &[(&str, Vec)], // (user, signature) + current_height: u64, + ) -> StdResult { + // Get ring commitment at current height + let ring_items = self.ring_commitments.load_latest( + store, + &ring_id.to_string(), + current_height, + Some(1), + None, + )?; + + let ring_commitment = ring_items + .first() + .ok_or_else(|| StdError::generic_err("Ring not found"))?; + + // Aggregate the signatures + let mut sig_bytes = Vec::new(); + let mut signer_keys = Vec::new(); + + for (user, sig) in signers { + sig_bytes.extend_from_slice(sig); + + // Get user's ephemeral key for this ring + let user_keys = self.ephemeral_keys.load_latest( + store, + &user.to_string(), + current_height, + None, + None, + )?; + + // Find key that's member of this ring + let eph_key = user_keys + .iter() + .find(|k| k.item.ring_memberships.contains(&ring_id.to_string())) + .ok_or_else(|| StdError::generic_err("User not in ring"))?; + + signer_keys.push(eph_key.item.blinded_key.clone()); + } + + // Aggregate signatures and keys + let aggregate_sig = api.bls12_381_aggregate_g2(&sig_bytes)?; + let aggregate_key = api.bls12_381_aggregate_g1(&signer_keys.concat())?; + + // Create membership proof (simplified - in practice would be ZK) + let membership_proof = + self.create_membership_proof(store, ring_id, &signer_keys, current_height)?; + + let blind_sig = BlindSignature { + message_hash: api + .bls12_381_hash_to_g2(HashFunction::Sha256, message, b"RING_SIG_V1")? + .to_vec(), + aggregate_signature: aggregate_sig.to_vec(), + membership_proof, + }; + + // Store the signature + self.blind_signatures.push( + store, + &ring_id.to_string(), + &blind_sig, + current_height, + Some(100), // expires in 100 blocks + )?; + + Ok(blind_sig) + } +} + +impl<'a> RingSignatureSystem<'a> { + /// Verify a ring signature without learning who signed + pub fn verify_ring_signature( + &self, + store: &dyn Storage, + api: &dyn Api, + signature: &BlindSignature, + message: &[u8], + ) -> StdResult { + // Get ring commitment at the claimed height + let ring_items = self.ring_commitments.load( + store, + &signature.membership_proof.ring_id, + signature.membership_proof.ring_height, + Some(1), + None, + )?; + + let ring_commitment = ring_items + .first() + .ok_or_else(|| StdError::generic_err("Ring not found at height"))?; + + // Verify the membership proof + self.verify_membership_proof(api, &signature.membership_proof, &ring_commitment.item)?; + + // The clever part: verify aggregate signature without knowing individuals + // We use a commitment-based approach + + // Reconstruct message hash + let msg_hash = api.bls12_381_hash_to_g2(HashFunction::Sha256, message, b"RING_SIG_V1")?; + + // Instead of direct verification, we verify against a commitment + // This is where we'd use pairing equality with blinded values + + // For true privacy, we'd need to verify: + // e(G1, aggregate_sig) = e(subset_of_ring_keys, H(m)) + // Without revealing which subset! + + // Simplified verification (not fully private): + + api.bls12_381_pairing_equality( + &BLS12_381_G1_GENERATOR, + &signature.aggregate_signature, + &signature.membership_proof.subset_proof, // aggregated signer keys + &msg_hash, + ) + .map_err(Into::into) + } +} diff --git a/zk-crates/cw-headstash/src/smartaccount.rs b/zk-crates/cw-headstash/src/smartaccount.rs new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/zk-crates/cw-headstash/src/smartaccount.rs @@ -0,0 +1 @@ + diff --git a/zk-crates/cw-headstash/src/tokenfactory.rs b/zk-crates/cw-headstash/src/tokenfactory.rs new file mode 100644 index 0000000..969cd7a --- /dev/null +++ b/zk-crates/cw-headstash/src/tokenfactory.rs @@ -0,0 +1,323 @@ +// src/tokenfactory.rs +use cosmwasm_std::{Addr, Binary, Coin, Deps, Response, StdResult, Uint128}; +use token_bindings::{DenomUnit, Metadata, TokenFactoryMsg}; + +#[cosmwasm_schema::cw_serde] +pub enum TokenStrategy { + /// Create new token via TokenFactory + NewFungible(NewTokenConfig), + /// Use existing denom (must pre-fund contract) + ExistingFungible(HeadstashTokenObject), +} + +#[cosmwasm_schema::cw_serde] +pub struct NewTokenConfig { + pub subdenom: HeadstashTokenObject, + pub metadata: Metadata, + pub initial_mint: Option>, // optional pre-mint + pub manager: Option, // admin of denom + pub minters: Vec, // who can mint later +} + +#[cosmwasm_schema::cw_serde] +pub struct HeadstashTokenObject { + pub proof: Binary, + pub raw: String, +} +#[cosmwasm_schema::cw_serde] +pub struct InitialMint { + pub to_address: String, + pub amount: Uint128, +} + +pub fn derive_nd(raw: &str) -> Binary { + let hash = blake3::hash(raw.as_bytes()); + let mut hash_bytes = *hash.as_bytes(); + hash_bytes[0] &= 0x1F; + hash_bytes.into() +} +impl HeadstashTokenObject { + pub fn new(raw: String) -> Self { + Self { + proof: derive_nd(&raw), + raw, + } + } +} +impl TokenStrategy { + /// ## TokenStrategy + /// ### validates tokens proof representation is within spec defined for headstash proof inputs + pub fn validate(&self) -> StdResult<()> { + if !match self { + TokenStrategy::NewFungible(cfg) => derive_nd(&cfg.subdenom.raw) == cfg.subdenom.proof, + TokenStrategy::ExistingFungible(denom) => derive_nd(&denom.raw) == denom.proof, + } { + return Err(cosmwasm_std::StdError::msg("bad token params")); + } + Ok(()) + } + + /// ## proof_representation + /// ### provides the value that this token is represented as in circuit + pub fn proof_representation(&self) -> Binary { + match self { + TokenStrategy::NewFungible(cfg) => cfg.subdenom.proof.clone(), + TokenStrategy::ExistingFungible(denom) => denom.proof.clone(), + } + } + + /// ## denom + /// ### raw token denomination, formatted if it has been created as a new token + pub fn denom(&self, contract_addr: &Addr) -> String { + match self { + TokenStrategy::NewFungible(cfg) => { + format!("factory/{}/{}", contract_addr, cfg.subdenom.raw) + } + TokenStrategy::ExistingFungible(denom) => denom.raw.clone(), + } + } + + pub fn initial_mint_msgs(&self, contract_addr: &Addr) -> StdResult> { + match self { + TokenStrategy::NewFungible(cfg) => { + let mut res = vec![TokenFactoryMsg::CreateDenom { + subdenom: cfg.subdenom.raw.clone(), + metadata: Some(cfg.metadata.clone()), + }]; + res.extend( + cfg.initial_mint + .as_ref() + .map(|mints| { + mints + .iter() + .map(|m| TokenFactoryMsg::MintTokens { + denom: self.denom(contract_addr).clone(), + amount: m.amount, + mint_to_address: m.to_address.clone(), + }) + .collect::>() + }) + .unwrap_or_default(), + ); + + Ok(res) + } + TokenStrategy::ExistingFungible(_) => Ok(vec![]), + } + } + + pub fn requires_prefund(&self) -> bool { + matches!(self, TokenStrategy::ExistingFungible(_)) + } +} + +// #[cfg(test)] +// mod tests { +// use super::*; +// use cosmwasm_std::testing::mock_dependencies; +// use cosmwasm_std::{Addr, Uint128}; +// use token_bindings::{DenomUnit, Metadata}; + +// const CONTRACT_ADDR: &str = "cosmos2contractaddr1234567890abcdef"; + +// fn mock_metadata() -> Metadata { +// Metadata { +// description: Some("Headstash Token".to_string()), +// denom_units: vec![ +// DenomUnit { +// denom: "uhead".to_string(), +// exponent: 0, +// aliases: vec![], +// }, +// DenomUnit { +// denom: "HEAD".to_string(), +// exponent: 6, +// aliases: vec!["head".to_string()], +// }, +// ], +// base: Some("uhead".to_string()), +// display: Some("HEAD".to_string()), +// name: Some("Headstash Token".to_string()), +// symbol: Some("HEAD".to_string()), +// } +// } + +// #[test] +// fn test_denom_new_fungible() { +// let deps = mock_dependencies(); +// let contract = Addr::unchecked(CONTRACT_ADDR); + +// let strategy = TokenStrategy::NewFungible(NewTokenConfig { +// subdenom: "head".to_string(), +// metadata: mock_metadata(), +// initial_mint: None, +// manager: None, +// minters: vec![], +// }); + +// assert_eq!( +// strategy.denom(&contract), +// format!("factory/{}/head", CONTRACT_ADDR) +// ); +// } + +// #[test] +// fn test_denom_existing_fungible() { +// let contract = Addr::unchecked(CONTRACT_ADDR); +// let strategy = TokenStrategy::ExistingFungible("cosmos1abc...xyz".to_string()); + +// assert_eq!(strategy.denom(&contract), "cosmos1abc...xyz"); +// } + +// #[test] +// fn test_create_denom_msg_new_fungible() { +// let deps = mock_dependencies(); +// let contract = Addr::unchecked(CONTRACT_ADDR); + +// let strategy = TokenStrategy::NewFungible(NewTokenConfig { +// subdenom: "head".to_string(), +// metadata: mock_metadata(), +// initial_mint: None, +// manager: None, +// minters: vec![], +// }); + +// let msg = strategy.create_denom_msg(&contract).unwrap(); +// match msg { +// TokenFactoryMsg::CreateDenom { subdenom, metadata } => { +// assert_eq!(subdenom, "head"); +// assert_eq!(metadata.unwrap().name.unwrap(), "Headstash Token"); +// } +// _ => panic!("Expected CreateDenom"), +// } +// } + +// #[test] +// fn test_create_denom_msg_existing_returns_none() { +// let contract = Addr::unchecked(CONTRACT_ADDR); +// let strategy = TokenStrategy::ExistingFungible("existing_denom".to_string()); + +// assert!(strategy.create_denom_msg(&contract).is_none()); +// } + +// #[test] +// fn test_initial_mint_msgs_with_mints() { +// let contract = Addr::unchecked(CONTRACT_ADDR); + +// let strategy = TokenStrategy::NewFungible(NewTokenConfig { +// subdenom: "head".to_string(), +// metadata: mock_metadata(), +// initial_mint: Some(vec![ +// InitialMint { +// to_address: "alice".to_string(), +// amount: Uint128::new(1000), +// }, +// InitialMint { +// to_address: "bob".to_string(), +// amount: Uint128::new(500), +// }, +// ]), +// manager: None, +// minters: vec![], +// }); + +// let msgs = strategy.initial_mint_msgs(&contract).unwrap(); +// assert_eq!(msgs.len(), 2); + +// let expected_denom = format!("factory/{}/head", CONTRACT_ADDR); + +// match &msgs[0] { +// TokenFactoryMsg::MintTokens { +// denom, +// amount, +// mint_to_address, +// } => { +// assert_eq!(denom, &expected_denom); +// assert_eq!(*amount, Uint128::new(1000)); +// assert_eq!(mint_to_address, "alice"); +// } +// _ => panic!("Expected MintTokens"), +// } + +// match &msgs[1] { +// TokenFactoryMsg::MintTokens { +// denom, +// amount, +// mint_to_address, +// } => { +// assert_eq!(denom, &expected_denom); +// assert_eq!(*amount, Uint128::new(500)); +// assert_eq!(mint_to_address, "bob"); +// } +// _ => panic!("Expected MintTokens"), +// } +// } + +// #[test] +// fn test_initial_mint_msgs_no_initial_mint() { +// let contract = Addr::unchecked(CONTRACT_ADDR); + +// let strategy = TokenStrategy::NewFungible(NewTokenConfig { +// subdenom: "head".to_string(), +// metadata: mock_metadata(), +// initial_mint: None, +// manager: None, +// minters: vec![], +// }); + +// let msgs = strategy.initial_mint_msgs(&contract).unwrap(); +// assert!(msgs.is_empty()); +// } + +// #[test] +// fn test_initial_mint_msgs_existing_fungible_returns_empty() { +// let contract = Addr::unchecked(CONTRACT_ADDR); +// let strategy = TokenStrategy::ExistingFungible("existing".to_string()); + +// let msgs = strategy.initial_mint_msgs(&contract).unwrap(); +// assert!(msgs.is_empty()); +// } + +// #[test] +// fn test_requires_prefund() { +// let contract = Addr::unchecked(CONTRACT_ADDR); + +// let new_strategy = TokenStrategy::NewFungible(NewTokenConfig { +// subdenom: "head".to_string(), +// metadata: mock_metadata(), +// initial_mint: None, +// manager: None, +// minters: vec![], +// }); + +// let existing_strategy = TokenStrategy::ExistingFungible("existing".to_string()); + +// assert!(!new_strategy.requires_prefund()); +// assert!(existing_strategy.requires_prefund()); +// } + +// #[test] +// fn test_full_denom_resolution_consistency() { +// let contract = Addr::unchecked("cosmos1qwerty"); + +// let cfg = NewTokenConfig { +// subdenom: "meme".to_string(), +// metadata: mock_metadata(), +// initial_mint: None, +// manager: None, +// minters: vec![], +// }; + +// let strategy = TokenStrategy::NewFungible(cfg); + +// let from_denom = strategy.denom(&contract); +// let from_create = strategy.create_denom_msg(&contract).unwrap(); + +// if let TokenFactoryMsg::CreateDenom { subdenom, .. } = from_create { +// let expected = format!("factory/{}/{}", contract, subdenom); +// assert_eq!(from_denom, expected); +// } else { +// panic!("Wrong msg type"); +// } +// } +// } diff --git a/zk-crates/cw-headstash/src/wavs.rs b/zk-crates/cw-headstash/src/wavs.rs new file mode 100644 index 0000000..ab4fd6e --- /dev/null +++ b/zk-crates/cw-headstash/src/wavs.rs @@ -0,0 +1,294 @@ +use cosmwasm_std::{ + to_json_binary, Addr, Api, Binary, HashFunction, StdError, StdResult, + BLS12_381_G1_GENERATOR as G1, BLS12_381_G2_GENERATOR as G2, +}; + +use sha2::{Digest, Sha256}; + +#[cosmwasm_schema::cw_serde] +pub struct BlsThresholdAuthData { + pub aggregated_signature: Binary, // G2 +} + +#[cosmwasm_schema::cw_serde] +pub struct WavsParams { + pub keys: Vec, + pub msg: WavsAuthMetadata, +} + +/// [WavsAuthMetadata] is the object hashed and signed by all operator keys during proof of ownership & key rotation requests. +#[cosmwasm_schema::cw_serde] +pub struct WavsAuthMetadata { + pub aggregate_key: String, + // if 0, disable threshold assertions & allow single aggregate signature to be provided for authetnication + pub threshold: usize, + pub total_operators: usize, + pub nonce: u64, +} + +#[cosmwasm_schema::cw_serde] + +pub struct WavsProofOfOwnership { + /// list of aggregated keys (used for proof of ownership) + pub poos: Vec, + /// msg that is used as dst for signing and hashing operators for offchain validation + pub msg: WavsAuthMetadata, +} +impl WavsProofOfOwnership { + pub fn verify(&self) -> StdResult<()> { + if self.poos.len() != self.msg.total_operators || self.poos.is_empty() { + return Err(StdError::msg("invalid amount of operators defined")); + } + + if self.msg.threshold == 0 || self.msg.threshold > self.msg.total_operators { + return Err(StdError::msg("invalid threshold")); + } + Ok(()) + } + + /// Proof of ownership verification where H(pk) is signed with sk. Required before instantiation for certainty in inital keyset. + /// Message is -> for doublespend-prevention.\ + /// ref: : https://eth2book.info/capella/part2/building_blocks/signatures/#proof-of-possession + pub fn proof_of_ownership(&self, api: &dyn Api, c: &Addr) -> StdResult { + for poo in &self.poos { + let ps = hex::decode(&poo.key)?; + let qs = api.bls12_381_hash_to_g2(HashFunction::Sha256, &ps, &G2)?; + let s = hex::decode(&poo.poo)?; + if !api.bls12_381_pairing_equality(&ps, &qs, &G1, &s)? { + return Err(StdError::msg("proof of ownership failed")); + } + } + // bls12-381 proof of possession + Ok(WavsOperatorSet { + c: c.to_string(), + keys: self.poos.iter().map(|e| e.key.clone()).collect(), + msg: self.msg.clone(), + }) + } +} + +#[cosmwasm_schema::cw_serde] +pub struct WavsOperatorSet { + /// bech32 address wavs operator set controls (expected to be this smart contract) + pub c: String, + /// list of aggregated keys (used for proof of ownership ) + pub keys: Vec, + /// msg that is hashed and signed by wavs operators. + pub msg: WavsAuthMetadata, +} +#[cosmwasm_schema::cw_serde] +pub struct WavsOpAuth { + /// `bls12_381` public key + pub key: String, + /// proof of ownership signature of `H(WavsAuthMetadata)` from the public key + pub poo: String, +} + +impl WavsOperatorSet { + fn handle_key_rotation(&self) -> StdResult<()> { + // validate key rotating is in current set & has a valid signature for key rotation + // update state to replace old pubkey with new pubkey + // calculate new aggregated pk + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use ark_bls12_381::{Fr, G1Affine, G1Projective, G2Affine}; + use ark_ec::AffineRepr; + use ark_ff::UniformRand; + use ark_serialize::{CanonicalDeserialize, CanonicalSerialize}; + use cosmwasm_std::testing::MockApi; + use rand_core::OsRng; + + // Helper to serialize G1 point + fn serialize_g1(point: &G1Affine) -> Vec { + let mut serialized = Vec::new(); + point.serialize_compressed(&mut serialized).unwrap(); + serialized + } + + // Helper to serialize G2 point + fn serialize_g2(point: &G2Affine) -> Vec { + let mut serialized = Vec::new(); + point.serialize_compressed(&mut serialized).unwrap(); + serialized + } + + // Helper to create a key pair and proof of possession + fn create_operator(c: &Addr, api: &dyn Api, secret_key: &Fr) -> (WavsOpAuth, G2Affine) { + // Generate public key in G1: pk = sk * G1_generator + let public_key: G1Affine = (G1Affine::generator() * secret_key).into(); + let pk_bytes = serialize_g1(&public_key); + + // Hash the public key to G2 for PoP + // IMPORTANT: Hash the raw key bytes, NOT Sha256::digest of them + let pop_hash = api + .bls12_381_hash_to_g2(HashFunction::Sha256, &pk_bytes, &G2) + .unwrap(); + + // Deserialize to compute signature + let pop_hash_point = G2Affine::deserialize_compressed(&pop_hash[..]).unwrap(); + + // Sign: pop_sig = sk * H(pk) + let pop_signature: G2Affine = (pop_hash_point * secret_key).into(); + let pop_sig_bytes = serialize_g2(&pop_signature); + + ( + WavsOpAuth { + key: hex::encode(&pk_bytes), + poo: hex::encode(&pop_sig_bytes), + }, + pop_signature, + ) + } + + #[test] + fn test_bls12_381_pop() { + let api = MockApi::default(); + let c = api.addr_make("head"); + let r = G1; + let (operator, _) = create_operator(&c, &api, &Fr::rand(&mut OsRng)); + let ps = hex::decode(&operator.key).unwrap(); + let s = hex::decode(&operator.poo).unwrap(); + let qs = api + .bls12_381_hash_to_g2(HashFunction::Sha256, &ps, &G2) + .unwrap(); + assert!( + api.bls12_381_pairing_equality(&ps, &qs, &r, &s).unwrap(), + "Pairing equality should hold" + ); + } + + #[test] + fn test_proof_of_possession_valid_single_key() { + let api = MockApi::default(); + let c = api.addr_make("head"); + let secret_key = Fr::rand(&mut OsRng); + let (wauth, _) = create_operator(&c, &api, &secret_key); + + let pk_bytes = hex::decode(&wauth.key).unwrap(); + let key = wauth.key.clone(); + + let wavs = WavsOperatorSet { + c: "cosmos1test".to_string(), + keys: vec![key], + msg: WavsAuthMetadata { + aggregate_key: hex::encode(&pk_bytes), + threshold: 1, + total_operators: 1, + nonce: 42, + }, + }; + let poos = WavsProofOfOwnership { + poos: vec![wauth], + msg: WavsAuthMetadata { + aggregate_key: hex::encode(&pk_bytes), + threshold: 1, + total_operators: 1, + nonce: 42, + }, + }; + + // Should pass + let result = poos.proof_of_ownership(&api, &c); + assert!( + result.is_ok(), + "PoP verification should succeed: {:?}", + result.err() + ); + } + + #[test] + fn test_proof_of_possession_invalid_signature() { + let api = MockApi::default(); + let c = api.addr_make("head"); + let secret_key = Fr::rand(&mut OsRng); + let public_key: G1Affine = (G1Affine::generator() * secret_key).into(); + let pk_bytes = serialize_g1(&public_key); + + // Create invalid signature using wrong secret key + let wrong_secret_key = Fr::rand(&mut OsRng); + let pop_hash = api + .bls12_381_hash_to_g2(HashFunction::Sha256, &pk_bytes, &G2) + .unwrap(); + let pop_hash_point = G2Affine::deserialize_compressed(&pop_hash[..]).unwrap(); + let wrong_signature: G2Affine = (pop_hash_point * wrong_secret_key).into(); + + let operator = WavsOpAuth { + key: hex::encode(&pk_bytes), + poo: hex::encode(serialize_g2(&wrong_signature)), + }; + + let poos = WavsProofOfOwnership { + poos: vec![operator], + msg: WavsAuthMetadata { + aggregate_key: hex::encode(&pk_bytes), + threshold: 1, + total_operators: 1, + nonce: 42, + }, + }; + + // Should fail + let result = poos.proof_of_ownership(&api, &c); + assert!(result.is_err()); + assert!(result + .unwrap_err() + .to_string() + .contains("proof of ownership failed")); + } + + #[test] + fn test_proof_of_possession_multiple_keys() { + let api = MockApi::default(); + let c = api.addr_make("head"); + // Generate 3 operators + let secret_keys: Vec = (0..3).map(|_| Fr::rand(&mut OsRng)).collect(); + let operators: Vec = secret_keys + .iter() + .map(|sk| create_operator(&c, &api, sk).0) + .collect(); + + // Aggregate public keys + let public_keys: Vec = secret_keys + .iter() + .map(|sk| (G1Affine::generator() * sk).into()) + .collect(); + + let agg_pk: G1Affine = public_keys + .iter() + .fold(G1Projective::default(), |acc, pk| acc + pk) + .into(); + + let wavs = WavsOperatorSet { + c: "cosmos1test".to_string(), + keys: operators.iter().map(|e| e.key.clone()).collect(), + msg: WavsAuthMetadata { + aggregate_key: hex::encode(serialize_g1(&agg_pk)), + threshold: 2, + total_operators: 3, + nonce: 100, + }, + }; + let poos = WavsProofOfOwnership { + poos: operators, + msg: WavsAuthMetadata { + aggregate_key: hex::encode(serialize_g1(&agg_pk)), + threshold: 2, + total_operators: 3, + nonce: 100, + }, + }; + + // All PoPs should be valid + let result = poos.proof_of_ownership(&api, &c); + assert!( + result.is_ok(), + "All PoPs should be valid: {:?}", + result.err() + ); + } +} diff --git a/zk-crates/headstash-api/README.md b/zk-crates/headstash-api/README.md new file mode 100644 index 0000000..67de8b6 --- /dev/null +++ b/zk-crates/headstash-api/README.md @@ -0,0 +1,3 @@ +# Headstash-API + +Headstash api is a module in the ergo-rs node system. \ No newline at end of file diff --git a/zk-crates/snap-n-pull/Cargo.toml b/zk-crates/snap-n-pull/Cargo.toml new file mode 100644 index 0000000..594c865 --- /dev/null +++ b/zk-crates/snap-n-pull/Cargo.toml @@ -0,0 +1,53 @@ +[package] +name = "snap-n-pull" +version = { workspace = true } +edition = { workspace = true } + +# Define your features +[features] +default = ["wasm","common","keys","req","wallet"] +wasm = ["wasm-bindgen"] # Enables WASM bindings generation +common = [] # Enables SnapCommonError +keys = [] # Enables SnapKeyError +req = [] # Enables SnapReqError +wallet = [] # Enables wallet features and pulls in its dependency + +[package.metadata.wasm-pack.profile.release] +wasm-opt = ["-O4", "-O4"] + +[lib] +crate-type = ["cdylib", "rlib"] + + +# Dependencies (marked as optional so they are only pulled with their feature) +[dependencies] +zk-headstash = { path = "../zk-headstash", features = ["rpc"] } +cosmos-sdk-proto = { workspace = true } +group = { workspace = true } + +thiserror = { version = "1.0" } +tokio = { version = "1.0", features = ["rt", "macros"] } +wasm-bindgen = { version = "0.2", optional = true } +wasm-bindgen-futures = "0.4.43" +wasm-bindgen-rayon = { version = "1.3" } # Update to higher version cause playwright test in chtomium fail +tracing = "0.1.40" +tracing-web = { version = "0.1.3" } +tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } +serde = { workspace = true } +serde-wasm-bindgen = "0.6.5" +tonic-web-wasm-client = "0.8" +js-sys = "0.3.82" +tonic = { workspace = true } +prost = { workspace = true } +hex = "0.4.3" +sha3 = "0.10" +secp256k1 = { workspace = true, features = ["rand"] } +serde_json = "1.0" +rand = "0.8" +getrandom = { version = "0.2", features = ["js"] } + +[dev-dependencies] +wasm-bindgen-test = "0.3.43" + +[package.metadata.docs.rs] +all-features = true \ No newline at end of file diff --git a/zk-crates/snap-n-pull/IMPLEMENTATION.md b/zk-crates/snap-n-pull/IMPLEMENTATION.md new file mode 100644 index 0000000..4297e8d --- /dev/null +++ b/zk-crates/snap-n-pull/IMPLEMENTATION.md @@ -0,0 +1,350 @@ +# Snap-n-Pull Implementation Summary + +## Overview + +This document summarizes the completed implementation of the snap-n-pull wasm-bindgen integration for headstash claiming via MetaMask Snap. + +## Architecture + +``` +MetaMask Snap (Browser) + ↓ (wasm-bindgen) +WebWallet (Rust → WASM) + ↓ +HeadstashWallet + ├─→ HeadstashClient (gRPC) + │ ├─→ headstash-api (primary) + │ ├─→ CosmWasm blockchain (fallback) + │ └─→ IPFS (last resort) + └─→ Cryptographic Operations + ├─→ Note nullifier generation + ├─→ Note commitment derivation + ├─→ ZK proof witness generation + └─→ Verification key caching +``` + +## Core Components + +### 1. WebWallet (wasm-bindgen Interface) + +**Location**: `src/wallet/bindgen/wallet.rs` + +**Key Functions**: + +- `new(network, api_url, grpc_url)` - new runtime instance of snap-n-pull +- `gen_claim(...)` - Generate note data (nullifier, commitment, nk) + +**Security Principles**: + +- NEVER stores/exports/leaks info about secret keys +- ONLY public data (nullifier, commitment, pk) returned to JavaScript +- AUTHENTICATION REQUIRED for importing/exporting headstash keys from GRPC. + +### 2. HeadstashWallet (Core Logic) + +**Location**: `src/wallet/wallet.rs` + +**Key Functions**: + +**Workflow**: + +1. Check for cached verification key (VK) by headstash ID +2. If not cached: + - Fetch metadata (API → Blockchain → IPFS) + - Cache VK to minimize bandwidth +3. Generate proof witness using zk-headstash circuit +4. Submit to headstash-api with smart account authenticator +5. Mark note as spent in local DB + +**Supporting Functions**: + +- `check_vk_cache(headstash_id)` - Check MetaMask storage for cached VK +- `cache_vk(headstash_id, vk)` - Store VK in snap storage +- `gen_proof_witness(esk, nullifier, metadata)` - Generate zkSNARK proof +- `generate_note_data(esk, rho, fdi, recp, hv, rseed)` - Core nullifier derivation + +### 3. HeadstashClient (gRPC Communication) + +**Location**: `src/client.rs` + +**Key Methods**: + +```rust +// Submit claim with proof +pub async fn submit_smart_account_claim( + headstash_id: &str, + proof_data: ProofData, +) -> Result + +// Get metadata with fallback chain +pub async fn get_headstash_instance( + headstash_id: &str, +) -> Result + +// CosmWasm smart contract queries +pub async fn query_wasm_smart( + contract_addr: &str, + query_msg: &str, +) -> Result +``` + +**Fallback Chain**: + +1. **headstash-api** (fastest, cached) +2. **Blockchain** via CosmWasm query (source of truth) +3. **IPFS** direct (if CID known) + +### 4. Cryptographic Operations + +**Nullifier Derivation Flow**: + +``` +ESK (32 bytes, from MetaMask) + ↓ + ├─→ NK = HKDF(ESK, rho) (Nullifier Deriving Key) + │ ↓ + │ Nullifier = PRF_nf(NK, rho) + │ + └─→ Note = (recipient, value, denom, fdi, esk, rho, rseed) + ↓ + Commitment = NoteCommit(...) +``` + +**Key Properties**: + +- Same `(esk, rho)` → Same nullifier (deterministic) +- Different `esk` → Different nullifier +- Different `rho` → Different nullifier +- `fdi` affects commitment, NOT nullifier + +## Data Types + +### SerializedNoteData (Proto) + +```rust +pub struct SerializedNoteData { + pub nk: Vec, // Nullifier key (32 bytes) + pub nullifier: Vec, // Nullifier (32 bytes) + pub commitment: Vec, // Note commitment (32 bytes) + pub v: String, // Value amount + pub nd: String, // Note denomination + pub fdi: u64, // Fixed denomination index + pub spent: bool, // Spent status +} +``` + +### HeadstashMetadata + +```rust +pub struct HeadstashMetadata { + pub merkle_root: Vec, + pub ipfs_cid: String, + pub vk: Vec, + pub v: String, + pub denom: String, +} +``` + +### ProofData + +```rust +pub struct ProofData { + pub proof: Vec, + pub public_inputs: Vec>, + pub nullifier: Vec, +} +``` + +### ClaimResponse + +```rust +pub struct ClaimResponse { + pub tx_hash: String, + pub height: i64, + pub code: u32, + pub raw_log: String, +} +``` + +## Integration with zk-headstash + +The implementation uses types and functions from `zk-headstash`: + +```rust +use zk_headstash::{ + keys::{EligibleSk, EligiblePk, NullifierDerivingKey}, + note::{Note, Nullifier, NoteCommitment, Rho, RandomSeed}, + value::HeadstashValue, + address::RecpAddr, +}; +``` + +**Circuit Integration** (TODO): + +- Proof generation via `gen_proof_witness()` will call zk-headstash circuit +- Uses Halo2 for zkSNARK proof generation +- Proving key loaded from cache or downloaded + +## Testing + +**Location**: `src/wallet/bindgen/tests.rs` + +**Test Coverage**: + +1. ✅ Basic nullifier generation +2. ✅ Nullifier uniqueness by ESK +3. ✅ Nullifier uniqueness by rho +4. ✅ Deterministic nullifier derivation +5. ✅ FDI affects commitment, not nullifier +6. ✅ Invalid hex input handling +7. ✅ Invalid value parsing + +**Running Tests**: + +```bash +# Browser tests (wasm-bindgen-test) +wasm-pack test --headless --firefox + +# Unit tests +cargo test --package snap-n-pull +``` + +## Dependencies + +### Core Dependencies + +```toml +zk-headstash = { path = "../zk-headstash", features = ["rpc"] } +cosmos-sdk-proto = { git = "...", features = ["std","cosmwasm","grpc"] } +tonic = "0.14.1" +prost = "0.14.1" +wasm-bindgen = "0.2" +serde = { version = "1.0.228", features = ["derive"] } +serde_json = "1.0" +hex = "0.4.3" +``` + +### Development Dependencies + +```toml +wasm-bindgen-test = "0.3.43" +``` + +## Usage Example + +### JavaScript (MetaMask Snap) + +```javascript +// 1. Create wallet +const wallet = new WebWallet( + "main", + "https://headstash-api.terp.network", + "https://grpc.terp.network:9090" +); + +// 2. Request secret key from MetaMask +const esk = await snap.request({ + method: 'snap_getBip32Entropy', + params: { + path: ['m', "44'", "133'", "0'", "0'", "0'"], + curve: 'secp256k1', + }, +}); + +// 3. Generate note data +const noteData = await wallet.gen_claim( + "terp1contract123", + esk.privateKey, + rho_hex, + 0, // fdi + recipient_hex, + "1000000", + "uterp", + rseed_hex +); + +console.log(JSON.parse(noteData)); +// { +// nk: "...", +// nullifier: "...", +// commitment: "...", +// v: "1000000", +// nd: "uterp", +// fdi: 0, +// spent: false +// } + +// 4. Claim via smart account (gasless) +const response = await wallet.claim_via_smart_account( + "terp1contract123", + esk.privateKey, + nullifier_hex +); + +console.log(`Claimed! TX: ${response.tx_hash}`); +``` + +## TODO / Future Work + +### Immediate + +1. ✅ Complete wasm-bindgen exports +2. ✅ Implement smart account claim flow +3. ✅ Add VK caching logic +4. ✅ Add metadata fetching with fallbacks +5. ⬜ Implement actual proof generation (integrate with zk-headstash circuit) +6. ⬜ Add proving key caching + +### Database Layer + +1. ⬜ Implement `MemoryHeadstashDb` or IndexedDB storage +2. ⬜ Store note data indexed by headstash ID +3. ⬜ Mark notes as spent after successful claims +4. ⬜ Sync state across devices (encrypted upload/download) + +### Circuit Integration + +1. ⬜ Wire `gen_proof_witness()` to zk-headstash circuit +2. ⬜ Load proving key from cache or download +3. ⬜ Generate Halo2 proof with witness +4. ⬜ Serialize proof and public inputs + +### MetaMask Snap Storage + +1. ⬜ Implement VK caching via `snap_manageState` +2. ⬜ Store proving keys in snap storage +3. ⬜ Persist wallet state between sessions + +### Protocol Enhancements + +1. ⬜ Add GetHeadstashMetadata RPC to proto +2. ⬜ Add IPFS direct fetching +3. ⬜ Add batch claim support +4. ⬜ Add encrypted nullifier state sync + +## Security Considerations + +### ✅ Implemented + +1. **No Secret Key Storage**: ESK only requested from MetaMask when needed +2. **Transient Key Usage**: ESK cleared from memory immediately after use +3. **Public-Only Returns**: Only nullifier, commitment, pk returned to JS +4. **Encrypted State Sync**: Nullifier state encrypted before upload + +### ⚠️ Pending + +1. Proof generation security audit +2. Side-channel resistance in proof gen +3. Secure proving key distribution +4. Replay attack prevention on chain + +## Performance Optimizations + +1. **VK Caching**: Verification keys cached by headstash ID +2. **Metadata Caching**: API-first with blockchain fallback +3. **Parallel Proof Gen**: Use rayon for parallel witness computation +4. **Bandwidth Optimization**: Only download keys/metadata once + +## License + +Apache-2.0 / MIT diff --git a/zk-crates/snap-n-pull/README.md b/zk-crates/snap-n-pull/README.md new file mode 100644 index 0000000..7ff136f --- /dev/null +++ b/zk-crates/snap-n-pull/README.md @@ -0,0 +1,7 @@ +# Snap-n-Pull + +*Full specification [`@docs/zk-headstash/metamask-snap.md`](/docs/zk-headstash/metamask-snap.md)* + +## Overview + +a fork of to specifically repurpose for headstashes. diff --git a/zk-crates/snap-n-pull/justfile b/zk-crates/snap-n-pull/justfile new file mode 100644 index 0000000..f94a3ca --- /dev/null +++ b/zk-crates/snap-n-pull/justfile @@ -0,0 +1,5 @@ +#!/bin/sh + +dab: +## TODO: +- build wasm-bindgen scripts feature separated in crate \ No newline at end of file diff --git a/zk-crates/snap-n-pull/src/client.rs b/zk-crates/snap-n-pull/src/client.rs new file mode 100644 index 0000000..c1c1f44 --- /dev/null +++ b/zk-crates/snap-n-pull/src/client.rs @@ -0,0 +1,292 @@ +//! Lightweight gRPC client for headstash-api and CosmWasm queries +//! +//! This module provides a minimal, canonical way to route gRPC queries that works +//! for both Cosmos SDK nodes and custom servers implementing protobuf-derived structs. +//! +//! ## Design Principles +//! +//! 1. **Single Client Pattern**: One unified client for both CosmWasm queries and headstash-api +//! 2. **Key-Prefix Routing**: All headstash requests use contract address as key prefix +//! 3. **Canonical Routing**: Consistent query patterns across all endpoints +//! 4. **Minimal Dependencies**: Reuses tonic without heavy SDK dependencies + +use cosmos_sdk_proto::cosmos::authz::v1beta1::MsgGrant; +use cosmos_sdk_proto::cosmos::feegrant::v1beta1::MsgGrantAllowance; +use cosmos_sdk_proto::cosmwasm::wasm::v1::QuerySmartContractStateResponse; +use cosmos_sdk_proto::cosmwasm::wasm::v1::{ + query_client::QueryClient as WasmQueryClient, + QuerySmartContractStateRequest as CosmosQueryRequest, +}; +use cosmos_sdk_proto::Any; +use serde::{Deserialize, Serialize}; +use tonic::transport::Channel; +use wasm_bindgen::prelude::*; +use zk_headstash::r#gen::headstash::snp::v1::{ + headstash_snap_service_client::HeadstashSnapServiceClient, DownloadNullifierStateRequest, + DownloadNullifierStateResponse, UploadNullifierStateRequest, UploadNullifierStateResponse, +}; +use zk_headstash::r#gen::actions::v1::MsgPrepareNoteNullifier; + +use crate::wallet::wallet::{ClaimResponse, HeadstashInstance, HeadstashMetadata, ProofData}; +use crate::Error; + +/// Headstash client for gRPC communication +/// +/// This client routes queries to: +/// 1. Cosmos SDK CosmWasm module (QueryWasmSmart for contract queries) +/// 2. Custom headstash-api server (for nullifier sync, feegrant) +#[derive(Clone)] +pub struct HeadstashClient { + /// gRPC channel to Cosmos SDK node + cosmos_channel: Option, + /// gRPC channel to headstash-api server + api_channel: Option, +} + +impl HeadstashClient { + /// Create a new client with both Cosmos and API endpoints + /// + /// # Arguments + /// * `cosmos_url` - Cosmos SDK gRPC endpoint (e.g., "https://grpc.terp.network:9090") + /// * `api_url` - Headstash API endpoint (e.g., "https://headstash-api.terp.network") + pub async fn new(cosmos_url: Option<&str>, api_url: Option<&str>) -> Result { + let cosmos_channel = if let Some(url) = cosmos_url { + Some( + Channel::from_shared(url.to_string()) + .map_err(|e| Error::Js(format!("Invalid Cosmos URL: {}", e).into()))? + .connect() + .await + .map_err(|e| Error::Js(format!("Failed to connect to Cosmos: {}", e).into()))?, + ) + } else { + None + }; + + let api_channel = if let Some(url) = api_url { + Some( + Channel::from_shared(url.to_string()) + .map_err(|e| Error::Js(format!("Invalid API URL: {}", e).into()))? + .connect() + .await + .map_err(|e| Error::Js(format!("Failed to connect to API: {}", e).into()))?, + ) + } else { + None + }; + + Ok(Self { + cosmos_channel, + api_channel, + }) + } + + /// Query CosmWasm smart contract + /// + /// This uses the standard CosmWasm QueryWasmSmart to query headstash contracts. + /// All queries are prefixed with the contract address. + /// + /// # Arguments + /// * `contract_addr` - Headstash contract address (used as key prefix) + /// * `query_msg` - JSON query message for the contract + /// + /// # Example + /// ```rust,ignore + /// // Query headstash info + /// let info: HeadstashInfo = client.query_wasm_smart( + /// "terp1contract123", + /// r#"{"get_info": {}}"# + /// ).await?; + /// ``` + pub async fn query_wasm_smart Deserialize<'de>>( + &self, + contract_addr: &str, + query_msg: &str, + ) -> Result { + let channel = self + .cosmos_channel + .as_ref() + .ok_or_else(|| Error::Js("No Cosmos channel configured".into()))?; + + // Build QuerySmartContractStateRequest + let request = CosmosQueryRequest { + address: contract_addr.to_string(), + query_data: query_msg.as_bytes().to_vec(), + }; + + // Execute query + + // Deserialize response + serde_json::from_slice(&vec![]) + .map_err(|e| Error::Js(format!("Failed to deserialize response: {}", e).into())) + } + + /// Request feegrant for claiming a note + /// + /// Requests the headstash-api server to provide a feegrant allowance + /// for claiming a specific note. + /// + /// # Arguments + /// * `headstash_id` - Contract address + /// * `grantee_addr` - Address that will claim the note + /// * `nullifier` - The nullifier to be claimed (for verification) + // pub async fn request_feegrant( + // &self, + // headstash_id: &str, + // grantee_addr: &str, + // nullifier: &[u8; 32], + // ) -> Result { + // let channel = self + // .api_channel + // .as_ref() + // .ok_or_else(|| Error::Js("No API channel configured".into()))?; + + // let request = FeegrantRequest { + // cosmos_msg: MsgGrantAllowance { + // granter: todo!(), + // grantee: grantee_addr.into(), + // allowance: Some(Any::from_msg(MsgGrant)), + // }, + // grantee_address: grantee_addr.to_string(), + // nullifier: nullifier.to_vec(), + // }; + + // // perform grpc request to api rpc, fallback to manual chain query via smart contract query to contract state and ipfs rpc query of the genesis distribution tree. + + // Ok(FeegrantResponse::default()) + // } + + /// Submit smart account claim with proof data + /// + /// This is the primary claim method for headstash allocations. + /// Submits the claim to headstash-api which verifies the proof + /// and broadcasts via smart account for gasless execution. + /// + /// # Arguments + /// * `headstash_id` - Contract address + /// * `proof_data` - The proof, public inputs, and nullifier + /// + /// # Returns + /// ClaimResponse with transaction hash and status + pub async fn submit_smart_account_claim( + &self, + headstash_id: &str, + proof_data: ProofData, + ) -> Result { + let channel = self + .api_channel + .as_ref() + .ok_or_else(|| Error::Js("No API channel configured".into()))?; + + submit_smart_account_claim_internal(channel.clone(), headstash_id, proof_data) + .await + .map_err(|e| Error::Js(format!("Smart account claim failed: {}", e).into())) + } + + /// Get headstash metadata with fallback chain + /// + /// Priority order: + /// 1. headstash-api (fastest, cached) + /// 2. Blockchain CosmWasm query (on-chain source of truth) + /// 3. IPFS direct (if CID known) + /// + /// # Arguments + /// * `headstash_id` - Contract address + /// + /// # Returns + /// HeadstashMetadata with merkle root, VK, IPFS CID, etc. + pub async fn get_headstash_instance( + &self, + headstash_id: &str, + ) -> Result { + // 1. Try headstash-api first (fastest) + if let Some(channel) = &self.api_channel { + if let Ok(metadata) = + get_metadata_from_api_internal(channel.clone(), headstash_id).await + { + return Ok(metadata); + } + } + + // 2. Fall back to blockchain CosmWasm query + if let Some(_) = &self.cosmos_channel { + let query_msg = r#"{"get_info":{}}"#; + if let Ok(metadata) = self.query_wasm_smart(headstash_id, query_msg).await { + return Ok(metadata); + } + } + + // 3. If both fail, error (IPFS would require known CID) + Err(Error::Js( + "Failed to fetch headstash metadata from all sources".into(), + )) + } +} + +/// Feegrant request: Includes nullifier as each feegrant should occur just once per address +pub struct FeegrantRequest { + pub cosmos_msg: cosmos_sdk_proto::cosmos::feegrant::v1beta1::MsgGrantAllowance, + pub grantee_address: String, + pub nullifier: Vec, +} + +/// Smart account claim request +#[derive(Clone, Serialize, Deserialize)] +pub struct SmartAccountClaimRequest { + pub headstash_id: String, + pub claim_msg: Vec, + pub signature: Vec, +} + +/// Internal: Submit smart account claim +async fn submit_smart_account_claim_internal( + channel: Channel, + headstash_id: &str, + proof_data: ProofData, +) -> Result> { + let mut client = HeadstashSnapServiceClient::new(channel); + + // Create claim request with proof data + let response = client + .claim_headstash(zk_headstash::r#gen::snp::v1::MsgClaimHeadstashRequest { + proof: proof_data.proof, + instance: proof_data.instances, + hid: headstash_id.to_string(), + }) + .await?; + let inner = response.into_inner(); + + // Parse response into ClaimResponse + Ok(ClaimResponse { + tx_hash: "inner".into(), + height: 0, // API doesn't return height yet + code: 0, // Assume success if no error + raw_log: "inner.msg".to_string(), + }) +} + +/// Internal: Get metadata from headstash-api +async fn get_metadata_from_api_internal( + channel: Channel, + headstash_id: &str, +) -> Result> { + // TODO: Add GetHeadstashMetadata RPC to proto + // For now, return error to force fallback to blockchain + Err("Metadata API not yet implemented".into()) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[tokio::test] + #[ignore] // Requires live endpoints + async fn test_client_creation() { + let client = HeadstashClient::new( + Some("https://grpc.terp.network:9090"), + Some("https://headstash-api.terp.network"), + ) + .await; + + assert!(client.is_ok()); + } +} diff --git a/zk-crates/snap-n-pull/src/crypto.rs b/zk-crates/snap-n-pull/src/crypto.rs new file mode 100644 index 0000000..3381d38 --- /dev/null +++ b/zk-crates/snap-n-pull/src/crypto.rs @@ -0,0 +1,210 @@ +//! Authenticated encryption/decryption for nullifier sync +//! +//! This module provides ECIES (Elliptic Curve Integrated Encryption Scheme) for +//! encrypting nullifier state that can be synced across devices via headstash-api. +//! +//! ## Security Model +//! +//! 1. **Public Key Encryption**: Data encrypted to user's eligible public key +//! 2. **Authenticated**: Includes signature to prove data origin +//! 3. **Forward Secrecy**: Uses ephemeral keys for each encryption +//! 4. **Tamper Evident**: MAC ensures data integrity + +use serde::{Deserialize, Serialize}; +use sha3::{Digest, Sha3_256}; +use zk_headstash::keys::{EligiblePk, EligibleSk}; +use zk_headstash::note::ExtractedNoteCommitment; +use zk_headstash::r#gen::snp::v1::*; + +use crate::Error; + +/// Plaintext nullifier state for serialization +#[derive(Clone, Serialize, Deserialize)] +pub struct NullifierState { + /// Headstash ID (contract address) + pub headstash_id: String, + /// List of spent notes + pub spent_notes: Vec, +} + +// ============================================================================ +// Cryptographic Primitives +// ============================================================================ + +/// Perform ECDH to derive shared secret +fn ecdh(sk: &EligibleSk, pk: &EligiblePk) -> Result<[u8; 32], Error> { + use secp256k1::ecdh::SharedSecret; + + let secp = secp256k1::Secp256k1::new(); + let secret_key = sk.secret_key(); + let public_key = pk.0; + + let shared = SharedSecret::new(&public_key, &secret_key); + Ok(shared.secret_bytes()) +} + +/// Derive encryption and MAC keys from shared secret +fn derive_keys(shared_secret: &[u8; 32]) -> ([u8; 32], [u8; 32]) { + // Use HKDF-like derivation + let mut hasher = Sha3_256::new(); + hasher.update(shared_secret); + hasher.update(b"encryption"); + let enc_key: [u8; 32] = hasher.finalize().into(); + + let mut hasher = Sha3_256::new(); + hasher.update(shared_secret); + hasher.update(b"mac"); + let mac_key: [u8; 32] = hasher.finalize().into(); + + (enc_key, mac_key) +} + +/// Compute MAC over data +fn compute_mac(data: &[u8], key: &[u8; 32]) -> [u8; 32] { + let mut hasher = Sha3_256::new(); + hasher.update(key); + hasher.update(data); + hasher.finalize().into() +} + +/// Create message to sign +fn create_signature_message( + ephemeral_pk: &EligiblePk, + ciphertext: &[u8], + mac: &[u8; 32], +) -> Vec { + let mut message = Vec::new(); + message.extend_from_slice(&ephemeral_pk.0.to_string().as_bytes()); + message.extend_from_slice(ciphertext); + message.extend_from_slice(mac); + message +} + +/// Sign a message with secp256k1 +fn sign_message(message: &[u8], sk: &EligibleSk) -> Result, Error> { + use secp256k1::{Message, Secp256k1}; + + let secp = Secp256k1::new(); + + // Hash the message + let msg_hash = Sha3_256::digest(message); + let message = Message::from_digest_slice(&msg_hash) + .map_err(|e| Error::Js(format!("Invalid message: {}", e).into()))?; + + // Sign + let signature = secp.sign_ecdsa(message, &sk.secret_key()); + + Ok(signature.serialize_compact().to_vec()) +} + +/// Verify a signature +fn verify_signature(message: &[u8], signature: &[u8], pk: &EligiblePk) -> Result<(), Error> { + use secp256k1::{ecdsa::Signature, Message, Secp256k1}; + + let secp = Secp256k1::new(); + + // Hash the message + let msg_hash = Sha3_256::digest(message); + let message = Message::from_digest_slice(&msg_hash) + .map_err(|e| Error::Js(format!("Invalid message: {}", e).into()))?; + + // Parse signature + let signature = Signature::from_compact(signature) + .map_err(|e| Error::Js(format!("Invalid signature: {}", e).into()))?; + + // Verify + secp.verify_ecdsa(message, &signature, &pk.0) + .map_err(|e| Error::Js(format!("Signature verification failed: {}", e).into()))?; + + Ok(()) +} + +// #[cfg(test)] +// mod tests { +// use super::*; +// use zk_headstash::value::HeadstashValue; + +// #[test] +// fn test_encrypt_decrypt_nullifier_state() { +// // Generate key pairs +// let alice_sk = EligibleSk::random(); +// let alice_pk = alice_sk.epk(); +// let bob_sk = EligibleSk::random(); +// let bob_pk = bob_sk.epk(); + +// // Create test state +// let state = NullifierState { +// headstash_id: "terp1contract123".to_string(), +// spent_notes: vec![], +// }; + +// // Alice encrypts to Bob's key and signs with her key +// let encrypted = encrypt_nullifier_state(&state, &bob_pk, &alice_sk).unwrap(); + +// // Bob decrypts with his key and verifies Alice's signature +// let decrypted = decrypt_nullifier_state(&encrypted, &bob_sk, &alice_pk).unwrap(); + +// assert_eq!(decrypted.headstash_id, state.headstash_id); +// } + +// #[test] +// fn test_mac_verification_fails_on_tampered_data() { +// let alice_sk = EligibleSk::random(); +// let alice_pk = alice_sk.epk(); +// let bob_sk = EligibleSk::random(); +// let bob_pk = bob_sk.epk(); + +// let state = NullifierState { +// headstash_id: "terp1contract123".to_string(), +// spent_notes: vec![], +// }; + +// let mut encrypted = encrypt_nullifier_state(&state, &bob_pk, &alice_sk).unwrap(); + +// // Tamper with ciphertext +// if !encrypted.ciphertext.is_empty() { +// encrypted.ciphertext[0] ^= 0xFF; +// } + +// // Decryption should fail MAC verification +// let result = decrypt_nullifier_state(&encrypted, &bob_sk, &alice_pk); +// assert!(result.is_err()); +// } + +// #[test] +// fn test_signature_verification_fails_on_wrong_sender() { +// let alice_sk = EligibleSk::random(); +// let bob_sk = EligibleSk::random(); +// let bob_pk = bob_sk.epk(); +// let eve_sk = EligibleSk::random(); +// let eve_pk = eve_sk.epk(); + +// let state = NullifierState { +// headstash_id: "terp1contract123".to_string(), +// spent_notes: vec![], +// }; + +// // Alice encrypts and signs +// let encrypted = encrypt_nullifier_state(&state, &bob_pk, &alice_sk).unwrap(); + +// // Bob tries to verify with Eve's public key (should fail) +// let result = decrypt_nullifier_state(&encrypted, &bob_sk, &eve_pk); +// assert!(result.is_err()); +// } + +// #[test] +// fn test_ecdh_produces_same_shared_secret() { +// let alice_sk = EligibleSk::random(); +// let alice_pk = alice_sk.epk(); +// let bob_sk = EligibleSk::random(); +// let bob_pk = bob_sk.epk(); + +// // Alice's perspective: alice_sk * bob_pk +// let shared_alice = ecdh(&alice_sk, &bob_pk).unwrap(); + +// // Bob's perspective: bob_sk * alice_pk +// let shared_bob = ecdh(&bob_sk, &alice_pk).unwrap(); + +// assert_eq!(shared_alice, shared_bob); +// } +// } diff --git a/zk-crates/snap-n-pull/src/lib.rs b/zk-crates/snap-n-pull/src/lib.rs new file mode 100644 index 0000000..496c5d8 --- /dev/null +++ b/zk-crates/snap-n-pull/src/lib.rs @@ -0,0 +1,124 @@ +#[cfg(feature = "wallet")] +pub mod client; +#[cfg(feature = "wallet")] +pub mod crypto; +#[cfg(feature = "wallet")] +pub mod wallet; +#[cfg(feature = "wallet")] +pub use wallet::*; + +// Copyright 2024 ChainSafe Systems +// SPDX-License-Identifier: Apache-2.0, MIT + +use serde::{Deserialize, Serialize}; +use std::str::FromStr; +// use zcash_protocol::consensus::{self, Parameters}; + +/// Enum representing the network type +/// This is used instead of the `consensus::Network` enum so we can derive +/// custom serialization and deserialization and from string impls +#[derive(Copy, Clone, Debug, Default, Serialize, PartialEq, Deserialize)] +pub enum Network { + #[default] + MainNetwork, + TestNetwork, +} + +impl FromStr for Network { + type Err = Error; + + fn from_str(s: &str) -> Result { + match s { + "main" => Ok(Network::MainNetwork), + "test" => Ok(Network::TestNetwork), + _ => Err(Error::InvalidNetwork(s.to_string())), + } + } +} + +// impl Parameters for Network { +// fn network_type(&self) -> zcash_protocol::consensus::NetworkType { +// match self { +// Network::MainNetwork => zcash_protocol::consensus::NetworkType::Main, +// Network::TestNetwork => zcash_protocol::consensus::NetworkType::Test, +// } +// } + +// fn activation_height(&self, nu: consensus::NetworkUpgrade) -> Option { +// match self { +// Network::MainNetwork => { +// zcash_primitives::consensus::Network::MainNetwork.activation_height(nu) +// } +// Network::TestNetwork => { +// zcash_primitives::consensus::Network::TestNetwork.activation_height(nu) +// } +// } +// } +// } + +// impl From for consensus::Network { +// fn from(network: Network) -> Self { +// match network { +// Network::MainNetwork => consensus::Network::MainNetwork, +// Network::TestNetwork => consensus::Network::TestNetwork, +// } +// } +// } + +// feature gated library +#[derive(thiserror::Error, Debug)] +pub enum Error { + #[error("Invalid network string given: {0}")] + InvalidNetwork(String), + #[cfg(feature = "keys")] + #[cfg(feature = "req")] + #[cfg(feature = "wallet")] + #[error("Javascript error")] + Js(wasm_bindgen::JsValue), + // #[error("Invalid account id")] + // AccountIdConversion(#[from] zcash_primitives::zip32::TryFromIntError), + // #[error("Failed to derive key from seed")] + // Derivation(#[from] zcash_keys::keys::DerivationError), + #[error("Error attempting to decode key: {0}")] + KeyDecoding(String), + #[error("Failed to sign Pczt: {0}")] + PcztSign(String), + #[error("Error attempting to get seed fingerprint.")] + SeedFingerprint, + #[error("serde wasm-bindgen error")] + SerdeWasmBindgen(#[from] serde_wasm_bindgen::Error), +} + +// Implement Into for wasm-bindgen compatibility +impl From for wasm_bindgen::JsValue { + fn from(err: Error) -> Self { + wasm_bindgen::JsValue::from_str(&err.to_string()) + } +} + +// impl From for Error { +// fn from(e: indexed_db_futures::web_sys::DomException) -> Self { +// Self::DomException { +// name: e.name(), +// message: e.message(), +// code: e.code(), +// } +// } +// } + +// impl From for Error { +// fn from(e: zcash_client_backend::scanning::ScanError) -> Self { +// Self::Scan(e) +// } +// } + +// impl From> for Error +// where +// A: Display, +// B: Display, +// C: Display, +// { +// fn from(e: zcash_client_backend::sync::Error) -> Self { +// Self::Sync(e.to_string()) +// } +// } diff --git a/zk-crates/snap-n-pull/src/wallet/bindgen/mod.rs b/zk-crates/snap-n-pull/src/wallet/bindgen/mod.rs new file mode 100644 index 0000000..e2cb3e8 --- /dev/null +++ b/zk-crates/snap-n-pull/src/wallet/bindgen/mod.rs @@ -0,0 +1,4 @@ +pub mod wallet; + +#[cfg(test)] +mod tests; diff --git a/zk-crates/snap-n-pull/src/wallet/bindgen/tests.rs b/zk-crates/snap-n-pull/src/wallet/bindgen/tests.rs new file mode 100644 index 0000000..903d153 --- /dev/null +++ b/zk-crates/snap-n-pull/src/wallet/bindgen/tests.rs @@ -0,0 +1,351 @@ +//! Unit tests for WebWallet wasm-bindgen integration +//! +//! These tests verify that nul generation works correctly +//! through the wasm-bindgen bridge and matches the expected +//! cryptographic outputs from zk-headstash. + +use super::wallet::WebWallet; +use wasm_bindgen_test::*; +use zk_headstash::r#gen::headstash::snp::v1::SerializedNoteData; + +wasm_bindgen_test_configure!(run_in_browser); + +/// Test nul generation with known inputs +/// +/// This verifies that: +/// 1. The wasm-bindgen bridge correctly passes data +/// 2. Nullifier derivation matches HeadstashSuite spec +/// 3. Note commitment is computed correctly +#[wasm_bindgen_test] +async fn test_nul_generation_basic() { + // Known test inputs + let esk_hex = "0000000000000000000000000000000000000000000000000000000000000001"; + let rho_hex = "0000000000000000000000000000000000000000000000000000000000000002"; + let recp_hex = "0000000000000000000000000000000000000000000000000000000000000003"; + let rseed_hex = "0000000000000000000000000000000000000000000000000000000000000004"; + let fdi = 0u64; + let v = "1000000"; + let nd = "uterp"; + + // Create wallet + let wallet = WebWallet::new("test", "http://localhost:8080", None) + .await + .expect("Failed to create wallet"); + + // Generate note data + let note_data_json = wallet + .gen_claim( + esk_hex.to_string(), + rho_hex.to_string(), + fdi, + recp_hex.to_string(), + v.to_string(), + nd.to_string(), + rseed_hex.to_string(), + ) + .await + .expect("Failed to generate note data"); + + // Parse response + let note_data: SerializedNoteData = + serde_json::from_str(¬e_data_json).expect("Failed to parse note data"); + + // Verify outputs are non-zero + assert_ne!(note_data.nk.len(), 0, "Nullifier key should not be empty"); + assert_ne!(note_data.nul.len(), 0, "Nullifier should not be empty"); + assert_ne!(note_data.cm.len(), 0, "Commitment should not be empty"); + + // Verify expected lengths (32 bytes each) + assert_eq!(note_data.nk.len(), 32, "NK should be 32 bytes"); + assert_eq!(note_data.nul.len(), 32, "Nullifier should be 32 bytes"); + assert_eq!(note_data.cm.len(), 32, "Commitment should be 32 bytes"); + + // Verify value fields + assert_eq!(note_data.v, v); + assert_eq!(note_data.nd, nd); + assert_eq!(note_data.fdi, fdi); + assert!(!note_data.spent); +} + +/// Test that different secret keys produce different nuls +#[wasm_bindgen_test] +async fn test_nul_uniqueness_by_esk() { + let rho_hex = "0000000000000000000000000000000000000000000000000000000000000002"; + let recp_hex = "0000000000000000000000000000000000000000000000000000000000000003"; + let rseed_hex = "0000000000000000000000000000000000000000000000000000000000000004"; + let fdi = 0u64; + let v = "1000000"; + let nd = "uterp"; + + let wallet = WebWallet::new("test", "http://localhost:8080", None) + .await + .expect("Failed to create wallet"); + + // Generate with ESK 1 + let esk1_hex = "0000000000000000000000000000000000000000000000000000000000000001"; + let note1_json = wallet + .gen_claim( + esk1_hex.to_string(), + rho_hex.to_string(), + fdi, + recp_hex.to_string(), + v.to_string(), + nd.to_string(), + rseed_hex.to_string(), + ) + .await + .expect("Failed"); + + // Generate with ESK 2 + let esk2_hex = "0000000000000000000000000000000000000000000000000000000000000002"; + let note2_json = wallet + .gen_claim( + esk2_hex.to_string(), + rho_hex.to_string(), + fdi, + recp_hex.to_string(), + v.to_string(), + nd.to_string(), + rseed_hex.to_string(), + ) + .await + .expect("Failed"); + + let note1: SerializedNoteData = serde_json::from_str(¬e1_json).unwrap(); + let note2: SerializedNoteData = serde_json::from_str(¬e2_json).unwrap(); + + // Nullifiers should be different + assert_ne!( + note1.nul, note2.nul, + "Different ESKs should produce different nuls" + ); + + // NKs should be different + assert_ne!( + note1.nk, note2.nk, + "Different ESKs should produce different nul keys" + ); +} + +/// Test that different rho values produce different nuls +#[wasm_bindgen_test] +async fn test_nul_uniqueness_by_rho() { + let esk_hex = "0000000000000000000000000000000000000000000000000000000000000001"; + let recp_hex = "0000000000000000000000000000000000000000000000000000000000000003"; + let rseed_hex = "0000000000000000000000000000000000000000000000000000000000000004"; + let fdi = 0u64; + let v = "1000000"; + let nd = "uterp"; + + let wallet = WebWallet::new("test", "http://localhost:8080", None) + .await + .expect("Failed to create wallet"); + + // Generate with RHO 1 + let rho1_hex = "0000000000000000000000000000000000000000000000000000000000000002"; + let note1_json = wallet + .gen_claim( + esk_hex.to_string(), + rho1_hex.to_string(), + fdi, + recp_hex.to_string(), + v.to_string(), + nd.to_string(), + rseed_hex.to_string(), + ) + .await + .expect("Failed"); + + // Generate with RHO 2 + let rho2_hex = "0000000000000000000000000000000000000000000000000000000000000003"; + let note2_json = wallet + .gen_claim( + esk_hex.to_string(), + rho2_hex.to_string(), + fdi, + recp_hex.to_string(), + v.to_string(), + nd.to_string(), + rseed_hex.to_string(), + ) + .await + .expect("Failed"); + + let note1: SerializedNoteData = serde_json::from_str(¬e1_json).unwrap(); + let note2: SerializedNoteData = serde_json::from_str(¬e2_json).unwrap(); + + // Nullifiers should be different (rho affects both NK and nul) + assert_ne!( + note1.nul, note2.nul, + "Different rho values should produce different nul" + ); + + // NKs should be different (NK = HKDF(esk, rho)) + assert_ne!( + note1.nk, note2.nk, + "Different rho values should produce different nul keys" + ); +} + +/// Test that nul derivation is deterministic +#[wasm_bindgen_test] +async fn test_nul_determinism() { + let esk_hex = "0000000000000000000000000000000000000000000000000000000000000001"; + let rho_hex = "0000000000000000000000000000000000000000000000000000000000000002"; + let recp_hex = "0000000000000000000000000000000000000000000000000000000000000003"; + let rseed_hex = "0000000000000000000000000000000000000000000000000000000000000004"; + let fdi = 0u64; + let v = "1000000"; + let nd = "uterp"; + + let wallet = WebWallet::new("test", "http://localhost:8080", None) + .await + .expect("Failed to create wallet"); + + // Generate twice with same inputs + let note1_json = wallet + .gen_claim( + esk_hex.to_string(), + rho_hex.to_string(), + fdi, + recp_hex.to_string(), + v.to_string(), + nd.to_string(), + rseed_hex.to_string(), + ) + .await + .expect("Failed"); + + let note2_json = wallet + .gen_claim( + esk_hex.to_string(), + rho_hex.to_string(), + fdi, + recp_hex.to_string(), + v.to_string(), + nd.to_string(), + rseed_hex.to_string(), + ) + .await + .expect("Failed"); + + let note1: SerializedNoteData = serde_json::from_str(¬e1_json).unwrap(); + let note2: SerializedNoteData = serde_json::from_str(¬e2_json).unwrap(); + + // Should produce identical outputs + assert_eq!(note1.nul, note2.nul, "Same inputs should produce same nul"); + assert_eq!( + note1.nk, note2.nk, + "Same inputs should produce same nul key" + ); + assert_eq!( + note1.cm, note2.cm, + "Same inputs should produce same commitment" + ); +} + +/// Test different FDI values produce different commitments but same nul +#[wasm_bindgen_test] +async fn test_fdi_affects_commitment_not_nul() { + let esk_hex = "0000000000000000000000000000000000000000000000000000000000000001"; + let rho_hex = "0000000000000000000000000000000000000000000000000000000000000002"; + let recp_hex = "0000000000000000000000000000000000000000000000000000000000000003"; + let rseed_hex = "0000000000000000000000000000000000000000000000000000000000000004"; + let v = "1000000"; + let nd = "uterp"; + + let wallet = WebWallet::new("test", "http://localhost:8080", None) + .await + .expect("Failed to create wallet"); + + // Generate with FDI 0 + let note1_json = wallet + .gen_claim( + esk_hex.to_string(), + rho_hex.to_string(), + 0, + recp_hex.to_string(), + v.to_string(), + nd.to_string(), + rseed_hex.to_string(), + ) + .await + .expect("Failed"); + + // Generate with FDI 1 + let note2_json = wallet + .gen_claim( + esk_hex.to_string(), + rho_hex.to_string(), + 1, + recp_hex.to_string(), + v.to_string(), + nd.to_string(), + rseed_hex.to_string(), + ) + .await + .expect("Failed"); + + let note1: SerializedNoteData = serde_json::from_str(¬e1_json).unwrap(); + let note2: SerializedNoteData = serde_json::from_str(¬e2_json).unwrap(); + + // Nullifiers should be same (nul only depends on NK and rho, not fdi) + assert_eq!( + note1.nul, note2.nul, + "FDI should not affect nul (only NK + rho matter)" + ); + + // NKs should be same (NK only depends on esk and rho) + assert_eq!(note1.nk, note2.nk, "FDI should not affect nul key"); + + // Commitments should be different (commitment includes fdi) + assert_ne!( + note1.cm, note2.cm, + "Different FDI should produce different commitments" + ); +} + +/// Test hex parsing errors are handled correctly +#[wasm_bindgen_test] +async fn test_invalid_hex_input() { + let wallet = WebWallet::new("test", "http://localhost:8080", None) + .await + .expect("Failed to create wallet"); + + // Invalid hex string + let result = wallet + .gen_claim( + "INVALID_HEX".to_string(), + "0000000000000000000000000000000000000000000000000000000000000002".to_string(), + 0, + "0000000000000000000000000000000000000000000000000000000000000003".to_string(), + "1000000".to_string(), + "uterp".to_string(), + "0000000000000000000000000000000000000000000000000000000000000004".to_string(), + ) + .await; + + assert!(result.is_err(), "Should fail with invalid ESK hex"); +} + +/// Test invalid value parsing +#[wasm_bindgen_test] +async fn test_invalid_value() { + let wallet = WebWallet::new("test", "http://localhost:8080", None) + .await + .expect("Failed to create wallet"); + + let result = wallet + .gen_claim( + "0000000000000000000000000000000000000000000000000000000000000001".to_string(), + "0000000000000000000000000000000000000000000000000000000000000002".to_string(), + 0, + "0000000000000000000000000000000000000000000000000000000000000003".to_string(), + "NOT_A_NUMBER".to_string(), + "uterp".to_string(), + "0000000000000000000000000000000000000000000000000000000000000004".to_string(), + ) + .await; + + assert!(result.is_err(), "Should fail with invalid value"); +} diff --git a/zk-crates/snap-n-pull/src/wallet/bindgen/wallet.rs b/zk-crates/snap-n-pull/src/wallet/bindgen/wallet.rs new file mode 100644 index 0000000..25c8c00 --- /dev/null +++ b/zk-crates/snap-n-pull/src/wallet/bindgen/wallet.rs @@ -0,0 +1,234 @@ +use crate::wallet::wallet::HeadstashMetadata; +use crate::wallet::HeadstashWallet; +use crate::{Error, Network}; + +use serde::{Deserialize, Serialize}; +use std::str::FromStr; +use wasm_bindgen::prelude::*; + +use zk_headstash::address::RecpAddr; +use zk_headstash::r#gen::headstash::snp::v1::SerializedNoteData; +use zk_headstash::keys::EligibleSk; +use zk_headstash::note::{Nullifier, Rho}; +use zk_headstash::value::HeadstashValue; + +/// HeadstashWallet - Database and state manager for MetaMask Snap plugin +/// +/// This wallet is a database that maintains headstash note data indexed by headstash ID. +/// +/// ## Architecture +/// +/// ### headstash file index +/// we store one `headstash_<>.yaml` per headstash instance per wallet. +/// this file contains the +/// - list of tokens allocated to a wallet for a headstash, +/// - an encrypted tally of spent fdi for each denom. +/// +/// This file can either be manually generated by a user, or created by downloading the entire headstash-genesis file that contains an accounts allocation. +/// +/// +/// ### networking configuration +/// There are two main grpc connections: +/// - one to the headstash api networking layer for syncing data, +/// - one to Terp Network (cosmos-grpc). +/// We are able to broadcast and retrieve data for both through a unified client api, and define how to +/// +/// BroadcastMethod::{Direct,Proxy} +/// +/// ### Proof generation +/// this snap does not create proofs, but rather serializes both the public (instances) & private values required by the headstash circuit, +/// and responds with exactly just the required data to be able to generate a proof. This acts like a secure enclave between a users secret key, +/// ensuring it never leaves or is exposed from the wallet. +/// +/// ## Design Principles +/// +/// 1. **No Secret Key Storage**: ESK only requested from MetaMask when needed for operations +/// 2. **Indexed Storage**: All data indexed by headstash contract address +/// 3. **gRPC Communication**: Reuses zcash-style gRPC patterns for headstash API +/// 4. **Minimal Friction**: Designed to minimize refactor effort from zcash wallet + +/// # A Headstash Wallet for MetaMask Snap +/// +/// ## Key Security Principles +/// +/// 1. **No Secret Key Storage**: The wallet NEVER stores secret keys. Keys are only +/// requested from MetaMask when needed for specific operations. +/// 2. **Encrypted State**: All persistent state can be encrypted using MetaMask's +/// snap_manageState API for secure storage. + +/// ## Creating a Wallet +/// +/// ```javascript +/// const wallet = new WebWallet("main", "https://headstash-api.terp.network", 10); +/// ``` +/// +/// ## Discovering Headstashes +/// +/// Before claiming, discover available headstashes via the market contract: +/// +/// ```javascript +/// const headstashes = await wallet.discover_headstashes(); +/// for (const headstash of headstashes) { +/// console.log(`Found: ${headstash.contract_addr}`); +/// } +/// ``` +/// +/// ## Generating Notes +/// +/// Generate notes client-side from the Merkle tree: +/// +/// ```javascript +/// // Request secret key from MetaMask +/// const esk = await snap.request({ method: "get_secret_key" }); +/// +/// await wallet.generate_notes_for_headstash( +/// "terp1contract123", +/// esk +/// ); +/// ``` +/// +/// ## Claiming Allocations +/// +/// Three pathways for claiming: +/// +/// ### 1. Manual (pay your own gas) +/// ```javascript +/// await wallet.claim_via_manual(hid, esk, nullifier); +/// ``` +/// +/// ### 2. Feegrant (request gas from headstash-server) +/// ```javascript +/// await wallet.claim_via_feegrant(hid, esk, nullifier); +/// ``` +/// +/// ### 3. Smart Account (gasless via authenticator) +/// ```javascript +/// await wallet.claim_via_smart_account(hid, esk, nullifier); +/// ``` +/// +/// ## State Persistence +/// +/// Serialize wallet state for MetaMask storage: +/// +/// ```javascript +/// const state = await wallet.db_to_bytes(); +/// await snap.request({ +/// method: "snap_manageState", +/// params: { operation: "update", newState: { wallet: state } } +/// }); +/// ``` +/// +#[wasm_bindgen] +pub struct WebWallet { + inner: HeadstashWallet, +} + +#[wasm_bindgen] +impl WebWallet { + /// Create a new Headstash wallet instance + #[wasm_bindgen(constructor)] + pub async fn new( + network: &str, + headstash_api_url: &str, + cosmos_grpc_url: Option, + ) -> Result { + let network = Network::from_str(network)?; + let inner = HeadstashWallet::new(network, Some(headstash_api_url)).await?; + Ok(Self { inner }) + } + + /// Generate note data (nullifier, commitment, nk) from secret key and note inputs + pub async fn gen_claim( + &self, + nd: String, + v: String, + fdi: u64, + recp_hex: String, + esk_hex: String, + rho_hex: String, + rseed_hex: String, + ) -> Result { + // Generate note data + let (nk, nullifier, cm) = self.inner.generate_note_data( + EligibleSk::from_hex(&esk_hex), + Rho::from_bytes( + hex::decode(&rho_hex) + .map_err(|e| Error::KeyDecoding(format!("Invalid rho hex: {}", e)))? + .as_slice() + .try_into() + .map_err(|_| Error::KeyDecoding("Invalid rho length".into()))?, + ) + .expect("rho from bytes"), + HeadstashValue::from_raw( + v.parse() + .map_err(|e| Error::KeyDecoding(format!("Invalid value: {}", e)))?, + &nd, + fdi, + ) + .unwrap(), + RecpAddr::new( + hex::decode(&recp_hex) + .map_err(|e| Error::KeyDecoding(format!("Invalid recp hex: {}", e)))? + .try_into() + .expect("darn"), + ), + hex::decode(&rseed_hex) + .map_err(|e| Error::KeyDecoding(format!("Invalid rseed hex: {}", e)))? + .as_slice() + .try_into() + .map_err(|_| Error::KeyDecoding("Invalid rseed length".into()))?, + )?; + + // Serialize as JSON + let note_data = SerializedNoteData { + nk: nk.to_bytes().to_vec(), + nul: nullifier.to_bytes().to_vec(), + cm: zk_headstash::note::ExtractedNoteCommitment::from(cm) + .to_bytes() + .to_vec(), + v, + nd, + fdi, + spent: false, + recp: 0, + }; + + serde_json::to_string(¬e_data) + .map_err(|e| Error::KeyDecoding(format!("JSON serialization failed: {}", e))) + } + + /// Claim headstash instance via headstash proxy mesh network to bootstrap new account. + /// Can also optionally pass a msg to register an MsgAddAuthenticator for a newly bootstrapped account, which is the one recieving the claimed funds in a headstash instance. + /// If adding an authenticator, will return the newly generated keys secret key, which front ends can add to clipboard & prompt an import wallet + pub async fn claim_headstash( + &self, + hid: String, // contract addr + esk_hex: String, + nullifier_hex: String, + ) -> Result { + let esk = EligibleSk::from_hex(&esk_hex); + let nf = Nullifier::from_bytes( + hex::decode(&nullifier_hex) + .map_err(|e| Error::KeyDecoding(format!("Invalid nullifier hex: {}", e)))? + .as_slice() + .try_into() + .map_err(|_| Error::KeyDecoding("Invalid nullifier length".into()))?, + ) + .expect("nullifier from bytes"); + let hmd = HeadstashMetadata { + nf, + mr: todo!(), + mp: todo!(), + hv: todo!(), + recp: todo!(), + }; + + let response = self + .inner + .claim_headstash_via_smart_account(hid, esk, hmd) + .await?; + + serde_json::to_string(&response) + .map_err(|e| Error::KeyDecoding(format!("JSON serialization failed: {}", e))) + } +} diff --git a/zk-crates/snap-n-pull/src/wallet/init.rs b/zk-crates/snap-n-pull/src/wallet/init.rs new file mode 100644 index 0000000..8bf5736 --- /dev/null +++ b/zk-crates/snap-n-pull/src/wallet/init.rs @@ -0,0 +1,66 @@ +// Copyright 2024 ChainSafe Systems +// SPDX-License-Identifier: Apache-2.0, MIT + +use wasm_bindgen::prelude::*; + +use tracing::level_filters::LevelFilter; +use tracing_subscriber::prelude::*; +use tracing_subscriber::EnvFilter; + +fn set_panic_hook() { + // When the `console_error_panic_hook` feature is enabled, we can call the + // `set_panic_hook` function at least once during initialization, and then + // we will get better error messages if our code ever panics. + // + // For more details see + // https://github.com/rustwasm/console_error_panic_hook#readme + #[cfg(feature = "console_error_panic_hook")] + console_error_panic_hook::set_once(); +} + +fn setup_tracing() { + #[cfg(not(feature = "wasm"))] + let subscriber = { + let filter_layer = EnvFilter::builder() + .with_default_directive(LevelFilter::INFO.into()) + .from_env() + .unwrap(); + let fmt_layer = tracing_subscriber::fmt::layer().with_ansi(true); + tracing_subscriber::registry() + .with(filter_layer) + .with(fmt_layer) + }; + + #[cfg(feature = "wasm")] + let subscriber = { + use tracing_subscriber::fmt::format::Pretty; + use tracing_web::{performance_layer, MakeWebConsoleWriter}; + + // For WASM, we must set the directives here at compile time. + let filter_layer = EnvFilter::default() + .add_directive(LevelFilter::INFO.into()) + .add_directive("headstash_client_memory=info".parse().unwrap()) + .add_directive("headstash_client_backend::scanning=debug".parse().unwrap()) + .add_directive("headstash_client_backend::sync=debug".parse().unwrap()); + + let fmt_layer = tracing_subscriber::fmt::layer() + .with_ansi(false) // Only partially supported across browsers + .without_time() // std::time is not available in browsers + .with_writer(MakeWebConsoleWriter::new()); // write events to the console + + let perf_layer = performance_layer().with_details_from_fields(Pretty::default()); + + tracing_subscriber::registry() + .with(filter_layer) + .with(fmt_layer) + .with(perf_layer) + }; + + subscriber.init(); +} + +#[wasm_bindgen(start)] +pub fn start() { + set_panic_hook(); + setup_tracing(); +} diff --git a/zk-crates/snap-n-pull/src/wallet/mod.rs b/zk-crates/snap-n-pull/src/wallet/mod.rs new file mode 100644 index 0000000..395aa91 --- /dev/null +++ b/zk-crates/snap-n-pull/src/wallet/mod.rs @@ -0,0 +1,23 @@ +// Copyright 2024 ChainSafe Systems +// SPDX-License-Identifier: Apache-2.0, MIT + +//! This is the top level documentation! + +#[cfg(feature = "wasm")] +pub mod bindgen; + +pub mod init; +pub mod wallet; +pub use wallet::{HeadstashWallet, MemoryHeadstashDb}; + +use wasm_bindgen::prelude::*; + +/// The maximum number of checkpoints to store in each shard-tree +pub const PRUNING_DEPTH: usize = 100; + +#[cfg(feature = "wasm-parallel")] +pub use wasm_bindgen_rayon::init_thread_pool; +// dummy NO-OP init_thread pool to maintain the same API between features +#[cfg(not(feature = "wasm-parallel"))] +#[wasm_bindgen(js_name = initThreadPool)] +pub fn init_thread_pool(_threads: usize) {} diff --git a/zk-crates/snap-n-pull/src/wallet/wallet.rs b/zk-crates/snap-n-pull/src/wallet/wallet.rs new file mode 100644 index 0000000..b563fb1 --- /dev/null +++ b/zk-crates/snap-n-pull/src/wallet/wallet.rs @@ -0,0 +1,1264 @@ +use std::num::NonZeroU32; + +// use bip0039::{English, Mnemonic}; +// use nonempty::NonEmpty; +// use secrecy::{ExposeSecret, SecretVec, Zeroize}; +// use tonic::{ +// client::GrpcService, +// codegen::{Body, Bytes, StdError}, +// }; + +// use crate::BlockRange; +use crate::Error; +use crate::Network; +use group::ff::PrimeField; + +// use pczt::roles::combiner::Combiner; +// use pczt::roles::prover::Prover; + +use rand::rngs::OsRng; +use rand::RngCore; +use serde::Deserialize; +// use pczt::roles::updater::Updater; +// use pczt::Pczt; +// use sapling::ProofGenerationKey; +// use serde::de::DeserializeOwned; +use serde::Serialize; +use std::collections::HashMap; +use std::sync::Arc; +use tokio::sync::RwLock; +use zk_headstash::address::RecpAddr; +use zk_headstash::circuit::Instance; +use zk_headstash::deploy::suite::HeadstashLaunchpadInstance; +use zk_headstash::deploy::HeadstashSuite; +use zk_headstash::keys::FullViewingKey; +use zk_headstash::keys::SpendingKey; +use zk_headstash::keys::{EligiblePk, EligibleSk, NullifierDerivingKey}; +use zk_headstash::note::{Note, RandomSeed}; +use zk_headstash::note::{NoteCommitment, Nullifier, Rho}; + +use zk_headstash::tree::MerkleHashOrchard; +use zk_headstash::tree::MerklePath; +use zk_headstash::value::HeadstashValue; +use zk_headstash::Anchor; + +use crate::client::HeadstashClient; + +/// Response from a headstash claim submission +#[derive(Debug, Clone, Serialize)] +pub struct ClaimResponse { + /// Transaction hash + pub tx_hash: String, + /// Block height + pub height: i64, + /// Success/failure code + pub code: u32, + /// Transaction log + pub raw_log: String, +} + +/// Headstash metadata (from API, blockchain, or IPFS) +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct HeadstashInstance { + pub ipfs_cid: String, + pub ca: String, + pub vk: Vec, +} + +/// Headstash metadata (from API, blockchain, or IPFS) +#[derive(Debug, Clone)] +pub struct HeadstashMetadata { + pub nf: Nullifier, + /// mr: merkle-root + pub mr: Vec, + /// mp: merkle-path + pub mp: Vec>, + /// The value of the note + pub hv: HeadstashValue, + /// recp: recipient + pub recp: Vec, +} + +// #[derive(Debug, Clone)] +// pub struct NoteData { +// /// nk: nullifier key derived from esk and rho +// pub nk: NullifierDerivingKey, +// /// The nullifier used to claim the note +// pub nullifier: Nullifier, +// /// The note commitment +// pub commitment: NoteCommitment, +// /// The value of the note +// pub hv: HeadstashValue, +// /// The fixed denomination index (leaf position in tree) +// pub fdi: u64, +// /// Whether this note has been spent +// pub spent: bool, +// } + +/// Proof data for smart account claim +#[derive(Debug, Clone, Serialize, Default)] +pub struct ProofData { + /// The zkSNARK proof bytes + pub proof: Vec, + /// Public inputs for verification + pub instances: Vec>, + /// The nullifier being claimed + pub nullifier: Vec, +} + +// const BATCH_SIZE: u32 = 10000; + +// /// constant that signals what's the minimum transparent balance for proposing a +// /// shielding transaction +// const SHIELDING_THRESHOLD: Zatoshis = Zatoshis::const_from_u64(100000); + +/// # HeadstashWallet +/// +/// A wallet is a manifold that is used to synchronized together with the blockchain & headstash-api. +/// It has the ability to store local records of spent note nullifiers & note-commitments, share & export these files via authenticated requests +/// +/// ## Creating Note Nullifiers +/// +/// TODO +/// +/// ## Syncing Headstash Notes +/// +/// TODO +/// - determine which client to use (generic high performant grpc requests).meaning replace previous existing client struct`CompactTxStreamerClient` from zcash library with standard grpc client method +/// +/// +/// ## Building Transactions +/// +/// TODO +/// +/// +/// +/// HeadstashWallet - Database and API client for headstash operations +/// +/// This is NOT a traditional wallet that stores secret keys. +/// It's a database that: +/// 1. Stores note data indexed by headstash ID +/// 2. Communicates with headstash API via gRPC +/// 3. Requests secret key from MetaMask only when needed +/// +/// +pub struct HeadstashWallet { + /// Internal database for note data (nullifiers, commitments, etc.) + // pub(crate) db: Arc>, + /// Network configuration (mainnet/testnet) + pub(crate) network: Network, + /// gRPC client for headstash API communication + /// (Similar to zcash's CompactTxStreamerClient but for headstash API) + pub(crate) client: Option, +} + +impl HeadstashWallet { + /// Create a new HeadstashWallet with database and network + /// + /// # Arguments + /// * `db` - Database implementation for storing note data + /// * `network` - Network configuration (mainnet/testnet) + /// * `api_url` - Optional headstash API endpoint URL + /// + /// # Example + /// ```rust,ignore + /// let wallet = HeadstashWallet::new( + /// Network::MainNetwork, + /// Some("https://headstash-api.terp.network") + /// ).await?; + /// ``` + pub async fn new(network: Network, api_url: Option<&str>) -> Result { + let client = HeadstashClient::new(None, api_url).await?; + + Ok(Self { + network, + client: Some(client), + }) + } + + /// Generate proof witness for headstash claim + /// + /// This generates the zkSNARK proof using the headstash circuit. + /// + /// # Arguments + /// * `esk` - Secret key (transient) + /// * `nullifier` - The nullifier being claimed + /// * `metadata` - Headstash metadata (merkle root, circuit params, etc.) + async fn gen_proof_witness( + &self, + esk: EligibleSk, + hi: &HeadstashInstance, + md: &HeadstashMetadata, + ) -> Result { + Ok(ProofData { + proof: HeadstashSuite::new() + .create_headstash_proof( + Anchor::from_bytes(md.mr.as_slice().try_into().expect("darg")).expect("bvad"), + MerklePath::from_parts( + 1, + md.mp + .iter() + .map(|l| { + MerkleHashOrchard::from_bytes(l.as_slice().try_into().unwrap()) + .expect("darng") + }) + .collect::>() + .try_into() + .expect("Expected exactly 32 merkle path elements"), + ), + esk, + RecpAddr::new(md.recp.as_slice().try_into().expect("darn")), + md.hv, + ) + .await + .map_err(|e| Error::KeyDecoding(e.to_string()))? + .as_ref() + .to_vec(), + instances: vec![], + nullifier: md.nf.to_bytes().to_vec(), + }) + } + + /// connects to headstash api client + pub async fn client(&self) -> HeadstashClient { + let client = HeadstashClient::new(None, Some("https://headstash-api.terp.network")) + .await + .unwrap(); + + client + } + + /// ## `generate_note_data` + /// ### generates nullifer-key `nk` ,nullifier `nf`, and note-commitment `cm` + pub fn generate_note_data( + &self, + esk: EligibleSk, + rho: Rho, + hv: HeadstashValue, + recp: RecpAddr, + rseed: [u8; 32], + ) -> Result<(NullifierDerivingKey, Nullifier, NoteCommitment), Error> { + let nk = NullifierDerivingKey::derive_from(esk, rho); + let rseed = RandomSeed::from_bytes(rseed, &rho).expect("rseed input"); + + // let fvk = FullViewingKey::from( + // &SpendingKey::from_bytes(esk.derive_pallas().to_repr()).expect("esk spending key"), + // ); + + let note = Note::from_parts(hv, recp, esk, rho, rseed) + .into_option() + .ok_or_else(|| Error::KeyDecoding("Failed to create valid note".into()))?; + + // Derive nullifier and commitment + let nullifier = note.nullifier(); + let commitment = note.commitment(); + + Ok((nk, nullifier, commitment)) + } + + // /// Store a new note in the database + // /// + // /// # Arguments + // /// * `headstash_id` - The headstash contract address + // /// * `esk` - Secret key from MetaMask (for generating nullifier/commitment) + // /// * `rho` - Randomness value + // /// * `fdi` - Leaf index + // /// * `v` - Note value + // pub async fn gen_claim( + // &self, + // headstash_id: String, + // esk: EligibleSk, + // rho: Rho, + // fdi: u64, + // recp: &[u8], + // hv: HeadstashValue, + // rseed: [u8; 32], + // ) -> Result<(), Error> { + // let (nk, nullifier, commitment) = + // self.generate_note_data(esk, rho, fdi, recp, hv, rseed)?; + + // let note_data = NoteData { + // nk, + // nullifier, + // commitment, + // hv, + // fdi, + // spent: false, + // }; + + // let mut db = self.db.write().await; + // db.gen_claim(&headstash_id, note_data)?; + + // Ok(()) + // } + + // /// List all unspent notes for a headstash + // /// + // /// # Arguments + // /// * `headstash_id` - The headstash contract address + // pub async fn list_unspent_notes(&self, headstash_id: &String) -> Result, Error> { + // let db = self.db.read().await; + // db.list_unspent_notes(headstash_id) + // } + + // /// List all spent notes for a headstash + // /// + // /// # Arguments + // /// * `headstash_id` - The headstash contract address + // pub async fn list_spent_notes(&self, headstash_id: &String) -> Result, Error> { + // let db = self.db.read().await; + // db.list_spent_notes(headstash_id) + // } + + /// Claim a headstash allocation via manual contract call + /// + /// This generates the proof and submits directly to chain, expecting a headstash to allow nullifiers to be appended to the state. + /// + /// # Arguments + /// * `headstash_id` - The headstash contract address + /// * `esk` - Secret key from MetaMask (for signing) + /// * `nullifier` - The nullifier of the note to claim + /// + /// # Workflow + /// 1. Get note data from database + /// 2. Generate proof (via HeadstashSuite) + /// 3. Form CosmosSDK message + /// 4. Broadcast to chain + /// 5. Mark note as spent + // pub async fn claim_headstash_via_manually( + // &self, + // headstash_id: &str, + // esk: &EligibleSk, + // nullifier: &Nullifier, + // ) -> Result<(), Error> { + // // 1. Generate note-data + // // let db = self.db.read().await; + // // let note_data = db + // // .get_note_by_nullifier(&headstash_id, &nullifier)? + // // .ok_or_else(|| Error::KeyDecoding("Note not found".into()))?; + // // drop(db); + + // // 2. Generate proof + // // TODO: Implement proof generation via HeadstashSuite + // // let proof = generate_proof(esk, note_data)?; + + // // 3. Form message + // // TODO: Create CosmosSDK message with proof and nullifier + + // // 4. Broadcast + // // TODO: Submit transaction to chain + + // // 5. Mark as spent + // // let mut db = self.db.write().await; + // // db.mark_note_spent(&headstash_id, &nullifier)?; + + // Ok(()) + // } + + /// Claim via feegrant + /// + /// Requests feegrant from headstash-server before claiming. + // pub async fn claim_headstash_via_feegrant( + // &self, + // grantee_addr: &String, + // headstash_id: &String, + // esk: &EligibleSk, + // nullifier: &Nullifier, + // ) -> Result<(), Error> { + // // 1. Request feegrant from headstash-server + // // TODO: Implement feegrant request via gRPC client + // let c = self.client().await; + // let res = c + // .request_feegrant(headstash_id, grantee_addr, &nullifier.to_bytes()) + // .await?; + // // 2. Wait for feegrant confirmation + // // TODO: Poll for feegrant status + + // // 3. Proceed with claim (msg wrapped with feegrant) + // Ok(()) + // } + + /// Claim via smart account + /// + /// Uses smart account authenticator for gasless transactions. + /// This is the primary claim method for headstash allocations. + /// + /// # Workflow + /// 1. Check for cached verification key for this headstash + /// 2. If not cached, fetch metadata (API → Blockchain → IPFS) + /// 3. Generate proof witness using local circuit + /// 4. Submit claim to headstash-api with smart account auth + /// + /// # Arguments + /// * `hid` - Contract address + /// * `esk` - Secret key from MetaMask (transient, not stored) + /// * `nullifier` - The nullifier to claim + pub async fn claim_headstash_via_smart_account( + &self, + hid: String, + esk: EligibleSk, + hmd: HeadstashMetadata, + ) -> Result { + let c = self + .client + .as_ref() + .ok_or_else(|| Error::Js("No client configured".into()))?; + + // 1. Check for cached verification key + let m = match !self.check_vk_cache(&hid).await? { + true => { + let m = c.get_headstash_instance(&hid).await?; + self.cache_vk(&hid, &m.vk).await?; + m + } + false => c.get_headstash_instance(&hid).await?, + }; + + // generate proof witness data + let pd = self.gen_proof_witness(esk, &m, &hmd).await?; + let r = c.submit_smart_account_claim(&hid, pd).await?; + + // 6. Mark as spent in local DB (when DB is implemented) + // db.mark_note_spent(&headstash_id, &nullifier)?; + + Ok(r) + } + + /// Check if verification key is cached for a headstash + /// + /// This minimizes bandwidth by avoiding re-downloading circuit keys. + async fn check_vk_cache(&self, headstash_id: &str) -> Result { + // TODO: Check MetaMask snap storage for cached VK + // For now, return false to always fetch + Ok(false) + } + + /// Cache verification key in local storage + async fn cache_vk(&self, headstash_id: &str, vk: &[u8]) -> Result<(), Error> { + // TODO: Store VK in MetaMask snap storage + // This would use snap_manageState to persist the VK + Ok(()) + } + + // /// Export encrypted spent note details + // /// + // /// Encrypts spent notes nullifier-key `nk`, the ranomness bytes, and the bytes to use across library. + // /// This is used for syncing nullifier state across devices. + // /// + // /// # Arguments + // /// * `headstash_id` - Contract address to export notes for + // /// * `recipient_pk` - Public key to encrypt to + // /// * `sender_sk` - Secret key for signing (proves origin) + // pub async fn export_headstash_instance_yaml( + // &self, + // headstash_id: &String, + // recipient_pk: &EligiblePk, + // sender_sk: &EligibleSk, + // ) -> Result, Error> { + // todo!() + // // let db = self.db.read().await; + // // let spent_notes = db.list_spent_notes(headstash_id)?; + + // // // Convert to serializable format + // // let serialized_notes: Vec = + // // spent_notes.iter().map(|n| n.into()).collect(); + + // // // Create nullifier state + // // let state = NullifierState { + // // headstash_id: headstash_id.clone(), + // // spent_notes: serialized_notes, + // // }; + + // // // Encrypt + // // let encrypted = encrypt_nullifier_state(&state, recipient_pk, sender_sk)?; + + // // // Serialize encrypted payload + // // serde_json::to_vec(&encrypted) + // // .map_err(|e| Error::Js(format!("Failed to serialize encrypted state: {}", e).into())) + // } + + // /// Sync encrypted spent note details from endpoint + // /// + // /// Retrieves and decrypts spent notes, merging into local storage. + // /// This allows synchronizing nullifier state across devices. + // /// + // /// # Arguments + // /// * `headstash_id` - Contract address + // /// * `recipient_sk` - Secret key to decrypt with + // /// * `sender_pk` - Expected sender's public key (for verification) + // /// * `encrypted_data` - Encrypted nullifier state from API + // pub async fn sync_spent_note_details_encrypted( + // &self, + // headstash_id: &String, + // recipient_sk: &EligibleSk, + // sender_pk: &EligiblePk, + // encrypted_data: Vec, + // ) -> Result<(), Error> { + // // 1. Deserialize encrypted payload + // let encrypted: EncryptedNullifierState = + // serde_json::from_slice(&encrypted_data).map_err(|e| { + // Error::Js(format!("Failed to deserialize encrypted data: {}", e).into()) + // })?; + + // // 2. Decrypt and verify + // let state = decrypt_nullifier_state(&encrypted, recipient_sk, sender_pk)?; + + // // 3. Verify headstash ID matches + // if &state.headstash_id != headstash_id { + // return Err(Error::Js("Headstash ID mismatch".into())); + // } + + // // 4. Merge notes into storage (only add new ones, don't overwrite) + // let mut db = self.db.write().await; + // for serialized_note in state.spent_notes { + // // Convert back to NoteData + // // For now, we'll skip notes we don't already have since we need + // // the full note data structures, not just serialized bytes + // // In a real implementation, you'd reconstruct the full structures + + // // This is a simplified merge - in production, you'd want more sophisticated logic + // let nullifier = Nullifier::from_bytes( + // serialized_note + // .nullifier + // .as_slice() + // .try_into() + // .map_err(|_| Error::Js("Invalid nullifier bytes".into()))?, + // ) + // .expect("nullifier derivation"); + + // // // Check if we already have this note + // // if let Ok(Some(_)) = db.get_note_by_nullifier(headstash_id, &nullifier) { + // // // Mark it as spent if it isn't already + // // db.mark_note_spent(headstash_id, &nullifier)?; + // // } + // } + + // Ok(()) + // } + + // /// Upload nullifier state to headstash-api for sync + // /// + // /// This encrypts and uploads spent nullifier state to the API server + // /// for cross-device synchronization. + // /// + // /// # Arguments + // /// * `headstash_id` - Contract address + // /// * `recipient_pk` - Public key (usually your own) to encrypt to + // /// * `sender_sk` - Secret key for signing + // pub async fn upload_nullifier_state( + // &self, + // headstash_id: &String, + // recipient_pk: &EligiblePk, + // sender_sk: &EligibleSk, + // ) -> Result<(), Error> { + // // Export encrypted state + // let encrypted_data = self + // .export_spent_note_details_encrypted(headstash_id, recipient_pk, sender_sk) + // .await?; + + // // Sign the encrypted data + // use sha3::{Digest, Sha3_256}; + // let data_hash = Sha3_256::digest(&encrypted_data); + + // // Create signature message + // let mut sig_message = Vec::new(); + // sig_message.extend_from_slice(headstash_id.as_bytes()); + // sig_message.extend_from_slice(&data_hash); + + // // Sign + // let signature = sign_message(&sig_message, sender_sk)?; + + // // Upload via client + // let client = self + // .client + // .as_ref() + // .ok_or_else(|| Error::Js("No client configured".into()))?; + + // client + // .upload_nullifier_state(headstash_id, encrypted_data, signature) + // .await?; + + // Ok(()) + // } + + // /// Download and sync nullifier state from headstash-api + // /// + // /// This downloads encrypted nullifier state from the API server + // /// and merges it into local storage. + // /// + // /// # Arguments + // /// * `headstash_id` - Contract address + // /// * `recipient_sk` - Secret key to decrypt with + // /// * `sender_pk` - Expected sender's public key (for verification) + // pub async fn download_and_sync_nullifier_state( + // &self, + // headstash_id: &String, + // recipient_sk: &EligibleSk, + // sender_pk: &EligiblePk, + // ) -> Result<(), Error> { + // // Download from API + // let client = self + // .client + // .as_ref() + // .ok_or_else(|| Error::Js("No client configured".into()))?; + + // let recipient_pk_bytes = recipient_sk.epk().0.serialize(); + // let encrypted_data = client + // .download_nullifier_state(headstash_id, &recipient_pk_bytes) + // .await?; + + // // Sync into storage + // self.sync_spent_note_details_encrypted( + // headstash_id, + // recipient_sk, + // sender_pk, + // encrypted_data, + // ) + // .await?; + + // Ok(()) + // } +} + +/// In-memory implementation of HeadstashApiDbInstance (for testing and development) +#[derive(Debug, Clone, Default)] +pub struct MemoryHeadstashDb { + // Maps: String → (Nullifier bytes → NoteData) + storage: HashMap>, +} + +// ============================================================================ +// Helper Functions +// ============================================================================ + +/// Sign a message with secp256k1 +fn sign_message(message: &[u8], sk: &EligibleSk) -> Result, Error> { + use secp256k1::{Message, Secp256k1}; + use sha3::{Digest, Sha3_256}; + + let secp = Secp256k1::new(); + + // Hash the message + let msg_hash = Sha3_256::digest(message); + let message = Message::from_digest_slice(&msg_hash) + .map_err(|e| Error::Js(format!("Invalid message: {}", e).into()))?; + + // Sign + let signature = secp.sign_ecdsa(message, &sk.secret_key()); + + Ok(signature.serialize_compact().to_vec()) +} + +pub struct Wallet { + /// Internal database used to maintain wallet data (e.g. accounts, transactions, cached blocks) + pub(crate) db: Arc>, + // // gRPC client used to connect to a lightwalletd instance for network data + // pub(crate) client: CompactTxStreamerClient, + pub(crate) network: Network, + pub(crate) min_confirmations: NonZeroU32, + /// Note management: the number of notes to maintain in the wallet + pub(crate) target_note_count: usize, + /// Note management: the minimum allowed value for split change amounts + pub(crate) min_split_output_value: u64, +} + +impl Clone for Wallet { + fn clone(&self) -> Self { + Self { + db: self.db.clone(), + // client: self.client.clone(), + network: self.network, + min_confirmations: self.min_confirmations, + target_note_count: self.target_note_count, + min_split_output_value: self.min_split_output_value, + } + } +} + +// impl Wallet +// where +// W: WalletRead +// + WalletWrite +// + InputSource< +// AccountId = ::AccountId, +// Error = ::Error, +// NoteRef = NoteRef, +// > + WalletCommitmentTrees, + +// AccountId: Copy +// + Debug +// + Eq +// + Hash +// + Default +// + Send +// + ConditionallySelectable +// + Serialize +// + DeserializeOwned +// + 'static, +// NoteRef: Copy + Eq + Ord + Debug, +// Error: From<::Error>, + +// ::Error: std::error::Error + Send + Sync + 'static, +// ::Error: std::error::Error + Send + Sync + 'static, + +// // GRPC connection Trait Bounds +// T: GrpcService + Clone, +// T::Error: Into, +// T::ResponseBody: Body + std::marker::Send + 'static, +// ::Error: Into + std::marker::Send, +// { +// /// Create a new instance of a Zcash wallet for a given network +// pub fn new( +// db: W, +// client: T, +// network: Network, +// min_confirmations: NonZeroU32, +// ) -> Result { +// Ok(Wallet { +// db: Arc::new(RwLock::new(db)), +// client: CompactTxStreamerClient::new(client), +// network, +// min_confirmations, +// target_note_count: 4, +// min_split_output_value: 10000000, +// }) +// } + +// /// Add a new account to the wallet +// /// +// /// # Arguments +// /// seed_phrase - mnemonic phrase to initialise the wallet +// /// account_id - The HD derivation index to use. Can be any integer +// /// birthday_height - The block height at which the account was created, optionally None and the current height is used +// /// +// pub async fn create_account( +// &self, +// account_name: &str, +// seed_phrase: &str, +// account_hd_index: u32, +// birthday_height: Option, +// key_source: Option<&str>, +// ) -> Result { +// // decode the mnemonic and derive the first account +// let (usk, seed_fp) = usk_from_seed_str(seed_phrase, account_hd_index, &self.network)?; +// let ufvk = usk.to_unified_full_viewing_key(); + +// let derivation = +// Zip32Derivation::new(seed_fp, zip32::AccountId::try_from(account_hd_index)?); + +// tracing::info!("Key successfully decoded. Importing into wallet"); + +// self.import_account_ufvk( +// account_name, +// &ufvk, +// birthday_height, +// AccountPurpose::Spending { +// derivation: Some(derivation), +// }, +// key_source, +// ) +// .await +// } + +// pub async fn import_ufvk( +// &self, +// account_name: &str, +// ufvk: &UnifiedFullViewingKey, +// purpose: AccountPurpose, +// birthday_height: Option, +// key_source: Option<&str>, +// ) -> Result { +// self.import_account_ufvk(account_name, ufvk, birthday_height, purpose, key_source) +// .await +// } + +// /// Helper method for importing an account directly from a Ufvk or from seed. +// async fn import_account_ufvk( +// &self, +// account_name: &str, +// ufvk: &UnifiedFullViewingKey, +// birthday_height: Option, +// purpose: AccountPurpose, +// key_source: Option<&str>, +// ) -> Result { +// tracing::info!("Importing account with Ufvk: {:?}", ufvk); +// let mut client = self.client.clone(); +// let birthday = match birthday_height { +// Some(height) => height, +// None => { +// let chain_tip: u32 = client +// .get_latest_block(service::ChainSpec::default()) +// .await? +// .into_inner() +// .height +// .try_into() +// .expect("block heights must fit into u32"); +// chain_tip - 100 +// } +// }; +// // Construct an `AccountBirthday` for the account's birthday. +// let birthday = { +// // Fetch the tree state corresponding to the last block prior to the wallet's +// // birthday height. NOTE: THIS APPROACH LEAKS THE BIRTHDAY TO THE SERVER! +// let request = service::BlockId { +// height: (birthday - 1).into(), +// ..Default::default() +// }; +// let treestate = client.get_tree_state(request).await?.into_inner(); +// AccountBirthday::from_treestate(treestate, None).map_err(|_| Error::Birthday)? +// }; + +// Ok(self +// .db +// .write() +// .await +// .import_account_ufvk(account_name, ufvk, &birthday, purpose, key_source)? +// .id()) +// } + +// pub async fn suggest_scan_ranges(&self) -> Result, Error> { +// Ok(self.db.read().await.suggest_scan_ranges().map(|ranges| { +// ranges +// .iter() +// .map(|scan_range| { +// BlockRange( +// scan_range.block_range().start.into(), +// scan_range.block_range().end.into(), +// ) +// }) +// .collect() +// })?) +// } + +// /// +// /// Create a transaction proposal to send funds from the wallet to a given address +// /// +// pub async fn propose_transfer( +// &self, +// account_id: AccountId, +// to_address: ZcashAddress, +// value: u64, +// ) -> Result, Error> { +// let input_selector = GreedyInputSelector::new(); + +// let change_strategy = MultiOutputChangeStrategy::new( +// StandardFeeRule::Zip317, +// None, +// ShieldedProtocol::Orchard, +// DustOutputPolicy::default(), +// SplitPolicy::with_min_output_value( +// NonZeroUsize::new(self.target_note_count) +// .ok_or(Error::FailedToCreateTransaction)?, +// Zatoshis::from_u64(self.min_split_output_value)?, +// ), +// ); +// let request = TransactionRequest::new(vec![Payment::without_memo( +// to_address, +// Zatoshis::from_u64(value)?, +// )])?; + +// tracing::info!("Chain height: {:?}", self.db.read().await.chain_height()?); +// tracing::info!( +// "target and anchor heights: {:?}", +// self.db +// .read() +// .await +// .get_target_and_anchor_heights(self.min_confirmations)? +// ); +// let mut db = self.db.write().await; +// let proposal = propose_transfer::<_, _, _,_, ::Error>( +// &mut *db, +// &self.network, +// account_id, +// &input_selector, +// &change_strategy, +// request, +// self.min_confirmations, +// ) +// .map_err(|_e| Error::Generic("something bad happened when calling propose transfer. Possibly insufficient balance..".to_string()))?; +// tracing::info!("Proposal: {:#?}", proposal); +// Ok(proposal) +// } + +// /// +// /// Do the proving and signing required to create one or more transaction from the proposal. Created transactions are stored in the wallet database. +// /// +// /// Note: At the moment this requires a USK but ideally we want to be able to hand the signing off to a separate service +// /// e.g. browser plugin, hardware wallet, etc. Will need to look into refactoring librustzcash create_proposed_transactions to allow for this +// /// +// pub async fn create_proposed_transactions( +// &self, +// proposal: Proposal, +// usk: &UnifiedSpendingKey, +// ) -> Result, Error> { +// let prover = LocalTxProver::bundled(); +// let mut db = self.db.write().await; +// let transactions = create_proposed_transactions::< +// _, +// _, +// as InputSource>::Error, +// _, +// ::Error, +// _, +// >( +// &mut *db, +// &self.network, +// &prover, +// &prover, +// usk, +// OvkPolicy::Sender, +// &proposal, +// ) +// .map_err(|_| Error::FailedToCreateTransaction)?; +// Ok(transactions) +// } + +// pub async fn send_authorized_transactions(&self, txids: &NonEmpty) -> Result<(), Error> { +// let mut client = self.client.clone(); +// for txid in txids.iter() { +// let (txid, raw_tx) = self +// .db +// .read() +// .await +// .get_transaction(*txid)? +// .map(|tx| { +// let mut raw_tx = service::RawTransaction::default(); +// tx.write(&mut raw_tx.data).unwrap(); // safe to unwrap here as we know the tx is valid +// (tx.txid(), raw_tx) +// }) +// .ok_or(Error::TransactionNotFound(*txid))?; + +// let response = client.send_transaction(raw_tx).await?.into_inner(); + +// if response.error_code != 0 { +// return Err(Error::SendFailed { +// code: response.error_code, +// reason: response.error_message, +// }); +// } else { +// tracing::info!("Transaction {} send successfully :)", txid); +// } +// } +// Ok(()) +// } + +// /// +// /// A helper function that creates a proposal, creates a transaction from the proposal and then submits it +// /// +// pub async fn transfer( +// &self, +// seed_phrase: &str, +// account_hd_index: u32, +// from_account_id: AccountId, +// to_address: ZcashAddress, +// value: u64, +// ) -> Result<(), Error> { +// let (usk, _) = usk_from_seed_str(seed_phrase, account_hd_index, &self.network)?; +// let proposal = self +// .propose_transfer(from_account_id, to_address, value) +// .await?; +// // TODO: Add callback for approving the transaction here +// let txids = self.create_proposed_transactions(proposal, &usk).await?; + +// // send the transactions to the network!! +// tracing::info!("Sending transactions"); +// self.send_authorized_transactions(&txids).await +// } + +// pub async fn pczt_shield(&self, account_id: AccountId) -> Result { +// let change_strategy = MultiOutputChangeStrategy::new( +// StandardFeeRule::Zip317, +// None, +// ShieldedProtocol::Orchard, +// DustOutputPolicy::default(), +// SplitPolicy::with_min_output_value( +// NonZeroUsize::new(self.target_note_count) +// .ok_or(Error::FailedToCreateTransaction)?, +// Zatoshis::from_u64(self.min_split_output_value)?, +// ), +// ); + +// let input_selector = GreedyInputSelector::new(); +// let mut db = self.db.write().await; + +// // Shield all funds immediately +// let max_height = match db.chain_height()? { +// Some(max_height) => max_height, +// // If we haven't scanned anything, there's nothing to do. +// None => { +// return Err(Error::Generic( +// "Havent scanned yet, cant shield".to_string(), +// )) +// } +// }; + +// let transparent_balances = db.get_transparent_balances(account_id, max_height)?; +// let from_addrs = transparent_balances.into_keys().collect::>(); + +// let proposal = propose_shielding::<_, _, _, _, ::Error>( +// &mut *db, +// &self.network, +// &input_selector, +// &change_strategy, +// SHIELDING_THRESHOLD, // use a shielding threshold above a marginal fee transaction plus some value like Zashi does. +// &from_addrs, +// account_id, +// 1, // librustzcash operates under the assumption of zero or one conf being the same but that could change. +// ) +// .map_err(|e| Error::Generic(format!("Error when shielding: {:?}", e)))?; + +// let pczt = create_pczt_from_proposal::< +// _, +// _, +// as InputSource>::Error, +// _, +// ::Error, +// _, +// >( +// &mut *db, +// &self.network, +// account_id, +// OvkPolicy::Sender, +// &proposal, +// ) +// .map_err(|_| Error::PcztCreate)?; + +// Ok(pczt) +// } +// /// +// /// Create a PCZT +// /// +// pub async fn pczt_create( +// &self, +// account_id: AccountId, +// to_address: ZcashAddress, +// value: u64, +// ) -> Result { +// // Create the PCZT. +// let change_strategy = MultiOutputChangeStrategy::new( +// StandardFeeRule::Zip317, +// None, +// ShieldedProtocol::Orchard, +// DustOutputPolicy::default(), +// SplitPolicy::with_min_output_value( +// NonZeroUsize::new(self.target_note_count) +// .ok_or(Error::FailedToCreateTransaction)?, +// Zatoshis::from_u64(self.min_split_output_value)?, +// ), +// ); + +// let input_selector = GreedyInputSelector::new(); +// let request = TransactionRequest::new(vec![Payment::without_memo( +// to_address, +// Zatoshis::from_u64(value)?, +// )])?; +// let mut db = self.db.write().await; +// let proposal = propose_transfer::<_, _, _,_, ::Error>( +// &mut *db, +// &self.network, +// account_id, +// &input_selector, +// &change_strategy, +// request, +// self.min_confirmations, +// ) +// .map_err(|e| Error::Generic(format!("something bad happened when calling propose transfer. Possibly insufficient balance... {:?}", e)))?; +// tracing::info!("Proposal: {:#?}", proposal); +// let pczt = create_pczt_from_proposal::< +// _, +// _, +// as InputSource>::Error, +// _, +// ::Error, +// _, +// >( +// &mut *db, +// &self.network, +// account_id, +// OvkPolicy::Sender, +// &proposal, +// ) +// .map_err(|_| Error::PcztCreate)?; +// Ok(pczt) +// } + +// /// +// /// Prove a PCZT +// /// +// pub async fn pczt_prove( +// &self, +// pczt: Pczt, +// sapling_proof_gen_key: Option, +// ) -> Result { +// // Add Sapling proof generation key. +// // TODO: Check to see if there is any sapling in here in the first place +// let pczt = if let Some(sapling_proof_gen_key) = sapling_proof_gen_key { +// Updater::new(pczt) +// .update_sapling_with(|mut updater| { +// let non_dummy_spends = updater +// .bundle() +// .spends() +// .iter() +// .enumerate() +// // Dummy spends will already have a proof generation key. +// .filter(|(_, spend)| spend.proof_generation_key().is_none()) +// .map(|(index, spend)| { +// ( +// index, +// spend +// .zip32_derivation() +// .as_ref() +// .map(|d| (*d.seed_fingerprint(), d.derivation_path().clone())), +// ) +// }) +// .collect::>(); + +// // Assume all non-dummy spent notes are from the same account. +// for (index, _) in non_dummy_spends { +// updater.update_spend_with(index, |mut spend_updater| { +// spend_updater.set_proof_generation_key(sapling_proof_gen_key.clone()) +// })?; +// } + +// Ok(()) +// }) +// .map_err(|e| { +// Error::PcztProve(format!( +// "Failed to add Sapling proof generation key: {:?}", +// e +// )) +// })? +// .finish() +// } else { +// pczt +// }; + +// let prover = LocalTxProver::bundled(); +// let pczt = Prover::new(pczt) +// .create_orchard_proof(&orchard::circuit::ProvingKey::build()) +// .map_err(|e| Error::PcztProve(format!("Failed to create Orchard proof: {:?}", e)))? +// .create_sapling_proofs(&prover, &prover) +// .map_err(|e| Error::PcztProve(format!("Failed to create Sapling proofs: {:?}", e)))? +// .finish(); +// Ok(pczt) +// } + +// pub async fn pczt_send(&self, pczt: Pczt) -> Result<(), Error> { +// let prover = LocalTxProver::bundled(); +// let (spend_vk, output_vk) = prover.verifying_keys(); +// let mut db = self.db.write().await; +// let txid = extract_and_store_transaction_from_pczt::<_, ()>( +// &mut *db, +// pczt, +// &spend_vk, +// &output_vk, +// &orchard::circuit::VerifyingKey::build(), +// ) +// .map_err(|e| { +// Error::PcztSend(format!( +// "Failed to extract and store transaction from PCZT: {:?}", +// e +// )) +// })?; +// drop(db); +// self.send_authorized_transactions(&NonEmpty::new(txid)) +// .await +// } + +// pub fn pczt_combine(&self, pczts: Vec) -> Result { +// Combiner::new(pczts) +// .combine() +// .map_err(|e| Error::PcztCombine(format!("Failed to combine PCZT: {:?}", e))) +// } +// } + +#[cfg(test)] +mod tests { + use zk_headstash::address::RecpAddr; + use zk_headstash::value::NoteValue; + + use crate::wallet::MemoryHeadstashDb; + + use super::*; + + #[tokio::test] + async fn test_headstash_wallet_creation() { + let db = MemoryHeadstashDb::default(); + let wallet = HeadstashWallet::new(Network::TestNetwork, None) + .await + .unwrap(); + + assert_eq!(wallet.network, Network::TestNetwork); + } + + // #[tokio::test] + // async fn test_store_and_list_notes() { + // let db = MemoryHeadstashDb::default(); + // let wallet = HeadstashWallet::new(db, Network::TestNetwork, None) + // .await + // .unwrap(); + + // let headstash_id = "terp1contract123".to_string(); + // let sk_bytes = [42u8; 32]; + // let esk = EligibleSk::from_hex(&hex::encode(sk_bytes)); + + // let mut rho_bytes = [0u8; 32]; + // getrandom::getrandom(&mut rho_bytes); + // let rho = Rho::from_bytes(&rho_bytes).unwrap(); + // let recp = + // RecpAddr::try_from(rho_bytes.try_into().unwrap()).expect("recpAdd from rho_bytes"); + // let value = HeadstashValue::from_raw(1000, "uterp").unwrap(); + + // // Store note + // wallet + // .gen_claim(headstash_id.clone(), esk, rho, 0, recp, value, &rho_bytes) + // .await + // .unwrap(); + + // // List unspent notes + // let unspent = wallet.list_unspent_notes(&headstash_id).await.unwrap(); + // assert_eq!(unspent.len(), 1); + // assert_eq!(unspent[0].value.raw_amount(), 1000); + // assert!(!unspent[0].spent); + // } + + // #[tokio::test] + // async fn test_mark_note_spent() { + // let db = MemoryHeadstashDb::default(); + // let wallet = HeadstashWallet::new(db, Network::TestNetwork, None) + // .await + // .unwrap(); + + // let headstash_id = "terp1contract123".to_string(); + // let sk_bytes = [42u8; 32]; + // let esk = EligibleSk::from_hex(&hex::encode(sk_bytes)); + + // let mut rng = rand::thread_rng(); + // let mut rho_bytes = [0u8; 32]; + // rand::RngCore::fill_bytes(&mut rng, &mut rho_bytes); + // let rho = Rho::from_bytes(&rho_bytes).unwrap(); + + // let hv = HeadstashValue::from_raw(1000, "uterp").unwrap(); + + // let recp = String::default().as_bytes(); + // // Store note + // wallet + // .gen_claim(headstash_id.clone(), esk, rho, 0, recp, hv, rng) + // .await + // .unwrap(); + + // // Get note + // let unspent = wallet.list_unspent_notes(&headstash_id).await.unwrap(); + // let nullifier = unspent[0].nullifier; + + // // Mark as spent + // let mut db = wallet.db.write().await; + // db.mark_note_spent(&headstash_id, &nullifier).unwrap(); + // drop(db); + + // // Verify spent + // let spent = wallet.list_spent_notes(&headstash_id).await.unwrap(); + // assert_eq!(spent.len(), 1); + // assert!(spent[0].spent); + // } +} diff --git a/zk-crates/zk-headstash/Cargo.lock b/zk-crates/zk-headstash/Cargo.lock new file mode 100644 index 0000000..8e23634 --- /dev/null +++ b/zk-crates/zk-headstash/Cargo.lock @@ -0,0 +1,4069 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "ab_glyph" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01c0457472c38ea5bd1c3b5ada5e368271cb550be7a4ca4a0b4634e9913f6cc2" +dependencies = [ + "ab_glyph_rasterizer", + "owned_ttf_parser", +] + +[[package]] +name = "ab_glyph_rasterizer" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" + +[[package]] +name = "addr2line" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "getrandom 0.3.3", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "android-activity" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" +dependencies = [ + "android-properties", + "bitflags 2.9.4", + "cc", + "cesu8", + "jni", + "jni-sys", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "num_enum", + "thiserror 1.0.69", +] + +[[package]] +name = "android-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + +[[package]] +name = "anyhow" +version = "1.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + +[[package]] +name = "ark-bls12-381" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "arrayvec", + "digest", + "educe", + "itertools", + "num-bigint 0.4.6", + "num-traits", + "paste", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.106", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash", + "ark-ff", + "ark-serialize", + "ark-std", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "arrayvec", + "digest", + "num-bigint 0.4.6", + "rayon", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.5", + "rayon", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "as-raw-xcb-connection" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "backtrace" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-link", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" + +[[package]] +name = "bech32" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" + +[[package]] +name = "bip39" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d193de1f7487df1914d3a568b772458861d33f9c54249612cc2893d6915054" +dependencies = [ + "bitcoin_hashes 0.13.0", + "serde", + "unicode-normalization", +] + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitcoin-internals" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" + +[[package]] +name = "bitcoin-io" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" + +[[package]] +name = "bitcoin_hashes" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" +dependencies = [ + "bitcoin-internals", + "hex-conservative 0.1.2", +] + +[[package]] +name = "bitcoin_hashes" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +dependencies = [ + "bitcoin-io", + "hex-conservative 0.2.1", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2", +] + +[[package]] +name = "bls12_381" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7bc6d6292be3a19e6379786dac800f551e5865a5bb51ebbe3064ab80433f403" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "bnum" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e31ea183f6ee62ac8b8a8cf7feddd766317adfb13ff469de57ce033efd6a790" + +[[package]] +name = "bumpalo" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" + +[[package]] +name = "bytemuck" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "calloop" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" +dependencies = [ + "bitflags 2.9.4", + "log", + "polling", + "rustix 0.38.44", + "slab", + "thiserror 1.0.69", +] + +[[package]] +name = "calloop-wayland-source" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" +dependencies = [ + "calloop", + "rustix 0.38.44", + "wayland-backend", + "wayland-client", +] + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.2.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7" +dependencies = [ + "find-msvc-tools", + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfg-if" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "core-text" +version = "20.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5" +dependencies = [ + "core-foundation", + "core-graphics", + "foreign-types", + "libc", +] + +[[package]] +name = "core2" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239fa3ae9b63c2dc74bd3fa852d4792b8b305ae64eeede946265b6af62f1fff3" +dependencies = [ + "memchr", +] + +[[package]] +name = "cosmwasm-core" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b0a718b13ffe224e32a8c1f68527354868f47d6cc84afe8c66cb05fbb3ced6e" + +[[package]] +name = "cosmwasm-crypto" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c08dd7585b5c48fbcb947ada7a3fb49465fb735481ed295b54ca98add6dc17f" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-serialize", + "cosmwasm-core", + "curve25519-dalek", + "digest", + "ecdsa", + "ed25519-zebra", + "k256", + "num-bigint 0.4.6", + "num-traits", + "p256", + "rand_core 0.6.4", + "rayon", + "sha2", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmwasm-derive" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5677eed823a61eeb615b1ad4915a42336b70b0fe3f87bf3da4b59f3dcf9034af" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "cosmwasm-std" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4881104f54871bcea6f30757bee13b7f09c0998d1b0de133cce5a52336a2ada" +dependencies = [ + "base64", + "bech32", + "bnum", + "cosmwasm-core", + "cosmwasm-crypto", + "cosmwasm-derive", + "cw-schema", + "derive_more", + "hex", + "rand_core 0.6.4", + "rmp-serde", + "schemars 0.8.22", + "serde", + "serde_json", + "sha2", + "static_assertions", + "thiserror 1.0.69", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cursor-icon" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "cw-schema" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8f335d3f51e10260f4dfb0840f0526c1d25c6b42a9489c04ce41ed9aa54dd6d" +dependencies = [ + "cw-schema-derive", + "indexmap 2.11.4", + "schemars 1.0.4", + "serde", + "serde_with", + "siphasher", + "typeid", +] + +[[package]] +name = "cw-schema-derive" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aba2eb93f854caeacc5eda13d15663b7605395514fd378bfba8e7532f1fc5865" +dependencies = [ + "heck", + "itertools", + "owo-colors", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "darling" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" +dependencies = [ + "darling_core 0.10.2", + "darling_macro 0.10.2", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[package]] +name = "darling_core" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.9.3", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.106", +] + +[[package]] +name = "darling_macro" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" +dependencies = [ + "darling_core 0.10.2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "derive_builder" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2658621297f2cf68762a6f7dc0bb7e1ff2cfd6583daef8ee0fed6f7ec468ec0" +dependencies = [ + "darling 0.10.2", + "derive_builder_core", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_core" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2791ea3e372c8495c0bc2033991d76b512cd799d07491fbd6890124db9458bef" +dependencies = [ + "darling 0.10.2", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "unicode-xid", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dlib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +dependencies = [ + "libloading", +] + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" + +[[package]] +name = "dwrote" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b35532432acc8b19ceed096e35dfa088d3ea037fe4f3c085f1f97f33b4d02" +dependencies = [ + "lazy_static", + "libc", + "winapi", + "wio", +] + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "serdect", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-zebra" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "hashbrown 0.14.5", + "hex", + "rand_core 0.6.4", + "sha2", + "zeroize", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "serdect", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-ordinalize" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff_ce" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d3a682c12d0cc98a32ab7540401a5ea1ed21d11571eea11d5829cd721f85ff0" +dependencies = [ + "byteorder", + "ff_derive_ce", + "hex", + "rand 0.4.6", +] + +[[package]] +name = "ff_derive_ce" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c052fa6d4c2f12305ec364bfb8ef884836f3f61ea015b202372ff996d1ac4b" +dependencies = [ + "num-bigint 0.2.6", + "num-integer", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "find-msvc-tools" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" + +[[package]] +name = "flate2" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float-ord" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce81f49ae8a0482e4c55ea62ebbd7e5a686af544c00b9d090bba3ff9be97b3d" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "font-kit" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c7e611d49285d4c4b2e1727b72cf05353558885cc5252f93707b845dfcaf3d3" +dependencies = [ + "bitflags 2.9.4", + "byteorder", + "core-foundation", + "core-graphics", + "core-text", + "dirs", + "dwrote", + "float-ord", + "freetype-sys", + "lazy_static", + "libc", + "log", + "pathfinder_geometry", + "pathfinder_simd", + "walkdir", + "winapi", + "yeslogic-fontconfig-sys", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "fpe" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26c4b37de5ae15812a764c958297cfc50f5c010438f60c6ce75d11b802abd404" +dependencies = [ + "cbc", + "cipher", + "libm", + "num-bigint 0.4.6", + "num-integer", + "num-traits", +] + +[[package]] +name = "freetype-sys" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7edc5b9669349acfda99533e9e0bcf26a51862ab43b08ee7745c55d28eb134" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "generic-array" +version = "0.14.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "gethostname" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" +dependencies = [ + "rustix 1.1.2", + "windows-link", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.7+wasi-0.2.4", +] + +[[package]] +name = "gimli" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "halo2_gadgets" +version = "0.3.1" +dependencies = [ + "arrayvec", + "bitvec", + "ff", + "group", + "halo2_poseidon", + "halo2_proofs", + "lazy_static", + "pasta_curves", + "plotters", + "proptest", + "rand 0.8.5", + "sinsemilla", + "subtle", + "uint", +] + +[[package]] +name = "halo2_poseidon" +version = "0.1.0" +dependencies = [ + "bitvec", + "ff", + "group", + "pasta_curves", +] + +[[package]] +name = "halo2_proofs" +version = "0.3.1" +dependencies = [ + "backtrace", + "blake2b_simd", + "ff", + "group", + "indexmap 1.9.3", + "maybe-rayon", + "pasta_curves", + "plotters", + "rand_core 0.6.4", + "tabbycat", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-conservative" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" + +[[package]] +name = "hex-conservative" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "hex-literal" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcaaec4551594c969335c98c903c1397853d4198408ea609190f420500f6be71" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "image" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "jpeg-decoder", + "num-traits", + "png", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +dependencies = [ + "equivalent", + "hashbrown 0.16.0", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "is-terminal" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "is_ci" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +dependencies = [ + "getrandom 0.3.3", + "libc", +] + +[[package]] +name = "jpeg-decoder" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07" + +[[package]] +name = "js-sys" +version = "0.3.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "jubjub" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8499f7a74008aafbecb2a2e608a3e13e4dd3e84df198b604451efe93f2de6e61" +dependencies = [ + "bitvec", + "bls12_381", + "ff", + "group", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "serdect", + "sha2", + "signature", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] + +[[package]] +name = "libc" +version = "0.2.177" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" + +[[package]] +name = "libloading" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" +dependencies = [ + "cfg-if", + "windows-link", +] + +[[package]] +name = "libm" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" + +[[package]] +name = "libredox" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +dependencies = [ + "bitflags 2.9.4", + "libc", + "redox_syscall 0.5.18", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "linux-raw-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" + +[[package]] +name = "log" +version = "0.4.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" + +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", + "rayon", +] + +[[package]] +name = "memchr" +version = "2.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" + +[[package]] +name = "memmap2" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" +dependencies = [ + "libc", +] + +[[package]] +name = "memuse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d97bbf43eb4f088f8ca469930cde17fa036207c9a5e02ccc5107c4e8b17c964" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.9.4", + "jni-sys", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "objc-sys" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" + +[[package]] +name = "objc2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +dependencies = [ + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2-app-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" +dependencies = [ + "bitflags 2.9.4", + "block2", + "libc", + "objc2", + "objc2-core-data", + "objc2-core-image", + "objc2-foundation", + "objc2-quartz-core", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +dependencies = [ + "bitflags 2.9.4", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-contacts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" +dependencies = [ + "bitflags 2.9.4", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-image" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-core-location" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +dependencies = [ + "block2", + "objc2", + "objc2-contacts", + "objc2-foundation", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-foundation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" +dependencies = [ + "bitflags 2.9.4", + "block2", + "dispatch", + "libc", + "objc2", +] + +[[package]] +name = "objc2-link-presentation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +dependencies = [ + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.9.4", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +dependencies = [ + "bitflags 2.9.4", + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-symbols" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +dependencies = [ + "bitflags 2.9.4", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation", + "objc2-link-presentation", + "objc2-quartz-core", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.9.4", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "object" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "orbclient" +version = "0.3.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43" +dependencies = [ + "libredox", +] + +[[package]] +name = "owned_ttf_parser" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" +dependencies = [ + "ttf-parser 0.25.1", +] + +[[package]] +name = "owo-colors" +version = "4.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" +dependencies = [ + "supports-color 2.1.0", + "supports-color 3.0.2", +] + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff", + "group", + "lazy_static", + "rand 0.8.5", + "static_assertions", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pathfinder_geometry" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b7e7b4ea703700ce73ebf128e1450eb69c3a8329199ffbfb9b2a0418e5ad3" +dependencies = [ + "log", + "pathfinder_simd", +] + +[[package]] +name = "pathfinder_simd" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf9027960355bf3afff9841918474a81a5f972ac6d226d518060bba758b5ad57" +dependencies = [ + "rustc_version", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "plotters" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" +dependencies = [ + "font-kit", + "lazy_static", + "num-traits", + "pathfinder_geometry", + "plotters-backend", + "plotters-bitmap", + "ttf-parser 0.20.0", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" + +[[package]] +name = "plotters-bitmap" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ce181e3f6bf82d6c1dc569103ca7b1bd964c60ba03d7e6cdfbb3e3eb7f7405" +dependencies = [ + "image", + "plotters-backend", +] + +[[package]] +name = "plume_rustcrypto" +version = "0.2.1" +dependencies = [ + "blake3", + "k256", + "num-bigint 0.4.6", + "num-integer", + "rand_core 0.6.4", + "serde", + "signature", +] + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "polling" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix 1.1.2", + "windows-sys 0.61.2", +] + +[[package]] +name = "poseidon-rs" +version = "0.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c76e4996e3d9572d8b5cd56f495dda3fb748fd4cd6bdca754270b8b66a9a2dd3" +dependencies = [ + "ff_ce", + "rand 0.4.6", + "serde_json", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + +[[package]] +name = "proc-macro-crate" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proptest" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bb0be07becd10686a0bb407298fb425360a5c44a663774406340c59a22de4ce" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.9.4", + "lazy_static", + "num-traits", + "rand 0.9.2", + "rand_chacha 0.9.0", + "rand_xorshift", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-xml" +version = "0.37.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.3", +] + +[[package]] +name = "rand_xorshift" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" +dependencies = [ + "rand_core 0.9.3", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "rayon" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "reddsa" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78a5191930e84973293aa5f532b513404460cd2216c1cfb76d08748c15b40b02" +dependencies = [ + "blake2b_simd", + "byteorder", + "group", + "hex", + "jubjub", + "pasta_curves", + "rand_core 0.6.4", +] + +[[package]] +name = "redjubjub" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b0ac1bc6bb3696d2c6f52cff8fba57238b81da8c0214ee6cd146eb8fde364e" +dependencies = [ + "rand_core 0.6.4", + "reddsa", + "zeroize", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.9.4", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.16", + "libredox", + "thiserror 2.0.17", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "regex" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a52d8d02cacdb176ef4678de6c052efb4b3da14b78e4db683a4252762be5433" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "722166aa0d7438abbaa4d5cc2c649dac844e8c56d82fb3d33e9c34b5cd268fc6" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3160422bbd54dd5ecfdca71e5fd59b7b8fe2b1697ab2baf64f6d05dcc66d298" + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rmp" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags 2.9.4", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +dependencies = [ + "bitflags 2.9.4", + "errno", + "libc", + "linux-raw-sys 0.11.0", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "rusty-fork" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "schemars_derive 0.8.22", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +dependencies = [ + "dyn-clone", + "ref-cast", + "schemars_derive 1.0.4", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.106", +] + +[[package]] +name = "schemars_derive" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d020396d1d138dc19f1165df7545479dcd58d93810dc5d646a16e55abefa80" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.106", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "sctk-adwaita" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" +dependencies = [ + "ab_glyph", + "log", + "memmap2", + "smithay-client-toolkit", + "tiny-skia", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "serdect", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" +dependencies = [ + "bitcoin_hashes 0.14.0", + "rand 0.9.2", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb913707158fadaf0d8702c2db0e857de66eb003ccfdda5924b5f5ac98efb38" +dependencies = [ + "cc", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "serde_json" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", + "serde_core", +] + +[[package]] +name = "serde_with" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6093cd8c01b25262b84927e0f7151692158fab02d961e04c979d3903eba7ecc5" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7e6c180db0816026a61afa1cff5344fb7ebded7e4d3062772179f2501481c27" +dependencies = [ + "darling 0.21.3", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "serdect" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" +dependencies = [ + "base16ct", + "serde", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "sinsemilla" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d268ae0ea06faafe1662e9967cd4f9022014f5eeb798e0c302c876df8b7af9c" +dependencies = [ + "group", + "pasta_curves", + "subtle", +] + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "slab" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "smithay-client-toolkit" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" +dependencies = [ + "bitflags 2.9.4", + "calloop", + "calloop-wayland-source", + "cursor-icon", + "libc", + "log", + "memmap2", + "rustix 0.38.44", + "thiserror 1.0.69", + "wayland-backend", + "wayland-client", + "wayland-csd-frame", + "wayland-cursor", + "wayland-protocols", + "wayland-protocols-wlr", + "wayland-scanner", + "xkeysym", +] + +[[package]] +name = "smol_str" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" +dependencies = [ + "serde", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strict-num" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" + +[[package]] +name = "strsim" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "supports-color" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6398cde53adc3c4557306a96ce67b302968513830a77a95b2b17305d9719a89" +dependencies = [ + "is-terminal", + "is_ci", +] + +[[package]] +name = "supports-color" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64fc7232dd8d2e4ac5ce4ef302b1d81e0b80d055b9d77c7c4f51f6aa4c867d6" +dependencies = [ + "is_ci", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tabbycat" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c45590f0f859197b4545be1b17b2bc3cc7bb075f7d1cc0ea1dc6521c0bf256a3" +dependencies = [ + "anyhow", + "derive_builder", + "regex", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +dependencies = [ + "fastrand", + "getrandom 0.3.3", + "once_cell", + "rustix 1.1.2", + "windows-sys 0.61.2", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +dependencies = [ + "thiserror-impl 2.0.17", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tiny-skia" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" +dependencies = [ + "arrayref", + "arrayvec", + "bytemuck", + "cfg-if", + "log", + "tiny-skia-path", +] + +[[package]] +name = "tiny-skia-path" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + +[[package]] +name = "tinyvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "toml_datetime" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.23.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" +dependencies = [ + "indexmap 2.11.4", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +dependencies = [ + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tracing-core" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", +] + +[[package]] +name = "ttf-parser" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" + +[[package]] +name = "ttf-parser" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicode-ident" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "wait-timeout" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasi" +version = "0.14.7+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" +dependencies = [ + "wasip2", +] + +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn 2.0.106", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wayland-backend" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35" +dependencies = [ + "cc", + "downcast-rs", + "rustix 1.1.2", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" +dependencies = [ + "bitflags 2.9.4", + "rustix 1.1.2", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-csd-frame" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" +dependencies = [ + "bitflags 2.9.4", + "cursor-icon", + "wayland-backend", +] + +[[package]] +name = "wayland-cursor" +version = "0.31.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447ccc440a881271b19e9989f75726d60faa09b95b0200a9b7eb5cc47c3eeb29" +dependencies = [ + "rustix 1.1.2", + "wayland-client", + "xcursor", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901" +dependencies = [ + "bitflags 2.9.4", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-plasma" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a07a14257c077ab3279987c4f8bb987851bf57081b93710381daea94f2c2c032" +dependencies = [ + "bitflags 2.9.4", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd94963ed43cf9938a090ca4f7da58eb55325ec8200c3848963e98dc25b78ec" +dependencies = [ + "bitflags 2.9.4", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3" +dependencies = [ + "proc-macro2", + "quick-xml", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142" +dependencies = [ + "dlib", + "log", + "once_cell", + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winit" +version = "0.30.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66d4b9ed69c4009f6321f762d6e61ad8a2389cd431b97cb1e146812e9e6c732" +dependencies = [ + "ahash", + "android-activity", + "atomic-waker", + "bitflags 2.9.4", + "block2", + "bytemuck", + "calloop", + "cfg_aliases", + "concurrent-queue", + "core-foundation", + "core-graphics", + "cursor-icon", + "dpi", + "js-sys", + "libc", + "memmap2", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "orbclient", + "percent-encoding", + "pin-project", + "raw-window-handle", + "redox_syscall 0.4.1", + "rustix 0.38.44", + "sctk-adwaita", + "smithay-client-toolkit", + "smol_str", + "tracing", + "unicode-segmentation", + "wasm-bindgen", + "wasm-bindgen-futures", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-plasma", + "web-sys", + "web-time", + "windows-sys 0.52.0", + "x11-dl", + "x11rb", + "xkbcommon-dl", +] + +[[package]] +name = "winnow" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +dependencies = [ + "memchr", +] + +[[package]] +name = "wio" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" +dependencies = [ + "winapi", +] + +[[package]] +name = "wit-bindgen" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "x11rb" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" +dependencies = [ + "as-raw-xcb-connection", + "gethostname", + "libc", + "libloading", + "once_cell", + "rustix 1.1.2", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" + +[[package]] +name = "xcursor" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b" + +[[package]] +name = "xkbcommon-dl" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" +dependencies = [ + "bitflags 2.9.4", + "dlib", + "log", + "once_cell", + "xkeysym", +] + +[[package]] +name = "xkeysym" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" + +[[package]] +name = "yeslogic-fontconfig-sys" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "503a066b4c037c440169d995b869046827dbc71263f6e8f3be6d77d4f3229dbd" +dependencies = [ + "dlib", + "once_cell", + "pkg-config", +] + +[[package]] +name = "zcash_spec" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded3f58b93486aa79b85acba1001f5298f27a46489859934954d262533ee2915" +dependencies = [ + "blake2b_simd", +] + +[[package]] +name = "zerocopy" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "zip32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b64bf5186a8916f7a48f2a98ef599bf9c099e2458b36b819e393db1c0e768c4b" +dependencies = [ + "bech32", + "blake2b_simd", + "memuse", + "subtle", + "zcash_spec", +] + +[[package]] +name = "zk-crates" +version = "0.1.0" +dependencies = [ + "aes", + "base64", + "bip39", + "bitvec", + "blake2b_simd", + "blake3", + "core2", + "cosmwasm-std", + "elliptic-curve", + "ff", + "fpe", + "group", + "halo2_gadgets", + "halo2_proofs", + "hex", + "hex-literal", + "hkdf", + "jubjub", + "k256", + "lazy_static", + "memuse", + "num-bigint 0.4.6", + "pasta_curves", + "plume_rustcrypto", + "poseidon-rs", + "rand 0.8.5", + "rand_chacha 0.9.0", + "rand_core 0.6.4", + "rayon", + "redjubjub", + "secp256k1", + "serde", + "serde_json", + "sinsemilla", + "subtle", + "winit", + "zip32", +] diff --git a/zk-crates/zk-headstash/Cargo.toml b/zk-crates/zk-headstash/Cargo.toml new file mode 100644 index 0000000..460f86a --- /dev/null +++ b/zk-crates/zk-headstash/Cargo.toml @@ -0,0 +1,97 @@ +[package] +name = "zk-headstash" +version = {workspace = true} +edition = "2021" + +[features] +default = ["circuit", "multicore", "std", "interface"] +circuit = ["dep:halo2_gadgets", "dep:halo2_proofs", "std"] +interface = ["headstash-randomness", "std", "dep:rayon", "circuit"] +multicore = ["halo2_proofs?/multicore"] +std = ["core2/std", "group/wnaf-memuse" , "reddsa/std"] +# dev-graph = ["halo2_proofs?/dev-graph", "image", "plotters"] +rpc = [] +test-dependencies = [] + +[dependencies] +headstash-randomness = { workspace = true, optional = true } +halo2_gadgets = { workspace = true, optional = true } +halo2_proofs = { workspace = true , optional = true} +halo2-base = { workspace = true } +anybuf = { workspace = true } + +# plume_rustcrypto = { workspace = true } + +aes = "0.8" +base64 = { workspace = true } +bitvec = { workspace = true, default-features = false } +blake2b_simd = { workspace = true, default-features = false } +blake3 = { workspace = true } +core2 = { workspace = true, default-features = false, features = ["alloc"] } +ff = {workspace = true } +fpe = { workspace = true, default-features = false, features = ["alloc"] } +hex = {workspace = true } +lazy_static = {workspace = true } +memuse = { workspace = true, default-features = false } +num-bigint = {workspace = true } +num-traits = {workspace = true } +pasta_curves = {workspace = true } +reddsa = { workspace = true, default-features = false } +rand = {workspace = true } +rand_core = { workspace = true, default-features = false } +rayon = {workspace = true, optional = true } +secp256k1 = {workspace = true} +prost = { workspace = true } +tonic = {workspace = true } +tonic-prost = {workspace = true } +group = {workspace = true} + +sinsemilla = {workspace = true } +# image = {workspace = true, optional = true } +serde = { workspace = true, features = ["derive"] } +serde_json = {workspace = true } +subtle = { workspace = true, default-features = false } +zip32 = { workspace = true, default-features = false } +proptest = { workspace = true, optional = true } +nonempty = { workspace = true, default-features = false } +zcash_note_encryption = "0.4" +incrementalmerkletree = "0.8.1" +zcash_spec = {workspace = true } +visibility = {workspace = true } + +# Logging +tracing = { workspace = true, default-features = false } +# Developer tooling dependencies +# plotters = { workspace = true, optional = true } +# Boilerplate +getset = {workspace = true } + +[dev-dependencies] +# criterion = "0.4" # 0.5 depends on clap 4 which has MSRV 1.70 +halo2_gadgets = { workspace = true, version = "0.3.1", features = ["test-dependencies"] } +hex = "0.4" +proptest = ">=1.0.0, <1.7.0" +zcash_note_encryption = { version = "0.4", features = ["pre-zip-212"] } +incrementalmerkletree = { version = "0.8.1", features = ["test-dependencies"] } +shardtree = "0.6" + +# Binary targets with required features +[[bin]] +name = "gen_headstash_keys" +required-features = ["interface"] + +[[bin]] +name = "create_headstash_proof" +required-features = ["interface"] + +[[bin]] +name = "gen_headstash_notes" +required-features = ["interface"] + +[[bin]] +name = "create_test_circuit_data" +required-features = ["circuit"] + +[[bin]] +name = "gen_randomness" +required-features = ["interface"] diff --git a/zk-crates/zk-headstash/README.md b/zk-crates/zk-headstash/README.md new file mode 100644 index 0000000..bb5d29d --- /dev/null +++ b/zk-crates/zk-headstash/README.md @@ -0,0 +1,59 @@ +# Zk-Crates: Private Headstash + +A fork of [zcash orchard protocol](https://github.com/zcash/orchard) + +A zk-proof circuit dedicated to public allocations, private distributions (headstshes). To learn about the specification, check out the [documentation](../../docs/zk-headstash/spec) + +## WARNING: THIS IS A WORK IN PROGRESS. SUPER EXPERIEMENTAL TYPE BEAT. USE AT YOUR DISCRETION + +## Feature Flags + +The `zk-headstash` crate uses feature flags to minimize binary size and compilation time by making optional components conditional. This allows downstream crates to import only what they need. + +| Feature | Description | Dependencies Enabled | Modules Enabled | +|---------|-------------|---------------------|-----------------| +| `circuit` | Core ZK circuit implementation including proving/verifying key generation | `halo2_gadgets`, `halo2_proofs` | `circuit`, `example_circuits` | +| `interface` | High-level suite interface for headstash operations (tree generation, proof creation, key management) | `circuit`, `headstash-randomness`, `rayon` | `deploy` | +| `std` | Standard library support (required for file I/O operations) | Enables `std` on dependencies | - | +| `multicore` | Enable multi-threaded proving | `halo2_proofs/multicore` | - | +| `dev-graph` | Development tools for circuit visualization | `image`, `plotters`, `halo2_proofs/dev-graph` | - | +| `rpc` | RPC interface support (reserved for future use) | - | - | + +### Default Features + +```toml +default = ["circuit", "multicore", "std", "interface"] +# Usage Examples +# +# **Minimal build (core types only, no circuit or suite):** +# [dependencies] +# zk-headstash = { version = "*", default-features = false } +# +# +# **Circuit support only (no suite interface):** +# [dependencies] +# zk-headstash = { version = "*", default-features = false, features = ["circuit", "std"] } +# +# **Full functionality (default):** +# +# [dependencies] +# zk-headstash = { version = "*" } +``` + +### Binary Targets + +All binary targets require specific features to compile: + +| Binary | Required Features | Purpose | +|--------|------------------|---------| +| `gen_headstash_keys` | `interface` | Generate circuit proving and verifying keys | +| `create_headstash_proof` | `interface` | Create a headstash proof from note parameters | +| `gen_headstash_notes` | `interface` | Generate notes and merkle tree from genesis allocation | +| `create_test_circuit_data` | `circuit` | Generate test circuit data for examples | +| `gen_randomness` | `interface` | Generate secure randomness for headstash operations | + +## Building Circuit + +## Testing + +## Releasing Libary diff --git a/zk-crates/zk-headstash/src/action.rs b/zk-crates/zk-headstash/src/action.rs new file mode 100644 index 0000000..d85669b --- /dev/null +++ b/zk-crates/zk-headstash/src/action.rs @@ -0,0 +1,223 @@ +use memuse::DynamicUsage; + +use crate::{ + note::{ExtractedNoteCommitment, Nullifier, Rho, TransmittedNoteCiphertext}, + primitives::redpallas::{self, SpendAuth}, + value::{NoteValue, ValueCommitment}, +}; + +/// An action applied to the global ledger. +/// +/// This both creates a note (adding a commitment to the global ledger), and consumes +/// some note created prior to this action (adding a nullifier to the global ledger). +#[derive(Debug, Clone)] +pub struct Action { + /// The nullifier of the note being spent. + nf: Nullifier, + /// The randomized verification key for the note being spent. + // rk: redpallas::VerificationKey, + /// A commitment to the new note being created. + cmx: ExtractedNoteCommitment, + /// The transmitted note ciphertext. + // encrypted_note: TransmittedNoteCiphertext, + /// A commitment to the net value created or consumed by this action. + v: NoteValue, + // cv_net: ValueCommitment, + /// The authorization for this action. + authorization: A, +} + +impl Action { + /// Constructs an `Action` from its constituent parts. + pub fn from_parts( + nf: Nullifier, + // rk: redpallas::VerificationKey, + cmx: ExtractedNoteCommitment, + // encrypted_note: TransmittedNoteCiphertext, + v: NoteValue, + // cv_net: ValueCommitment, + authorization: T, + ) -> Self { + Action { + nf, + // rk, + v, + cmx, + // encrypted_note, + // cv_net, + authorization, + } + } + + /// Returns the nullifier of the note being spent. + pub fn nullifier(&self) -> &Nullifier { + &self.nf + } + + // /// Returns the randomized verification key for the note being spent. + // pub fn rk(&self) -> &redpallas::VerificationKey { + // &self.rk + // } + + /// Returns the commitment to the new note being created. + pub fn cmx(&self) -> &ExtractedNoteCommitment { + &self.cmx + } + + // /// Returns the encrypted note ciphertext. + // pub fn encrypted_note(&self) -> &TransmittedNoteCiphertext { + // &self.encrypted_note + // } + + /// Obtains the [`Rho`] value that was used to construct the new note being created. + pub fn rho(&self) -> Rho { + Rho::from_nf_old(self.nf) + } + + /// Returns the commitment to the net value created or consumed by this action. + pub fn v(&self) -> &NoteValue { + &self.v + } + + // /// Returns the commitment to the net value created or consumed by this action. + // pub fn cv_net(&self) -> &ValueCommitment { + // &self.cv_net + // } + + /// Returns the authorization for this action. + pub fn authorization(&self) -> &T { + &self.authorization + } + + /// Transitions this action from one authorization state to another. + pub fn map(self, step: impl FnOnce(T) -> U) -> Action { + Action { + nf: self.nf, + // rk: self.rk, + cmx: self.cmx, + // encrypted_note: self.encrypted_note, + v: self.v, + // cv_net: self.cv_net, + authorization: step(self.authorization), + } + } + + /// Transitions this action from one authorization state to another. + pub fn try_map(self, step: impl FnOnce(T) -> Result) -> Result, E> { + Ok(Action { + nf: self.nf, + // rk: self.rk, + cmx: self.cmx, + // encrypted_note: self.encrypted_note, + v: self.v, + // cv_net: self.cv_net, + authorization: step(self.authorization)?, + }) + } +} + +impl DynamicUsage for Action> { + #[inline(always)] + fn dynamic_usage(&self) -> usize { + 0 + } + + #[inline(always)] + fn dynamic_usage_bounds(&self) -> (usize, Option) { + (0, Some(0)) + } +} + +/// Generators for property testing. +#[cfg(any(test, feature = "test-dependencies"))] +#[cfg_attr(docsrs, doc(cfg(feature = "test-dependencies")))] +pub(crate) mod testing { + use rand::{rngs::StdRng, SeedableRng}; + use reddsa::orchard::SpendAuth; + + use proptest::prelude::*; + + use crate::{ + note::{ + commitment::ExtractedNoteCommitment, nullifier::testing::arb_nullifier, + testing::arb_note, TransmittedNoteCiphertext, + }, + primitives::redpallas::{ + self, + testing::{arb_spendauth_signing_key, arb_spendauth_verification_key}, + }, + value::{NoteValue, ValueCommitTrapdoor, ValueCommitment}, + }; + + use super::Action; + + prop_compose! { + /// Generate an action without authorization data. + pub fn arb_unauthorized_action(spend_value: NoteValue, output_value: NoteValue)( + nf in arb_nullifier(), + rk in arb_spendauth_verification_key(), + note in arb_note(output_value), + ) -> Action<()> { + let cmx = ExtractedNoteCommitment::from(note.commitment()); + let cv_net = ValueCommitment::derive( + spend_value - output_value, + ValueCommitTrapdoor::zero() + ); + // FIXME: make a real one from the note. + let encrypted_note = TransmittedNoteCiphertext { + epk_bytes: [0u8; 32], + enc_ciphertext: [0u8; 580], + out_ciphertext: [0u8; 80] + }; + + let v = spend_value; + + Action { + nf, + // rk, + cmx, + // encrypted_note, + v, + // cv_net, + authorization: () + } + } + } + + prop_compose! { + /// Generate an action with invalid (random) authorization data. + pub fn arb_action(spend_value: NoteValue, output_value: NoteValue)( + nf in arb_nullifier(), + sk in arb_spendauth_signing_key(), + note in arb_note(output_value), + rng_seed in prop::array::uniform32(prop::num::u8::ANY), + fake_sighash in prop::array::uniform32(prop::num::u8::ANY), + ) -> Action> { + let cmx = ExtractedNoteCommitment::from(note.commitment()); + let cv_net = ValueCommitment::derive( + spend_value - output_value, + ValueCommitTrapdoor::zero() + ); + let v = spend_value; + + // FIXME: make a real one from the note. + let encrypted_note = TransmittedNoteCiphertext { + epk_bytes: [0u8; 32], + enc_ciphertext: [0u8; 580], + out_ciphertext: [0u8; 80] + }; + + let rng = StdRng::from_seed(rng_seed); + + Action { + nf, + // rk: redpallas::VerificationKey::from(&sk), + cmx, + // encrypted_note, + v, + // cv_net, + authorization: sk.sign(rng, &fake_sighash), + } + } + } +} diff --git a/zk-crates/zk-headstash/src/address.rs b/zk-crates/zk-headstash/src/address.rs new file mode 100644 index 0000000..cef152a --- /dev/null +++ b/zk-crates/zk-headstash/src/address.rs @@ -0,0 +1,547 @@ +//! address related crate +// use cosmwasm_std::CanonicalAddr; +use ff::PrimeField; +use pasta_curves::pallas; +use subtle::CtOption; + +use crate::{ + keys::{DiversifiedTransmissionKey, Diversifier}, + spec::{diversify_hash, diversify_hash_headstash, NonIdentityPallasPoint}, +}; + +/// A shielded payment address. +/// +/// # Examples +/// +/// ``` +/// use orchard::keys::{SpendingKey, FullViewingKey, Scope}; +/// +/// let sk = SpendingKey::from_bytes([7; 32]).unwrap(); +/// let address = FullViewingKey::from(&sk).address_at(0u32, Scope::External); +/// ``` +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct Address { + d: Diversifier, + pk_d: DiversifiedTransmissionKey, +} + +impl Address { + pub(crate) fn from_parts(d: Diversifier, pk_d: DiversifiedTransmissionKey) -> Self { + // We assume here that pk_d is correctly-derived from d. We ensure this for + // internal APIs. For parsing from raw byte encodings, we assume that users aren't + // modifying internals of encoded address formats. If they do, that can result in + // lost funds, but we can't defend against that from here. + Address { d, pk_d } + } + + /// Returns the [`Diversifier`] for this `Address`. + pub fn diversifier(&self) -> Diversifier { + self.d + } + + pub(crate) fn g_d(&self) -> NonIdentityPallasPoint { + diversify_hash(self.d.as_array()) + } + + pub(crate) fn pk_d(&self) -> &DiversifiedTransmissionKey { + &self.pk_d + } + + /// Serializes this address to its "raw" encoding as specified in [Zcash Protocol Spec § 5.6.4.2: Orchard Raw Payment Addresses][orchardpaymentaddrencoding] + /// + /// [orchardpaymentaddrencoding]: https://zips.z.cash/protocol/protocol.pdf#orchardpaymentaddrencoding + pub fn to_raw_address_bytes(&self) -> [u8; 43] { + let mut result = [0u8; 43]; + result[..11].copy_from_slice(self.d.as_array()); + result[11..].copy_from_slice(&self.pk_d.to_bytes()); + result + } + + /// Parse an address from its "raw" encoding as specified in [Zcash Protocol Spec § 5.6.4.2: Orchard Raw Payment Addresses][orchardpaymentaddrencoding] + /// + /// [orchardpaymentaddrencoding]: https://zips.z.cash/protocol/protocol.pdf#orchardpaymentaddrencoding + pub fn from_raw_address_bytes(bytes: &[u8; 43]) -> CtOption { + DiversifiedTransmissionKey::from_bytes(bytes[11..].try_into().unwrap()).map(|pk_d| { + let d = Diversifier::from_bytes(bytes[..11].try_into().unwrap()); + Self::from_parts(d, pk_d) + }) + } +} + +/// Generators for property testing. +#[cfg(any(test, feature = "test-dependencies"))] +#[cfg_attr(docsrs, doc(cfg(feature = "test-dependencies")))] +pub mod testing { + use proptest::prelude::*; + + use crate::{ + address::RecpAddr, + keys::{ + testing::{arb_diversifier_index, arb_spending_key}, + FullViewingKey, Scope, + }, + value::testing::arb_scalar, + }; + + use super::Address; + + prop_compose! { + /// Generates an arbitrary payment address. + pub(crate) fn arb_address()(sk in arb_spending_key(), j in arb_diversifier_index()) -> Address { + let fvk = FullViewingKey::from(&sk); + fvk.address_at(j, Scope::External) + } + } + prop_compose! { + /// Generates an arbitrary cosmos headstash recp. + pub(crate) fn arb_recp()(sk in arb_scalar()) -> RecpAddr { + RecpAddr(sk.into()) + } + } +} + +/// the canonical bytes of a bech32 address intended to recieve headstash distributions. +/// functions: +/// - hash: performs the blake +#[derive(Debug, Copy, Clone)] +pub struct RecpAddr([u8; 32]); + +impl RecpAddr { + /// Returns the bytes for this `RecpAddr`. + pub fn new(bytes: [u8; 32]) -> Self { + Self(bytes) + } + /// Returns the bytes for this `RecpAddr`. + pub fn to_bytes(&self) -> [u8; 32] { + self.0 + } + // /// Returns the [`CanonicalAddr`] for this `RecpAddr`. + // pub fn to_canonical(&self) -> CanonicalAddr { + // CanonicalAddr::from(self.0) + // } + /// Returns the [`pallas::Base`] for this `RecpAddr`. + pub fn to_pallas(&self) -> pallas::Base { + crate::spec::recp_to_fp(self) + } + + pub(crate) fn g_d(&self) -> NonIdentityPallasPoint { + diversify_hash_headstash(&self.0) + } + + /// validates whether a byte array is identical to the pallas field representation of the raw recp bytes + pub fn validate(&self, pallas: &[u8]) -> bool { + self.to_pallas().to_repr() == pallas + } +} + +// impl From for RecpAddr { +// fn from(value: cosmwasm_std::Binary) -> Self { +// Self::new( +// value +// .as_slice() +// .try_into() +// .expect("Invalid nullifier bytes"), +// ) +// } +// } +// impl From for RecpAddr { +// fn from(ca: CanonicalAddr) -> Self { +// Self(ca.as_slice().try_into().expect("Invalid nullifier bytes")) +// } +// } + +impl TryFrom<&[u8]> for RecpAddr { + type Error = std::array::TryFromSliceError; + + fn try_from(canonical_addr: &[u8]) -> Result { + let bytes: [u8; 32] = canonical_addr.try_into()?; + Ok(Self(bytes)) + } +} + +#[cfg(test)] +mod tests { + use std::println; + use std::string::ToString; + + use super::*; + use crate::spec::recp_to_fp; + + // use cosmwasm_std::testing::mock_dependencies; + // use cosmwasm_std::{Api, CanonicalAddr}; + + // #[test] + // fn test_canon() { + // let deps = mock_dependencies(); + // let addr = deps.api.addr_make("ayo"); + // let canon: CanonicalAddr = deps.api.addr_canonicalize(&addr.to_string()).unwrap(); + // println!("{:#?}", addr.to_string()); + // println!("{:#?}", canon.len()); + // println!("{:#?}", canon.to_string()); + // } + + // Helper function to create a valid 32-byte array + fn create_test_bytes() -> [u8; 32] { + let mut bytes = [0u8; 32]; + for (i, byte) in bytes.iter_mut().enumerate() { + *byte = (i % 256) as u8; + } + bytes + } + + #[test] + fn test_recp_addr_creation_and_to_bytes() { + let test_bytes = create_test_bytes(); + let recp_addr = RecpAddr(test_bytes); + + assert_eq!(recp_addr.to_bytes(), test_bytes); + } + + // #[test] + // fn test_to_canonical() { + // let test_bytes = create_test_bytes(); + // let recp_addr = RecpAddr(test_bytes); + + // let canonical = recp_addr.to_canonical(); + // assert_eq!(canonical.as_slice(), &test_bytes); + // } + + // #[test] + // fn test_try_from_canonical_addr_success() { + // let test_bytes = create_test_bytes(); + // let canonical = CanonicalAddr::from(test_bytes); + + // let recp_addr = RecpAddr::try_from(canonical).unwrap(); + // assert_eq!(recp_addr.to_bytes(), test_bytes); + // } + + // #[test] + // fn test_try_from_canonical_addr_wrong_length() { + // // Create a CanonicalAddr with wrong length (not 32 bytes) + // let short_bytes = vec![1u8, 2, 3, 4]; + // let canonical = CanonicalAddr::from(short_bytes); + + // let result = RecpAddr::try_from(canonical); + // assert!(result.is_err()); + // } + + #[test] + fn test_try_from_slice_success() { + let test_bytes = create_test_bytes(); + let slice: &[u8] = &test_bytes; + + let recp_addr = RecpAddr::try_from(slice).unwrap(); + assert_eq!(recp_addr.to_bytes(), test_bytes); + } + + #[test] + fn test_try_from_slice_wrong_length_short() { + let short_slice: &[u8] = &[1, 2, 3, 4]; + let result = RecpAddr::try_from(short_slice); + assert!(result.is_err()); + } + + #[test] + fn test_try_from_slice_wrong_length_long() { + let long_slice: &[u8] = &[0u8; 64]; + let result = RecpAddr::try_from(long_slice); + assert!(result.is_err()); + } + + #[test] + fn test_try_from_empty_slice() { + let empty_slice: &[u8] = &[]; + let result = RecpAddr::try_from(empty_slice); + assert!(result.is_err()); + } + + #[test] + fn test_recp_addr_clone() { + let test_bytes = create_test_bytes(); + let recp_addr = RecpAddr(test_bytes); + let cloned = recp_addr.clone(); + + assert_eq!(recp_addr.to_bytes(), cloned.to_bytes()); + } + + #[test] + fn test_recp_addr_copy() { + let test_bytes = create_test_bytes(); + let recp_addr = RecpAddr(test_bytes); + let copied = recp_addr; // Copy trait + + assert_eq!(recp_addr.to_bytes(), copied.to_bytes()); + } + + // #[test] + // fn test_round_trip_canonical() { + // let test_bytes = create_test_bytes(); + // let recp_addr = RecpAddr(test_bytes); + + // // Convert to canonical and back + // let canonical = recp_addr.to_canonical(); + // let recp_addr_2 = RecpAddr::try_from(canonical).unwrap(); + + // assert_eq!(recp_addr.to_bytes(), recp_addr_2.to_bytes()); + // } + + #[test] + fn test_all_zeros() { + let zero_bytes = [0u8; 32]; + let recp_addr = RecpAddr(zero_bytes); + + assert_eq!(recp_addr.to_bytes(), zero_bytes); + } + + #[test] + fn test_all_ones() { + let ones_bytes = [0xFFu8; 32]; + let recp_addr = RecpAddr(ones_bytes); + + assert_eq!(recp_addr.to_bytes(), ones_bytes); + } + + // #[test] + // fn test_with_mock_cosmwasm_addr() { + // let deps = mock_dependencies(); + // let addr = deps.api.addr_make("test_address"); + // let canonical = deps.api.addr_canonicalize(&addr.to_string()).unwrap(); + + // // This might fail if the canonical address isn't 32 bytes + // // depending on the mock implementation + // if canonical.len() == 32 { + // let recp_addr = RecpAddr::try_from(canonical.clone()).unwrap(); + // assert_eq!(recp_addr.to_canonical().as_slice(), canonical.as_slice()); + // } else { + // // Document that mock addresses may not be 32 bytes + // println!("Mock canonical address length: {}", canonical.len()); + // } + // } + + #[test] + fn test_to_pallas() { + let test_bytes = create_test_bytes(); + let recp_addr = RecpAddr(test_bytes); + + // Just verify it can be called without panicking + // The actual correctness depends on the spec::recp_to_fp implementation + let _pallas_base = recp_addr.to_pallas(); + } + + #[test] + fn test_debug_trait() { + let test_bytes = create_test_bytes(); + let recp_addr = RecpAddr(test_bytes); + + // Verify Debug trait works + let debug_string = format!("{:?}", recp_addr); + assert!(debug_string.contains("RecpAddr")); + } + + use super::*; + use pasta_curves::group::ff::PrimeField; + use pasta_curves::pallas; + + // Helper function to create a RecpAddr from a 32-byte array + fn make_recp_addr(bytes: [u8; 32]) -> RecpAddr { + RecpAddr::try_from(&bytes[..]).unwrap() + } + + #[test] + fn test_recp_to_fp_deterministic() { + // Same input should always produce same output + let test_bytes = [42u8; 32]; + let recp1 = make_recp_addr(test_bytes); + let recp2 = make_recp_addr(test_bytes); + + let fp1 = recp_to_fp(&recp1); + let fp2 = recp_to_fp(&recp2); + + assert_eq!(fp1, fp2); + } + + #[test] + fn test_recp_to_fp_different_inputs() { + // Different inputs should produce different outputs + let bytes1 = [1u8; 32]; + let bytes2 = [2u8; 32]; + + let recp1 = make_recp_addr(bytes1); + let recp2 = make_recp_addr(bytes2); + + let fp1 = recp_to_fp(&recp1); + let fp2 = recp_to_fp(&recp2); + + assert_ne!(fp1, fp2); + } + + #[test] + fn test_recp_to_fp_all_zeros() { + let zero_bytes = [0u8; 32]; + let recp = make_recp_addr(zero_bytes); + + let fp = recp_to_fp(&recp); + + // Should produce a valid field element (not necessarily zero due to hashing) + // Just verify it doesn't panic and produces a field element + assert!(fp != pallas::Base::zero() || fp == pallas::Base::zero()); + } + + #[test] + fn test_recp_to_fp_all_ones() { + let ones_bytes = [0xFFu8; 32]; + let recp = make_recp_addr(ones_bytes); + + let fp = recp_to_fp(&recp); + + // Should produce a valid field element + assert!(fp != pallas::Base::zero() || fp == pallas::Base::zero()); + } + + #[test] + fn test_recp_to_fp_sequential_bytes() { + let mut bytes = [0u8; 32]; + for (i, byte) in bytes.iter_mut().enumerate() { + *byte = (i % 256) as u8; + } + + let recp = make_recp_addr(bytes); + let fp = recp_to_fp(&recp); + + // Verify it's a valid field element by checking it's in the field + // (all pallas::Base values are valid by construction) + let _ = fp; + } + + #[test] + fn test_recp_to_fp_single_bit_difference() { + // Test avalanche effect: small change in input should cause large change in output + let mut bytes1 = [0u8; 32]; + let mut bytes2 = [0u8; 32]; + bytes2[0] = 1; // Only change first bit + + let recp1 = make_recp_addr(bytes1); + let recp2 = make_recp_addr(bytes2); + + let fp1 = recp_to_fp(&recp1); + let fp2 = recp_to_fp(&recp2); + + assert_ne!(fp1, fp2); + } + + #[test] + fn test_recp_to_fp_change_in_first_half() { + // Change only in first 16 bytes + let mut bytes1 = [0u8; 32]; + let mut bytes2 = [0u8; 32]; + bytes2[8] = 1; // Change in first half + + let recp1 = make_recp_addr(bytes1); + let recp2 = make_recp_addr(bytes2); + + let fp1 = recp_to_fp(&recp1); + let fp2 = recp_to_fp(&recp2); + + assert_ne!(fp1, fp2); + } + + #[test] + fn test_recp_to_fp_change_in_second_half() { + // Change only in second 16 bytes + let mut bytes1 = [0u8; 32]; + let mut bytes2 = [0u8; 32]; + bytes2[24] = 1; // Change in second half + + let recp1 = make_recp_addr(bytes1); + let recp2 = make_recp_addr(bytes2); + + let fp1 = recp_to_fp(&recp1); + let fp2 = recp_to_fp(&recp2); + + assert_ne!(fp1, fp2); + } + + #[test] + fn test_recp_to_fp_returns_valid_field_element() { + let test_bytes = [123u8; 32]; + let recp = make_recp_addr(test_bytes); + + let fp = recp_to_fp(&recp); + + // Test that we can perform field operations on the result + let doubled = fp + fp; + let squared = fp * fp; + + assert_ne!(doubled, fp); // Unless fp is zero, which it shouldn't be + assert!(squared == squared); // Just verify operations work + } + + #[test] + fn test_recp_to_fp_collision_resistance() { + // Test a few different inputs to ensure no obvious collisions + let mut outputs = std::collections::HashSet::new(); + + for i in 0..10 { + let mut bytes = [0u8; 32]; + bytes[0] = i; + let recp = make_recp_addr(bytes); + let fp = recp_to_fp(&recp); + + // Convert to bytes for HashSet (PrimeField trait provides to_repr) + let repr = fp.to_repr(); + assert!(outputs.insert(repr), "Found collision at iteration {}", i); + } + + assert_eq!(outputs.len(), 10); + } + + #[test] + fn test_recp_to_fp_boundary_values() { + // Test with max u128 in first half + let mut bytes = [0u8; 32]; + bytes[0..16].copy_from_slice(&[0xFF; 16]); + let recp1 = make_recp_addr(bytes); + + // Test with max u128 in second half + let mut bytes = [0u8; 32]; + bytes[16..32].copy_from_slice(&[0xFF; 16]); + let recp2 = make_recp_addr(bytes); + + let fp1 = recp_to_fp(&recp1); + let fp2 = recp_to_fp(&recp2); + + assert_ne!(fp1, fp2); + } + + #[test] + fn test_recp_to_fp_integration_with_recp_addr() { + // Test that it works seamlessly with RecpAddr's to_pallas method + let test_bytes = [77u8; 32]; + let recp = make_recp_addr(test_bytes); + + let fp1 = recp_to_fp(&recp); + let fp2 = recp.to_pallas(); // Should call the same function + + assert_eq!(fp1, fp2); + } + + #[test] + fn test_recp_to_fp_byte_order_matters() { + // Reversed bytes should give different hash + let mut bytes1 = [0u8; 32]; + for (i, byte) in bytes1.iter_mut().enumerate() { + *byte = i as u8; + } + + let mut bytes2 = bytes1.clone(); + bytes2.reverse(); + + let recp1 = make_recp_addr(bytes1); + let recp2 = make_recp_addr(bytes2); + + let fp1 = recp_to_fp(&recp1); + let fp2 = recp_to_fp(&recp2); + + assert_ne!(fp1, fp2); + } +} diff --git a/zk-crates/zk-headstash/src/bin/create_headstash_proof.rs b/zk-crates/zk-headstash/src/bin/create_headstash_proof.rs new file mode 100644 index 0000000..3f9bfbe --- /dev/null +++ b/zk-crates/zk-headstash/src/bin/create_headstash_proof.rs @@ -0,0 +1,30 @@ +// use commonware_runtime::tokio::Runner; +// use commonware_runtime::Runner as _; +use zk_headstash::address::RecpAddr; +use zk_headstash::deploy::suite::*; +use zk_headstash::keys::EligibleSk; +use zk_headstash::tree::{MerkleHashOrchard, MerklePath}; +use zk_headstash::value::{HeadstashValue, NoteDenom}; +use zk_headstash::Anchor; +/// # create headstash circuit proof from a note. +/// - generates default Headstash [VerifyingKey] and [ProvingKey] +/// ``` +/// cargo run -- --bin create_proof +/// ``` +/// See for traits/details. +fn main() -> Result<(), Box> { + // Runner::default() + // .start(|_| async move { + // let a = Anchor::empty_tree(); + // let mp = + // MerklePath::from_parts(0, [MerkleHashOrchard::from_bytes(&[69; 32]).unwrap(); 32]); + // let esk = EligibleSk::from_bytes([42u8; 32]); + // let recp = RecpAddr::new([42; 32]); + // let hv = HeadstashValue::new(100.into(), NoteDenom::new_for_proof("uterp"), 6); + // HeadstashSuite::new() + // .create_headstash_proof(a, mp, esk, recp, hv) + // .await + // }) + // .map_err(|e| e as Box)?; + Ok(()) +} diff --git a/zk-crates/zk-headstash/src/bin/create_test_circuit_data.rs b/zk-crates/zk-headstash/src/bin/create_test_circuit_data.rs new file mode 100644 index 0000000..48a3aff --- /dev/null +++ b/zk-crates/zk-headstash/src/bin/create_test_circuit_data.rs @@ -0,0 +1,19 @@ +use std::path::Path; +use zk_headstash::deploy::suite::*; + +/// # create test circuits verifying keys & test data +/// - generates default testing circuits [VerifyingKey] and [ProvingKey] +/// used as a part of verifiable deployments of headstashes +/// ```sh +/// cargo run --bin create_test_circuit_data +/// ``` +fn main() -> Result<(), BoxError> { + eprintln!("🚀 Starting test circuit key generation...\n"); + let suite = HeadstashSuite::new(); + // Generate test circuit keys for all example circuits + suite.gen_test_circuit_keys(Path::new("./data/test_keys"))?; + eprintln!("\n🎉 All circuit keys generated successfully!"); + eprintln!("📂 Main circuit keys: ./data/keys/"); + eprintln!("📂 Test circuit keys: ./data/test_keys/"); + Ok(()) +} diff --git a/zk-crates/zk-headstash/src/bin/gen_headstash_keys.rs b/zk-crates/zk-headstash/src/bin/gen_headstash_keys.rs new file mode 100644 index 0000000..5671521 --- /dev/null +++ b/zk-crates/zk-headstash/src/bin/gen_headstash_keys.rs @@ -0,0 +1,12 @@ +use zk_headstash::deploy::suite::*; + +/// # create headstash circuit keys +/// - generates default Headstash [VerifyingKey] and [ProvingKey] +/// ```sh +/// # run with parallelization: RAYON_NUM_THREADS=4 cargo run -p zk-headstash --bin gen_headstash_keys --features multicore. +/// cargo run -- --bin gen_headtash_keys0 +/// ``` +fn main() -> Result<(), BoxError> { + HeadstashSuite::new().gen_headstash_circuit()?; + Ok(()) +} diff --git a/zk-crates/zk-headstash/src/bin/gen_headstash_notes.rs b/zk-crates/zk-headstash/src/bin/gen_headstash_notes.rs new file mode 100644 index 0000000..fb97e24 --- /dev/null +++ b/zk-crates/zk-headstash/src/bin/gen_headstash_notes.rs @@ -0,0 +1,14 @@ +use zk_headstash::deploy::suite::*; + +/// ## `create_headstash_notes` +/// **Sinsemilla HashDomain** generates default note using poseidon hashing algo & Fixed-Denomination Notes +/// ``` +/// cargo run -- --bin gen_headstash_notes ./data/genesis_sinsemilla.json 0x0000000000000000000000000000000000000000 +/// ``` +fn main() -> Result<(), BoxError> { + HeadstashSuite::new().create_headstash_notes()?; + let output_path = std::path::Path::new("./data").join("merkle_output.json"); + let root_hex = HeadstashSuite::new().gen_headstash_tree(output_path)?; + println!("🌳 Merkle Root: {}", root_hex); + Ok(()) +} diff --git a/zk-crates/zk-headstash/src/bin/gen_randomness.rs b/zk-crates/zk-headstash/src/bin/gen_randomness.rs new file mode 100644 index 0000000..b30dd63 --- /dev/null +++ b/zk-crates/zk-headstash/src/bin/gen_randomness.rs @@ -0,0 +1,4 @@ +fn main() { + let data = headstash_randomness::ultra_secure_random(); + println!("Randomness: {:#?}", hex::encode(data)); +} diff --git a/zk-crates/zk-headstash/src/bin/pedersen.rs b/zk-crates/zk-headstash/src/bin/pedersen.rs new file mode 100644 index 0000000..4d38397 --- /dev/null +++ b/zk-crates/zk-headstash/src/bin/pedersen.rs @@ -0,0 +1,80 @@ +use ff::PrimeField; +use pasta_curves::arithmetic::CurveExt; +use pasta_curves::group::Curve; +use pasta_curves::pallas::{Point, Scalar}; +use pasta_curves::Fq; +use std::u64; + +fn string_to_fq(str_bytes: &str) -> Fq { + let mut secret_bytes = [0u8; 8]; + let bytes: &[u8] = str_bytes.as_bytes(); + secret_bytes[..bytes.len()].copy_from_slice(bytes); + Scalar::from(u64::from_le_bytes(secret_bytes)) +} + +fn create_p_and_q(p: &str, q: &str) -> Vec { + let mut concatenated = Vec::with_capacity(p.len() + q.len()); + concatenated.extend_from_slice(p.as_bytes()); + concatenated.extend_from_slice(q.as_bytes()); + concatenated +} +// +// In the Pedersen commitment we take two large prime numbers (p & q) to create generator value g which is of the order of q +// and a subgroup of Z_p*. Then `s` becomes a secret from 0 to Z_q, and we calculate: +// h = g^s (mod p) +// The sender now creates a commitment for a message (m) with a random number (r) +// c = g^m * h^r (mod p) +// sources: +// - +// - https://asecuritysite.com/encryption/ped?v1=10&v2=100 + +fn main() { + let secret1 = string_to_fq("secret"); + let secret2 = string_to_fq("garden"); + + // Get the default Pedersen generators (G for value, H for blinding) + let hasher = Point::hash_to_curve("headstash_blinding_generator"); + + let pq = create_p_and_q("trailed", "dissolving"); + let g = hasher(&pq); + let h = hasher(b"h"); + + // A random blinding factors (for hiding the value) + let r1 = Scalar::from_u128(678673809578324923489057u128); + let r2 = Scalar::from_u128(4364326278543786489786542564u128); + + // Compute the commitment: C = value * G + blinding * H + let commitment1 = (g * secret1 + &(h * r1)).to_affine(); + let commitment2 = (g * secret2 + &(h * r2)).to_affine(); + + println!("Secret value 1: {:?}", secret1); + println!("Secret value 2: {:?}", secret2); + println!("Blinding factor 1: {:?}", r1); + println!("Blinding factor 2: {:?}", r2); + println!("Commitment 1: {:?}", commitment1); + println!("Commitment 2: {:?}", commitment2); + + // check we can add both values (homomorphic-encryption) + let combined_commitment = commitment2 + commitment1; + + // add secrets together + let expected_value = &secret1 + &secret2; + let expected_blinding = &r1 + &r2; + let expected_commitment = g * expected_value + h * expected_blinding; + let expected_incorrect_commitment = g * expected_value + h * r1; + assert_ne!(combined_commitment, expected_incorrect_commitment); + let expected_incorrect_commitment = g * expected_value + h * (r1.square()); + assert_ne!(combined_commitment, expected_incorrect_commitment); + + println!("Combined commitment (C1 + C2): {:?}", combined_commitment); + println!("Expected value (v1 + v2): {:?}", expected_value); + println!("Expected blinding (r1 + r2): {:?}", expected_blinding); + + assert_eq!(combined_commitment, expected_commitment); + + // opening and verifying original commitments + let recomputed1 = g * secret1 + h * r1; + let recomputed2 = g * secret2 + h * r2; + assert_eq!(commitment1, recomputed1.into()); + assert_eq!(commitment2, recomputed2.into()); +} diff --git a/zk-crates/zk-headstash/src/bin/plume_demo.rs b/zk-crates/zk-headstash/src/bin/plume_demo.rs new file mode 100644 index 0000000..51d3708 --- /dev/null +++ b/zk-crates/zk-headstash/src/bin/plume_demo.rs @@ -0,0 +1,251 @@ +// //! The suite consists of two tests; one for each type of signature. One of them also do printings of the values, +// //! which can be useful to you when comparing different implementations. +// //! Their setup is shared, `mod helpers` contains barely not refactored code, which is still instrumental to the tests. + +// use helpers::{PlumeVersion, gen_test_scalar_sk}; +// use k256::FieldBytes; +// use k256::{NonZeroScalar, ProjectivePoint, elliptic_curve::sec1::ToEncodedPoint}; +// use plume_rustcrypto::{AffinePoint, PlumeSignature, PlumeSignatureV1Fields}; + +// use crate::helpers::test_blake_gen_signals; + +// const G: ProjectivePoint = ProjectivePoint::GENERATOR; +// const M_HEADSTASH: &str = "DE4BAA02C4855872BBA5464749157D06151ED215C6FD39A07454344DE8D9A2BF"; + +// // `test_gen_signals` provides fixed key nullifier, secret key, and the random value for testing +// // Normally a secure enclave would generate these values, and output to a wallet implementation +// // `gen_test_scalar_sk()` provides the signer's secret key. It is only accessed within the secure enclave. +// // The user's public key goes to the `pk` field as $g^sk$. + +// // Both tests finish with the signals verification, normally this would happen in ZK with only the nullifier public, which would have a zk verifier instead +// // The wallet should probably run this prior to snarkify-ing as a sanity check +// // `M` and nullifier should be public, so we can verify that they are correct + +// #[test] +// fn my_plume_v2_test() { +// let test_data = test_blake_gen_signals(M_HEADSTASH.as_bytes(), PlumeVersion::V2); +// assert!( +// PlumeSignature { +// message: M_HEADSTASH.as_bytes().into(), +// pk: (G * gen_test_scalar_sk()).into(), +// nullifier: test_data.1.into(), +// c: NonZeroScalar::from_repr(<[u8; 32] as Into>::into( +// *test_data.2.as_bytes() +// )) +// .unwrap(), +// s: NonZeroScalar::new(test_data.3).unwrap(), +// v1specific: None +// } +// .verify_blake() +// ); +// } + +// mod helpers { +// /* Feels like this one could/should be replaced with static/constant values. Preserved for historical reasons. +// For the same reasons calls for internal `fn` are commented and replaced by "one-liners" adapted from current implementation. */ +// use super::*; +// use hex_literal::hex; +// use k256::{ +// FieldBytes, Scalar, Secp256k1, +// elliptic_curve::{ +// PrimeField, +// hash2curve::{ExpandMsgXmd, GroupDigest}, +// }, +// sha2::{Digest, Sha256, digest::Output}, +// }; + +// use blake3::Hash; +// #[derive(Debug)] +// pub enum PlumeVersion { +// V1, +// V2, +// } + +// // Generates a deterministic secret key for deterministic testing. Should be replaced by random oracle in production deployments. +// pub fn gen_test_scalar_sk() -> Scalar { +// Scalar::from_repr( +// hex!("cf9fcc0acf2a93917e16e63a9aa28c272b68be6fd8731057c3f1a3c00ef8aae7").into(), +// ) +// .unwrap() +// } + +// // Generates a deterministic r for deterministic testing. Should be replaced by random oracle in production deployments. +// fn gen_test_scalar_r() -> Scalar { +// Scalar::from_repr( +// hex!("5b5a890438716d9778d07d54b8529a60a82a046ee7ed316db180788c36726740").into(), +// ) +// .unwrap() +// } + +// // Calls the hash to curve function for secp256k1, and returns the result as a ProjectivePoint +// pub fn hash_to_secp(s: &[u8]) -> ProjectivePoint { +// let pt: ProjectivePoint = Secp256k1::hash_from_bytes::>( +// &[s], +// //b"CURVE_XMD:SHA-256_SSWU_RO_" +// &[plume_rustcrypto::DST], +// ) +// .unwrap(); +// pt +// } + +// // Modified blake_hash_to_secp function using BLAKE3, returns the result as a ProjectivePoint +// pub fn blake_hash_to_secp(s: &[u8]) -> ProjectivePoint { +// let pt: ProjectivePoint = +// Secp256k1::hash_from_bytes::(&[s], &[DST_BLAKE3]).unwrap(); +// pt +// } + +// use k256::ProjectivePoint; +// use plume_rustcrypto::blake3xmd::{Blake3Xmd, DST_BLAKE3}; +// // These generate test signals as if it were passed from a secure enclave to wallet. Note that leaking these signals would leak pk, but not sk. +// // Outputs these 6 signals, in this order +// // g^sk (private) +// // hash[m, pk]^sk public nullifier +// // c = hash2(g, pk, hash[m, pk], hash[m, pk]^sk, gr, hash[m, pk]^r) (public or private) +// // r + sk * c (public or private) +// // g^r (private, optional) +// // hash[m, pk]^r (private, optional) +// pub fn test_blake_gen_signals( +// m: &[u8], +// version: PlumeVersion, +// ) -> ( +// ProjectivePoint, +// ProjectivePoint, +// Hash, +// Scalar, +// Option, +// Option, +// ) { +// // The base point or generator of the curve. +// let g = ProjectivePoint::GENERATOR; + +// // The signer's secret key. It is only accessed within the secure enclave. +// let sk = gen_test_scalar_sk(); + +// // A random value r. It is only accessed within the secure enclave. +// let r = gen_test_scalar_r(); + +// // The user's public key: g^sk. +// let pk = &g * &sk; + +// // The generator exponentiated by r: g^r. +// let g_r = &g * &r; + +// // hash[m, pk] +// let hash_m_pk = +// // zk_nullifier::hash_to_curve(m, &pk) +// Secp256k1::hash_from_bytes::( +// &[[ +// m, +// // &encode_pt(pk) +// &pk.to_encoded_point(true).to_bytes().to_vec() +// ].concat().as_slice()], +// //b"CURVE_XMD:BLAKE-3_SSWU_RO_", +// &[DST_BLAKE3], +// ) +// .unwrap(); + +// println!( +// "h.x: {:?}", +// hex::encode(hash_m_pk.to_affine().to_encoded_point(false).x().unwrap()) +// ); +// println!( +// "h.y: {:?}", +// hex::encode(hash_m_pk.to_affine().to_encoded_point(false).y().unwrap()) +// ); + +// // hash[m, pk]^r +// let hash_m_pk_pow_r = &hash_m_pk * &r; +// println!( +// "hash_m_pk_pow_r.x: {:?}", +// hex::encode( +// hash_m_pk_pow_r +// .to_affine() +// .to_encoded_point(false) +// .x() +// .unwrap() +// ) +// ); +// println!( +// "hash_m_pk_pow_r.y: {:?}", +// hex::encode( +// hash_m_pk_pow_r +// .to_affine() +// .to_encoded_point(false) +// .y() +// .unwrap() +// ) +// ); + +// // The public nullifier: hash[m, pk]^sk. +// let nullifier = &hash_m_pk * &sk; + +// // The Fiat-Shamir type step. +// let c = match version { +// PlumeVersion::V1 => blake3::hash( +// vec![&g, &pk, &hash_m_pk, &nullifier, &g_r, &hash_m_pk_pow_r] +// .into_iter() +// .map(|x| x.to_encoded_point(true).to_bytes().to_vec()) +// .collect::>() +// .concat() +// .as_slice(), +// ), +// PlumeVersion::V2 => { +// dbg!("entering `blake3::hash` for `V2`"); +// let result = blake3::hash( +// vec![&nullifier, &g_r, &hash_m_pk_pow_r] +// .into_iter() +// .map(|x| x.to_encoded_point(true).to_bytes().to_vec()) +// .collect::>() +// .concat() +// .as_slice(), +// ); +// dbg!("finished `blake3::hash` for `V2`"); +// result +// } +// }; +// dbg!(&c, version); + +// let c_scalar = +// Scalar::from_repr(<[u8; 32] as Into>::into(*c.as_bytes())).unwrap(); +// // This value is part of the discrete log equivalence (DLEQ) proof. +// let r_sk_c = r + sk * c_scalar; + +// // Return the signature. +// (pk, nullifier, c, r_sk_c, Some(g_r), Some(hash_m_pk_pow_r)) +// } +// /* Yes, testing the tests isn't a conventional things. +// This should be straightened if `helpers` will be refactored. */ +// #[cfg(test)] +// mod tests { +// use super::*; +// use k256::elliptic_curve::sec1::ToEncodedPoint; +// // Test the hash-to-curve algorithm +// #[test] +// fn test_hash_to_curve_sha256() { +// let h = hash_to_secp(b"abc"); +// assert_eq!( +// hex::encode(h.to_affine().to_encoded_point(false).x().unwrap()), +// "3377e01eab42db296b512293120c6cee72b6ecf9f9205760bd9ff11fb3cb2c4b" +// ); +// assert_eq!( +// hex::encode(h.to_affine().to_encoded_point(false).y().unwrap()), +// "7f95890f33efebd1044d382a01b1bee0900fb6116f94688d487c6c7b9c8371f6" +// ); +// } +// #[test] +// fn test_hash_to_curve_blake3() { +// let h = blake_hash_to_secp(b"abc"); +// assert_eq!( +// hex::encode(h.to_affine().to_encoded_point(false).x().unwrap()), +// "345571ae56fcc327b5a2e38a3581c6f34f1019843a53039ddaafbc21327044ce" +// ); +// assert_eq!( +// hex::encode(h.to_affine().to_encoded_point(false).y().unwrap()), +// "9d82e199ff56011f881aa8573eda5cc6745c70a1825a6f5e799dd40af6c82e67" +// ); +// } +// } +// } + +fn main() {} diff --git a/zk-crates/zk-headstash/src/builder.rs b/zk-crates/zk-headstash/src/builder.rs new file mode 100644 index 0000000..23e3bc3 --- /dev/null +++ b/zk-crates/zk-headstash/src/builder.rs @@ -0,0 +1,1345 @@ +//! Logic for building Orchard components of transactions. + +use alloc::collections::BTreeMap; +use alloc::vec::Vec; +use core::fmt; +use core::iter; + +use ff::Field; +use pasta_curves::pallas; +use rand::{prelude::SliceRandom, CryptoRng, RngCore}; + +use crate::address::RecpAddr; +use crate::keys::EligibleSk; +use crate::value::NoteDenom; +use crate::{ + address::Address, + // bundle::{Authorization, Authorized, Bundle, Flags}, + keys::{ + FullViewingKey, OutgoingViewingKey, Scope, SpendAuthorizingKey, SpendValidatingKey, + SpendingKey, + }, + note::{ExtractedNoteCommitment, Note, Nullifier, Rho, TransmittedNoteCiphertext}, + // note_encryption::OrchardNoteEncryption, + primitives::redpallas::{self, Binding, SpendAuth}, + tree::{Anchor, MerklePath}, + value::{self, NoteValue, OverflowError, ValueCommitTrapdoor, ValueCommitment, ValueSum}, + Proof, +}; + +// #[cfg(feature = "circuit")] +use { + crate::{ + action::Action, + circuit::{Circuit, Instance, ProvingKey}, + }, + nonempty::NonEmpty, +}; + +const MIN_ACTIONS: usize = 2; + +// /// An enumeration of rules for Orchard bundle construction. +// #[derive(Clone, Copy, Debug, PartialEq, Eq)] +// pub enum BundleType { +// /// A transactional bundle will be padded if necessary to contain at least 2 actions, +// /// irrespective of whether any genuine actions are required. +// Transactional { +// /// The flags that control whether spends and/or outputs are enabled for the bundle. +// flags: Flags, +// /// A flag that, when set to `true`, indicates that a bundle should be produced even if no +// /// spends or outputs have been added to the bundle; in such a circumstance, all of the +// /// actions in the resulting bundle will be dummies. +// bundle_required: bool, +// }, +// /// A coinbase bundle is required to have no non-dummy spends. No padding is performed. +// Coinbase, +// } + +// impl BundleType { +// /// The default bundle type has all flags enabled, and does not require a bundle to be produced +// /// if no spends or outputs have been added to the bundle. +// pub const DEFAULT: BundleType = BundleType::Transactional { +// flags: Flags::ENABLED, +// bundle_required: false, +// }; + +// /// The DISABLED bundle type does not permit any bundle to be produced, and when used in the +// /// builder will prevent any spends or outputs from being added. +// pub const DISABLED: BundleType = BundleType::Transactional { +// flags: Flags::from_parts(false, false), +// bundle_required: false, +// }; + +// /// Returns the number of logical actions that builder will produce in constructing a bundle +// /// of this type, given the specified numbers of spends and outputs. +// /// +// /// Returns an error if the specified number of spends and outputs is incompatible with +// /// this bundle type. +// pub fn num_actions( +// &self, +// num_spends: usize, +// num_outputs: usize, +// ) -> Result { +// let num_requested_actions = core::cmp::max(num_spends, num_outputs); + +// match self { +// BundleType::Transactional { +// flags, +// bundle_required, +// } => { +// if !flags.spends_enabled() && num_spends > 0 { +// Err("Spends are disabled, so num_spends must be zero") +// } else if !flags.outputs_enabled() && num_outputs > 0 { +// Err("Outputs are disabled, so num_outputs must be zero") +// } else { +// Ok(if *bundle_required || num_requested_actions > 0 { +// core::cmp::max(num_requested_actions, MIN_ACTIONS) +// } else { +// 0 +// }) +// } +// } +// BundleType::Coinbase => { +// if num_spends > 0 { +// Err("Coinbase bundles have spends disabled, so num_spends must be zero") +// } else { +// Ok(num_outputs) +// } +// } +// } +// } + +// /// Returns the set of flags and the anchor that will be used for bundle construction. +// pub fn flags(&self) -> Flags { +// match self { +// BundleType::Transactional { flags, .. } => *flags, +// BundleType::Coinbase => Flags::SPENDS_DISABLED, +// } +// } +// } + +/// An error type for the kinds of errors that can occur during bundle construction. +#[derive(Debug)] +pub enum BuildError { + /// Spends are disabled for the provided bundle type. + SpendsDisabled, + /// Spends are disabled for the provided bundle type. + OutputsDisabled, + /// The anchor provided to this builder doesn't match the Merkle path used to add a spend. + AnchorMismatch, + /// A bundle could not be built because required signatures were missing. + MissingSignatures, + /// An error occurred in the process of producing a proof for a bundle. + // #[cfg(feature = "circuit")] + Proof(halo2_proofs::plonk::Error), + /// An overflow error occurred while attempting to construct the value + /// for a bundle. + ValueSum(value::OverflowError), + /// External signature is not valid. + InvalidExternalSignature, + /// A signature is valid for more than one input. This should never happen if `alpha` + /// is sampled correctly, and indicates a critical failure in randomness generation. + DuplicateSignature, + /// The bundle being constructed violated the construction rules for the requested bundle type. + BundleTypeNotSatisfiable, +} + +impl fmt::Display for BuildError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + use BuildError::*; + match self { + MissingSignatures => f.write_str("Required signatures were missing during build"), + // #[cfg(feature = "circuit")] + Proof(e) => f.write_str(&format!("Could not create proof: {}", e)), + ValueSum(_) => f.write_str("Overflow occurred during value construction"), + InvalidExternalSignature => f.write_str("External signature was invalid"), + DuplicateSignature => f.write_str("Signature valid for more than one input"), + BundleTypeNotSatisfiable => { + f.write_str("Bundle structure did not conform to requested bundle type.") + } + SpendsDisabled => f.write_str("Spends are not enabled for the requested bundle type."), + OutputsDisabled => f.write_str("Spends are not enabled for the requested bundle type."), + AnchorMismatch => { + f.write_str("All spends must share the anchor requested for the transaction.") + } + } + } +} + +#[cfg(feature = "std")] +impl std::error::Error for BuildError {} + +// #[cfg(feature = "circuit")] +impl From for BuildError { + fn from(e: halo2_proofs::plonk::Error) -> Self { + BuildError::Proof(e) + } +} + +impl From for BuildError { + fn from(e: value::OverflowError) -> Self { + BuildError::ValueSum(e) + } +} + +/// An error type for adding a spend to the builder. +#[derive(Debug, PartialEq, Eq)] +pub enum SpendError { + /// Spends aren't enabled for this builder. + SpendsDisabled, + /// The anchor provided to this builder doesn't match the merkle path used to add a spend. + AnchorMismatch, + /// The full viewing key provided didn't match the note provided + FvkMismatch, +} + +impl fmt::Display for SpendError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + use SpendError::*; + f.write_str(match self { + SpendsDisabled => "Spends are not enabled for this builder", + AnchorMismatch => "All anchors must be equal.", + FvkMismatch => "FullViewingKey does not correspond to the given note", + }) + } +} + +#[cfg(feature = "std")] +impl std::error::Error for SpendError {} + +/// The only error that can occur here is if outputs are disabled for this builder. +#[derive(Debug, PartialEq, Eq)] +pub struct OutputError; + +impl fmt::Display for OutputError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.write_str("Outputs are not enabled for this builder") + } +} + +#[cfg(feature = "std")] +impl std::error::Error for OutputError {} + +/// Information about a specific note to be spent in an [`Action`]. +#[derive(Debug)] +pub struct SpendInfo { + pub(crate) dummy_sk: Option, + pub(crate) fvk: FullViewingKey, + // pub(crate) scope: Scope, + pub(crate) note: Note, + pub(crate) merkle_path: MerklePath, +} + +impl SpendInfo { + /// This constructor is public to enable creation of custom builders. + /// If you are not creating a custom builder, use [`Builder::add_spend`] instead. + /// + /// Creates a `SpendInfo` from note, full viewing key owning the note, + /// and merkle path witness of the note. + /// + /// Returns `None` if the `fvk` does not own the `note`. + /// + /// [`Builder::add_spend`]: Builder::add_spend + pub fn new(fvk: FullViewingKey, note: Note, merkle_path: MerklePath) -> Option { + // let scope = fvk.scope_for_address(¬e.recipient())?; + Some(SpendInfo { + dummy_sk: None, + fvk, + // scope, + note, + merkle_path, + }) + } + + /// Defined in [Zcash Protocol Spec § 4.8.3: Dummy Notes (Orchard)][orcharddummynotes]. + /// + /// [orcharddummynotes]: https://zips.z.cash/protocol/nu5.pdf#orcharddummynotes + fn dummy(rng: &mut impl RngCore) -> Self { + let (sk, fvk, esk, note) = Note::dummy(rng, None); + let merkle_path = MerklePath::dummy(rng); + + SpendInfo { + dummy_sk: Some(sk), + fvk, + // We use external scope to avoid unnecessary derivations, because the dummy + // note's spending key is random and thus scoping is irrelevant. + // scope: Scope::External, + note, + merkle_path, + } + } + + fn has_matching_anchor(&self, anchor: &Anchor) -> bool { + if self.note.value() == NoteValue::zero() { + true + } else { + let cm = self.note.commitment(); + let path_root = self.merkle_path.root(cm.into()); + &path_root == anchor + } + } + + /// Builds the spend half of an action. + /// + /// The returned values are chosen as in [Zcash Protocol Spec § 4.7.3: Sending Notes (Orchard)][orchardsend]. + /// + /// [orchardsend]: https://zips.z.cash/protocol/nu5.pdf#orchardsend + fn build( + &self, + mut rng: impl RngCore, + ) -> ( + Nullifier, + // SpendValidatingKey, + pallas::Scalar, + // redpallas::VerificationKey, + ) { + let nf_old = self.note.nullifier(); + // let ak: SpendValidatingKey = self.fvk.clone().into(); + let alpha = pallas::Scalar::random(&mut rng); + // let rk = ak.randomize(&alpha); + + (nf_old, alpha) + } + + // fn into_pczt(self, rng: impl RngCore) -> crate::pczt::Spend { + // let (nf_old, _, alpha, rk) = self.build(rng); + + // crate::pczt::Spend { + // nullifier: nf_old, + // rk, + // spend_auth_sig: None, + // recipient: Some(self.note.recipient()), + // value: Some(self.note.value()), + // rho: Some(self.note.rho()), + // rseed: Some(*self.note.rseed()), + // fvk: Some(self.fvk), + // witness: Some(self.merkle_path), + // alpha: Some(alpha), + // zip32_derivation: None, + // dummy_sk: self.dummy_sk, + // proprietary: BTreeMap::new(), + // } + // } +} + +/// Information about a specific output to receive funds in an [`Action`]. +#[derive(Debug)] +pub struct OutputInfo { + ovk: Option, + nd: NoteDenom, + value: NoteValue, + recipient: RecpAddr, + memo: [u8; 512], +} + +impl OutputInfo { + /// Constructs a new OutputInfo from its constituent parts. + pub fn new( + ovk: Option, + nd: NoteDenom, + value: NoteValue, + recipient: RecpAddr, + memo: [u8; 512], + ) -> Self { + Self { + ovk, + nd, + value, + recipient, + memo, + } + } + + /// Defined in [Zcash Protocol Spec § 4.8.3: Dummy Notes (Orchard)][orcharddummynotes]. + /// + /// [orcharddummynotes]: https://zips.z.cash/protocol/nu5.pdf#orcharddummynotes + pub fn dummy(rng: &mut impl RngCore) -> Self { + let fvk: FullViewingKey = (&SpendingKey::random(rng)).into(); + // let recipient = fvk.address_at(0u32, Scope::External); + let recipient = RecpAddr::new([0; 32]); + let nd = NoteDenom::new_for_proof("denom"); + + Self::new(None, nd, NoteValue::zero(), recipient, [0u8; 512]) + } + + /// Builds the output half of an action. + /// + /// Defined in [Zcash Protocol Spec § 4.7.3: Sending Notes (Orchard)][orchardsend]. + /// + /// [orchardsend]: https://zips.z.cash/protocol/nu5.pdf#orchardsend + fn build( + &self, + // cv_net: &ValueCommitment, + nf_old: Nullifier, + v: NoteValue, + nd: NoteDenom, + mut rng: impl RngCore, + ) -> (Note, ExtractedNoteCommitment) { + // TransmittedNoteCiphertext + let rho = Rho::from_nf_old(nf_old); + let note = Note::new( + self.nd, + self.value, + u64::default(), + self.recipient, + EligibleSk::from_bytes([0; 32]), + rho, + &mut rng, + ); + let cm_new = note.commitment(); + let cmx = cm_new.into(); + + // let encryptor = OrchardNoteEncryption::new(self.ovk.clone(), note, self.memo); + + // let encrypted_note = TransmittedNoteCiphertext { + // epk_bytes: encryptor.epk().to_bytes().0, + // enc_ciphertext: encryptor.encrypt_note_plaintext(), + // out_ciphertext: encryptor.encrypt_outgoing_plaintext(v, &cmx, &mut rng), + // }; + + (note, cmx) // encrypted_note + } + + // fn into_pczt( + // self, + // cv_net: &ValueCommitment, + // nf_old: Nullifier, + // rng: impl RngCore, + // ) -> crate::pczt::Output { + // let (note, cmx, encrypted_note) = self.build(cv_net, nf_old, rng); + + // crate::pczt::Output { + // cmx, + // encrypted_note, + // recipient: Some(self.recipient), + // value: Some(self.value), + // rseed: Some(*note.rseed()), + // // TODO: Extract ock from the encryptor and save it so + // // Signers can check `out_ciphertext`. + // ock: None, + // zip32_derivation: None, + // user_address: None, + // proprietary: BTreeMap::new(), + // } + // } +} + +/// Information about a specific [`Action`] we plan to build. +#[derive(Debug)] +struct ActionInfo { + spend: SpendInfo, + output: OutputInfo, + rcv: ValueCommitTrapdoor, +} + +impl ActionInfo { + fn new(spend: SpendInfo, output: OutputInfo, rng: impl RngCore) -> Self { + ActionInfo { + spend, + output, + rcv: ValueCommitTrapdoor::random(rng), + } + } + + /// Returns the value sum for this action. + fn value_sum(&self) -> ValueSum { + self.spend.note.value() - self.output.value + } + /// Returns the value sum for this action. + fn note_value(&self) -> NoteValue { + self.spend.note.value() + } + + /// Builds the action. + /// + /// Defined in [Zcash Protocol Spec § 4.7.3: Sending Notes (Orchard)][orchardsend]. + /// + /// [orchardsend]: https://zips.z.cash/protocol/nu5.pdf#orchardsend + // #[cfg(feature = "circuit")] + fn build(self, mut rng: impl RngCore) -> (Action, Circuit) { + // let v_net = self.value_sum(); + let v = self.note_value(); + // let cv_net = ValueCommitment::derive(self.value_sum(), self.rcv.clone()); + + let (nf_old, alpha) = self.spend.build(&mut rng); + let (note, cmx) = self.output.build(nf_old, v, self.spend.note.nd(), &mut rng); + + ( + Action::from_parts( + nf_old, + // rk, + cmx, + // encrypted_note, + v, + SigningMetadata { + dummy_ask: self.spend.dummy_sk.as_ref().map(SpendAuthorizingKey::from), + parts: SigningParts { alpha }, + }, + ), + Circuit::from_action_context_unchecked(self.spend, note), + ) + } + + // fn build_for_pczt(self, mut rng: impl RngCore) -> crate::pczt::Action { + // let v_net = self.value_sum(); + // let cv_net = ValueCommitment::derive(v_net, self.rcv.clone()); + + // let spend = self.spend.into_pczt(&mut rng); + // let output = self.output.into_pczt(&cv_net, spend.nullifier, &mut rng); + + // crate::pczt::Action { + // cv_net, + // spend, + // output, + // rcv: Some(self.rcv), + // } + // } +} + +// /// Type alias for an in-progress bundle that has no proofs or signatures. +// /// +// /// This is returned by [`Builder::build`]. +// // // #[cfg(feature = "circuit")] +// pub type UnauthorizedBundle = Bundle, V>; + +// /// Metadata about a bundle created by [`bundle`] or [`Builder::build`] that is not +// /// necessarily recoverable from the bundle itself. +// /// +// /// This includes information about how [`Action`]s within the bundle are ordered (after +// /// padding and randomization) relative to the order in which spends and outputs were +// /// provided (to [`bundle`]), or the order in which [`Builder`] mutations were performed. +// #[derive(Debug, Clone, PartialEq, Eq)] +// pub struct BundleMetadata { +// spend_indices: Vec, +// output_indices: Vec, +// } + +// impl BundleMetadata { +// fn new(num_requested_spends: usize, num_requested_outputs: usize) -> Self { +// BundleMetadata { +// spend_indices: vec![0; num_requested_spends], +// output_indices: vec![0; num_requested_outputs], +// } +// } + +// /// Returns the metadata for a [`Bundle`] that contains only dummy actions, if any. +// pub fn empty() -> Self { +// Self::new(0, 0) +// } + +// /// Returns the index within the bundle of the [`Action`] corresponding to the `n`-th +// /// spend specified in bundle construction. If a [`Builder`] was used, this refers to +// /// the spend added by the `n`-th call to [`Builder::add_spend`]. +// /// +// /// For the purpose of improving indistinguishability, actions are padded and note +// /// positions are randomized when building bundles. This means that the bundle +// /// consumer cannot assume that e.g. the first spend they added corresponds to the +// /// first action in the bundle. +// pub fn spend_action_index(&self, n: usize) -> Option { +// self.spend_indices.get(n).copied() +// } + +// /// Returns the index within the bundle of the [`Action`] corresponding to the `n`-th +// /// output specified in bundle construction. If a [`Builder`] was used, this refers to +// /// the output added by the `n`-th call to [`Builder::add_output`]. +// /// +// /// For the purpose of improving indistinguishability, actions are padded and note +// /// positions are randomized when building bundles. This means that the bundle +// /// consumer cannot assume that e.g. the first output they added corresponds to the +// /// first action in the bundle. +// pub fn output_action_index(&self, n: usize) -> Option { +// self.output_indices.get(n).copied() +// } +// } + +// /// A builder that constructs a [`Bundle`] from a set of notes to be spent, and outputs +// /// to receive funds. +// #[derive(Debug)] +// pub struct Builder { +// spends: Vec, +// outputs: Vec, +// bundle_type: BundleType, +// anchor: Anchor, +// } + +// impl Builder { +// /// Constructs a new empty builder for an Orchard bundle. +// pub fn new(bundle_type: BundleType, anchor: Anchor) -> Self { +// Builder { +// spends: vec![], +// outputs: vec![], +// bundle_type, +// anchor, +// } +// } + +// /// Adds a note to be spent in this transaction. +// /// +// /// - `note` is a spendable note, obtained by trial-decrypting an [`Action`] using the +// /// [`zcash_note_encryption`] crate instantiated with [`OrchardDomain`]. +// /// - `merkle_path` can be obtained using the [`incrementalmerkletree`] crate +// /// instantiated with [`MerkleHashOrchard`]. +// /// +// /// Returns an error if the given Merkle path does not have the required anchor for +// /// the given note. +// /// +// /// [`OrchardDomain`]: crate::note_encryption::OrchardDomain +// /// [`MerkleHashOrchard`]: crate::tree::MerkleHashOrchard +// pub fn add_spend( +// &mut self, +// fvk: FullViewingKey, +// note: Note, +// merkle_path: MerklePath, +// ) -> Result<(), SpendError> { +// let flags = self.bundle_type.flags(); +// if !flags.spends_enabled() { +// return Err(SpendError::SpendsDisabled); +// } + +// let spend = SpendInfo::new(fvk, note, merkle_path).ok_or(SpendError::FvkMismatch)?; + +// // Consistency check: all anchors must be equal. +// if !spend.has_matching_anchor(&self.anchor) { +// return Err(SpendError::AnchorMismatch); +// } + +// self.spends.push(spend); + +// Ok(()) +// } + +// /// Adds an address which will receive funds in this transaction. +// pub fn add_output( +// &mut self, +// ovk: Option, +// recipient: Address, +// value: NoteValue, +// memo: [u8; 512], +// ) -> Result<(), OutputError> { +// let flags = self.bundle_type.flags(); +// if !flags.outputs_enabled() { +// return Err(OutputError); +// } + +// self.outputs +// .push(OutputInfo::new(ovk, recipient, value, memo)); + +// Ok(()) +// } + +// /// Returns the action spend components that will be produced by the +// /// transaction being constructed +// pub fn spends(&self) -> &Vec> { +// &self.spends +// } + +// /// Returns the action output components that will be produced by the +// /// transaction being constructed +// pub fn outputs(&self) -> &Vec { +// &self.outputs +// } + +// /// The net value of the bundle to be built. The value of all spends, +// /// minus the value of all outputs. +// /// +// /// Useful for balancing a transaction, as the value balance of an individual bundle +// /// can be non-zero. Each bundle's value balance is [added] to the transparent +// /// transaction value pool, which [must not have a negative value]. (If it were +// /// negative, the transaction would output more value than it receives in inputs.) +// /// +// /// [added]: https://zips.z.cash/protocol/protocol.pdf#orchardbalance +// /// [must not have a negative value]: https://zips.z.cash/protocol/protocol.pdf#transactions +// pub fn value_balance>(&self) -> Result { +// let value_balance = self +// .spends +// .iter() +// .map(|spend| spend.note.value() - NoteValue::zero()) +// .chain( +// self.outputs +// .iter() +// .map(|output| NoteValue::zero() - output.value), +// ) +// .try_fold(ValueSum::zero(), |acc, note_value| acc + note_value) +// .ok_or(OverflowError)?; +// i64::try_from(value_balance).and_then(|i| V::try_from(i).map_err(|_| value::OverflowError)) +// } + +// /// Builds a bundle containing the given spent notes and outputs. +// /// +// /// The returned bundle will have no proof or signatures; these can be applied with +// /// [`Bundle::create_proof`] and [`Bundle::apply_signatures`] respectively. +// // #[cfg(feature = "circuit")] +// pub fn build>( +// self, +// rng: impl RngCore, +// ) -> Result, BundleMetadata)>, BuildError> { +// bundle( +// rng, +// self.anchor, +// self.bundle_type, +// self.spends, +// self.outputs, +// ) +// } + +// /// Builds a bundle containing the given spent notes and outputs along with their +// /// metadata, for inclusion in a PCZT. +// pub fn build_for_pczt( +// self, +// rng: impl RngCore, +// ) -> Result<(crate::pczt::Bundle, BundleMetadata), BuildError> { +// build_bundle( +// rng, +// self.anchor, +// self.bundle_type, +// self.spends, +// self.outputs, +// |pre_actions, flags, value_sum, bundle_meta, mut rng| { +// // Create the actions. +// let actions = pre_actions +// .into_iter() +// .map(|a| a.build_for_pczt(&mut rng)) +// .collect::>(); + +// Ok(( +// crate::pczt::Bundle { +// actions, +// flags, +// value_sum, +// anchor: self.anchor, +// zkproof: None, +// bsk: None, +// }, +// bundle_meta, +// )) +// }, +// ) +// } +// } + +// /// Builds a bundle containing the given spent notes and outputs. +// /// +// /// The returned bundle will have no proof or signatures; these can be applied with +// /// [`Bundle::create_proof`] and [`Bundle::apply_signatures`] respectively. +// // #[cfg(feature = "circuit")] +// pub fn bundle>( +// rng: impl RngCore, +// anchor: Anchor, +// bundle_type: BundleType, +// spends: Vec, +// outputs: Vec, +// ) -> Result, BundleMetadata)>, BuildError> { +// build_bundle( +// rng, +// anchor, +// bundle_type, +// spends, +// outputs, +// |pre_actions, flags, value_balance, bundle_meta, mut rng| { +// let result_value_balance: V = i64::try_from(value_balance) +// .map_err(BuildError::ValueSum) +// .and_then(|i| { +// V::try_from(i).map_err(|_| BuildError::ValueSum(value::OverflowError)) +// })?; + +// // Compute the transaction binding signing key. +// let bsk = pre_actions +// .iter() +// .map(|a| &a.rcv) +// .sum::() +// .into_bsk(); + +// // Create the actions. +// let (actions, circuits): (Vec<_>, Vec<_>) = +// pre_actions.into_iter().map(|a| a.build(&mut rng)).unzip(); + +// // Verify that bsk and bvk are consistent. +// let bvk = (actions.iter().map(|a| a.cv_net()).sum::() +// - ValueCommitment::derive(value_balance, ValueCommitTrapdoor::zero())) +// .into_bvk(); +// assert_eq!(redpallas::VerificationKey::from(&bsk), bvk); + +// Ok(NonEmpty::from_vec(actions).map(|actions| { +// ( +// Bundle::from_parts( +// actions, +// flags, +// result_value_balance, +// anchor, +// InProgress { +// proof: Unproven { circuits }, +// sigs: Unauthorized { bsk }, +// }, +// ), +// bundle_meta, +// ) +// })) +// }, +// ) +// } + +// fn build_bundle( +// mut rng: R, +// anchor: Anchor, +// bundle_type: BundleType, +// spends: Vec, +// outputs: Vec, +// finisher: impl FnOnce(Vec, Flags, ValueSum, BundleMetadata, R) -> Result, +// ) -> Result { +// let flags = bundle_type.flags(); + +// let num_requested_spends = spends.len(); +// if !flags.spends_enabled() && num_requested_spends > 0 { +// return Err(BuildError::SpendsDisabled); +// } + +// for spend in &spends { +// if !spend.has_matching_anchor(&anchor) { +// return Err(BuildError::AnchorMismatch); +// } +// } + +// let num_requested_outputs = outputs.len(); +// if !flags.outputs_enabled() && num_requested_outputs > 0 { +// return Err(BuildError::OutputsDisabled); +// } + +// let num_actions = bundle_type +// .num_actions(num_requested_spends, num_requested_outputs) +// .map_err(|_| BuildError::BundleTypeNotSatisfiable)?; + +// // Pair up the spends and outputs, extending with dummy values as necessary. +// let (pre_actions, bundle_meta) = { +// let mut indexed_spends = spends +// .into_iter() +// .chain(iter::repeat_with(|| SpendInfo::dummy(&mut rng))) +// .enumerate() +// .take(num_actions) +// .collect::>(); + +// let mut indexed_outputs = outputs +// .into_iter() +// .chain(iter::repeat_with(|| OutputInfo::dummy(&mut rng))) +// .enumerate() +// .take(num_actions) +// .collect::>(); + +// // Shuffle the spends and outputs, so that learning the position of a +// // specific spent note or output note doesn't reveal anything on its own about +// // the meaning of that note in the transaction context. +// indexed_spends.shuffle(&mut rng); +// indexed_outputs.shuffle(&mut rng); + +// let mut bundle_meta = BundleMetadata::new(num_requested_spends, num_requested_outputs); +// let pre_actions = indexed_spends +// .into_iter() +// .zip(indexed_outputs) +// .enumerate() +// .map(|(action_idx, ((spend_idx, spend), (out_idx, output)))| { +// // Record the post-randomization spend location +// if spend_idx < num_requested_spends { +// bundle_meta.spend_indices[spend_idx] = action_idx; +// } + +// // Record the post-randomization output location +// if out_idx < num_requested_outputs { +// bundle_meta.output_indices[out_idx] = action_idx; +// } + +// ActionInfo::new(spend, output, &mut rng) +// }) +// .collect::>(); + +// (pre_actions, bundle_meta) +// }; + +// // Determine the value balance for this bundle, ensuring it is valid. +// let value_balance = pre_actions +// .iter() +// .try_fold(ValueSum::zero(), |acc, action| acc + action.value_sum()) +// .ok_or(OverflowError)?; + +// finisher(pre_actions, flags, value_balance, bundle_meta, rng) +// } + +// /// Marker trait representing bundle signatures in the process of being created. +// pub trait InProgressSignatures: fmt::Debug { +// /// The authorization type of an Orchard action in the process of being authorized. +// type SpendAuth: fmt::Debug; +// } + +// /// Marker for a bundle in the process of being built. +// #[derive(Clone, Debug)] +// pub struct InProgress { +// proof: P, +// sigs: S, +// } + +// impl Authorization for InProgress { +// type SpendAuth = S::SpendAuth; +// } + +// /// Marker for a bundle without a proof. +// /// +// /// This struct contains the private data needed to create a [`Proof`] for a [`Bundle`]. +// // #[cfg(feature = "circuit")] +// #[derive(Clone, Debug)] +// pub struct Unproven { +// circuits: Vec, +// } + +// // #[cfg(feature = "circuit")] +// impl InProgress { +// /// Creates the proof for this bundle. +// pub fn create_proof( +// &self, +// pk: &ProvingKey, +// instances: &[Instance], +// rng: impl RngCore, +// ) -> Result { +// Proof::create(pk, &self.proof.circuits, instances, rng) +// } +// } + +// // #[cfg(feature = "circuit")] +// impl Bundle, V> { +// /// Creates the proof for this bundle. +// pub fn create_proof( +// self, +// pk: &ProvingKey, +// mut rng: impl RngCore, +// ) -> Result, V>, BuildError> { +// let instances: Vec<_> = self +// .actions() +// .iter() +// .map(|a| a.to_instance(*self.flags(), *self.anchor())) +// .collect(); +// self.try_map_authorization( +// &mut (), +// |_, _, a| Ok(a), +// |_, auth| { +// let proof = auth.create_proof(pk, &instances, &mut rng)?; +// Ok(InProgress { +// proof, +// sigs: auth.sigs, +// }) +// }, +// ) +// } +// } + +/// The parts needed to sign an [`Action`]. +#[derive(Clone, Debug)] +pub struct SigningParts { + /// The spend validating key for this action. Used to match spend authorizing keys to + /// actions they can create signatures for. + // ak: SpendValidatingKey, + /// The randomization needed to derive the actual signing key for this note. + alpha: pallas::Scalar, +} + +// /// Marker for an unauthorized bundle with no signatures. +// #[derive(Clone, Debug)] +// pub struct Unauthorized { +// bsk: redpallas::SigningKey, +// } + +// impl InProgressSignatures for Unauthorized { +// type SpendAuth = SigningMetadata; +// } + +/// Container for metadata needed to sign an [`Action`]. +#[derive(Clone, Debug)] +pub struct SigningMetadata { + /// If this action is spending a dummy note, this field holds that note's spend + /// authorizing key. + /// + /// These keys are used automatically in [`Bundle::prepare`] or + /// [`Bundle::apply_signatures`] to sign dummy spends. + dummy_ask: Option, + parts: SigningParts, +} + +// /// Marker for a partially-authorized bundle, in the process of being signed. +// #[derive(Debug)] +// pub struct PartiallyAuthorized { +// binding_signature: redpallas::Signature, +// sighash: [u8; 32], +// } + +// impl InProgressSignatures for PartiallyAuthorized { +// type SpendAuth = MaybeSigned; +// } + +// /// A heisen[`Signature`] for a particular [`Action`]. +// /// +// /// [`Signature`]: redpallas::Signature +// #[derive(Debug)] +// pub enum MaybeSigned { +// /// The information needed to sign this [`Action`]. +// SigningMetadata(SigningParts), +// /// The signature for this [`Action`]. +// Signature(redpallas::Signature), +// } + +// impl MaybeSigned { +// fn finalize(self) -> Result, BuildError> { +// match self { +// Self::Signature(sig) => Ok(sig), +// _ => Err(BuildError::MissingSignatures), +// } +// } +// } + +// impl Bundle, V> { +// /// Loads the sighash into this bundle, preparing it for signing. +// /// +// /// This API ensures that all signatures are created over the same sighash. +// pub fn prepare( +// self, +// mut rng: R, +// sighash: [u8; 32], +// ) -> Bundle, V> { +// self.map_authorization( +// &mut rng, +// |rng, _, SigningMetadata { dummy_ask, parts }| { +// // We can create signatures for dummy spends immediately. +// dummy_ask +// .map(|ask| ask.randomize(&parts.alpha).sign(rng, &sighash)) +// .map(MaybeSigned::Signature) +// .unwrap_or(MaybeSigned::SigningMetadata(parts)) +// }, +// |rng, auth| InProgress { +// proof: auth.proof, +// sigs: PartiallyAuthorized { +// binding_signature: auth.sigs.bsk.sign(rng, &sighash), +// sighash, +// }, +// }, +// ) +// } +// } + +// impl Bundle, V> { +// /// Applies signatures to this bundle, in order to authorize it. +// /// +// /// This is a helper method that wraps [`Bundle::prepare`], [`Bundle::sign`], and +// /// [`Bundle::finalize`]. +// pub fn apply_signatures( +// self, +// mut rng: R, +// sighash: [u8; 32], +// signing_keys: &[SpendAuthorizingKey], +// ) -> Result, BuildError> { +// signing_keys +// .iter() +// .fold(self.prepare(&mut rng, sighash), |partial, ask| { +// partial.sign(&mut rng, ask) +// }) +// .finalize() +// } +// } + +// impl Bundle, V> { +// /// Signs this bundle with the given [`SpendAuthorizingKey`]. +// /// +// /// This will apply signatures for all notes controlled by this spending key. +// pub fn sign(self, mut rng: R, ask: &SpendAuthorizingKey) -> Self { +// let expected_ak = ask.into(); +// self.map_authorization( +// &mut rng, +// |rng, partial, maybe| match maybe { +// MaybeSigned::SigningMetadata(parts) if parts.ak == expected_ak => { +// MaybeSigned::Signature( +// ask.randomize(&parts.alpha).sign(rng, &partial.sigs.sighash), +// ) +// } +// s => s, +// }, +// |_, partial| partial, +// ) +// } +// /// Appends externally computed [`Signature`]s. +// /// +// /// Each signature will be applied to the one input for which it is valid. An error +// /// will be returned if the signature is not valid for any inputs, or if it is valid +// /// for more than one input. +// /// +// /// [`Signature`]: redpallas::Signature +// pub fn append_signatures( +// self, +// signatures: &[redpallas::Signature], +// ) -> Result { +// signatures.iter().try_fold(self, Self::append_signature) +// } + +// fn append_signature( +// self, +// signature: &redpallas::Signature, +// ) -> Result { +// let mut signature_valid_for = 0usize; +// let bundle = self.map_authorization( +// &mut signature_valid_for, +// |valid_for, partial, maybe| match maybe { +// MaybeSigned::SigningMetadata(parts) => { +// let rk = parts.ak.randomize(&parts.alpha); +// if rk.verify(&partial.sigs.sighash[..], signature).is_ok() { +// *valid_for += 1; +// MaybeSigned::Signature(signature.clone()) +// } else { +// // Signature isn't for this input. +// MaybeSigned::SigningMetadata(parts) +// } +// } +// s => s, +// }, +// |_, partial| partial, +// ); +// match signature_valid_for { +// 0 => Err(BuildError::InvalidExternalSignature), +// 1 => Ok(bundle), +// _ => Err(BuildError::DuplicateSignature), +// } +// } +// } + +// impl Bundle, V> { +// /// Finalizes this bundle, enabling it to be included in a transaction. +// /// +// /// Returns an error if any signatures are missing. +// pub fn finalize(self) -> Result, BuildError> { +// self.try_map_authorization( +// &mut (), +// |_, _, maybe| maybe.finalize(), +// |_, partial| { +// Ok(Authorized::from_parts( +// partial.proof, +// partial.sigs.binding_signature, +// )) +// }, +// ) +// } +// } + +// /// A trait that provides a minimized view of an Orchard input suitable for use in +// /// fee and change calculation. +// pub trait InputView { +// /// An identifier for the input being spent. +// fn note_id(&self) -> &NoteRef; +// /// The value of the input being spent. +// fn value>(&self) -> V; +// } + +// impl InputView<()> for SpendInfo { +// fn note_id(&self) -> &() { +// // The builder does not make use of note identifiers, so we can just return the unit value. +// &() +// } + +// fn value>(&self) -> V { +// V::from(self.note.value().inner()) +// } +// } + +// /// A trait that provides a minimized view of an Orchard output suitable for use in +// /// fee and change calculation. +// pub trait OutputView { +// /// The value of the output being produced. +// fn value>(&self) -> V; +// } + +// impl OutputView for OutputInfo { +// fn value>(&self) -> V { +// V::from(self.value.inner()) +// } +// } + +// /// Generators for property testing. +// #[cfg(all(feature = "circuit", any(test, feature = "test-dependencies")))] +// #[cfg_attr(docsrs, doc(cfg(feature = "test-dependencies")))] +// pub mod testing { +// use alloc::vec::Vec; +// use core::fmt::Debug; + +// use incrementalmerkletree::{frontier::Frontier, Hashable}; +// use rand::{rngs::StdRng, CryptoRng, SeedableRng}; + +// use proptest::collection::vec; +// use proptest::prelude::*; + +// use crate::{ +// address::testing::arb_address, +// bundle::{Authorized, Bundle}, +// circuit::ProvingKey, +// keys::{testing::arb_spending_key, FullViewingKey, SpendAuthorizingKey, SpendingKey}, +// note::testing::arb_note, +// tree::{Anchor, MerkleHashOrchard, MerklePath}, +// value::{testing::arb_positive_note_value, NoteValue, MAX_NOTE_VALUE}, +// Address, Note, +// }; + +// use super::{Builder, BundleType}; + +// /// An intermediate type used for construction of arbitrary +// /// bundle values. This type is required because of a limitation +// /// of the proptest prop_compose! macro which does not correctly +// /// handle polymorphic generator functions. Instead of generating +// /// a bundle directly, we generate the bundle inputs, and then +// /// are able to use the `build` function to construct the bundle +// /// from these inputs, but using a `ValueBalance` implementation that +// /// is defined by the end user. +// #[derive(Debug)] +// struct ArbitraryBundleInputs { +// rng: R, +// sk: SpendingKey, +// anchor: Anchor, +// notes: Vec<(Note, MerklePath)>, +// output_amounts: Vec<(Address, NoteValue)>, +// } + +// impl ArbitraryBundleInputs { +// /// Create a bundle from the set of arbitrary bundle inputs. +// fn into_bundle>(mut self) -> Bundle { +// let fvk = FullViewingKey::from(&self.sk); +// let mut builder = Builder::new(BundleType::DEFAULT, self.anchor); + +// for (note, path) in self.notes.into_iter() { +// builder.add_spend(fvk.clone(), note, path).unwrap(); +// } + +// for (addr, value) in self.output_amounts.into_iter() { +// let scope = fvk.scope_for_address(&addr).unwrap(); +// let ovk = fvk.to_ovk(scope); + +// builder +// .add_output(Some(ovk.clone()), addr, value, [0u8; 512]) +// .unwrap(); +// } + +// let pk = ProvingKey::build(); +// builder +// .build(&mut self.rng) +// .unwrap() +// .unwrap() +// .0 +// .create_proof(&pk, &mut self.rng) +// .unwrap() +// .prepare(&mut self.rng, [0; 32]) +// .sign(&mut self.rng, &SpendAuthorizingKey::from(&self.sk)) +// .finalize() +// .unwrap() +// } +// } + +// prop_compose! { +// /// Produce a random valid Orchard bundle. +// fn arb_bundle_inputs(sk: SpendingKey) +// ( +// n_notes in 1usize..30, +// n_outputs in 1..30, + +// ) +// ( +// // generate note values that we're certain won't exceed MAX_NOTE_VALUE in total +// notes in vec( +// arb_positive_note_value(MAX_NOTE_VALUE / n_notes as u64).prop_flat_map(arb_note), +// n_notes +// ), +// output_amounts in vec( +// arb_address().prop_flat_map(move |a| { +// arb_positive_note_value(MAX_NOTE_VALUE / n_outputs as u64) +// .prop_map(move |v| (a, v)) +// }), +// n_outputs as usize +// ), +// rng_seed in prop::array::uniform32(prop::num::u8::ANY) +// ) -> ArbitraryBundleInputs { +// use crate::constants::MERKLE_DEPTH_ORCHARD; +// let mut frontier = Frontier::::empty(); +// let mut notes_and_auth_paths: Vec<(Note, MerklePath)> = Vec::new(); + +// for note in notes.iter() { +// let leaf = MerkleHashOrchard::from_cmx(¬e.commitment().into()); +// frontier.append(leaf); + +// let path = frontier +// .witness(|addr| Some(::empty_root(addr.level()))) +// .ok() +// .flatten() +// .expect("we can always construct a correct Merkle path"); +// notes_and_auth_paths.push((*note, path.into())); +// } + +// ArbitraryBundleInputs { +// rng: StdRng::from_seed(rng_seed), +// sk, +// anchor: frontier.root().into(), +// notes: notes_and_auth_paths, +// output_amounts +// } +// } +// } + +// /// Produce an arbitrary valid Orchard bundle using a random spending key. +// pub fn arb_bundle + Debug>() -> impl Strategy> { +// arb_spending_key() +// .prop_flat_map(arb_bundle_inputs) +// .prop_map(|inputs| inputs.into_bundle::()) +// } + +// /// Produce an arbitrary valid Orchard bundle using a specified spending key. +// pub fn arb_bundle_with_key + Debug>( +// k: SpendingKey, +// ) -> impl Strategy> { +// arb_bundle_inputs(k).prop_map(|inputs| inputs.into_bundle::()) +// } +// } + +// #[cfg(test)] +// mod tests { +// use rand::rngs::OsRng; + +// use super::Builder; +// use crate::{ +// builder::BundleType, +// bundle::{Authorized, Bundle}, +// circuit::ProvingKey, +// constants::MERKLE_DEPTH_ORCHARD, +// keys::{FullViewingKey, Scope, SpendingKey}, +// tree::EMPTY_ROOTS, +// value::NoteValue, +// }; + +// #[test] +// fn shielding_bundle() { +// let pk = ProvingKey::build(); +// let mut rng = OsRng; + +// let sk = SpendingKey::random(&mut rng); +// let fvk = FullViewingKey::from(&sk); +// let recipient = fvk.address_at(0u32, Scope::External); + +// let mut builder = Builder::new( +// BundleType::DEFAULT, +// EMPTY_ROOTS[MERKLE_DEPTH_ORCHARD].into(), +// ); + +// builder +// .add_output(None, recipient, NoteValue::from(5000), [0u8; 512]) +// .unwrap(); +// let balance: i64 = builder.value_balance().unwrap(); +// assert_eq!(balance, -5000); + +// let bundle: Bundle = builder +// .build(&mut rng) +// .unwrap() +// .unwrap() +// .0 +// .create_proof(&pk, &mut rng) +// .unwrap() +// .prepare(rng, [0; 32]) +// .finalize() +// .unwrap(); +// assert_eq!(bundle.value_balance(), &(-5000)) +// } +// } diff --git a/zk-crates/zk-headstash/src/bundle.rs b/zk-crates/zk-headstash/src/bundle.rs new file mode 100644 index 0000000..582af56 --- /dev/null +++ b/zk-crates/zk-headstash/src/bundle.rs @@ -0,0 +1,674 @@ +//! Structs related to bundles of Orchard actions. + +use alloc::vec::Vec; + +pub mod commitments; + +// #[cfg(feature = "circuit")] +mod batch; +// #[cfg(feature = "circuit")] +// pub use batch::BatchValidator; + +use core::fmt; + +use blake2b_simd::Hash as Blake2bHash; +use nonempty::NonEmpty; +use zcash_note_encryption::{try_note_decryption, try_output_recovery_with_ovk}; + +#[cfg(feature = "std")] +use memuse::DynamicUsage; + +use crate::{ + action::Action, + address::Address, + bundle::commitments::{hash_bundle_auth_data, hash_bundle_txid_data}, + keys::{IncomingViewingKey, OutgoingViewingKey, PreparedIncomingViewingKey}, + note::Note, + note_encryption::OrchardDomain, + primitives::redpallas::{self, Binding, SpendAuth}, + tree::Anchor, + value::{ValueCommitTrapdoor, ValueCommitment, ValueSum}, + Proof, +}; + +// #[cfg(feature = "circuit")] +use crate::circuit::{Instance, VerifyingKey}; + +// #[cfg(feature = "circuit")] +impl Action { + /// Prepares the public instance for this action, for creating and verifying the + /// bundle proof. + pub fn to_instance(&self, flags: Flags, anchor: Anchor) -> Instance { + Instance { + anchor, + cv_net: self.cv_net().clone(), + nf_old: *self.nullifier(), + rk: self.rk().clone(), + cmx: *self.cmx(), + enable_spend: flags.spends_enabled, + enable_output: flags.outputs_enabled, + } + } +} + +/// Orchard-specific flags. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct Flags { + /// Flag denoting whether Orchard spends are enabled in the transaction. + /// + /// If `false`, spent notes within [`Action`]s in the transaction's [`Bundle`] are + /// guaranteed to be dummy notes. If `true`, the spent notes may be either real or + /// dummy notes. + spends_enabled: bool, + /// Flag denoting whether Orchard outputs are enabled in the transaction. + /// + /// If `false`, created notes within [`Action`]s in the transaction's [`Bundle`] are + /// guaranteed to be dummy notes. If `true`, the created notes may be either real or + /// dummy notes. + outputs_enabled: bool, +} + +const FLAG_SPENDS_ENABLED: u8 = 0b0000_0001; +const FLAG_OUTPUTS_ENABLED: u8 = 0b0000_0010; +const FLAGS_EXPECTED_UNSET: u8 = !(FLAG_SPENDS_ENABLED | FLAG_OUTPUTS_ENABLED); + +impl Flags { + /// Construct a set of flags from its constituent parts + pub(crate) const fn from_parts(spends_enabled: bool, outputs_enabled: bool) -> Self { + Flags { + spends_enabled, + outputs_enabled, + } + } + + /// The flag set with both spends and outputs enabled. + pub const ENABLED: Flags = Flags { + spends_enabled: true, + outputs_enabled: true, + }; + + /// The flag set with spends disabled. + pub const SPENDS_DISABLED: Flags = Flags { + spends_enabled: false, + outputs_enabled: true, + }; + + /// The flag set with outputs disabled. + pub const OUTPUTS_DISABLED: Flags = Flags { + spends_enabled: true, + outputs_enabled: false, + }; + + /// Flag denoting whether Orchard spends are enabled in the transaction. + /// + /// If `false`, spent notes within [`Action`]s in the transaction's [`Bundle`] are + /// guaranteed to be dummy notes. If `true`, the spent notes may be either real or + /// dummy notes. + pub fn spends_enabled(&self) -> bool { + self.spends_enabled + } + + /// Flag denoting whether Orchard outputs are enabled in the transaction. + /// + /// If `false`, created notes within [`Action`]s in the transaction's [`Bundle`] are + /// guaranteed to be dummy notes. If `true`, the created notes may be either real or + /// dummy notes. + pub fn outputs_enabled(&self) -> bool { + self.outputs_enabled + } + + /// Serialize flags to a byte as defined in [Zcash Protocol Spec § 7.1: Transaction + /// Encoding And Consensus][txencoding]. + /// + /// [txencoding]: https://zips.z.cash/protocol/protocol.pdf#txnencoding + pub fn to_byte(&self) -> u8 { + let mut value = 0u8; + if self.spends_enabled { + value |= FLAG_SPENDS_ENABLED; + } + if self.outputs_enabled { + value |= FLAG_OUTPUTS_ENABLED; + } + value + } + + /// Parses flags from a single byte as defined in [Zcash Protocol Spec § 7.1: + /// Transaction Encoding And Consensus][txencoding]. + /// + /// Returns `None` if unexpected bits are set in the flag byte. + /// + /// [txencoding]: https://zips.z.cash/protocol/protocol.pdf#txnencoding + pub fn from_byte(value: u8) -> Option { + // https://p.z.cash/TCR:bad-txns-v5-reserved-bits-nonzero + if value & FLAGS_EXPECTED_UNSET == 0 { + Some(Self { + spends_enabled: value & FLAG_SPENDS_ENABLED != 0, + outputs_enabled: value & FLAG_OUTPUTS_ENABLED != 0, + }) + } else { + None + } + } +} + +/// Defines the authorization type of an Orchard bundle. +pub trait Authorization: fmt::Debug { + /// The authorization type of an Orchard action. + type SpendAuth: fmt::Debug; +} + +/// A bundle of actions to be applied to the ledger. +#[derive(Clone)] +pub struct Bundle { + /// The list of actions that make up this bundle. + actions: NonEmpty>, + /// Orchard-specific transaction-level flags for this bundle. + flags: Flags, + /// The net value moved out of the Orchard shielded pool. + /// + /// This is the sum of Orchard spends minus the sum of Orchard outputs. + value_balance: V, + /// The root of the Orchard commitment tree that this bundle commits to. + anchor: Anchor, + /// The authorization for this bundle. + authorization: T, +} + +impl fmt::Debug for Bundle { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + /// Helper struct for debug-printing actions without exposing `NonEmpty`. + struct Actions<'a, T>(&'a NonEmpty>); + impl fmt::Debug for Actions<'_, T> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list().entries(self.0.iter()).finish() + } + } + + f.debug_struct("Bundle") + .field("actions", &Actions(&self.actions)) + .field("flags", &self.flags) + .field("value_balance", &self.value_balance) + .field("anchor", &self.anchor) + .field("authorization", &self.authorization) + .finish() + } +} + +impl Bundle { + /// Constructs a `Bundle` from its constituent parts. + pub fn from_parts( + actions: NonEmpty>, + flags: Flags, + value_balance: V, + anchor: Anchor, + authorization: T, + ) -> Self { + Bundle { + actions, + flags, + value_balance, + anchor, + authorization, + } + } + + /// Returns the list of actions that make up this bundle. + pub fn actions(&self) -> &NonEmpty> { + &self.actions + } + + /// Returns the Orchard-specific transaction-level flags for this bundle. + pub fn flags(&self) -> &Flags { + &self.flags + } + + /// Returns the net value moved into or out of the Orchard shielded pool. + /// + /// This is the sum of Orchard spends minus the sum Orchard outputs. + pub fn value_balance(&self) -> &V { + &self.value_balance + } + + /// Returns the root of the Orchard commitment tree that this bundle commits to. + pub fn anchor(&self) -> &Anchor { + &self.anchor + } + + /// Returns the authorization for this bundle. + /// + /// In the case of a `Bundle`, this is the proof and binding signature. + pub fn authorization(&self) -> &T { + &self.authorization + } + + /// Construct a new bundle by applying a transformation that might fail + /// to the value balance. + pub fn try_map_value_balance Result>( + self, + f: F, + ) -> Result, E> { + Ok(Bundle { + actions: self.actions, + flags: self.flags, + value_balance: f(self.value_balance)?, + anchor: self.anchor, + authorization: self.authorization, + }) + } + + /// Transitions this bundle from one authorization state to another. + pub fn map_authorization( + self, + context: &mut R, + mut spend_auth: impl FnMut(&mut R, &T, T::SpendAuth) -> U::SpendAuth, + step: impl FnOnce(&mut R, T) -> U, + ) -> Bundle { + let authorization = self.authorization; + Bundle { + actions: self + .actions + .map(|a| a.map(|a_auth| spend_auth(context, &authorization, a_auth))), + flags: self.flags, + value_balance: self.value_balance, + anchor: self.anchor, + authorization: step(context, authorization), + } + } + + /// Transitions this bundle from one authorization state to another. + pub fn try_map_authorization( + self, + context: &mut R, + mut spend_auth: impl FnMut(&mut R, &T, T::SpendAuth) -> Result, + step: impl FnOnce(&mut R, T) -> Result, + ) -> Result, E> { + let authorization = self.authorization; + let new_actions = self + .actions + .into_iter() + .map(|a| a.try_map(|a_auth| spend_auth(context, &authorization, a_auth))) + .collect::, E>>()?; + + Ok(Bundle { + actions: NonEmpty::from_vec(new_actions).unwrap(), + flags: self.flags, + value_balance: self.value_balance, + anchor: self.anchor, + authorization: step(context, authorization)?, + }) + } + + // #[cfg(feature = "circuit")] + pub(crate) fn to_instances(&self) -> Vec { + self.actions + .iter() + .map(|a| a.to_instance(self.flags, self.anchor)) + .collect() + } + + /// Performs trial decryption of each action in the bundle with each of the + /// specified incoming viewing keys, and returns a vector of each decrypted + /// note plaintext contents along with the index of the action from which it + /// was derived. + pub fn decrypt_outputs_with_keys( + &self, + keys: &[IncomingViewingKey], + ) -> Vec<(usize, IncomingViewingKey, Note, Address, [u8; 512])> { + let prepared_keys: Vec<_> = keys + .iter() + .map(|ivk| (ivk, PreparedIncomingViewingKey::new(ivk))) + .collect(); + self.actions + .iter() + .enumerate() + .filter_map(|(idx, action)| { + let domain = OrchardDomain::for_action(action); + prepared_keys.iter().find_map(|(ivk, prepared_ivk)| { + try_note_decryption(&domain, prepared_ivk, action) + .map(|(n, a, m)| (idx, (*ivk).clone(), n, a, m)) + }) + }) + .collect() + } + + /// Performs trial decryption of the action at `action_idx` in the bundle with the + /// specified incoming viewing key, and returns the decrypted note plaintext + /// contents if successful. + pub fn decrypt_output_with_key( + &self, + action_idx: usize, + key: &IncomingViewingKey, + ) -> Option<(Note, Address, [u8; 512])> { + let prepared_ivk = PreparedIncomingViewingKey::new(key); + self.actions.get(action_idx).and_then(move |action| { + let domain = OrchardDomain::for_action(action); + try_note_decryption(&domain, &prepared_ivk, action) + }) + } + + /// Performs trial decryption of each action in the bundle with each of the + /// specified outgoing viewing keys, and returns a vector of each decrypted + /// note plaintext contents along with the index of the action from which it + /// was derived. + pub fn recover_outputs_with_ovks( + &self, + keys: &[OutgoingViewingKey], + ) -> Vec<(usize, OutgoingViewingKey, Note, Address, [u8; 512])> { + self.actions + .iter() + .enumerate() + .filter_map(|(idx, action)| { + let domain = OrchardDomain::for_action(action); + keys.iter().find_map(move |key| { + try_output_recovery_with_ovk( + &domain, + key, + action, + action.cv_net(), + &action.encrypted_note().out_ciphertext, + ) + .map(|(n, a, m)| (idx, key.clone(), n, a, m)) + }) + }) + .collect() + } + + /// Attempts to decrypt the action at the specified index with the specified + /// outgoing viewing key, and returns the decrypted note plaintext contents + /// if successful. + pub fn recover_output_with_ovk( + &self, + action_idx: usize, + key: &OutgoingViewingKey, + ) -> Option<(Note, Address, [u8; 512])> { + self.actions.get(action_idx).and_then(move |action| { + let domain = OrchardDomain::for_action(action); + try_output_recovery_with_ovk( + &domain, + key, + action, + action.cv_net(), + &action.encrypted_note().out_ciphertext, + ) + }) + } +} + +impl> Bundle { + /// Computes a commitment to the effects of this bundle, suitable for inclusion within + /// a transaction ID. + pub fn commitment(&self) -> BundleCommitment { + BundleCommitment(hash_bundle_txid_data(self)) + } + + /// Returns the transaction binding validating key for this bundle. + /// + /// This can be used to validate the [`Authorized::binding_signature`] returned from + /// [`Bundle::authorization`]. + pub fn binding_validating_key(&self) -> redpallas::VerificationKey { + // https://p.z.cash/TCR:bad-txns-orchard-binding-signature-invalid?partial + (self + .actions + .iter() + .map(|a| a.cv_net()) + .sum::() + - ValueCommitment::derive( + ValueSum::from_raw(self.value_balance.into()), + ValueCommitTrapdoor::zero(), + )) + .into_bvk() + } +} + +/// Marker type for a bundle that contains no authorizing data. +#[derive(Clone, Debug)] +pub struct EffectsOnly; + +impl Authorization for EffectsOnly { + type SpendAuth = (); +} + +/// Authorizing data for a bundle of actions, ready to be committed to the ledger. +#[derive(Debug, Clone)] +pub struct Authorized { + proof: Proof, + binding_signature: redpallas::Signature, +} + +impl Authorization for Authorized { + type SpendAuth = redpallas::Signature; +} + +impl Authorized { + /// Constructs the authorizing data for a bundle of actions from its constituent parts. + pub fn from_parts(proof: Proof, binding_signature: redpallas::Signature) -> Self { + Authorized { + proof, + binding_signature, + } + } + + /// Return the proof component of the authorizing data. + pub fn proof(&self) -> &Proof { + &self.proof + } + + /// Return the binding signature. + pub fn binding_signature(&self) -> &redpallas::Signature { + &self.binding_signature + } +} + +impl Bundle { + /// Computes a commitment to the authorizing data within for this bundle. + /// + /// This together with `Bundle::commitment` bind the entire bundle. + pub fn authorizing_commitment(&self) -> BundleAuthorizingCommitment { + BundleAuthorizingCommitment(hash_bundle_auth_data(self)) + } + + /// Verifies the proof for this bundle. + // #[cfg(feature = "circuit")] + pub fn verify_proof(&self, vk: &VerifyingKey) -> Result<(), halo2_proofs::plonk::Error> { + self.authorization() + .proof() + .verify(vk, &self.to_instances()) + } +} + +#[cfg(feature = "std")] +impl DynamicUsage for Bundle { + fn dynamic_usage(&self) -> usize { + self.actions.tail.dynamic_usage() + + self.value_balance.dynamic_usage() + + self.authorization.proof.dynamic_usage() + } + + fn dynamic_usage_bounds(&self) -> (usize, Option) { + let bounds = ( + self.actions.tail.dynamic_usage_bounds(), + self.value_balance.dynamic_usage_bounds(), + self.authorization.proof.dynamic_usage_bounds(), + ); + ( + bounds.0 .0 + bounds.1 .0 + bounds.2 .0, + bounds + .0 + .1 + .zip(bounds.1 .1) + .zip(bounds.2 .1) + .map(|((a, b), c)| a + b + c), + ) + } +} + +/// A commitment to a bundle of actions. +/// +/// This commitment is non-malleable, in the sense that a bundle's commitment will only +/// change if the effects of the bundle are altered. +#[derive(Debug)] +pub struct BundleCommitment(pub Blake2bHash); + +impl From for [u8; 32] { + fn from(commitment: BundleCommitment) -> Self { + // The commitment uses BLAKE2b-256. + commitment.0.as_bytes().try_into().unwrap() + } +} + +/// A commitment to the authorizing data within a bundle of actions. +#[derive(Debug)] +pub struct BundleAuthorizingCommitment(pub Blake2bHash); + +/// Generators for property testing. +#[cfg(any(test, feature = "test-dependencies"))] +#[cfg_attr(docsrs, doc(cfg(feature = "test-dependencies")))] +pub mod testing { + use alloc::vec::Vec; + + use group::ff::FromUniformBytes; + use nonempty::NonEmpty; + use pasta_curves::pallas; + use rand::{rngs::StdRng, SeedableRng}; + use reddsa::orchard::SpendAuth; + + use proptest::collection::vec; + use proptest::prelude::*; + + use crate::{ + primitives::redpallas::{self, testing::arb_binding_signing_key}, + value::{testing::arb_note_value_bounded, NoteValue, ValueSum, MAX_NOTE_VALUE}, + Anchor, Proof, + }; + + use super::{Action, Authorized, Bundle, Flags}; + + pub use crate::action::testing::{arb_action, arb_unauthorized_action}; + + /// Marker type for a bundle that contains no authorizing data. + pub type Unauthorized = super::EffectsOnly; + + /// Generate an unauthorized action having spend and output values less than MAX_NOTE_VALUE / n_actions. + pub fn arb_unauthorized_action_n( + n_actions: usize, + flags: Flags, + ) -> impl Strategy)> { + let spend_value_gen = if flags.spends_enabled { + Strategy::boxed(arb_note_value_bounded(MAX_NOTE_VALUE / n_actions as u64)) + } else { + Strategy::boxed(Just(NoteValue::zero())) + }; + + spend_value_gen.prop_flat_map(move |spend_value| { + let output_value_gen = if flags.outputs_enabled { + Strategy::boxed(arb_note_value_bounded(MAX_NOTE_VALUE / n_actions as u64)) + } else { + Strategy::boxed(Just(NoteValue::zero())) + }; + + output_value_gen.prop_flat_map(move |output_value| { + arb_unauthorized_action(spend_value, output_value) + .prop_map(move |a| (spend_value - output_value, a)) + }) + }) + } + + /// Generate an authorized action having spend and output values less than MAX_NOTE_VALUE / n_actions. + pub fn arb_action_n( + n_actions: usize, + flags: Flags, + ) -> impl Strategy>)> { + let spend_value_gen = if flags.spends_enabled { + Strategy::boxed(arb_note_value_bounded(MAX_NOTE_VALUE / n_actions as u64)) + } else { + Strategy::boxed(Just(NoteValue::zero())) + }; + + spend_value_gen.prop_flat_map(move |spend_value| { + let output_value_gen = if flags.outputs_enabled { + Strategy::boxed(arb_note_value_bounded(MAX_NOTE_VALUE / n_actions as u64)) + } else { + Strategy::boxed(Just(NoteValue::zero())) + }; + + output_value_gen.prop_flat_map(move |output_value| { + arb_action(spend_value, output_value) + .prop_map(move |a| (spend_value - output_value, a)) + }) + }) + } + + prop_compose! { + /// Create an arbitrary set of flags. + pub fn arb_flags()(spends_enabled in prop::bool::ANY, outputs_enabled in prop::bool::ANY) -> Flags { + Flags::from_parts(spends_enabled, outputs_enabled) + } + } + + prop_compose! { + fn arb_base()(bytes in prop::array::uniform32(0u8..)) -> pallas::Base { + // Instead of rejecting out-of-range bytes, let's reduce them. + let mut buf = [0; 64]; + buf[..32].copy_from_slice(&bytes); + pallas::Base::from_uniform_bytes(&buf) + } + } + + prop_compose! { + /// Generate an arbitrary unauthorized bundle. This bundle does not + /// necessarily respect consensus rules; for that use + /// [`crate::builder::testing::arb_bundle`] + pub fn arb_unauthorized_bundle(n_actions: usize) + ( + flags in arb_flags(), + ) + ( + acts in vec(arb_unauthorized_action_n(n_actions, flags), n_actions), + anchor in arb_base().prop_map(Anchor::from), + flags in Just(flags) + ) -> Bundle { + let (balances, actions): (Vec, Vec>) = acts.into_iter().unzip(); + + Bundle::from_parts( + NonEmpty::from_vec(actions).unwrap(), + flags, + balances.into_iter().sum::>().unwrap(), + anchor, + super::EffectsOnly, + ) + } + } + + prop_compose! { + /// Generate an arbitrary bundle with fake authorization data. This bundle does not + /// necessarily respect consensus rules; for that use + /// [`crate::builder::testing::arb_bundle`] + pub fn arb_bundle(n_actions: usize) + ( + flags in arb_flags(), + ) + ( + acts in vec(arb_action_n(n_actions, flags), n_actions), + anchor in arb_base().prop_map(Anchor::from), + sk in arb_binding_signing_key(), + rng_seed in prop::array::uniform32(prop::num::u8::ANY), + fake_proof in vec(prop::num::u8::ANY, 1973), + fake_sighash in prop::array::uniform32(prop::num::u8::ANY), + flags in Just(flags) + ) -> Bundle { + let (balances, actions): (Vec, Vec>) = acts.into_iter().unzip(); + let rng = StdRng::from_seed(rng_seed); + + Bundle::from_parts( + NonEmpty::from_vec(actions).unwrap(), + flags, + balances.into_iter().sum::>().unwrap(), + anchor, + Authorized { + proof: Proof::new(fake_proof), + binding_signature: sk.sign(rng, &fake_sighash), + } + ) + } + } +} diff --git a/zk-crates/zk-headstash/src/bundle/batch.rs b/zk-crates/zk-headstash/src/bundle/batch.rs new file mode 100644 index 0000000..8070038 --- /dev/null +++ b/zk-crates/zk-headstash/src/bundle/batch.rs @@ -0,0 +1,95 @@ +use alloc::vec::Vec; + +use halo2_proofs::plonk; +use pasta_curves::vesta; +use rand::{CryptoRng, RngCore}; +use tracing::debug; + +use super::{Authorized, Bundle}; +use crate::{ + circuit::VerifyingKey, + primitives::redpallas::{self, Binding, SpendAuth}, +}; + +/// A signature within an authorized Orchard bundle. +#[derive(Debug)] +struct BundleSignature { + /// The signature item for validation. + signature: redpallas::batch::Item, +} + +// / Batch validation context for Orchard. +// / +// / This batch-validates proofs and RedPallas signatures. +// #[derive(Debug, Default)] +// pub struct BatchValidator { +// proofs: plonk::BatchVerifier, +// signatures: Vec, +// } + +// impl BatchValidator { +// /// Constructs a new batch validation context. +// pub fn new() -> Self { +// BatchValidator { +// proofs: plonk::BatchVerifier::new(), +// signatures: vec![], +// } +// } + +// // /// Adds the proof and RedPallas signatures from the given bundle to the validator. +// // pub fn add_bundle>( +// // &mut self, +// // bundle: &Bundle, +// // sighash: [u8; 32], +// // ) { +// // for action in bundle.actions().iter() { +// // self.signatures.push(BundleSignature { +// // signature: action +// // .rk() +// // .create_batch_item(action.authorization().clone(), &sighash), +// // }); +// // } + +// // self.signatures.push(BundleSignature { +// // signature: bundle +// // .binding_validating_key() +// // .create_batch_item(bundle.authorization().binding_signature().clone(), &sighash), +// // }); + +// // bundle +// // .authorization() +// // .proof() +// // .add_to_batch(&mut self.proofs, bundle.to_instances()); +// // } + +// /// Batch-validates the accumulated bundles. +// /// +// /// Returns `true` if every proof and signature in every bundle added to the batch +// /// validator is valid, or `false` if one or more are invalid. No attempt is made to +// /// figure out which of the accumulated bundles might be invalid; if that information +// /// is desired, construct separate [`BatchValidator`]s for sub-batches of the bundles. +// pub fn validate(self, vk: &VerifyingKey, rng: R) -> bool { +// // https://p.z.cash/TCR:bad-txns-orchard-binding-signature-invalid?partial + +// if self.signatures.is_empty() { +// // An empty batch is always valid, but is not free to run; skip it. +// // Note that a transaction has at least a binding signature, so if +// // there are no signatures, there are also no proofs. +// return true; +// } + +// let mut validator = redpallas::batch::Verifier::new(); +// for sig in self.signatures.iter() { +// validator.queue(sig.signature.clone()); +// } + +// match validator.verify(rng) { +// // If signatures are valid, check the proofs. +// Ok(()) => self.proofs.finalize(&vk.params, &vk.vk), +// Err(e) => { +// debug!("RedPallas batch validation failed: {}", e); +// false +// } +// } +// } +// } diff --git a/zk-crates/zk-headstash/src/bundle/commitments.rs b/zk-crates/zk-headstash/src/bundle/commitments.rs new file mode 100644 index 0000000..fee2419 --- /dev/null +++ b/zk-crates/zk-headstash/src/bundle/commitments.rs @@ -0,0 +1,92 @@ +//! Utility functions for computing bundle commitments + +use blake2b_simd::{Hash as Blake2bHash, Params, State}; + +use crate::bundle::{Authorization, Authorized, Bundle}; + +const ZCASH_ORCHARD_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxIdOrchardHash"; +const ZCASH_ORCHARD_ACTIONS_COMPACT_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxIdOrcActCHash"; +const ZCASH_ORCHARD_ACTIONS_MEMOS_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxIdOrcActMHash"; +const ZCASH_ORCHARD_ACTIONS_NONCOMPACT_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxIdOrcActNHash"; +const ZCASH_ORCHARD_SIGS_HASH_PERSONALIZATION: &[u8; 16] = b"ZTxAuthOrchaHash"; + +fn hasher(personal: &[u8; 16]) -> State { + Params::new().hash_length(32).personal(personal).to_state() +} + +/// Write disjoint parts of each Orchard shielded action as 3 separate hashes +/// as defined in [ZIP-244: Transaction Identifier Non-Malleability][zip244]: +/// * \[(nullifier, cmx, ephemeral_key, enc_ciphertext\[..52\])*\] personalized +/// with ZCASH_ORCHARD_ACTIONS_COMPACT_HASH_PERSONALIZATION +/// * \[enc_ciphertext\[52..564\]*\] (memo ciphertexts) personalized +/// with ZCASH_ORCHARD_ACTIONS_MEMOS_HASH_PERSONALIZATION +/// * \[(cv, rk, enc_ciphertext\[564..\], out_ciphertext)*\] personalized +/// with ZCASH_ORCHARD_ACTIONS_NONCOMPACT_HASH_PERSONALIZATION +/// +/// Then, hash these together along with (flags, value_balance_orchard, anchor_orchard), +/// personalized with ZCASH_ORCHARD_ACTIONS_HASH_PERSONALIZATION +/// +/// [zip244]: https://zips.z.cash/zip-0244 +pub(crate) fn hash_bundle_txid_data>( + bundle: &Bundle, +) -> Blake2bHash { + let mut h = hasher(ZCASH_ORCHARD_HASH_PERSONALIZATION); + let mut ch = hasher(ZCASH_ORCHARD_ACTIONS_COMPACT_HASH_PERSONALIZATION); + let mut mh = hasher(ZCASH_ORCHARD_ACTIONS_MEMOS_HASH_PERSONALIZATION); + let mut nh = hasher(ZCASH_ORCHARD_ACTIONS_NONCOMPACT_HASH_PERSONALIZATION); + + for action in bundle.actions().iter() { + ch.update(&action.nullifier().to_bytes()); + ch.update(&action.cmx().to_bytes()); + ch.update(&action.encrypted_note().epk_bytes); + ch.update(&action.encrypted_note().enc_ciphertext[..52]); + + mh.update(&action.encrypted_note().enc_ciphertext[52..564]); + + nh.update(&action.cv_net().to_bytes()); + nh.update(&<[u8; 32]>::from(action.rk())); + nh.update(&action.encrypted_note().enc_ciphertext[564..]); + nh.update(&action.encrypted_note().out_ciphertext); + } + + h.update(ch.finalize().as_bytes()); + h.update(mh.finalize().as_bytes()); + h.update(nh.finalize().as_bytes()); + h.update(&[bundle.flags().to_byte()]); + h.update(&(*bundle.value_balance()).into().to_le_bytes()); + h.update(&bundle.anchor().to_bytes()); + h.finalize() +} + +/// Construct the commitment for the absent bundle as defined in +/// [ZIP-244: Transaction Identifier Non-Malleability][zip244] +/// +/// [zip244]: https://zips.z.cash/zip-0244 +pub fn hash_bundle_txid_empty() -> Blake2bHash { + hasher(ZCASH_ORCHARD_HASH_PERSONALIZATION).finalize() +} + +/// Construct the commitment to the authorizing data of an +/// authorized bundle as defined in [ZIP-244: Transaction +/// Identifier Non-Malleability][zip244] +/// +/// [zip244]: https://zips.z.cash/zip-0244 +pub(crate) fn hash_bundle_auth_data(bundle: &Bundle) -> Blake2bHash { + let mut h = hasher(ZCASH_ORCHARD_SIGS_HASH_PERSONALIZATION); + h.update(bundle.authorization().proof().as_ref()); + for action in bundle.actions().iter() { + h.update(&<[u8; 64]>::from(action.authorization())); + } + h.update(&<[u8; 64]>::from( + bundle.authorization().binding_signature(), + )); + h.finalize() +} + +/// Construct the commitment for an absent bundle as defined in +/// [ZIP-244: Transaction Identifier Non-Malleability][zip244] +/// +/// [zip244]: https://zips.z.cash/zip-0244 +pub fn hash_bundle_auth_empty() -> Blake2bHash { + hasher(ZCASH_ORCHARD_SIGS_HASH_PERSONALIZATION).finalize() +} diff --git a/zk-crates/zk-headstash/src/circuit.rs b/zk-crates/zk-headstash/src/circuit.rs new file mode 100644 index 0000000..bc6767e --- /dev/null +++ b/zk-crates/zk-headstash/src/circuit.rs @@ -0,0 +1,1090 @@ +//! The Orchard Action circuit implementation. +use std::{ + fs::File, + io::{self, BufWriter, Write}, + path::PathBuf, +}; + +use alloc::vec::Vec; + +use group::Curve; +use halo2_proofs::{ + circuit::{floor_planner, Layouter, Value}, + plonk::{ + self, Advice, Column, Constraints, Expression, Instance as InstanceColumn, Selector, + SingleVerifier, + }, + poly::Rotation, + transcript::{Blake2bRead, Blake2bWrite}, +}; + +use pasta_curves::{pallas, vesta}; +use rand::RngCore; + +use self::{ + commit_ivk::{CommitIvkChip, CommitIvkConfig}, + gadget::{ + add_chip::{AddChip, AddConfig}, + assign_free_advice, + }, + note_commit::{NoteCommitChip, NoteCommitConfig}, +}; +use crate::{ + address::RecpAddr, + builder::SpendInfo, + circuit::gadget::secp256k1_chip::{Secp256k1Chip, Secp256k1Config, Secp256k1Fp, Secp256k1Fq}, + constants::{ + OrchardCommitDomains, OrchardFixedBases, OrchardHashDomains, MERKLE_DEPTH_ORCHARD, + }, + keys::NullifierDerivingKey, + note::{ + commitment::{NoteCommitTrapdoor, NoteCommitment}, + nullifier::Nullifier, + ExtractedNoteCommitment, Note, Rho, + }, + tree::{Anchor, MerkleHashOrchard}, + value::{NoteDenom, NoteValue}, +}; +use ff::PrimeField; +use halo2_gadgets::{ + ecc::{ + chip::{EccChip, EccConfig}, + Point, ScalarFixed, + }, + poseidon::{primitives as poseidon, Pow5Chip as PoseidonChip, Pow5Config as PoseidonConfig}, + sinsemilla::{ + chip::{SinsemillaChip, SinsemillaConfig}, + merkle::{ + chip::{MerkleChip, MerkleConfig}, + MerklePath, + }, + HashDomain, + }, + utilities::lookup_range_check::{LookupRangeCheck, LookupRangeCheckConfig}, +}; + +mod commit_ivk; +pub mod gadget; +pub mod headstash_merkle_tree; +mod note_commit; +#[cfg(test)] +mod note_commit_bit_tests; + +pub use crate::Proof; + +/// Size of the Headstash circuit. +const K: u32 = 17; + +// Absolute offsets for public inputs. +const ANCHOR: usize = 0; +const HS_ND: usize = 1; +const HS_V: usize = 2; +const RECP: usize = 3; +const NF_OLD: usize = 4; +const CMX: usize = 5; +// const RK_X: usize = 4; +// const RK_Y: usize = 5; +// const ENABLE_SPEND: usize = 7; +// const ENABLE_OUTPUT: usize = 8; + +/// Configuration needed to use the Orchard Action circuit. +#[derive(Clone, Debug)] +pub struct Config { + primary: Column, + q_orchard: Selector, + advices: [Column; 10], + add_config: AddConfig, + ecc_config: EccConfig, + secp256k1: Secp256k1Config, + poseidon_config: PoseidonConfig, + merkle_config_1: MerkleConfig, + merkle_config_2: MerkleConfig, + sinsemilla_config_1: + SinsemillaConfig, + sinsemilla_config_2: + SinsemillaConfig, + commit_ivk_config: CommitIvkConfig, + old_note_commit_config: NoteCommitConfig, + new_note_commit_config: NoteCommitConfig, +} + +/// The Orchard Action circuit. +#[derive(Clone, Debug, Default)] +pub struct Circuit { + pub(crate) path: Value<[MerkleHashOrchard; MERKLE_DEPTH_ORCHARD]>, + pub(crate) pos: Value, + pub(crate) esk: Value, + pub(crate) epkx: Value, + pub(crate) epky: Value, + pub(crate) nk: Value, + pub(crate) fdi: Value, + pub(crate) v: Value, + pub(crate) nd: Value, + pub(crate) recp: Value, + pub(crate) rho_old: Value, + pub(crate) psi_old: Value, + pub(crate) rcm_old: Value, + pub(crate) cm_old: Value, + // pub(crate) alpha: Value, + // pub(crate) ak: Value + // pub(crate) rivk: Value, + // pub(crate) rcv: Value, +} + +impl Circuit { + /// This constructor is public to enable creation of custom builders. + /// If you are not creating a custom builder, use [`Builder`] to compose + /// and authorize a transaction. + /// + /// Constructs a `Circuit` from the following components: + /// - `spend`: [`SpendInfo`] of the note spent in scope of the action + /// - `output_note`: a note created in scope of the action + /// - `alpha`: a scalar used for randomization of the action spend validating key + /// - `rcv`: trapdoor for the action value commitment + /// + /// Returns `None` if the `rho` of the `output_note` is not equal + /// to the nullifier of the spent note. + /// + /// [`SpendInfo`]: crate::builder::SpendInfo + /// [`Builder`]: crate::builder::Builder + pub fn from_action_context( + spend: SpendInfo, + output_note: Note, + // alpha: pallas::Scalar, + // rcv: ValueCommitTrapdoor, + ) -> Option { + (Rho::from_nf_old(spend.note.nullifier()) == output_note.rho()) + .then(|| Self::from_action_context_unchecked(spend, output_note)) + } + + pub(crate) fn from_action_context_unchecked( + spend: SpendInfo, + output_note: Note, + // alpha: pallas::Scalar, + // rcv: ValueCommitTrapdoor, + ) -> Circuit { + let rho_old = spend.note.rho(); + let psi_old = spend.note.rseed().psi(&rho_old); + let rcm_old = spend.note.rseed().rcm(&rho_old); + let esk = spend.note.elig_sk(); + let fdi = spend.note.fdi(); + let (epkx, epky) = spend.note.elig_sk().epk().xy(); + let recp = spend.note.recipient(); + let nd = spend.note.nd(); + + Circuit { + path: Value::known(spend.merkle_path.auth_path()), + pos: Value::known(spend.merkle_path.position()), + v: Value::known(spend.note.value()), + rho_old: Value::known(rho_old), + psi_old: Value::known(psi_old), + rcm_old: Value::known(rcm_old), + cm_old: Value::known(spend.note.commitment()), + nk: Value::known(*spend.fvk.nk()), + esk: Value::known(Secp256k1Fq::from_bytes(&esk.secret_bytes()).expect("valid Fq")), + epkx: Value::known(Secp256k1Fp::from_bytes(&epkx).expect("valid Fp")), + epky: Value::known(Secp256k1Fp::from_bytes(&epky).expect("valid Fp")), + fdi: Value::known(fdi.into()), + nd: Value::known(nd.to_pallas()), + recp: Value::known(recp.to_pallas()), + } + } +} + +impl plonk::Circuit for Circuit { + type Config = Config; + type FloorPlanner = floor_planner::V1; + + fn without_witnesses(&self) -> Self { + Self::default() + } + + fn configure(meta: &mut plonk::ConstraintSystem) -> Self::Config { + // Advice columns used in the Orchard circuit. + let advices = [ + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + ]; + + // Constrain v_old - v_new = magnitude * sign (https://p.z.cash/ZKS:action-cv-net-integrity?partial). + // Either v_old = 0, or calculated root = anchor (https://p.z.cash/ZKS:action-merkle-path-validity?partial). + // Constrain v_old = 0 or enable_spends = 1 (https://p.z.cash/ZKS:action-enable-spend). + // Constrain v_new = 0 or enable_outputs = 1 (https://p.z.cash/ZKS:action-enable-output). + let q_orchard = meta.selector(); + meta.create_gate("Orchard circuit checks", |meta| { + let q_orchard = meta.query_selector(q_orchard); + let v_old = meta.query_advice(advices[0], Rotation::cur()); + let v_new = meta.query_advice(advices[1], Rotation::cur()); + let magnitude = meta.query_advice(advices[2], Rotation::cur()); + let sign = meta.query_advice(advices[3], Rotation::cur()); + + let root = meta.query_advice(advices[4], Rotation::cur()); + let anchor = meta.query_advice(advices[5], Rotation::cur()); + + let enable_spends = meta.query_advice(advices[6], Rotation::cur()); + let enable_outputs = meta.query_advice(advices[7], Rotation::cur()); + + let one = Expression::Constant(pallas::Base::one()); + + Constraints::with_selector( + q_orchard, + [ + ( + "v_old - v_new = magnitude * sign", + v_old.clone() - v_new.clone() - magnitude * sign, + ), + ( + "Either v_old = 0, or root = anchor", + v_old.clone() * (root - anchor), + ), + ( + "v_old = 0 or enable_spends = 1", + v_old * (one.clone() - enable_spends), + ), + ( + "v_new = 0 or enable_outputs = 1", + v_new * (one - enable_outputs), + ), + ], + ) + }); + + // Addition of two field elements. + let add_config = AddChip::configure(meta, advices[7], advices[8], advices[6]); + + // Fixed columns for the Sinsemilla generator lookup table + let table_idx = meta.lookup_table_column(); + let lookup = ( + table_idx, + meta.lookup_table_column(), + meta.lookup_table_column(), + ); + + // Instance column used for public inputs + let primary = meta.instance_column(); + meta.enable_equality(primary); + + // Permutation over all advice columns. + for advice in advices.iter() { + meta.enable_equality(*advice); + } + + // Poseidon requires four advice columns, while ECC incomplete addition requires + // six, so we could choose to configure them in parallel. However, we only use a + // single Poseidon invocation, and we have the rows to accommodate it serially. + // Instead, we reduce the proof size by sharing fixed columns between the ECC and + // Poseidon chips. + let lagrange_coeffs = [ + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + ]; + let rc_a = lagrange_coeffs[2..5].try_into().unwrap(); + let rc_b = lagrange_coeffs[5..8].try_into().unwrap(); + + // Also use the first Lagrange coefficient column for loading global constants. + // It's free real estate :) + meta.enable_constant(lagrange_coeffs[0]); + + // We have a lot of free space in the right-most advice columns; use one of them + // for all of our range checks. + let range_check = LookupRangeCheckConfig::configure(meta, advices[9], table_idx); + + // Configuration for curve point operations. + // This uses 10 advice columns and spans the whole circuit. + let ecc_config = + EccChip::::configure(meta, advices, lagrange_coeffs, range_check); + + // Configuration for the Poseidon hash. + let poseidon_config = PoseidonChip::configure::( + meta, + // We place the state columns after the partial_sbox column so that the + // pad-and-add region can be laid out more efficiently. + advices[6..9].try_into().unwrap(), + advices[5], + rc_a, + rc_b, + ); + + // Secp256k1 curve paring config.TODO: ensure we define advice colums available to these accurately and document (3 each) + let secp256k1 = Secp256k1Config::configure( + meta, + [advices[0], advices[1], advices[2]], + [advices[3], advices[4], advices[5]], + range_check.clone(), + ); + + // Configuration for a Sinsemilla hash instantiation and a + // Merkle hash instantiation using this Sinsemilla instance. + // Since the Sinsemilla config uses only 5 advice columns, + // we can fit two instances side-by-side. + let (sinsemilla_config_1, merkle_config_1) = { + let sinsemilla_config_1 = SinsemillaChip::configure( + meta, + advices[..5].try_into().unwrap(), + advices[6], + lagrange_coeffs[0], + lookup, + range_check, + false, + ); + let merkle_config_1 = MerkleChip::configure(meta, sinsemilla_config_1.clone()); + + (sinsemilla_config_1, merkle_config_1) + }; + + // Configuration for a Sinsemilla hash instantiation and a + // Merkle hash instantiation using this Sinsemilla instance. + // Since the Sinsemilla config uses only 5 advice columns, + // we can fit two instances side-by-side. + let (sinsemilla_config_2, merkle_config_2) = { + let sinsemilla_config_2 = SinsemillaChip::configure( + meta, + advices[5..].try_into().unwrap(), + advices[7], + lagrange_coeffs[1], + lookup, + range_check, + false, + ); + let merkle_config_2 = MerkleChip::configure(meta, sinsemilla_config_2.clone()); + + (sinsemilla_config_2, merkle_config_2) + }; + + // Configuration to handle decomposition and canonicity checking + // for CommitIvk. + let commit_ivk_config = CommitIvkChip::configure(meta, advices); + + // Configuration to handle decomposition and canonicity checking + // for NoteCommit_old. + let old_note_commit_config = + NoteCommitChip::configure(meta, advices, sinsemilla_config_1.clone()); + + // Configuration to handle decomposition and canonicity checking + // for NoteCommit_new. + let new_note_commit_config = + NoteCommitChip::configure(meta, advices, sinsemilla_config_2.clone()); + + Config { + primary, + q_orchard, + advices, + add_config, + ecc_config, + secp256k1, + poseidon_config, + merkle_config_1, + merkle_config_2, + sinsemilla_config_1, + sinsemilla_config_2, + commit_ivk_config, + old_note_commit_config, + new_note_commit_config, + } + } + + #[allow(non_snake_case)] + fn synthesize( + &self, + config: Self::Config, + mut layouter: impl Layouter, + ) -> Result<(), plonk::Error> { + // Load the Sinsemilla generator lookup table used by the whole circuit. + SinsemillaChip::load(config.sinsemilla_config_1.clone(), &mut layouter)?; + + // Construct the ECC chip. + let ecc_chip = config.ecc_chip(); + + // 1. --------------- Eligible Key Pairing Constraint ------------------------- + let secp256k1_chip = Secp256k1Chip::construct(config.secp256k1.clone()); + let (esk_crt, epk_crt) = secp256k1_chip.prove_key_pairing( + layouter.namespace(|| "secp256k1 key pairing: epk = esk * G"), + self.esk, + self.epkx, + self.epky, + )?; + + // Witness private inputs that are used across multiple checks. + let (nd, v, fdi, recp, psi_old, rho_old, cm_old, nk) = { + // Witness nd. + let nd = assign_free_advice( + layouter.namespace(|| "witness nd"), + config.advices[0], + self.nd, + )?; + + // Witness v. + let v = assign_free_advice( + layouter.namespace(|| "witness v"), + config.advices[0], + self.v, + )?; + + // Witness fdi. + let fdi = assign_free_advice( + layouter.namespace(|| "witness fdi"), + config.advices[0], + self.fdi, + )?; + + // Witness recp. + let recp = assign_free_advice( + layouter.namespace(|| "witness recp"), + config.advices[0], + self.recp, + )?; + // Witness psi_old + let psi_old = assign_free_advice( + layouter.namespace(|| "witness psi_old"), + config.advices[0], + self.psi_old, + )?; + + // Witness rho_old + let rho_old = assign_free_advice( + layouter.namespace(|| "witness rho_old"), + config.advices[0], + self.rho_old.map(|rho| rho.into_inner()), + )?; + + // Witness cm_old + let cm_old = Point::new( + ecc_chip.clone(), + layouter.namespace(|| "cm_old"), + self.cm_old.as_ref().map(|cm| cm.inner().to_affine()), + )?; + + // Witness nk. + let nk = assign_free_advice( + layouter.namespace(|| "witness nk"), + config.advices[0], + self.nk.map(|nk| nk.inner()), + )?; + + (nd, v, fdi, recp, psi_old, rho_old, cm_old, nk) + }; + + // hashdomain Merkle path validity check + // Compute epk_sum + + // derive current note leaf + let (leaf, rs) = gadget::derive_leaf( + layouter.namespace(|| "derive leaf"), + &config.sinsemilla_chip_1(), + &ecc_chip, + epk_crt, + fdi.clone(), + v.clone(), + nd.clone(), + )?; + + // constrain path to headstash genesis root + let genesis_root = { + let path = self + .path + .map(|typed_path| typed_path.map(|node| node.inner())); + let merkle_inputs = MerklePath::construct( + [config.merkle_chip_1(), config.merkle_chip_2()], + OrchardHashDomains::Leaf, + self.pos, + path, + ); + // merkle_inputs.calculate_root(layouter.namespace(|| "Genesis merkle path"), leaf.x())? + }; + + // commitdomain Merkle path validity check. This is a headstash genesis sinsemilla hashdomain merkle tree. + let root = { + let path = self + .path + .map(|typed_path| typed_path.map(|node| node.inner())); + let merkle_inputs = MerklePath::construct( + [config.merkle_chip_1(), config.merkle_chip_2()], + OrchardHashDomains::MerkleCrh, + self.pos, + path, + ); + let leaf = cm_old.extract_p().inner().clone(); + merkle_inputs.calculate_root(layouter.namespace(|| "Merkle path"), leaf)? + }; + + // constrain hashCommit root to public input + layouter.constrain_instance(root.cell(), config.primary, ANCHOR)?; + + // Nullifier integrity (https://p.z.cash/ZKS:action-nullifier-integrity). + let nf_old = { + let nf_old = gadget::derive_nullifier( + layouter.namespace(|| "nf_old = DeriveNullifier_nk(rho_old, psi_old, cm_old)"), + config.poseidon_chip(), + config.add_chip(), + ecc_chip.clone(), + rho_old.clone(), + &psi_old, + &cm_old, + nk.clone(), + )?; + + // Constrain provided nullifer with derived nullifier + layouter.constrain_instance(nf_old.inner().cell(), config.primary, NF_OLD)?; + + nf_old + }; + + // Old note commitment integrity (https://p.z.cash/ZKS:action-cm-old-integrity?partial). + { + let rcm_old = ScalarFixed::new( + ecc_chip.clone(), + layouter.namespace(|| "rcm_old"), + self.rcm_old.as_ref().map(|rcm_old| rcm_old.inner()), + )?; + + // // g★_d || pk★_d || i2lebsp_{64}(v) || i2lebsp_{255}(rho) || i2lebsp_{255}(psi) + let derived_cm_old = gadget::note_commit( + layouter.namespace(|| { + "g★_d || pk★_d || i2lebsp_{64}(v) || i2lebsp_{255}(rho) || i2lebsp_{255}(psi)" + }), + config.sinsemilla_chip_1(), + config.ecc_chip(), + config.note_commit_chip_old(), + nd, + v, + fdi, + recp, + esk_crt.native, + rho_old.clone(), + psi_old.clone(), + rcm_old, + )?; + + // Constrain derived cm_old to equal witnessed cm_old + derived_cm_old.constrain_equal(layouter.namespace(|| "cm_old equality"), &cm_old)?; + + let cmx = cm_old.extract_p(); + // Constrain cmx to equal public input + layouter.constrain_instance(cmx.inner().cell(), config.primary, CMX)?; + } + + Ok(()) + } +} + +/// The verifying key for the Orchard Action circuit. +#[derive(Debug)] +pub struct VerifyingKey { + /// params + pub params: halo2_proofs::poly::commitment::Params, + /// vk + pub vk: plonk::VerifyingKey, +} + +impl VerifyingKey { + /// Builds the verifying key. + pub fn new(vk: plonk::VerifyingKey) -> Self { + let params = halo2_proofs::poly::commitment::Params::new(K); + VerifyingKey { params, vk } + } + + /// Builds the verifying key. + pub fn build() -> Self { + let params = halo2_proofs::poly::commitment::Params::new(K); + let circuit: Circuit = Default::default(); + let vk = plonk::keygen_vk(¶ms, &circuit).unwrap(); + VerifyingKey { params, vk } + } +} + +/// The proving key for the Orchard Action circuit. +#[derive(Debug)] +pub struct ProvingKey { + params: halo2_proofs::poly::commitment::Params, + pk: plonk::ProvingKey, +} + +impl ProvingKey { + /// Builds the proving key. + pub fn build() -> Self { + let params = halo2_proofs::poly::commitment::Params::new(K); + let circuit: Circuit = Default::default(); + + let vk = plonk::keygen_vk(¶ms, &circuit).unwrap(); + let pk = plonk::keygen_pk(¶ms, vk, &circuit).unwrap(); + + ProvingKey { params, pk } + } + + /// Builds pk & vk, writes to file + pub fn build_and_write(path: PathBuf) -> io::Result<()> { + let mut writer = BufWriter::new(File::create(path)?); + let pk = Self::build(); + pk.params.write(&mut writer)?; + pk.pk.get_vk().write(&mut writer)?; + writer.flush() + } + + /// retrieve a clone of the params + pub fn params(&self) -> halo2_proofs::poly::commitment::Params { + self.params.clone() + } +} + +/// Public inputs to the Headstash Action circuit. +#[derive(Clone, Debug)] +pub struct Instance { + pub(crate) anchor: Anchor, + pub(crate) nd: NoteDenom, + pub(crate) v: NoteValue, + pub(crate) nf: Nullifier, + pub(crate) recp: RecpAddr, + pub(crate) cmx: ExtractedNoteCommitment, +} + +impl Instance { + /// Constructs an [`Instance`] from its constituent parts. + /// + /// This API can be used in combination with [`Proof::verify`] to build verification + /// pipelines for many proofs, where you don't want to pass around the full bundle. + /// Use [`Bundle::verify_proof`] instead if you have the full bundle. + /// + /// [`Bundle::verify_proof`]: crate::Bundle::verify_proof + pub fn from_parts( + anchor: Anchor, + nd: NoteDenom, + v: NoteValue, + recp: RecpAddr, + nf: Nullifier, + cmx: ExtractedNoteCommitment, + // rk: VerificationKey, + // enable_spend: bool, + // enable_output: bool, + ) -> Self { + Instance { + anchor, + nd, + v, + recp, + nf, + cmx, + // rk, + // enable_spend, + // enable_output, + } + } + + /// Constructs an [`Instance`] from its constituent parts in bytes. + pub fn from_bytes(bytes: Vec) -> Self { + const THREETWO: usize = 32; + const EIGHT: usize = 8; + + const TOTAL_SIZE: usize = (5 * THREETWO) + EIGHT; + + let mut offset = 0; + // Parse anchor (32 bytes) + let anchor: &[u8; 32] = &bytes[offset..offset + THREETWO].try_into().expect("anchor"); + offset += THREETWO; + + let nd: &[u8; 32] = &bytes[offset..offset + THREETWO].try_into().expect("nd"); + offset += THREETWO; + + let v_bytes = &bytes[offset..offset + EIGHT]; + let v = u64::from_le_bytes(v_bytes.try_into().expect("v")); + offset += EIGHT; + + let nf: &[u8; 32] = &bytes[offset..offset + THREETWO].try_into().expect("nf"); + offset += THREETWO; + + let recp = &bytes[offset..offset + THREETWO]; + offset += THREETWO; + let cmx: &[u8; 32] = &bytes[offset..offset + THREETWO].try_into().expect("cmx"); + + Instance { + anchor: Anchor::from_bytes(*anchor).expect("anchor"), + nd: NoteDenom::from(*nd), + v: NoteValue::from(v), + nf: Nullifier::from_bytes(nf).expect("msg"), + recp: RecpAddr::try_from(recp).expect(""), + cmx: ExtractedNoteCommitment::from_bytes(cmx).expect(""), + } + } + + /// Constructs an [Vec] from an instance for serialization/deserialization. + fn to_bytes(&self) -> Vec { + let mut bytes = Vec::with_capacity(168); + + bytes.extend_from_slice(&self.anchor.to_bytes()); + bytes.extend_from_slice(&self.nd.as_bytes()); + bytes.extend_from_slice(&self.v.inner().to_le_bytes()); + bytes.extend_from_slice(&self.nf.to_bytes()); + bytes.extend_from_slice(&self.recp.to_bytes()); + bytes.extend_from_slice(&self.cmx.to_bytes()); + + bytes + } + + fn to_halo2_instance(&self) -> [[vesta::Scalar; 9]; 1] { + let mut instance = [vesta::Scalar::zero(); 9]; + + instance[ANCHOR] = self.anchor.inner(); + instance[HS_ND] = self.nd.to_pallas(); + instance[HS_V] = self.v.inner().into(); + instance[RECP] = self.recp.to_pallas(); + instance[NF_OLD] = self.nf.0; + instance[CMX] = self.cmx.inner(); + + [instance] + } +} + +impl Proof { + /// Creates a proof for the given circuits and instances. + pub fn create( + pk: &ProvingKey, + circuits: &[Circuit], + instances: &[Instance], + mut rng: impl RngCore, + ) -> Result { + let instances: Vec<_> = instances.iter().map(|i| i.to_halo2_instance()).collect(); + let instances: Vec> = instances + .iter() + .map(|i| i.iter().map(|c| &c[..]).collect()) + .collect(); + let instances: Vec<_> = instances.iter().map(|i| &i[..]).collect(); + + let mut transcript = Blake2bWrite::<_, vesta::Affine, _>::init(vec![]); + plonk::create_proof( + &pk.params, + &pk.pk, + circuits, + &instances, + &mut rng, + &mut transcript, + )?; + Ok(Proof(transcript.finalize())) + } + + /// Verifies this proof with the given instances. + pub fn verify(&self, vk: &VerifyingKey, instances: &[Instance]) -> Result<(), plonk::Error> { + let instances: Vec<_> = instances.iter().map(|i| i.to_halo2_instance()).collect(); + let instances: Vec> = instances + .iter() + .map(|i| i.iter().map(|c| &c[..]).collect()) + .collect(); + let instances: Vec<_> = instances.iter().map(|i| &i[..]).collect(); + + let strategy = SingleVerifier::new(&vk.params); + let mut transcript = Blake2bRead::init(&self.0[..]); + plonk::verify_proof(&vk.params, &vk.vk, strategy, &instances, &mut transcript) + } + + // /// Adds this proof to the given batch for verification with the given instances. + // /// + // /// Use this API if you want more control over how proof batches are processed. If you + // /// just want to batch-validate Orchard bundles, use [`bundle::BatchValidator`]. + // /// + // /// [`bundle::BatchValidator`]: crate::bundle::BatchValidator + // pub fn add_to_batch(&self, batch: &mut BatchVerifier, instances: Vec) { + // let instances = instances + // .iter() + // .map(|i| { + // i.to_halo2_instance() + // .into_iter() + // .map(|c| c.into_iter().collect()) + // .collect() + // }) + // .collect(); + + // batch.add_proof(instances, self.0.clone()); + // } +} + +#[cfg(test)] +mod tests { + use alloc::vec::Vec; + use core::iter; + + use halo2_proofs::{circuit::Value, dev::MockProver}; + use pasta_curves::pallas; + use rand::{rngs::OsRng, RngCore}; + + use super::{Circuit, Instance, Proof, ProvingKey, VerifyingKey, K}; + use crate::{ + address::RecpAddr, + circuit::gadget::secp256k1_chip::{Secp256k1Fp, Secp256k1Fq}, + keys::{EligibleSk, SpendValidatingKey}, + note::{Note, Rho}, + tree::MerklePath, + value::{NoteDenom, NoteValue, ValueCommitTrapdoor, ValueCommitment}, + }; + + fn generate_circuit_instance(mut rng: R) -> (Circuit, Instance) { + let (_, fvk, esk, spent_note) = Note::dummy(&mut rng, None); + let (epkx, epky) = esk.epk().xy(); + // 1. Generate secp256k1 key pair (esk, epk) + let e_sk_fq = Secp256k1Fq::from_bytes(&esk.secret_bytes()).expect("valid Fq"); + let epkx = Secp256k1Fp::from_bytes(&epkx).expect("valid Fp"); + let epky = Secp256k1Fp::from_bytes(&epky).expect("valid Fp"); + let sender_address = spent_note.recipient(); + let nk = *fvk.nk(); + let nf = spent_note.nullifier(); + let rho = Rho::from_nf_old(nf); + + // let rivk = fvk.rivk(fvk.scope_for_address(&spent_note.recipient()).unwrap()); + // let ak: SpendValidatingKey = fvk.into(); + // let alpha = pallas::Scalar::random(&mut rng); + // let rk = ak.randomize(&alpha); + // let vsum = spent_note.value() - output_note.value(); + // let cv_net = ValueCommitment::derive(vsum, rcv.clone()); + // let rcv = ValueCommitTrapdoor::random(&mut rng); + + let cmx = spent_note.commitment().into(); + let nd = spent_note.nd(); + let v = spent_note.value(); + let recp = spent_note.recipient(); + + let path = MerklePath::dummy(&mut rng); + let anchor = path.root(spent_note.commitment().into()); + + ( + Circuit { + path: Value::known(path.auth_path()), + pos: Value::known(path.position()), + nk: Value::known(nk), + nd: Value::known(spent_note.nd().to_fp()), + v: Value::known(spent_note.value()), + fdi: Value::known(pallas::Base::from(spent_note.fdi())), + recp: Value::known(recp.to_pallas()), + esk: Value::known(e_sk_fq), + epkx: Value::known(epkx), + epky: Value::known(epky), + rho_old: Value::known(spent_note.rho()), + psi_old: Value::known(spent_note.rseed().psi(&spent_note.rho())), + rcm_old: Value::known(spent_note.rseed().rcm(&spent_note.rho())), + cm_old: Value::known(spent_note.commitment()), + // alpha: Value::known(alpha), + // ak: Value::known(ak), + // nk: Value::known(nk), + // rivk: Value::known(rivk), + // g_d_new: Value::known(output_note.recipient().g_d()), + // pk_d_new: Value::known(*output_note.recipient().pk_d()), + // v_new: Value::known(output_note.value()), + // psi_new: Value::known(output_note.rseed().psi(&output_note.rho())), + // rcm_new: Value::known(output_note.rseed().rcm(&output_note.rho())), + // rcv: Value::known(rcv), + }, + Instance { + anchor, + nd, + v, + recp, + nf, + cmx, + // rk, + // enable_spend: true, + // enable_output: true, + }, + ) + } + + // TODO: recast as a proptest + #[test] + fn round_trip() { + let mut rng = OsRng; + + let (circuits, instances): (Vec<_>, Vec<_>) = iter::once(()) + .map(|()| generate_circuit_instance(&mut rng)) + .unzip(); + + let vk = VerifyingKey::build(); + + // Test that the pinned verification key (representing the circuit) + // is as expected. + { + // panic!("{:#?}", vk.vk.pinned()); + assert_eq!( + format!("{:#?}\n", vk.vk.pinned()), + include_str!("circuit_description").replace("\r\n", "\n") + ); + } + + // Test that the proof size is as expected. + let expected_proof_size = { + let circuit_cost = + halo2_proofs::dev::CircuitCost::::measure( + K, + &circuits[0], + ); + assert_eq!(usize::from(circuit_cost.proof_size(1)), 4992); + assert_eq!(usize::from(circuit_cost.proof_size(2)), 7264); + usize::from(circuit_cost.proof_size(instances.len())) + }; + + for (circuit, instance) in circuits.iter().zip(instances.iter()) { + assert_eq!( + MockProver::run( + K, + circuit, + instance + .to_halo2_instance() + .iter() + .map(|p| p.to_vec()) + .collect() + ) + .unwrap() + .verify(), + Ok(()) + ); + } + + let pk = ProvingKey::build(); + let proof = Proof::create(&pk, &circuits, &instances, &mut rng).unwrap(); + assert!(proof.verify(&vk, &instances).is_ok()); + assert_eq!(proof.0.len(), expected_proof_size); + } + + #[test] + fn serialized_proof_test_case() { + use std::io::{Read, Write}; + + let vk = VerifyingKey::build(); + + fn write_test_case( + mut w: W, + instance: &Instance, + proof: &Proof, + ) -> std::io::Result<()> { + w.write_all(&instance.anchor.to_bytes())?; + w.write_all(&instance.nd.as_bytes())?; + w.write_all(&instance.v.to_bytes())?; + w.write_all(&instance.recp.to_bytes())?; + w.write_all(&instance.nf.to_bytes())?; + w.write_all(&instance.cmx.to_bytes())?; + // w.write_all(&<[u8; 32]>::from(instance.rk.clone()))?; + // w.write_all(&[ + // u8::from(instance.enable_spend), + // u8::from(instance.enable_output), + // ])?; + + w.write_all(proof.as_ref())?; + Ok(()) + } + + fn read_test_case(mut r: R) -> std::io::Result<(Instance, Proof)> { + let read_8_bytes = |r: &mut R| { + let mut ret = [0u8; 8]; + r.read_exact(&mut ret).unwrap(); + ret + }; + let read_32_bytes = |r: &mut R| { + let mut ret = [0u8; 32]; + r.read_exact(&mut ret).unwrap(); + ret + }; + let read_bool = |r: &mut R| { + let mut byte = [0u8; 1]; + r.read_exact(&mut byte).unwrap(); + match byte { + [0] => false, + [1] => true, + _ => panic!("Unexpected non-boolean byte"), + } + }; + + let anchor = crate::Anchor::from_bytes(read_32_bytes(&mut r)).unwrap(); + let v = NoteValue::from_bytes(read_8_bytes(&mut r)); + let nd = NoteDenom::new_for_proof(&hex::encode(&read_32_bytes(&mut r))); + let nf_old = crate::note::Nullifier::from_bytes(&read_32_bytes(&mut r)).unwrap(); + let recp = RecpAddr::new(read_32_bytes(&mut r)); + let cmx = + crate::note::ExtractedNoteCommitment::from_bytes(&read_32_bytes(&mut r)).unwrap(); + + let instance = Instance::from_parts(anchor, nd, v, recp, nf_old, cmx); + + let mut proof_bytes = vec![]; + r.read_to_end(&mut proof_bytes)?; + let proof = Proof::new(proof_bytes); + + Ok((instance, proof)) + } + + if std::env::var_os("ORCHARD_CIRCUIT_TEST_GENERATE_NEW_PROOF").is_some() { + let create_proof = || -> std::io::Result<()> { + let mut rng = OsRng; + + let (circuit, instance) = generate_circuit_instance(OsRng); + let instances = &[instance.clone()]; + + let pk = ProvingKey::build(); + let proof = Proof::create(&pk, &[circuit], instances, &mut rng).unwrap(); + assert!(proof.verify(&vk, instances).is_ok()); + + let file = std::fs::File::create("circuit_proof_test_case.bin")?; + write_test_case(file, &instance, &proof) + }; + create_proof().expect("should be able to write new proof"); + } + + // Parse the hardcoded proof test case. + let (instance, proof) = { + let test_case_bytes = include_bytes!("circuit_proof_test_case.bin"); + read_test_case(&test_case_bytes[..]).expect("proof must be valid") + }; + assert_eq!(proof.0.len(), 4992); + + assert!(proof.verify(&vk, &[instance]).is_ok()); + } + + #[cfg(feature = "dev-graph")] + #[test] + fn print_action_circuit() { + use plotters::prelude::*; + + let root = BitMapBackend::new("action-circuit-layout.png", (1024, 768)).into_drawing_area(); + root.fill(&WHITE).unwrap(); + let root = root + .titled("Headstash Action Circuit", ("sans-serif", 60)) + .unwrap(); + + let circuit = Circuit { + path: Value::unknown(), + pos: Value::unknown(), + esk: Value::unknown(), + epkx: Value::unknown(), + epky: Value::unknown(), + rho_old: Value::unknown(), + psi_old: Value::unknown(), + rcm_old: Value::unknown(), + cm_old: Value::unknown(), + fdi: Value::unknown(), + nd: Value::unknown(), + recp: Value::unknown(), + v: Value::unknown(), + // alpha: Value::unknown(), + // ak: Value::unknown(), + nk: Value::unknown(), + // rivk: Value::unknown(), + // g_d_new: Value::unknown(), + // pk_d_new: Value::unknown(), + // v_new: Value::unknown(), + // psi_new: Value::unknown(), + // rcm_new: Value::unknown(), + rcv: Value::unknown(), + }; + halo2_proofs::dev::CircuitLayout::default() + .show_labels(false) + .view_height(0..(1 << 11)) + .render(K, &circuit, &root) + .unwrap(); + } +} diff --git a/zk-crates/zk-headstash/src/circuit/commit_ivk.rs b/zk-crates/zk-headstash/src/circuit/commit_ivk.rs new file mode 100644 index 0000000..351cb46 --- /dev/null +++ b/zk-crates/zk-headstash/src/circuit/commit_ivk.rs @@ -0,0 +1,909 @@ +use core::iter; + +use group::ff::{Field, PrimeField}; +use halo2_proofs::{ + circuit::{AssignedCell, Layouter, Value}, + plonk::{Advice, Column, ConstraintSystem, Constraints, Error, Expression, Selector}, + poly::Rotation, +}; +use pasta_curves::pallas; + +use crate::constants::{OrchardCommitDomains, OrchardFixedBases, OrchardHashDomains, T_P}; +use halo2_gadgets::{ + ecc::{chip::EccChip, ScalarFixed, X}, + sinsemilla::{chip::SinsemillaChip, CommitDomain, Message, MessagePiece}, + utilities::{bool_check, RangeConstrained}, +}; + +#[derive(Clone, Debug)] +pub struct CommitIvkConfig { + q_commit_ivk: Selector, + advices: [Column; 10], +} + +#[derive(Clone, Debug)] +pub struct CommitIvkChip { + config: CommitIvkConfig, +} + +impl CommitIvkChip { + pub(in crate::circuit) fn configure( + meta: &mut ConstraintSystem, + advices: [Column; 10], + ) -> CommitIvkConfig { + let q_commit_ivk = meta.selector(); + + let config = CommitIvkConfig { + q_commit_ivk, + advices, + }; + + // + // We need to hash `ak || nk` where each of `ak`, `nk` is a field element (255 bits). + // + // a = bits 0..=249 of `ak` + // b = b_0||b_1||b_2` + // = (bits 250..=253 of `ak`) || (bit 254 of `ak`) || (bits 0..=4 of `nk`) + // c = bits 5..=244 of `nk` + // d = d_0||d_1` = (bits 245..=253 of `nk`) || (bit 254 of `nk`) + // + // `a`, `b`, `c`, `d` have been constrained by the Sinsemilla hash to be: + // - a: 250 bits, + // - b: 10 bits, + // - c: 240 bits, + // - d: 10 bits + // + // https://p.z.cash/orchard-0.1:commit-ivk-decompositions + // https://p.z.cash/orchard-0.1:commit-ivk-region-layout?partial + /* + The pieces are laid out in this configuration: + + | A_0 | A_1 | A_2 | A_3 | A_4 | A_5 | A_6 | A_7 | A_8 | q_commit_ivk | + ----------------------------------------------------------------------------------------------------- + | ak | a | b | b_0 | b_1 | b_2 | z13_a | a_prime | z13_a_prime | 1 | + | nk | c | d | d_0 | d_1 | | z13_c | b2_c_prime| z14_b2_c_prime | 0 | + + */ + meta.create_gate("CommitIvk canonicity check", |meta| { + let q_commit_ivk = meta.query_selector(config.q_commit_ivk); + + // Useful constants + let two_pow_4 = pallas::Base::from(1 << 4); + let two_pow_5 = pallas::Base::from(1 << 5); + let two_pow_9 = two_pow_4 * two_pow_5; + let two_pow_250 = pallas::Base::from_u128(1 << 125).square(); + let two_pow_254 = two_pow_250 * two_pow_4; + + let ak = meta.query_advice(config.advices[0], Rotation::cur()); + let nk = meta.query_advice(config.advices[0], Rotation::next()); + + // `a` is constrained by the Sinsemilla hash to be 250 bits. + let a = meta.query_advice(config.advices[1], Rotation::cur()); + // `b` is constrained by the Sinsemilla hash to be 10 bits. + let b_whole = meta.query_advice(config.advices[2], Rotation::cur()); + // `c` is constrained by the Sinsemilla hash to be 240 bits. + let c = meta.query_advice(config.advices[1], Rotation::next()); + // `d` is constrained by the Sinsemilla hash to be 10 bits. + let d_whole = meta.query_advice(config.advices[2], Rotation::next()); + + // b = b_0||b_1||b_2` + // = (bits 250..=253 of `ak`) || (bit 254 of `ak`) || (bits 0..=4 of `nk`) + // + // b_0 has been constrained outside this gate to be a four-bit value. + let b_0 = meta.query_advice(config.advices[3], Rotation::cur()); + // This gate constrains b_1 to be a one-bit value. + let b_1 = meta.query_advice(config.advices[4], Rotation::cur()); + // b_2 has been constrained outside this gate to be a five-bit value. + let b_2 = meta.query_advice(config.advices[5], Rotation::cur()); + // Check that b_whole is consistent with the witnessed subpieces. + let b_decomposition_check = + b_whole - (b_0.clone() + b_1.clone() * two_pow_4 + b_2.clone() * two_pow_5); + + // d = d_0||d_1` = (bits 245..=253 of `nk`) || (bit 254 of `nk`) + // + // d_0 has been constrained outside this gate to be a nine-bit value. + let d_0 = meta.query_advice(config.advices[3], Rotation::next()); + // This gate constrains d_1 to be a one-bit value. + let d_1 = meta.query_advice(config.advices[4], Rotation::next()); + // Check that d_whole is consistent with the witnessed subpieces. + let d_decomposition_check = d_whole - (d_0.clone() + d_1.clone() * two_pow_9); + + // Check `b_1` and `d_1` are each a single-bit value. + // https://p.z.cash/orchard-0.1:commit-ivk-bit-lengths?partial + let b1_bool_check = bool_check(b_1.clone()); + let d1_bool_check = bool_check(d_1.clone()); + + // Check that ak = a (250 bits) || b_0 (4 bits) || b_1 (1 bit) + let ak_decomposition_check = + a.clone() + b_0.clone() * two_pow_250 + b_1.clone() * two_pow_254 - ak; + + // Check that nk = b_2 (5 bits) || c (240 bits) || d_0 (9 bits) || d_1 (1 bit) + let nk_decomposition_check = { + let two_pow_245 = pallas::Base::from(1 << 49).pow([5, 0, 0, 0]); + + b_2.clone() + + c.clone() * two_pow_5 + + d_0.clone() * two_pow_245 + + d_1.clone() * two_pow_254 + - nk + }; + + // ak = a (250 bits) || b_0 (4 bits) || b_1 (1 bit) + // The `ak` canonicity checks are enforced if and only if `b_1` = 1. + // https://p.z.cash/orchard-0.1:commit-ivk-canonicity-ak?partial + let ak_canonicity_checks = { + // b_1 = 1 => b_0 = 0 + let b0_canon_check = b_1.clone() * b_0; + + // z13_a is the 13th running sum output by the 10-bit Sinsemilla decomposition of `a`. + // b_1 = 1 => z13_a = 0 + let z13_a_check = { + let z13_a = meta.query_advice(config.advices[6], Rotation::cur()); + b_1.clone() * z13_a + }; + + // Check that a_prime = a + 2^130 - t_P. + // This is checked regardless of the value of b_1. + let a_prime_check = { + let a_prime = meta.query_advice(config.advices[7], Rotation::cur()); + let two_pow_130 = + Expression::Constant(pallas::Base::from_u128(1 << 65).square()); + let t_p = Expression::Constant(pallas::Base::from_u128(T_P)); + a + two_pow_130 - t_p - a_prime + }; + + // Check that the running sum output by the 130-bit little-endian decomposition of + // `a_prime` is zero. + let z13_a_prime = { + let z13_a_prime = meta.query_advice(config.advices[8], Rotation::cur()); + b_1 * z13_a_prime + }; + + iter::empty() + .chain(Some(("b0_canon_check", b0_canon_check))) + .chain(Some(("z13_a_check", z13_a_check))) + .chain(Some(("a_prime_check", a_prime_check))) + .chain(Some(("z13_a_prime", z13_a_prime))) + }; + + // nk = b_2 (5 bits) || c (240 bits) || d_0 (9 bits) || d_1 (1 bit) + // The `nk` canonicity checks are enforced if and only if `d_1` = 1. + // https://p.z.cash/orchard-0.1:commit-ivk-canonicity-nk?partial + let nk_canonicity_checks = { + // d_1 = 1 => d_0 = 0 + let c0_canon_check = d_1.clone() * d_0; + + // d_1 = 1 => z13_c = 0, where z13_c is the 13th running sum + // output by the 10-bit Sinsemilla decomposition of `c`. + let z13_c_check = { + let z13_c = meta.query_advice(config.advices[6], Rotation::next()); + d_1.clone() * z13_c + }; + + // Check that b2_c_prime = b_2 + c * 2^5 + 2^140 - t_P. + // This is checked regardless of the value of d_1. + let b2_c_prime_check = { + let two_pow_5 = pallas::Base::from(1 << 5); + let two_pow_140 = + Expression::Constant(pallas::Base::from_u128(1 << 70).square()); + let t_p = Expression::Constant(pallas::Base::from_u128(T_P)); + let b2_c_prime = meta.query_advice(config.advices[7], Rotation::next()); + b_2 + c * two_pow_5 + two_pow_140 - t_p - b2_c_prime + }; + + // Check that the running sum output by the 140-bit little- + // endian decomposition of b2_c_prime is zero. + let z14_b2_c_prime = { + let z14_b2_c_prime = meta.query_advice(config.advices[8], Rotation::next()); + d_1 * z14_b2_c_prime + }; + + iter::empty() + .chain(Some(("c0_canon_check", c0_canon_check))) + .chain(Some(("z13_c_check", z13_c_check))) + .chain(Some(("b2_c_prime_check", b2_c_prime_check))) + .chain(Some(("z14_b2_c_prime", z14_b2_c_prime))) + }; + + Constraints::with_selector( + q_commit_ivk, + iter::empty() + .chain(Some(("b1_bool_check", b1_bool_check))) + .chain(Some(("d1_bool_check", d1_bool_check))) + .chain(Some(("b_decomposition_check", b_decomposition_check))) + .chain(Some(("d_decomposition_check", d_decomposition_check))) + .chain(Some(("ak_decomposition_check", ak_decomposition_check))) + .chain(Some(("nk_decomposition_check", nk_decomposition_check))) + .chain(ak_canonicity_checks) + .chain(nk_canonicity_checks), + ) + }); + + config + } + + pub(in crate::circuit) fn construct(config: CommitIvkConfig) -> Self { + Self { config } + } +} + +pub(in crate::circuit) mod gadgets { + use halo2_gadgets::utilities::{ + lookup_range_check::{LookupRangeCheck, LookupRangeCheckConfig}, + RangeConstrained, + }; + use halo2_proofs::circuit::Chip; + + use super::*; + + /// `Commit^ivk` from [Section 5.4.8.4 Sinsemilla commitments]. + /// + /// [Section 5.4.8.4 Sinsemilla commitments]: https://zips.z.cash/protocol/protocol.pdf#concretesinsemillacommit + #[allow(non_snake_case)] + #[allow(clippy::type_complexity)] + pub(in crate::circuit) fn commit_ivk( + sinsemilla_chip: SinsemillaChip< + OrchardHashDomains, + OrchardCommitDomains, + OrchardFixedBases, + >, + ecc_chip: EccChip, + commit_ivk_chip: CommitIvkChip, + mut layouter: impl Layouter, + ak: AssignedCell, + nk: AssignedCell, + rivk: ScalarFixed>, + ) -> Result>, Error> { + let lookup_config = sinsemilla_chip.config().lookup_config(); + + // We need to hash `ak || nk` where each of `ak`, `nk` is a field element (255 bits). + // + // a = bits 0..=249 of `ak` + // b = b_0||b_1||b_2` + // = (bits 250..=253 of `ak`) || (bit 254 of `ak`) || (bits 0..=4 of `nk`) + // c = bits 5..=244 of `nk` + // d = d_0||d_1` = (bits 245..=253 of `nk`) || (bit 254 of `nk`) + // + // We start by witnessing all of the individual pieces, and range-constraining + // the short pieces b_0, b_2, and d_0. + // + // https://p.z.cash/orchard-0.1:commit-ivk-bit-lengths?partial + + // `a` = bits 0..=249 of `ak` + let a = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "a"), + [RangeConstrained::bitrange_of(ak.value(), 0..250)], + )?; + + // `b = b_0||b_1||b_2` + // = (bits 250..=253 of `ak`) || (bit 254 of `ak`) || (bits 0..=4 of `nk`) + let (b_0, b_1, b_2, b) = { + // Constrain b_0 to be 4 bits. + let b_0 = RangeConstrained::witness_short( + &lookup_config, + layouter.namespace(|| "b_0"), + ak.value(), + 250..254, + )?; + // b_1 will be boolean-constrained in the custom gate. + let b_1 = RangeConstrained::bitrange_of(ak.value(), 254..255); + // Constrain b_2 to be 5 bits. + let b_2 = RangeConstrained::witness_short( + &lookup_config, + layouter.namespace(|| "b_2"), + nk.value(), + 0..5, + )?; + + let b = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "b = b_0 || b_1 || b_2"), + [b_0.value(), b_1, b_2.value()], + )?; + + (b_0, b_1, b_2, b) + }; + + // c = bits 5..=244 of `nk` + let c = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "c"), + [RangeConstrained::bitrange_of(nk.value(), 5..245)], + )?; + + // `d = d_0||d_1` = (bits 245..=253 of `nk`) || (bit 254 of `nk`) + let (d_0, d_1, d) = { + // Constrain d_0 to be 9 bits. + let d_0 = RangeConstrained::witness_short( + &lookup_config, + layouter.namespace(|| "d_0"), + nk.value(), + 245..254, + )?; + // d_1 will be boolean-constrained in the custom gate. + let d_1 = RangeConstrained::bitrange_of(nk.value(), 254..255); + + let d = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "d = d_0 || d_1"), + [d_0.value(), d_1], + )?; + + (d_0, d_1, d) + }; + + // ivk = Commit^ivk_rivk(I2LEBSP_255(ak) || I2LEBSP_255(nk)) + // + // `ivk = ⊥` is handled internally to `CommitDomain::short_commit`: incomplete + // addition constraints allows ⊥ to occur, and then during synthesis it detects + // these edge cases and raises an error (aborting proof creation). + // + // https://p.z.cash/ZKS:action-addr-integrity?partial + let (ivk, zs) = { + let message = Message::from_pieces( + sinsemilla_chip.clone(), + vec![a.clone(), b.clone(), c.clone(), d.clone()], + ); + let domain = + CommitDomain::new(sinsemilla_chip, ecc_chip, &OrchardCommitDomains::CommitIvk); + domain.short_commit(layouter.namespace(|| "Hash ak||nk"), message, rivk)? + }; + + // `CommitDomain::short_commit` returns the running sum for each `MessagePiece`. + // Grab the outputs for pieces `a` and `c` that we will need for canonicity checks + // on `ak` and `nk`. + let z13_a = zs[0][13].clone(); + let z13_c = zs[2][13].clone(); + + let (a_prime, z13_a_prime) = ak_canonicity( + &lookup_config, + layouter.namespace(|| "ak canonicity"), + a.inner().cell_value(), + )?; + + let (b2_c_prime, z14_b2_c_prime) = nk_canonicity( + &lookup_config, + layouter.namespace(|| "nk canonicity"), + &b_2, + c.inner().cell_value(), + )?; + + let gate_cells = GateCells { + a: a.inner().cell_value(), + b: b.inner().cell_value(), + c: c.inner().cell_value(), + d: d.inner().cell_value(), + ak, + nk, + b_0, + b_1, + b_2, + d_0, + d_1, + z13_a, + a_prime, + z13_a_prime, + z13_c, + b2_c_prime, + z14_b2_c_prime, + }; + + commit_ivk_chip.config.assign_gate( + layouter.namespace(|| "Assign cells used in canonicity gate"), + gate_cells, + )?; + + Ok(ivk) + } + + /// Witnesses and decomposes the `a'` value we need to check the canonicity of `ak`. + /// + /// [Specification](https://p.z.cash/orchard-0.1:commit-ivk-canonicity-ak?partial). + #[allow(clippy::type_complexity)] + fn ak_canonicity( + lookup_config: &LookupRangeCheckConfig, + mut layouter: impl Layouter, + a: AssignedCell, + ) -> Result< + ( + AssignedCell, + AssignedCell, + ), + Error, + > { + // `ak` = `a (250 bits) || b_0 (4 bits) || b_1 (1 bit)` + // - b_1 = 1 => b_0 = 0 + // - b_1 = 1 => a < t_P + // - (0 ≤ a < 2^130) => z13_a of SinsemillaHash(a) == 0 + // - 0 ≤ a + 2^130 - t_P < 2^130 (thirteen 10-bit lookups) + + // Decompose the low 130 bits of a_prime = a + 2^130 - t_P, and output + // the running sum at the end of it. If a_prime < 2^130, the running sum + // will be 0. + let a_prime = { + let two_pow_130 = Value::known(pallas::Base::from_u128(1u128 << 65).square()); + let t_p = Value::known(pallas::Base::from_u128(T_P)); + a.value() + two_pow_130 - t_p + }; + let zs = lookup_config.witness_check( + layouter.namespace(|| "Decompose low 130 bits of (a + 2^130 - t_P)"), + a_prime, + 13, + false, + )?; + let a_prime = zs[0].clone(); + assert_eq!(zs.len(), 14); // [z_0, z_1, ..., z13] + + Ok((a_prime, zs[13].clone())) + } + + /// Witnesses and decomposes the `b2c'` value we need to check the canonicity of `nk`. + /// + /// [Specification](https://p.z.cash/orchard-0.1:commit-ivk-canonicity-nk?partial). + #[allow(clippy::type_complexity)] + fn nk_canonicity( + lookup_config: &LookupRangeCheckConfig, + mut layouter: impl Layouter, + b_2: &RangeConstrained>, + c: AssignedCell, + ) -> Result< + ( + AssignedCell, + AssignedCell, + ), + Error, + > { + // `nk` = `b_2 (5 bits) || c (240 bits) || d_0 (9 bits) || d_1 (1 bit) + // - d_1 = 1 => d_0 = 0 + // - d_1 = 1 => b_2 + c * 2^5 < t_P + // - 0 ≤ b_2 + c * 2^5 < 2^140 + // - b_2 was constrained to be 5 bits. + // - z_13 of SinsemillaHash(c) constrains bits 5..=134 to 130 bits + // - so b_2 + c * 2^5 is constrained to be 135 bits < 2^140. + // - 0 ≤ b_2 + c * 2^5 + 2^140 - t_P < 2^140 (14 ten-bit lookups) + + // Decompose the low 140 bits of b2_c_prime = b_2 + c * 2^5 + 2^140 - t_P, and output + // the running sum at the end of it. If b2_c_prime < 2^140, the running sum will be 0. + let b2_c_prime = { + let two_pow_5 = Value::known(pallas::Base::from(1 << 5)); + let two_pow_140 = Value::known(pallas::Base::from_u128(1u128 << 70).square()); + let t_p = Value::known(pallas::Base::from_u128(T_P)); + b_2.inner().value() + c.value() * two_pow_5 + two_pow_140 - t_p + }; + let zs = lookup_config.witness_check( + layouter.namespace(|| "Decompose low 140 bits of (b_2 + c * 2^5 + 2^140 - t_P)"), + b2_c_prime, + 14, + false, + )?; + let b2_c_prime = zs[0].clone(); + assert_eq!(zs.len(), 15); // [z_0, z_1, ..., z14] + + Ok((b2_c_prime, zs[14].clone())) + } +} + +impl CommitIvkConfig { + /// Assign cells for the [canonicity gate]. + /// + /// [canonicity gate]: https://p.z.cash/orchard-0.1:commit-ivk-region-layout?partial + /* + The pieces are laid out in this configuration: + + | A_0 | A_1 | A_2 | A_3 | A_4 | A_5 | A_6 | A_7 | A_8 | q_commit_ivk | + ----------------------------------------------------------------------------------------------------- + | ak | a | b | b_0 | b_1 | b_2 | z13_a | a_prime | z13_a_prime | 1 | + | nk | c | d | d_0 | d_1 | | z13_c | b2_c_prime| z14_b2_c_prime | 0 | + + */ + fn assign_gate( + &self, + mut layouter: impl Layouter, + gate_cells: GateCells, + ) -> Result<(), Error> { + layouter.assign_region( + || "Assign cells used in canonicity gate", + |mut region| { + // Enable selector on offset 0 + self.q_commit_ivk.enable(&mut region, 0)?; + + // Offset 0 + { + let offset = 0; + // Copy in `ak` + gate_cells + .ak + .copy_advice(|| "ak", &mut region, self.advices[0], offset)?; + + // Copy in `a` + gate_cells + .a + .copy_advice(|| "a", &mut region, self.advices[1], offset)?; + + // Copy in `b` + gate_cells + .b + .copy_advice(|| "b", &mut region, self.advices[2], offset)?; + + // Copy in `b_0` + gate_cells.b_0.inner().copy_advice( + || "b_0", + &mut region, + self.advices[3], + offset, + )?; + + // Witness `b_1` + region.assign_advice( + || "Witness b_1", + self.advices[4], + offset, + || *gate_cells.b_1.inner(), + )?; + + // Copy in `b_2` + gate_cells.b_2.inner().copy_advice( + || "b_2", + &mut region, + self.advices[5], + offset, + )?; + + // Copy in z13_a + gate_cells.z13_a.copy_advice( + || "z13_a", + &mut region, + self.advices[6], + offset, + )?; + + // Copy in a_prime + gate_cells.a_prime.copy_advice( + || "a_prime", + &mut region, + self.advices[7], + offset, + )?; + + // Copy in z13_a_prime + gate_cells.z13_a_prime.copy_advice( + || "z13_a_prime", + &mut region, + self.advices[8], + offset, + )?; + } + + // Offset 1 + { + let offset = 1; + + // Copy in `nk` + gate_cells + .nk + .copy_advice(|| "nk", &mut region, self.advices[0], offset)?; + + // Copy in `c` + gate_cells + .c + .copy_advice(|| "c", &mut region, self.advices[1], offset)?; + + // Copy in `d` + gate_cells + .d + .copy_advice(|| "d", &mut region, self.advices[2], offset)?; + + // Copy in `d_0` + gate_cells.d_0.inner().copy_advice( + || "d_0", + &mut region, + self.advices[3], + offset, + )?; + + // Witness `d_1` + region.assign_advice( + || "Witness d_1", + self.advices[4], + offset, + || *gate_cells.d_1.inner(), + )?; + + // Copy in z13_c + gate_cells.z13_c.copy_advice( + || "z13_c", + &mut region, + self.advices[6], + offset, + )?; + + // Copy in b2_c_prime + gate_cells.b2_c_prime.copy_advice( + || "b2_c_prime", + &mut region, + self.advices[7], + offset, + )?; + + // Copy in z14_b2_c_prime + gate_cells.z14_b2_c_prime.copy_advice( + || "z14_b2_c_prime", + &mut region, + self.advices[8], + offset, + )?; + } + + Ok(()) + }, + ) + } +} + +// Cells used in the canonicity gate. +struct GateCells { + a: AssignedCell, + b: AssignedCell, + c: AssignedCell, + d: AssignedCell, + ak: AssignedCell, + nk: AssignedCell, + b_0: RangeConstrained>, + b_1: RangeConstrained>, + b_2: RangeConstrained>, + d_0: RangeConstrained>, + d_1: RangeConstrained>, + z13_a: AssignedCell, + a_prime: AssignedCell, + z13_a_prime: AssignedCell, + z13_c: AssignedCell, + b2_c_prime: AssignedCell, + z14_b2_c_prime: AssignedCell, +} + +#[cfg(test)] +mod tests { + use core::iter; + + use super::{gadgets, CommitIvkChip, CommitIvkConfig}; + use crate::constants::{ + fixed_bases::COMMIT_IVK_PERSONALIZATION, OrchardCommitDomains, OrchardFixedBases, + OrchardHashDomains, L_ORCHARD_BASE, T_Q, + }; + use group::ff::{Field, PrimeField, PrimeFieldBits}; + use halo2_gadgets::{ + ecc::{ + chip::{EccChip, EccConfig}, + ScalarFixed, + }, + sinsemilla::{ + chip::{SinsemillaChip, SinsemillaConfig}, + primitives::CommitDomain, + }, + utilities::{ + lookup_range_check::{LookupRangeCheck, LookupRangeCheckConfig}, + UtilitiesInstructions, + }, + }; + use halo2_proofs::{ + circuit::{AssignedCell, Layouter, SimpleFloorPlanner, Value}, + dev::MockProver, + plonk::{Circuit, ConstraintSystem, Error}, + }; + use pasta_curves::pallas; + use rand::rngs::OsRng; + + #[test] + fn commit_ivk() { + #[derive(Default)] + struct MyCircuit { + ak: Value, + nk: Value, + } + + impl UtilitiesInstructions for MyCircuit { + type Var = AssignedCell; + } + + impl Circuit for MyCircuit { + type Config = ( + SinsemillaConfig, + CommitIvkConfig, + EccConfig, + ); + type FloorPlanner = SimpleFloorPlanner; + + fn without_witnesses(&self) -> Self { + Self::default() + } + + fn configure(meta: &mut ConstraintSystem) -> Self::Config { + let advices = [ + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + ]; + + let constants = meta.fixed_column(); + meta.enable_constant(constants); + + for advice in advices.iter() { + meta.enable_equality(*advice); + } + + let table_idx = meta.lookup_table_column(); + let lookup = ( + table_idx, + meta.lookup_table_column(), + meta.lookup_table_column(), + ); + let lagrange_coeffs = [ + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + ]; + + let range_check = LookupRangeCheckConfig::configure(meta, advices[9], table_idx); + let sinsemilla_config = SinsemillaChip::< + OrchardHashDomains, + OrchardCommitDomains, + OrchardFixedBases, + >::configure( + meta, + advices[..5].try_into().unwrap(), + advices[2], + lagrange_coeffs[0], + lookup, + range_check, + false, + ); + + let commit_ivk_config = CommitIvkChip::configure(meta, advices); + + let ecc_config = EccChip::::configure( + meta, + advices, + lagrange_coeffs, + range_check, + ); + + (sinsemilla_config, commit_ivk_config, ecc_config) + } + + fn synthesize( + &self, + config: Self::Config, + mut layouter: impl Layouter, + ) -> Result<(), Error> { + let (sinsemilla_config, commit_ivk_config, ecc_config) = config; + + // Load the Sinsemilla generator lookup table used by the whole circuit. + SinsemillaChip::::load(sinsemilla_config.clone(), &mut layouter)?; + + // Construct a Sinsemilla chip + let sinsemilla_chip = SinsemillaChip::construct(sinsemilla_config); + + // Construct an ECC chip + let ecc_chip = EccChip::construct(ecc_config); + + let commit_ivk_chip = CommitIvkChip::construct(commit_ivk_config.clone()); + + // Witness ak + let ak = self.load_private( + layouter.namespace(|| "load ak"), + commit_ivk_config.advices[0], + self.ak, + )?; + + // Witness nk + let nk = self.load_private( + layouter.namespace(|| "load nk"), + commit_ivk_config.advices[0], + self.nk, + )?; + + // Use a random scalar for rivk + let rivk = pallas::Scalar::random(OsRng); + let rivk_gadget = ScalarFixed::new( + ecc_chip.clone(), + layouter.namespace(|| "rivk"), + Value::known(rivk), + )?; + + let ivk = gadgets::commit_ivk( + sinsemilla_chip, + ecc_chip, + commit_ivk_chip, + layouter.namespace(|| "CommitIvk"), + ak, + nk, + rivk_gadget, + )?; + + self.ak + .zip(self.nk) + .zip(ivk.inner().value()) + .assert_if_known(|((ak, nk), ivk)| { + let expected_ivk = { + let domain = CommitDomain::new(COMMIT_IVK_PERSONALIZATION); + // Hash ak || nk + domain + .short_commit( + iter::empty() + .chain( + ak.to_le_bits().iter().by_vals().take(L_ORCHARD_BASE), + ) + .chain( + nk.to_le_bits().iter().by_vals().take(L_ORCHARD_BASE), + ), + &rivk, + ) + .unwrap() + }; + + &&expected_ivk == ivk + }); + + Ok(()) + } + } + + let two_pow_254 = pallas::Base::from_u128(1 << 127).square(); + // Test different values of `ak`, `nk` + let circuits = [ + // `ak` = 0, `nk` = 0 + MyCircuit { + ak: Value::known(pallas::Base::zero()), + nk: Value::known(pallas::Base::zero()), + }, + // `ak` = T_Q - 1, `nk` = T_Q - 1 + MyCircuit { + ak: Value::known(pallas::Base::from_u128(T_Q - 1)), + nk: Value::known(pallas::Base::from_u128(T_Q - 1)), + }, + // `ak` = T_Q, `nk` = T_Q + MyCircuit { + ak: Value::known(pallas::Base::from_u128(T_Q)), + nk: Value::known(pallas::Base::from_u128(T_Q)), + }, + // `ak` = 2^127 - 1, `nk` = 2^127 - 1 + MyCircuit { + ak: Value::known(pallas::Base::from_u128((1 << 127) - 1)), + nk: Value::known(pallas::Base::from_u128((1 << 127) - 1)), + }, + // `ak` = 2^127, `nk` = 2^127 + MyCircuit { + ak: Value::known(pallas::Base::from_u128(1 << 127)), + nk: Value::known(pallas::Base::from_u128(1 << 127)), + }, + // `ak` = 2^254 - 1, `nk` = 2^254 - 1 + MyCircuit { + ak: Value::known(two_pow_254 - pallas::Base::one()), + nk: Value::known(two_pow_254 - pallas::Base::one()), + }, + // `ak` = 2^254, `nk` = 2^254 + MyCircuit { + ak: Value::known(two_pow_254), + nk: Value::known(two_pow_254), + }, + ]; + + for circuit in circuits.iter() { + let prover = MockProver::::run(11, circuit, vec![]).unwrap(); + assert_eq!(prover.verify(), Ok(())); + } + } +} diff --git a/zk-crates/zk-headstash/src/circuit/gadget.rs b/zk-crates/zk-headstash/src/circuit/gadget.rs new file mode 100644 index 0000000..51c4a8f --- /dev/null +++ b/zk-crates/zk-headstash/src/circuit/gadget.rs @@ -0,0 +1,208 @@ +//! Gadgets used in the Orchard circuit. + +use ff::Field; +use pasta_curves::pallas; + +use super::{commit_ivk::CommitIvkChip, note_commit::NoteCommitChip}; +use crate::constants::{ + NullifierK, OrchardCommitDomains, OrchardFixedBases, OrchardFixedBasesFull, OrchardHashDomains, + ValueCommitV, +}; +use halo2_gadgets::{ + ecc::{ + chip::EccChip, EccInstructions, FixedPoint, FixedPointBaseField, FixedPointShort, Point, + ScalarFixed, ScalarFixedShort, X, + }, + poseidon::{ + primitives::{self as poseidon, ConstantLength}, + Hash as PoseidonHash, PoseidonSpongeInstructions, Pow5Chip as PoseidonChip, + }, + sinsemilla::{chip::SinsemillaChip, merkle::chip::MerkleChip}, +}; +use halo2_proofs::{ + circuit::{AssignedCell, Chip, Layouter, Value}, + plonk::{self, Advice, Assigned, Column}, +}; + +pub(in crate::circuit) mod add_chip; +pub(in crate::circuit) mod secp256k1_chip; + +#[cfg(test)] +mod secp256k1_chip_tests; + +impl super::Config { + pub(super) fn add_chip(&self) -> add_chip::AddChip { + add_chip::AddChip::construct(self.add_config.clone()) + } + + pub(super) fn commit_ivk_chip(&self) -> CommitIvkChip { + CommitIvkChip::construct(self.commit_ivk_config.clone()) + } + + pub(super) fn ecc_chip(&self) -> EccChip { + EccChip::construct(self.ecc_config.clone()) + } + + pub(super) fn sinsemilla_chip_1( + &self, + ) -> SinsemillaChip { + SinsemillaChip::construct(self.sinsemilla_config_1.clone()) + } + + pub(super) fn sinsemilla_chip_2( + &self, + ) -> SinsemillaChip { + SinsemillaChip::construct(self.sinsemilla_config_2.clone()) + } + + pub(super) fn merkle_chip_1( + &self, + ) -> MerkleChip { + MerkleChip::construct(self.merkle_config_1.clone()) + } + + pub(super) fn merkle_chip_2( + &self, + ) -> MerkleChip { + MerkleChip::construct(self.merkle_config_2.clone()) + } + + pub(super) fn poseidon_chip(&self) -> PoseidonChip { + PoseidonChip::construct(self.poseidon_config.clone()) + } + + pub(super) fn note_commit_chip_new(&self) -> NoteCommitChip { + NoteCommitChip::construct(self.new_note_commit_config.clone()) + } + + pub(super) fn note_commit_chip_old(&self) -> NoteCommitChip { + NoteCommitChip::construct(self.old_note_commit_config.clone()) + } +} + +/// An instruction set for adding two circuit words (field elements). +pub(in crate::circuit) trait AddInstruction: Chip { + /// Constraints `a + b` and returns the sum. + fn add( + &self, + layouter: impl Layouter, + a: &AssignedCell, + b: &AssignedCell, + ) -> Result, plonk::Error>; +} + +/// Witnesses the given value in a standalone region. +/// +/// Usages of this helper are technically superfluous, as the single-cell region is only +/// ever used in equality constraints. We could eliminate them with a +/// [write-on-copy abstraction](https://github.com/zcash/halo2/issues/334). +pub(in crate::circuit) fn assign_free_advice( + mut layouter: impl Layouter, + column: Column, + value: Value, +) -> Result, plonk::Error> +where + for<'v> Assigned: From<&'v V>, +{ + layouter.assign_region( + || "load private", + |mut region| region.assign_advice(|| "load private", column, 0, || value), + ) +} + +/// `ValueCommit^Orchard` from [Section 5.4.8.3 Homomorphic Pedersen commitments (Sapling and Orchard)]. +/// +/// [Section 5.4.8.3 Homomorphic Pedersen commitments (Sapling and Orchard)]: https://zips.z.cash/protocol/protocol.pdf#concretehomomorphiccommit +pub(in crate::circuit) fn value_commit_orchard< + EccChip: EccInstructions< + pallas::Affine, + FixedPoints = OrchardFixedBases, + Var = AssignedCell, + >, +>( + mut layouter: impl Layouter, + ecc_chip: EccChip, + v: ScalarFixedShort, + rcv: ScalarFixed, +) -> Result, plonk::Error> { + // commitment = [v] ValueCommitV + let (commitment, _) = { + let value_commit_v = ValueCommitV; + let value_commit_v = FixedPointShort::from_inner(ecc_chip.clone(), value_commit_v); + value_commit_v.mul(layouter.namespace(|| "[v] ValueCommitV"), v)? + }; + + // blind = [rcv] ValueCommitR + let (blind, _rcv) = { + let value_commit_r = OrchardFixedBasesFull::ValueCommitR; + let value_commit_r = FixedPoint::from_inner(ecc_chip, value_commit_r); + + // [rcv] ValueCommitR + value_commit_r.mul(layouter.namespace(|| "[rcv] ValueCommitR"), rcv)? + }; + + // [v] ValueCommitV + [rcv] ValueCommitR + commitment.add(layouter.namespace(|| "cv"), &blind) +} + +/// `DeriveNullifier` from [Section 4.16: Note Commitments and Nullifiers]. +/// +/// [Section 4.16: Note Commitments and Nullifiers]: https://zips.z.cash/protocol/protocol.pdf#commitmentsandnullifiers +#[allow(clippy::too_many_arguments)] +pub(in crate::circuit) fn derive_nullifier< + PoseidonChip: PoseidonSpongeInstructions, 3, 2>, + AddChip: AddInstruction, + EccChip: EccInstructions< + pallas::Affine, + FixedPoints = OrchardFixedBases, + Var = AssignedCell, + >, +>( + mut layouter: impl Layouter, + poseidon_chip: PoseidonChip, + add_chip: AddChip, + ecc_chip: EccChip, + rho: AssignedCell, + psi: &AssignedCell, + cm: &Point, + nk: AssignedCell, +) -> Result, plonk::Error> { + // hash = poseidon_hash(nk, rho) + let hash = { + let poseidon_message = [nk, rho]; + let poseidon_hasher = + PoseidonHash::init(poseidon_chip, layouter.namespace(|| "Poseidon init"))?; + poseidon_hasher.hash( + layouter.namespace(|| "Poseidon hash (nk, rho)"), + poseidon_message, + )? + }; + + // Add hash output to psi. + // `scalar` = poseidon_hash(nk, rho) + psi. + let scalar = add_chip.add( + layouter.namespace(|| "scalar = poseidon_hash(nk, rho) + psi"), + &hash, + psi, + )?; + + // Multiply scalar by NullifierK + // `product` = [poseidon_hash(nk, rho) + psi] NullifierK. + // + let product = { + let nullifier_k = FixedPointBaseField::from_inner(ecc_chip, NullifierK); + nullifier_k.mul( + layouter.namespace(|| "[poseidon_output + psi] NullifierK"), + scalar, + )? + }; + + // Add cm to multiplied fixed base to get nf + // cm + [poseidon_output + psi] NullifierK + cm.add(layouter.namespace(|| "nf"), &product) + .map(|res| res.extract_p()) +} + +pub(in crate::circuit) use crate::circuit::commit_ivk::gadgets::commit_ivk; +pub(in crate::circuit) use crate::circuit::headstash_merkle_tree::derive_leaf; +pub(in crate::circuit) use crate::circuit::note_commit::gadgets::note_commit; diff --git a/zk-crates/zk-headstash/src/circuit/gadget/add_chip.rs b/zk-crates/zk-headstash/src/circuit/gadget/add_chip.rs new file mode 100644 index 0000000..0973a3f --- /dev/null +++ b/zk-crates/zk-headstash/src/circuit/gadget/add_chip.rs @@ -0,0 +1,81 @@ +use halo2_proofs::{ + circuit::{AssignedCell, Chip, Layouter}, + plonk::{self, Advice, Column, ConstraintSystem, Constraints, Selector}, + poly::Rotation, +}; +use pasta_curves::pallas; + +use super::AddInstruction; + +#[derive(Clone, Debug)] +pub(in crate::circuit) struct AddConfig { + a: Column, + b: Column, + c: Column, + q_add: Selector, +} + +/// A chip implementing a single addition constraint `c = a + b` on a single row. +pub(in crate::circuit) struct AddChip { + config: AddConfig, +} + +impl Chip for AddChip { + type Config = AddConfig; + type Loaded = (); + + fn config(&self) -> &Self::Config { + &self.config + } + + fn loaded(&self) -> &Self::Loaded { + &() + } +} + +impl AddChip { + pub(in crate::circuit) fn configure( + meta: &mut ConstraintSystem, + a: Column, + b: Column, + c: Column, + ) -> AddConfig { + let q_add = meta.selector(); + meta.create_gate("Field element addition: c = a + b", |meta| { + let q_add = meta.query_selector(q_add); + let a = meta.query_advice(a, Rotation::cur()); + let b = meta.query_advice(b, Rotation::cur()); + let c = meta.query_advice(c, Rotation::cur()); + + Constraints::with_selector(q_add, Some(a + b - c)) + }); + + AddConfig { a, b, c, q_add } + } + + pub(in crate::circuit) fn construct(config: AddConfig) -> Self { + Self { config } + } +} + +impl AddInstruction for AddChip { + fn add( + &self, + mut layouter: impl Layouter, + a: &AssignedCell, + b: &AssignedCell, + ) -> Result, plonk::Error> { + layouter.assign_region( + || "c = a + b", + |mut region| { + self.config.q_add.enable(&mut region, 0)?; + + a.copy_advice(|| "copy a", &mut region, self.config.a, 0)?; + b.copy_advice(|| "copy b", &mut region, self.config.b, 0)?; + + let scalar_val = a.value().zip(b.value()).map(|(a, b)| a + b); + region.assign_advice(|| "c", self.config.c, 0, || scalar_val) + }, + ) + } +} diff --git a/zk-crates/zk-headstash/src/circuit/gadget/secp256k1_chip.rs b/zk-crates/zk-headstash/src/circuit/gadget/secp256k1_chip.rs new file mode 100644 index 0000000..6369651 --- /dev/null +++ b/zk-crates/zk-headstash/src/circuit/gadget/secp256k1_chip.rs @@ -0,0 +1,1560 @@ +//! Secp256k1 curve arithmetic chips using FOREIGN FIELD ARITHMETIC +//! +//! **CRITICAL: This is FOREIGN field arithmetic!** +//! - **Native field**: Pallas::Base (~255 bits) - the field our circuit operates in +//! - **Foreign fields**: secp256k1::Fp and secp256k1::Fq (both 256 bits) - DON'T fit in Pallas! +//! - **Representation**: Each 256-bit foreign field element → 3 limbs × 88 bits using CRT +//! +//! We represent secp256k1 curve points as (x, y) where x and y are **CRT integers**, +//! NOT native affine points. All operations happen through limb arithmetic. +//! +//! Foreign prime field arithmetic chip +//! +//! This module implements arithmetic for prime fields that are "foreign" to the +//! native circuit field (Pallas). It uses CRT representation with limbs to represent +//! field elements that don't fit in the native field. +//! +//! Adapted from halo2-ecc::fields::fp but refactored to use native halo2 patterns. + +use ff::{Field, PrimeField}; +use halo2_base::halo2_proofs::halo2curves::secp256k1::{Fp, Fq}; +use halo2_base::halo2_proofs::halo2curves::serde::SerdeObject; +use halo2_gadgets::utilities::lookup_range_check::{LookupRangeCheck, LookupRangeCheckConfig}; +use halo2_proofs::circuit::Region; +use halo2_proofs::plonk::{Expression, Selector}; +use halo2_proofs::poly::Rotation; +use halo2_proofs::{ + circuit::{AssignedCell, Layouter, Value}, + plonk::{Advice, Column, ConstraintSystem, Error as PlonkError}, +}; +use pasta_curves::pallas; +use secp256k1::constants::{GENERATOR_X, GENERATOR_Y}; + +type SecpPoint = (ProperCrtUint, ProperCrtUint); +/// Type alias for secp256k1 base field (Fp) chip. This chip represents Fp elements as CRT integers with 88-bit limbs +pub type Secp256k1Fp = Fp; +pub type Secp256k1FpChip = FpChip; +/// Type alias for secp256k1 scalar field (Fq) chip.This chip represents Fq elements as CRT integers with 88-bit limbs +pub type Secp256k1Fq = Fq; +pub type Secp256k1FqChip = FpChip; + +use crate::spec::{ + biguint_to_fe_simple, fe_to_biguint_for_field, fe_to_biguint_simple, to_native_out_of_circuit, +}; + +use halo2_base::utils::{modulus, BigPrimeField}; + +use num_bigint::{BigInt, BigUint}; +use num_traits::{One, Zero}; + +use std::marker::PhantomData; +use std::vec::Vec; + +/// An integer represented as a vector of limbs with possible overflow. +/// +/// The integer value is: sum_i limbs[i] * 2^(limb_bits * i) +/// +/// Each limb can potentially overflow beyond `limb_bits`, hence `max_limb_bits` +/// tracks the maximum number of bits any limb might have (including overflow). +#[derive(Clone, Debug)] +pub struct OverflowInteger { + pub limbs: Vec>, + /// Maximum number of bits any limb might have (ignoring sign) + pub max_limb_bits: usize, +} + +impl OverflowInteger { + pub fn new(limbs: Vec>, max_limb_bits: usize) -> Self { + Self { + limbs, + max_limb_bits, + } + } + + pub fn num_limbs(&self) -> usize { + self.limbs.len() + } + + /// Merge x and y coordinates by computing their native representations and concatenating bytes. + fn derive_merged_epk(x: &Secp256k1Fp, y: &Secp256k1Fp) -> Vec { + let native_x = to_native_out_of_circuit(x); + let native_y = to_native_out_of_circuit(y); + let mut bytes = Vec::new(); + bytes.extend_from_slice(&native_x.to_repr()); + bytes.extend_from_slice(&native_y.to_repr()); + bytes + } +} + +/// A "proper" unsigned integer where each limb is guaranteed to be in range [0, 2^limb_bits). +/// +/// This is a safe wrapper around a BigUint represented as limbs in **little endian**. +/// The value represented is: sum_i limbs[i] * 2^(limb_bits * i) +#[derive(Clone, Debug)] +pub struct ProperUint { + pub limbs: Vec>, +} + +impl ProperUint { + pub fn new(limbs: Vec>) -> Self { + Self { limbs } + } + + pub fn num_limbs(&self) -> usize { + self.limbs.len() + } + + pub fn into_overflow(self, limb_bits: usize) -> OverflowInteger { + OverflowInteger::new(self.limbs, limb_bits) + } +} + +/// CRT (Chinese Remainder Theorem) representation of an integer. +/// +/// Tracks an integer `a` using: +/// - `truncation`: `a mod 2^t` where `t = num_limbs * limb_bits` +/// - `native`: `a mod n` where `n = modulus::()` +/// - `value`: the actual integer value (for witness computation) +/// +/// IMPLICIT ASSUMPTION: `value ≡ truncation (mod 2^t)` AND `value ≡ native (mod n)` +/// +/// This representation allows us to work with integers larger than the native field +/// while still being able to constrain operations in the circuit. +#[derive(Clone, Debug)] +pub struct CrtInteger { + /// The limb representation: value mod 2^t + pub truncation: OverflowInteger, + /// The native field representation: value mod n + pub native: AssignedCell, + /// The actual integer value (for witness computation) + pub value: Value, +} + +impl CrtInteger { + pub fn new( + truncation: OverflowInteger, + native: AssignedCell, + value: Value, + ) -> Self { + Self { + truncation, + native, + value, + } + } + + pub fn num_limbs(&self) -> usize { + self.truncation.num_limbs() + } +} + +/// A "proper" CRT integer where the truncation limbs are guaranteed to be in proper range. +pub type ProperCrtUint = CrtInteger; + +/// Fixed (constant) representation of a BigUint as limbs. +/// +/// This is used for constants that will be loaded into the circuit. +#[derive(Clone, Debug)] +pub struct FixedOverflowInteger { + pub limbs: Vec, +} + +/// Get the modulus of a prime field without requiring BigPrimeField trait. +/// +/// This works for any prime field that implements PrimeField. +/// The modulus is computed as: modulus = -1 + 1 = p +pub fn modulus_simple() -> BigUint { + crate::spec::fe_to_biguint_for_field(&-F::ONE) + 1u64 +} + +impl FixedOverflowInteger { + /// Create a fixed integer from a BigUint by decomposing into limbs. + pub fn from_native(value: &BigUint, num_limbs: usize, limb_bits: usize) -> Self { + let limbs = crate::spec::decompose_biguint_simple(value, num_limbs, limb_bits); + Self { limbs } + } + + /// Convert back to BigUint (for testing/debugging). + pub fn to_biguint(&self, limb_bits: usize) -> BigUint { + self.limbs.iter().rev().fold(BigUint::zero(), |acc, x| { + (acc << limb_bits) + crate::spec::fe_to_biguint_simple(x) + }) + } +} + +/// Configuration for big integer operations. +/// +/// This uses 3 advice columns for basic operations: +/// - Two columns for inputs (a, b) +/// - One column for output (c) +/// +/// This is a simplified version adapted from halo2-ecc. +#[derive(Clone, Debug)] +pub struct BigIntConfig { + /// Advice columns for operations [a, b, c] + pub advices: [Column; 3], + /// Selector for enabling constraints + pub q_enable: Selector, +} + +impl BigIntConfig { + pub fn configure( + meta: &mut ConstraintSystem, + advices: [Column; 3], + ) -> Self { + let q_enable = meta.selector(); + + // Enable equality for all advice columns + for advice in advices.iter() { + meta.enable_equality(*advice); + } + + Self { advices, q_enable } + } +} + +/// Chip for big integer operations using CRT representation. +/// +/// This is adapted from halo2-ecc::bigint but uses native halo2 patterns. +#[derive(Clone, Debug)] +pub struct BigIntChip { + pub config: BigIntConfig, + pub limb_bits: usize, + pub num_limbs: usize, +} + +impl BigIntChip { + pub fn construct(config: BigIntConfig, limb_bits: usize, num_limbs: usize) -> Self { + assert!(limb_bits > 0); + assert!(num_limbs > 0); + Self { + config, + limb_bits, + num_limbs, + } + } + + /// Assign a constant BigUint as limbs in the circuit. + pub fn assign_constant( + &self, + region: &mut Region<'_, pallas::Base>, + offset: usize, + value: &BigUint, + ) -> Result, PlonkError> { + let fixed = FixedOverflowInteger::from_native(value, self.num_limbs, self.limb_bits); + + let mut limbs = Vec::with_capacity(self.num_limbs); + for (i, &limb_value) in fixed.limbs.iter().enumerate() { + let cell = region.assign_advice( + || format!("constant limb {}", i), + self.config.advices[0], + offset + i, + || Value::known(limb_value), + )?; + limbs.push(cell); + } + + Ok(ProperUint::new(limbs)) + } + + /// Assign a witness BigUint as limbs in the circuit. + pub fn assign_witness( + &self, + region: &mut Region<'_, pallas::Base>, + offset: usize, + value: Value<&BigUint>, + ) -> Result, PlonkError> { + let mut limbs = Vec::with_capacity(self.num_limbs); + + for i in 0..self.num_limbs { + let limb_value = value.map(|v| { + let limb_vals = + crate::spec::decompose_biguint_simple(v, self.num_limbs, self.limb_bits); + limb_vals[i] + }); + + let cell = region.assign_advice( + || format!("witness limb {}", i), + self.config.advices[0], + offset + i, + || limb_value, + )?; + limbs.push(cell); + } + + Ok(ProperUint::new(limbs)) + } +} + +// implement AddInstructions +// implement Field Traits for common functionality + +/// Trait for foreign field instructions. +pub trait FpInstructions { + /// Load a constant foreign field element. + fn load_constant( + &self, + layouter: impl Layouter, + v: Fp, + ) -> Result, PlonkError>; + + /// Load a private (witness) foreign field element. + fn load_private( + &self, + layouter: impl Layouter, + value: Value, + ) -> Result, PlonkError>; + + /// Range check all limbs. + fn range_check_limbs( + &self, + layouter: impl Layouter, + a: &ProperCrtUint, + ) -> Result<(), PlonkError>; + + /// Convert to native field representation. + fn to_native( + &self, + layouter: impl Layouter, + a: &ProperCrtUint, + ) -> Result, PlonkError>; + + fn enforce_zero( + &self, + layouter: impl Layouter, + num: &ProperCrtUint, + ) -> Result<(), PlonkError>; + fn enforce_equal( + &self, + layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result<(), PlonkError>; + + /// Add two foreign field elements: c = a + b mod p + fn add( + &self, + layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result, PlonkError>; + + /// Subtract two foreign field elements: c = a - b mod p + fn sub( + &self, + layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result, PlonkError>; + + /// Multiply two foreign field elements: c = a * b mod p + fn mul( + &self, + layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result, PlonkError>; + + /// Divide two foreign field elements: c = a / b mod p + fn div( + &self, + layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result, PlonkError>; +} + +/// Configuration for foreign prime field arithmetic. +#[derive(Clone, Debug)] +pub struct FpConfig { + /// Advice columns for field operations + pub advices: [Column; 3], + /// Selector for enabling field operation constraints + pub q_enable: Selector, + /// Range check configuration (shared with other chips) + pub range_check: LookupRangeCheckConfig, +} + +impl FpConfig { + pub fn configure( + meta: &mut ConstraintSystem, + advices: [Column; 3], + range_check: LookupRangeCheckConfig, + ) -> Self { + let q_enable = meta.selector(); + + // Enable equality for all advice columns + for advice in advices.iter() { + meta.enable_equality(*advice); + } + + // TODO: Add custom gates for field operations (add, sub, mul, etc.) + // For now we rely on composing basic gates + + Self { + advices, + q_enable, + range_check, + } + } +} + +/// Chip for foreign prime field arithmetic. +/// +/// `F` is the native field (Pallas::Base) +/// `Fp` is the foreign prime field we're emulating (e.g., secp256k1::Fp or secp256k1::Fq) +#[derive(Clone, Debug)] +pub struct FpChip { + pub config: FpConfig, + pub limb_bits: usize, + pub num_limbs: usize, + + // Precomputed values + pub limb_bases: Vec, + pub limb_base_big: BigInt, + pub limb_mask: BigUint, + + /// The modulus of the foreign field + pub p: BigInt, + /// The modulus decomposed into limbs + pub p_limbs: Vec, + /// The modulus reduced into native field + pub p_native: pallas::Base, + /// The native field modulus + pub native_modulus: BigUint, + + _marker: PhantomData, +} + +impl FpChip { + /// Create a new FpChip. + /// + /// # Arguments + /// * `config` - The configuration for this chip + /// * `limb_bits` - Number of bits per limb (should be 88 for secp256k1) + /// * `num_limbs` - Number of limbs (should be 3 for secp256k1) + pub fn construct(config: FpConfig, limb_bits: usize, num_limbs: usize) -> Self { + assert!(limb_bits > 0); + assert!(num_limbs > 0); + // Limb bits must fit in native field capacity + assert!(limb_bits <= pallas::Base::CAPACITY as usize); + + let limb_mask = (BigUint::from(1u64) << limb_bits) - 1usize; + let p = modulus_simple::(); + let p_limbs = crate::spec::decompose_biguint_simple(&p, num_limbs, limb_bits); + let native_modulus = modulus_simple::(); + let p_native = biguint_to_fe_simple(&(&p % &native_modulus)); + + // Compute limb bases: [1, 2^limb_bits, 2^(2*limb_bits), ...] + let limb_base = biguint_to_fe_simple(&(BigUint::one() << limb_bits)); + let mut limb_bases = Vec::with_capacity(num_limbs); + limb_bases.push(pallas::Base::ONE); + while limb_bases.len() != num_limbs { + limb_bases.push(limb_base * limb_bases.last().unwrap()); + } + + Self { + config, + limb_bits, + num_limbs, + limb_bases, + limb_base_big: BigInt::one() << limb_bits, + limb_mask, + p: p.into(), + p_limbs, + p_native, + native_modulus, + _marker: PhantomData, + } + } + + /// Assign a constant foreign field element. + /// + /// This loads a constant value from `Fp` into the circuit as a CRT integer. + pub fn load_constant( + &self, + mut layouter: impl Layouter, + v: Fp, + ) -> Result, PlonkError> { + layouter.assign_region( + || "load constant Fp", + |mut region| self.assign_constant(&mut region, 0, v), + ) + } + + /// Assign a constant in a given region. + fn assign_constant( + &self, + region: &mut Region<'_, pallas::Base>, + offset: usize, + v: Fp, + ) -> Result, PlonkError> { + self.assign_constant_biguint(region, offset, &fe_to_biguint_for_field(&v)) + } + + /// Assign a constant BigUint as a CRT integer. + fn assign_constant_biguint( + &self, + region: &mut Region<'_, pallas::Base>, + offset: usize, + value: &BigUint, + ) -> Result, PlonkError> { + let fixed = FixedOverflowInteger::from_native(value, self.num_limbs, self.limb_bits); + + // Assign limbs + let mut limbs = Vec::with_capacity(self.num_limbs); + for (i, &limb_value) in fixed.limbs.iter().enumerate() { + let cell = region.assign_advice( + || format!("constant limb {}", i), + self.config.advices[0], + offset + i, + || Value::known(limb_value), + )?; + limbs.push(cell); + } + + // Compute native representation: sum_i limbs[i] * limb_bases[i] + let native_value = fixed + .limbs + .iter() + .zip(self.limb_bases.iter()) + .fold(pallas::Base::ZERO, |acc, (&limb, &base)| acc + limb * base); + + let native_cell = region.assign_advice( + || "constant native", + self.config.advices[1], + offset, + || Value::known(native_value), + )?; + + Ok(CrtInteger::new( + OverflowInteger::new(limbs, self.limb_bits), + native_cell, + Value::known(value.clone().into()), + )) + } + + /// Assign a witness foreign field element. + /// + /// This takes a witness value from `Fp` and assigns it to the circuit as a CRT integer. + pub fn load_private( + &self, + mut layouter: impl Layouter, + value: Value, + ) -> Result, PlonkError> { + layouter.assign_region( + || "load private Fp", + |mut region| self.assign_private(&mut region, 0, value), + ) + } + + /// Assign a witness value in a given region. + fn assign_private( + &self, + region: &mut Region<'_, pallas::Base>, + offset: usize, + value: Value, + ) -> Result, PlonkError> { + // Convert to BigUint and decompose into limbs + let value_big = value.map(|v| fe_to_biguint_for_field(&v)); + let limb_values: Vec> = (0..self.num_limbs) + .map(|i| { + value_big.as_ref().map(|v| { + let limbs = + crate::spec::decompose_biguint_simple(v, self.num_limbs, self.limb_bits); + limbs[i] + }) + }) + .collect(); + + // Assign limbs + let mut limbs = Vec::with_capacity(self.num_limbs); + for (i, limb_value) in limb_values.iter().enumerate() { + let cell = region.assign_advice( + || format!("witness limb {}", i), + self.config.advices[0], + offset + i, + || *limb_value, + )?; + limbs.push(cell); + } + + // Compute native representation + let native_value = value.map(|v| { + let v_big = fe_to_biguint_for_field(&v); + let v_native_big = &v_big % &self.native_modulus; + biguint_to_fe_simple(&v_native_big) + }); + + let native_cell = region.assign_advice( + || "witness native", + self.config.advices[1], + offset, + || native_value, + )?; + + let value_bigint = value.map(|v| BigInt::from(fe_to_biguint_for_field(&v))); + + Ok(CrtInteger::new( + OverflowInteger::new(limbs, self.limb_bits), + native_cell, + value_bigint, + )) + } + + /// Range check all limbs of a foreign field element. + /// + /// This ensures each limb is in range [0, 2^limb_bits). + /// Ex: For 88-bit limbs with K=10, we need 9 words (88 bits / 10 bits per word = 8.8 → 9) + pub fn range_check_limbs( + &self, + mut layouter: impl Layouter, + a: &ProperCrtUint, + ) -> Result<(), PlonkError> { + // Calculate number of K-bit words needed for each limb + // K = 10 (from LookupRangeCheckConfig<_, 10>) + const K: usize = 10; + let num_words = (self.limb_bits + K - 1) / K; // Ceiling division: 88/10 = 9 + + for (i, limb) in a.truncation.limbs.iter().enumerate() { + self.config.range_check.copy_check( + layouter.namespace(|| format!("range check limb {}", i)), + limb.clone(), + num_words, // Pass number of K-bit words, not total bits + false, + )?; + } + Ok(()) + } + + /// Convert a secp256k1 Fq element to native Pallas::Base. + /// + /// This extracts the native field representation from a CRT integer. + /// The result is `value mod p_native` where `p_native` is the Pallas modulus. + pub fn to_native( + &self, + _layouter: impl Layouter, + a: &ProperCrtUint, + ) -> Result, PlonkError> { + // The native representation is already computed in the CRT integer + Ok(a.native.clone()) + } + + /// Add two foreign field elements: c = a + b mod p + /// + /// Performs limb-wise addition with carry propagation and modular reduction. + pub fn add( + &self, + mut layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result, PlonkError> { + layouter.assign_region( + || "fp add", + |mut region| { + // Compute witness: c = (a + b) mod p + let c_val = a.value.clone().zip(b.value.as_ref()).map(|(a_val, b_val)| { + let sum = a_val + b_val; + (&sum % &self.p + &self.p) % &self.p + }); + + // Decompose result into limbs + let c_limbs_vals: Vec> = (0..self.num_limbs) + .map(|i| { + c_val.as_ref().map(|val| { + let c_biguint = val.to_biguint().expect("positive"); + let limbs = crate::spec::decompose_biguint_simple( + &c_biguint, + self.num_limbs, + self.limb_bits, + ); + limbs[i] + }) + }) + .collect(); + + // Assign result limbs + let mut c_limbs = Vec::with_capacity(self.num_limbs); + for (i, limb_val) in c_limbs_vals.iter().enumerate() { + let cell = region.assign_advice( + || format!("c[{}]", i), + self.config.advices[2], + i, + || *limb_val, + )?; + c_limbs.push(cell); + } + + // Compute native representation + let c_native_val = c_val.as_ref().map(|val| { + let c_biguint = val.to_biguint().expect("positive"); + let c_native_big = &c_biguint % &self.native_modulus; + biguint_to_fe_simple(&c_native_big) + }); + + let c_native = region.assign_advice( + || "c_native", + self.config.advices[1], + 0, + || c_native_val, + )?; + + // Constraint: a_native + b_native = c_native (mod native_modulus) + // This is automatically enforced by the representation since we computed c_native correctly + + Ok(CrtInteger::new( + OverflowInteger::new(c_limbs, self.limb_bits), + c_native, + c_val, + )) + }, + ) + } + + /// Subtract two foreign field elements: c = a - b mod p + /// + /// Performs limb-wise subtraction with borrow propagation and modular reduction. + pub fn sub( + &self, + mut layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result, PlonkError> { + layouter.assign_region( + || "fp sub", + |mut region| { + // Compute witness: c = (a - b) mod p + let c_val = a.value.clone().zip(b.value.as_ref()).map(|(a_val, b_val)| { + let diff = a_val - b_val; + ((&diff % &self.p) + &self.p) % &self.p + }); + + // Decompose result into limbs + let c_limbs_vals: Vec> = (0..self.num_limbs) + .map(|i| { + c_val.as_ref().map(|val| { + let c_biguint = val.to_biguint().expect("positive"); + let limbs = crate::spec::decompose_biguint_simple( + &c_biguint, + self.num_limbs, + self.limb_bits, + ); + limbs[i] + }) + }) + .collect(); + + // Assign result limbs + let mut c_limbs = Vec::with_capacity(self.num_limbs); + for (i, limb_val) in c_limbs_vals.iter().enumerate() { + let cell = region.assign_advice( + || format!("c[{}]", i), + self.config.advices[2], + i, + || *limb_val, + )?; + c_limbs.push(cell); + } + + // Compute native representation + let c_native_val = c_val.as_ref().map(|val| { + let c_biguint = val.to_biguint().expect("positive"); + let c_native_big = &c_biguint % &self.native_modulus; + biguint_to_fe_simple(&c_native_big) + }); + + let c_native = region.assign_advice( + || "c_native", + self.config.advices[1], + 0, + || c_native_val, + )?; + + Ok(CrtInteger::new( + OverflowInteger::new(c_limbs, self.limb_bits), + c_native, + c_val, + )) + }, + ) + } + + /// Multiply two foreign field elements: c = a * b mod p + /// + /// Performs multi-precision multiplication with modular reduction. + pub fn mul( + &self, + mut layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result, PlonkError> { + layouter.assign_region( + || "fp mul", + |mut region| { + // Compute witness: c = (a * b) mod p + let c_val = a.value.clone().zip(b.value.as_ref()).map(|(a_val, b_val)| { + let prod = a_val * b_val; + &prod % &self.p + }); + + // Decompose result into limbs + let c_limbs_vals: Vec> = (0..self.num_limbs) + .map(|i| { + c_val.as_ref().map(|val| { + let c_biguint = val.to_biguint().expect("positive"); + let limbs = crate::spec::decompose_biguint_simple( + &c_biguint, + self.num_limbs, + self.limb_bits, + ); + limbs[i] + }) + }) + .collect(); + + // Assign result limbs + let mut c_limbs = Vec::with_capacity(self.num_limbs); + for (i, limb_val) in c_limbs_vals.iter().enumerate() { + let cell = region.assign_advice( + || format!("c[{}]", i), + self.config.advices[2], + i, + || *limb_val, + )?; + c_limbs.push(cell); + } + + // Compute native representation + let c_native_val = c_val.as_ref().map(|val| { + let c_biguint = val.to_biguint().expect("positive"); + let c_native_big = &c_biguint % &self.native_modulus; + biguint_to_fe_simple(&c_native_big) + }); + + let c_native = region.assign_advice( + || "c_native", + self.config.advices[1], + 0, + || c_native_val, + )?; + + // Constraint: a_native * b_native = c_native (mod native_modulus) + // The CRT representation ensures this relationship holds + + Ok(CrtInteger::new( + OverflowInteger::new(c_limbs, self.limb_bits), + c_native, + c_val, + )) + }, + ) + } + + /// Divide two foreign field elements: c = a / b mod p = a * b^(-1) mod p + /// + /// Computes modular inverse of b and multiplies by a. + /// Constrains that c * b = a (mod p). + pub fn div( + &self, + mut layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result, PlonkError> { + layouter.assign_region( + || "fp div", + |mut region| { + use num_traits::identities::{One, Zero}; + + // Extended Euclidean algorithm helper (inside closure to access in map) + fn extended_gcd_internal(a: &BigInt, b: &BigInt) -> (BigInt, BigInt, BigInt) { + if b.is_zero() { + return (a.clone(), BigInt::one(), BigInt::zero()); + } + let (gcd, x1, y1) = extended_gcd_internal(b, &(a % b)); + let x = y1.clone(); + let y = x1 - (a / b) * &y1; + (gcd, x, y) + } + + // Compute witness: c = a / b = a * b^(-1) mod p + let p_biguint = self.p.to_biguint().expect("positive"); + let p_int = BigInt::from(p_biguint.clone()); + + let c_val = a.value.clone().zip(b.value.as_ref()).map(|(a_val, b_val)| { + let b_biguint = b_val.to_biguint().expect("positive"); + let b_int = BigInt::from(b_biguint.clone()); + + // Compute modular inverse using extended GCD + let (gcd, x, _y) = extended_gcd_internal(&b_int, &p_int); + + // Ensure inverse is positive + let b_inv_int = ((&x % &p_int) + &p_int) % &p_int; + let b_inv_biguint = b_inv_int.to_biguint().expect("positive"); + + // c = a * b^(-1) mod p + let a_biguint = a_val.to_biguint().expect("positive"); + let c_biguint = (&a_biguint * &b_inv_biguint) % &p_biguint; + BigInt::from(c_biguint) + }); + + // Decompose result into limbs (each is Value) + let c_limbs_vals: Vec> = (0..self.num_limbs) + .map(|i| { + c_val.as_ref().map(|val| { + let c_biguint = val.to_biguint().expect("positive"); + let limbs = crate::spec::decompose_biguint_simple( + &c_biguint, + self.num_limbs, + self.limb_bits, + ); + limbs[i] + }) + }) + .collect(); + + // Assign result limbs + let mut c_limbs = Vec::with_capacity(self.num_limbs); + for (i, limb_val) in c_limbs_vals.iter().enumerate() { + let cell = region.assign_advice( + || format!("c[{}]", i), + self.config.advices[2], + i, + || *limb_val, + )?; + c_limbs.push(cell); + } + + // Compute native representation + let c_native_val = c_val.as_ref().map(|val| { + let c_biguint = val.to_biguint().expect("positive"); + let c_native_big = &c_biguint % &self.native_modulus; + biguint_to_fe_simple(&c_native_big) + }); + + let c_native = region.assign_advice( + || "c_native", + self.config.advices[1], + 0, + || c_native_val, + )?; + + // Constraint: c * b = a (mod p) + // This is verified by the CRT representation: + // (c_native * b_native) mod native_modulus should equal a_native + + Ok(CrtInteger::new( + OverflowInteger::new(c_limbs, self.limb_bits), + c_native, + c_val, + )) + }, + ) + } +} + +impl FpInstructions for FpChip { + fn load_constant( + &self, + layouter: impl Layouter, + v: Fp, + ) -> Result, PlonkError> { + FpChip::load_constant(self, layouter, v) + } + + fn load_private( + &self, + layouter: impl Layouter, + v: Value, + ) -> Result, PlonkError> { + FpChip::load_private(self, layouter, v) + } + + fn range_check_limbs( + &self, + layouter: impl Layouter, + a: &ProperCrtUint, + ) -> Result<(), PlonkError> { + FpChip::range_check_limbs(self, layouter, a) + } + + fn to_native( + &self, + lo: impl Layouter, + a: &ProperCrtUint, + ) -> Result, PlonkError> { + FpChip::to_native(self, lo, a) + } + + fn enforce_zero( + &self, + mut layouter: impl Layouter, + num: &ProperCrtUint, + ) -> Result<(), PlonkError> { + layouter.assign_region( + || "enforce zero", + |mut region| { + for (i, limb) in num.truncation.limbs.iter().enumerate() { + limb.copy_advice( + || format!("limb {}", i), + &mut region, + self.config.advices[0], + i, + )?; + region.constrain_constant(limb.cell(), pallas::Base::ZERO)?; + } + Ok(()) + }, + ) + } + + fn enforce_equal( + &self, + mut layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result<(), PlonkError> { + let diff = self.sub(layouter.namespace(|| "diff"), a, b)?; + self.enforce_zero(layouter.namespace(|| "enforce zero"), &diff) + } + + fn add( + &self, + layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result, PlonkError> { + FpChip::add(self, layouter, a, b) + } + + fn sub( + &self, + layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result, PlonkError> { + FpChip::sub(self, layouter, a, b) + } + + fn mul( + &self, + layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result, PlonkError> { + FpChip::mul(self, layouter, a, b) + } + + fn div( + &self, + layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + ) -> Result, PlonkError> { + FpChip::div(self, layouter, a, b) + } +} + +/// Configuration for secp256k1 elliptic curve operations. +/// +/// This includes both the base field (Fp) and scalar field (Fq) configurations. +#[derive(Clone, Debug)] +pub struct Secp256k1Config { + /// Configuration for base field (Fp) operations + pub fp_config: FpConfig, + /// Configuration for scalar field (Fq) operations + pub fq_config: FpConfig, + q: Selector, +} + +impl Secp256k1Config { + /// Configure the secp256k1 chip. + /// + /// # Arguments + /// * `meta` - The constraint system + /// * `fp_advices` - Advice columns for Fp operations + /// * `fq_advices` - Advice columns for Fq operations + /// * `range_check` - Shared range check configuration + pub fn configure( + meta: &mut ConstraintSystem, + fp_advices: [Column; 3], + fq_advices: [Column; 3], + range_check: LookupRangeCheckConfig, + ) -> Self { + let fp_config = FpConfig::configure(meta, fp_advices, range_check.clone()); + let fq_config = FpConfig::configure(meta, fq_advices, range_check); + + let q = meta.selector(); + + meta.create_gate("scalar decomposition step", |meta| { + let q = meta.query_selector(q); + let current = meta.query_advice(fq_advices[0], Rotation::cur()); + let bit = meta.query_advice(fq_advices[1], Rotation::cur()); + let current_prime = meta.query_advice(fq_advices[0], Rotation::next()); + + vec![ + q.clone() + * (current + - (Expression::Constant(pallas::Base::one().double()) * current_prime + + bit.clone())), + q * bit.clone() * (bit - Expression::Constant(pallas::Base::one())), + ] + }); + + Self { + fp_config, + fq_config, + q, + } + } +} + +/// Chip for secp256k1 elliptic curve operations using foreign field arithmetic. +/// +/// This provides high-level operations like scalar multiplication (key pairing). +/// All operations work with CRT-represented field elements, NOT native curve types. +#[derive(Clone, Debug)] +pub struct Secp256k1Chip { + /// Chip for base field (Fp) operations - for curve point coordinates + pub fp: Secp256k1FpChip, + /// Chip for scalar field (Fq) operations - for secret keys + pub fq: Secp256k1FqChip, + q: Selector, +} + +impl Secp256k1Chip { + /// Construct a new Secp256k1Chip from configuration. + /// + /// Uses 3x88 bits limbs (88 * 3 = 264 bits > 256 bits). + pub fn construct(config: Secp256k1Config) -> Self { + const LIMB_BITS: usize = 88; + const NUM_LIMBS: usize = 3; + + Self { + fp: Secp256k1FpChip::construct(config.fp_config, LIMB_BITS, NUM_LIMBS), + fq: Secp256k1FqChip::construct(config.fq_config, LIMB_BITS, NUM_LIMBS), + q: config.q, + } + } + fn decompose_limb_to_bits( + &self, + mut layouter: impl Layouter, + limb: &AssignedCell, + ) -> Result>, PlonkError> { + let mut bits = Vec::with_capacity(88); + + let inv2 = pallas::Base::invert(&pallas::Base::from(2)).unwrap(); + + layouter.assign_region( + || "decompose limb to bits", + |mut region: Region<'_, pallas::Base>| { + let mut current_offset = 0; + limb.copy_advice( + || "copy limb", + &mut region, + self.fq.config.advices[0], + current_offset, + )?; + + let mut current_value = limb.value().cloned(); + let mut last_assigned: Option> = None; + + for _ in 0..88 { + self.q.enable(&mut region, current_offset)?; + + let bit_val = current_value.map(|v| { + let repr = v.to_repr(); + pallas::Base::from((repr[0] & 1) as u64) + }); + let bit_cell = region.assign_advice( + || "bit", + self.fq.config.advices[1], + current_offset, + || bit_val, + )?; + + bits.push(bit_cell); + + let next_val = current_value + .zip(bit_val) + .map(|(current, bit)| (current - bit) * inv2); + region.assign_advice( + || "next current", + self.fq.config.advices[0], + current_offset + 1, + || next_val, + )?; + + current_value = next_val; + current_offset += 1; + } + + // Constrain the final current to zero + if let Some(final_assigned) = last_assigned { + region.constrain_constant(final_assigned.cell(), pallas::Base::zero())?; + } + Ok(()) + }, + )?; + + Ok(bits) + } + + fn decompose_scalar_to_bits( + &self, + mut layouter: impl Layouter, + sk: &ProperCrtUint, + ) -> Result>, PlonkError> { + let mut bits = Vec::new(); + for limb in sk.truncation.limbs.iter() { + let limb_bits = + self.decompose_limb_to_bits(layouter.namespace(|| "decompose limb"), limb)?; + bits.extend(limb_bits); + } + + // Truncate to 256 bits (upper bits should be zero since sk < Fq < 2^256) + bits.truncate(256); + + Ok(bits) + } + + fn add_point( + &self, + mut layouter: impl Layouter, + p: &SecpPoint, + q: &SecpPoint, + ) -> Result, PlonkError> { + let fp = &self.fp; + + let dy = fp.sub(layouter.namespace(|| "dy"), &q.1, &p.1)?; + let dx = fp.sub(layouter.namespace(|| "dx"), &q.0, &p.0)?; + let lambda = fp.div(layouter.namespace(|| "lambda"), &dy, &dx)?; + let lambda_sq = fp.mul(layouter.namespace(|| "lambda_sq"), &lambda, &lambda)?; + let x3 = fp.sub(layouter.namespace(|| "x3 part1"), &lambda_sq, &p.0)?; + let x3 = fp.sub(layouter.namespace(|| "x3"), &x3, &q.0)?; + let dx_new = fp.sub(layouter.namespace(|| "dx_new"), &p.0, &x3)?; + let temp = fp.mul(layouter.namespace(|| "temp"), &lambda, &dx_new)?; + let y3 = fp.sub(layouter.namespace(|| "y3"), &temp, &p.1)?; + Ok((x3, y3)) + } + + fn double_point( + &self, + mut layouter: impl Layouter, + p: &SecpPoint, + ) -> Result, PlonkError> { + let fp = &self.fp; + + let three = fp.load_private( + layouter.namespace(|| "three"), + Value::known(Secp256k1Fp::from(3)), + )?; + let two = fp.load_private( + layouter.namespace(|| "two"), + Value::known(Secp256k1Fp::from(2)), + )?; + let x_sq = fp.mul(layouter.namespace(|| "x_sq"), &p.0, &p.0)?; + let three_x_sq = fp.mul(layouter.namespace(|| "three_x_sq"), &three, &x_sq)?; + let two_y = fp.mul(layouter.namespace(|| "two_y"), &two, &p.1)?; + let lambda = fp.div(layouter.namespace(|| "lambda"), &three_x_sq, &two_y)?; + let lambda_sq = fp.mul(layouter.namespace(|| "lambda_sq"), &lambda, &lambda)?; + let two_x = fp.mul(layouter.namespace(|| "two_x"), &two, &p.0)?; + let x3 = fp.sub(layouter.namespace(|| "x3"), &lambda_sq, &two_x)?; + let dx = fp.sub(layouter.namespace(|| "dx"), &p.0, &x3)?; + let temp = fp.mul(layouter.namespace(|| "temp"), &lambda, &dx)?; + let y3 = fp.sub(layouter.namespace(|| "y3"), &temp, &p.1)?; + + Ok((x3, y3)) + } + + fn select( + &self, + mut layouter: impl Layouter, + a: &ProperCrtUint, + b: &ProperCrtUint, + cond: &AssignedCell, + ) -> Result, PlonkError> { + let fp = &self.fp; + + let diff = fp.sub(layouter.namespace(|| "diff"), a, b)?; + let cond_crt = fp.load_private( + layouter.namespace(|| "cond_crt"), + cond.value() + .map(|v| Secp256k1Fp::from_repr(v.to_repr()).unwrap()), + )?; // Assume conversion; adjust if needed + let product = fp.mul(layouter.namespace(|| "product"), &diff, &cond_crt)?; + let result = fp.add(layouter.namespace(|| "result"), &product, b)?; + + Ok(result) + } + + /// Prove key pairing: `public_key = esk * G` + /// + /// This constrains that the given public key is the correct result of + /// scalar multiplication of the secret key with the secp256k1 generator. + /// + /// **IMPORTANT**: All inputs are FOREIGN field elements represented as CRT integers! + /// + /// # Arguments + /// * `layouter` - The layouter for assigning cells + /// * `esk` - The secret key (scalar in Fq, as native type) + /// * `public_key` - The expected public key as (x, y) coordinates (both in Fp, as native types) + /// + /// # Returns + /// * The assigned secret key (for use in HKDF) and verified public key point (both as CRT) + /// + /// # Flow + /// 1. Load foreign field element as witness:\ + /// `FpChip::load_private( secp_value) → ProperCrtUint` + /// 2. Perform operations in CRT representation + /// - Addition: add limbs element-wise, check for carries + /// - Multiplication: mul limbs, reduce modulo foreign field prime + /// - Reduction: carry_mod ensures result < foreign_modulus + /// + /// 3. Range check all limbs:\ + /// `RangeChip::range_check( limb, LIMB_BITS) → ensures limb < 2^88` + /// + /// 4. Verify CRT consistency: + /// Constrain:`native_value ≡ Σ(limb[i] *2^(88*i)) (mod Pallas::Fq)` + pub fn prove_key_pairing( + &self, + mut layouter: impl Layouter, + esk: Value, + epkx: Value, + epky: Value, + ) -> Result< + ( + ProperCrtUint, + (ProperCrtUint, ProperCrtUint), + ), + PlonkError, + > { + // Load secret key as Fq element (converted to CRT representation) + let sk_assigned = self + .fq + .load_private(layouter.namespace(|| "load secret key"), esk)?; + + // Range check secret key limbs to ensure they're valid 88-bit values + self.fq + .range_check_limbs(layouter.namespace(|| "range check sk"), &sk_assigned)?; + + // Load public key x-coordinate as Fp element (converted to CRT representation) + let pk_x_assigned = self + .fp + .load_private(layouter.namespace(|| "load pk.x"), epkx)?; + + // Load public key y-coordinate as Fp element (converted to CRT representation) + let pk_y_assigned = self + .fp + .load_private(layouter.namespace(|| "load pk.y"), epky)?; + + // Range check public key coordinate limbs + self.fp + .range_check_limbs(layouter.namespace(|| "range check pk.x"), &pk_x_assigned)?; + self.fp + .range_check_limbs(layouter.namespace(|| "range check pk.y"), &pk_y_assigned)?; + + // TODO: Implement actual scalar multiplication check: pk = sk * G + // This requires: + // 1. Load generator point G (as CRT coordinates) + // Load generator G + let g_x = self.fp.load_private( + layouter.namespace(|| "load G x"), + Value::known(Secp256k1Fp::from_raw_bytes_unchecked(&GENERATOR_X)), + )?; + let g_y = self.fp.load_private( + layouter.namespace(|| "load G y"), + Value::known(Secp256k1Fp::from_raw_bytes_unchecked(&GENERATOR_Y)), + )?; + let g = (g_x, g_y); + + // Compute sk * G using Montgomery ladder + let computed_pk = self.scalar_mul_montgomery( + layouter.namespace(|| "scalar mul check"), + &sk_assigned, + &g, + )?; + + // Enforce computed_pk == public_key + self.fp.enforce_equal( + layouter.namespace(|| "enforce x equal"), + &computed_pk.0, + &pk_x_assigned, + )?; + self.fp.enforce_equal( + layouter.namespace(|| "enforce y equal"), + &computed_pk.1, + &pk_y_assigned, + )?; + + Ok((sk_assigned, (pk_x_assigned, pk_y_assigned))) + } + + fn scalar_mul_montgomery( + &self, + mut layouter: impl Layouter, + sk: &ProperCrtUint, + g: &SecpPoint, + ) -> Result, PlonkError> { + let mut bits = + self.decompose_scalar_to_bits(layouter.namespace(|| "decompose scalar"), sk)?; + + // Reverse to MSB first + bits.reverse(); + + let mut r0 = g.clone(); + let mut r1 = self.double_point(layouter.namespace(|| "initial double"), &r0)?; + + for bit in bits { + let added = self.add_point(layouter.namespace(|| "montgomery add"), &r0, &r1)?; + let doubled0 = self.double_point(layouter.namespace(|| "montgomery double0"), &r0)?; + let doubled1 = self.double_point(layouter.namespace(|| "montgomery double1"), &r1)?; + + // if bit == 0: r0 = doubled0, r1 = added + // if bit == 1: r0 = added, r1 = doubled1 + r0.0 = self.select( + layouter.namespace(|| "select r0.x"), + &doubled0.0, + &added.0, + &bit, + )?; + r0.1 = self.select( + layouter.namespace(|| "select r0.y"), + &doubled0.1, + &added.1, + &bit, + )?; + r1.0 = self.select( + layouter.namespace(|| "select r1.x"), + &added.0, + &doubled1.0, + &bit, + )?; + r1.1 = self.select( + layouter.namespace(|| "select r1.y"), + &added.1, + &doubled1.1, + &bit, + )?; + } + + Ok(r0) + } + + /// Convert a secp256k1 Fq element (CRT representation) to native Pallas::Base. + /// + /// This is used for HKDF derivation: we need to convert the secp256k1 + /// secret key to a native field element to use as input to Poseidon hash. + /// + /// **NOTE**: This extracts the native field representation from the CRT integer, + /// which is `value mod pallas::MODULUS`. This is a lossy conversion but acceptable + /// for HKDF as we're using it as entropy, not doing field arithmetic. + pub fn fq_to_native( + &self, + layouter: impl Layouter, + fq: &ProperCrtUint, + ) -> Result, PlonkError> { + self.fq.to_native(layouter, fq) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use halo2_proofs::circuit::Layouter; + use halo2_proofs::dev::MockProver; + use halo2_proofs::plonk::Circuit; + use num_traits::Zero; + use pasta_curves::pallas; + use std::println; + + #[test] + fn test_fe_conversion() { + // Test field element to BigUint conversion + let value = pallas::Base::from(123); + let big = crate::spec::fe_to_biguint_simple(&value); + let back = crate::spec::biguint_to_fe_simple(&big); + assert_eq!(value, back); + + // Test zero conversion + let zero = pallas::Base::zero(); + let big_zero = crate::spec::fe_to_biguint_simple(&zero); + assert!(big_zero.is_zero()); + } + + #[test] + fn test_fixed_integer_conversion() { + // Test FixedOverflowInteger conversion + let value = BigUint::from(0x01020304u32); + let fixed = FixedOverflowInteger::from_native(&value, 3, 88); + let reconstructed = fixed.to_biguint(88); + assert_eq!(value, reconstructed); + let r3 = fixed.to_biguint(86); + assert_ne!(value, r3); + } + + // Simple test circuit to verify assignment works + #[derive(Debug, Default)] + struct TestCircuit { + value: BigUint, + } + + impl Circuit for TestCircuit { + type Config = BigIntConfig; + type FloorPlanner = halo2_proofs::circuit::SimpleFloorPlanner; + + fn without_witnesses(&self) -> Self { + Self::default() + } + + fn configure(meta: &mut ConstraintSystem) -> Self::Config { + let advices = [ + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + ]; + BigIntConfig::configure(meta, advices) + } + + fn synthesize( + &self, + config: Self::Config, + mut layouter: impl Layouter, + ) -> Result<(), PlonkError> { + let chip = BigIntChip::construct(config, 8, 4); + + layouter.assign_region( + || "test region", + |mut region| { + // Test constant assignment + let constant_uint = chip.assign_constant(&mut region, 0, &self.value)?; + assert_eq!(constant_uint.num_limbs(), 4); + + // Test witness assignment + let witness_uint = + chip.assign_witness(&mut region, 4, Value::known(&self.value))?; + assert_eq!(witness_uint.num_limbs(), 4); + + Ok(()) + }, + )?; + + Ok(()) + } + } + + const K: u32 = 3; + + #[test] + fn test_circuit_assignment() { + let value = BigUint::from(12345u32); + let circuit = TestCircuit { value }; + let prover = MockProver::run(17, &circuit, vec![]).unwrap(); + assert_eq!(prover.verify(), Ok(())); + let cost = + halo2_proofs::dev::CircuitCost::::measure(K, &circuit); + let proof_size = usize::from(cost.proof_size(1)); + assert!(proof_size > 0, "Proof size should be non-zero"); + println!(" proof_size: {}", proof_size); + println!(" cost: {:#?}", cost); + } +} diff --git a/zk-crates/zk-headstash/src/circuit/gadget/secp256k1_chip_tests.rs b/zk-crates/zk-headstash/src/circuit/gadget/secp256k1_chip_tests.rs new file mode 100644 index 0000000..c0c7ba6 --- /dev/null +++ b/zk-crates/zk-headstash/src/circuit/gadget/secp256k1_chip_tests.rs @@ -0,0 +1,770 @@ +//! Unit tests for foreign field arithmetic - Secp256k1 key pairing +//! +//! These tests verify that we can correctly represent secp256k1 field elements +//! as 3x88-bit limbs in pallas::Base and perform elliptic curve pairing checks. + +use std::println; + +use crate::spec::biguint_to_fe_simple; + +use super::secp256k1_chip::*; +use ff::{Field, PrimeField}; +use halo2_base::halo2_proofs::halo2curves::secp256k1::{Fp as Secp256k1Fp, Fq as Secp256k1Fq}; +use halo2_gadgets::utilities::lookup_range_check::{ + LookupRangeCheck, LookupRangeCheck4_5BConfig, LookupRangeCheckConfig, +}; +use halo2_proofs::{ + circuit::{Layouter, SimpleFloorPlanner, Value}, + dev::MockProver, + plonk::{Advice, Circuit, Column, ConstraintSystem, Error as PlonkError}, +}; +use num_traits::Zero; +use pasta_curves::pallas; +use secp256k1::constants::{GENERATOR_X, GENERATOR_Y}; + +// ============================================================================ +// Test Circuit for Secp256k1 Key Pairing +// ============================================================================ + +#[derive(Clone, Debug)] +struct Secp256k1TestConfig { + secp_config: Secp256k1Config, +} + +impl Secp256k1TestConfig { + fn configure(meta: &mut ConstraintSystem) -> Self { + // Allocate advice columns for Fp and Fq chips + let fp_advices = [ + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + ]; + let fq_advices = [ + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + ]; + + // Create lookup table for range checking + let table_idx = meta.lookup_table_column(); + let range_check = LookupRangeCheckConfig::configure(meta, fp_advices[0], table_idx); + + // Configure Secp256k1 chip with both Fp and Fq + let secp_config = Secp256k1Config::configure(meta, fp_advices, fq_advices, range_check); + + Self { secp_config } + } +} + +/// Circuit that proves: pk = sk * G (secp256k1 key pairing) +#[derive(Default)] +struct KeyPairingTestCircuit { + sk: Secp256k1Fq, + pk_x: Secp256k1Fp, + pk_y: Secp256k1Fp, +} + +impl Circuit for KeyPairingTestCircuit { + type Config = Secp256k1TestConfig; + type FloorPlanner = SimpleFloorPlanner; + + fn without_witnesses(&self) -> Self { + Self::default() + } + + fn configure(meta: &mut ConstraintSystem) -> Self::Config { + Secp256k1TestConfig::configure(meta) + } + + fn synthesize( + &self, + config: Self::Config, + mut layouter: impl Layouter, + ) -> Result<(), PlonkError> { + // Construct the Secp256k1Chip + let secp_chip = Secp256k1Chip::construct(config.secp_config); + + // Prove key pairing: pk = sk * G + // This will: + // 1. Load sk as CRT: 256 bits → 3 limbs × 88 bits + // 2. Load pk_x, pk_y as CRT: each 256 bits → 3 limbs × 88 bits + // 3. Compute sk * G using Montgomery ladder + // 4. Constrain computed_pk == pk + let (_sk_assigned, (_pk_x_assigned, _pk_y_assigned)) = secp_chip.prove_key_pairing( + layouter.namespace(|| "secp256k1 key pairing"), + Value::known(self.sk), + Value::known(self.pk_x), + Value::known(self.pk_y), + )?; + + Ok(()) + } +} + +// ============================================================================ +// Test: Valid Secp256k1 Key Pair (Should Pass) +// ============================================================================ + +#[test] +fn test_secp256k1_key_pairing_valid() { + use secp256k1::{PublicKey, Secp256k1, SecretKey}; + + // Generate a valid secp256k1 key pair + let secp = Secp256k1::new(); + let sk_bytes = [ + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, + ]; + + let sk_secp = SecretKey::from_slice(&sk_bytes).expect("valid secret key"); + let pk_secp = PublicKey::from_secret_key(&secp, &sk_secp); + + // Extract uncompressed public key: 0x04 || x (32 bytes) || y (32 bytes) + let pk_bytes = pk_secp.serialize_uncompressed(); + assert_eq!(pk_bytes[0], 0x04, "First byte should be 0x04"); + + let pk_x_bytes: [u8; 32] = pk_bytes[1..33].try_into().unwrap(); + let pk_y_bytes: [u8; 32] = pk_bytes[33..65].try_into().unwrap(); + + // Convert to halo2 field elements + let sk = Secp256k1Fq::from_repr(sk_bytes).expect("valid Fq"); + let pk_x = Secp256k1Fp::from_repr(pk_x_bytes).expect("valid Fp"); + let pk_y = Secp256k1Fp::from_repr(pk_y_bytes).expect("valid Fp"); + + println!("Testing VALID key pair:"); + println!(" sk: {:?}", hex::encode(sk_bytes)); + println!(" pk.x: {:?}", hex::encode(pk_x_bytes)); + println!(" pk.y: {:?}", hex::encode(pk_y_bytes)); + + let circuit = KeyPairingTestCircuit { sk, pk_x, pk_y }; + + // Use degree 18 (2^18 = 262,144 rows) to accommodate foreign field operations + let prover = MockProver::run(18, &circuit, vec![]).expect("prover should run"); + + // This should PASS because pk = sk * G + assert_eq!( + prover.verify(), + Ok(()), + "Valid key pair should verify successfully" + ); +} + +#[test] +fn test_reconstruct_xy_from_limbs() { + use halo2_base::utils::fe_to_biguint; + use num_bigint::BigUint; + + // Use secp256k1 generator coordinates as known values + let gen_x_fp = Secp256k1Fp::from_bytes(&GENERATOR_X).unwrap(); + let gen_y_fp = Secp256k1Fp::from_bytes(&GENERATOR_Y).unwrap(); + + // Convert to BigUint + let gen_x_big = fe_to_biguint(&gen_x_fp); + let gen_y_big = fe_to_biguint(&gen_y_fp); + + // Decompose into 3x88-bit limbs (little-endian) + let x_limbs = crate::spec::decompose_biguint_simple(&gen_x_big, 3, 88); + let y_limbs = crate::spec::decompose_biguint_simple(&gen_y_big, 3, 88); + + // Display decomposed limbs + println!("x decomposed into limbs:"); + for (i, limb) in x_limbs.iter().enumerate() { + let limb_big = crate::spec::fe_to_biguint_simple(limb); + println!(" limb[{}]: {} ({} bits)", i, limb_big, limb_big.bits()); + } + println!("y decomposed into limbs:"); + for (i, limb) in y_limbs.iter().enumerate() { + let limb_big = crate::spec::fe_to_biguint_simple(limb); + println!(" limb[{}]: {} ({} bits)", i, limb_big, limb_big.bits()); + } + + // Reconstruct x by summing: limb[0] + limb[1] * 2^88 + limb[2] * 2^176 + let reconstructed_x = x_limbs + .iter() + .enumerate() + .fold(BigUint::zero(), |acc, (i, limb)| { + let limb_big = crate::spec::fe_to_biguint_simple(limb); + acc + (limb_big << (88 * i)) + }); + + // Reconstruct y similarly + let reconstructed_y = y_limbs + .iter() + .enumerate() + .fold(BigUint::zero(), |acc, (i, limb)| { + let limb_big = crate::spec::fe_to_biguint_simple(limb); + acc + (limb_big << (88 * i)) + }); + + // Display reconstructions + println!("Reconstructed x: {}", reconstructed_x); + println!("Original x: {}", gen_x_big); + println!("Reconstructed y: {}", reconstructed_y); + println!("Original y: {}", gen_y_big); + + // Assert accuracy + assert_eq!(reconstructed_x, gen_x_big, "x reconstruction failed"); + assert_eq!(reconstructed_y, gen_y_big, "y reconstruction failed"); + + println!("✓ CRT limb reconstruction accurate for x and y coordinates"); +} + +// ============================================================================ +// Test: Mismatched Secp256k1 Keys (Should Fail) +// ============================================================================ + +#[test] +fn test_secp256k1_key_pairing_invalid() { + use secp256k1::{PublicKey, Secp256k1, SecretKey}; + + let secp = Secp256k1::new(); + + // Secret key 1 + let sk_bytes = [0x42; 32]; + let sk_secp = SecretKey::from_slice(&sk_bytes).expect("valid secret key"); + + // Public key from DIFFERENT secret key + let wrong_sk_bytes = [0x43; 32]; + let wrong_sk_secp = SecretKey::from_slice(&wrong_sk_bytes).expect("valid secret key"); + let wrong_pk_secp = PublicKey::from_secret_key(&secp, &wrong_sk_secp); + + // Extract public key bytes (from wrong secret key) + let wrong_pk_bytes = wrong_pk_secp.serialize_uncompressed(); + let pk_x_bytes: [u8; 32] = wrong_pk_bytes[1..33].try_into().unwrap(); + let pk_y_bytes: [u8; 32] = wrong_pk_bytes[33..65].try_into().unwrap(); + + // Convert to field elements + let sk = Secp256k1Fq::from_repr(sk_bytes).expect("valid Fq"); + let pk_x = Secp256k1Fp::from_repr(pk_x_bytes).expect("valid Fp"); + let pk_y = Secp256k1Fp::from_repr(pk_y_bytes).expect("valid Fp"); + + println!("Testing INVALID key pair (mismatched):"); + println!(" sk: {:?}", hex::encode(sk_bytes)); + println!(" pk.x: {:?}", hex::encode(pk_x_bytes)); + println!(" pk.y: {:?}", hex::encode(pk_y_bytes)); + println!(" (pk is derived from sk=0x43... but we're using sk=0x42...)"); + + let circuit = KeyPairingTestCircuit { sk, pk_x, pk_y }; + let prover = MockProver::run(18, &circuit, vec![]).expect("prover should run"); + + // This should FAIL because pk != sk * G + assert!( + prover.verify().is_err(), + "Mismatched key pair should fail verification" + ); +} + +// // ============================================================================ +// // Test: Zero Secret Key (Should Fail - Invalid Point) +// // ============================================================================ + +// #[test] +// #[should_panic(expected = "secret key out of range")] +// fn test_secp256k1_zero_secret_key() { +// use secp256k1::{Secp256k1, SecretKey}; + +// let _secp = Secp256k1::new(); +// let sk_bytes = [0x00; 32]; + +// // This should panic because 0 is not a valid secp256k1 secret key +// assert!(SecretKey::from_slice(&sk_bytes).is_err()) +// } + +// ============================================================================ +// Helper Test: Verify Foreign Field Decomposition +// ============================================================================ + +#[test] +fn test_foreign_field_limb_decomposition() { + use num_bigint::BigUint; + + // Test that 256-bit secp256k1 value fits in 3x88-bit limbs + let test_value_bytes = [ + 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0x99, + ]; + + let v = Secp256k1Fp::from_repr(test_value_bytes).expect("valid Fp"); + let v_biguint = halo2_base::utils::fe_to_biguint(&v); + + // Decompose into 3x88-bit limbs + let limbs = crate::spec::decompose_biguint_simple(&v_biguint, 3, 88); + + println!("Foreign field decomposition test:"); + println!(" Original value: {:?}", hex::encode(test_value_bytes)); + + // Verify each limb fits in 88 bits + for (i, limb) in limbs.iter().enumerate() { + let limb_big = crate::spec::fe_to_biguint_simple(limb); + let max_88_bit = BigUint::from(1u64) << 88; + assert!( + limb_big < max_88_bit, + "Limb {} exceeds 88 bits: has {} bits", + i, + limb_big.bits() + ); + } + + // Verify reconstruction + let limb_0 = limbs[0]; + let limb_1 = limbs[1]; + let limb_2 = limbs[2]; + + let base_88 = crate::spec::biguint_to_fe_simple(&(BigUint::from(1u64) << 88)); + let base_176 = crate::spec::biguint_to_fe_simple(&(BigUint::from(1u64) << 176)); + + let reconstructed = limb_0 + limb_1 * base_88 + limb_2 * base_176; + let reconstructed_big = crate::spec::fe_to_biguint_simple(&reconstructed); + let pallas_modulus = crate::spec::fe_to_biguint_simple(&(-pallas::Base::ONE)) + 1u64; + + println!( + " Reconstructed matches: {}", + (reconstructed_big.clone() % pallas_modulus.clone()) + == (v_biguint.clone() % pallas_modulus.clone()) + ); + + // Should match modulo pallas field + assert_eq!( + reconstructed_big % pallas_modulus.clone(), + v_biguint % pallas_modulus, + "Reconstruction should match original value modulo pallas" + ); +} + +// ============================================================================ +// Test: Secp256k1 SK to Pallas Base Conversion via CRT +// ============================================================================ + +#[test] +fn test_secp256k1_sk_to_pallas_base_conversion() { + use halo2_base::utils::fe_to_biguint; + use num_bigint::BigUint; + + println!("\n=== Secp256k1 SK → Pallas Base Conversion ===\n"); + + // 1. Start with a secp256k1 secret key + let sk_bytes = [ + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, + ]; + + println!("1. Original secp256k1 secret key:"); + println!(" sk_bytes: {}", hex::encode(sk_bytes)); + + // 2. Convert to secp256k1::Fq field element + let sk_fq = Secp256k1Fq::from_repr(sk_bytes).expect("valid Fq"); + let sk_big = fe_to_biguint(&sk_fq); + + println!("\n2. As secp256k1::Fq BigUint:"); + println!(" {} bits", sk_big.bits()); + + // 3. Decompose into 3x88-bit limbs (CRT representation) + let limbs = crate::spec::decompose_biguint_simple(&sk_big, 3, 88); + + println!("\n3. CRT decomposition (3x88-bit limbs):"); + for (i, limb) in limbs.iter().enumerate() { + let limb_big = crate::spec::fe_to_biguint_simple(limb); + println!(" Limb[{}]: {} bits = {}", i, limb_big.bits(), limb_big); + + // Verify limb fits in 88 bits + let max_88_bit = BigUint::from(1u64) << 88; + assert!(limb_big < max_88_bit, "Limb {} exceeds 88 bits", i); + } + + // 4. Reconstruct in pallas::Base field + let base_88 = crate::spec::biguint_to_fe_simple(&(BigUint::from(1u64) << 88)); + let base_176 = crate::spec::biguint_to_fe_simple(&(BigUint::from(1u64) << 176)); + + let sk_pallas_reconstructed = limbs[0] + limbs[1] * base_88 + limbs[2] * base_176; + + println!("\n4. Reconstructed as pallas::Base:"); + println!(" sk_pallas = limb[0] + limb[1]*2^88 + limb[2]*2^176"); + + // 5. Verify this matches direct byte interpretation + let sk_pallas_direct = pallas::Base::from_repr(sk_bytes).unwrap_or(pallas::Base::zero()); + + println!("\n5. Direct byte interpretation as pallas::Base:"); + println!(" (secp256k1 bytes mod pallas modulus)"); + + // 6. Compare both methods + let reconstructed_big = crate::spec::fe_to_biguint_simple(&sk_pallas_reconstructed); + let direct_big = crate::spec::fe_to_biguint_simple(&sk_pallas_direct); + let pallas_modulus = crate::spec::fe_to_biguint_simple(&(-pallas::Base::ONE)) + 1u64; + + println!("\n6. Comparison:"); + println!( + " CRT reconstructed mod pallas: {}", + reconstructed_big.clone() % pallas_modulus.clone() + ); + println!( + " Direct interpretation: {}", + direct_big.clone() % pallas_modulus.clone() + ); + + let matches = (reconstructed_big.clone() % pallas_modulus.clone()) + == (direct_big.clone() % pallas_modulus.clone()); + println!(" Methods match: {}", matches); + + assert_eq!( + reconstructed_big % pallas_modulus.clone(), + direct_big % pallas_modulus, + "CRT reconstruction should match direct interpretation" + ); + + println!("\n7. This pallas::Base value is used for HKDF:"); + println!(" nk = Poseidon(DST, sk_pallas, rho)"); + + println!("\n=== Conversion Verified ✓ ===\n"); +} + +// ============================================================================ +// Negative Test: Non-Paired Keys Should NOT Match +// ============================================================================ + +#[test] +fn test_non_paired_keys_detection() { + use secp256k1::{PublicKey, Secp256k1, SecretKey}; + + println!("\n=== Non-Paired Keys Detection Test ===\n"); + + let secp = Secp256k1::new(); + + // 1. Create first key pair + let sk1_bytes = [ + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, + ]; + let sk1 = SecretKey::from_slice(&sk1_bytes).expect("valid sk1"); + let pk1 = PublicKey::from_secret_key(&secp, &sk1); + + println!("1. First key pair:"); + println!(" sk1: {}", hex::encode(sk1_bytes)); + println!(" pk1: {}", hex::encode(pk1.serialize_uncompressed())); + + // 2. Create second DIFFERENT key pair + let sk2_bytes = [0x42; 32]; + let sk2 = SecretKey::from_slice(&sk2_bytes).expect("valid sk2"); + let pk2 = PublicKey::from_secret_key(&secp, &sk2); + + println!("\n2. Second key pair (different):"); + println!(" sk2: {}", hex::encode(sk2_bytes)); + println!(" pk2: {}", hex::encode(pk2.serialize_uncompressed())); + + // 3. Try to pair sk1 with pk2 (should NOT match!) + println!("\n3. Attempting to pair sk1 with pk2 (should fail):"); + + let pk2_bytes = pk2.serialize_uncompressed(); + let pk2_x_bytes: [u8; 32] = pk2_bytes[1..33].try_into().unwrap(); + let pk2_y_bytes: [u8; 32] = pk2_bytes[33..65].try_into().unwrap(); + + // Convert to field elements + let sk1_fq = Secp256k1Fq::from_repr(sk1_bytes).expect("valid Secp256k1Fq"); + let pk2_x_fp = Secp256k1Fp::from_repr(pk2_x_bytes).expect("valid Secp256k1Fp"); + let pk2_y_fp = Secp256k1Fp::from_repr(pk2_y_bytes).expect("valid Secp256k1Fp"); + + // 4. Verify the pairing using secp256k1 library + let computed_pk_from_sk1 = PublicKey::from_secret_key(&secp, &sk1); + let keys_match = computed_pk_from_sk1 == pk2; + + println!(" sk1 * G == pk2? {}", keys_match); + assert!(!keys_match, "sk1 should NOT pair with pk2"); + + // 5. Show that CRT conversion preserves the mismatch + let sk1_big = halo2_base::utils::fe_to_biguint(&sk1_fq); + let limbs = crate::spec::decompose_biguint_simple(&sk1_big, 3, 88); + + println!("\n4. CRT decomposition of sk1:"); + for (i, limb) in limbs.iter().enumerate() { + let limb_big = crate::spec::fe_to_biguint_simple(limb); + println!(" limb[{}] = {}", i, limb_big); + } + + // 6. Convert sk1 to pallas::Base + let sk1_pallas = pallas::Base::from_repr(sk1_bytes).unwrap_or(pallas::Base::zero()); + let sk1_pallas_big = crate::spec::fe_to_biguint_simple(&sk1_pallas); + + println!("\n5. sk1 as pallas::Base:"); + println!(" {} bits", sk1_pallas_big.bits()); + + // 7. Important: This pallas::Base value would produce DIFFERENT nk than sk2 + let sk2_pallas = pallas::Base::from_repr(sk2_bytes).unwrap_or(pallas::Base::zero()); + let sk2_pallas_big = crate::spec::fe_to_biguint_simple(&sk2_pallas); + + println!("\n6. sk2 as pallas::Base:"); + println!(" {} bits", sk2_pallas_big.bits()); + + println!("\n7. Pallas representations differ:"); + println!(" sk1_pallas == sk2_pallas? {}", sk1_pallas == sk2_pallas); + assert_ne!( + sk1_pallas, sk2_pallas, + "Different keys should have different pallas representations" + ); + + println!("\n8. Conclusion:"); + println!(" ✓ Non-paired keys are correctly detected as different"); + println!(" ✓ CRT conversion preserves key uniqueness"); + println!(" ✓ HKDF will produce different nk for different keys"); + + println!("\n=== Non-Paired Keys Correctly Rejected ✓ ===\n"); +} + +// ============================================================================ +// Test: Verify ETH Key Pairing with CRT and Montgomery Ladder +// ============================================================================ + +#[test] +fn test_eth_key_pairing_with_crt() { + use halo2_base::gates::RangeChip; + use halo2_base::utils::{fe_to_biguint, BigPrimeField}; + + use secp256k1::{PublicKey, Secp256k1, SecretKey}; + + // 1. Generate an Ethereum-style key pair + let secp = Secp256k1::new(); + let sk = SecretKey::from_byte_array([ + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, + ]) + .expect("valid secret key"); + let pk = PublicKey::from_secret_key(&secp, &sk); + + // Extract public key coordinates + let pk_bytes = pk.serialize_uncompressed(); + let pk_x_bytes: [u8; 32] = pk_bytes[1..33].try_into().unwrap(); + let pk_y_bytes: [u8; 32] = pk_bytes[33..65].try_into().unwrap(); + + println!("\n=== ETH Key Pairing via CRT + Montgomery Ladder ===\n"); + println!("1. Ethereum key pair (expected values from secp256k1 library):"); + println!(" sk: {}", hex::encode(sk.secret_bytes())); + println!(" pk.x: {}", hex::encode(pk_x_bytes)); + println!(" pk.y: {}", hex::encode(pk_y_bytes)); + + // 2. Convert to field elements for circuit + let sk_fq = Secp256k1Fq::from_repr(sk.secret_bytes()).expect("valid Fq"); + let pk_x_fp = Secp256k1Fp::from_repr(pk_x_bytes).expect("valid Fp"); + let pk_y_fp = Secp256k1Fp::from_repr(pk_y_bytes).expect("valid Fp"); + + println!("\n2. Field element representation:"); + println!(" sk ∈ secp256k1::Fq (scalar field, modulo n)"); + println!(" pk.x, pk.y ∈ secp256k1::Fp (base field, modulo p)"); + + // 3. Demonstrate CRT decomposition for scalar (sk) + println!("\n3. CRT decomposition of secret key:"); + println!(" sk decomposed into 3×88-bit limbs:"); + let sk_limbs = crate::spec::decompose_biguint_simple(&fe_to_biguint(&sk_fq), 3, 88); + for (i, limb) in sk_limbs.iter().enumerate() { + let limb_big = crate::spec::fe_to_biguint_simple(limb); + println!( + " sk_limb[{}] = 0x{:0>22x} ({} bits)", + i, + limb_big, + limb_big.bits() + ); + assert!(limb_big.bits() <= 88, "Limb {} exceeds 88 bits", i); + } + + // Verify CRT reconstruction + let reconstructed_sk = + sk_limbs + .iter() + .enumerate() + .fold(num_bigint::BigUint::zero(), |acc, (i, limb)| { + let limb_big = crate::spec::fe_to_biguint_simple(limb); + acc + (limb_big << (88 * i)) + }); + assert_eq!( + reconstructed_sk, + fe_to_biguint(&sk_fq), + "CRT decomposition should reconstruct original scalar" + ); + println!(" ✓ CRT reconstruction verified: Σ(limb[i] × 2^(88i)) = sk"); + + // 4. Get generator point and decompose into CRT limbs + println!("\n4. Secp256k1 generator point G:"); + let gen_x_bytes = &secp256k1::constants::GENERATOR_X; + let gen_y_bytes = &secp256k1::constants::GENERATOR_Y; + let gen_x_fp = Secp256k1Fp::from_repr(gen_x_bytes.to_vec().as_slice().try_into().unwrap()) + .expect("valid generator x"); + let gen_y_fp = Secp256k1Fp::from_repr(gen_y_bytes.to_vec().as_slice().try_into().unwrap()) + .expect("valid generator y"); + + println!(" G.x: {}", hex::encode(gen_x_bytes)); + println!(" G.y: {}", hex::encode(gen_y_bytes)); + + // Decompose generator coordinates into CRT limbs + let gen_x_limbs = crate::spec::decompose_biguint_simple(&fe_to_biguint(&gen_x_fp), 3, 88); + let gen_y_limbs = crate::spec::decompose_biguint_simple(&fe_to_biguint(&gen_y_fp), 3, 88); + + println!("\n G.x CRT limbs (3×88-bit):"); + for (i, limb) in gen_x_limbs.iter().enumerate() { + let limb_big = crate::spec::fe_to_biguint_simple(limb); + println!( + " G.x_limb[{}] = 0x{:0>22x} ({} bits)", + i, + limb_big, + limb_big.bits() + ); + } + + println!("\n G.y CRT limbs (3×88-bit):"); + for (i, limb) in gen_y_limbs.iter().enumerate() { + let limb_big = crate::spec::fe_to_biguint_simple(limb); + println!( + " G.y_limb[{}] = 0x{:0>22x} ({} bits)", + i, + limb_big, + limb_big.bits() + ); + } + + // 5. Decompose expected public key into CRT limbs + println!("\n5. Expected public key (pk) CRT representation:"); + let pk_x_limbs = crate::spec::decompose_biguint_simple(&fe_to_biguint(&pk_x_fp), 3, 88); + let pk_y_limbs = crate::spec::decompose_biguint_simple(&fe_to_biguint(&pk_y_fp), 3, 88); + + println!(" pk.x CRT limbs (3×88-bit):"); + for (i, limb) in pk_x_limbs.iter().enumerate() { + let limb_big = crate::spec::fe_to_biguint_simple(limb); + println!( + " pk.x_limb[{}] = 0x{:0>22x} ({} bits)", + i, + limb_big, + limb_big.bits() + ); + } + + println!("\n pk.y CRT limbs (3×88-bit):"); + for (i, limb) in pk_y_limbs.iter().enumerate() { + let limb_big = crate::spec::fe_to_biguint_simple(limb); + println!( + " pk.y_limb[{}] = 0x{:0>22x} ({} bits)", + i, + limb_big, + limb_big.bits() + ); + } + + // 6. Simulate scalar multiplication: pk = sk * G + println!("\n6. Scalar multiplication verification: pk = sk × G"); + println!(" Operation: Point multiplication using Montgomery ladder"); + println!( + " Input: sk (CRT: {} limbs), G (CRT point)", + sk_limbs.len() + ); + println!(" Output: pk (CRT point)"); + + // Verify the computation using the secp256k1 library matches our CRT representation + let pk_x_bytes_reconverted = pk_x_fp.to_repr(); + let pk_y_bytes_reconverted = pk_y_fp.to_repr(); + + assert_eq!( + pk_x_bytes, pk_x_bytes_reconverted, + "Public key X coordinate should survive field element conversion" + ); + assert_eq!( + pk_y_bytes, pk_y_bytes_reconverted, + "Public key Y coordinate should survive field element conversion" + ); + println!(" ✓ Field element conversions are lossless"); + + // 7. Verify curve equation for both G and pk + println!("\n7. Curve equation verification: y² ≡ x³ + 7 (mod p)"); + use num_bigint::BigUint; + let p = BigUint::parse_bytes( + b"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F", + 16, + ) + .unwrap(); + + // Verify generator + let gen_x = BigUint::from_bytes_be(gen_x_bytes); + let gen_y = BigUint::from_bytes_be(gen_y_bytes); + let gen_y_squared = (&gen_y * &gen_y) % &p; + let gen_x_cubed = (&gen_x * &gen_x * &gen_x) % &p; + let seven = BigUint::from(7u32); + let gen_rhs = (gen_x_cubed + &seven) % &p; + assert_eq!(gen_y_squared, gen_rhs, "Generator must be on curve"); + println!(" ✓ Generator G is on secp256k1 curve"); + + // Verify public key + let x = BigUint::from_bytes_be(&pk_x_bytes); + let y = BigUint::from_bytes_be(&pk_y_bytes); + let y_squared = (&y * &y) % &p; + let x_cubed = (&x * &x * &x) % &p; + let rhs = (x_cubed + seven) % &p; + assert_eq!(y_squared, rhs, "Public key must be on curve"); + println!(" ✓ Public key pk is on secp256k1 curve"); + + // 8. Verify deterministic derivation + let pk2 = PublicKey::from_secret_key(&secp, &sk); + let pk2_bytes = pk2.serialize_uncompressed(); + assert_eq!( + pk_bytes, pk2_bytes, + "Public key derivation should be deterministic" + ); + println!(" ✓ Public key derivation is deterministic"); + + // 9. Summary of CRT pairing + println!("\n8. CRT Pairing Summary:"); + println!(" Input (CRT representation):"); + println!(" • sk: {} limbs of 88 bits each", sk_limbs.len()); + println!(" • G.x: {} limbs of 88 bits each", gen_x_limbs.len()); + println!(" • G.y: {} limbs of 88 bits each", gen_y_limbs.len()); + println!("\n Computation:"); + println!(" • Montgomery ladder scalar multiplication"); + println!(" • All arithmetic operations performed on CRT limbs"); + println!(" • Range checks: each limb < 2^88"); + println!("\n Output (CRT representation):"); + println!(" • pk.x: {} limbs of 88 bits each", pk_x_limbs.len()); + println!(" • pk.y: {} limbs of 88 bits each", pk_y_limbs.len()); + + println!("\n=== Key Pairing Test Complete ✓ ==="); + println!("✓ CRT decomposition is valid and reversible"); + println!("✓ Generator and public key are on secp256k1 curve"); + println!("✓ Public key coordinates are correctly extracted"); + println!("✓ Field element conversions are lossless"); + println!("✓ Public key derivation is deterministic"); + println!("✓ CRT representation preserves all cryptographic properties"); + println!(); +} +// ============================================================================ +// Documentation Test: How Foreign Field Representation Works +// ============================================================================ + +#[test] +fn test_document_foreign_field_flow() { + println!("\n=== Foreign Field Arithmetic Flow ===\n"); + + println!("1. Input: secp256k1 secret key (256 bits)"); + let sk_bytes = [0x42; 32]; + println!(" sk_bytes: {:?}", hex::encode(sk_bytes)); + + println!("\n2. Convert to secp256k1::Fq field element"); + let _sk_fq = Secp256k1Fq::from_repr(sk_bytes).expect("valid Fq"); + + println!("\n3. In circuit: Load as CRT integer"); + println!(" - Decompose 256 bits → 3 limbs × 88 bits"); + println!(" - Each limb stored as pallas::Base (fits in 254-bit field)"); + println!(" - ProperCrtUint = (limbs, native, value)"); + + println!("\n4. Range check each limb:"); + println!(" - Each 88-bit limb → 9 chunks × 10 bits"); + println!(" - Lookup each 10-bit chunk in Sinsemilla table (K=10)"); + println!(" - Proves: limb < 2^90 (implies < 2^88)"); + + println!("\n5. Perform elliptic curve operations:"); + println!(" - Point addition/doubling in CRT representation"); + println!(" - Scalar multiplication via Montgomery ladder"); + println!(" - All arithmetic preserves 88-bit limb structure"); + + println!("\n6. Verify key pairing: pk = sk * G"); + println!(" - Compute sk * G in foreign field"); + println!(" - Compare result with provided pk (limb-wise)"); + + println!("\n=== End Flow ===\n"); +} diff --git a/zk-crates/zk-headstash/src/circuit/headstash_merkle_tree.rs b/zk-crates/zk-headstash/src/circuit/headstash_merkle_tree.rs new file mode 100644 index 0000000..0ee28a3 --- /dev/null +++ b/zk-crates/zk-headstash/src/circuit/headstash_merkle_tree.rs @@ -0,0 +1,82 @@ +//! generate the note leaf from its inputs and constrain it to root. + +use core::iter; +use std::{println, vec::Vec}; + +use group::ff::PrimeField; +use halo2_proofs::{ + circuit::{AssignedCell, Layouter, Value}, + plonk::{Advice, Column, ConstraintSystem, Constraints, Error, Expression, Selector}, + poly::Rotation, +}; +use pasta_curves::pallas; + +use crate::{ + circuit::gadget::secp256k1_chip::CrtInteger, + constants::{OrchardCommitDomains, OrchardFixedBases, OrchardHashDomains, T_P}, + value::NoteValue, +}; +use halo2_gadgets::{ + ecc::{ + chip::{EccChip, NonIdentityEccPoint}, + Point, ScalarFixed, + }, + sinsemilla::{ + chip::{SinsemillaChip, SinsemillaConfig}, + CommitDomain, HashDomains, Message, MessagePiece, SinsemillaInstructions, + }, + utilities::{ + bool_check, + lookup_range_check::{LookupRangeCheck, LookupRangeCheckConfig}, + FieldValue, RangeConstrained, + }, +}; + +/// derive leaf +pub fn derive_leaf( + mut lo: impl Layouter, + sc: &SinsemillaChip, + ecc_chip: &EccChip, + epk: (CrtInteger, CrtInteger), // (x,y), where both are 3x88 bit limbs + fdi: AssignedCell, + v: AssignedCell, + nd: AssignedCell, +) -> Result< + // ( + // NonIdentityEccPoint, + // Vec>>, + // ),() + ((), ()), + Error, +> { + let domain = OrchardHashDomains::Leaf; + let vv = v.value().map(|v| pallas::Base::from(v.inner())); + // Prepare message as bits from DST_HKDF + epk_sum.to_le_bits() + fdi.to_le_bits() + v.to_le_bits() + nd.to_le_bits() + // Decompose AssignedValue to bits using range check utilities + // Construct Messages + + // epk (255): a 0..250 || b0 250..255 + // nd (255) b1 0..5 || c 5..255 + // v (64) d 0..60 || e0 60..64 + // fdi (64) || e1 0..6 || f0 6..64 + + // constrain the sum of the 3x88 bit limb representation before defining message subpiece + // Piece a: bits 0-249 of nd (250 bits) + let b1 = RangeConstrained::bitrange_of(nd.value(), 0..5); + + let c = MessagePiece::from_subpieces( + sc.clone(), + lo.namespace(|| "piece_a: nd[0..250)"), + [RangeConstrained::bitrange_of(nd.value(), 5..255)], + )?; + + let d = MessagePiece::from_subpieces( + sc.clone(), + lo.namespace(|| "piece_a: nd[0..250)"), + [RangeConstrained::bitrange_of(vv.value(), 0..60)], + )?; + + let message = Message::from_pieces(sc.clone(), vec![]); + // s.hash_to_point(lo, OrchardHashDomains::Leaf.Q(), message) + Ok(((), ())) +} diff --git a/zk-crates/zk-headstash/src/circuit/note_commit.rs b/zk-crates/zk-headstash/src/circuit/note_commit.rs new file mode 100644 index 0000000..503bf99 --- /dev/null +++ b/zk-crates/zk-headstash/src/circuit/note_commit.rs @@ -0,0 +1,2552 @@ +// each piece has bit length that is of multiple of 10. +// if message is built from > 1 messagePieces, each piece must be < 64 bits +// we hav n pieces of data ordered in ∫ sequence to create note-commit. +// l is length of total sum of bits in n +// we keep track of each n bounds coordiates (start,end) in set of ∫ +// generate circuits to automatically of decompose sections based on unique ∫n + +use core::iter; +use std::{println, vec::Vec}; + +use group::ff::PrimeField; +use halo2_proofs::{ + circuit::{AssignedCell, Layouter, Value}, + plonk::{Advice, Column, ConstraintSystem, Constraints, Error, Expression, Selector}, + poly::Rotation, +}; +use pasta_curves::pallas; + +use crate::{ + constants::{OrchardCommitDomains, OrchardFixedBases, OrchardHashDomains, T_P}, + value::NoteValue, +}; +use halo2_gadgets::{ + ecc::{chip::EccChip, Point, ScalarFixed}, + sinsemilla::{ + chip::{SinsemillaChip, SinsemillaConfig}, + CommitDomain, Message, MessagePiece, + }, + utilities::{ + bool_check, + lookup_range_check::{LookupRangeCheck, LookupRangeCheckConfig}, + FieldValue, RangeConstrained, + }, +}; + +type NoteCommitPiece = MessagePiece< + pallas::Affine, + SinsemillaChip, + 10, + 253, +>; + +/// The vs of the running sum at the start and end of the range being used for a +/// canonicity check. +type CanonicityBounds = ( + AssignedCell, + AssignedCell, +); + +// Piece b: bits 250..255 of nd || 0..55 of v (5 + 55 = 60 bits) +/// +/// | A_6 | A_7 | A_8 | q_notecommit_b | +/// ------------------------------------ +/// | b | b0 | b1 | 1 | +/// +#[derive(Clone, Debug)] +struct DecomposeB { + q_notecommit_b: Selector, + col_l: Column, + col_m: Column, + col_r: Column, +} + +impl DecomposeB { + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + two_pow_5: pallas::Base, + ) -> Self { + let q_notecommit_b = meta.selector(); + + meta.create_gate("NoteCommit MessagePiece b", |meta| { + let q_notecommit_b = meta.query_selector(q_notecommit_b); + + // b has been constrained to 60 bits by the Sinsemilla hash. + let b = meta.query_advice(col_l, Rotation::cur()); + // b0 has been constrained to be 5 bits outside this gate. + let b0 = meta.query_advice(col_m, Rotation::cur()); + // This gate constrains to be 55 bits outside this gate. + let b1 = meta.query_advice(col_r, Rotation::cur()); + + // b = b0 + (2^1) b1 + (2^5) + let decomposition_check = b - (b0 + b1.clone() * two_pow_5); + + Constraints::with_selector(q_notecommit_b, [("decomposition", decomposition_check)]) + }); + + Self { + q_notecommit_b, + col_l, + col_m, + col_r, + } + } + + #[allow(clippy::type_complexity)] + fn decompose( + lc: &LookupRangeCheckConfig, + chip: SinsemillaChip, + lo: &mut impl Layouter, + nd: &AssignedCell, + v: &AssignedCell, + ) -> Result< + ( + NoteCommitPiece, // b + RangeConstrained>, // b0 + RangeConstrained>, // b1 + ), + Error, + > { + let value_val = v.value().map(|v| pallas::Base::from(v.inner())); + + // Constrain b_0 to be 5 bits + let b0 = RangeConstrained::witness_short(lc, lo.namespace(|| "b_0"), nd.value(), 250..255)?; + let b1 = RangeConstrained::bitrange_of(value_val.value(), 0..55); // 55 v + println!("b: {:#?}", (b0.num_bits(), b1.num_bits())); + let b = MessagePiece::from_subpieces( + chip.clone(), + lo.namespace(|| "piece_b: nd[250..255) || v[0..55)"), + [b0.value(), b1], + )?; + Ok((b, b0, b1)) + } + + fn assign( + &self, + lo: &mut impl Layouter, + b: NoteCommitPiece, + b0: RangeConstrained>, + b1: RangeConstrained>, + ) -> Result, Error> { + lo.assign_region( + || "NoteCommit MessagePiece b", + |mut region| { + self.q_notecommit_b.enable(&mut region, 0)?; + // Assign the full 60-bit value b + b.inner() + .cell_value() + .copy_advice(|| "b", &mut region, self.col_l, 0)?; + // Assign b0 (5 bits from nd[250..255)) + b0.inner() + .copy_advice(|| "b0", &mut region, self.col_m, 0)?; + // Assign b1 (55 bits from v[0..55)) + let b1 = region.assign_advice(|| "b1", self.col_r, 0, || *b1.inner())?; + + Ok(b1) + }, + ) + } +} + +#[derive(Clone, Debug)] +struct DecomposeC { + q_notecommit_c: Selector, + col_l: Column, + col_m: Column, + col_r: Column, +} + +impl DecomposeC { + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + two_pow_9: pallas::Base, + ) -> Self { + let q_notecommit_c = meta.selector(); + + meta.create_gate("NoteCommit MessagePiece c: configure", |meta| { + let q_notecommit_c = meta.query_selector(q_notecommit_c); + // Piece c: bits 55-64 of v || 0-51 of fdi (9 + 51 = 60 bits) + let c = meta.query_advice(col_l, Rotation::cur()); + // c0 has been constrained to be 9 bits outside this gate. + let c0 = meta.query_advice(col_m, Rotation::cur()); + // c1 has been constrained to be 51 bits outside this gate. + let c1 = meta.query_advice(col_r, Rotation::cur()); + + // c = c0 + (2^9) c1 + (2^51) + let decomposition_check = c - (c0 + c1.clone() * two_pow_9); + + Constraints::with_selector( + q_notecommit_c, + [ + ("bool_check c1", bool_check(c1)), + // ("bool_check c_2", bool_check(c_2)), + ("decomposition", decomposition_check), + ], + ) + }); + + Self { + q_notecommit_c, + col_l, + col_m, + col_r, + } + } + + #[allow(clippy::type_complexity)] + fn decompose( + chip: SinsemillaChip, + lo: &mut impl Layouter, + v: &AssignedCell, + fdi: &AssignedCell, + ) -> Result< + ( + NoteCommitPiece, + RangeConstrained>, // c0 + RangeConstrained>, // c1 + ), + Error, + > { + let value_val = v.value().map(|v| pallas::Base::from(v.inner())); + // Piece c: bits 55-64 of v || 0-51 of fdi (9 + 51 = 60 bits) + let (c, c0, c1) = { + let c0 = RangeConstrained::bitrange_of(value_val.value(), 55..64); // 9 v + let c1 = RangeConstrained::bitrange_of(fdi.value(), 0..51); // 51 fdi + println!("c: {:#?}", (c0.num_bits(), c1.num_bits())); + ( + MessagePiece::from_subpieces( + chip.clone(), + lo.namespace(|| "piece_c: v[55..64) || pad(0)"), + [c0, c1], + )?, + c0, + c1, + ) + }; + + Ok((c, c0, c1)) + } + + fn assign( + &self, + lo: &mut impl Layouter, + c: NoteCommitPiece, + c0: RangeConstrained>, + c1: RangeConstrained>, + ) -> Result<[AssignedCell; 2], Error> { + lo.assign_region( + || "NoteCommit MessagePiece c: assign", + |mut region| { + self.q_notecommit_c.enable(&mut region, 0)?; + + c.inner() + .cell_value() + .copy_advice(|| "c", &mut region, self.col_l, 0)?; + let c0 = region.assign_advice(|| "c", self.col_m, 0, || *c0.inner())?; + let c1 = region.assign_advice(|| "c1", self.col_r, 0, || *c1.inner())?; + + Ok([c0, c1]) + }, + ) + } +} + +// Piece d: bits 51-64 of fdi || 0..7 of recp (13 + 7 = 20 bits) +/// For the gate, we decompose a 10-bit boundary: d0 || d1 +/// +/// | A_6 | A_7 | A_8 | q_notecommit_d | +/// ------------------------------------ +/// | d | d0 | d1 | 1 | +/// | | d2 | d_3 | 0 | +#[derive(Clone, Debug)] +struct DecomposeD { + q_notecommit_d: Selector, + col_l: Column, + col_m: Column, + col_r: Column, +} + +impl DecomposeD { + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + two_pow_13: pallas::Base, + ) -> Self { + let q_notecommit_d = meta.selector(); + + meta.create_gate("NoteCommit MessagePiece d", |meta| { + let q_notecommit_d = meta.query_selector(q_notecommit_d); + + // d has been constrained to 20 bits by the Sinsemilla hash. + let d = meta.query_advice(col_l, Rotation::cur()); + // d0 has been constrained to 13 bits of fdi. + let d0 = meta.query_advice(col_m, Rotation::cur()); + // d1 has been constrained to 7 bits of recp. + let d1 = meta.query_advice(col_r, Rotation::cur()); + // d = d0 + 2^13 * d1 + let decomposition_check = d - (d0 + d1 * two_pow_13); + + Constraints::with_selector(q_notecommit_d, [("decomposition", decomposition_check)]) + }); + + Self { + q_notecommit_d, + col_l, + col_m, + col_r, + } + } + + #[allow(clippy::type_complexity)] + fn decompose( + chip: SinsemillaChip, + lo: &mut impl Layouter, + fdi: &AssignedCell, + recp: &AssignedCell, + ) -> Result< + ( + NoteCommitPiece, + RangeConstrained>, + RangeConstrained>, + ), + Error, + > { + // Piece d: bits 51-64 of fdi || 0..7 of recp (13 + 7 = 20 bits) + let (d0, d1) = ( + RangeConstrained::bitrange_of(fdi.value(), 51..64), // 13 fdi + RangeConstrained::bitrange_of(recp.value(), 0..7), // 7 recp + ); + println!("d: {:#?}", (d0.num_bits(), d1.num_bits(),)); + let d = MessagePiece::from_subpieces(chip.clone(), lo.namespace(|| "d"), [d0, d1])?; + + Ok((d, d0, d1)) + } + + fn assign( + &self, + lo: &mut impl Layouter, + d: NoteCommitPiece, + d0: RangeConstrained>, + d1: RangeConstrained>, + z1_d: AssignedCell, + ) -> Result<[AssignedCell; 2], Error> { + lo.assign_region( + || "NoteCommit MessagePiece d", + |mut region| { + self.q_notecommit_d.enable(&mut region, 0)?; + d.inner() + .cell_value() + .copy_advice(|| "d", &mut region, self.col_l, 0)?; + let d0 = region.assign_advice(|| "d0", self.col_m, 0, || *d0.inner())?; + let d1 = region.assign_advice(|| "d1", self.col_r, 0, || *d1.inner())?; + z1_d.copy_advice(|| "d_3 = z1_d", &mut region, self.col_r, 1)?; + + Ok([d0, d1]) + }, + ) + } +} + +#[derive(Clone, Debug)] +struct DecomposeF { + q_notecommit_f: Selector, + col_l: Column, + col_m: Column, + col_r: Column, +} + +impl DecomposeF { + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + two_pow_8: pallas::Base, + ) -> Self { + let q_notecommit_f = meta.selector(); + + meta.create_gate("NoteCommit MessagePiece e", |meta| { + let q_notecommit_f = meta.query_selector(q_notecommit_f); + // f is the full 10-bit value + let f = meta.query_advice(col_l, Rotation::cur()); + // f0: bits 247..255 of recp (8 bits) + let f0 = meta.query_advice(col_m, Rotation::cur()); + // f1: bits 0..2 of esk (2 bits) + let f1 = meta.query_advice(col_r, Rotation::cur()); + + // f = f0 + 2^8 * f1 + let decomposition_check = f - (f0 + f1 * two_pow_8); + + Constraints::with_selector(q_notecommit_f, Some(("decomposition", decomposition_check))) + }); + + Self { + q_notecommit_f, + col_l, + col_m, + col_r, + } + } + + #[allow(clippy::type_complexity)] + fn decompose( + chip: SinsemillaChip, + lo: &mut impl Layouter, + recp: &AssignedCell, + esk: &AssignedCell, + ) -> Result< + ( + NoteCommitPiece, + [RangeConstrained>; 2], + ), + Error, + > { + // Piece f: bits 247..255 of recp (8) || 0..2 of esk (8 + 2 = 10 bits) + let (f0, f1) = ( + RangeConstrained::bitrange_of(recp.value(), 247..255), // 8 + RangeConstrained::bitrange_of(esk.value(), 0..2), // 2 + ); + println!("f: {:#?}", (f0.num_bits(), f1.num_bits())); + + let f = MessagePiece::from_subpieces(chip.clone(), lo.namespace(|| "f"), [f0, f1])?; + + Ok((f, [f0, f1])) + } + + fn assign( + &self, + lo: &mut impl Layouter, + f: NoteCommitPiece, + f_ranges: [RangeConstrained>; 2], + ) -> Result<[AssignedCell; 2], Error> { + lo.assign_region( + || "NoteCommit MessagePiece e", + |mut region| { + let [f0, f1] = f_ranges; + // Enable selector on the row + self.q_notecommit_f.enable(&mut region, 0)?; + // Copy f to col_l + f.inner() + .cell_value() + .copy_advice(|| "f", &mut region, self.col_l, 0)?; + // Assign f0 and f1 + let f0_assigned = region.assign_advice(|| "f0", self.col_m, 0, || *f0.inner())?; + let f1_assigned = region.assign_advice(|| "f1", self.col_r, 0, || *f1.inner())?; + Ok([f0_assigned, f1_assigned]) + }, + ) + } +} + +#[derive(Clone, Debug)] +struct DecomposeH { + q_notecommit_h: Selector, + col_l: Column, + col_m: Column, + col_r: Column, +} + +impl DecomposeH { + #[allow(clippy::too_many_arguments)] + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + two_pow_3: pallas::Base, + ) -> Self { + let q_notecommit_h = meta.selector(); + + meta.create_gate("NoteCommit MessagePiece h", |meta| { + let q_notecommit_h = meta.query_selector(q_notecommit_h); + // h is the full 10-bit value + let h = meta.query_advice(col_l, Rotation::cur()); + // h0: bits 252..255 of esk (3 bits) + let h0 = meta.query_advice(col_m, Rotation::cur()); + // h1: bits 0..7 of rho (7 bits) + let h1 = meta.query_advice(col_r, Rotation::cur()); + // h = h0 + 2^8 * h1 + let decomposition_check = h - (h0 + h1 * two_pow_3); + Constraints::with_selector( + q_notecommit_h, + Some(("h decomposition", decomposition_check)), + ) + }); + Self { + q_notecommit_h, + col_l, + col_m, + col_r, + } + } + + #[allow(clippy::type_complexity)] + fn decompose( + chip: SinsemillaChip, + lo: &mut impl Layouter, + esk: &AssignedCell, + rho: &AssignedCell, + ) -> Result< + ( + NoteCommitPiece, + [RangeConstrained>; 2], + ), + Error, + > { + // Piece h: bits 252..255 of esk (3) || bits 0..7 of rho (7) (7+3 = 10 bits) + let (h0, h1) = ( + RangeConstrained::bitrange_of(esk.value(), 252..255), // 3 bits + RangeConstrained::bitrange_of(rho.value(), 0..7), // 7 bits + ); + + let h = MessagePiece::from_subpieces(chip.clone(), lo.namespace(|| "h"), [h0, h1])?; + println!("h: {:#?}", (h0.num_bits(), h1.num_bits())); + + Ok((h, [h0, h1])) + } + + fn assign( + &self, + lo: &mut impl Layouter, + h: NoteCommitPiece, + h_ranges: [RangeConstrained>; 2], // h0,h1 + ) -> Result<[AssignedCell; 2], Error> { + lo.assign_region( + || "NoteCommit MessagePiece h", + |mut region| { + let [h0, h1] = h_ranges; + // Enable selector on the row + self.q_notecommit_h.enable(&mut region, 0)?; + // Copy h to col_l + h.inner() + .cell_value() + .copy_advice(|| "h", &mut region, self.col_l, 0)?; + // Assign h0 and h1 + let h0_cell = region.assign_advice(|| "h0", self.col_m, 0, || *h0.inner())?; + let h1_cell = region.assign_advice(|| "h1", self.col_r, 0, || *h1.inner())?; + Ok([h0_cell, h1_cell]) + }, + ) + } +} + +#[derive(Clone, Debug)] +struct DecomposeJ { + q_notecommit_j: Selector, + col_l: Column, + col_m: Column, + col_r: Column, +} + +impl DecomposeJ { + #[allow(clippy::too_many_arguments)] + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + two_pow_8: pallas::Base, + ) -> Self { + let q_notecommit_j = meta.selector(); + + meta.create_gate("NoteCommit MessagePiece i", |meta| { + let q_notecommit_j = meta.query_selector(q_notecommit_j); + // j is the full 10-bit value + let j = meta.query_advice(col_l, Rotation::cur()); + // j0: bits 247..255 of rho (8 bits) + let j0 = meta.query_advice(col_m, Rotation::cur()); + // j1: bits 0..2 of psi (2 bits) + let j1 = meta.query_advice(col_r, Rotation::cur()); + // j = j0 + 2^3 * j1 + let decomposition_check = j - (j0 + j1 * two_pow_8); + Constraints::with_selector( + q_notecommit_j, + Some(("j decomposition", decomposition_check)), + ) + }); + + Self { + q_notecommit_j, + col_l, + col_m, + col_r, + } + } + + #[allow(clippy::type_complexity)] + fn decompose( + chip: SinsemillaChip, + lo: &mut impl Layouter, + rho: &AssignedCell, + psi: &AssignedCell, + ) -> Result< + ( + NoteCommitPiece, + [RangeConstrained>; 2], + ), + Error, + > { + // Piece j: bits 247..255 of rho (8) || bits 0..2 of psi (8+2 = 10 bits) + let (j0, j1) = ( + RangeConstrained::bitrange_of(rho.value(), 247..255), + RangeConstrained::bitrange_of(psi.value(), 0..2), + ); + println!("j: {:#?}", (j0.num_bits(), j1.num_bits())); + let j = MessagePiece::from_subpieces(chip.clone(), lo.namespace(|| "j"), [j0, j1])?; + + Ok((j, [j0, j1])) + } + + fn assign( + &self, + lo: &mut impl Layouter, + j: NoteCommitPiece, + j_ranges: [RangeConstrained>; 2], // [j0, j1] + ) -> Result<[AssignedCell; 2], Error> { + lo.assign_region( + || "NoteCommit MessagePiece i", + |mut region| { + let [j0, j1] = j_ranges; + // Enable selector on the row + self.q_notecommit_j.enable(&mut region, 0)?; + // Copy j to col_l + j.inner() + .cell_value() + .copy_advice(|| "j", &mut region, self.col_l, 0)?; + // Assign j0 and j1 + let j0_cell = region.assign_advice(|| "j0", self.col_m, 0, || *j0.inner())?; + let j1_cell = region.assign_advice(|| "j1", self.col_r, 0, || *j1.inner())?; + Ok([j0_cell, j1_cell]) + }, + ) + } +} + +#[derive(Clone, Debug)] +struct DecomposeL { + q_notecommit_l: Selector, + col_l: Column, + col_m: Column, + col_r: Column, +} + +impl DecomposeL { + #[allow(clippy::too_many_arguments)] + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + two_pow_3: pallas::Base, + ) -> Self { + let q_notecommit_l = meta.selector(); + + meta.create_gate("NoteCommit MessagePiece l", |meta| { + let q_notecommit_l = meta.query_selector(q_notecommit_l); + // l is the full 10-bit value + let l = meta.query_advice(col_l, Rotation::cur()); + // l0: bits 247..255 of psi (3 bits) + let l0 = meta.query_advice(col_m, Rotation::cur()); + // l1: 7 bits of padding (7) + let l1 = meta.query_advice(col_r, Rotation::cur()); + // l = l0 + 2^8 * l1 + let decomposition_check = l - (l0 + l1 * two_pow_3); + Constraints::with_selector( + q_notecommit_l, + Some(("l decomposition", decomposition_check)), + ) + }); + + Self { + q_notecommit_l, + col_l, + col_m, + col_r, + } + } + + #[allow(clippy::type_complexity)] + fn decompose( + chip: SinsemillaChip, + lo: &mut impl Layouter, + + psi: &AssignedCell, + ) -> Result< + ( + NoteCommitPiece, + [RangeConstrained>; 2], + ), + Error, + > { + // Piece l: bits 252..255 of psi (3 bits) || 7 bit padding (3+7 = 10 bits) + let (l0, l1) = ( + RangeConstrained::bitrange_of(psi.value(), 252..255), // 3 + RangeConstrained::bitrange_of(Value::known(&pallas::Base::zero()), 0..7), // two bit padding + ); + + println!("l: {:#?}", (l0.num_bits(), l1.num_bits())); + + let l = MessagePiece::from_subpieces(chip.clone(), lo.namespace(|| "l"), [l0, l1])?; + Ok((l, [l0, l1])) + } + + fn assign( + &self, + lo: &mut impl Layouter, + l: NoteCommitPiece, + l_ranges: [RangeConstrained>; 2], // [l0, l1] + ) -> Result<[AssignedCell; 2], Error> { + lo.assign_region( + || "NoteCommit MessagePiece i", + |mut region| { + let [l0, l1] = l_ranges; + // Enable selector on the row + self.q_notecommit_l.enable(&mut region, 0)?; + // Copy l to col_l + l.inner() + .cell_value() + .copy_advice(|| "l", &mut region, self.col_l, 0)?; + // Assign l0 and l1 + let l0_cell = region.assign_advice(|| "l0", self.col_m, 0, || *l0.inner())?; + let l1_cell = region.assign_advice(|| "l1", self.col_r, 0, || *l1.inner())?; + Ok([l0_cell, l1_cell]) + }, + ) + } +} + +/// | A_6 | A_7 | A_8 | A_9 | q_notecommit_nd | +/// ----------------------------------------------------------- +/// | nd | b0 | a | z13_a | 1 | +/// | | | a_prime | z13_a_prime | 0 | +/// +#[derive(Clone, Debug)] +struct NdCanonicity { + q_notecommit_nd: Selector, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, +} + +impl NdCanonicity { + #[allow(clippy::too_many_arguments)] + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, + two_pow_250: pallas::Base, + t_p: Expression, + ) -> Self { + let q_notecommit_nd = meta.selector(); + + meta.create_gate("NoteCommit input nd", |meta| { + let q_notecommit_nd = meta.query_selector(q_notecommit_nd); + + // nd is the full 255-bit value + let nd = meta.query_advice(col_l, Rotation::cur()); + // b0 is bits 250-254 of nd (5 bits) + let b0 = meta.query_advice(col_m, Rotation::cur()); + // a is bits 0-249 of nd (250 bits) + let a = meta.query_advice(col_r, Rotation::cur()); + let a_prime = meta.query_advice(col_r, Rotation::next()); + let z13_a = meta.query_advice(col_z, Rotation::cur()); + let z13_a_prime = meta.query_advice(col_z, Rotation::next()); + // Decomposition: nd = a + b0 * 2^250 + let decomposition_check = a.clone() + b0.clone() * two_pow_250 - nd; + + // a_prime = a + 2^250 - t_P ← FIXED: Use 2^250, not 2^130 + let two_pow_250_expr = Expression::Constant(two_pow_250); + let a_prime_check = a + two_pow_250_expr - t_p - a_prime; + + // Check if nd >= 2^254 (i.e., b0 >= 2^4) + let b0_high_bit = b0.clone() - Expression::Constant(pallas::Base::from(16)); + + Constraints::with_selector( + q_notecommit_nd, + iter::empty() + .chain(Some(("decomposition", decomposition_check))) + .chain(Some(("a_prime_check", a_prime_check))) + .chain( + iter::empty() + .chain(Some(("high nd => z13_a = 0", b0_high_bit.clone() * z13_a))) // If b0 >= 16, enforce z13_a = 0 + .chain(Some(( + "high nd => z13_a_prime = 0", + b0_high_bit * z13_a_prime, // If b0 >= 16, enforce z13_a_prime = 0 + ))), + ), + ) + }); + + Self { + q_notecommit_nd, + col_l, + col_m, + col_r, + col_z, + } + } + + #[allow(clippy::too_many_arguments)] + fn assign( + &self, + lo: &mut impl Layouter, + nd: &AssignedCell, + a: NoteCommitPiece, + b0: RangeConstrained>, + b1: AssignedCell, + a_prime: AssignedCell, + z13_a: AssignedCell, + z13_a_prime: AssignedCell, + ) -> Result<(), Error> { + lo.assign_region( + || "NoteCommit input nd", + |mut region| { + nd.copy_advice(|| "nd", &mut region, self.col_l, 0)?; + + b0.inner() + .copy_advice(|| "b0", &mut region, self.col_m, 0)?; + + a.inner() + .cell_value() + .copy_advice(|| "a", &mut region, self.col_r, 0)?; + a_prime.copy_advice(|| "a_prime", &mut region, self.col_r, 1)?; + + z13_a.copy_advice(|| "z13_a", &mut region, self.col_z, 0)?; + z13_a_prime.copy_advice(|| "z13_a_prime", &mut region, self.col_z, 1)?; + + self.q_notecommit_nd.enable(&mut region, 0) + }, + ) + } +} + +/// | A_6 | A_7 | A_8 | A_9 | q_notecommit_v | +/// ------------------------------------------------- +/// | value| b1 | c0 | b1_c0' | 1 | +/// | | | | z6_b1_c0'| 0 | +#[derive(Clone, Debug)] +struct ValueCanonicity { + q_notecommit_v: Selector, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, +} + +impl ValueCanonicity { + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, + two_pow_55: pallas::Base, // 2^55 for c0 (v[0..55), 55 bits) + two_pow_64: pallas::Base, + t_p: Expression, + ) -> Self { + let q_notecommit_v = meta.selector(); + + meta.create_gate("NoteCommit input v", |meta| { + let q_notecommit_v = meta.query_selector(q_notecommit_v); + // full 64 bits of v + let value = meta.query_advice(col_l, Rotation::cur()); + // b1 (bottom 55 bits of v, bits 0..55) - assigned as witness + let b1 = meta.query_advice(col_m, Rotation::cur()); + // c0 (top 9 bits of v, bits 55..64) - constrained to 9 bits in DecomposeC + let c0 = meta.query_advice(col_r, Rotation::cur()); + let b1_c0_prime = meta.query_advice(col_z, Rotation::cur()); + let z6_b1_c0_prime = meta.query_advice(col_z, Rotation::next()); + + // value = b1 + 2^55 * c0 + let value_check = b1.clone() + c0.clone() * two_pow_55 - value; + + // Canonicity check: b1_c0_prime = b1 + c0 * 2^55 + 2^64 - t_P + let b1_c0_prime_check = + b1 + c0 * two_pow_55 + Expression::Constant(two_pow_64) - t_p - b1_c0_prime.clone(); + + Constraints::with_selector( + q_notecommit_v, + [ + ("value_check", value_check), + ("b1_c0_prime_check", b1_c0_prime_check), + ], + ) + }); + + Self { + q_notecommit_v, + col_l, + col_m, + col_r, + col_z, + } + } + + fn assign( + &self, + lo: &mut impl Layouter, + value: AssignedCell, + b1: RangeConstrained>, // v[0..55) - 55 bits + c0: AssignedCell, + b1_c0_prime: AssignedCell, + z6_b1_c0_prime: AssignedCell, + ) -> Result<(), Error> { + lo.assign_region( + || "NoteCommit input value", + |mut region| { + self.q_notecommit_v.enable(&mut region, 0)?; + + // Row 0 + value.copy_advice(|| "value", &mut region, self.col_l, 0)?; + region.assign_advice(|| "b1", self.col_m, 0, || *b1.inner())?; + c0.copy_advice(|| "c0", &mut region, self.col_r, 0)?; + b1_c0_prime.copy_advice(|| "b1_c0_prime", &mut region, self.col_z, 0)?; + + // Row 1 + z6_b1_c0_prime.copy_advice(|| "z6_b1_c0_prime", &mut region, self.col_z, 1)?; + + Ok(()) + }, + ) + } +} + +/// | A_6 | A_7 | A_8 | q_notecommit_fdi | +/// -------------------------------------------- +/// | fdi | c1 | d0 | 1 | +/// +#[derive(Clone, Debug)] +struct FdiCanonicity { + q_notecommit_fdi: Selector, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, +} + +impl FdiCanonicity { + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, + two_pow_51: pallas::Base, + two_pow_64: pallas::Base, + t_p: Expression, + ) -> Self { + let q_notecommit_fdi = meta.selector(); + + meta.create_gate("NoteCommit input value", |meta| { + let q_notecommit_fdi = meta.query_selector(q_notecommit_fdi); + // Row 0 + let fdi = meta.query_advice(col_l, Rotation::cur()); + let c1 = meta.query_advice(col_m, Rotation::cur()); // bits 0..51 (51 bits) + let d0 = meta.query_advice(col_r, Rotation::cur()); // bits 51..64 (13 bits) + let c1_d0_prime = meta.query_advice(col_z, Rotation::cur()); + + // Row 1 + let z6_c1_d0_prime = meta.query_advice(col_z, Rotation::next()); + + // Decomposition check: fdi = c1 + d0 * 2^51 + let fdi_check = c1.clone() + d0.clone() * two_pow_51 - fdi; + + // Canonicity check: c1_d0_prime = c1 + d0 * 2^51 + 2^64 - t_P + let c1_d0_prime_check = + c1 + d0 * two_pow_51 + Expression::Constant(two_pow_64) - t_p - c1_d0_prime; + + Constraints::with_selector( + q_notecommit_fdi, + [ + ("fdi_check", fdi_check), + ("c1_d0_prime_check", c1_d0_prime_check), + ], + ) + }); + + Self { + q_notecommit_fdi, + col_l, + col_m, + col_r, + col_z, + } + } + + fn assign( + &self, + lo: &mut impl Layouter, + fdi: AssignedCell, + c1: AssignedCell, + d0: AssignedCell, + c1_d0_prime: AssignedCell, + z6_c1_d0_prime: AssignedCell, + ) -> Result<(), Error> { + lo.assign_region( + || "NoteCommit input fdi", + |mut region| { + self.q_notecommit_fdi.enable(&mut region, 0)?; + + // Row 0 + fdi.copy_advice(|| "fdi", &mut region, self.col_l, 0)?; + c1.copy_advice(|| "c1 (bits 0..51)", &mut region, self.col_m, 0)?; + d0.copy_advice(|| "d0 (bits 51..64)", &mut region, self.col_r, 0)?; + c1_d0_prime.copy_advice(|| "c1_d0_prime", &mut region, self.col_z, 0)?; + + // Row 1 + z6_c1_d0_prime.copy_advice(|| "z6_c1_d0_prime", &mut region, self.col_z, 1)?; + + Ok(()) + }, + ) + } +} + +/// | A_6 | A_7 | A_8 | A_9 | q_notecommit_recp | +/// ------------------------------------------------------ +/// | recp | d1 | e | d1_e_f0' | 1 | +/// | | f0 | | z26_d1_e_f0' | 0 | +/// +#[derive(Clone, Debug)] +struct RecpCanonicity { + q_notecommit_recp: Selector, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, +} + +impl RecpCanonicity { + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, + two_pow_7: pallas::Base, + two_pow_247: pallas::Base, + two_pow_254: pallas::Base, + t_p: Expression, + ) -> Self { + let q_notecommit_recp = meta.selector(); + // recp = bits 0..7 of (d1) || 67..127 of recp (60) || 127..187 of recp (60) || 187..247 of recp (20) || 247..255 recp 8 + meta.create_gate("NoteCommit input value", |meta| { + let q_notecommit_recp = meta.query_selector(q_notecommit_recp); + // Row 0 + let recp = meta.query_advice(col_l, Rotation::cur()); + let d1 = meta.query_advice(col_m, Rotation::cur()); // bits 0..7 (7 bits) + let e = meta.query_advice(col_r, Rotation::cur()); // bits 7..247 (240 bits) + let d1_e_f0_prime = meta.query_advice(col_z, Rotation::cur()); + + // Row 1 + let f0 = meta.query_advice(col_m, Rotation::next()); // bits 247..255 (8 bits) + meta.query_advice(col_z, Rotation::next()); + + // Decomposition check: recp = d1 + e * 2^7 + f0 * 2^247 + let recp_check = d1.clone() + e.clone() * two_pow_7 + f0.clone() * two_pow_247 - recp; + + // Canonicity check: d1_e_f0_prime = d1 + e * 2^7 + f0 * 2^247 + 2^254 - t_P + let d1_e_f0_prime_check = + d1 + e * two_pow_7 + f0 * two_pow_247 + Expression::Constant(two_pow_254) + - t_p + - d1_e_f0_prime; + + Constraints::with_selector( + q_notecommit_recp, + [ + ("recp_check", recp_check), + ("d1_e_f0_prime_check", d1_e_f0_prime_check), + ], + ) + }); + + Self { + q_notecommit_recp, + col_l, + col_m, + col_r, + col_z, + } + } + + fn assign( + &self, + lo: &mut impl Layouter, + recp: AssignedCell, + d1: AssignedCell, // From DecomposeD::assign + e: RangeConstrained>, // bitrange_of(recp, 7..247) + f0: AssignedCell, // From DecomposeF::assign + d1_e_f0_prime: AssignedCell, + z26_d1_e_f0_prime: AssignedCell, + ) -> Result<(), Error> { + lo.assign_region( + || "NoteCommit recp canonicity", + |mut region| { + self.q_notecommit_recp.enable(&mut region, 0)?; + + // Row 0 + recp.copy_advice(|| "recp full", &mut region, self.col_l, 0)?; + d1.copy_advice(|| "d1 (bits 0..7)", &mut region, self.col_m, 0)?; + region.assign_advice(|| "e (bits 7..247)", self.col_r, 0, || *e.inner())?; + d1_e_f0_prime.copy_advice(|| "d1_e_f0_prime", &mut region, self.col_z, 0)?; + + // Row 1 + f0.copy_advice(|| "f0 (bits 247..255)", &mut region, self.col_m, 1)?; + z26_d1_e_f0_prime.copy_advice( + || "z26_d1_e_f0_prime", + &mut region, + self.col_z, + 1, + )?; + + Ok(()) + }, + ) + } +} + +/// | A_6 | A_7 | A_8 | A_9 | q_notecommit_esk | +/// ------------------------------------------- +/// | esk | f1 | g | h0 | 1 | +#[derive(Clone, Debug)] +struct EskCanonicity { + q_notecommit_esk: Selector, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, +} + +impl EskCanonicity { + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, + two_pow_2: pallas::Base, + two_pow_252: pallas::Base, + two_pow_254: pallas::Base, + t_p: Expression, + ) -> Self { + let q_notecommit_esk = meta.selector(); + + meta.create_gate("NoteCommit input value", |meta| { + let q_notecommit_esk = meta.query_selector(q_notecommit_esk); + + // Row 0 + let esk = meta.query_advice(col_l, Rotation::cur()); + let f1 = meta.query_advice(col_m, Rotation::cur()); // bits 0..2 + let g = meta.query_advice(col_r, Rotation::cur()); // bits 2..252 + let f1_g_h0_prime = meta.query_advice(col_z, Rotation::cur()); + + // Row 1 + let h0 = meta.query_advice(col_m, Rotation::next()); + let z26_f1_g_h0_prime = meta.query_advice(col_z, Rotation::next()); + + // Decomposition check: esk = f1 + g * 2^2 + h0 * 2^252 + let esk_check = f1.clone() + g.clone() * two_pow_2 + h0.clone() * two_pow_252 - esk; + + // Canonicity check: f1_g_h0_prime = f1 + g * 2^2 + h0 * 2^252 + 2^254 - t_P + let f1_g_h0_prime_check = + f1 + g * two_pow_2 + h0 * two_pow_252 + Expression::Constant(two_pow_254) + - t_p + - f1_g_h0_prime; + + Constraints::with_selector( + q_notecommit_esk, + [ + ("esk_check", esk_check), + ("f1_g_h0_prime_check", f1_g_h0_prime_check), + ], + ) + }); + + Self { + q_notecommit_esk, + col_l, + col_m, + col_r, + col_z, + } + } + + fn assign( + &self, + lo: &mut impl Layouter, + esk: AssignedCell, + f1: AssignedCell, + g: RangeConstrained>, + h0: AssignedCell, + f1_g_h0_prime: AssignedCell, + z26_f1_g_h0_prime: AssignedCell, + ) -> Result<(), Error> { + lo.assign_region( + || "NoteCommit esk canonicity", + |mut region| { + self.q_notecommit_esk.enable(&mut region, 0)?; + + // Row 0 + esk.copy_advice(|| "esk full", &mut region, self.col_l, 0)?; + f1.copy_advice(|| "f1 (bits 0..2)", &mut region, self.col_m, 0)?; + region.assign_advice(|| "g (bits 2..252)", self.col_r, 0, || *g.inner())?; + f1_g_h0_prime.copy_advice(|| "f1_g_h0_prime", &mut region, self.col_z, 0)?; + + // Row 1 + h0.copy_advice(|| "h0 (bits 252..255)", &mut region, self.col_m, 1)?; + z26_f1_g_h0_prime.copy_advice( + || "z26_f1_g_h0_prime", + &mut region, + self.col_z, + 1, + )?; + + Ok(()) + }, + ) + } +} + +/// | A_6 | A_7 | A_8 | A_9 | q_notecommit_rho | +/// ----------------------------------------------------- +/// | rho | h1 | i | h1_i_j0' | 1 | +/// | | j0 | | z26_h1_i_j0' | 0 | +/// +#[derive(Clone, Debug)] +struct RhoCanonicity { + q_notecommit_rho: Selector, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, +} + +impl RhoCanonicity { + #[allow(clippy::too_many_arguments)] + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, + two_pow_7: pallas::Base, + two_pow_247: pallas::Base, + two_pow_254: pallas::Base, + t_p: Expression, + ) -> Self { + let q_notecommit_rho = meta.selector(); + + meta.create_gate("NoteCommit input rho", |meta| { + let q_notecommit_rho = meta.query_selector(q_notecommit_rho); + + let rho = meta.query_advice(col_l, Rotation::cur()); // full 255-bit rho + let h1 = meta.query_advice(col_m, Rotation::cur()); // bits 0..7 (7 bits, from DecomposeH) + let i = meta.query_advice(col_r, Rotation::cur()); // bits 7..247 (240 bits, assigned as witness) + + let h1_i_j0_prime = meta.query_advice(col_z, Rotation::cur()); + let j0 = meta.query_advice(col_m, Rotation::next()); + + // Row 1 + let z26_h1_i_j0_prime = meta.query_advice(col_z, Rotation::next()); + + // Decomposition check: rho = h1 + i * 2^7 + j0 * 2^247 + let rho_check = h1.clone() + i.clone() * two_pow_7 + j0.clone() * two_pow_247 - rho; + + // Canonicity check: h1_i_j0_prime = h1 + i * 2^7 + j0 * 2^247 + 2^254 - t_P + let h1_i_j0_prime_check = + h1 + i * two_pow_7 + j0 * two_pow_247 + Expression::Constant(two_pow_254) + - t_p + - h1_i_j0_prime; + + Constraints::with_selector( + q_notecommit_rho, + [ + ("rho_check", rho_check), + ("h1_i_j0_prime_check", h1_i_j0_prime_check), + ], + ) + }); + + Self { + q_notecommit_rho, + col_l, + col_m, + col_r, + col_z, + } + } + + #[allow(clippy::too_many_arguments)] + fn assign( + &self, + lo: &mut impl Layouter, + rho: AssignedCell, + h1: AssignedCell, // From DecomposeH::assign (h[1]) + i: RangeConstrained>, // bitrange_of(rho, 7..247) + j0: AssignedCell, // From DecomposeJ::assign (j[0]) + h1_i_j0_prime: AssignedCell, + z26_h1_i_j0_prime: AssignedCell, + ) -> Result<(), Error> { + lo.assign_region( + || "NoteCommit rho canonicity", + |mut region| { + self.q_notecommit_rho.enable(&mut region, 0); + // Row 0 + rho.copy_advice(|| "rho full", &mut region, self.col_l, 0)?; + h1.copy_advice(|| "h1 (bits 0..7)", &mut region, self.col_m, 0)?; + region.assign_advice(|| "i (bits 7..247)", self.col_r, 0, || *i.inner())?; + h1_i_j0_prime.copy_advice(|| "h1_i_j0_prime", &mut region, self.col_z, 0)?; + + // Row 1 + j0.copy_advice(|| "j0 (bits 247..255)", &mut region, self.col_m, 1)?; + z26_h1_i_j0_prime.copy_advice( + || "z26_h1_i_j0_prime", + &mut region, + self.col_z, + 1, + )?; + Ok(()) + }, + ) + } +} + +/// | A_6 | A_7 | A_8 | A_9 | q_notecommit_psi | +/// ------------------------------------------- +/// | psi | i1 | i2 | z13_i| 1 | +/// | | i3 | | | 0 | +/// +#[derive(Clone, Debug)] +struct PsiCanonicity { + q_notecommit_psi: Selector, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, +} + +impl PsiCanonicity { + #[allow(clippy::too_many_arguments)] + fn configure( + meta: &mut ConstraintSystem, + col_l: Column, + col_m: Column, + col_r: Column, + col_z: Column, + two_pow_2: pallas::Base, + two_pow_252: pallas::Base, + two_pow_254: pallas::Base, + t_p: Expression, + ) -> Self { + let q_notecommit_psi = meta.selector(); + + meta.create_gate("NoteCommit input psi", |meta| { + let q_notecommit_psi = meta.query_selector(q_notecommit_psi); + + let psi = meta.query_advice(col_l, Rotation::cur()); // full 255-bit psi + let j1 = meta.query_advice(col_m, Rotation::cur()); // bits 0..2 (2 bits, from DecomposeJ) + let k = meta.query_advice(col_r, Rotation::cur()); // bits 2..252 (250 bits, assigned as witness) + let j1_k_l0_prime = meta.query_advice(col_z, Rotation::cur()); + + let l0 = meta.query_advice(col_m, Rotation::next()); // bits 252..255 (3 bits, from DecomposeL) + let z26_j1_k_l0_prime = meta.query_advice(col_z, Rotation::next()); + + // Decomposition check: psi = j1 + k * 2^2 + l0 * 2^252 + let psi_check = j1.clone() + k.clone() * two_pow_2 + l0.clone() * two_pow_252 - psi; + + // Canonicity check: j1_k_l0_prime = j1 + k * 2^2 + l0 * 2^252 + 2^254 - t_P + let j1_k_l0_prime_check = + j1 + k * two_pow_2 + l0 * two_pow_252 + Expression::Constant(two_pow_254) + - t_p + - j1_k_l0_prime; + + Constraints::with_selector( + q_notecommit_psi, + [ + ("psi_check", psi_check), + ("j1_k_l0_prime_check", j1_k_l0_prime_check), + ], + ) + }); + + Self { + q_notecommit_psi, + col_l, + col_m, + col_r, + col_z, + } + } + + fn assign( + &self, + lo: &mut impl Layouter, + psi: AssignedCell, + j1: AssignedCell, // From DecomposeJ::assign (j[1]) + k: RangeConstrained>, // bitrange_of(psi, 2..252) + l0: AssignedCell, // From DecomposeL::assign (l[0]) + j1_k_l0_prime: AssignedCell, + z26_j1_k_l0_prime: AssignedCell, + ) -> Result<(), Error> { + lo.assign_region( + || "NoteCommit psi canonicity", + |mut region| { + self.q_notecommit_psi.enable(&mut region, 0)?; + // Row 0 + psi.copy_advice(|| "psi full", &mut region, self.col_l, 0)?; + j1.copy_advice(|| "j1 (bits 0..2)", &mut region, self.col_m, 0)?; + region.assign_advice(|| "k (bits 2..252)", self.col_r, 0, || *k.inner())?; + j1_k_l0_prime.copy_advice(|| "j1_k_l0_prime", &mut region, self.col_z, 0)?; + + // Row 1 + l0.copy_advice(|| "l0 (bits 252..255)", &mut region, self.col_m, 1)?; + z26_j1_k_l0_prime.copy_advice( + || "z26_j1_k_l0_prime", + &mut region, + self.col_z, + 1, + )?; + + Ok(()) + }, + ) + } +} + +#[allow(non_snake_case)] +#[derive(Clone, Debug)] +pub struct NoteCommitConfig { + b: DecomposeB, + c: DecomposeC, + d: DecomposeD, + f: DecomposeF, + h: DecomposeH, + j: DecomposeJ, + l: DecomposeL, + nd: NdCanonicity, + v: ValueCanonicity, + fdi: FdiCanonicity, + recp: RecpCanonicity, + esk: EskCanonicity, + rho: RhoCanonicity, + psi: PsiCanonicity, + advices: [Column; 10], + sinsemilla_config: + SinsemillaConfig, +} + +#[derive(Clone, Debug)] +pub struct NoteCommitChip { + config: NoteCommitConfig, +} + +impl NoteCommitChip { + #[allow(non_snake_case)] + #[allow(clippy::many_single_char_names)] + pub(in crate::circuit) fn configure( + meta: &mut ConstraintSystem, + advices: [Column; 10], + sinsemilla_config: SinsemillaConfig< + OrchardHashDomains, + OrchardCommitDomains, + OrchardFixedBases, + >, + ) -> NoteCommitConfig { + // Useful constants + let two = pallas::Base::from(2); + let two_pow_2 = pallas::Base::from(1 << 2); + let two_pow_3: pasta_curves::Fp = two_pow_2 * two; + let two_pow_4 = two_pow_2.square(); + let two_pow_5 = two_pow_4 * two; + let two_pow_8 = two_pow_4.square(); + let two_pow_7 = pallas::Base::from(1 << 7); + let two_pow_9 = two_pow_8 * two; + let two_pow_13 = pallas::Base::from(1 << 13); + // let two_pow_10 = two_pow_9 * two; + // let two_pow_13 = pallas::Base::from(1 << 13); + let two_pow_51 = pallas::Base::from(1 << 51); + let two_pow_55 = pallas::Base::from(1 << 55); + let two_pow_60 = pallas::Base::from(1 << 60); + let two_pow_64 = two_pow_60 * two_pow_4; + // let two_pow_58 = pallas::Base::from(1 << 58); + // let two_pow_117 = two_pow_57.square() * two_pow_3; + let two_pow_120 = two_pow_60.square(); + let two_pow_240 = two_pow_120.square(); + // let two_pow_177 = two_pow_117 * two_pow_60; + // let two_pow_237 = two_pow_177 * two_pow_60; + let two_pow_247 = two_pow_240 * two_pow_7; + let two_pow_249 = pallas::Base::from_u128(1 << 124).square() * two; + let two_pow_250 = two_pow_249 * two; + let two_pow_252 = two_pow_250 * two_pow_2; + let two_pow_254 = two_pow_252 * two_pow_2; + + let t_p = Expression::Constant(pallas::Base::from_u128(T_P)); + + // Columns used for MessagePiece and message input gates. + let col_l = advices[6]; + let col_m = advices[7]; + let col_r = advices[8]; + let col_z = advices[9]; + + let b = DecomposeB::configure(meta, col_l, col_m, col_r, two_pow_5); + let c = DecomposeC::configure(meta, col_l, col_m, col_r, two_pow_9); + let d = DecomposeD::configure(meta, col_l, col_m, col_r, two_pow_13); + let f = DecomposeF::configure(meta, col_l, col_m, col_r, two_pow_8); + let h = DecomposeH::configure(meta, col_l, col_m, col_r, two_pow_3); + let j = DecomposeJ::configure(meta, col_l, col_m, col_r, two_pow_8); + let l = DecomposeL::configure(meta, col_l, col_m, col_r, two_pow_3); + + let nd = NdCanonicity::configure( + meta, + col_l, + col_m, + col_r, + col_z, + two_pow_250.clone(), + t_p.clone(), + ); + + let v = ValueCanonicity::configure( + meta, + col_l, + col_m, + col_r, + col_z, + two_pow_55, + two_pow_64, + t_p.clone(), + ); + let fdi = FdiCanonicity::configure( + meta, + col_l, + col_m, + col_r, + col_z, + two_pow_51, + two_pow_64, + t_p.clone(), + ); + let recp = RecpCanonicity::configure( + meta, + col_l, + col_m, + col_r, + col_z, + two_pow_7, + two_pow_247, + two_pow_254, + t_p.clone(), + ); + + let esk = EskCanonicity::configure( + meta, + col_l, + col_m, + col_r, + col_z, + two_pow_2, + two_pow_252, + two_pow_254, + t_p.clone(), + ); + + let rho = RhoCanonicity::configure( + meta, + col_l, + col_m, + col_r, + col_z, + two_pow_7, + two_pow_247, + two_pow_254, + t_p.clone(), + ); + + let psi = PsiCanonicity::configure( + meta, + col_l, + col_m, + col_r, + col_z, + two_pow_2, + two_pow_252, + two_pow_254, + t_p, + ); + + NoteCommitConfig { + b, + c, + d, + f, + h, + j, + l, + nd, + v, + fdi, + recp, + esk, + rho, + psi, + advices, + sinsemilla_config, + } + } + + pub(in crate::circuit) fn construct(config: NoteCommitConfig) -> Self { + Self { config } + } +} + +pub(in crate::circuit) mod gadgets { + use halo2_gadgets::sinsemilla::HashDomain; + use halo2_proofs::circuit::{Chip, Value}; + + use super::*; + + #[allow(clippy::many_single_char_names)] + #[allow(clippy::type_complexity)] + #[allow(clippy::too_many_arguments)] + pub(in crate::circuit) fn note_commit( + mut lo: impl Layouter, + chip: SinsemillaChip, + ecc_chip: EccChip, + note_commit_chip: NoteCommitChip, + nd: AssignedCell, + v: AssignedCell, + fdi: AssignedCell, + recp: AssignedCell, + esk: AssignedCell, + rho: AssignedCell, + psi: AssignedCell, + rcm: ScalarFixed>, + ) -> Result>, Error> { + // Headstash NoteCommitment Message: nd(254) || v(64) || fdi(64) || recp(254) || esk(254) || rho(254) || psi(254) + // Total: 1398 bits + // + // Optimized decomposition for Sinsemilla (250 bit pieces, 10-bit limb alignment): + let lc = chip.config().lookup_config(); + + // Piece a: bits 0-249 of nd (250 bits) + let a = MessagePiece::from_subpieces( + chip.clone(), + lo.namespace(|| "piece_a: nd[0..250)"), + [RangeConstrained::bitrange_of(nd.value(), 0..250)], + )?; + // Piece b: bits 250..255 of nd || 0..55 of v (5 + 55 = 60 bits) + let (b, b0, b1) = DecomposeB::decompose(&lc, chip.clone(), &mut lo, &nd, &v)?; + // Piece c: bits 55-64 of v || 0-51 of fdi (9 + 51 = 60 bits) + let (c, c0, c1) = DecomposeC::decompose(chip.clone(), &mut lo, &v, &fdi)?; + // Piece d: bits 51-64 of fdi || 0..7 of recp (13 + 7 = 20 bits) + let (d, d0, d1) = DecomposeD::decompose(chip.clone(), &mut lo, &fdi, &recp)?; + // Piece e: bits 7..247 of recp (240 bits) + // First, create and save the value for e + let e_value = RangeConstrained::bitrange_of(recp.value(), 7..247); + let e = MessagePiece::from_subpieces( + chip.clone(), + lo.namespace(|| "piece_e: recp[7..247)"), + [e_value], + )?; + // Piece f: bits 247..255 of recp (8) || 0..2 of esk (8 + 2 = 10 bits) + let (f, [f0, f1]) = DecomposeF::decompose(chip.clone(), &mut lo, &recp, &esk)?; + // Piece g: bits 2..252 of esk (250 bits) + let g_value = RangeConstrained::bitrange_of(esk.value(), 2..252); + let g = MessagePiece::from_subpieces(chip.clone(), lo.namespace(|| "g: "), [g_value])?; + // Piece h: bits 252..255 of esk (3) || bits 0..7 of rho (7) (7+3 = 10 bits) + let (h, [h0, h1]) = DecomposeH::decompose(chip.clone(), &mut lo, &esk, &rho)?; + // Piece i: bits 7..247 of rho (240 bits) + // Save the value for canonicity check + let i_value = RangeConstrained::bitrange_of(rho.value(), 7..247); + let i = MessagePiece::from_subpieces(chip.clone(), lo.namespace(|| "g: "), [i_value])?; + // Piece j: bits 247..255 of rho (8) || bits 0..2 of psi (8+2 = 10 bits) + let (j, [j0, j1]) = DecomposeJ::decompose(chip.clone(), &mut lo, &rho, &psi)?; + // Piece k: bits 2..252 psi + let k_value = RangeConstrained::bitrange_of(psi.value(), 2..252); + let k = MessagePiece::from_subpieces(chip.clone(), lo.namespace(|| "k"), [k_value])?; + // Piece l: bits 252..255 of psi (3 bits) || 7 bit padding (3+7 = 10 bits) + let (l, [l0, l1]) = DecomposeL::decompose(chip.clone(), &mut lo, &psi)?; + + println!("Message pieces:"); + println!("a: {:?}", a); + println!("b: {:?}", b); + println!("b0: {:?}", b0); + println!("b1: {:?}", b1); + println!("c: {:?}", c); + println!("c0: {:?}", c0); + println!("c1: {:?}", c1); + println!("d: {:?}", d); + println!("d0: {:?}", d0); + println!("d1: {:?}", d1); + println!("e: {:?}", e); + println!("f0: {:?}", f0); + println!("f1: {:?}", f1); + println!("f: {:?}", f); + println!("g: {:?}", g); + println!("h0: {:?}", h0); + println!("h1: {:?}", h1); + println!("h: {:?}", h); + println!("i: {:?}", i); + println!("j0: {:?}", j0); + println!("j1: {:?}", j1); + println!("j: {:?}", j); + println!("k: {:?}", k); + println!("l0: {:?}", l0); + println!("l1: {:?}", l1); + println!("l: {:?}", l); + + // cm = NoteCommit^Headstash_rcm( nd || i2lebsp_{64}(v) || i2lebsp_{64}(fdi) || recp || esk || rho || psi ) + // + // `cm = ⊥` is handled internally to `CommitDomain::commit`: incomplete addition + // constraints allows ⊥ to occur, and then during synthesis it detects these edge + // cases and raises an error (aborting proof creation). + let (cm, zs) = { + let message = Message::from_pieces( + chip.clone(), + vec![ + a.clone(), + b.clone(), + c.clone(), + d.clone(), + e.clone(), + f.clone(), + g.clone(), + h.clone(), + i.clone(), + j.clone(), + k.clone(), + l.clone(), + ], + ); + let domain = CommitDomain::new(chip, ecc_chip, &OrchardCommitDomains::NoteCommit); + domain.commit(lo.namespace(|| "Process NoteCommit inputs"), message, rcm)? + }; + + // `CommitDomain::commit` returns the running sum for each `MessagePiece`. Grab + // the outputs that we will need for canonicity checks.' + println!("Running sums length:"); + println!("zs:{:#?}", zs.len()); + println!("zs[0]:{:#?}", zs[0].len()); + println!("zs[1]:{:#?}", zs[1].len()); + println!("zs[2]:{:#?}", zs[2].len()); + println!("zs[3]:{:#?}", zs[3].len()); + println!("zs[4]:{:#?}", zs[4].len()); + println!("zs[5]:{:#?}", zs[5].len()); + println!("zs[6]:{:#?}", zs[6].len()); + println!("zs[7]:{:#?}", zs[7].len()); + println!("zs[8]:{:#?}", zs[8].len()); + println!("zs[9]:{:#?}", zs[9].len()); + println!("zs[10]:{:#?}", zs[10].len()); + println!("zs[11]:{:#?}", zs[11].len()); + + // `CommitDomain::commit` returns the running sum for each `MessagePiece`. Grab + // the outputs that we will need for canonicity checks. + + // Piece indices: a=0, b=1, c=2, d=3, e=4, f=5, g=6, h=7, i=8, j=9, k=10, l=11 + + // ===== ND CANONICITY (piece a, b) ===== + // Piece a: nd[0..250) = 250 bits = 25 ten-bit words → zs[0] has 26 elements + let z13_a = zs[0][13].clone(); // Midpoint check for nd's low 250 bits + let z25_a = zs[0][24].clone(); // End of piece a + // ===== VALUE CANONICITY (piece b, c) ===== + // Piece b: nd[250..255) || v[0..55) = 60 bits = 6 words → zs[1] has 7 elements + let z1_b = zs[1][1].clone(); // After first word boundary in piece b + let z6_b = zs[1][5].clone(); // End of piece b (end of v's low 55 bits) + // Piece c: v[55..64) || fdi[0..51) = 60 bits = 6 words → zs[2] has 7 elements + let z1_c = zs[2][1].clone(); // After v[55..64) completes (9 bits → in first word) + let z6_c = zs[2][5].clone(); // End of piece c + // ===== FDI CANONICITY (piece c, d) ===== + // Piece d: fdi[51..64) || recp[0..7) = 20 bits = 2 words → zs[3] has 3 elements + let z1_d = zs[3][0].clone(); // After fdi[51..64) completes (13 bits → in second word) + let z2_d = zs[3][1].clone(); // End of piece d + // ===== RECP CANONICITY (piece d, e, f) ===== + // Piece e: recp[7..247) = 240 bits = 24 words → zs[4] has 25 elements + let z13_e = zs[4][13].clone(); // Midpoint check for recp middle bits + let z24_e = zs[4][23].clone(); // End of piece e + // Piece f: recp[247..255) || esk[0..2) = 10 bits = 1 word → zs[5] has 2 elements + let z1_f = zs[5][0].clone(); // End of piece f (completes recp high 8 bits) + // ===== ESK CANONICITY (piece f, g, h) ===== + // Piece g: esk[2..247) = 245 bits = 24.5 words → zs[6] has 25 or 26 elements (check actual) + let z13_g = zs[6][13].clone(); // Midpoint check for esk middle bits + let z24_g = zs[6][24].clone(); // Near end of piece g + // Piece h: esk[247..255) || rho[0..2) = 10 bits = 1 word → zs[7] has 2 elements + let z1_h = zs[7][0].clone(); // End of piece h (completes esk high 8 bits) + // ===== RHO CANONICITY (piece h, i, j) ===== + // Piece i: rho[2..252) = 250 bits = 25 words → zs[8] has 26 elements + let z13_i = zs[8][13].clone(); // Midpoint check for rho middle bits + let z25_i = zs[8][23].clone(); // End of piece i + // Piece j: rho[252..255) || psi[0..7) = 10 bits = 1 word → zs[9] has 2 elements + let z1_j = zs[9][0].clone(); // End of piece j (completes rho high 3 bits) + // Piece k: psi[7..247) = 240 bits = 24 words → zs[10] has 25 elements + let z13_k = zs[10][13].clone(); // Midpoint check for psi middle bits + let z24_k = zs[10][24].clone(); // End of piece k + // Piece l: psi[247..255) || padding(2) = 10 bits = 1 word → zs[11] has 2 elements + let z1_l = zs[11][0].clone(); // End of piece l (completes psi high 8 bits) + + println!("Running sums:"); + // ===== ND CANONICITY ===== + println!("z13_a: {:?}", z13_a); + println!("z25_a: {:?}", z25_a); + // ===== VALUE CANONICITY ===== + println!("z1_b: {:?}", z1_b); + println!("z6_b: {:?}", z6_b); + println!("z1_c: {:?}", z1_c); + println!("z6_c: {:?}", z6_c); + // ===== FDI CANONICITY ===== + println!("z1_d: {:?}", z1_d); + println!("z2_d: {:?}", z2_d); + // ===== RECP CANONICITY ===== + println!("z13_e: {:?}", z13_e); + println!("z24_e: {:?}", z24_e); + println!("z1_f: {:?}", z1_f); + // ===== ESK CANONICITY ===== + println!("z13_g: {:?}", z13_g); + println!("z24_g: {:?}", z24_g); + println!("z1_h: {:?}", z1_h); + // ===== RHO CANONICITY ===== + println!("z13_i: {:?}", z13_i); + println!("z25_i: {:?}", z25_i); + println!("z1_j: {:?}", z1_j); + // ===== PSI CANONICITY ===== + println!("z13_k: {:?}", z13_k); + println!("z24_k: {:?}", z24_k); + println!("z1_l: {:?}", z1_l); + + // Check decomposition of nd (a,b0) + let (a_prime, z13_a_prime) = nd_canonicity( + &lc, + lo.namespace(|| "nd canonicity"), + a.inner().cell_value(), + )?; + + // Check decomposition of v (b1, c0) + let (b1_c0_prime, z6_b1_c0_prime) = + v_canonicity(&lc, lo.namespace(|| "v canonicity"), b1.clone(), c0.clone())?; + + // Check decomposition of fdi (c1,d0) + let (c1_d0_prime, z6_c1_d0_prime) = fdi_canonicity( + &lc, + lo.namespace(|| "fdi canonicity"), + c1.clone(), + d0.clone(), + )?; + + // Check decomposition of recp (d1,e,f0) + let (d1_e_f0_prime, z26_d1_e_f0_prime) = recp_canonicity( + &lc, + lo.namespace(|| "v canonicity"), + d1.clone(), + e_value, + f0.clone(), + )?; + + // Check decomposition of esk (f1,g,h0) + let (f1_g_h0_prime, z26_f1_g_h0_prime) = esk_canonicity( + &lc, + lo.namespace(|| "esk canonicity"), + f1.clone(), + g.inner().cell_value(), + h0.clone(), + )?; + + // Check decomposition of rho (h1,i,j0) + let (h1_i_j0_prime, z26_h1_i_j0_prime) = rho_canonicity( + &lc, + lo.namespace(|| "rho canonicity"), + h1.clone(), + i.inner().cell_value(), + j0.clone(), + )?; + + // Check decomposition of psi (j1, k, l0) + let (j1_k_l0_prime, z26_j1_k_l0_prime) = psi_canonicity( + &lc, + lo.namespace(|| "psi canonicity"), + j1.clone(), + k.inner().cell_value(), + l0.clone(), + )?; + + // Finally, assign vs to all of the NoteCommit regions. + let cfg = note_commit_chip.config; + + let b_1 = cfg.b.assign(&mut lo, b, b0.clone(), b1)?; + let [c0, c1] = cfg.c.assign(&mut lo, c, c0.clone(), c1)?; + let [d0, d1] = cfg.d.assign(&mut lo, d, d0, d1, z1_d)?; + let [f0, f1] = cfg.f.assign(&mut lo, f, [f0, f1])?; + let [h0, h1] = cfg.h.assign(&mut lo, h, [h0, h1])?; + let [j0, j1] = cfg.j.assign(&mut lo, j, [j0, j1])?; + let [l0, l1] = cfg.l.assign(&mut lo, l, [l0, l1])?; + + cfg.nd + .assign(&mut lo, &nd, a, b0, b_1, a_prime, z13_a, z13_a_prime)?; + cfg.v + .assign(&mut lo, v, b1, c0, b1_c0_prime, z6_b1_c0_prime)?; + cfg.fdi + .assign(&mut lo, fdi, c1, d0, c1_d0_prime, z6_c1_d0_prime)?; + cfg.recp.assign( + &mut lo, + recp, + d1, + e_value, + f0, + d1_e_f0_prime, + z26_d1_e_f0_prime, + )?; + cfg.esk.assign( + &mut lo, + esk, + f1, + g_value, + h0, + f1_g_h0_prime, + z26_f1_g_h0_prime, + )?; + cfg.rho.assign( + &mut lo, + rho, + h1, + i_value, + j0, + h1_i_j0_prime, + z26_h1_i_j0_prime, + )?; + cfg.psi.assign( + &mut lo, + psi, + j1, + k_value, + l0, + j1_k_l0_prime, + z26_j1_k_l0_prime, + )?; + Ok(cm) + } + + /// A canonicity check helper used in checking nd. + fn nd_canonicity( + lc: &LookupRangeCheckConfig, + mut lo: impl Layouter, + a: AssignedCell, + ) -> Result { + // element = a (250 bits) + let a_prime = { + let two_pow_250 = Value::known(pallas::Base::from_u128(1u128 << 125).square()); + let t_p = Value::known(pallas::Base::from_u128(T_P)); + a.value() + two_pow_250 - t_p + }; + let zs = lc.witness_check( + lo.namespace(|| "Decompose low 250 bits of (a + 2^250 - t_P)"), + a_prime, + 25, + false, + )?; + let a_prime = zs[0].clone(); + assert_eq!(zs.len(), 26); // [z_0, z_1, ..., z_25] + Ok((a_prime, zs[25].clone())) + } + + /// Check canonicity of `v` encoding. + fn v_canonicity( + lc: &LookupRangeCheckConfig, + mut lo: impl Layouter, + b1: RangeConstrained>, + c0: RangeConstrained>, // Updated to take c0 directly + ) -> Result { + // `v` = `b1 (55 bits) || c0 (9 bits)` + // Canonicity check: b1 + 2^55 * c0 < t_P + + let b1_c0_prime = { + let two_pow_55 = Value::known(pallas::Base::from(1u64 << 55)); + let two_pow_64 = two_pow_55.value() * Value::known(pallas::Base::from(1u64 << 9)); + let t_p = Value::known(pallas::Base::from_u128(T_P)); + b1.inner().value() + (two_pow_55 * c0.inner().value()) + two_pow_64 - t_p + }; + let zs = lc.witness_check( + lo.namespace(|| "Decompose low 64 bits of (b1 + 2^55 * c0 + 2^64 - t_P)"), + b1_c0_prime, + 6, + false, + )?; + let b1_c0_prime = zs[0].clone(); + assert_eq!(zs.len(), 7); // [z_0, z_1, ..., z_6] + Ok((b1_c0_prime, zs[6].clone())) + } + + fn fdi_canonicity( + lc: &LookupRangeCheckConfig, + mut lo: impl Layouter, + c1: RangeConstrained>, // bits 0..51 fdi + d0: RangeConstrained>, // bits 51..64 fdi + ) -> Result { + // Check canonicity of `fdi` encoding. + // + // `fdi` = `c1 (51 bits) || d0 (13 bits)` + let c1_d0_prime = { + let two_pow_51 = Value::known(pallas::Base::from(1u64 << 51)); + let two_pow_64 = two_pow_51.value() * Value::known(pallas::Base::from(1u64 << 13)); + let t_p = Value::known(pallas::Base::from_u128(T_P)); + c1.inner().value() + (two_pow_51 * d0.inner().value()) + two_pow_64 - t_p + }; + let zs = lc.witness_check( + lo.namespace(|| "Decompose low 64 bits of (c1 + 2^51 * d0 + 2^64 - t_P)"), + c1_d0_prime, + 6, + false, + )?; + let c1_d0_prime = zs[0].clone(); + assert_eq!(zs.len(), 7); // [z_0, z_1, ..., z_6] + Ok((c1_d0_prime, zs[6].clone())) + } + + /// Check canonicity of `recp` encoding. + fn recp_canonicity( + lc: &LookupRangeCheckConfig, + mut lo: impl Layouter, + d1: RangeConstrained>, + e: RangeConstrained>, + f0: RangeConstrained>, + ) -> Result { + // Compute full recp value from decomposed pieces for verification + let d1_e_f0_prime = { + let two_pow_7 = pallas::Base::from(1u64 << 7); + let two_pow_240 = pallas::Base::from(1u64 << 60).square().square(); + let two_pow_247 = two_pow_240 * two_pow_7; + let two_pow_254 = two_pow_247 * two_pow_7; + let t_p = pallas::Base::from_u128(T_P); + + d1.inner() + .value() + .zip(e.inner().value()) + .zip(f0.inner().value()) + .map(|((d1_val, e_val), f0_val)| { + *d1_val + two_pow_7 * e_val + two_pow_247 * f0_val + two_pow_254 - t_p + }) + }; + + // For 254-bit range check: 254 bits / 10 bits per chunk = 25.4, so use 26 chunks + let zs = lc.witness_check( + lo.namespace(|| "Decompose (d1 + e * 2^7 + f0 * 2^247 + 2^254 - t_P)"), + d1_e_f0_prime, + 25, + false, + )?; + + let d1_e_f0_prime = zs[0].clone(); + assert_eq!(zs.len(), 26); // [z_0, z_1, ..., z_26] + Ok((d1_e_f0_prime, zs[25].clone())) + } + + /// Check canonicity of `esk` encoding. + fn esk_canonicity( + lc: &LookupRangeCheckConfig, + mut lo: impl Layouter, + f1: RangeConstrained>, // bits 0..7 of esk + g: AssignedCell, // bits 7..247 of esk (240 bits) + h0: RangeConstrained>, // bits 247..255 of esk + ) -> Result { + let f1_g_h0_prime = { + let two = pallas::Base::from(1u64 << 2); + let five = pallas::Base::from(1u64 << 5); + let seven = pallas::Base::from(1u64 << 7); + let sixty = pallas::Base::from(1u64 << 60); + let two_pow_2 = Value::known(two); + let two_pow_5 = Value::known(five); + let two_pow_7 = Value::known(seven); + let two_pow_240 = Value::known(sixty.square().square()); + let two_pow_247 = two_pow_240 * two_pow_7; + let two_pow_252 = two_pow_247 * two_pow_5; + let two_pow_254 = two_pow_247 * two_pow_7; + let t_p = Value::known(pallas::Base::from_u128(T_P)); + + f1.inner().value() + + two_pow_2 * g.value() + + two_pow_252 * h0.inner().value() + + two_pow_254 + - t_p + }; + + let zs = lc.witness_check( + lo.namespace(|| "Decompose (f1 + g * 2^2 + h0 * 2^252 + 2^254 - t_P)"), + f1_g_h0_prime, + 25, + false, + )?; + + let esk_prime_cell = zs[0].clone(); + assert_eq!(zs.len(), 26); + Ok((esk_prime_cell, zs[25].clone())) + } + + /// Check canonicity of `rho` encoding. + fn rho_canonicity( + lc: &LookupRangeCheckConfig, + mut lo: impl Layouter, + h1: RangeConstrained>, // bits 0..7 of rho + i: AssignedCell, // bits 7..247 of rho (240 bits) + j0: RangeConstrained>, // bits 247..255 of rho (8 bits) + ) -> Result { + let h1_i_j0_prime = { + let two_pow_7 = Value::known(pallas::Base::from(1u64 << 7)); + let two_pow_240 = Value::known(pallas::Base::from(1u64 << 60).square().square()); + let two_pow_247 = two_pow_240 * two_pow_7; + let two_pow_254 = two_pow_247 * two_pow_7; + let t_p = Value::known(pallas::Base::from_u128(T_P)); + h1.inner().value() + + two_pow_7 * i.value() + + two_pow_247 * j0.inner().value() + + two_pow_254 + - t_p + }; + + let zs = lc.witness_check( + lo.namespace(|| "Decompose low 254 bits of (rho + 2^254 - t_P)"), + h1_i_j0_prime, + 25, + false, + )?; + + let h1_i_j0_prime_cell = zs[0].clone(); + assert_eq!(zs.len(), 26); // [z_0, z_1, ..., z_26] + Ok((h1_i_j0_prime_cell, zs[25].clone())) + } + + // Check canonicity of `psi` encoding. + fn psi_canonicity( + lc: &LookupRangeCheckConfig, + mut lo: impl Layouter, + j1: RangeConstrained>, // bits 0..2 (2 bits) + k: AssignedCell, // bits 2..252 (250 bits) + l0: RangeConstrained>, // bits 252..255 (3 bits) + ) -> Result { + let j1_k_l0_prime = { + let two = pallas::Base::from(1u64 << 2); + let five = pallas::Base::from(1u64 << 5); + let seven = pallas::Base::from(1u64 << 7); + let sixty = pallas::Base::from(1u64 << 60); + let two_pow_2 = Value::known(two); + let two_pow_5 = Value::known(five); + let two_pow_7 = Value::known(seven); + let two_pow_240 = Value::known(sixty.square().square()); + let two_pow_247 = two_pow_240 * two_pow_7; + let two_pow_252 = two_pow_247 * two_pow_5; + let two_pow_254 = two_pow_247 * two_pow_7; + let t_p = Value::known(pallas::Base::from_u128(T_P)); + j1.inner().value() + + two_pow_2 * k.value() + + two_pow_252 * l0.inner().value() + + two_pow_254 + - t_p + }; + + let zs = lc.witness_check( + lo.namespace(|| "Decompose (j1 + k * 2^2 + l0 * 2^252 + 2^254 - t_P)"), + j1_k_l0_prime, + 25, + false, + )?; + + let j1_k_l0_prime_cell = zs[0].clone(); + assert_eq!(zs.len(), 26); // [z_0, z_1, ..., z_26] + Ok((j1_k_l0_prime_cell, zs[25].clone())) + } +} + +#[cfg(test)] +mod tests { + use core::{iter, u64}; + use std::{println, vec::Vec}; + + use super::NoteCommitConfig; + use crate::{ + circuit::{ + gadget::assign_free_advice, + note_commit::{gadgets, NoteCommitChip}, + }, + constants::{ + fixed_bases::NOTE_COMMITMENT_PERSONALIZATION, OrchardCommitDomains, OrchardFixedBases, + OrchardHashDomains, L_ORCHARD_BASE, L_VALUE, T_Q, + }, + value::NoteValue, + }; + use halo2_gadgets::{ + ecc::{ + chip::{EccChip, EccConfig}, + NonIdentityPoint, ScalarFixed, + }, + sinsemilla::{ + chip::{SinsemillaChip, SinsemillaConfig}, + primitives::CommitDomain, + Message, MessagePiece, + }, + utilities::{ + lookup_range_check::{LookupRangeCheck, LookupRangeCheckConfig}, + FieldValue, RangeConstrained, + }, + }; + + use ff::{Field, PrimeField, PrimeFieldBits}; + use group::Curve; + use halo2_proofs::{ + circuit::{Layouter, SimpleFloorPlanner, Value}, + dev::MockProver, + plonk::{ConstraintSystem, Error}, + }; + use pasta_curves::pallas; + + use rand::{rngs::OsRng, RngCore}; + + #[test] + fn decomposition_values() { + let u = u64::MAX; + + for i in &u.to_le_bytes()[0..7] { + assert_eq!(i.to_le_bytes().len(), 1); + println!("H:{:#?}", i); + println!("H:{:#?}", u); + } + } + + #[test] + fn note_commit() { + #[derive(Default)] + struct MyCircuit { + nd: Value, + v: Value, + fdi: Value, + recp: Value, + esk: Value, + rho: Value, + psi: Value, + } + + impl halo2_proofs::plonk::Circuit for MyCircuit { + type Config = (NoteCommitConfig, EccConfig); + type FloorPlanner = SimpleFloorPlanner; + + fn without_witnesses(&self) -> Self { + Self::default() + } + + fn configure(meta: &mut ConstraintSystem) -> Self::Config { + let advices = [ + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + ]; + + // Shared fixed column for loading constants. + let constants = meta.fixed_column(); + meta.enable_constant(constants); + + for advice in advices.iter() { + meta.enable_equality(*advice); + } + + let table_idx = meta.lookup_table_column(); + let lookup = ( + table_idx, + meta.lookup_table_column(), + meta.lookup_table_column(), + ); + let lagrange_coeffs = [ + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + ]; + + let range_check = LookupRangeCheckConfig::configure(meta, advices[9], table_idx); + let sinsemilla_config = SinsemillaChip::< + OrchardHashDomains, + OrchardCommitDomains, + OrchardFixedBases, + >::configure( + meta, + advices[..5].try_into().unwrap(), + advices[2], + lagrange_coeffs[0], + lookup, + range_check, + false, + ); + let note_commit_config = + NoteCommitChip::configure(meta, advices, sinsemilla_config); + + let ecc_config = EccChip::::configure( + meta, + advices, + lagrange_coeffs, + range_check, + ); + + (note_commit_config, ecc_config) + } + + fn synthesize( + &self, + config: Self::Config, + mut lo: impl Layouter, + ) -> Result<(), Error> { + let (note_commit_config, ecc_config) = config; + + // Load the Sinsemilla generator lookup table used by the whole circuit. + SinsemillaChip::< + OrchardHashDomains, + OrchardCommitDomains, + OrchardFixedBases, + >::load(note_commit_config.sinsemilla_config.clone(), &mut lo)?; + + // Construct a Sinsemilla chip + let sinsemilla_chip = + SinsemillaChip::construct(note_commit_config.sinsemilla_config.clone()); + + // Construct an ECC chip + let ecc_chip = EccChip::construct(ecc_config); + + // Construct a NoteCommit chip + let note_commit_chip = NoteCommitChip::construct(note_commit_config.clone()); + + // Witness nd. + let nd = assign_free_advice( + lo.namespace(|| "witness nd"), + note_commit_config.advices[0], + self.nd, + )?; + + // Witness a random non-negative u64 note v + // A note v cannot be negative. + let v = assign_free_advice( + lo.namespace(|| "witness v"), + note_commit_config.advices[0], + self.v, + )?; + + // Witness fdi. + let fdi = assign_free_advice( + lo.namespace(|| "witness fdi"), + note_commit_config.advices[0], + self.fdi, + )?; + + // Witness recp. + let recp = assign_free_advice( + lo.namespace(|| "witness recp"), + note_commit_config.advices[0], + self.recp, + )?; + // Witness esk. + let esk = assign_free_advice( + lo.namespace(|| "witness esk"), + note_commit_config.advices[0], + self.esk, + )?; + + // Witness rho + let rho = assign_free_advice( + lo.namespace(|| "witness rho"), + note_commit_config.advices[0], + self.rho, + )?; + + // Witness psi + let psi = assign_free_advice( + lo.namespace(|| "witness psi"), + note_commit_config.advices[0], + self.psi, + )?; + + let rcm = pallas::Scalar::random(OsRng); + let rcm_gadget = + ScalarFixed::new(ecc_chip.clone(), lo.namespace(|| "rcm"), Value::known(rcm))?; + + let cm = gadgets::note_commit( + lo.namespace(|| "Hash NoteCommit pieces"), + sinsemilla_chip, + ecc_chip.clone(), + note_commit_chip, + nd, + v, + fdi, + recp, + esk, + rho, + psi, + rcm_gadget, + )?; + let expected_cm = { + let domain = CommitDomain::new(NOTE_COMMITMENT_PERSONALIZATION); + // Hash nd || i2lebsp_{64}(v) || i2lebsp_{64}(fdi) || recp || esk || rho || psi || 7 bit padding + + // Debug: Print expected test values + // println!("\n=== TEST EXPECTED VALUES ==="); + // self.nd.map(|v| println!("test nd: {:?}", v)); + // self.v.map(|v| println!("test v: {:?}", v)); + // self.fdi.map(|v| println!("test fdi: {:?}", v)); + // self.recp.map(|v| println!("test recp: {:?}", v)); + // self.esk.map(|v| println!("test esk: {:?}", v)); + // self.rho.map(|v| println!("test rho: {:?}", v)); + // self.psi.map(|v| println!("test psi: {:?}", v)); + + let point = self + .nd + .zip(self.v) + .zip(self.fdi.zip(self.recp.zip(self.esk))) + .zip(self.rho.zip(self.psi)) + .map(|(((nd, v), (fdi, (recp, esk))), (rho, psi))| { + domain + .commit( + nd.to_le_bits() + .iter() + .by_vals() + .take(L_ORCHARD_BASE) + .chain(v.to_le_bits().iter().by_vals().take(L_VALUE)) + .chain(fdi.to_le_bits().iter().by_vals().take(L_VALUE)) + .chain( + recp.to_le_bits().iter().by_vals().take(L_ORCHARD_BASE), + ) + .chain( + esk.to_le_bits().iter().by_vals().take(L_ORCHARD_BASE), + ) + .chain( + rho.to_le_bits().iter().by_vals().take(L_ORCHARD_BASE), + ) + .chain( + psi.to_le_bits().iter().by_vals().take(L_ORCHARD_BASE), + ) + .chain( + pallas::Base::zero() + .to_le_bits() + .iter() + .by_vals() + .take(2), + ), + &rcm, + ) + .unwrap() + .to_affine() + }); + NonIdentityPoint::new(ecc_chip, lo.namespace(|| "witness cm"), point)? + }; + println!("cm: {:#?}", cm.extract_p()); + println!("{:#?}", expected_cm.extract_p()); + println!("cm == synth"); + cm.constrain_equal(lo.namespace(|| "cm == expected cm"), &expected_cm) + } + } + + let two_pow_254 = pallas::Base::from_u128(1 << 127).square(); + // Test different vs of `ak`, `nk` + let circuits = [ + // `gd_x` = -1, `pkd_x` = -1 (these have to be x-coordinates of curve points) + // `rho` = 0, `psi` = 0 + MyCircuit { + nd: Value::known(pallas::Base::one()), + v: Value::known(NoteValue::one()), + fdi: Value::known(pallas::Base::one()), + recp: Value::known(-pallas::Base::one()), + esk: Value::known(pallas::Base::one()), + rho: Value::known(pallas::Base::zero()), + psi: Value::known(pallas::Base::zero()), + }, + // `rho` = T_Q - 1, `psi` = T_Q - 1 + MyCircuit { + nd: Value::known(-pallas::Base::one()), + v: Value::known(NoteValue::one()), + fdi: Value::known(pallas::Base::one()), + recp: Value::known(-pallas::Base::one()), + esk: Value::known(pallas::Base::one()), + rho: Value::known(pallas::Base::from_u128(T_Q - 1)), + psi: Value::known(pallas::Base::from_u128(T_Q - 1)), + }, + // `rho` = T_Q, `psi` = T_Q + MyCircuit { + nd: Value::known(-pallas::Base::one()), + v: Value::known(NoteValue::one()), + fdi: Value::known(pallas::Base::one()), + recp: Value::known(-pallas::Base::one()), + esk: Value::known(pallas::Base::one()), + rho: Value::known(pallas::Base::from_u128(T_Q)), + psi: Value::known(pallas::Base::from_u128(T_Q)), + }, + // `rho` = 2^127 - 1, `psi` = 2^127 - 1 + MyCircuit { + nd: Value::known(-pallas::Base::one()), + v: Value::known(NoteValue::one()), + fdi: Value::known(pallas::Base::one()), + recp: Value::known(-pallas::Base::one()), + esk: Value::known(pallas::Base::one()), + rho: Value::known(pallas::Base::from_u128((1 << 127) - 1)), + psi: Value::known(pallas::Base::from_u128((1 << 127) - 1)), + }, + // `rho` = 2^127, `psi` = 2^127 + MyCircuit { + nd: Value::known(-pallas::Base::one()), + v: Value::known(NoteValue::one()), + fdi: Value::known(pallas::Base::one()), + recp: Value::known(-pallas::Base::one()), + esk: Value::known(pallas::Base::one()), + rho: Value::known(pallas::Base::from_u128(1 << 127)), + psi: Value::known(pallas::Base::from_u128(1 << 127)), + }, + // `rho` = 2^254 - 1, `psi` = 2^254 - 1 + MyCircuit { + rho: Value::known(two_pow_254 - pallas::Base::one()), + psi: Value::known(two_pow_254 - pallas::Base::one()), + nd: Value::known(-pallas::Base::one()), + v: Value::known(NoteValue::one()), + fdi: Value::known(pallas::Base::one()), + recp: Value::known(-pallas::Base::one()), + esk: Value::known(pallas::Base::one()), + }, + // `rho` = 2^254, `psi` = 2^254 + MyCircuit { + rho: Value::known(two_pow_254), + psi: Value::known(two_pow_254), + nd: Value::known(-pallas::Base::one()), + v: Value::known(NoteValue::one()), + fdi: Value::known(pallas::Base::one()), + recp: Value::known(-pallas::Base::one()), + esk: Value::known(pallas::Base::one()), + }, + ]; + + for circuit in circuits.iter() { + let prover = MockProver::::run(11, circuit, vec![]).unwrap(); + #[cfg(feature = "dev-graph")] + { + use plotters::prelude::*; + let root = BitMapBackend::new("note-commit.png", (1024, 768)).into_drawing_area(); + halo2_proofs::dev::CircuitLayout::default() + // You can optionally render only a section of the circuit. + .view_width(0..33) + .view_height(0..1024) + .render(13, circuit, &root) // 13 is the k value (number of rows) + .unwrap(); + } + assert_eq!(prover.verify(), Ok(())); + } + } +} diff --git a/zk-crates/zk-headstash/src/circuit/note_commit_bit_tests.rs b/zk-crates/zk-headstash/src/circuit/note_commit_bit_tests.rs new file mode 100644 index 0000000..cdac408 --- /dev/null +++ b/zk-crates/zk-headstash/src/circuit/note_commit_bit_tests.rs @@ -0,0 +1,295 @@ +/// First Principles Bit Decomposition Tests +/// +/// This file contains foundational tests to understand: +/// 1. How bit ranges work in Rust +/// 2. How pallas::Base field elements map to bits +/// 3. How to correctly decompose field elements +/// 4. The relationship between L_ORCHARD_BASE (255) and actual bit usage + +#[cfg(test)] +mod bit_fundamentals { + use ff::Field; + use ff::PrimeFieldBits; + use pasta_curves::pallas; + use std::println; + use std::vec::Vec; + + use crate::constants::L_ORCHARD_BASE; + #[test] + fn test_bit_range_syntax() { + // FUNDAMENTAL: Rust ranges are [start, end) - end is EXCLUSIVE + let range1 = 0..10; // bits 0,1,2,3,4,5,6,7,8,9 = 10 bits + let range2 = 250..255; // bits 250,251,252,253,254 = 5 bits + let range3 = 250..254; // bits 250,251,252,253 = 4 bits + + assert_eq!(range1.len(), 10); + assert_eq!(range2.len(), 5); + assert_eq!(range3.len(), 4); + + println!("✓ Range 0..10 contains {} bits", range1.len()); + println!("✓ Range 250..255 contains {} bits", range2.len()); + println!("✓ Range 250..254 contains {} bits", range3.len()); + } + + #[test] + fn test_field_element_bit_representation() { + // pallas::Base is a 255-bit field element + // Valid values are 0 to p-1 where p is the field modulus + // The modulus is less than 2^255, so not all 255-bit patterns are valid + + // The number 1 in binary + let one = pallas::Base::one(); + let one_bits: Vec = one.to_le_bits().iter().by_vals().collect(); + + println!("\nField element 1 as bits:"); + println!(" Bit 0 (LSB): {}", one_bits[0]); // Should be true + println!(" Bit 1: {}", one_bits[1]); // Should be false + println!(" Bit 2: {}", one_bits[2]); // Should be false + println!(" Total bits in representation: {}", one_bits.len()); + + assert_eq!(one_bits[0], true); // Bit 0 is set + assert_eq!(one_bits[1], false); // Bit 1 is clear + assert_eq!(one_bits.len(), 256); // to_le_bits() returns 256 bits (padded) + } + + #[test] + fn test_l_orchard_base_255_meaning() { + // L_ORCHARD_BASE = 255 means we use 255 bits of the field element + // This is bits 0..255 (inclusive 0-254, exclusive 255) + + // When we take L_ORCHARD_BASE bits, we get bits [0, 255) + // That's bits 0,1,2,...,253,254 = 255 bits total + let range = 0..L_ORCHARD_BASE; + assert_eq!(range.len(), 255); + println!("\n✓ L_ORCHARD_BASE=255 means bits 0..255"); + println!(" This is bits 0,1,2,...,253,254"); + println!(" Total count: {} bits", range.len()); + // The HIGHEST bit we use is bit 254 (not 255!) + let highest_bit_index = L_ORCHARD_BASE - 1; + assert_eq!(highest_bit_index, 254); + println!(" Highest bit index: {}", highest_bit_index); + } + + #[test] + fn test_decomposing_255_bit_field() { + // If nd is 255 bits (0..255), how do we split it? + // Option 1: 250 bits + 5 bits + // Option 2: 250 bits + 4 bits (leaving bit 254 unused) + + // OPTION 1: Use all 255 bits + let piece_a_range = 0..250; // Bits 0-249 = 250 bits + let piece_b_range = 250..255; // Bits 250-254 = 5 bits + + assert_eq!(piece_a_range.len(), 250); + assert_eq!(piece_b_range.len(), 5); + assert_eq!(piece_a_range.len() + piece_b_range.len(), 255); + + println!("\n✓ Option 1: Split 255 bits as 250+5:"); + println!(" Piece a: bits 0..250 = {} bits", piece_a_range.len()); + println!(" Piece b: bits 250..255 = {} bits", piece_b_range.len()); + println!( + " Total: {} bits", + piece_a_range.len() + piece_b_range.len() + ); + + // OPTION 2: Use only 254 bits (drop highest bit) + let piece_a_range_alt = 0..250; // Bits 0-249 = 250 bits + let piece_b_range_alt = 250..254; // Bits 250-253 = 4 bits + + assert_eq!(piece_a_range_alt.len(), 250); + assert_eq!(piece_b_range_alt.len(), 4); + assert_eq!(piece_a_range_alt.len() + piece_b_range_alt.len(), 254); + + println!("\n✓ Option 2: Split 254 bits as 250+4:"); + println!(" Piece a: bits 0..250 = {} bits", piece_a_range_alt.len()); + println!( + " Piece b: bits 250..254 = {} bits", + piece_b_range_alt.len() + ); + println!( + " Total: {} bits (bit 254 unused)", + piece_a_range_alt.len() + piece_b_range_alt.len() + ); + } + + #[test] + fn test_actual_field_element_decomposition() { + // Create a field element with a known bit pattern + // Let's use 2^250 which has bit 250 set and all others clear + + let two_pow_250 = pallas::Base::from(2u64).pow([250, 0, 0, 0]); + let bits: Vec = two_pow_250.to_le_bits().iter().by_vals().collect(); + + println!("\n2^250 bit representation:"); + println!(" Bit 249: {}", bits[249]); // Should be false + println!(" Bit 250: {}", bits[250]); // Should be true + println!(" Bit 251: {}", bits[251]); // Should be false + + assert_eq!(bits[249], false); + assert_eq!(bits[250], true); + assert_eq!(bits[251], false); + + // Extract bits 0..250 (should all be 0) + let low_250_bits: Vec = bits.iter().take(250).copied().collect(); + assert!(low_250_bits.iter().all(|&b| !b)); + println!(" ✓ Bits 0..250 are all zero"); + + // Extract bits 250..255 (bit 250 should be set) + let high_5_bits: Vec = bits.iter().skip(250).take(5).copied().collect(); + assert_eq!(high_5_bits[0], true); // Bit 250 + assert_eq!(high_5_bits[1], false); // Bit 251 + println!(" ✓ Bits 250..255: first bit is set"); + } + + #[test] + fn test_reconstructing_from_pieces() { + // If we split a value into pieces, can we reconstruct it? + + use ff::Field; + + // Original value: let's use a simple example + let original = pallas::Base::from(12345u64); + let original_bits: Vec = original.to_le_bits().iter().by_vals().take(255).collect(); + + // Split into piece_a (bits 0..250) and piece_b (bits 250..255) + let piece_a_bits: Vec = original_bits.iter().take(250).copied().collect(); + let piece_b_bits: Vec = original_bits.iter().skip(250).take(5).copied().collect(); + + // Convert pieces back to field elements + let piece_a_value = bits_to_field_element(&piece_a_bits); + let piece_b_value = bits_to_field_element(&piece_b_bits); + + // Reconstruct: original = piece_a + piece_b * 2^250 + let two_pow_250 = pallas::Base::from(2u64).pow([250, 0, 0, 0]); + let reconstructed = piece_a_value + piece_b_value * two_pow_250; + + println!("\nReconstruction test:"); + println!(" Original: {:?}", original); + println!(" Piece A (bits 0..250): {:?}", piece_a_value); + println!(" Piece B (bits 250..255): {:?}", piece_b_value); + println!(" Reconstructed: {:?}", reconstructed); + + assert_eq!(original, reconstructed); + println!(" ✓ Successfully reconstructed!"); + } + + #[test] + fn test_sinsemilla_piece_requirements() { + // Sinsemilla pieces must be multiples of 10 bits for running sum constraints + + let valid_piece_sizes = vec![10, 20, 60, 130, 250]; + let invalid_piece_sizes = vec![5, 15, 55, 255]; + + println!("\nSinsemilla piece size requirements:"); + println!(" Valid sizes (multiples of 10):"); + for size in valid_piece_sizes { + assert_eq!(size % 10, 0); + println!(" {} bits ✓", size); + } + + println!(" Invalid sizes (NOT multiples of 10):"); + for size in invalid_piece_sizes { + assert_ne!(size % 10, 0); + println!(" {} bits ✗", size); + } + + // For decomposing a 255-bit field: + // Option 1: 250 + 10 = 260 bits (need 5 bits padding) + // Option 2: 250 + 60 = 310 bits (need more data) + println!("\n For 255-bit nd field:"); + println!(" 250-bit piece a ✓"); + println!(" 5-bit remainder ✗ (need to pad to 10)"); + println!(" Solution: 250 + (5 nd bits + 5 padding) = 250 + 10 ✓"); + } + + // Helper function to convert bits to field element + fn bits_to_field_element(bits: &[bool]) -> pallas::Base { + use ff::Field; + let mut result = pallas::Base::zero(); + let mut power = pallas::Base::one(); + let two = pallas::Base::from(2u64); + + for &bit in bits { + if bit { + result += power; + } + power *= two; + } + result + } + + #[test] + fn test_correct_nd_decomposition_for_headstash() { + // Based on L_ORCHARD_BASE = 255, nd has 255 usable bits (0..255) + // We want to decompose this for Sinsemilla (multiples of 10) + + const L_ORCHARD_BASE: usize = 255; + + println!("\n=== CORRECT nd DECOMPOSITION ==="); + println!( + "nd is a {}-bit field element (bits 0..{})", + L_ORCHARD_BASE, L_ORCHARD_BASE + ); + println!( + "This means bits 0,1,2,...,253,254 ({} bits total)", + L_ORCHARD_BASE + ); + + // Decomposition: + // Piece a: bits 0..250 = 250 bits ✓ (multiple of 10) + // Remaining: bits 250..255 = 5 bits ✗ (NOT multiple of 10) + // Solution: Piece b: bits 250..255 + 5 zero bits = 10 bits ✓ + + let piece_a = 0..250; + let piece_b_nd_portion = 250..255; + let piece_b_padding = 5; // zero bits + + assert_eq!(piece_a.len(), 250); + assert_eq!(piece_b_nd_portion.len(), 5); + assert_eq!((piece_b_nd_portion.len() + piece_b_padding) % 10, 0); + + println!("\n✓ CORRECT decomposition:"); + println!(" Piece a: nd[0..250] = {} bits", piece_a.len()); + println!( + " Piece b: nd[250..255] = {} bits", + piece_b_nd_portion.len() + ); + println!(" + {} zero bits padding", piece_b_padding); + println!( + " = {} bits total ✓", + piece_b_nd_portion.len() + piece_b_padding + ); + println!( + "\nTotal nd bits used: {} out of {}", + piece_a.len() + piece_b_nd_portion.len(), + L_ORCHARD_BASE + ); + } + + #[test] + fn test_wrong_decompositions_to_avoid() { + println!("\n=== WRONG DECOMPOSITIONS (DON'T DO THIS) ==="); + + // WRONG 1: Using 254 bits (0..254) and leaving bit 254 unused + let wrong1_a = 0..250; + let wrong1_b = 250..254; // Only 4 bits! + println!("\n✗ WRONG: 250 + 4 bits"); + println!(" Problem: 4 is not a multiple of 10"); + println!(" Missing: bit 254 of nd is unused"); + assert_eq!(wrong1_b.len(), 4); + assert_ne!(wrong1_b.len() % 10, 0); + + // WRONG 2: Trying to use 256 bits (0..256) + // This would try to use bit 255 which doesn't exist in a 255-bit field! + println!("\n✗ WRONG: trying to use bits 0..256"); + println!(" Problem: nd only has 255 bits (0..255)"); + println!(" Bit 255 doesn't exist!"); + + // WRONG 3: Using piece sizes that aren't multiples of 10 + let wrong3_a = 0..245; + let wrong3_b = 245..255; + println!("\n✗ WRONG: 245 + 10 bits"); + println!(" Problem: 245 is not a multiple of 10"); + assert_ne!(wrong3_a.len() % 10, 0); + } +} diff --git a/zk-crates/zk-headstash/src/circuit_description b/zk-crates/zk-headstash/src/circuit_description new file mode 100644 index 0000000..cabab59 --- /dev/null +++ b/zk-crates/zk-headstash/src/circuit_description @@ -0,0 +1,27647 @@ +PinnedVerificationKey { + base_modulus: "0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001", + scalar_modulus: "0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001", + domain: PinnedEvaluationDomain { + k: 11, + extended_k: 14, + omega: 0x181b50ad5f32119e31cbd395426d600b7a9b88bcaaa1c24eef28545aada17813, + }, + cs: PinnedConstraintSystem { + num_fixed_columns: 29, + num_advice_columns: 10, + num_instance_columns: 1, + num_selectors: 56, + gates: [ + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Product( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Product( + Scaled( + Advice { + query_index: 11, + column_index: 9, + rotation: Rotation( + -1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + Negated( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Sum( + Product( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Product( + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Sum( + Product( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Product( + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Product( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Product( + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Product( + Product( + Sum( + Sum( + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Product( + Sum( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + Sum( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Product( + Sum( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Product( + Sum( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + Sum( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + Sum( + Product( + Sum( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Product( + Sum( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Negated( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + Sum( + Sum( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + Sum( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Negated( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + Negated( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Product( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Product( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + Negated( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Product( + Sum( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Product( + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 19, + column_index: 19, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Product( + Sum( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Product( + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Product( + Sum( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + ), + Sum( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + ), + Negated( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + ), + ), + Negated( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 17, + column_index: 1, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 11, + column_index: 9, + rotation: Rotation( + -1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Sum( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 11, + column_index: 9, + rotation: Rotation( + -1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Scaled( + Product( + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + ), + ), + Product( + Sum( + Scaled( + Sum( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 11, + column_index: 9, + rotation: Rotation( + -1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + ), + ), + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Product( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + ), + ), + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Product( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Negated( + Scaled( + Product( + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + ), + ), + Negated( + Scaled( + Product( + Sum( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + ), + Sum( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + ), + Negated( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + ), + ), + Negated( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 11, + column_index: 9, + rotation: Rotation( + -1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Sum( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 11, + column_index: 9, + rotation: Rotation( + -1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Scaled( + Product( + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + ), + ), + Product( + Sum( + Scaled( + Sum( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 11, + column_index: 9, + rotation: Rotation( + -1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + ), + ), + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Product( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + ), + ), + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 18, + column_index: 18, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Product( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Negated( + Scaled( + Product( + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + ), + ), + Negated( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Product( + Sum( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + ), + Sum( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + Negated( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + Negated( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 17, + column_index: 1, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 20, + column_index: 6, + rotation: Rotation( + -1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 20, + column_index: 6, + rotation: Rotation( + -1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Scaled( + Product( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + ), + ), + Product( + Sum( + Scaled( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 20, + column_index: 6, + rotation: Rotation( + -1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + ), + ), + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Product( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Product( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Negated( + Scaled( + Product( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + ), + ), + Negated( + Scaled( + Product( + Sum( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + ), + Sum( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + Negated( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + Negated( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 20, + column_index: 6, + rotation: Rotation( + -1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 20, + column_index: 6, + rotation: Rotation( + -1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Scaled( + Product( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + ), + ), + Product( + Sum( + Scaled( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 20, + column_index: 6, + rotation: Rotation( + -1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + ), + ), + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Product( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Product( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Negated( + Scaled( + Product( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + Negated( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Advice { + query_index: 11, + column_index: 9, + rotation: Rotation( + -1, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Sum( + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + Negated( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Advice { + query_index: 11, + column_index: 9, + rotation: Rotation( + -1, + ), + }, + ), + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Product( + Sum( + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + Negated( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Advice { + query_index: 11, + column_index: 9, + rotation: Rotation( + -1, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 21, + column_index: 1, + rotation: Rotation( + -1, + ), + }, + ), + ), + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Sum( + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + Negated( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Advice { + query_index: 11, + column_index: 9, + rotation: Rotation( + -1, + ), + }, + ), + ), + ), + ), + ), + Sum( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 21, + column_index: 1, + rotation: Rotation( + -1, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Product( + Advice { + query_index: 23, + column_index: 7, + rotation: Rotation( + -1, + ), + }, + Product( + Constant( + 0x0000000000000000000000000000000010000000000000000000000000000000, + ), + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000040, + ), + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Advice { + query_index: 20, + column_index: 6, + rotation: Rotation( + -1, + ), + }, + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc0994a8dd8c46eb2100000001, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 23, + column_index: 7, + rotation: Rotation( + -1, + ), + }, + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Constant( + 0x0000000000000000000000000000000010000000000000000000000000000000, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 23, + column_index: 7, + rotation: Rotation( + -1, + ), + }, + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 20, + column_index: 20, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 23, + column_index: 7, + rotation: Rotation( + -1, + ), + }, + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Product( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + Negated( + Scaled( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Sum( + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + Negated( + Scaled( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Product( + Sum( + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + Negated( + Scaled( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Sum( + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + Negated( + Scaled( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + ), + ), + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Product( + Sum( + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + Negated( + Scaled( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Sum( + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + Negated( + Scaled( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + ), + ), + ), + Sum( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 17, + column_index: 1, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + Product( + Fixed { + query_index: 22, + column_index: 22, + rotation: Rotation( + 0, + ), + }, + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + ), + ), + ), + Product( + Fixed { + query_index: 22, + column_index: 22, + rotation: Rotation( + 0, + ), + }, + Sum( + Sum( + Sum( + Sum( + Sum( + Sum( + Sum( + Sum( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000000, + ), + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Fixed { + query_index: 0, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Fixed { + query_index: 3, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Fixed { + query_index: 7, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Fixed { + query_index: 8, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Sum( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + Fixed { + query_index: 9, + column_index: 10, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Fixed { + query_index: 22, + column_index: 22, + rotation: Rotation( + 0, + ), + }, + Sum( + Sum( + Product( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Fixed { + query_index: 2, + column_index: 11, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Fixed { + query_index: 22, + column_index: 22, + rotation: Rotation( + 0, + ), + }, + Sum( + Sum( + Product( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Product( + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + ), + ), + ), + Product( + Fixed { + query_index: 23, + column_index: 23, + rotation: Rotation( + 0, + ), + }, + Sum( + Sum( + Sum( + Sum( + Sum( + Sum( + Sum( + Sum( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000000, + ), + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Fixed { + query_index: 0, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Fixed { + query_index: 3, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Fixed { + query_index: 7, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Fixed { + query_index: 8, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Fixed { + query_index: 9, + column_index: 10, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Fixed { + query_index: 23, + column_index: 23, + rotation: Rotation( + 0, + ), + }, + Sum( + Sum( + Product( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Fixed { + query_index: 2, + column_index: 11, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Fixed { + query_index: 23, + column_index: 23, + rotation: Rotation( + 0, + ), + }, + Sum( + Sum( + Product( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Product( + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + ), + ), + ), + Product( + Fixed { + query_index: 23, + column_index: 23, + rotation: Rotation( + 0, + ), + }, + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Sum( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + Sum( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Negated( + Product( + Advice { + query_index: 24, + column_index: 8, + rotation: Rotation( + -1, + ), + }, + Constant( + 0x0000000000000000000000000000000001000000000000000000000000000000, + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Product( + Sum( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + Negated( + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Sum( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + Negated( + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000008, + ), + ), + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 24, + column_index: 8, + rotation: Rotation( + -1, + ), + }, + Negated( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Sum( + Advice { + query_index: 20, + column_index: 6, + rotation: Rotation( + -1, + ), + }, + Negated( + Scaled( + Advice { + query_index: 24, + column_index: 8, + rotation: Rotation( + -1, + ), + }, + 0x1000000000000000000000000000000000000000000000000000000000000000, + ), + ), + ), + Constant( + 0x0000000000000000000000000000000400000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Scaled( + Product( + Product( + Product( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + 0x0ab5e5b874a68de7b3d59fbdc8c9ead497d7a0ab23850b56323f2486d7e11b63, + ), + Scaled( + Product( + Product( + Product( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + 0x31916628e58a5abb293f0f0d886c7954240d4a7cbf7357368eca5596e996ab5e, + ), + ), + Scaled( + Product( + Product( + Product( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + 0x07c045d5f5e9e5a6d803952bbb364fdfa0a3b71a5fb1573519d1cf25d8e8345d, + ), + ), + Negated( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Scaled( + Product( + Product( + Product( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + 0x233162630ebf9ed7f8e24f66822c2d9f3a0a464048bd770ad049cdc8d085167c, + ), + Scaled( + Product( + Product( + Product( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + 0x25cae2599892a8b0b36664548d60957d78f8365c85bbab07402270113e047a2e, + ), + ), + Scaled( + Product( + Product( + Product( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + 0x22f5b5e1e6081c9774938717989a19579aad3d8262efd83ff84d806f685f747a, + ), + ), + Negated( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 21, + column_index: 21, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Scaled( + Product( + Product( + Product( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + 0x2e29dd59c64b1037f333aa91c383346421680eabc56bc15dfee7a9944f84dbe4, + ), + Scaled( + Product( + Product( + Product( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + 0x1d1aab4ec1cd678892d15e7dceef1665cbeaf48b3a0624c3c771effa43263664, + ), + ), + Scaled( + Product( + Product( + Product( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + 0x3bf763086a18936451e0cbead65516b975872c39b59a31f615639415f6e85ef1, + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Product( + Product( + Product( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 4, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Product( + Product( + Product( + Sum( + Sum( + Sum( + Scaled( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + 0x0ab5e5b874a68de7b3d59fbdc8c9ead497d7a0ab23850b56323f2486d7e11b63, + ), + Scaled( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + 0x31916628e58a5abb293f0f0d886c7954240d4a7cbf7357368eca5596e996ab5e, + ), + ), + Scaled( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + 0x07c045d5f5e9e5a6d803952bbb364fdfa0a3b71a5fb1573519d1cf25d8e8345d, + ), + ), + Fixed { + query_index: 7, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Sum( + Sum( + Scaled( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + 0x0ab5e5b874a68de7b3d59fbdc8c9ead497d7a0ab23850b56323f2486d7e11b63, + ), + Scaled( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + 0x31916628e58a5abb293f0f0d886c7954240d4a7cbf7357368eca5596e996ab5e, + ), + ), + Scaled( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + 0x07c045d5f5e9e5a6d803952bbb364fdfa0a3b71a5fb1573519d1cf25d8e8345d, + ), + ), + Fixed { + query_index: 7, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Sum( + Sum( + Sum( + Scaled( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + 0x0ab5e5b874a68de7b3d59fbdc8c9ead497d7a0ab23850b56323f2486d7e11b63, + ), + Scaled( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + 0x31916628e58a5abb293f0f0d886c7954240d4a7cbf7357368eca5596e996ab5e, + ), + ), + Scaled( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + 0x07c045d5f5e9e5a6d803952bbb364fdfa0a3b71a5fb1573519d1cf25d8e8345d, + ), + ), + Fixed { + query_index: 7, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Sum( + Sum( + Scaled( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + 0x0ab5e5b874a68de7b3d59fbdc8c9ead497d7a0ab23850b56323f2486d7e11b63, + ), + Scaled( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + 0x31916628e58a5abb293f0f0d886c7954240d4a7cbf7357368eca5596e996ab5e, + ), + ), + Scaled( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + 0x07c045d5f5e9e5a6d803952bbb364fdfa0a3b71a5fb1573519d1cf25d8e8345d, + ), + ), + Fixed { + query_index: 7, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Scaled( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + 0x0ab5e5b874a68de7b3d59fbdc8c9ead497d7a0ab23850b56323f2486d7e11b63, + ), + Scaled( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + 0x31916628e58a5abb293f0f0d886c7954240d4a7cbf7357368eca5596e996ab5e, + ), + ), + Scaled( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + 0x07c045d5f5e9e5a6d803952bbb364fdfa0a3b71a5fb1573519d1cf25d8e8345d, + ), + ), + Fixed { + query_index: 7, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Sum( + Sum( + Scaled( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + 0x2cc057f3fa14687acc59ffd00de864434543705f35e98ab5c6de463cd1404e6b, + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x32e7c439f2f967e55fd72b55df208385fadbf8ae7ae24796171840417cab7576, + ), + ), + Scaled( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + 0x2eae5df8c3115969f461778abf6c91fa1403db6f50302040942645bd7d4464e0, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Scaled( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + 0x233162630ebf9ed7f8e24f66822c2d9f3a0a464048bd770ad049cdc8d085167c, + ), + Scaled( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + 0x25cae2599892a8b0b36664548d60957d78f8365c85bbab07402270113e047a2e, + ), + ), + Scaled( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + 0x22f5b5e1e6081c9774938717989a19579aad3d8262efd83ff84d806f685f747a, + ), + ), + Fixed { + query_index: 8, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Sum( + Sum( + Scaled( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + 0x07bf368481067199db18b4aefe68d26d13f074fde9a18b29a1ca1516a4a1a6a0, + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x2aec6906c63f3cf1018a918b9dac5dadbb1d65040c85c1bfe82425bc1b23a059, + ), + ), + Scaled( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + 0x0952e0243aec2af01215944a64a246b276b2a7139db71b36e0541adf238e0781, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Scaled( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + 0x2e29dd59c64b1037f333aa91c383346421680eabc56bc15dfee7a9944f84dbe4, + ), + Scaled( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 5, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + 0x1d1aab4ec1cd678892d15e7dceef1665cbeaf48b3a0624c3c771effa43263664, + ), + ), + Scaled( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 6, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + 0x3bf763086a18936451e0cbead65516b975872c39b59a31f615639415f6e85ef1, + ), + ), + Fixed { + query_index: 9, + column_index: 10, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Sum( + Sum( + Scaled( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + 0x2fcbba6f9159a219723a63a0c09dab26aef9112e952fdbb52a418d8d73a7c908, + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x1ec7372574f3851bb4ddd4b4d6452256c5e4960d7424cd3776efab42d4fba90b, + ), + ), + Scaled( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + 0x0d0c2efd6472f12a3c26fa4b7d25b1e487a7435d30f8be81adc8933c6f3c72ee, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Advice { + query_index: 20, + column_index: 6, + rotation: Rotation( + -1, + ), + }, + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Advice { + query_index: 23, + column_index: 7, + rotation: Rotation( + -1, + ), + }, + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 24, + column_index: 8, + rotation: Rotation( + -1, + ), + }, + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Scaled( + Fixed { + query_index: 0, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Product( + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + ), + ), + ), + Product( + Fixed { + query_index: 16, + column_index: 16, + rotation: Rotation( + 0, + ), + }, + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Sum( + Sum( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + Sum( + Sum( + Product( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Fixed { + query_index: 16, + column_index: 16, + rotation: Rotation( + 0, + ), + }, + Sum( + Product( + Scaled( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Negated( + Sum( + Sum( + Scaled( + Product( + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Product( + Fixed { + query_index: 10, + column_index: 12, + rotation: Rotation( + 0, + ), + }, + Sum( + Fixed { + query_index: 10, + column_index: 12, + rotation: Rotation( + 0, + ), + }, + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + ), + ), + ), + ), + ), + Product( + Sum( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + ), + Sum( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + ), + Negated( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + ), + ), + Negated( + Advice { + query_index: 17, + column_index: 1, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + ), + ), + ), + Product( + Scaled( + Product( + Fixed { + query_index: 10, + column_index: 12, + rotation: Rotation( + 0, + ), + }, + Sum( + Fixed { + query_index: 10, + column_index: 12, + rotation: Rotation( + 0, + ), + }, + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + ), + ), + ), + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + ), + Negated( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + Scaled( + Sum( + Sum( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 17, + column_index: 1, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + ), + Scaled( + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + 0x0001000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + Scaled( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000020, + ), + ), + Negated( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 17, + column_index: 1, + rotation: Rotation( + 1, + ), + }, + Negated( + Sum( + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + Scaled( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000020, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Scaled( + Fixed { + query_index: 3, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Product( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + ), + ), + ), + Product( + Fixed { + query_index: 17, + column_index: 17, + rotation: Rotation( + 0, + ), + }, + Sum( + Product( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Sum( + Sum( + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + Sum( + Sum( + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Fixed { + query_index: 17, + column_index: 17, + rotation: Rotation( + 0, + ), + }, + Sum( + Product( + Scaled( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Sum( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Negated( + Sum( + Sum( + Scaled( + Product( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Product( + Fixed { + query_index: 13, + column_index: 13, + rotation: Rotation( + 0, + ), + }, + Sum( + Fixed { + query_index: 13, + column_index: 13, + rotation: Rotation( + 0, + ), + }, + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + ), + ), + ), + ), + ), + Product( + Sum( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + Sum( + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + Negated( + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + ), + ), + Negated( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + ), + ), + ), + Product( + Scaled( + Product( + Fixed { + query_index: 13, + column_index: 13, + rotation: Rotation( + 0, + ), + }, + Sum( + Fixed { + query_index: 13, + column_index: 13, + rotation: Rotation( + 0, + ), + }, + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + ), + ), + ), + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Product( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Product( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + ), + Negated( + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + Scaled( + Sum( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + 0x0001000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + Scaled( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000020, + ), + ), + Negated( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + Negated( + Sum( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Scaled( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000020, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Scaled( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000020, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + Negated( + Sum( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000200, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + 0x0400000000000000000000000000000000000000000000000000000000000000, + ), + ), + Scaled( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 17, + column_index: 1, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000020, + ), + ), + Scaled( + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + 0x0020000000000000000000000000000000000000000000000000000000000000, + ), + ), + Scaled( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 16, + column_index: 0, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Constant( + 0x0000000000000000000000000000000400000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 13, + column_index: 3, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 17, + column_index: 1, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000020, + ), + ), + Constant( + 0x0000000000000000000000000000100000000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 14, + column_index: 4, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000020, + ), + ), + Scaled( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000040, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + ), + Scaled( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 25, + column_index: 25, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000040, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000020, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + 0x0400000000000000000000000000000000000000000000000000000000000000, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Constant( + 0x0000000000000000000000000000000400000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Constant( + 0x0000000000000000000000000000100000000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000100, + ), + ), + Scaled( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000400000000000000, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Constant( + 0x0000000000000000000000000000100000000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000200, + ), + ), + Scaled( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + 0x0200000000000000000000000000000000000000000000000000000000000000, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000200, + ), + ), + Constant( + 0x0000000000000000000000000000000400000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + Negated( + Sum( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + Scaled( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0400000000000000000000000000000000000000000000000000000000000000, + ), + ), + Scaled( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + Constant( + 0x0000000000000000000000000000000400000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000020, + ), + ), + Scaled( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000040, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + ), + Scaled( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000040, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000020, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + 0x0400000000000000000000000000000000000000000000000000000000000000, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Constant( + 0x0000000000000000000000000000000400000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Constant( + 0x0000000000000000000000000000100000000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000100, + ), + ), + Scaled( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000400000000000000, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Constant( + 0x0000000000000000000000000000100000000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000200, + ), + ), + Scaled( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + 0x0200000000000000000000000000000000000000000000000000000000000000, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000200, + ), + ), + Constant( + 0x0000000000000000000000000000000400000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + Negated( + Sum( + Sum( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + ), + Scaled( + Advice { + query_index: 22, + column_index: 6, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0400000000000000000000000000000000000000000000000000000000000000, + ), + ), + Scaled( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 15, + column_index: 5, + rotation: Rotation( + 1, + ), + }, + Constant( + 0x0000000000000000000000000000000400000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + ), + ], + advice_queries: [ ], + instance_queries: [ + + ], + fixed_queries: [ + + + ], + permutation: Argument { + columns: [ + Column { + index: 0, + column_type: Instance, + }, + Column { + index: 0, + column_type: Advice, + }, + Column { + index: 1, + column_type: Advice, + }, + Column { + index: 2, + column_type: Advice, + }, + Column { + index: 3, + column_type: Advice, + }, + Column { + index: 4, + column_type: Advice, + }, + Column { + index: 5, + column_type: Advice, + }, + Column { + index: 6, + column_type: Advice, + }, + Column { + index: 7, + column_type: Advice, + }, + Column { + index: 8, + column_type: Advice, + }, + Column { + index: 9, + column_type: Advice, + }, + Column { + index: 3, + column_type: Fixed, + }, + Column { + index: 8, + column_type: Fixed, + }, + Column { + index: 9, + column_type: Fixed, + }, + Column { + index: 10, + column_type: Fixed, + }, + ], + }, + lookups: [ + Argument { + input_expressions: [ + Product( + Fixed { + query_index: 14, + column_index: 14, + rotation: Rotation( + 0, + ), + }, + Sum( + Product( + Fixed { + query_index: 15, + column_index: 15, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + ), + ), + Product( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 15, + column_index: 15, + rotation: Rotation( + 0, + ), + }, + ), + ), + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ], + table_expressions: [ + Fixed { + query_index: 1, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ], + }, + Argument { + input_expressions: [ + Product( + Fixed { + query_index: 16, + column_index: 16, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 2, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Product( + Sum( + Fixed { + query_index: 10, + column_index: 12, + rotation: Rotation( + 0, + ), + }, + Negated( + Product( + Fixed { + query_index: 10, + column_index: 12, + rotation: Rotation( + 0, + ), + }, + Sum( + Fixed { + query_index: 10, + column_index: 12, + rotation: Rotation( + 0, + ), + }, + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + ), + ), + ), + ), + ), + Advice { + query_index: 12, + column_index: 2, + rotation: Rotation( + 1, + ), + }, + ), + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + ), + ), + Sum( + Product( + Fixed { + query_index: 16, + column_index: 16, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Scaled( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 16, + column_index: 16, + rotation: Rotation( + 0, + ), + }, + ), + ), + 0x0db5218be6881f0f1431d4ea7d4afc7b29a05bafbede62b55a91eb912044ea5f, + ), + ), + Sum( + Product( + Fixed { + query_index: 16, + column_index: 16, + rotation: Rotation( + 0, + ), + }, + Sum( + Scaled( + Product( + Sum( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 4, + column_index: 4, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + Negated( + Product( + Advice { + query_index: 3, + column_index: 3, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + ), + Scaled( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 16, + column_index: 16, + rotation: Rotation( + 0, + ), + }, + ), + ), + 0x2f0f40c2f152a01c9caf66298493d5d0944a041c2e65ba0117c24f76bf8e6483, + ), + ), + ], + table_expressions: [ + Fixed { + query_index: 1, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 11, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 12, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ], + }, + Argument { + input_expressions: [ + Product( + Fixed { + query_index: 17, + column_index: 17, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Negated( + Scaled( + Product( + Sum( + Fixed { + query_index: 13, + column_index: 13, + rotation: Rotation( + 0, + ), + }, + Negated( + Product( + Fixed { + query_index: 13, + column_index: 13, + rotation: Rotation( + 0, + ), + }, + Sum( + Fixed { + query_index: 13, + column_index: 13, + rotation: Rotation( + 0, + ), + }, + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + ), + ), + ), + ), + ), + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + ), + 0x0000000000000000000000000000000000000000000000000000000000000400, + ), + ), + ), + ), + Sum( + Product( + Fixed { + query_index: 17, + column_index: 17, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + Scaled( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 17, + column_index: 17, + rotation: Rotation( + 0, + ), + }, + ), + ), + 0x0db5218be6881f0f1431d4ea7d4afc7b29a05bafbede62b55a91eb912044ea5f, + ), + ), + Sum( + Product( + Fixed { + query_index: 17, + column_index: 17, + rotation: Rotation( + 0, + ), + }, + Sum( + Scaled( + Product( + Sum( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + Sum( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Negated( + Sum( + Sum( + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + 0x2000000000000000000000000000000011234c7e04a67c8dcc96987680000001, + ), + Negated( + Product( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + Sum( + Advice { + query_index: 5, + column_index: 5, + rotation: Rotation( + 0, + ), + }, + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + ), + ), + ), + Scaled( + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 17, + column_index: 17, + rotation: Rotation( + 0, + ), + }, + ), + ), + 0x2f0f40c2f152a01c9caf66298493d5d0944a041c2e65ba0117c24f76bf8e6483, + ), + ), + ], + table_expressions: [ + Fixed { + query_index: 1, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 11, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Fixed { + query_index: 12, + column_index: 2, + rotation: Rotation( + 0, + ), + }, + ], + }, + ], + constants: [ + Column { + index: 3, + column_type: Fixed, + }, + ], + minimum_degree: None, + }, + fixed_commitments: [ + (0x05f5862cad2888855bc3c1843a9eff57b11b592d9eb0e13354256661387f5231, 0x32236b14df85bf5f532a930232cb23a5c56ef7d67aaeed8bcb8fc10ea132cbd6), + (0x3e727e8554679f98120355d39d958dbd8755d5a7f8b42ea87f258064c4b3eb57, 0x0c0d5c23f3ee62ac1b2d986dd3033bbcab260d590e1393de3a14a4b31ae091bb), + (0x3748680dd6a91c5dec668b30fb6bf9a450aeb884b81cbc344914f265760e7131, 0x18530eaa5c58b61bd3fc38220ea484c0922524a815a8f752be955c229f9c4164), + (0x18cd12d5f4e12bd7247a8fd7cc93ded7a8a9b60935b319b2db578a8fceef9559, 0x16b15af4fcfb9ed75533e7a4c1966cae5621f10dc1dfbba39a491ec37c911b5e), + (0x37e70146801841d95832259e4d8f39aeee8a364ea5007f82aa84a0e387231315, 0x20ef65833381c985722a95e65125a1123cab3357741168a5ed7e92e972dbd30d), + (0x12e3af8e507a2ca30e544568cf319701ecbc29dc5919f0198d541938edecc8f3, 0x3fb1bb2804faaa4c215e93694d5d1e6f87874cb8c34cb9206ff958de14e44275), + (0x334d99f316343f01c8eb67e327c76f743f8de7f957c893c6f30ccd87e5d1af3a, 0x1da64caf127c8eb513653791147a85ed1edcca12935c95b7d615a9377c9406d8), + (0x1430dca15080286939046d3cb9fb7ace4ed1da2fbe7a362e8f3575489bc6e3e1, 0x1ef5f4aff2902f3bc8acb2cc884a2d44334f910a68b2701f1c37943652b46d8f), + (0x02ebdeac7e91b3d15e4b7c0533e42678672ec384d51e51e22342be7edeeb8074, 0x03638952e0489de03ff03236433f5d2617cb4ddd0a72637ed31095deca85a2a6), + (0x31179b7f5b01ad2a55cf9a66f57b696e9b9cb4919cca426d469b270827f3018b, 0x2b231a9a71b674cc546ba9b36916a13411648903cfdcb808926fc47ee745586c), + (0x0673497660cec8a8c391cfb16f5ffdcb710f9e9e194a1a85935cf4bc45b01359, 0x15ce8801c51811f0256a43f762e497fe38c88866c09bb256289d93e0393dc225), + (0x098d2a0cfedae91fe29e21a01b5e43045b9cc8d9a334f1aee3e075f36a16e323, 0x0be47cc41643c9e6d95012428d5b46ae5a44e765392e05152a0181e30689d8b6), + (0x02adb7cbc9ebbbd87d7d6a41fc40cb4cf57585c6243aa204f757c9026ef20fd3, 0x327fc06fee179c6a57ed95336f9fb7854420d80dd191251a40935664ff6c8067), + (0x2d00d4ec8aa5e4b3d035131f559e4a97f896e8dbc39badb92b58a8d46b5e91df, 0x37046fb32ed8eb4ba0b4da8e1c9b56cd3832fa2ed4788f7faf4fee1f76a94c32), + (0x212f5afd70e787e2fd951e0ddc5430d1fa78f988c30740384d18cf9ff276b43b, 0x20c5a150e200caddf9a35a993668fc4742be5d924d1086f05c74ef6a78b5feb2), + (0x02c283cbde85f2ad26daddeabe01b1574ce7de68f0e329ec95a4154dd4713f29, 0x208cf96aa5255b543933ee3e9bdd054d4f15265a7c8921aaee89c192af2fd284), + (0x1f777f0e4263ec4a19f30813739c640335ffa951cc3cc586b6c4095e737f95be, 0x061c07fb12cb19582eefd858a08e689acd970c8cb9ed8f7b928d88e691a2f586), + (0x13d0bd76da4ace22c0e90b098d6073551322b8c734bf37eeca67fbf19687f550, 0x3d996cc9da5a31cefb453390b906eabbcc75797bc6a6b9c9e3af2fe7b6b8beed), + (0x04cad7405b492a30db0a710c842cecc97d02059acf4c02aa79626dce68ac4837, 0x3d6d7b6698b258e61ebe0b25d9cbcd4a016cb0a2ae8d92752532d98cfb27720d), + (0x1b6f5383c5a0ae5bf457e1c8e17a933e892464d33fef9e9262411e01c117d87e, 0x0c552b960e8ce365b5f2302bcc0b7ce5cdf964e6036602cfc859c8769184f619), + (0x3fa4b5cc33e30de3ac7342c84f47f4fffe7ae77dda1689c2f08050d0ab743cb1, 0x327663e39b128ec28c94486b1e5d4429000626f65230ed572c66f80406a42176), + (0x2184a7d65b5000cc5c5f178c2f4ab5b11a67fdc626771c29ade508020c8da032, 0x34c98ee1f6dfa6c1e8cd915d1efeb484206e13e5e32e13118925913568e620b7), + (0x0974ad1a3c0eb4c8d2c59cd820a82b7f28ea2f7a245008d403815131ff30879e, 0x00bb593cdf920cef4965f788d65eba3c3aa07d9718dfb62e3e385849a0d692a8), + (0x1e355d783cffccafc120f462461fb312773442762383ac444009653f3d8d4be6, 0x3c60e17b18492aa2c41798b409d2bcc1857ca57ee9d2fb0001584cedc8e141d6), + (0x0a6fe1cc1ce659681079768ca8ff94d82c7d51ef39cd99b738b144de3a3027f6, 0x30cfc2f4e0ec95f623199970d8b762647ad2d7c3591a20781ee8187702babe5f), + (0x00d87a2c430f1db50a63f18f8cf8807f4f70d3acb940d4130ba6811f8ba2d479, 0x13d5742320e1b2cecda6073b7f2bf5816b9067453deeaa829f356a65ef5621b2), + (0x3118979ade023f3977d034f86eed6506d7e0586ead81f80bc5ca01a7660ee0c9, 0x30f6731193d5c786cf61b05523c05e2664a066c2d39a685588f02883057320ad), + (0x0df51bd411d5f95da66fcc57f5e4d8dbcca3d82b08ceb61e9ff1befa074e08d3, 0x11c9092b6d02c46f173b0108854499ca4922afaf58e0734e77a6088715e84b64), + (0x24289014ede2672df8e8e32eb4e0d71709846041319fb85b1328cdb3b8764565, 0x0833de9c0b76ae816df0e41ae33daece27c63a41f2ba9abbbc7c08724211b50c), + ], + permutation: VerifyingKey { + commitments: [ + (0x2ad778f0e75a3dcad7c0cc2215e554f3d6fe41eabd612c487ea2708d59fb2e7e, 0x0561e9268230b53ec9cac0fd7654b3edaa3851f624c62bdae39519ae17526c06), + (0x358a21858e7f0da213959badd192b12e7bd40f6b18f5617a7fbad1f142b53c41, 0x1cc665c7a95332ea3ecb79bc35c4d672837809470691ad6a96f2eca081ca9c98), + (0x28d6468db328f1d201b3b7ca36f3affddee9dd0043d8868e34f1839742ac3190, 0x2f38eba3a82748cc28e46c1e20b7d343fdac7ef726ed6de89f6484c6070204f1), + (0x21f27b52cd9a76e1dbbf572fbfc0262007015777b68bda954f3c9db60ebb27f9, 0x0dbbf8f04e8476544a853e54093689d59935de9194eef24a0ee04d6faef9423f), + (0x0253a69e81add6bc1c2fe14bd90dab3e3c2603747dd3760c9dd1e341d96a79ed, 0x15cbe812a45a46512cc8ed493250f75a9dcaaee4be0d3bdaee8b43d74c50481f), + (0x19eb8760e7d0e6ae6d28d65627d958661cdde4e58a0aeb55a6b7017bcf723002, 0x064575794bf9bfdbc50e94b8afbbd2851ae4e12ff2809777d28fe71c235727d9), + (0x0e5c408b5224841cb4f75aec5cdb7bc95c150bbe858dbde8dbac9f72e5392462, 0x01030c69ac5fc7dd63e4e0bb1718d26f51b79dccc81e0b172e98c26e59145414), + (0x12437cb05ecff24131b52b5a55f6f143d8437c28c9d7c31eb06cfa093972a64b, 0x06e1a5e39566b4ce097a6c7dace6dcb827e54dac7d64fa79d994fb1557717614), + (0x34636ff9de412da15f41a8a006abbe8f43a5cffc94e6c3deb02f98af4fb2b8c7, 0x0270f0c3fa8cc7338f20fbcd5ec4e62799e051e0c5938d9e8c41581de8da6165), + (0x218e047b1c0a3b92c59539b3f6d9c23d34ebeeb65ca0be98f5e0e9642bdf1085, 0x20c1117f40b375688a94ff5c5c0b70004e43c7c7cd492fe8055fea081ea5ca78), + (0x2478c8226d4ede1c203fa7455b5fe28f99d5a0cb8ccdb5be4b54d5edcce974c4, 0x1ce69b76f05daeae57cd3d452370439237da89f2ddc84f7b2e35703acbf99655), + (0x08383138ecc6f2fb5459043c7666ae3df7802f1f02392af44db6ba25cd7d2c56, 0x20957d7a3f00a8589f627c5f5e471f45a84fbcbdcde00dfc97b9a97f3f723202), + (0x21d210b41675a1eae44cbd0f3fd27d69e30716c71873f6089cee61acacd403ab, 0x2275e97c7e84f68bfaa528a9d8be4e059f7abefd80d03fbfca774e8414a9b7c1), + (0x0f9e7de28e0f650d99d99d95c0fcd39c9dac9db5aa1973319f66922d6eb9f7d5, 0x1ba644ecc18ad711ddd33af7f695f6834e9f35c93d47a6a5273dabbe800fc7e6), + (0x0aab3ab73afac76277cd94a891de15e42ceb09f3a9865dab5c814bebfbb4453f, 0x27119fec3736d99abeeef1ad7b857db7e754e0c158780ed3dd0cdd4dc2453e10), + ], + }, +} diff --git a/zk-crates/zk-headstash/src/circuit_proof_test_case.bin b/zk-crates/zk-headstash/src/circuit_proof_test_case.bin new file mode 100644 index 0000000..9dcabe5 Binary files /dev/null and b/zk-crates/zk-headstash/src/circuit_proof_test_case.bin differ diff --git a/zk-crates/zk-headstash/src/constants.rs b/zk-crates/zk-headstash/src/constants.rs new file mode 100644 index 0000000..ac154c7 --- /dev/null +++ b/zk-crates/zk-headstash/src/constants.rs @@ -0,0 +1,66 @@ +//! Constants used in the Orchard protocol. +pub mod fixed_bases; +pub mod sinsemilla; +pub mod util; + +#[cfg(feature = "circuit")] +pub use self::sinsemilla::{OrchardCommitDomains, OrchardHashDomains}; +#[cfg(feature = "circuit")] +pub use fixed_bases::{NullifierK, OrchardFixedBases, OrchardFixedBasesFull, ValueCommitV}; + +/// $\mathsf{MerkleDepth^{Orchard}}$ +pub const MERKLE_DEPTH_ORCHARD: usize = 32; + +/// The Pallas scalar field modulus is $q = 2^{254} + \mathsf{t_q}$. +/// +pub(crate) const T_Q: u128 = 45560315531506369815346746415080538113; + +/// The Pallas base field modulus is $p = 2^{254} + \mathsf{t_p}$. +/// +pub(crate) const T_P: u128 = 45560315531419706090280762371685220353; + +/// $\ell^\mathsf{Orchard}_\mathsf{base}$ +pub(crate) const L_ORCHARD_BASE: usize = 255; + +/// $\ell^\mathsf{Orchard}_\mathsf{scalar}$ +pub(crate) const L_ORCHARD_SCALAR: usize = 255; + +/// $\ell_\mathsf{value}$ +pub(crate) const L_VALUE: usize = 64; + +/// SWU hash-to-curve personalization for the group hash for key diversification +pub const KEY_DIVERSIFICATION_PERSONALIZATION: &str = "z.cash:Orchard-gd"; + +/// personalization for the headstash nullifier key derivation of an esk +pub const DST_HKDF: [u8; 32] = *b"Hkdf_headstash_710_terp.network\0"; +#[cfg(test)] +mod tests { + use ff::PrimeField; + use pasta_curves::pallas; + + #[test] + // Orchard uses the Pallas base field as its base field. + fn l_orchard_base() { + assert_eq!(super::L_ORCHARD_BASE, pallas::Base::NUM_BITS as usize); + } + + #[test] + // Orchard uses the Pallas base field as its base field. + fn l_orchard_scalar() { + assert_eq!(super::L_ORCHARD_SCALAR, pallas::Scalar::NUM_BITS as usize); + } + + #[test] + fn t_q() { + let t_q = pallas::Scalar::from_u128(super::T_Q); + let two_pow_254 = pallas::Scalar::from_u128(1 << 127).square(); + assert_eq!(t_q + two_pow_254, pallas::Scalar::zero()); + } + + #[test] + fn t_p() { + let t_p = pallas::Base::from_u128(super::T_P); + let two_pow_254 = pallas::Base::from_u128(1 << 127).square(); + assert_eq!(t_p + two_pow_254, pallas::Base::zero()); + } +} diff --git a/zk-crates/zk-headstash/src/constants/fixed_bases.rs b/zk-crates/zk-headstash/src/constants/fixed_bases.rs new file mode 100644 index 0000000..54fc9aa --- /dev/null +++ b/zk-crates/zk-headstash/src/constants/fixed_bases.rs @@ -0,0 +1,188 @@ +//! Orchard fixed bases. + +#[cfg(feature = "circuit")] +use alloc::vec::Vec; + +use super::{L_ORCHARD_SCALAR, L_VALUE}; + +#[cfg(feature = "circuit")] +use halo2_gadgets::ecc::{ + chip::{BaseFieldElem, FixedPoint, FullScalar, ShortScalar}, + FixedPoints, +}; + +#[cfg(feature = "circuit")] +use pasta_curves::pallas; + +pub mod commit_ivk_r; +pub mod note_commit_r; +pub mod nullifier_k; +pub mod spend_auth_g; +pub mod value_commit_r; +pub mod value_commit_v; + + + +/// FIXED_AMOUNTS +pub const FIXED_AMOUNTS: [u64; 10] = [ + 1_000_000_000, + 100_000_000, + 10_000_000, + 1_000_000, + 100_000, + 10_000, + 1_000, + 100, + 10, + 1, +]; + +/// SWU hash-to-curve personalization for the spending key base point and +/// the nullifier base point K^Orchard +pub const ORCHARD_PERSONALIZATION: &str = "z.cash:Orchard"; + +/// SWU hash-to-curve personalization for the value commitment generator +pub const VALUE_COMMITMENT_PERSONALIZATION: &str = "z.cash:Orchard-cv"; + +/// SWU hash-to-curve value for the value commitment generator +pub const VALUE_COMMITMENT_V_BYTES: [u8; 1] = *b"v"; + +/// SWU hash-to-curve value for the value commitment generator +pub const VALUE_COMMITMENT_R_BYTES: [u8; 1] = *b"r"; + +/// SWU hash-to-curve personalization for the note commitment generator +pub const NOTE_COMMITMENT_PERSONALIZATION: &str = "z.cash:Orchard-NoteCommit"; + +/// SWU hash-to-curve personalization for the IVK commitment generator +pub const COMMIT_IVK_PERSONALIZATION: &str = "z.cash:Orchard-CommitIvk"; + +/// Window size for fixed-base scalar multiplication +pub const FIXED_BASE_WINDOW_SIZE: usize = 3; + +/// $2^{`FIXED_BASE_WINDOW_SIZE`}$ +pub const H: usize = 1 << FIXED_BASE_WINDOW_SIZE; + +/// Number of windows for a full-width scalar +pub const NUM_WINDOWS: usize = + (L_ORCHARD_SCALAR + FIXED_BASE_WINDOW_SIZE - 1) / FIXED_BASE_WINDOW_SIZE; + +/// Number of windows for a short signed scalar +pub const NUM_WINDOWS_SHORT: usize = + (L_VALUE + FIXED_BASE_WINDOW_SIZE - 1) / FIXED_BASE_WINDOW_SIZE; + +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +// A sum type for both full-width and short bases. This enables us to use the +// shared functionality of full-width and short fixed-base scalar multiplication. +pub enum OrchardFixedBases { + Full(OrchardFixedBasesFull), + NullifierK, + ValueCommitV, +} + +impl From for OrchardFixedBases { + fn from(full_width_base: OrchardFixedBasesFull) -> Self { + Self::Full(full_width_base) + } +} + +impl From for OrchardFixedBases { + fn from(_value_commit_v: ValueCommitV) -> Self { + Self::ValueCommitV + } +} + +impl From for OrchardFixedBases { + fn from(_nullifier_k: NullifierK) -> Self { + Self::NullifierK + } +} + +/// The Orchard fixed bases used in scalar mul with full-width scalars. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +pub enum OrchardFixedBasesFull { + CommitIvkR, + NoteCommitR, + ValueCommitR, + SpendAuthG, +} + +/// NullifierK is used in scalar mul with a base field element. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +pub struct NullifierK; + +/// ValueCommitV is used in scalar mul with a short signed scalar. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +pub struct ValueCommitV; + +#[cfg(feature = "circuit")] +impl FixedPoints for OrchardFixedBases { + type FullScalar = OrchardFixedBasesFull; + type Base = NullifierK; + type ShortScalar = ValueCommitV; +} + +#[cfg(feature = "circuit")] +impl FixedPoint for OrchardFixedBasesFull { + type FixedScalarKind = FullScalar; + + fn generator(&self) -> pallas::Affine { + match self { + Self::CommitIvkR => commit_ivk_r::generator(), + Self::NoteCommitR => note_commit_r::generator(), + Self::ValueCommitR => value_commit_r::generator(), + Self::SpendAuthG => spend_auth_g::generator(), + } + } + + fn u(&self) -> Vec<[[u8; 32]; H]> { + match self { + Self::CommitIvkR => commit_ivk_r::U.to_vec(), + Self::NoteCommitR => note_commit_r::U.to_vec(), + Self::ValueCommitR => value_commit_r::U.to_vec(), + Self::SpendAuthG => spend_auth_g::U.to_vec(), + } + } + + fn z(&self) -> Vec { + match self { + Self::CommitIvkR => commit_ivk_r::Z.to_vec(), + Self::NoteCommitR => note_commit_r::Z.to_vec(), + Self::ValueCommitR => value_commit_r::Z.to_vec(), + Self::SpendAuthG => spend_auth_g::Z.to_vec(), + } + } +} + +#[cfg(feature = "circuit")] +impl FixedPoint for NullifierK { + type FixedScalarKind = BaseFieldElem; + + fn generator(&self) -> pallas::Affine { + nullifier_k::generator() + } + + fn u(&self) -> Vec<[[u8; 32]; H]> { + nullifier_k::U.to_vec() + } + + fn z(&self) -> Vec { + nullifier_k::Z.to_vec() + } +} + +#[cfg(feature = "circuit")] +impl FixedPoint for ValueCommitV { + type FixedScalarKind = ShortScalar; + + fn generator(&self) -> pallas::Affine { + value_commit_v::generator() + } + + fn u(&self) -> Vec<[[u8; 32]; H]> { + value_commit_v::U_SHORT.to_vec() + } + + fn z(&self) -> Vec { + value_commit_v::Z_SHORT.to_vec() + } +} diff --git a/zk-crates/zk-headstash/src/constants/fixed_bases/commit_ivk_r.rs b/zk-crates/zk-headstash/src/constants/fixed_bases/commit_ivk_r.rs new file mode 100644 index 0000000..75ba545 --- /dev/null +++ b/zk-crates/zk-headstash/src/constants/fixed_bases/commit_ivk_r.rs @@ -0,0 +1,2963 @@ +use group::ff::PrimeField; +use pasta_curves::{arithmetic::CurveAffine, pallas}; + +/// Generator used in SinsemillaCommit randomness for IVK commitment. +pub const GENERATOR: ([u8; 32], [u8; 32]) = ( + [ + 24, 161, 248, 95, 110, 72, 35, 152, 199, 237, 26, 211, 226, 127, 149, 2, 72, 137, 128, 64, + 10, 41, 52, 22, 78, 19, 112, 80, 205, 44, 162, 37, + ], + [ + 169, 221, 127, 227, 179, 147, 231, 63, 199, 166, 88, 27, 251, 66, 68, 107, 148, 87, 75, 40, + 196, 144, 200, 194, 235, 250, 162, 102, 153, 210, 207, 41, + ], +); + +/// Full-width z-values for GENERATOR. +/// These can be reproduced by [`halo2_gadgets::ecc::chip::constants::find_zs_and_us`]. +pub const Z: [u64; super::NUM_WINDOWS] = [ + 18172, 17390, 61749, 65182, 33835, 155942, 26189, 52444, 40096, 139582, 99218, 20669, 291337, + 12465, 132211, 75527, 68003, 95835, 237325, 21348, 35494, 215451, 49456, 6332, 99036, 224845, + 25324, 23649, 83567, 20531, 9280, 72505, 136089, 21180, 132741, 32676, 18421, 107173, 45630, + 24851, 53914, 156083, 104170, 103364, 25728, 9482, 140699, 42185, 285585, 342, 78646, 326807, + 68908, 10376, 335378, 138003, 41031, 105432, 37682, 15886, 9325, 42470, 27439, 11884, 13979, + 214340, 53073, 76228, 67906, 44696, 178502, 130216, 4242, 142464, 211101, 13210, 66616, 103624, + 7870, 143575, 13058, 27070, 30734, 41157, 2955, +]; + +/// Full-width u-values for GENERATOR. +/// These can be reproduced by [`halo2_gadgets::ecc::chip::constants::find_zs_and_us`]. +pub static U: [[[u8; 32]; super::H]; super::NUM_WINDOWS] = [ + [ + [ + 38, 43, 235, 53, 200, 116, 153, 194, 47, 92, 18, 54, 194, 221, 170, 155, 205, 143, 92, + 174, 249, 178, 182, 216, 217, 200, 148, 84, 184, 201, 111, 24, + ], + [ + 57, 210, 96, 16, 151, 52, 218, 250, 249, 5, 128, 232, 65, 231, 239, 167, 102, 8, 198, + 79, 116, 245, 42, 45, 237, 3, 166, 7, 179, 115, 76, 47, + ], + [ + 148, 246, 234, 157, 72, 45, 221, 176, 144, 235, 23, 51, 13, 230, 80, 196, 122, 188, 56, + 231, 230, 193, 9, 121, 49, 208, 79, 184, 14, 56, 178, 28, + ], + [ + 139, 148, 48, 95, 182, 176, 253, 110, 107, 242, 54, 21, 66, 103, 169, 9, 207, 182, 149, + 92, 151, 154, 80, 129, 107, 53, 158, 194, 114, 17, 67, 9, + ], + [ + 194, 138, 153, 65, 192, 221, 4, 110, 115, 182, 50, 98, 165, 161, 49, 119, 63, 24, 149, + 79, 48, 173, 90, 248, 95, 228, 20, 248, 76, 46, 207, 2, + ], + [ + 16, 137, 162, 110, 105, 192, 29, 133, 191, 64, 219, 94, 186, 194, 0, 7, 173, 221, 156, + 4, 123, 86, 65, 138, 26, 16, 223, 218, 186, 247, 121, 47, + ], + [ + 247, 8, 62, 207, 128, 127, 80, 169, 185, 32, 34, 54, 198, 4, 121, 42, 44, 173, 233, + 161, 24, 123, 170, 24, 37, 186, 147, 80, 34, 6, 65, 9, + ], + [ + 184, 197, 131, 138, 111, 145, 67, 140, 183, 100, 227, 73, 20, 230, 2, 163, 56, 202, 35, + 231, 166, 47, 139, 177, 79, 128, 79, 50, 69, 94, 128, 11, + ], + ], + [ + [ + 228, 55, 222, 252, 163, 143, 71, 34, 215, 169, 224, 143, 57, 193, 87, 79, 96, 233, 88, + 62, 140, 245, 144, 229, 235, 154, 159, 134, 176, 74, 10, 13, + ], + [ + 203, 65, 45, 88, 76, 0, 165, 247, 212, 123, 12, 178, 115, 129, 81, 211, 5, 234, 61, + 193, 134, 73, 14, 55, 219, 239, 40, 178, 81, 127, 137, 47, + ], + [ + 118, 42, 192, 222, 58, 225, 233, 65, 254, 82, 102, 94, 121, 192, 112, 149, 5, 80, 129, + 239, 214, 4, 25, 194, 238, 75, 208, 226, 21, 125, 139, 21, + ], + [ + 12, 65, 189, 92, 187, 162, 133, 145, 218, 177, 133, 115, 1, 196, 23, 21, 197, 179, 85, + 84, 108, 33, 144, 51, 214, 196, 130, 16, 7, 67, 46, 10, + ], + [ + 194, 202, 169, 139, 155, 118, 15, 169, 51, 217, 118, 205, 203, 108, 45, 37, 73, 184, + 203, 217, 143, 127, 54, 171, 255, 88, 9, 116, 206, 71, 209, 47, + ], + [ + 15, 52, 133, 149, 237, 80, 61, 200, 227, 82, 203, 228, 135, 59, 240, 163, 219, 1, 185, + 17, 13, 248, 85, 164, 159, 169, 73, 215, 117, 212, 30, 40, + ], + [ + 30, 200, 206, 82, 181, 95, 234, 33, 234, 33, 165, 40, 175, 71, 221, 104, 194, 48, 80, + 67, 53, 13, 117, 131, 33, 22, 81, 190, 171, 25, 115, 24, + ], + [ + 163, 65, 127, 103, 209, 178, 109, 122, 8, 2, 239, 83, 7, 176, 66, 181, 240, 17, 213, + 28, 162, 225, 177, 182, 94, 255, 64, 60, 88, 209, 168, 15, + ], + ], + [ + [ + 201, 133, 116, 99, 229, 230, 38, 216, 86, 54, 178, 27, 247, 159, 97, 189, 201, 167, 43, + 60, 241, 97, 140, 243, 94, 64, 91, 28, 229, 55, 135, 52, + ], + [ + 113, 170, 86, 193, 75, 222, 86, 137, 7, 231, 101, 244, 158, 115, 245, 209, 214, 66, + 163, 228, 218, 85, 56, 43, 164, 132, 221, 237, 72, 184, 91, 37, + ], + [ + 131, 115, 214, 52, 233, 217, 201, 116, 101, 213, 199, 176, 74, 97, 217, 152, 232, 87, + 103, 124, 132, 104, 134, 160, 61, 107, 131, 81, 105, 121, 76, 41, + ], + [ + 172, 44, 224, 71, 175, 155, 74, 150, 250, 191, 110, 29, 54, 146, 12, 247, 71, 51, 30, + 163, 203, 51, 46, 255, 155, 118, 193, 185, 138, 20, 142, 10, + ], + [ + 228, 98, 86, 115, 115, 98, 150, 181, 175, 218, 75, 241, 35, 254, 191, 123, 237, 163, + 215, 117, 6, 203, 219, 65, 245, 161, 225, 48, 67, 224, 161, 21, + ], + [ + 239, 23, 50, 140, 192, 70, 215, 235, 223, 250, 6, 174, 207, 249, 166, 70, 92, 226, 138, + 237, 234, 146, 19, 108, 181, 80, 254, 80, 222, 78, 170, 13, + ], + [ + 105, 88, 220, 64, 178, 53, 69, 119, 203, 32, 253, 120, 201, 121, 5, 44, 163, 120, 62, + 197, 13, 211, 222, 212, 161, 35, 191, 40, 81, 239, 98, 45, + ], + [ + 225, 167, 50, 48, 66, 64, 142, 173, 238, 171, 131, 2, 178, 131, 193, 75, 44, 33, 113, + 143, 159, 81, 201, 165, 3, 132, 91, 69, 72, 122, 5, 34, + ], + ], + [ + [ + 48, 191, 86, 130, 85, 144, 157, 35, 36, 188, 210, 224, 234, 51, 152, 200, 136, 137, + 168, 97, 97, 189, 232, 39, 51, 165, 73, 68, 233, 37, 14, 0, + ], + [ + 6, 86, 175, 220, 24, 9, 216, 103, 64, 7, 180, 171, 14, 90, 234, 37, 65, 169, 198, 195, + 250, 79, 151, 139, 35, 113, 228, 26, 127, 86, 124, 12, + ], + [ + 118, 194, 93, 189, 16, 152, 182, 130, 136, 79, 99, 200, 174, 187, 181, 234, 104, 247, + 239, 41, 176, 229, 214, 219, 110, 234, 253, 107, 53, 222, 57, 12, + ], + [ + 159, 96, 55, 104, 236, 61, 119, 214, 121, 9, 146, 92, 89, 231, 232, 121, 66, 195, 105, + 66, 174, 191, 212, 118, 92, 30, 223, 222, 54, 171, 24, 58, + ], + [ + 78, 244, 3, 237, 108, 152, 99, 240, 195, 201, 58, 149, 136, 57, 170, 126, 90, 168, 8, + 145, 242, 28, 58, 135, 222, 98, 198, 255, 151, 192, 140, 59, + ], + [ + 4, 123, 44, 17, 130, 193, 135, 237, 165, 215, 129, 100, 179, 215, 150, 150, 49, 171, + 181, 27, 231, 149, 64, 82, 184, 41, 59, 255, 227, 23, 132, 45, + ], + [ + 249, 11, 208, 25, 21, 210, 141, 96, 112, 168, 221, 247, 108, 62, 216, 218, 77, 3, 13, + 218, 133, 242, 76, 40, 72, 115, 242, 250, 118, 60, 40, 53, + ], + [ + 18, 205, 34, 103, 209, 200, 230, 196, 181, 56, 100, 22, 64, 56, 135, 88, 22, 193, 121, + 61, 158, 23, 86, 241, 129, 216, 243, 16, 137, 32, 59, 15, + ], + ], + [ + [ + 67, 188, 36, 61, 110, 49, 190, 197, 209, 218, 102, 48, 19, 161, 118, 249, 7, 228, 251, + 198, 69, 36, 45, 30, 122, 113, 228, 247, 161, 90, 215, 62, + ], + [ + 230, 163, 230, 185, 126, 85, 51, 224, 220, 60, 117, 31, 116, 82, 180, 90, 35, 181, 23, + 207, 130, 176, 146, 246, 149, 100, 35, 41, 211, 116, 76, 21, + ], + [ + 104, 218, 189, 68, 148, 109, 54, 65, 126, 148, 202, 72, 11, 178, 190, 241, 252, 42, 57, + 119, 160, 71, 9, 113, 164, 74, 107, 108, 230, 197, 56, 34, + ], + [ + 168, 67, 227, 161, 138, 101, 117, 205, 122, 79, 124, 156, 61, 254, 239, 74, 52, 246, + 136, 119, 100, 235, 111, 76, 249, 228, 33, 181, 76, 48, 244, 8, + ], + [ + 57, 190, 34, 170, 85, 104, 175, 192, 138, 247, 198, 225, 120, 123, 182, 167, 155, 77, + 185, 94, 189, 249, 189, 192, 116, 210, 42, 8, 39, 107, 228, 40, + ], + [ + 137, 250, 104, 160, 92, 133, 234, 253, 148, 230, 125, 116, 77, 156, 46, 97, 98, 93, 98, + 162, 16, 246, 14, 156, 232, 142, 228, 184, 47, 18, 109, 51, + ], + [ + 181, 234, 243, 86, 130, 53, 164, 12, 44, 2, 138, 234, 32, 159, 29, 199, 83, 104, 6, + 251, 157, 245, 119, 243, 192, 124, 83, 141, 84, 7, 253, 37, + ], + [ + 184, 204, 52, 142, 167, 35, 251, 253, 44, 239, 94, 43, 119, 65, 99, 140, 248, 55, 32, + 41, 123, 37, 159, 252, 228, 94, 125, 9, 94, 123, 196, 11, + ], + ], + [ + [ + 220, 27, 17, 56, 42, 160, 65, 249, 171, 103, 2, 144, 119, 111, 173, 243, 169, 246, 74, + 94, 178, 136, 81, 131, 137, 145, 8, 199, 129, 187, 82, 40, + ], + [ + 15, 14, 95, 84, 183, 63, 5, 26, 28, 13, 152, 174, 134, 53, 110, 63, 236, 51, 115, 96, + 128, 222, 243, 133, 220, 138, 207, 69, 248, 68, 163, 54, + ], + [ + 157, 113, 146, 113, 88, 59, 70, 92, 105, 214, 135, 187, 108, 247, 196, 101, 243, 124, + 113, 202, 145, 193, 137, 12, 189, 232, 61, 152, 47, 0, 60, 46, + ], + [ + 121, 124, 78, 224, 66, 132, 151, 208, 89, 48, 210, 229, 250, 246, 187, 115, 132, 246, + 165, 83, 116, 100, 176, 192, 157, 149, 229, 90, 164, 247, 106, 48, + ], + [ + 179, 178, 102, 86, 109, 190, 43, 234, 151, 18, 121, 247, 58, 220, 212, 196, 22, 102, + 246, 146, 53, 145, 90, 244, 127, 11, 114, 56, 230, 49, 239, 3, + ], + [ + 151, 130, 174, 163, 229, 52, 14, 12, 85, 143, 129, 148, 137, 192, 85, 164, 198, 87, + 204, 79, 250, 32, 221, 149, 48, 124, 96, 176, 121, 125, 189, 42, + ], + [ + 153, 91, 143, 221, 234, 183, 165, 196, 154, 195, 52, 111, 21, 112, 103, 209, 234, 104, + 139, 132, 183, 44, 110, 33, 16, 107, 25, 181, 58, 37, 166, 25, + ], + [ + 47, 67, 89, 104, 59, 192, 183, 21, 49, 222, 239, 60, 234, 11, 121, 71, 117, 4, 106, 20, + 226, 178, 1, 44, 19, 241, 180, 203, 241, 195, 228, 53, + ], + ], + [ + [ + 123, 55, 47, 2, 155, 105, 127, 151, 194, 54, 66, 196, 200, 140, 171, 69, 209, 52, 213, + 234, 88, 138, 177, 18, 190, 175, 136, 118, 192, 121, 3, 60, + ], + [ + 40, 147, 60, 109, 168, 148, 50, 213, 164, 67, 54, 126, 99, 78, 221, 27, 65, 208, 53, + 147, 192, 130, 242, 63, 97, 75, 31, 131, 139, 114, 19, 54, + ], + [ + 18, 174, 193, 9, 97, 164, 97, 44, 90, 32, 54, 8, 223, 18, 97, 244, 115, 94, 114, 178, + 66, 198, 193, 209, 161, 56, 189, 97, 138, 189, 172, 7, + ], + [ + 73, 30, 174, 174, 85, 131, 112, 210, 126, 211, 184, 128, 29, 229, 154, 14, 238, 77, 33, + 219, 178, 24, 163, 22, 187, 213, 72, 13, 97, 249, 53, 35, + ], + [ + 194, 188, 159, 242, 52, 203, 166, 37, 70, 147, 45, 10, 253, 195, 93, 160, 97, 99, 166, + 192, 248, 92, 6, 73, 85, 223, 58, 113, 183, 44, 39, 24, + ], + [ + 194, 181, 84, 60, 45, 220, 54, 229, 21, 95, 31, 114, 26, 125, 202, 172, 39, 215, 50, + 55, 67, 247, 154, 124, 28, 205, 103, 132, 150, 24, 115, 7, + ], + [ + 58, 18, 125, 164, 3, 135, 144, 38, 72, 55, 238, 146, 28, 64, 157, 12, 194, 159, 47, + 147, 152, 202, 216, 171, 147, 169, 147, 158, 15, 210, 190, 40, + ], + [ + 17, 195, 245, 108, 190, 67, 179, 94, 90, 53, 44, 36, 195, 149, 189, 61, 45, 129, 211, + 47, 82, 12, 48, 12, 239, 162, 216, 173, 129, 242, 89, 41, + ], + ], + [ + [ + 87, 63, 207, 4, 57, 122, 127, 205, 17, 114, 67, 49, 57, 125, 176, 23, 124, 186, 31, 23, + 240, 37, 248, 255, 196, 215, 78, 156, 76, 11, 208, 11, + ], + [ + 198, 119, 167, 135, 159, 121, 168, 1, 179, 169, 15, 36, 219, 227, 120, 22, 57, 156, + 149, 193, 81, 160, 60, 172, 173, 107, 136, 2, 207, 75, 109, 0, + ], + [ + 147, 190, 194, 154, 209, 165, 211, 180, 54, 99, 243, 144, 148, 239, 140, 181, 45, 138, + 133, 128, 39, 218, 159, 246, 111, 140, 48, 146, 24, 179, 55, 30, + ], + [ + 163, 218, 69, 41, 175, 237, 150, 201, 166, 234, 156, 55, 5, 169, 73, 51, 248, 20, 47, + 40, 18, 54, 245, 235, 23, 99, 169, 52, 95, 112, 90, 41, + ], + [ + 111, 154, 122, 13, 187, 181, 205, 140, 152, 97, 152, 244, 166, 102, 113, 80, 215, 209, + 114, 78, 159, 55, 132, 147, 138, 70, 3, 99, 86, 96, 240, 43, + ], + [ + 244, 247, 239, 143, 87, 37, 51, 146, 36, 1, 168, 235, 223, 145, 44, 138, 215, 83, 247, + 146, 205, 128, 244, 70, 39, 193, 87, 202, 180, 14, 22, 48, + ], + [ + 214, 99, 131, 88, 28, 66, 84, 178, 111, 245, 18, 26, 116, 39, 160, 226, 138, 120, 140, + 162, 102, 240, 180, 96, 55, 0, 160, 136, 163, 92, 123, 12, + ], + [ + 180, 185, 68, 236, 220, 8, 73, 25, 32, 188, 243, 53, 80, 7, 122, 72, 114, 205, 148, + 232, 148, 125, 144, 253, 16, 191, 120, 5, 110, 160, 179, 4, + ], + ], + [ + [ + 215, 36, 133, 246, 146, 247, 247, 148, 226, 94, 231, 75, 215, 107, 94, 114, 33, 123, + 159, 150, 147, 196, 251, 228, 202, 91, 248, 52, 181, 225, 3, 12, + ], + [ + 151, 217, 103, 127, 100, 72, 73, 217, 249, 232, 233, 179, 164, 101, 133, 105, 70, 186, + 220, 239, 179, 151, 224, 24, 166, 8, 77, 37, 104, 146, 35, 8, + ], + [ + 236, 156, 172, 137, 14, 45, 196, 85, 119, 4, 3, 132, 17, 254, 213, 253, 82, 236, 229, + 61, 129, 51, 56, 44, 145, 202, 139, 85, 193, 218, 144, 49, + ], + [ + 84, 3, 20, 83, 134, 163, 190, 186, 93, 102, 59, 195, 164, 237, 231, 68, 181, 194, 48, + 66, 161, 190, 118, 16, 255, 5, 182, 100, 50, 129, 103, 35, + ], + [ + 174, 23, 251, 144, 221, 20, 104, 213, 183, 219, 143, 177, 241, 88, 90, 160, 82, 237, + 109, 168, 6, 241, 168, 159, 172, 32, 71, 95, 195, 34, 17, 40, + ], + [ + 201, 152, 156, 13, 83, 24, 2, 213, 237, 49, 196, 157, 27, 13, 179, 251, 252, 54, 214, + 118, 248, 220, 194, 210, 106, 126, 60, 148, 62, 216, 181, 42, + ], + [ + 13, 123, 103, 146, 116, 115, 226, 70, 243, 30, 134, 205, 127, 136, 233, 193, 46, 136, + 185, 99, 224, 56, 117, 170, 127, 41, 79, 144, 143, 66, 178, 54, + ], + [ + 106, 68, 95, 199, 8, 128, 1, 227, 77, 41, 100, 89, 12, 106, 31, 249, 50, 31, 179, 199, + 97, 200, 187, 138, 173, 68, 55, 220, 204, 113, 185, 17, + ], + ], + [ + [ + 69, 139, 165, 232, 189, 151, 135, 228, 146, 203, 4, 199, 79, 88, 205, 208, 219, 227, + 134, 54, 21, 219, 234, 102, 79, 40, 154, 105, 27, 90, 75, 54, + ], + [ + 106, 255, 138, 45, 182, 156, 63, 135, 105, 239, 114, 52, 216, 133, 125, 168, 94, 216, + 27, 167, 135, 95, 103, 111, 114, 247, 194, 132, 111, 90, 246, 48, + ], + [ + 194, 9, 225, 228, 74, 52, 98, 220, 90, 99, 240, 151, 235, 87, 61, 11, 72, 37, 144, 202, + 67, 171, 76, 97, 148, 76, 131, 111, 128, 79, 83, 26, + ], + [ + 101, 226, 33, 108, 207, 233, 24, 201, 236, 245, 69, 101, 214, 18, 21, 16, 193, 128, + 124, 109, 38, 27, 197, 241, 67, 19, 82, 53, 4, 248, 223, 13, + ], + [ + 198, 98, 126, 137, 89, 45, 3, 147, 114, 128, 182, 243, 147, 132, 201, 109, 58, 39, 166, + 193, 81, 8, 209, 235, 10, 108, 253, 67, 151, 135, 161, 30, + ], + [ + 119, 53, 78, 105, 73, 215, 248, 66, 16, 213, 74, 178, 30, 136, 181, 111, 193, 70, 85, + 19, 183, 100, 90, 56, 178, 95, 217, 97, 223, 243, 11, 52, + ], + [ + 11, 121, 245, 230, 235, 125, 64, 10, 52, 221, 159, 37, 113, 169, 8, 44, 95, 145, 89, + 93, 160, 190, 68, 235, 48, 159, 108, 13, 41, 197, 147, 51, + ], + [ + 189, 245, 38, 171, 5, 217, 150, 237, 129, 197, 196, 176, 83, 68, 183, 90, 243, 92, 121, + 113, 83, 130, 251, 91, 115, 197, 4, 59, 35, 255, 56, 39, + ], + ], + [ + [ + 250, 115, 123, 108, 134, 106, 234, 116, 143, 122, 119, 128, 48, 173, 72, 120, 37, 103, + 242, 160, 140, 207, 135, 191, 7, 13, 97, 18, 161, 131, 6, 2, + ], + [ + 236, 123, 232, 92, 251, 155, 53, 38, 1, 189, 120, 44, 155, 102, 233, 118, 75, 140, 244, + 133, 61, 215, 248, 63, 84, 66, 43, 167, 68, 91, 80, 20, + ], + [ + 103, 218, 138, 213, 206, 237, 104, 38, 243, 214, 154, 113, 158, 50, 252, 11, 142, 32, + 87, 99, 211, 75, 60, 169, 53, 209, 7, 76, 78, 225, 215, 46, + ], + [ + 194, 226, 180, 141, 202, 156, 21, 38, 187, 135, 186, 116, 99, 202, 19, 181, 81, 234, 7, + 108, 23, 13, 38, 68, 196, 172, 225, 178, 152, 58, 83, 7, + ], + [ + 160, 134, 246, 154, 234, 171, 190, 13, 94, 84, 40, 86, 32, 145, 212, 199, 66, 176, 119, + 189, 174, 251, 168, 28, 205, 119, 7, 250, 253, 231, 138, 39, + ], + [ + 134, 77, 107, 31, 55, 174, 187, 91, 199, 170, 82, 87, 159, 255, 112, 212, 32, 53, 61, + 0, 17, 237, 216, 205, 247, 143, 120, 131, 2, 204, 154, 60, + ], + [ + 201, 181, 59, 200, 44, 104, 196, 246, 253, 204, 123, 20, 169, 127, 230, 157, 145, 197, + 218, 90, 99, 224, 11, 221, 2, 72, 99, 53, 193, 146, 156, 47, + ], + [ + 41, 245, 146, 251, 215, 173, 135, 54, 143, 105, 8, 15, 38, 154, 64, 148, 54, 118, 107, + 148, 197, 91, 216, 16, 224, 57, 25, 131, 187, 219, 186, 27, + ], + ], + [ + [ + 221, 254, 116, 99, 181, 55, 18, 178, 66, 57, 174, 12, 24, 26, 136, 35, 149, 84, 253, + 62, 207, 82, 150, 156, 131, 17, 13, 156, 174, 72, 179, 29, + ], + [ + 210, 46, 48, 176, 52, 56, 63, 149, 44, 238, 40, 236, 155, 80, 243, 29, 111, 36, 240, + 29, 67, 187, 45, 146, 116, 237, 205, 52, 176, 254, 75, 17, + ], + [ + 35, 250, 61, 135, 124, 240, 188, 158, 248, 141, 147, 223, 240, 184, 92, 228, 49, 49, + 72, 46, 108, 235, 136, 230, 93, 215, 199, 242, 178, 43, 47, 7, + ], + [ + 27, 112, 31, 19, 47, 93, 177, 182, 109, 126, 14, 233, 59, 218, 60, 87, 133, 223, 62, + 136, 167, 36, 184, 169, 221, 172, 74, 199, 168, 126, 247, 45, + ], + [ + 80, 135, 205, 38, 126, 77, 134, 91, 95, 2, 64, 226, 227, 181, 167, 114, 56, 63, 119, + 60, 209, 210, 203, 55, 79, 59, 78, 6, 222, 71, 207, 7, + ], + [ + 113, 129, 202, 15, 125, 102, 224, 36, 204, 5, 170, 228, 146, 244, 105, 149, 99, 250, + 57, 123, 198, 56, 145, 25, 6, 30, 112, 221, 201, 228, 136, 37, + ], + [ + 225, 128, 150, 104, 49, 57, 121, 187, 66, 93, 43, 114, 206, 64, 81, 11, 22, 40, 30, + 152, 2, 85, 134, 241, 144, 41, 217, 215, 240, 196, 178, 28, + ], + [ + 46, 50, 121, 120, 185, 246, 24, 62, 72, 218, 18, 73, 186, 112, 101, 125, 62, 187, 9, + 87, 184, 138, 229, 211, 213, 196, 116, 71, 119, 146, 214, 30, + ], + ], + [ + [ + 213, 25, 243, 89, 153, 12, 106, 58, 2, 63, 93, 221, 49, 252, 84, 150, 204, 15, 253, + 151, 32, 140, 131, 150, 37, 245, 125, 223, 136, 115, 26, 17, + ], + [ + 167, 41, 163, 182, 251, 78, 242, 173, 178, 104, 236, 137, 143, 17, 73, 129, 241, 171, + 222, 153, 144, 64, 170, 21, 95, 62, 172, 107, 30, 237, 51, 12, + ], + [ + 206, 103, 30, 156, 70, 3, 208, 135, 21, 109, 32, 63, 76, 96, 112, 150, 219, 199, 141, + 194, 110, 229, 101, 4, 11, 185, 50, 63, 80, 240, 133, 44, + ], + [ + 174, 29, 247, 44, 246, 20, 223, 133, 6, 122, 102, 210, 91, 66, 105, 178, 55, 227, 112, + 89, 29, 77, 237, 38, 219, 12, 127, 136, 117, 27, 195, 49, + ], + [ + 74, 141, 53, 90, 118, 93, 102, 49, 234, 115, 93, 27, 174, 29, 70, 255, 188, 50, 130, + 41, 76, 244, 205, 198, 192, 226, 205, 227, 48, 174, 136, 62, + ], + [ + 129, 45, 8, 72, 246, 235, 199, 178, 112, 64, 206, 81, 216, 82, 19, 228, 89, 200, 21, + 102, 175, 15, 239, 69, 246, 47, 112, 164, 203, 196, 205, 60, + ], + [ + 26, 222, 152, 124, 45, 123, 245, 33, 71, 30, 177, 117, 217, 100, 245, 240, 159, 9, 153, + 130, 155, 25, 51, 236, 251, 29, 196, 228, 149, 241, 148, 47, + ], + [ + 206, 140, 210, 217, 54, 219, 195, 231, 81, 215, 183, 190, 86, 184, 157, 184, 46, 131, + 138, 159, 41, 166, 150, 180, 101, 138, 137, 131, 117, 112, 78, 28, + ], + ], + [ + [ + 32, 245, 224, 194, 45, 105, 155, 242, 83, 25, 197, 160, 98, 50, 249, 46, 199, 214, 54, + 83, 43, 191, 245, 97, 162, 116, 22, 166, 95, 158, 36, 3, + ], + [ + 92, 39, 151, 43, 3, 140, 150, 234, 15, 221, 112, 255, 2, 238, 89, 228, 133, 243, 245, + 71, 224, 137, 8, 137, 190, 6, 26, 149, 173, 204, 57, 1, + ], + [ + 64, 18, 216, 246, 50, 188, 216, 96, 35, 148, 164, 152, 224, 77, 82, 121, 239, 17, 89, + 103, 117, 43, 110, 154, 115, 83, 163, 27, 129, 99, 231, 13, + ], + [ + 102, 185, 48, 229, 26, 28, 30, 88, 191, 9, 87, 48, 209, 98, 186, 2, 241, 1, 154, 148, + 50, 219, 151, 236, 144, 38, 10, 96, 168, 89, 234, 6, + ], + [ + 219, 25, 241, 139, 137, 23, 114, 87, 186, 197, 152, 231, 115, 5, 180, 151, 13, 42, 143, + 196, 195, 63, 191, 225, 55, 185, 80, 252, 168, 220, 249, 43, + ], + [ + 56, 39, 181, 129, 25, 70, 151, 78, 137, 135, 43, 71, 194, 175, 188, 81, 187, 23, 190, + 30, 99, 212, 106, 103, 189, 224, 21, 62, 46, 202, 112, 17, + ], + [ + 66, 143, 116, 167, 150, 120, 18, 169, 89, 188, 184, 176, 213, 238, 77, 55, 5, 116, 177, + 74, 74, 103, 149, 26, 85, 123, 133, 205, 163, 105, 200, 13, + ], + [ + 152, 99, 40, 98, 102, 86, 25, 59, 40, 40, 161, 67, 165, 68, 132, 79, 23, 246, 234, 78, + 171, 191, 53, 141, 162, 249, 128, 33, 235, 138, 202, 45, + ], + ], + [ + [ + 156, 90, 57, 85, 160, 134, 120, 45, 141, 95, 233, 198, 87, 48, 28, 164, 86, 0, 216, + 168, 23, 88, 84, 27, 191, 41, 191, 214, 134, 146, 125, 16, + ], + [ + 202, 213, 237, 17, 167, 12, 116, 168, 19, 16, 201, 1, 174, 151, 151, 109, 96, 38, 70, + 163, 159, 105, 232, 241, 143, 122, 123, 74, 176, 146, 46, 53, + ], + [ + 86, 35, 102, 245, 218, 90, 113, 176, 240, 10, 35, 199, 207, 154, 109, 97, 55, 206, 79, + 25, 161, 155, 108, 28, 71, 143, 98, 25, 41, 208, 15, 38, + ], + [ + 21, 105, 152, 96, 135, 12, 77, 15, 38, 243, 33, 154, 192, 46, 89, 206, 173, 203, 165, + 27, 53, 154, 68, 226, 247, 152, 10, 215, 107, 10, 82, 20, + ], + [ + 169, 199, 174, 125, 91, 102, 240, 104, 65, 246, 97, 246, 21, 94, 61, 40, 70, 166, 200, + 43, 59, 181, 54, 81, 65, 252, 130, 95, 103, 237, 172, 26, + ], + [ + 82, 236, 145, 30, 120, 228, 221, 15, 244, 173, 130, 104, 246, 245, 234, 230, 19, 52, + 247, 195, 227, 206, 247, 161, 160, 242, 57, 139, 131, 232, 217, 19, + ], + [ + 66, 96, 175, 203, 229, 111, 75, 250, 199, 105, 135, 242, 35, 238, 196, 110, 62, 122, + 118, 141, 104, 14, 152, 242, 122, 177, 206, 36, 47, 96, 80, 35, + ], + [ + 44, 44, 255, 47, 209, 96, 218, 60, 192, 105, 16, 204, 135, 134, 96, 245, 21, 175, 105, + 29, 246, 177, 111, 60, 156, 25, 120, 138, 101, 6, 90, 2, + ], + ], + [ + [ + 31, 184, 49, 71, 143, 43, 71, 222, 169, 53, 216, 191, 22, 249, 138, 207, 21, 24, 3, 86, + 46, 69, 90, 63, 151, 252, 63, 56, 97, 158, 177, 47, + ], + [ + 80, 11, 236, 123, 242, 1, 232, 3, 112, 167, 77, 43, 73, 167, 74, 53, 127, 83, 151, 237, + 182, 3, 198, 28, 92, 233, 64, 159, 129, 241, 31, 35, + ], + [ + 164, 68, 201, 171, 117, 151, 76, 22, 43, 3, 101, 209, 79, 199, 10, 242, 68, 41, 82, + 158, 19, 203, 6, 85, 240, 109, 130, 203, 49, 23, 236, 19, + ], + [ + 200, 91, 200, 245, 221, 228, 3, 161, 167, 14, 150, 242, 143, 230, 90, 251, 97, 215, + 108, 155, 196, 17, 25, 66, 60, 39, 65, 19, 221, 235, 105, 21, + ], + [ + 38, 200, 246, 45, 43, 12, 141, 145, 41, 87, 40, 36, 165, 94, 46, 223, 254, 245, 129, + 61, 36, 195, 1, 60, 183, 142, 10, 11, 175, 127, 244, 50, + ], + [ + 202, 242, 204, 124, 201, 204, 110, 3, 156, 77, 23, 67, 177, 83, 55, 126, 93, 132, 159, + 253, 43, 207, 216, 254, 65, 208, 218, 161, 36, 155, 215, 41, + ], + [ + 196, 246, 176, 207, 138, 104, 9, 125, 222, 187, 126, 223, 6, 40, 98, 57, 3, 154, 54, + 192, 46, 76, 238, 121, 186, 37, 110, 93, 80, 189, 123, 46, + ], + [ + 2, 55, 61, 20, 25, 205, 105, 149, 79, 130, 87, 233, 206, 198, 185, 72, 135, 84, 237, + 91, 194, 22, 122, 251, 239, 110, 119, 81, 185, 19, 172, 26, + ], + ], + [ + [ + 137, 32, 193, 249, 241, 195, 226, 227, 9, 156, 214, 152, 183, 175, 233, 7, 144, 225, + 117, 40, 17, 144, 155, 184, 73, 22, 186, 201, 126, 48, 73, 19, + ], + [ + 4, 229, 38, 227, 150, 237, 160, 16, 19, 8, 50, 139, 36, 140, 14, 168, 176, 170, 247, + 251, 117, 175, 3, 26, 75, 51, 177, 30, 213, 155, 100, 1, + ], + [ + 38, 62, 6, 144, 171, 163, 7, 83, 176, 32, 82, 125, 170, 197, 243, 129, 78, 13, 230, 36, + 58, 77, 17, 66, 97, 78, 237, 162, 166, 120, 64, 0, + ], + [ + 173, 217, 143, 101, 223, 2, 93, 90, 207, 15, 89, 140, 23, 62, 71, 51, 73, 66, 1, 243, + 181, 155, 44, 210, 198, 184, 102, 129, 193, 66, 153, 53, + ], + [ + 46, 132, 212, 140, 34, 60, 168, 43, 71, 11, 78, 130, 37, 88, 126, 124, 34, 140, 178, + 169, 206, 180, 230, 6, 220, 121, 69, 2, 158, 251, 104, 52, + ], + [ + 25, 88, 235, 52, 117, 217, 117, 152, 20, 28, 113, 243, 252, 122, 60, 178, 249, 235, + 104, 54, 139, 106, 153, 45, 215, 237, 205, 54, 177, 250, 154, 60, + ], + [ + 144, 20, 151, 189, 75, 212, 154, 40, 119, 94, 131, 185, 43, 52, 37, 243, 134, 85, 176, + 15, 165, 233, 201, 115, 24, 114, 213, 43, 157, 18, 200, 13, + ], + [ + 62, 211, 60, 152, 90, 25, 180, 150, 167, 108, 41, 45, 59, 205, 58, 4, 58, 110, 221, + 131, 148, 83, 110, 196, 178, 38, 115, 216, 192, 159, 9, 1, + ], + ], + [ + [ + 120, 126, 7, 168, 237, 253, 5, 172, 68, 40, 41, 161, 97, 41, 131, 250, 140, 183, 32, + 45, 234, 188, 137, 104, 201, 78, 209, 11, 146, 115, 26, 38, + ], + [ + 125, 25, 235, 249, 4, 225, 85, 246, 226, 249, 209, 153, 173, 235, 39, 138, 126, 187, + 144, 237, 237, 238, 7, 242, 28, 27, 0, 172, 65, 228, 114, 33, + ], + [ + 134, 96, 205, 140, 233, 160, 20, 132, 91, 169, 133, 20, 3, 101, 164, 137, 57, 128, 66, + 255, 186, 31, 215, 57, 244, 144, 111, 29, 208, 113, 70, 8, + ], + [ + 77, 134, 125, 207, 98, 204, 79, 2, 151, 187, 122, 89, 19, 157, 8, 229, 65, 231, 71, + 186, 149, 131, 45, 52, 44, 229, 213, 117, 124, 97, 224, 47, + ], + [ + 22, 31, 170, 116, 29, 149, 167, 52, 101, 81, 99, 102, 23, 54, 43, 88, 219, 239, 124, + 120, 110, 103, 95, 93, 114, 82, 235, 254, 74, 162, 12, 43, + ], + [ + 157, 112, 208, 244, 62, 51, 73, 171, 174, 66, 197, 67, 115, 203, 126, 35, 72, 131, 50, + 156, 249, 148, 69, 112, 107, 76, 103, 122, 52, 224, 209, 34, + ], + [ + 244, 70, 79, 63, 227, 180, 125, 21, 167, 95, 230, 153, 64, 29, 5, 96, 83, 108, 176, + 197, 206, 46, 250, 57, 137, 57, 65, 75, 89, 64, 29, 27, + ], + [ + 215, 163, 172, 33, 213, 111, 149, 27, 88, 233, 32, 105, 3, 129, 48, 145, 235, 26, 134, + 7, 186, 59, 56, 176, 166, 104, 40, 0, 201, 231, 243, 26, + ], + ], + [ + [ + 87, 35, 156, 129, 118, 185, 139, 129, 110, 245, 61, 122, 247, 13, 221, 235, 250, 173, + 136, 136, 56, 228, 183, 140, 161, 37, 46, 237, 158, 248, 157, 13, + ], + [ + 74, 120, 21, 253, 130, 99, 169, 173, 59, 189, 108, 55, 191, 30, 46, 129, 218, 43, 47, + 42, 77, 169, 140, 23, 93, 188, 9, 170, 61, 248, 34, 57, + ], + [ + 80, 93, 107, 130, 213, 98, 234, 84, 99, 7, 36, 75, 206, 150, 12, 208, 63, 247, 223, 3, + 162, 231, 236, 66, 187, 224, 84, 96, 153, 103, 18, 50, + ], + [ + 235, 121, 156, 218, 55, 8, 17, 101, 33, 51, 218, 31, 10, 163, 169, 198, 12, 140, 123, + 213, 24, 143, 38, 73, 123, 129, 151, 98, 62, 250, 17, 26, + ], + [ + 152, 84, 193, 18, 114, 227, 10, 46, 250, 144, 81, 78, 116, 12, 132, 137, 13, 227, 147, + 39, 169, 173, 126, 199, 152, 63, 187, 69, 207, 151, 152, 23, + ], + [ + 142, 128, 46, 231, 126, 20, 245, 111, 146, 158, 213, 71, 174, 100, 72, 13, 94, 126, + 127, 238, 83, 30, 6, 250, 78, 248, 90, 42, 65, 81, 114, 29, + ], + [ + 252, 29, 137, 205, 37, 85, 213, 156, 238, 200, 193, 190, 5, 140, 230, 216, 163, 239, + 18, 210, 130, 93, 88, 105, 99, 242, 155, 92, 108, 125, 154, 11, + ], + [ + 138, 93, 184, 46, 124, 53, 181, 41, 164, 228, 229, 50, 252, 30, 84, 156, 203, 236, 235, + 67, 175, 177, 58, 126, 90, 46, 76, 174, 16, 102, 35, 50, + ], + ], + [ + [ + 66, 109, 120, 10, 148, 162, 208, 189, 108, 229, 165, 252, 148, 105, 186, 23, 216, 168, + 56, 226, 106, 133, 249, 188, 193, 32, 132, 189, 136, 203, 245, 38, + ], + [ + 212, 196, 252, 200, 36, 140, 206, 76, 62, 118, 3, 112, 247, 254, 149, 13, 67, 213, 158, + 104, 163, 214, 32, 99, 168, 108, 141, 18, 67, 85, 161, 35, + ], + [ + 117, 70, 191, 243, 235, 232, 147, 89, 59, 150, 37, 79, 22, 49, 139, 155, 203, 203, 79, + 3, 54, 87, 18, 48, 35, 139, 5, 51, 152, 20, 224, 35, + ], + [ + 146, 35, 71, 13, 6, 47, 60, 35, 176, 230, 253, 114, 246, 137, 83, 82, 255, 112, 139, + 147, 189, 153, 219, 44, 90, 58, 79, 48, 155, 97, 192, 50, + ], + [ + 176, 96, 137, 224, 105, 17, 148, 136, 14, 4, 146, 64, 224, 173, 196, 12, 117, 17, 203, + 113, 202, 147, 125, 248, 46, 138, 240, 187, 211, 244, 126, 51, + ], + [ + 10, 238, 39, 125, 20, 139, 248, 221, 187, 58, 244, 18, 33, 146, 43, 25, 68, 128, 171, + 75, 102, 157, 103, 134, 66, 213, 155, 96, 206, 101, 216, 51, + ], + [ + 235, 115, 86, 91, 137, 109, 145, 181, 76, 249, 206, 228, 197, 247, 27, 239, 54, 57, + 250, 235, 43, 205, 177, 56, 13, 244, 118, 196, 197, 47, 152, 56, + ], + [ + 239, 14, 150, 59, 172, 245, 69, 211, 26, 66, 243, 223, 239, 135, 123, 167, 246, 75, 72, + 217, 29, 85, 66, 136, 66, 252, 212, 164, 82, 83, 8, 17, + ], + ], + [ + [ + 240, 64, 94, 89, 242, 218, 143, 212, 160, 227, 13, 154, 211, 1, 137, 199, 87, 102, 155, + 2, 238, 22, 135, 90, 1, 31, 3, 72, 120, 186, 216, 26, + ], + [ + 17, 177, 67, 243, 214, 113, 198, 12, 36, 183, 67, 197, 88, 118, 47, 156, 54, 81, 244, + 19, 84, 250, 44, 63, 91, 1, 122, 131, 32, 140, 156, 50, + ], + [ + 18, 131, 239, 7, 227, 62, 66, 246, 185, 91, 15, 20, 138, 127, 72, 108, 118, 1, 95, 101, + 106, 122, 213, 159, 177, 149, 158, 26, 156, 255, 164, 23, + ], + [ + 156, 143, 11, 217, 149, 102, 38, 136, 195, 206, 130, 158, 51, 7, 238, 132, 145, 89, 41, + 105, 4, 223, 136, 187, 185, 14, 96, 203, 124, 211, 232, 27, + ], + [ + 243, 48, 57, 73, 175, 83, 255, 118, 109, 101, 251, 204, 97, 18, 136, 142, 244, 232, + 140, 69, 137, 12, 243, 55, 6, 193, 102, 18, 105, 85, 212, 32, + ], + [ + 106, 72, 21, 34, 123, 67, 121, 212, 206, 35, 224, 6, 234, 148, 88, 70, 102, 72, 78, + 176, 241, 69, 245, 42, 124, 102, 122, 228, 78, 213, 225, 15, + ], + [ + 138, 76, 147, 188, 209, 14, 97, 83, 234, 74, 217, 13, 10, 52, 222, 208, 215, 107, 249, + 45, 197, 115, 144, 10, 242, 244, 80, 14, 188, 122, 243, 46, + ], + [ + 135, 1, 59, 246, 113, 195, 253, 191, 137, 145, 155, 220, 69, 4, 208, 168, 251, 143, 83, + 125, 181, 243, 142, 133, 187, 154, 95, 35, 242, 96, 22, 46, + ], + ], + [ + [ + 212, 106, 147, 198, 73, 242, 158, 22, 55, 148, 138, 51, 81, 214, 51, 215, 54, 228, 134, + 212, 164, 23, 101, 39, 93, 111, 222, 219, 34, 238, 210, 63, + ], + [ + 44, 206, 102, 234, 64, 229, 63, 6, 217, 121, 61, 251, 91, 93, 218, 58, 191, 201, 249, + 245, 197, 66, 190, 84, 163, 131, 52, 51, 114, 184, 27, 15, + ], + [ + 205, 245, 64, 10, 119, 181, 177, 248, 219, 83, 73, 222, 242, 114, 221, 64, 189, 254, + 61, 12, 69, 85, 230, 143, 26, 57, 38, 144, 125, 98, 225, 38, + ], + [ + 5, 110, 248, 163, 158, 65, 46, 204, 22, 73, 246, 174, 157, 32, 211, 0, 111, 157, 247, + 206, 108, 48, 18, 203, 229, 181, 78, 228, 19, 89, 228, 59, + ], + [ + 0, 8, 189, 101, 170, 252, 8, 211, 161, 154, 10, 147, 125, 49, 249, 48, 10, 107, 162, + 132, 35, 169, 223, 151, 106, 194, 200, 251, 251, 243, 74, 43, + ], + [ + 57, 109, 106, 128, 160, 236, 72, 207, 149, 229, 48, 9, 124, 193, 39, 216, 210, 42, 9, + 11, 140, 49, 187, 136, 128, 240, 253, 205, 220, 185, 90, 48, + ], + [ + 250, 254, 164, 4, 48, 165, 213, 187, 138, 16, 165, 199, 100, 173, 32, 33, 61, 217, 156, + 149, 30, 82, 185, 0, 28, 228, 249, 137, 247, 85, 65, 58, + ], + [ + 2, 242, 14, 70, 214, 3, 108, 124, 224, 207, 16, 138, 171, 60, 1, 115, 217, 89, 60, 55, + 211, 209, 142, 93, 114, 250, 87, 5, 60, 224, 180, 60, + ], + ], + [ + [ + 144, 93, 21, 236, 191, 116, 211, 41, 163, 54, 250, 228, 3, 160, 70, 250, 130, 42, 231, + 138, 180, 120, 229, 225, 127, 183, 94, 185, 13, 125, 155, 50, + ], + [ + 174, 14, 254, 1, 121, 129, 94, 156, 14, 188, 103, 7, 151, 42, 251, 49, 236, 235, 33, 2, + 232, 148, 92, 233, 238, 1, 73, 88, 79, 141, 33, 28, + ], + [ + 20, 177, 228, 62, 142, 155, 143, 176, 245, 117, 129, 68, 2, 249, 175, 67, 80, 238, 156, + 251, 77, 24, 244, 122, 60, 46, 151, 109, 189, 248, 51, 11, + ], + [ + 215, 91, 221, 163, 212, 172, 203, 236, 2, 3, 122, 182, 171, 138, 216, 28, 45, 39, 185, + 150, 7, 23, 146, 119, 165, 97, 100, 61, 2, 10, 29, 59, + ], + [ + 161, 113, 88, 99, 211, 225, 154, 79, 233, 24, 96, 184, 88, 15, 238, 149, 42, 252, 65, + 124, 40, 195, 78, 249, 189, 126, 145, 137, 156, 145, 116, 14, + ], + [ + 178, 124, 248, 37, 22, 236, 110, 226, 71, 15, 113, 237, 84, 182, 95, 165, 164, 66, 48, + 122, 177, 201, 165, 216, 111, 161, 33, 61, 119, 252, 191, 35, + ], + [ + 197, 120, 10, 208, 220, 138, 250, 233, 8, 158, 226, 151, 22, 31, 183, 174, 135, 125, + 16, 153, 88, 248, 53, 63, 179, 179, 189, 168, 188, 51, 30, 47, + ], + [ + 112, 82, 66, 68, 97, 15, 114, 12, 48, 43, 167, 112, 15, 4, 2, 42, 184, 147, 23, 151, + 76, 93, 254, 182, 206, 61, 4, 232, 155, 28, 126, 9, + ], + ], + [ + [ + 145, 216, 180, 132, 60, 223, 148, 216, 34, 180, 242, 242, 176, 250, 130, 154, 231, 192, + 2, 180, 19, 252, 149, 36, 226, 139, 218, 152, 23, 71, 186, 60, + ], + [ + 145, 23, 19, 74, 196, 74, 253, 57, 75, 126, 188, 188, 85, 221, 184, 189, 145, 217, 9, + 29, 92, 142, 118, 170, 123, 227, 2, 13, 45, 133, 10, 34, + ], + [ + 92, 162, 150, 39, 198, 231, 165, 20, 239, 143, 146, 25, 70, 213, 227, 42, 36, 193, 233, + 136, 227, 72, 41, 211, 119, 192, 56, 46, 178, 115, 249, 24, + ], + [ + 184, 106, 63, 59, 43, 244, 197, 133, 94, 98, 229, 89, 233, 225, 58, 207, 125, 248, 175, + 61, 6, 114, 65, 195, 188, 135, 168, 132, 163, 118, 73, 40, + ], + [ + 66, 44, 95, 80, 162, 127, 4, 166, 224, 150, 7, 215, 213, 240, 116, 133, 187, 123, 218, + 65, 44, 202, 58, 102, 60, 67, 131, 28, 33, 251, 226, 35, + ], + [ + 89, 165, 126, 219, 26, 99, 11, 186, 78, 27, 5, 40, 149, 62, 109, 179, 48, 182, 87, 56, + 220, 63, 161, 160, 189, 95, 152, 215, 116, 208, 97, 29, + ], + [ + 133, 68, 102, 106, 161, 231, 146, 41, 123, 189, 139, 12, 188, 95, 100, 65, 47, 225, + 146, 16, 211, 141, 113, 140, 204, 214, 183, 85, 130, 129, 161, 29, + ], + [ + 95, 28, 16, 201, 220, 92, 90, 223, 184, 54, 43, 27, 180, 222, 76, 220, 109, 213, 67, + 82, 180, 223, 14, 245, 218, 208, 56, 221, 129, 236, 198, 0, + ], + ], + [ + [ + 153, 10, 78, 169, 254, 76, 133, 187, 164, 212, 220, 235, 99, 248, 60, 54, 222, 32, 177, + 2, 73, 110, 14, 138, 64, 89, 32, 200, 132, 63, 10, 50, + ], + [ + 179, 107, 129, 58, 191, 91, 211, 38, 108, 98, 114, 39, 138, 2, 84, 136, 107, 195, 35, + 63, 195, 194, 129, 119, 78, 121, 24, 254, 124, 168, 253, 7, + ], + [ + 201, 134, 252, 140, 79, 1, 46, 243, 125, 150, 69, 149, 201, 31, 145, 207, 118, 58, 214, + 92, 165, 7, 121, 55, 206, 133, 90, 169, 62, 238, 88, 7, + ], + [ + 124, 231, 176, 78, 128, 30, 182, 95, 20, 20, 221, 90, 225, 166, 82, 43, 34, 235, 98, + 104, 118, 65, 207, 222, 48, 245, 244, 162, 126, 27, 250, 40, + ], + [ + 84, 234, 22, 3, 167, 3, 19, 186, 163, 10, 6, 176, 16, 2, 161, 151, 132, 147, 110, 76, + 120, 111, 18, 171, 200, 18, 253, 159, 59, 248, 0, 19, + ], + [ + 254, 251, 230, 244, 114, 117, 80, 226, 27, 33, 7, 106, 164, 188, 7, 234, 73, 93, 111, + 95, 173, 159, 172, 176, 78, 88, 34, 64, 114, 144, 186, 63, + ], + [ + 229, 103, 0, 114, 148, 250, 213, 136, 168, 246, 230, 255, 196, 152, 208, 58, 26, 126, + 104, 80, 173, 54, 87, 171, 231, 128, 129, 86, 200, 28, 6, 50, + ], + [ + 71, 246, 84, 162, 124, 177, 159, 98, 133, 205, 218, 133, 162, 133, 203, 151, 169, 145, + 33, 18, 215, 185, 35, 218, 20, 37, 27, 12, 221, 78, 110, 28, + ], + ], + [ + [ + 7, 43, 88, 155, 62, 53, 76, 25, 49, 176, 58, 33, 114, 15, 198, 248, 238, 191, 77, 235, + 180, 168, 67, 37, 211, 154, 76, 91, 80, 200, 190, 14, + ], + [ + 187, 200, 252, 223, 36, 168, 140, 211, 167, 54, 64, 182, 227, 140, 67, 105, 66, 243, + 132, 46, 25, 121, 138, 58, 231, 59, 241, 145, 174, 45, 158, 35, + ], + [ + 89, 201, 179, 68, 45, 205, 62, 252, 44, 171, 52, 118, 98, 252, 186, 237, 78, 237, 215, + 210, 27, 28, 21, 138, 153, 72, 20, 129, 215, 14, 65, 13, + ], + [ + 207, 114, 96, 244, 251, 228, 50, 157, 218, 5, 140, 218, 244, 124, 241, 35, 105, 25, 78, + 38, 32, 226, 11, 67, 158, 60, 40, 0, 90, 112, 228, 59, + ], + [ + 44, 23, 234, 166, 86, 53, 31, 5, 209, 239, 37, 13, 176, 86, 138, 220, 117, 172, 6, 218, + 199, 181, 172, 183, 114, 122, 70, 147, 235, 69, 171, 58, + ], + [ + 251, 128, 29, 190, 110, 201, 163, 80, 112, 7, 226, 118, 202, 186, 171, 62, 201, 161, + 102, 127, 140, 103, 55, 8, 163, 137, 161, 2, 98, 190, 60, 53, + ], + [ + 3, 77, 209, 74, 105, 88, 148, 168, 132, 184, 149, 244, 245, 31, 174, 162, 175, 102, 37, + 175, 138, 139, 97, 68, 68, 228, 100, 89, 250, 92, 100, 19, + ], + [ + 176, 186, 169, 162, 147, 182, 155, 40, 7, 23, 44, 21, 227, 13, 45, 120, 242, 1, 27, + 167, 111, 224, 74, 125, 25, 20, 161, 138, 25, 183, 192, 2, + ], + ], + [ + [ + 151, 231, 53, 20, 217, 87, 127, 197, 27, 224, 167, 107, 88, 0, 77, 97, 49, 29, 3, 37, + 59, 191, 47, 129, 60, 176, 200, 144, 3, 31, 120, 6, + ], + [ + 50, 17, 211, 29, 50, 226, 181, 186, 111, 15, 189, 130, 136, 8, 77, 8, 126, 228, 213, 4, + 51, 193, 84, 83, 191, 254, 71, 223, 190, 13, 92, 14, + ], + [ + 235, 208, 23, 65, 116, 24, 230, 63, 109, 34, 215, 81, 39, 184, 79, 123, 190, 212, 36, + 43, 97, 68, 108, 184, 171, 6, 18, 67, 172, 104, 210, 45, + ], + [ + 43, 61, 160, 187, 51, 200, 189, 10, 55, 89, 135, 156, 56, 115, 195, 45, 133, 30, 229, + 182, 30, 93, 188, 158, 86, 180, 239, 225, 39, 203, 9, 12, + ], + [ + 112, 93, 244, 17, 221, 137, 126, 198, 97, 242, 109, 37, 18, 53, 243, 111, 32, 52, 168, + 88, 8, 159, 133, 250, 72, 148, 15, 165, 34, 206, 4, 54, + ], + [ + 179, 38, 41, 29, 122, 240, 170, 53, 168, 87, 73, 225, 55, 212, 84, 215, 69, 250, 197, + 81, 2, 46, 21, 71, 104, 92, 233, 125, 159, 174, 73, 28, + ], + [ + 215, 147, 127, 39, 190, 39, 215, 114, 1, 88, 192, 44, 188, 41, 189, 122, 215, 120, 26, + 136, 42, 161, 32, 238, 123, 125, 99, 139, 123, 160, 126, 35, + ], + [ + 139, 58, 166, 224, 210, 76, 220, 214, 58, 146, 172, 75, 147, 130, 101, 34, 87, 114, + 134, 231, 57, 106, 228, 24, 95, 150, 248, 196, 166, 157, 47, 49, + ], + ], + [ + [ + 154, 44, 154, 17, 14, 119, 215, 198, 46, 175, 171, 157, 193, 22, 57, 134, 26, 142, 53, + 232, 209, 83, 26, 15, 60, 5, 155, 141, 102, 218, 186, 5, + ], + [ + 169, 131, 113, 37, 98, 173, 190, 221, 20, 16, 88, 92, 67, 160, 25, 246, 246, 66, 31, + 127, 43, 253, 88, 247, 40, 171, 221, 39, 50, 166, 101, 49, + ], + [ + 6, 232, 55, 227, 94, 249, 213, 167, 115, 81, 188, 73, 113, 54, 198, 181, 173, 30, 217, + 186, 78, 230, 90, 133, 14, 129, 56, 51, 127, 107, 163, 51, + ], + [ + 120, 238, 215, 74, 28, 49, 35, 46, 98, 63, 95, 51, 241, 195, 25, 78, 248, 132, 5, 211, + 1, 112, 122, 98, 21, 113, 125, 61, 64, 232, 110, 55, + ], + [ + 33, 74, 172, 61, 251, 174, 136, 52, 115, 195, 205, 228, 151, 213, 16, 9, 226, 190, 182, + 100, 137, 243, 46, 178, 149, 220, 214, 116, 250, 124, 18, 35, + ], + [ + 23, 44, 183, 43, 181, 227, 174, 141, 120, 243, 138, 225, 133, 125, 53, 145, 97, 115, + 48, 126, 152, 117, 171, 71, 162, 165, 176, 51, 32, 27, 188, 5, + ], + [ + 166, 99, 229, 130, 156, 150, 80, 56, 81, 46, 155, 102, 207, 204, 193, 88, 50, 104, 126, + 37, 181, 161, 160, 7, 9, 133, 241, 123, 104, 67, 180, 56, + ], + [ + 5, 115, 17, 153, 100, 192, 255, 228, 78, 171, 112, 78, 174, 8, 248, 132, 165, 207, 86, + 60, 87, 149, 165, 37, 147, 158, 161, 120, 86, 60, 84, 63, + ], + ], + [ + [ + 140, 37, 93, 56, 153, 182, 130, 1, 95, 53, 224, 183, 222, 82, 182, 84, 241, 179, 104, + 7, 205, 30, 188, 106, 227, 160, 151, 228, 251, 87, 188, 18, + ], + [ + 69, 75, 168, 95, 88, 120, 61, 139, 158, 178, 85, 80, 96, 116, 164, 31, 85, 37, 223, 70, + 123, 211, 247, 151, 37, 26, 163, 44, 169, 26, 236, 52, + ], + [ + 253, 240, 81, 251, 222, 234, 85, 234, 243, 202, 195, 107, 86, 77, 4, 133, 3, 164, 49, + 116, 28, 179, 60, 189, 129, 176, 72, 62, 103, 84, 130, 30, + ], + [ + 130, 7, 87, 230, 130, 156, 229, 136, 96, 182, 48, 237, 135, 249, 123, 77, 66, 215, 128, + 140, 39, 78, 101, 221, 17, 128, 157, 194, 242, 184, 120, 39, + ], + [ + 241, 198, 194, 238, 100, 111, 211, 220, 28, 45, 77, 201, 225, 153, 45, 12, 63, 142, + 104, 206, 74, 0, 59, 81, 227, 124, 44, 156, 149, 228, 177, 22, + ], + [ + 33, 24, 148, 45, 69, 92, 133, 68, 104, 193, 9, 44, 233, 181, 230, 248, 164, 241, 31, 3, + 96, 4, 13, 178, 22, 115, 206, 184, 78, 66, 211, 24, + ], + [ + 147, 117, 96, 107, 211, 62, 174, 184, 36, 61, 56, 45, 148, 144, 27, 195, 147, 103, 188, + 0, 153, 134, 134, 5, 144, 137, 176, 132, 146, 192, 72, 28, + ], + [ + 41, 43, 175, 189, 159, 31, 156, 63, 221, 19, 178, 175, 103, 67, 43, 177, 46, 76, 65, + 225, 94, 126, 57, 99, 211, 22, 241, 242, 69, 188, 253, 53, + ], + ], + [ + [ + 16, 84, 117, 4, 29, 151, 25, 85, 212, 201, 246, 140, 236, 125, 51, 153, 82, 180, 2, + 136, 97, 13, 69, 179, 52, 2, 34, 99, 205, 11, 178, 37, + ], + [ + 50, 5, 86, 25, 191, 2, 103, 33, 91, 250, 57, 64, 191, 115, 148, 97, 73, 135, 186, 105, + 51, 8, 93, 163, 185, 149, 97, 252, 14, 23, 223, 33, + ], + [ + 204, 37, 164, 107, 54, 185, 240, 186, 162, 231, 206, 164, 103, 105, 235, 250, 204, 56, + 83, 83, 244, 139, 64, 169, 89, 86, 141, 122, 209, 83, 180, 2, + ], + [ + 214, 15, 207, 13, 33, 170, 216, 82, 19, 202, 172, 127, 163, 185, 70, 191, 50, 74, 81, + 120, 137, 250, 94, 106, 89, 21, 176, 84, 116, 5, 70, 45, + ], + [ + 228, 181, 219, 48, 206, 214, 218, 233, 172, 15, 42, 210, 93, 26, 106, 40, 46, 38, 31, + 173, 37, 220, 70, 249, 110, 228, 34, 161, 212, 145, 74, 0, + ], + [ + 116, 63, 120, 41, 190, 77, 110, 48, 6, 95, 248, 65, 28, 254, 120, 111, 18, 232, 153, + 161, 194, 81, 56, 69, 191, 12, 8, 76, 239, 88, 105, 60, + ], + [ + 159, 17, 123, 163, 202, 118, 227, 194, 63, 51, 216, 161, 216, 223, 247, 250, 58, 64, + 100, 242, 254, 203, 170, 226, 19, 185, 208, 69, 18, 10, 43, 52, + ], + [ + 248, 196, 92, 216, 67, 195, 218, 121, 90, 231, 175, 194, 85, 169, 109, 214, 35, 240, + 86, 175, 175, 119, 7, 27, 43, 147, 31, 23, 64, 47, 182, 29, + ], + ], + [ + [ + 168, 89, 212, 27, 44, 101, 233, 29, 222, 148, 126, 207, 237, 33, 171, 118, 157, 87, 82, + 122, 63, 158, 78, 26, 156, 224, 204, 238, 11, 236, 75, 39, + ], + [ + 210, 162, 30, 236, 158, 198, 77, 145, 133, 121, 228, 222, 39, 19, 50, 157, 87, 102, + 214, 144, 85, 84, 147, 165, 91, 172, 106, 113, 236, 192, 86, 9, + ], + [ + 98, 136, 193, 144, 162, 192, 99, 58, 224, 77, 23, 246, 58, 162, 203, 65, 143, 113, 124, + 58, 65, 216, 85, 213, 87, 31, 156, 110, 167, 37, 247, 16, + ], + [ + 114, 57, 34, 60, 250, 39, 223, 43, 226, 103, 214, 214, 185, 36, 210, 248, 181, 101, 81, + 91, 172, 174, 198, 64, 69, 215, 182, 122, 121, 48, 177, 53, + ], + [ + 54, 247, 9, 251, 221, 228, 245, 195, 31, 168, 79, 197, 35, 1, 155, 159, 197, 197, 79, + 233, 113, 217, 39, 135, 103, 121, 171, 104, 219, 209, 151, 30, + ], + [ + 67, 76, 134, 87, 87, 24, 179, 36, 45, 144, 205, 160, 105, 47, 150, 23, 0, 205, 234, 75, + 10, 133, 108, 14, 1, 91, 13, 238, 142, 215, 243, 58, + ], + [ + 111, 211, 5, 125, 150, 54, 126, 4, 9, 226, 217, 30, 137, 148, 156, 22, 66, 243, 179, + 181, 153, 228, 127, 248, 2, 80, 29, 233, 179, 230, 245, 9, + ], + [ + 196, 202, 65, 82, 146, 164, 175, 9, 27, 44, 243, 201, 113, 37, 164, 51, 220, 51, 110, + 110, 153, 72, 88, 87, 128, 158, 118, 53, 81, 212, 138, 1, + ], + ], + [ + [ + 240, 27, 128, 83, 62, 106, 95, 39, 98, 33, 131, 9, 133, 210, 62, 78, 76, 240, 235, 156, + 80, 124, 193, 74, 142, 209, 160, 60, 151, 106, 192, 17, + ], + [ + 10, 234, 151, 181, 184, 48, 26, 195, 34, 48, 69, 70, 88, 128, 36, 171, 37, 190, 63, + 230, 131, 119, 96, 168, 221, 7, 3, 182, 61, 119, 146, 45, + ], + [ + 1, 177, 14, 77, 209, 225, 50, 37, 44, 178, 155, 185, 255, 53, 136, 39, 217, 175, 86, + 46, 129, 51, 73, 213, 96, 70, 110, 128, 6, 209, 107, 40, + ], + [ + 1, 41, 114, 5, 32, 182, 148, 153, 210, 242, 118, 122, 146, 225, 50, 237, 138, 117, 64, + 250, 6, 133, 64, 151, 239, 232, 112, 166, 222, 103, 192, 62, + ], + [ + 40, 11, 170, 150, 94, 39, 123, 218, 115, 43, 29, 105, 156, 208, 30, 91, 242, 19, 160, + 156, 212, 127, 176, 42, 33, 71, 160, 76, 130, 160, 20, 36, + ], + [ + 207, 175, 212, 51, 120, 120, 218, 173, 25, 249, 187, 76, 135, 243, 179, 80, 223, 23, + 120, 149, 107, 52, 156, 41, 255, 100, 193, 238, 248, 149, 153, 44, + ], + [ + 122, 35, 185, 54, 102, 87, 34, 91, 232, 2, 170, 41, 84, 191, 167, 96, 141, 242, 39, + 237, 220, 115, 229, 243, 211, 216, 17, 222, 146, 109, 149, 48, + ], + [ + 135, 20, 109, 135, 214, 156, 229, 98, 173, 213, 226, 44, 144, 56, 252, 137, 190, 235, + 120, 163, 206, 253, 181, 103, 130, 174, 201, 205, 4, 53, 152, 46, + ], + ], + [ + [ + 10, 142, 209, 19, 89, 150, 192, 43, 239, 151, 170, 251, 128, 226, 243, 190, 235, 26, + 66, 71, 55, 221, 236, 98, 149, 171, 88, 172, 230, 5, 233, 2, + ], + [ + 156, 168, 79, 29, 44, 17, 130, 180, 80, 222, 115, 221, 227, 217, 195, 91, 218, 216, + 133, 2, 171, 15, 111, 82, 76, 171, 109, 215, 44, 206, 95, 60, + ], + [ + 82, 50, 79, 123, 243, 18, 97, 3, 135, 72, 145, 152, 246, 155, 56, 167, 69, 232, 236, + 222, 17, 80, 228, 123, 110, 71, 187, 132, 180, 157, 94, 43, + ], + [ + 133, 56, 222, 62, 206, 68, 120, 247, 78, 228, 79, 25, 173, 18, 206, 23, 199, 33, 94, + 146, 109, 86, 181, 57, 106, 232, 166, 187, 47, 45, 190, 31, + ], + [ + 255, 251, 31, 52, 33, 199, 123, 217, 174, 217, 232, 117, 186, 143, 26, 30, 39, 117, + 165, 210, 103, 18, 34, 222, 59, 180, 171, 73, 64, 118, 74, 49, + ], + [ + 68, 91, 156, 155, 35, 223, 48, 21, 231, 13, 153, 12, 213, 186, 1, 241, 5, 0, 203, 212, + 90, 49, 200, 64, 219, 252, 147, 46, 215, 151, 236, 7, + ], + [ + 247, 226, 71, 82, 215, 139, 160, 131, 30, 130, 152, 222, 210, 5, 133, 197, 241, 86, 45, + 116, 53, 190, 25, 140, 158, 87, 213, 121, 12, 172, 199, 24, + ], + [ + 229, 141, 95, 11, 163, 54, 149, 119, 4, 118, 188, 195, 249, 198, 228, 223, 95, 167, + 233, 188, 125, 155, 186, 86, 58, 4, 89, 10, 107, 36, 172, 16, + ], + ], + [ + [ + 253, 165, 27, 216, 77, 164, 49, 188, 140, 85, 119, 2, 143, 21, 241, 7, 224, 99, 213, + 140, 91, 71, 51, 39, 118, 152, 202, 160, 251, 21, 198, 32, + ], + [ + 0, 210, 144, 78, 21, 82, 237, 163, 173, 160, 244, 242, 249, 95, 121, 211, 200, 10, 2, + 85, 106, 3, 176, 46, 36, 207, 155, 196, 110, 124, 128, 53, + ], + [ + 85, 250, 155, 123, 178, 197, 121, 15, 218, 152, 126, 42, 137, 33, 202, 101, 178, 22, + 103, 192, 64, 139, 5, 127, 67, 94, 221, 100, 185, 73, 108, 10, + ], + [ + 15, 53, 88, 70, 174, 250, 13, 25, 24, 206, 211, 240, 226, 219, 163, 151, 54, 247, 178, + 117, 151, 211, 152, 203, 237, 144, 163, 41, 173, 69, 195, 59, + ], + [ + 242, 209, 249, 152, 137, 32, 207, 20, 121, 123, 210, 175, 104, 77, 55, 143, 115, 224, + 47, 4, 147, 97, 154, 50, 129, 125, 15, 23, 186, 161, 25, 29, + ], + [ + 210, 47, 108, 11, 41, 196, 180, 206, 209, 19, 36, 27, 105, 0, 242, 184, 75, 46, 130, + 150, 119, 203, 105, 86, 64, 122, 246, 157, 103, 45, 7, 62, + ], + [ + 120, 226, 121, 154, 242, 62, 202, 9, 87, 218, 91, 88, 3, 245, 76, 76, 40, 26, 68, 80, + 180, 66, 58, 139, 88, 100, 199, 100, 36, 216, 191, 58, + ], + [ + 160, 142, 135, 30, 128, 186, 93, 94, 200, 52, 246, 68, 226, 51, 140, 36, 58, 238, 64, + 48, 165, 135, 28, 66, 183, 186, 4, 230, 104, 111, 70, 17, + ], + ], + [ + [ + 169, 163, 197, 216, 116, 65, 109, 237, 51, 192, 24, 202, 186, 54, 64, 16, 135, 35, 119, + 123, 30, 27, 149, 113, 152, 27, 213, 235, 74, 228, 25, 50, + ], + [ + 94, 146, 241, 96, 243, 211, 176, 157, 5, 20, 143, 58, 78, 196, 233, 156, 201, 33, 237, + 201, 216, 30, 138, 99, 241, 75, 94, 195, 201, 115, 90, 57, + ], + [ + 223, 25, 95, 223, 236, 31, 251, 252, 110, 101, 210, 88, 132, 5, 20, 60, 19, 196, 188, + 207, 184, 129, 218, 204, 171, 58, 88, 159, 254, 52, 84, 16, + ], + [ + 167, 254, 178, 116, 5, 197, 144, 192, 29, 226, 111, 206, 183, 152, 229, 102, 244, 61, + 231, 113, 249, 238, 28, 117, 83, 196, 204, 98, 168, 252, 8, 4, + ], + [ + 116, 228, 134, 78, 53, 106, 91, 46, 222, 231, 2, 212, 189, 226, 173, 168, 212, 157, + 120, 28, 166, 17, 232, 145, 36, 121, 221, 35, 72, 66, 196, 34, + ], + [ + 20, 133, 122, 73, 166, 68, 157, 123, 246, 7, 77, 139, 203, 121, 158, 76, 116, 100, 127, + 230, 51, 212, 112, 138, 193, 207, 153, 250, 158, 18, 75, 51, + ], + [ + 165, 172, 206, 156, 241, 81, 188, 251, 147, 161, 222, 196, 133, 69, 112, 59, 135, 119, + 47, 33, 85, 179, 164, 232, 120, 182, 104, 5, 196, 161, 182, 56, + ], + [ + 167, 142, 23, 10, 197, 190, 129, 124, 191, 14, 167, 7, 54, 72, 167, 134, 252, 194, 121, + 224, 7, 189, 197, 147, 198, 62, 216, 75, 238, 55, 124, 8, + ], + ], + [ + [ + 169, 7, 115, 210, 156, 19, 28, 45, 159, 241, 95, 115, 25, 97, 41, 82, 205, 96, 92, 201, + 180, 27, 188, 101, 78, 34, 164, 62, 39, 77, 225, 44, + ], + [ + 96, 87, 81, 178, 227, 39, 109, 76, 110, 243, 25, 223, 80, 132, 214, 188, 215, 193, 106, + 192, 165, 53, 20, 194, 37, 17, 243, 21, 41, 22, 18, 54, + ], + [ + 228, 207, 168, 250, 67, 67, 250, 225, 163, 246, 3, 206, 243, 52, 113, 22, 21, 184, 62, + 177, 122, 200, 204, 165, 238, 201, 224, 62, 72, 33, 81, 36, + ], + [ + 62, 26, 98, 19, 20, 210, 218, 57, 126, 87, 89, 162, 47, 111, 194, 12, 214, 134, 160, + 32, 229, 220, 107, 171, 18, 207, 106, 82, 189, 204, 141, 1, + ], + [ + 17, 26, 209, 134, 88, 233, 110, 84, 43, 104, 90, 54, 64, 165, 108, 53, 251, 129, 213, + 254, 251, 101, 145, 40, 7, 231, 242, 249, 72, 214, 39, 42, + ], + [ + 161, 17, 192, 70, 218, 119, 88, 156, 78, 162, 251, 1, 234, 203, 81, 56, 126, 194, 126, + 42, 165, 66, 66, 219, 157, 74, 203, 143, 18, 47, 51, 52, + ], + [ + 43, 157, 147, 232, 6, 52, 131, 52, 72, 123, 249, 157, 60, 89, 230, 143, 115, 50, 38, + 134, 111, 206, 30, 175, 65, 36, 76, 157, 164, 65, 201, 38, + ], + [ + 206, 22, 236, 47, 122, 166, 215, 229, 161, 250, 56, 20, 180, 86, 60, 90, 251, 130, 72, + 167, 145, 105, 142, 204, 131, 93, 69, 55, 146, 165, 221, 40, + ], + ], + [ + [ + 249, 242, 21, 59, 135, 24, 245, 119, 127, 198, 118, 52, 239, 218, 112, 56, 29, 37, 147, + 112, 46, 128, 19, 82, 194, 81, 245, 247, 54, 65, 29, 14, + ], + [ + 36, 83, 140, 239, 206, 62, 115, 139, 236, 215, 196, 82, 95, 248, 71, 245, 58, 78, 174, + 33, 182, 29, 67, 2, 49, 46, 188, 235, 242, 85, 224, 3, + ], + [ + 62, 123, 204, 165, 50, 119, 248, 120, 89, 102, 76, 10, 251, 221, 182, 243, 92, 147, 22, + 111, 30, 132, 4, 19, 86, 16, 201, 53, 98, 18, 43, 48, + ], + [ + 51, 40, 231, 19, 115, 64, 149, 172, 249, 156, 238, 143, 245, 188, 130, 96, 154, 29, + 135, 109, 46, 254, 185, 130, 61, 28, 67, 8, 172, 115, 79, 58, + ], + [ + 54, 123, 99, 202, 255, 50, 82, 189, 246, 133, 142, 66, 22, 38, 76, 253, 238, 34, 88, + 116, 77, 242, 84, 108, 243, 231, 178, 151, 103, 255, 89, 9, + ], + [ + 80, 138, 121, 15, 93, 11, 24, 112, 146, 63, 198, 155, 12, 127, 20, 15, 94, 69, 39, 221, + 107, 251, 182, 184, 16, 84, 90, 69, 159, 213, 39, 54, + ], + [ + 139, 70, 202, 84, 209, 56, 254, 84, 216, 195, 84, 158, 124, 98, 163, 218, 94, 11, 163, + 9, 42, 83, 159, 244, 179, 75, 190, 59, 46, 184, 30, 41, + ], + [ + 104, 75, 123, 111, 5, 75, 204, 36, 182, 49, 51, 126, 209, 201, 143, 115, 154, 53, 116, + 250, 77, 65, 69, 226, 128, 142, 205, 101, 163, 217, 15, 42, + ], + ], + [ + [ + 12, 0, 40, 89, 200, 146, 231, 32, 7, 210, 86, 77, 206, 245, 234, 19, 172, 170, 58, 108, + 36, 183, 180, 153, 155, 161, 74, 78, 18, 213, 106, 45, + ], + [ + 54, 121, 227, 245, 13, 91, 172, 234, 241, 135, 83, 92, 132, 87, 223, 225, 170, 82, 147, + 106, 56, 152, 196, 15, 110, 16, 220, 210, 167, 132, 147, 46, + ], + [ + 191, 194, 84, 235, 59, 153, 63, 90, 249, 253, 195, 202, 19, 162, 43, 210, 241, 180, 81, + 251, 7, 129, 85, 120, 223, 64, 187, 56, 7, 190, 168, 34, + ], + [ + 134, 60, 171, 29, 83, 57, 134, 240, 159, 75, 121, 97, 53, 145, 10, 97, 60, 41, 64, 4, + 212, 180, 179, 52, 1, 58, 78, 23, 120, 40, 35, 54, + ], + [ + 184, 110, 240, 2, 73, 205, 194, 246, 210, 166, 203, 213, 175, 225, 47, 211, 142, 183, + 222, 180, 253, 7, 251, 237, 181, 54, 129, 165, 27, 43, 117, 39, + ], + [ + 192, 117, 239, 105, 11, 250, 37, 116, 110, 41, 150, 214, 18, 127, 6, 3, 95, 10, 113, + 251, 138, 117, 88, 98, 219, 30, 92, 111, 47, 121, 62, 49, + ], + [ + 106, 41, 188, 0, 79, 170, 110, 58, 210, 56, 221, 140, 97, 225, 151, 132, 115, 192, 82, + 181, 19, 163, 13, 17, 236, 205, 15, 30, 3, 211, 249, 6, + ], + [ + 87, 144, 20, 67, 36, 215, 225, 190, 145, 89, 16, 213, 18, 121, 231, 161, 91, 162, 36, + 252, 20, 120, 174, 234, 203, 86, 225, 106, 52, 13, 38, 45, + ], + ], + [ + [ + 238, 133, 103, 91, 99, 161, 201, 157, 122, 248, 132, 37, 241, 150, 151, 26, 199, 151, + 164, 97, 34, 160, 197, 202, 52, 162, 229, 43, 237, 227, 136, 45, + ], + [ + 162, 65, 50, 209, 33, 252, 250, 222, 24, 113, 30, 11, 36, 85, 185, 206, 100, 108, 219, + 183, 221, 16, 178, 179, 163, 18, 187, 82, 67, 198, 198, 57, + ], + [ + 69, 233, 89, 202, 122, 215, 104, 132, 206, 156, 152, 147, 197, 210, 27, 231, 183, 186, + 92, 17, 120, 187, 143, 163, 225, 81, 21, 72, 93, 7, 196, 27, + ], + [ + 38, 237, 19, 29, 117, 255, 144, 122, 171, 181, 247, 94, 88, 101, 213, 241, 186, 225, + 134, 4, 80, 120, 94, 234, 102, 183, 99, 164, 131, 187, 132, 55, + ], + [ + 155, 156, 64, 199, 160, 171, 202, 191, 152, 58, 169, 151, 175, 213, 147, 132, 46, 164, + 196, 7, 196, 183, 186, 71, 114, 71, 184, 126, 44, 47, 24, 62, + ], + [ + 47, 44, 188, 236, 111, 225, 46, 128, 76, 235, 139, 140, 205, 235, 29, 129, 198, 199, + 202, 172, 93, 81, 72, 26, 142, 31, 99, 48, 152, 248, 28, 40, + ], + [ + 36, 151, 70, 226, 44, 150, 152, 239, 239, 233, 50, 179, 161, 120, 65, 135, 195, 27, + 135, 103, 192, 203, 73, 94, 21, 30, 227, 41, 40, 148, 225, 0, + ], + [ + 155, 17, 42, 85, 170, 76, 233, 176, 16, 190, 197, 57, 30, 42, 33, 223, 101, 22, 18, + 206, 171, 83, 208, 216, 82, 178, 213, 81, 74, 255, 95, 38, + ], + ], + [ + [ + 54, 8, 224, 104, 248, 77, 99, 60, 13, 208, 245, 117, 189, 100, 102, 86, 46, 130, 26, + 21, 173, 106, 18, 60, 169, 20, 254, 83, 119, 0, 95, 5, + ], + [ + 230, 178, 120, 49, 250, 42, 251, 98, 39, 3, 136, 65, 253, 165, 204, 239, 163, 148, 51, + 169, 122, 182, 72, 197, 222, 128, 147, 72, 237, 156, 152, 8, + ], + [ + 19, 86, 176, 28, 57, 166, 19, 232, 42, 211, 58, 20, 150, 66, 80, 17, 109, 238, 228, 68, + 184, 14, 15, 150, 165, 6, 102, 79, 156, 6, 3, 1, + ], + [ + 253, 225, 19, 134, 49, 103, 63, 151, 7, 151, 27, 174, 176, 155, 244, 254, 80, 10, 77, + 13, 125, 6, 0, 159, 174, 133, 128, 162, 163, 54, 32, 7, + ], + [ + 20, 122, 210, 59, 32, 118, 92, 7, 227, 125, 245, 98, 228, 150, 121, 191, 233, 127, 217, + 33, 245, 24, 145, 160, 149, 249, 30, 132, 54, 226, 121, 9, + ], + [ + 33, 175, 62, 170, 114, 81, 193, 177, 6, 202, 21, 242, 244, 183, 86, 196, 52, 220, 193, + 134, 119, 61, 215, 155, 24, 133, 127, 204, 95, 47, 77, 59, + ], + [ + 189, 6, 50, 74, 18, 109, 39, 182, 206, 232, 250, 242, 210, 131, 138, 112, 119, 166, 76, + 26, 90, 52, 105, 200, 244, 199, 32, 40, 98, 228, 167, 37, + ], + [ + 56, 113, 154, 35, 162, 76, 47, 212, 228, 242, 71, 241, 126, 255, 187, 178, 64, 126, 81, + 245, 80, 182, 200, 85, 172, 97, 35, 77, 184, 251, 84, 25, + ], + ], + [ + [ + 12, 230, 104, 29, 206, 194, 74, 78, 85, 208, 57, 110, 166, 4, 210, 246, 253, 77, 87, + 139, 137, 151, 107, 151, 193, 139, 48, 7, 131, 243, 165, 56, + ], + [ + 16, 106, 200, 3, 167, 12, 130, 120, 148, 233, 201, 119, 44, 221, 151, 90, 228, 85, 241, + 0, 215, 129, 245, 242, 36, 55, 115, 198, 144, 158, 69, 18, + ], + [ + 28, 44, 187, 226, 84, 6, 135, 126, 182, 209, 160, 144, 14, 180, 21, 44, 8, 15, 244, 88, + 212, 42, 24, 105, 125, 35, 172, 66, 47, 113, 133, 33, + ], + [ + 9, 189, 144, 175, 191, 136, 166, 240, 19, 237, 73, 19, 206, 196, 9, 199, 5, 25, 202, + 165, 13, 171, 240, 169, 192, 122, 100, 129, 176, 192, 234, 55, + ], + [ + 192, 225, 147, 209, 101, 193, 163, 144, 93, 123, 172, 39, 143, 71, 136, 63, 99, 52, + 106, 194, 237, 87, 89, 235, 146, 135, 72, 96, 74, 2, 53, 37, + ], + [ + 0, 89, 253, 106, 180, 242, 187, 141, 158, 209, 229, 100, 132, 116, 24, 10, 23, 103, + 207, 141, 111, 230, 149, 18, 30, 13, 97, 180, 135, 73, 5, 0, + ], + [ + 81, 161, 223, 168, 32, 133, 55, 175, 229, 60, 247, 13, 214, 85, 147, 136, 166, 182, + 207, 165, 70, 5, 246, 18, 121, 61, 124, 98, 243, 138, 30, 51, + ], + [ + 57, 191, 83, 37, 102, 159, 132, 165, 105, 85, 174, 131, 158, 51, 155, 73, 53, 161, 34, + 45, 154, 71, 201, 15, 41, 223, 46, 21, 189, 231, 40, 19, + ], + ], + [ + [ + 138, 114, 183, 238, 119, 69, 77, 194, 154, 214, 49, 36, 14, 183, 188, 15, 31, 242, 222, + 54, 184, 157, 231, 0, 48, 45, 248, 77, 28, 231, 154, 36, + ], + [ + 179, 41, 18, 93, 149, 95, 227, 27, 14, 200, 100, 184, 90, 178, 30, 127, 59, 195, 253, + 44, 236, 163, 110, 9, 21, 169, 129, 4, 69, 121, 147, 30, + ], + [ + 105, 82, 83, 247, 98, 229, 63, 229, 249, 250, 153, 84, 251, 79, 191, 217, 11, 54, 72, + 161, 77, 13, 8, 84, 146, 179, 195, 130, 120, 104, 253, 33, + ], + [ + 79, 107, 10, 22, 0, 150, 204, 208, 40, 254, 8, 117, 61, 94, 43, 129, 204, 43, 103, 68, + 128, 53, 5, 45, 217, 46, 73, 163, 205, 197, 162, 32, + ], + [ + 32, 137, 210, 135, 2, 141, 240, 12, 66, 216, 159, 1, 91, 255, 208, 69, 249, 108, 78, + 199, 222, 246, 75, 30, 19, 10, 100, 23, 19, 55, 158, 38, + ], + [ + 225, 215, 161, 47, 217, 150, 60, 35, 109, 2, 159, 109, 167, 241, 193, 228, 243, 128, + 84, 155, 136, 95, 205, 141, 23, 244, 34, 211, 191, 43, 165, 56, + ], + [ + 229, 240, 112, 132, 192, 72, 52, 216, 10, 111, 211, 17, 255, 129, 216, 0, 160, 71, 253, + 197, 23, 15, 88, 86, 119, 22, 7, 215, 96, 165, 238, 51, + ], + [ + 41, 241, 99, 40, 68, 20, 115, 88, 65, 43, 219, 96, 252, 18, 192, 3, 209, 196, 244, 173, + 167, 101, 107, 131, 145, 136, 227, 57, 29, 168, 114, 11, + ], + ], + [ + [ + 154, 239, 49, 188, 250, 102, 141, 162, 103, 128, 214, 237, 112, 83, 82, 39, 169, 38, + 186, 224, 83, 17, 44, 13, 89, 204, 82, 168, 153, 47, 177, 32, + ], + [ + 44, 230, 100, 6, 130, 117, 77, 153, 54, 35, 247, 189, 194, 8, 16, 63, 21, 142, 72, 135, + 168, 206, 177, 164, 49, 230, 99, 225, 60, 67, 155, 39, + ], + [ + 169, 141, 219, 61, 4, 46, 12, 93, 167, 222, 157, 101, 225, 66, 40, 200, 99, 167, 104, + 200, 201, 121, 56, 131, 9, 149, 7, 96, 78, 147, 45, 35, + ], + [ + 60, 73, 142, 226, 0, 134, 72, 110, 138, 195, 66, 163, 232, 76, 236, 197, 119, 245, 33, + 176, 176, 193, 191, 82, 93, 99, 200, 122, 214, 4, 106, 62, + ], + [ + 33, 168, 2, 134, 195, 243, 192, 108, 200, 39, 203, 209, 184, 80, 67, 36, 36, 133, 17, + 84, 252, 62, 107, 24, 128, 56, 93, 32, 88, 187, 74, 20, + ], + [ + 219, 20, 232, 167, 231, 189, 251, 75, 141, 188, 40, 255, 113, 169, 75, 126, 51, 153, + 150, 144, 3, 2, 48, 195, 95, 106, 157, 67, 187, 122, 83, 58, + ], + [ + 188, 190, 244, 180, 101, 55, 139, 190, 117, 226, 19, 119, 22, 66, 0, 180, 238, 67, 105, + 113, 146, 196, 115, 38, 40, 228, 250, 123, 178, 244, 232, 50, + ], + [ + 128, 9, 198, 45, 101, 40, 185, 231, 79, 41, 73, 11, 16, 195, 192, 252, 134, 134, 140, + 132, 52, 99, 62, 164, 180, 33, 52, 159, 66, 196, 79, 35, + ], + ], + [ + [ + 10, 239, 94, 184, 118, 1, 158, 108, 158, 169, 76, 121, 236, 36, 25, 221, 105, 129, 115, + 149, 209, 44, 31, 83, 91, 26, 78, 126, 255, 38, 25, 56, + ], + [ + 207, 84, 209, 233, 227, 197, 135, 68, 247, 42, 105, 196, 115, 52, 31, 57, 58, 7, 51, + 12, 151, 197, 15, 178, 131, 83, 160, 90, 179, 238, 0, 1, + ], + [ + 88, 114, 54, 87, 151, 143, 109, 8, 32, 131, 174, 143, 36, 0, 241, 67, 69, 39, 183, 24, + 46, 190, 165, 142, 35, 116, 35, 242, 200, 167, 172, 63, + ], + [ + 33, 70, 50, 238, 103, 165, 48, 92, 4, 221, 0, 157, 84, 240, 144, 240, 18, 63, 226, 1, + 151, 3, 49, 247, 129, 248, 23, 106, 90, 166, 204, 44, + ], + [ + 106, 134, 57, 46, 200, 54, 110, 138, 86, 96, 6, 197, 4, 183, 174, 208, 239, 184, 201, + 108, 12, 179, 36, 69, 218, 9, 165, 76, 112, 142, 76, 14, + ], + [ + 97, 3, 42, 225, 95, 159, 129, 254, 99, 46, 181, 184, 192, 3, 168, 169, 118, 8, 164, 8, + 94, 203, 221, 208, 205, 41, 189, 179, 30, 177, 251, 44, + ], + [ + 53, 132, 132, 52, 92, 180, 183, 130, 219, 108, 144, 28, 118, 56, 255, 151, 102, 154, + 205, 137, 43, 116, 29, 96, 143, 6, 143, 205, 163, 245, 106, 44, + ], + [ + 218, 157, 183, 63, 44, 213, 213, 83, 210, 222, 174, 20, 246, 248, 126, 87, 221, 23, + 142, 136, 120, 246, 43, 32, 148, 58, 248, 160, 123, 58, 221, 12, + ], + ], + [ + [ + 149, 137, 111, 83, 176, 241, 115, 102, 142, 224, 16, 10, 96, 228, 141, 172, 140, 55, + 25, 116, 233, 91, 178, 226, 61, 228, 239, 3, 161, 147, 55, 0, + ], + [ + 224, 0, 124, 93, 127, 173, 200, 210, 76, 186, 63, 249, 145, 142, 191, 53, 164, 52, 12, + 246, 5, 147, 5, 219, 84, 33, 67, 17, 12, 186, 56, 6, + ], + [ + 141, 150, 107, 181, 39, 27, 6, 86, 75, 78, 249, 120, 1, 70, 150, 239, 62, 91, 105, 27, + 207, 74, 134, 102, 24, 119, 82, 203, 42, 91, 232, 27, + ], + [ + 98, 255, 117, 104, 87, 175, 148, 205, 89, 247, 46, 53, 8, 41, 74, 139, 233, 18, 235, + 173, 199, 208, 211, 168, 2, 68, 169, 180, 164, 20, 97, 42, + ], + [ + 142, 31, 62, 232, 242, 54, 172, 213, 218, 45, 139, 176, 152, 33, 55, 113, 31, 236, 64, + 163, 4, 159, 145, 68, 47, 187, 118, 126, 73, 172, 66, 51, + ], + [ + 177, 99, 95, 196, 0, 236, 92, 199, 227, 64, 111, 143, 71, 195, 178, 33, 230, 212, 13, + 0, 88, 120, 166, 23, 56, 146, 248, 71, 64, 129, 231, 28, + ], + [ + 211, 107, 48, 102, 191, 222, 34, 82, 109, 123, 188, 56, 84, 50, 158, 35, 226, 179, 252, + 12, 108, 246, 213, 136, 254, 116, 42, 71, 83, 167, 134, 38, + ], + [ + 60, 43, 191, 53, 154, 254, 231, 249, 60, 152, 183, 226, 99, 111, 57, 196, 8, 126, 203, + 215, 228, 240, 139, 196, 74, 217, 66, 180, 5, 49, 10, 61, + ], + ], + [ + [ + 20, 60, 106, 50, 215, 140, 210, 245, 242, 191, 232, 212, 151, 142, 214, 148, 65, 129, + 147, 86, 16, 226, 222, 240, 178, 198, 208, 215, 155, 63, 153, 3, + ], + [ + 231, 76, 69, 20, 14, 9, 126, 164, 67, 97, 38, 101, 31, 238, 75, 208, 65, 146, 153, 62, + 115, 249, 153, 193, 36, 89, 201, 158, 168, 83, 14, 3, + ], + [ + 172, 28, 102, 166, 48, 244, 128, 113, 84, 168, 154, 152, 71, 47, 14, 238, 173, 216, + 173, 84, 87, 152, 229, 74, 214, 142, 86, 0, 218, 201, 76, 38, + ], + [ + 250, 251, 83, 44, 140, 74, 35, 121, 221, 192, 158, 22, 150, 145, 158, 182, 199, 58, + 139, 95, 104, 115, 78, 251, 35, 114, 123, 157, 107, 127, 141, 2, + ], + [ + 15, 141, 54, 127, 192, 139, 29, 132, 103, 155, 18, 77, 69, 91, 246, 255, 11, 5, 164, + 52, 118, 220, 215, 136, 109, 14, 70, 118, 147, 212, 180, 52, + ], + [ + 162, 34, 139, 38, 22, 144, 76, 40, 62, 100, 16, 96, 187, 133, 251, 207, 24, 229, 28, + 15, 243, 126, 192, 49, 78, 19, 171, 244, 38, 152, 49, 48, + ], + [ + 156, 79, 249, 126, 214, 71, 52, 167, 23, 74, 34, 53, 116, 119, 101, 73, 139, 0, 214, 8, + 165, 21, 237, 91, 41, 154, 105, 148, 158, 109, 86, 4, + ], + [ + 18, 190, 253, 27, 131, 121, 226, 105, 125, 62, 67, 179, 22, 245, 106, 80, 132, 191, 71, + 72, 139, 255, 44, 115, 58, 245, 52, 70, 181, 3, 70, 21, + ], + ], + [ + [ + 80, 124, 240, 232, 204, 160, 223, 47, 212, 70, 254, 52, 246, 144, 208, 188, 234, 135, + 228, 159, 159, 194, 192, 107, 188, 57, 154, 163, 184, 53, 100, 44, + ], + [ + 75, 85, 94, 47, 222, 218, 25, 221, 103, 44, 223, 208, 96, 167, 80, 244, 3, 145, 108, + 246, 106, 250, 68, 7, 167, 208, 175, 48, 117, 132, 62, 56, + ], + [ + 86, 43, 192, 127, 103, 49, 141, 242, 26, 223, 123, 81, 193, 204, 142, 184, 208, 72, 98, + 101, 163, 68, 149, 183, 184, 29, 148, 26, 79, 89, 63, 7, + ], + [ + 13, 17, 229, 153, 40, 187, 221, 180, 216, 40, 169, 214, 113, 40, 104, 151, 96, 61, 225, + 245, 220, 170, 198, 151, 134, 249, 146, 22, 49, 18, 117, 23, + ], + [ + 24, 160, 53, 180, 65, 171, 149, 169, 240, 40, 53, 91, 160, 6, 73, 4, 74, 136, 214, 119, + 226, 139, 89, 65, 171, 116, 135, 48, 173, 31, 151, 21, + ], + [ + 87, 245, 10, 110, 108, 73, 107, 12, 238, 92, 189, 142, 60, 156, 208, 149, 246, 203, + 116, 204, 81, 86, 83, 23, 216, 84, 14, 59, 69, 226, 129, 53, + ], + [ + 136, 212, 47, 189, 103, 45, 150, 40, 232, 21, 226, 251, 185, 20, 204, 133, 61, 33, 35, + 12, 250, 121, 142, 19, 135, 13, 175, 97, 211, 151, 76, 59, + ], + [ + 94, 35, 203, 250, 198, 153, 2, 78, 51, 187, 241, 100, 16, 204, 18, 163, 4, 164, 181, + 48, 70, 13, 140, 179, 246, 138, 46, 169, 239, 63, 83, 54, + ], + ], + [ + [ + 196, 215, 172, 247, 59, 103, 86, 156, 251, 251, 189, 44, 121, 171, 238, 170, 90, 94, + 229, 210, 2, 28, 116, 152, 175, 132, 150, 248, 247, 33, 93, 21, + ], + [ + 11, 90, 134, 193, 86, 130, 247, 159, 151, 103, 235, 179, 36, 64, 31, 5, 216, 136, 218, + 242, 78, 34, 94, 97, 216, 226, 91, 32, 255, 21, 194, 8, + ], + [ + 90, 247, 208, 172, 150, 176, 5, 164, 130, 56, 121, 166, 192, 17, 147, 181, 227, 173, + 129, 60, 164, 158, 107, 41, 196, 190, 42, 251, 119, 141, 10, 39, + ], + [ + 251, 222, 252, 102, 190, 25, 50, 11, 77, 246, 85, 34, 74, 50, 187, 142, 67, 52, 11, + 106, 12, 141, 82, 182, 116, 253, 163, 140, 96, 98, 49, 24, + ], + [ + 8, 73, 143, 244, 252, 146, 102, 150, 89, 157, 174, 71, 145, 173, 140, 93, 252, 86, 188, + 244, 50, 29, 20, 215, 83, 180, 168, 192, 50, 174, 135, 35, + ], + [ + 9, 29, 218, 176, 253, 21, 178, 210, 244, 103, 160, 163, 241, 203, 37, 18, 141, 143, 66, + 247, 138, 118, 238, 64, 213, 141, 137, 207, 192, 146, 60, 16, + ], + [ + 23, 112, 67, 207, 126, 97, 125, 148, 105, 113, 57, 100, 159, 254, 187, 221, 179, 75, + 84, 174, 136, 217, 67, 60, 52, 107, 254, 187, 54, 211, 173, 20, + ], + [ + 197, 164, 148, 248, 41, 239, 242, 160, 160, 121, 202, 77, 129, 207, 71, 251, 23, 90, + 94, 78, 15, 206, 195, 162, 59, 131, 154, 91, 51, 112, 146, 20, + ], + ], + [ + [ + 197, 194, 236, 107, 71, 31, 175, 12, 97, 227, 76, 119, 30, 218, 41, 255, 125, 91, 56, + 190, 6, 1, 9, 248, 146, 9, 190, 14, 239, 199, 13, 35, + ], + [ + 26, 55, 245, 109, 77, 123, 10, 248, 62, 199, 41, 101, 47, 206, 8, 105, 156, 69, 125, 8, + 50, 122, 23, 226, 145, 12, 219, 99, 67, 3, 191, 61, + ], + [ + 109, 119, 98, 22, 28, 134, 177, 75, 25, 239, 54, 177, 169, 132, 116, 64, 4, 126, 221, + 82, 209, 126, 208, 215, 116, 246, 75, 215, 125, 163, 194, 7, + ], + [ + 206, 15, 193, 174, 47, 41, 191, 214, 49, 210, 206, 7, 100, 245, 30, 170, 116, 39, 148, + 121, 53, 80, 201, 222, 6, 85, 55, 205, 72, 174, 6, 30, + ], + [ + 229, 61, 220, 101, 100, 229, 212, 61, 175, 75, 4, 139, 117, 135, 63, 236, 252, 252, + 226, 155, 85, 116, 194, 245, 243, 209, 32, 159, 63, 234, 30, 37, + ], + [ + 101, 33, 62, 209, 69, 119, 42, 92, 72, 89, 169, 145, 81, 100, 138, 196, 41, 253, 17, + 139, 60, 148, 139, 33, 255, 217, 8, 120, 230, 207, 192, 0, + ], + [ + 39, 245, 116, 42, 45, 45, 44, 76, 177, 117, 99, 172, 86, 59, 13, 153, 100, 22, 9, 34, + 175, 154, 45, 229, 115, 193, 15, 182, 165, 125, 221, 1, + ], + [ + 31, 54, 118, 58, 10, 66, 64, 174, 93, 114, 215, 142, 4, 206, 248, 153, 215, 197, 227, + 232, 157, 63, 47, 149, 123, 20, 49, 177, 74, 71, 82, 47, + ], + ], + [ + [ + 101, 117, 124, 209, 188, 36, 221, 34, 18, 6, 100, 248, 247, 169, 215, 102, 222, 48, 63, + 163, 182, 198, 83, 29, 203, 38, 22, 215, 118, 207, 177, 24, + ], + [ + 84, 130, 80, 94, 13, 54, 109, 181, 221, 55, 251, 15, 143, 19, 87, 37, 148, 115, 213, + 160, 66, 83, 85, 162, 181, 179, 123, 17, 167, 247, 169, 37, + ], + [ + 48, 59, 190, 61, 155, 234, 182, 117, 7, 244, 103, 194, 137, 218, 193, 172, 133, 66, + 223, 190, 111, 184, 35, 252, 102, 241, 89, 202, 143, 204, 240, 20, + ], + [ + 119, 50, 120, 161, 215, 33, 56, 98, 241, 90, 240, 196, 248, 176, 102, 160, 235, 212, + 132, 151, 245, 11, 100, 223, 178, 133, 219, 85, 167, 246, 224, 21, + ], + [ + 229, 144, 255, 154, 253, 52, 218, 12, 50, 165, 137, 170, 99, 196, 224, 186, 205, 85, + 190, 222, 118, 171, 254, 22, 7, 161, 255, 63, 75, 232, 3, 40, + ], + [ + 65, 180, 60, 254, 30, 123, 254, 166, 174, 240, 212, 209, 13, 250, 250, 250, 145, 169, + 183, 194, 250, 165, 207, 148, 223, 58, 237, 44, 189, 216, 54, 42, + ], + [ + 226, 251, 98, 219, 120, 82, 25, 105, 66, 253, 36, 140, 6, 244, 78, 64, 192, 2, 213, + 254, 215, 31, 221, 88, 6, 22, 221, 114, 145, 79, 29, 5, + ], + [ + 113, 197, 52, 189, 31, 251, 25, 215, 225, 220, 50, 184, 252, 46, 191, 8, 128, 233, 194, + 71, 209, 60, 75, 190, 18, 160, 165, 185, 140, 84, 132, 54, + ], + ], + [ + [ + 142, 77, 52, 88, 247, 15, 6, 176, 107, 248, 160, 21, 209, 145, 80, 129, 225, 111, 95, + 237, 154, 77, 137, 253, 198, 71, 191, 114, 103, 5, 177, 39, + ], + [ + 100, 4, 219, 69, 66, 64, 242, 131, 146, 201, 195, 14, 122, 183, 133, 62, 93, 159, 223, + 121, 254, 112, 235, 156, 41, 123, 165, 215, 129, 120, 57, 57, + ], + [ + 11, 207, 121, 20, 205, 231, 207, 28, 66, 107, 148, 129, 36, 231, 40, 57, 75, 223, 109, + 181, 67, 177, 222, 11, 49, 217, 251, 164, 148, 153, 149, 7, + ], + [ + 162, 102, 217, 50, 109, 94, 110, 154, 241, 207, 28, 240, 23, 129, 206, 78, 234, 74, + 156, 43, 11, 214, 17, 71, 48, 2, 64, 148, 241, 130, 185, 3, + ], + [ + 142, 69, 138, 197, 77, 73, 50, 67, 52, 165, 96, 106, 125, 213, 111, 77, 92, 113, 130, + 95, 184, 18, 167, 102, 222, 99, 108, 45, 158, 82, 209, 35, + ], + [ + 87, 67, 165, 162, 27, 141, 113, 255, 161, 65, 129, 182, 154, 52, 53, 145, 58, 102, 217, + 92, 230, 24, 189, 13, 111, 139, 65, 225, 173, 227, 67, 28, + ], + [ + 202, 80, 111, 163, 121, 60, 211, 55, 216, 58, 50, 109, 16, 57, 8, 8, 46, 72, 193, 153, + 65, 167, 132, 192, 231, 21, 247, 69, 33, 20, 58, 23, + ], + [ + 249, 173, 126, 139, 157, 178, 129, 165, 40, 169, 0, 114, 71, 157, 88, 113, 122, 40, + 191, 200, 72, 90, 5, 41, 121, 7, 152, 40, 85, 132, 39, 4, + ], + ], + [ + [ + 199, 216, 114, 251, 140, 210, 175, 171, 220, 148, 69, 166, 128, 95, 74, 205, 248, 245, + 19, 125, 233, 17, 142, 185, 113, 146, 57, 42, 0, 120, 198, 4, + ], + [ + 250, 9, 179, 31, 23, 73, 162, 25, 28, 253, 80, 9, 232, 137, 137, 43, 17, 241, 71, 178, + 151, 218, 104, 93, 121, 153, 27, 40, 120, 219, 43, 47, + ], + [ + 23, 231, 27, 9, 75, 177, 179, 234, 202, 55, 195, 150, 120, 172, 62, 156, 183, 43, 84, + 109, 173, 197, 148, 245, 133, 189, 127, 174, 82, 189, 115, 25, + ], + [ + 9, 143, 201, 210, 39, 51, 154, 239, 84, 93, 95, 93, 3, 91, 159, 65, 0, 98, 184, 97, + 108, 24, 36, 170, 223, 25, 245, 14, 144, 196, 66, 47, + ], + [ + 94, 162, 20, 133, 117, 34, 246, 81, 24, 117, 207, 237, 217, 57, 146, 137, 143, 215, + 159, 112, 85, 221, 211, 241, 61, 19, 20, 198, 223, 206, 104, 19, + ], + [ + 89, 188, 251, 72, 124, 111, 97, 181, 107, 226, 217, 177, 180, 22, 182, 252, 46, 174, + 117, 232, 43, 159, 47, 17, 108, 190, 117, 228, 186, 121, 102, 56, + ], + [ + 243, 167, 49, 44, 140, 139, 230, 208, 31, 131, 170, 189, 192, 4, 203, 255, 24, 221, + 194, 244, 109, 141, 22, 224, 138, 88, 234, 70, 99, 44, 158, 16, + ], + [ + 136, 211, 151, 83, 245, 38, 217, 39, 240, 140, 51, 223, 35, 33, 225, 23, 89, 102, 73, + 255, 73, 0, 214, 171, 6, 199, 255, 162, 247, 240, 205, 26, + ], + ], + [ + [ + 254, 77, 97, 198, 201, 60, 159, 34, 206, 67, 175, 168, 187, 6, 194, 218, 205, 50, 36, + 161, 65, 69, 61, 160, 250, 92, 190, 125, 252, 88, 68, 25, + ], + [ + 133, 196, 181, 170, 255, 139, 126, 115, 14, 8, 201, 55, 127, 0, 78, 159, 174, 128, 246, + 25, 157, 67, 55, 224, 177, 43, 162, 37, 70, 56, 4, 27, + ], + [ + 112, 166, 24, 255, 18, 180, 244, 235, 31, 244, 66, 170, 197, 32, 253, 64, 16, 184, 86, + 163, 30, 235, 54, 178, 201, 177, 153, 71, 176, 227, 211, 26, + ], + [ + 151, 222, 230, 164, 11, 133, 141, 108, 118, 190, 234, 99, 15, 33, 229, 82, 88, 14, 9, + 120, 72, 207, 4, 120, 64, 65, 41, 222, 46, 203, 18, 9, + ], + [ + 103, 80, 114, 196, 74, 31, 54, 48, 10, 95, 29, 137, 192, 2, 117, 62, 170, 67, 233, 14, + 92, 90, 108, 161, 78, 71, 153, 237, 75, 227, 166, 5, + ], + [ + 212, 150, 143, 103, 12, 222, 171, 219, 8, 32, 230, 183, 124, 27, 227, 126, 179, 47, + 222, 140, 182, 172, 225, 22, 227, 50, 79, 237, 228, 201, 201, 57, + ], + [ + 70, 84, 206, 124, 223, 76, 35, 210, 59, 152, 102, 132, 156, 238, 248, 117, 141, 11, 8, + 13, 50, 184, 50, 10, 163, 255, 207, 54, 255, 18, 3, 15, + ], + [ + 6, 252, 192, 97, 81, 78, 102, 178, 50, 96, 125, 90, 116, 56, 139, 196, 202, 88, 121, + 186, 27, 23, 112, 100, 105, 28, 30, 44, 39, 83, 71, 14, + ], + ], + [ + [ + 251, 94, 232, 178, 20, 76, 56, 34, 195, 179, 50, 154, 255, 237, 147, 119, 150, 15, 199, + 76, 170, 185, 174, 58, 52, 46, 50, 22, 155, 174, 2, 29, + ], + [ + 213, 156, 33, 83, 188, 31, 83, 136, 209, 126, 89, 13, 129, 191, 217, 248, 192, 156, + 175, 74, 138, 54, 211, 158, 215, 21, 159, 116, 54, 167, 90, 3, + ], + [ + 144, 92, 139, 79, 131, 242, 162, 182, 206, 192, 184, 68, 136, 217, 253, 55, 94, 203, + 200, 248, 114, 55, 235, 153, 179, 204, 123, 113, 118, 90, 213, 59, + ], + [ + 91, 135, 225, 99, 39, 50, 171, 68, 85, 153, 75, 163, 52, 245, 81, 102, 116, 162, 178, + 207, 99, 156, 37, 226, 47, 164, 207, 174, 132, 132, 133, 60, + ], + [ + 54, 214, 3, 118, 0, 225, 55, 117, 205, 163, 115, 249, 200, 246, 140, 108, 76, 169, 50, + 122, 155, 118, 18, 154, 88, 129, 196, 0, 233, 169, 115, 0, + ], + [ + 124, 176, 25, 175, 103, 157, 153, 64, 64, 22, 197, 54, 192, 232, 233, 212, 146, 16, + 183, 52, 141, 90, 80, 128, 237, 67, 145, 229, 89, 9, 192, 46, + ], + [ + 213, 174, 134, 198, 210, 44, 68, 2, 36, 211, 34, 63, 65, 177, 47, 211, 85, 214, 83, 15, + 158, 245, 58, 134, 23, 194, 25, 245, 254, 120, 158, 15, + ], + [ + 81, 6, 176, 10, 91, 61, 188, 113, 152, 41, 236, 6, 95, 20, 71, 148, 23, 21, 40, 26, + 240, 110, 136, 133, 26, 121, 121, 214, 161, 97, 185, 30, + ], + ], + [ + [ + 71, 167, 42, 102, 126, 239, 68, 9, 111, 196, 137, 241, 163, 6, 156, 107, 138, 134, 74, + 132, 121, 33, 184, 172, 186, 130, 126, 62, 237, 118, 242, 26, + ], + [ + 130, 92, 111, 138, 18, 54, 180, 172, 235, 236, 195, 254, 31, 119, 107, 236, 128, 170, + 143, 88, 90, 255, 23, 114, 193, 147, 139, 82, 215, 223, 190, 60, + ], + [ + 85, 115, 103, 249, 139, 252, 172, 223, 249, 30, 175, 150, 183, 241, 226, 250, 69, 42, + 207, 248, 102, 215, 134, 31, 198, 184, 222, 211, 172, 176, 22, 10, + ], + [ + 124, 104, 228, 185, 245, 31, 226, 5, 192, 123, 102, 59, 179, 106, 171, 111, 10, 29, 79, + 223, 174, 80, 224, 180, 71, 96, 52, 20, 213, 116, 245, 4, + ], + [ + 204, 7, 183, 204, 52, 91, 161, 202, 255, 249, 153, 146, 3, 171, 245, 206, 34, 133, 131, + 3, 52, 31, 56, 253, 203, 81, 176, 126, 113, 38, 164, 52, + ], + [ + 170, 200, 186, 32, 27, 90, 197, 215, 251, 122, 225, 34, 45, 175, 154, 199, 161, 24, + 103, 6, 195, 12, 138, 54, 210, 118, 197, 114, 60, 16, 192, 6, + ], + [ + 168, 15, 89, 40, 153, 35, 233, 107, 133, 214, 104, 196, 21, 161, 5, 77, 119, 71, 1, + 140, 212, 160, 104, 252, 2, 166, 70, 57, 231, 28, 116, 4, + ], + [ + 228, 252, 183, 21, 218, 84, 226, 14, 150, 183, 222, 17, 159, 46, 189, 140, 36, 60, 42, + 103, 42, 207, 72, 169, 51, 212, 213, 209, 67, 129, 17, 17, + ], + ], + [ + [ + 229, 94, 4, 4, 255, 10, 228, 111, 228, 106, 39, 196, 52, 15, 132, 47, 69, 132, 17, 208, + 13, 31, 167, 122, 184, 4, 212, 237, 111, 253, 11, 21, + ], + [ + 53, 100, 74, 54, 153, 221, 88, 228, 247, 9, 37, 119, 44, 212, 219, 189, 28, 56, 188, + 198, 217, 1, 176, 232, 60, 123, 225, 127, 139, 193, 6, 31, + ], + [ + 186, 168, 160, 166, 117, 235, 200, 114, 87, 89, 231, 247, 221, 235, 74, 28, 189, 19, + 28, 250, 46, 18, 120, 213, 193, 165, 126, 113, 134, 33, 32, 1, + ], + [ + 50, 59, 63, 152, 85, 72, 221, 20, 198, 176, 87, 118, 81, 128, 237, 174, 255, 75, 155, + 53, 225, 109, 108, 226, 71, 88, 113, 119, 79, 43, 101, 38, + ], + [ + 247, 92, 39, 118, 214, 109, 43, 18, 244, 113, 180, 251, 7, 111, 140, 206, 180, 97, 232, + 118, 86, 133, 251, 155, 26, 165, 139, 163, 215, 90, 77, 32, + ], + [ + 149, 133, 199, 150, 17, 179, 149, 210, 101, 143, 83, 108, 98, 253, 84, 88, 141, 25, + 138, 95, 17, 3, 61, 100, 3, 78, 192, 208, 117, 129, 2, 6, + ], + [ + 91, 178, 133, 154, 63, 174, 196, 94, 152, 232, 192, 125, 37, 28, 44, 110, 38, 62, 21, + 218, 235, 32, 32, 202, 98, 230, 161, 4, 128, 239, 125, 12, + ], + [ + 151, 89, 41, 182, 150, 178, 27, 24, 82, 77, 206, 134, 252, 28, 50, 228, 213, 182, 197, + 209, 49, 213, 175, 72, 189, 253, 249, 88, 108, 236, 168, 58, + ], + ], + [ + [ + 38, 21, 85, 239, 52, 220, 50, 246, 95, 229, 244, 243, 173, 123, 102, 19, 164, 131, 228, + 132, 241, 24, 151, 136, 224, 25, 54, 189, 80, 222, 246, 22, + ], + [ + 244, 175, 133, 128, 140, 88, 63, 118, 85, 87, 53, 206, 87, 43, 61, 129, 118, 243, 9, + 191, 248, 248, 70, 141, 80, 49, 149, 101, 197, 108, 2, 16, + ], + [ + 228, 89, 135, 108, 54, 96, 202, 77, 40, 125, 27, 170, 68, 170, 35, 209, 21, 253, 54, + 24, 198, 125, 164, 90, 226, 96, 191, 107, 23, 182, 237, 44, + ], + [ + 60, 224, 131, 3, 20, 51, 245, 142, 136, 95, 102, 66, 216, 168, 75, 59, 218, 9, 12, 179, + 110, 203, 136, 209, 124, 209, 123, 238, 155, 141, 119, 30, + ], + [ + 56, 124, 170, 94, 110, 39, 171, 145, 126, 39, 53, 218, 222, 52, 177, 152, 181, 192, 92, + 212, 138, 130, 233, 100, 78, 160, 236, 36, 101, 9, 253, 47, + ], + [ + 73, 38, 150, 82, 121, 254, 45, 212, 3, 18, 24, 130, 113, 56, 74, 110, 9, 206, 34, 91, + 223, 241, 108, 114, 238, 211, 171, 30, 137, 150, 59, 0, + ], + [ + 72, 66, 80, 129, 28, 93, 228, 162, 207, 163, 104, 93, 73, 170, 53, 116, 34, 97, 34, 28, + 147, 33, 119, 42, 3, 2, 144, 113, 205, 233, 98, 6, + ], + [ + 152, 136, 201, 11, 112, 141, 110, 36, 28, 222, 78, 38, 88, 212, 172, 192, 168, 212, + 248, 176, 243, 215, 39, 54, 166, 119, 60, 182, 84, 44, 132, 1, + ], + ], + [ + [ + 166, 20, 55, 181, 238, 166, 209, 247, 197, 203, 233, 189, 89, 232, 139, 118, 203, 26, + 245, 159, 234, 187, 122, 104, 95, 200, 221, 233, 216, 232, 137, 44, + ], + [ + 149, 226, 202, 252, 150, 254, 162, 47, 186, 188, 250, 215, 65, 25, 65, 199, 156, 231, + 254, 234, 86, 188, 133, 32, 37, 32, 138, 174, 186, 151, 23, 59, + ], + [ + 123, 18, 173, 246, 115, 145, 29, 164, 82, 83, 79, 117, 140, 85, 179, 255, 80, 78, 124, + 154, 179, 168, 22, 216, 87, 39, 12, 224, 219, 14, 237, 47, + ], + [ + 198, 76, 74, 220, 44, 216, 61, 154, 238, 101, 198, 27, 202, 26, 80, 54, 22, 209, 105, + 210, 163, 61, 69, 57, 165, 232, 132, 92, 116, 105, 213, 62, + ], + [ + 184, 32, 212, 62, 67, 44, 136, 203, 226, 214, 152, 150, 241, 162, 174, 69, 254, 15, 17, + 28, 234, 162, 154, 43, 55, 57, 48, 146, 13, 170, 146, 36, + ], + [ + 40, 10, 127, 190, 248, 155, 217, 21, 147, 185, 101, 235, 133, 96, 152, 7, 89, 74, 127, + 120, 205, 71, 181, 117, 141, 158, 100, 225, 86, 35, 84, 30, + ], + [ + 59, 0, 26, 9, 117, 171, 252, 142, 194, 159, 19, 148, 53, 2, 243, 200, 116, 95, 59, 43, + 156, 118, 8, 146, 31, 235, 125, 67, 226, 193, 192, 14, + ], + [ + 152, 174, 144, 126, 124, 71, 171, 85, 237, 165, 158, 214, 209, 62, 250, 85, 162, 49, + 129, 79, 191, 21, 192, 223, 222, 118, 173, 150, 164, 212, 184, 41, + ], + ], + [ + [ + 217, 100, 143, 202, 28, 1, 60, 244, 252, 12, 56, 235, 162, 250, 194, 0, 158, 25, 148, + 62, 226, 184, 144, 86, 154, 54, 77, 122, 47, 47, 37, 47, + ], + [ + 202, 69, 190, 148, 247, 74, 31, 98, 96, 125, 31, 19, 13, 131, 46, 232, 247, 75, 226, + 211, 35, 173, 66, 190, 8, 160, 57, 35, 181, 203, 33, 57, + ], + [ + 105, 168, 39, 76, 17, 201, 8, 85, 160, 1, 108, 17, 65, 17, 143, 13, 26, 237, 93, 205, + 40, 188, 41, 247, 82, 200, 105, 236, 20, 96, 99, 16, + ], + [ + 8, 225, 80, 33, 92, 253, 80, 149, 76, 124, 194, 200, 247, 158, 230, 212, 154, 151, 45, + 60, 189, 91, 94, 248, 13, 166, 178, 71, 207, 40, 252, 34, + ], + [ + 112, 102, 155, 6, 178, 250, 238, 207, 237, 193, 217, 248, 147, 24, 131, 76, 225, 178, + 237, 111, 231, 44, 13, 218, 28, 166, 69, 107, 158, 18, 239, 14, + ], + [ + 9, 175, 91, 204, 143, 242, 215, 115, 39, 213, 85, 208, 155, 76, 228, 114, 126, 170, + 228, 103, 118, 64, 196, 226, 35, 184, 202, 195, 205, 36, 213, 24, + ], + [ + 121, 166, 135, 131, 76, 123, 114, 93, 221, 160, 197, 146, 126, 212, 52, 241, 95, 56, + 127, 65, 155, 66, 25, 216, 43, 42, 163, 49, 131, 212, 76, 7, + ], + [ + 99, 210, 39, 55, 89, 68, 174, 153, 25, 69, 37, 70, 180, 15, 215, 92, 30, 95, 85, 74, + 115, 111, 15, 166, 74, 203, 79, 168, 21, 176, 80, 27, + ], + ], + [ + [ + 57, 146, 226, 221, 107, 225, 126, 141, 182, 27, 144, 50, 73, 165, 21, 228, 91, 125, 53, + 198, 13, 183, 251, 163, 208, 52, 135, 192, 136, 144, 143, 33, + ], + [ + 123, 7, 46, 76, 70, 183, 31, 50, 102, 73, 52, 69, 42, 212, 19, 239, 207, 121, 226, 48, + 7, 124, 101, 156, 27, 108, 250, 115, 203, 80, 158, 54, + ], + [ + 105, 12, 215, 144, 236, 236, 57, 169, 134, 16, 123, 228, 143, 246, 201, 34, 194, 94, + 87, 66, 109, 43, 155, 104, 47, 0, 200, 97, 218, 162, 17, 13, + ], + [ + 124, 237, 179, 116, 163, 119, 114, 172, 236, 205, 105, 103, 1, 74, 29, 243, 205, 244, + 232, 249, 52, 251, 59, 108, 46, 186, 212, 23, 85, 250, 38, 2, + ], + [ + 169, 136, 44, 150, 8, 97, 227, 243, 193, 218, 181, 203, 176, 162, 70, 93, 239, 130, + 230, 67, 9, 57, 26, 124, 59, 229, 159, 92, 24, 98, 77, 53, + ], + [ + 81, 1, 244, 212, 4, 189, 139, 212, 63, 219, 239, 218, 254, 209, 167, 118, 214, 108, 63, + 241, 3, 215, 184, 41, 148, 192, 183, 121, 48, 82, 1, 25, + ], + [ + 77, 157, 101, 207, 121, 249, 208, 27, 219, 162, 235, 48, 152, 43, 15, 71, 93, 19, 134, + 30, 228, 115, 246, 243, 146, 135, 193, 55, 199, 21, 26, 58, + ], + [ + 158, 13, 107, 51, 93, 172, 190, 196, 224, 143, 126, 198, 215, 92, 139, 136, 230, 209, + 26, 247, 99, 138, 255, 219, 115, 248, 137, 42, 148, 138, 164, 35, + ], + ], + [ + [ + 144, 129, 1, 246, 175, 28, 39, 247, 112, 135, 137, 167, 136, 48, 66, 164, 151, 73, 8, + 241, 210, 54, 55, 165, 84, 252, 199, 16, 160, 37, 145, 23, + ], + [ + 192, 125, 70, 179, 34, 242, 184, 201, 4, 245, 132, 241, 154, 195, 44, 156, 117, 250, + 176, 65, 83, 229, 1, 161, 53, 116, 194, 235, 72, 95, 130, 10, + ], + [ + 228, 8, 155, 222, 133, 218, 125, 194, 220, 72, 46, 118, 157, 179, 153, 160, 190, 219, + 166, 145, 183, 114, 184, 90, 206, 47, 43, 46, 190, 180, 243, 14, + ], + [ + 144, 1, 212, 200, 34, 67, 61, 193, 101, 41, 199, 112, 121, 197, 30, 248, 172, 240, 1, + 23, 210, 116, 54, 82, 203, 153, 141, 24, 223, 253, 48, 25, + ], + [ + 97, 162, 113, 178, 80, 172, 128, 13, 18, 247, 1, 132, 162, 145, 152, 16, 26, 44, 104, + 137, 200, 140, 57, 188, 181, 173, 186, 77, 241, 70, 103, 62, + ], + [ + 98, 180, 95, 72, 251, 169, 134, 210, 225, 93, 191, 188, 89, 165, 113, 10, 20, 55, 249, + 100, 231, 105, 100, 74, 66, 30, 50, 169, 116, 236, 28, 25, + ], + [ + 106, 166, 231, 140, 101, 154, 108, 162, 240, 137, 97, 132, 90, 169, 10, 153, 166, 136, + 135, 146, 102, 93, 177, 86, 64, 92, 168, 72, 31, 104, 20, 33, + ], + [ + 188, 211, 184, 142, 84, 192, 128, 168, 155, 47, 14, 126, 83, 126, 152, 130, 211, 224, + 8, 217, 108, 82, 178, 193, 83, 42, 129, 40, 74, 255, 26, 21, + ], + ], + [ + [ + 27, 111, 120, 34, 70, 220, 74, 211, 225, 132, 62, 224, 106, 147, 107, 170, 65, 245, + 126, 162, 179, 236, 82, 239, 235, 57, 126, 146, 208, 181, 25, 25, + ], + [ + 67, 51, 145, 136, 236, 14, 221, 242, 49, 186, 236, 69, 247, 188, 190, 22, 49, 49, 193, + 147, 62, 22, 207, 31, 233, 100, 182, 124, 70, 69, 83, 19, + ], + [ + 25, 40, 159, 124, 230, 217, 113, 135, 193, 155, 204, 66, 147, 111, 238, 31, 231, 110, + 72, 68, 189, 205, 241, 130, 156, 50, 58, 137, 248, 179, 113, 34, + ], + [ + 199, 7, 17, 175, 48, 117, 199, 19, 50, 252, 37, 72, 70, 122, 69, 90, 19, 57, 128, 68, + 235, 160, 101, 40, 62, 245, 236, 132, 63, 145, 10, 11, + ], + [ + 238, 244, 156, 113, 5, 156, 173, 22, 95, 73, 65, 155, 53, 223, 225, 255, 58, 104, 112, + 89, 167, 166, 114, 249, 45, 217, 195, 168, 12, 31, 14, 5, + ], + [ + 168, 30, 153, 147, 149, 139, 195, 4, 163, 70, 46, 36, 180, 109, 86, 197, 142, 11, 142, + 250, 72, 198, 51, 173, 202, 162, 153, 85, 2, 145, 110, 10, + ], + [ + 36, 27, 187, 193, 56, 99, 159, 134, 253, 3, 229, 231, 249, 147, 129, 252, 156, 85, 84, + 57, 241, 140, 251, 174, 135, 138, 176, 221, 73, 222, 159, 14, + ], + [ + 206, 186, 15, 163, 104, 0, 19, 188, 128, 226, 81, 186, 190, 214, 39, 110, 123, 9, 147, + 66, 66, 64, 78, 14, 58, 49, 165, 149, 192, 4, 67, 13, + ], + ], + [ + [ + 32, 250, 229, 202, 183, 206, 20, 75, 220, 120, 12, 190, 111, 12, 98, 111, 61, 146, 165, + 166, 133, 60, 94, 136, 61, 223, 154, 129, 90, 109, 230, 10, + ], + [ + 147, 107, 125, 22, 133, 54, 201, 8, 20, 118, 236, 210, 106, 113, 137, 34, 237, 206, + 128, 160, 184, 214, 23, 43, 145, 48, 157, 54, 59, 100, 162, 8, + ], + [ + 13, 212, 17, 152, 59, 216, 167, 254, 78, 26, 36, 129, 32, 206, 173, 158, 23, 4, 56, + 205, 192, 12, 1, 27, 227, 234, 12, 233, 104, 82, 182, 61, + ], + [ + 7, 17, 169, 161, 14, 21, 162, 94, 106, 66, 217, 14, 218, 63, 127, 131, 90, 30, 175, + 208, 7, 209, 226, 5, 137, 240, 116, 204, 192, 76, 138, 51, + ], + [ + 190, 206, 82, 115, 96, 94, 88, 62, 148, 244, 93, 133, 55, 16, 9, 115, 17, 170, 88, 254, + 150, 87, 214, 42, 60, 43, 247, 235, 111, 159, 60, 42, + ], + [ + 253, 2, 221, 158, 160, 73, 222, 22, 213, 157, 119, 31, 16, 236, 85, 113, 78, 159, 158, + 85, 126, 31, 31, 136, 220, 205, 114, 13, 54, 102, 96, 10, + ], + [ + 11, 138, 36, 180, 3, 0, 209, 232, 70, 200, 182, 250, 148, 237, 249, 181, 32, 214, 7, + 223, 165, 74, 141, 2, 237, 247, 107, 67, 252, 175, 58, 44, + ], + [ + 228, 122, 212, 211, 34, 224, 37, 28, 89, 232, 71, 201, 243, 32, 242, 117, 54, 221, 62, + 243, 217, 189, 0, 215, 68, 28, 192, 112, 142, 49, 211, 12, + ], + ], + [ + [ + 146, 43, 218, 86, 28, 225, 144, 208, 46, 241, 190, 206, 28, 110, 180, 198, 132, 130, + 253, 202, 21, 111, 227, 246, 195, 55, 14, 125, 40, 137, 176, 30, + ], + [ + 95, 71, 151, 226, 250, 85, 113, 233, 79, 7, 178, 203, 58, 47, 152, 144, 214, 1, 202, + 245, 234, 85, 58, 45, 235, 255, 6, 174, 119, 7, 46, 30, + ], + [ + 164, 42, 64, 130, 86, 86, 18, 10, 84, 13, 223, 98, 150, 57, 219, 189, 41, 25, 54, 97, + 151, 202, 192, 203, 75, 104, 152, 221, 238, 70, 27, 45, + ], + [ + 127, 13, 100, 237, 255, 54, 232, 43, 143, 73, 168, 109, 176, 49, 8, 120, 57, 130, 244, + 217, 26, 122, 135, 110, 64, 85, 16, 224, 79, 231, 138, 62, + ], + [ + 194, 131, 166, 241, 159, 28, 76, 114, 253, 239, 213, 220, 254, 100, 77, 64, 91, 238, + 87, 44, 36, 163, 148, 132, 32, 1, 178, 89, 210, 240, 134, 48, + ], + [ + 123, 225, 66, 102, 92, 204, 94, 145, 164, 245, 23, 107, 190, 226, 54, 77, 213, 179, + 125, 75, 186, 59, 70, 150, 179, 74, 227, 71, 147, 60, 139, 16, + ], + [ + 39, 243, 105, 150, 174, 74, 30, 84, 233, 29, 218, 218, 73, 42, 20, 214, 172, 15, 236, + 147, 47, 157, 17, 153, 87, 209, 198, 9, 91, 84, 88, 35, + ], + [ + 45, 154, 254, 153, 15, 16, 141, 166, 168, 13, 22, 76, 212, 147, 189, 192, 47, 5, 41, + 249, 28, 251, 60, 130, 52, 148, 200, 198, 95, 188, 221, 30, + ], + ], + [ + [ + 107, 243, 152, 171, 58, 95, 246, 5, 41, 34, 30, 145, 136, 116, 75, 1, 3, 253, 5, 12, + 117, 143, 210, 29, 168, 141, 105, 141, 77, 72, 157, 45, + ], + [ + 35, 114, 206, 37, 84, 242, 230, 119, 141, 159, 167, 71, 206, 102, 55, 140, 204, 137, + 151, 85, 36, 29, 196, 49, 40, 43, 108, 83, 211, 90, 13, 33, + ], + [ + 15, 177, 11, 152, 142, 9, 201, 105, 21, 183, 41, 239, 124, 235, 47, 81, 143, 50, 62, + 229, 121, 136, 146, 46, 59, 244, 139, 24, 170, 178, 240, 19, + ], + [ + 165, 123, 207, 244, 153, 87, 143, 86, 122, 246, 136, 169, 101, 176, 217, 9, 5, 212, + 168, 27, 145, 3, 197, 154, 62, 69, 109, 182, 149, 23, 91, 21, + ], + [ + 189, 137, 178, 165, 178, 87, 211, 192, 102, 167, 225, 100, 139, 160, 16, 87, 22, 204, + 105, 99, 131, 153, 108, 49, 34, 187, 49, 6, 185, 187, 30, 43, + ], + [ + 27, 145, 78, 59, 46, 36, 132, 75, 120, 159, 51, 37, 37, 192, 108, 126, 73, 189, 174, + 82, 29, 111, 65, 80, 154, 218, 41, 64, 68, 29, 165, 30, + ], + [ + 98, 187, 214, 47, 4, 74, 164, 184, 225, 129, 120, 133, 86, 231, 75, 237, 176, 49, 53, + 169, 90, 4, 18, 9, 167, 71, 22, 156, 13, 39, 15, 3, + ], + [ + 112, 124, 173, 252, 97, 191, 76, 94, 83, 160, 143, 31, 249, 204, 154, 11, 144, 153, 84, + 26, 22, 65, 50, 243, 26, 43, 2, 117, 66, 61, 109, 33, + ], + ], + [ + [ + 48, 179, 105, 154, 137, 101, 207, 31, 159, 178, 200, 35, 0, 58, 168, 178, 174, 225, 29, + 180, 161, 43, 109, 228, 221, 204, 109, 67, 166, 195, 179, 63, + ], + [ + 192, 220, 245, 60, 113, 224, 39, 140, 250, 15, 194, 10, 179, 68, 226, 120, 139, 19, 98, + 15, 83, 170, 245, 23, 120, 70, 92, 174, 64, 64, 106, 61, + ], + [ + 224, 5, 162, 145, 63, 125, 41, 116, 214, 111, 234, 50, 80, 95, 211, 97, 214, 145, 238, + 22, 96, 42, 196, 79, 43, 20, 88, 179, 203, 22, 113, 46, + ], + [ + 213, 81, 107, 202, 117, 25, 111, 182, 105, 138, 27, 113, 154, 75, 57, 246, 246, 83, 99, + 217, 179, 112, 69, 133, 173, 21, 93, 29, 205, 161, 76, 60, + ], + [ + 53, 44, 98, 79, 115, 175, 162, 136, 175, 194, 206, 120, 151, 114, 188, 68, 142, 30, 96, + 184, 78, 24, 83, 6, 158, 185, 44, 71, 0, 93, 104, 0, + ], + [ + 250, 21, 67, 252, 44, 115, 18, 82, 222, 64, 36, 75, 249, 107, 180, 166, 243, 36, 0, + 117, 175, 185, 120, 145, 155, 116, 188, 143, 17, 46, 165, 56, + ], + [ + 241, 212, 155, 63, 65, 50, 226, 122, 207, 162, 225, 154, 169, 53, 14, 221, 96, 76, 136, + 178, 90, 164, 121, 103, 108, 127, 54, 163, 96, 85, 77, 6, + ], + [ + 19, 175, 186, 97, 92, 236, 91, 61, 140, 4, 133, 53, 194, 213, 65, 250, 230, 238, 235, + 203, 46, 65, 35, 16, 182, 249, 176, 229, 175, 138, 30, 25, + ], + ], + [ + [ + 193, 173, 135, 142, 136, 208, 142, 206, 234, 104, 90, 172, 21, 141, 16, 215, 245, 110, + 59, 172, 92, 70, 107, 247, 27, 166, 143, 181, 155, 250, 106, 53, + ], + [ + 40, 195, 37, 64, 237, 12, 144, 62, 106, 178, 195, 117, 222, 163, 229, 91, 210, 2, 145, + 237, 136, 209, 62, 140, 230, 8, 101, 56, 25, 178, 213, 58, + ], + [ + 101, 129, 170, 93, 188, 56, 112, 107, 211, 10, 183, 62, 68, 200, 64, 130, 73, 142, 202, + 103, 69, 40, 144, 172, 242, 250, 22, 131, 198, 103, 108, 58, + ], + [ + 194, 190, 28, 152, 159, 2, 136, 216, 228, 235, 50, 39, 214, 18, 140, 207, 80, 219, 220, + 101, 153, 79, 16, 105, 188, 49, 203, 108, 66, 225, 90, 59, + ], + [ + 153, 64, 128, 222, 2, 153, 45, 105, 116, 220, 68, 127, 162, 151, 86, 187, 167, 170, 11, + 233, 28, 199, 145, 241, 243, 234, 10, 120, 92, 219, 209, 43, + ], + [ + 50, 89, 222, 249, 125, 86, 27, 111, 222, 37, 116, 131, 25, 18, 181, 68, 48, 103, 126, + 135, 57, 250, 15, 250, 177, 17, 31, 129, 239, 252, 162, 28, + ], + [ + 114, 163, 205, 167, 236, 34, 31, 190, 190, 105, 34, 205, 130, 240, 231, 205, 50, 231, + 88, 79, 27, 132, 231, 176, 11, 46, 129, 157, 254, 249, 246, 15, + ], + [ + 93, 238, 47, 126, 190, 204, 194, 137, 218, 143, 52, 16, 199, 227, 130, 21, 153, 75, + 233, 47, 222, 61, 182, 45, 223, 200, 222, 178, 182, 170, 228, 31, + ], + ], + [ + [ + 12, 17, 186, 64, 81, 161, 220, 198, 174, 199, 6, 92, 215, 23, 232, 34, 246, 12, 107, + 125, 15, 107, 2, 242, 20, 8, 246, 125, 121, 99, 80, 3, + ], + [ + 89, 57, 179, 171, 146, 205, 229, 64, 221, 171, 206, 90, 241, 174, 37, 148, 197, 159, + 18, 100, 219, 205, 52, 254, 192, 164, 85, 30, 65, 213, 210, 54, + ], + [ + 62, 137, 99, 6, 120, 112, 106, 227, 209, 75, 212, 194, 210, 14, 2, 30, 195, 242, 218, + 76, 57, 40, 167, 185, 142, 96, 69, 77, 167, 67, 209, 9, + ], + [ + 180, 9, 228, 211, 34, 32, 178, 132, 120, 119, 122, 62, 191, 119, 141, 172, 218, 172, + 109, 180, 94, 64, 162, 121, 52, 14, 121, 66, 59, 109, 245, 59, + ], + [ + 249, 3, 248, 71, 44, 145, 178, 67, 137, 38, 251, 235, 157, 68, 254, 171, 27, 162, 133, + 219, 234, 216, 112, 152, 25, 58, 135, 251, 66, 71, 156, 26, + ], + [ + 95, 35, 211, 78, 202, 25, 45, 202, 135, 35, 113, 93, 165, 64, 194, 144, 175, 17, 228, + 210, 224, 254, 58, 112, 227, 81, 126, 97, 86, 65, 29, 62, + ], + [ + 221, 226, 149, 102, 167, 18, 52, 77, 5, 186, 64, 11, 100, 216, 208, 10, 248, 189, 34, + 212, 242, 213, 9, 142, 115, 97, 101, 65, 220, 76, 136, 18, + ], + [ + 46, 234, 59, 13, 34, 48, 213, 65, 235, 58, 247, 80, 169, 39, 199, 103, 208, 23, 231, + 159, 190, 5, 184, 75, 56, 226, 248, 207, 69, 148, 211, 39, + ], + ], + [ + [ + 32, 230, 133, 110, 165, 142, 6, 236, 172, 169, 47, 58, 149, 196, 9, 122, 18, 15, 198, + 9, 254, 57, 37, 7, 223, 227, 136, 12, 203, 242, 43, 24, + ], + [ + 42, 147, 110, 109, 50, 65, 17, 222, 30, 153, 56, 60, 204, 134, 182, 170, 16, 57, 253, + 161, 24, 121, 0, 24, 141, 195, 159, 253, 145, 154, 147, 9, + ], + [ + 14, 162, 52, 18, 158, 156, 230, 183, 175, 194, 121, 255, 238, 127, 155, 250, 246, 125, + 169, 227, 72, 68, 0, 27, 232, 41, 17, 161, 76, 66, 20, 53, + ], + [ + 50, 22, 182, 33, 162, 102, 95, 212, 128, 44, 7, 71, 26, 32, 114, 117, 49, 127, 40, 178, + 231, 245, 1, 106, 238, 134, 100, 231, 254, 238, 176, 5, + ], + [ + 50, 237, 91, 136, 123, 1, 96, 84, 250, 240, 150, 12, 248, 226, 90, 37, 68, 177, 48, + 242, 94, 102, 174, 114, 222, 126, 153, 41, 195, 54, 126, 56, + ], + [ + 133, 193, 10, 246, 10, 82, 239, 122, 163, 93, 110, 94, 60, 44, 177, 207, 189, 174, 87, + 89, 69, 129, 226, 121, 140, 169, 190, 105, 76, 58, 86, 8, + ], + [ + 23, 43, 215, 223, 60, 59, 224, 124, 151, 95, 219, 161, 57, 159, 207, 111, 242, 135, 40, + 239, 253, 77, 19, 184, 64, 186, 150, 176, 66, 238, 67, 40, + ], + [ + 126, 167, 187, 171, 240, 55, 84, 223, 134, 218, 13, 244, 77, 58, 112, 57, 26, 208, 108, + 78, 36, 188, 140, 87, 207, 217, 22, 144, 157, 20, 32, 54, + ], + ], + [ + [ + 93, 37, 10, 228, 50, 61, 16, 189, 13, 195, 139, 25, 160, 47, 200, 124, 186, 134, 98, + 124, 16, 208, 15, 234, 76, 94, 7, 231, 28, 219, 8, 55, + ], + [ + 240, 37, 251, 82, 107, 129, 109, 226, 56, 158, 226, 245, 117, 81, 14, 88, 89, 159, 94, + 112, 221, 109, 148, 109, 96, 111, 107, 193, 65, 177, 88, 61, + ], + [ + 66, 195, 4, 90, 120, 185, 19, 112, 65, 178, 63, 160, 49, 116, 10, 220, 176, 189, 95, + 102, 60, 97, 194, 253, 126, 162, 104, 217, 4, 50, 147, 37, + ], + [ + 238, 163, 121, 161, 177, 233, 63, 78, 235, 119, 237, 197, 121, 164, 83, 212, 6, 208, + 230, 24, 249, 141, 95, 163, 28, 102, 175, 11, 75, 81, 160, 0, + ], + [ + 229, 143, 0, 254, 88, 138, 193, 137, 148, 92, 219, 194, 181, 122, 207, 15, 16, 193, + 188, 217, 68, 31, 11, 158, 167, 27, 64, 136, 203, 117, 161, 12, + ], + [ + 11, 49, 214, 250, 109, 158, 144, 42, 1, 206, 122, 94, 165, 157, 202, 213, 96, 180, 33, + 20, 22, 177, 7, 163, 28, 139, 104, 251, 198, 9, 214, 33, + ], + [ + 116, 243, 168, 236, 137, 191, 154, 52, 41, 230, 77, 98, 8, 184, 250, 38, 141, 230, 158, + 5, 39, 9, 89, 103, 230, 79, 166, 50, 205, 4, 255, 57, + ], + [ + 48, 98, 65, 66, 216, 38, 51, 172, 142, 86, 116, 5, 120, 215, 156, 152, 106, 238, 101, + 242, 53, 120, 56, 97, 38, 217, 38, 74, 226, 28, 214, 1, + ], + ], + [ + [ + 105, 231, 75, 196, 42, 78, 208, 145, 101, 74, 247, 42, 206, 96, 9, 165, 101, 89, 102, + 246, 47, 7, 215, 185, 122, 16, 186, 27, 10, 246, 28, 23, + ], + [ + 217, 126, 103, 98, 167, 172, 142, 251, 248, 148, 70, 136, 6, 254, 190, 127, 239, 148, + 0, 199, 6, 165, 124, 27, 43, 237, 41, 234, 88, 83, 203, 32, + ], + [ + 107, 239, 45, 27, 57, 6, 26, 100, 184, 166, 49, 44, 51, 34, 71, 119, 233, 175, 17, 249, + 180, 107, 41, 96, 188, 234, 154, 63, 206, 106, 120, 38, + ], + [ + 18, 121, 183, 245, 156, 149, 212, 126, 222, 16, 47, 234, 70, 173, 22, 213, 183, 77, 82, + 53, 36, 126, 75, 154, 210, 154, 27, 140, 64, 60, 177, 57, + ], + [ + 129, 228, 124, 136, 140, 181, 45, 123, 137, 7, 141, 185, 55, 235, 55, 18, 222, 8, 68, + 17, 115, 177, 15, 70, 229, 2, 114, 211, 234, 30, 197, 41, + ], + [ + 228, 45, 55, 6, 192, 96, 178, 131, 218, 145, 217, 97, 91, 39, 160, 64, 227, 19, 66, + 189, 251, 188, 240, 67, 146, 48, 200, 76, 18, 250, 8, 30, + ], + [ + 220, 15, 205, 81, 21, 46, 62, 121, 239, 193, 97, 108, 94, 74, 148, 33, 244, 134, 30, + 132, 132, 215, 205, 182, 150, 14, 115, 31, 182, 72, 94, 20, + ], + [ + 69, 231, 138, 117, 173, 221, 41, 131, 254, 155, 191, 117, 134, 185, 244, 239, 223, 169, + 119, 108, 64, 191, 142, 111, 73, 108, 160, 106, 155, 102, 205, 46, + ], + ], + [ + [ + 216, 228, 186, 25, 141, 114, 50, 180, 248, 77, 180, 135, 54, 130, 143, 37, 195, 92, 84, + 224, 181, 77, 69, 208, 172, 57, 221, 164, 6, 233, 98, 49, + ], + [ + 169, 136, 52, 59, 237, 211, 56, 94, 189, 86, 149, 191, 67, 97, 7, 175, 106, 166, 35, + 82, 86, 61, 133, 188, 53, 17, 216, 207, 65, 229, 194, 2, + ], + [ + 255, 84, 1, 221, 103, 57, 196, 217, 196, 185, 158, 106, 101, 162, 235, 202, 135, 134, + 88, 167, 150, 148, 218, 54, 255, 108, 49, 166, 102, 176, 84, 30, + ], + [ + 92, 224, 203, 243, 67, 151, 137, 209, 206, 249, 185, 243, 233, 175, 220, 244, 175, 1, + 122, 2, 95, 243, 93, 187, 239, 23, 255, 69, 41, 120, 38, 38, + ], + [ + 128, 21, 223, 166, 79, 166, 187, 242, 137, 152, 56, 128, 243, 30, 183, 245, 180, 123, + 32, 118, 207, 24, 147, 57, 157, 179, 123, 151, 104, 69, 46, 52, + ], + [ + 68, 43, 112, 45, 194, 157, 39, 211, 168, 167, 179, 209, 157, 101, 27, 43, 230, 76, 176, + 78, 232, 203, 95, 253, 116, 237, 107, 32, 48, 158, 58, 50, + ], + [ + 100, 239, 210, 82, 79, 131, 253, 105, 235, 193, 69, 45, 187, 62, 95, 152, 54, 234, 64, + 114, 234, 169, 168, 87, 150, 35, 127, 246, 74, 17, 148, 2, + ], + [ + 75, 112, 183, 215, 233, 223, 247, 91, 99, 90, 35, 216, 185, 170, 80, 82, 85, 71, 162, + 41, 97, 124, 189, 217, 53, 205, 136, 253, 224, 194, 79, 1, + ], + ], + [ + [ + 53, 21, 40, 125, 210, 154, 222, 229, 87, 242, 184, 188, 80, 173, 32, 106, 137, 190, + 140, 153, 255, 209, 126, 13, 117, 250, 37, 153, 245, 4, 245, 2, + ], + [ + 228, 81, 243, 233, 86, 117, 4, 73, 124, 54, 11, 93, 190, 50, 53, 159, 145, 61, 152, + 111, 240, 113, 23, 252, 69, 88, 36, 226, 4, 109, 229, 3, + ], + [ + 145, 141, 131, 86, 137, 206, 97, 36, 227, 136, 52, 93, 108, 105, 103, 81, 237, 131, + 235, 148, 131, 81, 85, 254, 247, 197, 252, 157, 10, 55, 29, 3, + ], + [ + 103, 142, 61, 123, 169, 170, 61, 44, 87, 32, 62, 112, 84, 138, 187, 144, 188, 38, 202, + 94, 221, 200, 202, 244, 109, 138, 121, 56, 154, 45, 76, 0, + ], + [ + 69, 127, 85, 137, 95, 27, 254, 15, 93, 42, 143, 67, 31, 140, 206, 8, 214, 151, 217, 69, + 145, 105, 169, 116, 238, 37, 55, 137, 215, 80, 158, 8, + ], + [ + 22, 207, 101, 165, 241, 155, 248, 78, 60, 23, 127, 195, 251, 193, 217, 78, 162, 158, + 177, 146, 112, 183, 237, 32, 1, 138, 101, 44, 157, 172, 149, 36, + ], + [ + 76, 137, 207, 192, 160, 232, 61, 242, 123, 239, 139, 70, 152, 11, 242, 137, 58, 104, + 228, 63, 142, 23, 137, 23, 37, 253, 40, 100, 183, 97, 87, 40, + ], + [ + 34, 111, 225, 153, 243, 185, 42, 1, 25, 11, 157, 125, 204, 60, 23, 123, 187, 200, 70, + 228, 192, 25, 145, 43, 170, 247, 123, 157, 50, 180, 67, 12, + ], + ], + [ + [ + 139, 112, 152, 150, 233, 77, 13, 21, 174, 183, 70, 63, 135, 81, 128, 72, 144, 58, 49, + 65, 191, 20, 146, 19, 26, 255, 133, 93, 112, 124, 207, 62, + ], + [ + 2, 63, 203, 234, 101, 157, 7, 25, 149, 165, 34, 204, 219, 25, 49, 15, 142, 143, 122, + 136, 92, 218, 149, 250, 192, 211, 144, 125, 34, 237, 151, 21, + ], + [ + 188, 61, 75, 218, 124, 179, 96, 22, 138, 217, 109, 25, 125, 27, 24, 96, 239, 246, 167, + 201, 19, 9, 166, 15, 88, 21, 233, 112, 123, 235, 164, 21, + ], + [ + 219, 142, 147, 199, 38, 55, 203, 214, 230, 204, 36, 59, 30, 239, 102, 148, 0, 108, 173, + 188, 32, 144, 135, 194, 254, 50, 3, 35, 201, 218, 230, 21, + ], + [ + 68, 146, 51, 190, 170, 51, 35, 111, 126, 119, 58, 209, 251, 55, 62, 91, 158, 203, 122, + 233, 55, 43, 185, 64, 118, 142, 220, 200, 199, 254, 47, 41, + ], + [ + 24, 58, 100, 185, 6, 101, 241, 244, 103, 176, 10, 237, 176, 190, 212, 66, 82, 150, 241, + 230, 149, 43, 245, 7, 25, 251, 229, 179, 221, 123, 159, 63, + ], + [ + 28, 224, 32, 241, 13, 252, 30, 52, 182, 163, 237, 107, 166, 132, 135, 68, 78, 190, 35, + 235, 117, 126, 20, 138, 61, 223, 23, 145, 57, 74, 120, 4, + ], + [ + 31, 99, 79, 38, 16, 74, 27, 159, 179, 143, 60, 173, 93, 70, 72, 38, 183, 41, 238, 168, + 71, 38, 4, 101, 78, 155, 224, 181, 93, 127, 35, 11, + ], + ], + [ + [ + 60, 137, 224, 53, 215, 197, 25, 63, 90, 33, 63, 146, 157, 176, 68, 250, 232, 147, 24, + 191, 26, 117, 147, 165, 101, 139, 54, 222, 124, 240, 79, 13, + ], + [ + 134, 236, 133, 85, 112, 78, 54, 159, 209, 197, 57, 233, 145, 194, 146, 20, 103, 18, + 176, 88, 222, 218, 76, 231, 199, 242, 225, 215, 238, 66, 98, 55, + ], + [ + 182, 198, 172, 117, 4, 72, 70, 255, 122, 154, 82, 83, 111, 6, 200, 7, 183, 198, 100, + 13, 210, 31, 60, 128, 75, 234, 201, 180, 70, 102, 30, 36, + ], + [ + 153, 192, 32, 150, 124, 34, 86, 143, 118, 191, 78, 155, 197, 139, 103, 250, 187, 136, + 219, 207, 254, 39, 230, 186, 100, 89, 110, 143, 183, 188, 81, 49, + ], + [ + 231, 119, 201, 218, 80, 86, 142, 21, 12, 24, 57, 147, 136, 40, 228, 215, 158, 224, 139, + 236, 214, 47, 59, 208, 17, 48, 224, 21, 169, 129, 224, 17, + ], + [ + 100, 226, 103, 188, 57, 117, 183, 147, 141, 126, 101, 99, 181, 52, 203, 220, 157, 213, + 75, 185, 16, 251, 107, 65, 118, 234, 204, 254, 112, 123, 90, 5, + ], + [ + 109, 233, 111, 207, 104, 219, 124, 6, 23, 121, 255, 210, 34, 191, 93, 83, 152, 185, 83, + 105, 217, 198, 181, 246, 226, 112, 155, 92, 188, 101, 111, 39, + ], + [ + 179, 174, 143, 91, 160, 49, 243, 140, 151, 237, 93, 224, 177, 144, 185, 60, 240, 162, + 55, 226, 253, 59, 107, 70, 83, 152, 148, 243, 130, 180, 241, 17, + ], + ], + [ + [ + 1, 195, 47, 208, 103, 47, 214, 177, 87, 185, 90, 187, 162, 188, 124, 200, 242, 52, 134, + 234, 83, 113, 107, 123, 170, 90, 81, 163, 132, 119, 35, 14, + ], + [ + 155, 171, 18, 109, 236, 115, 191, 12, 58, 167, 16, 164, 181, 122, 238, 96, 155, 233, + 253, 23, 109, 140, 48, 21, 65, 109, 224, 117, 176, 241, 254, 18, + ], + [ + 70, 96, 64, 75, 143, 232, 226, 103, 52, 104, 0, 69, 83, 125, 202, 106, 161, 191, 177, + 102, 45, 23, 238, 204, 53, 40, 78, 59, 242, 35, 159, 19, + ], + [ + 111, 81, 99, 34, 235, 124, 190, 219, 217, 172, 34, 122, 197, 157, 192, 78, 195, 143, + 238, 204, 77, 161, 107, 102, 74, 229, 67, 12, 117, 122, 246, 0, + ], + [ + 144, 191, 125, 138, 68, 229, 183, 225, 230, 10, 142, 95, 44, 186, 213, 104, 243, 32, + 18, 104, 187, 179, 37, 101, 2, 120, 216, 48, 170, 4, 158, 38, + ], + [ + 217, 133, 55, 67, 171, 207, 107, 237, 48, 161, 178, 178, 184, 86, 122, 8, 47, 50, 129, + 108, 208, 22, 31, 13, 123, 72, 240, 226, 193, 85, 76, 7, + ], + [ + 143, 182, 97, 62, 51, 201, 49, 9, 30, 111, 130, 124, 184, 183, 215, 198, 43, 236, 200, + 126, 218, 175, 240, 182, 161, 238, 80, 220, 13, 1, 11, 36, + ], + [ + 167, 187, 116, 148, 117, 166, 104, 241, 228, 188, 41, 158, 140, 164, 46, 222, 157, 136, + 217, 42, 198, 235, 34, 14, 130, 24, 192, 142, 220, 217, 48, 38, + ], + ], + [ + [ + 4, 57, 211, 98, 189, 189, 205, 184, 46, 220, 130, 21, 68, 2, 10, 29, 48, 61, 199, 226, + 206, 227, 52, 249, 60, 176, 140, 23, 177, 67, 92, 15, + ], + [ + 181, 234, 40, 253, 161, 44, 200, 120, 241, 178, 215, 196, 222, 102, 210, 0, 182, 155, + 34, 174, 18, 66, 1, 124, 173, 154, 113, 56, 25, 13, 138, 18, + ], + [ + 55, 134, 66, 34, 135, 181, 181, 9, 132, 109, 116, 206, 120, 178, 211, 47, 53, 148, 149, + 115, 173, 120, 236, 5, 58, 69, 176, 237, 73, 147, 106, 47, + ], + [ + 158, 35, 158, 179, 82, 219, 196, 82, 60, 250, 48, 96, 3, 113, 101, 66, 35, 143, 232, + 102, 166, 223, 93, 32, 125, 45, 235, 133, 189, 37, 139, 18, + ], + [ + 10, 247, 120, 27, 215, 183, 216, 124, 175, 48, 103, 247, 34, 165, 86, 118, 173, 252, + 154, 253, 25, 249, 106, 175, 73, 29, 109, 255, 8, 131, 131, 10, + ], + [ + 157, 228, 177, 8, 79, 14, 148, 44, 112, 58, 0, 43, 124, 26, 238, 145, 31, 240, 212, + 214, 50, 56, 8, 37, 162, 19, 47, 237, 128, 152, 97, 12, + ], + [ + 89, 136, 71, 53, 83, 53, 243, 10, 123, 130, 170, 24, 167, 121, 41, 40, 148, 89, 117, + 122, 123, 30, 110, 13, 240, 219, 58, 200, 65, 26, 61, 44, + ], + [ + 156, 55, 245, 59, 198, 161, 112, 207, 14, 229, 66, 65, 138, 39, 231, 216, 200, 235, 25, + 219, 204, 38, 32, 167, 134, 247, 41, 188, 166, 147, 85, 55, + ], + ], + [ + [ + 233, 92, 75, 182, 82, 75, 137, 98, 145, 215, 248, 100, 63, 227, 162, 169, 113, 40, 221, + 59, 2, 250, 220, 112, 132, 129, 250, 177, 8, 101, 164, 8, + ], + [ + 31, 38, 71, 251, 116, 153, 63, 32, 236, 124, 90, 46, 197, 165, 160, 131, 250, 189, 241, + 82, 157, 233, 201, 163, 118, 11, 216, 15, 33, 90, 101, 5, + ], + [ + 82, 156, 93, 235, 57, 86, 36, 76, 10, 134, 151, 132, 254, 98, 48, 157, 111, 45, 76, + 195, 253, 218, 46, 2, 173, 142, 75, 218, 42, 54, 73, 15, + ], + [ + 59, 182, 126, 198, 69, 64, 199, 105, 134, 90, 186, 27, 217, 143, 228, 145, 122, 150, + 91, 236, 213, 134, 172, 191, 182, 40, 246, 159, 31, 217, 88, 27, + ], + [ + 196, 28, 79, 113, 123, 215, 117, 42, 34, 17, 152, 218, 135, 254, 95, 214, 11, 224, 139, + 61, 142, 110, 220, 197, 153, 144, 149, 233, 74, 146, 63, 7, + ], + [ + 27, 38, 138, 60, 32, 242, 80, 37, 33, 219, 27, 181, 40, 238, 146, 248, 109, 102, 248, + 210, 191, 96, 45, 228, 120, 76, 244, 62, 177, 201, 55, 17, + ], + [ + 81, 219, 130, 197, 159, 89, 150, 166, 78, 19, 4, 125, 2, 112, 255, 111, 2, 158, 160, + 81, 195, 82, 139, 20, 156, 54, 0, 128, 78, 241, 177, 46, + ], + [ + 6, 236, 47, 125, 243, 52, 250, 71, 17, 75, 21, 146, 229, 56, 210, 203, 231, 210, 39, + 170, 202, 114, 14, 199, 67, 74, 203, 97, 155, 186, 171, 20, + ], + ], + [ + [ + 158, 124, 26, 65, 178, 248, 144, 218, 104, 25, 157, 123, 70, 74, 14, 224, 180, 141, 73, + 53, 170, 128, 16, 99, 206, 127, 195, 128, 130, 243, 78, 48, + ], + [ + 36, 86, 7, 238, 107, 51, 95, 192, 105, 21, 3, 175, 244, 132, 71, 95, 176, 177, 37, 191, + 229, 238, 174, 51, 24, 167, 55, 176, 224, 205, 82, 43, + ], + [ + 136, 128, 95, 139, 143, 114, 236, 145, 6, 225, 197, 17, 55, 175, 53, 58, 25, 247, 29, + 140, 117, 43, 202, 117, 245, 202, 62, 46, 137, 57, 77, 9, + ], + [ + 127, 245, 39, 235, 242, 22, 144, 158, 100, 135, 219, 155, 91, 192, 73, 60, 225, 231, + 25, 84, 215, 52, 125, 43, 20, 45, 223, 178, 108, 59, 203, 16, + ], + [ + 148, 178, 74, 27, 251, 145, 203, 17, 208, 119, 184, 84, 117, 0, 241, 206, 166, 222, + 187, 106, 157, 202, 125, 129, 14, 89, 175, 187, 23, 159, 126, 55, + ], + [ + 114, 4, 75, 157, 83, 233, 5, 108, 158, 88, 53, 99, 8, 186, 204, 172, 120, 171, 248, 43, + 48, 207, 38, 111, 138, 225, 143, 83, 209, 105, 105, 37, + ], + [ + 92, 59, 72, 113, 151, 252, 46, 138, 65, 212, 75, 197, 200, 119, 255, 6, 66, 114, 189, + 247, 23, 249, 124, 92, 47, 173, 213, 55, 128, 69, 145, 0, + ], + [ + 22, 114, 108, 240, 146, 117, 172, 126, 46, 221, 36, 250, 171, 77, 187, 18, 38, 212, + 212, 52, 42, 251, 64, 90, 240, 227, 253, 15, 18, 125, 168, 1, + ], + ], + [ + [ + 186, 129, 70, 211, 209, 123, 234, 4, 142, 210, 52, 75, 0, 165, 181, 253, 213, 180, 1, + 26, 175, 236, 137, 95, 51, 205, 8, 153, 161, 113, 70, 48, + ], + [ + 211, 79, 54, 21, 140, 133, 28, 234, 69, 33, 148, 67, 237, 83, 252, 208, 124, 149, 83, + 176, 134, 112, 148, 157, 239, 4, 185, 88, 111, 40, 62, 7, + ], + [ + 180, 162, 213, 99, 227, 21, 244, 143, 151, 86, 246, 138, 9, 110, 92, 15, 219, 95, 149, + 64, 82, 58, 85, 201, 2, 168, 105, 198, 252, 15, 21, 33, + ], + [ + 238, 242, 147, 203, 56, 47, 195, 175, 121, 150, 66, 19, 29, 125, 247, 37, 225, 233, + 248, 120, 250, 40, 194, 36, 124, 245, 20, 70, 213, 211, 179, 27, + ], + [ + 242, 105, 72, 107, 136, 229, 105, 29, 230, 84, 124, 18, 45, 141, 155, 6, 97, 175, 95, + 95, 0, 4, 19, 166, 109, 241, 230, 239, 164, 149, 186, 52, + ], + [ + 1, 82, 33, 143, 210, 61, 135, 113, 67, 115, 94, 12, 152, 184, 122, 63, 9, 113, 248, 26, + 121, 49, 198, 28, 239, 249, 37, 44, 227, 142, 11, 63, + ], + [ + 141, 102, 219, 141, 89, 219, 109, 104, 45, 114, 10, 166, 184, 102, 70, 195, 113, 68, + 13, 96, 100, 28, 99, 64, 139, 172, 150, 189, 54, 35, 5, 16, + ], + [ + 226, 23, 65, 200, 163, 177, 166, 155, 32, 24, 126, 141, 136, 199, 29, 214, 185, 111, + 48, 116, 38, 107, 66, 40, 42, 151, 106, 247, 65, 198, 12, 18, + ], + ], + [ + [ + 11, 57, 245, 10, 120, 212, 154, 224, 122, 18, 200, 9, 192, 66, 247, 130, 124, 226, 39, + 100, 91, 114, 249, 21, 221, 158, 71, 64, 87, 180, 147, 61, + ], + [ + 37, 54, 176, 141, 253, 46, 101, 178, 149, 5, 94, 50, 150, 19, 8, 243, 238, 54, 66, 215, + 149, 62, 233, 236, 150, 146, 115, 42, 56, 15, 139, 52, + ], + [ + 54, 70, 131, 252, 109, 145, 35, 237, 41, 156, 62, 251, 130, 172, 131, 215, 50, 13, 168, + 3, 149, 189, 158, 245, 40, 211, 35, 247, 190, 218, 68, 31, + ], + [ + 97, 18, 186, 126, 155, 90, 103, 122, 159, 64, 119, 250, 254, 3, 125, 97, 78, 132, 97, + 20, 24, 36, 13, 6, 160, 106, 10, 38, 137, 196, 82, 59, + ], + [ + 83, 183, 38, 131, 224, 55, 36, 131, 250, 50, 98, 62, 53, 31, 186, 3, 59, 193, 44, 178, + 167, 60, 7, 31, 17, 197, 225, 87, 77, 201, 175, 50, + ], + [ + 166, 65, 53, 61, 2, 156, 230, 20, 187, 218, 252, 134, 254, 199, 189, 164, 61, 159, 23, + 37, 253, 230, 212, 38, 189, 174, 98, 199, 120, 113, 184, 46, + ], + [ + 38, 212, 175, 135, 83, 126, 242, 192, 211, 177, 211, 133, 235, 210, 36, 196, 46, 174, + 42, 9, 38, 72, 180, 212, 25, 76, 60, 244, 160, 252, 226, 52, + ], + [ + 9, 186, 189, 28, 93, 244, 73, 59, 139, 98, 224, 159, 137, 187, 244, 145, 248, 78, 122, + 176, 76, 77, 126, 35, 71, 70, 152, 33, 154, 40, 47, 8, + ], + ], + [ + [ + 94, 74, 53, 248, 123, 40, 164, 191, 101, 131, 134, 77, 92, 11, 113, 23, 119, 101, 67, + 184, 14, 138, 91, 152, 10, 50, 206, 226, 114, 50, 153, 38, + ], + [ + 70, 24, 160, 108, 135, 70, 121, 130, 110, 115, 249, 98, 163, 92, 182, 121, 140, 170, + 43, 109, 119, 200, 93, 198, 144, 155, 40, 165, 116, 110, 83, 59, + ], + [ + 13, 111, 207, 211, 162, 206, 0, 87, 64, 221, 186, 206, 200, 25, 249, 40, 163, 157, 217, + 108, 151, 40, 35, 149, 112, 144, 3, 223, 7, 239, 84, 27, + ], + [ + 123, 7, 143, 59, 246, 209, 168, 75, 236, 100, 37, 50, 57, 242, 6, 74, 175, 206, 53, + 213, 100, 11, 124, 103, 34, 250, 34, 134, 171, 72, 96, 26, + ], + [ + 60, 211, 255, 163, 224, 254, 242, 177, 84, 221, 102, 62, 71, 95, 142, 146, 101, 6, 167, + 153, 65, 139, 49, 248, 206, 27, 116, 138, 191, 104, 173, 61, + ], + [ + 117, 248, 184, 111, 92, 89, 176, 208, 186, 103, 174, 104, 91, 39, 254, 211, 76, 235, + 186, 171, 140, 209, 163, 40, 128, 223, 238, 208, 174, 221, 7, 32, + ], + [ + 15, 175, 163, 23, 221, 182, 136, 48, 98, 253, 118, 47, 232, 19, 69, 81, 113, 107, 230, + 69, 64, 87, 123, 226, 59, 240, 192, 34, 182, 24, 75, 54, + ], + [ + 200, 246, 135, 47, 106, 173, 187, 66, 101, 71, 151, 84, 100, 193, 113, 156, 71, 60, + 224, 247, 238, 27, 214, 105, 25, 8, 215, 175, 211, 72, 152, 50, + ], + ], + [ + [ + 11, 177, 54, 174, 134, 45, 96, 29, 9, 32, 202, 41, 30, 87, 38, 235, 103, 175, 59, 65, + 34, 62, 230, 27, 51, 229, 143, 20, 250, 88, 49, 13, + ], + [ + 87, 251, 224, 97, 90, 123, 60, 173, 91, 250, 215, 196, 210, 111, 58, 198, 29, 127, 17, + 192, 116, 130, 106, 223, 111, 179, 160, 19, 165, 77, 156, 35, + ], + [ + 228, 124, 114, 35, 183, 22, 90, 239, 18, 23, 66, 210, 98, 54, 229, 152, 173, 58, 197, + 212, 179, 59, 46, 118, 71, 8, 205, 134, 221, 142, 49, 36, + ], + [ + 97, 172, 167, 10, 48, 141, 55, 10, 206, 107, 10, 234, 141, 228, 243, 71, 219, 231, 255, + 127, 65, 87, 122, 172, 51, 255, 202, 73, 57, 233, 54, 56, + ], + [ + 218, 201, 81, 10, 208, 235, 255, 195, 207, 199, 247, 55, 152, 186, 219, 173, 46, 254, + 116, 54, 25, 159, 121, 178, 6, 197, 64, 24, 165, 163, 254, 27, + ], + [ + 199, 51, 104, 153, 21, 83, 213, 132, 151, 210, 221, 160, 191, 61, 32, 39, 116, 202, + 190, 68, 168, 8, 206, 34, 76, 101, 91, 56, 234, 195, 177, 36, + ], + [ + 200, 156, 175, 110, 211, 162, 86, 81, 86, 181, 99, 37, 39, 70, 77, 2, 181, 145, 157, + 169, 145, 213, 47, 162, 60, 26, 123, 27, 69, 95, 111, 43, + ], + [ + 30, 40, 191, 205, 195, 141, 30, 180, 227, 90, 168, 109, 254, 194, 197, 47, 47, 158, + 151, 92, 119, 93, 22, 48, 71, 132, 50, 156, 11, 56, 60, 24, + ], + ], + [ + [ + 97, 236, 10, 82, 54, 165, 11, 222, 119, 226, 142, 250, 85, 73, 71, 5, 130, 185, 152, + 10, 38, 191, 159, 228, 39, 47, 7, 123, 206, 29, 63, 38, + ], + [ + 63, 93, 78, 222, 254, 85, 222, 188, 119, 75, 202, 250, 75, 37, 247, 183, 250, 248, 44, + 137, 207, 242, 186, 236, 175, 255, 203, 108, 22, 25, 86, 3, + ], + [ + 66, 175, 216, 225, 118, 129, 106, 102, 143, 170, 241, 201, 21, 1, 14, 89, 249, 49, 143, + 24, 17, 12, 166, 116, 29, 109, 134, 183, 99, 174, 81, 37, + ], + [ + 197, 95, 177, 171, 196, 1, 233, 30, 98, 64, 186, 21, 34, 102, 54, 128, 110, 217, 3, 49, + 99, 164, 192, 114, 104, 45, 7, 144, 94, 62, 16, 61, + ], + [ + 98, 86, 153, 20, 228, 157, 201, 70, 53, 155, 58, 84, 87, 140, 55, 16, 52, 29, 87, 106, + 98, 147, 35, 71, 160, 18, 82, 216, 95, 244, 124, 45, + ], + [ + 242, 37, 85, 138, 93, 10, 117, 237, 63, 244, 73, 17, 187, 70, 150, 137, 148, 180, 139, + 39, 229, 169, 1, 46, 243, 136, 170, 65, 51, 64, 34, 8, + ], + [ + 106, 96, 176, 162, 206, 47, 28, 119, 20, 102, 105, 144, 240, 117, 54, 120, 21, 220, 87, + 50, 191, 53, 87, 35, 135, 229, 145, 33, 96, 101, 129, 38, + ], + [ + 166, 50, 224, 123, 255, 237, 250, 219, 171, 90, 189, 230, 77, 15, 184, 248, 42, 245, + 240, 71, 209, 160, 244, 146, 72, 164, 139, 171, 242, 118, 62, 26, + ], + ], + [ + [ + 176, 240, 195, 230, 203, 40, 73, 83, 30, 77, 37, 58, 215, 19, 113, 147, 218, 57, 68, + 214, 129, 183, 139, 254, 131, 136, 216, 77, 185, 153, 140, 12, + ], + [ + 174, 253, 75, 3, 63, 87, 254, 53, 165, 243, 14, 41, 65, 7, 178, 91, 20, 111, 153, 155, + 23, 89, 87, 37, 105, 23, 204, 147, 189, 113, 94, 2, + ], + [ + 218, 122, 7, 174, 69, 151, 16, 100, 230, 16, 187, 104, 238, 221, 124, 137, 157, 148, + 222, 48, 86, 3, 71, 115, 64, 244, 81, 206, 205, 128, 41, 38, + ], + [ + 105, 132, 64, 84, 221, 69, 102, 124, 171, 223, 164, 67, 156, 97, 234, 192, 157, 110, + 215, 207, 127, 75, 159, 90, 243, 153, 13, 168, 51, 78, 121, 21, + ], + [ + 124, 100, 211, 110, 134, 174, 177, 107, 84, 71, 156, 178, 27, 156, 130, 141, 190, 112, + 114, 107, 8, 10, 227, 230, 169, 165, 46, 162, 126, 47, 219, 21, + ], + [ + 174, 109, 63, 1, 208, 183, 47, 213, 241, 116, 48, 79, 112, 250, 39, 77, 205, 232, 183, + 125, 65, 147, 180, 37, 118, 143, 209, 157, 0, 165, 131, 35, + ], + [ + 171, 239, 114, 71, 235, 47, 49, 6, 184, 165, 133, 4, 30, 222, 236, 244, 145, 233, 148, + 50, 228, 226, 223, 139, 224, 213, 38, 123, 117, 85, 230, 42, + ], + [ + 153, 172, 236, 117, 32, 68, 60, 120, 241, 40, 227, 98, 64, 137, 114, 1, 21, 216, 57, + 244, 116, 137, 172, 13, 181, 160, 230, 67, 60, 188, 218, 58, + ], + ], +]; + +pub fn generator() -> pallas::Affine { + pallas::Affine::from_xy( + pallas::Base::from_repr(GENERATOR.0).unwrap(), + pallas::Base::from_repr(GENERATOR.1).unwrap(), + ) + .unwrap() +} + +#[cfg(test)] +mod tests { + use super::super::{COMMIT_IVK_PERSONALIZATION, NUM_WINDOWS}; + use super::*; + use group::Curve; + use halo2_gadgets::{ + ecc::chip::constants::{test_lagrange_coeffs, test_zs_and_us}, + sinsemilla::primitives::CommitDomain, + }; + use pasta_curves::{arithmetic::CurveAffine, pallas}; + + #[test] + fn generator() { + let domain = CommitDomain::new(COMMIT_IVK_PERSONALIZATION); + let point = domain.R(); + let coords = point.to_affine().coordinates().unwrap(); + + assert_eq!(*coords.x(), pallas::Base::from_repr(GENERATOR.0).unwrap()); + assert_eq!(*coords.y(), pallas::Base::from_repr(GENERATOR.1).unwrap()); + } + + #[test] + fn lagrange_coeffs() { + let base = super::generator(); + test_lagrange_coeffs(base, NUM_WINDOWS); + } + + #[test] + fn z() { + let base = super::generator(); + test_zs_and_us(base, &Z, &U, NUM_WINDOWS); + } +} diff --git a/zk-crates/zk-headstash/src/constants/fixed_bases/jubjub_g.rs b/zk-crates/zk-headstash/src/constants/fixed_bases/jubjub_g.rs new file mode 100644 index 0000000..de4f02d --- /dev/null +++ b/zk-crates/zk-headstash/src/constants/fixed_bases/jubjub_g.rs @@ -0,0 +1,115 @@ + + + +// use ff::PrimeField; +// use group::cofactor::CofactorCurveAffine; +// use group::Group; +// use group::GroupEncoding; +// use halo2_gadgets::ecc::chip::find_zs_and_us; +// use jubjub::Fq; +// use jubjub::Fr; +// use jubjub::SubgroupPoint; +// use jubjub::{AffinePoint, ExtendedPoint}; +// use pasta_curves::arithmetic::CurveAffine; +// use pasta_curves::pallas; +// use pasta_curves::Fp; +// use subtle::Choice; + +// use crate::constants::fixed_bases::NUM_WINDOWS; + +// /// (u,v) coordinates +// pub const GENERATOR: ([u8; 32], [u8; 32]) = ( +// [ +// 55, 67, 102, 147, 119, 59, 206, 59, 78, 116, 3, 175, 65, 218, 216, 209, 180, 4, 128, 213, +// 106, 130, 246, 127, 252, 28, 0, 15, 250, 244, 0, 104, +// ], +// [ +// 139, 106, 11, 56, 185, 250, 174, 60, 59, 128, 59, 71, 176, 241, 70, 173, 80, 171, 34, 30, +// 110, 42, 251, 230, 219, 222, 69, 203, 169, 211, 129, 109, +// ], +// ); + +// // ... existing imports ... +// /// The byte-encoding of the basepoint for `BindingSig`. +// // Extracted ad-hoc from librustzcash +// // XXX add tests for this value. +// pub const BINDINGSIG_BASEPOINT_BYTES: [u8; 32] = [ +// 139, 106, 11, 56, 185, 250, 174, 60, 59, 128, 59, 71, 176, 241, 70, 173, 80, 171, 34, 30, 110, +// 42, 251, 230, 219, 222, 69, 203, 169, 211, 129, 237, +// ]; + +// #[test] +// pub fn test_conversion() { +// use jubjub::{AffinePoint, ExtendedPoint, Fr, SubgroupPoint}; +// use rand::thread_rng; +// use redjubjub::*; +// // Get the **redjubjub** generator point in the prime‑order subgroup +// // (the base point used for signing keys) +// let jj_base_point = ExtendedPoint::from_bytes(&BINDINGSIG_BASEPOINT_BYTES).unwrap(); +// let gen_affine = AffinePoint::from(jj_base_point); + +// println!( +// "BINDINGSIG_BASEPOINT_BYTES: {:?}", +// BINDINGSIG_BASEPOINT_BYTES +// ); + +// // The coordinates `u` and `v` are already `pasta_curves::Fp` values. +// let u: Fq = gen_affine.get_u(); +// let v = gen_affine.get_v(); + +// // Verify that they are canonical field elements by round‑tripping +// // through `to_repr` / `from_repr`. +// assert_eq!(Fp::from_repr(u.to_repr()).is_some().unwrap_u8(), 1); +// assert_eq!(Fp::from_repr(v.to_repr()).is_some().unwrap_u8(), 1); + +// // Print generator coordinates for reference (optional) +// println!("Base point u: {:?}", u); +// println!("Base point v: {:?}", v); + +// println!("jub_u_affine: {:?}", u); +// println!("jub_v_affine: {:?}", v); + +// // Generate a secret key and sign a message +// let sk = SigningKey::::new(thread_rng()); +// let msg = b"Its rainin' mah fuckas!"; +// let sig = sk.sign(thread_rng(), msg); + +// // Get the verification key from the secret key +// let vk = VerificationKey::from(&sk); +// let vk_bytes: [u8; 32] = vk.into(); // Compressed public key bytes + +// // ---- Fixed part: obtain the scalar that `sk` wraps ---- +// let sk_scalar: Fr = Fr::from_repr(sk.into()).unwrap(); // extracts the secret scalar +// let sk_fp: Fp = Fp::from_repr(sk.into()).unwrap(); // extracts the secret scalar + +// // impossible to derive the jubjub generator point to a field-point for the pallas curve +// // (jubjub_G -> pallas::Fp(jubjub_G)) +// // needed for +// // --------------------------------------------------------- +// assert_eq!( +// Fp::from_repr(jj_base_point.to_bytes()) +// .is_some() +// .unwrap_u8(), +// 0 +// ); + +// // Manually compute the public key: pubkey = [sk_scalar] * base_point +// let manual_pubkey_point = jj_base_point * sk_scalar; // Scalar multiplication +// let manual_pubkey_affine = AffinePoint::from(manual_pubkey_point); +// let manual_vk_bytes = manual_pubkey_affine.to_bytes(); // Compressed bytes + +// // Assert that the manually computed public key matches the one from VerificationKey +// assert_eq!( +// manual_vk_bytes, vk_bytes, +// "Public key derivation does not match" +// ); +// // Verify the signature for additional correctness + +// let sig: Signature = sig.into(); +// assert!( +// VerificationKey::try_from(manual_vk_bytes) +// .and_then(|pk| pk.verify(msg, &sig)) +// .is_ok(), +// "Signature verification failed" +// ); +// } diff --git a/zk-crates/zk-headstash/src/constants/fixed_bases/note_commit_r.rs b/zk-crates/zk-headstash/src/constants/fixed_bases/note_commit_r.rs new file mode 100644 index 0000000..2d0e8e6 --- /dev/null +++ b/zk-crates/zk-headstash/src/constants/fixed_bases/note_commit_r.rs @@ -0,0 +1,2964 @@ +use group::ff::PrimeField; +use pasta_curves::{arithmetic::CurveAffine, pallas}; + +/// Generator used in SinsemillaCommit randomness for note commitment. +pub const GENERATOR: ([u8; 32], [u8; 32]) = ( + [ + 19, 110, 252, 15, 72, 44, 2, 44, 124, 164, 20, 252, 92, 197, 158, 35, 242, 61, 111, 147, + 171, 159, 35, 205, 51, 69, 169, 40, 195, 6, 178, 38, + ], + [ + 227, 55, 207, 34, 198, 83, 65, 195, 246, 220, 224, 35, 120, 192, 199, 121, 198, 225, 102, + 35, 47, 26, 84, 169, 76, 192, 109, 104, 75, 86, 222, 60, + ], +); + +/// Full-width z-values for GENERATOR. +/// These can be reproduced by [`halo2_gadgets::ecc::chip::constants::find_zs_and_us`]. +pub const Z: [u64; super::NUM_WINDOWS] = [ + 253356, 149209, 114903, 10575, 6973, 30969, 55415, 206450, 18453, 24528, 13099, 213949, 29959, + 49929, 80867, 17465, 43715, 80241, 55983, 132629, 66101, 24136, 31372, 107975, 161748, 24107, + 72184, 9338, 232543, 13519, 33536, 32530, 130885, 41578, 18166, 91947, 59796, 35560, 5631, + 158600, 24695, 42654, 138331, 11268, 54733, 92869, 33770, 169166, 94853, 7006, 117687, 8073, + 11865, 15349, 186445, 7696, 25167, 30146, 277659, 53921, 19594, 41306, 30172, 8124, 46133, + 38659, 61965, 92134, 43958, 86662, 2047, 3542, 20976, 7411, 53574, 38271, 48233, 65338, 30516, + 41201, 40964, 8563, 36035, 6334, 176, +]; + +/// Full-width u-values for GENERATOR. +/// These can be reproduced by [`halo2_gadgets::ecc::chip::constants::find_zs_and_us`]. +pub static U: [[[u8; 32]; super::H]; super::NUM_WINDOWS] = [ + [ + [ + 114, 245, 9, 0, 5, 43, 7, 118, 244, 43, 15, 200, 116, 210, 0, 24, 161, 28, 185, 152, + 216, 107, 69, 189, 146, 74, 72, 71, 79, 117, 226, 21, + ], + [ + 198, 234, 165, 117, 60, 32, 158, 128, 245, 251, 167, 51, 94, 222, 84, 164, 93, 252, 6, + 172, 219, 79, 238, 23, 10, 251, 127, 190, 92, 247, 84, 7, + ], + [ + 247, 1, 1, 220, 151, 35, 250, 127, 20, 73, 141, 158, 41, 239, 31, 53, 87, 128, 115, 67, + 105, 106, 106, 227, 24, 13, 193, 27, 11, 59, 156, 12, + ], + [ + 182, 18, 28, 164, 222, 215, 93, 217, 191, 112, 205, 228, 10, 41, 225, 115, 16, 106, + 253, 86, 190, 158, 170, 163, 242, 182, 199, 91, 54, 66, 87, 45, + ], + [ + 85, 233, 2, 251, 58, 85, 151, 41, 171, 17, 163, 129, 14, 53, 149, 170, 49, 242, 59, 95, + 195, 86, 152, 140, 191, 194, 135, 96, 61, 247, 224, 19, + ], + [ + 9, 26, 141, 163, 30, 34, 167, 73, 162, 45, 13, 19, 213, 4, 222, 207, 61, 172, 202, 243, + 122, 40, 68, 21, 175, 213, 86, 213, 254, 227, 101, 15, + ], + [ + 86, 112, 227, 11, 213, 132, 173, 162, 105, 136, 218, 34, 136, 252, 237, 146, 166, 198, + 142, 26, 59, 222, 162, 186, 51, 155, 102, 60, 62, 47, 222, 4, + ], + [ + 86, 92, 45, 23, 81, 81, 61, 194, 172, 21, 21, 83, 38, 217, 43, 44, 235, 231, 88, 89, + 249, 41, 181, 159, 83, 22, 75, 138, 70, 126, 207, 16, + ], + ], + [ + [ + 54, 21, 251, 114, 55, 147, 20, 211, 33, 240, 173, 252, 164, 174, 133, 65, 206, 140, 93, + 20, 42, 49, 181, 104, 21, 120, 234, 196, 70, 100, 73, 42, + ], + [ + 238, 4, 102, 31, 21, 150, 35, 139, 86, 204, 115, 87, 148, 16, 158, 189, 161, 53, 20, + 94, 238, 188, 243, 68, 91, 3, 117, 235, 245, 98, 110, 2, + ], + [ + 71, 0, 3, 234, 114, 242, 86, 47, 159, 35, 98, 250, 218, 203, 192, 75, 15, 24, 202, 7, + 142, 99, 58, 79, 13, 158, 200, 188, 138, 62, 146, 46, + ], + [ + 110, 160, 81, 239, 206, 110, 48, 235, 48, 53, 5, 146, 193, 225, 227, 102, 163, 114, + 159, 188, 166, 215, 24, 17, 124, 185, 233, 142, 97, 16, 247, 53, + ], + [ + 5, 74, 101, 186, 155, 171, 161, 12, 114, 102, 185, 130, 202, 125, 97, 157, 214, 109, + 90, 55, 78, 151, 78, 233, 114, 32, 38, 167, 230, 47, 114, 43, + ], + [ + 43, 145, 156, 91, 52, 42, 252, 255, 165, 106, 190, 113, 140, 48, 74, 56, 231, 74, 233, + 182, 111, 200, 49, 231, 139, 33, 38, 157, 185, 84, 190, 60, + ], + [ + 35, 64, 214, 183, 170, 176, 163, 222, 136, 23, 64, 62, 90, 18, 25, 78, 171, 169, 203, + 242, 161, 64, 191, 204, 85, 79, 54, 130, 184, 99, 198, 38, + ], + [ + 6, 238, 153, 49, 156, 138, 236, 90, 155, 111, 98, 17, 43, 249, 193, 244, 33, 204, 245, + 189, 174, 217, 152, 5, 133, 155, 139, 239, 164, 120, 180, 8, + ], + ], + [ + [ + 233, 129, 153, 212, 169, 73, 235, 118, 37, 78, 183, 222, 115, 222, 111, 212, 174, 24, + 102, 40, 189, 47, 223, 108, 201, 62, 19, 230, 93, 6, 207, 6, + ], + [ + 10, 125, 165, 221, 218, 11, 142, 131, 27, 0, 193, 244, 189, 149, 150, 127, 192, 16, + 251, 0, 79, 224, 118, 106, 158, 229, 58, 190, 27, 199, 70, 44, + ], + [ + 47, 93, 253, 7, 216, 219, 104, 144, 107, 172, 234, 91, 107, 52, 121, 5, 45, 214, 148, + 39, 118, 243, 128, 223, 42, 130, 88, 198, 89, 37, 10, 40, + ], + [ + 24, 208, 204, 230, 65, 96, 241, 136, 121, 22, 15, 171, 27, 48, 41, 212, 157, 228, 185, + 202, 141, 243, 68, 217, 60, 108, 115, 188, 211, 131, 67, 41, + ], + [ + 190, 202, 105, 68, 170, 47, 201, 132, 190, 190, 166, 225, 7, 107, 65, 69, 109, 193, 47, + 14, 223, 26, 63, 185, 78, 230, 218, 0, 146, 143, 144, 0, + ], + [ + 166, 38, 45, 231, 156, 245, 176, 191, 52, 176, 212, 147, 13, 162, 132, 4, 8, 238, 204, + 24, 112, 250, 234, 42, 224, 153, 250, 69, 56, 41, 114, 34, + ], + [ + 171, 36, 217, 169, 17, 204, 156, 28, 33, 25, 229, 73, 250, 40, 65, 166, 92, 68, 77, + 151, 246, 87, 239, 237, 47, 250, 65, 58, 41, 64, 29, 13, + ], + [ + 17, 52, 107, 231, 186, 222, 120, 227, 138, 150, 6, 62, 222, 26, 253, 222, 252, 69, 140, + 137, 103, 210, 248, 27, 241, 171, 195, 56, 114, 101, 22, 6, + ], + ], + [ + [ + 167, 249, 74, 41, 45, 5, 43, 197, 190, 158, 48, 58, 214, 194, 196, 48, 163, 111, 197, + 83, 203, 83, 193, 101, 43, 228, 53, 170, 170, 190, 223, 22, + ], + [ + 162, 191, 69, 35, 204, 166, 151, 23, 131, 224, 254, 194, 233, 234, 193, 6, 70, 175, 56, + 93, 247, 40, 95, 84, 133, 73, 73, 210, 110, 187, 131, 18, + ], + [ + 86, 251, 193, 249, 206, 104, 190, 79, 14, 228, 247, 226, 227, 1, 142, 53, 81, 147, 128, + 242, 205, 74, 216, 186, 139, 15, 7, 103, 248, 58, 67, 38, + ], + [ + 141, 211, 222, 46, 115, 150, 90, 79, 200, 197, 108, 95, 129, 77, 116, 216, 231, 125, + 21, 48, 248, 132, 112, 71, 112, 37, 146, 179, 113, 163, 176, 52, + ], + [ + 118, 76, 20, 77, 119, 186, 56, 50, 222, 250, 197, 240, 220, 202, 194, 207, 254, 50, 5, + 161, 165, 0, 49, 111, 45, 160, 220, 7, 202, 110, 89, 50, + ], + [ + 102, 37, 174, 173, 77, 58, 49, 245, 204, 1, 199, 86, 184, 110, 17, 46, 126, 117, 147, + 199, 52, 11, 59, 7, 23, 192, 10, 183, 9, 203, 47, 63, + ], + [ + 80, 3, 3, 232, 195, 68, 22, 157, 76, 193, 50, 194, 229, 96, 221, 86, 166, 92, 177, 234, + 210, 181, 234, 159, 182, 146, 34, 172, 4, 135, 41, 44, + ], + [ + 251, 99, 183, 95, 90, 221, 38, 54, 26, 124, 224, 152, 204, 56, 15, 10, 123, 235, 151, + 73, 105, 106, 24, 173, 164, 213, 225, 110, 98, 59, 133, 2, + ], + ], + [ + [ + 164, 185, 168, 158, 213, 198, 142, 64, 83, 152, 213, 11, 100, 189, 236, 113, 45, 181, + 112, 106, 135, 24, 198, 226, 203, 63, 78, 3, 226, 180, 74, 10, + ], + [ + 189, 212, 60, 126, 110, 69, 152, 122, 85, 34, 9, 19, 22, 248, 13, 32, 135, 61, 19, 215, + 200, 213, 219, 231, 220, 119, 92, 75, 219, 5, 120, 40, + ], + [ + 146, 245, 8, 160, 80, 125, 123, 131, 78, 50, 225, 183, 20, 25, 103, 1, 230, 84, 156, + 252, 244, 204, 172, 164, 252, 118, 213, 130, 204, 37, 91, 11, + ], + [ + 142, 4, 206, 226, 62, 227, 19, 91, 196, 199, 182, 237, 73, 168, 222, 152, 4, 82, 70, + 114, 57, 114, 229, 181, 134, 59, 0, 208, 176, 183, 218, 30, + ], + [ + 64, 30, 209, 160, 131, 75, 126, 41, 130, 105, 95, 99, 233, 182, 221, 1, 39, 231, 206, + 9, 47, 25, 170, 24, 14, 249, 62, 68, 42, 68, 198, 6, + ], + [ + 171, 100, 218, 125, 75, 158, 24, 198, 25, 157, 232, 195, 15, 68, 34, 201, 219, 130, + 198, 107, 2, 101, 70, 250, 161, 168, 99, 10, 18, 233, 13, 24, + ], + [ + 93, 226, 47, 214, 188, 46, 157, 237, 214, 49, 235, 173, 68, 33, 184, 57, 185, 165, 77, + 217, 205, 103, 160, 63, 235, 254, 153, 164, 215, 239, 24, 53, + ], + [ + 168, 254, 143, 159, 235, 96, 14, 119, 152, 26, 156, 14, 149, 106, 16, 223, 73, 161, + 133, 220, 175, 139, 213, 210, 56, 30, 214, 161, 51, 20, 128, 17, + ], + ], + [ + [ + 90, 157, 237, 146, 6, 11, 72, 108, 27, 34, 77, 120, 242, 127, 35, 117, 189, 64, 45, 84, + 233, 127, 132, 119, 128, 130, 141, 201, 107, 122, 33, 62, + ], + [ + 205, 110, 229, 214, 93, 107, 183, 211, 172, 82, 194, 10, 68, 115, 182, 64, 59, 197, + 153, 86, 34, 235, 12, 128, 63, 71, 215, 108, 109, 223, 137, 51, + ], + [ + 215, 181, 7, 95, 143, 147, 43, 211, 208, 240, 5, 116, 105, 62, 141, 149, 67, 190, 237, + 211, 147, 81, 206, 163, 206, 127, 90, 89, 234, 173, 18, 43, + ], + [ + 171, 227, 107, 54, 113, 175, 138, 78, 159, 26, 107, 241, 64, 57, 153, 114, 237, 92, + 166, 85, 165, 104, 112, 131, 66, 27, 243, 179, 236, 14, 13, 39, + ], + [ + 74, 37, 91, 124, 254, 2, 191, 78, 0, 103, 90, 169, 99, 225, 232, 176, 213, 32, 172, + 134, 17, 146, 120, 74, 78, 79, 132, 142, 122, 222, 157, 45, + ], + [ + 95, 6, 241, 174, 101, 194, 254, 44, 170, 149, 90, 122, 227, 137, 151, 143, 227, 35, + 116, 144, 162, 87, 53, 70, 57, 37, 5, 66, 238, 197, 203, 6, + ], + [ + 114, 141, 200, 255, 187, 228, 255, 185, 248, 223, 241, 204, 71, 85, 159, 221, 108, 199, + 184, 101, 44, 141, 20, 17, 147, 245, 108, 154, 109, 126, 173, 52, + ], + [ + 176, 218, 48, 106, 6, 126, 6, 176, 103, 206, 215, 132, 17, 182, 174, 147, 102, 173, + 109, 141, 172, 86, 46, 28, 60, 224, 186, 110, 209, 106, 131, 9, + ], + ], + [ + [ + 5, 64, 1, 52, 210, 89, 32, 189, 231, 103, 255, 195, 129, 226, 88, 38, 122, 54, 105, 83, + 102, 200, 148, 152, 55, 224, 238, 104, 64, 140, 40, 44, + ], + [ + 18, 82, 230, 31, 144, 31, 240, 18, 127, 237, 48, 165, 173, 125, 216, 42, 162, 13, 28, + 124, 153, 18, 17, 45, 44, 176, 214, 60, 102, 153, 177, 18, + ], + [ + 10, 199, 20, 92, 238, 49, 31, 43, 38, 104, 38, 113, 88, 32, 207, 71, 229, 34, 106, 126, + 43, 249, 24, 17, 160, 207, 133, 37, 148, 115, 158, 50, + ], + [ + 221, 204, 123, 82, 227, 236, 230, 64, 31, 215, 60, 62, 158, 143, 0, 64, 155, 245, 217, + 56, 122, 32, 0, 101, 97, 50, 195, 253, 180, 102, 116, 54, + ], + [ + 197, 157, 252, 45, 151, 7, 74, 165, 127, 57, 241, 132, 58, 148, 23, 25, 109, 28, 57, + 57, 13, 248, 90, 58, 251, 218, 152, 10, 130, 155, 145, 47, + ], + [ + 206, 10, 180, 190, 173, 179, 139, 102, 34, 2, 20, 48, 56, 111, 227, 181, 51, 19, 215, + 182, 56, 33, 176, 226, 168, 79, 157, 199, 157, 171, 52, 36, + ], + [ + 137, 140, 87, 36, 181, 252, 224, 59, 74, 44, 185, 157, 233, 12, 11, 156, 101, 254, 117, + 18, 170, 253, 63, 99, 86, 216, 76, 79, 41, 143, 158, 48, + ], + [ + 125, 189, 147, 43, 201, 233, 79, 46, 181, 15, 208, 71, 166, 151, 8, 176, 113, 207, 120, + 143, 4, 233, 139, 219, 201, 39, 208, 28, 175, 67, 198, 9, + ], + ], + [ + [ + 22, 37, 53, 160, 237, 140, 57, 123, 148, 134, 144, 163, 194, 30, 81, 169, 197, 228, 71, + 38, 137, 208, 166, 114, 242, 79, 76, 62, 162, 120, 252, 14, + ], + [ + 190, 105, 199, 169, 19, 226, 70, 173, 140, 172, 222, 75, 102, 132, 53, 177, 25, 6, 31, + 202, 0, 6, 243, 47, 53, 103, 175, 18, 201, 165, 9, 12, + ], + [ + 106, 129, 69, 5, 170, 151, 240, 186, 237, 175, 20, 253, 40, 36, 236, 149, 101, 108, + 117, 163, 42, 3, 159, 177, 223, 198, 149, 23, 235, 129, 28, 59, + ], + [ + 133, 72, 190, 211, 56, 227, 246, 179, 101, 144, 136, 137, 144, 142, 226, 105, 34, 78, + 109, 103, 159, 87, 255, 103, 169, 40, 239, 110, 131, 156, 159, 12, + ], + [ + 245, 215, 211, 148, 84, 236, 188, 64, 63, 204, 85, 19, 186, 176, 159, 77, 234, 187, 87, + 224, 232, 22, 67, 84, 104, 130, 82, 181, 103, 186, 96, 36, + ], + [ + 81, 145, 145, 5, 218, 219, 75, 245, 176, 51, 163, 96, 41, 53, 68, 66, 178, 46, 132, + 255, 156, 136, 171, 119, 128, 182, 9, 125, 159, 93, 6, 24, + ], + [ + 174, 192, 45, 222, 156, 253, 141, 108, 134, 16, 64, 169, 140, 214, 116, 85, 206, 19, + 143, 90, 191, 122, 191, 50, 120, 242, 12, 250, 50, 89, 166, 1, + ], + [ + 145, 122, 108, 141, 163, 122, 96, 198, 250, 29, 56, 173, 56, 129, 5, 192, 14, 164, 151, + 18, 232, 155, 23, 242, 150, 129, 184, 71, 42, 211, 34, 37, + ], + ], + [ + [ + 189, 187, 66, 97, 29, 216, 85, 51, 152, 120, 220, 104, 253, 201, 53, 132, 65, 240, 252, + 220, 227, 35, 99, 171, 171, 146, 144, 19, 202, 90, 91, 41, + ], + [ + 72, 152, 255, 229, 122, 94, 187, 103, 248, 26, 154, 126, 54, 68, 234, 8, 202, 208, 155, + 99, 159, 223, 101, 8, 54, 217, 49, 98, 108, 149, 98, 24, + ], + [ + 50, 232, 175, 207, 73, 18, 225, 218, 85, 236, 151, 102, 191, 232, 207, 250, 161, 234, + 137, 249, 42, 243, 65, 15, 150, 29, 21, 86, 102, 192, 26, 32, + ], + [ + 40, 193, 12, 48, 4, 212, 39, 67, 231, 182, 218, 43, 11, 231, 75, 82, 24, 190, 132, 82, + 27, 169, 140, 214, 162, 122, 191, 110, 225, 207, 185, 43, + ], + [ + 177, 1, 100, 87, 228, 136, 102, 8, 248, 170, 10, 58, 139, 21, 103, 168, 205, 234, 0, + 28, 226, 183, 78, 51, 60, 54, 35, 247, 130, 199, 233, 59, + ], + [ + 181, 222, 23, 124, 138, 101, 61, 15, 49, 131, 173, 47, 224, 128, 118, 125, 66, 45, 68, + 180, 215, 53, 226, 11, 226, 177, 103, 246, 43, 29, 102, 5, + ], + [ + 64, 123, 98, 247, 117, 240, 66, 217, 174, 246, 81, 150, 232, 133, 87, 229, 154, 43, + 124, 143, 114, 78, 96, 39, 149, 89, 66, 131, 238, 217, 127, 8, + ], + [ + 115, 22, 38, 108, 115, 205, 105, 132, 105, 23, 113, 198, 46, 49, 30, 219, 57, 177, 189, + 77, 143, 24, 58, 146, 219, 20, 25, 218, 0, 190, 172, 23, + ], + ], + [ + [ + 166, 199, 164, 173, 14, 58, 189, 169, 19, 8, 20, 217, 59, 6, 227, 254, 3, 142, 27, 136, + 252, 193, 94, 100, 59, 223, 58, 195, 186, 240, 4, 53, + ], + [ + 157, 20, 32, 77, 161, 28, 25, 124, 24, 76, 50, 122, 214, 108, 34, 240, 252, 230, 170, + 213, 153, 250, 131, 108, 176, 84, 218, 246, 108, 45, 198, 10, + ], + [ + 124, 234, 207, 196, 216, 43, 64, 63, 61, 246, 48, 162, 149, 214, 6, 195, 194, 116, 146, + 100, 169, 48, 64, 96, 106, 124, 215, 221, 87, 77, 185, 63, + ], + [ + 180, 35, 0, 153, 18, 168, 15, 109, 149, 209, 175, 145, 171, 236, 80, 140, 70, 253, 113, + 127, 49, 137, 73, 116, 18, 135, 81, 199, 186, 178, 36, 18, + ], + [ + 124, 24, 76, 143, 58, 111, 89, 209, 97, 164, 199, 85, 178, 211, 185, 32, 102, 11, 228, + 36, 191, 135, 71, 111, 163, 74, 109, 215, 152, 144, 47, 41, + ], + [ + 150, 183, 97, 110, 78, 33, 125, 152, 170, 254, 153, 118, 243, 79, 96, 147, 244, 171, + 107, 192, 173, 19, 8, 252, 153, 34, 220, 25, 32, 238, 234, 20, + ], + [ + 142, 28, 82, 170, 186, 139, 148, 129, 61, 162, 120, 138, 168, 8, 244, 53, 249, 80, 4, + 142, 211, 117, 188, 204, 11, 255, 178, 96, 230, 193, 245, 0, + ], + [ + 198, 214, 148, 238, 200, 11, 130, 194, 168, 46, 236, 82, 165, 75, 3, 19, 160, 232, 216, + 70, 191, 29, 164, 144, 57, 60, 58, 212, 128, 226, 152, 24, + ], + ], + [ + [ + 6, 94, 153, 100, 45, 112, 206, 104, 159, 95, 4, 92, 175, 185, 180, 113, 250, 110, 67, + 166, 94, 228, 126, 186, 236, 64, 252, 84, 134, 208, 99, 17, + ], + [ + 134, 224, 207, 111, 61, 213, 5, 165, 226, 79, 208, 198, 130, 192, 89, 149, 242, 47, 53, + 50, 206, 109, 157, 243, 99, 129, 215, 75, 181, 144, 117, 58, + ], + [ + 155, 174, 69, 67, 171, 111, 186, 235, 235, 192, 162, 14, 114, 66, 8, 99, 226, 82, 31, + 134, 213, 214, 115, 222, 214, 211, 229, 184, 153, 7, 31, 13, + ], + [ + 181, 100, 30, 150, 176, 114, 167, 164, 173, 245, 138, 179, 201, 206, 116, 110, 33, 245, + 104, 230, 172, 144, 182, 39, 160, 1, 55, 170, 171, 14, 97, 36, + ], + [ + 27, 182, 3, 193, 6, 114, 63, 211, 213, 111, 123, 204, 119, 182, 64, 168, 191, 189, 236, + 169, 62, 102, 46, 10, 66, 233, 108, 95, 156, 5, 2, 17, + ], + [ + 252, 184, 10, 162, 39, 90, 220, 172, 255, 246, 129, 43, 70, 137, 87, 55, 3, 197, 79, + 110, 208, 179, 213, 197, 8, 97, 207, 114, 63, 16, 35, 19, + ], + [ + 114, 84, 84, 248, 14, 96, 220, 105, 180, 236, 142, 134, 58, 183, 46, 126, 117, 238, 59, + 233, 31, 32, 166, 80, 31, 170, 87, 81, 239, 167, 243, 20, + ], + [ + 70, 228, 140, 132, 194, 68, 145, 7, 226, 237, 165, 98, 214, 101, 204, 127, 42, 36, 184, + 82, 253, 192, 72, 225, 215, 205, 242, 162, 212, 113, 64, 21, + ], + ], + [ + [ + 88, 195, 125, 176, 127, 155, 224, 36, 205, 80, 207, 184, 175, 242, 195, 101, 204, 77, + 215, 121, 230, 220, 29, 57, 131, 164, 115, 230, 76, 211, 215, 23, + ], + [ + 213, 195, 189, 198, 199, 49, 198, 15, 92, 101, 87, 99, 207, 99, 186, 213, 229, 179, 69, + 71, 41, 140, 203, 153, 22, 155, 214, 226, 130, 175, 156, 62, + ], + [ + 166, 117, 91, 218, 251, 30, 251, 111, 174, 234, 219, 158, 177, 73, 166, 88, 204, 53, + 27, 49, 235, 95, 205, 250, 155, 196, 152, 217, 130, 56, 145, 51, + ], + [ + 12, 180, 50, 125, 157, 91, 123, 81, 184, 183, 48, 213, 87, 185, 233, 171, 55, 204, 113, + 238, 197, 226, 30, 163, 183, 131, 36, 135, 210, 12, 197, 42, + ], + [ + 175, 205, 39, 140, 182, 198, 178, 47, 247, 108, 237, 249, 97, 233, 180, 95, 123, 109, + 1, 227, 242, 234, 128, 66, 217, 225, 8, 216, 228, 135, 20, 46, + ], + [ + 204, 48, 117, 11, 21, 101, 12, 185, 206, 97, 152, 180, 12, 104, 28, 71, 58, 176, 116, + 10, 174, 103, 201, 82, 118, 74, 125, 197, 149, 216, 176, 4, + ], + [ + 150, 144, 226, 186, 64, 17, 254, 26, 21, 248, 118, 91, 180, 255, 125, 61, 67, 113, 25, + 170, 155, 206, 110, 113, 66, 64, 88, 174, 131, 38, 196, 55, + ], + [ + 157, 181, 209, 189, 59, 76, 227, 183, 0, 161, 70, 233, 68, 56, 230, 107, 139, 252, 93, + 167, 174, 72, 190, 77, 142, 215, 228, 199, 1, 60, 136, 56, + ], + ], + [ + [ + 190, 92, 13, 8, 22, 229, 140, 76, 14, 27, 58, 56, 121, 150, 136, 228, 72, 103, 71, 115, + 243, 253, 53, 81, 123, 38, 199, 219, 123, 19, 174, 14, + ], + [ + 7, 188, 24, 186, 0, 251, 54, 130, 213, 106, 143, 83, 155, 119, 206, 253, 249, 191, 54, + 233, 191, 176, 42, 51, 93, 9, 163, 121, 219, 200, 214, 12, + ], + [ + 198, 163, 145, 80, 22, 184, 116, 216, 156, 139, 34, 249, 166, 116, 103, 145, 120, 158, + 85, 102, 25, 27, 113, 121, 102, 190, 55, 151, 48, 240, 71, 32, + ], + [ + 204, 58, 122, 178, 78, 187, 138, 17, 175, 30, 44, 72, 40, 61, 247, 156, 165, 100, 129, + 171, 82, 152, 58, 208, 228, 249, 238, 15, 169, 34, 87, 9, + ], + [ + 134, 168, 115, 14, 77, 100, 63, 169, 243, 160, 196, 220, 14, 1, 189, 106, 39, 109, 74, + 95, 69, 13, 80, 153, 149, 228, 76, 44, 189, 217, 174, 14, + ], + [ + 159, 106, 117, 192, 70, 92, 68, 153, 97, 21, 78, 158, 38, 251, 73, 250, 232, 212, 81, + 218, 132, 210, 141, 52, 154, 109, 180, 102, 26, 46, 237, 42, + ], + [ + 12, 163, 20, 229, 61, 228, 45, 24, 204, 20, 16, 67, 244, 76, 55, 249, 80, 75, 21, 138, + 253, 198, 255, 253, 92, 251, 90, 177, 226, 0, 189, 42, + ], + [ + 122, 234, 40, 6, 65, 195, 69, 149, 59, 88, 230, 156, 205, 111, 77, 80, 8, 79, 75, 165, + 237, 130, 130, 223, 115, 216, 16, 83, 191, 48, 199, 35, + ], + ], + [ + [ + 120, 206, 29, 206, 231, 94, 118, 231, 142, 12, 21, 55, 86, 131, 101, 140, 149, 39, 143, + 47, 153, 183, 84, 124, 235, 181, 72, 47, 36, 106, 118, 26, + ], + [ + 228, 137, 53, 107, 172, 135, 152, 135, 60, 72, 14, 251, 236, 200, 210, 82, 179, 124, + 204, 92, 40, 155, 7, 230, 141, 192, 49, 132, 97, 89, 119, 22, + ], + [ + 207, 29, 225, 197, 86, 135, 65, 28, 17, 153, 15, 136, 28, 124, 240, 84, 14, 201, 29, + 194, 140, 205, 231, 108, 243, 100, 134, 59, 67, 249, 95, 34, + ], + [ + 234, 84, 54, 160, 181, 164, 65, 6, 15, 193, 237, 165, 148, 82, 153, 142, 39, 239, 134, + 40, 164, 122, 235, 29, 102, 186, 216, 29, 103, 239, 85, 50, + ], + [ + 58, 194, 136, 114, 154, 163, 206, 220, 211, 122, 144, 102, 109, 22, 30, 145, 234, 170, + 24, 252, 71, 139, 166, 193, 151, 227, 118, 9, 63, 209, 24, 52, + ], + [ + 69, 95, 192, 151, 92, 184, 83, 24, 138, 189, 254, 51, 192, 141, 121, 211, 54, 121, 107, + 109, 187, 240, 161, 244, 54, 11, 205, 41, 49, 186, 58, 21, + ], + [ + 174, 72, 170, 165, 97, 229, 216, 108, 52, 175, 217, 144, 65, 170, 178, 72, 57, 244, + 217, 93, 90, 59, 133, 150, 65, 222, 78, 168, 142, 10, 65, 57, + ], + [ + 64, 55, 77, 9, 97, 224, 252, 144, 123, 19, 154, 107, 90, 176, 121, 15, 30, 43, 94, 233, + 86, 28, 92, 121, 22, 29, 194, 229, 26, 46, 23, 24, + ], + ], + [ + [ + 76, 60, 120, 126, 240, 28, 211, 52, 21, 189, 35, 153, 162, 242, 177, 158, 251, 118, + 212, 37, 42, 83, 34, 73, 67, 232, 149, 198, 196, 87, 158, 15, + ], + [ + 157, 158, 65, 83, 61, 63, 54, 50, 65, 74, 210, 115, 194, 223, 77, 138, 137, 78, 188, + 14, 117, 203, 104, 45, 48, 199, 130, 1, 54, 149, 206, 35, + ], + [ + 231, 191, 185, 71, 252, 217, 195, 188, 72, 190, 22, 41, 42, 147, 166, 69, 42, 126, 125, + 168, 48, 63, 127, 44, 181, 189, 110, 141, 72, 178, 125, 29, + ], + [ + 94, 64, 125, 170, 1, 131, 212, 24, 147, 151, 15, 73, 177, 8, 135, 160, 201, 115, 241, + 136, 247, 184, 211, 13, 64, 206, 126, 239, 224, 73, 215, 55, + ], + [ + 12, 37, 188, 206, 231, 212, 14, 180, 159, 225, 82, 255, 232, 11, 128, 28, 50, 95, 1, + 131, 203, 4, 17, 66, 239, 193, 151, 123, 253, 68, 20, 40, + ], + [ + 48, 80, 138, 22, 87, 172, 103, 208, 138, 14, 164, 65, 191, 235, 51, 248, 21, 117, 129, + 248, 199, 128, 126, 210, 189, 57, 67, 150, 178, 8, 188, 62, + ], + [ + 98, 115, 183, 93, 165, 143, 231, 214, 229, 168, 250, 179, 9, 43, 102, 129, 189, 8, 138, + 149, 215, 140, 100, 168, 27, 152, 140, 252, 36, 109, 62, 49, + ], + [ + 82, 184, 171, 186, 244, 111, 194, 186, 63, 45, 8, 90, 97, 130, 102, 112, 185, 70, 182, + 92, 197, 253, 122, 124, 196, 164, 170, 25, 180, 117, 94, 2, + ], + ], + [ + [ + 209, 225, 106, 206, 153, 240, 154, 163, 143, 89, 129, 19, 20, 45, 44, 223, 64, 38, 34, + 208, 9, 151, 85, 171, 182, 89, 137, 36, 163, 41, 84, 42, + ], + [ + 146, 188, 65, 87, 122, 69, 148, 30, 80, 176, 184, 33, 3, 77, 156, 203, 73, 230, 231, + 12, 22, 232, 26, 143, 91, 35, 206, 246, 43, 55, 3, 9, + ], + [ + 25, 114, 90, 10, 192, 14, 159, 234, 190, 73, 105, 222, 143, 2, 98, 30, 107, 18, 49, 35, + 100, 255, 185, 20, 52, 155, 150, 175, 35, 209, 41, 39, + ], + [ + 191, 153, 7, 52, 5, 119, 8, 21, 199, 194, 163, 24, 199, 76, 185, 128, 49, 18, 54, 206, + 252, 101, 181, 105, 101, 3, 93, 250, 139, 110, 105, 17, + ], + [ + 187, 224, 140, 3, 152, 10, 215, 106, 92, 32, 53, 193, 164, 49, 85, 248, 152, 217, 148, + 69, 206, 67, 202, 77, 40, 134, 1, 233, 36, 57, 255, 60, + ], + [ + 174, 28, 43, 241, 197, 16, 52, 191, 5, 12, 100, 203, 128, 228, 95, 21, 139, 30, 27, + 151, 49, 131, 188, 119, 245, 70, 113, 118, 64, 72, 182, 6, + ], + [ + 48, 252, 34, 196, 173, 44, 133, 85, 67, 13, 237, 191, 29, 5, 184, 67, 133, 144, 192, + 38, 19, 37, 175, 108, 156, 242, 21, 223, 11, 119, 165, 14, + ], + [ + 100, 197, 0, 213, 89, 62, 88, 131, 238, 25, 108, 172, 133, 12, 34, 14, 9, 130, 39, 54, + 188, 4, 61, 243, 131, 108, 22, 70, 116, 37, 210, 34, + ], + ], + [ + [ + 170, 138, 180, 84, 35, 21, 13, 177, 134, 125, 153, 82, 70, 64, 27, 75, 162, 161, 10, + 198, 105, 36, 120, 166, 182, 214, 103, 117, 229, 138, 80, 59, + ], + [ + 84, 95, 68, 119, 210, 84, 69, 165, 136, 57, 55, 153, 132, 67, 66, 82, 213, 80, 68, 108, + 192, 184, 190, 202, 40, 243, 116, 24, 142, 112, 174, 57, + ], + [ + 88, 41, 176, 199, 215, 98, 157, 224, 41, 6, 229, 129, 207, 52, 114, 203, 182, 27, 82, + 185, 68, 102, 126, 6, 49, 224, 172, 179, 169, 23, 67, 50, + ], + [ + 13, 39, 165, 156, 39, 15, 143, 254, 19, 44, 221, 98, 41, 248, 51, 162, 124, 244, 145, + 66, 77, 238, 2, 159, 167, 130, 5, 165, 148, 217, 126, 39, + ], + [ + 243, 178, 255, 129, 211, 199, 156, 239, 252, 157, 180, 156, 233, 49, 20, 122, 235, 112, + 107, 104, 128, 111, 10, 39, 225, 187, 190, 216, 237, 133, 116, 27, + ], + [ + 62, 140, 130, 27, 124, 177, 228, 42, 137, 63, 23, 176, 132, 100, 20, 235, 149, 6, 30, + 226, 243, 86, 218, 62, 39, 167, 124, 40, 114, 50, 151, 44, + ], + [ + 153, 186, 80, 123, 183, 144, 118, 245, 93, 213, 158, 238, 76, 61, 218, 113, 80, 97, + 193, 199, 84, 3, 88, 133, 168, 218, 248, 41, 216, 231, 132, 54, + ], + [ + 24, 13, 231, 102, 64, 93, 142, 32, 95, 124, 165, 112, 146, 124, 94, 71, 147, 194, 180, + 81, 138, 95, 198, 173, 135, 219, 180, 238, 55, 175, 0, 49, + ], + ], + [ + [ + 191, 67, 109, 233, 253, 99, 144, 145, 112, 41, 12, 226, 34, 38, 59, 104, 32, 46, 165, + 134, 63, 12, 240, 107, 124, 170, 157, 95, 123, 77, 51, 11, + ], + [ + 253, 176, 178, 255, 113, 102, 61, 37, 130, 48, 154, 203, 106, 34, 89, 133, 223, 16, 46, + 161, 228, 11, 168, 58, 124, 111, 180, 95, 205, 178, 201, 8, + ], + [ + 45, 51, 116, 58, 87, 136, 35, 53, 226, 3, 240, 236, 196, 23, 79, 255, 236, 129, 129, + 153, 110, 21, 32, 121, 214, 66, 53, 39, 32, 121, 155, 26, + ], + [ + 253, 55, 59, 249, 128, 61, 95, 130, 99, 194, 200, 12, 129, 70, 56, 130, 60, 163, 84, + 203, 119, 27, 142, 56, 171, 128, 144, 207, 208, 220, 33, 18, + ], + [ + 255, 59, 215, 178, 200, 172, 206, 53, 251, 202, 242, 148, 156, 247, 117, 226, 60, 145, + 122, 154, 15, 205, 138, 253, 158, 133, 46, 103, 33, 12, 85, 26, + ], + [ + 51, 26, 129, 30, 187, 55, 234, 9, 36, 14, 6, 19, 54, 209, 189, 240, 226, 122, 219, 186, + 62, 106, 52, 89, 242, 4, 177, 214, 20, 228, 188, 18, + ], + [ + 43, 93, 69, 179, 7, 206, 234, 199, 244, 76, 82, 200, 246, 125, 21, 1, 124, 142, 3, 76, + 21, 1, 237, 236, 151, 249, 71, 38, 159, 159, 239, 48, + ], + [ + 230, 77, 223, 241, 62, 17, 127, 49, 233, 34, 99, 218, 95, 132, 99, 158, 50, 81, 121, + 208, 225, 109, 68, 170, 238, 26, 147, 195, 178, 33, 157, 16, + ], + ], + [ + [ + 52, 186, 178, 89, 121, 159, 161, 108, 165, 177, 92, 184, 149, 101, 171, 153, 70, 215, + 46, 200, 193, 14, 188, 34, 192, 141, 24, 210, 156, 81, 217, 41, + ], + [ + 205, 99, 134, 116, 97, 224, 2, 77, 29, 77, 88, 53, 0, 111, 15, 56, 74, 172, 166, 150, + 133, 93, 146, 253, 3, 100, 190, 133, 11, 46, 40, 62, + ], + [ + 202, 120, 227, 229, 35, 128, 155, 243, 255, 108, 76, 195, 219, 96, 86, 121, 217, 111, + 11, 121, 77, 228, 175, 2, 23, 102, 78, 193, 249, 10, 139, 10, + ], + [ + 128, 219, 91, 150, 191, 196, 135, 27, 205, 245, 32, 8, 15, 40, 90, 201, 73, 241, 31, + 207, 216, 225, 129, 90, 173, 32, 108, 126, 59, 32, 11, 19, + ], + [ + 31, 172, 118, 187, 18, 112, 69, 208, 250, 115, 34, 50, 221, 213, 209, 55, 44, 127, 130, + 196, 190, 155, 247, 254, 2, 195, 231, 155, 169, 158, 198, 60, + ], + [ + 205, 109, 204, 106, 223, 114, 189, 146, 15, 175, 189, 220, 55, 7, 242, 114, 99, 96, 81, + 181, 204, 132, 253, 3, 52, 216, 47, 37, 58, 52, 227, 21, + ], + [ + 232, 76, 28, 95, 190, 76, 135, 35, 133, 206, 252, 224, 237, 123, 84, 47, 188, 253, 5, + 178, 145, 176, 232, 227, 7, 230, 89, 213, 199, 47, 66, 32, + ], + [ + 71, 151, 218, 212, 133, 48, 92, 62, 72, 154, 75, 10, 186, 210, 198, 146, 53, 18, 173, + 172, 60, 110, 21, 166, 252, 53, 239, 211, 36, 189, 156, 1, + ], + ], + [ + [ + 33, 207, 156, 240, 223, 153, 52, 29, 223, 44, 214, 249, 177, 30, 23, 32, 99, 199, 159, + 161, 175, 245, 85, 144, 14, 118, 163, 72, 111, 135, 0, 41, + ], + [ + 110, 244, 91, 45, 63, 22, 57, 91, 73, 106, 99, 88, 146, 118, 14, 176, 186, 228, 14, 83, + 140, 189, 143, 197, 194, 135, 97, 41, 116, 113, 163, 30, + ], + [ + 137, 86, 251, 125, 228, 181, 116, 52, 60, 174, 181, 79, 70, 211, 93, 128, 143, 17, 107, + 48, 241, 58, 140, 58, 240, 34, 167, 4, 67, 26, 212, 29, + ], + [ + 108, 217, 222, 116, 191, 191, 47, 61, 96, 84, 106, 166, 253, 5, 212, 60, 163, 168, 156, + 145, 186, 129, 244, 187, 152, 235, 40, 36, 173, 231, 185, 56, + ], + [ + 144, 139, 139, 57, 138, 79, 237, 42, 243, 255, 137, 46, 60, 236, 0, 124, 151, 172, 130, + 131, 4, 37, 255, 157, 112, 141, 248, 116, 32, 21, 169, 1, + ], + [ + 109, 149, 1, 115, 108, 63, 68, 192, 91, 49, 234, 90, 143, 98, 248, 92, 202, 207, 144, + 86, 0, 26, 65, 235, 156, 131, 11, 74, 112, 175, 247, 14, + ], + [ + 18, 194, 249, 56, 144, 151, 10, 107, 87, 48, 179, 117, 7, 100, 38, 220, 26, 2, 18, 160, + 171, 125, 140, 213, 171, 82, 189, 98, 96, 3, 235, 5, + ], + [ + 44, 108, 31, 136, 128, 150, 86, 40, 251, 99, 8, 150, 157, 135, 28, 214, 158, 60, 242, + 29, 123, 252, 85, 65, 172, 61, 241, 230, 140, 29, 224, 27, + ], + ], + [ + [ + 72, 96, 81, 44, 138, 199, 176, 84, 134, 126, 188, 123, 88, 83, 37, 233, 31, 237, 230, + 160, 15, 57, 252, 28, 79, 176, 8, 136, 160, 168, 180, 54, + ], + [ + 236, 204, 160, 217, 80, 141, 110, 37, 12, 106, 216, 168, 97, 147, 225, 178, 243, 91, + 144, 177, 162, 143, 29, 238, 45, 191, 217, 169, 17, 6, 82, 15, + ], + [ + 151, 37, 164, 32, 139, 47, 139, 135, 64, 90, 53, 139, 250, 31, 129, 155, 38, 132, 99, + 202, 75, 25, 233, 151, 238, 122, 231, 45, 178, 23, 36, 7, + ], + [ + 145, 211, 54, 13, 50, 237, 143, 95, 233, 219, 250, 67, 255, 72, 244, 202, 26, 178, 61, + 233, 52, 109, 106, 30, 246, 249, 34, 126, 72, 113, 240, 4, + ], + [ + 113, 166, 236, 160, 205, 43, 161, 37, 126, 197, 172, 121, 235, 101, 42, 43, 143, 199, + 111, 177, 23, 42, 51, 220, 232, 188, 92, 235, 139, 183, 170, 3, + ], + [ + 236, 93, 71, 61, 20, 98, 70, 157, 157, 108, 146, 80, 225, 245, 166, 244, 14, 223, 41, + 191, 206, 212, 140, 195, 99, 13, 112, 217, 191, 189, 57, 22, + ], + [ + 110, 80, 126, 40, 242, 214, 43, 231, 72, 57, 159, 88, 36, 146, 13, 25, 198, 55, 233, + 134, 49, 87, 14, 198, 40, 68, 245, 50, 182, 195, 172, 32, + ], + [ + 138, 47, 67, 28, 155, 85, 91, 243, 199, 109, 115, 119, 160, 15, 14, 10, 252, 133, 3, + 75, 35, 17, 189, 159, 27, 1, 163, 166, 144, 211, 110, 11, + ], + ], + [ + [ + 31, 79, 187, 42, 20, 82, 51, 24, 96, 195, 51, 150, 237, 25, 238, 211, 26, 151, 165, + 162, 158, 98, 38, 255, 134, 178, 213, 60, 249, 77, 5, 2, + ], + [ + 97, 204, 217, 104, 57, 122, 48, 148, 131, 78, 36, 83, 200, 202, 85, 8, 163, 120, 189, + 42, 109, 236, 11, 100, 221, 32, 84, 136, 26, 126, 107, 53, + ], + [ + 80, 195, 31, 107, 117, 133, 195, 140, 109, 176, 18, 91, 213, 153, 80, 1, 68, 254, 42, + 238, 24, 189, 171, 105, 94, 59, 219, 230, 22, 176, 107, 9, + ], + [ + 141, 33, 117, 234, 88, 61, 132, 175, 21, 196, 141, 130, 123, 155, 29, 70, 66, 189, 3, + 171, 12, 150, 97, 145, 117, 192, 81, 68, 6, 28, 96, 28, + ], + [ + 200, 160, 161, 9, 64, 94, 205, 144, 62, 116, 255, 185, 94, 175, 20, 167, 217, 78, 234, + 1, 1, 122, 238, 184, 69, 233, 201, 85, 254, 138, 212, 39, + ], + [ + 109, 185, 122, 128, 51, 220, 226, 181, 98, 114, 82, 142, 251, 224, 39, 161, 4, 27, 155, + 185, 175, 78, 71, 250, 103, 160, 191, 44, 50, 253, 150, 48, + ], + [ + 63, 60, 25, 196, 216, 52, 106, 139, 111, 73, 150, 237, 22, 80, 63, 12, 198, 131, 217, + 24, 217, 222, 1, 154, 107, 121, 42, 206, 71, 231, 85, 24, + ], + [ + 110, 208, 119, 152, 113, 49, 42, 110, 242, 125, 32, 238, 131, 123, 132, 102, 46, 60, + 111, 90, 37, 46, 79, 200, 142, 181, 136, 54, 102, 115, 166, 45, + ], + ], + [ + [ + 65, 117, 127, 35, 217, 86, 9, 239, 179, 241, 114, 13, 75, 195, 58, 239, 152, 49, 225, + 92, 93, 1, 35, 31, 117, 45, 132, 152, 184, 111, 227, 62, + ], + [ + 28, 50, 160, 235, 129, 142, 99, 208, 77, 124, 228, 209, 205, 199, 158, 149, 244, 14, + 22, 129, 93, 116, 205, 167, 237, 75, 238, 150, 8, 21, 160, 10, + ], + [ + 240, 31, 142, 228, 114, 27, 182, 196, 65, 166, 251, 35, 97, 252, 58, 32, 207, 217, 94, + 11, 22, 44, 35, 143, 234, 143, 112, 21, 225, 43, 124, 35, + ], + [ + 84, 215, 38, 31, 55, 68, 5, 227, 30, 70, 197, 135, 157, 55, 132, 110, 17, 239, 55, 150, + 66, 94, 111, 156, 61, 134, 129, 252, 80, 136, 109, 3, + ], + [ + 244, 5, 160, 73, 65, 202, 125, 239, 79, 248, 118, 146, 198, 46, 179, 29, 27, 183, 162, + 224, 163, 29, 88, 196, 95, 77, 15, 162, 245, 208, 121, 58, + ], + [ + 33, 142, 135, 112, 143, 47, 193, 39, 170, 223, 34, 145, 60, 197, 160, 23, 233, 22, 82, + 189, 91, 251, 186, 21, 238, 69, 58, 194, 34, 58, 40, 9, + ], + [ + 46, 205, 15, 203, 124, 46, 93, 43, 68, 29, 165, 195, 225, 198, 170, 60, 23, 136, 96, + 65, 54, 231, 238, 94, 94, 2, 16, 171, 167, 138, 105, 16, + ], + [ + 10, 116, 71, 4, 152, 209, 8, 163, 77, 5, 23, 146, 141, 186, 60, 94, 39, 117, 33, 20, 5, + 3, 156, 67, 221, 79, 57, 111, 72, 37, 126, 51, + ], + ], + [ + [ + 191, 166, 185, 94, 206, 142, 77, 46, 132, 158, 245, 234, 48, 226, 49, 249, 39, 60, 88, + 14, 224, 91, 91, 163, 161, 166, 103, 20, 190, 13, 116, 19, + ], + [ + 51, 216, 164, 99, 24, 233, 245, 224, 152, 116, 137, 45, 246, 190, 47, 222, 130, 135, + 57, 245, 95, 18, 139, 248, 200, 158, 124, 75, 9, 72, 222, 22, + ], + [ + 11, 200, 108, 211, 187, 171, 183, 33, 91, 144, 221, 192, 112, 246, 92, 195, 14, 243, + 116, 64, 122, 238, 227, 49, 72, 133, 228, 133, 36, 105, 65, 44, + ], + [ + 97, 255, 190, 195, 103, 126, 180, 211, 73, 73, 8, 155, 205, 46, 78, 148, 212, 87, 193, + 107, 121, 190, 164, 242, 251, 238, 87, 198, 180, 148, 171, 30, + ], + [ + 146, 130, 197, 213, 1, 97, 12, 6, 210, 55, 145, 213, 55, 243, 71, 83, 117, 160, 62, + 201, 72, 75, 160, 185, 107, 235, 22, 189, 164, 222, 197, 10, + ], + [ + 187, 238, 229, 171, 0, 101, 27, 153, 124, 37, 3, 122, 43, 192, 182, 104, 220, 157, 180, + 252, 88, 120, 29, 197, 199, 109, 94, 10, 196, 187, 183, 9, + ], + [ + 240, 83, 124, 167, 254, 134, 93, 87, 81, 207, 252, 115, 47, 49, 33, 65, 200, 33, 186, + 176, 72, 31, 149, 189, 19, 122, 236, 228, 129, 163, 231, 41, + ], + [ + 8, 130, 118, 127, 122, 91, 123, 43, 98, 65, 35, 242, 64, 136, 15, 55, 191, 136, 4, 26, + 157, 157, 138, 218, 75, 204, 240, 144, 61, 53, 99, 62, + ], + ], + [ + [ + 160, 12, 147, 196, 134, 124, 67, 246, 5, 2, 69, 220, 231, 138, 227, 129, 126, 185, 74, + 155, 236, 207, 218, 212, 238, 22, 0, 157, 94, 85, 24, 6, + ], + [ + 138, 4, 163, 194, 25, 156, 50, 92, 111, 33, 7, 26, 69, 110, 26, 194, 70, 115, 87, 232, + 187, 92, 183, 40, 206, 229, 191, 48, 9, 75, 8, 42, + ], + [ + 144, 61, 87, 235, 101, 165, 69, 137, 69, 225, 109, 196, 47, 204, 127, 42, 158, 121, 50, + 27, 129, 66, 148, 82, 79, 154, 189, 5, 115, 100, 17, 35, + ], + [ + 87, 218, 178, 199, 26, 202, 96, 153, 160, 84, 208, 0, 84, 46, 32, 221, 97, 63, 161, + 235, 61, 34, 111, 119, 91, 179, 51, 175, 158, 71, 156, 34, + ], + [ + 189, 150, 38, 95, 146, 100, 0, 105, 233, 4, 173, 80, 206, 50, 53, 160, 40, 167, 33, + 234, 80, 54, 99, 4, 41, 55, 46, 209, 140, 210, 143, 57, + ], + [ + 25, 185, 233, 107, 108, 66, 45, 50, 152, 110, 164, 20, 199, 231, 35, 48, 66, 116, 149, + 211, 214, 134, 127, 152, 63, 102, 27, 33, 90, 16, 216, 50, + ], + [ + 77, 105, 46, 102, 27, 172, 194, 72, 49, 15, 105, 118, 41, 16, 161, 168, 226, 172, 47, + 111, 115, 141, 123, 82, 160, 242, 69, 32, 125, 21, 44, 14, + ], + [ + 198, 193, 51, 219, 107, 174, 135, 49, 208, 46, 134, 81, 121, 111, 246, 128, 198, 48, + 158, 216, 160, 175, 107, 116, 51, 156, 87, 45, 238, 142, 66, 0, + ], + ], + [ + [ + 228, 186, 23, 81, 165, 67, 155, 142, 246, 246, 111, 141, 210, 130, 233, 51, 211, 146, + 202, 26, 110, 46, 212, 39, 154, 170, 63, 110, 31, 238, 80, 0, + ], + [ + 140, 202, 146, 110, 94, 220, 222, 80, 20, 41, 163, 129, 65, 188, 13, 58, 224, 0, 215, + 183, 33, 118, 158, 219, 197, 78, 110, 143, 63, 70, 21, 15, + ], + [ + 71, 155, 232, 76, 80, 9, 234, 144, 163, 24, 181, 206, 34, 218, 60, 75, 159, 106, 75, + 94, 218, 241, 17, 5, 169, 237, 87, 239, 51, 126, 174, 12, + ], + [ + 68, 14, 217, 104, 199, 117, 220, 170, 82, 113, 240, 86, 146, 132, 62, 68, 71, 63, 72, + 67, 170, 58, 28, 113, 136, 167, 66, 29, 90, 185, 131, 10, + ], + [ + 124, 223, 201, 195, 99, 243, 62, 202, 157, 49, 112, 118, 126, 180, 56, 109, 13, 58, 38, + 146, 240, 112, 157, 47, 149, 136, 68, 241, 122, 150, 37, 23, + ], + [ + 19, 217, 47, 84, 231, 168, 141, 240, 13, 102, 26, 80, 70, 109, 70, 142, 83, 149, 253, + 102, 136, 214, 198, 184, 89, 232, 43, 180, 94, 57, 237, 59, + ], + [ + 2, 164, 113, 50, 147, 55, 23, 208, 109, 197, 30, 13, 248, 111, 194, 13, 229, 73, 91, + 166, 195, 175, 210, 198, 179, 60, 221, 87, 104, 70, 218, 26, + ], + [ + 17, 160, 102, 238, 191, 46, 46, 161, 64, 238, 175, 98, 139, 219, 113, 56, 87, 78, 228, + 246, 100, 155, 192, 172, 221, 72, 238, 31, 204, 49, 35, 54, + ], + ], + [ + [ + 42, 238, 87, 78, 76, 206, 132, 112, 92, 251, 61, 98, 151, 105, 49, 204, 234, 104, 116, + 42, 176, 84, 72, 114, 111, 247, 18, 125, 165, 27, 250, 60, + ], + [ + 192, 195, 201, 56, 49, 145, 231, 71, 125, 128, 185, 1, 116, 183, 81, 142, 207, 148, + 159, 32, 184, 160, 8, 39, 8, 100, 43, 218, 96, 50, 107, 57, + ], + [ + 161, 28, 139, 96, 155, 238, 224, 98, 1, 109, 199, 72, 193, 233, 77, 40, 223, 139, 126, + 165, 233, 112, 9, 39, 61, 37, 172, 130, 252, 255, 231, 55, + ], + [ + 148, 189, 23, 30, 46, 255, 1, 123, 106, 99, 45, 7, 65, 202, 55, 188, 236, 162, 182, 70, + 38, 204, 120, 93, 114, 107, 159, 91, 250, 140, 57, 57, + ], + [ + 51, 190, 71, 10, 22, 62, 37, 160, 168, 87, 199, 129, 183, 99, 225, 142, 247, 162, 123, + 57, 44, 239, 49, 212, 91, 166, 5, 116, 83, 223, 225, 22, + ], + [ + 105, 203, 12, 226, 205, 192, 204, 244, 44, 237, 186, 143, 3, 235, 29, 157, 45, 95, 190, + 177, 140, 218, 246, 125, 107, 136, 39, 11, 171, 15, 165, 15, + ], + [ + 40, 63, 140, 161, 128, 218, 185, 176, 105, 10, 235, 239, 69, 132, 86, 207, 77, 47, 176, + 71, 250, 98, 164, 8, 158, 67, 139, 106, 185, 21, 241, 45, + ], + [ + 113, 187, 121, 32, 76, 47, 222, 172, 149, 197, 166, 55, 51, 145, 35, 53, 127, 181, 124, + 87, 228, 146, 246, 19, 131, 251, 25, 177, 8, 37, 166, 53, + ], + ], + [ + [ + 18, 1, 130, 209, 3, 70, 234, 9, 136, 82, 114, 124, 75, 221, 153, 20, 31, 238, 248, 78, + 148, 136, 42, 184, 143, 43, 26, 126, 200, 61, 80, 57, + ], + [ + 225, 98, 72, 37, 222, 154, 100, 214, 73, 206, 129, 29, 27, 131, 81, 32, 182, 243, 185, + 93, 84, 0, 151, 201, 243, 111, 89, 42, 117, 167, 99, 34, + ], + [ + 118, 227, 216, 225, 147, 147, 53, 116, 60, 220, 139, 31, 1, 124, 185, 10, 157, 49, 42, + 132, 235, 10, 161, 152, 137, 48, 32, 206, 86, 213, 221, 32, + ], + [ + 254, 51, 99, 58, 209, 148, 243, 37, 169, 11, 22, 249, 168, 97, 56, 119, 21, 77, 50, + 144, 156, 65, 220, 104, 229, 213, 153, 30, 42, 240, 156, 31, + ], + [ + 15, 208, 192, 113, 116, 160, 10, 101, 148, 128, 253, 44, 233, 9, 78, 22, 56, 25, 98, + 54, 63, 55, 113, 147, 151, 161, 116, 34, 245, 39, 75, 3, + ], + [ + 210, 150, 121, 196, 177, 196, 184, 180, 88, 219, 232, 40, 89, 169, 87, 199, 227, 151, + 251, 74, 249, 12, 128, 2, 208, 145, 98, 160, 150, 112, 200, 5, + ], + [ + 253, 175, 188, 74, 246, 2, 160, 24, 157, 187, 41, 151, 103, 79, 161, 226, 146, 151, 46, + 208, 37, 5, 86, 126, 191, 153, 231, 94, 147, 101, 189, 5, + ], + [ + 15, 30, 205, 151, 176, 243, 96, 206, 110, 125, 116, 143, 234, 172, 254, 151, 148, 18, + 25, 224, 83, 167, 228, 13, 47, 241, 58, 218, 76, 104, 93, 3, + ], + ], + [ + [ + 72, 10, 136, 27, 24, 16, 41, 48, 68, 158, 58, 254, 35, 250, 247, 107, 227, 74, 234, 98, + 97, 242, 9, 158, 70, 85, 49, 198, 203, 11, 230, 20, + ], + [ + 214, 243, 43, 26, 120, 31, 250, 32, 6, 32, 255, 63, 75, 36, 248, 24, 236, 39, 227, 136, + 236, 50, 219, 231, 16, 127, 24, 172, 146, 96, 244, 59, + ], + [ + 96, 191, 165, 84, 42, 112, 128, 149, 53, 170, 114, 219, 238, 65, 138, 252, 190, 104, + 95, 28, 80, 239, 185, 250, 14, 0, 70, 112, 95, 96, 37, 48, + ], + [ + 23, 136, 200, 26, 146, 148, 183, 211, 0, 39, 126, 89, 25, 17, 253, 149, 215, 73, 33, + 67, 99, 1, 207, 32, 180, 34, 81, 116, 182, 105, 39, 33, + ], + [ + 87, 95, 184, 76, 228, 106, 105, 36, 159, 100, 80, 25, 234, 27, 214, 63, 43, 106, 183, + 209, 28, 154, 57, 252, 1, 33, 107, 197, 64, 155, 206, 45, + ], + [ + 61, 125, 226, 15, 206, 94, 85, 192, 206, 85, 168, 220, 114, 189, 128, 250, 80, 50, 167, + 65, 231, 176, 99, 21, 82, 43, 218, 99, 153, 198, 55, 56, + ], + [ + 21, 41, 65, 249, 187, 151, 1, 15, 58, 96, 102, 96, 128, 158, 199, 143, 110, 200, 182, + 55, 15, 40, 227, 249, 70, 24, 155, 205, 177, 248, 68, 36, + ], + [ + 153, 93, 124, 9, 139, 102, 83, 232, 141, 176, 183, 178, 149, 222, 54, 14, 181, 4, 83, + 113, 81, 218, 84, 31, 86, 230, 20, 226, 169, 169, 147, 20, + ], + ], + [ + [ + 42, 6, 69, 242, 47, 170, 149, 121, 142, 185, 225, 212, 167, 145, 100, 105, 224, 168, + 223, 75, 70, 49, 78, 136, 148, 163, 129, 189, 213, 99, 57, 7, + ], + [ + 202, 48, 49, 166, 179, 127, 171, 43, 179, 215, 185, 98, 122, 169, 76, 163, 162, 152, + 151, 234, 229, 1, 174, 31, 106, 210, 184, 103, 68, 174, 231, 14, + ], + [ + 4, 1, 223, 186, 118, 214, 99, 238, 170, 254, 46, 156, 164, 66, 220, 145, 35, 249, 225, + 0, 146, 146, 32, 90, 63, 225, 4, 213, 120, 168, 202, 31, + ], + [ + 191, 2, 7, 207, 2, 3, 132, 59, 8, 17, 130, 119, 167, 244, 65, 80, 33, 93, 217, 36, 196, + 247, 121, 191, 101, 80, 78, 103, 89, 253, 243, 4, + ], + [ + 9, 202, 97, 46, 9, 57, 25, 238, 13, 173, 253, 219, 178, 11, 191, 62, 82, 207, 231, 62, + 8, 85, 176, 21, 98, 73, 141, 255, 69, 71, 22, 2, + ], + [ + 60, 6, 122, 230, 204, 92, 159, 86, 44, 51, 165, 228, 157, 166, 23, 89, 139, 113, 97, + 190, 96, 11, 249, 114, 210, 177, 241, 181, 193, 129, 248, 45, + ], + [ + 127, 187, 205, 131, 198, 160, 221, 214, 70, 29, 3, 78, 25, 70, 87, 81, 163, 105, 247, + 244, 39, 47, 27, 201, 134, 108, 160, 68, 208, 167, 154, 19, + ], + [ + 88, 198, 1, 133, 122, 100, 181, 13, 161, 66, 143, 128, 97, 99, 180, 200, 72, 50, 81, + 197, 140, 51, 43, 34, 107, 170, 115, 22, 89, 214, 148, 19, + ], + ], + [ + [ + 209, 79, 29, 202, 130, 199, 138, 237, 198, 43, 240, 165, 246, 59, 173, 155, 149, 89, + 176, 38, 98, 32, 55, 57, 108, 38, 39, 35, 198, 30, 70, 19, + ], + [ + 62, 138, 183, 26, 93, 155, 177, 41, 76, 46, 239, 209, 50, 0, 254, 176, 243, 143, 41, + 55, 205, 156, 52, 194, 186, 253, 134, 3, 91, 137, 64, 60, + ], + [ + 80, 193, 154, 56, 1, 162, 178, 97, 39, 58, 89, 158, 81, 12, 66, 239, 39, 78, 240, 163, + 245, 197, 106, 91, 36, 144, 179, 175, 242, 170, 115, 9, + ], + [ + 88, 53, 242, 253, 61, 8, 226, 3, 32, 199, 199, 180, 38, 237, 102, 177, 91, 144, 79, 16, + 43, 224, 47, 42, 149, 106, 48, 178, 185, 78, 194, 13, + ], + [ + 185, 170, 69, 129, 68, 165, 94, 97, 241, 117, 27, 40, 168, 74, 208, 125, 41, 231, 207, + 184, 204, 188, 239, 161, 170, 101, 109, 96, 40, 127, 9, 47, + ], + [ + 81, 215, 213, 32, 75, 212, 14, 16, 55, 113, 242, 220, 197, 92, 200, 96, 231, 48, 87, + 21, 233, 175, 160, 133, 37, 83, 165, 1, 105, 134, 137, 53, + ], + [ + 42, 175, 116, 152, 103, 108, 52, 117, 235, 100, 55, 253, 99, 9, 170, 189, 196, 204, + 243, 121, 96, 28, 164, 2, 84, 75, 93, 32, 35, 74, 106, 19, + ], + [ + 205, 37, 25, 223, 168, 4, 64, 239, 149, 231, 158, 24, 100, 88, 21, 68, 153, 174, 171, + 142, 203, 23, 79, 195, 120, 135, 251, 184, 199, 198, 118, 59, + ], + ], + [ + [ + 236, 72, 236, 182, 97, 100, 170, 247, 194, 142, 191, 163, 104, 232, 55, 188, 179, 3, + 241, 161, 130, 187, 201, 135, 36, 107, 194, 11, 58, 37, 198, 21, + ], + [ + 162, 108, 210, 213, 229, 7, 184, 128, 48, 218, 122, 152, 34, 44, 255, 129, 8, 7, 70, + 159, 165, 102, 133, 198, 89, 136, 9, 210, 81, 209, 125, 62, + ], + [ + 19, 122, 208, 53, 54, 195, 80, 105, 130, 108, 101, 232, 213, 250, 94, 143, 34, 16, 123, + 22, 85, 24, 222, 116, 81, 77, 146, 123, 63, 109, 155, 25, + ], + [ + 20, 202, 194, 34, 23, 228, 108, 225, 197, 169, 220, 145, 3, 87, 252, 183, 201, 134, 9, + 70, 26, 33, 233, 245, 90, 40, 9, 193, 145, 177, 137, 30, + ], + [ + 142, 118, 192, 79, 106, 86, 122, 98, 133, 200, 92, 17, 203, 195, 232, 141, 214, 22, + 103, 255, 60, 51, 44, 88, 64, 130, 184, 251, 182, 235, 174, 33, + ], + [ + 136, 174, 114, 92, 123, 204, 141, 133, 43, 185, 26, 57, 221, 186, 86, 185, 32, 212, 97, + 202, 226, 129, 224, 47, 143, 83, 70, 209, 87, 203, 198, 21, + ], + [ + 59, 223, 14, 205, 86, 189, 127, 244, 44, 140, 133, 52, 255, 246, 253, 24, 44, 25, 191, + 198, 49, 247, 200, 84, 150, 16, 205, 200, 110, 226, 60, 51, + ], + [ + 196, 65, 164, 48, 29, 211, 202, 47, 236, 1, 149, 74, 82, 175, 50, 154, 47, 128, 24, + 144, 152, 172, 164, 95, 48, 1, 175, 159, 21, 247, 184, 45, + ], + ], + [ + [ + 113, 63, 185, 131, 212, 136, 143, 154, 164, 166, 141, 78, 33, 22, 153, 205, 188, 108, + 173, 204, 209, 27, 18, 248, 69, 250, 136, 134, 86, 66, 2, 25, + ], + [ + 81, 213, 197, 160, 99, 146, 255, 95, 58, 208, 199, 37, 174, 131, 30, 27, 44, 119, 238, + 23, 8, 85, 177, 30, 23, 198, 236, 206, 160, 196, 192, 37, + ], + [ + 137, 140, 108, 240, 119, 166, 103, 173, 83, 168, 239, 88, 58, 195, 143, 255, 23, 197, + 34, 204, 167, 220, 180, 119, 136, 63, 224, 235, 87, 32, 22, 19, + ], + [ + 9, 120, 1, 228, 172, 242, 68, 238, 34, 31, 73, 46, 221, 161, 229, 216, 212, 51, 236, + 60, 129, 118, 235, 30, 173, 98, 105, 92, 38, 48, 179, 63, + ], + [ + 101, 254, 224, 108, 2, 7, 51, 58, 155, 127, 90, 231, 44, 99, 139, 228, 104, 107, 248, + 235, 10, 231, 131, 133, 26, 9, 5, 238, 79, 173, 149, 53, + ], + [ + 173, 174, 13, 8, 187, 48, 186, 134, 32, 196, 154, 196, 109, 220, 41, 70, 235, 190, 7, + 157, 94, 233, 100, 151, 26, 193, 252, 252, 204, 166, 215, 19, + ], + [ + 28, 95, 198, 85, 93, 171, 70, 119, 154, 50, 27, 16, 190, 246, 143, 130, 168, 183, 89, + 119, 4, 58, 205, 161, 105, 28, 156, 158, 83, 20, 197, 49, + ], + [ + 113, 106, 199, 144, 147, 223, 231, 150, 7, 222, 112, 180, 120, 139, 99, 219, 8, 246, + 89, 224, 255, 179, 139, 176, 16, 103, 178, 74, 156, 40, 204, 37, + ], + ], + [ + [ + 38, 34, 221, 71, 220, 112, 148, 120, 84, 22, 39, 92, 53, 80, 244, 119, 64, 234, 90, 97, + 135, 161, 115, 110, 22, 189, 44, 36, 23, 85, 38, 60, + ], + [ + 213, 170, 91, 62, 172, 9, 75, 190, 253, 21, 22, 180, 194, 51, 94, 46, 65, 244, 206, + 220, 81, 152, 136, 195, 45, 33, 133, 242, 112, 223, 144, 7, + ], + [ + 29, 76, 103, 10, 234, 122, 243, 58, 113, 123, 43, 25, 116, 213, 214, 178, 247, 113, + 135, 238, 148, 58, 116, 97, 83, 203, 1, 208, 121, 52, 38, 13, + ], + [ + 23, 152, 157, 192, 12, 28, 52, 28, 155, 182, 184, 142, 66, 105, 69, 154, 59, 92, 117, + 37, 115, 67, 17, 111, 24, 253, 41, 147, 51, 203, 39, 46, + ], + [ + 255, 207, 178, 103, 215, 12, 12, 158, 83, 240, 123, 146, 137, 235, 116, 25, 102, 144, + 56, 182, 234, 251, 238, 201, 56, 41, 137, 96, 239, 216, 162, 34, + ], + [ + 148, 146, 139, 236, 159, 116, 15, 54, 141, 119, 201, 163, 202, 166, 244, 120, 14, 220, + 191, 209, 31, 121, 208, 243, 120, 106, 102, 3, 129, 135, 29, 36, + ], + [ + 80, 37, 232, 226, 149, 80, 204, 156, 22, 11, 19, 34, 221, 211, 204, 75, 173, 150, 68, + 253, 109, 0, 156, 187, 182, 100, 79, 74, 250, 255, 2, 62, + ], + [ + 155, 207, 110, 75, 63, 173, 133, 240, 21, 108, 245, 233, 80, 114, 0, 221, 114, 148, 5, + 141, 127, 163, 96, 9, 253, 75, 91, 74, 137, 126, 94, 59, + ], + ], + [ + [ + 235, 150, 195, 122, 252, 131, 216, 100, 102, 193, 233, 212, 79, 117, 151, 50, 246, 124, + 8, 1, 247, 254, 208, 90, 247, 231, 240, 3, 86, 82, 75, 58, + ], + [ + 41, 49, 135, 170, 77, 96, 175, 215, 190, 42, 192, 62, 122, 169, 219, 246, 241, 143, 42, + 119, 172, 141, 224, 125, 128, 75, 40, 154, 90, 163, 236, 9, + ], + [ + 206, 138, 164, 80, 147, 233, 240, 203, 111, 52, 22, 4, 38, 199, 245, 224, 203, 7, 14, + 101, 212, 245, 30, 178, 177, 76, 194, 55, 43, 124, 155, 15, + ], + [ + 93, 30, 127, 191, 82, 233, 253, 219, 58, 221, 171, 157, 164, 145, 223, 121, 11, 152, + 114, 200, 186, 150, 146, 87, 11, 48, 157, 85, 162, 36, 127, 8, + ], + [ + 95, 35, 201, 218, 74, 87, 138, 236, 183, 10, 32, 124, 190, 37, 47, 8, 136, 96, 117, + 164, 62, 4, 77, 251, 40, 70, 172, 22, 186, 85, 29, 30, + ], + [ + 133, 23, 191, 232, 143, 103, 124, 29, 186, 196, 156, 170, 254, 197, 48, 205, 114, 31, + 159, 157, 72, 26, 86, 115, 177, 128, 75, 211, 207, 109, 187, 40, + ], + [ + 129, 18, 198, 231, 250, 247, 65, 206, 32, 191, 126, 179, 56, 192, 26, 255, 151, 215, + 103, 101, 40, 182, 203, 39, 100, 126, 202, 129, 173, 114, 208, 46, + ], + [ + 232, 235, 95, 198, 201, 94, 246, 81, 82, 104, 27, 178, 133, 79, 120, 171, 186, 171, 89, + 233, 83, 28, 26, 22, 73, 23, 229, 8, 239, 200, 19, 27, + ], + ], + [ + [ + 210, 71, 108, 215, 152, 32, 62, 185, 111, 112, 16, 4, 13, 227, 37, 156, 126, 114, 174, + 38, 138, 245, 46, 170, 103, 115, 52, 113, 17, 234, 43, 34, + ], + [ + 210, 57, 57, 191, 219, 197, 56, 74, 5, 219, 191, 250, 122, 229, 56, 27, 192, 255, 143, + 226, 134, 81, 82, 20, 228, 137, 206, 11, 203, 171, 194, 2, + ], + [ + 2, 78, 48, 95, 121, 129, 100, 124, 153, 168, 144, 254, 51, 226, 117, 249, 102, 93, 236, + 209, 195, 58, 248, 173, 65, 106, 174, 194, 116, 87, 96, 57, + ], + [ + 241, 60, 10, 54, 190, 93, 196, 234, 99, 112, 230, 21, 141, 232, 41, 30, 250, 202, 112, + 58, 179, 160, 100, 1, 209, 6, 141, 184, 63, 124, 137, 38, + ], + [ + 58, 21, 254, 142, 179, 18, 16, 67, 218, 111, 138, 59, 181, 29, 207, 76, 39, 76, 177, + 120, 66, 64, 22, 178, 208, 40, 155, 120, 211, 84, 207, 21, + ], + [ + 174, 159, 153, 25, 242, 221, 84, 226, 243, 117, 42, 141, 100, 128, 90, 79, 193, 255, + 179, 12, 31, 233, 79, 219, 143, 35, 12, 139, 59, 105, 189, 25, + ], + [ + 218, 68, 43, 94, 237, 195, 110, 37, 78, 248, 223, 30, 109, 144, 98, 161, 59, 211, 240, + 180, 222, 116, 134, 183, 183, 166, 97, 66, 241, 222, 53, 18, + ], + [ + 245, 148, 191, 198, 199, 1, 171, 246, 89, 150, 11, 34, 102, 248, 117, 200, 37, 182, + 103, 126, 70, 226, 218, 203, 11, 125, 121, 32, 18, 230, 243, 18, + ], + ], + [ + [ + 255, 144, 208, 132, 52, 254, 117, 148, 102, 19, 153, 74, 6, 56, 14, 56, 0, 104, 184, + 201, 182, 204, 210, 221, 180, 73, 127, 109, 252, 126, 24, 33, + ], + [ + 47, 153, 208, 169, 51, 149, 24, 41, 69, 165, 93, 193, 209, 66, 187, 89, 18, 193, 252, + 170, 55, 6, 107, 77, 170, 123, 155, 171, 170, 110, 41, 13, + ], + [ + 168, 134, 125, 156, 48, 7, 212, 22, 221, 205, 11, 8, 187, 85, 52, 124, 218, 128, 24, + 106, 88, 190, 65, 166, 34, 120, 160, 186, 50, 209, 57, 27, + ], + [ + 12, 230, 242, 95, 27, 44, 255, 38, 151, 185, 224, 26, 193, 155, 36, 198, 219, 80, 217, + 78, 29, 16, 14, 160, 95, 137, 114, 98, 32, 28, 117, 16, + ], + [ + 19, 221, 130, 39, 185, 145, 167, 178, 12, 122, 174, 141, 109, 15, 59, 92, 217, 193, 8, + 140, 77, 168, 45, 8, 43, 157, 217, 73, 46, 223, 82, 23, + ], + [ + 11, 218, 183, 42, 61, 124, 53, 72, 153, 53, 169, 155, 23, 136, 33, 20, 216, 88, 174, + 50, 165, 138, 100, 174, 31, 151, 244, 200, 102, 163, 211, 45, + ], + [ + 40, 208, 183, 220, 99, 217, 214, 147, 127, 3, 227, 197, 133, 174, 177, 28, 89, 48, 195, + 227, 55, 51, 79, 76, 252, 236, 8, 4, 74, 196, 102, 57, + ], + [ + 217, 25, 168, 251, 68, 161, 167, 143, 58, 241, 41, 14, 245, 47, 92, 191, 48, 195, 26, + 228, 238, 180, 236, 8, 105, 149, 218, 119, 31, 56, 177, 56, + ], + ], + [ + [ + 31, 98, 35, 5, 253, 140, 112, 75, 250, 170, 119, 208, 186, 119, 54, 79, 34, 155, 132, + 123, 178, 111, 84, 7, 45, 231, 74, 65, 216, 235, 174, 16, + ], + [ + 197, 28, 157, 33, 185, 182, 123, 128, 223, 137, 177, 196, 237, 219, 169, 53, 32, 100, + 251, 238, 92, 182, 118, 231, 8, 2, 229, 32, 143, 187, 243, 11, + ], + [ + 53, 49, 78, 10, 50, 233, 255, 107, 193, 56, 21, 50, 236, 45, 145, 145, 147, 62, 44, + 111, 70, 71, 175, 53, 203, 148, 52, 67, 100, 19, 26, 3, + ], + [ + 161, 103, 224, 78, 117, 78, 234, 195, 253, 216, 60, 242, 228, 181, 84, 115, 93, 60, 78, + 177, 233, 239, 55, 51, 87, 29, 91, 73, 160, 22, 171, 28, + ], + [ + 106, 94, 122, 161, 158, 123, 47, 190, 164, 230, 236, 39, 112, 190, 86, 119, 220, 119, + 136, 5, 205, 153, 136, 144, 195, 36, 8, 31, 156, 77, 197, 7, + ], + [ + 84, 189, 79, 111, 149, 133, 18, 214, 25, 129, 102, 3, 255, 214, 137, 117, 145, 219, + 122, 117, 251, 157, 67, 103, 112, 156, 101, 60, 196, 24, 228, 9, + ], + [ + 221, 128, 184, 19, 209, 70, 94, 235, 168, 5, 193, 131, 176, 112, 12, 162, 60, 52, 126, + 165, 78, 106, 205, 247, 39, 129, 58, 66, 183, 218, 92, 34, + ], + [ + 37, 90, 158, 71, 194, 0, 179, 71, 130, 53, 224, 14, 163, 30, 186, 122, 241, 4, 160, + 224, 157, 159, 58, 19, 72, 213, 191, 207, 214, 79, 97, 7, + ], + ], + [ + [ + 17, 77, 140, 150, 199, 124, 25, 200, 242, 238, 45, 141, 236, 5, 130, 183, 54, 235, 128, + 228, 212, 54, 81, 133, 39, 76, 208, 190, 12, 132, 119, 11, + ], + [ + 107, 215, 140, 18, 7, 122, 91, 92, 146, 39, 245, 151, 85, 68, 229, 96, 154, 146, 33, + 101, 126, 111, 236, 5, 204, 109, 157, 205, 70, 121, 217, 0, + ], + [ + 70, 94, 179, 106, 229, 170, 170, 47, 55, 65, 230, 43, 24, 82, 194, 151, 155, 198, 165, + 155, 205, 28, 14, 104, 20, 71, 197, 140, 250, 71, 125, 17, + ], + [ + 106, 252, 217, 245, 224, 67, 205, 117, 213, 48, 7, 135, 102, 189, 26, 18, 4, 54, 28, + 251, 124, 84, 93, 0, 40, 66, 115, 117, 204, 79, 228, 22, + ], + [ + 242, 35, 187, 88, 191, 59, 140, 236, 161, 109, 107, 209, 136, 246, 243, 27, 223, 98, + 151, 100, 212, 119, 181, 232, 39, 21, 93, 43, 28, 54, 121, 28, + ], + [ + 71, 151, 100, 227, 73, 205, 19, 3, 130, 251, 173, 106, 89, 57, 39, 39, 122, 133, 165, + 156, 3, 206, 44, 215, 128, 92, 207, 248, 158, 242, 254, 0, + ], + [ + 135, 68, 93, 82, 180, 183, 2, 251, 43, 188, 239, 107, 205, 155, 212, 29, 221, 31, 106, + 214, 183, 206, 119, 193, 233, 125, 198, 221, 69, 92, 33, 62, + ], + [ + 30, 16, 32, 89, 21, 239, 233, 59, 207, 112, 12, 6, 215, 78, 169, 126, 167, 25, 242, 72, + 91, 134, 70, 202, 21, 211, 175, 45, 241, 46, 126, 19, + ], + ], + [ + [ + 239, 132, 33, 38, 102, 212, 72, 89, 11, 15, 97, 253, 10, 0, 7, 0, 193, 147, 176, 43, + 213, 38, 141, 110, 55, 61, 127, 15, 217, 159, 199, 41, + ], + [ + 214, 253, 151, 31, 243, 238, 244, 4, 240, 234, 253, 169, 181, 192, 6, 57, 219, 163, + 185, 123, 103, 228, 127, 129, 214, 214, 43, 225, 63, 75, 182, 53, + ], + [ + 32, 79, 73, 179, 13, 71, 33, 110, 122, 154, 127, 57, 134, 49, 208, 108, 5, 172, 153, + 147, 192, 46, 212, 252, 33, 114, 20, 39, 244, 63, 96, 59, + ], + [ + 235, 135, 102, 44, 198, 110, 108, 192, 212, 172, 181, 10, 197, 131, 11, 220, 40, 83, + 211, 8, 182, 147, 94, 90, 76, 129, 90, 194, 77, 213, 126, 55, + ], + [ + 134, 43, 3, 60, 183, 128, 197, 163, 170, 11, 127, 13, 12, 251, 24, 190, 45, 105, 181, + 131, 97, 232, 88, 155, 212, 247, 110, 50, 247, 242, 78, 11, + ], + [ + 107, 99, 135, 228, 201, 238, 31, 15, 7, 159, 61, 63, 134, 124, 107, 227, 233, 133, 57, + 126, 106, 183, 205, 196, 222, 230, 130, 213, 208, 64, 99, 20, + ], + [ + 136, 191, 122, 221, 143, 194, 149, 206, 210, 101, 122, 87, 41, 73, 39, 0, 203, 249, + 255, 105, 157, 67, 114, 227, 107, 204, 112, 134, 137, 141, 192, 40, + ], + [ + 53, 251, 202, 6, 165, 211, 68, 162, 219, 79, 119, 243, 221, 34, 46, 97, 240, 59, 81, + 62, 192, 122, 250, 188, 247, 91, 173, 184, 16, 162, 228, 42, + ], + ], + [ + [ + 207, 188, 203, 116, 227, 47, 15, 94, 109, 85, 244, 221, 60, 114, 166, 91, 220, 124, + 217, 87, 15, 10, 223, 41, 201, 185, 195, 188, 26, 179, 0, 42, + ], + [ + 169, 222, 42, 237, 79, 30, 175, 161, 31, 217, 5, 161, 189, 73, 91, 163, 120, 84, 89, + 232, 151, 51, 37, 39, 130, 149, 209, 68, 215, 4, 169, 47, + ], + [ + 227, 83, 192, 240, 71, 1, 222, 202, 123, 190, 215, 154, 182, 192, 122, 211, 174, 143, + 187, 185, 69, 74, 141, 161, 31, 218, 147, 239, 72, 246, 120, 4, + ], + [ + 137, 27, 69, 79, 29, 209, 12, 234, 186, 93, 226, 104, 95, 211, 110, 68, 30, 100, 164, + 236, 245, 45, 0, 29, 59, 22, 176, 196, 130, 184, 217, 27, + ], + [ + 26, 62, 9, 239, 203, 49, 46, 166, 96, 81, 208, 1, 72, 8, 94, 190, 19, 237, 242, 213, + 15, 157, 31, 240, 39, 122, 94, 8, 171, 16, 159, 28, + ], + [ + 191, 213, 238, 242, 171, 187, 13, 177, 204, 117, 29, 64, 237, 164, 165, 236, 142, 220, + 60, 63, 61, 57, 146, 155, 58, 206, 128, 15, 73, 253, 188, 9, + ], + [ + 184, 134, 37, 128, 143, 22, 57, 204, 184, 89, 54, 236, 170, 123, 109, 20, 114, 172, + 121, 243, 37, 217, 219, 38, 71, 67, 51, 49, 13, 31, 79, 36, + ], + [ + 223, 219, 38, 58, 177, 64, 40, 107, 71, 58, 211, 112, 35, 73, 154, 52, 180, 252, 153, + 239, 154, 5, 210, 15, 116, 102, 250, 226, 17, 79, 2, 0, + ], + ], + [ + [ + 86, 108, 216, 34, 154, 182, 132, 72, 67, 161, 20, 204, 92, 218, 109, 31, 146, 215, 73, + 85, 186, 63, 178, 83, 74, 63, 115, 248, 215, 203, 131, 31, + ], + [ + 68, 146, 252, 110, 32, 80, 133, 118, 93, 102, 51, 124, 114, 76, 141, 132, 243, 175, 35, + 2, 151, 83, 90, 137, 188, 59, 33, 45, 144, 241, 77, 59, + ], + [ + 199, 168, 25, 87, 146, 91, 7, 45, 196, 18, 34, 77, 121, 59, 49, 171, 218, 111, 121, + 144, 67, 17, 163, 60, 41, 184, 123, 35, 107, 158, 204, 42, + ], + [ + 81, 34, 122, 126, 218, 213, 211, 210, 132, 204, 13, 131, 85, 187, 237, 173, 173, 72, + 210, 134, 63, 167, 97, 139, 126, 221, 254, 217, 147, 76, 48, 36, + ], + [ + 212, 17, 78, 238, 49, 160, 218, 85, 86, 250, 124, 160, 63, 77, 80, 153, 20, 197, 70, + 88, 8, 92, 28, 108, 34, 214, 138, 234, 220, 191, 6, 42, + ], + [ + 121, 219, 39, 10, 207, 76, 241, 73, 84, 53, 101, 47, 129, 70, 245, 235, 249, 253, 118, + 193, 89, 63, 27, 201, 16, 103, 193, 199, 206, 22, 188, 4, + ], + [ + 32, 135, 154, 90, 39, 88, 11, 21, 28, 118, 172, 80, 157, 117, 227, 194, 95, 21, 193, + 244, 134, 48, 20, 209, 135, 51, 22, 226, 172, 35, 170, 32, + ], + [ + 43, 221, 151, 128, 141, 210, 207, 198, 229, 190, 198, 122, 10, 175, 184, 64, 55, 212, + 147, 45, 67, 156, 35, 168, 175, 147, 89, 191, 250, 231, 99, 62, + ], + ], + [ + [ + 243, 133, 64, 65, 91, 46, 144, 139, 138, 115, 84, 217, 89, 221, 170, 23, 2, 205, 113, + 152, 46, 159, 81, 126, 63, 7, 137, 165, 116, 51, 40, 11, + ], + [ + 109, 94, 105, 247, 230, 206, 57, 126, 225, 207, 205, 33, 125, 9, 155, 204, 119, 58, + 221, 209, 138, 16, 203, 96, 189, 26, 45, 92, 3, 36, 48, 9, + ], + [ + 254, 204, 107, 219, 208, 50, 17, 142, 30, 121, 107, 37, 62, 51, 152, 159, 53, 134, 215, + 86, 73, 214, 25, 237, 64, 69, 212, 112, 191, 153, 246, 44, + ], + [ + 99, 148, 101, 253, 131, 235, 77, 241, 22, 107, 74, 217, 103, 175, 136, 203, 69, 61, + 221, 193, 214, 8, 102, 175, 83, 121, 218, 128, 206, 159, 25, 23, + ], + [ + 111, 64, 79, 248, 50, 79, 231, 252, 52, 151, 216, 18, 195, 193, 18, 109, 126, 164, 43, + 102, 23, 39, 211, 247, 10, 29, 172, 211, 182, 31, 245, 13, + ], + [ + 3, 86, 28, 24, 154, 35, 148, 150, 230, 16, 146, 211, 24, 184, 121, 224, 111, 36, 128, + 45, 67, 71, 97, 234, 173, 172, 203, 44, 219, 134, 47, 22, + ], + [ + 62, 127, 47, 223, 234, 188, 44, 197, 94, 21, 47, 75, 38, 226, 46, 82, 214, 220, 94, + 205, 176, 252, 226, 208, 85, 7, 191, 28, 217, 158, 83, 13, + ], + [ + 96, 225, 72, 121, 83, 10, 196, 69, 54, 68, 161, 232, 58, 131, 166, 200, 208, 196, 134, + 18, 85, 234, 37, 244, 239, 42, 197, 250, 60, 118, 37, 4, + ], + ], + [ + [ + 100, 154, 11, 180, 188, 20, 222, 46, 29, 254, 104, 147, 128, 159, 209, 246, 95, 79, 6, + 158, 211, 154, 74, 202, 45, 8, 199, 59, 67, 89, 31, 36, + ], + [ + 59, 218, 141, 48, 106, 107, 91, 63, 20, 57, 51, 66, 177, 136, 20, 151, 170, 87, 166, + 122, 26, 134, 223, 101, 144, 92, 104, 253, 117, 115, 198, 48, + ], + [ + 6, 234, 190, 8, 45, 67, 212, 14, 215, 229, 43, 147, 98, 177, 241, 248, 142, 172, 9, 27, + 42, 223, 91, 180, 75, 219, 159, 182, 205, 5, 110, 1, + ], + [ + 139, 41, 229, 150, 94, 20, 37, 79, 90, 170, 31, 21, 106, 60, 63, 40, 225, 44, 156, 254, + 70, 77, 196, 147, 128, 130, 180, 151, 41, 75, 158, 33, + ], + [ + 139, 111, 3, 218, 41, 122, 103, 61, 112, 106, 17, 227, 74, 93, 112, 194, 70, 21, 101, + 116, 48, 164, 124, 20, 170, 241, 78, 147, 89, 107, 12, 37, + ], + [ + 135, 10, 234, 73, 60, 129, 112, 145, 165, 224, 166, 60, 131, 105, 236, 222, 39, 59, + 227, 161, 113, 246, 119, 103, 24, 162, 5, 55, 245, 221, 19, 11, + ], + [ + 79, 204, 186, 89, 248, 255, 253, 34, 43, 99, 55, 53, 162, 27, 15, 51, 206, 113, 185, + 154, 102, 75, 154, 80, 115, 51, 169, 203, 111, 57, 253, 15, + ], + [ + 241, 70, 150, 96, 14, 181, 110, 248, 200, 60, 151, 32, 56, 236, 1, 160, 207, 239, 204, + 96, 180, 20, 114, 141, 204, 79, 222, 42, 233, 93, 86, 4, + ], + ], + [ + [ + 133, 42, 108, 146, 9, 233, 159, 193, 246, 146, 58, 201, 35, 57, 51, 79, 31, 110, 185, + 80, 198, 123, 90, 212, 230, 44, 5, 125, 69, 245, 133, 8, + ], + [ + 229, 72, 83, 102, 213, 54, 195, 176, 137, 144, 238, 18, 31, 192, 209, 173, 251, 255, + 140, 176, 244, 204, 213, 213, 163, 231, 2, 147, 229, 252, 61, 45, + ], + [ + 71, 127, 51, 61, 4, 61, 154, 153, 6, 190, 184, 184, 246, 195, 97, 120, 73, 143, 135, + 84, 154, 23, 119, 144, 120, 38, 55, 242, 88, 180, 27, 19, + ], + [ + 75, 52, 60, 75, 156, 190, 238, 12, 77, 247, 183, 176, 64, 156, 173, 107, 27, 154, 11, + 252, 58, 116, 8, 98, 74, 169, 127, 147, 196, 228, 107, 32, + ], + [ + 148, 235, 145, 32, 227, 216, 189, 85, 81, 174, 122, 74, 29, 157, 193, 199, 131, 131, + 215, 200, 40, 168, 165, 204, 234, 158, 148, 212, 238, 62, 183, 18, + ], + [ + 154, 181, 252, 201, 70, 152, 237, 106, 10, 69, 44, 207, 168, 233, 5, 104, 110, 68, 207, + 203, 85, 242, 149, 191, 125, 123, 34, 246, 37, 233, 36, 44, + ], + [ + 211, 231, 62, 59, 210, 172, 126, 106, 177, 163, 74, 94, 201, 226, 57, 90, 138, 213, + 177, 154, 128, 11, 241, 24, 122, 183, 243, 189, 220, 68, 234, 7, + ], + [ + 56, 235, 124, 129, 101, 66, 101, 95, 248, 36, 151, 219, 71, 118, 126, 54, 161, 159, + 130, 62, 236, 239, 129, 232, 227, 45, 180, 127, 204, 15, 191, 41, + ], + ], + [ + [ + 58, 7, 140, 180, 114, 238, 131, 202, 207, 64, 62, 207, 210, 71, 132, 77, 52, 11, 81, + 73, 215, 25, 106, 0, 178, 254, 238, 8, 223, 22, 116, 55, + ], + [ + 223, 58, 89, 147, 0, 219, 48, 190, 127, 47, 35, 39, 120, 55, 84, 162, 29, 15, 239, 70, + 105, 190, 179, 179, 161, 77, 68, 62, 74, 245, 2, 0, + ], + [ + 119, 42, 91, 164, 172, 227, 112, 30, 94, 87, 129, 68, 103, 131, 240, 24, 28, 173, 61, + 51, 123, 176, 110, 204, 238, 162, 214, 123, 67, 43, 77, 61, + ], + [ + 234, 137, 155, 145, 183, 245, 247, 147, 139, 194, 96, 144, 204, 154, 159, 94, 97, 150, + 59, 129, 113, 213, 0, 184, 73, 215, 212, 114, 207, 10, 31, 30, + ], + [ + 42, 90, 73, 230, 113, 98, 152, 59, 179, 244, 222, 133, 142, 178, 172, 225, 57, 210, 95, + 96, 162, 203, 63, 245, 108, 203, 167, 94, 125, 54, 162, 58, + ], + [ + 240, 196, 76, 186, 213, 181, 225, 51, 212, 188, 155, 194, 158, 183, 234, 110, 181, 97, + 93, 116, 201, 160, 208, 67, 218, 169, 210, 210, 11, 33, 212, 7, + ], + [ + 68, 105, 62, 121, 37, 69, 237, 189, 194, 25, 197, 246, 64, 28, 252, 193, 66, 110, 140, + 255, 218, 86, 133, 31, 198, 252, 165, 237, 73, 22, 15, 60, + ], + [ + 210, 33, 63, 244, 100, 40, 160, 16, 81, 38, 120, 211, 176, 13, 155, 255, 113, 214, 10, + 73, 204, 178, 186, 189, 207, 91, 142, 112, 152, 74, 42, 17, + ], + ], + [ + [ + 65, 190, 3, 42, 54, 225, 195, 120, 113, 25, 19, 40, 59, 78, 139, 70, 53, 104, 84, 240, + 93, 38, 233, 201, 29, 218, 43, 14, 16, 238, 1, 3, + ], + [ + 94, 85, 50, 4, 205, 48, 215, 233, 248, 185, 111, 219, 70, 219, 70, 1, 2, 75, 187, 253, + 5, 210, 180, 219, 163, 252, 251, 224, 27, 158, 205, 35, + ], + [ + 145, 45, 21, 30, 132, 8, 164, 37, 104, 121, 240, 200, 86, 247, 240, 166, 128, 202, 205, + 12, 252, 53, 120, 60, 180, 106, 148, 158, 111, 18, 126, 40, + ], + [ + 53, 47, 28, 89, 156, 147, 71, 72, 158, 73, 217, 107, 73, 132, 49, 120, 42, 30, 182, + 213, 150, 114, 90, 223, 215, 71, 92, 251, 21, 142, 200, 0, + ], + [ + 21, 187, 146, 84, 186, 214, 154, 62, 147, 23, 51, 157, 249, 201, 137, 79, 187, 184, + 129, 149, 53, 241, 85, 154, 207, 58, 122, 229, 14, 246, 154, 7, + ], + [ + 71, 228, 225, 174, 83, 69, 84, 246, 152, 5, 21, 70, 130, 252, 61, 162, 9, 28, 95, 31, + 115, 251, 224, 36, 219, 224, 124, 5, 249, 147, 129, 52, + ], + [ + 99, 84, 54, 113, 53, 228, 153, 72, 229, 33, 119, 65, 136, 127, 25, 133, 51, 92, 140, + 149, 34, 123, 82, 14, 117, 69, 132, 126, 250, 215, 130, 47, + ], + [ + 158, 108, 91, 43, 179, 230, 110, 55, 17, 10, 220, 62, 145, 238, 91, 226, 158, 83, 51, + 101, 189, 13, 71, 78, 184, 42, 243, 17, 201, 181, 140, 11, + ], + ], + [ + [ + 194, 241, 4, 81, 158, 51, 209, 249, 35, 115, 149, 92, 55, 91, 174, 251, 202, 167, 82, + 52, 253, 32, 43, 121, 206, 222, 164, 43, 248, 220, 122, 12, + ], + [ + 99, 154, 211, 41, 184, 45, 22, 111, 12, 195, 48, 243, 13, 253, 200, 229, 24, 205, 149, + 165, 148, 197, 251, 209, 182, 19, 159, 152, 94, 232, 156, 4, + ], + [ + 0, 100, 188, 149, 90, 163, 159, 111, 0, 244, 218, 168, 18, 83, 125, 222, 206, 144, 226, + 94, 118, 121, 221, 75, 14, 17, 94, 243, 202, 242, 253, 27, + ], + [ + 240, 46, 2, 247, 182, 224, 144, 79, 143, 124, 223, 40, 51, 131, 25, 96, 132, 163, 48, + 24, 133, 37, 180, 92, 120, 224, 236, 140, 128, 1, 189, 40, + ], + [ + 119, 221, 95, 119, 141, 17, 159, 165, 72, 131, 170, 156, 220, 250, 5, 111, 209, 99, 9, + 38, 230, 163, 50, 149, 172, 255, 56, 203, 136, 161, 48, 21, + ], + [ + 116, 77, 45, 31, 77, 80, 76, 36, 84, 112, 49, 174, 101, 182, 116, 15, 15, 242, 172, + 150, 114, 212, 46, 120, 187, 34, 145, 212, 0, 158, 239, 36, + ], + [ + 234, 22, 164, 104, 165, 197, 122, 166, 202, 123, 178, 133, 187, 135, 235, 194, 206, + 219, 58, 179, 30, 245, 147, 110, 141, 124, 206, 1, 148, 209, 101, 4, + ], + [ + 242, 73, 177, 217, 169, 198, 140, 205, 216, 73, 28, 38, 255, 90, 182, 211, 219, 192, + 108, 40, 247, 162, 57, 211, 108, 105, 233, 230, 138, 168, 92, 63, + ], + ], + [ + [ + 173, 95, 90, 146, 119, 75, 98, 69, 145, 115, 239, 18, 233, 216, 75, 241, 80, 100, 96, + 37, 221, 214, 199, 94, 228, 153, 135, 100, 155, 155, 216, 2, + ], + [ + 150, 79, 236, 24, 163, 31, 70, 201, 143, 232, 204, 60, 220, 195, 134, 231, 11, 12, 144, + 0, 193, 32, 61, 209, 239, 139, 83, 197, 150, 64, 148, 59, + ], + [ + 131, 108, 159, 162, 122, 223, 253, 251, 52, 16, 253, 139, 103, 224, 54, 119, 11, 188, + 86, 103, 124, 47, 156, 143, 37, 30, 210, 118, 193, 210, 84, 34, + ], + [ + 43, 173, 230, 170, 177, 240, 16, 6, 56, 146, 203, 212, 135, 78, 45, 36, 207, 117, 225, + 215, 190, 197, 187, 20, 2, 61, 52, 114, 11, 136, 193, 10, + ], + [ + 13, 77, 75, 121, 118, 79, 49, 124, 11, 205, 176, 65, 144, 48, 236, 222, 67, 180, 109, + 168, 43, 77, 168, 27, 2, 222, 123, 135, 11, 103, 6, 22, + ], + [ + 214, 232, 233, 41, 25, 210, 118, 90, 85, 18, 143, 98, 244, 50, 251, 225, 101, 170, 229, + 58, 207, 175, 175, 233, 208, 5, 52, 27, 209, 230, 169, 31, + ], + [ + 129, 131, 148, 184, 182, 36, 79, 246, 200, 243, 153, 36, 187, 3, 93, 208, 186, 153, + 173, 154, 142, 119, 197, 27, 57, 122, 240, 85, 105, 206, 17, 50, + ], + [ + 241, 75, 9, 108, 156, 226, 162, 237, 221, 84, 169, 167, 11, 25, 191, 150, 233, 203, 61, + 64, 95, 176, 96, 79, 39, 143, 83, 172, 33, 238, 82, 10, + ], + ], + [ + [ + 249, 64, 46, 51, 246, 45, 133, 33, 65, 155, 225, 183, 65, 194, 179, 149, 118, 11, 201, + 218, 20, 8, 7, 98, 19, 54, 211, 59, 226, 174, 181, 30, + ], + [ + 78, 52, 33, 54, 74, 139, 14, 51, 38, 151, 205, 116, 207, 250, 247, 61, 67, 250, 220, + 248, 184, 120, 243, 69, 81, 143, 46, 190, 151, 25, 209, 7, + ], + [ + 117, 44, 92, 67, 68, 250, 114, 230, 86, 95, 107, 31, 210, 141, 32, 48, 43, 80, 5, 102, + 72, 39, 215, 25, 246, 7, 20, 183, 170, 130, 203, 40, + ], + [ + 248, 52, 236, 99, 245, 230, 43, 187, 159, 164, 252, 246, 45, 35, 142, 166, 203, 99, + 243, 180, 131, 234, 104, 61, 198, 159, 140, 136, 45, 120, 20, 55, + ], + [ + 197, 252, 78, 164, 142, 18, 216, 81, 116, 199, 65, 0, 35, 6, 95, 105, 67, 83, 162, 56, + 231, 180, 36, 75, 119, 162, 211, 252, 162, 108, 87, 7, + ], + [ + 67, 43, 183, 166, 242, 83, 163, 0, 72, 129, 240, 196, 178, 90, 3, 33, 144, 139, 80, + 173, 176, 17, 119, 45, 223, 30, 157, 64, 198, 232, 11, 8, + ], + [ + 236, 216, 184, 177, 72, 88, 104, 89, 162, 120, 101, 134, 110, 49, 69, 253, 105, 171, + 109, 13, 86, 253, 38, 253, 135, 146, 38, 248, 160, 88, 12, 6, + ], + [ + 87, 44, 230, 170, 54, 93, 209, 204, 5, 240, 55, 102, 218, 228, 105, 33, 171, 112, 84, + 227, 131, 207, 119, 121, 115, 23, 26, 179, 8, 111, 253, 3, + ], + ], + [ + [ + 100, 157, 27, 13, 92, 74, 138, 226, 131, 160, 172, 107, 65, 128, 45, 170, 169, 90, 155, + 25, 167, 166, 136, 89, 232, 252, 203, 155, 70, 6, 182, 32, + ], + [ + 159, 197, 68, 197, 232, 244, 71, 69, 251, 104, 129, 20, 231, 138, 116, 216, 109, 77, + 148, 92, 134, 5, 135, 227, 146, 116, 246, 221, 236, 104, 83, 26, + ], + [ + 149, 158, 108, 59, 214, 113, 52, 126, 198, 118, 186, 164, 142, 109, 2, 1, 124, 233, 0, + 84, 130, 41, 182, 172, 37, 217, 212, 126, 222, 145, 202, 4, + ], + [ + 165, 213, 205, 252, 170, 149, 33, 185, 40, 200, 132, 94, 128, 188, 2, 243, 141, 30, + 126, 208, 209, 234, 78, 69, 70, 69, 205, 216, 154, 51, 86, 10, + ], + [ + 153, 122, 142, 76, 38, 219, 144, 223, 227, 232, 9, 56, 225, 5, 191, 92, 100, 51, 155, + 107, 205, 202, 74, 170, 103, 189, 30, 159, 68, 61, 202, 13, + ], + [ + 134, 38, 203, 216, 65, 140, 214, 94, 24, 224, 177, 151, 140, 7, 41, 124, 40, 41, 1, 51, + 59, 89, 30, 130, 108, 87, 127, 214, 162, 183, 246, 22, + ], + [ + 187, 193, 99, 160, 244, 73, 163, 177, 215, 30, 255, 31, 114, 223, 43, 85, 84, 226, 220, + 164, 67, 0, 238, 185, 249, 231, 198, 124, 172, 35, 149, 60, + ], + [ + 45, 186, 4, 252, 12, 240, 229, 162, 18, 91, 136, 107, 201, 227, 77, 8, 175, 8, 198, + 103, 34, 168, 221, 193, 176, 128, 72, 93, 195, 26, 172, 3, + ], + ], + [ + [ + 91, 46, 86, 226, 133, 67, 28, 86, 126, 29, 234, 89, 216, 65, 179, 40, 36, 237, 114, + 194, 111, 26, 250, 5, 252, 24, 131, 155, 178, 92, 10, 11, + ], + [ + 67, 208, 75, 127, 148, 190, 127, 53, 27, 219, 88, 183, 139, 50, 201, 19, 250, 158, 128, + 169, 150, 92, 76, 50, 89, 132, 55, 122, 219, 124, 16, 11, + ], + [ + 140, 159, 86, 156, 195, 225, 138, 7, 78, 241, 245, 181, 207, 152, 209, 52, 121, 95, 35, + 65, 101, 20, 101, 88, 9, 130, 39, 135, 135, 74, 9, 1, + ], + [ + 253, 181, 175, 91, 246, 184, 164, 214, 93, 116, 66, 47, 57, 58, 32, 0, 45, 28, 106, 79, + 214, 62, 176, 226, 255, 241, 191, 101, 224, 247, 9, 29, + ], + [ + 233, 235, 128, 119, 38, 23, 25, 207, 212, 163, 148, 62, 177, 73, 115, 228, 237, 228, + 174, 133, 58, 20, 187, 192, 111, 239, 218, 119, 132, 233, 147, 28, + ], + [ + 102, 191, 62, 245, 131, 141, 134, 94, 211, 147, 155, 226, 34, 19, 146, 177, 54, 235, + 23, 15, 176, 169, 246, 97, 178, 252, 103, 39, 105, 178, 162, 51, + ], + [ + 7, 50, 217, 129, 106, 152, 234, 81, 110, 193, 51, 82, 62, 50, 179, 59, 89, 116, 206, + 117, 204, 73, 35, 115, 85, 176, 39, 231, 60, 170, 116, 47, + ], + [ + 75, 196, 187, 39, 241, 38, 201, 59, 230, 232, 134, 175, 19, 66, 71, 243, 254, 64, 242, + 14, 160, 95, 24, 130, 33, 51, 183, 120, 216, 162, 193, 32, + ], + ], + [ + [ + 80, 139, 231, 43, 42, 117, 92, 23, 23, 28, 89, 92, 0, 118, 252, 26, 197, 165, 70, 191, + 196, 203, 169, 72, 141, 197, 13, 103, 216, 197, 184, 13, + ], + [ + 171, 152, 143, 232, 240, 5, 166, 106, 27, 18, 57, 228, 232, 129, 41, 209, 77, 30, 210, + 74, 209, 33, 45, 74, 163, 209, 238, 156, 80, 77, 158, 15, + ], + [ + 96, 136, 152, 220, 61, 122, 124, 180, 101, 158, 18, 10, 19, 70, 9, 13, 228, 26, 191, + 48, 235, 92, 34, 90, 241, 180, 94, 57, 155, 70, 144, 42, + ], + [ + 179, 252, 92, 89, 59, 253, 147, 136, 110, 199, 105, 197, 235, 217, 159, 216, 232, 248, + 23, 191, 13, 61, 223, 38, 104, 236, 204, 89, 222, 220, 240, 61, + ], + [ + 217, 91, 66, 69, 68, 44, 20, 147, 18, 87, 88, 66, 142, 170, 173, 93, 77, 15, 82, 94, + 26, 144, 31, 224, 164, 45, 203, 84, 24, 139, 14, 23, + ], + [ + 61, 139, 126, 42, 167, 228, 59, 215, 79, 212, 163, 10, 48, 212, 246, 81, 180, 25, 156, + 101, 209, 148, 57, 138, 78, 49, 193, 14, 101, 158, 189, 55, + ], + [ + 159, 6, 43, 236, 178, 210, 174, 111, 168, 153, 94, 23, 184, 185, 247, 237, 207, 133, + 190, 220, 41, 179, 2, 74, 193, 144, 244, 247, 129, 121, 73, 41, + ], + [ + 73, 81, 174, 197, 26, 219, 123, 128, 63, 219, 134, 33, 79, 124, 244, 18, 207, 94, 155, + 181, 248, 239, 24, 32, 62, 101, 30, 162, 200, 148, 17, 59, + ], + ], + [ + [ + 21, 11, 152, 124, 138, 60, 93, 36, 7, 60, 214, 84, 45, 154, 172, 52, 35, 153, 17, 9, + 203, 118, 210, 182, 10, 95, 57, 145, 126, 8, 5, 42, + ], + [ + 71, 101, 167, 15, 118, 90, 63, 8, 124, 156, 180, 28, 65, 161, 49, 86, 131, 205, 169, + 69, 84, 231, 193, 228, 214, 212, 145, 49, 194, 101, 242, 29, + ], + [ + 7, 34, 97, 70, 161, 98, 83, 134, 241, 74, 132, 136, 64, 214, 70, 28, 200, 90, 12, 111, + 86, 123, 8, 251, 164, 2, 58, 177, 195, 146, 182, 21, + ], + [ + 164, 230, 11, 145, 185, 76, 76, 97, 238, 93, 215, 40, 162, 213, 31, 242, 100, 67, 139, + 137, 118, 188, 204, 150, 253, 175, 94, 60, 210, 138, 9, 32, + ], + [ + 108, 48, 162, 95, 78, 234, 152, 114, 166, 28, 255, 6, 184, 151, 224, 174, 128, 95, 140, + 153, 230, 85, 248, 241, 64, 210, 182, 139, 32, 250, 41, 32, + ], + [ + 154, 194, 221, 96, 105, 253, 154, 78, 151, 82, 214, 33, 56, 41, 200, 160, 107, 92, 70, + 233, 152, 50, 229, 239, 233, 141, 44, 101, 191, 20, 37, 8, + ], + [ + 87, 249, 195, 51, 136, 74, 211, 133, 253, 248, 97, 146, 179, 28, 66, 93, 36, 153, 66, + 239, 16, 69, 135, 216, 35, 151, 73, 200, 68, 9, 32, 13, + ], + [ + 184, 229, 139, 19, 69, 111, 241, 199, 83, 10, 138, 24, 203, 217, 63, 209, 81, 219, 24, + 37, 49, 241, 79, 9, 138, 240, 48, 107, 29, 46, 55, 4, + ], + ], + [ + [ + 222, 18, 27, 133, 130, 121, 92, 228, 235, 31, 219, 249, 77, 230, 39, 140, 187, 30, 119, + 112, 172, 56, 28, 218, 242, 51, 136, 143, 49, 179, 27, 25, + ], + [ + 2, 99, 67, 80, 156, 33, 160, 127, 126, 26, 10, 176, 146, 164, 212, 207, 172, 162, 165, + 143, 181, 41, 188, 59, 128, 2, 140, 243, 6, 191, 47, 50, + ], + [ + 80, 146, 67, 231, 83, 95, 75, 75, 198, 78, 97, 42, 71, 41, 87, 178, 100, 226, 240, 179, + 51, 94, 229, 133, 55, 227, 162, 161, 155, 14, 160, 51, + ], + [ + 184, 82, 151, 20, 59, 61, 157, 47, 88, 40, 125, 76, 132, 98, 13, 220, 157, 43, 174, + 135, 113, 131, 232, 159, 134, 112, 131, 61, 229, 56, 187, 31, + ], + [ + 103, 159, 75, 105, 229, 173, 33, 147, 222, 198, 216, 51, 158, 126, 253, 155, 209, 71, + 97, 213, 227, 160, 59, 169, 255, 4, 158, 246, 202, 37, 41, 55, + ], + [ + 70, 44, 245, 153, 162, 248, 57, 34, 159, 124, 179, 43, 174, 127, 126, 62, 239, 103, 71, + 230, 168, 6, 1, 249, 202, 249, 58, 64, 50, 84, 166, 49, + ], + [ + 24, 11, 169, 224, 141, 175, 98, 63, 54, 81, 30, 229, 141, 220, 77, 48, 160, 66, 234, + 155, 148, 214, 56, 206, 162, 192, 93, 21, 37, 68, 223, 20, + ], + [ + 12, 206, 30, 240, 150, 168, 254, 195, 216, 250, 139, 93, 74, 204, 177, 206, 186, 183, + 11, 216, 8, 219, 75, 55, 158, 241, 27, 121, 158, 126, 89, 37, + ], + ], + [ + [ + 126, 244, 161, 84, 141, 63, 108, 50, 97, 130, 49, 143, 229, 206, 114, 37, 17, 244, 30, + 5, 5, 65, 90, 231, 102, 176, 228, 110, 42, 206, 59, 7, + ], + [ + 171, 250, 110, 27, 19, 51, 98, 97, 147, 101, 9, 200, 255, 24, 103, 220, 213, 243, 63, + 100, 129, 94, 129, 237, 192, 53, 44, 54, 81, 150, 163, 49, + ], + [ + 207, 235, 227, 240, 49, 150, 106, 200, 76, 72, 90, 46, 38, 172, 83, 132, 225, 207, 25, + 95, 29, 88, 178, 163, 130, 5, 41, 2, 35, 56, 242, 5, + ], + [ + 150, 235, 254, 218, 81, 133, 9, 45, 179, 227, 128, 87, 212, 188, 250, 90, 210, 132, 40, + 16, 118, 238, 125, 165, 27, 219, 224, 239, 34, 178, 94, 39, + ], + [ + 104, 208, 155, 48, 14, 222, 119, 22, 228, 238, 214, 217, 249, 175, 117, 113, 143, 198, + 122, 25, 87, 198, 212, 60, 57, 28, 213, 213, 91, 130, 12, 38, + ], + [ + 201, 85, 96, 155, 78, 135, 127, 238, 44, 177, 100, 78, 247, 155, 175, 223, 170, 205, + 210, 140, 238, 45, 94, 95, 244, 19, 5, 32, 43, 139, 214, 48, + ], + [ + 249, 240, 53, 215, 1, 213, 54, 151, 143, 107, 23, 223, 161, 19, 249, 213, 102, 137, + 228, 184, 2, 78, 237, 177, 23, 49, 218, 85, 55, 62, 215, 20, + ], + [ + 96, 201, 226, 19, 157, 94, 105, 10, 170, 204, 220, 109, 21, 94, 224, 26, 132, 56, 89, + 173, 176, 87, 145, 180, 174, 90, 228, 72, 206, 159, 48, 45, + ], + ], + [ + [ + 113, 76, 55, 16, 2, 198, 219, 166, 149, 128, 101, 84, 86, 171, 12, 5, 131, 54, 86, 113, + 196, 45, 45, 11, 118, 194, 183, 17, 58, 196, 31, 10, + ], + [ + 172, 125, 221, 60, 54, 229, 101, 125, 102, 252, 27, 200, 177, 87, 186, 178, 60, 164, + 109, 220, 15, 121, 133, 105, 9, 238, 96, 11, 36, 59, 9, 30, + ], + [ + 183, 108, 71, 108, 153, 232, 119, 177, 137, 136, 110, 110, 3, 219, 142, 115, 255, 120, + 114, 121, 148, 17, 97, 46, 218, 123, 63, 232, 214, 16, 147, 41, + ], + [ + 173, 231, 224, 166, 86, 142, 54, 70, 179, 225, 252, 2, 244, 75, 83, 118, 10, 20, 156, + 247, 202, 76, 237, 164, 61, 66, 13, 122, 141, 245, 173, 44, + ], + [ + 108, 239, 77, 249, 18, 117, 63, 85, 58, 86, 175, 32, 30, 153, 255, 100, 84, 29, 190, + 31, 229, 96, 136, 89, 133, 204, 51, 185, 137, 216, 164, 20, + ], + [ + 59, 220, 40, 70, 32, 241, 241, 203, 179, 230, 248, 247, 43, 169, 181, 150, 156, 133, + 147, 122, 253, 248, 32, 86, 24, 136, 5, 111, 169, 164, 215, 56, + ], + [ + 98, 209, 76, 142, 205, 4, 81, 26, 135, 170, 10, 201, 252, 197, 53, 94, 254, 105, 146, + 81, 160, 43, 12, 97, 126, 94, 64, 186, 207, 201, 68, 56, + ], + [ + 201, 190, 210, 46, 86, 174, 226, 108, 128, 111, 77, 178, 211, 163, 110, 111, 62, 61, + 153, 63, 216, 125, 9, 48, 127, 164, 43, 106, 64, 147, 129, 57, + ], + ], + [ + [ + 255, 240, 106, 196, 39, 210, 196, 148, 144, 253, 91, 141, 51, 240, 165, 236, 108, 169, + 69, 223, 235, 23, 160, 124, 2, 48, 44, 255, 167, 134, 112, 57, + ], + [ + 124, 68, 80, 75, 141, 236, 245, 254, 13, 176, 89, 204, 71, 154, 156, 56, 117, 53, 210, + 213, 47, 41, 149, 84, 28, 125, 7, 64, 72, 79, 177, 38, + ], + [ + 61, 71, 251, 185, 213, 100, 253, 192, 180, 4, 68, 195, 221, 45, 113, 19, 246, 221, 88, + 76, 165, 136, 14, 114, 197, 112, 100, 42, 89, 152, 91, 5, + ], + [ + 42, 226, 253, 216, 123, 40, 107, 109, 166, 66, 10, 217, 98, 141, 231, 69, 243, 226, 46, + 114, 123, 117, 180, 33, 18, 136, 116, 160, 222, 248, 162, 11, + ], + [ + 34, 220, 174, 123, 63, 171, 95, 68, 127, 18, 102, 15, 252, 35, 255, 63, 161, 228, 65, + 19, 218, 181, 243, 128, 113, 164, 244, 94, 67, 79, 147, 56, + ], + [ + 209, 56, 211, 64, 210, 9, 133, 186, 36, 212, 196, 71, 50, 82, 23, 95, 76, 75, 155, 87, + 37, 250, 226, 170, 148, 75, 75, 60, 138, 186, 40, 37, + ], + [ + 220, 163, 215, 26, 244, 235, 220, 165, 176, 44, 86, 158, 231, 85, 52, 25, 149, 119, + 195, 200, 49, 40, 140, 123, 192, 128, 4, 162, 187, 171, 90, 9, + ], + [ + 225, 7, 90, 21, 111, 77, 213, 55, 198, 207, 93, 231, 90, 26, 147, 18, 234, 190, 254, + 163, 41, 26, 104, 7, 234, 53, 80, 54, 100, 142, 14, 48, + ], + ], + [ + [ + 103, 49, 41, 63, 34, 209, 87, 117, 41, 188, 144, 57, 24, 205, 210, 209, 219, 178, 104, + 6, 21, 18, 145, 241, 202, 73, 252, 3, 136, 255, 16, 36, + ], + [ + 126, 141, 157, 92, 89, 211, 65, 46, 189, 255, 55, 182, 185, 222, 254, 89, 158, 15, 249, + 216, 37, 35, 39, 19, 124, 89, 81, 246, 62, 174, 73, 47, + ], + [ + 224, 229, 224, 38, 180, 80, 136, 160, 85, 100, 115, 226, 227, 6, 130, 184, 52, 91, 188, + 70, 78, 48, 79, 177, 179, 45, 224, 193, 145, 116, 220, 6, + ], + [ + 240, 89, 82, 251, 24, 123, 117, 60, 200, 187, 3, 66, 226, 200, 129, 133, 208, 196, 24, + 206, 61, 85, 56, 87, 169, 251, 87, 152, 109, 102, 86, 10, + ], + [ + 219, 120, 137, 97, 77, 109, 105, 128, 53, 170, 171, 221, 142, 205, 205, 243, 140, 73, + 150, 192, 58, 248, 218, 204, 10, 22, 80, 10, 145, 140, 23, 7, + ], + [ + 97, 62, 153, 212, 157, 7, 197, 172, 187, 181, 216, 197, 154, 222, 232, 25, 162, 34, + 115, 231, 82, 58, 59, 23, 244, 49, 112, 205, 47, 222, 162, 59, + ], + [ + 67, 55, 27, 153, 104, 30, 226, 63, 37, 218, 100, 170, 15, 229, 63, 147, 159, 80, 136, + 152, 199, 99, 121, 227, 100, 146, 169, 44, 76, 162, 53, 15, + ], + [ + 44, 140, 65, 137, 229, 185, 246, 138, 6, 180, 68, 32, 124, 9, 94, 142, 211, 153, 126, + 82, 82, 90, 75, 97, 238, 201, 97, 201, 147, 106, 102, 45, + ], + ], + [ + [ + 154, 78, 13, 175, 144, 144, 181, 254, 86, 176, 140, 173, 101, 106, 138, 95, 233, 97, + 107, 87, 110, 243, 211, 168, 113, 244, 0, 143, 106, 163, 103, 49, + ], + [ + 113, 86, 6, 11, 223, 129, 113, 20, 87, 6, 149, 189, 142, 165, 81, 44, 77, 211, 189, + 211, 155, 63, 227, 198, 235, 245, 238, 220, 145, 222, 131, 0, + ], + [ + 239, 34, 158, 133, 28, 172, 184, 246, 211, 95, 144, 164, 222, 37, 57, 217, 243, 104, + 162, 216, 71, 180, 230, 178, 65, 102, 237, 102, 33, 27, 64, 29, + ], + [ + 189, 2, 47, 8, 126, 160, 149, 81, 2, 192, 56, 35, 16, 216, 1, 185, 78, 101, 205, 142, + 248, 26, 138, 78, 19, 227, 132, 76, 211, 101, 143, 36, + ], + [ + 9, 244, 15, 160, 155, 180, 106, 160, 138, 78, 142, 12, 224, 162, 60, 80, 62, 44, 201, + 200, 85, 40, 69, 242, 28, 63, 119, 55, 55, 1, 187, 48, + ], + [ + 230, 52, 100, 80, 122, 148, 40, 24, 136, 15, 108, 33, 241, 1, 150, 97, 30, 12, 157, 14, + 247, 86, 117, 42, 218, 238, 93, 130, 148, 50, 76, 9, + ], + [ + 204, 114, 216, 224, 115, 175, 115, 198, 33, 211, 13, 20, 101, 254, 128, 182, 219, 99, + 49, 136, 34, 104, 131, 176, 57, 127, 217, 238, 87, 74, 149, 41, + ], + [ + 252, 28, 170, 15, 158, 141, 226, 80, 34, 113, 118, 234, 44, 161, 4, 180, 81, 42, 246, + 29, 137, 65, 208, 21, 184, 245, 74, 248, 211, 96, 223, 42, + ], + ], + [ + [ + 99, 73, 57, 46, 43, 160, 177, 18, 52, 120, 173, 225, 193, 243, 102, 8, 209, 4, 27, 211, + 18, 8, 26, 208, 100, 9, 229, 162, 211, 226, 100, 8, + ], + [ + 89, 148, 122, 14, 37, 150, 254, 164, 84, 248, 1, 148, 99, 59, 136, 157, 50, 211, 11, + 131, 52, 223, 87, 90, 47, 199, 113, 72, 114, 117, 27, 16, + ], + [ + 54, 224, 16, 104, 41, 121, 198, 104, 97, 16, 200, 211, 177, 6, 144, 107, 166, 233, 125, + 93, 81, 144, 234, 166, 100, 27, 56, 198, 215, 110, 191, 8, + ], + [ + 120, 49, 186, 107, 174, 192, 21, 80, 127, 55, 201, 252, 245, 21, 234, 199, 197, 0, 127, + 79, 165, 21, 163, 227, 148, 6, 201, 182, 212, 74, 85, 60, + ], + [ + 32, 206, 13, 185, 245, 1, 247, 16, 12, 178, 178, 51, 66, 213, 224, 253, 141, 191, 123, + 215, 206, 96, 242, 167, 21, 252, 216, 198, 200, 113, 138, 23, + ], + [ + 214, 146, 47, 116, 13, 140, 129, 199, 78, 218, 105, 47, 184, 183, 37, 176, 138, 116, + 29, 152, 211, 234, 236, 128, 221, 19, 16, 180, 5, 31, 38, 52, + ], + [ + 53, 22, 251, 54, 25, 10, 180, 124, 152, 90, 251, 137, 121, 218, 152, 77, 36, 39, 110, + 131, 149, 164, 253, 218, 195, 159, 8, 17, 163, 180, 48, 54, + ], + [ + 79, 222, 175, 84, 68, 207, 171, 218, 9, 173, 100, 196, 4, 209, 60, 217, 95, 220, 33, + 210, 226, 131, 0, 236, 216, 61, 217, 44, 220, 178, 178, 22, + ], + ], + [ + [ + 107, 105, 93, 217, 54, 82, 75, 109, 105, 29, 83, 80, 248, 146, 161, 232, 150, 85, 45, + 8, 3, 22, 194, 208, 55, 67, 26, 125, 7, 148, 129, 37, + ], + [ + 29, 95, 48, 152, 141, 85, 76, 104, 69, 146, 226, 5, 55, 108, 221, 235, 242, 85, 175, + 127, 92, 127, 161, 193, 47, 225, 40, 74, 235, 163, 158, 32, + ], + [ + 227, 244, 182, 232, 84, 114, 73, 222, 186, 128, 35, 45, 188, 135, 174, 135, 186, 197, + 229, 218, 9, 125, 136, 27, 131, 145, 163, 103, 77, 34, 43, 33, + ], + [ + 195, 68, 118, 100, 210, 211, 111, 3, 155, 3, 156, 224, 132, 248, 95, 134, 129, 212, 28, + 125, 239, 111, 143, 163, 225, 20, 226, 153, 87, 30, 30, 19, + ], + [ + 142, 241, 239, 103, 84, 171, 22, 132, 95, 60, 94, 44, 167, 21, 215, 45, 59, 120, 47, 0, + 131, 89, 140, 239, 48, 106, 10, 231, 219, 66, 142, 39, + ], + [ + 198, 220, 99, 166, 20, 56, 174, 133, 222, 155, 196, 81, 30, 232, 17, 138, 240, 13, 195, + 17, 216, 102, 91, 153, 195, 251, 189, 122, 157, 150, 7, 5, + ], + [ + 13, 239, 171, 80, 251, 163, 115, 201, 8, 163, 26, 149, 243, 103, 167, 155, 194, 39, + 226, 136, 8, 190, 219, 117, 165, 246, 254, 248, 156, 148, 87, 30, + ], + [ + 104, 157, 26, 155, 195, 128, 35, 82, 221, 218, 54, 250, 194, 68, 185, 187, 136, 145, + 79, 166, 157, 58, 86, 9, 247, 239, 103, 175, 218, 226, 137, 19, + ], + ], + [ + [ + 76, 222, 120, 1, 103, 34, 213, 86, 193, 6, 130, 96, 165, 215, 27, 94, 77, 215, 179, + 150, 125, 6, 171, 65, 24, 8, 61, 139, 250, 144, 31, 31, + ], + [ + 134, 23, 114, 162, 211, 19, 156, 246, 34, 170, 93, 193, 218, 142, 88, 4, 248, 192, 40, + 118, 53, 217, 131, 17, 168, 129, 200, 206, 4, 196, 235, 20, + ], + [ + 181, 35, 108, 194, 46, 27, 101, 145, 74, 17, 49, 227, 145, 110, 34, 95, 112, 64, 9, + 241, 215, 205, 232, 135, 35, 194, 234, 141, 80, 6, 89, 37, + ], + [ + 184, 177, 62, 50, 1, 237, 106, 151, 102, 29, 108, 160, 83, 99, 212, 156, 164, 218, 16, + 75, 167, 201, 62, 156, 91, 188, 199, 8, 195, 74, 196, 28, + ], + [ + 17, 89, 59, 91, 140, 2, 44, 45, 192, 13, 217, 135, 26, 70, 171, 156, 117, 198, 240, 1, + 218, 24, 48, 197, 51, 45, 56, 194, 94, 94, 51, 40, + ], + [ + 158, 122, 35, 55, 187, 102, 254, 58, 132, 214, 105, 217, 35, 171, 216, 216, 152, 172, + 126, 106, 107, 206, 127, 41, 164, 33, 165, 71, 247, 92, 143, 14, + ], + [ + 120, 71, 69, 120, 156, 189, 181, 43, 176, 232, 130, 201, 238, 12, 22, 58, 133, 25, 155, + 146, 9, 188, 14, 153, 53, 156, 38, 212, 195, 134, 95, 7, + ], + [ + 157, 96, 229, 115, 219, 58, 67, 16, 224, 9, 44, 240, 209, 213, 218, 68, 247, 237, 57, + 28, 228, 198, 146, 99, 140, 224, 145, 231, 119, 223, 118, 48, + ], + ], + [ + [ + 213, 203, 57, 233, 35, 161, 91, 226, 27, 23, 16, 217, 18, 194, 126, 205, 148, 142, 190, + 53, 58, 59, 253, 86, 70, 219, 212, 125, 153, 224, 6, 9, + ], + [ + 155, 137, 19, 65, 34, 199, 103, 121, 244, 81, 27, 130, 6, 116, 234, 102, 44, 199, 4, + 19, 80, 173, 42, 110, 70, 143, 130, 125, 159, 106, 236, 39, + ], + [ + 122, 10, 176, 127, 83, 36, 22, 172, 72, 92, 139, 199, 151, 96, 70, 203, 154, 81, 240, + 22, 29, 6, 119, 248, 46, 45, 132, 169, 166, 30, 90, 22, + ], + [ + 26, 13, 5, 45, 142, 71, 73, 137, 254, 3, 246, 242, 178, 98, 165, 194, 210, 131, 252, + 15, 162, 70, 72, 143, 67, 161, 142, 16, 152, 79, 80, 61, + ], + [ + 19, 13, 118, 209, 24, 155, 176, 112, 201, 217, 188, 152, 118, 164, 78, 191, 232, 62, + 216, 249, 142, 131, 126, 180, 90, 1, 150, 49, 78, 96, 75, 31, + ], + [ + 26, 242, 23, 163, 221, 125, 25, 226, 219, 86, 141, 10, 85, 252, 140, 215, 130, 142, + 159, 229, 169, 103, 118, 242, 183, 177, 223, 236, 90, 61, 233, 55, + ], + [ + 10, 208, 13, 145, 192, 166, 233, 172, 141, 58, 55, 234, 155, 69, 41, 247, 190, 194, 81, + 157, 179, 146, 197, 146, 251, 187, 218, 11, 60, 144, 237, 58, + ], + [ + 240, 206, 55, 40, 176, 39, 191, 197, 6, 96, 136, 229, 46, 153, 100, 47, 62, 60, 214, + 146, 206, 84, 114, 69, 26, 45, 157, 102, 40, 72, 91, 28, + ], + ], + [ + [ + 43, 161, 254, 90, 188, 123, 114, 200, 17, 242, 129, 50, 94, 237, 177, 114, 185, 147, + 161, 2, 170, 118, 128, 252, 95, 241, 149, 1, 49, 204, 201, 59, + ], + [ + 122, 217, 240, 150, 125, 123, 87, 55, 111, 22, 243, 27, 215, 190, 60, 91, 116, 68, 96, + 197, 18, 223, 203, 149, 121, 151, 239, 104, 126, 189, 132, 5, + ], + [ + 121, 57, 216, 35, 130, 22, 227, 222, 233, 39, 46, 77, 2, 167, 64, 44, 59, 50, 64, 48, + 204, 175, 113, 77, 238, 211, 91, 23, 98, 243, 90, 14, + ], + [ + 90, 181, 29, 181, 36, 252, 218, 201, 12, 206, 43, 100, 88, 235, 1, 117, 73, 51, 208, + 240, 30, 133, 64, 151, 40, 151, 233, 173, 66, 146, 212, 22, + ], + [ + 85, 121, 202, 247, 237, 164, 240, 148, 100, 11, 187, 140, 202, 183, 225, 244, 244, 207, + 198, 197, 209, 28, 26, 58, 202, 83, 113, 214, 181, 78, 222, 41, + ], + [ + 180, 231, 142, 160, 125, 98, 227, 7, 143, 3, 69, 171, 93, 224, 114, 156, 125, 17, 181, + 18, 0, 115, 49, 15, 15, 34, 81, 186, 185, 117, 184, 45, + ], + [ + 66, 196, 173, 255, 17, 239, 59, 139, 157, 5, 120, 107, 8, 206, 0, 133, 65, 23, 102, 73, + 131, 86, 172, 35, 99, 27, 238, 142, 167, 99, 224, 29, + ], + [ + 87, 234, 21, 65, 77, 92, 71, 146, 253, 59, 106, 150, 122, 185, 113, 28, 4, 114, 34, + 172, 19, 85, 11, 106, 118, 8, 215, 10, 29, 202, 109, 56, + ], + ], + [ + [ + 204, 119, 78, 168, 255, 167, 165, 38, 156, 195, 194, 168, 90, 72, 102, 86, 246, 39, 82, + 194, 147, 87, 28, 41, 208, 198, 242, 252, 144, 50, 134, 56, + ], + [ + 89, 168, 85, 62, 11, 67, 112, 59, 249, 65, 53, 37, 136, 204, 207, 189, 131, 40, 126, + 21, 99, 186, 208, 46, 113, 66, 38, 133, 191, 32, 81, 56, + ], + [ + 59, 65, 171, 57, 1, 188, 192, 11, 248, 82, 69, 83, 153, 237, 51, 109, 39, 20, 9, 93, + 219, 37, 123, 106, 255, 133, 228, 77, 110, 85, 86, 12, + ], + [ + 220, 71, 156, 57, 178, 156, 43, 207, 183, 201, 186, 96, 127, 23, 55, 116, 0, 21, 158, + 116, 250, 252, 242, 252, 253, 8, 81, 42, 200, 209, 23, 7, + ], + [ + 152, 231, 245, 77, 243, 134, 75, 92, 238, 114, 243, 21, 28, 94, 81, 19, 67, 215, 7, + 155, 62, 252, 92, 137, 224, 23, 81, 196, 41, 120, 45, 31, + ], + [ + 88, 86, 212, 205, 201, 188, 34, 237, 245, 154, 110, 89, 224, 247, 247, 53, 251, 109, + 178, 217, 100, 216, 154, 42, 254, 31, 115, 102, 112, 207, 154, 22, + ], + [ + 227, 134, 163, 64, 117, 82, 220, 198, 240, 28, 86, 151, 125, 205, 72, 70, 186, 42, 142, + 20, 138, 239, 66, 221, 249, 247, 198, 177, 8, 226, 29, 62, + ], + [ + 90, 225, 249, 139, 11, 83, 149, 107, 183, 239, 107, 72, 71, 9, 216, 151, 44, 79, 63, + 221, 56, 152, 219, 200, 185, 214, 29, 93, 202, 116, 166, 47, + ], + ], + [ + [ + 228, 25, 203, 131, 72, 219, 121, 155, 238, 243, 156, 151, 72, 209, 251, 93, 197, 32, + 228, 115, 26, 13, 254, 51, 249, 232, 59, 57, 46, 81, 82, 55, + ], + [ + 78, 128, 240, 159, 205, 127, 13, 51, 72, 25, 28, 151, 53, 55, 190, 169, 240, 58, 252, + 198, 109, 187, 49, 106, 176, 72, 218, 91, 146, 127, 109, 52, + ], + [ + 240, 19, 94, 221, 101, 239, 76, 3, 110, 229, 128, 156, 74, 63, 200, 43, 28, 157, 127, + 164, 254, 141, 137, 22, 137, 103, 214, 120, 105, 215, 42, 31, + ], + [ + 218, 88, 204, 255, 86, 211, 52, 151, 180, 145, 248, 64, 196, 167, 68, 246, 119, 170, + 90, 21, 120, 194, 93, 3, 12, 145, 33, 24, 91, 50, 116, 19, + ], + [ + 148, 134, 195, 91, 255, 65, 238, 49, 239, 141, 111, 9, 94, 137, 1, 152, 121, 224, 25, + 170, 66, 243, 161, 10, 215, 177, 161, 60, 36, 9, 75, 20, + ], + [ + 184, 101, 185, 170, 85, 116, 0, 47, 172, 203, 160, 18, 109, 98, 250, 162, 255, 213, + 245, 164, 53, 87, 62, 30, 115, 76, 152, 245, 10, 217, 214, 43, + ], + [ + 111, 35, 157, 172, 67, 135, 219, 111, 41, 3, 184, 115, 38, 234, 133, 124, 249, 119, + 160, 155, 221, 133, 28, 122, 176, 170, 19, 151, 104, 79, 85, 51, + ], + [ + 181, 239, 109, 111, 233, 193, 199, 150, 223, 181, 215, 54, 196, 216, 251, 35, 21, 10, + 6, 44, 120, 98, 170, 250, 231, 90, 99, 189, 50, 189, 19, 60, + ], + ], + [ + [ + 40, 12, 194, 46, 247, 222, 58, 252, 87, 215, 47, 154, 251, 107, 52, 13, 128, 24, 213, + 13, 195, 35, 191, 235, 68, 93, 189, 189, 252, 252, 167, 24, + ], + [ + 38, 105, 73, 132, 137, 11, 105, 85, 16, 244, 223, 124, 93, 158, 118, 81, 177, 159, 1, + 69, 113, 28, 17, 50, 79, 17, 28, 208, 35, 218, 212, 25, + ], + [ + 76, 198, 33, 207, 191, 213, 53, 3, 200, 102, 78, 223, 93, 40, 61, 123, 106, 236, 185, + 131, 214, 106, 80, 153, 115, 228, 225, 71, 31, 140, 113, 57, + ], + [ + 214, 79, 107, 70, 115, 107, 122, 106, 0, 239, 195, 79, 62, 111, 169, 40, 204, 73, 217, + 164, 131, 200, 145, 244, 54, 62, 40, 186, 182, 44, 248, 23, + ], + [ + 242, 254, 205, 32, 90, 19, 103, 203, 170, 64, 162, 67, 182, 13, 75, 230, 28, 194, 34, + 240, 204, 197, 198, 219, 78, 74, 72, 236, 11, 206, 32, 46, + ], + [ + 152, 23, 75, 211, 211, 169, 146, 12, 223, 100, 17, 184, 84, 89, 76, 194, 212, 15, 78, + 245, 16, 56, 80, 218, 164, 120, 72, 246, 19, 28, 116, 28, + ], + [ + 74, 5, 117, 170, 126, 141, 251, 3, 12, 184, 128, 229, 31, 147, 243, 221, 79, 250, 241, + 162, 81, 183, 76, 169, 164, 167, 195, 37, 111, 145, 214, 51, + ], + [ + 71, 243, 35, 221, 187, 141, 25, 109, 57, 157, 201, 174, 128, 157, 50, 164, 198, 111, + 235, 150, 36, 252, 127, 131, 76, 90, 169, 91, 222, 26, 201, 6, + ], + ], + [ + [ + 213, 238, 194, 146, 94, 121, 106, 132, 205, 35, 198, 73, 149, 185, 16, 238, 184, 3, 36, + 162, 134, 91, 66, 150, 229, 202, 155, 71, 36, 244, 31, 18, + ], + [ + 114, 6, 174, 91, 0, 229, 59, 73, 36, 11, 45, 159, 105, 145, 142, 172, 102, 234, 203, + 14, 22, 138, 48, 23, 194, 172, 140, 16, 65, 157, 119, 42, + ], + [ + 242, 66, 98, 57, 205, 27, 28, 168, 126, 141, 54, 41, 206, 178, 252, 138, 29, 199, 151, + 192, 196, 176, 69, 22, 45, 185, 84, 64, 200, 215, 82, 19, + ], + [ + 50, 189, 133, 225, 116, 129, 14, 69, 207, 164, 13, 13, 250, 172, 186, 243, 244, 127, + 185, 242, 1, 232, 229, 7, 170, 2, 10, 118, 44, 62, 29, 63, + ], + [ + 134, 20, 230, 242, 6, 31, 69, 27, 232, 249, 58, 102, 106, 148, 1, 224, 138, 125, 66, + 223, 207, 45, 175, 235, 24, 152, 126, 136, 97, 120, 156, 26, + ], + [ + 206, 69, 248, 240, 137, 112, 230, 15, 55, 6, 9, 161, 176, 42, 199, 151, 177, 92, 10, + 76, 38, 22, 158, 101, 58, 246, 68, 112, 208, 242, 223, 31, + ], + [ + 9, 185, 158, 109, 54, 50, 170, 95, 16, 229, 14, 119, 229, 171, 193, 73, 205, 98, 125, + 87, 205, 43, 194, 214, 47, 121, 248, 196, 175, 28, 71, 18, + ], + [ + 166, 6, 125, 245, 207, 115, 3, 74, 255, 191, 88, 77, 92, 152, 122, 155, 252, 125, 203, + 199, 219, 49, 179, 95, 85, 60, 174, 52, 41, 46, 122, 57, + ], + ], + [ + [ + 215, 197, 242, 170, 148, 210, 105, 84, 28, 246, 154, 48, 114, 11, 47, 104, 198, 29, 79, + 121, 85, 192, 83, 226, 104, 221, 36, 167, 10, 230, 9, 44, + ], + [ + 38, 101, 71, 27, 235, 109, 39, 104, 162, 219, 2, 102, 130, 75, 149, 224, 208, 106, 36, + 35, 126, 77, 200, 120, 248, 70, 189, 98, 147, 56, 196, 33, + ], + [ + 43, 254, 197, 70, 182, 96, 195, 113, 109, 4, 37, 174, 86, 22, 45, 155, 149, 166, 47, + 41, 235, 155, 60, 143, 107, 202, 246, 174, 99, 81, 182, 37, + ], + [ + 204, 133, 71, 6, 137, 11, 247, 251, 200, 146, 71, 8, 134, 144, 30, 115, 180, 230, 96, + 37, 126, 8, 96, 241, 78, 104, 95, 13, 231, 243, 172, 0, + ], + [ + 19, 155, 215, 193, 160, 46, 131, 2, 59, 139, 238, 194, 57, 178, 12, 140, 3, 243, 64, + 237, 112, 40, 81, 250, 124, 241, 12, 117, 130, 116, 254, 40, + ], + [ + 137, 165, 36, 240, 128, 172, 202, 88, 237, 127, 204, 45, 69, 177, 242, 25, 100, 146, + 236, 198, 192, 92, 215, 18, 69, 4, 245, 4, 1, 10, 43, 52, + ], + [ + 3, 158, 53, 179, 240, 14, 146, 201, 182, 180, 67, 159, 181, 33, 165, 229, 217, 247, 33, + 27, 167, 152, 110, 131, 85, 43, 206, 221, 226, 250, 123, 23, + ], + [ + 229, 92, 186, 133, 10, 181, 79, 50, 154, 37, 248, 83, 217, 228, 33, 159, 103, 149, 143, + 33, 8, 183, 95, 113, 63, 102, 224, 73, 156, 251, 98, 37, + ], + ], + [ + [ + 247, 74, 62, 239, 168, 228, 32, 209, 222, 23, 144, 181, 39, 128, 160, 88, 15, 214, 249, + 216, 183, 217, 18, 79, 72, 114, 111, 253, 179, 143, 225, 48, + ], + [ + 40, 173, 194, 76, 40, 155, 20, 143, 254, 219, 116, 6, 91, 177, 224, 105, 43, 133, 196, + 4, 242, 87, 73, 118, 249, 232, 136, 223, 69, 92, 238, 24, + ], + [ + 158, 53, 48, 117, 246, 139, 220, 102, 7, 22, 194, 218, 130, 117, 34, 146, 1, 31, 87, + 139, 146, 132, 54, 142, 233, 247, 135, 110, 93, 193, 162, 4, + ], + [ + 134, 20, 204, 240, 252, 33, 224, 236, 178, 214, 249, 240, 220, 247, 221, 114, 160, 124, + 110, 165, 70, 19, 132, 54, 244, 161, 6, 225, 112, 95, 154, 35, + ], + [ + 106, 46, 14, 29, 169, 215, 146, 162, 206, 26, 154, 130, 201, 59, 173, 149, 168, 203, + 105, 14, 148, 193, 107, 250, 103, 1, 79, 222, 39, 226, 119, 0, + ], + [ + 234, 18, 118, 231, 14, 17, 232, 50, 40, 103, 81, 18, 143, 207, 224, 52, 62, 0, 102, + 217, 182, 165, 217, 235, 230, 180, 13, 68, 2, 18, 40, 40, + ], + [ + 75, 123, 96, 255, 76, 203, 72, 134, 54, 123, 235, 42, 70, 231, 240, 72, 34, 190, 255, + 142, 236, 80, 214, 84, 148, 191, 46, 41, 191, 9, 249, 49, + ], + [ + 81, 106, 77, 254, 224, 248, 86, 236, 175, 228, 23, 60, 12, 21, 156, 181, 16, 96, 194, + 65, 43, 72, 84, 213, 169, 23, 235, 175, 17, 160, 101, 40, + ], + ], + [ + [ + 255, 202, 243, 40, 59, 189, 65, 206, 36, 58, 220, 59, 32, 50, 215, 251, 250, 199, 144, + 167, 60, 147, 124, 145, 211, 191, 40, 253, 45, 57, 65, 62, + ], + [ + 216, 142, 222, 34, 95, 115, 109, 52, 136, 6, 48, 112, 55, 233, 214, 65, 188, 63, 63, + 188, 30, 125, 219, 228, 96, 39, 2, 232, 216, 236, 36, 24, + ], + [ + 49, 214, 133, 89, 17, 232, 45, 73, 222, 70, 231, 0, 157, 115, 175, 226, 197, 144, 161, + 60, 109, 17, 96, 18, 208, 193, 222, 87, 232, 106, 203, 63, + ], + [ + 222, 205, 168, 98, 100, 250, 218, 211, 223, 20, 227, 19, 84, 40, 183, 228, 179, 174, + 193, 9, 150, 36, 54, 235, 138, 48, 91, 217, 90, 2, 68, 12, + ], + [ + 248, 49, 13, 135, 252, 104, 109, 197, 85, 103, 6, 201, 50, 224, 152, 124, 78, 50, 46, + 240, 133, 124, 241, 227, 25, 35, 192, 2, 228, 37, 30, 58, + ], + [ + 14, 157, 212, 178, 33, 141, 195, 233, 148, 209, 99, 31, 162, 136, 5, 142, 120, 233, + 220, 15, 79, 175, 177, 241, 146, 49, 102, 211, 252, 130, 121, 9, + ], + [ + 221, 245, 13, 62, 16, 26, 233, 246, 17, 220, 110, 118, 6, 251, 172, 236, 231, 108, 147, + 73, 160, 123, 205, 72, 54, 107, 216, 172, 212, 227, 197, 56, + ], + [ + 26, 183, 159, 163, 99, 211, 238, 142, 63, 162, 131, 254, 192, 50, 122, 30, 11, 165, 0, + 34, 137, 201, 18, 44, 35, 67, 75, 29, 91, 3, 64, 24, + ], + ], + [ + [ + 217, 170, 198, 82, 164, 156, 48, 78, 243, 8, 162, 5, 161, 214, 26, 30, 105, 121, 221, + 15, 178, 235, 126, 91, 240, 231, 234, 164, 129, 163, 23, 54, + ], + [ + 254, 124, 232, 46, 154, 234, 41, 132, 147, 167, 82, 156, 255, 152, 165, 188, 194, 112, + 118, 106, 96, 179, 109, 52, 246, 42, 79, 35, 107, 57, 212, 26, + ], + [ + 38, 115, 40, 37, 250, 17, 254, 56, 6, 112, 253, 115, 15, 36, 210, 211, 238, 33, 204, + 253, 199, 143, 3, 65, 134, 74, 79, 33, 60, 28, 170, 43, + ], + [ + 19, 156, 2, 238, 173, 43, 201, 213, 118, 138, 29, 250, 53, 73, 7, 189, 20, 61, 113, + 139, 64, 230, 97, 1, 225, 169, 162, 11, 77, 134, 136, 53, + ], + [ + 78, 97, 56, 58, 166, 149, 113, 8, 98, 0, 137, 188, 8, 124, 162, 118, 177, 116, 251, + 177, 116, 210, 102, 31, 183, 243, 26, 52, 83, 79, 186, 33, + ], + [ + 51, 200, 124, 61, 128, 141, 234, 223, 108, 47, 120, 168, 202, 74, 72, 146, 10, 40, 157, + 61, 25, 196, 20, 146, 157, 45, 194, 230, 131, 171, 53, 16, + ], + [ + 181, 85, 36, 16, 18, 181, 21, 254, 141, 102, 213, 159, 132, 1, 57, 130, 9, 143, 121, + 68, 15, 119, 7, 171, 143, 183, 193, 1, 249, 253, 36, 20, + ], + [ + 107, 77, 204, 52, 72, 81, 22, 230, 177, 54, 238, 49, 183, 222, 112, 78, 164, 255, 134, + 65, 123, 8, 4, 195, 184, 24, 216, 143, 48, 172, 114, 26, + ], + ], + [ + [ + 224, 165, 239, 181, 244, 151, 129, 54, 85, 87, 124, 240, 174, 1, 70, 118, 30, 155, 51, + 250, 142, 68, 46, 119, 171, 232, 52, 161, 115, 45, 192, 28, + ], + [ + 177, 83, 89, 10, 98, 235, 250, 204, 137, 157, 85, 57, 213, 67, 50, 214, 196, 32, 115, + 160, 55, 99, 37, 105, 50, 158, 157, 95, 87, 89, 12, 6, + ], + [ + 31, 181, 62, 233, 183, 232, 177, 247, 241, 220, 131, 89, 222, 45, 15, 22, 2, 29, 216, + 31, 154, 176, 224, 163, 152, 55, 230, 74, 194, 64, 29, 1, + ], + [ + 174, 31, 125, 191, 176, 122, 35, 41, 104, 113, 68, 147, 119, 17, 103, 38, 222, 44, 81, + 3, 250, 74, 9, 106, 176, 7, 241, 139, 171, 202, 152, 32, + ], + [ + 54, 165, 3, 154, 4, 5, 149, 0, 125, 146, 154, 23, 61, 148, 76, 158, 82, 143, 229, 163, + 204, 218, 102, 166, 23, 255, 201, 209, 86, 160, 68, 15, + ], + [ + 107, 49, 88, 210, 239, 78, 195, 211, 215, 223, 154, 25, 177, 128, 228, 39, 237, 211, + 251, 201, 51, 177, 160, 171, 26, 199, 234, 13, 143, 210, 6, 19, + ], + [ + 129, 220, 49, 186, 238, 46, 18, 145, 214, 116, 177, 103, 238, 253, 156, 98, 208, 242, + 61, 98, 82, 77, 93, 237, 42, 106, 139, 37, 40, 119, 94, 21, + ], + [ + 99, 86, 197, 177, 154, 78, 39, 72, 132, 166, 108, 253, 48, 59, 67, 185, 2, 130, 56, + 151, 148, 78, 188, 50, 138, 40, 127, 115, 8, 30, 195, 47, + ], + ], + [ + [ + 161, 97, 38, 183, 81, 130, 85, 252, 94, 241, 250, 149, 204, 211, 68, 21, 144, 223, 76, + 73, 67, 83, 162, 151, 197, 108, 157, 32, 148, 143, 62, 26, + ], + [ + 186, 237, 123, 78, 107, 54, 30, 146, 192, 222, 165, 177, 2, 125, 183, 167, 236, 168, + 96, 121, 6, 147, 225, 117, 86, 8, 15, 115, 149, 199, 1, 31, + ], + [ + 91, 208, 64, 25, 137, 126, 121, 244, 6, 205, 13, 56, 5, 211, 30, 139, 68, 85, 197, 221, + 100, 14, 18, 32, 193, 3, 151, 227, 148, 4, 192, 0, + ], + [ + 132, 233, 13, 214, 23, 47, 150, 6, 226, 216, 88, 203, 152, 212, 8, 231, 1, 141, 112, + 240, 220, 127, 199, 201, 254, 112, 119, 135, 253, 128, 237, 24, + ], + [ + 208, 154, 28, 21, 219, 23, 84, 233, 114, 177, 88, 89, 112, 204, 130, 28, 13, 124, 13, + 71, 67, 197, 83, 80, 157, 25, 105, 158, 2, 150, 133, 47, + ], + [ + 102, 50, 242, 246, 255, 157, 245, 139, 43, 72, 245, 232, 239, 122, 214, 227, 114, 31, + 59, 175, 126, 249, 229, 161, 47, 124, 232, 45, 116, 187, 11, 6, + ], + [ + 195, 235, 184, 23, 101, 52, 32, 120, 163, 252, 87, 10, 118, 21, 95, 10, 118, 95, 109, + 88, 251, 173, 11, 86, 187, 194, 230, 32, 85, 54, 187, 6, + ], + [ + 11, 77, 255, 109, 67, 103, 249, 253, 225, 160, 107, 82, 170, 72, 28, 221, 50, 158, 118, + 22, 15, 51, 157, 150, 64, 174, 9, 18, 110, 94, 134, 63, + ], + ], + [ + [ + 22, 249, 212, 177, 47, 64, 198, 103, 181, 243, 4, 164, 46, 243, 160, 120, 81, 116, 50, + 224, 30, 154, 199, 23, 49, 128, 92, 209, 125, 1, 248, 10, + ], + [ + 202, 149, 25, 118, 221, 245, 101, 65, 28, 151, 69, 128, 19, 207, 9, 86, 54, 248, 254, + 163, 143, 209, 12, 53, 158, 149, 44, 216, 140, 192, 33, 1, + ], + [ + 160, 220, 56, 72, 111, 111, 70, 75, 244, 213, 20, 118, 166, 117, 67, 124, 122, 251, 51, + 98, 117, 157, 56, 173, 9, 19, 156, 208, 121, 109, 33, 7, + ], + [ + 88, 192, 255, 45, 177, 228, 254, 60, 125, 5, 56, 103, 211, 6, 132, 123, 20, 169, 138, + 89, 208, 137, 112, 92, 166, 113, 164, 47, 31, 242, 69, 19, + ], + [ + 71, 100, 47, 249, 20, 104, 251, 81, 0, 130, 176, 233, 221, 69, 63, 21, 95, 229, 105, + 213, 176, 43, 152, 148, 63, 203, 237, 97, 68, 27, 5, 46, + ], + [ + 213, 68, 150, 155, 57, 103, 131, 237, 51, 253, 41, 186, 132, 242, 66, 88, 43, 204, 111, + 137, 65, 204, 245, 92, 57, 182, 47, 87, 206, 38, 232, 56, + ], + [ + 5, 222, 1, 109, 48, 37, 104, 111, 196, 51, 129, 84, 228, 187, 45, 176, 46, 194, 26, + 108, 193, 235, 216, 205, 73, 148, 115, 216, 187, 176, 202, 33, + ], + [ + 52, 125, 84, 43, 125, 255, 223, 79, 212, 184, 34, 97, 130, 37, 146, 155, 142, 123, 197, + 113, 16, 190, 149, 192, 3, 69, 64, 162, 2, 247, 186, 39, + ], + ], + [ + [ + 100, 246, 118, 128, 108, 93, 29, 54, 43, 222, 151, 194, 22, 167, 184, 64, 178, 30, 254, + 104, 231, 101, 219, 176, 100, 66, 227, 21, 60, 56, 141, 30, + ], + [ + 25, 82, 5, 57, 97, 112, 70, 14, 177, 181, 80, 33, 243, 121, 214, 125, 15, 56, 54, 178, + 173, 129, 105, 53, 204, 161, 47, 31, 104, 212, 113, 30, + ], + [ + 165, 241, 162, 162, 146, 225, 123, 214, 227, 9, 94, 232, 224, 33, 220, 126, 140, 230, + 100, 6, 146, 206, 32, 87, 34, 226, 9, 137, 94, 24, 29, 56, + ], + [ + 210, 204, 192, 45, 111, 180, 6, 42, 143, 142, 209, 66, 70, 70, 165, 125, 177, 136, 61, + 170, 218, 137, 47, 140, 145, 98, 97, 201, 242, 38, 159, 13, + ], + [ + 145, 131, 248, 82, 176, 63, 234, 187, 225, 244, 68, 228, 160, 221, 168, 229, 196, 111, + 210, 249, 182, 190, 50, 110, 79, 189, 198, 201, 186, 177, 167, 22, + ], + [ + 64, 115, 113, 246, 255, 216, 234, 56, 117, 195, 120, 55, 240, 134, 160, 169, 39, 37, + 80, 157, 183, 5, 183, 141, 102, 99, 209, 75, 179, 115, 212, 40, + ], + [ + 168, 252, 46, 212, 207, 192, 61, 237, 74, 29, 184, 78, 230, 155, 18, 104, 17, 182, 192, + 138, 131, 165, 221, 197, 28, 227, 210, 173, 81, 160, 166, 58, + ], + [ + 77, 53, 146, 43, 89, 3, 223, 140, 112, 124, 116, 255, 250, 126, 220, 113, 46, 150, 26, + 249, 193, 109, 169, 1, 91, 73, 98, 140, 174, 75, 63, 15, + ], + ], + [ + [ + 27, 205, 44, 170, 203, 156, 219, 207, 220, 128, 50, 89, 195, 109, 65, 110, 108, 8, 55, + 253, 180, 73, 204, 109, 234, 238, 167, 255, 123, 234, 84, 24, + ], + [ + 127, 219, 25, 52, 81, 140, 114, 75, 213, 68, 108, 1, 95, 51, 226, 118, 149, 197, 171, + 220, 251, 33, 88, 169, 50, 122, 38, 100, 3, 102, 47, 31, + ], + [ + 116, 246, 165, 168, 166, 54, 240, 34, 61, 44, 75, 36, 18, 76, 242, 135, 212, 88, 133, + 169, 34, 137, 102, 214, 6, 14, 5, 61, 212, 36, 247, 51, + ], + [ + 181, 3, 99, 237, 164, 47, 170, 88, 174, 148, 98, 149, 163, 57, 231, 192, 105, 214, 110, + 164, 11, 208, 98, 230, 184, 137, 159, 127, 173, 163, 196, 36, + ], + [ + 62, 15, 190, 131, 36, 208, 162, 22, 187, 30, 242, 168, 211, 115, 26, 134, 153, 102, 79, + 19, 117, 123, 31, 37, 200, 237, 190, 49, 222, 82, 194, 6, + ], + [ + 130, 193, 193, 11, 20, 203, 1, 24, 41, 18, 242, 33, 158, 52, 92, 183, 150, 111, 127, + 153, 106, 13, 55, 96, 121, 87, 76, 174, 91, 50, 8, 21, + ], + [ + 25, 206, 189, 81, 111, 245, 100, 197, 220, 52, 174, 171, 137, 120, 124, 247, 234, 110, + 216, 252, 100, 114, 82, 52, 23, 134, 212, 218, 74, 119, 94, 20, + ], + [ + 222, 24, 83, 2, 137, 110, 39, 174, 67, 16, 243, 169, 132, 178, 196, 239, 153, 218, 85, + 165, 204, 160, 193, 202, 190, 116, 134, 156, 227, 79, 126, 31, + ], + ], + [ + [ + 78, 127, 250, 132, 73, 120, 250, 80, 235, 105, 226, 127, 217, 64, 142, 70, 102, 179, + 220, 176, 43, 150, 213, 22, 220, 27, 16, 110, 202, 206, 150, 2, + ], + [ + 59, 135, 36, 89, 92, 38, 243, 89, 157, 94, 193, 187, 36, 198, 31, 210, 144, 172, 169, + 226, 100, 166, 162, 107, 179, 124, 242, 58, 192, 181, 120, 31, + ], + [ + 244, 226, 171, 215, 32, 82, 150, 4, 29, 112, 228, 54, 44, 49, 219, 85, 165, 229, 235, + 179, 29, 52, 144, 132, 17, 254, 63, 120, 60, 4, 33, 28, + ], + [ + 94, 250, 234, 126, 51, 236, 214, 132, 207, 148, 71, 2, 99, 254, 12, 161, 167, 46, 79, + 54, 232, 205, 208, 140, 236, 34, 79, 62, 195, 152, 152, 44, + ], + [ + 236, 54, 144, 91, 214, 215, 143, 43, 147, 135, 206, 43, 142, 33, 216, 123, 160, 20, + 128, 138, 19, 57, 31, 213, 191, 145, 230, 241, 196, 67, 228, 45, + ], + [ + 209, 246, 124, 2, 205, 158, 164, 155, 232, 52, 224, 121, 49, 167, 125, 186, 64, 190, + 110, 213, 253, 154, 230, 8, 203, 72, 208, 156, 224, 14, 26, 36, + ], + [ + 2, 163, 112, 13, 243, 117, 175, 20, 37, 74, 70, 184, 159, 43, 64, 58, 196, 60, 58, 97, + 217, 56, 155, 232, 182, 122, 231, 235, 63, 244, 85, 54, + ], + [ + 198, 207, 127, 56, 2, 173, 97, 18, 140, 235, 98, 17, 74, 58, 229, 135, 107, 233, 107, + 97, 101, 167, 19, 153, 50, 196, 142, 26, 74, 12, 31, 24, + ], + ], + [ + [ + 27, 63, 161, 142, 183, 196, 17, 99, 100, 98, 158, 20, 142, 103, 84, 220, 11, 21, 113, + 159, 248, 107, 32, 78, 227, 20, 95, 12, 63, 74, 188, 50, + ], + [ + 202, 124, 66, 161, 185, 74, 107, 125, 210, 209, 173, 82, 129, 191, 17, 80, 68, 23, 17, + 109, 138, 102, 163, 219, 39, 177, 231, 178, 186, 189, 100, 41, + ], + [ + 165, 199, 235, 218, 57, 201, 68, 38, 225, 8, 202, 8, 122, 10, 9, 3, 108, 9, 192, 10, + 77, 228, 225, 137, 192, 34, 172, 150, 3, 144, 72, 50, + ], + [ + 243, 144, 241, 83, 19, 129, 69, 136, 39, 17, 21, 64, 217, 91, 137, 38, 123, 162, 240, + 193, 242, 181, 40, 21, 87, 126, 38, 49, 184, 28, 16, 7, + ], + [ + 238, 195, 172, 123, 53, 111, 247, 70, 103, 77, 54, 97, 229, 183, 174, 143, 101, 174, + 158, 2, 5, 2, 30, 76, 208, 223, 129, 66, 119, 241, 118, 17, + ], + [ + 94, 251, 39, 193, 48, 215, 167, 73, 107, 136, 251, 46, 162, 178, 167, 131, 148, 160, + 247, 72, 132, 67, 69, 217, 32, 144, 252, 60, 155, 172, 213, 11, + ], + [ + 136, 203, 58, 211, 248, 4, 150, 29, 122, 226, 157, 183, 129, 29, 48, 15, 99, 138, 246, + 99, 67, 146, 78, 105, 219, 58, 247, 132, 205, 250, 234, 13, + ], + [ + 131, 246, 106, 110, 134, 217, 32, 180, 116, 227, 242, 87, 223, 171, 248, 156, 56, 249, + 118, 66, 102, 195, 13, 122, 117, 15, 166, 104, 223, 110, 200, 38, + ], + ], + [ + [ + 248, 41, 85, 64, 78, 103, 70, 171, 95, 20, 190, 196, 220, 19, 20, 34, 203, 240, 224, + 22, 20, 168, 71, 249, 105, 188, 34, 115, 181, 131, 207, 26, + ], + [ + 130, 35, 15, 37, 46, 188, 165, 135, 236, 67, 238, 130, 228, 16, 12, 182, 223, 202, 150, + 47, 130, 124, 225, 5, 183, 157, 197, 97, 133, 28, 77, 6, + ], + [ + 200, 136, 113, 135, 204, 108, 67, 234, 187, 200, 171, 194, 9, 124, 29, 232, 155, 249, + 23, 190, 69, 94, 168, 236, 104, 122, 134, 228, 92, 98, 135, 15, + ], + [ + 40, 64, 67, 103, 146, 167, 207, 42, 161, 242, 39, 181, 77, 11, 239, 91, 33, 194, 4, + 143, 210, 181, 34, 134, 240, 253, 73, 170, 44, 240, 204, 60, + ], + [ + 251, 77, 3, 112, 185, 64, 10, 145, 1, 112, 49, 180, 162, 46, 158, 133, 19, 73, 150, + 189, 121, 207, 13, 244, 198, 103, 144, 22, 66, 97, 93, 20, + ], + [ + 127, 204, 42, 168, 86, 226, 173, 153, 6, 106, 143, 186, 137, 126, 128, 239, 134, 108, + 77, 33, 189, 136, 242, 212, 142, 45, 206, 210, 159, 136, 78, 12, + ], + [ + 15, 253, 114, 72, 101, 192, 37, 62, 200, 113, 200, 20, 58, 212, 84, 36, 71, 29, 81, + 225, 177, 24, 48, 98, 16, 4, 235, 72, 37, 79, 154, 60, + ], + [ + 153, 113, 168, 211, 229, 185, 26, 190, 217, 41, 18, 202, 163, 69, 193, 138, 93, 70, 45, + 180, 29, 242, 126, 146, 176, 107, 25, 21, 253, 61, 191, 36, + ], + ], + [ + [ + 246, 253, 20, 245, 213, 217, 176, 5, 165, 120, 172, 185, 67, 63, 124, 64, 27, 206, 210, + 204, 46, 74, 6, 24, 213, 23, 24, 173, 66, 6, 232, 7, + ], + [ + 186, 109, 215, 209, 176, 2, 5, 129, 174, 195, 12, 193, 252, 117, 125, 60, 202, 235, 90, + 58, 214, 95, 228, 254, 112, 219, 85, 209, 23, 135, 95, 56, + ], + [ + 148, 69, 223, 63, 194, 200, 74, 105, 138, 211, 153, 65, 156, 196, 218, 23, 227, 33, + 197, 145, 61, 189, 254, 92, 219, 252, 232, 247, 238, 135, 155, 25, + ], + [ + 16, 74, 65, 243, 138, 145, 137, 152, 228, 22, 218, 130, 235, 43, 33, 254, 132, 238, + 221, 161, 148, 92, 148, 30, 29, 84, 186, 39, 228, 47, 56, 44, + ], + [ + 114, 111, 3, 54, 230, 233, 73, 242, 188, 183, 225, 49, 201, 217, 39, 206, 215, 138, 72, + 191, 187, 215, 115, 117, 156, 251, 68, 31, 186, 218, 56, 62, + ], + [ + 174, 161, 85, 223, 12, 89, 158, 140, 24, 219, 99, 174, 136, 215, 56, 209, 179, 109, 87, + 118, 194, 55, 18, 230, 34, 87, 235, 151, 247, 40, 15, 9, + ], + [ + 188, 199, 8, 222, 231, 93, 94, 85, 25, 248, 96, 68, 134, 135, 102, 132, 189, 31, 19, + 187, 49, 97, 47, 124, 106, 216, 69, 133, 160, 167, 141, 62, + ], + [ + 158, 55, 224, 15, 244, 146, 13, 184, 185, 172, 203, 161, 20, 202, 230, 1, 78, 165, 72, + 73, 127, 2, 36, 55, 110, 119, 241, 238, 23, 86, 241, 23, + ], + ], + [ + [ + 135, 127, 214, 177, 50, 175, 15, 156, 209, 192, 69, 139, 50, 0, 233, 92, 181, 39, 10, + 69, 65, 8, 254, 137, 208, 22, 174, 245, 220, 39, 224, 49, + ], + [ + 89, 164, 61, 68, 166, 224, 4, 27, 209, 222, 1, 46, 57, 173, 182, 122, 135, 238, 56, + 170, 111, 216, 230, 184, 201, 196, 196, 111, 52, 252, 149, 31, + ], + [ + 44, 67, 177, 56, 207, 234, 197, 117, 53, 180, 148, 180, 138, 63, 54, 133, 255, 80, 171, + 53, 5, 133, 46, 157, 122, 49, 143, 26, 210, 189, 190, 56, + ], + [ + 97, 11, 237, 129, 221, 220, 1, 91, 199, 236, 87, 251, 50, 166, 242, 156, 29, 149, 195, + 211, 215, 89, 109, 129, 216, 39, 165, 199, 238, 33, 118, 18, + ], + [ + 173, 167, 107, 119, 184, 254, 187, 104, 208, 100, 103, 46, 4, 153, 8, 135, 55, 157, 79, + 182, 182, 244, 11, 141, 124, 43, 93, 138, 221, 251, 107, 61, + ], + [ + 35, 15, 241, 4, 169, 175, 97, 122, 64, 8, 38, 135, 20, 128, 36, 135, 7, 241, 86, 36, + 227, 18, 58, 52, 156, 65, 251, 13, 51, 40, 1, 62, + ], + [ + 51, 214, 155, 250, 163, 83, 17, 145, 93, 141, 84, 108, 188, 234, 73, 63, 21, 220, 19, + 70, 34, 254, 118, 13, 101, 146, 8, 159, 246, 201, 62, 9, + ], + [ + 42, 79, 34, 69, 94, 116, 129, 61, 198, 162, 167, 131, 186, 165, 197, 204, 39, 114, 19, + 170, 141, 174, 239, 143, 233, 204, 27, 176, 172, 62, 211, 19, + ], + ], + [ + [ + 11, 146, 12, 170, 203, 61, 124, 253, 186, 30, 3, 132, 3, 164, 20, 218, 152, 38, 222, + 27, 241, 100, 118, 24, 108, 196, 164, 220, 168, 167, 65, 43, + ], + [ + 56, 137, 74, 113, 79, 61, 238, 6, 241, 48, 30, 175, 59, 105, 39, 66, 42, 235, 181, 21, + 93, 90, 98, 121, 104, 211, 8, 30, 95, 51, 143, 17, + ], + [ + 60, 233, 97, 79, 255, 211, 206, 175, 40, 250, 215, 143, 238, 202, 102, 55, 30, 120, 62, + 152, 92, 135, 110, 174, 8, 230, 16, 108, 211, 6, 76, 48, + ], + [ + 150, 98, 90, 96, 10, 194, 174, 119, 245, 44, 32, 222, 185, 134, 169, 110, 150, 234, + 207, 3, 247, 241, 123, 96, 227, 44, 194, 88, 206, 67, 79, 60, + ], + [ + 231, 190, 200, 68, 220, 134, 95, 81, 234, 146, 172, 193, 126, 114, 165, 46, 10, 32, + 188, 216, 92, 197, 110, 121, 224, 230, 85, 185, 195, 221, 182, 43, + ], + [ + 136, 228, 204, 68, 47, 198, 41, 175, 24, 45, 174, 97, 56, 168, 205, 226, 158, 67, 146, + 78, 214, 241, 137, 115, 247, 95, 3, 43, 191, 50, 72, 8, + ], + [ + 252, 139, 167, 182, 91, 54, 101, 249, 218, 222, 216, 145, 121, 148, 42, 239, 125, 253, + 192, 157, 169, 4, 134, 248, 242, 176, 20, 70, 253, 215, 235, 10, + ], + [ + 122, 194, 254, 40, 70, 70, 110, 39, 34, 206, 80, 159, 44, 21, 73, 57, 96, 107, 154, 37, + 162, 44, 188, 179, 64, 145, 122, 9, 170, 208, 180, 42, + ], + ], + [ + [ + 140, 93, 7, 187, 156, 138, 71, 223, 25, 250, 16, 248, 240, 31, 202, 232, 177, 222, 30, + 229, 189, 102, 196, 144, 189, 121, 65, 16, 249, 168, 130, 42, + ], + [ + 111, 180, 120, 71, 245, 37, 82, 193, 217, 93, 132, 203, 59, 47, 30, 247, 231, 188, 194, + 215, 197, 25, 185, 86, 89, 33, 212, 138, 138, 126, 129, 40, + ], + [ + 156, 59, 188, 165, 192, 116, 8, 175, 249, 205, 27, 121, 79, 17, 148, 80, 75, 228, 1, + 107, 20, 121, 226, 166, 82, 171, 242, 115, 149, 163, 96, 60, + ], + [ + 45, 235, 1, 13, 44, 236, 199, 11, 58, 20, 32, 81, 144, 62, 102, 97, 31, 14, 155, 161, + 193, 6, 141, 114, 110, 193, 54, 254, 148, 188, 62, 25, + ], + [ + 121, 92, 222, 72, 218, 89, 183, 106, 4, 64, 223, 224, 171, 98, 19, 105, 146, 15, 179, + 92, 172, 246, 197, 249, 51, 137, 124, 218, 98, 21, 105, 15, + ], + [ + 171, 221, 122, 139, 130, 21, 237, 201, 5, 138, 198, 110, 44, 60, 79, 49, 185, 87, 190, + 128, 122, 241, 184, 31, 77, 60, 167, 95, 209, 122, 194, 49, + ], + [ + 3, 199, 82, 229, 54, 214, 97, 104, 6, 223, 90, 80, 207, 165, 154, 190, 228, 253, 248, + 89, 72, 20, 183, 139, 172, 180, 81, 7, 179, 47, 163, 43, + ], + [ + 23, 206, 138, 108, 6, 214, 33, 144, 242, 253, 75, 234, 133, 244, 122, 168, 41, 181, + 167, 62, 99, 40, 18, 100, 20, 61, 142, 234, 208, 41, 17, 34, + ], + ], +]; + +pub fn generator() -> pallas::Affine { + pallas::Affine::from_xy( + pallas::Base::from_repr(GENERATOR.0).unwrap(), + pallas::Base::from_repr(GENERATOR.1).unwrap(), + ) + .unwrap() +} + +#[cfg(test)] +mod tests { + use super::super::{NOTE_COMMITMENT_PERSONALIZATION, NUM_WINDOWS}; + use super::*; + use halo2_gadgets::{ + ecc::chip::constants::{test_lagrange_coeffs, test_zs_and_us}, + sinsemilla::primitives::CommitDomain, + }; + + use group::Curve; + use pasta_curves::{arithmetic::CurveAffine, pallas}; + + #[test] + fn generator() { + let domain = CommitDomain::new(NOTE_COMMITMENT_PERSONALIZATION); + let point = domain.R(); + let coords = point.to_affine().coordinates().unwrap(); + + assert_eq!(*coords.x(), pallas::Base::from_repr(GENERATOR.0).unwrap()); + assert_eq!(*coords.y(), pallas::Base::from_repr(GENERATOR.1).unwrap()); + } + + #[test] + fn lagrange_coeffs() { + let base = super::generator(); + test_lagrange_coeffs(base, NUM_WINDOWS); + } + + #[test] + fn z() { + let base = super::generator(); + test_zs_and_us(base, &Z, &U, NUM_WINDOWS); + } +} diff --git a/zk-crates/zk-headstash/src/constants/fixed_bases/nullifier_k.rs b/zk-crates/zk-headstash/src/constants/fixed_bases/nullifier_k.rs new file mode 100644 index 0000000..cecc0c2 --- /dev/null +++ b/zk-crates/zk-headstash/src/constants/fixed_bases/nullifier_k.rs @@ -0,0 +1,2960 @@ +use group::ff::PrimeField; +use pasta_curves::{arithmetic::CurveAffine, pallas}; + +/// Generator used as $\mathcal{K}^{\mathsf{Orchard}}$ in DeriveNullifier. +pub const GENERATOR: ([u8; 32], [u8; 32]) = ( + [ + 117, 202, 71, 228, 167, 106, 111, 211, 155, 219, 181, 204, 146, 177, 126, 94, 207, 201, + 244, 250, 113, 85, 55, 46, 141, 25, 168, 156, 22, 170, 231, 37, + ], + [ + 204, 1, 224, 26, 226, 220, 184, 45, 51, 180, 193, 193, 158, 164, 224, 95, 117, 255, 8, 32, + 68, 115, 4, 136, 132, 51, 26, 27, 133, 31, 92, 21, + ], +); + +/// Full-width z-values for GENERATOR. +/// These can be reproduced by [`halo2_gadgets::ecc::chip::constants::find_zs_and_us`]. +pub const Z: [u64; super::NUM_WINDOWS] = [ + 34374, 173069, 40776, 220066, 45494, 37762, 5245, 11979, 33386, 238556, 128731, 12128, 89982, + 85351, 9804, 12820, 80455, 100009, 24382, 17854, 26367, 7067, 102106, 64293, 114999, 172304, + 36687, 11287, 66386, 41470, 182654, 12214, 36528, 16257, 26179, 15660, 106189, 211703, 12936, + 2506, 149799, 82965, 117810, 98881, 296, 146201, 63200, 31766, 78221, 6587, 27974, 126041, + 19927, 79339, 210060, 127148, 10109, 19815, 107452, 10296, 642, 11828, 3985, 2984, 30806, + 12554, 1815, 19894, 16790, 33748, 12879, 1742, 30858, 118563, 26855, 75617, 10167, 17660, + 33638, 89236, 50234, 30489, 67488, 50229, 29277, +]; + +/// Full-width u-values for GENERATOR +/// These can be reproduced by [`halo2_gadgets::ecc::chip::constants::find_zs_and_us`]. +pub static U: [[[u8; 32]; super::H]; super::NUM_WINDOWS] = [ + [ + [ + 8, 177, 117, 90, 104, 127, 169, 131, 254, 128, 23, 151, 181, 247, 22, 208, 55, 1, 147, + 216, 84, 35, 129, 16, 134, 195, 231, 78, 90, 27, 48, 24, + ], + [ + 85, 52, 30, 137, 203, 92, 107, 164, 157, 0, 160, 220, 77, 151, 245, 43, 236, 219, 6, + 127, 136, 136, 255, 80, 178, 129, 223, 223, 100, 205, 206, 60, + ], + [ + 180, 42, 81, 35, 92, 89, 115, 34, 230, 154, 57, 180, 27, 241, 82, 7, 29, 18, 87, 188, + 15, 115, 37, 92, 226, 71, 117, 25, 58, 188, 84, 2, + ], + [ + 120, 152, 127, 75, 237, 238, 241, 80, 87, 202, 187, 80, 67, 210, 115, 228, 187, 183, + 190, 104, 143, 201, 79, 59, 88, 235, 35, 30, 112, 142, 245, 41, + ], + [ + 137, 203, 204, 3, 111, 36, 152, 243, 202, 11, 171, 157, 74, 86, 136, 224, 134, 228, 83, + 142, 77, 3, 87, 124, 174, 254, 51, 139, 199, 223, 108, 33, + ], + [ + 253, 61, 90, 128, 49, 47, 137, 144, 47, 195, 161, 160, 78, 225, 222, 129, 15, 194, 150, + 16, 41, 55, 82, 238, 34, 87, 98, 170, 213, 158, 15, 50, + ], + [ + 47, 235, 116, 15, 252, 144, 163, 83, 0, 21, 138, 234, 11, 181, 189, 10, 246, 121, 216, + 134, 47, 95, 213, 3, 238, 46, 179, 91, 217, 89, 45, 51, + ], + [ + 14, 37, 210, 28, 30, 181, 151, 46, 9, 92, 16, 9, 143, 179, 209, 165, 243, 236, 31, 73, + 1, 41, 26, 125, 225, 42, 241, 153, 7, 72, 154, 28, + ], + ], + [ + [ + 155, 23, 107, 105, 142, 88, 223, 1, 145, 75, 68, 196, 138, 223, 209, 168, 178, 183, + 154, 186, 235, 94, 192, 81, 170, 238, 26, 126, 159, 204, 87, 18, + ], + [ + 23, 143, 212, 151, 42, 93, 52, 146, 4, 240, 71, 229, 183, 45, 75, 117, 31, 86, 162, + 145, 194, 110, 118, 145, 36, 1, 110, 255, 119, 221, 191, 4, + ], + [ + 43, 199, 119, 40, 42, 43, 118, 185, 214, 192, 11, 20, 35, 124, 64, 65, 126, 39, 23, + 136, 102, 196, 220, 99, 190, 252, 163, 189, 215, 110, 5, 26, + ], + [ + 231, 221, 137, 18, 190, 54, 27, 37, 198, 161, 251, 131, 26, 85, 24, 253, 119, 85, 63, + 73, 4, 205, 90, 160, 68, 17, 124, 250, 142, 144, 165, 7, + ], + [ + 83, 50, 206, 53, 156, 115, 230, 212, 31, 155, 204, 33, 132, 233, 228, 213, 249, 252, + 224, 9, 157, 163, 184, 220, 25, 118, 167, 180, 145, 86, 59, 27, + ], + [ + 245, 214, 106, 201, 143, 76, 98, 94, 184, 16, 72, 167, 42, 124, 18, 182, 124, 0, 122, + 151, 24, 228, 104, 144, 81, 240, 105, 126, 158, 79, 213, 60, + ], + [ + 117, 59, 119, 9, 69, 161, 159, 137, 154, 195, 28, 54, 240, 214, 26, 97, 138, 121, 199, + 4, 28, 17, 159, 186, 52, 216, 186, 6, 65, 17, 155, 53, + ], + [ + 131, 74, 9, 131, 251, 243, 140, 39, 209, 183, 173, 30, 223, 144, 252, 210, 71, 196, + 218, 92, 149, 114, 87, 13, 176, 167, 135, 21, 79, 51, 166, 21, + ], + ], + [ + [ + 106, 53, 57, 143, 70, 101, 179, 227, 157, 251, 249, 89, 23, 241, 33, 172, 138, 109, + 112, 10, 239, 116, 201, 204, 70, 88, 47, 122, 115, 244, 190, 1, + ], + [ + 209, 215, 139, 155, 229, 13, 70, 83, 197, 215, 97, 80, 247, 86, 167, 76, 230, 225, 158, + 160, 192, 121, 46, 212, 197, 12, 107, 161, 225, 174, 226, 6, + ], + [ + 112, 160, 94, 22, 110, 32, 8, 135, 32, 51, 220, 110, 15, 225, 140, 230, 76, 199, 123, + 151, 87, 211, 19, 62, 21, 129, 16, 60, 12, 108, 165, 31, + ], + [ + 204, 30, 64, 88, 48, 86, 118, 103, 250, 219, 102, 20, 56, 126, 52, 226, 0, 61, 113, + 192, 116, 132, 99, 78, 111, 44, 138, 247, 154, 143, 219, 27, + ], + [ + 234, 175, 176, 17, 157, 210, 254, 209, 26, 205, 38, 46, 13, 146, 162, 67, 133, 126, 0, + 137, 173, 137, 151, 97, 177, 226, 59, 43, 155, 198, 51, 45, + ], + [ + 197, 96, 86, 193, 80, 242, 4, 255, 18, 52, 82, 105, 29, 253, 234, 3, 160, 233, 99, 224, + 58, 44, 97, 40, 194, 99, 173, 127, 62, 47, 208, 37, + ], + [ + 22, 149, 249, 163, 1, 218, 101, 70, 94, 230, 144, 57, 241, 33, 6, 232, 196, 115, 108, + 223, 76, 188, 1, 17, 42, 214, 155, 247, 149, 148, 238, 35, + ], + [ + 13, 87, 74, 130, 84, 86, 209, 2, 50, 148, 189, 154, 138, 103, 165, 188, 10, 34, 149, + 21, 75, 83, 63, 88, 162, 137, 118, 232, 60, 157, 137, 53, + ], + ], + [ + [ + 233, 74, 133, 175, 252, 244, 95, 128, 64, 52, 236, 30, 62, 251, 20, 39, 136, 210, 13, + 125, 220, 122, 12, 168, 132, 0, 203, 121, 166, 114, 89, 55, + ], + [ + 23, 16, 81, 254, 130, 74, 96, 191, 239, 107, 112, 232, 193, 231, 115, 168, 222, 76, + 200, 25, 29, 74, 120, 123, 219, 38, 10, 170, 159, 38, 151, 59, + ], + [ + 123, 54, 39, 213, 60, 136, 244, 129, 49, 166, 51, 223, 82, 7, 141, 210, 150, 80, 71, + 91, 48, 195, 52, 32, 17, 149, 25, 63, 179, 211, 116, 44, + ], + [ + 109, 212, 117, 221, 214, 8, 16, 202, 176, 94, 85, 170, 181, 234, 43, 86, 151, 193, 42, + 9, 185, 141, 187, 197, 32, 149, 233, 82, 135, 196, 226, 55, + ], + [ + 167, 160, 99, 140, 33, 119, 82, 182, 166, 50, 48, 229, 46, 170, 178, 22, 52, 2, 60, + 138, 235, 97, 75, 141, 32, 166, 120, 45, 103, 212, 212, 54, + ], + [ + 127, 109, 31, 40, 88, 39, 93, 49, 112, 214, 201, 84, 181, 82, 212, 26, 236, 67, 108, + 50, 59, 188, 242, 182, 163, 230, 153, 128, 207, 86, 214, 18, + ], + [ + 246, 232, 168, 240, 223, 17, 25, 238, 68, 106, 81, 83, 149, 255, 179, 85, 215, 221, + 161, 98, 211, 255, 34, 100, 244, 171, 34, 77, 13, 97, 7, 31, + ], + [ + 203, 28, 143, 74, 174, 27, 47, 59, 154, 247, 128, 8, 70, 108, 73, 167, 25, 171, 132, + 99, 192, 80, 53, 69, 93, 132, 35, 224, 141, 157, 182, 27, + ], + ], + [ + [ + 158, 175, 208, 26, 183, 200, 147, 77, 15, 124, 87, 17, 47, 238, 228, 184, 132, 87, 24, + 159, 255, 90, 200, 42, 118, 110, 207, 49, 100, 156, 40, 17, + ], + [ + 214, 80, 143, 90, 122, 14, 85, 237, 43, 157, 103, 184, 14, 213, 121, 149, 38, 12, 185, + 162, 65, 76, 175, 234, 33, 6, 128, 70, 87, 64, 121, 32, + ], + [ + 239, 204, 8, 172, 229, 121, 210, 167, 213, 113, 34, 212, 58, 196, 246, 231, 235, 249, + 10, 1, 133, 180, 234, 122, 185, 209, 137, 42, 151, 187, 90, 49, + ], + [ + 38, 201, 204, 153, 118, 114, 213, 247, 168, 32, 231, 172, 56, 74, 104, 185, 82, 10, + 189, 39, 0, 120, 76, 60, 187, 40, 207, 49, 112, 7, 226, 13, + ], + [ + 49, 138, 24, 179, 17, 17, 139, 34, 66, 7, 206, 250, 69, 221, 34, 216, 233, 153, 230, + 61, 129, 139, 206, 131, 48, 182, 148, 13, 71, 243, 111, 22, + ], + [ + 196, 88, 22, 46, 64, 213, 113, 115, 213, 31, 243, 86, 240, 86, 2, 152, 250, 26, 105, + 171, 184, 61, 159, 95, 65, 29, 25, 78, 240, 245, 10, 21, + ], + [ + 78, 28, 8, 195, 230, 66, 59, 242, 40, 196, 240, 152, 11, 217, 164, 30, 69, 14, 45, 198, + 239, 214, 233, 45, 101, 211, 98, 235, 100, 118, 55, 4, + ], + [ + 78, 224, 209, 126, 212, 30, 129, 15, 115, 153, 242, 115, 131, 124, 100, 161, 132, 191, + 92, 106, 202, 67, 75, 214, 38, 188, 240, 124, 54, 224, 93, 45, + ], + ], + [ + [ + 217, 244, 110, 79, 182, 134, 95, 114, 224, 131, 47, 250, 120, 210, 60, 25, 170, 192, + 236, 37, 233, 77, 18, 29, 113, 70, 184, 210, 226, 211, 36, 23, + ], + [ + 97, 25, 216, 18, 187, 188, 60, 255, 57, 173, 195, 70, 147, 75, 123, 96, 32, 186, 235, + 203, 168, 246, 177, 206, 183, 164, 219, 209, 70, 100, 221, 31, + ], + [ + 103, 65, 104, 143, 235, 96, 30, 14, 136, 100, 168, 208, 183, 133, 61, 209, 88, 171, + 234, 144, 128, 186, 154, 57, 115, 217, 218, 65, 208, 15, 164, 5, + ], + [ + 129, 17, 125, 139, 223, 114, 198, 101, 118, 190, 54, 211, 209, 193, 119, 254, 191, 151, + 210, 201, 167, 151, 199, 55, 144, 146, 28, 125, 15, 140, 64, 50, + ], + [ + 157, 114, 191, 73, 254, 85, 156, 148, 193, 78, 64, 118, 237, 231, 95, 96, 156, 223, + 251, 161, 108, 104, 68, 68, 208, 108, 52, 36, 193, 20, 209, 39, + ], + [ + 153, 221, 73, 244, 97, 41, 144, 181, 6, 255, 117, 181, 73, 60, 182, 130, 126, 179, 61, + 86, 141, 96, 33, 233, 132, 47, 145, 215, 219, 54, 147, 11, + ], + [ + 94, 107, 185, 219, 70, 23, 205, 149, 216, 21, 53, 23, 98, 243, 185, 235, 221, 198, 49, + 177, 48, 56, 251, 180, 141, 119, 212, 20, 227, 194, 64, 19, + ], + [ + 85, 148, 121, 226, 36, 182, 97, 6, 122, 1, 31, 39, 92, 65, 36, 147, 205, 69, 204, 90, + 204, 166, 179, 223, 5, 125, 68, 63, 64, 128, 63, 21, + ], + ], + [ + [ + 2, 169, 25, 203, 212, 185, 124, 61, 150, 239, 166, 57, 177, 48, 11, 166, 89, 251, 110, + 226, 49, 69, 226, 224, 250, 219, 252, 137, 18, 129, 43, 16, + ], + [ + 232, 38, 209, 98, 87, 176, 166, 69, 137, 12, 213, 116, 97, 229, 25, 53, 64, 231, 213, + 255, 182, 234, 179, 255, 159, 162, 70, 169, 254, 193, 83, 31, + ], + [ + 120, 35, 170, 169, 134, 229, 114, 38, 97, 2, 84, 36, 156, 80, 255, 130, 168, 156, 195, + 7, 97, 120, 214, 215, 145, 152, 211, 201, 5, 36, 62, 32, + ], + [ + 57, 117, 255, 121, 168, 160, 43, 168, 42, 239, 58, 130, 73, 244, 242, 252, 9, 27, 79, + 245, 226, 201, 189, 164, 57, 142, 150, 162, 209, 17, 121, 53, + ], + [ + 36, 52, 2, 158, 240, 153, 97, 93, 33, 133, 153, 174, 3, 23, 116, 181, 157, 223, 70, 59, + 100, 101, 102, 195, 6, 148, 63, 228, 72, 6, 27, 35, + ], + [ + 52, 197, 226, 140, 56, 213, 200, 104, 117, 7, 101, 250, 224, 176, 188, 134, 69, 59, 23, + 121, 181, 197, 236, 229, 24, 199, 79, 243, 120, 143, 120, 4, + ], + [ + 148, 181, 32, 129, 234, 255, 140, 131, 155, 227, 16, 106, 1, 185, 148, 195, 165, 0, + 152, 130, 138, 134, 208, 12, 171, 88, 26, 142, 46, 36, 140, 52, + ], + [ + 184, 10, 44, 43, 76, 195, 89, 67, 120, 15, 19, 199, 96, 229, 109, 115, 237, 50, 51, + 156, 230, 142, 3, 95, 109, 79, 20, 130, 54, 41, 225, 62, + ], + ], + [ + [ + 171, 227, 38, 163, 220, 64, 126, 70, 193, 140, 185, 136, 97, 117, 204, 177, 109, 139, + 25, 38, 25, 5, 27, 31, 169, 30, 18, 188, 243, 99, 125, 29, + ], + [ + 22, 191, 88, 67, 150, 57, 68, 66, 95, 65, 24, 208, 188, 6, 1, 8, 62, 195, 83, 224, 113, + 136, 61, 75, 90, 155, 228, 209, 155, 239, 250, 52, + ], + [ + 64, 110, 241, 54, 230, 252, 13, 172, 5, 83, 159, 231, 249, 166, 47, 196, 203, 230, 82, + 234, 108, 75, 104, 217, 140, 93, 142, 42, 54, 10, 218, 13, + ], + [ + 119, 77, 69, 84, 160, 177, 65, 143, 32, 247, 4, 101, 44, 47, 38, 175, 53, 8, 239, 115, + 177, 68, 166, 173, 245, 168, 188, 129, 49, 220, 136, 0, + ], + [ + 95, 4, 124, 89, 22, 199, 81, 164, 42, 73, 149, 244, 67, 141, 249, 132, 13, 55, 180, 2, + 70, 238, 186, 129, 130, 196, 191, 36, 188, 89, 173, 3, + ], + [ + 185, 209, 66, 253, 215, 62, 233, 72, 67, 105, 81, 154, 41, 127, 66, 152, 203, 206, 232, + 49, 28, 14, 132, 182, 245, 30, 42, 158, 61, 84, 55, 34, + ], + [ + 168, 36, 132, 217, 188, 230, 252, 8, 63, 232, 169, 205, 203, 35, 80, 7, 166, 179, 165, + 178, 34, 108, 179, 252, 12, 77, 183, 64, 21, 134, 195, 58, + ], + [ + 167, 154, 142, 35, 246, 107, 255, 85, 225, 7, 179, 39, 11, 163, 211, 139, 38, 5, 130, + 124, 212, 111, 10, 235, 206, 93, 247, 118, 97, 74, 76, 3, + ], + ], + [ + [ + 17, 35, 231, 232, 187, 165, 56, 74, 129, 69, 48, 249, 182, 107, 89, 163, 51, 84, 170, + 211, 242, 113, 166, 225, 78, 206, 206, 92, 51, 71, 168, 33, + ], + [ + 218, 32, 99, 108, 201, 243, 16, 42, 119, 238, 180, 204, 217, 64, 11, 181, 159, 187, + 222, 68, 31, 23, 215, 14, 135, 43, 60, 234, 199, 136, 209, 56, + ], + [ + 229, 89, 20, 107, 93, 96, 226, 179, 225, 22, 59, 133, 30, 79, 105, 26, 42, 251, 35, 41, + 45, 151, 73, 127, 72, 33, 32, 44, 114, 183, 200, 12, + ], + [ + 0, 214, 119, 87, 158, 203, 58, 209, 100, 45, 242, 75, 5, 118, 29, 75, 239, 159, 30, + 192, 196, 58, 48, 65, 129, 192, 13, 14, 115, 79, 219, 26, + ], + [ + 98, 88, 236, 178, 70, 249, 24, 151, 194, 204, 95, 251, 142, 94, 94, 218, 19, 253, 216, + 155, 109, 25, 166, 168, 213, 209, 169, 135, 244, 2, 153, 63, + ], + [ + 56, 137, 153, 59, 70, 236, 157, 224, 248, 77, 167, 238, 185, 216, 239, 54, 176, 54, + 164, 172, 129, 29, 243, 226, 56, 188, 149, 113, 66, 53, 111, 29, + ], + [ + 175, 39, 133, 206, 20, 108, 5, 54, 187, 154, 174, 144, 23, 193, 58, 173, 223, 19, 181, + 161, 102, 248, 146, 180, 241, 58, 121, 96, 8, 218, 201, 61, + ], + [ + 214, 255, 102, 226, 32, 197, 112, 142, 159, 244, 213, 201, 228, 8, 141, 112, 112, 6, + 182, 31, 68, 215, 126, 66, 131, 203, 253, 206, 102, 155, 100, 9, + ], + ], + [ + [ + 134, 183, 10, 76, 61, 159, 117, 15, 17, 79, 26, 161, 72, 129, 77, 56, 221, 0, 23, 32, + 255, 12, 114, 208, 110, 133, 136, 7, 222, 63, 99, 63, + ], + [ + 144, 188, 53, 201, 167, 105, 34, 93, 26, 15, 121, 27, 37, 68, 230, 134, 119, 6, 76, + 159, 120, 62, 200, 59, 205, 110, 251, 54, 132, 113, 216, 47, + ], + [ + 226, 242, 186, 127, 110, 179, 100, 138, 238, 127, 104, 131, 32, 98, 96, 244, 121, 154, + 129, 71, 34, 157, 103, 53, 124, 131, 128, 159, 113, 77, 226, 52, + ], + [ + 149, 188, 192, 214, 255, 107, 1, 216, 118, 134, 46, 23, 126, 73, 234, 175, 39, 77, 232, + 99, 36, 76, 27, 215, 134, 227, 12, 255, 98, 120, 110, 13, + ], + [ + 55, 19, 111, 30, 3, 196, 248, 249, 103, 123, 237, 222, 156, 152, 143, 182, 93, 209, + 227, 184, 97, 233, 110, 31, 198, 108, 2, 144, 202, 161, 246, 48, + ], + [ + 89, 105, 183, 28, 13, 186, 20, 45, 187, 147, 254, 9, 196, 222, 10, 212, 208, 35, 59, + 168, 234, 91, 53, 115, 119, 28, 240, 140, 226, 217, 16, 13, + ], + [ + 71, 90, 196, 184, 172, 101, 82, 49, 204, 76, 80, 24, 30, 132, 224, 136, 92, 236, 73, + 240, 43, 152, 36, 240, 204, 168, 202, 133, 47, 56, 86, 21, + ], + [ + 137, 123, 99, 242, 15, 214, 23, 223, 103, 70, 184, 82, 212, 43, 109, 198, 1, 146, 88, + 223, 141, 176, 98, 56, 8, 226, 123, 144, 58, 148, 80, 34, + ], + ], + [ + [ + 112, 203, 118, 169, 67, 201, 121, 80, 95, 50, 206, 193, 132, 19, 44, 16, 100, 210, 169, + 174, 43, 239, 197, 42, 153, 77, 189, 127, 134, 228, 51, 1, + ], + [ + 67, 82, 109, 220, 119, 200, 223, 134, 201, 18, 211, 184, 106, 158, 243, 17, 160, 51, + 223, 227, 252, 83, 229, 84, 109, 162, 231, 240, 207, 99, 145, 49, + ], + [ + 127, 38, 205, 72, 71, 81, 43, 26, 72, 50, 220, 151, 66, 66, 41, 27, 99, 47, 96, 142, 1, + 83, 210, 246, 201, 190, 8, 34, 223, 215, 84, 33, + ], + [ + 196, 65, 248, 47, 253, 158, 13, 126, 69, 77, 144, 88, 158, 188, 200, 138, 70, 7, 237, + 81, 207, 18, 52, 77, 131, 187, 61, 208, 53, 15, 87, 28, + ], + [ + 142, 69, 186, 111, 164, 34, 17, 159, 95, 229, 106, 79, 178, 236, 40, 122, 205, 228, 56, + 78, 187, 203, 150, 216, 228, 220, 77, 102, 101, 57, 73, 22, + ], + [ + 34, 97, 52, 100, 250, 150, 39, 93, 193, 188, 241, 25, 57, 178, 210, 228, 116, 102, 120, + 194, 43, 92, 58, 223, 79, 172, 233, 206, 42, 252, 212, 23, + ], + [ + 255, 63, 76, 185, 74, 23, 208, 38, 220, 177, 232, 82, 75, 190, 205, 7, 107, 83, 37, 46, + 184, 118, 15, 69, 3, 148, 140, 160, 31, 107, 64, 19, + ], + [ + 12, 74, 20, 81, 11, 141, 102, 144, 211, 239, 203, 214, 114, 193, 197, 27, 220, 229, + 202, 253, 48, 109, 46, 125, 149, 151, 47, 224, 141, 201, 39, 41, + ], + ], + [ + [ + 48, 45, 200, 86, 94, 46, 69, 245, 90, 200, 213, 189, 150, 174, 57, 226, 248, 5, 169, + 162, 250, 242, 92, 40, 218, 149, 132, 31, 157, 36, 254, 60, + ], + [ + 81, 121, 54, 199, 38, 109, 10, 32, 0, 15, 80, 210, 86, 161, 85, 51, 217, 129, 254, 180, + 183, 108, 178, 137, 49, 248, 205, 212, 55, 77, 123, 17, + ], + [ + 37, 248, 159, 204, 26, 229, 145, 238, 125, 74, 43, 139, 95, 23, 214, 19, 87, 91, 160, + 213, 235, 11, 65, 199, 200, 90, 231, 254, 125, 91, 125, 49, + ], + [ + 178, 12, 107, 228, 177, 201, 160, 30, 244, 72, 143, 232, 142, 179, 253, 92, 117, 50, + 44, 170, 122, 254, 72, 125, 220, 234, 140, 49, 161, 58, 153, 32, + ], + [ + 247, 237, 132, 219, 101, 146, 116, 139, 68, 147, 48, 176, 77, 83, 30, 181, 165, 91, 62, + 137, 228, 23, 138, 14, 88, 132, 111, 111, 140, 123, 228, 58, + ], + [ + 18, 233, 193, 160, 178, 238, 235, 150, 3, 31, 61, 226, 24, 146, 32, 3, 177, 46, 49, 89, + 49, 45, 71, 83, 119, 186, 203, 200, 163, 237, 116, 21, + ], + [ + 115, 144, 78, 114, 159, 231, 131, 65, 180, 121, 24, 139, 139, 29, 182, 131, 218, 81, + 58, 73, 107, 254, 32, 46, 177, 216, 202, 137, 182, 124, 221, 10, + ], + [ + 223, 14, 173, 171, 179, 199, 71, 176, 71, 161, 186, 240, 0, 32, 204, 124, 160, 63, 112, + 86, 71, 213, 245, 55, 138, 233, 228, 28, 149, 8, 9, 41, + ], + ], + [ + [ + 21, 6, 131, 62, 42, 77, 174, 152, 2, 182, 147, 70, 52, 196, 221, 208, 21, 218, 63, 239, + 142, 100, 80, 227, 206, 92, 178, 63, 213, 66, 228, 42, + ], + [ + 234, 98, 104, 233, 255, 69, 42, 117, 242, 174, 71, 237, 128, 208, 210, 92, 215, 80, 68, + 54, 109, 133, 117, 120, 11, 193, 130, 150, 123, 248, 52, 50, + ], + [ + 42, 97, 215, 197, 142, 218, 220, 4, 99, 17, 179, 35, 227, 236, 159, 122, 227, 16, 41, + 191, 142, 113, 7, 118, 168, 0, 200, 69, 87, 232, 203, 18, + ], + [ + 204, 101, 216, 98, 75, 52, 7, 133, 107, 63, 36, 58, 158, 102, 166, 65, 187, 189, 120, + 36, 170, 181, 122, 231, 195, 77, 77, 164, 123, 199, 51, 45, + ], + [ + 69, 211, 219, 4, 90, 40, 61, 238, 40, 23, 38, 242, 82, 66, 124, 186, 78, 178, 158, 75, + 9, 78, 88, 175, 124, 209, 52, 139, 154, 205, 152, 1, + ], + [ + 40, 177, 100, 175, 71, 133, 71, 147, 120, 232, 113, 156, 156, 171, 231, 14, 14, 48, + 254, 27, 109, 239, 11, 41, 141, 122, 231, 120, 162, 61, 172, 53, + ], + [ + 138, 3, 230, 77, 88, 246, 242, 91, 53, 109, 136, 187, 226, 159, 63, 30, 210, 149, 85, + 132, 19, 243, 108, 225, 16, 67, 206, 187, 22, 250, 158, 38, + ], + [ + 54, 230, 61, 20, 21, 69, 248, 130, 44, 13, 179, 216, 126, 95, 167, 29, 128, 81, 136, + 81, 198, 181, 167, 108, 21, 92, 89, 163, 48, 9, 25, 49, + ], + ], + [ + [ + 213, 68, 175, 186, 156, 48, 75, 216, 75, 120, 118, 229, 190, 251, 69, 197, 207, 233, + 255, 33, 12, 44, 176, 102, 172, 203, 246, 139, 9, 148, 188, 21, + ], + [ + 59, 116, 78, 231, 0, 190, 4, 183, 254, 176, 57, 241, 16, 160, 195, 151, 109, 113, 65, + 227, 234, 248, 162, 150, 59, 223, 226, 68, 211, 220, 124, 35, + ], + [ + 157, 241, 116, 218, 111, 20, 63, 220, 180, 253, 193, 124, 53, 174, 146, 115, 25, 21, 4, + 184, 28, 62, 68, 1, 136, 40, 112, 99, 155, 130, 29, 25, + ], + [ + 107, 14, 195, 187, 170, 217, 205, 148, 49, 208, 203, 147, 220, 1, 216, 9, 235, 2, 23, + 137, 226, 242, 113, 173, 119, 193, 192, 240, 96, 34, 203, 27, + ], + [ + 220, 189, 158, 255, 179, 2, 118, 209, 172, 32, 234, 150, 180, 140, 186, 88, 11, 146, + 216, 229, 126, 96, 132, 108, 80, 11, 133, 21, 208, 31, 104, 23, + ], + [ + 34, 104, 190, 51, 173, 94, 133, 55, 100, 80, 120, 221, 114, 236, 129, 217, 2, 20, 117, + 96, 59, 162, 69, 216, 80, 193, 215, 191, 222, 251, 213, 54, + ], + [ + 217, 173, 46, 115, 62, 139, 158, 81, 137, 145, 61, 242, 63, 26, 154, 80, 87, 23, 255, + 158, 21, 151, 39, 16, 176, 188, 206, 50, 91, 132, 244, 48, + ], + [ + 125, 136, 4, 138, 60, 132, 107, 72, 160, 2, 185, 213, 99, 167, 64, 247, 133, 173, 139, + 25, 250, 132, 174, 254, 31, 85, 94, 85, 52, 212, 209, 61, + ], + ], + [ + [ + 220, 160, 48, 26, 85, 79, 138, 23, 139, 157, 143, 9, 40, 55, 28, 86, 243, 144, 211, + 131, 58, 6, 188, 247, 0, 45, 174, 144, 19, 188, 181, 57, + ], + [ + 103, 128, 25, 9, 206, 137, 248, 46, 126, 157, 159, 0, 236, 255, 135, 58, 181, 227, 135, + 176, 113, 94, 237, 66, 47, 151, 18, 229, 19, 72, 170, 8, + ], + [ + 46, 122, 169, 159, 37, 178, 130, 155, 49, 215, 123, 43, 108, 225, 225, 91, 74, 95, 1, + 190, 16, 230, 9, 231, 61, 153, 72, 119, 42, 120, 10, 41, + ], + [ + 189, 179, 165, 203, 192, 23, 235, 85, 2, 155, 19, 118, 235, 123, 65, 219, 126, 163, + 149, 241, 213, 44, 143, 103, 139, 91, 15, 175, 111, 183, 238, 35, + ], + [ + 52, 114, 250, 93, 151, 139, 135, 118, 40, 231, 118, 234, 63, 201, 15, 42, 126, 157, + 136, 113, 54, 209, 76, 78, 136, 13, 28, 3, 57, 119, 28, 32, + ], + [ + 241, 223, 85, 153, 43, 88, 1, 195, 181, 239, 22, 16, 218, 11, 3, 91, 249, 42, 20, 25, + 215, 41, 132, 194, 106, 145, 165, 100, 33, 215, 243, 54, + ], + [ + 185, 84, 49, 216, 187, 52, 40, 181, 184, 77, 168, 77, 5, 229, 36, 180, 82, 129, 99, + 126, 222, 17, 2, 185, 176, 18, 198, 220, 41, 192, 84, 1, + ], + [ + 116, 111, 197, 38, 37, 6, 27, 181, 167, 142, 204, 148, 127, 82, 201, 197, 192, 133, 68, + 126, 57, 93, 146, 225, 67, 223, 187, 252, 131, 16, 136, 46, + ], + ], + [ + [ + 229, 194, 151, 215, 0, 49, 54, 48, 137, 138, 168, 12, 253, 114, 171, 220, 131, 85, 61, + 41, 90, 111, 235, 175, 142, 32, 64, 15, 171, 10, 37, 55, + ], + [ + 179, 30, 248, 30, 85, 253, 191, 10, 66, 20, 9, 239, 72, 78, 126, 155, 5, 22, 16, 55, + 236, 155, 48, 104, 120, 209, 179, 94, 72, 144, 136, 36, + ], + [ + 5, 85, 228, 82, 72, 151, 179, 40, 184, 104, 86, 64, 251, 178, 255, 222, 120, 33, 172, + 13, 70, 48, 74, 179, 143, 139, 203, 101, 242, 164, 233, 11, + ], + [ + 155, 215, 194, 45, 223, 134, 9, 251, 102, 98, 255, 26, 99, 131, 158, 41, 28, 241, 244, + 3, 14, 14, 150, 5, 198, 23, 195, 55, 67, 107, 145, 50, + ], + [ + 242, 66, 220, 115, 24, 115, 105, 247, 185, 102, 202, 149, 182, 74, 79, 71, 118, 46, 12, + 174, 168, 154, 12, 49, 8, 175, 173, 107, 106, 231, 34, 46, + ], + [ + 218, 10, 168, 153, 218, 247, 27, 186, 177, 229, 129, 137, 17, 34, 173, 65, 77, 164, + 106, 206, 109, 156, 174, 78, 141, 110, 2, 177, 136, 189, 222, 27, + ], + [ + 63, 206, 227, 252, 14, 115, 85, 145, 147, 2, 233, 37, 99, 52, 187, 61, 160, 216, 254, + 113, 47, 202, 231, 30, 8, 95, 186, 3, 95, 93, 92, 46, + ], + [ + 194, 115, 177, 48, 84, 53, 255, 14, 255, 104, 86, 24, 225, 135, 136, 207, 223, 82, 248, + 120, 107, 19, 233, 239, 239, 174, 182, 203, 11, 70, 33, 29, + ], + ], + [ + [ + 255, 67, 169, 212, 128, 117, 218, 146, 73, 118, 113, 48, 51, 232, 221, 22, 69, 49, 118, + 127, 159, 164, 25, 203, 45, 231, 32, 76, 20, 3, 182, 35, + ], + [ + 128, 192, 45, 222, 4, 111, 75, 67, 105, 135, 179, 9, 231, 6, 181, 241, 43, 60, 145, + 129, 101, 107, 239, 197, 249, 142, 15, 73, 190, 55, 8, 32, + ], + [ + 75, 171, 221, 252, 200, 45, 18, 225, 108, 75, 63, 243, 49, 199, 160, 123, 50, 138, 70, + 237, 85, 182, 107, 126, 116, 200, 23, 254, 122, 68, 35, 39, + ], + [ + 220, 204, 97, 165, 14, 201, 153, 93, 114, 166, 64, 88, 30, 193, 77, 84, 243, 228, 14, + 33, 240, 75, 108, 168, 10, 68, 170, 110, 117, 133, 17, 14, + ], + [ + 7, 8, 119, 58, 124, 100, 81, 248, 160, 28, 127, 136, 223, 190, 172, 109, 44, 130, 189, + 200, 120, 37, 118, 199, 93, 174, 13, 227, 228, 109, 77, 24, + ], + [ + 117, 48, 90, 251, 34, 191, 185, 106, 156, 198, 3, 244, 147, 116, 106, 125, 9, 98, 103, + 25, 67, 247, 161, 20, 215, 143, 98, 56, 111, 192, 80, 12, + ], + [ + 75, 150, 146, 192, 192, 73, 4, 222, 31, 115, 161, 55, 189, 28, 254, 27, 140, 18, 245, + 197, 156, 136, 196, 80, 24, 215, 69, 183, 144, 198, 218, 25, + ], + [ + 4, 59, 137, 5, 85, 187, 155, 254, 174, 111, 148, 55, 146, 77, 162, 139, 54, 133, 46, + 24, 60, 78, 15, 39, 58, 21, 189, 95, 85, 66, 75, 11, + ], + ], + [ + [ + 38, 12, 159, 91, 61, 126, 7, 197, 252, 179, 45, 40, 117, 226, 17, 100, 55, 150, 227, + 217, 209, 62, 51, 50, 221, 205, 172, 219, 49, 51, 83, 32, + ], + [ + 57, 122, 44, 109, 85, 120, 81, 245, 24, 47, 86, 189, 244, 231, 243, 83, 100, 219, 109, + 83, 65, 99, 251, 105, 85, 7, 198, 149, 255, 76, 29, 29, + ], + [ + 83, 248, 191, 219, 235, 44, 62, 170, 200, 75, 122, 207, 106, 115, 35, 184, 127, 201, + 143, 180, 11, 25, 135, 78, 235, 106, 174, 203, 163, 11, 14, 1, + ], + [ + 3, 65, 229, 5, 70, 240, 200, 34, 11, 204, 14, 118, 49, 109, 108, 179, 116, 175, 211, + 123, 3, 227, 30, 105, 244, 63, 147, 137, 174, 6, 58, 49, + ], + [ + 255, 44, 184, 49, 125, 73, 101, 79, 205, 191, 13, 181, 32, 246, 234, 221, 236, 168, + 174, 34, 80, 203, 242, 216, 243, 28, 146, 97, 71, 119, 33, 37, + ], + [ + 66, 233, 66, 56, 132, 114, 180, 163, 103, 56, 133, 98, 139, 1, 125, 189, 147, 192, 40, + 64, 96, 55, 15, 157, 50, 250, 230, 167, 42, 104, 5, 31, + ], + [ + 6, 183, 137, 208, 244, 75, 158, 179, 218, 29, 142, 60, 229, 162, 211, 232, 18, 152, 34, + 85, 133, 122, 3, 251, 178, 144, 51, 171, 190, 238, 27, 3, + ], + [ + 129, 246, 203, 236, 115, 97, 172, 103, 209, 116, 141, 209, 172, 34, 244, 120, 19, 127, + 229, 88, 113, 135, 129, 213, 94, 46, 29, 66, 93, 142, 188, 36, + ], + ], + [ + [ + 194, 202, 86, 162, 6, 28, 7, 93, 217, 68, 231, 140, 53, 182, 117, 79, 205, 232, 162, + 118, 84, 16, 245, 15, 199, 85, 234, 133, 4, 11, 210, 35, + ], + [ + 157, 145, 197, 39, 234, 104, 156, 193, 122, 16, 169, 90, 174, 93, 243, 193, 116, 187, + 240, 105, 166, 97, 121, 195, 247, 81, 101, 251, 216, 51, 21, 54, + ], + [ + 61, 143, 204, 33, 38, 137, 156, 7, 19, 73, 71, 241, 59, 229, 100, 52, 53, 38, 189, 124, + 89, 219, 37, 80, 179, 34, 169, 198, 3, 223, 233, 10, + ], + [ + 204, 47, 178, 44, 209, 241, 91, 185, 131, 159, 137, 31, 191, 153, 83, 229, 11, 23, 175, + 81, 72, 20, 30, 65, 99, 191, 42, 182, 180, 250, 108, 44, + ], + [ + 223, 219, 203, 230, 21, 177, 178, 244, 62, 182, 248, 215, 254, 41, 219, 104, 64, 104, + 105, 86, 234, 81, 171, 153, 179, 116, 16, 103, 192, 250, 50, 38, + ], + [ + 179, 15, 111, 91, 124, 136, 230, 38, 62, 52, 144, 140, 164, 57, 139, 56, 98, 70, 189, + 251, 255, 55, 115, 97, 196, 57, 221, 165, 145, 80, 26, 46, + ], + [ + 21, 103, 9, 56, 143, 106, 41, 164, 169, 198, 100, 253, 71, 31, 238, 128, 240, 35, 71, + 86, 44, 61, 61, 237, 182, 110, 207, 53, 238, 201, 246, 40, + ], + [ + 204, 177, 216, 11, 64, 47, 94, 27, 176, 61, 203, 218, 169, 142, 37, 95, 21, 172, 57, 9, + 223, 126, 135, 241, 193, 203, 213, 144, 92, 248, 186, 35, + ], + ], + [ + [ + 228, 75, 109, 106, 255, 254, 130, 13, 9, 11, 211, 140, 45, 161, 63, 69, 215, 182, 22, + 59, 74, 170, 177, 7, 2, 115, 14, 109, 242, 13, 68, 25, + ], + [ + 6, 222, 179, 66, 171, 58, 140, 170, 192, 130, 16, 180, 206, 179, 253, 194, 92, 54, 196, + 149, 116, 69, 233, 218, 100, 13, 63, 9, 144, 54, 85, 33, + ], + [ + 95, 33, 20, 56, 49, 62, 85, 56, 154, 215, 173, 198, 73, 95, 232, 119, 212, 167, 148, + 120, 147, 204, 164, 27, 136, 69, 78, 130, 7, 206, 240, 36, + ], + [ + 109, 38, 215, 164, 103, 152, 172, 47, 244, 227, 72, 242, 229, 117, 198, 228, 89, 185, + 207, 83, 21, 173, 187, 111, 41, 54, 183, 144, 61, 53, 193, 59, + ], + [ + 67, 218, 51, 136, 12, 221, 238, 123, 201, 104, 185, 13, 178, 54, 4, 239, 242, 103, 151, + 232, 203, 231, 207, 63, 60, 240, 41, 187, 153, 2, 249, 22, + ], + [ + 175, 206, 167, 190, 93, 40, 120, 180, 117, 248, 121, 191, 230, 16, 16, 194, 194, 12, + 146, 20, 128, 18, 44, 31, 48, 232, 16, 11, 84, 110, 68, 8, + ], + [ + 136, 156, 120, 102, 134, 205, 174, 55, 52, 71, 4, 165, 3, 97, 61, 249, 52, 110, 212, + 234, 83, 197, 244, 93, 107, 88, 47, 120, 63, 80, 100, 28, + ], + [ + 237, 132, 106, 72, 25, 163, 185, 172, 196, 20, 116, 129, 247, 220, 212, 128, 76, 154, + 10, 50, 26, 220, 50, 179, 252, 180, 239, 44, 147, 71, 71, 38, + ], + ], + [ + [ + 195, 126, 226, 101, 232, 151, 83, 172, 247, 79, 222, 218, 214, 224, 68, 44, 234, 50, + 156, 252, 136, 137, 56, 174, 225, 55, 8, 111, 153, 167, 160, 43, + ], + [ + 241, 114, 11, 165, 35, 58, 224, 96, 147, 243, 117, 49, 124, 82, 194, 138, 217, 81, 168, + 235, 194, 7, 11, 112, 218, 164, 244, 225, 127, 222, 190, 7, + ], + [ + 210, 109, 146, 106, 46, 44, 15, 251, 15, 32, 213, 72, 138, 6, 104, 145, 147, 59, 192, + 77, 53, 213, 36, 69, 191, 247, 20, 79, 43, 242, 181, 47, + ], + [ + 204, 85, 163, 37, 144, 235, 182, 50, 84, 214, 30, 210, 246, 198, 20, 48, 217, 247, 117, + 180, 207, 150, 47, 224, 35, 81, 66, 231, 203, 126, 250, 7, + ], + [ + 251, 235, 48, 197, 117, 61, 99, 74, 158, 107, 9, 243, 137, 155, 185, 232, 53, 14, 195, + 20, 2, 83, 162, 104, 55, 30, 229, 35, 167, 108, 91, 63, + ], + [ + 230, 107, 185, 57, 172, 171, 223, 240, 186, 182, 106, 85, 77, 252, 75, 255, 117, 50, + 88, 60, 41, 76, 188, 39, 194, 16, 46, 117, 220, 130, 64, 10, + ], + [ + 228, 156, 144, 195, 138, 103, 97, 79, 225, 101, 43, 50, 232, 2, 152, 215, 232, 116, + 177, 254, 13, 17, 224, 87, 217, 149, 255, 187, 18, 241, 16, 15, + ], + [ + 83, 173, 113, 34, 69, 81, 9, 148, 205, 79, 152, 7, 254, 207, 74, 31, 247, 197, 139, 66, + 18, 219, 218, 37, 222, 252, 172, 80, 184, 147, 51, 41, + ], + ], + [ + [ + 0, 89, 55, 87, 138, 18, 8, 243, 120, 2, 157, 224, 104, 227, 73, 235, 249, 187, 159, + 136, 40, 1, 155, 200, 193, 125, 4, 81, 219, 169, 8, 56, + ], + [ + 116, 29, 157, 39, 107, 56, 158, 126, 218, 221, 193, 170, 23, 95, 163, 26, 206, 168, + 133, 96, 36, 195, 59, 152, 44, 66, 146, 48, 61, 175, 172, 43, + ], + [ + 213, 48, 102, 181, 10, 10, 192, 234, 79, 4, 153, 169, 240, 170, 155, 171, 56, 254, 3, + 110, 104, 41, 167, 162, 135, 231, 107, 109, 118, 222, 146, 3, + ], + [ + 165, 81, 105, 154, 149, 116, 129, 132, 226, 15, 34, 154, 113, 82, 142, 224, 187, 254, + 157, 40, 127, 53, 13, 50, 6, 116, 44, 28, 171, 25, 57, 11, + ], + [ + 137, 173, 137, 148, 183, 45, 212, 173, 208, 103, 238, 190, 209, 217, 109, 115, 131, + 170, 167, 157, 48, 105, 2, 225, 33, 144, 56, 104, 74, 90, 101, 45, + ], + [ + 37, 210, 32, 187, 166, 239, 15, 248, 101, 84, 62, 170, 65, 179, 205, 5, 155, 124, 68, + 191, 56, 128, 71, 92, 106, 68, 1, 162, 177, 208, 131, 32, + ], + [ + 20, 40, 151, 188, 73, 233, 86, 220, 88, 77, 88, 18, 101, 114, 204, 242, 37, 68, 158, + 216, 166, 213, 147, 74, 136, 177, 146, 127, 183, 9, 51, 51, + ], + [ + 35, 250, 252, 114, 37, 150, 90, 62, 182, 153, 4, 114, 89, 207, 137, 211, 221, 60, 38, + 181, 33, 54, 11, 251, 225, 50, 39, 247, 36, 64, 59, 60, + ], + ], + [ + [ + 3, 44, 176, 61, 155, 104, 167, 47, 197, 180, 112, 16, 213, 166, 109, 139, 47, 145, 213, + 181, 28, 249, 251, 77, 66, 197, 100, 68, 46, 151, 197, 40, + ], + [ + 229, 35, 247, 127, 1, 20, 236, 233, 188, 17, 88, 74, 87, 15, 3, 29, 133, 223, 178, 245, + 50, 63, 172, 25, 149, 238, 2, 154, 212, 51, 108, 23, + ], + [ + 186, 13, 97, 147, 88, 88, 217, 127, 47, 123, 233, 132, 148, 151, 181, 146, 56, 81, 20, + 162, 72, 61, 131, 202, 209, 20, 131, 189, 7, 97, 130, 13, + ], + [ + 139, 153, 27, 151, 116, 240, 246, 218, 212, 68, 91, 52, 237, 242, 111, 7, 137, 76, 231, + 210, 148, 216, 28, 108, 27, 231, 141, 34, 80, 138, 59, 56, + ], + [ + 253, 100, 45, 165, 2, 73, 249, 202, 254, 16, 147, 135, 31, 124, 231, 212, 212, 0, 79, + 103, 51, 195, 6, 238, 158, 204, 61, 69, 129, 149, 202, 11, + ], + [ + 103, 190, 49, 80, 44, 51, 242, 50, 73, 31, 21, 63, 205, 25, 99, 107, 172, 204, 132, 57, + 220, 222, 181, 200, 245, 232, 39, 33, 20, 227, 78, 40, + ], + [ + 85, 212, 71, 43, 217, 39, 72, 56, 143, 82, 141, 13, 180, 31, 10, 76, 187, 243, 38, 201, + 119, 39, 155, 236, 217, 54, 223, 154, 194, 164, 134, 62, + ], + [ + 77, 5, 128, 184, 241, 69, 158, 253, 102, 134, 157, 97, 98, 242, 100, 188, 115, 143, + 210, 202, 43, 167, 1, 228, 159, 25, 90, 97, 135, 29, 156, 31, + ], + ], + [ + [ + 36, 72, 161, 85, 169, 138, 112, 236, 110, 59, 12, 214, 194, 22, 221, 138, 62, 109, 108, + 237, 74, 210, 136, 75, 62, 166, 199, 109, 221, 86, 136, 29, + ], + [ + 140, 2, 200, 184, 189, 53, 142, 10, 137, 117, 249, 87, 40, 107, 43, 120, 46, 109, 193, + 103, 206, 125, 50, 217, 13, 183, 23, 93, 30, 254, 235, 19, + ], + [ + 135, 255, 108, 83, 58, 92, 159, 201, 196, 233, 222, 140, 225, 114, 46, 196, 1, 113, + 133, 89, 242, 84, 195, 115, 216, 206, 91, 136, 138, 11, 182, 40, + ], + [ + 43, 56, 228, 25, 206, 194, 106, 233, 211, 143, 222, 188, 69, 112, 67, 95, 44, 35, 141, + 217, 190, 181, 140, 62, 217, 117, 135, 249, 33, 200, 62, 24, + ], + [ + 27, 86, 219, 191, 131, 228, 7, 155, 210, 136, 213, 240, 244, 130, 179, 191, 182, 222, + 17, 154, 6, 97, 15, 123, 71, 182, 172, 41, 208, 234, 109, 21, + ], + [ + 223, 22, 81, 97, 125, 169, 6, 44, 41, 71, 184, 66, 241, 108, 28, 88, 120, 93, 200, 86, + 150, 164, 255, 54, 241, 182, 103, 35, 29, 246, 255, 23, + ], + [ + 210, 52, 232, 184, 171, 196, 52, 49, 91, 18, 72, 164, 48, 119, 62, 14, 82, 171, 43, 64, + 136, 163, 208, 132, 255, 220, 172, 227, 37, 160, 4, 13, + ], + [ + 158, 181, 213, 223, 176, 57, 134, 98, 137, 31, 26, 52, 93, 80, 212, 202, 96, 189, 24, + 72, 94, 211, 23, 8, 135, 87, 25, 138, 244, 103, 178, 10, + ], + ], + [ + [ + 240, 216, 75, 131, 74, 33, 115, 241, 209, 7, 112, 77, 251, 35, 7, 247, 247, 86, 143, + 130, 144, 13, 181, 122, 153, 89, 125, 105, 99, 213, 33, 55, + ], + [ + 145, 235, 201, 158, 59, 22, 0, 15, 228, 200, 174, 78, 89, 87, 26, 249, 11, 155, 71, 79, + 3, 34, 190, 254, 234, 73, 46, 92, 61, 216, 41, 17, + ], + [ + 43, 56, 20, 48, 194, 81, 86, 213, 164, 121, 220, 75, 76, 201, 36, 142, 56, 70, 75, 194, + 140, 87, 136, 174, 210, 127, 214, 65, 193, 41, 107, 63, + ], + [ + 213, 92, 219, 226, 204, 5, 20, 13, 110, 238, 153, 209, 70, 249, 219, 212, 107, 56, 7, + 179, 87, 36, 234, 35, 89, 18, 114, 25, 230, 192, 242, 11, + ], + [ + 226, 223, 162, 191, 16, 10, 133, 242, 11, 71, 12, 55, 220, 63, 111, 23, 30, 154, 90, + 151, 140, 23, 118, 109, 212, 51, 99, 222, 98, 158, 237, 48, + ], + [ + 20, 38, 109, 230, 153, 122, 68, 236, 179, 59, 137, 231, 25, 246, 164, 211, 103, 164, + 113, 21, 139, 125, 13, 45, 47, 207, 173, 18, 205, 128, 112, 16, + ], + [ + 133, 0, 26, 33, 217, 221, 37, 96, 168, 164, 192, 185, 154, 124, 126, 12, 113, 167, 105, + 37, 99, 38, 76, 76, 244, 244, 98, 94, 185, 223, 178, 50, + ], + [ + 120, 250, 66, 188, 11, 58, 177, 140, 133, 4, 35, 210, 16, 107, 110, 139, 177, 78, 164, + 108, 156, 193, 85, 154, 42, 199, 216, 70, 150, 47, 234, 38, + ], + ], + [ + [ + 91, 250, 197, 122, 129, 9, 102, 216, 154, 110, 193, 132, 68, 224, 180, 95, 240, 62, + 136, 1, 176, 233, 188, 19, 194, 229, 140, 112, 44, 133, 125, 24, + ], + [ + 249, 15, 38, 45, 54, 238, 216, 27, 31, 126, 65, 99, 176, 76, 76, 214, 121, 5, 114, 71, + 130, 26, 237, 49, 235, 91, 254, 1, 144, 4, 163, 45, + ], + [ + 255, 229, 192, 133, 154, 196, 136, 105, 117, 96, 229, 23, 193, 198, 227, 47, 103, 66, + 232, 204, 152, 70, 129, 24, 164, 199, 122, 63, 191, 92, 135, 20, + ], + [ + 145, 44, 90, 2, 241, 40, 255, 122, 79, 26, 250, 253, 187, 122, 164, 178, 138, 125, 75, + 226, 146, 177, 191, 224, 93, 101, 229, 157, 138, 155, 12, 16, + ], + [ + 139, 122, 121, 78, 6, 21, 126, 230, 160, 18, 97, 42, 15, 118, 106, 37, 136, 251, 240, + 227, 57, 51, 233, 199, 158, 70, 127, 104, 78, 185, 127, 8, + ], + [ + 200, 199, 55, 107, 21, 71, 88, 106, 158, 74, 81, 41, 158, 199, 169, 181, 24, 9, 235, + 60, 232, 189, 129, 3, 44, 218, 123, 77, 232, 208, 128, 9, + ], + [ + 87, 199, 112, 222, 83, 57, 76, 182, 157, 113, 119, 150, 108, 143, 237, 75, 56, 50, 38, + 66, 172, 194, 17, 165, 112, 37, 228, 185, 86, 2, 145, 62, + ], + [ + 140, 36, 76, 105, 203, 131, 114, 245, 40, 53, 57, 156, 212, 119, 252, 184, 23, 242, 29, + 102, 122, 221, 83, 101, 87, 196, 251, 116, 162, 218, 192, 1, + ], + ], + [ + [ + 97, 64, 127, 237, 110, 192, 220, 140, 59, 142, 248, 62, 234, 132, 188, 82, 67, 201, + 217, 7, 201, 173, 228, 72, 105, 116, 5, 79, 175, 99, 110, 47, + ], + [ + 150, 89, 171, 150, 182, 170, 198, 17, 165, 5, 128, 18, 226, 2, 104, 242, 43, 208, 9, + 148, 202, 37, 98, 172, 180, 251, 0, 83, 175, 210, 66, 58, + ], + [ + 17, 173, 81, 22, 153, 10, 186, 31, 241, 216, 106, 49, 89, 190, 84, 172, 253, 183, 24, + 143, 238, 231, 209, 108, 168, 173, 98, 162, 198, 181, 254, 51, + ], + [ + 137, 210, 105, 132, 29, 175, 97, 107, 112, 74, 210, 47, 145, 197, 47, 143, 80, 208, + 204, 127, 23, 42, 5, 235, 125, 56, 241, 210, 114, 164, 16, 20, + ], + [ + 132, 20, 239, 85, 238, 127, 107, 177, 97, 117, 240, 180, 115, 92, 140, 47, 146, 146, + 209, 250, 105, 68, 254, 108, 179, 193, 247, 12, 193, 30, 102, 43, + ], + [ + 145, 126, 226, 38, 179, 157, 78, 13, 224, 130, 207, 125, 26, 174, 162, 43, 138, 2, 152, + 36, 231, 146, 204, 225, 233, 239, 158, 247, 28, 56, 142, 26, + ], + [ + 91, 164, 60, 87, 26, 175, 68, 99, 255, 62, 87, 54, 247, 40, 87, 155, 223, 249, 133, 28, + 117, 204, 149, 227, 61, 21, 58, 52, 75, 149, 250, 10, + ], + [ + 237, 191, 63, 71, 77, 84, 26, 130, 131, 163, 245, 220, 12, 111, 61, 79, 234, 238, 214, + 176, 160, 20, 135, 93, 135, 186, 136, 38, 105, 93, 100, 15, + ], + ], + [ + [ + 223, 170, 66, 190, 77, 208, 106, 211, 248, 2, 37, 34, 99, 11, 115, 188, 248, 104, 129, + 217, 110, 246, 30, 138, 250, 119, 187, 198, 184, 231, 12, 7, + ], + [ + 120, 133, 72, 207, 98, 167, 236, 27, 52, 201, 169, 82, 14, 47, 143, 2, 249, 62, 196, + 64, 24, 11, 206, 173, 64, 91, 37, 228, 197, 230, 184, 38, + ], + [ + 213, 11, 163, 125, 42, 99, 72, 223, 58, 183, 0, 153, 96, 92, 125, 212, 108, 65, 112, + 252, 99, 25, 113, 161, 55, 130, 32, 116, 104, 18, 188, 46, + ], + [ + 142, 172, 196, 64, 209, 79, 68, 196, 33, 58, 63, 86, 184, 182, 233, 48, 38, 46, 86, + 198, 52, 81, 36, 136, 62, 49, 52, 132, 26, 44, 174, 8, + ], + [ + 79, 79, 157, 236, 132, 179, 39, 72, 58, 22, 193, 191, 5, 165, 177, 232, 113, 76, 196, + 135, 205, 206, 127, 137, 17, 121, 184, 142, 66, 50, 42, 30, + ], + [ + 140, 147, 23, 191, 59, 161, 110, 195, 158, 68, 129, 248, 198, 61, 3, 54, 198, 151, 148, + 60, 165, 221, 201, 66, 76, 191, 167, 108, 16, 122, 2, 60, + ], + [ + 230, 31, 126, 106, 18, 212, 227, 114, 225, 54, 2, 184, 55, 2, 36, 148, 145, 243, 68, + 157, 10, 231, 99, 227, 102, 179, 220, 245, 187, 202, 90, 3, + ], + [ + 131, 100, 10, 199, 130, 82, 185, 106, 12, 181, 129, 230, 230, 197, 136, 203, 147, 216, + 212, 52, 200, 130, 43, 61, 218, 76, 160, 84, 61, 47, 4, 9, + ], + ], + [ + [ + 55, 204, 232, 108, 99, 18, 152, 227, 32, 80, 114, 26, 128, 128, 125, 191, 206, 224, + 241, 115, 26, 136, 84, 154, 148, 210, 33, 18, 177, 227, 22, 13, + ], + [ + 144, 114, 124, 2, 51, 175, 130, 107, 154, 122, 141, 251, 83, 165, 109, 160, 140, 155, + 37, 33, 174, 241, 100, 50, 181, 99, 106, 235, 13, 20, 231, 49, + ], + [ + 216, 224, 156, 16, 159, 31, 195, 82, 159, 97, 74, 220, 80, 110, 13, 143, 225, 137, 212, + 157, 20, 130, 117, 243, 6, 194, 113, 149, 109, 157, 117, 48, + ], + [ + 203, 152, 160, 212, 237, 116, 129, 128, 172, 159, 96, 132, 111, 87, 224, 76, 161, 186, + 43, 113, 253, 239, 239, 247, 147, 215, 35, 210, 24, 189, 172, 42, + ], + [ + 127, 6, 186, 229, 204, 141, 254, 171, 184, 224, 28, 52, 14, 248, 229, 15, 103, 100, + 189, 80, 135, 173, 32, 47, 15, 100, 230, 42, 42, 133, 116, 62, + ], + [ + 98, 43, 219, 88, 207, 92, 180, 93, 183, 130, 209, 52, 218, 197, 222, 121, 202, 82, 89, + 163, 146, 136, 199, 138, 92, 229, 97, 45, 202, 14, 107, 3, + ], + [ + 240, 123, 106, 60, 50, 212, 31, 248, 89, 162, 207, 92, 59, 93, 219, 186, 97, 70, 183, + 76, 226, 50, 124, 180, 170, 240, 86, 206, 208, 73, 143, 58, + ], + [ + 68, 34, 149, 125, 18, 250, 72, 119, 93, 236, 204, 129, 252, 238, 125, 83, 69, 110, 14, + 140, 202, 10, 54, 156, 156, 245, 188, 186, 65, 147, 214, 58, + ], + ], + [ + [ + 100, 148, 161, 249, 209, 68, 164, 245, 215, 120, 36, 73, 193, 207, 199, 211, 164, 112, + 198, 111, 27, 1, 28, 72, 43, 84, 188, 15, 250, 159, 188, 26, + ], + [ + 253, 232, 39, 91, 86, 20, 213, 250, 200, 253, 181, 117, 94, 30, 220, 129, 132, 201, + 156, 56, 249, 165, 70, 192, 24, 61, 24, 145, 187, 24, 7, 13, + ], + [ + 235, 160, 136, 133, 75, 13, 222, 161, 238, 179, 2, 106, 74, 63, 0, 248, 96, 26, 138, + 196, 53, 150, 8, 73, 124, 157, 77, 23, 208, 245, 181, 10, + ], + [ + 224, 180, 160, 165, 136, 230, 75, 44, 173, 23, 88, 47, 214, 41, 208, 76, 49, 85, 171, + 140, 128, 17, 207, 88, 157, 169, 101, 251, 90, 52, 114, 26, + ], + [ + 251, 247, 129, 11, 189, 220, 160, 126, 110, 241, 216, 126, 145, 176, 90, 92, 255, 164, + 67, 155, 143, 105, 231, 221, 19, 4, 209, 247, 129, 79, 58, 49, + ], + [ + 55, 58, 1, 79, 198, 128, 28, 83, 10, 33, 83, 28, 178, 155, 41, 216, 238, 187, 174, 61, + 201, 86, 87, 236, 92, 163, 208, 44, 86, 114, 54, 54, + ], + [ + 57, 169, 95, 175, 193, 90, 221, 121, 48, 104, 22, 110, 222, 88, 201, 207, 154, 16, 36, + 26, 255, 141, 57, 222, 7, 189, 115, 238, 20, 167, 80, 40, + ], + [ + 47, 181, 105, 56, 58, 145, 115, 74, 79, 83, 212, 58, 126, 171, 44, 110, 219, 142, 60, + 180, 182, 14, 17, 229, 248, 82, 81, 14, 170, 126, 147, 54, + ], + ], + [ + [ + 128, 20, 45, 17, 172, 230, 162, 59, 42, 143, 8, 76, 33, 186, 248, 116, 42, 73, 85, 228, + 40, 39, 54, 88, 181, 90, 54, 87, 55, 177, 229, 48, + ], + [ + 102, 173, 199, 114, 55, 226, 31, 35, 68, 39, 12, 40, 107, 135, 27, 73, 112, 191, 44, + 71, 245, 185, 21, 25, 255, 200, 88, 114, 110, 229, 161, 22, + ], + [ + 242, 13, 62, 36, 95, 118, 193, 245, 50, 127, 84, 98, 54, 154, 247, 225, 103, 249, 157, + 187, 31, 199, 119, 56, 69, 142, 166, 156, 124, 182, 243, 30, + ], + [ + 169, 44, 97, 74, 69, 161, 72, 96, 128, 26, 55, 131, 150, 94, 84, 17, 234, 77, 2, 152, + 17, 35, 18, 95, 191, 22, 140, 116, 110, 72, 104, 40, + ], + [ + 23, 99, 66, 21, 11, 139, 224, 24, 118, 30, 242, 229, 10, 83, 69, 203, 47, 187, 184, + 170, 182, 204, 151, 96, 55, 203, 201, 45, 173, 76, 21, 62, + ], + [ + 174, 56, 175, 37, 18, 168, 92, 220, 126, 59, 122, 128, 188, 14, 11, 76, 224, 185, 52, + 56, 171, 1, 76, 94, 170, 201, 52, 223, 143, 143, 65, 0, + ], + [ + 105, 252, 232, 233, 233, 184, 240, 251, 105, 190, 199, 191, 40, 128, 70, 127, 50, 153, + 218, 78, 159, 152, 131, 91, 144, 74, 196, 12, 72, 3, 98, 60, + ], + [ + 86, 118, 204, 12, 44, 119, 238, 58, 14, 159, 108, 2, 205, 230, 12, 174, 118, 229, 14, + 199, 87, 166, 74, 165, 221, 17, 87, 56, 146, 78, 20, 38, + ], + ], + [ + [ + 17, 210, 205, 128, 203, 153, 80, 160, 236, 118, 114, 81, 57, 77, 237, 168, 120, 203, + 243, 6, 165, 10, 37, 16, 19, 82, 193, 5, 125, 101, 1, 1, + ], + [ + 52, 57, 24, 226, 28, 210, 52, 197, 135, 76, 224, 159, 200, 11, 210, 84, 143, 91, 58, + 149, 199, 147, 56, 115, 35, 77, 56, 29, 112, 225, 160, 21, + ], + [ + 103, 157, 74, 50, 168, 153, 10, 113, 111, 250, 147, 120, 97, 105, 30, 162, 84, 110, + 181, 117, 25, 90, 57, 255, 1, 241, 61, 16, 55, 61, 65, 52, + ], + [ + 241, 161, 9, 88, 151, 232, 118, 42, 51, 245, 132, 81, 90, 123, 243, 30, 223, 21, 254, + 64, 128, 203, 22, 56, 162, 74, 101, 8, 215, 253, 75, 7, + ], + [ + 168, 52, 111, 97, 141, 41, 127, 84, 216, 177, 7, 162, 249, 219, 97, 204, 187, 22, 8, + 167, 81, 147, 177, 55, 76, 215, 129, 233, 167, 122, 131, 60, + ], + [ + 148, 157, 151, 154, 244, 40, 17, 161, 198, 20, 105, 212, 156, 158, 39, 23, 231, 137, + 222, 84, 68, 27, 3, 207, 199, 230, 18, 44, 157, 202, 81, 52, + ], + [ + 77, 77, 79, 101, 89, 159, 81, 121, 236, 91, 174, 188, 38, 33, 130, 156, 128, 26, 22, + 145, 39, 255, 241, 196, 151, 255, 82, 91, 148, 232, 71, 18, + ], + [ + 194, 196, 111, 238, 57, 75, 10, 99, 212, 187, 129, 199, 119, 92, 1, 108, 241, 170, 157, + 183, 229, 228, 101, 27, 52, 174, 69, 134, 147, 83, 58, 54, + ], + ], + [ + [ + 241, 63, 197, 8, 100, 206, 130, 195, 128, 98, 20, 252, 192, 60, 31, 154, 23, 124, 103, + 182, 200, 154, 206, 243, 229, 5, 113, 213, 164, 112, 185, 55, + ], + [ + 105, 242, 123, 46, 87, 11, 173, 139, 0, 221, 84, 124, 26, 7, 229, 104, 187, 91, 104, + 81, 219, 204, 240, 1, 1, 235, 27, 29, 117, 155, 29, 38, + ], + [ + 225, 247, 40, 180, 114, 90, 146, 118, 40, 231, 57, 24, 23, 219, 32, 253, 2, 110, 91, + 34, 56, 181, 2, 115, 172, 228, 119, 92, 167, 155, 176, 58, + ], + [ + 249, 104, 21, 229, 236, 207, 33, 6, 53, 166, 64, 148, 104, 232, 112, 223, 106, 6, 118, + 70, 13, 100, 73, 127, 195, 76, 19, 138, 175, 115, 228, 1, + ], + [ + 195, 144, 80, 114, 29, 145, 101, 51, 84, 237, 157, 117, 160, 225, 241, 235, 114, 170, + 30, 122, 200, 158, 177, 41, 229, 85, 234, 198, 76, 168, 52, 24, + ], + [ + 120, 210, 255, 49, 191, 96, 63, 157, 96, 72, 69, 219, 183, 118, 127, 68, 51, 117, 157, + 15, 174, 235, 120, 43, 212, 104, 132, 191, 34, 171, 203, 33, + ], + [ + 44, 169, 60, 45, 196, 253, 165, 116, 12, 163, 75, 217, 85, 188, 185, 137, 45, 249, 112, + 151, 138, 217, 14, 129, 30, 158, 215, 254, 84, 42, 228, 42, + ], + [ + 203, 168, 249, 62, 65, 9, 40, 183, 128, 84, 88, 173, 178, 248, 224, 77, 145, 33, 193, + 92, 50, 207, 141, 24, 15, 52, 252, 243, 246, 98, 19, 49, + ], + ], + [ + [ + 237, 54, 165, 102, 136, 30, 200, 45, 73, 254, 49, 68, 66, 86, 185, 7, 241, 116, 123, + 60, 28, 190, 126, 70, 234, 142, 64, 228, 224, 138, 208, 27, + ], + [ + 99, 57, 207, 132, 197, 103, 87, 84, 55, 138, 63, 103, 194, 83, 185, 46, 158, 91, 214, + 20, 95, 59, 228, 214, 143, 132, 0, 23, 253, 230, 26, 48, + ], + [ + 123, 239, 222, 226, 21, 242, 243, 197, 129, 206, 152, 129, 16, 20, 211, 42, 176, 65, + 242, 192, 66, 69, 81, 3, 131, 15, 216, 202, 2, 243, 218, 7, + ], + [ + 31, 26, 204, 209, 239, 190, 83, 225, 196, 75, 45, 121, 3, 102, 101, 131, 44, 31, 218, + 48, 73, 17, 134, 242, 247, 29, 221, 207, 227, 5, 52, 25, + ], + [ + 202, 14, 80, 192, 246, 207, 239, 108, 96, 56, 18, 233, 77, 173, 33, 8, 59, 253, 229, + 142, 225, 80, 41, 255, 246, 3, 81, 26, 35, 44, 231, 16, + ], + [ + 121, 74, 250, 232, 223, 85, 200, 144, 168, 194, 169, 93, 4, 215, 101, 243, 38, 138, 47, + 65, 199, 166, 45, 18, 118, 239, 185, 189, 156, 25, 107, 24, + ], + [ + 78, 176, 119, 91, 128, 226, 57, 17, 143, 199, 58, 244, 198, 201, 19, 241, 221, 217, + 241, 225, 34, 210, 174, 2, 205, 104, 225, 0, 230, 178, 142, 57, + ], + [ + 148, 105, 249, 45, 180, 221, 60, 123, 112, 195, 248, 88, 13, 52, 126, 194, 131, 236, + 52, 91, 170, 222, 209, 94, 201, 73, 253, 213, 21, 196, 23, 26, + ], + ], + [ + [ + 182, 212, 91, 5, 64, 193, 110, 29, 140, 166, 154, 43, 144, 226, 204, 76, 157, 57, 210, + 77, 119, 255, 110, 232, 205, 123, 162, 24, 193, 148, 79, 12, + ], + [ + 36, 238, 108, 197, 169, 69, 71, 57, 159, 134, 64, 215, 134, 142, 123, 7, 230, 54, 52, + 211, 182, 48, 157, 191, 50, 219, 222, 147, 205, 0, 190, 11, + ], + [ + 35, 5, 133, 217, 180, 43, 56, 102, 117, 79, 198, 160, 251, 151, 49, 167, 97, 168, 236, + 153, 46, 53, 97, 136, 177, 22, 144, 248, 209, 112, 2, 22, + ], + [ + 189, 185, 158, 102, 165, 81, 53, 43, 92, 59, 187, 63, 53, 181, 50, 254, 28, 27, 251, + 184, 213, 163, 78, 124, 194, 6, 198, 11, 104, 110, 190, 58, + ], + [ + 116, 193, 244, 154, 127, 157, 31, 127, 143, 165, 156, 200, 172, 124, 18, 75, 72, 222, + 71, 165, 110, 23, 37, 39, 40, 221, 208, 104, 143, 242, 10, 48, + ], + [ + 183, 141, 193, 42, 36, 65, 222, 109, 178, 190, 244, 230, 12, 133, 148, 135, 165, 30, + 186, 27, 85, 88, 243, 247, 39, 160, 74, 215, 156, 107, 27, 18, + ], + [ + 178, 132, 174, 93, 169, 172, 0, 113, 42, 161, 34, 61, 153, 62, 171, 231, 99, 205, 151, + 136, 195, 41, 104, 69, 129, 94, 118, 232, 230, 30, 41, 17, + ], + [ + 168, 254, 122, 49, 132, 197, 175, 154, 5, 26, 244, 178, 204, 59, 101, 158, 244, 142, + 21, 29, 108, 129, 119, 165, 179, 98, 124, 213, 19, 29, 89, 20, + ], + ], + [ + [ + 58, 113, 74, 241, 171, 205, 88, 69, 237, 115, 76, 207, 136, 236, 87, 123, 162, 139, + 106, 6, 32, 222, 117, 231, 41, 193, 154, 129, 90, 25, 140, 32, + ], + [ + 230, 114, 111, 31, 111, 230, 200, 253, 222, 93, 21, 215, 146, 39, 154, 45, 176, 255, + 252, 145, 47, 232, 32, 241, 128, 121, 239, 189, 41, 31, 178, 36, + ], + [ + 174, 68, 205, 209, 74, 239, 125, 252, 66, 216, 148, 150, 245, 194, 226, 111, 75, 204, + 15, 141, 251, 66, 147, 233, 225, 226, 32, 128, 223, 237, 242, 59, + ], + [ + 3, 121, 18, 77, 255, 155, 204, 130, 228, 64, 12, 91, 2, 202, 55, 137, 126, 167, 237, + 179, 121, 95, 97, 237, 79, 161, 223, 249, 20, 104, 224, 38, + ], + [ + 200, 199, 195, 205, 182, 178, 120, 64, 102, 134, 15, 97, 173, 148, 179, 163, 187, 169, + 183, 49, 254, 95, 207, 243, 104, 207, 129, 137, 204, 95, 68, 40, + ], + [ + 205, 24, 7, 183, 41, 150, 50, 243, 52, 134, 179, 221, 154, 3, 50, 15, 125, 141, 44, + 229, 174, 113, 51, 207, 142, 158, 157, 165, 171, 33, 167, 38, + ], + [ + 93, 0, 212, 151, 114, 45, 134, 198, 142, 228, 90, 196, 237, 19, 187, 131, 51, 19, 28, + 175, 104, 227, 105, 196, 131, 167, 79, 38, 138, 196, 51, 2, + ], + [ + 59, 126, 116, 119, 162, 37, 37, 83, 6, 89, 187, 30, 31, 41, 207, 146, 78, 210, 47, 181, + 12, 196, 180, 125, 230, 122, 253, 44, 241, 73, 220, 41, + ], + ], + [ + [ + 93, 227, 53, 151, 63, 84, 124, 154, 237, 167, 104, 227, 134, 9, 69, 169, 213, 20, 129, + 164, 5, 139, 107, 214, 219, 181, 245, 2, 133, 23, 167, 51, + ], + [ + 52, 208, 36, 128, 213, 207, 33, 248, 5, 208, 172, 141, 116, 118, 32, 61, 70, 206, 220, + 2, 177, 33, 220, 229, 217, 39, 243, 191, 204, 59, 103, 13, + ], + [ + 137, 0, 31, 220, 219, 195, 242, 66, 222, 9, 30, 49, 67, 147, 242, 237, 184, 155, 92, + 127, 0, 138, 163, 239, 31, 52, 29, 248, 179, 142, 178, 51, + ], + [ + 9, 247, 72, 70, 229, 95, 189, 205, 92, 112, 59, 237, 203, 45, 169, 254, 130, 56, 222, + 97, 91, 53, 5, 79, 254, 144, 144, 139, 249, 44, 112, 10, + ], + [ + 142, 182, 137, 135, 132, 12, 193, 117, 33, 4, 3, 131, 45, 71, 220, 57, 220, 109, 192, + 168, 19, 114, 226, 245, 71, 204, 104, 87, 86, 129, 252, 48, + ], + [ + 155, 212, 212, 132, 134, 186, 221, 90, 141, 120, 16, 198, 25, 43, 18, 134, 198, 62, + 173, 11, 168, 215, 104, 237, 241, 111, 108, 112, 148, 121, 90, 25, + ], + [ + 237, 57, 126, 105, 21, 13, 14, 166, 233, 74, 163, 1, 182, 44, 234, 186, 213, 219, 38, + 5, 226, 108, 110, 255, 36, 207, 85, 60, 152, 169, 241, 14, + ], + [ + 219, 43, 21, 203, 72, 178, 62, 213, 60, 192, 3, 20, 90, 10, 186, 134, 181, 154, 0, 53, + 75, 214, 211, 194, 227, 32, 13, 159, 93, 183, 134, 29, + ], + ], + [ + [ + 49, 16, 184, 146, 99, 19, 153, 194, 123, 41, 24, 235, 243, 73, 9, 215, 195, 186, 58, + 253, 33, 124, 76, 111, 151, 179, 252, 251, 103, 1, 100, 19, + ], + [ + 15, 173, 71, 88, 104, 55, 212, 113, 228, 43, 4, 246, 137, 5, 251, 183, 137, 34, 16, + 234, 130, 208, 240, 188, 128, 118, 175, 127, 198, 150, 228, 54, + ], + [ + 19, 194, 219, 217, 24, 146, 37, 223, 241, 118, 130, 17, 106, 48, 243, 74, 75, 45, 249, + 82, 100, 196, 236, 235, 144, 119, 189, 233, 209, 224, 89, 37, + ], + [ + 5, 204, 210, 20, 79, 207, 213, 247, 252, 195, 1, 101, 247, 54, 70, 221, 19, 126, 205, + 230, 224, 154, 57, 24, 251, 138, 104, 107, 145, 143, 240, 22, + ], + [ + 178, 233, 194, 212, 193, 74, 25, 74, 15, 201, 106, 114, 6, 248, 134, 168, 129, 110, + 148, 125, 208, 42, 9, 90, 43, 255, 71, 206, 153, 173, 12, 42, + ], + [ + 119, 68, 2, 6, 31, 24, 160, 117, 87, 143, 120, 3, 215, 255, 247, 207, 125, 158, 23, 39, + 73, 106, 15, 240, 170, 155, 168, 142, 89, 225, 234, 63, + ], + [ + 2, 252, 41, 89, 60, 106, 201, 142, 88, 102, 71, 228, 123, 206, 24, 191, 1, 253, 100, + 123, 184, 7, 217, 120, 110, 91, 223, 31, 201, 144, 243, 15, + ], + [ + 93, 40, 93, 41, 170, 15, 155, 192, 244, 60, 25, 163, 9, 222, 26, 176, 200, 141, 148, + 145, 57, 182, 188, 135, 57, 156, 54, 242, 130, 162, 218, 45, + ], + ], + [ + [ + 214, 69, 246, 81, 233, 237, 251, 120, 2, 67, 240, 114, 30, 75, 200, 44, 1, 53, 148, + 130, 104, 10, 26, 136, 234, 145, 255, 246, 127, 216, 194, 32, + ], + [ + 8, 65, 67, 164, 14, 155, 196, 111, 151, 196, 74, 150, 62, 189, 131, 110, 205, 122, 128, + 186, 236, 28, 51, 10, 206, 109, 134, 57, 87, 101, 93, 63, + ], + [ + 68, 251, 222, 27, 177, 128, 75, 246, 128, 26, 58, 21, 141, 73, 219, 42, 229, 3, 99, 79, + 130, 94, 144, 140, 141, 29, 53, 13, 199, 208, 48, 59, + ], + [ + 121, 169, 146, 165, 201, 195, 186, 28, 83, 140, 53, 245, 69, 22, 126, 233, 44, 39, 159, + 191, 14, 124, 20, 39, 211, 99, 13, 89, 204, 83, 245, 48, + ], + [ + 241, 91, 55, 71, 30, 143, 172, 30, 17, 71, 66, 49, 156, 12, 144, 152, 162, 58, 65, 31, + 79, 2, 122, 225, 125, 125, 153, 221, 22, 197, 140, 37, + ], + [ + 124, 252, 189, 185, 58, 35, 47, 92, 69, 63, 199, 229, 172, 244, 39, 99, 171, 41, 82, + 29, 253, 54, 46, 8, 131, 43, 68, 128, 109, 196, 72, 49, + ], + [ + 151, 169, 183, 67, 74, 131, 44, 160, 250, 82, 177, 35, 52, 186, 12, 2, 39, 80, 220, + 239, 222, 107, 96, 203, 129, 128, 190, 117, 141, 234, 237, 7, + ], + [ + 251, 84, 120, 50, 59, 6, 204, 109, 171, 19, 119, 102, 17, 119, 90, 250, 186, 203, 7, + 226, 58, 117, 211, 98, 120, 62, 139, 222, 92, 87, 237, 59, + ], + ], + [ + [ + 191, 132, 136, 12, 31, 227, 14, 77, 18, 230, 96, 126, 159, 194, 114, 113, 28, 229, 95, + 102, 160, 121, 135, 222, 1, 204, 166, 147, 27, 78, 94, 63, + ], + [ + 41, 189, 153, 118, 73, 216, 74, 136, 32, 117, 103, 71, 64, 171, 143, 4, 185, 64, 223, + 191, 207, 225, 91, 3, 220, 58, 84, 161, 4, 186, 255, 61, + ], + [ + 220, 110, 238, 123, 194, 162, 87, 36, 98, 216, 59, 236, 84, 52, 113, 46, 60, 29, 97, + 191, 141, 77, 148, 189, 79, 189, 144, 241, 49, 163, 107, 17, + ], + [ + 12, 58, 75, 102, 5, 119, 46, 98, 201, 99, 246, 5, 148, 216, 73, 204, 226, 111, 142, 35, + 12, 56, 248, 38, 114, 250, 183, 85, 199, 74, 219, 21, + ], + [ + 84, 181, 225, 125, 40, 19, 155, 140, 118, 241, 20, 21, 158, 167, 93, 244, 2, 17, 21, + 91, 2, 83, 1, 94, 22, 55, 135, 167, 223, 24, 32, 42, + ], + [ + 6, 100, 231, 118, 1, 253, 62, 137, 179, 245, 83, 61, 171, 224, 96, 238, 76, 134, 31, + 107, 133, 47, 160, 13, 10, 43, 78, 93, 177, 12, 195, 17, + ], + [ + 81, 34, 138, 58, 81, 179, 240, 49, 216, 93, 153, 221, 161, 206, 140, 17, 40, 75, 244, + 16, 220, 69, 242, 179, 209, 48, 169, 69, 163, 216, 79, 19, + ], + [ + 60, 205, 53, 247, 139, 167, 157, 115, 224, 197, 206, 220, 238, 82, 218, 253, 74, 237, + 137, 50, 31, 151, 177, 175, 197, 44, 58, 147, 109, 119, 51, 1, + ], + ], + [ + [ + 27, 15, 21, 190, 82, 194, 14, 56, 128, 44, 111, 155, 238, 130, 188, 19, 119, 238, 0, 4, + 91, 86, 254, 61, 166, 67, 119, 22, 106, 244, 56, 47, + ], + [ + 23, 52, 161, 183, 10, 194, 104, 78, 22, 66, 219, 166, 215, 76, 71, 106, 108, 153, 245, + 170, 105, 53, 197, 234, 219, 226, 234, 184, 86, 189, 222, 10, + ], + [ + 231, 5, 115, 95, 58, 66, 208, 135, 209, 47, 123, 58, 134, 156, 88, 202, 13, 79, 225, 8, + 164, 39, 127, 246, 43, 136, 188, 177, 254, 151, 70, 23, + ], + [ + 86, 248, 109, 23, 128, 55, 179, 214, 159, 18, 33, 106, 34, 109, 190, 0, 110, 224, 62, + 210, 87, 190, 246, 206, 196, 141, 133, 226, 167, 133, 19, 47, + ], + [ + 70, 58, 113, 121, 237, 219, 30, 160, 229, 88, 95, 214, 8, 232, 108, 98, 14, 233, 43, + 189, 225, 16, 247, 36, 111, 122, 199, 25, 205, 44, 112, 42, + ], + [ + 184, 97, 40, 59, 116, 147, 139, 60, 30, 250, 67, 11, 242, 111, 104, 150, 15, 215, 245, + 99, 31, 128, 240, 115, 18, 249, 99, 114, 186, 65, 76, 26, + ], + [ + 183, 90, 33, 10, 78, 210, 54, 79, 156, 8, 176, 24, 54, 209, 203, 157, 151, 134, 88, + 104, 211, 62, 38, 197, 117, 122, 207, 15, 163, 5, 59, 8, + ], + [ + 41, 14, 171, 211, 125, 45, 149, 132, 101, 32, 35, 142, 108, 194, 13, 37, 122, 27, 219, + 223, 32, 41, 153, 199, 167, 246, 214, 240, 222, 131, 85, 9, + ], + ], + [ + [ + 146, 73, 118, 250, 189, 115, 96, 188, 162, 168, 121, 1, 55, 221, 181, 187, 145, 13, + 213, 160, 250, 117, 252, 42, 161, 41, 42, 60, 45, 193, 25, 30, + ], + [ + 38, 126, 2, 131, 102, 66, 220, 138, 83, 239, 80, 46, 245, 63, 94, 233, 192, 15, 173, + 155, 6, 154, 124, 236, 99, 151, 106, 21, 10, 55, 175, 45, + ], + [ + 147, 163, 56, 143, 203, 206, 180, 175, 15, 39, 185, 183, 254, 241, 235, 182, 62, 116, + 27, 66, 73, 66, 55, 190, 19, 68, 189, 214, 46, 89, 13, 49, + ], + [ + 121, 248, 233, 93, 196, 140, 233, 226, 177, 11, 177, 78, 181, 222, 38, 101, 216, 68, + 10, 26, 212, 185, 105, 39, 89, 190, 15, 184, 32, 157, 147, 35, + ], + [ + 67, 108, 70, 93, 37, 202, 52, 114, 7, 214, 41, 246, 220, 152, 65, 195, 75, 216, 193, + 159, 110, 113, 85, 105, 182, 55, 126, 48, 92, 74, 41, 13, + ], + [ + 66, 55, 15, 17, 96, 43, 142, 225, 55, 202, 242, 132, 16, 128, 198, 64, 57, 51, 173, + 153, 18, 21, 74, 117, 208, 85, 87, 200, 8, 25, 30, 53, + ], + [ + 142, 173, 137, 206, 188, 2, 155, 106, 110, 80, 138, 211, 142, 216, 9, 126, 115, 161, + 60, 119, 251, 199, 29, 163, 69, 166, 106, 200, 115, 12, 27, 42, + ], + [ + 5, 28, 251, 152, 246, 99, 74, 222, 86, 91, 4, 141, 212, 14, 200, 222, 129, 133, 91, + 117, 4, 233, 235, 254, 214, 85, 56, 28, 211, 167, 164, 7, + ], + ], + [ + [ + 199, 248, 56, 7, 116, 43, 199, 175, 73, 62, 19, 67, 250, 144, 43, 227, 245, 85, 242, + 25, 74, 33, 89, 208, 243, 137, 220, 136, 0, 79, 235, 17, + ], + [ + 141, 87, 177, 94, 249, 243, 42, 2, 191, 181, 12, 101, 121, 76, 243, 215, 5, 157, 170, + 98, 185, 102, 238, 161, 179, 91, 225, 102, 17, 243, 151, 18, + ], + [ + 5, 165, 124, 37, 121, 192, 201, 221, 50, 34, 204, 74, 249, 97, 138, 157, 183, 155, 191, + 222, 146, 82, 129, 195, 236, 32, 110, 47, 32, 32, 212, 59, + ], + [ + 9, 21, 25, 227, 120, 92, 35, 43, 121, 43, 234, 147, 157, 23, 218, 121, 248, 28, 137, + 152, 121, 231, 163, 87, 212, 168, 222, 177, 182, 50, 19, 26, + ], + [ + 214, 240, 41, 113, 104, 195, 60, 163, 221, 18, 241, 139, 35, 166, 231, 241, 137, 56, + 217, 182, 177, 214, 146, 157, 176, 171, 13, 41, 204, 80, 94, 53, + ], + [ + 5, 160, 27, 29, 63, 102, 96, 140, 192, 60, 193, 95, 114, 182, 5, 102, 115, 144, 60, 92, + 83, 249, 85, 161, 172, 2, 96, 118, 95, 245, 201, 58, + ], + [ + 35, 161, 31, 237, 123, 141, 123, 90, 233, 91, 250, 0, 189, 31, 19, 179, 134, 219, 230, + 7, 54, 236, 238, 251, 183, 245, 255, 172, 233, 240, 4, 27, + ], + [ + 2, 165, 109, 76, 190, 46, 187, 163, 33, 215, 48, 19, 0, 240, 15, 120, 7, 191, 169, 213, + 118, 162, 0, 79, 58, 146, 185, 165, 77, 215, 43, 16, + ], + ], + [ + [ + 139, 175, 132, 197, 168, 169, 208, 139, 136, 29, 122, 201, 243, 76, 13, 159, 57, 180, + 235, 124, 157, 231, 66, 8, 233, 163, 50, 145, 44, 186, 159, 39, + ], + [ + 18, 215, 223, 109, 50, 114, 37, 123, 232, 3, 220, 242, 61, 30, 200, 62, 103, 11, 171, + 156, 78, 117, 46, 234, 174, 247, 58, 238, 51, 180, 32, 19, + ], + [ + 101, 233, 249, 129, 23, 236, 206, 133, 169, 247, 127, 5, 25, 115, 137, 232, 198, 119, + 126, 232, 19, 27, 53, 153, 229, 149, 149, 92, 202, 120, 23, 34, + ], + [ + 195, 226, 216, 96, 174, 47, 198, 78, 76, 136, 67, 64, 61, 50, 64, 28, 70, 131, 105, 96, + 54, 197, 98, 18, 197, 130, 92, 155, 116, 104, 213, 28, + ], + [ + 4, 165, 219, 75, 186, 168, 40, 93, 124, 34, 52, 233, 148, 177, 130, 40, 113, 173, 207, + 243, 123, 185, 251, 0, 111, 209, 114, 114, 0, 165, 47, 21, + ], + [ + 15, 211, 38, 24, 236, 47, 246, 65, 238, 204, 84, 203, 250, 41, 211, 141, 195, 16, 196, + 184, 251, 47, 229, 78, 183, 45, 82, 65, 59, 228, 223, 38, + ], + [ + 226, 208, 172, 170, 113, 92, 148, 103, 53, 253, 157, 15, 1, 15, 188, 215, 214, 21, 122, + 252, 33, 72, 164, 8, 8, 129, 2, 81, 175, 88, 16, 42, + ], + [ + 120, 112, 122, 188, 218, 169, 97, 108, 132, 61, 177, 126, 146, 248, 48, 72, 231, 104, + 58, 58, 245, 127, 126, 68, 82, 142, 8, 42, 111, 149, 188, 32, + ], + ], + [ + [ + 95, 8, 182, 234, 116, 76, 223, 240, 103, 146, 57, 57, 56, 106, 176, 215, 49, 209, 32, + 158, 35, 28, 130, 7, 201, 178, 230, 212, 200, 223, 206, 62, + ], + [ + 239, 66, 31, 68, 227, 197, 138, 254, 87, 118, 79, 186, 88, 181, 83, 240, 159, 11, 15, + 255, 84, 228, 69, 3, 205, 39, 11, 178, 223, 249, 193, 56, + ], + [ + 159, 153, 62, 236, 201, 9, 233, 213, 145, 93, 104, 128, 1, 156, 105, 1, 141, 33, 122, + 15, 197, 68, 57, 25, 48, 67, 17, 219, 227, 252, 72, 62, + ], + [ + 73, 22, 127, 172, 163, 146, 170, 68, 75, 175, 220, 162, 160, 27, 99, 36, 24, 11, 219, + 20, 38, 174, 178, 85, 133, 51, 30, 87, 210, 46, 109, 49, + ], + [ + 37, 59, 243, 109, 246, 173, 114, 98, 148, 92, 118, 145, 45, 46, 163, 208, 44, 248, 6, + 192, 35, 46, 20, 0, 78, 120, 119, 214, 200, 148, 11, 45, + ], + [ + 142, 201, 84, 209, 45, 193, 134, 251, 249, 3, 16, 208, 69, 91, 69, 255, 76, 221, 82, + 169, 30, 218, 46, 183, 12, 35, 214, 84, 23, 245, 74, 34, + ], + [ + 169, 46, 120, 5, 117, 166, 109, 155, 218, 69, 132, 230, 139, 49, 118, 147, 121, 143, + 14, 200, 114, 128, 170, 214, 123, 83, 79, 227, 170, 87, 149, 60, + ], + [ + 63, 140, 50, 114, 17, 41, 117, 40, 247, 224, 249, 168, 254, 222, 74, 122, 134, 252, 35, + 27, 213, 180, 92, 240, 255, 145, 13, 103, 152, 170, 236, 50, + ], + ], + [ + [ + 215, 154, 109, 148, 179, 184, 4, 246, 126, 31, 67, 190, 52, 170, 95, 63, 21, 74, 205, + 159, 226, 106, 95, 251, 151, 33, 95, 9, 8, 51, 54, 16, + ], + [ + 125, 211, 129, 224, 62, 115, 145, 137, 123, 63, 37, 176, 121, 83, 200, 198, 200, 63, + 199, 7, 111, 61, 16, 189, 147, 128, 57, 111, 140, 117, 192, 13, + ], + [ + 62, 162, 174, 44, 90, 198, 105, 23, 32, 95, 170, 43, 95, 202, 41, 143, 5, 120, 103, + 243, 69, 109, 70, 226, 206, 144, 32, 187, 168, 156, 74, 2, + ], + [ + 74, 155, 142, 102, 116, 7, 191, 222, 129, 124, 146, 194, 182, 170, 38, 29, 14, 163, + 145, 158, 214, 61, 192, 123, 190, 109, 174, 52, 88, 52, 154, 21, + ], + [ + 210, 110, 65, 168, 192, 245, 112, 81, 43, 66, 225, 107, 42, 112, 186, 67, 146, 66, 69, + 141, 69, 125, 61, 226, 103, 26, 102, 60, 12, 207, 245, 34, + ], + [ + 0, 109, 234, 239, 154, 137, 77, 134, 209, 28, 113, 244, 198, 228, 214, 139, 52, 33, 86, + 69, 51, 218, 213, 211, 31, 28, 195, 77, 222, 90, 231, 0, + ], + [ + 62, 169, 126, 192, 19, 148, 244, 128, 245, 147, 155, 85, 225, 132, 157, 156, 111, 26, + 103, 87, 100, 195, 177, 53, 58, 124, 93, 38, 187, 56, 176, 59, + ], + [ + 224, 216, 241, 35, 55, 36, 233, 159, 110, 128, 30, 204, 91, 50, 227, 153, 76, 84, 209, + 62, 140, 19, 74, 222, 67, 215, 86, 219, 28, 6, 127, 26, + ], + ], + [ + [ + 196, 239, 163, 163, 226, 62, 34, 86, 120, 237, 194, 94, 87, 123, 11, 194, 71, 232, 84, + 212, 162, 54, 89, 87, 229, 244, 147, 80, 81, 231, 144, 59, + ], + [ + 3, 183, 214, 69, 55, 0, 243, 100, 210, 173, 147, 22, 164, 222, 22, 236, 41, 16, 23, + 212, 64, 207, 16, 104, 62, 156, 117, 194, 143, 252, 114, 30, + ], + [ + 83, 242, 71, 100, 1, 160, 144, 96, 22, 203, 210, 122, 123, 222, 221, 58, 212, 89, 96, + 210, 172, 144, 144, 217, 3, 21, 57, 248, 252, 36, 168, 45, + ], + [ + 162, 85, 218, 40, 224, 40, 96, 145, 190, 124, 73, 217, 211, 89, 160, 248, 157, 203, + 174, 61, 201, 102, 43, 232, 246, 173, 125, 249, 96, 147, 84, 28, + ], + [ + 127, 164, 182, 128, 219, 61, 29, 77, 246, 20, 106, 153, 148, 217, 135, 214, 48, 10, + 100, 82, 166, 117, 154, 82, 30, 129, 66, 224, 97, 15, 108, 42, + ], + [ + 44, 25, 145, 64, 165, 137, 106, 115, 213, 161, 96, 217, 45, 60, 88, 226, 124, 219, 43, + 200, 254, 197, 37, 111, 72, 159, 204, 121, 132, 253, 215, 63, + ], + [ + 130, 113, 153, 54, 123, 127, 228, 89, 131, 168, 79, 57, 6, 226, 59, 134, 92, 149, 83, + 208, 71, 194, 150, 140, 231, 16, 60, 214, 214, 93, 159, 34, + ], + [ + 198, 56, 77, 220, 125, 205, 170, 180, 213, 78, 72, 22, 51, 57, 27, 7, 9, 212, 232, 210, + 105, 136, 110, 193, 162, 159, 52, 143, 41, 167, 211, 29, + ], + ], + [ + [ + 160, 165, 254, 36, 87, 6, 88, 21, 72, 216, 230, 247, 2, 55, 242, 73, 36, 213, 230, 8, + 90, 80, 77, 158, 60, 59, 121, 94, 59, 96, 94, 21, + ], + [ + 45, 176, 13, 86, 112, 155, 195, 206, 252, 211, 160, 213, 218, 77, 219, 237, 222, 47, + 75, 7, 27, 201, 208, 42, 78, 5, 247, 152, 111, 163, 28, 19, + ], + [ + 199, 71, 216, 75, 50, 105, 91, 201, 53, 124, 235, 0, 108, 165, 181, 70, 42, 153, 163, + 201, 11, 54, 41, 233, 146, 38, 184, 139, 125, 91, 209, 10, + ], + [ + 86, 137, 234, 158, 219, 91, 233, 65, 189, 187, 15, 107, 19, 111, 12, 249, 160, 129, + 246, 146, 62, 110, 87, 239, 99, 96, 143, 149, 115, 75, 64, 52, + ], + [ + 98, 114, 143, 6, 251, 147, 133, 224, 83, 35, 220, 23, 118, 87, 253, 157, 125, 207, 180, + 57, 5, 127, 14, 24, 191, 18, 189, 133, 24, 63, 98, 21, + ], + [ + 7, 253, 227, 108, 211, 101, 224, 147, 234, 204, 96, 88, 155, 213, 73, 12, 78, 63, 195, + 95, 231, 53, 32, 242, 35, 185, 9, 226, 163, 182, 106, 3, + ], + [ + 25, 246, 155, 59, 73, 164, 80, 198, 181, 76, 138, 14, 37, 122, 78, 226, 38, 183, 227, + 225, 221, 67, 143, 190, 95, 113, 73, 57, 112, 85, 221, 21, + ], + [ + 149, 94, 77, 90, 128, 207, 67, 153, 17, 196, 236, 238, 199, 44, 10, 245, 147, 164, 221, + 226, 230, 123, 118, 33, 85, 34, 246, 225, 65, 251, 160, 26, + ], + ], + [ + [ + 198, 30, 82, 10, 148, 182, 240, 154, 54, 243, 247, 229, 181, 129, 228, 22, 161, 215, + 77, 251, 121, 190, 107, 85, 56, 41, 194, 91, 243, 88, 14, 58, + ], + [ + 202, 246, 182, 231, 195, 153, 88, 238, 60, 84, 67, 178, 248, 59, 105, 49, 195, 130, + 228, 104, 204, 136, 202, 84, 168, 146, 5, 208, 62, 85, 25, 17, + ], + [ + 119, 64, 199, 157, 4, 43, 91, 198, 55, 245, 237, 178, 21, 83, 35, 100, 246, 74, 152, + 132, 234, 245, 211, 248, 224, 198, 126, 176, 196, 121, 100, 50, + ], + [ + 101, 85, 104, 70, 109, 112, 93, 153, 253, 233, 162, 249, 142, 220, 208, 19, 165, 218, + 66, 255, 125, 124, 227, 42, 223, 153, 75, 69, 155, 156, 31, 57, + ], + [ + 63, 55, 139, 112, 194, 107, 121, 53, 129, 202, 204, 46, 248, 109, 34, 241, 53, 227, + 206, 243, 178, 228, 215, 86, 153, 195, 47, 114, 97, 169, 5, 27, + ], + [ + 53, 75, 214, 129, 18, 225, 191, 83, 159, 41, 109, 40, 176, 57, 43, 164, 161, 185, 225, + 136, 251, 243, 193, 42, 95, 115, 32, 171, 12, 213, 167, 3, + ], + [ + 235, 36, 235, 197, 64, 34, 134, 89, 21, 195, 40, 218, 162, 235, 91, 98, 189, 163, 189, + 186, 29, 184, 247, 93, 83, 134, 190, 214, 231, 255, 49, 5, + ], + [ + 36, 53, 226, 5, 178, 106, 251, 156, 151, 206, 13, 255, 45, 147, 244, 47, 145, 220, 199, + 136, 195, 250, 170, 26, 117, 196, 227, 93, 178, 18, 178, 54, + ], + ], + [ + [ + 91, 68, 35, 111, 130, 120, 151, 184, 175, 224, 185, 116, 137, 151, 158, 155, 189, 79, + 221, 201, 73, 145, 154, 99, 84, 54, 37, 92, 60, 129, 214, 44, + ], + [ + 231, 28, 49, 225, 237, 154, 194, 248, 14, 192, 101, 134, 78, 32, 217, 133, 35, 203, + 126, 217, 65, 210, 226, 254, 67, 48, 218, 213, 163, 219, 160, 50, + ], + [ + 195, 124, 201, 154, 77, 19, 27, 255, 51, 178, 233, 32, 112, 70, 138, 116, 23, 99, 22, + 170, 23, 205, 137, 213, 91, 207, 198, 118, 66, 21, 222, 50, + ], + [ + 149, 89, 237, 156, 70, 100, 84, 58, 87, 158, 41, 169, 249, 94, 134, 84, 109, 110, 191, + 60, 29, 237, 6, 215, 116, 124, 158, 30, 58, 205, 244, 17, + ], + [ + 80, 179, 104, 84, 95, 131, 131, 215, 129, 166, 153, 81, 167, 251, 66, 242, 254, 45, + 100, 1, 161, 77, 234, 73, 72, 85, 152, 84, 251, 23, 114, 26, + ], + [ + 122, 218, 71, 58, 4, 142, 173, 59, 70, 145, 210, 95, 79, 43, 69, 197, 200, 23, 165, + 251, 43, 41, 216, 32, 187, 240, 177, 81, 137, 144, 198, 61, + ], + [ + 40, 250, 126, 111, 65, 53, 57, 76, 207, 56, 219, 216, 128, 31, 63, 72, 34, 174, 157, + 129, 159, 143, 16, 42, 162, 60, 231, 208, 218, 112, 16, 63, + ], + [ + 203, 16, 248, 1, 77, 5, 210, 197, 69, 134, 121, 102, 244, 42, 182, 244, 143, 71, 179, + 152, 34, 139, 52, 89, 180, 232, 152, 56, 149, 0, 97, 37, + ], + ], + [ + [ + 5, 89, 207, 4, 33, 94, 36, 209, 180, 97, 214, 235, 236, 90, 149, 192, 144, 15, 127, + 233, 150, 20, 79, 10, 72, 207, 61, 43, 159, 78, 107, 53, + ], + [ + 79, 186, 12, 1, 247, 170, 13, 98, 141, 222, 29, 5, 91, 198, 14, 85, 242, 207, 252, 151, + 191, 37, 3, 221, 27, 83, 31, 250, 45, 99, 122, 16, + ], + [ + 137, 124, 62, 217, 230, 197, 251, 81, 224, 75, 111, 172, 69, 51, 172, 138, 87, 147, 33, + 128, 200, 169, 159, 176, 204, 10, 225, 2, 139, 30, 160, 49, + ], + [ + 102, 7, 138, 62, 135, 48, 100, 156, 184, 139, 98, 191, 161, 89, 48, 104, 32, 241, 60, + 135, 3, 71, 117, 99, 5, 215, 250, 18, 212, 34, 64, 20, + ], + [ + 197, 161, 228, 116, 31, 179, 142, 77, 140, 217, 94, 108, 137, 35, 39, 126, 84, 201, 71, + 58, 10, 52, 7, 184, 156, 65, 185, 188, 182, 98, 65, 43, + ], + [ + 207, 153, 115, 73, 75, 200, 35, 16, 32, 82, 68, 212, 14, 206, 254, 63, 56, 140, 59, + 185, 68, 204, 73, 67, 27, 95, 207, 228, 74, 72, 18, 2, + ], + [ + 185, 232, 177, 216, 67, 26, 72, 76, 157, 100, 17, 181, 161, 81, 150, 245, 177, 250, 28, + 58, 130, 154, 25, 212, 136, 67, 140, 88, 161, 41, 232, 7, + ], + [ + 81, 249, 170, 40, 188, 151, 82, 232, 199, 203, 11, 66, 67, 143, 120, 54, 251, 4, 180, + 183, 125, 142, 17, 249, 162, 6, 177, 157, 59, 88, 176, 60, + ], + ], + [ + [ + 5, 39, 116, 70, 87, 101, 17, 78, 253, 249, 241, 133, 179, 20, 136, 35, 91, 141, 137, + 92, 41, 59, 37, 107, 234, 106, 220, 49, 41, 20, 228, 50, + ], + [ + 239, 224, 34, 219, 49, 32, 61, 153, 160, 42, 234, 0, 74, 179, 81, 112, 224, 236, 181, + 23, 23, 195, 36, 114, 166, 23, 23, 86, 131, 165, 107, 5, + ], + [ + 157, 92, 182, 140, 251, 56, 162, 62, 72, 102, 59, 203, 169, 127, 177, 139, 173, 223, + 193, 220, 173, 108, 133, 146, 220, 50, 125, 176, 182, 249, 232, 4, + ], + [ + 63, 192, 18, 230, 178, 221, 22, 4, 11, 89, 10, 235, 5, 15, 142, 128, 116, 213, 251, 13, + 33, 120, 164, 251, 113, 177, 195, 141, 146, 137, 224, 10, + ], + [ + 146, 171, 247, 18, 200, 10, 47, 184, 29, 129, 50, 237, 55, 8, 93, 157, 184, 118, 158, + 97, 116, 202, 135, 240, 162, 226, 131, 135, 146, 30, 31, 55, + ], + [ + 240, 233, 41, 237, 47, 32, 136, 122, 213, 32, 160, 3, 47, 216, 193, 98, 240, 97, 202, + 50, 205, 150, 40, 36, 87, 8, 132, 22, 53, 105, 118, 49, + ], + [ + 58, 230, 109, 52, 109, 115, 162, 116, 80, 181, 12, 159, 59, 246, 184, 98, 98, 100, 163, + 231, 95, 152, 12, 195, 216, 26, 110, 75, 162, 52, 155, 36, + ], + [ + 1, 160, 91, 80, 221, 176, 161, 223, 120, 239, 80, 39, 92, 193, 131, 72, 216, 141, 107, + 157, 188, 163, 246, 59, 97, 109, 38, 108, 175, 125, 229, 25, + ], + ], + [ + [ + 46, 149, 1, 150, 69, 179, 76, 218, 4, 111, 196, 93, 98, 116, 217, 54, 62, 78, 228, 34, + 223, 95, 111, 200, 16, 142, 189, 142, 54, 126, 218, 4, + ], + [ + 251, 202, 109, 62, 44, 11, 142, 106, 121, 128, 123, 3, 9, 30, 36, 167, 102, 117, 14, + 76, 11, 184, 80, 177, 118, 164, 162, 108, 33, 215, 19, 25, + ], + [ + 198, 206, 168, 7, 85, 212, 232, 75, 69, 188, 47, 243, 205, 196, 159, 134, 115, 51, 173, + 117, 92, 119, 112, 120, 247, 137, 248, 56, 24, 89, 164, 58, + ], + [ + 10, 143, 238, 110, 161, 146, 112, 53, 117, 115, 105, 110, 154, 126, 142, 110, 236, 6, + 24, 240, 220, 69, 251, 167, 134, 148, 63, 30, 137, 42, 107, 5, + ], + [ + 143, 210, 102, 57, 97, 48, 92, 46, 119, 14, 133, 224, 196, 245, 141, 4, 132, 34, 58, 8, + 68, 179, 49, 1, 109, 89, 134, 116, 7, 181, 84, 44, + ], + [ + 154, 170, 62, 94, 138, 234, 199, 118, 107, 57, 142, 126, 220, 120, 9, 134, 2, 37, 17, + 163, 72, 232, 113, 113, 29, 210, 2, 39, 104, 121, 17, 22, + ], + [ + 50, 131, 237, 169, 131, 43, 30, 246, 70, 95, 0, 147, 100, 233, 236, 114, 161, 10, 83, + 70, 68, 14, 36, 144, 2, 37, 135, 16, 147, 70, 231, 2, + ], + [ + 141, 174, 115, 187, 181, 226, 19, 76, 147, 156, 204, 125, 181, 255, 94, 24, 99, 152, + 170, 194, 18, 9, 52, 211, 183, 62, 3, 121, 150, 15, 160, 26, + ], + ], + [ + [ + 10, 39, 254, 165, 143, 140, 105, 76, 102, 131, 235, 58, 71, 161, 130, 71, 222, 115, 68, + 185, 196, 102, 223, 155, 199, 84, 188, 119, 208, 10, 24, 3, + ], + [ + 251, 47, 0, 26, 188, 43, 51, 170, 4, 147, 19, 172, 125, 166, 44, 76, 174, 27, 174, 68, + 192, 97, 20, 120, 89, 203, 21, 165, 193, 221, 112, 19, + ], + [ + 103, 90, 73, 145, 111, 139, 91, 135, 197, 12, 29, 183, 228, 247, 237, 160, 61, 197, + 123, 235, 42, 8, 238, 111, 114, 33, 99, 55, 90, 181, 9, 59, + ], + [ + 136, 249, 201, 5, 56, 155, 117, 156, 164, 153, 151, 157, 204, 1, 122, 15, 169, 219, + 108, 95, 137, 140, 225, 50, 8, 254, 128, 176, 245, 148, 231, 47, + ], + [ + 185, 227, 120, 188, 133, 61, 3, 169, 174, 45, 248, 48, 52, 20, 250, 157, 124, 212, 209, + 192, 13, 22, 22, 102, 11, 236, 194, 236, 0, 22, 55, 44, + ], + [ + 172, 216, 57, 7, 93, 154, 231, 155, 201, 255, 159, 145, 116, 135, 127, 173, 185, 188, + 237, 178, 10, 184, 107, 170, 165, 137, 247, 107, 147, 237, 232, 3, + ], + [ + 94, 197, 39, 16, 162, 134, 70, 119, 155, 56, 251, 82, 45, 190, 106, 99, 114, 38, 217, + 242, 188, 178, 248, 123, 15, 14, 239, 147, 109, 15, 127, 16, + ], + [ + 152, 158, 191, 195, 22, 237, 186, 168, 85, 70, 228, 13, 111, 109, 5, 52, 154, 109, 80, + 252, 147, 178, 64, 196, 184, 138, 225, 26, 247, 183, 189, 9, + ], + ], + [ + [ + 153, 70, 167, 177, 229, 151, 123, 186, 51, 190, 231, 196, 226, 132, 37, 12, 27, 171, + 67, 175, 188, 253, 127, 246, 196, 250, 200, 188, 89, 51, 90, 35, + ], + [ + 7, 47, 63, 135, 76, 144, 203, 18, 252, 212, 29, 27, 170, 100, 14, 233, 90, 100, 182, + 36, 77, 55, 117, 100, 149, 210, 106, 18, 54, 194, 40, 45, + ], + [ + 145, 138, 183, 17, 90, 5, 158, 103, 234, 188, 115, 38, 10, 195, 12, 19, 111, 232, 36, + 96, 216, 151, 218, 196, 23, 234, 114, 63, 112, 245, 52, 17, + ], + [ + 188, 191, 226, 36, 30, 19, 172, 66, 73, 35, 237, 184, 220, 146, 166, 50, 67, 252, 228, + 206, 137, 25, 124, 209, 115, 233, 176, 38, 97, 194, 168, 55, + ], + [ + 156, 84, 233, 11, 139, 39, 117, 26, 180, 77, 208, 247, 156, 213, 39, 71, 105, 47, 14, + 93, 84, 220, 66, 221, 67, 31, 239, 193, 137, 75, 98, 4, + ], + [ + 19, 1, 39, 184, 88, 13, 233, 13, 98, 92, 56, 181, 205, 181, 92, 50, 63, 164, 56, 233, + 101, 251, 60, 126, 212, 238, 191, 231, 248, 115, 174, 31, + ], + [ + 45, 142, 9, 191, 151, 248, 78, 181, 181, 4, 226, 246, 186, 243, 96, 205, 28, 234, 235, + 103, 49, 205, 114, 132, 136, 106, 50, 51, 220, 56, 185, 54, + ], + [ + 230, 1, 231, 54, 221, 188, 3, 230, 233, 72, 235, 37, 100, 117, 179, 200, 146, 196, 117, + 150, 221, 59, 169, 110, 142, 254, 169, 129, 192, 210, 124, 2, + ], + ], + [ + [ + 113, 127, 193, 36, 33, 98, 37, 229, 172, 76, 71, 176, 107, 47, 84, 130, 144, 108, 249, + 204, 247, 50, 143, 242, 185, 160, 207, 41, 83, 184, 30, 1, + ], + [ + 60, 188, 219, 67, 6, 66, 64, 62, 105, 32, 121, 184, 30, 137, 100, 255, 176, 188, 74, + 132, 73, 99, 168, 95, 30, 231, 55, 219, 80, 28, 236, 57, + ], + [ + 162, 221, 96, 144, 26, 59, 193, 103, 61, 148, 12, 148, 65, 41, 57, 22, 198, 112, 0, 25, + 116, 202, 173, 254, 225, 89, 14, 113, 132, 126, 173, 25, + ], + [ + 211, 146, 138, 171, 246, 25, 51, 48, 83, 26, 132, 149, 160, 115, 242, 27, 161, 12, 76, + 130, 46, 16, 213, 54, 134, 95, 115, 43, 91, 197, 223, 46, + ], + [ + 164, 147, 245, 58, 228, 119, 37, 72, 47, 194, 171, 113, 130, 106, 53, 214, 61, 56, 100, + 200, 159, 224, 18, 246, 94, 215, 48, 69, 190, 169, 51, 42, + ], + [ + 132, 253, 120, 207, 143, 101, 57, 58, 167, 185, 23, 252, 157, 221, 248, 157, 46, 68, + 122, 151, 192, 184, 194, 142, 98, 70, 189, 107, 61, 76, 149, 61, + ], + [ + 227, 38, 171, 227, 71, 147, 6, 219, 173, 77, 149, 187, 130, 150, 56, 156, 189, 132, 44, + 201, 189, 2, 133, 21, 174, 175, 141, 89, 76, 98, 35, 39, + ], + [ + 112, 33, 226, 167, 129, 192, 243, 199, 106, 110, 29, 184, 195, 62, 72, 51, 203, 147, + 66, 200, 234, 235, 45, 248, 118, 78, 37, 131, 2, 115, 240, 35, + ], + ], + [ + [ + 29, 94, 98, 16, 75, 79, 201, 48, 252, 129, 82, 87, 55, 155, 214, 178, 0, 13, 80, 120, + 252, 26, 199, 98, 112, 117, 251, 132, 9, 222, 88, 1, + ], + [ + 183, 159, 59, 28, 80, 19, 246, 226, 204, 42, 87, 98, 227, 225, 239, 180, 98, 43, 241, + 205, 139, 238, 215, 120, 185, 226, 163, 198, 184, 182, 245, 34, + ], + [ + 197, 11, 112, 174, 119, 138, 42, 144, 151, 132, 47, 51, 241, 212, 173, 241, 153, 176, + 171, 224, 252, 197, 125, 153, 40, 30, 3, 243, 250, 146, 89, 33, + ], + [ + 229, 206, 81, 251, 52, 183, 144, 121, 141, 120, 80, 108, 133, 246, 20, 114, 51, 177, + 66, 218, 113, 1, 198, 68, 86, 224, 175, 59, 85, 237, 146, 25, + ], + [ + 199, 176, 127, 191, 59, 34, 251, 44, 251, 172, 34, 15, 151, 54, 230, 62, 38, 208, 221, + 40, 244, 213, 69, 138, 161, 105, 65, 136, 129, 153, 158, 14, + ], + [ + 82, 194, 114, 87, 225, 102, 24, 119, 238, 85, 93, 21, 89, 149, 104, 144, 151, 19, 52, + 96, 84, 71, 69, 160, 87, 245, 239, 208, 59, 88, 92, 19, + ], + [ + 182, 89, 228, 186, 60, 45, 23, 77, 190, 131, 89, 134, 109, 200, 222, 153, 254, 217, + 191, 37, 100, 96, 85, 165, 64, 182, 141, 244, 208, 85, 89, 42, + ], + [ + 193, 216, 142, 50, 41, 162, 188, 146, 206, 33, 83, 35, 144, 127, 148, 243, 129, 98, + 209, 161, 59, 180, 96, 133, 225, 53, 12, 187, 177, 207, 80, 34, + ], + ], + [ + [ + 147, 41, 219, 169, 88, 177, 67, 111, 1, 56, 197, 17, 47, 232, 125, 5, 29, 159, 89, 40, + 154, 98, 87, 141, 85, 150, 231, 16, 222, 124, 173, 37, + ], + [ + 202, 211, 119, 159, 104, 213, 253, 76, 62, 219, 254, 66, 220, 221, 192, 56, 122, 124, + 42, 139, 242, 215, 178, 229, 246, 79, 21, 121, 31, 183, 27, 48, + ], + [ + 126, 218, 96, 65, 191, 72, 25, 144, 186, 197, 91, 220, 79, 245, 85, 156, 37, 197, 30, + 94, 10, 170, 200, 6, 38, 97, 135, 84, 253, 214, 251, 14, + ], + [ + 48, 6, 251, 73, 216, 94, 185, 113, 9, 130, 250, 198, 78, 214, 160, 76, 245, 192, 171, + 66, 30, 225, 79, 58, 153, 29, 135, 234, 76, 130, 57, 3, + ], + [ + 178, 120, 202, 176, 134, 4, 205, 224, 149, 195, 40, 140, 155, 181, 194, 86, 200, 34, + 38, 203, 133, 233, 248, 87, 190, 214, 183, 33, 226, 170, 80, 35, + ], + [ + 19, 135, 66, 237, 59, 74, 11, 20, 115, 128, 39, 102, 218, 68, 225, 172, 232, 233, 63, + 231, 110, 210, 108, 51, 25, 43, 231, 125, 230, 47, 145, 32, + ], + [ + 236, 165, 166, 249, 54, 207, 68, 121, 176, 134, 177, 143, 7, 104, 156, 1, 57, 62, 158, + 204, 51, 205, 187, 225, 56, 95, 255, 145, 207, 19, 137, 25, + ], + [ + 193, 100, 46, 208, 77, 17, 64, 1, 103, 156, 154, 222, 122, 153, 178, 11, 101, 138, 156, + 74, 247, 158, 1, 74, 139, 90, 207, 2, 47, 131, 87, 29, + ], + ], + [ + [ + 9, 151, 216, 97, 151, 239, 26, 211, 241, 12, 192, 250, 40, 134, 192, 184, 76, 241, 13, + 93, 189, 139, 9, 63, 165, 232, 209, 97, 134, 128, 47, 25, + ], + [ + 6, 215, 38, 225, 140, 33, 72, 85, 69, 32, 15, 206, 114, 187, 55, 198, 11, 4, 119, 45, + 48, 105, 157, 118, 14, 168, 134, 79, 202, 86, 107, 54, + ], + [ + 155, 143, 59, 197, 19, 114, 1, 51, 150, 66, 32, 45, 71, 46, 23, 139, 173, 182, 83, 56, + 51, 209, 56, 207, 199, 111, 208, 234, 115, 93, 56, 6, + ], + [ + 69, 81, 31, 176, 185, 244, 148, 134, 139, 89, 254, 245, 123, 72, 132, 8, 143, 17, 136, + 40, 232, 236, 23, 16, 49, 201, 214, 155, 143, 214, 68, 46, + ], + [ + 103, 7, 147, 218, 180, 175, 110, 155, 209, 66, 81, 13, 47, 84, 202, 205, 59, 40, 230, + 40, 60, 237, 124, 116, 178, 122, 45, 76, 26, 168, 166, 4, + ], + [ + 252, 98, 53, 28, 192, 10, 195, 191, 117, 188, 21, 45, 1, 14, 222, 141, 58, 57, 250, + 153, 163, 4, 227, 41, 61, 128, 72, 245, 187, 192, 246, 59, + ], + [ + 226, 85, 143, 113, 156, 101, 10, 58, 234, 10, 73, 60, 40, 247, 222, 193, 27, 221, 7, + 61, 57, 100, 158, 132, 84, 101, 53, 162, 83, 170, 215, 49, + ], + [ + 129, 32, 252, 254, 63, 237, 242, 129, 12, 162, 24, 70, 1, 58, 54, 56, 170, 225, 83, + 125, 77, 125, 105, 162, 239, 120, 30, 118, 26, 46, 45, 21, + ], + ], + [ + [ + 83, 141, 231, 4, 150, 71, 0, 103, 215, 244, 1, 244, 23, 161, 130, 12, 169, 207, 32, 79, + 56, 140, 75, 104, 119, 157, 228, 240, 79, 73, 51, 59, + ], + [ + 234, 101, 136, 42, 80, 209, 52, 16, 174, 200, 12, 76, 182, 75, 79, 226, 173, 229, 58, + 57, 151, 88, 7, 252, 145, 51, 6, 142, 162, 20, 130, 29, + ], + [ + 129, 10, 76, 145, 229, 149, 209, 78, 93, 209, 163, 248, 222, 215, 207, 48, 177, 196, + 136, 196, 57, 240, 145, 134, 0, 59, 120, 123, 58, 72, 103, 34, + ], + [ + 159, 127, 28, 87, 113, 72, 104, 203, 67, 58, 211, 169, 138, 254, 31, 168, 1, 12, 221, + 178, 227, 218, 109, 93, 161, 116, 98, 24, 54, 136, 33, 11, + ], + [ + 173, 29, 146, 100, 140, 178, 50, 51, 128, 61, 123, 161, 60, 75, 103, 218, 56, 121, 24, + 43, 147, 99, 210, 193, 172, 188, 106, 182, 135, 222, 57, 20, + ], + [ + 166, 29, 73, 107, 24, 198, 36, 111, 3, 25, 183, 183, 143, 82, 96, 98, 203, 35, 146, 82, + 49, 121, 135, 63, 191, 33, 165, 223, 230, 26, 71, 51, + ], + [ + 140, 119, 109, 157, 12, 201, 64, 255, 148, 64, 154, 55, 156, 173, 187, 3, 77, 206, 106, + 33, 181, 22, 193, 88, 126, 68, 56, 236, 204, 241, 206, 59, + ], + [ + 223, 213, 234, 5, 113, 245, 89, 108, 98, 154, 67, 165, 131, 55, 1, 68, 214, 224, 106, + 243, 170, 193, 222, 162, 232, 153, 246, 35, 149, 43, 120, 5, + ], + ], + [ + [ + 90, 122, 239, 39, 194, 205, 160, 37, 139, 132, 43, 234, 78, 48, 93, 144, 182, 51, 6, + 196, 190, 232, 79, 172, 38, 94, 38, 172, 54, 233, 92, 49, + ], + [ + 158, 106, 252, 23, 153, 30, 201, 88, 50, 108, 217, 90, 33, 91, 67, 52, 33, 27, 134, 67, + 250, 80, 151, 7, 119, 5, 89, 110, 23, 214, 67, 17, + ], + [ + 223, 251, 16, 98, 252, 239, 182, 12, 255, 242, 67, 31, 99, 169, 10, 148, 70, 186, 236, + 158, 230, 79, 2, 61, 166, 121, 72, 159, 81, 207, 43, 10, + ], + [ + 88, 65, 196, 114, 188, 103, 151, 218, 161, 219, 137, 9, 51, 81, 215, 64, 102, 55, 235, + 96, 48, 54, 52, 217, 192, 125, 147, 89, 141, 194, 69, 14, + ], + [ + 146, 75, 25, 162, 47, 21, 77, 168, 14, 191, 35, 24, 27, 59, 14, 51, 198, 52, 130, 41, + 223, 79, 45, 216, 248, 178, 250, 45, 220, 124, 24, 56, + ], + [ + 141, 246, 176, 10, 226, 240, 16, 2, 3, 42, 222, 107, 203, 96, 22, 128, 170, 251, 19, + 224, 63, 228, 160, 116, 247, 60, 194, 164, 213, 90, 228, 41, + ], + [ + 193, 89, 149, 53, 35, 2, 173, 192, 228, 106, 131, 55, 10, 216, 235, 148, 81, 38, 218, + 206, 47, 201, 1, 76, 165, 237, 8, 181, 51, 182, 179, 44, + ], + [ + 208, 110, 172, 179, 135, 41, 146, 198, 71, 234, 170, 157, 98, 177, 254, 237, 235, 236, + 170, 248, 184, 158, 182, 109, 20, 53, 20, 230, 235, 161, 47, 58, + ], + ], + [ + [ + 173, 212, 202, 158, 121, 32, 179, 110, 216, 160, 75, 127, 248, 141, 186, 129, 102, 227, + 204, 97, 88, 186, 60, 229, 229, 253, 167, 213, 175, 226, 127, 47, + ], + [ + 150, 23, 120, 218, 29, 242, 9, 232, 28, 28, 210, 109, 85, 108, 243, 26, 30, 119, 124, + 117, 125, 222, 224, 22, 235, 55, 57, 228, 153, 209, 124, 48, + ], + [ + 167, 39, 173, 99, 186, 157, 146, 31, 20, 26, 63, 62, 185, 254, 57, 13, 117, 96, 73, 25, + 182, 97, 42, 160, 92, 242, 26, 54, 145, 29, 31, 29, + ], + [ + 27, 117, 138, 76, 21, 193, 135, 154, 46, 130, 187, 36, 2, 196, 200, 196, 114, 110, 210, + 92, 51, 12, 40, 19, 62, 34, 201, 44, 159, 3, 144, 4, + ], + [ + 210, 235, 204, 146, 85, 169, 236, 3, 193, 188, 201, 172, 79, 164, 148, 207, 40, 103, + 56, 206, 91, 104, 249, 17, 75, 159, 27, 103, 101, 72, 100, 37, + ], + [ + 129, 52, 24, 42, 26, 131, 207, 198, 211, 136, 212, 66, 40, 68, 181, 251, 95, 157, 84, + 218, 27, 199, 150, 194, 62, 78, 46, 197, 253, 50, 6, 16, + ], + [ + 218, 196, 228, 200, 220, 170, 106, 13, 0, 28, 246, 133, 25, 240, 21, 184, 58, 238, 128, + 219, 223, 224, 8, 226, 193, 129, 230, 131, 177, 116, 189, 3, + ], + [ + 184, 75, 112, 127, 251, 197, 87, 114, 3, 208, 126, 142, 219, 226, 17, 61, 237, 126, + 201, 155, 23, 146, 209, 142, 168, 108, 160, 39, 43, 57, 93, 40, + ], + ], + [ + [ + 95, 161, 42, 151, 11, 124, 239, 193, 114, 247, 72, 186, 128, 141, 47, 108, 197, 47, + 226, 180, 118, 22, 163, 147, 103, 103, 121, 44, 149, 7, 225, 52, + ], + [ + 197, 245, 125, 151, 243, 170, 39, 79, 128, 110, 215, 131, 244, 219, 188, 110, 33, 84, + 142, 213, 174, 251, 94, 60, 6, 133, 32, 235, 44, 57, 127, 13, + ], + [ + 252, 8, 154, 162, 113, 63, 242, 246, 220, 245, 78, 4, 239, 88, 232, 208, 96, 142, 94, + 85, 216, 210, 72, 102, 140, 127, 171, 225, 68, 126, 75, 24, + ], + [ + 86, 231, 20, 187, 67, 55, 132, 4, 133, 210, 120, 101, 238, 222, 7, 144, 48, 63, 42, + 118, 223, 206, 56, 246, 33, 231, 203, 252, 190, 167, 135, 6, + ], + [ + 94, 214, 184, 9, 110, 119, 88, 199, 41, 223, 151, 204, 14, 1, 22, 72, 205, 44, 201, + 199, 49, 104, 118, 205, 219, 194, 27, 249, 202, 206, 11, 38, + ], + [ + 238, 189, 11, 100, 86, 83, 110, 193, 217, 127, 43, 219, 33, 236, 60, 155, 46, 210, 95, + 165, 211, 55, 114, 120, 151, 4, 84, 199, 188, 80, 111, 24, + ], + [ + 75, 132, 96, 67, 196, 109, 201, 195, 202, 133, 205, 157, 180, 194, 218, 28, 161, 176, + 208, 36, 13, 53, 120, 238, 165, 67, 123, 43, 49, 230, 118, 16, + ], + [ + 216, 53, 14, 231, 149, 30, 238, 198, 91, 0, 75, 182, 248, 127, 51, 15, 249, 81, 128, + 49, 85, 26, 247, 233, 71, 61, 204, 240, 198, 44, 253, 4, + ], + ], + [ + [ + 117, 79, 104, 186, 22, 240, 96, 245, 133, 124, 14, 208, 175, 92, 38, 203, 96, 167, 168, + 74, 132, 255, 239, 51, 230, 9, 37, 100, 77, 221, 86, 56, + ], + [ + 124, 56, 154, 244, 207, 39, 218, 208, 77, 128, 167, 52, 127, 189, 228, 183, 179, 179, + 19, 142, 235, 99, 1, 109, 232, 184, 146, 75, 251, 180, 168, 34, + ], + [ + 38, 81, 241, 77, 207, 198, 52, 63, 104, 175, 182, 68, 16, 186, 231, 19, 112, 112, 137, + 169, 174, 109, 153, 170, 164, 156, 204, 14, 86, 138, 183, 10, + ], + [ + 224, 100, 144, 95, 68, 53, 51, 69, 233, 19, 14, 192, 229, 240, 1, 145, 122, 174, 244, + 98, 18, 76, 248, 132, 254, 161, 221, 175, 254, 139, 28, 44, + ], + [ + 106, 24, 183, 172, 72, 180, 89, 112, 169, 107, 39, 253, 193, 177, 132, 118, 27, 212, + 94, 108, 143, 97, 7, 222, 16, 135, 55, 59, 108, 184, 225, 39, + ], + [ + 185, 92, 139, 189, 50, 105, 41, 186, 189, 124, 23, 212, 220, 255, 191, 28, 156, 70, + 224, 206, 235, 149, 177, 221, 61, 166, 2, 189, 157, 71, 9, 10, + ], + [ + 46, 205, 220, 212, 230, 14, 222, 10, 86, 30, 250, 186, 42, 16, 214, 159, 31, 106, 154, + 168, 68, 126, 110, 221, 254, 185, 231, 235, 185, 145, 232, 50, + ], + [ + 158, 96, 218, 239, 191, 119, 59, 99, 248, 159, 160, 48, 59, 14, 160, 80, 7, 149, 110, + 144, 96, 78, 250, 254, 213, 73, 119, 133, 151, 128, 130, 57, + ], + ], + [ + [ + 55, 146, 3, 40, 40, 129, 157, 149, 185, 250, 175, 142, 28, 65, 11, 98, 180, 41, 163, + 240, 126, 177, 8, 171, 37, 81, 46, 151, 115, 201, 64, 4, + ], + [ + 33, 171, 216, 52, 120, 12, 136, 183, 174, 39, 212, 234, 107, 120, 254, 152, 217, 105, + 17, 158, 47, 221, 66, 80, 173, 143, 0, 245, 2, 54, 105, 20, + ], + [ + 165, 77, 224, 22, 86, 173, 23, 3, 158, 217, 230, 209, 104, 123, 51, 124, 229, 70, 86, + 113, 69, 124, 202, 89, 130, 165, 9, 143, 13, 117, 251, 41, + ], + [ + 150, 0, 141, 72, 1, 45, 247, 44, 239, 25, 127, 126, 167, 217, 60, 19, 87, 40, 41, 53, + 154, 65, 36, 62, 224, 245, 133, 23, 62, 113, 68, 10, + ], + [ + 240, 173, 98, 79, 231, 216, 199, 13, 115, 239, 49, 44, 70, 131, 132, 17, 181, 178, 255, + 187, 26, 212, 140, 247, 181, 66, 131, 122, 34, 232, 212, 51, + ], + [ + 128, 97, 150, 86, 107, 88, 9, 39, 221, 108, 40, 17, 141, 189, 176, 112, 245, 115, 102, + 222, 41, 103, 116, 83, 45, 41, 79, 189, 123, 128, 221, 28, + ], + [ + 124, 71, 144, 26, 166, 147, 228, 121, 160, 123, 202, 119, 231, 221, 98, 239, 232, 206, + 68, 253, 178, 155, 183, 151, 255, 14, 63, 178, 233, 48, 7, 45, + ], + [ + 247, 149, 217, 167, 89, 183, 230, 75, 8, 65, 241, 170, 95, 83, 4, 74, 30, 184, 105, + 224, 114, 65, 153, 101, 169, 46, 55, 94, 151, 150, 156, 62, + ], + ], + [ + [ + 224, 154, 142, 251, 230, 202, 38, 207, 234, 62, 53, 21, 186, 231, 57, 92, 134, 174, 48, + 226, 161, 198, 9, 186, 167, 197, 249, 112, 127, 236, 188, 40, + ], + [ + 71, 140, 229, 89, 155, 109, 149, 82, 250, 226, 71, 125, 62, 174, 128, 67, 205, 8, 237, + 7, 131, 223, 182, 207, 162, 132, 28, 3, 34, 239, 115, 1, + ], + [ + 2, 52, 130, 240, 234, 192, 5, 100, 224, 251, 234, 21, 75, 255, 150, 249, 123, 6, 111, + 69, 38, 123, 57, 240, 142, 106, 115, 11, 208, 182, 76, 1, + ], + [ + 195, 55, 130, 187, 251, 59, 51, 201, 72, 12, 61, 186, 107, 186, 8, 121, 240, 11, 205, + 41, 41, 96, 48, 97, 225, 55, 86, 127, 182, 47, 73, 26, + ], + [ + 252, 85, 10, 142, 41, 197, 192, 149, 233, 59, 135, 90, 245, 1, 2, 82, 149, 230, 105, + 50, 180, 40, 246, 255, 235, 38, 246, 220, 26, 71, 108, 58, + ], + [ + 45, 234, 112, 242, 241, 115, 242, 151, 74, 199, 165, 59, 232, 121, 140, 143, 72, 21, + 222, 198, 250, 27, 82, 71, 136, 229, 46, 114, 215, 58, 80, 59, + ], + [ + 76, 30, 114, 108, 66, 237, 123, 62, 251, 89, 191, 57, 10, 24, 103, 125, 62, 176, 243, + 156, 26, 71, 128, 100, 216, 96, 134, 238, 25, 255, 52, 18, + ], + [ + 121, 9, 205, 213, 115, 82, 104, 88, 4, 94, 64, 39, 52, 23, 184, 59, 249, 173, 51, 174, + 29, 29, 93, 209, 180, 25, 30, 248, 200, 217, 8, 57, + ], + ], + [ + [ + 29, 243, 202, 191, 232, 38, 147, 197, 36, 165, 153, 225, 248, 25, 108, 49, 193, 125, + 147, 152, 224, 204, 29, 99, 149, 18, 80, 202, 126, 240, 240, 44, + ], + [ + 251, 175, 93, 27, 1, 223, 152, 144, 40, 199, 0, 117, 26, 185, 199, 115, 43, 5, 28, 50, + 87, 195, 19, 177, 129, 150, 12, 27, 27, 106, 104, 1, + ], + [ + 229, 107, 241, 196, 196, 75, 154, 193, 28, 194, 91, 92, 211, 30, 203, 193, 132, 50, + 220, 88, 9, 89, 31, 83, 156, 14, 131, 253, 144, 77, 180, 21, + ], + [ + 254, 86, 225, 99, 239, 66, 104, 173, 130, 44, 9, 3, 102, 150, 131, 27, 222, 8, 11, 91, + 248, 133, 165, 168, 173, 243, 131, 231, 0, 73, 179, 7, + ], + [ + 188, 14, 111, 31, 108, 93, 253, 223, 11, 168, 85, 111, 196, 44, 54, 85, 185, 179, 22, + 134, 219, 228, 190, 119, 109, 175, 172, 63, 43, 197, 129, 28, + ], + [ + 100, 77, 224, 123, 66, 253, 55, 225, 81, 92, 1, 112, 220, 61, 123, 40, 141, 117, 186, + 45, 66, 37, 141, 226, 222, 227, 252, 18, 235, 1, 150, 55, + ], + [ + 21, 60, 39, 162, 247, 118, 245, 247, 37, 78, 193, 16, 37, 78, 38, 239, 102, 205, 145, + 92, 94, 149, 21, 90, 29, 2, 226, 14, 63, 94, 18, 55, + ], + [ + 32, 30, 94, 116, 13, 47, 190, 17, 138, 146, 169, 220, 7, 166, 141, 201, 122, 50, 211, + 216, 192, 170, 170, 171, 30, 44, 106, 143, 15, 47, 230, 25, + ], + ], + [ + [ + 77, 240, 65, 69, 55, 114, 61, 35, 5, 23, 224, 54, 74, 102, 26, 45, 204, 151, 93, 176, + 44, 214, 39, 238, 92, 55, 135, 235, 175, 159, 199, 5, + ], + [ + 122, 13, 98, 228, 133, 218, 65, 35, 16, 73, 59, 73, 0, 127, 167, 126, 175, 104, 228, + 96, 221, 56, 145, 137, 246, 33, 195, 5, 77, 54, 190, 9, + ], + [ + 174, 226, 237, 252, 72, 86, 217, 57, 42, 131, 198, 224, 42, 59, 77, 64, 103, 3, 231, + 53, 203, 219, 45, 142, 33, 249, 24, 163, 139, 52, 71, 22, + ], + [ + 165, 193, 99, 157, 238, 70, 47, 182, 129, 207, 77, 193, 167, 206, 41, 170, 8, 91, 51, + 163, 137, 67, 22, 73, 127, 207, 133, 240, 97, 233, 40, 62, + ], + [ + 68, 84, 199, 125, 172, 196, 145, 144, 127, 29, 232, 25, 215, 220, 132, 99, 86, 52, 46, + 227, 101, 72, 70, 193, 3, 12, 225, 172, 53, 10, 55, 1, + ], + [ + 3, 230, 66, 237, 23, 28, 118, 88, 23, 25, 96, 176, 203, 97, 140, 92, 216, 153, 34, 166, + 23, 137, 59, 172, 172, 144, 164, 12, 90, 33, 51, 50, + ], + [ + 208, 145, 77, 172, 10, 38, 208, 225, 138, 7, 140, 175, 49, 114, 231, 203, 45, 54, 2, + 248, 110, 69, 166, 65, 113, 253, 131, 119, 63, 153, 168, 8, + ], + [ + 64, 27, 162, 156, 179, 22, 43, 27, 133, 222, 33, 161, 107, 141, 133, 53, 253, 214, 128, + 156, 65, 14, 138, 233, 169, 145, 68, 139, 139, 152, 17, 21, + ], + ], + [ + [ + 60, 31, 22, 89, 116, 180, 216, 149, 0, 129, 148, 46, 128, 169, 173, 130, 198, 155, 20, + 77, 15, 33, 67, 126, 183, 233, 15, 232, 67, 208, 104, 2, + ], + [ + 155, 169, 114, 191, 1, 9, 32, 205, 125, 117, 59, 132, 211, 82, 6, 93, 8, 189, 13, 64, + 142, 81, 52, 199, 215, 64, 188, 226, 85, 66, 199, 4, + ], + [ + 135, 136, 62, 242, 84, 7, 79, 221, 122, 126, 6, 216, 66, 57, 49, 81, 215, 223, 105, + 207, 3, 255, 74, 17, 23, 227, 139, 51, 56, 70, 173, 59, + ], + [ + 180, 159, 125, 70, 170, 143, 19, 162, 132, 18, 31, 117, 102, 35, 244, 188, 51, 218, + 241, 248, 199, 96, 59, 221, 138, 234, 184, 20, 66, 172, 108, 63, + ], + [ + 64, 182, 108, 185, 163, 65, 242, 40, 229, 179, 230, 48, 115, 253, 64, 30, 243, 239, + 110, 178, 250, 53, 51, 179, 73, 51, 100, 19, 25, 117, 241, 22, + ], + [ + 231, 35, 183, 229, 255, 134, 248, 75, 161, 139, 166, 135, 137, 49, 205, 77, 3, 250, + 194, 31, 188, 120, 169, 46, 149, 249, 55, 90, 229, 74, 4, 49, + ], + [ + 24, 229, 105, 198, 193, 222, 104, 210, 123, 28, 79, 249, 84, 41, 18, 53, 10, 226, 217, + 78, 205, 25, 72, 174, 239, 206, 106, 238, 80, 64, 200, 22, + ], + [ + 222, 176, 15, 182, 226, 196, 43, 186, 234, 151, 194, 218, 55, 176, 128, 110, 23, 3, + 111, 85, 205, 226, 16, 195, 224, 5, 52, 202, 233, 194, 144, 32, + ], + ], + [ + [ + 65, 188, 25, 218, 142, 199, 65, 90, 223, 99, 127, 135, 228, 118, 83, 193, 167, 156, + 245, 70, 139, 254, 210, 121, 117, 108, 221, 63, 29, 183, 68, 23, + ], + [ + 45, 246, 56, 33, 68, 250, 251, 144, 133, 241, 149, 206, 109, 107, 232, 244, 134, 26, + 11, 23, 246, 208, 237, 5, 5, 70, 130, 91, 33, 64, 201, 53, + ], + [ + 202, 192, 115, 229, 84, 103, 107, 253, 178, 17, 39, 9, 36, 148, 157, 247, 239, 229, 28, + 93, 207, 6, 42, 165, 6, 122, 151, 176, 77, 47, 252, 7, + ], + [ + 207, 85, 81, 110, 169, 61, 244, 254, 205, 23, 156, 177, 253, 223, 114, 177, 39, 174, + 107, 106, 136, 3, 157, 197, 104, 218, 228, 151, 68, 138, 26, 52, + ], + [ + 50, 91, 21, 55, 91, 236, 143, 193, 156, 32, 162, 37, 68, 242, 34, 132, 56, 188, 117, + 252, 205, 61, 217, 205, 22, 224, 120, 2, 142, 91, 239, 7, + ], + [ + 98, 217, 244, 140, 150, 75, 199, 231, 239, 148, 141, 95, 83, 68, 152, 85, 142, 239, + 212, 124, 160, 95, 115, 128, 194, 250, 115, 140, 161, 21, 111, 40, + ], + [ + 103, 19, 40, 8, 83, 195, 218, 97, 78, 185, 136, 249, 38, 37, 51, 245, 34, 59, 230, 66, + 108, 128, 156, 149, 116, 19, 215, 251, 124, 252, 120, 31, + ], + [ + 220, 0, 174, 242, 25, 60, 52, 199, 2, 18, 234, 211, 205, 186, 197, 58, 213, 209, 37, + 91, 68, 41, 212, 206, 113, 9, 4, 54, 157, 125, 222, 22, + ], + ], + [ + [ + 60, 95, 106, 48, 229, 64, 114, 62, 218, 8, 178, 224, 211, 189, 87, 226, 33, 44, 116, + 179, 48, 119, 6, 223, 75, 208, 59, 198, 250, 3, 96, 17, + ], + [ + 95, 180, 11, 184, 37, 224, 28, 70, 179, 135, 225, 145, 85, 105, 148, 132, 31, 49, 15, + 181, 204, 100, 143, 221, 64, 231, 81, 201, 255, 93, 18, 46, + ], + [ + 163, 206, 214, 36, 248, 250, 138, 215, 102, 145, 187, 127, 207, 228, 179, 30, 237, 175, + 69, 58, 117, 224, 107, 128, 0, 10, 199, 204, 144, 221, 111, 21, + ], + [ + 65, 194, 195, 213, 229, 186, 100, 176, 8, 52, 52, 67, 60, 46, 97, 32, 154, 236, 10, 44, + 194, 188, 140, 207, 58, 214, 36, 231, 249, 44, 20, 55, + ], + [ + 21, 231, 150, 194, 145, 213, 144, 44, 76, 189, 202, 14, 62, 107, 105, 136, 153, 154, + 16, 176, 139, 115, 87, 62, 16, 249, 72, 237, 131, 75, 114, 59, + ], + [ + 221, 180, 148, 120, 116, 48, 217, 169, 177, 254, 80, 199, 131, 151, 79, 41, 76, 181, + 126, 86, 146, 180, 54, 66, 34, 169, 24, 95, 230, 127, 206, 42, + ], + [ + 153, 198, 204, 12, 57, 10, 116, 176, 197, 116, 227, 193, 115, 216, 137, 230, 206, 161, + 169, 203, 53, 115, 126, 94, 225, 40, 47, 121, 180, 193, 191, 14, + ], + [ + 132, 55, 75, 201, 131, 204, 219, 8, 118, 98, 65, 32, 145, 169, 179, 73, 224, 100, 168, + 94, 47, 22, 227, 203, 68, 128, 36, 32, 112, 241, 126, 41, + ], + ], + [ + [ + 185, 130, 202, 63, 39, 212, 225, 220, 185, 162, 38, 43, 70, 142, 46, 167, 158, 231, + 248, 162, 242, 228, 11, 205, 122, 190, 138, 146, 68, 200, 133, 25, + ], + [ + 213, 163, 16, 131, 225, 53, 231, 167, 142, 135, 65, 194, 29, 18, 178, 96, 58, 186, 75, + 238, 6, 177, 23, 109, 14, 47, 134, 55, 211, 252, 146, 24, + ], + [ + 9, 164, 244, 123, 78, 17, 135, 83, 123, 116, 140, 84, 200, 32, 129, 123, 112, 125, 127, + 102, 9, 77, 120, 106, 205, 83, 139, 201, 178, 212, 206, 52, + ], + [ + 2, 154, 191, 181, 97, 225, 10, 225, 173, 78, 34, 92, 171, 14, 150, 110, 158, 229, 90, + 223, 81, 134, 2, 162, 176, 233, 223, 254, 63, 229, 137, 6, + ], + [ + 58, 166, 77, 108, 142, 242, 100, 146, 162, 37, 77, 174, 129, 3, 223, 75, 28, 158, 118, + 86, 133, 195, 136, 246, 117, 173, 109, 37, 117, 87, 8, 48, + ], + [ + 89, 201, 176, 246, 163, 171, 140, 250, 101, 230, 141, 183, 75, 25, 28, 67, 247, 45, + 213, 84, 241, 33, 235, 165, 130, 125, 107, 163, 46, 28, 74, 13, + ], + [ + 102, 44, 233, 80, 122, 63, 170, 158, 150, 164, 86, 224, 152, 129, 198, 100, 247, 121, + 85, 67, 184, 35, 97, 152, 12, 86, 232, 241, 177, 38, 19, 16, + ], + [ + 128, 70, 1, 11, 18, 206, 21, 3, 196, 188, 66, 134, 153, 133, 140, 52, 70, 114, 252, 17, + 143, 212, 210, 62, 45, 114, 178, 57, 254, 119, 152, 62, + ], + ], + [ + [ + 86, 29, 41, 210, 20, 163, 246, 97, 255, 42, 82, 153, 58, 80, 69, 223, 114, 218, 207, + 112, 216, 174, 191, 209, 200, 188, 254, 134, 214, 30, 232, 13, + ], + [ + 146, 74, 34, 8, 35, 218, 132, 100, 104, 27, 60, 156, 232, 162, 104, 71, 255, 94, 4, + 125, 63, 59, 17, 91, 86, 65, 207, 33, 111, 195, 21, 61, + ], + [ + 83, 90, 45, 62, 199, 173, 172, 28, 233, 71, 22, 4, 87, 56, 218, 182, 125, 246, 86, 201, + 211, 184, 158, 40, 99, 41, 70, 52, 68, 70, 33, 11, + ], + [ + 160, 62, 174, 112, 183, 78, 236, 128, 32, 30, 87, 94, 5, 220, 26, 132, 201, 247, 134, + 39, 177, 19, 78, 198, 18, 118, 167, 237, 23, 1, 25, 47, + ], + [ + 181, 137, 97, 42, 173, 195, 208, 246, 200, 53, 2, 111, 52, 198, 106, 192, 198, 223, + 132, 39, 226, 208, 93, 252, 43, 174, 146, 151, 35, 70, 71, 17, + ], + [ + 185, 213, 47, 92, 58, 84, 148, 151, 165, 115, 236, 139, 63, 3, 108, 13, 100, 13, 73, + 104, 142, 21, 241, 166, 37, 188, 69, 96, 115, 201, 132, 37, + ], + [ + 227, 170, 112, 80, 230, 140, 124, 73, 86, 12, 122, 47, 236, 177, 87, 54, 38, 180, 198, + 34, 36, 211, 183, 241, 169, 23, 98, 119, 106, 231, 182, 46, + ], + [ + 211, 204, 104, 127, 81, 137, 162, 175, 132, 17, 114, 150, 104, 121, 23, 138, 87, 2, + 118, 223, 47, 149, 65, 61, 225, 158, 188, 62, 132, 24, 89, 1, + ], + ], + [ + [ + 61, 236, 235, 15, 173, 143, 20, 200, 109, 66, 144, 52, 144, 222, 213, 48, 46, 246, 142, + 179, 144, 182, 34, 247, 30, 74, 122, 105, 62, 148, 121, 55, + ], + [ + 138, 247, 228, 197, 108, 167, 21, 234, 145, 197, 219, 29, 69, 246, 61, 188, 46, 76, + 255, 106, 41, 192, 16, 159, 198, 14, 32, 15, 185, 106, 162, 61, + ], + [ + 221, 232, 255, 202, 222, 138, 118, 47, 195, 220, 232, 160, 178, 195, 18, 192, 134, 252, + 39, 157, 86, 11, 116, 44, 110, 103, 166, 191, 244, 217, 176, 62, + ], + [ + 103, 49, 138, 113, 133, 245, 37, 35, 191, 47, 54, 201, 112, 220, 191, 103, 254, 100, + 32, 246, 92, 171, 179, 209, 2, 98, 151, 243, 9, 160, 7, 17, + ], + [ + 194, 218, 101, 98, 161, 81, 251, 151, 95, 207, 172, 101, 69, 59, 19, 129, 145, 90, 58, + 131, 112, 62, 201, 181, 12, 218, 118, 57, 128, 243, 18, 61, + ], + [ + 136, 114, 9, 162, 245, 108, 250, 167, 107, 12, 53, 121, 162, 86, 72, 82, 193, 173, 193, + 3, 112, 153, 247, 130, 215, 3, 83, 160, 130, 183, 171, 36, + ], + [ + 72, 255, 40, 62, 196, 43, 119, 217, 123, 93, 7, 133, 137, 86, 165, 234, 226, 235, 82, + 36, 205, 38, 94, 234, 141, 70, 115, 139, 150, 35, 3, 15, + ], + [ + 137, 194, 240, 168, 61, 140, 100, 71, 151, 99, 232, 226, 1, 177, 155, 111, 105, 172, + 167, 186, 232, 216, 142, 252, 199, 238, 27, 190, 112, 115, 218, 15, + ], + ], + [ + [ + 210, 180, 82, 123, 75, 247, 236, 159, 89, 130, 67, 24, 48, 93, 251, 167, 49, 138, 99, + 231, 31, 23, 106, 47, 29, 153, 248, 255, 6, 64, 114, 37, + ], + [ + 213, 231, 86, 118, 67, 132, 251, 112, 123, 171, 149, 118, 232, 231, 88, 39, 110, 109, + 67, 159, 116, 246, 137, 172, 209, 103, 210, 207, 92, 19, 65, 11, + ], + [ + 159, 0, 20, 44, 28, 39, 141, 233, 233, 7, 150, 247, 77, 58, 84, 79, 162, 237, 150, 180, + 146, 15, 95, 110, 111, 147, 65, 35, 109, 145, 56, 3, + ], + [ + 8, 60, 212, 124, 61, 67, 66, 57, 221, 27, 31, 245, 118, 82, 175, 250, 190, 11, 19, 136, + 111, 10, 148, 232, 184, 161, 35, 134, 69, 73, 154, 17, + ], + [ + 145, 127, 187, 184, 48, 200, 18, 166, 176, 76, 149, 227, 216, 148, 148, 30, 55, 241, + 93, 246, 183, 184, 74, 100, 56, 253, 80, 102, 120, 224, 96, 52, + ], + [ + 198, 162, 119, 153, 73, 75, 95, 48, 9, 209, 11, 141, 127, 201, 187, 106, 244, 206, 122, + 104, 124, 120, 171, 12, 234, 209, 27, 130, 143, 214, 21, 55, + ], + [ + 187, 102, 233, 179, 50, 210, 197, 38, 215, 193, 25, 172, 131, 167, 24, 42, 181, 204, + 231, 27, 240, 186, 96, 154, 187, 91, 0, 202, 139, 153, 89, 22, + ], + [ + 139, 6, 212, 90, 73, 253, 231, 41, 155, 82, 25, 222, 118, 132, 114, 172, 73, 33, 16, + 106, 255, 202, 122, 2, 32, 23, 219, 145, 34, 3, 127, 17, + ], + ], + [ + [ + 15, 218, 1, 4, 47, 88, 165, 70, 251, 169, 133, 238, 213, 60, 36, 16, 38, 25, 239, 203, + 119, 241, 177, 190, 214, 205, 67, 143, 237, 93, 65, 12, + ], + [ + 139, 246, 38, 149, 143, 160, 39, 39, 68, 154, 125, 174, 15, 68, 25, 53, 134, 207, 82, + 209, 173, 211, 1, 232, 108, 205, 236, 153, 156, 188, 123, 49, + ], + [ + 166, 203, 125, 197, 10, 162, 54, 101, 73, 138, 132, 192, 94, 134, 184, 43, 163, 125, + 62, 136, 192, 111, 81, 244, 96, 91, 107, 230, 39, 174, 221, 50, + ], + [ + 203, 17, 199, 92, 248, 138, 46, 153, 243, 134, 224, 231, 126, 165, 12, 83, 132, 100, + 210, 177, 219, 175, 207, 80, 243, 78, 207, 168, 26, 150, 59, 16, + ], + [ + 210, 115, 149, 113, 141, 81, 10, 215, 232, 146, 149, 148, 242, 200, 224, 251, 2, 113, + 208, 123, 121, 60, 91, 36, 120, 173, 36, 166, 222, 85, 146, 17, + ], + [ + 15, 39, 251, 185, 192, 28, 201, 215, 69, 23, 154, 118, 71, 80, 71, 200, 44, 28, 159, + 144, 72, 122, 131, 183, 155, 235, 245, 162, 246, 224, 195, 30, + ], + [ + 192, 99, 56, 232, 172, 239, 89, 241, 68, 215, 74, 219, 17, 83, 149, 196, 212, 141, 89, + 77, 176, 112, 208, 14, 102, 155, 163, 223, 19, 237, 240, 11, + ], + [ + 11, 134, 188, 142, 141, 48, 24, 249, 107, 250, 136, 137, 50, 137, 122, 132, 89, 184, + 91, 134, 18, 58, 197, 81, 29, 107, 53, 52, 51, 190, 47, 41, + ], + ], + [ + [ + 216, 96, 15, 16, 34, 37, 7, 137, 147, 242, 29, 102, 222, 190, 103, 228, 196, 43, 184, + 68, 207, 200, 152, 23, 166, 13, 103, 72, 250, 77, 223, 19, + ], + [ + 17, 5, 52, 91, 113, 213, 231, 173, 71, 80, 14, 50, 250, 23, 255, 204, 19, 119, 18, 63, + 0, 183, 109, 238, 188, 128, 216, 227, 125, 77, 56, 39, + ], + [ + 137, 69, 254, 160, 111, 117, 176, 50, 113, 241, 185, 88, 252, 132, 100, 222, 204, 231, + 208, 220, 80, 201, 73, 143, 0, 36, 187, 40, 29, 227, 128, 15, + ], + [ + 85, 19, 126, 169, 120, 52, 94, 181, 83, 59, 160, 181, 85, 188, 159, 229, 226, 209, 209, + 144, 162, 129, 42, 221, 116, 26, 39, 226, 41, 116, 138, 37, + ], + [ + 136, 39, 38, 138, 243, 149, 227, 50, 119, 42, 102, 230, 95, 128, 172, 244, 44, 121, 53, + 67, 27, 74, 67, 37, 254, 30, 37, 122, 3, 93, 83, 5, + ], + [ + 18, 180, 139, 65, 80, 118, 148, 154, 67, 83, 242, 248, 63, 17, 141, 98, 105, 98, 77, + 39, 125, 125, 132, 187, 192, 110, 216, 193, 129, 161, 141, 26, + ], + [ + 12, 175, 122, 170, 199, 194, 225, 179, 142, 228, 183, 160, 252, 228, 14, 93, 28, 232, + 62, 123, 252, 13, 7, 73, 178, 111, 126, 69, 82, 83, 167, 56, + ], + [ + 34, 98, 50, 126, 175, 145, 47, 127, 51, 121, 100, 251, 5, 193, 176, 185, 129, 28, 77, + 14, 239, 31, 114, 104, 157, 135, 243, 15, 194, 186, 247, 47, + ], + ], + [ + [ + 234, 212, 198, 174, 82, 170, 174, 229, 248, 183, 186, 230, 189, 253, 193, 136, 113, + 147, 209, 239, 130, 31, 109, 6, 2, 116, 245, 23, 87, 89, 104, 63, + ], + [ + 254, 234, 202, 192, 38, 123, 22, 81, 79, 136, 11, 185, 106, 85, 172, 180, 130, 174, + 183, 251, 175, 203, 79, 183, 69, 186, 217, 218, 118, 131, 45, 36, + ], + [ + 156, 17, 73, 41, 203, 16, 153, 119, 186, 222, 153, 124, 230, 146, 87, 29, 7, 191, 190, + 168, 102, 105, 238, 126, 148, 93, 158, 1, 200, 176, 0, 61, + ], + [ + 28, 160, 75, 140, 67, 66, 166, 123, 64, 37, 80, 129, 123, 96, 55, 239, 245, 242, 176, + 30, 43, 167, 123, 30, 176, 235, 103, 119, 245, 43, 21, 44, + ], + [ + 163, 35, 23, 88, 71, 238, 67, 76, 77, 179, 194, 119, 140, 158, 137, 93, 247, 67, 243, + 45, 252, 94, 13, 74, 38, 133, 49, 175, 68, 253, 135, 60, + ], + [ + 82, 94, 126, 254, 52, 64, 115, 123, 76, 161, 251, 209, 137, 97, 118, 74, 81, 1, 125, + 193, 173, 11, 246, 66, 249, 206, 159, 206, 86, 37, 57, 17, + ], + [ + 51, 57, 178, 131, 146, 150, 143, 91, 101, 103, 151, 109, 209, 27, 102, 100, 179, 202, + 11, 153, 116, 142, 71, 129, 40, 20, 255, 203, 12, 76, 77, 53, + ], + [ + 242, 188, 216, 208, 193, 32, 161, 163, 164, 220, 120, 103, 93, 135, 13, 181, 119, 237, + 107, 48, 156, 126, 194, 143, 116, 254, 41, 3, 168, 47, 144, 52, + ], + ], + [ + [ + 11, 17, 2, 160, 102, 157, 163, 62, 254, 29, 138, 65, 230, 250, 58, 107, 50, 68, 184, + 225, 156, 103, 209, 236, 196, 36, 246, 79, 147, 27, 42, 53, + ], + [ + 33, 33, 59, 118, 107, 125, 175, 118, 27, 201, 46, 161, 241, 95, 54, 7, 100, 3, 105, + 194, 176, 145, 178, 241, 147, 26, 225, 149, 225, 48, 203, 10, + ], + [ + 66, 12, 165, 163, 5, 18, 193, 183, 234, 11, 228, 173, 190, 240, 194, 125, 104, 253, + 185, 96, 65, 0, 33, 143, 94, 152, 3, 80, 191, 234, 246, 41, + ], + [ + 106, 111, 228, 171, 155, 251, 129, 82, 97, 39, 36, 150, 52, 230, 2, 162, 124, 1, 114, + 127, 6, 185, 190, 77, 105, 246, 148, 200, 181, 122, 152, 31, + ], + [ + 76, 128, 201, 228, 223, 71, 179, 217, 129, 188, 155, 222, 98, 245, 140, 135, 197, 35, + 131, 14, 99, 164, 68, 80, 61, 181, 56, 111, 34, 113, 62, 28, + ], + [ + 161, 162, 61, 111, 161, 188, 162, 168, 143, 68, 187, 26, 105, 142, 203, 40, 131, 84, + 161, 4, 23, 197, 49, 163, 197, 175, 44, 66, 178, 49, 34, 44, + ], + [ + 11, 182, 20, 161, 20, 121, 201, 228, 240, 159, 79, 73, 227, 220, 151, 16, 152, 49, 190, + 6, 54, 180, 221, 163, 21, 37, 241, 190, 21, 124, 22, 12, + ], + [ + 30, 201, 178, 243, 23, 101, 121, 64, 115, 58, 150, 24, 168, 137, 3, 5, 21, 6, 45, 177, + 142, 173, 190, 90, 208, 48, 226, 34, 43, 38, 248, 22, + ], + ], + [ + [ + 157, 196, 42, 177, 43, 61, 107, 82, 52, 60, 246, 13, 114, 134, 5, 254, 222, 212, 147, + 7, 79, 65, 89, 206, 136, 72, 110, 59, 237, 163, 232, 55, + ], + [ + 128, 212, 62, 148, 105, 186, 184, 3, 0, 157, 76, 76, 177, 17, 197, 42, 170, 97, 125, + 102, 222, 54, 95, 255, 85, 220, 105, 248, 152, 208, 45, 8, + ], + [ + 227, 105, 171, 85, 47, 42, 190, 109, 30, 44, 51, 6, 165, 123, 172, 160, 211, 16, 230, + 26, 236, 178, 84, 233, 75, 144, 170, 176, 212, 45, 8, 49, + ], + [ + 71, 24, 160, 130, 125, 205, 239, 123, 250, 248, 212, 253, 150, 47, 54, 228, 246, 98, + 93, 10, 67, 26, 177, 163, 16, 162, 188, 21, 125, 105, 201, 0, + ], + [ + 196, 159, 136, 205, 253, 178, 38, 61, 249, 18, 42, 38, 104, 83, 32, 105, 105, 218, 166, + 88, 116, 188, 68, 103, 186, 14, 155, 32, 90, 204, 134, 19, + ], + [ + 220, 208, 84, 205, 93, 246, 24, 240, 195, 19, 108, 146, 148, 239, 196, 44, 229, 2, 201, + 158, 233, 172, 117, 23, 108, 146, 186, 58, 130, 170, 197, 47, + ], + [ + 48, 27, 108, 232, 165, 0, 125, 145, 138, 3, 23, 211, 187, 17, 166, 226, 107, 197, 242, + 35, 26, 41, 1, 72, 51, 128, 184, 217, 227, 132, 211, 35, + ], + [ + 92, 66, 232, 101, 143, 36, 76, 151, 59, 49, 148, 158, 200, 199, 162, 104, 255, 186, + 143, 97, 68, 243, 94, 86, 178, 221, 95, 134, 100, 235, 198, 22, + ], + ], + [ + [ + 38, 139, 223, 198, 218, 129, 87, 92, 118, 134, 243, 198, 64, 44, 189, 253, 40, 56, 192, + 128, 135, 20, 106, 32, 231, 124, 210, 0, 196, 153, 140, 43, + ], + [ + 184, 194, 151, 179, 50, 163, 11, 229, 169, 173, 159, 39, 249, 174, 118, 91, 223, 168, + 50, 101, 209, 0, 165, 156, 165, 7, 122, 158, 112, 227, 29, 27, + ], + [ + 64, 156, 174, 42, 252, 153, 144, 240, 138, 152, 130, 113, 25, 91, 2, 73, 78, 22, 219, + 226, 9, 62, 212, 218, 201, 191, 178, 186, 43, 11, 237, 28, + ], + [ + 233, 131, 26, 245, 82, 167, 210, 217, 33, 231, 113, 122, 73, 198, 60, 177, 210, 216, + 218, 1, 171, 161, 181, 219, 224, 166, 231, 9, 144, 173, 215, 55, + ], + [ + 1, 121, 8, 158, 236, 71, 214, 244, 87, 104, 58, 32, 244, 25, 55, 245, 102, 235, 161, + 181, 162, 41, 179, 252, 157, 112, 182, 24, 11, 162, 12, 3, + ], + [ + 135, 220, 222, 191, 198, 97, 139, 12, 21, 185, 161, 58, 235, 130, 145, 103, 216, 73, + 24, 149, 54, 221, 204, 44, 29, 105, 75, 241, 59, 92, 14, 1, + ], + [ + 113, 99, 3, 22, 170, 61, 230, 135, 157, 116, 193, 60, 246, 113, 193, 150, 160, 211, 86, + 48, 135, 216, 226, 81, 111, 68, 71, 29, 111, 78, 39, 7, + ], + [ + 76, 15, 116, 174, 6, 23, 26, 143, 29, 83, 201, 35, 202, 41, 125, 55, 43, 33, 17, 230, + 142, 183, 55, 241, 144, 102, 49, 101, 206, 238, 122, 52, + ], + ], + [ + [ + 117, 135, 48, 149, 94, 206, 192, 251, 95, 172, 33, 214, 122, 5, 176, 120, 216, 116, 99, + 41, 31, 203, 126, 237, 42, 244, 207, 224, 245, 150, 117, 23, + ], + [ + 215, 141, 63, 69, 188, 158, 241, 182, 219, 150, 206, 78, 163, 60, 134, 169, 32, 124, + 131, 192, 65, 85, 99, 147, 172, 71, 89, 31, 146, 237, 99, 6, + ], + [ + 112, 236, 159, 17, 39, 131, 26, 30, 73, 94, 167, 165, 101, 55, 30, 223, 226, 53, 245, + 230, 110, 29, 243, 20, 140, 0, 239, 202, 7, 190, 74, 27, + ], + [ + 43, 45, 16, 196, 170, 112, 210, 218, 217, 27, 243, 24, 116, 156, 168, 216, 232, 51, + 233, 255, 29, 133, 105, 96, 40, 72, 39, 238, 122, 241, 20, 62, + ], + [ + 112, 97, 10, 55, 63, 180, 243, 106, 97, 140, 110, 206, 228, 135, 105, 109, 12, 145, + 104, 189, 222, 92, 227, 145, 83, 23, 123, 58, 80, 63, 119, 49, + ], + [ + 222, 111, 84, 201, 220, 211, 85, 66, 2, 80, 166, 99, 203, 7, 253, 212, 8, 120, 179, + 163, 48, 117, 246, 142, 242, 83, 91, 35, 65, 145, 20, 43, + ], + [ + 13, 98, 129, 119, 108, 221, 125, 217, 152, 161, 126, 199, 233, 58, 76, 137, 123, 187, + 202, 234, 56, 36, 240, 90, 181, 55, 176, 89, 27, 84, 134, 12, + ], + [ + 196, 96, 10, 230, 5, 3, 194, 234, 175, 221, 145, 93, 40, 98, 252, 129, 107, 230, 72, 7, + 205, 13, 181, 56, 107, 83, 102, 7, 241, 38, 44, 28, + ], + ], + [ + [ + 49, 255, 63, 55, 167, 241, 86, 34, 231, 35, 195, 153, 186, 81, 209, 131, 82, 204, 179, + 49, 181, 172, 52, 196, 139, 145, 206, 177, 48, 174, 77, 6, + ], + [ + 173, 191, 127, 104, 192, 251, 10, 96, 24, 209, 39, 36, 112, 169, 200, 142, 24, 169, 11, + 184, 106, 152, 170, 237, 234, 8, 49, 65, 20, 150, 61, 59, + ], + [ + 205, 20, 22, 50, 121, 235, 201, 249, 50, 21, 200, 211, 220, 198, 103, 170, 248, 76, + 117, 126, 81, 201, 134, 212, 205, 162, 229, 180, 51, 19, 237, 5, + ], + [ + 169, 152, 197, 220, 162, 201, 73, 12, 53, 71, 243, 206, 218, 32, 232, 63, 161, 163, 81, + 59, 103, 25, 235, 175, 156, 58, 131, 72, 120, 135, 220, 40, + ], + [ + 174, 157, 241, 32, 126, 124, 61, 18, 85, 161, 222, 239, 104, 112, 181, 58, 17, 10, 192, + 128, 159, 167, 150, 102, 32, 158, 191, 58, 196, 214, 211, 36, + ], + [ + 212, 189, 202, 43, 164, 106, 115, 57, 56, 129, 143, 0, 92, 174, 37, 114, 194, 97, 201, + 67, 83, 60, 242, 21, 255, 122, 109, 95, 55, 136, 212, 12, + ], + [ + 41, 172, 202, 39, 28, 52, 243, 63, 155, 161, 82, 6, 78, 68, 236, 168, 171, 107, 200, + 81, 37, 82, 194, 11, 74, 23, 40, 145, 40, 163, 196, 31, + ], + [ + 119, 146, 247, 74, 70, 181, 50, 90, 212, 1, 145, 188, 149, 47, 106, 9, 44, 225, 113, + 77, 103, 73, 250, 25, 15, 46, 111, 20, 202, 135, 106, 58, + ], + ], + [ + [ + 214, 208, 212, 237, 91, 53, 93, 29, 73, 180, 213, 18, 238, 127, 24, 92, 242, 232, 88, + 248, 28, 20, 126, 241, 2, 100, 46, 30, 212, 70, 50, 2, + ], + [ + 75, 62, 19, 16, 103, 247, 66, 81, 143, 208, 79, 175, 38, 117, 164, 226, 213, 10, 65, + 48, 228, 244, 51, 138, 66, 240, 74, 112, 189, 152, 168, 22, + ], + [ + 137, 246, 59, 222, 246, 36, 63, 111, 128, 237, 151, 78, 199, 142, 182, 92, 117, 227, + 249, 16, 135, 236, 15, 7, 222, 205, 206, 235, 59, 21, 248, 22, + ], + [ + 134, 58, 60, 194, 199, 50, 43, 29, 94, 67, 39, 243, 47, 72, 136, 20, 166, 189, 195, + 227, 151, 138, 193, 6, 141, 87, 134, 214, 107, 227, 179, 25, + ], + [ + 240, 65, 105, 174, 82, 73, 62, 176, 32, 143, 83, 50, 246, 33, 143, 191, 153, 108, 79, + 227, 137, 196, 65, 7, 202, 251, 72, 151, 51, 138, 67, 6, + ], + [ + 240, 164, 171, 188, 152, 96, 15, 167, 244, 151, 116, 123, 174, 150, 114, 219, 203, 190, + 60, 64, 123, 164, 24, 213, 22, 120, 151, 169, 147, 87, 14, 54, + ], + [ + 237, 220, 160, 30, 10, 28, 230, 104, 44, 38, 128, 21, 205, 37, 7, 127, 217, 55, 245, + 49, 101, 127, 156, 214, 36, 193, 135, 216, 188, 175, 29, 13, + ], + [ + 159, 14, 150, 98, 114, 124, 115, 108, 53, 17, 110, 73, 228, 238, 220, 104, 221, 43, 35, + 200, 148, 231, 94, 27, 93, 87, 208, 147, 133, 248, 182, 22, + ], + ], + [ + [ + 195, 102, 107, 183, 172, 226, 147, 203, 62, 64, 248, 145, 214, 32, 229, 17, 52, 12, + 239, 111, 133, 247, 141, 219, 112, 72, 179, 205, 47, 104, 154, 28, + ], + [ + 154, 83, 5, 251, 52, 174, 96, 151, 148, 226, 184, 227, 233, 61, 78, 47, 189, 59, 196, + 225, 49, 253, 53, 118, 250, 113, 105, 195, 118, 18, 59, 58, + ], + [ + 254, 53, 230, 124, 224, 107, 238, 47, 232, 196, 210, 155, 253, 125, 87, 42, 243, 249, + 247, 197, 210, 242, 181, 193, 98, 105, 25, 167, 203, 190, 56, 25, + ], + [ + 119, 44, 168, 159, 70, 8, 158, 167, 237, 214, 246, 240, 186, 191, 26, 102, 222, 77, + 142, 206, 192, 203, 225, 105, 135, 210, 127, 165, 15, 239, 31, 45, + ], + [ + 71, 8, 243, 147, 142, 135, 167, 118, 218, 47, 132, 51, 79, 183, 217, 131, 101, 83, 223, + 206, 34, 158, 147, 137, 194, 202, 7, 29, 82, 158, 123, 25, + ], + [ + 153, 113, 163, 1, 79, 119, 160, 95, 221, 126, 184, 114, 24, 24, 253, 225, 39, 126, 110, + 215, 105, 198, 155, 244, 127, 181, 251, 237, 65, 154, 157, 21, + ], + [ + 135, 239, 95, 132, 96, 211, 235, 194, 241, 123, 41, 109, 18, 212, 73, 170, 223, 91, + 248, 7, 78, 221, 20, 42, 22, 16, 11, 32, 47, 37, 78, 55, + ], + [ + 207, 147, 78, 128, 25, 37, 55, 174, 70, 71, 43, 31, 237, 22, 121, 86, 23, 22, 145, 84, + 77, 46, 59, 0, 250, 91, 15, 235, 56, 172, 105, 45, + ], + ], +]; + +pub fn generator() -> pallas::Affine { + pallas::Affine::from_xy( + pallas::Base::from_repr(GENERATOR.0).unwrap(), + pallas::Base::from_repr(GENERATOR.1).unwrap(), + ) + .unwrap() +} + +#[cfg(test)] +mod tests { + use super::super::{NUM_WINDOWS, ORCHARD_PERSONALIZATION}; + use super::*; + use group::Curve; + use halo2_gadgets::ecc::chip::constants::{test_lagrange_coeffs, test_zs_and_us}; + use pasta_curves::{arithmetic::CurveExt, pallas}; + + #[test] + fn generator() { + let hasher = pallas::Point::hash_to_curve(ORCHARD_PERSONALIZATION); + let point = hasher(b"K"); + let coords = point.to_affine().coordinates().unwrap(); + + assert_eq!(*coords.x(), pallas::Base::from_repr(GENERATOR.0).unwrap()); + assert_eq!(*coords.y(), pallas::Base::from_repr(GENERATOR.1).unwrap()); + } + + #[test] + fn lagrange_coeffs() { + let base = super::generator(); + test_lagrange_coeffs(base, NUM_WINDOWS); + } + + #[test] + fn z() { + let base = super::generator(); + test_zs_and_us(base, &Z, &U, NUM_WINDOWS); + } +} diff --git a/zk-crates/zk-headstash/src/constants/fixed_bases/spend_auth_g.rs b/zk-crates/zk-headstash/src/constants/fixed_bases/spend_auth_g.rs new file mode 100644 index 0000000..0a83fc3 --- /dev/null +++ b/zk-crates/zk-headstash/src/constants/fixed_bases/spend_auth_g.rs @@ -0,0 +1,2963 @@ +use group::ff::PrimeField; +use pasta_curves::{arithmetic::CurveAffine, pallas}; + +/// Generator used as $\mathcal{G}^{\mathsf{Orchard}}$ in Spend authorization signatures. +pub const GENERATOR: ([u8; 32], [u8; 32]) = ( + [ + 99, 201, 117, 184, 132, 114, 26, 141, 12, 161, 112, 123, 227, 12, 127, 12, 95, 68, 95, 62, + 124, 24, 141, 59, 6, 214, 241, 40, 179, 35, 85, 55, + ], + [ + 201, 59, 12, 123, 129, 62, 227, 76, 216, 189, 5, 192, 254, 20, 201, 223, 251, 36, 214, 254, + 252, 188, 16, 123, 219, 102, 26, 223, 127, 53, 208, 26, + ], +); + +/// Full-width z-values for GENERATOR. +/// These can be reproduced by [`halo2_gadgets::ecc::chip::constants::find_zs_and_us`]. +pub const Z: [u64; super::NUM_WINDOWS] = [ + 49707, 15701, 45931, 163127, 41654, 212130, 34473, 25205, 4118, 10240, 12264, 22866, 203610, + 18808, 13851, 62448, 62380, 94497, 39496, 73216, 32037, 32774, 61690, 39173, 74580, 84678, + 23418, 103090, 34763, 19801, 54976, 196082, 131117, 20556, 58936, 139049, 49530, 488, 2129, + 44219, 64328, 38875, 58430, 34536, 84014, 15455, 38059, 15915, 26893, 100337, 120701, 98937, + 37075, 35293, 8351, 8361, 273432, 717, 3253, 40140, 28024, 95195, 41937, 200127, 95471, 103562, + 75737, 4182, 362357, 15219, 136680, 168274, 25085, 5925, 254392, 93041, 56204, 46757, 109788, + 100797, 80349, 87315, 77372, 96572, 18965, +]; + +/// Full-width u-values for GENERATOR. +/// These can be reproduced by [`halo2_gadgets::ecc::chip::constants::find_zs_and_us`]. +pub static U: [[[u8; 32]; super::H]; super::NUM_WINDOWS] = [ + [ + [ + 134, 139, 159, 167, 179, 203, 183, 86, 54, 69, 108, 127, 183, 40, 226, 188, 34, 72, + 235, 174, 120, 30, 214, 202, 46, 166, 177, 78, 133, 80, 221, 35, + ], + [ + 128, 147, 194, 62, 34, 230, 94, 209, 44, 242, 88, 94, 91, 252, 184, 217, 72, 173, 32, + 128, 118, 158, 176, 67, 255, 192, 227, 150, 189, 56, 205, 10, + ], + [ + 89, 235, 150, 72, 148, 202, 175, 172, 88, 248, 184, 63, 149, 194, 33, 149, 187, 218, + 51, 194, 131, 184, 34, 138, 62, 112, 115, 0, 197, 109, 145, 37, + ], + [ + 55, 241, 4, 146, 234, 109, 232, 212, 90, 95, 84, 170, 84, 254, 20, 89, 80, 100, 143, 3, + 30, 229, 117, 35, 32, 249, 43, 36, 200, 74, 200, 13, + ], + [ + 194, 23, 77, 68, 227, 113, 225, 181, 201, 67, 219, 25, 234, 73, 160, 104, 12, 6, 180, + 204, 185, 16, 224, 62, 83, 132, 193, 185, 69, 90, 67, 29, + ], + [ + 156, 240, 85, 68, 24, 96, 228, 37, 250, 218, 25, 99, 51, 50, 37, 27, 23, 76, 42, 243, + 126, 23, 236, 249, 179, 94, 59, 83, 197, 193, 215, 32, + ], + [ + 73, 145, 163, 254, 185, 142, 57, 198, 25, 48, 144, 127, 17, 171, 210, 170, 164, 88, 3, + 235, 37, 45, 124, 125, 44, 113, 141, 119, 93, 91, 163, 47, + ], + [ + 144, 156, 74, 131, 227, 73, 40, 222, 73, 67, 210, 157, 154, 161, 96, 112, 61, 251, 210, + 2, 2, 199, 107, 190, 39, 133, 107, 181, 235, 217, 1, 32, + ], + ], + [ + [ + 204, 30, 193, 82, 109, 194, 174, 212, 203, 182, 251, 224, 85, 31, 240, 246, 163, 165, + 69, 160, 26, 78, 143, 50, 115, 92, 109, 71, 48, 205, 160, 15, + ], + [ + 20, 52, 64, 133, 30, 26, 4, 37, 88, 2, 107, 192, 179, 203, 130, 109, 203, 163, 224, 31, + 238, 207, 238, 0, 79, 55, 35, 8, 69, 238, 155, 60, + ], + [ + 129, 188, 56, 216, 72, 61, 212, 36, 171, 128, 228, 90, 229, 75, 126, 41, 186, 124, 100, + 62, 161, 224, 105, 69, 196, 160, 131, 35, 39, 217, 149, 40, + ], + [ + 168, 4, 93, 175, 37, 163, 30, 50, 27, 141, 194, 23, 206, 18, 65, 85, 150, 36, 51, 169, + 206, 47, 128, 65, 151, 181, 117, 50, 74, 251, 37, 14, + ], + [ + 143, 167, 209, 67, 187, 208, 101, 235, 49, 77, 89, 225, 7, 243, 50, 56, 150, 233, 186, + 94, 0, 161, 136, 54, 163, 101, 23, 180, 199, 82, 163, 32, + ], + [ + 83, 85, 245, 163, 247, 47, 226, 3, 90, 35, 254, 250, 71, 176, 18, 214, 121, 5, 11, 162, + 55, 2, 116, 46, 36, 20, 81, 19, 209, 79, 84, 53, + ], + [ + 181, 129, 189, 44, 171, 86, 12, 145, 21, 185, 255, 145, 238, 46, 220, 242, 242, 239, 5, + 39, 176, 87, 6, 205, 209, 13, 190, 26, 72, 252, 247, 47, + ], + [ + 169, 151, 215, 50, 18, 225, 124, 186, 49, 5, 84, 177, 139, 69, 189, 88, 237, 39, 196, + 111, 251, 146, 226, 12, 207, 215, 254, 0, 246, 155, 86, 31, + ], + ], + [ + [ + 178, 207, 217, 160, 25, 246, 180, 59, 161, 29, 253, 55, 84, 14, 217, 170, 120, 167, + 203, 21, 147, 2, 190, 236, 198, 41, 99, 194, 47, 97, 213, 20, + ], + [ + 45, 217, 42, 12, 249, 206, 77, 249, 191, 69, 78, 30, 201, 54, 60, 175, 218, 187, 222, + 73, 28, 240, 105, 118, 228, 192, 184, 161, 65, 230, 115, 35, + ], + [ + 145, 233, 255, 221, 141, 221, 216, 67, 77, 53, 229, 49, 167, 130, 235, 235, 55, 39, 88, + 70, 146, 70, 243, 31, 156, 138, 246, 251, 13, 41, 2, 16, + ], + [ + 44, 14, 167, 217, 244, 57, 222, 12, 243, 116, 172, 17, 218, 246, 161, 124, 209, 248, + 240, 97, 59, 176, 138, 242, 76, 23, 207, 179, 136, 243, 79, 12, + ], + [ + 120, 239, 19, 236, 60, 149, 184, 181, 237, 83, 242, 22, 122, 53, 211, 43, 195, 217, + 208, 185, 53, 156, 105, 158, 161, 156, 47, 90, 67, 139, 159, 60, + ], + [ + 249, 224, 188, 87, 191, 134, 192, 15, 207, 29, 167, 27, 149, 161, 44, 61, 81, 55, 15, + 30, 78, 203, 150, 136, 55, 222, 237, 245, 39, 227, 177, 29, + ], + [ + 91, 228, 118, 231, 230, 113, 246, 243, 112, 73, 19, 146, 105, 173, 81, 28, 27, 59, 168, + 92, 82, 198, 192, 111, 208, 156, 210, 129, 148, 194, 13, 14, + ], + [ + 224, 185, 193, 29, 240, 177, 244, 134, 56, 252, 24, 119, 213, 110, 191, 221, 105, 122, + 89, 30, 114, 196, 53, 33, 168, 48, 77, 85, 241, 128, 168, 51, + ], + ], + [ + [ + 79, 58, 209, 170, 171, 147, 19, 156, 23, 243, 181, 231, 92, 215, 234, 118, 17, 151, + 212, 115, 164, 220, 114, 178, 18, 147, 101, 201, 228, 162, 126, 54, + ], + [ + 235, 245, 230, 232, 32, 231, 43, 206, 119, 97, 30, 131, 10, 3, 195, 93, 78, 158, 42, + 62, 53, 26, 42, 26, 123, 39, 164, 39, 149, 119, 79, 39, + ], + [ + 78, 161, 190, 242, 222, 143, 16, 193, 35, 198, 206, 67, 37, 101, 231, 6, 62, 205, 36, + 2, 146, 11, 191, 111, 78, 107, 222, 19, 32, 194, 31, 28, + ], + [ + 189, 36, 36, 147, 50, 162, 17, 179, 250, 219, 167, 100, 114, 56, 90, 184, 42, 49, 101, + 155, 213, 179, 140, 62, 245, 55, 81, 218, 11, 116, 203, 32, + ], + [ + 170, 122, 46, 42, 82, 84, 63, 207, 174, 176, 7, 139, 74, 49, 198, 238, 243, 217, 155, + 175, 31, 22, 42, 49, 125, 6, 210, 80, 124, 138, 184, 42, + ], + [ + 30, 149, 102, 115, 26, 193, 146, 161, 139, 248, 18, 9, 55, 231, 50, 78, 236, 158, 74, + 204, 173, 228, 73, 125, 75, 127, 42, 21, 202, 128, 69, 46, + ], + [ + 33, 237, 143, 1, 212, 254, 16, 231, 202, 39, 42, 28, 134, 77, 246, 51, 31, 146, 160, + 11, 178, 194, 169, 251, 50, 131, 241, 132, 81, 122, 244, 58, + ], + [ + 197, 18, 235, 234, 189, 238, 252, 93, 244, 246, 76, 251, 21, 250, 8, 118, 38, 40, 39, + 103, 96, 147, 112, 103, 188, 219, 33, 183, 6, 139, 186, 47, + ], + ], + [ + [ + 27, 179, 1, 219, 5, 237, 22, 195, 49, 31, 125, 207, 224, 185, 249, 141, 188, 16, 209, + 225, 213, 167, 101, 63, 245, 229, 177, 242, 28, 121, 227, 4, + ], + [ + 209, 90, 156, 216, 151, 223, 46, 129, 150, 195, 74, 57, 16, 102, 32, 110, 156, 108, 48, + 128, 236, 231, 35, 169, 60, 210, 63, 240, 252, 175, 28, 22, + ], + [ + 133, 6, 154, 178, 236, 58, 163, 25, 85, 197, 169, 75, 26, 103, 112, 168, 225, 245, 103, + 211, 223, 163, 79, 47, 253, 17, 114, 233, 127, 217, 94, 51, + ], + [ + 252, 137, 21, 60, 226, 116, 238, 97, 66, 128, 128, 213, 51, 35, 35, 130, 77, 160, 200, + 226, 91, 25, 22, 133, 27, 188, 198, 159, 155, 4, 106, 4, + ], + [ + 76, 129, 23, 15, 64, 93, 179, 128, 41, 202, 40, 164, 7, 199, 172, 203, 98, 179, 243, + 28, 66, 149, 80, 177, 112, 51, 81, 231, 178, 208, 16, 54, + ], + [ + 100, 99, 114, 178, 31, 130, 16, 122, 18, 47, 103, 243, 55, 84, 112, 92, 156, 246, 119, + 91, 4, 173, 157, 48, 246, 132, 129, 162, 33, 42, 164, 38, + ], + [ + 152, 167, 13, 134, 122, 121, 84, 244, 205, 49, 40, 241, 68, 223, 97, 107, 112, 216, + 124, 98, 232, 219, 187, 158, 28, 95, 222, 129, 219, 240, 233, 13, + ], + [ + 255, 191, 150, 9, 220, 109, 94, 217, 202, 19, 194, 216, 152, 81, 167, 107, 204, 138, + 104, 200, 200, 253, 210, 14, 87, 133, 149, 93, 119, 137, 129, 45, + ], + ], + [ + [ + 162, 107, 4, 19, 49, 176, 93, 99, 15, 133, 159, 53, 191, 0, 79, 228, 236, 96, 145, 53, + 120, 10, 150, 94, 198, 49, 253, 119, 229, 116, 150, 13, + ], + [ + 205, 164, 35, 49, 168, 151, 217, 138, 164, 143, 237, 170, 140, 153, 15, 171, 74, 89, + 60, 195, 13, 20, 170, 36, 66, 199, 45, 252, 18, 47, 204, 8, + ], + [ + 95, 149, 177, 178, 217, 143, 235, 251, 203, 227, 33, 62, 147, 134, 228, 83, 84, 170, + 118, 91, 103, 94, 41, 99, 1, 95, 59, 67, 253, 146, 165, 5, + ], + [ + 19, 184, 182, 93, 1, 4, 202, 21, 119, 77, 151, 12, 98, 255, 223, 34, 54, 162, 44, 199, + 13, 217, 159, 37, 147, 185, 89, 21, 251, 128, 21, 25, + ], + [ + 190, 179, 248, 211, 188, 233, 181, 149, 178, 232, 28, 253, 234, 103, 160, 153, 252, + 188, 19, 132, 143, 227, 31, 109, 134, 85, 21, 104, 133, 39, 148, 13, + ], + [ + 149, 40, 255, 15, 159, 19, 43, 100, 31, 196, 107, 209, 83, 25, 77, 122, 211, 27, 237, + 158, 74, 188, 198, 73, 86, 171, 73, 163, 110, 176, 37, 55, + ], + [ + 25, 194, 88, 151, 108, 22, 157, 145, 11, 87, 6, 215, 227, 141, 203, 218, 34, 25, 236, + 49, 69, 170, 243, 13, 240, 210, 161, 186, 45, 32, 239, 12, + ], + [ + 100, 133, 83, 207, 52, 184, 61, 180, 226, 133, 42, 161, 249, 216, 158, 39, 5, 185, 52, + 8, 212, 185, 49, 234, 32, 200, 23, 158, 19, 111, 74, 50, + ], + ], + [ + [ + 215, 206, 249, 236, 176, 248, 217, 12, 0, 204, 155, 112, 248, 215, 200, 248, 8, 250, + 61, 104, 22, 109, 196, 54, 27, 3, 0, 203, 187, 116, 69, 45, + ], + [ + 82, 29, 122, 199, 191, 205, 105, 136, 96, 93, 249, 65, 104, 197, 48, 64, 166, 175, 144, + 96, 114, 186, 147, 65, 1, 35, 87, 134, 90, 145, 230, 24, + ], + [ + 154, 172, 87, 147, 10, 166, 129, 223, 224, 162, 95, 194, 248, 41, 234, 174, 177, 221, + 64, 244, 202, 201, 225, 138, 179, 110, 80, 104, 84, 39, 26, 43, + ], + [ + 75, 226, 94, 205, 107, 248, 174, 164, 95, 115, 20, 62, 241, 202, 80, 182, 248, 213, + 115, 216, 142, 165, 182, 8, 151, 156, 170, 110, 219, 237, 63, 3, + ], + [ + 49, 234, 64, 230, 146, 237, 191, 49, 112, 45, 60, 43, 252, 216, 195, 70, 153, 146, 225, + 144, 9, 226, 23, 158, 136, 113, 247, 108, 62, 144, 108, 9, + ], + [ + 103, 21, 127, 107, 59, 109, 133, 160, 143, 88, 92, 94, 63, 60, 176, 30, 201, 130, 24, + 59, 22, 197, 68, 223, 207, 57, 45, 122, 91, 202, 196, 35, + ], + [ + 52, 102, 244, 254, 244, 16, 81, 190, 173, 244, 154, 38, 64, 214, 63, 97, 169, 9, 167, + 51, 246, 33, 109, 247, 50, 220, 114, 64, 13, 179, 177, 30, + ], + [ + 144, 221, 225, 200, 23, 166, 32, 166, 176, 75, 198, 254, 19, 193, 245, 128, 7, 12, 208, + 85, 254, 120, 147, 143, 63, 184, 236, 60, 26, 253, 251, 35, + ], + ], + [ + [ + 75, 83, 105, 13, 6, 123, 42, 108, 212, 123, 233, 193, 139, 45, 132, 88, 44, 242, 39, + 25, 1, 235, 41, 93, 161, 218, 156, 90, 105, 43, 114, 46, + ], + [ + 113, 216, 156, 147, 163, 145, 14, 155, 250, 78, 89, 11, 16, 228, 91, 223, 129, 87, 8, + 161, 204, 28, 0, 75, 59, 172, 225, 121, 76, 165, 42, 36, + ], + [ + 195, 34, 156, 131, 184, 36, 15, 228, 23, 198, 79, 88, 138, 166, 168, 21, 16, 35, 82, + 123, 87, 247, 59, 42, 195, 113, 128, 240, 223, 247, 79, 25, + ], + [ + 197, 57, 189, 78, 132, 12, 150, 148, 108, 113, 199, 232, 67, 154, 65, 201, 151, 136, + 175, 146, 0, 126, 215, 68, 183, 100, 207, 132, 39, 238, 74, 28, + ], + [ + 213, 35, 155, 170, 77, 61, 206, 127, 232, 164, 11, 133, 55, 141, 203, 73, 112, 37, 27, + 8, 250, 18, 169, 233, 171, 174, 218, 9, 15, 227, 192, 24, + ], + [ + 134, 99, 90, 204, 109, 34, 78, 239, 97, 108, 119, 18, 165, 166, 98, 20, 155, 15, 193, + 71, 34, 134, 45, 232, 229, 4, 167, 6, 75, 99, 2, 54, + ], + [ + 4, 136, 7, 177, 132, 128, 188, 128, 221, 121, 213, 198, 133, 42, 219, 156, 145, 179, + 35, 254, 88, 233, 96, 90, 206, 150, 181, 191, 254, 218, 217, 31, + ], + [ + 183, 202, 252, 66, 36, 234, 250, 116, 96, 15, 72, 88, 124, 136, 8, 156, 204, 151, 89, + 171, 185, 139, 47, 215, 117, 207, 44, 117, 226, 84, 248, 5, + ], + ], + [ + [ + 48, 78, 243, 80, 211, 5, 172, 75, 113, 98, 154, 247, 185, 52, 36, 155, 5, 244, 149, 7, + 84, 162, 39, 0, 233, 219, 188, 229, 84, 18, 154, 34, + ], + [ + 135, 176, 3, 156, 231, 35, 196, 24, 109, 104, 169, 210, 121, 247, 72, 214, 141, 15, + 155, 221, 249, 30, 196, 117, 108, 229, 219, 116, 233, 89, 208, 61, + ], + [ + 108, 238, 126, 36, 119, 110, 54, 206, 165, 24, 218, 88, 206, 201, 226, 190, 28, 76, + 125, 62, 87, 21, 15, 158, 2, 233, 41, 18, 242, 223, 192, 6, + ], + [ + 169, 95, 111, 93, 78, 167, 161, 2, 54, 29, 206, 209, 119, 196, 7, 36, 248, 233, 68, 45, + 243, 58, 155, 147, 32, 175, 221, 168, 144, 79, 126, 18, + ], + [ + 229, 0, 65, 205, 148, 179, 229, 116, 253, 143, 119, 111, 142, 63, 235, 124, 140, 243, + 182, 164, 15, 57, 219, 23, 114, 237, 116, 213, 200, 235, 227, 55, + ], + [ + 9, 233, 193, 136, 60, 112, 74, 107, 87, 12, 113, 20, 8, 8, 94, 195, 227, 83, 178, 77, + 143, 104, 211, 169, 253, 62, 8, 196, 81, 39, 96, 13, + ], + [ + 223, 12, 147, 224, 113, 27, 48, 142, 243, 199, 244, 62, 255, 20, 63, 79, 12, 37, 159, + 81, 80, 172, 136, 23, 107, 186, 180, 33, 148, 49, 128, 10, + ], + [ + 100, 248, 42, 239, 155, 107, 80, 255, 126, 96, 195, 152, 204, 166, 14, 46, 114, 152, + 200, 111, 94, 233, 117, 247, 89, 83, 34, 2, 189, 3, 245, 4, + ], + ], + [ + [ + 26, 254, 208, 112, 167, 15, 77, 90, 124, 14, 227, 31, 204, 94, 253, 228, 223, 252, 114, + 141, 234, 26, 108, 144, 115, 131, 19, 142, 25, 148, 80, 53, + ], + [ + 95, 154, 56, 85, 66, 246, 97, 207, 254, 117, 98, 51, 204, 68, 9, 1, 157, 25, 113, 175, + 12, 172, 33, 67, 212, 17, 238, 76, 166, 43, 6, 30, + ], + [ + 48, 204, 33, 34, 141, 223, 27, 151, 244, 225, 206, 129, 54, 211, 251, 18, 168, 186, + 214, 141, 37, 229, 219, 62, 187, 87, 66, 140, 181, 233, 161, 35, + ], + [ + 143, 158, 2, 174, 102, 73, 205, 247, 110, 78, 131, 38, 192, 195, 70, 193, 14, 166, 232, + 42, 142, 222, 35, 147, 189, 77, 50, 220, 23, 56, 126, 38, + ], + [ + 10, 84, 87, 89, 169, 77, 97, 156, 0, 100, 41, 191, 232, 88, 138, 82, 220, 123, 231, 59, + 142, 115, 196, 116, 217, 80, 178, 117, 237, 250, 11, 32, + ], + [ + 152, 88, 228, 103, 64, 4, 197, 110, 204, 4, 0, 131, 250, 205, 206, 83, 180, 179, 98, + 51, 213, 11, 237, 149, 150, 226, 123, 62, 129, 198, 28, 58, + ], + [ + 188, 254, 66, 154, 178, 61, 236, 232, 27, 107, 131, 38, 104, 160, 49, 57, 3, 111, 18, + 106, 158, 91, 57, 220, 174, 59, 138, 227, 176, 49, 171, 15, + ], + [ + 92, 116, 148, 172, 212, 215, 137, 153, 48, 241, 40, 25, 45, 204, 141, 58, 235, 146, + 155, 248, 50, 112, 4, 206, 228, 70, 94, 117, 128, 150, 213, 18, + ], + ], + [ + [ + 155, 96, 199, 129, 161, 131, 9, 109, 43, 95, 79, 108, 230, 168, 172, 51, 244, 183, 203, + 211, 198, 95, 64, 184, 12, 184, 190, 250, 108, 77, 202, 61, + ], + [ + 151, 114, 132, 115, 19, 130, 213, 126, 140, 64, 58, 149, 171, 26, 245, 47, 253, 9, 212, + 80, 154, 3, 206, 254, 158, 241, 87, 90, 67, 8, 29, 59, + ], + [ + 231, 100, 245, 101, 53, 146, 235, 219, 228, 106, 101, 51, 85, 110, 51, 78, 221, 149, + 223, 78, 184, 47, 144, 234, 161, 28, 6, 48, 41, 228, 253, 57, + ], + [ + 239, 82, 160, 74, 136, 231, 198, 194, 99, 192, 170, 182, 36, 125, 149, 58, 9, 239, 91, + 146, 54, 104, 94, 42, 147, 4, 61, 79, 185, 11, 51, 1, + ], + [ + 56, 89, 137, 88, 196, 32, 115, 15, 6, 53, 123, 43, 42, 27, 226, 220, 196, 131, 211, + 126, 14, 174, 191, 229, 172, 6, 210, 189, 92, 66, 79, 26, + ], + [ + 236, 153, 243, 131, 143, 123, 164, 95, 214, 160, 21, 150, 12, 71, 118, 170, 92, 166, + 223, 162, 133, 58, 93, 2, 31, 57, 197, 190, 66, 169, 112, 18, + ], + [ + 137, 13, 132, 54, 102, 120, 119, 177, 34, 217, 123, 89, 76, 242, 218, 72, 236, 129, 33, + 42, 148, 242, 221, 33, 252, 74, 219, 142, 25, 82, 162, 62, + ], + [ + 0, 132, 243, 70, 85, 72, 216, 242, 225, 170, 56, 212, 52, 143, 154, 202, 248, 33, 148, + 236, 117, 24, 29, 63, 148, 233, 28, 74, 59, 44, 221, 6, + ], + ], + [ + [ + 122, 45, 241, 68, 72, 20, 58, 84, 181, 215, 45, 12, 74, 54, 17, 144, 144, 97, 82, 103, + 81, 123, 158, 238, 167, 173, 212, 8, 90, 63, 188, 59, + ], + [ + 190, 69, 211, 175, 56, 60, 42, 23, 208, 231, 241, 96, 205, 55, 222, 210, 178, 240, 230, + 118, 210, 253, 59, 206, 104, 165, 221, 249, 237, 74, 42, 33, + ], + [ + 69, 202, 255, 56, 181, 188, 225, 92, 19, 165, 74, 192, 67, 249, 139, 35, 87, 125, 27, + 228, 61, 78, 56, 144, 42, 255, 159, 217, 53, 99, 10, 62, + ], + [ + 17, 213, 190, 3, 139, 251, 81, 49, 133, 14, 185, 61, 240, 132, 117, 99, 240, 125, 104, + 191, 248, 27, 77, 11, 130, 122, 237, 184, 35, 100, 180, 3, + ], + [ + 236, 29, 195, 209, 34, 84, 144, 163, 206, 89, 168, 108, 27, 11, 70, 115, 204, 213, 254, + 154, 127, 24, 198, 242, 246, 223, 181, 250, 165, 119, 22, 62, + ], + [ + 60, 247, 191, 168, 239, 211, 60, 148, 241, 31, 18, 170, 16, 159, 36, 114, 42, 255, 166, + 224, 203, 137, 29, 159, 207, 121, 83, 18, 65, 177, 147, 58, + ], + [ + 142, 74, 131, 209, 60, 216, 199, 80, 41, 112, 74, 182, 191, 182, 44, 195, 255, 209, + 212, 108, 139, 121, 174, 211, 221, 158, 186, 94, 7, 171, 195, 6, + ], + [ + 198, 195, 122, 214, 128, 112, 1, 64, 196, 79, 62, 9, 3, 224, 192, 175, 23, 151, 79, + 177, 86, 124, 241, 131, 111, 212, 44, 236, 166, 31, 192, 15, + ], + ], + [ + [ + 50, 31, 67, 146, 113, 240, 176, 252, 99, 195, 220, 195, 236, 33, 235, 44, 22, 161, 130, + 84, 214, 230, 9, 201, 254, 31, 226, 194, 208, 156, 234, 31, + ], + [ + 130, 252, 165, 204, 53, 14, 76, 171, 205, 52, 8, 140, 156, 25, 1, 79, 106, 128, 120, + 230, 96, 4, 65, 143, 120, 86, 95, 116, 178, 151, 251, 21, + ], + [ + 82, 176, 110, 60, 13, 107, 15, 237, 57, 201, 226, 28, 131, 232, 139, 0, 26, 117, 17, + 21, 90, 52, 206, 160, 31, 184, 67, 211, 119, 126, 23, 2, + ], + [ + 86, 78, 25, 205, 17, 108, 177, 47, 226, 5, 14, 124, 217, 100, 164, 146, 67, 56, 65, + 155, 54, 2, 97, 66, 248, 244, 46, 71, 35, 246, 90, 35, + ], + [ + 28, 122, 89, 60, 230, 19, 230, 132, 129, 117, 243, 172, 180, 95, 210, 183, 231, 73, + 194, 50, 123, 93, 40, 116, 179, 64, 48, 127, 37, 161, 133, 1, + ], + [ + 72, 176, 170, 234, 97, 26, 154, 13, 139, 23, 69, 194, 241, 59, 143, 29, 131, 72, 236, + 123, 90, 116, 132, 207, 226, 63, 190, 11, 9, 159, 225, 18, + ], + [ + 71, 3, 178, 208, 101, 43, 142, 1, 34, 183, 67, 144, 188, 255, 243, 77, 160, 17, 3, 90, + 104, 102, 15, 237, 159, 17, 119, 223, 119, 180, 184, 11, + ], + [ + 198, 247, 138, 113, 71, 170, 58, 158, 166, 18, 216, 133, 230, 166, 87, 243, 180, 129, + 59, 227, 21, 156, 206, 171, 200, 29, 193, 191, 35, 144, 110, 35, + ], + ], + [ + [ + 143, 29, 76, 191, 243, 57, 156, 88, 188, 187, 113, 179, 47, 12, 12, 80, 210, 133, 232, + 199, 196, 174, 105, 166, 185, 201, 72, 33, 182, 107, 10, 14, + ], + [ + 164, 93, 48, 22, 226, 133, 56, 19, 13, 143, 250, 49, 96, 151, 50, 136, 186, 199, 102, + 135, 44, 77, 221, 203, 66, 145, 199, 234, 71, 151, 237, 60, + ], + [ + 40, 169, 150, 23, 171, 18, 88, 233, 196, 71, 216, 65, 86, 136, 191, 225, 157, 148, 204, + 166, 81, 32, 185, 159, 33, 211, 227, 110, 49, 200, 239, 6, + ], + [ + 177, 51, 226, 132, 191, 36, 206, 168, 107, 159, 196, 253, 111, 164, 203, 30, 229, 157, + 238, 168, 231, 1, 231, 132, 124, 170, 113, 72, 205, 71, 179, 61, + ], + [ + 173, 21, 156, 246, 171, 56, 11, 126, 227, 206, 228, 132, 13, 35, 56, 214, 167, 169, + 199, 247, 183, 237, 175, 164, 56, 38, 12, 149, 16, 165, 206, 41, + ], + [ + 128, 227, 45, 193, 60, 153, 0, 6, 8, 102, 44, 127, 61, 224, 183, 230, 212, 141, 1, 51, + 225, 100, 204, 170, 122, 148, 93, 219, 56, 143, 127, 14, + ], + [ + 70, 116, 18, 220, 241, 134, 196, 152, 34, 203, 160, 47, 133, 155, 48, 238, 3, 231, 142, + 250, 130, 80, 127, 29, 47, 30, 247, 166, 7, 84, 97, 32, + ], + [ + 198, 120, 45, 251, 227, 181, 90, 244, 88, 96, 139, 170, 238, 2, 214, 157, 142, 252, 38, + 70, 46, 231, 140, 254, 133, 163, 174, 239, 236, 31, 248, 47, + ], + ], + [ + [ + 55, 136, 210, 179, 46, 105, 249, 203, 6, 77, 242, 11, 176, 133, 40, 140, 94, 213, 221, + 116, 54, 114, 154, 208, 221, 104, 34, 129, 102, 30, 159, 58, + ], + [ + 79, 251, 68, 141, 49, 255, 119, 149, 245, 56, 33, 15, 177, 119, 71, 34, 2, 157, 154, + 100, 0, 130, 254, 89, 119, 244, 255, 136, 145, 170, 75, 22, + ], + [ + 246, 138, 15, 233, 177, 157, 214, 220, 249, 137, 175, 49, 64, 49, 163, 203, 16, 5, 156, + 137, 236, 177, 51, 237, 183, 248, 106, 64, 95, 201, 63, 60, + ], + [ + 169, 216, 126, 241, 88, 115, 61, 5, 60, 196, 46, 248, 192, 24, 133, 247, 107, 35, 176, + 62, 3, 251, 187, 51, 131, 108, 26, 58, 71, 173, 69, 50, + ], + [ + 84, 151, 140, 102, 38, 240, 56, 110, 112, 245, 122, 78, 225, 149, 139, 150, 7, 90, 124, + 202, 208, 243, 85, 76, 216, 157, 7, 245, 29, 230, 202, 57, + ], + [ + 151, 205, 82, 162, 218, 18, 210, 30, 96, 49, 203, 180, 161, 163, 135, 58, 156, 223, + 248, 97, 155, 19, 244, 20, 204, 201, 109, 159, 51, 166, 157, 53, + ], + [ + 12, 187, 38, 15, 49, 56, 192, 212, 23, 177, 153, 244, 192, 65, 217, 112, 210, 82, 187, + 254, 42, 203, 172, 84, 39, 84, 171, 8, 145, 13, 6, 50, + ], + [ + 61, 241, 209, 199, 182, 87, 14, 9, 24, 44, 194, 13, 4, 85, 186, 9, 120, 82, 120, 0, + 167, 113, 231, 252, 218, 210, 112, 246, 163, 9, 247, 30, + ], + ], + [ + [ + 196, 38, 105, 221, 18, 136, 108, 66, 223, 180, 237, 185, 161, 102, 180, 224, 164, 195, + 0, 254, 210, 238, 158, 146, 253, 119, 73, 191, 148, 17, 152, 50, + ], + [ + 76, 130, 205, 97, 172, 181, 61, 253, 66, 7, 37, 249, 147, 121, 205, 101, 67, 50, 84, + 125, 60, 49, 65, 55, 48, 130, 37, 86, 92, 89, 181, 35, + ], + [ + 206, 105, 119, 230, 215, 16, 15, 177, 186, 198, 98, 203, 210, 114, 246, 76, 112, 132, + 63, 157, 216, 253, 212, 195, 36, 11, 58, 200, 70, 165, 187, 21, + ], + [ + 95, 85, 152, 202, 120, 158, 2, 113, 140, 9, 152, 197, 28, 23, 243, 98, 30, 116, 241, + 59, 150, 179, 40, 13, 119, 61, 108, 115, 88, 216, 66, 62, + ], + [ + 108, 254, 117, 155, 108, 68, 3, 230, 25, 36, 106, 204, 158, 15, 114, 204, 134, 182, + 239, 235, 104, 144, 35, 31, 84, 246, 38, 252, 87, 60, 20, 12, + ], + [ + 14, 76, 210, 134, 98, 224, 219, 180, 88, 134, 93, 30, 34, 159, 112, 85, 114, 46, 244, + 59, 169, 188, 235, 108, 254, 236, 101, 86, 97, 132, 255, 62, + ], + [ + 23, 167, 12, 59, 95, 158, 244, 22, 231, 148, 247, 162, 226, 95, 136, 77, 62, 234, 119, + 179, 29, 62, 160, 116, 94, 240, 7, 113, 75, 241, 201, 62, + ], + [ + 233, 142, 117, 40, 158, 166, 10, 78, 255, 44, 235, 32, 185, 102, 244, 23, 251, 127, 12, + 249, 120, 18, 196, 115, 151, 251, 236, 217, 97, 244, 107, 52, + ], + ], + [ + [ + 107, 155, 149, 167, 240, 119, 46, 213, 7, 178, 44, 247, 191, 163, 247, 255, 109, 160, + 87, 134, 236, 13, 49, 223, 245, 64, 194, 243, 220, 166, 203, 59, + ], + [ + 119, 76, 9, 136, 64, 42, 217, 106, 111, 151, 245, 107, 101, 191, 56, 195, 239, 79, 134, + 239, 31, 37, 60, 160, 131, 101, 90, 38, 70, 213, 103, 5, + ], + [ + 184, 158, 152, 93, 132, 93, 66, 54, 106, 79, 134, 202, 210, 72, 74, 25, 96, 93, 178, + 109, 231, 248, 173, 100, 154, 238, 170, 161, 194, 75, 148, 35, + ], + [ + 156, 17, 84, 74, 233, 248, 203, 84, 127, 132, 30, 245, 52, 4, 27, 53, 231, 22, 75, 33, + 66, 120, 175, 149, 77, 114, 237, 18, 99, 189, 126, 31, + ], + [ + 78, 144, 141, 232, 241, 133, 132, 75, 214, 189, 122, 225, 96, 155, 59, 205, 144, 243, + 176, 140, 253, 16, 152, 59, 80, 164, 165, 153, 15, 89, 219, 50, + ], + [ + 62, 16, 233, 111, 18, 125, 232, 184, 252, 2, 110, 148, 127, 176, 119, 162, 66, 211, + 198, 136, 64, 217, 189, 197, 121, 66, 32, 71, 147, 13, 146, 8, + ], + [ + 2, 45, 226, 216, 24, 120, 51, 196, 19, 16, 152, 7, 178, 30, 88, 194, 255, 186, 231, 81, + 217, 67, 36, 199, 41, 12, 135, 142, 160, 247, 199, 34, + ], + [ + 80, 193, 196, 122, 181, 155, 245, 75, 185, 218, 222, 58, 140, 110, 234, 148, 30, 19, + 243, 175, 188, 1, 57, 85, 163, 253, 211, 210, 200, 7, 249, 43, + ], + ], + [ + [ + 187, 240, 200, 140, 119, 234, 17, 25, 208, 192, 198, 107, 40, 102, 42, 212, 229, 1, + 231, 121, 19, 35, 249, 226, 185, 185, 225, 179, 84, 18, 191, 15, + ], + [ + 249, 21, 206, 133, 57, 77, 143, 126, 192, 252, 36, 62, 173, 16, 52, 11, 7, 198, 149, + 220, 48, 193, 40, 253, 217, 235, 145, 96, 241, 215, 193, 16, + ], + [ + 203, 97, 200, 83, 165, 80, 108, 220, 108, 185, 123, 227, 143, 247, 12, 200, 9, 195, 68, + 46, 238, 32, 161, 42, 247, 167, 117, 159, 191, 89, 194, 21, + ], + [ + 200, 138, 253, 89, 202, 154, 62, 252, 110, 107, 99, 189, 49, 33, 69, 220, 211, 185, 89, + 62, 101, 231, 203, 68, 45, 5, 73, 39, 144, 230, 186, 43, + ], + [ + 31, 42, 63, 181, 31, 131, 126, 192, 52, 179, 2, 178, 71, 193, 225, 189, 52, 153, 62, + 166, 207, 192, 10, 174, 67, 228, 150, 28, 169, 63, 242, 60, + ], + [ + 228, 40, 179, 0, 71, 223, 234, 22, 20, 72, 239, 146, 142, 7, 168, 47, 102, 186, 137, + 113, 248, 114, 204, 153, 12, 22, 145, 205, 143, 109, 169, 3, + ], + [ + 232, 227, 9, 11, 117, 128, 157, 126, 209, 210, 249, 174, 93, 37, 76, 150, 114, 36, 225, + 75, 198, 10, 191, 167, 6, 2, 244, 29, 191, 7, 21, 44, + ], + [ + 86, 226, 203, 210, 152, 57, 49, 226, 171, 172, 86, 225, 126, 215, 249, 166, 100, 119, + 54, 180, 193, 199, 146, 147, 253, 16, 107, 16, 22, 21, 106, 31, + ], + ], + [ + [ + 249, 155, 151, 211, 192, 36, 207, 21, 36, 141, 169, 175, 223, 248, 235, 62, 161, 214, + 236, 25, 35, 202, 64, 158, 84, 97, 121, 1, 190, 142, 23, 56, + ], + [ + 79, 129, 15, 128, 17, 234, 8, 173, 53, 238, 129, 60, 40, 6, 33, 216, 0, 171, 82, 80, + 227, 3, 219, 184, 48, 231, 244, 213, 115, 224, 162, 49, + ], + [ + 246, 219, 42, 28, 42, 134, 38, 100, 60, 131, 51, 159, 148, 5, 219, 203, 159, 51, 175, + 176, 154, 20, 79, 168, 197, 140, 200, 98, 192, 113, 179, 48, + ], + [ + 87, 7, 235, 9, 102, 19, 100, 91, 214, 230, 74, 213, 117, 120, 7, 239, 137, 255, 158, + 243, 160, 169, 30, 105, 28, 72, 188, 245, 76, 187, 227, 46, + ], + [ + 158, 245, 74, 150, 32, 197, 25, 173, 237, 231, 201, 44, 210, 117, 134, 203, 75, 108, + 102, 63, 124, 33, 47, 100, 56, 65, 129, 102, 161, 211, 117, 22, + ], + [ + 204, 70, 46, 194, 74, 212, 80, 20, 239, 11, 98, 124, 117, 38, 63, 246, 222, 191, 44, + 185, 131, 146, 129, 92, 158, 2, 87, 240, 150, 133, 57, 19, + ], + [ + 236, 136, 27, 147, 102, 12, 170, 62, 254, 16, 6, 217, 27, 178, 115, 247, 60, 158, 45, + 219, 224, 99, 111, 154, 253, 46, 247, 200, 138, 156, 26, 26, + ], + [ + 75, 211, 65, 63, 194, 212, 191, 3, 100, 173, 100, 101, 62, 25, 72, 147, 13, 148, 111, + 14, 157, 82, 27, 241, 125, 154, 243, 137, 14, 135, 241, 26, + ], + ], + [ + [ + 218, 202, 124, 110, 86, 218, 195, 2, 64, 68, 69, 220, 16, 26, 0, 40, 224, 238, 59, 69, + 246, 226, 3, 27, 219, 85, 17, 245, 133, 220, 230, 63, + ], + [ + 212, 226, 110, 162, 36, 55, 75, 198, 129, 197, 158, 79, 126, 204, 159, 71, 33, 60, 121, + 48, 127, 147, 250, 124, 60, 87, 179, 173, 160, 204, 32, 53, + ], + [ + 137, 110, 13, 7, 108, 200, 154, 204, 18, 86, 44, 221, 40, 171, 207, 5, 25, 42, 108, 2, + 147, 18, 42, 89, 101, 50, 48, 7, 233, 123, 235, 8, + ], + [ + 206, 247, 190, 175, 201, 90, 146, 123, 203, 83, 104, 46, 243, 131, 105, 131, 39, 186, + 205, 103, 203, 204, 186, 196, 251, 101, 101, 250, 186, 160, 211, 12, + ], + [ + 237, 149, 65, 13, 108, 153, 242, 14, 61, 62, 156, 46, 128, 126, 158, 246, 226, 128, + 243, 193, 10, 165, 120, 64, 72, 91, 32, 215, 90, 235, 82, 24, + ], + [ + 185, 204, 139, 200, 5, 172, 176, 126, 105, 190, 243, 150, 126, 26, 28, 74, 143, 149, + 118, 82, 210, 254, 70, 30, 81, 23, 128, 89, 255, 171, 137, 63, + ], + [ + 169, 75, 113, 101, 245, 119, 251, 230, 244, 201, 79, 85, 164, 86, 81, 155, 57, 44, 203, + 143, 173, 62, 78, 180, 1, 48, 216, 129, 223, 34, 105, 33, + ], + [ + 71, 92, 139, 39, 87, 72, 88, 2, 1, 5, 154, 14, 244, 138, 253, 116, 113, 203, 7, 174, + 49, 216, 88, 94, 233, 251, 220, 17, 19, 62, 142, 41, + ], + ], + [ + [ + 61, 222, 98, 187, 178, 246, 136, 235, 234, 162, 29, 132, 16, 87, 58, 249, 140, 210, 62, + 204, 34, 166, 135, 164, 118, 21, 181, 46, 215, 232, 234, 41, + ], + [ + 108, 124, 187, 66, 180, 167, 233, 17, 56, 166, 172, 61, 198, 167, 53, 66, 58, 24, 86, + 29, 24, 30, 59, 213, 140, 66, 162, 145, 212, 204, 115, 25, + ], + [ + 126, 189, 246, 53, 52, 94, 147, 57, 67, 135, 51, 106, 225, 56, 234, 69, 109, 0, 84, 85, + 158, 111, 234, 117, 134, 231, 202, 117, 69, 62, 231, 62, + ], + [ + 180, 135, 221, 126, 92, 15, 183, 27, 71, 155, 203, 35, 217, 20, 196, 191, 166, 148, 12, + 90, 70, 8, 55, 187, 227, 234, 199, 6, 170, 31, 164, 35, + ], + [ + 127, 229, 190, 196, 138, 191, 99, 200, 2, 94, 33, 220, 198, 94, 247, 56, 92, 235, 5, + 231, 0, 215, 115, 237, 123, 128, 163, 62, 245, 136, 81, 22, + ], + [ + 227, 192, 203, 190, 191, 238, 65, 46, 225, 246, 98, 119, 248, 140, 53, 18, 29, 161, 15, + 186, 236, 103, 170, 73, 194, 235, 181, 196, 130, 245, 221, 13, + ], + [ + 64, 205, 137, 125, 6, 95, 1, 144, 47, 13, 117, 175, 2, 2, 233, 104, 21, 195, 159, 219, + 27, 30, 12, 229, 218, 26, 207, 101, 32, 16, 167, 2, + ], + [ + 34, 165, 74, 35, 215, 50, 17, 254, 127, 186, 142, 239, 125, 1, 238, 118, 184, 35, 133, + 15, 46, 87, 123, 153, 143, 75, 66, 12, 100, 48, 121, 48, + ], + ], + [ + [ + 214, 114, 165, 15, 16, 78, 181, 140, 200, 65, 29, 172, 151, 153, 42, 42, 237, 0, 16, + 125, 100, 98, 184, 223, 117, 20, 178, 157, 216, 44, 213, 15, + ], + [ + 132, 159, 1, 46, 5, 227, 173, 110, 40, 63, 114, 61, 174, 128, 176, 65, 210, 40, 113, + 98, 56, 97, 31, 79, 27, 108, 73, 89, 187, 91, 212, 56, + ], + [ + 172, 60, 113, 153, 79, 201, 88, 244, 49, 183, 22, 155, 50, 177, 233, 114, 239, 171, 11, + 254, 167, 190, 175, 168, 186, 77, 225, 135, 173, 40, 55, 48, + ], + [ + 125, 213, 133, 173, 206, 217, 164, 129, 242, 146, 105, 114, 154, 236, 10, 141, 30, 90, + 218, 141, 173, 47, 144, 222, 136, 142, 38, 52, 26, 23, 14, 60, + ], + [ + 139, 80, 72, 222, 254, 102, 93, 93, 171, 176, 185, 71, 208, 45, 194, 155, 138, 10, 119, + 216, 70, 65, 186, 101, 170, 173, 40, 248, 151, 68, 36, 2, + ], + [ + 217, 169, 205, 250, 22, 76, 171, 72, 234, 51, 110, 48, 151, 167, 126, 164, 6, 208, 212, + 219, 0, 239, 167, 53, 192, 217, 172, 45, 11, 255, 36, 8, + ], + [ + 185, 240, 107, 188, 203, 252, 145, 109, 83, 50, 19, 103, 221, 108, 214, 191, 76, 193, + 213, 76, 178, 238, 191, 96, 148, 240, 145, 197, 57, 223, 91, 38, + ], + [ + 135, 117, 125, 1, 188, 32, 35, 122, 175, 114, 34, 107, 83, 189, 14, 252, 187, 207, 56, + 81, 179, 150, 83, 169, 41, 7, 153, 219, 41, 249, 137, 36, + ], + ], + [ + [ + 130, 161, 187, 43, 82, 167, 198, 157, 80, 21, 74, 98, 249, 108, 140, 91, 167, 175, 83, + 166, 160, 83, 226, 11, 105, 178, 43, 93, 152, 98, 39, 60, + ], + [ + 103, 60, 46, 185, 126, 175, 11, 242, 101, 195, 88, 74, 137, 157, 7, 133, 136, 190, 182, + 15, 95, 81, 82, 60, 238, 203, 94, 197, 58, 235, 78, 26, + ], + [ + 125, 109, 188, 77, 254, 92, 214, 193, 55, 226, 214, 209, 14, 61, 76, 62, 1, 184, 215, + 234, 137, 221, 36, 165, 14, 51, 144, 85, 103, 230, 139, 54, + ], + [ + 31, 80, 113, 254, 151, 75, 72, 118, 184, 169, 88, 45, 176, 244, 185, 244, 116, 20, 254, + 25, 46, 209, 230, 101, 108, 212, 145, 109, 19, 203, 52, 23, + ], + [ + 223, 26, 38, 148, 184, 152, 184, 143, 7, 88, 24, 23, 10, 222, 186, 75, 235, 47, 152, + 166, 150, 194, 251, 172, 244, 48, 213, 91, 185, 90, 135, 6, + ], + [ + 49, 201, 141, 151, 38, 161, 147, 187, 9, 184, 151, 218, 50, 193, 207, 31, 125, 243, 44, + 73, 133, 109, 219, 122, 48, 232, 143, 23, 243, 253, 230, 4, + ], + [ + 226, 81, 244, 145, 117, 92, 163, 152, 234, 27, 48, 188, 216, 35, 238, 160, 132, 170, + 116, 231, 72, 202, 3, 185, 230, 77, 245, 56, 30, 214, 138, 48, + ], + [ + 203, 71, 145, 89, 101, 217, 131, 63, 86, 163, 54, 136, 121, 122, 155, 211, 113, 235, + 21, 121, 67, 53, 217, 167, 76, 158, 51, 115, 145, 91, 31, 17, + ], + ], + [ + [ + 163, 118, 62, 49, 37, 114, 17, 221, 161, 123, 183, 175, 99, 19, 182, 11, 127, 236, 183, + 255, 144, 45, 151, 179, 76, 158, 3, 244, 18, 197, 192, 15, + ], + [ + 161, 140, 144, 70, 95, 191, 18, 250, 95, 202, 117, 12, 81, 145, 232, 37, 148, 192, 220, + 126, 52, 144, 121, 51, 101, 197, 209, 187, 62, 95, 123, 6, + ], + [ + 218, 235, 88, 200, 137, 249, 88, 23, 9, 21, 41, 221, 173, 222, 183, 202, 244, 51, 59, + 81, 157, 46, 225, 92, 104, 138, 194, 120, 192, 35, 255, 55, + ], + [ + 183, 236, 50, 252, 158, 165, 145, 185, 126, 97, 212, 66, 97, 197, 185, 125, 85, 60, + 239, 123, 147, 234, 128, 46, 113, 127, 136, 143, 12, 160, 244, 14, + ], + [ + 229, 188, 4, 248, 56, 209, 163, 222, 126, 202, 169, 221, 208, 239, 56, 204, 25, 214, + 222, 140, 83, 2, 164, 52, 212, 80, 104, 109, 32, 204, 13, 39, + ], + [ + 124, 94, 218, 55, 16, 89, 156, 202, 79, 167, 11, 70, 95, 50, 198, 187, 51, 105, 69, 76, + 83, 72, 44, 143, 64, 60, 19, 14, 192, 196, 80, 27, + ], + [ + 97, 209, 31, 19, 192, 81, 91, 247, 188, 17, 0, 21, 75, 229, 246, 158, 136, 76, 210, + 207, 249, 143, 152, 221, 229, 242, 59, 114, 206, 95, 96, 47, + ], + [ + 11, 206, 70, 250, 78, 150, 63, 79, 249, 28, 67, 124, 107, 222, 13, 23, 17, 68, 53, 122, + 184, 139, 37, 94, 6, 39, 35, 160, 66, 221, 110, 57, + ], + ], + [ + [ + 223, 134, 239, 176, 66, 205, 170, 212, 138, 20, 104, 236, 148, 255, 100, 186, 129, 240, + 197, 226, 26, 15, 254, 102, 80, 192, 154, 239, 139, 23, 121, 63, + ], + [ + 5, 119, 208, 59, 122, 3, 98, 77, 4, 190, 57, 200, 218, 45, 203, 72, 213, 82, 131, 107, + 169, 215, 115, 204, 1, 224, 230, 159, 198, 109, 107, 54, + ], + [ + 104, 158, 197, 37, 221, 147, 75, 28, 103, 145, 43, 10, 92, 236, 156, 128, 161, 166, 38, + 21, 61, 23, 31, 28, 253, 61, 17, 246, 189, 252, 175, 43, + ], + [ + 24, 105, 76, 61, 63, 75, 50, 76, 51, 192, 208, 63, 88, 229, 128, 119, 220, 237, 199, + 84, 244, 89, 108, 230, 177, 251, 241, 178, 198, 176, 83, 21, + ], + [ + 95, 224, 156, 151, 85, 5, 100, 100, 241, 158, 113, 178, 102, 190, 76, 193, 236, 80, + 137, 95, 138, 94, 146, 3, 76, 157, 86, 102, 237, 20, 176, 63, + ], + [ + 135, 94, 202, 65, 67, 250, 57, 207, 182, 240, 92, 3, 232, 237, 207, 226, 96, 251, 5, + 14, 56, 84, 221, 45, 50, 21, 23, 38, 125, 141, 125, 33, + ], + [ + 1, 250, 154, 59, 193, 213, 14, 252, 103, 49, 176, 144, 111, 21, 26, 187, 8, 115, 236, + 31, 221, 198, 37, 92, 194, 32, 42, 236, 140, 108, 35, 39, + ], + [ + 103, 78, 38, 12, 33, 172, 47, 58, 164, 230, 77, 235, 219, 159, 138, 135, 17, 66, 215, + 244, 183, 189, 78, 154, 114, 85, 131, 71, 221, 132, 206, 51, + ], + ], + [ + [ + 74, 237, 137, 138, 7, 144, 141, 134, 245, 201, 75, 46, 40, 46, 38, 183, 163, 73, 201, + 165, 151, 236, 247, 214, 6, 44, 36, 27, 225, 75, 97, 48, + ], + [ + 38, 39, 238, 243, 197, 119, 161, 224, 249, 104, 44, 35, 221, 140, 86, 236, 9, 96, 12, + 2, 73, 135, 165, 30, 67, 208, 15, 210, 52, 18, 118, 6, + ], + [ + 143, 224, 93, 228, 86, 241, 188, 45, 229, 9, 195, 9, 209, 118, 156, 40, 7, 200, 138, + 200, 192, 83, 107, 147, 195, 86, 84, 8, 93, 62, 87, 54, + ], + [ + 212, 96, 74, 248, 166, 217, 63, 214, 37, 93, 202, 74, 239, 98, 42, 253, 228, 212, 156, + 203, 141, 14, 197, 19, 234, 148, 17, 40, 141, 236, 35, 49, + ], + [ + 173, 148, 235, 124, 235, 146, 153, 90, 15, 115, 1, 233, 109, 117, 216, 239, 79, 144, + 231, 37, 188, 189, 78, 29, 133, 26, 176, 109, 177, 234, 202, 59, + ], + [ + 10, 38, 232, 241, 157, 38, 214, 76, 198, 109, 162, 131, 127, 3, 40, 15, 48, 195, 47, + 211, 52, 8, 0, 189, 126, 120, 13, 42, 238, 226, 225, 3, + ], + [ + 243, 73, 44, 63, 255, 180, 74, 70, 135, 143, 219, 51, 6, 159, 80, 154, 210, 51, 241, + 230, 40, 249, 80, 106, 102, 166, 7, 155, 194, 38, 33, 17, + ], + [ + 191, 105, 232, 173, 147, 80, 10, 21, 203, 53, 211, 74, 36, 15, 3, 188, 128, 47, 9, 186, + 83, 202, 36, 81, 138, 63, 148, 167, 137, 35, 147, 19, + ], + ], + [ + [ + 236, 196, 10, 96, 182, 79, 154, 55, 78, 33, 43, 127, 92, 81, 212, 66, 30, 0, 86, 117, + 207, 159, 3, 186, 59, 148, 154, 200, 141, 92, 147, 27, + ], + [ + 225, 90, 178, 233, 102, 159, 82, 225, 166, 129, 39, 34, 244, 250, 228, 100, 134, 200, + 148, 85, 91, 43, 105, 75, 200, 87, 81, 59, 40, 193, 211, 55, + ], + [ + 59, 148, 63, 224, 145, 150, 218, 137, 164, 83, 27, 147, 217, 75, 108, 182, 36, 204, + 121, 133, 12, 8, 235, 64, 128, 244, 34, 13, 9, 72, 63, 28, + ], + [ + 212, 212, 49, 80, 78, 45, 56, 203, 40, 249, 128, 137, 185, 87, 92, 47, 146, 177, 132, + 62, 215, 25, 127, 115, 205, 101, 6, 154, 76, 80, 114, 18, + ], + [ + 176, 192, 244, 210, 165, 138, 232, 75, 159, 72, 99, 239, 121, 37, 50, 114, 181, 220, + 176, 22, 164, 127, 221, 10, 193, 99, 140, 15, 204, 86, 212, 53, + ], + [ + 159, 147, 161, 250, 222, 214, 217, 27, 87, 5, 8, 226, 156, 162, 178, 255, 170, 187, + 200, 161, 26, 195, 99, 180, 246, 102, 210, 123, 107, 242, 173, 35, + ], + [ + 147, 2, 204, 135, 133, 234, 183, 133, 186, 151, 248, 180, 75, 13, 40, 56, 145, 134, + 209, 237, 43, 6, 107, 52, 33, 206, 165, 226, 205, 75, 28, 21, + ], + [ + 30, 67, 172, 233, 205, 173, 245, 113, 133, 159, 28, 77, 133, 209, 85, 173, 163, 43, + 138, 208, 96, 215, 181, 142, 133, 151, 156, 36, 126, 32, 68, 7, + ], + ], + [ + [ + 12, 123, 146, 187, 79, 71, 121, 126, 110, 67, 163, 209, 185, 8, 43, 250, 139, 95, 132, + 9, 141, 123, 120, 25, 113, 59, 253, 85, 72, 170, 199, 27, + ], + [ + 148, 38, 17, 234, 63, 253, 30, 242, 241, 113, 82, 233, 175, 17, 227, 75, 172, 25, 1, + 230, 87, 107, 49, 184, 36, 27, 255, 135, 253, 15, 42, 18, + ], + [ + 57, 122, 227, 248, 85, 40, 238, 252, 56, 46, 59, 209, 214, 24, 129, 169, 59, 35, 169, + 94, 189, 126, 146, 19, 162, 186, 148, 249, 170, 190, 218, 36, + ], + [ + 72, 154, 129, 64, 173, 23, 154, 53, 215, 48, 178, 84, 152, 160, 105, 56, 49, 219, 11, + 6, 196, 221, 55, 85, 72, 129, 149, 148, 178, 165, 20, 61, + ], + [ + 211, 89, 31, 7, 22, 111, 165, 192, 156, 164, 251, 69, 251, 72, 208, 157, 53, 57, 144, + 72, 12, 146, 11, 14, 145, 181, 14, 68, 237, 120, 174, 4, + ], + [ + 18, 115, 60, 134, 217, 114, 253, 177, 223, 163, 10, 83, 103, 37, 178, 69, 3, 78, 164, + 2, 35, 65, 2, 219, 93, 141, 186, 80, 20, 166, 103, 43, + ], + [ + 110, 16, 223, 29, 240, 124, 98, 122, 115, 98, 200, 21, 240, 17, 173, 209, 114, 172, + 198, 226, 17, 201, 34, 247, 39, 15, 246, 75, 212, 48, 39, 11, + ], + [ + 249, 114, 161, 95, 41, 76, 181, 17, 119, 208, 229, 87, 84, 28, 170, 246, 144, 202, 188, + 5, 49, 53, 77, 232, 8, 6, 247, 81, 111, 232, 35, 57, + ], + ], + [ + [ + 166, 191, 70, 138, 155, 151, 236, 84, 96, 249, 99, 236, 45, 137, 97, 90, 167, 20, 174, + 149, 119, 233, 203, 65, 37, 72, 157, 86, 249, 111, 56, 60, + ], + [ + 43, 38, 90, 143, 119, 212, 89, 41, 208, 243, 146, 176, 197, 213, 11, 165, 57, 6, 3, + 139, 45, 156, 142, 42, 177, 203, 207, 69, 121, 180, 159, 39, + ], + [ + 55, 217, 98, 174, 52, 172, 195, 38, 151, 240, 237, 116, 26, 43, 119, 0, 126, 67, 123, + 173, 195, 172, 254, 130, 16, 111, 177, 190, 128, 161, 192, 9, + ], + [ + 73, 205, 70, 151, 40, 112, 216, 117, 3, 99, 187, 10, 34, 53, 109, 94, 0, 225, 52, 200, + 127, 182, 30, 45, 188, 66, 50, 192, 179, 24, 235, 42, + ], + [ + 8, 249, 190, 160, 146, 39, 217, 65, 210, 62, 89, 36, 4, 149, 125, 101, 32, 202, 88, 37, + 16, 29, 219, 53, 204, 32, 1, 228, 3, 121, 6, 21, + ], + [ + 205, 41, 152, 28, 50, 10, 231, 209, 244, 103, 159, 116, 223, 92, 92, 246, 192, 171, 38, + 66, 116, 104, 90, 75, 238, 94, 179, 10, 71, 73, 189, 57, + ], + [ + 28, 180, 207, 160, 147, 83, 83, 148, 184, 113, 208, 92, 58, 143, 129, 211, 108, 26, 86, + 119, 117, 184, 154, 40, 181, 24, 6, 90, 11, 150, 28, 38, + ], + [ + 144, 187, 91, 40, 224, 180, 119, 167, 173, 26, 227, 221, 172, 189, 180, 197, 52, 233, + 39, 112, 179, 40, 22, 182, 41, 225, 104, 21, 8, 96, 166, 51, + ], + ], + [ + [ + 118, 105, 175, 214, 145, 170, 223, 7, 51, 179, 133, 78, 187, 138, 233, 70, 53, 182, + 238, 228, 35, 55, 107, 18, 52, 34, 86, 113, 121, 120, 97, 8, + ], + [ + 136, 52, 133, 99, 235, 32, 133, 156, 69, 187, 203, 147, 116, 160, 103, 12, 154, 202, + 135, 55, 163, 214, 96, 56, 11, 53, 23, 149, 77, 160, 189, 36, + ], + [ + 46, 168, 103, 19, 16, 88, 71, 160, 190, 241, 72, 249, 169, 10, 141, 151, 42, 14, 129, + 36, 184, 162, 230, 186, 51, 234, 169, 202, 221, 129, 188, 47, + ], + [ + 94, 22, 119, 86, 162, 42, 146, 178, 116, 23, 102, 176, 181, 124, 222, 250, 98, 251, + 121, 116, 211, 152, 216, 137, 68, 158, 133, 226, 124, 183, 135, 22, + ], + [ + 247, 213, 253, 212, 198, 6, 78, 30, 223, 210, 220, 205, 100, 129, 193, 27, 248, 74, 60, + 30, 35, 4, 143, 42, 249, 183, 78, 209, 154, 199, 38, 53, + ], + [ + 226, 200, 233, 87, 125, 230, 129, 209, 4, 2, 105, 213, 112, 223, 41, 44, 9, 120, 65, + 10, 131, 60, 123, 29, 20, 11, 33, 217, 153, 65, 91, 39, + ], + [ + 155, 153, 145, 173, 223, 141, 69, 150, 77, 108, 185, 23, 158, 178, 160, 123, 90, 218, + 166, 40, 80, 206, 252, 227, 104, 248, 194, 61, 88, 204, 154, 8, + ], + [ + 142, 151, 153, 200, 56, 160, 131, 14, 164, 106, 30, 83, 29, 118, 48, 143, 222, 57, 93, + 202, 102, 18, 253, 130, 35, 72, 38, 19, 42, 58, 106, 41, + ], + ], + [ + [ + 23, 79, 174, 233, 153, 156, 213, 212, 214, 92, 159, 141, 29, 229, 223, 133, 240, 209, + 79, 184, 66, 96, 27, 101, 214, 54, 86, 241, 99, 56, 51, 46, + ], + [ + 119, 55, 21, 173, 29, 13, 198, 88, 92, 46, 235, 147, 188, 255, 90, 77, 8, 136, 101, + 250, 53, 209, 119, 162, 7, 76, 17, 162, 29, 199, 118, 39, + ], + [ + 8, 253, 207, 82, 23, 175, 92, 88, 155, 246, 195, 146, 200, 200, 105, 255, 61, 115, 151, + 166, 124, 64, 220, 17, 100, 86, 20, 203, 125, 3, 221, 36, + ], + [ + 174, 75, 215, 152, 74, 10, 18, 7, 252, 162, 23, 11, 68, 157, 89, 226, 95, 128, 7, 78, + 23, 165, 37, 157, 141, 175, 117, 23, 234, 123, 72, 42, + ], + [ + 133, 181, 221, 30, 165, 125, 199, 148, 83, 133, 250, 164, 209, 152, 68, 72, 34, 196, + 80, 12, 224, 123, 47, 42, 221, 191, 74, 161, 197, 203, 235, 32, + ], + [ + 27, 29, 142, 238, 251, 254, 200, 233, 42, 77, 207, 93, 95, 197, 163, 242, 93, 134, 230, + 18, 210, 156, 93, 167, 113, 16, 49, 46, 123, 218, 178, 61, + ], + [ + 118, 213, 164, 221, 213, 78, 38, 138, 116, 99, 222, 183, 249, 126, 137, 103, 13, 10, + 153, 232, 108, 250, 220, 187, 195, 166, 238, 223, 42, 124, 91, 10, + ], + [ + 25, 143, 13, 156, 46, 146, 125, 162, 179, 244, 52, 49, 47, 142, 84, 241, 15, 96, 35, + 122, 26, 175, 155, 30, 133, 224, 76, 77, 136, 128, 198, 6, + ], + ], + [ + [ + 228, 4, 100, 254, 64, 122, 195, 101, 45, 240, 33, 189, 172, 246, 68, 35, 204, 229, 42, + 174, 120, 197, 247, 7, 61, 33, 16, 165, 182, 175, 213, 43, + ], + [ + 95, 82, 224, 168, 92, 69, 52, 224, 169, 53, 233, 52, 82, 158, 169, 80, 71, 142, 135, + 177, 107, 103, 114, 1, 245, 144, 160, 123, 8, 185, 118, 12, + ], + [ + 67, 145, 142, 236, 153, 196, 179, 180, 101, 10, 152, 214, 130, 7, 187, 152, 147, 177, + 234, 96, 10, 16, 126, 208, 89, 163, 239, 38, 237, 148, 11, 29, + ], + [ + 10, 227, 59, 211, 209, 116, 53, 110, 240, 229, 85, 169, 227, 37, 187, 141, 76, 185, + 215, 142, 202, 158, 100, 104, 52, 107, 179, 66, 237, 8, 203, 51, + ], + [ + 158, 60, 113, 87, 219, 161, 5, 234, 31, 203, 166, 8, 226, 230, 59, 175, 238, 85, 94, + 39, 197, 52, 79, 172, 93, 55, 160, 241, 119, 43, 48, 27, + ], + [ + 214, 132, 49, 107, 226, 92, 16, 179, 190, 128, 224, 62, 190, 5, 135, 116, 189, 57, 80, + 246, 109, 33, 9, 96, 231, 206, 202, 64, 169, 175, 222, 2, + ], + [ + 211, 188, 126, 110, 204, 200, 213, 50, 216, 49, 204, 224, 253, 245, 57, 139, 185, 75, + 226, 85, 128, 149, 32, 213, 127, 7, 127, 106, 139, 76, 93, 42, + ], + [ + 38, 227, 189, 95, 248, 213, 125, 206, 75, 148, 138, 153, 134, 92, 243, 67, 101, 42, 86, + 23, 28, 105, 5, 30, 72, 228, 21, 251, 56, 15, 104, 44, + ], + ], + [ + [ + 37, 51, 111, 189, 64, 200, 241, 35, 170, 63, 123, 104, 60, 201, 92, 104, 78, 13, 168, + 90, 133, 18, 74, 125, 137, 233, 244, 183, 194, 166, 136, 4, + ], + [ + 135, 115, 58, 240, 172, 155, 138, 72, 201, 245, 165, 132, 213, 230, 175, 122, 80, 137, + 12, 202, 51, 147, 254, 83, 83, 12, 24, 196, 127, 65, 29, 9, + ], + [ + 102, 193, 159, 222, 145, 157, 184, 248, 13, 50, 103, 129, 22, 72, 211, 169, 252, 59, + 21, 179, 8, 224, 191, 155, 105, 80, 205, 20, 126, 53, 167, 51, + ], + [ + 248, 10, 36, 176, 206, 117, 68, 20, 29, 159, 234, 75, 123, 229, 186, 211, 197, 38, 74, + 210, 209, 247, 75, 138, 105, 11, 213, 184, 88, 146, 169, 63, + ], + [ + 72, 92, 136, 57, 104, 244, 192, 189, 92, 229, 248, 238, 206, 124, 141, 216, 65, 129, + 74, 239, 127, 25, 111, 173, 5, 103, 127, 62, 158, 173, 150, 14, + ], + [ + 137, 66, 178, 24, 248, 195, 72, 192, 193, 118, 248, 34, 201, 117, 22, 68, 132, 3, 194, + 91, 96, 246, 119, 95, 73, 112, 14, 241, 140, 190, 209, 1, + ], + [ + 189, 118, 10, 191, 62, 184, 239, 63, 140, 57, 145, 76, 51, 251, 162, 162, 37, 175, 50, + 68, 158, 17, 225, 79, 180, 153, 166, 114, 251, 155, 69, 33, + ], + [ + 59, 192, 204, 241, 201, 5, 189, 79, 249, 152, 117, 146, 123, 43, 151, 111, 131, 23, + 129, 192, 167, 112, 132, 40, 171, 94, 90, 212, 100, 52, 48, 28, + ], + ], + [ + [ + 160, 245, 228, 171, 90, 165, 111, 25, 114, 50, 116, 39, 201, 216, 29, 129, 112, 207, + 152, 165, 48, 118, 172, 101, 106, 76, 4, 16, 248, 172, 170, 39, + ], + [ + 60, 126, 38, 248, 48, 18, 168, 77, 10, 58, 62, 36, 45, 84, 12, 6, 72, 185, 147, 255, + 88, 135, 221, 226, 229, 114, 39, 186, 151, 16, 175, 17, + ], + [ + 62, 55, 177, 217, 205, 252, 191, 205, 39, 137, 103, 195, 252, 240, 216, 28, 24, 138, + 162, 54, 48, 159, 17, 103, 110, 255, 103, 3, 150, 20, 31, 15, + ], + [ + 120, 251, 98, 40, 80, 237, 108, 131, 14, 65, 116, 12, 242, 115, 26, 181, 106, 240, 90, + 13, 158, 21, 68, 3, 88, 14, 59, 191, 63, 253, 247, 19, + ], + [ + 218, 240, 72, 194, 44, 92, 246, 87, 69, 50, 34, 84, 102, 185, 46, 200, 68, 10, 145, 56, + 10, 240, 100, 73, 125, 33, 207, 254, 198, 215, 119, 23, + ], + [ + 166, 98, 74, 208, 109, 114, 207, 207, 253, 137, 146, 124, 252, 37, 92, 142, 72, 195, + 79, 128, 83, 3, 62, 182, 252, 140, 69, 112, 81, 35, 14, 63, + ], + [ + 216, 80, 1, 36, 96, 224, 105, 59, 214, 215, 53, 144, 31, 78, 236, 102, 94, 23, 217, + 195, 69, 74, 56, 14, 28, 241, 94, 33, 216, 166, 153, 47, + ], + [ + 239, 70, 89, 170, 122, 62, 9, 125, 238, 216, 0, 168, 95, 170, 65, 156, 31, 4, 6, 163, + 64, 110, 235, 190, 227, 59, 9, 254, 83, 42, 179, 19, + ], + ], + [ + [ + 231, 7, 127, 64, 136, 255, 178, 190, 36, 15, 199, 117, 145, 167, 218, 125, 217, 43, + 195, 87, 29, 177, 173, 97, 128, 42, 111, 135, 122, 245, 128, 55, + ], + [ + 35, 175, 64, 138, 189, 200, 135, 138, 203, 147, 145, 199, 126, 81, 114, 39, 30, 64, 73, + 90, 94, 109, 230, 69, 49, 71, 190, 180, 50, 10, 203, 20, + ], + [ + 110, 75, 166, 243, 255, 128, 242, 208, 67, 78, 166, 29, 124, 54, 56, 160, 106, 113, + 190, 155, 58, 241, 21, 161, 93, 198, 173, 46, 251, 76, 109, 34, + ], + [ + 18, 157, 21, 73, 163, 78, 187, 222, 155, 123, 56, 158, 35, 155, 108, 36, 154, 199, 10, + 39, 245, 212, 70, 250, 249, 38, 212, 21, 226, 178, 136, 44, + ], + [ + 135, 162, 176, 158, 247, 168, 215, 162, 0, 67, 153, 248, 4, 101, 176, 233, 224, 73, + 213, 227, 132, 34, 140, 44, 207, 79, 194, 198, 151, 218, 52, 50, + ], + [ + 201, 18, 231, 111, 222, 85, 53, 39, 138, 60, 182, 53, 132, 16, 164, 42, 57, 56, 88, + 234, 13, 162, 66, 189, 142, 130, 211, 204, 252, 71, 47, 16, + ], + [ + 91, 194, 190, 127, 41, 158, 183, 169, 31, 35, 96, 249, 162, 84, 132, 230, 161, 243, + 170, 226, 210, 24, 14, 186, 83, 31, 210, 85, 195, 185, 24, 20, + ], + [ + 217, 59, 106, 21, 76, 11, 79, 85, 36, 138, 162, 208, 13, 136, 63, 206, 136, 158, 34, + 207, 169, 168, 252, 135, 67, 172, 77, 234, 167, 29, 87, 45, + ], + ], + [ + [ + 228, 252, 249, 53, 147, 111, 53, 172, 223, 102, 206, 74, 150, 3, 55, 233, 88, 23, 159, + 60, 57, 46, 186, 171, 76, 170, 249, 69, 244, 79, 192, 30, + ], + [ + 128, 217, 236, 6, 89, 109, 19, 109, 108, 57, 35, 181, 116, 110, 215, 182, 43, 137, 252, + 11, 156, 212, 132, 209, 86, 87, 8, 233, 186, 24, 134, 41, + ], + [ + 159, 52, 52, 246, 254, 33, 247, 217, 161, 118, 36, 12, 186, 90, 199, 184, 112, 54, 159, + 71, 21, 210, 38, 191, 179, 162, 228, 205, 173, 111, 182, 43, + ], + [ + 19, 68, 116, 77, 123, 197, 44, 57, 140, 130, 231, 218, 37, 95, 228, 61, 81, 117, 38, + 22, 118, 84, 173, 119, 161, 183, 187, 24, 201, 83, 166, 40, + ], + [ + 203, 74, 138, 253, 8, 155, 80, 99, 82, 194, 145, 185, 32, 193, 80, 85, 61, 166, 71, 92, + 106, 41, 55, 60, 40, 237, 54, 145, 112, 90, 104, 41, + ], + [ + 152, 100, 177, 4, 228, 177, 130, 52, 85, 136, 118, 163, 98, 102, 225, 225, 113, 159, + 224, 37, 25, 80, 112, 245, 96, 183, 221, 146, 174, 25, 48, 41, + ], + [ + 124, 166, 27, 180, 114, 17, 98, 30, 99, 232, 181, 40, 65, 191, 114, 222, 48, 209, 53, + 93, 98, 38, 42, 146, 68, 143, 229, 208, 46, 178, 238, 62, + ], + [ + 238, 242, 49, 191, 50, 111, 197, 182, 193, 77, 103, 223, 113, 224, 125, 195, 23, 135, + 50, 145, 77, 171, 82, 132, 173, 196, 80, 142, 107, 157, 142, 29, + ], + ], + [ + [ + 82, 195, 210, 133, 249, 13, 111, 212, 92, 164, 28, 91, 160, 60, 34, 35, 243, 234, 176, + 255, 53, 140, 151, 76, 109, 87, 182, 16, 14, 250, 248, 2, + ], + [ + 130, 201, 107, 39, 163, 233, 135, 216, 65, 13, 199, 247, 155, 234, 100, 133, 254, 230, + 170, 109, 170, 222, 252, 40, 68, 48, 107, 211, 83, 112, 240, 60, + ], + [ + 30, 28, 129, 71, 31, 137, 206, 248, 195, 232, 69, 203, 96, 43, 67, 68, 33, 187, 167, + 235, 204, 62, 103, 193, 206, 147, 89, 203, 190, 181, 114, 10, + ], + [ + 127, 36, 5, 200, 56, 245, 144, 50, 154, 33, 53, 7, 127, 232, 151, 11, 124, 180, 160, + 89, 172, 138, 214, 238, 131, 54, 191, 199, 206, 111, 61, 23, + ], + [ + 146, 197, 178, 24, 254, 19, 211, 232, 156, 144, 13, 104, 87, 52, 25, 6, 187, 206, 19, + 91, 43, 70, 93, 18, 227, 52, 139, 210, 183, 88, 127, 36, + ], + [ + 113, 170, 45, 153, 118, 29, 249, 241, 96, 85, 78, 221, 223, 55, 10, 199, 137, 15, 230, + 113, 214, 92, 169, 32, 58, 251, 62, 186, 233, 37, 32, 1, + ], + [ + 47, 80, 145, 109, 177, 172, 202, 217, 197, 228, 249, 136, 223, 48, 136, 55, 244, 227, + 206, 93, 78, 84, 183, 243, 203, 98, 169, 196, 103, 39, 76, 48, + ], + [ + 32, 251, 111, 146, 107, 57, 148, 119, 188, 206, 74, 49, 89, 16, 106, 149, 111, 90, 210, + 38, 142, 50, 196, 143, 191, 133, 221, 123, 219, 205, 157, 15, + ], + ], + [ + [ + 124, 193, 251, 119, 28, 89, 69, 168, 245, 164, 145, 5, 34, 127, 237, 40, 9, 194, 222, + 92, 5, 254, 145, 164, 238, 22, 168, 97, 39, 63, 63, 48, + ], + [ + 128, 14, 241, 12, 198, 51, 53, 31, 29, 56, 116, 167, 33, 172, 77, 124, 84, 230, 106, + 120, 94, 231, 26, 253, 29, 246, 251, 225, 144, 208, 93, 41, + ], + [ + 145, 233, 236, 72, 57, 76, 123, 17, 55, 100, 127, 228, 145, 32, 165, 62, 23, 123, 121, + 2, 13, 178, 199, 180, 214, 163, 228, 157, 63, 135, 187, 30, + ], + [ + 76, 75, 200, 240, 37, 16, 184, 100, 38, 65, 206, 138, 92, 149, 194, 84, 241, 42, 194, + 161, 149, 93, 182, 230, 110, 171, 51, 65, 219, 158, 252, 19, + ], + [ + 169, 156, 202, 117, 173, 222, 62, 242, 203, 66, 26, 216, 9, 92, 112, 184, 46, 165, 52, + 160, 114, 38, 68, 43, 148, 62, 30, 121, 26, 192, 152, 0, + ], + [ + 38, 77, 105, 144, 232, 160, 9, 77, 14, 96, 247, 59, 109, 53, 101, 114, 55, 121, 243, + 111, 90, 240, 61, 220, 55, 0, 114, 64, 49, 194, 37, 63, + ], + [ + 94, 199, 2, 248, 34, 232, 68, 130, 1, 237, 3, 73, 251, 153, 188, 183, 202, 133, 201, + 127, 244, 156, 184, 58, 22, 53, 115, 184, 107, 251, 115, 41, + ], + [ + 44, 105, 2, 121, 133, 252, 4, 51, 135, 185, 18, 240, 184, 64, 39, 128, 126, 216, 168, + 25, 54, 230, 96, 205, 156, 5, 228, 79, 121, 245, 0, 37, + ], + ], + [ + [ + 26, 227, 128, 219, 221, 39, 112, 88, 84, 130, 216, 87, 157, 119, 89, 202, 85, 179, 237, + 107, 51, 211, 185, 30, 143, 196, 239, 4, 187, 89, 157, 46, + ], + [ + 11, 54, 239, 254, 23, 23, 81, 152, 249, 219, 38, 144, 14, 66, 140, 19, 125, 160, 65, + 238, 136, 168, 185, 167, 131, 60, 217, 246, 38, 125, 58, 35, + ], + [ + 157, 212, 24, 185, 100, 207, 250, 73, 82, 53, 146, 208, 36, 19, 63, 130, 58, 99, 61, + 79, 153, 247, 2, 65, 234, 255, 31, 19, 13, 168, 227, 45, + ], + [ + 36, 219, 99, 139, 180, 218, 207, 143, 166, 191, 127, 239, 60, 76, 145, 170, 56, 128, + 112, 71, 49, 92, 121, 144, 212, 14, 21, 80, 66, 58, 141, 30, + ], + [ + 36, 182, 110, 54, 159, 120, 85, 112, 6, 158, 77, 194, 157, 33, 36, 82, 2, 190, 84, 155, + 101, 244, 186, 202, 94, 98, 115, 72, 231, 202, 129, 55, + ], + [ + 39, 152, 205, 65, 57, 155, 123, 160, 72, 205, 121, 246, 119, 90, 39, 77, 49, 95, 30, + 159, 243, 241, 69, 154, 109, 150, 235, 177, 140, 158, 197, 50, + ], + [ + 101, 168, 129, 120, 249, 152, 206, 97, 236, 88, 65, 123, 54, 174, 153, 187, 243, 114, + 75, 24, 105, 33, 133, 230, 209, 159, 244, 92, 139, 79, 29, 60, + ], + [ + 159, 56, 171, 163, 194, 74, 206, 171, 192, 125, 50, 168, 220, 194, 217, 246, 53, 51, + 143, 119, 97, 16, 102, 154, 202, 171, 112, 0, 9, 76, 52, 33, + ], + ], + [ + [ + 109, 67, 166, 112, 18, 88, 181, 61, 137, 12, 191, 223, 140, 243, 174, 222, 244, 102, + 170, 101, 139, 159, 219, 120, 143, 31, 69, 70, 172, 184, 26, 47, + ], + [ + 49, 226, 39, 237, 179, 21, 55, 83, 139, 192, 65, 216, 225, 192, 239, 65, 235, 37, 109, + 139, 101, 80, 151, 15, 183, 1, 40, 226, 236, 136, 173, 62, + ], + [ + 132, 87, 121, 118, 184, 56, 103, 98, 191, 218, 47, 214, 204, 128, 57, 24, 141, 86, 189, + 135, 180, 249, 214, 40, 206, 182, 57, 238, 90, 133, 168, 5, + ], + [ + 60, 151, 209, 75, 237, 97, 152, 67, 235, 169, 140, 65, 35, 251, 107, 207, 254, 72, 81, + 3, 244, 168, 187, 246, 125, 37, 167, 104, 81, 165, 105, 34, + ], + [ + 231, 77, 104, 60, 44, 124, 228, 21, 207, 19, 248, 89, 180, 91, 64, 64, 251, 244, 223, + 207, 76, 3, 207, 142, 92, 16, 177, 109, 3, 141, 225, 16, + ], + [ + 229, 156, 173, 75, 130, 73, 204, 213, 61, 179, 238, 170, 15, 77, 113, 178, 84, 151, + 137, 159, 149, 224, 204, 243, 232, 113, 208, 238, 82, 107, 180, 32, + ], + [ + 136, 153, 152, 220, 13, 5, 102, 224, 162, 188, 90, 143, 119, 179, 243, 104, 91, 134, + 56, 22, 5, 152, 153, 17, 234, 167, 107, 234, 16, 66, 85, 34, + ], + [ + 130, 45, 164, 141, 146, 197, 199, 12, 51, 82, 156, 32, 239, 243, 29, 170, 63, 17, 153, + 176, 150, 114, 38, 219, 27, 107, 187, 72, 32, 106, 68, 20, + ], + ], + [ + [ + 51, 54, 182, 167, 147, 255, 80, 103, 13, 213, 237, 114, 233, 242, 173, 177, 188, 54, 5, + 143, 165, 220, 114, 249, 175, 171, 173, 188, 4, 162, 62, 26, + ], + [ + 241, 98, 202, 23, 140, 169, 52, 94, 94, 232, 69, 90, 53, 215, 112, 146, 164, 223, 204, + 33, 208, 138, 238, 181, 48, 56, 243, 170, 171, 35, 126, 48, + ], + [ + 56, 210, 32, 249, 23, 217, 198, 162, 239, 118, 198, 97, 177, 72, 116, 153, 131, 248, + 194, 171, 180, 33, 195, 66, 159, 125, 110, 230, 56, 89, 15, 9, + ], + [ + 5, 133, 98, 216, 11, 182, 6, 102, 218, 117, 248, 20, 242, 170, 0, 183, 178, 30, 67, + 211, 90, 255, 24, 70, 135, 65, 114, 85, 238, 29, 70, 40, + ], + [ + 102, 170, 201, 230, 61, 107, 34, 64, 162, 224, 15, 128, 93, 20, 103, 143, 19, 116, 25, + 123, 93, 16, 154, 219, 136, 216, 69, 185, 35, 126, 242, 30, + ], + [ + 204, 190, 215, 249, 104, 142, 254, 130, 121, 238, 163, 234, 63, 91, 230, 251, 121, 201, + 127, 69, 0, 121, 61, 203, 137, 2, 77, 227, 203, 127, 89, 44, + ], + [ + 159, 236, 163, 243, 192, 6, 217, 134, 210, 91, 90, 137, 46, 126, 9, 76, 108, 26, 31, + 241, 181, 180, 29, 63, 62, 119, 7, 143, 166, 173, 8, 6, + ], + [ + 8, 238, 253, 27, 28, 102, 219, 25, 139, 220, 55, 32, 203, 141, 243, 93, 224, 72, 195, + 75, 45, 78, 151, 142, 71, 137, 38, 141, 205, 102, 85, 35, + ], + ], + [ + [ + 98, 124, 121, 75, 138, 47, 120, 198, 57, 252, 117, 98, 53, 109, 168, 113, 235, 254, + 170, 23, 167, 88, 117, 230, 246, 7, 189, 223, 21, 12, 28, 43, + ], + [ + 172, 101, 158, 162, 23, 10, 251, 252, 92, 152, 13, 48, 159, 45, 112, 195, 149, 53, 198, + 137, 77, 177, 135, 21, 86, 161, 36, 67, 10, 84, 115, 59, + ], + [ + 89, 60, 73, 153, 180, 157, 56, 238, 205, 197, 102, 16, 177, 170, 181, 232, 46, 160, + 135, 229, 62, 155, 44, 183, 1, 70, 211, 211, 124, 120, 222, 26, + ], + [ + 126, 135, 102, 76, 24, 172, 65, 102, 115, 181, 92, 106, 34, 101, 203, 56, 249, 148, 93, + 125, 212, 127, 82, 177, 180, 49, 119, 240, 169, 234, 9, 49, + ], + [ + 71, 143, 202, 34, 243, 214, 106, 210, 230, 70, 197, 6, 173, 230, 236, 14, 39, 19, 42, + 121, 111, 148, 97, 89, 223, 152, 217, 77, 66, 193, 126, 54, + ], + [ + 81, 149, 56, 199, 215, 100, 87, 71, 249, 207, 114, 45, 137, 99, 209, 60, 26, 92, 202, + 131, 184, 151, 170, 22, 219, 93, 71, 234, 107, 142, 232, 59, + ], + [ + 17, 166, 47, 181, 47, 121, 77, 103, 36, 162, 150, 155, 54, 127, 29, 40, 219, 189, 57, + 150, 76, 147, 110, 67, 241, 212, 104, 10, 154, 50, 48, 17, + ], + [ + 20, 246, 109, 111, 72, 251, 94, 213, 187, 51, 196, 220, 212, 10, 167, 224, 102, 27, + 115, 235, 106, 242, 214, 243, 148, 66, 111, 9, 221, 230, 224, 13, + ], + ], + [ + [ + 158, 218, 203, 21, 240, 183, 105, 204, 138, 99, 207, 223, 104, 252, 85, 27, 195, 215, + 225, 142, 69, 132, 177, 232, 49, 174, 246, 78, 103, 125, 17, 29, + ], + [ + 228, 101, 236, 222, 176, 167, 152, 154, 183, 104, 237, 123, 248, 121, 232, 69, 215, + 181, 73, 228, 140, 179, 94, 40, 67, 69, 67, 102, 154, 223, 122, 51, + ], + [ + 248, 30, 67, 220, 168, 33, 81, 46, 96, 22, 94, 129, 31, 130, 56, 223, 184, 1, 198, 98, + 212, 233, 165, 210, 145, 4, 100, 44, 234, 75, 14, 6, + ], + [ + 176, 203, 91, 145, 241, 154, 103, 144, 187, 208, 156, 255, 219, 145, 244, 86, 128, 136, + 123, 221, 50, 148, 156, 138, 187, 15, 153, 186, 86, 77, 138, 8, + ], + [ + 180, 19, 118, 126, 101, 180, 248, 122, 194, 255, 63, 91, 186, 33, 147, 163, 36, 254, + 211, 96, 175, 110, 18, 140, 9, 76, 246, 237, 146, 1, 231, 12, + ], + [ + 88, 60, 192, 62, 79, 179, 180, 200, 248, 127, 196, 132, 80, 39, 113, 255, 229, 201, + 241, 38, 97, 34, 4, 49, 232, 50, 107, 64, 4, 224, 224, 37, + ], + [ + 149, 121, 11, 212, 194, 55, 251, 28, 119, 100, 176, 84, 249, 60, 182, 190, 221, 64, + 228, 2, 214, 39, 56, 220, 227, 136, 228, 13, 141, 159, 245, 42, + ], + [ + 60, 243, 115, 233, 255, 140, 63, 231, 210, 14, 155, 130, 118, 194, 7, 141, 48, 173, + 107, 162, 177, 75, 123, 169, 232, 103, 73, 240, 67, 80, 57, 24, + ], + ], + [ + [ + 123, 136, 142, 35, 186, 163, 74, 144, 91, 217, 190, 33, 143, 34, 55, 166, 163, 87, 199, + 199, 13, 152, 48, 89, 144, 123, 47, 91, 121, 216, 134, 26, + ], + [ + 91, 28, 158, 185, 86, 38, 1, 159, 40, 166, 63, 248, 93, 73, 118, 55, 180, 26, 78, 86, + 42, 5, 98, 205, 83, 26, 145, 23, 158, 205, 197, 54, + ], + [ + 13, 183, 119, 158, 77, 201, 152, 68, 105, 136, 252, 223, 120, 231, 59, 72, 171, 229, + 90, 75, 140, 89, 17, 82, 61, 117, 213, 226, 128, 253, 101, 39, + ], + [ + 59, 213, 226, 8, 10, 97, 178, 127, 43, 50, 225, 84, 92, 71, 0, 6, 25, 254, 192, 225, + 129, 154, 45, 197, 149, 89, 51, 131, 185, 23, 99, 50, + ], + [ + 86, 45, 93, 113, 243, 120, 77, 157, 17, 22, 33, 162, 239, 86, 34, 58, 187, 204, 242, + 211, 193, 192, 149, 103, 35, 85, 43, 239, 101, 191, 214, 23, + ], + [ + 46, 196, 68, 68, 11, 189, 17, 137, 247, 165, 190, 8, 171, 95, 251, 9, 230, 51, 75, 122, + 196, 72, 18, 142, 118, 216, 157, 154, 149, 160, 68, 23, + ], + [ + 135, 237, 213, 40, 201, 43, 82, 54, 223, 17, 46, 232, 102, 235, 40, 83, 119, 29, 149, + 23, 11, 62, 225, 95, 65, 46, 134, 46, 176, 242, 155, 0, + ], + [ + 253, 9, 210, 43, 163, 50, 199, 172, 36, 116, 174, 131, 178, 56, 211, 11, 88, 67, 68, + 216, 138, 157, 28, 47, 254, 216, 114, 210, 142, 206, 184, 55, + ], + ], + [ + [ + 197, 81, 131, 228, 67, 23, 186, 51, 177, 152, 255, 231, 198, 185, 86, 51, 221, 245, + 167, 67, 74, 178, 231, 210, 217, 140, 72, 202, 217, 176, 139, 60, + ], + [ + 84, 252, 34, 127, 193, 224, 200, 198, 234, 98, 124, 60, 4, 168, 73, 124, 79, 120, 198, + 114, 70, 123, 112, 62, 82, 53, 64, 80, 174, 183, 98, 6, + ], + [ + 199, 164, 163, 248, 113, 221, 67, 237, 201, 176, 1, 167, 144, 149, 235, 184, 83, 244, + 12, 92, 104, 253, 162, 59, 22, 201, 221, 234, 163, 224, 89, 5, + ], + [ + 87, 154, 186, 165, 223, 109, 104, 245, 249, 189, 175, 226, 10, 125, 198, 87, 129, 98, + 86, 13, 230, 38, 3, 66, 58, 175, 193, 243, 130, 7, 197, 41, + ], + [ + 71, 25, 97, 21, 122, 68, 82, 109, 212, 193, 136, 140, 58, 0, 12, 145, 215, 119, 7, 158, + 82, 133, 73, 16, 20, 124, 236, 178, 228, 255, 82, 37, + ], + [ + 3, 127, 251, 18, 54, 47, 117, 7, 70, 9, 116, 157, 145, 150, 42, 199, 157, 49, 154, 22, + 251, 13, 55, 97, 62, 218, 210, 141, 253, 191, 74, 6, + ], + [ + 173, 242, 97, 188, 114, 16, 6, 168, 246, 152, 247, 172, 229, 126, 102, 1, 15, 91, 193, + 129, 169, 34, 47, 166, 229, 92, 100, 13, 226, 74, 56, 52, + ], + [ + 37, 169, 210, 23, 92, 170, 67, 52, 168, 83, 127, 25, 142, 75, 150, 126, 218, 154, 237, + 239, 54, 45, 19, 253, 219, 252, 48, 37, 104, 56, 2, 21, + ], + ], + [ + [ + 60, 125, 249, 106, 109, 26, 169, 114, 202, 228, 129, 132, 38, 39, 147, 68, 43, 242, 79, + 218, 20, 31, 165, 156, 137, 220, 49, 241, 151, 247, 105, 53, + ], + [ + 212, 200, 140, 161, 15, 200, 20, 128, 243, 18, 105, 104, 217, 199, 147, 246, 93, 207, + 207, 122, 198, 145, 173, 157, 243, 84, 236, 192, 37, 75, 26, 18, + ], + [ + 48, 74, 217, 159, 193, 212, 181, 11, 109, 13, 103, 211, 74, 136, 28, 55, 187, 15, 70, + 196, 203, 198, 192, 71, 116, 32, 179, 94, 46, 123, 243, 62, + ], + [ + 32, 118, 247, 159, 253, 204, 153, 215, 217, 29, 212, 104, 196, 46, 55, 76, 139, 95, + 221, 156, 28, 206, 109, 199, 191, 207, 48, 128, 215, 199, 153, 14, + ], + [ + 243, 149, 62, 162, 172, 158, 84, 72, 94, 135, 29, 157, 48, 234, 186, 120, 34, 167, 217, + 200, 135, 119, 88, 173, 184, 86, 133, 70, 192, 84, 196, 57, + ], + [ + 244, 67, 190, 58, 76, 41, 196, 149, 51, 29, 81, 123, 148, 148, 73, 244, 118, 244, 250, + 41, 239, 117, 59, 26, 104, 33, 23, 149, 65, 244, 39, 33, + ], + [ + 54, 60, 215, 246, 79, 251, 104, 178, 207, 103, 237, 158, 80, 0, 147, 131, 213, 98, 195, + 57, 104, 115, 125, 246, 1, 99, 10, 173, 43, 139, 242, 1, + ], + [ + 84, 50, 191, 103, 217, 208, 123, 53, 160, 95, 108, 77, 170, 154, 202, 199, 67, 242, 75, + 192, 30, 171, 48, 213, 177, 52, 208, 103, 137, 76, 9, 0, + ], + ], + [ + [ + 198, 88, 29, 105, 10, 101, 59, 211, 37, 76, 97, 63, 188, 168, 187, 252, 174, 75, 103, + 28, 207, 172, 19, 47, 89, 231, 179, 10, 117, 142, 240, 27, + ], + [ + 37, 124, 164, 233, 8, 135, 109, 1, 136, 169, 167, 146, 195, 44, 71, 214, 193, 210, 10, + 250, 119, 80, 176, 97, 1, 122, 97, 4, 251, 47, 251, 14, + ], + [ + 189, 244, 239, 17, 181, 148, 184, 159, 229, 49, 128, 129, 26, 100, 215, 116, 27, 55, + 169, 152, 190, 16, 82, 32, 145, 95, 121, 181, 178, 107, 32, 38, + ], + [ + 208, 57, 233, 100, 166, 183, 132, 121, 242, 57, 169, 22, 247, 39, 94, 133, 137, 112, + 113, 87, 193, 38, 162, 181, 160, 250, 164, 231, 50, 189, 83, 18, + ], + [ + 89, 30, 89, 240, 145, 188, 55, 190, 206, 229, 82, 37, 221, 78, 109, 41, 114, 35, 237, + 224, 11, 114, 82, 220, 237, 91, 24, 25, 209, 240, 157, 54, + ], + [ + 53, 11, 143, 37, 127, 190, 2, 16, 220, 176, 53, 153, 217, 128, 213, 211, 52, 117, 20, + 40, 23, 78, 48, 220, 36, 118, 56, 67, 198, 220, 105, 61, + ], + [ + 130, 17, 90, 245, 190, 206, 74, 238, 215, 29, 201, 98, 113, 136, 240, 128, 69, 26, 86, + 198, 78, 240, 146, 69, 242, 168, 245, 180, 73, 231, 119, 3, + ], + [ + 117, 183, 82, 52, 195, 130, 3, 41, 1, 9, 249, 106, 246, 164, 128, 188, 215, 143, 162, + 187, 35, 36, 150, 143, 43, 50, 156, 147, 232, 175, 97, 49, + ], + ], + [ + [ + 38, 224, 69, 88, 100, 38, 34, 196, 95, 198, 226, 152, 100, 82, 198, 120, 108, 7, 59, + 14, 129, 184, 42, 54, 141, 209, 250, 70, 224, 158, 238, 62, + ], + [ + 39, 179, 16, 131, 80, 58, 46, 177, 58, 161, 92, 239, 226, 252, 174, 213, 245, 185, 34, + 111, 151, 92, 102, 16, 136, 219, 119, 113, 139, 136, 34, 3, + ], + [ + 150, 71, 69, 203, 65, 36, 72, 94, 92, 38, 188, 129, 142, 8, 151, 232, 181, 160, 72, + 169, 34, 41, 159, 165, 68, 204, 138, 253, 86, 27, 121, 25, + ], + [ + 39, 162, 63, 3, 162, 220, 95, 191, 231, 84, 23, 145, 162, 179, 153, 113, 214, 161, 86, + 3, 160, 28, 114, 83, 175, 233, 79, 73, 219, 69, 177, 9, + ], + [ + 137, 4, 29, 218, 129, 49, 228, 150, 66, 226, 72, 29, 194, 103, 28, 253, 238, 18, 6, 77, + 175, 84, 92, 130, 186, 220, 67, 10, 191, 26, 234, 28, + ], + [ + 84, 223, 200, 75, 221, 183, 164, 115, 0, 67, 189, 87, 45, 218, 79, 28, 148, 155, 97, + 88, 245, 71, 78, 252, 147, 23, 126, 73, 127, 176, 246, 40, + ], + [ + 179, 241, 1, 84, 103, 179, 254, 187, 112, 110, 174, 233, 19, 158, 3, 90, 250, 147, 45, + 63, 243, 166, 155, 159, 8, 234, 67, 205, 55, 245, 253, 14, + ], + [ + 226, 134, 21, 50, 73, 160, 26, 45, 255, 234, 88, 153, 31, 125, 250, 213, 120, 231, 112, + 91, 28, 234, 92, 44, 231, 118, 31, 130, 206, 179, 242, 8, + ], + ], + [ + [ + 167, 13, 48, 42, 131, 107, 78, 98, 138, 196, 106, 57, 105, 59, 218, 50, 239, 183, 45, + 39, 30, 212, 206, 92, 65, 91, 170, 52, 34, 57, 174, 11, + ], + [ + 217, 73, 127, 55, 81, 100, 78, 66, 157, 217, 177, 137, 100, 148, 138, 154, 9, 201, 139, + 236, 209, 100, 133, 99, 114, 87, 106, 9, 109, 201, 195, 11, + ], + [ + 94, 10, 206, 24, 189, 217, 152, 247, 221, 25, 15, 16, 3, 132, 132, 84, 101, 19, 137, + 74, 224, 150, 101, 239, 114, 174, 156, 74, 119, 58, 68, 13, + ], + [ + 23, 77, 197, 220, 177, 194, 206, 23, 139, 196, 0, 238, 80, 128, 118, 20, 243, 149, 74, + 32, 204, 153, 72, 26, 160, 54, 66, 168, 143, 169, 204, 51, + ], + [ + 40, 217, 104, 147, 156, 74, 178, 30, 32, 214, 13, 145, 178, 253, 53, 41, 125, 142, 47, + 40, 15, 49, 207, 85, 55, 217, 159, 250, 157, 91, 55, 55, + ], + [ + 40, 244, 153, 231, 80, 142, 238, 13, 177, 131, 169, 177, 186, 16, 151, 255, 8, 111, 47, + 152, 52, 15, 83, 240, 84, 197, 239, 128, 202, 202, 76, 30, + ], + [ + 250, 60, 71, 175, 180, 159, 32, 159, 225, 187, 30, 160, 169, 116, 171, 153, 23, 152, + 172, 89, 254, 12, 18, 217, 158, 115, 139, 123, 180, 230, 119, 58, + ], + [ + 208, 102, 76, 132, 87, 190, 6, 202, 244, 78, 197, 130, 183, 148, 55, 26, 61, 211, 35, + 148, 181, 36, 158, 12, 157, 120, 21, 100, 45, 85, 114, 5, + ], + ], + [ + [ + 154, 225, 115, 161, 18, 54, 207, 2, 188, 4, 87, 220, 139, 224, 192, 9, 203, 28, 219, + 127, 130, 225, 41, 129, 213, 5, 243, 222, 219, 195, 53, 54, + ], + [ + 112, 249, 215, 104, 105, 10, 110, 38, 76, 233, 154, 73, 92, 73, 120, 254, 31, 78, 198, + 139, 142, 165, 130, 70, 118, 175, 226, 90, 139, 203, 142, 30, + ], + [ + 98, 135, 112, 214, 115, 38, 47, 143, 75, 8, 199, 93, 243, 142, 80, 205, 242, 230, 144, + 69, 57, 131, 221, 123, 154, 254, 70, 177, 38, 5, 179, 55, + ], + [ + 172, 90, 158, 114, 79, 59, 0, 48, 148, 66, 138, 218, 129, 224, 130, 181, 91, 214, 102, + 138, 186, 20, 248, 111, 189, 6, 113, 155, 152, 70, 184, 53, + ], + [ + 93, 132, 123, 157, 80, 196, 33, 122, 74, 252, 53, 16, 109, 153, 14, 47, 185, 36, 0, + 205, 112, 169, 47, 118, 85, 10, 88, 148, 215, 102, 50, 49, + ], + [ + 227, 29, 11, 192, 11, 129, 121, 0, 224, 246, 251, 181, 43, 252, 124, 103, 158, 178, + 116, 105, 135, 194, 215, 0, 74, 24, 4, 103, 198, 99, 92, 62, + ], + [ + 215, 88, 93, 169, 126, 62, 12, 33, 41, 174, 153, 42, 94, 183, 54, 237, 185, 27, 82, + 137, 5, 203, 193, 5, 43, 214, 218, 227, 158, 86, 67, 11, + ], + [ + 204, 198, 113, 206, 88, 212, 218, 203, 76, 170, 88, 64, 85, 144, 199, 183, 19, 103, + 204, 12, 154, 29, 84, 152, 96, 147, 233, 62, 34, 37, 252, 19, + ], + ], + [ + [ + 22, 87, 1, 109, 71, 145, 157, 11, 187, 118, 148, 132, 206, 10, 133, 13, 217, 56, 66, + 83, 203, 55, 30, 139, 161, 158, 238, 242, 100, 169, 53, 2, + ], + [ + 71, 213, 215, 26, 60, 9, 211, 106, 70, 217, 178, 104, 196, 36, 165, 198, 160, 50, 164, + 0, 229, 135, 70, 162, 214, 3, 75, 70, 207, 163, 75, 56, + ], + [ + 221, 79, 237, 22, 189, 144, 124, 70, 190, 2, 159, 160, 123, 87, 13, 127, 179, 26, 237, + 107, 37, 252, 71, 33, 180, 38, 63, 45, 24, 235, 161, 20, + ], + [ + 187, 190, 72, 212, 201, 195, 98, 232, 141, 33, 40, 137, 167, 195, 147, 44, 89, 98, 212, + 216, 94, 167, 189, 122, 222, 141, 116, 37, 88, 168, 103, 17, + ], + [ + 239, 90, 233, 200, 169, 16, 109, 99, 224, 159, 160, 124, 212, 51, 244, 255, 153, 179, + 203, 234, 125, 186, 86, 67, 157, 144, 19, 254, 145, 81, 67, 37, + ], + [ + 43, 152, 102, 183, 158, 246, 197, 209, 214, 63, 126, 228, 123, 198, 231, 33, 187, 146, + 175, 159, 120, 2, 176, 113, 101, 202, 195, 61, 128, 217, 57, 41, + ], + [ + 34, 53, 55, 23, 239, 129, 15, 228, 220, 113, 238, 34, 251, 139, 231, 49, 202, 252, 146, + 71, 231, 123, 197, 152, 214, 254, 26, 213, 42, 141, 44, 59, + ], + [ + 14, 199, 227, 234, 179, 149, 80, 241, 36, 197, 33, 50, 41, 101, 228, 198, 1, 235, 176, + 65, 116, 150, 209, 35, 170, 142, 31, 4, 168, 133, 28, 25, + ], + ], + [ + [ + 227, 69, 192, 97, 61, 2, 159, 47, 31, 246, 219, 46, 10, 9, 197, 91, 223, 218, 48, 88, + 68, 196, 183, 101, 146, 42, 88, 243, 6, 163, 85, 24, + ], + [ + 133, 181, 41, 19, 10, 65, 213, 69, 31, 230, 153, 104, 99, 35, 68, 61, 213, 42, 252, + 215, 14, 69, 37, 225, 58, 113, 145, 234, 102, 36, 26, 61, + ], + [ + 36, 174, 201, 204, 110, 25, 137, 23, 88, 63, 173, 206, 140, 217, 221, 34, 191, 239, + 200, 133, 87, 234, 201, 114, 100, 21, 214, 213, 227, 116, 87, 43, + ], + [ + 33, 254, 187, 9, 6, 142, 196, 236, 174, 73, 115, 38, 11, 202, 94, 21, 232, 88, 10, 16, + 86, 137, 2, 114, 74, 232, 75, 217, 55, 154, 163, 36, + ], + [ + 61, 43, 128, 223, 251, 52, 151, 169, 224, 228, 34, 213, 36, 60, 191, 138, 119, 196, + 244, 87, 107, 167, 139, 227, 227, 36, 95, 70, 145, 206, 23, 59, + ], + [ + 149, 239, 176, 117, 82, 16, 109, 249, 224, 163, 81, 48, 91, 82, 238, 212, 205, 250, + 105, 102, 169, 8, 45, 218, 154, 106, 204, 233, 104, 179, 21, 47, + ], + [ + 136, 82, 212, 89, 173, 244, 117, 33, 77, 197, 211, 141, 19, 126, 62, 14, 18, 88, 118, + 61, 46, 233, 207, 23, 181, 122, 253, 31, 223, 68, 115, 44, + ], + [ + 230, 82, 213, 56, 121, 61, 11, 146, 68, 52, 147, 115, 18, 230, 149, 148, 48, 88, 173, + 238, 218, 98, 191, 129, 200, 222, 212, 245, 210, 215, 171, 28, + ], + ], + [ + [ + 191, 225, 193, 65, 70, 115, 255, 253, 40, 60, 196, 222, 142, 70, 14, 97, 163, 100, 23, + 145, 35, 160, 154, 227, 141, 93, 182, 222, 47, 174, 56, 40, + ], + [ + 197, 21, 27, 76, 137, 232, 211, 79, 171, 229, 90, 184, 215, 43, 72, 109, 244, 111, 249, + 227, 72, 76, 67, 98, 93, 71, 22, 15, 118, 88, 255, 26, + ], + [ + 171, 251, 162, 17, 102, 160, 158, 12, 84, 9, 1, 167, 213, 63, 157, 165, 63, 95, 171, + 233, 58, 186, 255, 70, 112, 8, 197, 221, 248, 175, 3, 11, + ], + [ + 211, 3, 175, 11, 139, 74, 240, 174, 110, 157, 211, 68, 153, 75, 254, 118, 192, 108, + 206, 103, 55, 115, 235, 149, 79, 220, 166, 192, 115, 153, 230, 48, + ], + [ + 27, 45, 52, 129, 100, 72, 202, 230, 149, 80, 18, 81, 42, 120, 156, 241, 218, 16, 49, + 65, 215, 124, 129, 56, 207, 166, 117, 199, 29, 53, 222, 26, + ], + [ + 76, 70, 58, 161, 96, 99, 111, 185, 67, 54, 34, 220, 49, 46, 125, 120, 115, 149, 96, + 111, 185, 212, 0, 186, 22, 117, 140, 245, 135, 179, 42, 19, + ], + [ + 66, 230, 5, 90, 123, 140, 234, 5, 139, 250, 44, 103, 84, 127, 174, 178, 194, 65, 195, + 50, 213, 77, 153, 212, 244, 209, 216, 149, 55, 234, 135, 6, + ], + [ + 254, 64, 206, 41, 117, 44, 153, 71, 0, 204, 67, 65, 231, 116, 35, 8, 99, 69, 207, 34, + 15, 233, 184, 86, 39, 186, 205, 238, 233, 245, 250, 44, + ], + ], + [ + [ + 199, 157, 28, 88, 230, 49, 91, 18, 24, 87, 45, 179, 63, 135, 122, 54, 172, 223, 233, + 189, 237, 197, 203, 20, 126, 47, 99, 38, 69, 226, 255, 14, + ], + [ + 166, 224, 94, 181, 103, 110, 4, 185, 117, 168, 188, 254, 60, 122, 232, 159, 147, 129, + 120, 140, 200, 103, 249, 27, 133, 22, 186, 19, 170, 127, 231, 35, + ], + [ + 148, 181, 107, 54, 45, 247, 223, 58, 41, 106, 43, 34, 157, 54, 190, 18, 237, 98, 10, + 159, 193, 210, 95, 129, 44, 182, 121, 37, 250, 123, 200, 56, + ], + [ + 165, 157, 120, 229, 210, 117, 15, 122, 29, 182, 94, 216, 135, 219, 142, 206, 235, 38, + 6, 254, 112, 192, 172, 33, 177, 179, 58, 161, 33, 231, 226, 44, + ], + [ + 22, 188, 212, 0, 63, 2, 102, 220, 41, 147, 252, 183, 186, 222, 65, 133, 223, 104, 245, + 251, 67, 50, 241, 141, 16, 153, 53, 36, 223, 92, 56, 33, + ], + [ + 3, 171, 26, 109, 247, 144, 210, 147, 173, 157, 69, 27, 151, 43, 191, 184, 230, 134, + 121, 109, 159, 59, 207, 83, 160, 231, 1, 16, 121, 248, 25, 2, + ], + [ + 187, 76, 191, 137, 218, 205, 64, 191, 85, 92, 226, 13, 159, 50, 44, 20, 106, 248, 106, + 104, 38, 147, 26, 206, 72, 152, 219, 227, 39, 111, 153, 22, + ], + [ + 37, 88, 160, 215, 216, 90, 55, 159, 157, 19, 83, 137, 20, 17, 97, 87, 108, 194, 57, + 124, 237, 155, 251, 143, 155, 24, 194, 250, 107, 157, 108, 6, + ], + ], + [ + [ + 179, 238, 187, 220, 201, 52, 151, 82, 231, 246, 234, 157, 60, 224, 148, 107, 52, 158, + 184, 135, 41, 91, 13, 157, 216, 87, 79, 70, 110, 154, 19, 9, + ], + [ + 79, 134, 215, 209, 161, 228, 162, 74, 17, 227, 169, 26, 65, 40, 189, 70, 253, 44, 93, + 128, 39, 142, 12, 97, 154, 111, 201, 52, 11, 129, 200, 9, + ], + [ + 73, 100, 11, 140, 141, 41, 181, 27, 253, 130, 136, 154, 107, 9, 135, 217, 16, 152, 64, + 77, 175, 250, 164, 120, 110, 201, 44, 94, 10, 74, 233, 42, + ], + [ + 9, 25, 17, 237, 209, 6, 7, 44, 161, 60, 19, 113, 80, 235, 188, 115, 251, 74, 128, 65, + 255, 21, 126, 249, 164, 59, 22, 226, 177, 71, 22, 24, + ], + [ + 34, 100, 239, 148, 80, 7, 119, 217, 234, 64, 187, 147, 240, 200, 246, 154, 249, 100, + 209, 249, 185, 119, 23, 202, 156, 219, 19, 22, 127, 127, 212, 25, + ], + [ + 239, 117, 59, 251, 76, 110, 242, 157, 3, 197, 97, 180, 211, 12, 224, 189, 252, 196, + 171, 31, 104, 172, 244, 239, 53, 75, 208, 126, 41, 144, 59, 49, + ], + [ + 29, 222, 224, 229, 25, 2, 93, 176, 51, 17, 100, 137, 64, 86, 76, 200, 138, 21, 29, 217, + 63, 159, 144, 129, 8, 201, 76, 236, 91, 62, 67, 50, + ], + [ + 24, 21, 241, 5, 210, 159, 87, 84, 200, 22, 175, 154, 87, 212, 37, 148, 23, 160, 175, + 200, 118, 117, 174, 229, 11, 130, 157, 255, 26, 52, 11, 8, + ], + ], + [ + [ + 252, 153, 100, 93, 87, 56, 92, 116, 12, 45, 12, 57, 66, 110, 227, 147, 147, 101, 100, + 0, 10, 181, 178, 164, 21, 13, 180, 13, 89, 248, 205, 7, + ], + [ + 86, 69, 138, 31, 50, 117, 37, 245, 147, 126, 71, 200, 159, 103, 75, 102, 204, 178, 135, + 180, 3, 63, 115, 110, 254, 22, 32, 8, 50, 111, 104, 22, + ], + [ + 66, 78, 49, 221, 153, 235, 211, 155, 58, 202, 119, 231, 206, 30, 248, 215, 223, 171, + 150, 81, 46, 255, 66, 79, 74, 248, 252, 151, 251, 131, 160, 7, + ], + [ + 153, 143, 67, 122, 83, 102, 174, 152, 47, 152, 114, 206, 200, 235, 113, 13, 45, 164, + 174, 214, 19, 129, 73, 211, 103, 185, 237, 210, 68, 157, 11, 24, + ], + [ + 83, 217, 27, 197, 244, 71, 107, 145, 132, 40, 44, 124, 230, 82, 21, 131, 249, 225, 116, + 102, 163, 121, 50, 142, 20, 27, 72, 67, 183, 28, 169, 46, + ], + [ + 56, 15, 117, 133, 19, 226, 237, 94, 34, 153, 237, 147, 143, 59, 163, 126, 83, 107, 102, + 25, 204, 62, 208, 59, 218, 48, 126, 107, 79, 164, 3, 3, + ], + [ + 127, 209, 7, 206, 197, 21, 110, 43, 111, 178, 96, 254, 183, 112, 65, 204, 159, 42, 129, + 127, 147, 172, 175, 22, 114, 1, 144, 109, 70, 51, 246, 28, + ], + [ + 126, 247, 38, 212, 155, 106, 76, 120, 152, 196, 61, 109, 174, 141, 172, 42, 144, 51, + 35, 254, 134, 214, 219, 152, 80, 109, 121, 166, 91, 226, 119, 18, + ], + ], + [ + [ + 131, 89, 210, 253, 224, 36, 151, 136, 156, 86, 88, 23, 205, 83, 177, 59, 106, 12, 16, + 233, 183, 197, 90, 203, 29, 196, 1, 237, 224, 223, 99, 15, + ], + [ + 224, 204, 224, 17, 99, 37, 205, 45, 255, 41, 69, 6, 204, 226, 63, 14, 180, 116, 248, + 184, 82, 55, 19, 160, 151, 69, 187, 35, 87, 120, 132, 15, + ], + [ + 125, 177, 114, 23, 209, 68, 219, 141, 142, 186, 25, 218, 57, 226, 190, 210, 45, 94, + 196, 39, 20, 233, 122, 93, 225, 23, 220, 158, 192, 78, 152, 24, + ], + [ + 57, 56, 40, 61, 97, 131, 104, 4, 240, 109, 227, 75, 152, 44, 242, 243, 188, 45, 229, + 118, 46, 27, 180, 167, 240, 224, 124, 15, 143, 50, 225, 6, + ], + [ + 53, 16, 46, 178, 58, 24, 197, 247, 42, 220, 177, 47, 133, 95, 81, 61, 134, 28, 220, + 184, 45, 12, 121, 18, 174, 234, 250, 124, 46, 190, 104, 19, + ], + [ + 38, 156, 61, 146, 163, 231, 91, 107, 19, 123, 200, 192, 85, 173, 156, 34, 44, 66, 161, + 83, 221, 166, 70, 51, 85, 232, 243, 252, 162, 18, 15, 56, + ], + [ + 123, 18, 87, 200, 196, 100, 121, 223, 151, 195, 24, 144, 131, 124, 56, 229, 199, 83, + 183, 137, 62, 154, 247, 40, 76, 135, 146, 9, 103, 5, 68, 33, + ], + [ + 184, 165, 230, 0, 109, 19, 115, 70, 25, 102, 2, 138, 190, 210, 62, 196, 27, 76, 57, 31, + 127, 78, 172, 163, 114, 236, 24, 224, 54, 31, 4, 45, + ], + ], + [ + [ + 138, 133, 77, 92, 247, 250, 141, 156, 66, 158, 130, 208, 243, 85, 97, 12, 47, 187, 101, + 220, 195, 14, 119, 254, 22, 0, 119, 0, 247, 177, 238, 18, + ], + [ + 202, 128, 126, 221, 182, 213, 55, 69, 34, 2, 42, 251, 22, 177, 35, 130, 132, 199, 33, + 5, 210, 99, 140, 214, 159, 25, 136, 202, 160, 255, 153, 29, + ], + [ + 8, 156, 183, 206, 52, 122, 127, 243, 45, 216, 68, 38, 215, 206, 139, 166, 196, 43, 58, + 250, 200, 141, 58, 74, 28, 236, 244, 39, 167, 34, 55, 26, + ], + [ + 174, 91, 180, 80, 186, 115, 38, 145, 115, 89, 5, 138, 189, 53, 49, 203, 52, 86, 205, + 123, 164, 146, 169, 110, 119, 202, 249, 86, 19, 179, 89, 60, + ], + [ + 135, 230, 4, 37, 38, 213, 28, 78, 101, 215, 177, 207, 184, 98, 242, 130, 215, 189, 209, + 198, 171, 165, 39, 79, 18, 196, 43, 75, 85, 32, 191, 46, + ], + [ + 121, 226, 59, 93, 13, 120, 205, 138, 103, 215, 23, 193, 170, 191, 103, 45, 154, 1, 76, + 213, 25, 118, 23, 228, 233, 180, 229, 181, 61, 104, 52, 14, + ], + [ + 4, 161, 12, 147, 13, 60, 20, 82, 53, 224, 72, 90, 102, 123, 77, 85, 31, 11, 131, 50, + 41, 88, 50, 22, 149, 35, 29, 142, 247, 84, 135, 16, + ], + [ + 196, 43, 149, 199, 167, 192, 232, 239, 9, 9, 110, 4, 148, 64, 58, 97, 207, 253, 80, + 247, 228, 179, 121, 4, 183, 162, 169, 120, 200, 254, 109, 35, + ], + ], + [ + [ + 217, 164, 120, 31, 248, 243, 75, 91, 94, 55, 138, 226, 220, 92, 79, 18, 59, 193, 156, + 126, 26, 222, 103, 8, 250, 221, 211, 68, 177, 71, 133, 11, + ], + [ + 34, 78, 160, 92, 3, 181, 43, 166, 227, 79, 153, 125, 39, 253, 0, 135, 22, 125, 102, + 161, 212, 195, 132, 46, 25, 132, 4, 234, 198, 43, 85, 49, + ], + [ + 133, 39, 163, 244, 250, 113, 200, 90, 202, 172, 126, 52, 182, 135, 223, 43, 6, 214, + 135, 140, 239, 172, 1, 36, 37, 93, 212, 96, 74, 51, 189, 10, + ], + [ + 126, 177, 236, 150, 50, 183, 198, 85, 154, 215, 89, 75, 4, 57, 211, 33, 179, 220, 253, + 182, 13, 65, 218, 80, 132, 54, 222, 214, 52, 39, 198, 7, + ], + [ + 133, 246, 57, 187, 96, 68, 33, 138, 75, 185, 97, 210, 2, 89, 238, 63, 73, 39, 51, 58, + 242, 125, 16, 9, 91, 94, 243, 69, 35, 42, 136, 9, + ], + [ + 149, 191, 120, 245, 46, 159, 66, 53, 67, 200, 107, 196, 86, 191, 234, 195, 140, 23, + 152, 5, 213, 125, 61, 250, 113, 227, 62, 153, 193, 198, 62, 23, + ], + [ + 181, 92, 7, 115, 101, 203, 87, 170, 108, 11, 133, 229, 209, 88, 235, 9, 211, 0, 34, + 128, 143, 32, 158, 16, 55, 100, 222, 242, 247, 39, 217, 41, + ], + [ + 176, 9, 186, 146, 2, 201, 229, 116, 61, 190, 159, 129, 11, 22, 215, 50, 181, 105, 128, + 91, 161, 104, 19, 214, 144, 254, 225, 169, 186, 237, 100, 32, + ], + ], + [ + [ + 40, 7, 199, 148, 140, 28, 231, 90, 252, 187, 127, 106, 225, 109, 28, 74, 174, 202, 162, + 233, 111, 25, 39, 121, 86, 188, 166, 60, 26, 192, 125, 23, + ], + [ + 29, 191, 141, 163, 214, 37, 63, 14, 117, 75, 249, 36, 245, 31, 107, 34, 130, 14, 5, + 129, 145, 43, 255, 54, 59, 211, 77, 194, 248, 213, 122, 10, + ], + [ + 90, 72, 79, 149, 87, 28, 38, 255, 171, 49, 255, 93, 202, 66, 30, 225, 2, 33, 50, 59, + 167, 22, 89, 84, 195, 250, 231, 41, 48, 59, 54, 54, + ], + [ + 52, 242, 43, 225, 153, 145, 156, 46, 4, 211, 112, 65, 19, 141, 52, 99, 139, 149, 190, + 143, 143, 57, 228, 85, 0, 67, 199, 163, 60, 171, 182, 2, + ], + [ + 6, 134, 104, 87, 111, 169, 74, 7, 110, 63, 55, 7, 135, 154, 171, 179, 33, 64, 254, 160, + 90, 79, 218, 218, 147, 45, 244, 115, 21, 71, 63, 54, + ], + [ + 182, 244, 16, 171, 5, 16, 178, 183, 14, 152, 205, 29, 128, 93, 92, 17, 206, 47, 111, + 155, 27, 164, 23, 21, 13, 125, 119, 240, 170, 148, 16, 53, + ], + [ + 78, 4, 253, 34, 167, 129, 30, 5, 1, 146, 243, 55, 152, 9, 74, 73, 26, 199, 175, 138, + 162, 181, 235, 238, 158, 40, 157, 162, 8, 163, 63, 29, + ], + [ + 159, 213, 249, 32, 115, 186, 250, 55, 240, 55, 181, 229, 106, 166, 99, 149, 114, 141, + 239, 154, 192, 4, 127, 64, 247, 172, 240, 23, 243, 109, 102, 16, + ], + ], + [ + [ + 208, 62, 192, 255, 179, 46, 237, 29, 32, 212, 88, 59, 32, 109, 116, 45, 150, 40, 251, + 132, 136, 88, 63, 10, 111, 34, 102, 42, 7, 106, 48, 30, + ], + [ + 235, 194, 35, 149, 132, 244, 37, 88, 78, 71, 224, 63, 246, 169, 172, 201, 131, 7, 57, + 88, 91, 199, 146, 170, 188, 167, 141, 1, 40, 121, 209, 61, + ], + [ + 50, 65, 193, 19, 111, 120, 148, 118, 147, 240, 246, 104, 72, 174, 113, 54, 201, 144, + 17, 98, 92, 11, 113, 250, 183, 114, 0, 74, 134, 20, 217, 47, + ], + [ + 87, 190, 24, 114, 241, 193, 159, 122, 102, 3, 11, 48, 61, 248, 75, 21, 92, 19, 224, + 163, 186, 64, 204, 3, 37, 86, 103, 31, 53, 49, 204, 62, + ], + [ + 137, 116, 208, 75, 219, 108, 60, 61, 85, 214, 112, 149, 190, 75, 153, 174, 134, 62, + 187, 183, 63, 151, 51, 41, 250, 231, 194, 99, 131, 71, 91, 57, + ], + [ + 214, 76, 152, 156, 14, 135, 169, 54, 244, 66, 31, 124, 203, 249, 203, 238, 149, 193, + 165, 38, 141, 78, 15, 161, 59, 180, 218, 91, 96, 75, 3, 42, + ], + [ + 9, 219, 89, 115, 107, 140, 184, 162, 172, 175, 14, 145, 179, 159, 157, 5, 36, 112, 255, + 25, 134, 192, 252, 32, 94, 23, 81, 146, 187, 238, 88, 59, + ], + [ + 226, 191, 50, 112, 133, 132, 199, 142, 252, 89, 92, 227, 45, 129, 181, 217, 107, 158, + 105, 62, 76, 104, 15, 6, 219, 239, 88, 28, 104, 248, 0, 39, + ], + ], + [ + [ + 135, 78, 215, 34, 105, 20, 88, 1, 116, 251, 173, 74, 81, 101, 102, 140, 171, 42, 13, + 54, 241, 73, 104, 41, 94, 167, 87, 232, 13, 15, 171, 6, + ], + [ + 18, 88, 231, 231, 168, 128, 81, 148, 23, 38, 172, 207, 34, 73, 241, 215, 221, 119, 64, + 126, 107, 176, 138, 251, 112, 72, 252, 250, 245, 48, 36, 32, + ], + [ + 20, 44, 38, 7, 55, 71, 118, 91, 105, 195, 150, 14, 32, 211, 187, 89, 108, 224, 153, + 109, 204, 72, 160, 152, 23, 199, 155, 84, 53, 183, 30, 17, + ], + [ + 244, 232, 165, 147, 219, 157, 69, 181, 173, 36, 94, 183, 49, 16, 68, 180, 203, 232, + 159, 198, 107, 174, 162, 163, 135, 203, 109, 106, 71, 28, 132, 54, + ], + [ + 128, 32, 218, 132, 20, 69, 199, 166, 54, 131, 78, 244, 246, 161, 200, 50, 62, 90, 228, + 51, 26, 1, 225, 211, 41, 51, 115, 34, 4, 184, 7, 29, + ], + [ + 77, 46, 225, 194, 127, 232, 30, 240, 158, 194, 26, 28, 221, 172, 60, 118, 248, 174, + 218, 183, 52, 107, 113, 40, 234, 106, 137, 58, 251, 190, 14, 47, + ], + [ + 84, 208, 14, 230, 33, 132, 17, 151, 159, 240, 47, 66, 226, 210, 183, 101, 220, 32, 19, + 175, 47, 156, 100, 55, 2, 45, 224, 187, 154, 232, 63, 45, + ], + [ + 38, 3, 199, 23, 232, 121, 90, 88, 192, 71, 149, 125, 160, 140, 92, 248, 244, 52, 250, + 237, 159, 240, 87, 131, 206, 103, 57, 231, 240, 126, 44, 8, + ], + ], + [ + [ + 121, 185, 230, 118, 95, 189, 254, 13, 234, 203, 79, 140, 250, 63, 61, 205, 108, 239, + 89, 178, 242, 36, 237, 131, 191, 178, 198, 57, 106, 146, 208, 2, + ], + [ + 254, 175, 112, 227, 155, 33, 74, 141, 22, 57, 159, 5, 129, 57, 239, 27, 96, 22, 86, 8, + 223, 241, 173, 226, 171, 232, 32, 45, 158, 169, 2, 25, + ], + [ + 21, 46, 93, 77, 133, 253, 127, 147, 1, 240, 85, 211, 36, 215, 94, 13, 26, 253, 25, 72, + 67, 90, 229, 7, 174, 236, 233, 250, 65, 217, 124, 51, + ], + [ + 213, 61, 22, 32, 180, 27, 96, 10, 216, 12, 135, 161, 36, 223, 176, 137, 197, 99, 83, + 215, 58, 242, 191, 192, 84, 236, 195, 12, 141, 45, 215, 23, + ], + [ + 147, 199, 116, 205, 253, 64, 71, 177, 48, 220, 174, 145, 113, 191, 60, 31, 60, 171, 79, + 86, 141, 122, 89, 188, 252, 100, 42, 127, 193, 98, 172, 43, + ], + [ + 83, 40, 233, 182, 200, 135, 94, 11, 109, 77, 241, 71, 248, 64, 10, 227, 84, 146, 205, + 168, 77, 57, 138, 34, 128, 201, 16, 115, 35, 244, 147, 0, + ], + [ + 8, 124, 97, 197, 83, 77, 42, 95, 91, 69, 173, 108, 237, 215, 44, 211, 28, 202, 237, 0, + 22, 248, 104, 213, 146, 245, 52, 221, 218, 26, 160, 62, + ], + [ + 46, 200, 28, 76, 156, 255, 239, 240, 233, 131, 252, 96, 12, 144, 56, 163, 52, 116, 162, + 59, 149, 1, 133, 107, 190, 132, 233, 235, 230, 244, 231, 49, + ], + ], + [ + [ + 131, 244, 147, 237, 104, 133, 117, 169, 82, 239, 134, 219, 21, 106, 10, 250, 191, 18, + 211, 97, 10, 161, 87, 187, 16, 85, 107, 192, 9, 17, 208, 44, + ], + [ + 129, 156, 210, 98, 148, 44, 136, 246, 152, 130, 74, 18, 3, 30, 242, 12, 155, 8, 49, + 245, 49, 215, 93, 167, 0, 8, 213, 68, 9, 38, 113, 53, + ], + [ + 114, 214, 69, 108, 113, 73, 81, 37, 251, 91, 43, 99, 248, 39, 99, 40, 85, 223, 101, 78, + 243, 170, 160, 149, 155, 104, 14, 78, 97, 248, 37, 57, + ], + [ + 77, 232, 118, 221, 50, 130, 124, 90, 91, 140, 68, 158, 193, 229, 180, 176, 151, 167, + 148, 141, 46, 104, 179, 55, 57, 142, 216, 23, 141, 196, 236, 54, + ], + [ + 198, 180, 66, 160, 132, 49, 199, 243, 237, 240, 166, 225, 99, 37, 155, 24, 179, 113, + 199, 80, 80, 132, 32, 52, 251, 211, 162, 116, 170, 203, 81, 42, + ], + [ + 241, 79, 65, 222, 239, 74, 64, 122, 34, 93, 203, 102, 251, 103, 65, 233, 204, 203, 192, + 245, 189, 251, 1, 151, 128, 157, 182, 203, 193, 102, 27, 23, + ], + [ + 60, 20, 8, 87, 8, 19, 211, 166, 63, 239, 146, 164, 49, 67, 11, 133, 95, 9, 182, 199, + 17, 86, 113, 170, 168, 83, 77, 230, 81, 201, 238, 13, + ], + [ + 68, 167, 166, 81, 81, 66, 93, 73, 185, 91, 178, 215, 84, 163, 122, 201, 149, 247, 161, + 87, 127, 103, 79, 29, 14, 199, 44, 247, 33, 123, 183, 38, + ], + ], + [ + [ + 143, 198, 147, 9, 216, 184, 32, 238, 248, 95, 47, 180, 248, 117, 252, 150, 150, 89, + 148, 161, 187, 47, 61, 225, 246, 154, 106, 101, 128, 51, 151, 12, + ], + [ + 38, 250, 166, 101, 235, 31, 63, 68, 193, 170, 168, 34, 52, 63, 97, 98, 214, 229, 31, + 74, 233, 172, 22, 81, 196, 245, 11, 111, 44, 98, 185, 1, + ], + [ + 141, 209, 110, 148, 171, 39, 157, 235, 89, 173, 140, 216, 148, 1, 175, 157, 227, 104, + 210, 112, 66, 160, 156, 124, 27, 102, 120, 142, 149, 110, 148, 12, + ], + [ + 71, 30, 90, 107, 232, 6, 151, 1, 6, 25, 188, 6, 31, 64, 184, 104, 184, 216, 57, 92, + 230, 236, 169, 238, 77, 38, 45, 165, 162, 162, 252, 7, + ], + [ + 136, 10, 204, 99, 83, 109, 73, 101, 61, 41, 237, 197, 0, 232, 185, 168, 79, 128, 191, + 219, 87, 14, 163, 244, 0, 145, 72, 199, 11, 55, 218, 38, + ], + [ + 246, 115, 92, 44, 64, 216, 74, 82, 132, 50, 82, 211, 56, 171, 176, 137, 24, 110, 103, + 158, 46, 158, 151, 154, 132, 254, 220, 180, 5, 120, 72, 10, + ], + [ + 30, 159, 81, 104, 246, 32, 96, 43, 152, 44, 150, 221, 165, 14, 162, 61, 30, 166, 133, + 194, 104, 127, 76, 214, 122, 89, 109, 2, 219, 232, 185, 5, + ], + [ + 138, 10, 208, 162, 118, 236, 11, 68, 180, 213, 38, 108, 145, 79, 115, 185, 231, 51, 84, + 160, 104, 136, 76, 142, 201, 121, 111, 41, 3, 126, 71, 52, + ], + ], + [ + [ + 146, 172, 178, 233, 212, 141, 180, 76, 211, 173, 0, 136, 102, 215, 35, 18, 210, 57, + 230, 203, 52, 90, 73, 253, 90, 56, 84, 206, 187, 227, 139, 51, + ], + [ + 12, 172, 149, 245, 3, 108, 117, 73, 133, 51, 161, 59, 203, 181, 112, 71, 115, 193, 65, + 135, 234, 163, 80, 138, 170, 33, 62, 175, 158, 128, 5, 62, + ], + [ + 133, 76, 138, 32, 247, 244, 21, 235, 18, 19, 89, 83, 65, 116, 151, 3, 0, 132, 125, 21, + 220, 165, 25, 140, 77, 25, 235, 191, 41, 144, 142, 54, + ], + [ + 234, 91, 142, 174, 106, 23, 132, 53, 16, 96, 217, 122, 84, 117, 226, 87, 131, 59, 157, + 78, 201, 217, 103, 134, 14, 141, 193, 42, 17, 135, 118, 3, + ], + [ + 60, 209, 64, 222, 188, 72, 228, 235, 152, 155, 14, 252, 73, 49, 37, 168, 181, 101, 219, + 232, 169, 55, 171, 90, 138, 159, 181, 180, 41, 195, 41, 48, + ], + [ + 153, 0, 87, 75, 203, 95, 71, 181, 161, 183, 42, 85, 14, 77, 220, 46, 138, 157, 229, + 178, 159, 144, 57, 24, 238, 125, 128, 79, 134, 222, 64, 61, + ], + [ + 51, 123, 20, 217, 230, 53, 195, 7, 147, 10, 229, 20, 147, 206, 100, 197, 88, 73, 14, + 211, 138, 72, 211, 100, 184, 62, 149, 254, 53, 140, 211, 38, + ], + [ + 125, 218, 238, 203, 197, 139, 19, 248, 119, 73, 85, 241, 205, 20, 187, 100, 110, 150, + 80, 176, 39, 83, 85, 44, 160, 209, 47, 240, 119, 195, 98, 9, + ], + ], + [ + [ + 225, 193, 188, 61, 63, 105, 192, 160, 101, 114, 91, 50, 187, 102, 91, 202, 144, 99, 48, + 178, 235, 57, 151, 190, 202, 221, 26, 129, 39, 222, 144, 13, + ], + [ + 214, 4, 119, 107, 105, 182, 45, 196, 47, 123, 78, 115, 118, 142, 134, 160, 176, 161, + 175, 251, 249, 25, 123, 177, 39, 236, 198, 98, 166, 14, 35, 47, + ], + [ + 227, 146, 231, 46, 217, 182, 26, 134, 224, 88, 174, 142, 210, 131, 27, 217, 90, 20, + 169, 93, 202, 238, 30, 17, 75, 25, 218, 94, 117, 74, 98, 28, + ], + [ + 211, 62, 181, 29, 241, 231, 74, 132, 58, 71, 13, 180, 216, 120, 215, 208, 191, 166, + 110, 238, 239, 129, 248, 13, 11, 70, 25, 173, 118, 194, 208, 38, + ], + [ + 66, 6, 102, 187, 1, 88, 189, 123, 109, 200, 226, 193, 103, 248, 134, 154, 16, 188, 82, + 145, 255, 211, 203, 237, 25, 60, 201, 58, 159, 125, 47, 51, + ], + [ + 92, 174, 73, 174, 127, 71, 106, 23, 242, 24, 143, 255, 40, 70, 242, 75, 236, 158, 165, + 248, 142, 147, 103, 167, 116, 17, 171, 193, 247, 38, 196, 17, + ], + [ + 195, 200, 231, 140, 158, 101, 132, 162, 20, 214, 89, 132, 144, 2, 45, 206, 161, 228, + 31, 197, 107, 84, 171, 48, 231, 66, 103, 57, 182, 100, 148, 9, + ], + [ + 91, 239, 228, 202, 109, 58, 224, 173, 255, 33, 238, 51, 252, 38, 7, 104, 68, 71, 61, + 50, 61, 234, 52, 125, 225, 246, 120, 198, 204, 251, 42, 21, + ], + ], + [ + [ + 227, 156, 120, 101, 157, 6, 24, 17, 138, 120, 0, 7, 99, 255, 30, 170, 247, 10, 28, 78, + 237, 183, 120, 0, 36, 150, 114, 5, 52, 27, 118, 43, + ], + [ + 89, 179, 59, 45, 37, 224, 161, 148, 170, 242, 21, 93, 17, 112, 56, 87, 146, 224, 32, + 16, 205, 72, 120, 24, 201, 226, 101, 138, 140, 191, 35, 60, + ], + [ + 101, 246, 160, 36, 45, 192, 37, 250, 141, 131, 166, 105, 246, 253, 183, 78, 45, 17, + 224, 198, 219, 4, 184, 41, 159, 25, 227, 42, 184, 110, 168, 47, + ], + [ + 254, 68, 240, 20, 227, 67, 252, 227, 74, 173, 78, 4, 237, 230, 36, 46, 168, 242, 97, + 165, 41, 179, 234, 114, 25, 118, 188, 115, 134, 176, 144, 56, + ], + [ + 136, 19, 168, 231, 61, 23, 128, 30, 218, 186, 214, 182, 64, 202, 240, 242, 242, 27, + 190, 68, 139, 239, 118, 209, 45, 102, 252, 42, 203, 47, 190, 46, + ], + [ + 43, 185, 227, 112, 96, 91, 133, 107, 201, 158, 93, 223, 207, 3, 3, 113, 129, 81, 103, + 112, 200, 142, 133, 213, 205, 249, 61, 35, 223, 149, 94, 46, + ], + [ + 21, 9, 170, 210, 27, 219, 51, 217, 231, 84, 155, 179, 113, 211, 235, 30, 198, 178, 115, + 212, 243, 76, 239, 4, 80, 205, 216, 210, 216, 162, 54, 16, + ], + [ + 241, 46, 223, 153, 180, 201, 195, 235, 159, 17, 89, 184, 132, 27, 147, 66, 9, 118, 156, + 32, 63, 60, 231, 176, 17, 181, 136, 199, 185, 156, 85, 49, + ], + ], + [ + [ + 16, 63, 29, 234, 36, 248, 169, 46, 117, 122, 16, 213, 80, 112, 195, 180, 35, 236, 79, + 11, 161, 39, 231, 149, 76, 182, 68, 223, 211, 132, 105, 60, + ], + [ + 90, 185, 155, 250, 193, 255, 242, 96, 46, 32, 211, 85, 104, 146, 242, 203, 136, 215, + 207, 249, 156, 165, 186, 101, 172, 94, 196, 196, 215, 90, 242, 18, + ], + [ + 197, 35, 232, 78, 110, 178, 187, 0, 86, 140, 77, 150, 2, 34, 10, 28, 36, 222, 5, 126, + 195, 84, 209, 117, 171, 224, 207, 178, 246, 55, 19, 23, + ], + [ + 7, 92, 45, 201, 159, 244, 184, 81, 84, 15, 16, 47, 29, 88, 220, 15, 84, 114, 193, 25, + 178, 137, 226, 153, 49, 173, 132, 75, 132, 245, 35, 46, + ], + [ + 72, 45, 4, 235, 41, 35, 82, 6, 47, 12, 192, 121, 4, 244, 109, 216, 187, 189, 132, 96, + 53, 230, 169, 219, 247, 118, 128, 25, 76, 227, 229, 21, + ], + [ + 11, 120, 128, 125, 181, 136, 90, 219, 125, 105, 13, 176, 160, 59, 54, 96, 25, 244, 122, + 151, 1, 182, 7, 118, 193, 158, 96, 250, 212, 93, 136, 17, + ], + [ + 133, 10, 151, 153, 67, 142, 158, 17, 179, 30, 169, 96, 248, 213, 174, 250, 243, 228, + 222, 11, 57, 109, 208, 34, 21, 91, 222, 40, 95, 116, 158, 42, + ], + [ + 144, 89, 121, 13, 187, 123, 87, 232, 28, 81, 15, 255, 80, 167, 8, 245, 134, 94, 176, + 29, 69, 112, 191, 43, 174, 0, 147, 222, 94, 154, 107, 31, + ], + ], + [ + [ + 30, 133, 165, 235, 190, 92, 40, 23, 196, 48, 17, 234, 31, 38, 10, 244, 66, 89, 244, 71, + 136, 178, 252, 70, 108, 251, 8, 218, 62, 6, 12, 13, + ], + [ + 181, 217, 82, 12, 171, 165, 231, 168, 153, 34, 248, 106, 105, 24, 128, 34, 58, 33, 186, + 213, 180, 153, 142, 141, 191, 219, 10, 88, 38, 80, 62, 2, + ], + [ + 3, 56, 194, 11, 68, 15, 132, 139, 250, 136, 196, 236, 244, 49, 232, 78, 78, 146, 217, + 164, 195, 179, 210, 41, 198, 109, 232, 241, 142, 158, 120, 60, + ], + [ + 253, 122, 255, 208, 56, 178, 103, 118, 227, 193, 99, 164, 224, 85, 254, 159, 53, 45, + 22, 186, 84, 156, 59, 10, 161, 181, 242, 40, 37, 167, 101, 14, + ], + [ + 170, 6, 86, 213, 88, 160, 229, 166, 21, 23, 82, 239, 180, 219, 65, 204, 51, 125, 82, + 37, 217, 255, 248, 143, 97, 148, 22, 63, 59, 77, 172, 52, + ], + [ + 7, 111, 62, 154, 249, 48, 164, 29, 197, 139, 4, 132, 101, 228, 166, 111, 64, 212, 112, + 92, 112, 133, 134, 100, 31, 126, 163, 217, 28, 154, 7, 10, + ], + [ + 16, 149, 13, 107, 255, 13, 114, 211, 25, 178, 249, 249, 126, 248, 167, 165, 239, 25, + 152, 131, 140, 1, 109, 226, 30, 201, 210, 45, 192, 187, 195, 60, + ], + [ + 61, 150, 128, 112, 101, 124, 178, 16, 66, 126, 64, 241, 36, 2, 50, 130, 115, 227, 191, + 51, 67, 137, 99, 202, 20, 115, 217, 8, 39, 161, 233, 10, + ], + ], + [ + [ + 7, 91, 172, 227, 110, 194, 188, 240, 45, 58, 80, 180, 3, 254, 196, 195, 236, 211, 65, + 120, 5, 170, 255, 3, 147, 252, 203, 94, 252, 67, 122, 45, + ], + [ + 101, 45, 123, 17, 211, 232, 240, 59, 210, 231, 30, 102, 247, 0, 185, 30, 255, 221, 153, + 5, 173, 39, 166, 43, 26, 10, 173, 70, 17, 22, 169, 37, + ], + [ + 244, 80, 93, 226, 138, 172, 42, 204, 223, 176, 65, 190, 234, 140, 110, 167, 78, 238, + 121, 100, 83, 24, 22, 229, 43, 230, 35, 182, 193, 93, 241, 13, + ], + [ + 40, 243, 125, 169, 93, 224, 111, 219, 8, 17, 241, 43, 153, 177, 12, 105, 193, 98, 163, + 245, 54, 245, 241, 129, 42, 96, 240, 40, 196, 125, 248, 24, + ], + [ + 222, 158, 22, 92, 0, 102, 141, 6, 180, 153, 231, 232, 45, 5, 103, 172, 163, 27, 143, + 240, 1, 243, 81, 122, 56, 142, 106, 205, 104, 219, 225, 40, + ], + [ + 113, 135, 24, 191, 205, 226, 63, 197, 101, 190, 0, 172, 160, 174, 236, 156, 179, 148, + 128, 21, 127, 99, 19, 124, 27, 134, 120, 87, 48, 237, 244, 8, + ], + [ + 165, 118, 169, 41, 44, 57, 144, 54, 148, 117, 151, 165, 73, 209, 197, 162, 122, 129, + 197, 73, 137, 248, 65, 137, 77, 187, 30, 54, 229, 62, 134, 9, + ], + [ + 235, 36, 130, 170, 81, 34, 149, 86, 235, 75, 240, 162, 216, 136, 174, 84, 169, 62, 208, + 43, 212, 112, 204, 11, 242, 100, 111, 183, 20, 81, 103, 21, + ], + ], + [ + [ + 69, 81, 105, 6, 179, 69, 132, 229, 251, 152, 83, 207, 7, 150, 148, 76, 118, 19, 77, + 127, 197, 153, 52, 135, 5, 173, 199, 50, 172, 148, 240, 6, + ], + [ + 169, 73, 220, 22, 85, 117, 145, 40, 30, 80, 252, 140, 241, 71, 106, 187, 255, 19, 109, + 24, 119, 194, 152, 102, 216, 102, 146, 61, 127, 23, 154, 8, + ], + [ + 67, 230, 84, 76, 200, 132, 151, 89, 246, 255, 51, 98, 217, 150, 32, 12, 179, 115, 164, + 159, 240, 221, 100, 73, 215, 168, 61, 234, 33, 105, 80, 53, + ], + [ + 155, 123, 14, 229, 134, 242, 1, 66, 61, 136, 191, 36, 194, 117, 41, 185, 52, 239, 241, + 89, 111, 60, 84, 126, 97, 45, 52, 194, 115, 90, 244, 41, + ], + [ + 47, 224, 100, 95, 184, 27, 152, 43, 14, 105, 24, 229, 40, 94, 231, 253, 136, 67, 97, + 19, 139, 79, 52, 55, 208, 164, 206, 103, 93, 179, 49, 37, + ], + [ + 137, 28, 107, 166, 19, 3, 10, 137, 179, 248, 144, 129, 62, 138, 174, 40, 237, 112, 154, + 187, 244, 126, 56, 209, 254, 195, 153, 32, 248, 146, 55, 25, + ], + [ + 28, 146, 146, 196, 134, 69, 193, 92, 102, 51, 189, 99, 24, 109, 22, 88, 189, 170, 218, + 201, 146, 81, 245, 19, 95, 168, 181, 193, 4, 35, 77, 13, + ], + [ + 231, 152, 17, 26, 137, 49, 95, 140, 143, 240, 151, 215, 118, 240, 153, 94, 214, 99, 17, + 203, 166, 250, 120, 226, 231, 74, 141, 20, 212, 20, 198, 10, + ], + ], + [ + [ + 201, 36, 247, 251, 228, 99, 121, 198, 220, 187, 83, 50, 200, 54, 242, 88, 65, 214, 227, + 76, 161, 238, 84, 184, 149, 41, 12, 124, 34, 236, 97, 59, + ], + [ + 126, 74, 151, 14, 16, 110, 166, 2, 235, 52, 43, 240, 222, 178, 145, 101, 104, 153, 171, + 153, 93, 82, 21, 76, 37, 55, 5, 176, 118, 67, 19, 27, + ], + [ + 208, 113, 45, 31, 250, 171, 238, 119, 191, 57, 114, 133, 71, 167, 168, 207, 97, 125, + 235, 44, 135, 224, 75, 206, 215, 143, 56, 111, 117, 215, 25, 21, + ], + [ + 247, 158, 25, 107, 7, 121, 254, 119, 228, 136, 246, 2, 15, 160, 69, 180, 190, 134, 179, + 204, 64, 242, 118, 216, 121, 118, 35, 55, 57, 95, 110, 25, + ], + [ + 149, 84, 210, 56, 93, 110, 28, 177, 219, 155, 235, 168, 137, 141, 71, 114, 129, 55, + 141, 177, 20, 180, 47, 26, 123, 157, 159, 133, 225, 81, 103, 47, + ], + [ + 215, 28, 126, 174, 218, 158, 19, 78, 226, 193, 168, 64, 223, 102, 211, 44, 25, 205, 14, + 129, 65, 95, 189, 107, 107, 229, 97, 5, 86, 67, 37, 60, + ], + [ + 23, 91, 47, 107, 133, 237, 134, 217, 123, 232, 136, 140, 222, 76, 114, 80, 248, 160, + 164, 212, 125, 157, 97, 81, 215, 159, 52, 135, 100, 153, 7, 26, + ], + [ + 192, 235, 48, 8, 201, 70, 70, 145, 16, 213, 165, 6, 236, 57, 71, 204, 39, 134, 61, 192, + 139, 24, 175, 21, 108, 244, 90, 67, 206, 102, 17, 20, + ], + ], + [ + [ + 59, 227, 100, 216, 15, 248, 10, 182, 89, 182, 173, 216, 232, 218, 171, 125, 44, 162, + 99, 204, 165, 177, 157, 62, 219, 33, 124, 190, 160, 248, 193, 60, + ], + [ + 138, 137, 214, 237, 224, 227, 132, 212, 18, 215, 128, 173, 12, 134, 162, 2, 89, 17, 69, + 88, 50, 193, 21, 158, 85, 194, 228, 207, 209, 15, 48, 56, + ], + [ + 235, 131, 4, 17, 94, 133, 194, 205, 154, 120, 81, 80, 60, 240, 201, 125, 250, 1, 149, + 179, 58, 228, 68, 71, 224, 15, 212, 181, 170, 9, 135, 47, + ], + [ + 30, 162, 68, 164, 134, 183, 89, 52, 42, 138, 32, 99, 53, 176, 204, 80, 128, 32, 205, + 64, 177, 197, 186, 93, 239, 127, 63, 219, 19, 200, 132, 5, + ], + [ + 255, 30, 56, 241, 97, 130, 220, 188, 77, 45, 179, 149, 97, 23, 65, 112, 235, 24, 127, + 22, 204, 191, 181, 164, 28, 238, 158, 188, 52, 52, 239, 9, + ], + [ + 117, 70, 55, 141, 159, 39, 198, 73, 18, 25, 171, 142, 26, 7, 61, 178, 86, 181, 136, 11, + 80, 110, 226, 235, 152, 116, 119, 80, 9, 77, 171, 1, + ], + [ + 145, 166, 166, 110, 183, 126, 211, 28, 74, 99, 88, 1, 60, 143, 245, 37, 61, 107, 94, + 172, 101, 87, 64, 150, 89, 87, 23, 159, 223, 49, 13, 22, + ], + [ + 102, 212, 116, 255, 19, 29, 250, 185, 75, 229, 219, 55, 220, 164, 195, 61, 45, 46, 245, + 119, 79, 113, 47, 229, 242, 74, 172, 24, 189, 248, 222, 35, + ], + ], + [ + [ + 178, 128, 66, 22, 136, 89, 154, 163, 11, 60, 6, 113, 119, 121, 188, 80, 127, 170, 10, + 61, 221, 229, 163, 217, 4, 206, 79, 88, 105, 222, 53, 9, + ], + [ + 185, 239, 123, 80, 135, 216, 219, 192, 225, 181, 44, 19, 223, 11, 150, 61, 21, 13, 170, + 149, 8, 147, 248, 57, 43, 1, 222, 231, 81, 172, 49, 31, + ], + [ + 88, 32, 154, 70, 204, 46, 188, 217, 185, 179, 122, 163, 239, 139, 136, 119, 231, 117, + 199, 74, 239, 108, 234, 25, 21, 246, 75, 183, 71, 172, 247, 25, + ], + [ + 143, 4, 10, 225, 34, 215, 168, 147, 44, 185, 131, 183, 230, 6, 125, 173, 71, 57, 255, + 57, 45, 203, 159, 231, 97, 15, 80, 248, 189, 162, 230, 32, + ], + [ + 166, 187, 119, 117, 197, 168, 67, 253, 47, 170, 125, 165, 17, 15, 149, 44, 146, 58, + 198, 97, 128, 144, 7, 40, 95, 143, 147, 172, 152, 219, 236, 28, + ], + [ + 28, 176, 50, 123, 16, 49, 98, 25, 185, 200, 78, 192, 135, 9, 17, 249, 80, 80, 148, 70, + 197, 44, 151, 13, 252, 245, 170, 173, 184, 192, 179, 50, + ], + [ + 7, 203, 97, 103, 251, 87, 201, 89, 46, 123, 27, 243, 73, 93, 22, 209, 139, 173, 145, + 228, 215, 23, 133, 50, 142, 179, 0, 115, 169, 54, 54, 36, + ], + [ + 103, 67, 224, 228, 216, 51, 67, 191, 241, 190, 231, 167, 239, 122, 145, 135, 27, 27, + 121, 169, 32, 249, 121, 157, 76, 209, 1, 125, 128, 109, 122, 9, + ], + ], + [ + [ + 148, 192, 149, 231, 219, 175, 220, 161, 114, 143, 131, 199, 122, 47, 237, 202, 210, + 139, 29, 217, 170, 108, 115, 249, 68, 146, 176, 108, 222, 159, 233, 14, + ], + [ + 85, 172, 51, 155, 179, 59, 252, 236, 149, 163, 120, 147, 116, 175, 86, 1, 40, 81, 47, + 133, 109, 255, 74, 131, 19, 129, 194, 4, 159, 185, 31, 3, + ], + [ + 209, 194, 182, 196, 5, 180, 67, 30, 36, 61, 3, 166, 211, 15, 123, 155, 128, 13, 120, + 142, 137, 166, 245, 147, 78, 249, 140, 255, 203, 212, 85, 6, + ], + [ + 127, 131, 57, 200, 151, 146, 45, 152, 85, 62, 96, 86, 213, 36, 238, 237, 132, 44, 127, + 149, 182, 216, 127, 58, 114, 211, 189, 141, 202, 194, 62, 62, + ], + [ + 99, 71, 21, 6, 166, 145, 151, 160, 236, 240, 86, 161, 124, 186, 117, 20, 238, 65, 92, + 94, 164, 101, 27, 72, 90, 199, 127, 238, 171, 190, 35, 55, + ], + [ + 3, 197, 168, 159, 131, 53, 238, 255, 128, 42, 6, 120, 7, 172, 39, 108, 174, 46, 155, + 47, 131, 151, 235, 200, 222, 175, 119, 50, 78, 128, 153, 3, + ], + [ + 116, 66, 37, 31, 30, 169, 73, 64, 193, 70, 88, 219, 59, 172, 96, 110, 243, 160, 105, + 191, 2, 226, 190, 27, 52, 202, 22, 33, 25, 38, 220, 31, + ], + [ + 49, 200, 93, 193, 225, 104, 64, 102, 3, 223, 45, 31, 211, 145, 210, 114, 132, 27, 240, + 232, 189, 127, 87, 226, 125, 18, 170, 133, 195, 198, 153, 16, + ], + ], + [ + [ + 121, 53, 200, 131, 196, 84, 198, 124, 113, 102, 142, 218, 224, 247, 145, 131, 186, 103, + 190, 167, 247, 147, 224, 16, 99, 39, 56, 226, 46, 1, 49, 59, + ], + [ + 22, 50, 40, 200, 159, 100, 214, 73, 77, 69, 163, 2, 110, 139, 27, 106, 154, 229, 182, + 137, 7, 168, 187, 202, 17, 19, 160, 25, 162, 17, 89, 48, + ], + [ + 164, 44, 83, 249, 124, 41, 132, 94, 96, 167, 55, 81, 204, 189, 223, 195, 250, 225, 16, + 205, 0, 3, 130, 36, 165, 36, 166, 132, 92, 91, 67, 63, + ], + [ + 74, 250, 76, 30, 147, 188, 232, 26, 69, 89, 236, 235, 117, 199, 87, 31, 17, 223, 161, + 198, 244, 125, 157, 12, 237, 115, 191, 191, 71, 169, 248, 8, + ], + [ + 199, 31, 247, 17, 166, 210, 80, 23, 60, 82, 40, 177, 153, 123, 9, 176, 227, 228, 80, + 110, 191, 176, 172, 159, 234, 227, 133, 97, 160, 201, 8, 45, + ], + [ + 76, 132, 117, 193, 103, 234, 31, 11, 42, 125, 132, 21, 248, 178, 136, 13, 191, 20, 46, + 6, 95, 231, 230, 95, 29, 223, 70, 180, 205, 75, 70, 29, + ], + [ + 252, 10, 50, 84, 120, 20, 243, 48, 252, 113, 112, 249, 255, 250, 144, 178, 245, 108, + 209, 169, 102, 254, 1, 34, 254, 141, 201, 39, 18, 66, 213, 37, + ], + [ + 216, 43, 15, 51, 184, 164, 7, 189, 92, 219, 230, 192, 138, 49, 17, 116, 209, 106, 26, + 208, 1, 207, 209, 130, 200, 28, 194, 68, 159, 151, 92, 59, + ], + ], + [ + [ + 130, 227, 156, 234, 103, 13, 183, 24, 209, 108, 219, 46, 240, 126, 63, 210, 226, 125, + 54, 73, 152, 148, 106, 3, 165, 179, 217, 171, 135, 178, 187, 25, + ], + [ + 249, 123, 230, 251, 192, 186, 61, 109, 88, 101, 236, 21, 188, 172, 133, 102, 200, 159, + 0, 83, 252, 97, 5, 193, 171, 41, 51, 40, 232, 17, 197, 47, + ], + [ + 230, 209, 96, 28, 233, 75, 176, 21, 83, 187, 216, 27, 42, 240, 129, 127, 124, 226, 24, + 47, 194, 225, 110, 93, 108, 50, 169, 242, 24, 163, 130, 38, + ], + [ + 133, 62, 95, 11, 93, 161, 179, 247, 32, 25, 89, 217, 173, 147, 63, 62, 162, 228, 178, + 45, 146, 101, 13, 17, 171, 246, 125, 143, 194, 108, 30, 58, + ], + [ + 246, 216, 189, 144, 11, 240, 154, 125, 249, 154, 103, 59, 40, 198, 29, 207, 162, 186, + 17, 160, 63, 218, 136, 217, 105, 228, 71, 36, 45, 244, 135, 30, + ], + [ + 219, 147, 219, 20, 99, 77, 100, 59, 113, 73, 90, 255, 236, 117, 72, 139, 43, 36, 149, + 4, 112, 41, 98, 157, 60, 2, 220, 9, 118, 181, 189, 46, + ], + [ + 4, 109, 33, 143, 207, 231, 44, 77, 113, 223, 222, 247, 110, 52, 82, 202, 123, 213, 168, + 77, 249, 194, 9, 158, 7, 158, 246, 204, 165, 198, 9, 63, + ], + [ + 84, 44, 128, 238, 129, 148, 169, 143, 203, 17, 195, 37, 152, 129, 162, 175, 39, 140, + 217, 131, 143, 238, 67, 49, 14, 235, 52, 228, 147, 63, 54, 35, + ], + ], + [ + [ + 191, 200, 71, 7, 129, 246, 124, 225, 156, 59, 22, 9, 148, 195, 71, 78, 147, 151, 234, + 102, 64, 121, 202, 224, 245, 27, 80, 223, 176, 227, 26, 17, + ], + [ + 157, 66, 240, 109, 254, 70, 22, 27, 239, 237, 53, 115, 128, 155, 233, 187, 164, 148, + 232, 0, 41, 157, 202, 126, 95, 253, 77, 150, 3, 247, 218, 58, + ], + [ + 228, 151, 252, 188, 162, 217, 229, 108, 43, 184, 35, 147, 108, 83, 94, 28, 151, 48, + 103, 150, 181, 98, 147, 212, 14, 134, 229, 37, 192, 112, 24, 16, + ], + [ + 83, 208, 193, 201, 178, 111, 198, 23, 126, 42, 70, 132, 206, 197, 226, 122, 89, 140, + 131, 139, 135, 216, 52, 136, 76, 217, 147, 230, 129, 245, 176, 59, + ], + [ + 244, 45, 69, 232, 83, 171, 220, 246, 253, 139, 1, 48, 15, 253, 251, 59, 222, 181, 17, + 129, 4, 237, 150, 59, 232, 244, 106, 254, 81, 244, 254, 18, + ], + [ + 188, 199, 14, 197, 255, 152, 21, 31, 227, 236, 205, 79, 82, 104, 52, 214, 2, 218, 180, + 90, 116, 189, 195, 244, 167, 62, 194, 36, 107, 184, 11, 43, + ], + [ + 91, 136, 16, 71, 244, 127, 17, 108, 158, 203, 244, 225, 158, 108, 74, 143, 209, 88, + 216, 76, 60, 162, 103, 218, 6, 86, 220, 238, 109, 6, 112, 28, + ], + [ + 210, 145, 15, 69, 76, 180, 168, 134, 197, 134, 121, 248, 13, 45, 162, 58, 191, 117, + 233, 85, 161, 132, 243, 111, 26, 158, 207, 5, 173, 101, 203, 39, + ], + ], + [ + [ + 91, 229, 184, 51, 211, 97, 48, 184, 113, 20, 161, 108, 173, 224, 151, 36, 98, 116, 190, + 236, 239, 208, 45, 65, 41, 218, 22, 78, 21, 159, 68, 26, + ], + [ + 154, 217, 229, 180, 214, 167, 164, 163, 231, 131, 232, 179, 73, 218, 83, 161, 164, 155, + 38, 217, 38, 83, 173, 123, 185, 195, 136, 28, 222, 105, 248, 44, + ], + [ + 239, 18, 84, 25, 24, 214, 58, 20, 152, 95, 143, 93, 97, 219, 36, 109, 132, 217, 17, 55, + 49, 1, 18, 121, 131, 145, 4, 217, 250, 134, 88, 14, + ], + [ + 253, 67, 150, 157, 135, 33, 201, 53, 183, 45, 159, 132, 171, 98, 41, 58, 140, 134, 11, + 145, 25, 241, 71, 213, 88, 135, 55, 47, 244, 112, 235, 43, + ], + [ + 203, 78, 141, 190, 49, 209, 195, 175, 45, 64, 143, 120, 102, 235, 159, 161, 245, 198, + 29, 126, 9, 86, 92, 60, 63, 99, 217, 169, 217, 25, 97, 57, + ], + [ + 233, 223, 245, 147, 242, 164, 19, 19, 137, 245, 19, 241, 36, 159, 136, 111, 211, 191, + 185, 125, 216, 176, 166, 33, 218, 175, 100, 57, 180, 168, 33, 21, + ], + [ + 191, 125, 108, 252, 109, 113, 20, 141, 133, 231, 150, 20, 101, 219, 222, 38, 99, 160, + 59, 92, 97, 181, 71, 115, 51, 165, 119, 92, 118, 44, 127, 60, + ], + [ + 113, 88, 23, 85, 9, 181, 218, 205, 196, 189, 218, 69, 235, 215, 199, 177, 88, 46, 80, + 177, 124, 126, 188, 209, 80, 154, 254, 177, 249, 6, 34, 45, + ], + ], + [ + [ + 49, 171, 43, 141, 243, 56, 203, 14, 8, 164, 117, 204, 211, 2, 98, 215, 247, 219, 40, + 10, 65, 77, 198, 28, 168, 165, 187, 204, 93, 58, 182, 38, + ], + [ + 76, 41, 75, 64, 104, 7, 90, 39, 75, 212, 84, 97, 109, 16, 221, 105, 175, 57, 203, 170, + 160, 193, 20, 250, 41, 48, 135, 95, 210, 60, 239, 18, + ], + [ + 11, 48, 231, 185, 24, 69, 14, 2, 119, 209, 228, 104, 103, 135, 156, 250, 144, 116, 172, + 233, 164, 53, 176, 174, 97, 86, 41, 34, 69, 64, 80, 45, + ], + [ + 206, 62, 81, 203, 222, 175, 138, 11, 37, 103, 16, 242, 2, 233, 61, 206, 100, 119, 153, + 92, 27, 168, 76, 186, 61, 115, 161, 236, 188, 105, 53, 39, + ], + [ + 184, 121, 255, 112, 144, 174, 21, 210, 228, 37, 104, 55, 37, 190, 74, 219, 138, 97, + 143, 89, 102, 179, 145, 166, 45, 48, 254, 158, 171, 154, 179, 29, + ], + [ + 6, 225, 64, 102, 192, 218, 125, 198, 151, 71, 85, 123, 214, 160, 161, 13, 126, 187, + 146, 117, 142, 61, 67, 33, 247, 101, 92, 227, 237, 171, 178, 46, + ], + [ + 214, 175, 191, 1, 36, 44, 95, 190, 226, 11, 238, 183, 89, 58, 32, 159, 7, 43, 143, 126, + 30, 154, 77, 11, 225, 220, 100, 206, 57, 69, 147, 59, + ], + [ + 132, 71, 64, 13, 36, 95, 197, 166, 181, 130, 188, 161, 21, 134, 156, 60, 229, 202, 115, + 252, 142, 193, 144, 9, 148, 49, 152, 217, 94, 10, 200, 16, + ], + ], + [ + [ + 169, 185, 107, 159, 236, 0, 234, 249, 163, 24, 243, 22, 89, 24, 72, 31, 99, 20, 210, + 52, 203, 224, 58, 131, 135, 126, 139, 241, 11, 223, 180, 41, + ], + [ + 100, 111, 163, 64, 52, 18, 196, 37, 86, 14, 150, 151, 192, 192, 213, 66, 5, 175, 208, + 15, 99, 225, 99, 23, 255, 115, 41, 53, 244, 241, 232, 62, + ], + [ + 203, 172, 162, 221, 207, 144, 7, 120, 39, 125, 39, 231, 4, 167, 167, 147, 197, 4, 221, + 168, 11, 32, 252, 185, 253, 56, 198, 125, 180, 217, 48, 14, + ], + [ + 151, 198, 41, 131, 85, 85, 153, 167, 214, 190, 207, 57, 232, 116, 153, 110, 242, 143, + 87, 149, 148, 79, 202, 50, 254, 93, 181, 118, 241, 36, 47, 30, + ], + [ + 169, 132, 214, 252, 163, 226, 40, 236, 102, 76, 39, 197, 196, 64, 76, 131, 131, 239, + 125, 186, 226, 201, 133, 168, 63, 255, 217, 34, 32, 14, 87, 27, + ], + [ + 152, 171, 139, 173, 78, 7, 26, 26, 41, 52, 127, 102, 29, 98, 192, 1, 192, 245, 215, + 144, 80, 63, 44, 223, 64, 223, 246, 42, 138, 196, 82, 56, + ], + [ + 181, 29, 217, 137, 178, 103, 44, 244, 146, 108, 167, 194, 209, 98, 153, 191, 200, 209, + 197, 121, 30, 99, 180, 251, 16, 70, 185, 48, 28, 225, 29, 4, + ], + [ + 6, 12, 109, 251, 112, 60, 35, 12, 42, 207, 70, 3, 142, 241, 196, 126, 220, 203, 68, + 249, 158, 166, 46, 67, 32, 23, 192, 239, 36, 44, 206, 25, + ], + ], + [ + [ + 94, 19, 121, 58, 184, 157, 237, 59, 227, 107, 130, 65, 168, 219, 76, 58, 226, 235, 146, + 109, 35, 2, 8, 52, 110, 145, 135, 173, 45, 18, 40, 18, + ], + [ + 73, 20, 152, 96, 153, 114, 82, 42, 234, 214, 83, 47, 117, 62, 120, 141, 43, 72, 95, 94, + 222, 242, 227, 94, 53, 78, 58, 66, 227, 164, 108, 36, + ], + [ + 15, 203, 0, 206, 129, 153, 3, 46, 221, 28, 232, 197, 225, 202, 69, 64, 15, 85, 203, 4, + 165, 83, 252, 98, 130, 126, 118, 166, 132, 113, 254, 3, + ], + [ + 27, 247, 153, 83, 213, 195, 61, 103, 248, 197, 36, 170, 167, 29, 42, 61, 58, 108, 9, + 162, 63, 63, 78, 234, 102, 112, 223, 115, 109, 89, 205, 11, + ], + [ + 230, 87, 100, 238, 166, 118, 76, 72, 206, 16, 128, 19, 196, 235, 19, 85, 25, 180, 143, + 88, 79, 67, 74, 18, 42, 0, 182, 167, 5, 82, 141, 58, + ], + [ + 242, 225, 221, 181, 10, 42, 4, 246, 169, 149, 20, 171, 248, 249, 181, 206, 171, 85, + 200, 89, 186, 144, 18, 113, 211, 76, 54, 13, 175, 5, 23, 57, + ], + [ + 124, 90, 7, 105, 198, 10, 101, 152, 215, 14, 162, 242, 28, 138, 77, 181, 216, 134, 209, + 125, 207, 40, 23, 247, 132, 101, 202, 184, 108, 234, 30, 23, + ], + [ + 113, 101, 162, 46, 79, 205, 213, 191, 24, 206, 128, 228, 42, 66, 147, 106, 8, 211, 6, + 57, 131, 108, 24, 46, 80, 206, 180, 58, 149, 204, 118, 61, + ], + ], + [ + [ + 251, 19, 185, 65, 96, 235, 128, 183, 255, 41, 247, 142, 148, 237, 175, 76, 168, 5, 48, + 90, 246, 162, 79, 83, 10, 170, 36, 227, 89, 13, 167, 62, + ], + [ + 56, 166, 248, 151, 90, 187, 224, 187, 156, 41, 254, 99, 77, 25, 30, 149, 121, 164, 64, + 17, 55, 129, 219, 217, 125, 235, 138, 13, 220, 168, 152, 1, + ], + [ + 165, 106, 214, 186, 223, 37, 21, 54, 151, 110, 55, 189, 197, 11, 61, 209, 156, 123, + 169, 180, 84, 10, 149, 134, 72, 186, 24, 177, 182, 246, 164, 19, + ], + [ + 73, 95, 93, 223, 114, 216, 130, 77, 25, 212, 228, 134, 143, 89, 68, 90, 11, 213, 48, + 205, 242, 51, 247, 151, 216, 45, 159, 152, 184, 225, 221, 41, + ], + [ + 40, 171, 76, 37, 66, 223, 82, 113, 211, 247, 233, 118, 209, 240, 160, 244, 13, 51, 194, + 152, 58, 168, 231, 12, 185, 25, 186, 175, 64, 12, 231, 6, + ], + [ + 179, 90, 55, 174, 72, 152, 204, 148, 24, 250, 29, 50, 143, 98, 133, 199, 241, 225, 133, + 171, 33, 49, 178, 167, 35, 162, 79, 159, 26, 232, 0, 8, + ], + [ + 125, 6, 204, 17, 50, 201, 101, 165, 28, 107, 109, 206, 143, 215, 105, 123, 175, 164, + 63, 159, 21, 11, 234, 96, 159, 43, 88, 18, 159, 33, 88, 38, + ], + [ + 221, 140, 167, 49, 28, 116, 206, 121, 79, 136, 80, 60, 181, 7, 95, 177, 32, 126, 87, + 128, 168, 124, 129, 166, 189, 214, 255, 44, 221, 83, 103, 48, + ], + ], + [ + [ + 100, 19, 245, 99, 127, 23, 39, 14, 128, 145, 57, 217, 20, 253, 209, 74, 223, 24, 220, + 142, 19, 167, 130, 239, 220, 226, 211, 66, 177, 44, 34, 25, + ], + [ + 253, 114, 38, 89, 223, 86, 164, 50, 35, 154, 30, 159, 194, 152, 119, 36, 118, 25, 244, + 85, 63, 29, 152, 56, 150, 14, 250, 231, 157, 94, 53, 1, + ], + [ + 122, 133, 104, 47, 162, 156, 2, 203, 65, 211, 188, 21, 95, 196, 233, 189, 85, 11, 82, + 62, 121, 185, 128, 178, 117, 221, 41, 246, 177, 224, 168, 53, + ], + [ + 15, 47, 113, 92, 78, 129, 107, 39, 106, 27, 10, 4, 193, 207, 48, 209, 184, 128, 128, + 54, 167, 37, 99, 169, 88, 131, 209, 43, 191, 232, 246, 43, + ], + [ + 151, 100, 55, 80, 35, 25, 142, 78, 150, 69, 94, 12, 237, 225, 126, 108, 106, 133, 11, + 118, 58, 8, 195, 87, 124, 129, 2, 8, 228, 8, 235, 41, + ], + [ + 154, 75, 9, 198, 211, 209, 244, 131, 49, 126, 187, 157, 54, 92, 229, 166, 249, 72, 229, + 168, 92, 24, 17, 154, 4, 213, 211, 179, 26, 60, 115, 57, + ], + [ + 148, 168, 89, 36, 108, 105, 22, 194, 209, 232, 199, 64, 79, 100, 96, 148, 205, 137, 20, + 98, 107, 79, 12, 200, 56, 4, 93, 151, 129, 18, 90, 2, + ], + [ + 173, 118, 232, 220, 163, 182, 149, 237, 184, 151, 108, 87, 139, 99, 14, 144, 174, 120, + 101, 207, 198, 189, 108, 99, 145, 73, 114, 141, 90, 97, 136, 36, + ], + ], +]; + +pub fn generator() -> pallas::Affine { + pallas::Affine::from_xy( + pallas::Base::from_repr(GENERATOR.0).unwrap(), + pallas::Base::from_repr(GENERATOR.1).unwrap(), + ) + .unwrap() +} + +#[cfg(test)] +mod tests { + use super::super::{NUM_WINDOWS, ORCHARD_PERSONALIZATION}; + use super::*; + use group::Curve; + use halo2_gadgets::ecc::chip::constants::{test_lagrange_coeffs, test_zs_and_us}; + use pasta_curves::{ + arithmetic::{CurveAffine, CurveExt}, + pallas, + }; + + #[test] + fn generator() { + let hasher = pallas::Point::hash_to_curve(ORCHARD_PERSONALIZATION); + let point = hasher(b"G"); + let coords = point.to_affine().coordinates().unwrap(); + + assert_eq!(*coords.x(), pallas::Base::from_repr(GENERATOR.0).unwrap()); + assert_eq!(*coords.y(), pallas::Base::from_repr(GENERATOR.1).unwrap()); + } + + #[test] + fn lagrange_coeffs() { + let base = super::generator(); + test_lagrange_coeffs(base, NUM_WINDOWS); + } + + #[test] + fn z() { + let base = super::generator(); + test_zs_and_us(base, &Z, &U, NUM_WINDOWS); + } +} diff --git a/zk-crates/zk-headstash/src/constants/fixed_bases/value_commit_r.rs b/zk-crates/zk-headstash/src/constants/fixed_bases/value_commit_r.rs new file mode 100644 index 0000000..859edb7 --- /dev/null +++ b/zk-crates/zk-headstash/src/constants/fixed_bases/value_commit_r.rs @@ -0,0 +1,2964 @@ +use group::ff::PrimeField; +use pasta_curves::{arithmetic::CurveAffine, pallas}; + +/// The value commitment is a homomorphic Pedersen commitment used to check balance between inputs +/// and outputs. This is its randomness base, $\mathcal{R}^{\mathsf{Orchard}}$. +pub const GENERATOR: ([u8; 32], [u8; 32]) = ( + [ + 145, 90, 60, 136, 104, 198, 195, 14, 47, 128, 144, 238, 69, 215, 110, 64, 72, 32, 141, 234, + 91, 35, 102, 79, 187, 9, 164, 15, 85, 68, 244, 7, + ], + [ + 202, 217, 114, 167, 200, 70, 47, 14, 70, 129, 146, 243, 241, 41, 146, 39, 194, 183, 111, + 228, 201, 44, 86, 33, 140, 98, 38, 175, 119, 103, 19, 36, + ], +); + +/// Full-width z-values for GENERATOR. +/// These can be reproduced by [`halo2_gadgets::ecc::chip::constants::find_zs_and_us`]. +pub const Z: [u64; super::NUM_WINDOWS] = [ + 181916, 22148, 340526, 80718, 104958, 86894, 43381, 1060, 82130, 4741, 55897, 4304, 114469, + 20503, 25001, 62408, 52978, 35893, 72071, 154369, 67304, 7299, 27960, 42929, 51869, 89967, + 62210, 59433, 47868, 32536, 105000, 1546, 2116, 18717, 50694, 22864, 254428, 54966, 108762, + 46706, 65730, 45555, 7376, 50051, 24773, 74636, 44806, 23223, 78561, 50668, 7380, 13697, + 171970, 269484, 25534, 5098, 79584, 6889, 21432, 73095, 36745, 37350, 6274, 5179, 50216, 12007, + 44029, 88199, 70401, 14120, 19017, 2423, 26494, 34954, 126293, 167379, 136922, 45619, 30331, + 22632, 163228, 12997, 4461, 32320, 13430, +]; + +/// Full-width u-values for GENERATOR. +/// These can be reproduced by [`halo2_gadgets::ecc::chip::constants::find_zs_and_us`]. +pub static U: [[[u8; 32]; super::H]; super::NUM_WINDOWS] = [ + [ + [ + 139, 239, 3, 113, 200, 111, 72, 118, 105, 23, 186, 243, 234, 10, 173, 186, 53, 143, + 244, 250, 24, 189, 161, 158, 43, 13, 143, 252, 82, 104, 150, 55, + ], + [ + 102, 10, 45, 173, 93, 142, 120, 21, 105, 140, 183, 3, 198, 201, 198, 184, 15, 206, 177, + 131, 9, 25, 103, 232, 162, 26, 45, 202, 9, 125, 93, 49, + ], + [ + 7, 184, 84, 133, 195, 104, 173, 245, 198, 202, 50, 197, 58, 26, 187, 116, 72, 224, 153, + 67, 200, 174, 32, 60, 195, 80, 152, 192, 131, 168, 208, 13, + ], + [ + 62, 23, 97, 17, 76, 95, 147, 158, 244, 165, 111, 203, 162, 25, 80, 235, 63, 80, 45, 12, + 254, 236, 154, 135, 211, 75, 44, 122, 125, 197, 9, 41, + ], + [ + 99, 80, 223, 192, 185, 128, 95, 248, 127, 225, 142, 107, 179, 40, 8, 112, 59, 60, 81, + 89, 87, 153, 126, 140, 190, 187, 139, 9, 24, 21, 104, 5, + ], + [ + 39, 201, 225, 147, 38, 14, 83, 216, 168, 53, 60, 41, 194, 52, 37, 141, 20, 20, 10, 242, + 173, 169, 194, 72, 182, 95, 173, 186, 229, 115, 178, 37, + ], + [ + 234, 29, 76, 124, 112, 42, 82, 57, 181, 205, 61, 90, 58, 224, 227, 21, 83, 58, 30, 216, + 161, 10, 104, 83, 34, 113, 192, 146, 141, 215, 219, 44, + ], + [ + 218, 183, 114, 168, 64, 166, 144, 113, 219, 75, 64, 32, 252, 13, 10, 111, 244, 194, 79, + 70, 7, 209, 129, 66, 232, 180, 217, 248, 61, 191, 59, 51, + ], + ], + [ + [ + 96, 67, 69, 38, 122, 193, 223, 87, 223, 138, 202, 119, 235, 141, 70, 229, 166, 135, + 208, 39, 220, 143, 203, 102, 106, 99, 115, 39, 8, 60, 31, 30, + ], + [ + 207, 136, 59, 50, 178, 209, 184, 137, 238, 170, 63, 147, 102, 56, 194, 30, 152, 87, + 165, 250, 203, 71, 154, 64, 41, 216, 239, 143, 9, 94, 33, 52, + ], + [ + 158, 74, 177, 224, 26, 70, 115, 103, 211, 95, 237, 92, 72, 210, 216, 225, 165, 20, 251, + 241, 200, 140, 178, 182, 154, 65, 105, 144, 85, 65, 240, 46, + ], + [ + 11, 99, 19, 189, 201, 13, 110, 245, 240, 219, 4, 55, 24, 81, 54, 2, 82, 54, 171, 29, + 203, 99, 234, 64, 175, 154, 87, 112, 249, 29, 20, 30, + ], + [ + 213, 177, 148, 202, 251, 114, 75, 8, 198, 148, 44, 102, 185, 120, 226, 222, 251, 65, + 206, 38, 99, 180, 62, 13, 221, 122, 206, 148, 10, 212, 234, 4, + ], + [ + 191, 60, 118, 185, 153, 148, 200, 78, 50, 10, 66, 97, 26, 79, 240, 136, 20, 115, 39, + 240, 166, 237, 87, 98, 223, 84, 197, 151, 230, 139, 235, 7, + ], + [ + 170, 86, 142, 224, 231, 59, 184, 35, 237, 52, 13, 72, 108, 156, 227, 229, 214, 103, + 175, 139, 231, 148, 146, 51, 195, 157, 221, 189, 122, 27, 227, 37, + ], + [ + 88, 29, 201, 124, 227, 97, 36, 193, 215, 180, 137, 50, 249, 137, 10, 118, 67, 200, 35, + 42, 181, 217, 213, 146, 210, 159, 47, 194, 165, 101, 241, 20, + ], + ], + [ + [ + 147, 4, 192, 237, 120, 223, 231, 71, 128, 237, 0, 110, 243, 11, 132, 152, 102, 150, + 212, 251, 145, 56, 21, 247, 78, 232, 88, 204, 26, 139, 75, 1, + ], + [ + 242, 104, 68, 11, 78, 77, 207, 142, 185, 45, 95, 183, 81, 22, 8, 125, 247, 66, 152, 59, + 191, 118, 51, 215, 85, 0, 51, 170, 147, 239, 110, 17, + ], + [ + 148, 204, 16, 59, 17, 174, 121, 72, 218, 232, 205, 215, 128, 255, 187, 112, 141, 188, + 30, 2, 176, 122, 78, 158, 147, 150, 228, 25, 253, 68, 254, 43, + ], + [ + 30, 207, 11, 138, 80, 55, 51, 156, 139, 83, 138, 33, 115, 159, 197, 188, 79, 31, 104, + 111, 62, 80, 183, 143, 105, 189, 238, 79, 147, 212, 156, 11, + ], + [ + 162, 59, 128, 0, 14, 229, 58, 101, 219, 135, 2, 93, 2, 254, 14, 43, 143, 219, 76, 121, + 233, 148, 54, 51, 227, 115, 38, 253, 95, 103, 191, 21, + ], + [ + 117, 191, 41, 120, 209, 97, 234, 18, 169, 17, 7, 120, 210, 68, 139, 185, 133, 131, 43, + 106, 10, 107, 18, 21, 57, 8, 190, 228, 149, 37, 158, 51, + ], + [ + 31, 174, 69, 213, 168, 110, 159, 179, 18, 94, 76, 220, 112, 128, 252, 184, 236, 100, + 185, 238, 191, 51, 204, 100, 107, 218, 101, 96, 106, 166, 70, 6, + ], + [ + 123, 139, 4, 10, 146, 168, 123, 135, 46, 115, 8, 11, 195, 106, 68, 214, 136, 168, 177, + 1, 184, 13, 51, 185, 184, 187, 68, 26, 157, 183, 41, 62, + ], + ], + [ + [ + 153, 31, 98, 227, 163, 137, 0, 129, 133, 57, 178, 132, 239, 46, 204, 124, 73, 65, 29, + 216, 30, 37, 56, 132, 241, 220, 62, 78, 187, 62, 240, 45, + ], + [ + 125, 116, 131, 117, 46, 193, 254, 93, 79, 76, 177, 57, 31, 200, 120, 132, 186, 53, 66, + 220, 163, 178, 5, 230, 188, 212, 210, 25, 188, 103, 93, 44, + ], + [ + 49, 162, 67, 249, 87, 145, 89, 247, 245, 104, 208, 165, 219, 100, 16, 187, 142, 200, + 66, 47, 38, 77, 245, 3, 108, 74, 62, 106, 50, 208, 84, 52, + ], + [ + 201, 221, 108, 129, 170, 111, 64, 73, 140, 255, 129, 243, 252, 87, 129, 226, 170, 210, + 141, 213, 121, 212, 34, 184, 139, 157, 198, 98, 40, 50, 160, 59, + ], + [ + 238, 218, 145, 5, 148, 79, 125, 6, 93, 100, 166, 138, 241, 213, 11, 178, 96, 251, 113, + 138, 47, 97, 33, 222, 224, 129, 174, 130, 217, 164, 140, 29, + ], + [ + 212, 178, 199, 211, 213, 183, 6, 187, 140, 241, 90, 125, 180, 76, 46, 158, 109, 136, + 103, 168, 66, 53, 177, 127, 32, 212, 197, 52, 144, 147, 136, 45, + ], + [ + 103, 249, 188, 165, 128, 120, 137, 119, 158, 154, 30, 17, 38, 169, 19, 33, 53, 148, 37, + 218, 95, 85, 148, 115, 41, 250, 150, 226, 101, 212, 163, 30, + ], + [ + 230, 249, 111, 35, 125, 100, 99, 9, 198, 41, 46, 115, 83, 8, 31, 196, 164, 188, 94, 8, + 109, 175, 164, 169, 64, 5, 78, 121, 162, 246, 59, 53, + ], + ], + [ + [ + 64, 172, 254, 150, 194, 0, 229, 126, 227, 156, 144, 238, 66, 221, 251, 17, 212, 189, + 75, 173, 183, 141, 105, 90, 211, 214, 215, 190, 220, 218, 32, 2, + ], + [ + 250, 142, 28, 190, 160, 225, 213, 205, 14, 211, 102, 52, 153, 255, 151, 209, 225, 2, + 33, 25, 213, 238, 238, 198, 18, 154, 228, 241, 241, 54, 157, 60, + ], + [ + 75, 214, 166, 211, 115, 128, 32, 28, 77, 81, 147, 56, 39, 155, 109, 112, 10, 160, 98, + 103, 72, 95, 27, 59, 207, 229, 174, 25, 4, 251, 92, 60, + ], + [ + 34, 113, 137, 237, 47, 68, 116, 169, 227, 218, 209, 74, 23, 162, 182, 147, 221, 151, + 145, 79, 131, 95, 193, 132, 143, 130, 130, 227, 245, 198, 206, 27, + ], + [ + 127, 167, 50, 210, 223, 36, 251, 32, 21, 244, 240, 170, 220, 7, 86, 197, 230, 237, 222, + 25, 156, 33, 93, 227, 95, 118, 148, 123, 226, 170, 189, 62, + ], + [ + 172, 190, 180, 238, 11, 198, 98, 110, 7, 7, 137, 152, 215, 206, 40, 220, 218, 85, 9, + 52, 172, 74, 5, 214, 152, 191, 17, 48, 100, 173, 54, 26, + ], + [ + 247, 12, 146, 226, 110, 132, 132, 139, 243, 207, 204, 228, 47, 186, 231, 240, 231, 176, + 133, 36, 206, 22, 119, 135, 22, 145, 197, 100, 20, 199, 15, 58, + ], + [ + 175, 19, 90, 7, 34, 58, 172, 219, 22, 67, 115, 16, 50, 51, 173, 31, 133, 161, 1, 229, + 178, 133, 102, 152, 55, 78, 45, 110, 75, 239, 234, 38, + ], + ], + [ + [ + 145, 188, 217, 28, 211, 109, 158, 69, 114, 242, 67, 177, 86, 231, 235, 110, 226, 248, + 92, 192, 231, 217, 250, 30, 54, 110, 42, 17, 4, 123, 63, 41, + ], + [ + 239, 149, 56, 141, 40, 202, 6, 176, 150, 138, 225, 8, 95, 21, 41, 149, 135, 163, 132, + 41, 2, 43, 139, 171, 27, 196, 102, 64, 33, 218, 153, 59, + ], + [ + 203, 34, 210, 53, 46, 172, 48, 78, 145, 63, 217, 49, 77, 236, 1, 154, 200, 72, 24, 2, + 222, 189, 166, 166, 132, 245, 177, 199, 89, 54, 126, 25, + ], + [ + 86, 6, 180, 69, 62, 170, 243, 248, 240, 30, 241, 155, 22, 79, 11, 110, 178, 64, 195, + 62, 30, 75, 182, 14, 113, 220, 96, 15, 168, 107, 37, 60, + ], + [ + 119, 113, 192, 238, 13, 95, 60, 229, 22, 93, 102, 163, 170, 144, 188, 6, 194, 160, 69, + 116, 94, 199, 26, 192, 249, 116, 128, 72, 184, 45, 162, 35, + ], + [ + 94, 223, 14, 35, 38, 97, 179, 224, 57, 126, 170, 251, 91, 103, 84, 23, 224, 151, 106, + 199, 236, 106, 163, 141, 58, 175, 81, 80, 40, 214, 201, 59, + ], + [ + 132, 112, 204, 9, 226, 55, 185, 75, 231, 21, 48, 249, 198, 110, 57, 82, 123, 164, 91, + 16, 85, 246, 121, 57, 4, 132, 38, 133, 2, 196, 123, 63, + ], + [ + 10, 232, 165, 228, 159, 111, 77, 10, 124, 168, 59, 111, 134, 139, 175, 115, 181, 41, + 195, 207, 122, 3, 181, 1, 233, 171, 144, 20, 209, 170, 250, 28, + ], + ], + [ + [ + 31, 220, 178, 109, 251, 49, 176, 112, 11, 205, 236, 79, 93, 93, 209, 18, 54, 37, 19, + 194, 83, 223, 91, 242, 233, 83, 141, 144, 135, 244, 105, 56, + ], + [ + 81, 231, 94, 170, 107, 127, 203, 163, 10, 183, 25, 198, 4, 61, 67, 154, 163, 90, 74, 9, + 200, 29, 145, 141, 166, 123, 62, 13, 104, 194, 93, 50, + ], + [ + 172, 180, 2, 27, 47, 80, 235, 164, 224, 160, 254, 247, 147, 236, 137, 122, 237, 65, 98, + 174, 224, 209, 61, 144, 152, 43, 50, 80, 206, 128, 29, 7, + ], + [ + 96, 37, 53, 71, 220, 216, 77, 204, 62, 14, 73, 192, 136, 118, 209, 107, 116, 89, 247, + 117, 41, 254, 157, 253, 146, 83, 61, 134, 172, 217, 167, 61, + ], + [ + 104, 117, 19, 237, 94, 120, 199, 136, 125, 131, 228, 144, 28, 10, 148, 119, 106, 17, + 250, 90, 94, 194, 167, 240, 113, 247, 183, 253, 160, 184, 27, 9, + ], + [ + 192, 24, 53, 127, 235, 143, 177, 125, 190, 143, 56, 228, 130, 68, 241, 104, 203, 233, + 225, 7, 148, 95, 154, 210, 22, 127, 67, 100, 19, 0, 18, 49, + ], + [ + 236, 129, 24, 57, 236, 189, 67, 7, 7, 189, 46, 125, 107, 150, 52, 83, 225, 198, 101, + 47, 123, 198, 8, 88, 198, 83, 121, 40, 186, 113, 242, 42, + ], + [ + 120, 71, 188, 215, 73, 12, 233, 32, 183, 162, 175, 38, 132, 27, 32, 249, 176, 102, 92, + 123, 174, 249, 228, 134, 124, 231, 187, 191, 240, 9, 236, 25, + ], + ], + [ + [ + 44, 238, 221, 171, 60, 205, 205, 235, 28, 12, 166, 250, 253, 81, 171, 208, 182, 24, 91, + 210, 129, 225, 102, 183, 208, 189, 114, 152, 151, 157, 226, 51, + ], + [ + 103, 138, 231, 149, 85, 124, 78, 82, 40, 17, 231, 154, 156, 3, 30, 222, 245, 52, 94, + 21, 104, 35, 253, 234, 63, 93, 118, 157, 170, 22, 250, 37, + ], + [ + 40, 91, 164, 160, 164, 242, 12, 226, 36, 210, 221, 128, 70, 87, 209, 36, 35, 189, 44, + 85, 110, 100, 212, 166, 132, 244, 106, 243, 103, 75, 243, 20, + ], + [ + 159, 108, 152, 218, 145, 14, 59, 25, 174, 120, 118, 20, 221, 214, 134, 127, 8, 84, 14, + 151, 206, 249, 43, 127, 219, 205, 103, 185, 160, 23, 8, 55, + ], + [ + 248, 129, 230, 218, 151, 177, 113, 167, 115, 89, 111, 199, 44, 100, 229, 186, 76, 136, + 78, 174, 14, 239, 223, 152, 0, 35, 134, 159, 69, 198, 100, 37, + ], + [ + 86, 62, 241, 104, 218, 62, 10, 203, 109, 39, 47, 242, 110, 34, 17, 62, 188, 251, 109, + 224, 224, 49, 232, 249, 158, 44, 131, 184, 232, 169, 151, 11, + ], + [ + 230, 160, 217, 171, 53, 116, 55, 143, 30, 111, 3, 92, 203, 224, 216, 180, 33, 218, 240, + 25, 183, 233, 55, 238, 165, 146, 168, 141, 40, 92, 37, 22, + ], + [ + 209, 112, 179, 95, 105, 7, 163, 138, 141, 97, 118, 174, 120, 237, 72, 230, 79, 172, 90, + 219, 26, 192, 38, 228, 122, 28, 72, 80, 235, 193, 127, 34, + ], + ], + [ + [ + 254, 28, 193, 110, 41, 72, 172, 152, 87, 109, 233, 222, 140, 147, 159, 124, 148, 182, + 94, 179, 206, 34, 33, 50, 172, 30, 12, 199, 87, 72, 165, 41, + ], + [ + 245, 173, 241, 93, 248, 176, 51, 64, 144, 104, 208, 216, 16, 206, 94, 152, 167, 89, + 137, 196, 246, 240, 87, 167, 171, 104, 27, 116, 108, 217, 22, 9, + ], + [ + 132, 156, 222, 191, 17, 62, 197, 49, 34, 216, 214, 33, 47, 82, 224, 216, 170, 239, 241, + 126, 234, 212, 199, 91, 138, 110, 27, 128, 117, 50, 242, 32, + ], + [ + 64, 5, 181, 26, 70, 28, 184, 194, 87, 116, 43, 93, 67, 92, 174, 29, 11, 79, 243, 240, + 11, 121, 157, 62, 58, 33, 181, 90, 211, 131, 7, 8, + ], + [ + 230, 49, 144, 6, 195, 18, 172, 214, 238, 213, 186, 116, 144, 69, 231, 252, 84, 102, 91, + 94, 200, 169, 229, 178, 99, 245, 15, 119, 190, 194, 95, 54, + ], + [ + 41, 252, 108, 140, 207, 174, 78, 195, 183, 186, 125, 24, 131, 106, 216, 108, 184, 153, + 249, 79, 94, 210, 124, 195, 115, 224, 63, 192, 184, 83, 30, 26, + ], + [ + 208, 125, 51, 179, 127, 202, 37, 211, 44, 72, 27, 164, 254, 137, 58, 148, 0, 63, 41, + 234, 1, 158, 72, 25, 169, 132, 1, 189, 215, 2, 64, 14, + ], + [ + 46, 111, 37, 127, 176, 137, 50, 89, 246, 138, 208, 203, 106, 195, 157, 231, 240, 144, + 240, 225, 64, 198, 233, 167, 127, 40, 231, 104, 82, 155, 45, 18, + ], + ], + [ + [ + 25, 54, 51, 222, 26, 219, 162, 250, 134, 244, 11, 167, 206, 151, 28, 254, 63, 143, 163, + 169, 151, 94, 5, 207, 253, 137, 198, 25, 88, 102, 129, 24, + ], + [ + 173, 42, 240, 164, 55, 124, 163, 247, 2, 94, 188, 244, 114, 36, 131, 79, 243, 126, 25, + 60, 70, 209, 150, 121, 9, 44, 80, 224, 183, 131, 133, 40, + ], + [ + 246, 58, 162, 49, 244, 161, 222, 142, 77, 187, 24, 76, 41, 16, 76, 147, 43, 143, 173, + 142, 112, 194, 31, 105, 27, 195, 126, 227, 23, 231, 208, 8, + ], + [ + 35, 200, 84, 68, 62, 127, 102, 254, 54, 172, 151, 193, 222, 181, 190, 204, 95, 57, 33, + 225, 15, 79, 237, 101, 28, 239, 186, 29, 41, 69, 98, 21, + ], + [ + 100, 64, 24, 112, 156, 153, 245, 233, 166, 182, 114, 120, 185, 207, 43, 155, 145, 73, + 64, 215, 81, 169, 35, 240, 69, 116, 5, 34, 240, 79, 105, 1, + ], + [ + 226, 59, 11, 185, 102, 13, 42, 109, 44, 163, 130, 161, 218, 147, 189, 18, 60, 61, 123, + 242, 172, 208, 131, 138, 118, 95, 21, 111, 46, 74, 82, 1, + ], + [ + 217, 244, 22, 128, 132, 230, 210, 181, 187, 251, 65, 195, 81, 129, 222, 206, 97, 14, + 178, 243, 19, 113, 209, 11, 142, 86, 248, 246, 229, 152, 162, 17, + ], + [ + 59, 102, 139, 93, 161, 101, 23, 36, 218, 70, 246, 128, 98, 147, 174, 207, 84, 139, 39, + 67, 227, 7, 130, 64, 37, 22, 194, 218, 191, 43, 34, 45, + ], + ], + [ + [ + 243, 215, 252, 180, 108, 191, 218, 211, 153, 49, 144, 152, 90, 95, 76, 233, 106, 222, + 156, 245, 61, 172, 45, 242, 58, 167, 202, 227, 245, 236, 247, 20, + ], + [ + 2, 213, 207, 34, 65, 186, 12, 228, 150, 46, 40, 66, 72, 196, 244, 151, 80, 62, 116, + 141, 36, 52, 180, 11, 184, 13, 175, 50, 172, 66, 85, 29, + ], + [ + 185, 172, 242, 99, 188, 15, 56, 93, 53, 83, 208, 174, 10, 71, 76, 36, 98, 173, 159, 81, + 53, 129, 157, 220, 61, 93, 12, 123, 21, 2, 123, 46, + ], + [ + 195, 200, 168, 165, 148, 30, 154, 31, 130, 39, 105, 199, 45, 122, 208, 75, 43, 40, 223, + 149, 143, 209, 121, 207, 176, 192, 237, 254, 133, 131, 212, 14, + ], + [ + 243, 120, 106, 116, 193, 82, 61, 254, 19, 211, 26, 13, 30, 197, 160, 76, 142, 143, 228, + 54, 49, 114, 253, 198, 190, 58, 118, 175, 105, 244, 57, 1, + ], + [ + 187, 65, 118, 89, 48, 103, 234, 64, 137, 212, 20, 130, 63, 41, 167, 40, 204, 105, 151, + 188, 106, 116, 212, 8, 33, 220, 86, 126, 174, 117, 241, 11, + ], + [ + 23, 36, 152, 55, 25, 64, 51, 241, 153, 94, 53, 240, 244, 26, 191, 249, 76, 47, 167, 53, + 103, 179, 87, 200, 85, 57, 187, 73, 87, 186, 71, 5, + ], + [ + 3, 245, 6, 142, 151, 192, 17, 62, 8, 136, 223, 178, 122, 228, 234, 192, 18, 12, 162, + 186, 249, 173, 183, 20, 190, 238, 56, 35, 142, 237, 243, 2, + ], + ], + [ + [ + 214, 249, 38, 19, 194, 4, 20, 205, 62, 197, 25, 3, 103, 4, 128, 12, 222, 100, 14, 15, + 9, 188, 229, 54, 182, 46, 18, 0, 53, 137, 27, 32, + ], + [ + 1, 248, 42, 1, 186, 186, 208, 3, 200, 86, 156, 177, 16, 214, 197, 100, 46, 136, 45, + 186, 221, 12, 30, 122, 141, 141, 242, 37, 9, 23, 50, 31, + ], + [ + 30, 193, 71, 240, 123, 34, 96, 160, 159, 81, 65, 89, 85, 224, 39, 182, 188, 43, 148, 4, + 178, 136, 230, 179, 120, 157, 237, 153, 144, 203, 166, 18, + ], + [ + 23, 153, 154, 149, 96, 81, 58, 206, 78, 42, 131, 36, 180, 230, 152, 240, 188, 196, 75, + 191, 187, 191, 201, 29, 248, 169, 1, 249, 194, 90, 146, 13, + ], + [ + 172, 165, 50, 18, 118, 97, 254, 130, 3, 56, 196, 176, 230, 203, 95, 140, 114, 140, 53, + 45, 184, 55, 58, 243, 32, 82, 182, 61, 121, 144, 156, 59, + ], + [ + 117, 176, 227, 84, 115, 78, 150, 191, 31, 133, 143, 105, 89, 128, 249, 146, 113, 16, + 24, 46, 121, 132, 4, 240, 59, 5, 228, 223, 10, 28, 17, 45, + ], + [ + 90, 222, 163, 229, 143, 243, 155, 195, 207, 44, 38, 111, 136, 71, 10, 65, 141, 20, 56, + 224, 173, 128, 45, 220, 236, 250, 2, 212, 132, 245, 86, 20, + ], + [ + 132, 121, 145, 157, 175, 243, 206, 52, 195, 75, 219, 105, 139, 21, 43, 111, 235, 75, + 244, 41, 179, 111, 142, 241, 56, 139, 199, 215, 155, 155, 24, 3, + ], + ], + [ + [ + 170, 160, 77, 190, 31, 71, 130, 150, 13, 82, 166, 134, 114, 218, 143, 234, 103, 193, + 31, 79, 160, 143, 224, 137, 153, 223, 83, 95, 86, 15, 224, 44, + ], + [ + 247, 66, 144, 180, 80, 213, 107, 248, 33, 247, 21, 40, 162, 43, 229, 130, 164, 122, + 155, 92, 221, 188, 252, 170, 102, 151, 54, 204, 150, 59, 194, 56, + ], + [ + 99, 55, 144, 231, 101, 168, 114, 245, 137, 185, 40, 155, 159, 157, 78, 143, 41, 227, + 125, 81, 209, 82, 71, 23, 225, 95, 242, 152, 61, 106, 114, 58, + ], + [ + 251, 171, 20, 73, 200, 63, 174, 145, 92, 225, 76, 78, 213, 212, 87, 243, 42, 186, 194, + 98, 80, 131, 184, 206, 237, 248, 143, 235, 185, 66, 225, 15, + ], + [ + 41, 63, 235, 60, 242, 30, 193, 127, 243, 81, 133, 103, 18, 74, 224, 246, 14, 15, 81, + 128, 139, 171, 164, 159, 217, 64, 66, 253, 203, 171, 90, 44, + ], + [ + 107, 47, 2, 101, 9, 174, 191, 51, 206, 178, 45, 59, 2, 48, 86, 193, 88, 190, 79, 94, + 255, 5, 32, 137, 160, 237, 0, 50, 20, 131, 108, 8, + ], + [ + 149, 251, 115, 8, 57, 217, 50, 3, 163, 192, 38, 199, 174, 92, 109, 92, 246, 242, 44, + 56, 193, 10, 51, 113, 130, 201, 253, 190, 30, 240, 63, 40, + ], + [ + 110, 22, 68, 198, 134, 118, 180, 38, 89, 200, 93, 253, 239, 27, 222, 170, 177, 213, 83, + 119, 187, 33, 203, 82, 158, 22, 19, 215, 138, 247, 189, 51, + ], + ], + [ + [ + 117, 125, 50, 157, 49, 226, 157, 252, 37, 2, 218, 196, 79, 208, 204, 122, 201, 107, + 136, 149, 22, 194, 213, 162, 66, 123, 132, 115, 191, 180, 83, 48, + ], + [ + 210, 19, 161, 243, 101, 177, 187, 16, 121, 148, 102, 119, 222, 135, 3, 199, 122, 151, + 166, 149, 140, 235, 66, 227, 102, 181, 160, 237, 201, 144, 179, 11, + ], + [ + 62, 110, 127, 32, 13, 245, 200, 232, 109, 85, 27, 78, 90, 105, 51, 16, 209, 176, 250, + 162, 217, 67, 168, 73, 143, 84, 9, 68, 225, 83, 207, 18, + ], + [ + 178, 159, 32, 19, 97, 131, 45, 209, 170, 100, 118, 101, 225, 22, 117, 148, 47, 171, + 123, 52, 52, 31, 197, 175, 63, 62, 53, 66, 159, 86, 101, 18, + ], + [ + 32, 79, 44, 69, 64, 154, 0, 68, 192, 225, 40, 51, 90, 68, 250, 187, 184, 212, 134, 241, + 224, 157, 188, 102, 132, 155, 170, 242, 5, 149, 109, 41, + ], + [ + 37, 1, 13, 187, 23, 69, 249, 107, 244, 132, 14, 31, 32, 38, 13, 196, 203, 148, 105, 80, + 38, 185, 27, 200, 4, 42, 54, 47, 69, 35, 139, 47, + ], + [ + 59, 145, 155, 161, 230, 222, 9, 75, 18, 137, 208, 130, 222, 156, 205, 35, 60, 164, 30, + 87, 239, 251, 197, 42, 175, 198, 243, 52, 153, 33, 82, 6, + ], + [ + 114, 241, 55, 63, 242, 105, 93, 232, 30, 144, 103, 214, 145, 231, 247, 5, 39, 81, 213, + 224, 233, 54, 143, 86, 24, 239, 152, 241, 22, 3, 88, 48, + ], + ], + [ + [ + 183, 73, 223, 229, 216, 181, 22, 14, 160, 107, 224, 122, 232, 129, 32, 164, 185, 28, + 237, 169, 30, 220, 109, 105, 222, 16, 150, 199, 169, 98, 178, 63, + ], + [ + 254, 59, 102, 135, 221, 217, 120, 25, 70, 142, 180, 143, 18, 32, 76, 155, 27, 126, 85, + 209, 54, 41, 226, 146, 61, 60, 90, 93, 148, 65, 13, 54, + ], + [ + 45, 111, 189, 160, 179, 174, 50, 59, 44, 37, 174, 101, 210, 22, 94, 248, 230, 247, 218, + 200, 245, 206, 106, 137, 52, 245, 230, 142, 169, 163, 134, 18, + ], + [ + 217, 173, 14, 202, 213, 119, 164, 85, 177, 132, 83, 40, 249, 158, 172, 93, 210, 45, + 244, 253, 247, 227, 38, 252, 226, 240, 65, 163, 106, 29, 22, 19, + ], + [ + 249, 69, 144, 252, 245, 20, 125, 73, 213, 219, 120, 12, 11, 216, 108, 111, 107, 17, 24, + 126, 242, 50, 77, 245, 180, 66, 194, 195, 136, 0, 179, 36, + ], + [ + 110, 175, 70, 254, 167, 151, 104, 91, 126, 243, 201, 150, 21, 231, 172, 247, 188, 206, + 194, 88, 239, 32, 83, 81, 239, 114, 164, 154, 166, 82, 47, 46, + ], + [ + 1, 177, 232, 3, 140, 36, 220, 195, 191, 180, 103, 48, 18, 19, 97, 145, 66, 252, 19, + 194, 79, 177, 227, 57, 214, 205, 227, 144, 105, 243, 49, 52, + ], + [ + 3, 30, 79, 200, 159, 73, 74, 224, 211, 118, 77, 119, 49, 6, 200, 123, 189, 29, 240, 75, + 143, 113, 248, 126, 157, 34, 181, 40, 71, 104, 40, 29, + ], + ], + [ + [ + 72, 187, 142, 33, 65, 74, 73, 237, 236, 55, 32, 61, 31, 150, 208, 1, 154, 10, 254, 203, + 12, 136, 113, 130, 120, 149, 192, 62, 188, 20, 167, 15, + ], + [ + 34, 157, 37, 82, 105, 170, 4, 202, 92, 83, 161, 163, 61, 113, 24, 211, 35, 231, 97, 61, + 163, 180, 214, 182, 24, 32, 57, 234, 100, 78, 115, 10, + ], + [ + 222, 232, 162, 244, 15, 70, 7, 177, 125, 48, 236, 76, 215, 103, 30, 192, 174, 174, 204, + 26, 189, 219, 24, 120, 164, 196, 186, 112, 232, 17, 41, 50, + ], + [ + 55, 110, 18, 103, 80, 146, 54, 15, 36, 53, 114, 18, 77, 124, 197, 206, 106, 215, 86, + 197, 102, 199, 200, 42, 27, 9, 93, 246, 79, 0, 67, 25, + ], + [ + 121, 169, 86, 133, 108, 129, 219, 189, 34, 211, 101, 130, 74, 34, 13, 81, 14, 110, 214, + 84, 27, 61, 84, 26, 29, 50, 181, 52, 167, 142, 120, 34, + ], + [ + 124, 171, 39, 168, 104, 172, 63, 79, 108, 178, 191, 149, 140, 79, 124, 216, 131, 183, + 186, 128, 242, 182, 167, 255, 103, 148, 242, 122, 64, 230, 71, 7, + ], + [ + 56, 174, 182, 231, 135, 215, 66, 103, 46, 120, 92, 118, 249, 203, 107, 149, 58, 138, + 148, 91, 58, 39, 142, 88, 196, 91, 44, 213, 184, 39, 132, 40, + ], + [ + 185, 195, 19, 33, 60, 2, 123, 172, 104, 179, 183, 244, 19, 202, 190, 127, 167, 133, + 136, 102, 193, 29, 212, 214, 123, 183, 156, 205, 192, 198, 35, 43, + ], + ], + [ + [ + 205, 83, 71, 183, 1, 24, 115, 206, 228, 111, 5, 241, 177, 42, 216, 40, 155, 197, 81, + 205, 133, 76, 236, 36, 117, 185, 253, 103, 120, 35, 65, 21, + ], + [ + 166, 215, 18, 12, 156, 184, 129, 59, 129, 189, 191, 109, 255, 117, 116, 255, 94, 69, + 20, 76, 50, 5, 87, 157, 165, 64, 83, 3, 196, 27, 19, 22, + ], + [ + 140, 139, 130, 83, 133, 157, 114, 126, 234, 212, 116, 154, 64, 173, 80, 56, 16, 61, + 108, 202, 102, 96, 21, 247, 144, 174, 45, 27, 201, 147, 225, 41, + ], + [ + 62, 87, 186, 240, 132, 207, 51, 133, 39, 103, 81, 145, 73, 139, 31, 131, 59, 209, 176, + 139, 208, 186, 233, 247, 155, 252, 144, 3, 44, 85, 252, 49, + ], + [ + 138, 130, 218, 32, 216, 172, 47, 195, 15, 48, 92, 183, 94, 116, 144, 79, 223, 127, 155, + 136, 39, 119, 64, 30, 182, 98, 54, 118, 54, 223, 150, 27, + ], + [ + 206, 25, 234, 10, 64, 70, 6, 217, 31, 179, 247, 5, 7, 239, 139, 168, 33, 169, 35, 190, + 246, 31, 225, 27, 22, 85, 217, 211, 42, 112, 105, 39, + ], + [ + 216, 56, 84, 211, 144, 154, 176, 88, 174, 154, 110, 176, 208, 88, 132, 35, 157, 174, + 230, 171, 136, 232, 84, 14, 237, 218, 16, 49, 179, 160, 234, 50, + ], + [ + 183, 99, 245, 70, 190, 152, 145, 87, 35, 163, 196, 71, 172, 58, 205, 155, 160, 103, 8, + 85, 57, 175, 88, 31, 88, 49, 206, 162, 16, 155, 23, 25, + ], + ], + [ + [ + 74, 149, 239, 189, 114, 65, 210, 77, 46, 82, 98, 194, 14, 133, 94, 49, 40, 152, 91, 50, + 5, 164, 18, 226, 135, 94, 2, 125, 175, 41, 120, 51, + ], + [ + 181, 143, 178, 114, 48, 133, 23, 9, 63, 217, 111, 235, 184, 251, 15, 60, 148, 101, 59, + 45, 88, 219, 28, 83, 26, 229, 124, 153, 156, 77, 168, 40, + ], + [ + 171, 22, 216, 53, 16, 224, 251, 108, 191, 93, 174, 150, 237, 239, 25, 5, 125, 60, 159, + 39, 193, 135, 180, 109, 3, 224, 127, 206, 115, 24, 224, 45, + ], + [ + 200, 41, 189, 233, 227, 16, 222, 59, 153, 138, 79, 11, 196, 111, 162, 29, 146, 83, 220, + 255, 1, 10, 130, 58, 243, 8, 93, 230, 33, 87, 48, 41, + ], + [ + 181, 159, 33, 60, 68, 174, 209, 207, 203, 92, 245, 243, 74, 170, 154, 1, 43, 160, 52, + 194, 210, 27, 145, 30, 99, 172, 27, 249, 71, 223, 104, 50, + ], + [ + 175, 5, 60, 58, 189, 14, 246, 123, 78, 49, 84, 221, 109, 65, 185, 93, 36, 88, 96, 86, + 61, 236, 119, 23, 27, 100, 94, 165, 136, 114, 128, 4, + ], + [ + 150, 74, 80, 139, 229, 38, 87, 70, 245, 190, 92, 10, 211, 22, 165, 73, 143, 143, 126, + 177, 23, 53, 219, 247, 31, 38, 25, 182, 158, 244, 20, 50, + ], + [ + 18, 209, 127, 187, 128, 0, 119, 101, 205, 210, 31, 119, 197, 0, 221, 229, 203, 212, 62, + 55, 237, 254, 101, 158, 122, 176, 42, 150, 232, 45, 7, 41, + ], + ], + [ + [ + 36, 137, 204, 219, 0, 154, 63, 247, 215, 165, 137, 105, 28, 105, 38, 4, 193, 135, 137, + 132, 73, 32, 75, 1, 172, 186, 105, 126, 155, 9, 234, 27, + ], + [ + 79, 123, 106, 34, 65, 148, 102, 212, 37, 226, 26, 177, 218, 65, 92, 191, 248, 14, 27, + 239, 91, 204, 175, 13, 75, 172, 17, 69, 134, 139, 96, 52, + ], + [ + 78, 188, 220, 59, 5, 149, 96, 230, 10, 117, 245, 26, 174, 111, 27, 186, 139, 178, 228, + 214, 35, 5, 223, 223, 57, 100, 118, 222, 159, 1, 163, 53, + ], + [ + 73, 71, 233, 100, 247, 29, 45, 142, 28, 138, 200, 24, 17, 39, 182, 140, 255, 159, 152, + 94, 75, 170, 3, 92, 75, 65, 27, 18, 222, 2, 33, 3, + ], + [ + 13, 222, 43, 60, 116, 40, 239, 164, 101, 201, 242, 163, 153, 35, 237, 50, 242, 156, + 223, 180, 148, 126, 6, 177, 165, 110, 139, 226, 231, 8, 145, 59, + ], + [ + 246, 117, 29, 220, 85, 113, 129, 150, 184, 4, 247, 10, 172, 74, 103, 73, 108, 4, 201, + 86, 25, 60, 29, 231, 244, 96, 57, 30, 146, 122, 223, 12, + ], + [ + 23, 172, 62, 0, 141, 188, 233, 62, 34, 177, 96, 95, 247, 236, 50, 170, 113, 178, 151, + 44, 48, 184, 93, 237, 208, 5, 168, 49, 109, 16, 21, 4, + ], + [ + 143, 110, 28, 202, 250, 200, 195, 38, 9, 224, 117, 239, 53, 6, 222, 247, 231, 173, 228, + 210, 251, 2, 14, 133, 86, 139, 194, 14, 184, 178, 31, 42, + ], + ], + [ + [ + 105, 82, 47, 89, 25, 103, 11, 249, 66, 111, 188, 87, 78, 135, 150, 100, 113, 159, 209, + 41, 242, 37, 25, 215, 250, 132, 205, 49, 100, 113, 42, 32, + ], + [ + 124, 198, 51, 229, 215, 184, 224, 251, 79, 26, 84, 35, 213, 164, 170, 39, 215, 255, + 210, 173, 169, 81, 244, 105, 176, 249, 37, 191, 25, 6, 190, 16, + ], + [ + 253, 151, 83, 116, 230, 52, 110, 206, 147, 81, 170, 96, 182, 189, 181, 35, 18, 118, + 175, 63, 93, 201, 248, 55, 129, 200, 104, 11, 160, 47, 4, 30, + ], + [ + 28, 3, 12, 229, 152, 219, 186, 100, 206, 36, 225, 30, 34, 30, 108, 68, 21, 196, 136, + 120, 225, 83, 116, 203, 0, 85, 160, 6, 105, 42, 13, 61, + ], + [ + 191, 116, 153, 77, 233, 2, 241, 126, 83, 78, 152, 251, 93, 112, 49, 221, 130, 19, 135, + 243, 251, 24, 111, 131, 88, 152, 29, 20, 167, 247, 113, 7, + ], + [ + 124, 91, 25, 231, 114, 60, 237, 33, 75, 74, 25, 161, 83, 19, 39, 229, 183, 41, 5, 224, + 4, 248, 170, 42, 77, 249, 106, 245, 84, 62, 169, 48, + ], + [ + 91, 157, 52, 245, 165, 35, 240, 158, 137, 167, 246, 18, 171, 56, 55, 19, 42, 145, 226, + 167, 56, 65, 165, 215, 46, 42, 69, 158, 208, 251, 37, 10, + ], + [ + 89, 198, 136, 103, 162, 233, 140, 72, 172, 240, 202, 112, 189, 124, 240, 96, 250, 141, + 169, 63, 77, 47, 203, 146, 57, 89, 123, 126, 54, 233, 83, 45, + ], + ], + [ + [ + 178, 16, 104, 36, 221, 99, 174, 215, 73, 246, 184, 112, 42, 211, 233, 124, 101, 17, + 215, 164, 187, 122, 244, 216, 15, 188, 20, 190, 255, 89, 108, 13, + ], + [ + 211, 185, 13, 171, 251, 160, 220, 120, 214, 182, 153, 128, 218, 152, 221, 223, 133, + 255, 100, 20, 188, 224, 61, 176, 23, 208, 137, 116, 1, 33, 3, 53, + ], + [ + 39, 18, 157, 171, 253, 120, 243, 71, 172, 2, 132, 76, 83, 210, 103, 104, 67, 120, 60, + 58, 145, 252, 20, 90, 44, 3, 245, 247, 95, 6, 243, 2, + ], + [ + 228, 125, 115, 84, 131, 131, 169, 92, 51, 15, 82, 112, 8, 204, 91, 222, 203, 208, 109, + 111, 14, 59, 28, 244, 46, 35, 144, 69, 212, 66, 200, 44, + ], + [ + 124, 115, 67, 210, 197, 53, 11, 153, 55, 71, 208, 74, 42, 181, 140, 0, 21, 155, 176, + 20, 255, 136, 77, 238, 59, 70, 25, 25, 41, 180, 112, 22, + ], + [ + 124, 61, 201, 115, 14, 189, 176, 115, 124, 24, 53, 163, 232, 123, 121, 50, 30, 56, 161, + 52, 120, 136, 33, 134, 184, 16, 182, 31, 222, 26, 199, 41, + ], + [ + 151, 34, 213, 29, 165, 116, 149, 163, 134, 111, 30, 119, 195, 252, 137, 89, 146, 206, + 18, 82, 141, 247, 3, 130, 205, 69, 224, 189, 21, 55, 114, 62, + ], + [ + 241, 243, 198, 132, 63, 204, 196, 163, 230, 17, 248, 158, 98, 188, 208, 23, 173, 12, + 187, 227, 73, 242, 34, 237, 83, 236, 73, 86, 135, 201, 77, 14, + ], + ], + [ + [ + 80, 161, 16, 201, 18, 107, 180, 237, 109, 13, 229, 253, 142, 231, 128, 185, 249, 180, + 210, 192, 126, 126, 137, 247, 97, 233, 118, 230, 208, 44, 147, 42, + ], + [ + 65, 106, 220, 93, 202, 7, 140, 37, 78, 54, 13, 227, 12, 189, 35, 252, 207, 100, 130, + 146, 10, 104, 219, 121, 127, 229, 170, 22, 88, 108, 181, 14, + ], + [ + 2, 157, 209, 112, 135, 200, 85, 220, 218, 10, 173, 98, 35, 244, 80, 103, 141, 49, 254, + 61, 207, 4, 33, 214, 195, 150, 60, 163, 222, 156, 239, 42, + ], + [ + 37, 211, 37, 147, 184, 166, 133, 18, 236, 217, 52, 134, 76, 157, 193, 88, 141, 231, 1, + 140, 111, 174, 181, 143, 125, 159, 79, 19, 199, 246, 202, 46, + ], + [ + 110, 207, 189, 175, 189, 39, 143, 75, 162, 13, 195, 173, 70, 132, 116, 211, 227, 67, + 222, 87, 179, 3, 179, 208, 95, 26, 97, 57, 79, 162, 109, 4, + ], + [ + 190, 104, 106, 225, 88, 186, 197, 168, 57, 237, 224, 17, 25, 24, 12, 68, 144, 195, 156, + 140, 139, 148, 115, 239, 237, 123, 99, 173, 243, 43, 36, 50, + ], + [ + 195, 129, 0, 72, 233, 178, 136, 47, 186, 117, 240, 197, 103, 82, 186, 53, 108, 10, 230, + 147, 5, 91, 174, 204, 254, 223, 40, 243, 120, 135, 80, 5, + ], + [ + 114, 139, 243, 114, 81, 82, 185, 45, 160, 204, 55, 76, 56, 73, 96, 173, 89, 180, 187, + 248, 217, 29, 209, 242, 49, 222, 223, 187, 79, 31, 171, 18, + ], + ], + [ + [ + 145, 189, 93, 77, 84, 187, 100, 38, 15, 134, 76, 143, 117, 175, 58, 183, 67, 205, 108, + 48, 80, 218, 140, 116, 209, 197, 219, 206, 218, 56, 117, 43, + ], + [ + 109, 207, 168, 80, 126, 16, 71, 172, 63, 120, 145, 32, 80, 61, 208, 2, 58, 77, 68, 17, + 180, 162, 200, 232, 13, 185, 148, 170, 212, 169, 215, 35, + ], + [ + 116, 165, 185, 42, 50, 205, 109, 251, 128, 151, 207, 144, 214, 147, 123, 160, 138, 32, + 10, 144, 97, 19, 182, 103, 58, 146, 207, 54, 85, 210, 161, 37, + ], + [ + 190, 55, 212, 35, 164, 202, 202, 234, 154, 4, 6, 112, 209, 150, 66, 114, 203, 36, 203, + 24, 252, 175, 4, 184, 42, 158, 195, 232, 251, 59, 242, 4, + ], + [ + 204, 229, 51, 68, 126, 85, 72, 53, 106, 2, 172, 19, 37, 238, 62, 101, 89, 96, 245, 177, + 177, 40, 170, 245, 147, 72, 141, 93, 233, 146, 36, 41, + ], + [ + 75, 158, 246, 21, 51, 72, 3, 237, 77, 75, 117, 247, 101, 125, 14, 129, 23, 180, 190, + 49, 57, 32, 223, 224, 65, 205, 113, 48, 119, 203, 73, 13, + ], + [ + 208, 136, 26, 159, 242, 113, 111, 175, 113, 163, 69, 66, 131, 170, 224, 157, 61, 229, + 222, 185, 61, 153, 133, 149, 167, 215, 195, 134, 97, 137, 168, 7, + ], + [ + 35, 33, 104, 95, 155, 119, 101, 133, 53, 48, 169, 224, 62, 138, 152, 3, 245, 213, 187, + 253, 52, 0, 26, 40, 13, 50, 41, 224, 161, 121, 194, 25, + ], + ], + [ + [ + 47, 30, 245, 11, 248, 255, 82, 126, 62, 107, 70, 78, 38, 130, 69, 145, 206, 99, 157, + 171, 184, 143, 155, 226, 182, 81, 109, 192, 179, 104, 10, 5, + ], + [ + 146, 17, 30, 231, 169, 68, 47, 50, 8, 250, 194, 198, 195, 213, 98, 37, 31, 151, 214, + 53, 11, 76, 106, 27, 111, 214, 28, 89, 231, 124, 141, 52, + ], + [ + 95, 57, 186, 20, 37, 9, 249, 188, 111, 199, 138, 164, 67, 210, 204, 91, 242, 253, 155, + 129, 139, 172, 35, 247, 62, 243, 90, 81, 121, 132, 189, 6, + ], + [ + 105, 51, 164, 127, 16, 30, 56, 76, 170, 213, 193, 77, 27, 136, 146, 19, 173, 117, 146, + 9, 37, 22, 57, 185, 117, 113, 162, 145, 197, 99, 233, 17, + ], + [ + 18, 116, 253, 121, 151, 86, 62, 152, 186, 6, 124, 197, 101, 205, 63, 23, 49, 25, 157, + 126, 62, 113, 25, 189, 85, 126, 171, 171, 18, 221, 252, 14, + ], + [ + 220, 42, 220, 82, 18, 237, 116, 250, 56, 130, 90, 202, 56, 16, 179, 88, 145, 64, 230, + 133, 33, 198, 236, 106, 36, 38, 14, 226, 74, 203, 58, 31, + ], + [ + 210, 176, 102, 53, 106, 223, 246, 149, 22, 171, 229, 252, 194, 239, 188, 94, 104, 4, + 85, 107, 98, 2, 197, 254, 9, 22, 10, 5, 27, 190, 151, 23, + ], + [ + 0, 241, 127, 167, 92, 61, 119, 20, 244, 167, 64, 241, 70, 140, 148, 165, 70, 67, 44, + 248, 244, 214, 61, 129, 117, 226, 122, 157, 119, 133, 48, 47, + ], + ], + [ + [ + 4, 166, 155, 39, 140, 2, 252, 205, 171, 177, 125, 47, 117, 177, 191, 55, 138, 148, 78, + 33, 229, 205, 154, 132, 232, 72, 20, 229, 53, 63, 67, 1, + ], + [ + 43, 67, 59, 76, 240, 46, 123, 207, 242, 176, 122, 211, 255, 12, 219, 60, 231, 75, 3, + 190, 18, 41, 212, 251, 73, 151, 103, 120, 1, 191, 0, 61, + ], + [ + 164, 33, 177, 27, 105, 174, 60, 4, 88, 15, 206, 165, 57, 125, 25, 243, 39, 137, 109, + 142, 161, 29, 42, 203, 207, 57, 81, 16, 220, 148, 100, 21, + ], + [ + 86, 4, 190, 246, 52, 129, 210, 172, 1, 30, 55, 220, 143, 98, 235, 140, 53, 209, 102, + 196, 193, 10, 74, 160, 177, 42, 223, 127, 16, 244, 124, 43, + ], + [ + 225, 192, 141, 226, 121, 140, 180, 82, 60, 53, 207, 158, 159, 8, 14, 9, 102, 180, 3, + 194, 72, 45, 23, 138, 183, 92, 239, 11, 125, 218, 124, 43, + ], + [ + 210, 37, 140, 143, 98, 19, 14, 69, 7, 66, 252, 22, 62, 1, 105, 251, 62, 64, 112, 99, + 44, 135, 68, 122, 198, 118, 193, 181, 255, 3, 27, 44, + ], + [ + 109, 112, 251, 144, 181, 127, 116, 134, 187, 207, 207, 1, 197, 252, 45, 76, 205, 109, + 209, 56, 246, 39, 46, 24, 168, 117, 187, 51, 19, 29, 254, 16, + ], + [ + 41, 4, 157, 245, 247, 94, 64, 172, 73, 69, 97, 224, 245, 58, 118, 249, 70, 15, 240, + 218, 103, 192, 63, 244, 57, 65, 17, 184, 101, 73, 54, 23, + ], + ], + [ + [ + 223, 121, 179, 93, 127, 216, 86, 9, 57, 189, 231, 203, 53, 145, 180, 21, 71, 194, 48, + 133, 129, 176, 172, 166, 123, 28, 42, 37, 31, 173, 212, 39, + ], + [ + 97, 252, 223, 243, 58, 160, 128, 88, 43, 185, 8, 44, 130, 103, 177, 237, 69, 157, 111, + 78, 63, 57, 32, 114, 219, 163, 133, 222, 61, 151, 15, 1, + ], + [ + 87, 137, 120, 152, 128, 145, 204, 40, 45, 237, 31, 59, 55, 93, 175, 210, 241, 170, 176, + 158, 7, 255, 88, 212, 241, 219, 18, 54, 48, 199, 196, 44, + ], + [ + 81, 107, 25, 136, 211, 131, 229, 141, 146, 243, 163, 237, 205, 129, 199, 145, 87, 14, + 174, 129, 183, 238, 77, 141, 121, 253, 106, 221, 225, 141, 103, 17, + ], + [ + 120, 243, 252, 105, 134, 235, 87, 145, 113, 190, 201, 93, 193, 90, 249, 234, 193, 81, + 34, 140, 7, 203, 62, 86, 125, 80, 123, 82, 45, 120, 93, 36, + ], + [ + 176, 225, 11, 228, 191, 111, 178, 190, 132, 153, 247, 238, 219, 222, 128, 45, 71, 169, + 21, 91, 143, 139, 185, 103, 36, 80, 67, 247, 92, 81, 114, 60, + ], + [ + 46, 51, 237, 55, 50, 4, 48, 16, 121, 192, 74, 147, 225, 127, 46, 7, 30, 33, 157, 42, + 180, 248, 143, 133, 220, 169, 31, 97, 123, 19, 197, 59, + ], + [ + 53, 95, 71, 61, 252, 230, 199, 192, 101, 235, 194, 218, 126, 23, 13, 236, 119, 146, + 143, 214, 170, 112, 252, 186, 39, 146, 13, 77, 80, 26, 43, 2, + ], + ], + [ + [ + 195, 118, 63, 33, 37, 85, 102, 80, 239, 150, 164, 82, 197, 241, 150, 118, 81, 249, 223, + 22, 176, 48, 64, 204, 129, 146, 89, 37, 67, 13, 74, 58, + ], + [ + 112, 91, 136, 133, 7, 92, 221, 205, 91, 29, 20, 95, 248, 102, 106, 68, 55, 33, 118, + 193, 186, 96, 165, 163, 182, 85, 13, 172, 167, 209, 67, 42, + ], + [ + 185, 151, 20, 57, 185, 10, 140, 226, 229, 3, 62, 149, 145, 79, 245, 205, 231, 76, 63, + 185, 204, 149, 10, 177, 137, 198, 113, 73, 27, 48, 163, 7, + ], + [ + 230, 103, 185, 235, 217, 108, 170, 98, 162, 251, 153, 175, 197, 188, 220, 123, 235, + 208, 223, 14, 130, 63, 50, 43, 131, 150, 88, 170, 22, 35, 87, 0, + ], + [ + 81, 131, 168, 216, 91, 18, 186, 77, 201, 236, 192, 208, 33, 151, 172, 185, 157, 9, 217, + 168, 236, 212, 186, 230, 81, 30, 93, 12, 24, 4, 131, 26, + ], + [ + 64, 149, 92, 20, 249, 203, 232, 169, 227, 78, 195, 114, 204, 188, 117, 59, 24, 140, + 204, 4, 219, 168, 195, 253, 1, 160, 217, 236, 163, 20, 243, 25, + ], + [ + 82, 173, 48, 198, 187, 239, 155, 12, 9, 47, 144, 166, 182, 114, 36, 252, 94, 193, 225, + 248, 141, 255, 176, 14, 91, 174, 31, 140, 18, 42, 62, 3, + ], + [ + 238, 79, 14, 238, 178, 202, 236, 102, 201, 183, 56, 152, 187, 34, 28, 114, 182, 183, + 87, 218, 33, 167, 213, 196, 48, 234, 241, 70, 89, 76, 111, 7, + ], + ], + [ + [ + 37, 232, 202, 95, 118, 254, 243, 205, 180, 127, 216, 17, 97, 148, 112, 42, 250, 84, + 232, 146, 58, 213, 87, 229, 9, 88, 246, 40, 136, 125, 78, 10, + ], + [ + 188, 137, 225, 229, 196, 113, 43, 196, 9, 6, 41, 56, 117, 157, 202, 248, 247, 199, 69, + 162, 105, 147, 9, 112, 133, 64, 224, 1, 2, 62, 174, 51, + ], + [ + 101, 201, 205, 179, 172, 35, 58, 167, 99, 12, 7, 229, 249, 222, 20, 75, 31, 85, 8, 65, + 156, 35, 22, 144, 248, 121, 38, 221, 230, 17, 107, 22, + ], + [ + 210, 64, 16, 86, 168, 14, 161, 143, 205, 219, 249, 21, 227, 148, 168, 102, 248, 119, + 181, 212, 225, 211, 79, 88, 203, 13, 216, 120, 51, 200, 192, 7, + ], + [ + 166, 155, 235, 41, 141, 202, 9, 206, 75, 25, 104, 97, 28, 239, 71, 34, 217, 225, 35, + 10, 104, 30, 83, 184, 227, 67, 76, 14, 117, 11, 49, 4, + ], + [ + 80, 29, 16, 98, 226, 236, 172, 96, 143, 116, 127, 164, 211, 167, 195, 144, 90, 35, 30, + 37, 175, 148, 5, 193, 47, 74, 7, 127, 248, 111, 208, 46, + ], + [ + 222, 13, 22, 172, 64, 195, 247, 45, 137, 255, 220, 206, 106, 138, 183, 118, 8, 57, 185, + 88, 175, 128, 155, 135, 117, 242, 66, 145, 188, 95, 9, 0, + ], + [ + 52, 0, 238, 239, 30, 191, 93, 152, 16, 76, 27, 30, 98, 136, 166, 19, 138, 0, 139, 247, + 149, 8, 220, 50, 201, 182, 229, 239, 136, 191, 87, 4, + ], + ], + [ + [ + 105, 215, 131, 127, 67, 108, 143, 18, 162, 181, 248, 61, 218, 82, 232, 43, 171, 70, + 102, 12, 197, 231, 57, 224, 87, 132, 189, 40, 174, 67, 205, 23, + ], + [ + 193, 35, 208, 49, 156, 76, 127, 125, 37, 174, 206, 28, 23, 74, 214, 223, 88, 221, 47, + 248, 110, 251, 2, 41, 38, 65, 45, 19, 179, 187, 63, 24, + ], + [ + 178, 98, 110, 6, 17, 23, 79, 37, 105, 148, 237, 89, 194, 184, 226, 85, 19, 158, 126, + 112, 157, 16, 240, 153, 60, 195, 46, 172, 150, 229, 162, 31, + ], + [ + 167, 160, 123, 55, 171, 70, 72, 120, 175, 85, 129, 30, 118, 187, 31, 35, 13, 168, 186, + 193, 81, 56, 60, 32, 132, 242, 55, 150, 126, 46, 209, 22, + ], + [ + 216, 130, 207, 144, 87, 74, 175, 79, 231, 2, 123, 17, 64, 227, 169, 21, 190, 76, 35, + 230, 219, 83, 211, 189, 109, 218, 239, 234, 76, 117, 33, 56, + ], + [ + 118, 63, 187, 184, 88, 54, 195, 72, 172, 236, 147, 107, 35, 109, 68, 57, 16, 172, 137, + 76, 60, 158, 232, 92, 36, 25, 85, 135, 175, 81, 53, 26, + ], + [ + 187, 33, 86, 227, 140, 59, 212, 98, 155, 221, 32, 11, 9, 134, 134, 226, 5, 117, 206, + 129, 177, 250, 255, 43, 238, 111, 101, 79, 223, 221, 163, 29, + ], + [ + 77, 49, 10, 237, 205, 191, 201, 163, 163, 225, 93, 46, 239, 70, 220, 239, 203, 63, 156, + 198, 130, 51, 176, 113, 190, 109, 84, 182, 74, 59, 114, 39, + ], + ], + [ + [ + 74, 223, 30, 129, 173, 226, 128, 237, 41, 212, 70, 197, 194, 114, 220, 197, 31, 248, + 240, 233, 234, 74, 76, 155, 238, 120, 92, 217, 121, 41, 54, 37, + ], + [ + 51, 18, 252, 47, 138, 218, 156, 211, 146, 28, 232, 59, 4, 122, 229, 8, 158, 30, 122, + 176, 61, 43, 138, 102, 233, 3, 30, 53, 210, 16, 238, 55, + ], + [ + 13, 204, 107, 141, 43, 181, 190, 161, 141, 7, 221, 249, 6, 181, 19, 141, 27, 119, 205, + 25, 130, 213, 121, 24, 22, 224, 51, 59, 144, 90, 149, 49, + ], + [ + 133, 62, 165, 170, 251, 128, 218, 36, 124, 28, 187, 255, 156, 154, 117, 121, 8, 219, + 124, 166, 67, 248, 133, 158, 87, 87, 170, 11, 207, 38, 240, 58, + ], + [ + 199, 143, 63, 27, 146, 11, 253, 73, 185, 122, 150, 33, 197, 181, 179, 42, 189, 194, + 184, 127, 35, 251, 33, 206, 226, 117, 218, 153, 62, 40, 165, 27, + ], + [ + 221, 43, 193, 158, 219, 220, 86, 127, 115, 33, 220, 90, 187, 231, 111, 152, 51, 78, + 106, 32, 181, 71, 184, 57, 181, 23, 124, 156, 31, 201, 147, 36, + ], + [ + 64, 246, 138, 146, 102, 47, 250, 226, 46, 41, 105, 241, 112, 20, 248, 250, 148, 165, 0, + 187, 7, 146, 141, 190, 104, 164, 180, 143, 101, 173, 100, 1, + ], + [ + 201, 115, 121, 111, 136, 21, 12, 57, 218, 66, 99, 202, 42, 227, 3, 27, 78, 20, 74, 12, + 214, 4, 15, 4, 124, 34, 162, 49, 225, 225, 84, 35, + ], + ], + [ + [ + 159, 111, 158, 169, 189, 141, 8, 1, 137, 192, 3, 165, 87, 99, 174, 203, 182, 162, 63, + 5, 133, 2, 254, 170, 26, 95, 119, 225, 150, 113, 216, 42, + ], + [ + 191, 94, 75, 194, 137, 49, 195, 153, 50, 60, 153, 207, 98, 138, 2, 142, 34, 80, 150, + 253, 239, 160, 29, 220, 153, 59, 121, 254, 188, 74, 125, 24, + ], + [ + 65, 69, 79, 44, 99, 131, 67, 225, 79, 150, 152, 86, 182, 50, 214, 170, 248, 1, 143, + 244, 5, 44, 114, 55, 193, 251, 160, 170, 252, 233, 58, 6, + ], + [ + 125, 12, 108, 193, 44, 207, 226, 157, 243, 134, 14, 10, 152, 189, 13, 84, 231, 189, + 248, 124, 69, 182, 227, 163, 51, 137, 150, 100, 10, 149, 241, 47, + ], + [ + 119, 43, 37, 67, 59, 238, 239, 138, 18, 145, 98, 57, 167, 86, 44, 100, 66, 200, 25, 99, + 156, 250, 80, 209, 18, 132, 112, 85, 118, 64, 126, 52, + ], + [ + 148, 161, 79, 36, 118, 111, 65, 248, 70, 153, 76, 152, 1, 51, 200, 80, 24, 160, 250, + 83, 1, 173, 246, 44, 246, 212, 29, 165, 76, 238, 138, 29, + ], + [ + 224, 67, 53, 101, 225, 107, 169, 247, 117, 223, 10, 22, 162, 0, 68, 71, 8, 158, 253, + 123, 54, 205, 198, 242, 213, 57, 146, 153, 136, 212, 158, 38, + ], + [ + 79, 7, 45, 28, 3, 130, 10, 184, 57, 175, 24, 207, 238, 145, 124, 114, 193, 80, 179, + 205, 12, 85, 182, 192, 23, 119, 23, 39, 77, 105, 242, 1, + ], + ], + [ + [ + 28, 128, 149, 54, 197, 184, 228, 248, 116, 22, 130, 218, 24, 0, 138, 240, 183, 99, 240, + 12, 76, 193, 95, 150, 233, 40, 47, 24, 242, 12, 142, 47, + ], + [ + 123, 40, 155, 92, 163, 34, 144, 128, 132, 10, 205, 21, 139, 110, 152, 94, 154, 247, + 184, 195, 162, 72, 42, 127, 9, 174, 92, 158, 164, 26, 100, 12, + ], + [ + 14, 7, 174, 73, 235, 206, 1, 187, 94, 147, 150, 246, 59, 146, 80, 158, 157, 229, 197, + 155, 62, 159, 22, 78, 40, 29, 26, 202, 230, 40, 230, 13, + ], + [ + 195, 197, 87, 192, 158, 100, 3, 125, 177, 187, 3, 10, 2, 65, 28, 26, 39, 28, 197, 134, + 229, 2, 112, 21, 37, 217, 82, 158, 116, 16, 94, 49, + ], + [ + 172, 162, 178, 197, 3, 150, 82, 223, 22, 71, 179, 84, 232, 56, 180, 151, 162, 65, 162, + 143, 184, 35, 8, 61, 198, 127, 43, 26, 133, 4, 118, 13, + ], + [ + 147, 99, 145, 67, 186, 57, 231, 205, 201, 14, 157, 179, 190, 189, 149, 228, 28, 139, + 204, 174, 82, 37, 211, 157, 181, 226, 62, 7, 23, 186, 132, 9, + ], + [ + 63, 13, 19, 112, 241, 89, 54, 26, 108, 209, 48, 226, 212, 239, 141, 183, 182, 53, 89, + 85, 39, 159, 182, 132, 216, 155, 31, 24, 24, 227, 110, 24, + ], + [ + 132, 212, 75, 16, 39, 54, 191, 5, 93, 187, 110, 211, 100, 141, 231, 28, 174, 152, 111, + 97, 79, 208, 247, 137, 227, 192, 138, 12, 245, 160, 126, 58, + ], + ], + [ + [ + 57, 61, 34, 232, 122, 223, 251, 191, 227, 31, 48, 207, 80, 199, 85, 61, 111, 163, 170, + 122, 178, 118, 171, 213, 158, 236, 149, 204, 21, 247, 230, 45, + ], + [ + 201, 11, 237, 229, 154, 110, 13, 228, 79, 89, 39, 129, 202, 197, 20, 88, 156, 67, 37, + 139, 244, 101, 143, 48, 191, 179, 87, 56, 51, 163, 254, 35, + ], + [ + 189, 59, 221, 156, 135, 170, 47, 88, 37, 153, 124, 23, 240, 241, 143, 128, 239, 84, + 129, 74, 49, 122, 130, 42, 224, 225, 49, 79, 155, 231, 138, 56, + ], + [ + 102, 84, 213, 34, 181, 199, 13, 179, 15, 120, 75, 185, 191, 243, 159, 9, 133, 227, 154, + 101, 229, 174, 195, 60, 255, 132, 107, 167, 95, 69, 33, 4, + ], + [ + 25, 164, 67, 51, 123, 35, 90, 91, 146, 113, 171, 160, 223, 19, 224, 92, 86, 80, 199, + 245, 3, 142, 211, 254, 49, 213, 47, 192, 189, 203, 38, 25, + ], + [ + 182, 20, 78, 172, 95, 91, 88, 232, 255, 5, 234, 10, 37, 83, 71, 199, 185, 253, 140, 85, + 3, 212, 11, 220, 17, 49, 139, 176, 192, 166, 204, 20, + ], + [ + 45, 29, 246, 97, 225, 42, 223, 183, 126, 52, 58, 176, 37, 70, 206, 18, 3, 164, 120, + 116, 79, 221, 183, 150, 196, 254, 148, 43, 137, 252, 28, 38, + ], + [ + 227, 92, 88, 54, 209, 207, 103, 86, 224, 243, 183, 129, 108, 83, 157, 39, 226, 85, 248, + 33, 168, 76, 25, 24, 108, 14, 210, 193, 108, 94, 200, 37, + ], + ], + [ + [ + 38, 187, 218, 84, 238, 63, 122, 136, 4, 166, 244, 7, 44, 171, 39, 199, 254, 104, 13, + 76, 206, 106, 51, 146, 31, 98, 45, 93, 157, 232, 88, 24, + ], + [ + 50, 151, 220, 232, 125, 38, 99, 189, 183, 233, 229, 180, 209, 248, 94, 202, 124, 98, + 68, 113, 182, 128, 225, 187, 104, 97, 240, 97, 23, 2, 78, 40, + ], + [ + 185, 234, 164, 16, 117, 218, 213, 138, 219, 251, 188, 24, 130, 13, 8, 132, 114, 179, + 127, 8, 199, 15, 108, 123, 248, 125, 98, 114, 199, 49, 151, 29, + ], + [ + 197, 33, 58, 236, 135, 100, 72, 143, 82, 48, 152, 244, 244, 128, 244, 135, 11, 49, 99, + 223, 13, 28, 192, 60, 14, 249, 122, 63, 10, 229, 13, 48, + ], + [ + 34, 105, 164, 85, 31, 66, 87, 61, 158, 209, 230, 70, 247, 84, 104, 45, 105, 105, 183, + 10, 12, 208, 229, 125, 81, 87, 184, 49, 231, 76, 2, 0, + ], + [ + 203, 119, 128, 246, 182, 199, 111, 67, 47, 244, 4, 182, 195, 130, 47, 70, 1, 125, 199, + 21, 58, 32, 136, 148, 237, 67, 244, 121, 78, 17, 162, 62, + ], + [ + 168, 51, 187, 80, 154, 99, 32, 100, 2, 198, 3, 45, 40, 246, 36, 220, 72, 108, 194, 78, + 218, 158, 38, 131, 247, 253, 100, 240, 49, 249, 198, 23, + ], + [ + 229, 127, 250, 99, 148, 180, 224, 70, 25, 12, 182, 194, 5, 32, 145, 6, 168, 60, 183, + 43, 56, 235, 99, 57, 251, 84, 71, 154, 221, 208, 35, 17, + ], + ], + [ + [ + 135, 144, 34, 253, 72, 230, 20, 130, 152, 143, 241, 69, 97, 189, 237, 136, 2, 47, 52, + 84, 89, 203, 68, 175, 237, 219, 177, 177, 133, 204, 76, 38, + ], + [ + 77, 97, 144, 253, 187, 106, 149, 179, 219, 51, 135, 69, 243, 163, 159, 228, 37, 201, + 106, 187, 166, 131, 150, 20, 114, 178, 182, 177, 70, 99, 99, 53, + ], + [ + 147, 219, 248, 110, 243, 241, 185, 70, 69, 79, 14, 33, 101, 231, 193, 76, 65, 21, 253, + 231, 70, 24, 233, 13, 131, 80, 209, 106, 209, 167, 92, 9, + ], + [ + 53, 151, 111, 202, 18, 147, 183, 105, 4, 44, 90, 43, 95, 62, 49, 201, 64, 71, 81, 226, + 235, 224, 82, 105, 110, 95, 41, 230, 242, 67, 234, 60, + ], + [ + 175, 101, 205, 91, 4, 241, 57, 85, 193, 202, 5, 102, 39, 134, 177, 26, 219, 161, 126, + 10, 101, 104, 156, 171, 95, 235, 65, 35, 42, 178, 106, 14, + ], + [ + 111, 115, 75, 121, 96, 212, 237, 44, 87, 85, 98, 147, 98, 58, 146, 199, 151, 7, 148, + 211, 251, 253, 34, 26, 119, 43, 225, 118, 17, 152, 137, 4, + ], + [ + 94, 127, 124, 42, 65, 235, 150, 132, 214, 217, 183, 223, 216, 49, 160, 129, 91, 51, + 108, 194, 1, 248, 216, 206, 78, 155, 58, 141, 66, 191, 240, 52, + ], + [ + 243, 42, 140, 79, 233, 110, 28, 104, 82, 74, 76, 228, 123, 35, 55, 147, 149, 179, 155, + 6, 149, 83, 50, 91, 175, 204, 211, 53, 217, 190, 246, 54, + ], + ], + [ + [ + 102, 58, 156, 115, 172, 173, 89, 128, 136, 214, 38, 179, 183, 156, 21, 250, 113, 241, + 164, 127, 126, 160, 49, 210, 173, 235, 100, 32, 139, 122, 165, 35, + ], + [ + 214, 61, 123, 53, 199, 34, 204, 112, 236, 150, 157, 131, 97, 109, 159, 184, 204, 152, + 112, 42, 171, 10, 229, 65, 150, 74, 199, 231, 228, 205, 18, 17, + ], + [ + 143, 44, 3, 188, 135, 28, 111, 222, 202, 125, 214, 208, 209, 38, 114, 207, 38, 62, 183, + 254, 238, 120, 166, 219, 143, 85, 84, 37, 103, 96, 97, 21, + ], + [ + 148, 177, 168, 127, 63, 64, 150, 26, 15, 73, 199, 97, 136, 44, 223, 51, 113, 222, 76, + 61, 194, 129, 250, 38, 142, 42, 116, 132, 186, 150, 171, 36, + ], + [ + 174, 26, 21, 203, 190, 33, 43, 56, 157, 185, 148, 218, 225, 226, 57, 196, 252, 222, 33, + 9, 77, 119, 244, 185, 160, 238, 70, 231, 143, 213, 138, 23, + ], + [ + 101, 125, 198, 161, 7, 227, 60, 17, 249, 182, 87, 179, 32, 124, 66, 138, 40, 159, 28, + 75, 177, 137, 158, 141, 246, 1, 191, 232, 164, 198, 247, 21, + ], + [ + 71, 82, 237, 89, 81, 217, 75, 98, 104, 141, 129, 130, 83, 240, 123, 156, 241, 48, 199, + 246, 16, 136, 10, 104, 198, 185, 106, 103, 17, 47, 82, 26, + ], + [ + 129, 197, 126, 12, 63, 25, 235, 35, 94, 93, 239, 89, 127, 214, 155, 151, 103, 54, 34, + 189, 143, 198, 178, 1, 201, 250, 74, 210, 69, 22, 148, 39, + ], + ], + [ + [ + 53, 13, 65, 249, 224, 244, 4, 181, 148, 177, 238, 124, 28, 105, 189, 23, 127, 239, 162, + 120, 47, 162, 0, 111, 49, 187, 200, 30, 158, 169, 27, 4, + ], + [ + 248, 118, 85, 63, 106, 89, 195, 84, 176, 202, 161, 63, 252, 62, 59, 40, 88, 158, 170, + 94, 6, 72, 41, 21, 123, 85, 249, 32, 173, 229, 161, 2, + ], + [ + 103, 42, 197, 89, 189, 15, 89, 67, 61, 197, 214, 87, 86, 184, 14, 73, 217, 129, 96, + 108, 150, 253, 197, 204, 243, 238, 213, 142, 181, 53, 122, 49, + ], + [ + 53, 243, 169, 200, 115, 180, 90, 42, 194, 45, 81, 249, 67, 229, 85, 242, 10, 164, 168, + 32, 190, 172, 71, 122, 128, 240, 32, 64, 163, 92, 204, 18, + ], + [ + 96, 253, 241, 14, 76, 21, 60, 76, 38, 190, 1, 3, 132, 19, 108, 102, 203, 218, 19, 35, + 233, 105, 192, 81, 249, 230, 216, 144, 18, 105, 20, 4, + ], + [ + 238, 144, 36, 34, 174, 202, 176, 61, 148, 100, 1, 105, 59, 86, 166, 59, 95, 28, 8, 172, + 145, 46, 63, 159, 175, 159, 77, 231, 12, 155, 103, 3, + ], + [ + 201, 112, 31, 187, 183, 207, 186, 133, 24, 209, 163, 240, 219, 228, 133, 40, 55, 195, + 146, 4, 32, 38, 192, 110, 182, 143, 71, 136, 27, 200, 108, 34, + ], + [ + 254, 24, 24, 47, 115, 110, 172, 93, 17, 177, 4, 93, 201, 121, 119, 183, 19, 248, 52, + 86, 115, 74, 223, 106, 119, 22, 187, 194, 36, 41, 19, 57, + ], + ], + [ + [ + 173, 129, 213, 38, 131, 94, 122, 115, 246, 58, 95, 40, 216, 85, 100, 239, 194, 10, 35, + 101, 93, 146, 185, 130, 211, 233, 3, 128, 56, 90, 21, 49, + ], + [ + 86, 52, 235, 254, 233, 233, 159, 162, 150, 66, 178, 36, 195, 157, 26, 251, 29, 233, + 171, 56, 147, 154, 194, 16, 174, 161, 56, 198, 46, 150, 78, 10, + ], + [ + 155, 220, 126, 74, 39, 181, 166, 17, 12, 176, 143, 186, 34, 74, 38, 241, 35, 77, 7, 66, + 90, 91, 119, 241, 235, 16, 35, 188, 240, 12, 225, 44, + ], + [ + 26, 128, 31, 93, 94, 250, 172, 66, 207, 87, 203, 139, 18, 19, 180, 251, 45, 132, 118, + 214, 142, 184, 170, 6, 129, 111, 154, 229, 206, 93, 43, 62, + ], + [ + 74, 234, 78, 87, 247, 140, 239, 158, 208, 124, 182, 64, 135, 123, 226, 208, 143, 9, 28, + 47, 76, 49, 147, 165, 163, 173, 186, 221, 64, 18, 242, 4, + ], + [ + 102, 15, 228, 6, 109, 75, 103, 53, 235, 105, 148, 112, 14, 209, 118, 15, 206, 38, 211, + 191, 45, 59, 17, 164, 5, 97, 207, 172, 113, 174, 151, 12, + ], + [ + 182, 198, 44, 72, 215, 80, 214, 74, 36, 187, 96, 36, 75, 122, 251, 79, 111, 141, 104, + 211, 96, 27, 154, 137, 81, 155, 237, 118, 198, 220, 240, 36, + ], + [ + 210, 226, 153, 190, 119, 238, 200, 137, 186, 126, 198, 229, 234, 35, 61, 181, 214, 235, + 147, 87, 205, 50, 66, 220, 36, 197, 22, 203, 224, 11, 10, 60, + ], + ], + [ + [ + 9, 195, 159, 120, 189, 176, 219, 20, 99, 101, 117, 114, 93, 166, 142, 90, 52, 200, 98, + 114, 97, 126, 34, 96, 118, 185, 215, 251, 148, 77, 87, 19, + ], + [ + 50, 130, 54, 156, 8, 243, 245, 21, 115, 243, 141, 50, 57, 163, 190, 162, 186, 254, 96, + 21, 221, 183, 159, 19, 150, 49, 249, 178, 169, 131, 75, 56, + ], + [ + 109, 254, 22, 3, 199, 134, 177, 80, 204, 161, 10, 173, 237, 126, 178, 229, 70, 30, 3, + 246, 202, 161, 90, 229, 160, 16, 169, 202, 104, 39, 197, 1, + ], + [ + 95, 179, 233, 6, 144, 172, 174, 142, 67, 4, 33, 137, 72, 48, 108, 152, 88, 201, 234, + 221, 234, 154, 179, 39, 209, 113, 0, 188, 222, 32, 97, 9, + ], + [ + 175, 222, 53, 19, 156, 69, 205, 48, 91, 68, 159, 242, 127, 200, 159, 55, 242, 116, 13, + 2, 159, 225, 193, 234, 222, 33, 114, 12, 105, 215, 17, 51, + ], + [ + 123, 223, 171, 72, 167, 121, 200, 176, 52, 160, 97, 178, 109, 5, 35, 224, 48, 106, 237, + 8, 72, 160, 22, 211, 106, 246, 196, 217, 48, 220, 133, 7, + ], + [ + 179, 44, 209, 79, 15, 63, 82, 9, 228, 138, 76, 79, 216, 127, 147, 79, 251, 107, 235, + 27, 89, 218, 138, 32, 150, 255, 58, 171, 187, 54, 11, 59, + ], + [ + 135, 219, 120, 88, 47, 222, 125, 235, 159, 179, 137, 207, 239, 76, 254, 182, 26, 255, + 137, 9, 114, 170, 242, 59, 147, 178, 82, 105, 120, 163, 165, 56, + ], + ], + [ + [ + 49, 245, 74, 15, 79, 151, 114, 223, 88, 204, 54, 17, 223, 211, 56, 243, 140, 147, 231, + 194, 145, 209, 115, 122, 133, 53, 65, 38, 227, 232, 194, 1, + ], + [ + 139, 234, 196, 211, 16, 253, 195, 182, 204, 43, 70, 215, 131, 12, 156, 176, 1, 181, + 206, 180, 185, 145, 168, 245, 102, 147, 163, 131, 54, 15, 80, 23, + ], + [ + 165, 107, 0, 13, 216, 120, 63, 220, 127, 136, 126, 22, 114, 49, 104, 34, 144, 83, 117, + 103, 73, 69, 67, 4, 94, 122, 92, 49, 45, 19, 203, 1, + ], + [ + 57, 67, 199, 232, 154, 171, 244, 107, 180, 16, 176, 181, 58, 191, 139, 1, 236, 109, + 133, 154, 204, 81, 197, 250, 102, 135, 191, 107, 255, 138, 122, 2, + ], + [ + 131, 246, 101, 113, 122, 177, 203, 36, 187, 253, 75, 137, 138, 91, 125, 116, 201, 131, + 188, 164, 176, 158, 228, 168, 44, 79, 52, 106, 14, 190, 26, 15, + ], + [ + 151, 24, 233, 35, 43, 183, 63, 142, 143, 124, 217, 64, 36, 225, 65, 100, 127, 232, 86, + 46, 96, 33, 120, 128, 99, 189, 77, 103, 75, 50, 238, 6, + ], + [ + 34, 188, 40, 2, 222, 186, 165, 32, 19, 108, 101, 182, 124, 106, 225, 221, 244, 29, 251, + 184, 252, 107, 39, 20, 41, 194, 2, 225, 147, 17, 254, 11, + ], + [ + 163, 210, 154, 39, 136, 44, 144, 169, 139, 196, 107, 36, 58, 100, 18, 249, 234, 224, + 179, 133, 22, 54, 204, 86, 254, 146, 34, 170, 164, 208, 141, 21, + ], + ], + [ + [ + 212, 57, 196, 255, 116, 10, 198, 162, 235, 70, 204, 155, 155, 252, 182, 251, 108, 89, + 15, 66, 200, 235, 157, 30, 193, 55, 170, 25, 48, 150, 174, 46, + ], + [ + 73, 15, 246, 147, 31, 114, 184, 23, 189, 135, 237, 223, 46, 217, 219, 63, 199, 115, + 114, 227, 255, 93, 219, 162, 47, 89, 95, 196, 97, 180, 109, 13, + ], + [ + 45, 49, 142, 52, 248, 150, 56, 109, 99, 149, 25, 160, 166, 240, 96, 241, 94, 77, 44, + 217, 50, 231, 124, 213, 185, 3, 125, 168, 173, 6, 149, 32, + ], + [ + 244, 199, 196, 141, 35, 8, 94, 117, 100, 81, 106, 254, 233, 180, 12, 237, 206, 142, + 228, 141, 79, 50, 119, 16, 94, 134, 158, 85, 242, 31, 30, 28, + ], + [ + 250, 118, 28, 156, 124, 151, 194, 243, 252, 135, 49, 133, 184, 151, 1, 52, 72, 62, 209, + 219, 159, 239, 199, 118, 233, 81, 13, 246, 154, 95, 91, 43, + ], + [ + 148, 41, 120, 124, 79, 58, 248, 13, 19, 168, 125, 163, 96, 7, 180, 190, 86, 81, 43, + 249, 183, 109, 169, 50, 192, 65, 153, 58, 251, 95, 239, 21, + ], + [ + 5, 221, 39, 209, 61, 5, 170, 169, 239, 185, 230, 104, 97, 144, 169, 124, 53, 203, 90, + 37, 53, 149, 7, 245, 142, 65, 195, 158, 58, 92, 201, 37, + ], + [ + 109, 213, 234, 137, 252, 160, 129, 210, 249, 154, 254, 3, 240, 28, 166, 22, 170, 196, + 203, 240, 186, 131, 234, 216, 184, 66, 6, 144, 171, 241, 92, 1, + ], + ], + [ + [ + 146, 223, 54, 195, 85, 234, 248, 34, 125, 125, 215, 25, 174, 180, 216, 60, 247, 5, 128, + 182, 151, 217, 164, 205, 118, 170, 184, 236, 149, 62, 161, 31, + ], + [ + 158, 58, 122, 20, 197, 199, 64, 124, 63, 206, 24, 117, 236, 141, 106, 97, 204, 4, 166, + 196, 2, 159, 166, 146, 177, 180, 47, 37, 223, 86, 168, 50, + ], + [ + 191, 163, 218, 160, 251, 127, 243, 25, 144, 88, 178, 19, 43, 249, 66, 139, 164, 15, + 131, 116, 254, 213, 218, 126, 7, 46, 54, 49, 182, 86, 54, 49, + ], + [ + 176, 149, 25, 128, 24, 242, 7, 223, 3, 207, 221, 176, 138, 82, 192, 185, 45, 4, 156, + 186, 96, 62, 244, 74, 238, 175, 172, 183, 208, 96, 65, 23, + ], + [ + 134, 58, 211, 81, 238, 63, 222, 132, 104, 11, 49, 26, 146, 71, 92, 37, 4, 252, 51, 65, + 9, 121, 189, 239, 11, 47, 203, 247, 143, 50, 132, 54, + ], + [ + 7, 85, 156, 94, 147, 75, 20, 40, 58, 92, 141, 16, 69, 205, 224, 177, 209, 40, 15, 100, + 7, 13, 58, 29, 145, 223, 215, 21, 191, 226, 26, 26, + ], + [ + 105, 133, 138, 132, 202, 221, 113, 164, 179, 179, 245, 43, 54, 164, 13, 169, 7, 52, + 252, 75, 143, 31, 125, 18, 194, 160, 85, 116, 60, 199, 14, 15, + ], + [ + 222, 114, 216, 202, 53, 243, 194, 143, 86, 50, 1, 196, 113, 133, 21, 229, 241, 197, + 143, 128, 57, 76, 134, 162, 241, 28, 204, 249, 86, 196, 47, 10, + ], + ], + [ + [ + 140, 34, 41, 75, 234, 68, 6, 132, 20, 133, 22, 50, 10, 116, 214, 160, 101, 67, 255, + 164, 173, 182, 183, 76, 45, 64, 169, 10, 74, 111, 151, 52, + ], + [ + 71, 77, 105, 249, 106, 189, 164, 179, 236, 36, 83, 6, 53, 110, 222, 110, 253, 41, 11, + 117, 83, 57, 16, 185, 170, 25, 13, 28, 45, 60, 212, 15, + ], + [ + 0, 204, 125, 241, 248, 116, 213, 191, 28, 250, 46, 137, 128, 107, 187, 108, 190, 128, + 27, 164, 49, 254, 86, 174, 177, 238, 60, 155, 114, 217, 225, 5, + ], + [ + 5, 158, 38, 49, 215, 186, 131, 56, 21, 200, 199, 31, 227, 172, 45, 39, 28, 45, 55, 159, + 55, 126, 34, 40, 255, 233, 126, 173, 178, 210, 125, 17, + ], + [ + 113, 248, 161, 198, 225, 135, 51, 248, 203, 94, 37, 238, 150, 41, 243, 222, 105, 48, + 92, 81, 134, 6, 41, 57, 203, 211, 57, 112, 143, 221, 240, 31, + ], + [ + 82, 243, 29, 216, 118, 139, 147, 98, 208, 80, 146, 98, 142, 127, 201, 193, 94, 5, 240, + 169, 154, 187, 169, 187, 181, 108, 16, 176, 52, 153, 185, 40, + ], + [ + 180, 4, 216, 113, 228, 196, 165, 187, 181, 24, 182, 129, 143, 90, 54, 102, 39, 216, + 246, 28, 202, 130, 130, 164, 164, 23, 204, 3, 93, 252, 160, 19, + ], + [ + 236, 183, 190, 138, 148, 47, 164, 106, 37, 140, 60, 83, 100, 87, 25, 94, 3, 155, 36, + 217, 2, 9, 122, 48, 59, 74, 238, 62, 235, 254, 76, 63, + ], + ], + [ + [ + 145, 2, 88, 168, 72, 120, 32, 138, 82, 71, 120, 197, 202, 217, 99, 230, 103, 161, 20, + 69, 139, 231, 10, 20, 223, 19, 104, 101, 97, 42, 121, 13, + ], + [ + 249, 255, 74, 127, 202, 45, 113, 91, 135, 69, 14, 75, 180, 46, 26, 41, 213, 68, 168, + 203, 107, 4, 15, 223, 81, 162, 37, 185, 230, 130, 218, 24, + ], + [ + 229, 23, 249, 95, 149, 172, 105, 186, 130, 22, 109, 90, 114, 118, 91, 227, 63, 199, + 106, 119, 238, 16, 55, 220, 45, 208, 52, 63, 237, 194, 126, 22, + ], + [ + 236, 224, 208, 190, 253, 62, 123, 39, 67, 207, 40, 133, 104, 99, 14, 59, 29, 45, 212, + 230, 238, 156, 59, 211, 201, 28, 6, 135, 6, 170, 41, 2, + ], + [ + 117, 186, 35, 47, 195, 87, 43, 185, 50, 136, 121, 104, 52, 109, 241, 221, 160, 100, 34, + 72, 217, 36, 69, 240, 185, 82, 33, 24, 82, 146, 129, 22, + ], + [ + 40, 216, 70, 160, 218, 185, 168, 230, 67, 74, 241, 72, 30, 56, 73, 212, 29, 131, 210, + 56, 61, 138, 16, 72, 74, 208, 175, 95, 233, 23, 68, 50, + ], + [ + 250, 249, 247, 170, 88, 230, 224, 198, 25, 123, 18, 15, 231, 56, 213, 167, 70, 89, 25, + 233, 30, 104, 240, 125, 246, 136, 189, 24, 2, 217, 184, 57, + ], + [ + 80, 221, 4, 106, 97, 0, 93, 65, 187, 49, 74, 27, 59, 42, 216, 255, 178, 111, 209, 168, + 148, 213, 149, 222, 244, 237, 45, 14, 247, 140, 147, 24, + ], + ], + [ + [ + 103, 89, 59, 35, 57, 15, 73, 153, 88, 110, 137, 148, 85, 109, 160, 59, 21, 153, 234, + 11, 211, 42, 66, 211, 68, 38, 15, 82, 233, 242, 246, 56, + ], + [ + 96, 192, 241, 71, 162, 188, 189, 54, 176, 170, 74, 155, 210, 182, 205, 213, 187, 53, + 60, 231, 143, 251, 199, 78, 247, 216, 140, 90, 128, 175, 11, 44, + ], + [ + 10, 136, 130, 80, 243, 131, 6, 45, 149, 177, 198, 249, 148, 33, 121, 208, 241, 179, + 254, 129, 63, 128, 87, 98, 82, 74, 178, 206, 136, 237, 177, 54, + ], + [ + 140, 174, 124, 27, 24, 16, 89, 115, 91, 12, 227, 201, 107, 37, 48, 219, 159, 96, 137, + 160, 17, 96, 226, 109, 216, 54, 158, 68, 1, 57, 62, 21, + ], + [ + 184, 104, 44, 147, 115, 104, 146, 195, 48, 83, 156, 79, 62, 14, 137, 213, 20, 2, 64, + 71, 19, 82, 188, 223, 162, 170, 239, 238, 32, 92, 100, 27, + ], + [ + 207, 172, 15, 212, 186, 64, 30, 3, 26, 41, 32, 48, 108, 230, 73, 168, 130, 44, 140, + 210, 212, 140, 38, 79, 89, 154, 72, 38, 234, 29, 111, 46, + ], + [ + 169, 251, 74, 195, 182, 161, 15, 245, 9, 175, 45, 68, 112, 77, 254, 175, 101, 57, 117, + 229, 114, 240, 162, 49, 79, 195, 76, 222, 24, 29, 205, 49, + ], + [ + 66, 42, 240, 58, 215, 243, 13, 29, 121, 8, 251, 212, 227, 43, 108, 116, 167, 146, 112, + 29, 157, 28, 232, 63, 40, 136, 60, 181, 113, 116, 136, 9, + ], + ], + [ + [ + 222, 250, 15, 159, 22, 192, 63, 242, 244, 9, 170, 199, 36, 12, 22, 135, 36, 103, 27, + 30, 210, 19, 220, 227, 198, 202, 170, 11, 171, 226, 120, 36, + ], + [ + 13, 233, 60, 66, 94, 62, 80, 17, 51, 96, 92, 52, 194, 151, 201, 43, 145, 244, 136, 54, + 62, 228, 178, 17, 237, 50, 43, 86, 226, 186, 205, 39, + ], + [ + 17, 178, 141, 143, 150, 198, 188, 109, 202, 15, 246, 81, 81, 23, 194, 33, 100, 215, 33, + 38, 128, 94, 173, 211, 250, 255, 185, 53, 26, 15, 100, 1, + ], + [ + 29, 13, 207, 26, 98, 99, 13, 249, 166, 223, 134, 57, 202, 243, 56, 134, 47, 86, 77, + 174, 126, 82, 11, 136, 206, 200, 80, 142, 133, 59, 226, 45, + ], + [ + 30, 246, 189, 45, 47, 225, 241, 181, 46, 77, 149, 202, 125, 19, 150, 189, 61, 110, 166, + 235, 18, 47, 82, 23, 31, 253, 45, 168, 199, 197, 100, 13, + ], + [ + 163, 144, 73, 57, 237, 138, 87, 249, 81, 92, 134, 158, 7, 198, 181, 121, 235, 165, 27, + 22, 195, 193, 81, 182, 82, 147, 125, 185, 230, 127, 212, 41, + ], + [ + 99, 53, 81, 32, 186, 67, 123, 181, 118, 216, 51, 213, 48, 132, 99, 168, 17, 212, 8, + 180, 183, 132, 100, 75, 201, 55, 13, 103, 31, 134, 12, 29, + ], + [ + 204, 31, 149, 83, 95, 245, 53, 231, 200, 193, 124, 32, 42, 222, 91, 84, 37, 117, 53, + 116, 166, 28, 165, 6, 7, 88, 156, 0, 217, 37, 205, 21, + ], + ], + [ + [ + 133, 125, 183, 101, 61, 147, 72, 149, 191, 124, 2, 158, 189, 180, 148, 247, 242, 130, + 157, 154, 138, 32, 39, 113, 18, 103, 212, 2, 52, 42, 150, 9, + ], + [ + 155, 153, 34, 249, 57, 253, 43, 212, 131, 227, 138, 238, 250, 38, 95, 115, 158, 179, + 220, 114, 87, 215, 143, 24, 139, 211, 161, 25, 165, 127, 26, 46, + ], + [ + 248, 24, 188, 125, 43, 117, 180, 162, 154, 30, 111, 77, 63, 80, 222, 213, 39, 94, 105, + 244, 205, 160, 240, 125, 127, 22, 68, 60, 4, 159, 101, 12, + ], + [ + 202, 182, 101, 247, 202, 184, 249, 165, 48, 157, 78, 244, 161, 129, 213, 241, 85, 55, + 1, 148, 152, 20, 217, 134, 226, 216, 98, 32, 63, 115, 205, 2, + ], + [ + 12, 227, 112, 199, 148, 87, 71, 67, 63, 109, 117, 99, 32, 35, 55, 108, 13, 99, 205, + 173, 201, 27, 223, 79, 14, 136, 251, 75, 29, 113, 7, 9, + ], + [ + 53, 122, 33, 1, 148, 172, 48, 164, 95, 139, 231, 211, 62, 152, 233, 208, 6, 67, 40, + 162, 85, 247, 207, 27, 71, 148, 238, 1, 166, 101, 154, 35, + ], + [ + 161, 30, 55, 238, 200, 130, 23, 62, 183, 234, 222, 236, 186, 80, 177, 71, 226, 12, 18, + 136, 149, 181, 12, 186, 197, 176, 30, 124, 178, 222, 31, 26, + ], + [ + 220, 42, 168, 151, 75, 170, 70, 232, 113, 157, 111, 72, 209, 182, 214, 18, 203, 62, + 193, 190, 220, 44, 144, 225, 236, 250, 122, 80, 83, 193, 125, 22, + ], + ], + [ + [ + 170, 49, 110, 163, 118, 15, 74, 16, 140, 62, 228, 247, 212, 253, 62, 59, 14, 30, 160, + 139, 165, 77, 221, 157, 50, 217, 113, 202, 56, 132, 252, 23, + ], + [ + 204, 248, 203, 88, 186, 179, 102, 131, 176, 162, 204, 93, 132, 134, 140, 44, 190, 111, + 170, 182, 182, 154, 34, 182, 72, 145, 249, 218, 227, 222, 127, 57, + ], + [ + 243, 181, 217, 123, 251, 210, 151, 17, 234, 18, 151, 41, 199, 190, 68, 25, 143, 119, + 47, 117, 196, 126, 170, 4, 2, 92, 76, 45, 165, 7, 67, 32, + ], + [ + 78, 151, 250, 251, 145, 247, 127, 21, 8, 78, 75, 203, 87, 88, 88, 192, 254, 127, 173, + 160, 123, 221, 115, 242, 177, 65, 250, 109, 60, 243, 66, 50, + ], + [ + 163, 204, 67, 168, 29, 250, 242, 18, 179, 78, 156, 63, 83, 213, 155, 169, 201, 141, + 147, 39, 67, 201, 27, 185, 12, 136, 169, 136, 90, 250, 59, 61, + ], + [ + 217, 130, 254, 58, 106, 222, 13, 57, 188, 196, 184, 159, 16, 125, 101, 76, 237, 202, + 20, 154, 36, 171, 17, 203, 30, 174, 71, 28, 49, 14, 11, 40, + ], + [ + 103, 104, 113, 172, 174, 8, 232, 248, 176, 114, 142, 202, 124, 57, 147, 248, 183, 13, + 100, 169, 5, 175, 203, 142, 150, 76, 116, 217, 74, 87, 193, 61, + ], + [ + 106, 70, 255, 164, 171, 32, 41, 157, 50, 76, 235, 158, 79, 146, 163, 103, 55, 210, 247, + 65, 12, 143, 226, 228, 134, 223, 111, 57, 117, 0, 158, 19, + ], + ], + [ + [ + 209, 91, 126, 65, 66, 75, 243, 162, 155, 127, 161, 141, 1, 207, 59, 241, 167, 100, 208, + 242, 202, 136, 148, 80, 250, 199, 246, 122, 195, 21, 17, 50, + ], + [ + 160, 23, 252, 146, 181, 244, 35, 83, 49, 80, 175, 137, 187, 14, 153, 154, 210, 170, + 253, 239, 189, 159, 66, 83, 46, 47, 203, 221, 74, 96, 231, 31, + ], + [ + 255, 28, 169, 35, 131, 9, 128, 83, 53, 153, 78, 112, 201, 215, 113, 204, 14, 161, 70, + 21, 43, 234, 162, 8, 50, 202, 178, 229, 163, 231, 75, 0, + ], + [ + 151, 7, 75, 95, 206, 3, 186, 193, 10, 216, 191, 56, 5, 241, 211, 41, 176, 163, 112, + 226, 119, 198, 67, 29, 86, 77, 125, 189, 42, 244, 37, 63, + ], + [ + 22, 69, 53, 55, 24, 217, 190, 106, 17, 30, 46, 219, 19, 13, 91, 88, 52, 239, 230, 65, + 172, 249, 117, 14, 212, 76, 50, 219, 63, 85, 85, 44, + ], + [ + 95, 67, 36, 155, 161, 152, 90, 49, 98, 250, 31, 40, 227, 83, 13, 63, 152, 78, 52, 55, + 179, 174, 109, 115, 237, 188, 143, 119, 39, 205, 240, 52, + ], + [ + 191, 218, 230, 242, 222, 153, 9, 6, 184, 144, 39, 153, 17, 47, 235, 11, 156, 237, 106, + 25, 226, 22, 204, 91, 174, 13, 118, 159, 67, 192, 180, 11, + ], + [ + 64, 139, 49, 104, 152, 44, 115, 188, 115, 244, 108, 247, 152, 36, 76, 87, 197, 145, + 122, 252, 164, 179, 33, 139, 178, 33, 91, 180, 55, 198, 116, 28, + ], + ], + [ + [ + 121, 138, 217, 165, 137, 32, 102, 122, 2, 132, 235, 209, 189, 143, 126, 154, 255, 192, + 11, 18, 192, 180, 141, 158, 58, 213, 167, 150, 144, 12, 137, 32, + ], + [ + 37, 68, 105, 192, 246, 223, 110, 73, 212, 170, 113, 192, 94, 48, 75, 145, 180, 144, 57, + 168, 175, 175, 116, 14, 144, 230, 2, 71, 231, 227, 93, 22, + ], + [ + 55, 239, 250, 161, 54, 154, 33, 206, 228, 249, 45, 126, 12, 187, 171, 233, 179, 141, + 113, 128, 26, 208, 66, 163, 119, 5, 134, 70, 212, 91, 126, 25, + ], + [ + 211, 218, 167, 184, 136, 234, 50, 153, 235, 240, 121, 105, 75, 92, 134, 203, 54, 9, + 240, 37, 132, 51, 94, 62, 227, 206, 227, 26, 232, 80, 50, 58, + ], + [ + 247, 153, 165, 91, 186, 187, 160, 101, 181, 94, 109, 64, 195, 54, 10, 53, 122, 95, 94, + 223, 224, 187, 3, 166, 202, 12, 226, 250, 194, 230, 14, 14, + ], + [ + 84, 40, 61, 75, 7, 180, 84, 252, 149, 110, 235, 145, 230, 102, 43, 59, 84, 177, 15, 72, + 245, 45, 100, 181, 159, 135, 73, 70, 45, 130, 23, 15, + ], + [ + 176, 95, 212, 132, 225, 23, 127, 234, 119, 13, 97, 153, 63, 184, 203, 20, 158, 129, 71, + 212, 187, 114, 5, 66, 8, 255, 197, 184, 58, 87, 53, 46, + ], + [ + 16, 127, 94, 241, 202, 213, 70, 104, 66, 253, 252, 251, 32, 90, 82, 235, 212, 171, 176, + 158, 111, 171, 170, 223, 21, 135, 124, 8, 2, 163, 132, 60, + ], + ], + [ + [ + 227, 106, 232, 144, 99, 103, 224, 175, 110, 11, 138, 168, 36, 37, 51, 178, 223, 20, + 214, 254, 112, 70, 96, 185, 211, 87, 83, 197, 104, 243, 216, 52, + ], + [ + 130, 229, 53, 255, 238, 87, 247, 194, 175, 43, 49, 133, 15, 9, 230, 116, 200, 212, 229, + 179, 231, 4, 15, 203, 110, 47, 4, 130, 136, 86, 48, 49, + ], + [ + 47, 243, 195, 44, 235, 13, 162, 169, 83, 152, 125, 54, 110, 131, 234, 38, 185, 159, + 162, 155, 244, 43, 221, 221, 205, 171, 95, 242, 148, 151, 11, 35, + ], + [ + 167, 90, 16, 27, 245, 22, 86, 47, 185, 27, 129, 85, 243, 61, 176, 192, 183, 132, 79, + 230, 218, 19, 237, 23, 105, 124, 208, 38, 178, 255, 128, 42, + ], + [ + 254, 42, 152, 192, 222, 80, 229, 159, 80, 221, 180, 50, 154, 115, 132, 186, 232, 133, + 81, 52, 49, 138, 192, 67, 159, 157, 6, 159, 63, 244, 18, 39, + ], + [ + 82, 238, 44, 142, 105, 250, 102, 225, 160, 86, 185, 241, 244, 228, 45, 98, 14, 6, 186, + 3, 103, 72, 115, 129, 220, 107, 87, 25, 18, 239, 41, 61, + ], + [ + 38, 96, 137, 193, 31, 196, 122, 212, 249, 106, 137, 240, 9, 1, 244, 43, 246, 195, 28, + 79, 40, 193, 249, 111, 177, 171, 178, 146, 5, 130, 199, 38, + ], + [ + 49, 138, 50, 43, 88, 47, 129, 40, 253, 221, 234, 179, 108, 110, 16, 164, 236, 146, 134, + 226, 92, 142, 158, 18, 75, 148, 196, 99, 142, 193, 32, 32, + ], + ], + [ + [ + 136, 222, 31, 32, 158, 114, 150, 51, 255, 249, 195, 251, 49, 203, 33, 38, 143, 117, + 158, 139, 35, 54, 168, 163, 36, 5, 4, 24, 21, 107, 32, 8, + ], + [ + 139, 142, 184, 112, 128, 119, 77, 133, 53, 144, 84, 23, 177, 2, 187, 179, 30, 93, 90, + 138, 73, 70, 129, 214, 185, 249, 38, 44, 114, 66, 31, 60, + ], + [ + 70, 234, 44, 237, 63, 86, 138, 80, 38, 77, 0, 237, 105, 160, 161, 106, 73, 199, 70, + 235, 14, 227, 136, 202, 144, 196, 163, 81, 111, 106, 82, 47, + ], + [ + 40, 88, 203, 143, 239, 58, 0, 59, 249, 62, 40, 239, 19, 92, 207, 51, 252, 63, 205, 29, + 238, 11, 59, 181, 106, 136, 22, 181, 36, 21, 177, 16, + ], + [ + 75, 228, 4, 173, 170, 140, 175, 235, 102, 195, 159, 243, 64, 41, 21, 2, 246, 29, 242, + 42, 219, 89, 14, 181, 195, 64, 36, 206, 219, 19, 201, 43, + ], + [ + 99, 70, 84, 229, 213, 64, 250, 175, 183, 122, 91, 174, 129, 41, 175, 77, 133, 253, 111, + 83, 20, 196, 125, 248, 230, 8, 189, 219, 198, 132, 117, 49, + ], + [ + 146, 31, 155, 47, 167, 160, 234, 249, 196, 38, 83, 35, 96, 191, 69, 232, 164, 232, 241, + 225, 121, 189, 98, 1, 45, 228, 7, 52, 137, 87, 156, 55, + ], + [ + 160, 123, 219, 27, 246, 32, 134, 120, 16, 76, 98, 152, 240, 140, 17, 236, 43, 181, 91, + 154, 12, 80, 78, 141, 209, 68, 179, 131, 134, 238, 214, 29, + ], + ], + [ + [ + 79, 127, 50, 0, 17, 192, 72, 76, 17, 57, 216, 82, 157, 95, 86, 152, 6, 69, 246, 36, + 130, 33, 231, 72, 62, 180, 179, 180, 172, 195, 145, 54, + ], + [ + 218, 244, 56, 14, 177, 227, 196, 223, 249, 8, 61, 252, 143, 208, 236, 117, 16, 219, 26, + 78, 111, 76, 253, 21, 89, 97, 133, 31, 219, 214, 130, 53, + ], + [ + 224, 191, 66, 62, 230, 117, 56, 49, 22, 179, 57, 155, 161, 72, 246, 216, 122, 170, 226, + 178, 168, 99, 213, 40, 172, 104, 214, 235, 100, 7, 215, 26, + ], + [ + 97, 165, 191, 166, 199, 215, 159, 154, 9, 200, 98, 51, 193, 16, 119, 135, 8, 248, 235, + 220, 91, 233, 56, 169, 209, 80, 67, 28, 187, 214, 7, 1, + ], + [ + 164, 25, 209, 61, 23, 143, 33, 36, 199, 146, 9, 119, 86, 130, 161, 162, 230, 143, 172, + 107, 133, 19, 27, 111, 25, 73, 186, 44, 49, 170, 143, 4, + ], + [ + 127, 165, 126, 108, 249, 181, 86, 104, 103, 188, 164, 130, 127, 57, 191, 189, 34, 108, + 230, 187, 61, 35, 37, 253, 242, 59, 58, 175, 13, 120, 254, 56, + ], + [ + 29, 179, 113, 204, 88, 62, 212, 46, 48, 15, 107, 28, 234, 136, 13, 178, 148, 96, 68, + 217, 137, 66, 14, 78, 65, 58, 220, 221, 241, 155, 202, 12, + ], + [ + 104, 142, 48, 244, 1, 124, 44, 185, 200, 192, 86, 131, 156, 158, 4, 187, 199, 14, 236, + 54, 44, 245, 21, 182, 113, 231, 13, 142, 135, 88, 169, 36, + ], + ], + [ + [ + 179, 250, 191, 143, 76, 85, 98, 204, 132, 233, 251, 175, 209, 74, 137, 39, 203, 149, + 63, 252, 246, 49, 40, 30, 148, 93, 65, 201, 161, 49, 187, 27, + ], + [ + 203, 211, 179, 86, 16, 67, 209, 167, 214, 211, 109, 229, 33, 25, 211, 188, 130, 46, + 186, 119, 41, 173, 245, 62, 7, 55, 108, 180, 101, 115, 125, 40, + ], + [ + 107, 22, 94, 96, 173, 204, 250, 22, 118, 142, 197, 250, 65, 193, 108, 142, 129, 40, 6, + 13, 218, 17, 207, 193, 75, 1, 195, 27, 7, 231, 199, 17, + ], + [ + 167, 104, 62, 170, 140, 224, 10, 224, 33, 72, 34, 192, 184, 14, 139, 230, 42, 70, 2, + 10, 88, 218, 169, 123, 65, 198, 119, 16, 205, 62, 64, 8, + ], + [ + 222, 193, 21, 182, 77, 38, 168, 6, 156, 213, 49, 108, 180, 47, 54, 151, 129, 51, 137, + 226, 103, 85, 108, 252, 94, 11, 25, 7, 56, 87, 205, 46, + ], + [ + 55, 109, 243, 206, 205, 71, 42, 29, 223, 73, 27, 225, 255, 37, 205, 42, 134, 63, 249, + 2, 91, 152, 44, 111, 202, 23, 173, 135, 200, 207, 39, 48, + ], + [ + 80, 30, 91, 2, 97, 101, 54, 60, 211, 197, 233, 83, 35, 26, 41, 184, 198, 11, 20, 81, + 130, 203, 153, 178, 149, 187, 189, 223, 113, 175, 177, 27, + ], + [ + 215, 49, 5, 95, 100, 130, 208, 94, 159, 34, 242, 80, 221, 34, 75, 165, 167, 184, 118, + 14, 8, 33, 83, 229, 192, 200, 102, 128, 209, 220, 60, 27, + ], + ], + [ + [ + 19, 126, 36, 206, 173, 162, 196, 15, 59, 89, 70, 64, 231, 230, 176, 226, 171, 99, 59, + 85, 145, 57, 65, 100, 8, 220, 66, 151, 211, 189, 26, 60, + ], + [ + 115, 58, 171, 209, 149, 12, 201, 125, 168, 145, 30, 99, 185, 185, 212, 83, 153, 170, + 149, 248, 139, 170, 213, 67, 185, 31, 106, 163, 137, 210, 53, 40, + ], + [ + 34, 169, 41, 154, 168, 16, 208, 29, 254, 75, 80, 21, 20, 65, 127, 18, 19, 245, 106, + 199, 144, 115, 206, 170, 49, 72, 36, 89, 242, 157, 222, 24, + ], + [ + 10, 164, 200, 254, 5, 101, 144, 74, 139, 202, 71, 210, 151, 43, 63, 228, 174, 239, 5, + 186, 214, 250, 6, 184, 96, 120, 9, 180, 157, 21, 232, 36, + ], + [ + 75, 221, 109, 210, 3, 45, 141, 250, 189, 180, 105, 1, 74, 134, 4, 161, 180, 240, 1, 39, + 29, 186, 183, 100, 136, 177, 251, 3, 22, 195, 45, 33, + ], + [ + 38, 154, 140, 7, 121, 70, 69, 229, 20, 92, 70, 49, 117, 230, 240, 101, 67, 40, 78, 8, + 39, 107, 90, 224, 243, 224, 223, 88, 164, 130, 120, 59, + ], + [ + 160, 144, 216, 94, 228, 217, 167, 0, 168, 204, 30, 88, 222, 158, 9, 43, 233, 216, 234, + 64, 127, 232, 242, 72, 60, 34, 181, 252, 16, 95, 161, 14, + ], + [ + 195, 165, 176, 79, 109, 182, 190, 127, 55, 224, 143, 82, 207, 108, 164, 169, 220, 92, + 27, 213, 76, 95, 22, 114, 127, 200, 126, 188, 126, 178, 102, 63, + ], + ], + [ + [ + 20, 117, 67, 54, 142, 82, 77, 181, 169, 181, 133, 0, 187, 243, 217, 179, 224, 159, 213, + 10, 96, 54, 130, 18, 6, 84, 239, 195, 151, 65, 242, 59, + ], + [ + 66, 142, 85, 142, 44, 64, 147, 62, 104, 65, 106, 202, 192, 153, 90, 55, 96, 24, 20, 38, + 217, 213, 123, 31, 237, 188, 139, 9, 182, 167, 141, 41, + ], + [ + 207, 161, 20, 7, 36, 203, 12, 135, 141, 208, 187, 91, 21, 156, 252, 230, 93, 132, 146, + 151, 159, 100, 206, 7, 135, 147, 64, 130, 252, 100, 23, 60, + ], + [ + 228, 233, 251, 200, 117, 97, 78, 30, 62, 137, 82, 213, 118, 245, 200, 117, 106, 9, 38, + 253, 58, 144, 26, 79, 166, 109, 144, 198, 249, 23, 101, 28, + ], + [ + 21, 198, 96, 23, 63, 237, 51, 143, 1, 191, 95, 232, 147, 215, 221, 203, 87, 163, 194, + 245, 250, 167, 167, 1, 180, 181, 225, 154, 151, 182, 130, 37, + ], + [ + 162, 42, 88, 75, 53, 39, 117, 224, 28, 248, 100, 248, 181, 211, 65, 195, 192, 24, 84, + 43, 12, 6, 16, 188, 98, 89, 177, 228, 205, 219, 60, 15, + ], + [ + 197, 110, 140, 5, 162, 128, 77, 192, 185, 62, 133, 220, 126, 39, 219, 148, 75, 228, 59, + 187, 14, 230, 2, 226, 221, 103, 44, 215, 203, 191, 70, 37, + ], + [ + 212, 74, 149, 23, 162, 38, 156, 114, 238, 30, 148, 201, 74, 99, 236, 44, 254, 224, 30, + 239, 35, 57, 37, 65, 27, 132, 100, 122, 31, 58, 109, 27, + ], + ], + [ + [ + 103, 60, 139, 126, 17, 213, 197, 175, 109, 73, 72, 103, 183, 2, 168, 147, 229, 146, + 163, 240, 237, 251, 74, 204, 173, 237, 2, 81, 217, 38, 198, 26, + ], + [ + 148, 142, 217, 114, 107, 45, 140, 245, 45, 85, 63, 184, 18, 254, 33, 98, 248, 215, 31, + 13, 147, 228, 90, 147, 57, 118, 190, 54, 109, 166, 232, 40, + ], + [ + 111, 126, 218, 163, 215, 86, 243, 206, 178, 189, 67, 107, 168, 148, 148, 150, 207, 229, + 162, 190, 99, 21, 204, 46, 137, 115, 14, 38, 124, 45, 7, 31, + ], + [ + 120, 94, 71, 150, 58, 223, 76, 228, 24, 222, 106, 138, 131, 141, 201, 114, 133, 81, + 208, 146, 222, 53, 190, 188, 243, 101, 130, 69, 176, 0, 144, 19, + ], + [ + 75, 62, 208, 13, 106, 100, 175, 135, 189, 103, 31, 136, 188, 184, 155, 122, 111, 105, + 240, 140, 7, 105, 177, 110, 64, 11, 23, 49, 104, 166, 225, 29, + ], + [ + 221, 18, 92, 158, 90, 112, 188, 28, 106, 101, 91, 243, 93, 143, 20, 223, 203, 242, 47, + 39, 63, 111, 126, 205, 146, 55, 207, 185, 179, 128, 14, 17, + ], + [ + 120, 22, 161, 120, 221, 121, 204, 161, 46, 187, 5, 183, 89, 114, 196, 224, 8, 38, 101, + 86, 52, 196, 8, 105, 71, 97, 245, 117, 232, 101, 1, 35, + ], + [ + 97, 176, 100, 220, 11, 5, 167, 93, 125, 197, 189, 160, 99, 38, 156, 187, 219, 103, 121, + 132, 60, 6, 17, 51, 131, 182, 75, 89, 53, 115, 247, 33, + ], + ], + [ + [ + 207, 159, 115, 155, 49, 140, 88, 106, 204, 148, 127, 110, 102, 239, 71, 50, 116, 241, + 161, 21, 115, 188, 195, 172, 48, 25, 135, 77, 103, 11, 250, 8, + ], + [ + 53, 226, 49, 81, 131, 154, 93, 210, 99, 6, 241, 86, 41, 242, 116, 183, 23, 71, 226, + 225, 139, 35, 254, 155, 10, 61, 253, 220, 96, 27, 229, 44, + ], + [ + 86, 73, 95, 110, 144, 237, 118, 227, 89, 133, 209, 162, 107, 24, 108, 6, 152, 8, 73, + 47, 239, 83, 251, 156, 36, 137, 65, 184, 20, 7, 184, 25, + ], + [ + 73, 67, 2, 194, 3, 175, 147, 62, 215, 31, 179, 37, 248, 247, 228, 219, 86, 172, 138, + 78, 149, 151, 231, 210, 135, 83, 48, 88, 17, 243, 157, 19, + ], + [ + 119, 233, 103, 230, 0, 17, 17, 12, 79, 202, 7, 142, 66, 32, 12, 216, 107, 223, 194, 82, + 131, 194, 68, 181, 60, 242, 17, 198, 45, 147, 255, 22, + ], + [ + 13, 69, 173, 185, 175, 48, 175, 137, 106, 63, 5, 27, 54, 95, 201, 207, 229, 228, 54, + 164, 143, 58, 78, 64, 12, 51, 195, 210, 204, 146, 64, 18, + ], + [ + 234, 84, 133, 114, 188, 84, 22, 238, 15, 80, 147, 93, 113, 197, 232, 9, 61, 181, 84, 9, + 100, 102, 8, 232, 54, 143, 11, 7, 152, 206, 5, 40, + ], + [ + 57, 77, 249, 157, 194, 147, 228, 76, 88, 15, 59, 18, 116, 226, 216, 213, 113, 122, 13, + 119, 238, 232, 215, 176, 140, 152, 158, 170, 241, 251, 236, 22, + ], + ], + [ + [ + 254, 181, 68, 223, 236, 39, 90, 99, 37, 74, 79, 37, 4, 69, 15, 85, 227, 255, 6, 143, + 164, 197, 83, 0, 74, 59, 37, 114, 82, 160, 183, 3, + ], + [ + 205, 219, 115, 69, 73, 42, 198, 241, 206, 18, 124, 136, 252, 166, 211, 154, 58, 167, + 23, 6, 57, 205, 200, 210, 73, 181, 175, 33, 118, 232, 152, 61, + ], + [ + 131, 71, 36, 249, 192, 54, 50, 65, 9, 141, 95, 165, 255, 154, 54, 217, 250, 127, 68, + 177, 131, 207, 66, 187, 46, 48, 135, 44, 198, 173, 172, 20, + ], + [ + 22, 128, 64, 66, 38, 59, 150, 29, 112, 190, 217, 120, 239, 211, 204, 253, 122, 62, 11, + 237, 33, 29, 119, 205, 235, 253, 180, 87, 199, 230, 183, 60, + ], + [ + 122, 104, 29, 128, 154, 86, 116, 112, 241, 40, 109, 16, 144, 82, 222, 122, 172, 201, + 75, 214, 205, 168, 32, 91, 203, 28, 46, 114, 218, 82, 18, 48, + ], + [ + 221, 10, 12, 130, 141, 9, 26, 13, 195, 232, 15, 60, 197, 192, 117, 229, 184, 110, 170, + 92, 191, 138, 41, 66, 27, 60, 210, 156, 199, 115, 164, 56, + ], + [ + 121, 35, 54, 98, 55, 143, 52, 179, 2, 61, 161, 109, 169, 148, 239, 238, 9, 164, 231, + 216, 160, 162, 173, 134, 231, 226, 130, 102, 239, 169, 44, 16, + ], + [ + 198, 57, 213, 12, 44, 150, 213, 163, 167, 39, 246, 18, 39, 137, 192, 35, 136, 231, 107, + 189, 61, 27, 163, 87, 214, 83, 119, 127, 246, 239, 39, 52, + ], + ], + [ + [ + 185, 73, 33, 65, 211, 14, 33, 86, 138, 6, 164, 187, 255, 69, 78, 253, 83, 184, 44, 255, + 21, 48, 149, 155, 121, 24, 91, 115, 54, 24, 84, 62, + ], + [ + 105, 91, 120, 139, 39, 32, 121, 140, 89, 109, 59, 171, 95, 234, 21, 41, 12, 240, 246, + 153, 66, 6, 226, 31, 80, 147, 53, 111, 250, 209, 72, 46, + ], + [ + 218, 148, 82, 157, 209, 222, 86, 248, 254, 4, 160, 225, 150, 222, 127, 75, 233, 239, + 136, 156, 200, 19, 170, 55, 117, 74, 48, 67, 43, 33, 174, 19, + ], + [ + 182, 8, 141, 160, 94, 156, 111, 237, 26, 83, 42, 26, 164, 150, 120, 210, 90, 32, 233, + 151, 101, 230, 235, 243, 79, 180, 152, 117, 104, 105, 2, 2, + ], + [ + 226, 88, 147, 59, 28, 120, 10, 106, 17, 3, 181, 165, 169, 42, 157, 103, 86, 16, 57, 32, + 242, 38, 118, 199, 209, 132, 108, 29, 13, 36, 66, 45, + ], + [ + 59, 134, 13, 128, 49, 120, 104, 220, 205, 203, 247, 211, 109, 54, 2, 104, 55, 55, 174, + 137, 145, 197, 13, 223, 14, 212, 158, 87, 174, 226, 202, 2, + ], + [ + 80, 17, 130, 225, 209, 179, 88, 96, 37, 152, 203, 70, 100, 161, 154, 37, 135, 123, 176, + 148, 25, 121, 9, 199, 73, 179, 219, 18, 85, 186, 178, 39, + ], + [ + 20, 29, 148, 97, 111, 108, 49, 113, 63, 110, 194, 53, 35, 251, 5, 121, 46, 86, 171, + 199, 5, 203, 87, 40, 199, 71, 83, 96, 64, 218, 212, 60, + ], + ], + [ + [ + 6, 109, 206, 92, 9, 160, 131, 155, 216, 126, 46, 253, 160, 152, 216, 161, 49, 172, 17, + 0, 184, 177, 139, 130, 101, 15, 177, 181, 10, 38, 241, 31, + ], + [ + 126, 33, 243, 169, 172, 127, 107, 116, 0, 75, 122, 15, 4, 153, 153, 58, 56, 252, 29, + 237, 214, 219, 218, 7, 246, 151, 151, 130, 54, 99, 251, 49, + ], + [ + 111, 55, 110, 109, 255, 254, 236, 86, 100, 82, 150, 127, 142, 198, 80, 148, 106, 154, + 232, 11, 60, 246, 170, 188, 81, 74, 56, 104, 71, 90, 205, 20, + ], + [ + 173, 19, 142, 233, 210, 176, 247, 226, 195, 87, 177, 70, 135, 96, 23, 240, 206, 171, + 84, 205, 110, 227, 148, 138, 6, 249, 91, 77, 147, 33, 177, 45, + ], + [ + 128, 134, 78, 206, 171, 42, 66, 88, 247, 175, 4, 234, 240, 38, 148, 150, 88, 191, 245, + 50, 103, 223, 60, 37, 82, 65, 44, 217, 181, 245, 124, 5, + ], + [ + 115, 230, 148, 128, 84, 122, 60, 46, 27, 232, 127, 51, 8, 133, 215, 66, 89, 222, 154, + 252, 9, 233, 194, 58, 174, 236, 197, 21, 44, 241, 241, 38, + ], + [ + 67, 214, 36, 107, 4, 73, 244, 168, 44, 72, 167, 224, 3, 55, 62, 70, 237, 129, 75, 17, + 125, 236, 204, 239, 239, 10, 117, 243, 61, 71, 202, 56, + ], + [ + 202, 195, 57, 169, 77, 192, 73, 210, 151, 66, 40, 168, 248, 195, 215, 133, 244, 89, + 224, 48, 36, 108, 160, 23, 179, 91, 99, 229, 93, 44, 20, 45, + ], + ], + [ + [ + 163, 121, 71, 96, 36, 196, 194, 47, 226, 26, 109, 145, 34, 27, 140, 139, 12, 15, 202, + 197, 210, 27, 46, 82, 159, 203, 189, 65, 158, 83, 130, 46, + ], + [ + 253, 14, 139, 66, 95, 63, 237, 107, 113, 207, 46, 231, 223, 172, 187, 60, 60, 219, 175, + 123, 1, 152, 96, 201, 148, 199, 2, 178, 151, 212, 109, 35, + ], + [ + 88, 58, 174, 25, 43, 75, 80, 228, 87, 94, 26, 207, 255, 176, 227, 78, 203, 97, 202, + 141, 70, 72, 158, 251, 237, 140, 156, 1, 12, 219, 235, 44, + ], + [ + 159, 231, 8, 161, 182, 250, 9, 245, 215, 155, 99, 201, 83, 210, 129, 2, 164, 67, 100, + 189, 238, 22, 210, 69, 176, 190, 243, 205, 207, 56, 14, 41, + ], + [ + 55, 189, 29, 92, 22, 22, 208, 205, 64, 236, 5, 66, 118, 71, 45, 43, 21, 173, 195, 90, + 197, 129, 14, 33, 18, 29, 222, 45, 46, 196, 207, 7, + ], + [ + 82, 104, 247, 77, 232, 36, 116, 179, 196, 226, 64, 108, 3, 127, 74, 9, 64, 70, 35, 252, + 216, 18, 8, 100, 90, 47, 119, 210, 178, 45, 195, 42, + ], + [ + 186, 14, 254, 60, 145, 38, 37, 216, 115, 22, 239, 124, 112, 128, 82, 62, 32, 124, 198, + 228, 53, 1, 153, 169, 177, 68, 208, 228, 211, 95, 7, 9, + ], + [ + 43, 127, 253, 68, 34, 27, 115, 203, 227, 127, 190, 105, 183, 240, 215, 39, 180, 235, + 52, 211, 22, 217, 143, 62, 206, 95, 95, 21, 179, 173, 187, 40, + ], + ], + [ + [ + 131, 114, 135, 36, 105, 222, 23, 214, 185, 164, 251, 205, 92, 193, 72, 141, 238, 95, + 30, 7, 205, 137, 109, 67, 6, 211, 254, 238, 205, 93, 248, 8, + ], + [ + 84, 246, 47, 201, 191, 63, 93, 82, 192, 92, 116, 175, 63, 184, 93, 178, 218, 82, 132, + 246, 186, 116, 87, 8, 183, 49, 227, 163, 38, 253, 108, 26, + ], + [ + 6, 251, 41, 69, 223, 49, 29, 206, 58, 21, 142, 51, 233, 183, 17, 7, 217, 0, 81, 233, + 202, 48, 47, 101, 165, 192, 221, 106, 85, 1, 119, 47, + ], + [ + 155, 201, 217, 190, 29, 250, 17, 180, 157, 67, 107, 96, 78, 170, 220, 10, 105, 107, 45, + 150, 231, 202, 86, 245, 215, 155, 214, 166, 248, 64, 145, 30, + ], + [ + 83, 7, 177, 230, 141, 158, 93, 202, 158, 43, 163, 0, 254, 82, 139, 239, 126, 115, 210, + 50, 149, 165, 220, 201, 209, 48, 24, 226, 159, 173, 118, 48, + ], + [ + 82, 210, 142, 117, 9, 95, 90, 109, 253, 87, 151, 157, 67, 189, 66, 204, 182, 59, 48, + 38, 145, 140, 176, 206, 55, 97, 116, 204, 28, 205, 89, 24, + ], + [ + 220, 202, 253, 28, 242, 130, 86, 193, 187, 216, 73, 198, 231, 44, 233, 93, 247, 37, + 224, 33, 48, 43, 155, 204, 152, 21, 118, 161, 73, 135, 91, 39, + ], + [ + 187, 254, 171, 174, 249, 248, 213, 106, 175, 179, 210, 131, 184, 126, 37, 35, 202, 9, + 240, 29, 24, 239, 213, 132, 138, 116, 32, 156, 7, 113, 226, 25, + ], + ], + [ + [ + 156, 164, 8, 226, 97, 207, 91, 167, 225, 181, 182, 160, 132, 78, 236, 30, 215, 20, 95, + 9, 227, 77, 117, 68, 12, 178, 75, 43, 119, 151, 125, 3, + ], + [ + 88, 89, 242, 116, 112, 190, 26, 203, 76, 128, 41, 80, 241, 253, 69, 188, 11, 123, 28, + 138, 47, 217, 131, 246, 104, 174, 71, 39, 91, 137, 238, 27, + ], + [ + 6, 243, 135, 48, 85, 60, 99, 53, 2, 117, 68, 224, 154, 116, 145, 216, 177, 236, 240, + 177, 21, 13, 251, 225, 143, 176, 93, 143, 112, 171, 130, 11, + ], + [ + 165, 207, 217, 234, 178, 110, 151, 80, 150, 134, 43, 61, 131, 99, 184, 162, 158, 113, + 155, 239, 130, 171, 157, 168, 231, 45, 113, 248, 80, 213, 51, 2, + ], + [ + 128, 168, 127, 174, 75, 22, 175, 44, 133, 227, 50, 26, 252, 142, 227, 90, 32, 56, 94, + 252, 53, 254, 0, 174, 65, 18, 199, 215, 241, 120, 110, 55, + ], + [ + 211, 242, 54, 2, 188, 143, 153, 96, 178, 248, 47, 63, 90, 109, 94, 60, 8, 61, 25, 205, + 123, 32, 217, 91, 125, 237, 195, 199, 225, 228, 97, 59, + ], + [ + 208, 167, 59, 171, 42, 184, 236, 23, 17, 52, 52, 174, 35, 212, 29, 143, 18, 174, 99, + 48, 179, 44, 237, 46, 119, 4, 170, 48, 30, 79, 182, 10, + ], + [ + 106, 121, 190, 22, 158, 183, 33, 248, 175, 196, 212, 4, 160, 136, 121, 1, 110, 225, + 143, 145, 248, 216, 225, 198, 45, 119, 247, 143, 160, 247, 172, 61, + ], + ], + [ + [ + 170, 197, 210, 231, 188, 33, 170, 201, 233, 126, 60, 21, 94, 154, 254, 1, 196, 112, 19, + 33, 164, 39, 47, 136, 105, 87, 42, 209, 126, 179, 4, 53, + ], + [ + 188, 4, 106, 142, 39, 183, 58, 78, 91, 77, 33, 182, 34, 195, 233, 151, 102, 209, 51, + 195, 23, 95, 51, 237, 30, 112, 16, 207, 245, 125, 187, 59, + ], + [ + 15, 242, 145, 233, 209, 153, 20, 138, 166, 217, 11, 161, 243, 43, 241, 80, 125, 65, 1, + 235, 179, 76, 8, 72, 23, 184, 85, 248, 167, 133, 69, 2, + ], + [ + 225, 27, 224, 155, 142, 0, 95, 230, 169, 31, 72, 118, 204, 184, 84, 219, 150, 161, 137, + 193, 136, 180, 112, 183, 197, 184, 226, 97, 174, 180, 24, 11, + ], + [ + 199, 134, 139, 145, 225, 180, 173, 107, 79, 68, 52, 186, 212, 235, 203, 133, 237, 28, + 129, 57, 178, 111, 10, 128, 182, 15, 240, 22, 78, 20, 144, 37, + ], + [ + 124, 87, 4, 136, 241, 14, 185, 35, 104, 27, 231, 201, 32, 180, 69, 222, 208, 122, 144, + 183, 68, 218, 190, 211, 97, 52, 193, 1, 239, 155, 129, 35, + ], + [ + 196, 160, 5, 223, 59, 150, 79, 242, 92, 80, 44, 206, 218, 37, 78, 177, 242, 104, 141, + 77, 227, 103, 140, 229, 134, 180, 34, 11, 45, 120, 81, 53, + ], + [ + 99, 157, 16, 77, 119, 202, 154, 196, 15, 121, 133, 20, 68, 176, 29, 23, 176, 41, 217, + 190, 25, 99, 134, 214, 160, 62, 79, 119, 238, 131, 33, 36, + ], + ], + [ + [ + 82, 63, 89, 161, 22, 25, 171, 246, 76, 224, 209, 2, 192, 99, 241, 215, 61, 51, 46, 111, + 168, 154, 99, 217, 0, 4, 43, 53, 18, 209, 229, 54, + ], + [ + 167, 96, 77, 229, 175, 88, 227, 207, 122, 115, 183, 68, 181, 58, 37, 192, 5, 113, 227, + 193, 160, 30, 159, 155, 194, 116, 35, 238, 138, 4, 110, 1, + ], + [ + 208, 142, 104, 151, 195, 118, 201, 104, 233, 25, 4, 134, 154, 101, 184, 186, 176, 240, + 88, 47, 60, 63, 85, 49, 28, 180, 85, 205, 229, 172, 224, 23, + ], + [ + 225, 179, 202, 188, 22, 119, 248, 74, 28, 29, 26, 29, 213, 85, 201, 119, 250, 208, 90, + 186, 188, 163, 67, 225, 7, 105, 115, 238, 100, 73, 15, 43, + ], + [ + 94, 130, 151, 41, 5, 147, 117, 3, 249, 79, 58, 213, 193, 248, 185, 183, 10, 21, 35, 63, + 25, 84, 177, 253, 165, 102, 91, 81, 138, 219, 39, 54, + ], + [ + 176, 233, 181, 59, 196, 247, 219, 24, 149, 28, 113, 113, 133, 66, 180, 213, 204, 65, + 88, 21, 171, 131, 99, 218, 15, 224, 29, 102, 207, 240, 157, 40, + ], + [ + 148, 66, 102, 220, 47, 53, 236, 254, 85, 226, 162, 110, 94, 77, 10, 149, 173, 16, 70, + 31, 31, 87, 110, 6, 57, 165, 232, 79, 119, 39, 176, 12, + ], + [ + 23, 109, 174, 136, 38, 90, 212, 253, 239, 204, 23, 11, 76, 147, 151, 42, 129, 24, 229, + 90, 202, 179, 169, 199, 57, 95, 105, 207, 109, 231, 64, 23, + ], + ], + [ + [ + 210, 218, 63, 9, 74, 89, 145, 23, 196, 76, 249, 167, 105, 125, 253, 20, 49, 203, 12, + 184, 203, 120, 138, 93, 91, 46, 186, 251, 218, 25, 70, 4, + ], + [ + 139, 120, 71, 74, 206, 5, 119, 147, 208, 109, 12, 36, 182, 63, 104, 121, 35, 248, 122, + 36, 26, 179, 98, 242, 96, 103, 157, 145, 215, 160, 238, 37, + ], + [ + 119, 7, 93, 55, 33, 255, 127, 106, 216, 22, 144, 55, 139, 80, 136, 132, 240, 202, 42, + 225, 208, 127, 220, 53, 244, 237, 71, 189, 88, 189, 163, 5, + ], + [ + 170, 190, 180, 72, 134, 101, 250, 194, 105, 240, 171, 146, 156, 166, 210, 64, 172, 238, + 90, 149, 94, 59, 190, 252, 76, 134, 126, 243, 154, 205, 102, 13, + ], + [ + 61, 238, 119, 250, 17, 114, 41, 23, 62, 28, 235, 146, 48, 100, 181, 149, 254, 237, 241, + 138, 188, 225, 84, 16, 184, 30, 56, 107, 147, 250, 66, 2, + ], + [ + 28, 109, 249, 181, 203, 172, 134, 246, 128, 130, 89, 122, 40, 47, 34, 151, 64, 90, 103, + 136, 81, 219, 41, 175, 233, 47, 111, 72, 168, 30, 5, 56, + ], + [ + 104, 186, 155, 55, 148, 38, 106, 255, 151, 132, 138, 199, 113, 77, 212, 162, 185, 6, + 79, 180, 229, 49, 60, 105, 198, 127, 91, 244, 214, 186, 62, 61, + ], + [ + 29, 254, 87, 7, 165, 114, 18, 76, 54, 39, 67, 130, 22, 232, 156, 152, 108, 111, 76, + 242, 206, 188, 3, 128, 125, 61, 185, 187, 198, 48, 252, 44, + ], + ], + [ + [ + 187, 50, 8, 176, 60, 67, 135, 89, 94, 138, 218, 198, 22, 101, 177, 175, 102, 240, 126, + 241, 82, 144, 251, 102, 72, 83, 107, 48, 146, 17, 213, 28, + ], + [ + 66, 28, 29, 99, 204, 226, 10, 124, 168, 193, 84, 224, 148, 6, 106, 116, 159, 95, 220, + 57, 114, 182, 252, 121, 106, 183, 91, 112, 135, 212, 111, 32, + ], + [ + 74, 224, 165, 3, 122, 142, 237, 166, 242, 106, 187, 40, 75, 60, 48, 81, 110, 173, 246, + 152, 66, 206, 150, 22, 173, 227, 82, 47, 214, 31, 65, 25, + ], + [ + 241, 175, 29, 66, 85, 85, 198, 49, 73, 114, 59, 93, 17, 168, 52, 23, 229, 172, 95, 205, + 71, 36, 103, 168, 242, 113, 13, 36, 233, 30, 70, 12, + ], + [ + 237, 63, 61, 13, 103, 181, 237, 70, 72, 231, 126, 24, 8, 136, 64, 33, 107, 250, 198, + 207, 196, 179, 175, 29, 224, 86, 78, 2, 162, 171, 147, 0, + ], + [ + 11, 93, 3, 235, 245, 18, 55, 148, 155, 241, 206, 53, 156, 60, 107, 8, 149, 42, 57, 117, + 150, 13, 151, 213, 8, 223, 186, 100, 167, 163, 208, 4, + ], + [ + 101, 234, 84, 111, 45, 42, 194, 165, 16, 135, 160, 248, 114, 253, 44, 141, 91, 202, 39, + 81, 92, 168, 4, 92, 33, 196, 29, 132, 94, 49, 171, 36, + ], + [ + 170, 78, 106, 212, 212, 78, 86, 18, 151, 82, 184, 101, 228, 37, 105, 224, 43, 102, 141, + 27, 19, 208, 35, 122, 31, 89, 86, 64, 192, 221, 17, 17, + ], + ], + [ + [ + 151, 50, 9, 177, 173, 66, 105, 137, 98, 60, 243, 94, 35, 26, 166, 35, 163, 143, 255, + 135, 238, 117, 197, 96, 41, 128, 136, 136, 152, 185, 32, 22, + ], + [ + 106, 14, 42, 81, 127, 116, 49, 48, 154, 161, 77, 30, 178, 74, 202, 5, 124, 177, 27, + 169, 164, 70, 166, 152, 138, 194, 203, 198, 134, 203, 255, 40, + ], + [ + 47, 96, 56, 43, 93, 62, 87, 53, 208, 6, 248, 168, 93, 211, 251, 240, 46, 138, 239, 76, + 20, 142, 20, 116, 0, 124, 15, 225, 30, 217, 116, 37, + ], + [ + 231, 205, 171, 128, 77, 59, 170, 67, 8, 186, 39, 75, 19, 129, 239, 181, 145, 141, 177, + 29, 7, 232, 153, 69, 218, 26, 205, 164, 206, 207, 0, 54, + ], + [ + 229, 107, 81, 81, 205, 122, 120, 80, 1, 96, 13, 166, 168, 148, 0, 240, 16, 207, 156, + 84, 125, 0, 207, 196, 242, 124, 208, 133, 52, 32, 182, 9, + ], + [ + 179, 184, 212, 223, 250, 116, 72, 192, 9, 113, 91, 215, 203, 32, 185, 213, 167, 149, + 210, 44, 74, 255, 114, 55, 2, 218, 189, 211, 188, 57, 154, 59, + ], + [ + 162, 165, 77, 233, 58, 220, 93, 70, 103, 253, 243, 4, 206, 70, 34, 10, 214, 54, 189, + 252, 222, 176, 215, 185, 142, 65, 240, 131, 61, 234, 236, 13, + ], + [ + 48, 73, 161, 183, 218, 189, 224, 124, 241, 181, 230, 36, 73, 203, 90, 15, 116, 0, 69, + 237, 156, 181, 231, 180, 84, 197, 234, 181, 190, 199, 255, 52, + ], + ], + [ + [ + 220, 111, 247, 64, 46, 37, 189, 99, 253, 91, 162, 238, 241, 140, 108, 174, 90, 146, + 190, 18, 224, 248, 2, 146, 96, 236, 243, 212, 16, 103, 66, 30, + ], + [ + 31, 37, 121, 78, 67, 203, 24, 7, 252, 180, 126, 16, 235, 113, 134, 22, 212, 79, 77, + 205, 114, 166, 90, 126, 71, 121, 244, 35, 135, 130, 158, 2, + ], + [ + 122, 50, 153, 247, 80, 50, 170, 82, 111, 229, 167, 139, 213, 253, 253, 149, 1, 132, + 230, 42, 168, 20, 94, 119, 109, 143, 55, 222, 234, 138, 53, 52, + ], + [ + 22, 219, 32, 98, 222, 149, 154, 11, 103, 155, 91, 234, 214, 98, 113, 121, 194, 38, 112, + 245, 228, 153, 212, 138, 113, 239, 46, 112, 14, 169, 217, 57, + ], + [ + 218, 47, 129, 55, 195, 205, 29, 175, 252, 108, 76, 237, 220, 134, 47, 151, 189, 218, + 53, 45, 238, 145, 156, 13, 203, 143, 8, 75, 11, 81, 68, 27, + ], + [ + 165, 15, 17, 124, 219, 84, 3, 50, 247, 108, 34, 94, 139, 246, 71, 153, 118, 224, 119, + 186, 40, 94, 45, 102, 25, 209, 86, 62, 6, 174, 151, 53, + ], + [ + 128, 13, 54, 223, 254, 21, 137, 124, 31, 192, 179, 70, 118, 72, 142, 187, 167, 0, 178, + 120, 165, 60, 204, 21, 18, 202, 138, 190, 17, 246, 100, 51, + ], + [ + 148, 186, 124, 117, 46, 54, 68, 248, 71, 170, 136, 117, 249, 134, 99, 43, 192, 98, 121, + 63, 207, 156, 75, 54, 185, 158, 212, 22, 18, 211, 51, 52, + ], + ], + [ + [ + 24, 52, 228, 114, 155, 108, 214, 40, 54, 236, 37, 7, 134, 141, 237, 159, 77, 185, 13, + 39, 195, 44, 58, 34, 229, 109, 3, 4, 68, 221, 190, 1, + ], + [ + 246, 210, 179, 250, 192, 219, 151, 191, 86, 214, 163, 157, 76, 7, 169, 170, 142, 35, + 76, 33, 26, 34, 184, 11, 1, 201, 80, 190, 175, 176, 222, 22, + ], + [ + 45, 230, 47, 218, 24, 154, 184, 70, 125, 235, 25, 236, 196, 31, 216, 134, 216, 186, + 232, 169, 254, 217, 128, 228, 248, 58, 65, 17, 151, 230, 252, 39, + ], + [ + 49, 249, 191, 147, 138, 148, 49, 217, 180, 143, 197, 86, 126, 226, 166, 187, 86, 230, + 21, 120, 10, 5, 224, 33, 168, 69, 24, 177, 196, 212, 19, 56, + ], + [ + 78, 3, 109, 136, 87, 121, 66, 254, 234, 100, 221, 179, 88, 91, 164, 100, 110, 130, 124, + 91, 196, 38, 192, 144, 172, 166, 18, 172, 247, 58, 40, 14, + ], + [ + 214, 225, 119, 224, 102, 139, 164, 249, 12, 11, 182, 68, 37, 36, 143, 165, 110, 236, + 160, 96, 231, 183, 237, 46, 33, 87, 251, 228, 234, 141, 224, 8, + ], + [ + 41, 23, 61, 155, 61, 57, 2, 172, 82, 226, 110, 224, 155, 186, 1, 116, 244, 90, 184, + 218, 91, 241, 142, 128, 196, 137, 32, 56, 165, 182, 15, 35, + ], + [ + 134, 195, 91, 252, 76, 154, 223, 242, 155, 67, 75, 113, 30, 185, 151, 122, 108, 161, + 234, 74, 245, 112, 142, 141, 211, 94, 34, 237, 227, 172, 133, 1, + ], + ], + [ + [ + 167, 255, 57, 210, 245, 166, 106, 113, 15, 165, 122, 64, 80, 166, 212, 184, 73, 180, + 113, 173, 253, 39, 112, 70, 8, 20, 6, 65, 24, 62, 64, 5, + ], + [ + 203, 107, 134, 205, 3, 48, 37, 121, 106, 5, 121, 146, 237, 41, 10, 95, 169, 198, 158, + 124, 91, 231, 131, 169, 13, 208, 34, 9, 160, 185, 35, 62, + ], + [ + 159, 157, 209, 73, 242, 210, 214, 163, 71, 138, 37, 146, 109, 231, 120, 218, 9, 240, + 166, 57, 3, 33, 3, 133, 32, 211, 190, 239, 180, 72, 251, 14, + ], + [ + 235, 185, 248, 188, 219, 240, 28, 178, 142, 217, 194, 95, 153, 114, 200, 233, 230, 77, + 203, 129, 201, 87, 115, 29, 42, 80, 160, 207, 197, 103, 161, 18, + ], + [ + 64, 41, 171, 141, 241, 81, 18, 17, 80, 24, 42, 140, 182, 191, 240, 165, 69, 60, 26, 10, + 218, 36, 147, 62, 195, 1, 37, 201, 79, 111, 117, 48, + ], + [ + 99, 149, 18, 72, 7, 45, 206, 70, 179, 31, 195, 173, 136, 27, 178, 204, 81, 105, 144, + 191, 206, 91, 40, 189, 8, 32, 92, 108, 138, 209, 85, 23, + ], + [ + 122, 133, 113, 198, 75, 111, 114, 28, 82, 109, 46, 198, 163, 186, 185, 113, 163, 16, + 25, 119, 248, 50, 124, 124, 202, 61, 194, 124, 64, 125, 8, 3, + ], + [ + 231, 74, 52, 247, 27, 78, 86, 39, 140, 9, 146, 193, 50, 231, 242, 134, 74, 134, 57, + 174, 105, 148, 90, 9, 117, 29, 5, 224, 77, 120, 94, 43, + ], + ], + [ + [ + 66, 125, 134, 52, 113, 121, 1, 157, 97, 185, 99, 106, 44, 43, 60, 127, 106, 209, 19, + 201, 122, 218, 244, 45, 241, 86, 143, 244, 245, 208, 162, 7, + ], + [ + 18, 80, 241, 94, 225, 206, 164, 202, 189, 9, 154, 17, 214, 79, 229, 176, 191, 112, 95, + 5, 52, 43, 102, 83, 249, 151, 222, 109, 132, 233, 251, 3, + ], + [ + 253, 91, 9, 76, 243, 26, 104, 70, 78, 24, 99, 82, 248, 129, 141, 73, 122, 142, 83, 21, + 218, 240, 118, 200, 240, 184, 227, 38, 137, 46, 190, 3, + ], + [ + 155, 143, 123, 196, 198, 125, 209, 238, 161, 6, 7, 95, 47, 74, 163, 223, 247, 184, 193, + 90, 102, 129, 37, 25, 201, 201, 101, 71, 81, 31, 49, 54, + ], + [ + 229, 127, 64, 113, 252, 102, 170, 69, 29, 131, 215, 235, 16, 35, 215, 100, 234, 250, + 171, 224, 254, 50, 218, 177, 59, 199, 79, 8, 85, 162, 106, 42, + ], + [ + 48, 238, 75, 148, 191, 96, 178, 107, 185, 175, 86, 29, 33, 61, 66, 179, 234, 82, 134, + 19, 254, 213, 129, 75, 188, 155, 24, 164, 137, 200, 190, 41, + ], + [ + 220, 31, 55, 254, 233, 65, 55, 210, 170, 104, 85, 6, 115, 71, 143, 106, 177, 34, 156, + 96, 46, 5, 122, 164, 33, 122, 36, 249, 146, 49, 169, 44, + ], + [ + 222, 65, 234, 61, 23, 51, 29, 154, 52, 159, 192, 26, 238, 127, 189, 106, 219, 161, 17, + 81, 68, 54, 147, 136, 210, 156, 120, 36, 171, 255, 57, 58, + ], + ], + [ + [ + 71, 251, 242, 20, 210, 72, 251, 220, 14, 8, 19, 169, 220, 25, 39, 174, 75, 44, 133, 22, + 105, 236, 21, 103, 212, 100, 5, 34, 121, 79, 162, 0, + ], + [ + 194, 41, 180, 100, 238, 236, 100, 134, 89, 82, 152, 106, 230, 80, 7, 146, 66, 87, 9, + 42, 24, 87, 242, 96, 92, 63, 56, 169, 156, 190, 229, 34, + ], + [ + 141, 254, 94, 59, 138, 160, 119, 154, 211, 60, 56, 145, 249, 153, 182, 182, 220, 6, + 168, 138, 212, 237, 122, 17, 116, 242, 63, 233, 22, 145, 242, 30, + ], + [ + 153, 109, 113, 106, 252, 209, 225, 86, 244, 176, 84, 140, 44, 71, 175, 77, 108, 18, 39, + 175, 183, 234, 142, 163, 210, 63, 38, 103, 232, 88, 223, 17, + ], + [ + 109, 169, 28, 78, 240, 241, 115, 94, 37, 155, 187, 62, 78, 248, 41, 16, 199, 207, 47, + 59, 100, 234, 147, 113, 185, 30, 204, 174, 216, 101, 217, 26, + ], + [ + 199, 76, 237, 233, 188, 41, 236, 124, 20, 78, 61, 129, 251, 10, 106, 218, 166, 189, 16, + 189, 63, 30, 242, 111, 51, 164, 134, 147, 135, 167, 20, 32, + ], + [ + 246, 126, 31, 131, 87, 207, 67, 228, 92, 46, 120, 73, 48, 7, 53, 2, 228, 91, 167, 249, + 224, 145, 38, 140, 49, 110, 9, 198, 28, 166, 199, 23, + ], + [ + 231, 83, 169, 70, 52, 62, 177, 207, 175, 89, 75, 217, 161, 59, 56, 2, 169, 1, 9, 205, + 52, 49, 201, 25, 166, 146, 234, 172, 244, 231, 106, 47, + ], + ], + [ + [ + 194, 228, 232, 201, 33, 16, 85, 164, 105, 160, 141, 18, 249, 59, 102, 48, 193, 116, + 209, 147, 10, 211, 226, 31, 157, 35, 94, 220, 99, 198, 20, 42, + ], + [ + 173, 35, 189, 24, 85, 198, 154, 168, 25, 220, 226, 85, 221, 15, 58, 3, 224, 4, 58, 168, + 58, 29, 56, 245, 186, 223, 226, 181, 18, 185, 172, 40, + ], + [ + 27, 18, 59, 17, 10, 72, 50, 106, 165, 134, 74, 100, 153, 117, 121, 253, 16, 86, 246, + 110, 187, 230, 25, 216, 83, 224, 186, 141, 45, 119, 33, 49, + ], + [ + 244, 45, 103, 199, 97, 180, 35, 18, 240, 147, 30, 233, 41, 208, 61, 151, 65, 157, 96, + 171, 100, 18, 176, 152, 225, 175, 193, 244, 215, 35, 160, 5, + ], + [ + 28, 222, 44, 27, 46, 254, 161, 252, 108, 206, 27, 127, 81, 6, 137, 238, 194, 214, 249, + 85, 148, 234, 179, 183, 90, 25, 164, 214, 151, 128, 32, 50, + ], + [ + 125, 65, 228, 176, 203, 94, 50, 79, 49, 124, 4, 14, 170, 253, 17, 191, 75, 224, 55, 44, + 99, 162, 131, 127, 176, 147, 248, 78, 201, 196, 241, 48, + ], + [ + 117, 21, 105, 66, 55, 43, 28, 99, 109, 184, 3, 147, 39, 208, 145, 27, 14, 225, 196, + 196, 154, 197, 190, 14, 72, 118, 238, 54, 18, 187, 54, 26, + ], + [ + 70, 174, 45, 224, 63, 252, 216, 207, 239, 185, 167, 156, 199, 168, 127, 109, 175, 46, + 99, 100, 169, 75, 223, 35, 161, 102, 242, 103, 16, 8, 209, 55, + ], + ], + [ + [ + 13, 194, 138, 145, 78, 219, 22, 182, 229, 0, 1, 81, 185, 166, 160, 114, 3, 35, 63, 253, + 99, 163, 28, 47, 140, 78, 62, 65, 234, 25, 70, 37, + ], + [ + 61, 96, 17, 118, 88, 237, 59, 158, 157, 55, 155, 76, 10, 185, 215, 169, 151, 212, 195, + 26, 97, 8, 212, 102, 242, 134, 252, 227, 178, 5, 199, 22, + ], + [ + 34, 135, 203, 237, 55, 68, 123, 190, 69, 155, 72, 68, 155, 82, 131, 168, 8, 208, 132, + 197, 218, 130, 132, 104, 97, 217, 13, 156, 76, 112, 181, 16, + ], + [ + 95, 192, 150, 61, 45, 125, 142, 207, 41, 12, 219, 19, 191, 159, 133, 179, 135, 190, + 152, 115, 226, 94, 245, 57, 244, 14, 94, 122, 221, 36, 84, 14, + ], + [ + 60, 90, 132, 102, 233, 42, 52, 168, 255, 226, 18, 254, 36, 107, 88, 73, 146, 120, 103, + 244, 75, 107, 77, 25, 143, 238, 53, 95, 194, 155, 31, 40, + ], + [ + 138, 52, 172, 249, 115, 57, 8, 171, 31, 81, 27, 131, 252, 161, 40, 171, 234, 110, 66, + 119, 79, 189, 7, 252, 119, 55, 152, 241, 39, 80, 8, 4, + ], + [ + 14, 102, 234, 194, 179, 112, 30, 38, 179, 183, 161, 70, 57, 1, 209, 189, 106, 139, 242, + 192, 200, 245, 190, 143, 182, 219, 93, 128, 9, 37, 227, 63, + ], + [ + 122, 219, 120, 166, 254, 238, 26, 106, 128, 225, 64, 176, 209, 13, 159, 175, 107, 206, + 89, 142, 159, 70, 79, 142, 28, 220, 139, 218, 34, 215, 125, 63, + ], + ], + [ + [ + 172, 21, 136, 167, 111, 36, 168, 90, 36, 244, 208, 208, 34, 42, 91, 158, 121, 11, 214, + 17, 150, 220, 169, 137, 174, 234, 191, 231, 228, 166, 244, 39, + ], + [ + 247, 84, 154, 37, 49, 122, 163, 113, 225, 52, 106, 231, 138, 127, 51, 135, 176, 76, + 175, 217, 247, 243, 84, 86, 27, 91, 136, 106, 29, 19, 70, 32, + ], + [ + 183, 140, 119, 40, 234, 18, 150, 188, 245, 145, 29, 134, 108, 239, 3, 75, 85, 135, 174, + 215, 248, 64, 240, 135, 80, 107, 134, 242, 237, 181, 254, 34, + ], + [ + 157, 21, 160, 26, 117, 32, 17, 245, 64, 238, 132, 120, 163, 148, 190, 127, 55, 73, 224, + 219, 166, 32, 236, 26, 161, 153, 206, 37, 218, 158, 115, 50, + ], + [ + 102, 128, 174, 242, 77, 163, 172, 154, 138, 244, 102, 17, 122, 197, 231, 16, 67, 251, + 112, 69, 234, 176, 66, 247, 133, 177, 21, 204, 174, 237, 4, 49, + ], + [ + 239, 96, 167, 25, 10, 118, 236, 57, 32, 103, 160, 19, 209, 187, 230, 224, 85, 134, 110, + 238, 216, 152, 208, 109, 0, 188, 254, 240, 93, 53, 109, 23, + ], + [ + 108, 28, 154, 95, 92, 197, 178, 24, 211, 70, 120, 40, 247, 84, 168, 186, 7, 171, 75, + 120, 151, 200, 22, 59, 21, 170, 251, 131, 56, 235, 175, 30, + ], + [ + 167, 85, 243, 125, 181, 241, 122, 202, 14, 50, 200, 228, 168, 106, 9, 243, 21, 134, + 155, 179, 123, 98, 111, 203, 96, 238, 117, 102, 244, 82, 32, 3, + ], + ], + [ + [ + 81, 194, 89, 56, 62, 155, 254, 27, 234, 67, 235, 139, 206, 253, 178, 220, 111, 228, + 143, 76, 232, 237, 223, 210, 227, 76, 234, 83, 158, 41, 165, 30, + ], + [ + 231, 16, 196, 172, 106, 248, 216, 179, 18, 11, 178, 169, 44, 149, 81, 254, 108, 74, + 207, 135, 95, 26, 32, 80, 180, 103, 196, 109, 126, 18, 241, 26, + ], + [ + 25, 140, 4, 125, 204, 220, 57, 121, 155, 173, 62, 202, 248, 55, 151, 70, 91, 173, 109, + 160, 23, 245, 116, 228, 68, 199, 22, 29, 170, 0, 10, 36, + ], + [ + 170, 226, 29, 101, 137, 91, 118, 169, 27, 250, 42, 0, 135, 49, 146, 159, 97, 105, 241, + 55, 67, 34, 72, 162, 122, 167, 18, 120, 202, 9, 82, 39, + ], + [ + 130, 23, 40, 251, 34, 205, 36, 24, 34, 193, 84, 226, 32, 35, 205, 182, 98, 64, 218, 99, + 223, 29, 193, 200, 187, 51, 94, 127, 85, 136, 106, 63, + ], + [ + 20, 174, 125, 99, 207, 8, 50, 43, 203, 1, 165, 193, 43, 225, 16, 254, 207, 164, 119, + 162, 140, 94, 66, 208, 113, 7, 89, 200, 55, 53, 169, 24, + ], + [ + 114, 146, 145, 183, 20, 171, 214, 161, 11, 200, 195, 62, 124, 57, 225, 210, 37, 202, + 108, 255, 246, 167, 197, 3, 205, 66, 206, 131, 22, 60, 71, 51, + ], + [ + 96, 247, 39, 97, 175, 212, 113, 61, 218, 136, 61, 57, 34, 15, 242, 54, 133, 211, 151, + 28, 183, 159, 134, 188, 192, 104, 174, 54, 236, 231, 26, 5, + ], + ], + [ + [ + 159, 212, 195, 141, 31, 242, 46, 244, 34, 181, 77, 152, 114, 59, 111, 27, 127, 224, + 253, 146, 51, 221, 241, 189, 211, 26, 127, 150, 115, 126, 255, 8, + ], + [ + 166, 51, 28, 89, 18, 65, 151, 110, 54, 47, 186, 87, 146, 233, 13, 36, 99, 46, 194, 38, + 248, 235, 17, 179, 225, 64, 174, 192, 149, 76, 193, 57, + ], + [ + 124, 227, 148, 2, 195, 251, 0, 91, 99, 91, 4, 61, 36, 61, 60, 185, 160, 8, 216, 162, + 255, 163, 156, 212, 189, 234, 160, 131, 80, 233, 69, 31, + ], + [ + 228, 5, 75, 168, 81, 179, 20, 142, 53, 62, 19, 152, 211, 120, 178, 172, 214, 30, 69, + 85, 124, 165, 73, 139, 93, 24, 36, 46, 199, 96, 40, 30, + ], + [ + 252, 20, 32, 26, 246, 30, 192, 50, 136, 144, 68, 182, 232, 174, 73, 4, 252, 168, 180, + 46, 189, 66, 59, 7, 189, 2, 72, 92, 118, 220, 240, 43, + ], + [ + 61, 140, 148, 113, 74, 83, 138, 136, 151, 151, 156, 219, 38, 244, 28, 186, 62, 172, 40, + 239, 14, 13, 100, 187, 136, 215, 226, 156, 167, 53, 46, 22, + ], + [ + 137, 240, 137, 254, 218, 224, 225, 48, 30, 129, 224, 75, 203, 160, 113, 2, 238, 6, 205, + 79, 230, 109, 24, 44, 5, 147, 43, 123, 120, 33, 176, 16, + ], + [ + 252, 48, 156, 11, 223, 23, 120, 45, 236, 97, 109, 212, 138, 155, 248, 142, 17, 14, 185, + 199, 52, 218, 56, 244, 239, 186, 59, 155, 82, 48, 200, 39, + ], + ], + [ + [ + 5, 220, 5, 128, 148, 124, 206, 148, 180, 145, 11, 158, 188, 112, 206, 237, 160, 123, + 218, 124, 1, 54, 164, 128, 18, 95, 83, 183, 248, 29, 228, 12, + ], + [ + 214, 168, 154, 183, 172, 78, 16, 52, 50, 33, 14, 96, 238, 44, 248, 23, 157, 35, 215, + 83, 221, 57, 161, 29, 193, 11, 161, 179, 229, 48, 198, 21, + ], + [ + 133, 164, 224, 39, 107, 6, 45, 223, 31, 74, 95, 252, 109, 219, 126, 219, 154, 63, 190, + 71, 193, 16, 23, 146, 1, 24, 128, 52, 193, 130, 160, 23, + ], + [ + 121, 231, 94, 211, 129, 23, 194, 169, 190, 169, 243, 221, 172, 104, 207, 254, 157, 174, + 139, 227, 208, 20, 188, 82, 82, 190, 139, 190, 72, 23, 205, 20, + ], + [ + 91, 172, 54, 154, 40, 43, 90, 99, 254, 241, 239, 151, 148, 167, 189, 194, 248, 200, 56, + 103, 126, 85, 184, 208, 17, 168, 236, 248, 153, 208, 179, 31, + ], + [ + 205, 123, 215, 56, 96, 17, 215, 28, 168, 216, 148, 55, 15, 133, 60, 195, 164, 134, 17, + 234, 32, 36, 207, 201, 14, 112, 211, 78, 203, 7, 230, 52, + ], + [ + 93, 248, 248, 21, 87, 109, 35, 58, 212, 50, 248, 161, 115, 63, 189, 191, 135, 115, 223, + 208, 78, 213, 39, 118, 91, 211, 131, 192, 33, 234, 149, 37, + ], + [ + 35, 215, 54, 145, 79, 225, 122, 226, 127, 245, 11, 190, 251, 200, 1, 47, 80, 179, 224, + 211, 121, 180, 217, 47, 108, 41, 65, 53, 77, 93, 205, 47, + ], + ], + [ + [ + 121, 229, 227, 180, 214, 66, 64, 75, 82, 108, 25, 2, 216, 161, 23, 42, 45, 75, 106, + 187, 162, 63, 32, 6, 45, 189, 38, 184, 218, 18, 6, 43, + ], + [ + 65, 81, 179, 34, 92, 125, 223, 47, 254, 226, 115, 185, 128, 172, 68, 24, 9, 184, 57, + 129, 234, 174, 232, 12, 171, 145, 73, 72, 18, 195, 42, 11, + ], + [ + 14, 28, 16, 216, 210, 137, 236, 100, 226, 55, 225, 147, 154, 252, 211, 181, 106, 243, + 161, 79, 247, 183, 91, 55, 111, 18, 181, 172, 154, 5, 151, 53, + ], + [ + 59, 222, 201, 101, 150, 48, 2, 24, 246, 2, 107, 177, 44, 141, 54, 27, 244, 1, 91, 52, + 200, 187, 171, 156, 135, 208, 249, 222, 154, 42, 16, 33, + ], + [ + 104, 150, 234, 215, 26, 74, 45, 216, 243, 25, 122, 153, 44, 247, 128, 15, 164, 80, 95, + 105, 74, 164, 174, 150, 221, 180, 164, 117, 94, 121, 184, 21, + ], + [ + 244, 3, 63, 14, 247, 139, 139, 24, 56, 152, 122, 211, 220, 149, 32, 72, 173, 50, 233, + 95, 192, 61, 115, 222, 6, 198, 23, 145, 220, 92, 168, 14, + ], + [ + 123, 105, 48, 25, 179, 136, 51, 189, 62, 161, 38, 50, 41, 89, 206, 31, 92, 164, 227, + 29, 69, 233, 226, 53, 29, 17, 61, 221, 213, 199, 213, 36, + ], + [ + 10, 180, 201, 130, 164, 6, 35, 113, 109, 164, 34, 227, 3, 202, 86, 70, 95, 236, 68, 10, + 198, 16, 204, 49, 49, 232, 145, 2, 205, 237, 135, 33, + ], + ], + [ + [ + 164, 61, 189, 226, 93, 173, 150, 18, 110, 21, 99, 125, 250, 45, 117, 50, 250, 157, 212, + 9, 169, 14, 232, 53, 168, 110, 221, 253, 98, 44, 184, 55, + ], + [ + 10, 200, 231, 57, 40, 195, 109, 223, 230, 107, 35, 167, 70, 250, 255, 175, 106, 241, + 35, 163, 24, 65, 178, 218, 181, 40, 201, 150, 29, 181, 120, 1, + ], + [ + 23, 147, 76, 178, 80, 155, 42, 165, 82, 142, 164, 81, 100, 180, 173, 9, 26, 9, 233, 6, + 67, 3, 203, 70, 213, 195, 1, 93, 123, 169, 4, 12, + ], + [ + 15, 24, 204, 61, 20, 190, 93, 198, 16, 129, 215, 142, 41, 33, 219, 224, 34, 154, 94, + 234, 109, 21, 251, 232, 198, 62, 4, 235, 236, 16, 3, 45, + ], + [ + 143, 177, 225, 157, 173, 54, 188, 123, 41, 91, 240, 220, 223, 81, 70, 194, 27, 147, + 141, 230, 175, 43, 25, 222, 7, 143, 81, 185, 252, 252, 13, 63, + ], + [ + 2, 130, 165, 36, 212, 154, 222, 127, 66, 123, 167, 90, 242, 142, 84, 162, 154, 244, 10, + 228, 7, 110, 213, 182, 236, 30, 202, 0, 248, 20, 219, 31, + ], + [ + 91, 141, 198, 216, 211, 179, 193, 160, 134, 90, 212, 128, 85, 185, 8, 213, 156, 178, + 84, 94, 33, 60, 104, 15, 76, 132, 101, 139, 16, 202, 39, 7, + ], + [ + 40, 21, 104, 114, 55, 102, 78, 10, 8, 169, 121, 156, 143, 255, 176, 144, 216, 134, 19, + 27, 70, 151, 163, 149, 21, 220, 239, 65, 109, 137, 163, 36, + ], + ], + [ + [ + 177, 102, 25, 89, 51, 205, 218, 46, 239, 16, 165, 74, 131, 94, 82, 248, 57, 135, 156, + 160, 63, 57, 210, 21, 30, 42, 243, 39, 215, 37, 128, 28, + ], + [ + 105, 52, 188, 198, 150, 99, 113, 232, 68, 219, 243, 180, 210, 216, 187, 179, 27, 118, + 63, 211, 239, 147, 39, 75, 243, 209, 136, 247, 151, 84, 146, 32, + ], + [ + 114, 57, 148, 130, 175, 207, 73, 255, 149, 172, 194, 92, 217, 117, 177, 223, 52, 37, + 51, 57, 169, 149, 212, 248, 73, 221, 164, 0, 186, 245, 112, 23, + ], + [ + 57, 72, 243, 117, 146, 120, 9, 114, 211, 234, 216, 19, 43, 149, 3, 198, 27, 4, 239, 93, + 46, 75, 219, 149, 112, 40, 54, 28, 48, 234, 66, 57, + ], + [ + 67, 161, 31, 89, 164, 242, 224, 205, 207, 9, 154, 77, 198, 216, 166, 150, 167, 168, 60, + 83, 229, 54, 120, 248, 82, 105, 61, 130, 142, 46, 193, 18, + ], + [ + 45, 128, 84, 140, 202, 147, 79, 95, 51, 250, 148, 114, 188, 145, 61, 29, 62, 132, 115, + 244, 102, 11, 0, 96, 85, 30, 86, 136, 195, 144, 247, 18, + ], + [ + 7, 154, 159, 131, 116, 203, 12, 167, 60, 97, 53, 6, 77, 133, 249, 117, 25, 204, 243, + 118, 175, 154, 233, 70, 243, 130, 27, 127, 179, 205, 253, 15, + ], + [ + 106, 108, 100, 123, 231, 100, 59, 207, 108, 100, 34, 155, 222, 229, 31, 255, 98, 181, + 171, 122, 9, 114, 3, 101, 255, 72, 161, 61, 8, 219, 123, 27, + ], + ], + [ + [ + 138, 91, 16, 195, 19, 101, 70, 243, 47, 48, 96, 34, 191, 184, 150, 226, 190, 100, 88, + 119, 234, 152, 160, 152, 104, 219, 29, 239, 19, 148, 9, 38, + ], + [ + 246, 211, 73, 28, 125, 13, 63, 122, 5, 88, 167, 151, 179, 186, 84, 13, 111, 163, 102, + 113, 126, 241, 32, 50, 224, 13, 146, 15, 230, 150, 11, 52, + ], + [ + 154, 150, 57, 187, 127, 246, 180, 239, 190, 165, 103, 233, 89, 183, 5, 175, 150, 93, + 87, 51, 167, 126, 178, 169, 66, 28, 9, 161, 218, 239, 123, 25, + ], + [ + 185, 229, 244, 166, 244, 110, 77, 101, 167, 108, 163, 229, 108, 174, 226, 103, 89, 36, + 200, 164, 214, 148, 49, 212, 242, 197, 121, 167, 97, 157, 74, 17, + ], + [ + 52, 58, 191, 122, 149, 177, 220, 26, 97, 103, 175, 44, 100, 111, 151, 136, 79, 54, 93, + 185, 65, 182, 102, 131, 165, 82, 46, 91, 114, 18, 91, 6, + ], + [ + 107, 19, 80, 165, 166, 216, 121, 157, 215, 92, 135, 201, 246, 234, 30, 122, 36, 27, + 203, 88, 216, 113, 237, 199, 111, 120, 35, 119, 8, 205, 32, 46, + ], + [ + 20, 119, 36, 113, 135, 162, 9, 149, 247, 211, 154, 128, 212, 137, 68, 212, 28, 87, 145, + 233, 53, 162, 167, 72, 114, 252, 255, 10, 110, 30, 117, 41, + ], + [ + 69, 67, 187, 172, 32, 58, 82, 131, 180, 241, 128, 245, 245, 178, 215, 244, 40, 37, 49, + 66, 218, 99, 232, 17, 201, 214, 84, 241, 29, 215, 217, 16, + ], + ], + [ + [ + 8, 217, 27, 9, 205, 139, 87, 170, 175, 101, 13, 65, 42, 153, 124, 195, 221, 110, 147, + 106, 107, 50, 112, 113, 79, 85, 128, 96, 221, 122, 88, 37, + ], + [ + 62, 174, 26, 84, 3, 154, 76, 218, 161, 234, 202, 236, 43, 222, 190, 214, 40, 177, 81, + 209, 138, 91, 117, 25, 45, 250, 233, 13, 223, 81, 61, 34, + ], + [ + 112, 4, 242, 252, 45, 111, 178, 214, 78, 207, 68, 208, 81, 104, 157, 45, 160, 124, 213, + 193, 38, 80, 58, 205, 140, 9, 107, 41, 196, 141, 223, 40, + ], + [ + 54, 79, 54, 153, 234, 76, 173, 78, 107, 19, 23, 164, 223, 21, 74, 147, 230, 20, 103, + 113, 131, 60, 33, 233, 200, 146, 23, 144, 189, 71, 94, 24, + ], + [ + 113, 192, 128, 244, 20, 55, 236, 149, 20, 196, 221, 99, 71, 23, 208, 187, 92, 158, 5, + 73, 239, 163, 254, 39, 142, 161, 51, 180, 159, 209, 209, 12, + ], + [ + 204, 251, 47, 230, 61, 123, 221, 149, 69, 100, 194, 77, 56, 250, 81, 132, 163, 128, + 181, 208, 116, 94, 151, 79, 31, 139, 66, 154, 91, 182, 52, 28, + ], + [ + 83, 105, 243, 244, 101, 204, 108, 161, 15, 204, 51, 165, 200, 209, 129, 177, 30, 110, + 84, 4, 65, 203, 125, 221, 234, 8, 100, 183, 47, 52, 49, 25, + ], + [ + 201, 43, 72, 102, 184, 137, 0, 15, 252, 35, 236, 135, 16, 241, 233, 164, 218, 184, 188, + 92, 174, 121, 33, 207, 166, 154, 39, 203, 16, 89, 89, 46, + ], + ], +]; + +pub fn generator() -> pallas::Affine { + pallas::Affine::from_xy( + pallas::Base::from_repr(GENERATOR.0).unwrap(), + pallas::Base::from_repr(GENERATOR.1).unwrap(), + ) + .unwrap() +} + +#[cfg(test)] +mod tests { + use super::super::{NUM_WINDOWS, VALUE_COMMITMENT_PERSONALIZATION}; + use super::*; + use group::Curve; + use halo2_gadgets::ecc::chip::constants::{test_lagrange_coeffs, test_zs_and_us}; + use pasta_curves::{ + arithmetic::{CurveAffine, CurveExt}, + pallas, + }; + + #[test] + fn generator() { + let hasher = pallas::Point::hash_to_curve(VALUE_COMMITMENT_PERSONALIZATION); + let point = hasher(b"r"); + let coords = point.to_affine().coordinates().unwrap(); + + assert_eq!(*coords.x(), pallas::Base::from_repr(GENERATOR.0).unwrap()); + assert_eq!(*coords.y(), pallas::Base::from_repr(GENERATOR.1).unwrap()); + } + + #[test] + fn lagrange_coeffs() { + let base = super::generator(); + test_lagrange_coeffs(base, NUM_WINDOWS); + } + + #[test] + fn z() { + let base = super::generator(); + test_zs_and_us(base, &Z, &U, NUM_WINDOWS); + } +} diff --git a/zk-crates/zk-headstash/src/constants/fixed_bases/value_commit_v.rs b/zk-crates/zk-headstash/src/constants/fixed_bases/value_commit_v.rs new file mode 100644 index 0000000..30f79ba --- /dev/null +++ b/zk-crates/zk-headstash/src/constants/fixed_bases/value_commit_v.rs @@ -0,0 +1,817 @@ +use group::ff::PrimeField; +use pasta_curves::{arithmetic::CurveAffine, pallas}; + +/// The value commitment is a homomorphic Pedersen commitment used to check balance between inputs +/// and outputs. This is its value base, $\mathcal{V}^{\mathsf{Orchard}}$. +pub const GENERATOR: ([u8; 32], [u8; 32]) = ( + [ + 103, 67, 249, 58, 110, 189, 167, 42, 140, 124, 90, 43, 127, 163, 4, 254, 50, 178, 155, 79, + 112, 106, 168, 247, 66, 15, 61, 142, 122, 89, 112, 47, + ], + [ + 142, 242, 90, 175, 126, 196, 19, 164, 219, 227, 255, 167, 102, 167, 158, 29, 66, 108, 109, + 19, 99, 127, 145, 30, 175, 25, 25, 49, 105, 81, 14, 45, + ], +); + +/// Short signed z-values for GENERATOR. +/// These can be reproduced by [`halo2_gadgets::ecc::chip::constants::find_zs_and_us`]. +pub const Z_SHORT: [u64; super::NUM_WINDOWS_SHORT] = [ + 163547, 76040, 88852, 128479, 54088, 89871, 39598, 144309, 43471, 102492, 741, 55288, 33756, + 77312, 12095, 48253, 45718, 202901, 33132, 71081, 152108, 169712, +]; + +/// Short signed u-values for GENERATOR. +/// These can be reproduced by [`halo2_gadgets::ecc::chip::constants::find_zs_and_us`]. +pub const U_SHORT: [[[u8; 32]; super::H]; super::NUM_WINDOWS_SHORT] = [ + [ + [ + 16, 88, 158, 52, 92, 165, 59, 177, 224, 70, 108, 93, 144, 51, 8, 133, 114, 192, 151, + 40, 85, 33, 52, 118, 147, 163, 220, 193, 171, 43, 73, 27, + ], + [ + 201, 84, 190, 165, 219, 228, 63, 155, 182, 74, 179, 74, 230, 96, 89, 168, 110, 162, 83, + 218, 185, 137, 194, 92, 244, 85, 1, 60, 59, 16, 119, 14, + ], + [ + 113, 146, 25, 32, 206, 37, 173, 225, 58, 41, 184, 214, 177, 123, 211, 55, 42, 208, 214, + 45, 149, 99, 31, 171, 172, 226, 219, 171, 246, 85, 116, 59, + ], + [ + 10, 79, 89, 241, 37, 161, 115, 213, 183, 43, 68, 233, 219, 249, 131, 137, 41, 119, 153, + 24, 92, 87, 138, 167, 93, 46, 32, 97, 102, 164, 164, 53, + ], + [ + 50, 252, 2, 254, 234, 133, 190, 34, 244, 192, 31, 96, 156, 152, 150, 88, 154, 224, 223, + 144, 223, 113, 203, 226, 214, 44, 69, 198, 171, 60, 26, 45, + ], + [ + 151, 65, 173, 0, 249, 13, 78, 201, 84, 58, 255, 120, 124, 169, 98, 242, 239, 132, 149, + 204, 146, 244, 55, 176, 56, 26, 19, 148, 125, 42, 26, 32, + ], + [ + 6, 29, 196, 176, 135, 157, 248, 239, 196, 9, 100, 82, 220, 41, 203, 49, 35, 108, 76, + 59, 222, 47, 82, 39, 35, 23, 88, 136, 61, 90, 23, 57, + ], + [ + 169, 203, 101, 116, 220, 68, 34, 248, 199, 107, 202, 59, 111, 171, 90, 121, 119, 80, + 146, 214, 191, 197, 220, 212, 125, 139, 12, 140, 198, 191, 110, 31, + ], + ], + [ + [ + 16, 171, 139, 236, 248, 28, 27, 145, 109, 161, 63, 121, 19, 190, 106, 193, 13, 122, + 108, 54, 95, 202, 195, 184, 118, 60, 72, 213, 154, 240, 52, 34, + ], + [ + 131, 218, 16, 142, 97, 153, 190, 249, 118, 171, 187, 254, 21, 17, 202, 48, 107, 23, + 103, 72, 159, 238, 228, 38, 183, 166, 74, 136, 77, 51, 85, 18, + ], + [ + 137, 78, 204, 243, 154, 87, 148, 200, 11, 98, 58, 33, 89, 170, 198, 87, 29, 187, 167, + 122, 157, 151, 5, 148, 254, 216, 113, 12, 158, 243, 102, 63, + ], + [ + 16, 187, 216, 98, 244, 19, 70, 209, 217, 133, 240, 226, 111, 219, 247, 74, 4, 231, 183, + 216, 35, 174, 192, 96, 129, 159, 39, 96, 200, 174, 126, 1, + ], + [ + 185, 2, 174, 129, 110, 163, 212, 152, 214, 139, 105, 150, 23, 209, 185, 245, 71, 8, + 171, 142, 43, 57, 167, 172, 233, 77, 194, 166, 118, 232, 127, 35, + ], + [ + 57, 28, 236, 33, 234, 0, 214, 131, 161, 209, 42, 25, 194, 150, 82, 126, 216, 23, 81, + 85, 90, 47, 95, 46, 119, 108, 253, 12, 92, 29, 13, 25, + ], + [ + 100, 162, 156, 175, 254, 203, 69, 171, 182, 190, 85, 161, 94, 117, 225, 0, 95, 121, + 190, 235, 79, 7, 147, 134, 48, 156, 113, 55, 114, 229, 174, 25, + ], + [ + 243, 93, 223, 98, 132, 0, 171, 125, 135, 53, 111, 49, 49, 173, 69, 211, 62, 106, 168, + 221, 115, 208, 2, 20, 14, 150, 124, 130, 189, 48, 16, 15, + ], + ], + [ + [ + 43, 238, 4, 240, 186, 135, 47, 128, 185, 51, 70, 196, 3, 137, 22, 254, 29, 247, 161, + 233, 187, 255, 239, 183, 150, 179, 8, 64, 90, 33, 17, 54, + ], + [ + 20, 226, 19, 60, 92, 195, 1, 255, 100, 188, 89, 54, 98, 225, 138, 133, 26, 140, 202, + 76, 107, 199, 46, 54, 167, 23, 119, 80, 19, 25, 34, 5, + ], + [ + 145, 109, 10, 159, 200, 145, 32, 253, 32, 93, 187, 12, 66, 161, 44, 217, 16, 100, 225, + 37, 139, 125, 169, 119, 83, 34, 96, 130, 234, 255, 138, 38, + ], + [ + 148, 127, 71, 227, 195, 244, 12, 49, 83, 78, 218, 9, 176, 158, 12, 5, 194, 54, 44, 157, + 252, 228, 175, 170, 54, 91, 49, 254, 83, 228, 180, 61, + ], + [ + 36, 96, 238, 61, 227, 144, 153, 81, 121, 197, 74, 190, 35, 216, 255, 92, 70, 7, 168, + 219, 130, 255, 172, 71, 200, 31, 142, 232, 255, 117, 96, 15, + ], + [ + 50, 152, 255, 238, 188, 127, 140, 240, 203, 33, 246, 193, 228, 179, 25, 1, 227, 194, + 79, 70, 41, 160, 83, 243, 148, 1, 95, 86, 63, 22, 55, 40, + ], + [ + 99, 228, 147, 46, 232, 157, 225, 210, 45, 159, 169, 42, 184, 90, 3, 165, 62, 4, 93, + 181, 74, 187, 112, 156, 26, 103, 199, 84, 132, 148, 14, 24, + ], + [ + 120, 163, 182, 125, 197, 141, 122, 21, 166, 103, 203, 57, 160, 228, 242, 192, 203, 40, + 233, 179, 8, 173, 199, 21, 213, 215, 222, 129, 23, 153, 25, 29, + ], + ], + [ + [ + 189, 6, 27, 46, 68, 6, 124, 69, 159, 212, 18, 104, 218, 16, 66, 183, 250, 92, 69, 5, + 218, 234, 31, 198, 123, 100, 216, 103, 106, 113, 192, 43, + ], + [ + 226, 152, 83, 159, 143, 155, 164, 90, 171, 100, 22, 240, 187, 26, 55, 172, 170, 133, + 128, 192, 29, 33, 35, 8, 59, 142, 20, 204, 151, 172, 29, 28, + ], + [ + 196, 57, 232, 112, 46, 200, 26, 93, 224, 191, 117, 154, 9, 47, 228, 145, 122, 137, 238, + 236, 70, 14, 112, 163, 96, 140, 239, 122, 75, 200, 206, 12, + ], + [ + 91, 66, 65, 159, 86, 50, 113, 39, 30, 12, 213, 235, 15, 70, 163, 119, 112, 27, 22, 170, + 151, 20, 71, 172, 65, 251, 224, 76, 26, 189, 118, 42, + ], + [ + 195, 200, 87, 207, 125, 122, 254, 50, 24, 40, 189, 169, 237, 228, 134, 66, 37, 220, 23, + 98, 202, 193, 152, 184, 171, 63, 105, 11, 70, 94, 154, 58, + ], + [ + 4, 0, 82, 125, 41, 130, 11, 238, 112, 201, 95, 30, 144, 31, 31, 233, 86, 121, 145, 200, + 204, 89, 182, 51, 151, 169, 58, 206, 184, 219, 181, 46, + ], + [ + 36, 240, 60, 205, 120, 239, 9, 98, 61, 228, 247, 9, 145, 71, 67, 10, 164, 160, 186, + 104, 25, 225, 210, 37, 31, 42, 58, 208, 44, 19, 30, 29, + ], + [ + 163, 214, 140, 64, 48, 239, 54, 175, 108, 32, 187, 248, 142, 77, 244, 117, 10, 236, 39, + 80, 158, 44, 98, 44, 248, 24, 208, 60, 173, 247, 115, 28, + ], + ], + [ + [ + 230, 166, 7, 118, 178, 55, 26, 250, 91, 159, 230, 158, 34, 135, 91, 49, 166, 244, 124, + 175, 86, 228, 159, 119, 231, 15, 19, 199, 219, 85, 233, 19, + ], + [ + 65, 240, 77, 9, 197, 255, 96, 35, 239, 161, 177, 115, 83, 114, 180, 179, 118, 158, 220, + 61, 177, 3, 175, 70, 132, 51, 87, 79, 36, 104, 129, 15, + ], + [ + 245, 9, 141, 218, 228, 57, 204, 250, 83, 156, 160, 158, 146, 157, 206, 198, 16, 94, 80, + 59, 31, 242, 163, 30, 80, 99, 32, 142, 193, 101, 172, 22, + ], + [ + 22, 68, 73, 27, 236, 149, 225, 78, 69, 83, 174, 202, 98, 113, 148, 167, 43, 132, 118, + 49, 153, 96, 186, 134, 20, 103, 123, 48, 75, 104, 207, 6, + ], + [ + 186, 5, 66, 183, 166, 255, 222, 14, 34, 0, 105, 167, 36, 11, 210, 228, 91, 103, 65, + 248, 3, 48, 117, 240, 180, 214, 201, 222, 5, 202, 103, 42, + ], + [ + 231, 31, 19, 122, 240, 72, 34, 93, 204, 125, 90, 215, 124, 174, 124, 28, 145, 103, 126, + 178, 1, 9, 152, 240, 251, 118, 14, 195, 197, 167, 136, 22, + ], + [ + 121, 57, 39, 104, 26, 135, 98, 221, 85, 199, 94, 230, 223, 129, 28, 191, 185, 0, 46, + 200, 72, 116, 202, 255, 80, 180, 13, 98, 229, 217, 238, 17, + ], + [ + 228, 158, 59, 241, 50, 224, 177, 78, 8, 121, 211, 157, 95, 196, 88, 59, 85, 141, 134, + 50, 123, 168, 175, 115, 240, 153, 223, 61, 71, 229, 77, 10, + ], + ], + [ + [ + 196, 151, 212, 168, 230, 19, 214, 179, 118, 17, 196, 50, 76, 231, 114, 80, 178, 137, + 232, 241, 60, 2, 0, 124, 25, 239, 98, 131, 220, 159, 221, 51, + ], + [ + 207, 216, 50, 53, 106, 200, 85, 166, 137, 33, 29, 239, 97, 46, 104, 218, 177, 150, 178, + 64, 232, 238, 208, 98, 103, 58, 233, 97, 1, 243, 73, 5, + ], + [ + 174, 215, 22, 124, 193, 136, 79, 91, 111, 146, 51, 128, 249, 129, 203, 168, 157, 164, + 252, 144, 206, 10, 63, 253, 250, 113, 251, 65, 218, 23, 12, 25, + ], + [ + 186, 92, 109, 134, 176, 198, 214, 156, 148, 7, 106, 121, 226, 70, 250, 192, 180, 164, + 16, 29, 245, 196, 155, 183, 214, 26, 3, 26, 249, 134, 153, 38, + ], + [ + 244, 56, 170, 227, 236, 145, 153, 150, 166, 77, 201, 48, 100, 130, 204, 194, 108, 207, + 3, 243, 227, 41, 45, 8, 136, 106, 58, 70, 126, 3, 132, 59, + ], + [ + 215, 169, 24, 118, 5, 192, 171, 217, 47, 86, 212, 249, 228, 92, 248, 103, 242, 222, 17, + 206, 36, 157, 126, 224, 105, 113, 239, 102, 54, 25, 151, 14, + ], + [ + 129, 213, 202, 163, 74, 201, 249, 43, 200, 62, 4, 232, 68, 211, 44, 153, 25, 71, 155, + 5, 93, 19, 117, 195, 201, 179, 158, 207, 252, 213, 166, 62, + ], + [ + 86, 75, 236, 222, 217, 118, 49, 0, 141, 130, 201, 248, 34, 225, 69, 91, 186, 90, 246, + 36, 141, 152, 166, 216, 118, 7, 38, 133, 147, 190, 79, 3, + ], + ], + [ + [ + 226, 55, 121, 73, 104, 77, 129, 202, 168, 123, 192, 163, 28, 9, 195, 37, 116, 207, 125, + 198, 203, 244, 121, 236, 232, 91, 168, 14, 142, 241, 250, 60, + ], + [ + 222, 86, 183, 37, 132, 107, 210, 125, 127, 46, 94, 81, 18, 91, 72, 160, 16, 193, 239, + 114, 238, 186, 186, 203, 96, 169, 87, 155, 108, 36, 97, 6, + ], + [ + 110, 110, 99, 98, 167, 78, 75, 128, 33, 138, 18, 19, 194, 192, 219, 184, 74, 196, 82, + 115, 241, 102, 30, 197, 199, 194, 154, 120, 49, 10, 95, 37, + ], + [ + 212, 206, 154, 98, 20, 33, 185, 182, 138, 207, 65, 197, 246, 19, 132, 52, 173, 186, 42, + 243, 88, 20, 51, 11, 206, 25, 216, 48, 162, 138, 124, 13, + ], + [ + 32, 161, 64, 72, 1, 32, 243, 175, 251, 37, 86, 248, 136, 187, 181, 55, 39, 255, 98, + 228, 189, 235, 194, 2, 228, 39, 92, 104, 245, 17, 117, 7, + ], + [ + 207, 205, 116, 251, 54, 21, 8, 82, 173, 45, 205, 38, 245, 155, 16, 56, 198, 232, 173, + 88, 97, 22, 234, 26, 139, 206, 108, 254, 123, 87, 181, 26, + ], + [ + 38, 147, 223, 169, 68, 76, 49, 169, 137, 141, 72, 63, 166, 88, 34, 220, 163, 91, 167, + 251, 29, 160, 254, 199, 205, 74, 158, 105, 252, 182, 158, 21, + ], + [ + 221, 44, 183, 72, 226, 191, 226, 165, 162, 153, 186, 190, 97, 53, 19, 115, 215, 71, + 155, 33, 79, 120, 197, 228, 216, 212, 249, 15, 179, 11, 216, 32, + ], + ], + [ + [ + 248, 136, 25, 30, 234, 18, 242, 209, 97, 211, 74, 228, 236, 199, 101, 200, 206, 52, + 146, 207, 72, 125, 28, 3, 60, 86, 34, 195, 250, 251, 204, 0, + ], + [ + 204, 182, 197, 171, 247, 159, 161, 27, 18, 146, 249, 99, 198, 138, 25, 61, 119, 232, + 160, 152, 18, 149, 7, 67, 125, 231, 237, 3, 68, 190, 137, 0, + ], + [ + 141, 245, 108, 181, 49, 171, 106, 247, 202, 169, 106, 39, 93, 40, 122, 2, 236, 255, + 198, 215, 122, 254, 242, 192, 49, 250, 243, 35, 7, 219, 21, 22, + ], + [ + 239, 85, 174, 15, 207, 84, 128, 92, 87, 80, 129, 20, 21, 225, 233, 158, 193, 136, 141, + 114, 66, 146, 29, 193, 223, 250, 27, 56, 195, 15, 135, 17, + ], + [ + 231, 242, 76, 43, 57, 10, 41, 166, 32, 254, 129, 47, 147, 118, 189, 200, 44, 102, 204, + 116, 96, 82, 186, 150, 106, 27, 30, 73, 237, 94, 36, 44, + ], + [ + 240, 139, 69, 197, 199, 228, 206, 96, 255, 229, 189, 207, 65, 97, 93, 211, 161, 190, + 228, 249, 50, 82, 223, 251, 13, 173, 241, 221, 78, 243, 105, 19, + ], + [ + 44, 224, 170, 161, 50, 93, 212, 80, 100, 243, 51, 74, 51, 165, 60, 208, 244, 18, 158, + 30, 158, 81, 111, 213, 136, 95, 125, 173, 143, 108, 106, 4, + ], + [ + 134, 244, 131, 92, 152, 118, 30, 139, 153, 128, 62, 115, 88, 25, 58, 29, 205, 101, 47, + 208, 93, 89, 222, 17, 122, 112, 71, 56, 147, 68, 92, 22, + ], + ], + [ + [ + 59, 157, 112, 130, 217, 2, 102, 228, 79, 211, 152, 82, 183, 186, 47, 151, 125, 13, 97, + 121, 115, 253, 17, 121, 227, 250, 99, 14, 84, 249, 18, 30, + ], + [ + 80, 180, 155, 59, 6, 182, 136, 39, 134, 168, 238, 138, 129, 174, 195, 206, 210, 167, + 214, 167, 35, 139, 130, 27, 21, 59, 7, 200, 165, 37, 91, 29, + ], + [ + 220, 228, 189, 172, 68, 102, 135, 236, 7, 70, 152, 244, 120, 217, 67, 44, 43, 74, 155, + 179, 2, 148, 106, 238, 232, 186, 181, 130, 141, 114, 60, 1, + ], + [ + 68, 132, 80, 55, 28, 52, 222, 165, 156, 6, 214, 236, 207, 37, 223, 118, 42, 55, 40, + 123, 208, 181, 240, 56, 14, 142, 58, 72, 193, 71, 120, 58, + ], + [ + 93, 114, 68, 232, 179, 37, 202, 74, 41, 64, 245, 112, 233, 162, 231, 19, 223, 207, 232, + 213, 178, 60, 106, 26, 35, 191, 108, 19, 243, 220, 40, 41, + ], + [ + 166, 223, 96, 196, 120, 210, 67, 47, 249, 123, 164, 213, 148, 138, 7, 155, 96, 222, + 176, 166, 88, 85, 95, 71, 221, 237, 138, 181, 198, 165, 163, 0, + ], + [ + 241, 254, 24, 83, 47, 65, 146, 151, 5, 182, 233, 205, 182, 13, 75, 173, 10, 14, 48, + 223, 227, 201, 141, 212, 114, 205, 196, 92, 137, 253, 127, 60, + ], + [ + 20, 41, 204, 77, 168, 230, 68, 202, 73, 251, 254, 88, 95, 80, 130, 216, 122, 75, 173, + 105, 236, 192, 177, 209, 26, 66, 205, 127, 154, 188, 245, 17, + ], + ], + [ + [ + 239, 194, 214, 218, 225, 244, 0, 110, 12, 75, 130, 236, 76, 102, 205, 64, 104, 144, + 198, 188, 183, 46, 119, 96, 230, 68, 210, 161, 253, 91, 8, 20, + ], + [ + 84, 32, 226, 77, 213, 16, 207, 156, 234, 224, 147, 173, 186, 249, 186, 155, 90, 255, + 34, 55, 48, 108, 76, 214, 254, 66, 95, 200, 174, 191, 52, 43, + ], + [ + 37, 103, 206, 174, 250, 172, 136, 87, 30, 68, 89, 230, 110, 190, 148, 71, 5, 249, 217, + 112, 54, 182, 127, 54, 173, 89, 6, 63, 230, 69, 32, 35, + ], + [ + 160, 186, 242, 212, 179, 197, 16, 239, 56, 24, 91, 241, 68, 7, 138, 200, 93, 194, 45, + 155, 210, 60, 30, 4, 167, 246, 82, 244, 71, 217, 31, 20, + ], + [ + 182, 132, 62, 134, 4, 186, 95, 160, 230, 255, 125, 156, 5, 134, 66, 99, 83, 182, 156, + 207, 98, 84, 197, 48, 160, 47, 126, 2, 253, 64, 69, 25, + ], + [ + 135, 241, 60, 121, 32, 218, 195, 61, 68, 66, 190, 195, 208, 2, 201, 111, 158, 101, 108, + 228, 145, 141, 82, 80, 36, 16, 157, 212, 65, 213, 188, 61, + ], + [ + 190, 186, 202, 30, 121, 177, 200, 82, 245, 162, 14, 253, 114, 50, 43, 134, 246, 12, + 100, 222, 149, 242, 117, 174, 136, 192, 117, 132, 228, 144, 238, 39, + ], + [ + 160, 120, 19, 13, 34, 38, 71, 236, 116, 162, 150, 254, 247, 252, 222, 198, 196, 59, 98, + 165, 54, 33, 22, 120, 58, 73, 225, 42, 37, 211, 88, 21, + ], + ], + [ + [ + 252, 1, 229, 131, 50, 189, 111, 31, 191, 210, 177, 219, 234, 21, 100, 182, 115, 212, + 154, 111, 130, 59, 237, 32, 142, 202, 110, 96, 166, 120, 188, 1, + ], + [ + 247, 244, 137, 120, 38, 62, 94, 38, 17, 38, 102, 240, 225, 129, 15, 214, 213, 142, 79, + 176, 156, 118, 85, 80, 167, 47, 122, 152, 206, 19, 67, 40, + ], + [ + 27, 159, 102, 201, 17, 4, 75, 28, 159, 5, 194, 6, 63, 104, 157, 219, 53, 38, 84, 216, + 73, 181, 11, 118, 29, 177, 147, 135, 150, 5, 58, 10, + ], + [ + 97, 168, 102, 245, 40, 187, 155, 99, 147, 65, 114, 119, 191, 225, 196, 34, 117, 134, + 116, 162, 73, 69, 158, 103, 144, 16, 22, 216, 146, 38, 10, 41, + ], + [ + 149, 231, 10, 10, 17, 16, 88, 231, 24, 215, 115, 237, 123, 68, 9, 209, 24, 141, 150, + 207, 109, 56, 107, 192, 252, 112, 156, 0, 65, 234, 86, 10, + ], + [ + 201, 24, 6, 113, 122, 123, 58, 3, 233, 141, 78, 228, 137, 112, 71, 121, 200, 171, 158, + 233, 87, 171, 121, 118, 205, 98, 38, 24, 176, 153, 170, 25, + ], + [ + 6, 114, 137, 241, 204, 203, 173, 160, 14, 124, 220, 164, 166, 224, 0, 253, 255, 68, 40, + 182, 248, 135, 226, 25, 213, 247, 45, 116, 94, 147, 107, 3, + ], + [ + 73, 103, 138, 222, 168, 203, 85, 216, 242, 63, 127, 158, 153, 60, 168, 180, 234, 71, + 27, 10, 38, 161, 207, 26, 81, 150, 195, 37, 91, 228, 57, 46, + ], + ], + [ + [ + 188, 220, 107, 162, 250, 116, 137, 134, 75, 73, 102, 28, 11, 158, 166, 162, 77, 99, + 159, 21, 166, 195, 208, 99, 28, 0, 51, 64, 126, 222, 203, 28, + ], + [ + 115, 93, 10, 209, 3, 81, 82, 191, 158, 74, 26, 242, 145, 24, 85, 106, 28, 36, 54, 17, + 216, 109, 58, 102, 221, 11, 10, 157, 226, 90, 53, 3, + ], + [ + 197, 172, 174, 245, 150, 142, 92, 221, 45, 118, 174, 8, 83, 195, 45, 83, 221, 212, 122, + 239, 218, 103, 89, 56, 184, 102, 73, 70, 1, 40, 246, 54, + ], + [ + 131, 77, 239, 236, 59, 58, 35, 163, 25, 57, 251, 93, 224, 202, 225, 84, 189, 195, 1, + 234, 156, 138, 3, 2, 102, 170, 173, 235, 97, 41, 224, 0, + ], + [ + 251, 165, 141, 221, 2, 154, 174, 224, 120, 187, 163, 188, 37, 146, 49, 193, 150, 241, + 183, 33, 12, 228, 96, 92, 105, 198, 238, 59, 247, 172, 247, 54, + ], + [ + 31, 84, 10, 130, 68, 107, 203, 153, 201, 34, 69, 151, 1, 180, 37, 198, 113, 64, 82, + 116, 116, 142, 251, 62, 22, 122, 138, 130, 200, 159, 145, 2, + ], + [ + 229, 126, 102, 192, 242, 5, 109, 247, 248, 70, 34, 78, 35, 23, 81, 67, 34, 226, 133, + 119, 200, 242, 142, 111, 223, 102, 159, 61, 162, 226, 222, 11, + ], + [ + 171, 0, 253, 102, 188, 223, 208, 250, 186, 183, 127, 172, 10, 41, 201, 173, 242, 156, + 106, 219, 236, 139, 76, 115, 200, 123, 176, 228, 181, 248, 121, 38, + ], + ], + [ + [ + 187, 71, 125, 130, 250, 45, 125, 44, 56, 31, 103, 55, 71, 87, 166, 228, 184, 12, 252, + 79, 26, 221, 65, 188, 62, 254, 222, 87, 189, 71, 43, 0, + ], + [ + 248, 127, 55, 175, 11, 237, 134, 201, 211, 212, 93, 115, 63, 118, 15, 121, 71, 55, 176, + 74, 3, 75, 20, 100, 177, 194, 39, 92, 67, 109, 243, 38, + ], + [ + 147, 188, 248, 11, 127, 3, 176, 153, 109, 5, 65, 101, 2, 46, 70, 203, 246, 245, 254, + 67, 193, 214, 156, 21, 116, 165, 60, 79, 219, 45, 180, 47, + ], + [ + 78, 126, 47, 15, 17, 83, 240, 144, 40, 174, 95, 250, 144, 43, 132, 67, 241, 189, 140, + 244, 41, 221, 164, 186, 104, 156, 223, 233, 160, 99, 190, 39, + ], + [ + 29, 119, 16, 42, 190, 69, 200, 191, 3, 160, 164, 28, 189, 135, 85, 63, 59, 121, 213, + 143, 9, 96, 150, 14, 21, 93, 132, 57, 4, 165, 174, 12, + ], + [ + 54, 200, 34, 46, 89, 210, 152, 121, 245, 147, 150, 48, 193, 246, 108, 154, 243, 12, 10, + 10, 97, 83, 225, 116, 187, 177, 176, 80, 248, 185, 5, 38, + ], + [ + 245, 84, 103, 49, 77, 27, 84, 143, 30, 40, 54, 249, 178, 71, 191, 135, 199, 72, 204, + 162, 75, 110, 203, 246, 193, 61, 70, 158, 74, 154, 13, 45, + ], + [ + 123, 98, 28, 217, 129, 160, 71, 205, 19, 41, 168, 124, 76, 145, 108, 71, 57, 60, 26, + 154, 163, 64, 250, 13, 52, 179, 197, 193, 54, 184, 29, 32, + ], + ], + [ + [ + 103, 140, 102, 88, 162, 193, 224, 59, 243, 31, 145, 100, 116, 71, 36, 129, 94, 248, 33, + 0, 102, 46, 146, 206, 22, 255, 216, 58, 61, 118, 226, 47, + ], + [ + 21, 127, 228, 231, 155, 190, 28, 145, 48, 160, 35, 104, 47, 120, 243, 107, 145, 118, + 199, 126, 138, 164, 246, 143, 153, 59, 153, 209, 81, 118, 167, 9, + ], + [ + 4, 84, 44, 30, 90, 253, 226, 166, 218, 12, 39, 214, 231, 241, 223, 87, 87, 82, 93, 220, + 65, 132, 166, 75, 221, 33, 236, 113, 198, 43, 210, 39, + ], + [ + 243, 54, 41, 143, 244, 171, 75, 158, 218, 230, 55, 35, 236, 18, 40, 55, 157, 139, 180, + 29, 58, 159, 88, 208, 214, 87, 168, 227, 93, 211, 194, 17, + ], + [ + 97, 131, 219, 190, 19, 178, 244, 173, 141, 143, 113, 3, 27, 63, 35, 185, 170, 43, 75, + 64, 75, 38, 5, 13, 123, 39, 147, 243, 141, 122, 217, 39, + ], + [ + 3, 24, 126, 200, 122, 92, 125, 221, 95, 205, 139, 145, 231, 77, 223, 96, 84, 39, 33, + 66, 139, 41, 82, 182, 22, 102, 95, 173, 66, 125, 77, 21, + ], + [ + 27, 50, 52, 183, 190, 198, 236, 248, 71, 251, 120, 132, 192, 227, 113, 36, 155, 81, + 225, 48, 72, 17, 246, 99, 208, 242, 236, 93, 2, 19, 53, 31, + ], + [ + 99, 18, 31, 165, 229, 52, 216, 52, 162, 62, 66, 1, 190, 22, 69, 133, 11, 126, 106, 165, + 131, 180, 218, 253, 238, 124, 3, 16, 42, 196, 148, 57, + ], + ], + [ + [ + 0, 209, 105, 72, 69, 130, 81, 154, 136, 174, 169, 182, 42, 150, 112, 115, 234, 136, 47, + 170, 158, 213, 211, 65, 178, 62, 18, 172, 135, 59, 253, 19, + ], + [ + 145, 192, 219, 168, 214, 190, 54, 248, 68, 248, 196, 148, 4, 254, 61, 193, 67, 218, + 131, 110, 235, 60, 159, 101, 200, 218, 208, 195, 30, 249, 163, 32, + ], + [ + 21, 246, 3, 74, 137, 246, 202, 207, 71, 59, 198, 73, 117, 224, 124, 57, 2, 82, 110, 6, + 190, 80, 143, 143, 113, 62, 127, 122, 164, 202, 6, 54, + ], + [ + 252, 245, 11, 63, 63, 70, 60, 82, 15, 154, 188, 35, 211, 222, 252, 180, 109, 109, 98, + 69, 197, 240, 137, 46, 189, 8, 167, 87, 15, 179, 18, 12, + ], + [ + 125, 206, 204, 128, 43, 62, 39, 36, 246, 164, 44, 6, 250, 83, 14, 207, 53, 201, 166, + 231, 175, 110, 140, 200, 48, 239, 20, 171, 46, 80, 115, 54, + ], + [ + 167, 7, 74, 225, 61, 229, 21, 154, 196, 11, 247, 27, 158, 112, 217, 238, 57, 53, 63, + 251, 162, 91, 168, 86, 37, 203, 207, 119, 68, 135, 205, 9, + ], + [ + 84, 187, 71, 200, 46, 254, 136, 13, 25, 137, 121, 128, 232, 221, 40, 0, 175, 232, 153, + 227, 181, 162, 29, 67, 225, 234, 249, 102, 82, 171, 226, 1, + ], + [ + 24, 185, 170, 6, 35, 57, 108, 85, 245, 134, 216, 239, 33, 12, 223, 38, 227, 73, 145, + 100, 25, 14, 244, 177, 84, 38, 101, 67, 21, 96, 249, 61, + ], + ], + [ + [ + 57, 9, 82, 174, 160, 195, 27, 106, 241, 225, 207, 16, 11, 131, 29, 63, 187, 187, 5, 76, + 34, 39, 136, 124, 56, 25, 58, 99, 70, 116, 170, 19, + ], + [ + 143, 6, 32, 114, 74, 44, 29, 53, 226, 34, 62, 232, 111, 63, 201, 203, 46, 115, 209, + 118, 31, 27, 1, 120, 254, 70, 252, 80, 5, 111, 123, 55, + ], + [ + 62, 18, 214, 41, 0, 12, 4, 12, 145, 201, 12, 6, 179, 4, 20, 84, 36, 155, 8, 99, 181, + 18, 150, 144, 203, 228, 172, 135, 166, 152, 214, 8, + ], + [ + 49, 93, 249, 139, 121, 113, 205, 158, 145, 118, 40, 96, 206, 154, 71, 190, 146, 65, + 233, 104, 83, 91, 25, 118, 176, 14, 149, 115, 137, 27, 223, 41, + ], + [ + 116, 160, 29, 244, 254, 193, 228, 122, 194, 168, 126, 1, 222, 247, 90, 191, 253, 101, + 123, 197, 178, 127, 30, 113, 38, 73, 48, 240, 82, 52, 161, 12, + ], + [ + 156, 145, 203, 40, 113, 83, 199, 161, 230, 196, 203, 227, 217, 212, 254, 139, 37, 215, + 39, 230, 190, 141, 119, 120, 87, 23, 61, 21, 3, 209, 179, 47, + ], + [ + 179, 114, 238, 159, 43, 22, 64, 61, 207, 56, 101, 90, 62, 245, 27, 21, 165, 0, 205, 34, + 104, 32, 170, 75, 215, 255, 83, 74, 123, 73, 159, 19, + ], + [ + 14, 208, 162, 223, 209, 5, 175, 15, 1, 78, 222, 82, 21, 113, 25, 129, 103, 64, 139, 21, + 226, 245, 199, 114, 252, 69, 133, 254, 128, 63, 61, 13, + ], + ], + [ + [ + 255, 187, 20, 3, 51, 61, 230, 80, 83, 233, 71, 190, 94, 131, 225, 143, 139, 246, 196, + 161, 165, 85, 92, 167, 71, 198, 83, 10, 164, 120, 89, 26, + ], + [ + 250, 108, 167, 151, 249, 92, 38, 36, 21, 96, 210, 31, 41, 91, 113, 183, 104, 192, 3, + 45, 165, 253, 37, 75, 239, 245, 28, 148, 5, 255, 134, 60, + ], + [ + 59, 154, 220, 255, 37, 98, 169, 60, 50, 196, 202, 240, 225, 57, 165, 129, 255, 66, 169, + 162, 7, 30, 198, 27, 160, 208, 193, 106, 29, 119, 104, 48, + ], + [ + 137, 180, 21, 151, 27, 173, 213, 11, 238, 163, 104, 192, 171, 59, 79, 249, 123, 55, + 183, 8, 94, 117, 32, 48, 41, 141, 231, 207, 61, 135, 104, 2, + ], + [ + 242, 254, 15, 0, 58, 49, 204, 28, 27, 56, 2, 67, 248, 104, 160, 32, 214, 242, 10, 206, + 233, 61, 23, 103, 180, 53, 179, 198, 56, 254, 65, 6, + ], + [ + 136, 214, 253, 248, 156, 140, 42, 172, 221, 187, 160, 233, 86, 213, 239, 5, 110, 252, + 70, 18, 193, 29, 156, 156, 136, 70, 167, 59, 98, 223, 7, 30, + ], + [ + 84, 25, 227, 152, 61, 51, 53, 59, 135, 229, 159, 248, 6, 39, 151, 139, 121, 149, 226, + 142, 126, 136, 248, 196, 93, 176, 131, 254, 221, 204, 179, 36, + ], + [ + 198, 74, 99, 58, 59, 34, 82, 94, 95, 64, 17, 241, 173, 114, 211, 57, 124, 181, 140, + 102, 105, 79, 13, 1, 60, 121, 143, 88, 192, 253, 159, 47, + ], + ], + [ + [ + 90, 115, 165, 218, 163, 197, 210, 143, 213, 125, 1, 77, 74, 165, 200, 244, 80, 39, 20, + 247, 86, 120, 109, 109, 93, 7, 209, 199, 109, 12, 144, 46, + ], + [ + 231, 44, 48, 128, 109, 202, 114, 192, 218, 67, 233, 141, 64, 251, 104, 41, 58, 212, 60, + 65, 93, 58, 34, 149, 128, 90, 30, 197, 191, 244, 8, 37, + ], + [ + 56, 47, 18, 80, 195, 143, 175, 35, 183, 225, 201, 236, 138, 29, 26, 229, 194, 202, 13, + 43, 71, 188, 3, 204, 12, 15, 218, 207, 15, 83, 219, 39, + ], + [ + 50, 71, 182, 171, 33, 129, 211, 168, 40, 85, 193, 218, 165, 54, 220, 203, 164, 124, 8, + 37, 19, 210, 8, 253, 120, 158, 239, 239, 28, 195, 253, 37, + ], + [ + 245, 191, 155, 103, 118, 221, 209, 204, 89, 48, 249, 160, 180, 1, 114, 3, 254, 220, 94, + 244, 221, 122, 224, 55, 184, 106, 99, 11, 236, 89, 211, 38, + ], + [ + 182, 208, 168, 152, 15, 192, 45, 31, 93, 181, 13, 203, 128, 82, 126, 145, 129, 220, 19, + 252, 188, 247, 49, 216, 218, 198, 178, 70, 180, 209, 175, 22, + ], + [ + 72, 71, 200, 22, 21, 120, 50, 111, 112, 195, 141, 79, 49, 52, 98, 8, 37, 130, 142, 13, + 78, 197, 15, 92, 203, 50, 108, 82, 109, 254, 158, 12, + ], + [ + 71, 44, 114, 76, 152, 26, 79, 25, 44, 244, 191, 178, 150, 102, 34, 230, 54, 251, 209, + 155, 90, 28, 81, 49, 127, 246, 116, 238, 106, 105, 196, 29, + ], + ], + [ + [ + 208, 87, 78, 186, 184, 128, 38, 190, 131, 156, 221, 119, 87, 12, 144, 4, 240, 77, 118, + 209, 74, 131, 37, 155, 247, 155, 206, 167, 80, 71, 127, 18, + ], + [ + 190, 54, 229, 228, 15, 167, 185, 240, 161, 238, 216, 88, 210, 31, 242, 20, 81, 147, 48, + 54, 38, 226, 251, 64, 69, 196, 67, 166, 242, 34, 118, 39, + ], + [ + 58, 171, 187, 174, 13, 247, 253, 15, 102, 171, 48, 63, 136, 157, 55, 28, 117, 130, 104, + 23, 145, 203, 155, 105, 121, 249, 115, 106, 88, 114, 86, 11, + ], + [ + 105, 30, 100, 75, 20, 206, 29, 147, 150, 37, 48, 216, 33, 147, 61, 193, 82, 230, 205, + 122, 142, 65, 148, 102, 47, 185, 182, 147, 185, 31, 29, 54, + ], + [ + 158, 245, 169, 236, 26, 185, 17, 174, 156, 69, 81, 196, 60, 109, 99, 91, 19, 208, 93, + 58, 9, 109, 228, 186, 109, 127, 171, 156, 229, 215, 195, 59, + ], + [ + 23, 42, 4, 183, 91, 177, 2, 172, 168, 182, 158, 185, 157, 118, 199, 184, 237, 203, 60, + 170, 35, 121, 162, 7, 130, 171, 121, 207, 32, 2, 227, 62, + ], + [ + 0, 139, 174, 217, 13, 116, 28, 230, 238, 117, 190, 91, 86, 105, 38, 231, 147, 100, 233, + 187, 70, 128, 111, 82, 184, 113, 154, 136, 59, 27, 21, 10, + ], + [ + 4, 208, 53, 136, 59, 196, 102, 52, 69, 1, 231, 8, 254, 19, 67, 134, 251, 73, 157, 156, + 30, 94, 170, 147, 185, 72, 11, 143, 226, 255, 0, 60, + ], + ], + [ + [ + 214, 131, 68, 196, 131, 169, 22, 250, 29, 101, 142, 26, 106, 96, 18, 190, 18, 15, 19, + 59, 203, 203, 119, 251, 61, 221, 198, 116, 24, 178, 61, 42, + ], + [ + 101, 161, 133, 103, 0, 112, 204, 255, 98, 240, 20, 161, 242, 253, 216, 204, 83, 96, 93, + 228, 77, 76, 63, 70, 116, 156, 69, 253, 121, 189, 2, 36, + ], + [ + 156, 83, 226, 206, 4, 35, 12, 137, 209, 181, 109, 81, 194, 119, 188, 216, 30, 233, 135, + 220, 213, 40, 74, 152, 49, 14, 0, 3, 223, 41, 238, 54, + ], + [ + 47, 25, 110, 4, 111, 57, 200, 91, 168, 73, 47, 175, 189, 60, 49, 243, 128, 11, 63, 17, + 151, 123, 80, 140, 139, 202, 93, 104, 190, 32, 67, 54, + ], + [ + 90, 100, 132, 107, 167, 162, 164, 62, 239, 68, 20, 223, 157, 1, 90, 95, 248, 82, 65, + 61, 241, 63, 238, 10, 2, 160, 230, 104, 101, 197, 60, 52, + ], + [ + 41, 144, 80, 156, 134, 224, 6, 48, 188, 57, 30, 205, 84, 135, 190, 75, 213, 94, 16, 72, + 11, 96, 41, 117, 75, 60, 62, 133, 29, 133, 105, 15, + ], + [ + 219, 66, 247, 117, 3, 137, 38, 43, 131, 177, 137, 150, 9, 65, 160, 206, 235, 121, 121, + 245, 205, 233, 229, 78, 72, 200, 171, 149, 240, 64, 184, 5, + ], + [ + 22, 179, 118, 116, 100, 222, 159, 96, 236, 247, 38, 23, 224, 103, 6, 5, 42, 95, 161, 4, + 128, 2, 240, 122, 117, 247, 127, 207, 76, 205, 137, 31, + ], + ], + [ + [ + 255, 68, 73, 184, 204, 219, 231, 9, 237, 101, 142, 55, 146, 252, 138, 14, 186, 62, 32, + 108, 79, 130, 251, 188, 101, 134, 179, 162, 172, 160, 149, 22, + ], + [ + 93, 226, 69, 177, 229, 17, 78, 185, 6, 206, 195, 246, 145, 189, 141, 7, 197, 148, 166, + 43, 203, 235, 170, 119, 102, 76, 108, 98, 216, 237, 121, 34, + ], + [ + 211, 167, 46, 90, 228, 111, 217, 129, 255, 3, 113, 207, 200, 221, 28, 48, 33, 62, 31, + 245, 116, 175, 130, 128, 180, 252, 132, 178, 56, 58, 16, 2, + ], + [ + 159, 176, 149, 39, 220, 58, 146, 80, 175, 91, 125, 15, 166, 114, 133, 117, 52, 243, + 219, 221, 223, 114, 140, 236, 106, 39, 65, 168, 43, 244, 140, 57, + ], + [ + 144, 68, 49, 189, 208, 94, 145, 108, 143, 62, 16, 188, 15, 110, 23, 239, 71, 48, 32, + 238, 96, 19, 43, 91, 231, 90, 77, 162, 159, 162, 71, 15, + ], + [ + 103, 8, 114, 153, 156, 97, 188, 167, 128, 217, 58, 42, 208, 82, 234, 142, 53, 71, 10, + 38, 177, 2, 13, 35, 8, 49, 196, 134, 215, 255, 42, 54, + ], + [ + 229, 29, 149, 199, 252, 232, 6, 148, 31, 243, 79, 192, 221, 191, 136, 186, 249, 198, + 35, 155, 198, 198, 19, 183, 159, 123, 65, 127, 169, 3, 156, 59, + ], + [ + 2, 244, 213, 144, 80, 83, 125, 211, 252, 98, 209, 105, 104, 213, 143, 183, 164, 199, + 103, 53, 110, 48, 230, 35, 34, 129, 221, 255, 225, 224, 42, 42, + ], + ], + [ + [ + 145, 41, 77, 21, 230, 237, 146, 98, 160, 218, 242, 227, 198, 83, 11, 39, 148, 69, 31, + 185, 143, 52, 71, 75, 157, 26, 157, 188, 179, 27, 114, 24, + ], + [ + 160, 247, 33, 120, 242, 78, 125, 237, 149, 68, 194, 190, 248, 145, 93, 23, 171, 167, + 181, 242, 226, 41, 104, 67, 0, 116, 81, 246, 87, 82, 103, 51, + ], + [ + 84, 35, 131, 165, 134, 206, 147, 191, 7, 3, 253, 142, 49, 128, 111, 47, 53, 169, 88, + 17, 31, 193, 20, 98, 19, 173, 111, 175, 134, 186, 166, 27, + ], + [ + 49, 150, 139, 110, 180, 138, 202, 107, 41, 238, 123, 185, 17, 161, 67, 30, 2, 2, 39, + 91, 7, 35, 69, 121, 34, 12, 247, 78, 138, 39, 59, 8, + ], + [ + 64, 14, 249, 58, 50, 65, 122, 135, 174, 11, 102, 220, 221, 64, 29, 66, 24, 169, 57, + 114, 140, 176, 7, 149, 78, 15, 211, 255, 101, 244, 151, 46, + ], + [ + 127, 185, 215, 42, 158, 164, 234, 37, 140, 239, 228, 75, 189, 8, 197, 4, 206, 24, 136, + 191, 73, 206, 141, 195, 85, 123, 141, 189, 82, 250, 65, 21, + ], + [ + 49, 239, 163, 97, 219, 143, 242, 84, 53, 166, 149, 155, 243, 11, 207, 69, 250, 25, 159, + 142, 240, 8, 72, 229, 91, 179, 218, 39, 128, 133, 201, 6, + ], + [ + 96, 144, 236, 91, 71, 246, 217, 36, 27, 102, 209, 14, 75, 249, 185, 211, 2, 97, 216, + 204, 141, 6, 234, 251, 183, 215, 152, 151, 125, 210, 121, 14, + ], + ], +]; + +pub fn generator() -> pallas::Affine { + pallas::Affine::from_xy( + pallas::Base::from_repr(GENERATOR.0).unwrap(), + pallas::Base::from_repr(GENERATOR.1).unwrap(), + ) + .unwrap() +} + +#[cfg(test)] +mod tests { + use super::super::{NUM_WINDOWS_SHORT, VALUE_COMMITMENT_PERSONALIZATION}; + use super::*; + use group::Curve; + use halo2_gadgets::ecc::chip::constants::{test_lagrange_coeffs, test_zs_and_us}; + use pasta_curves::{ + arithmetic::{CurveAffine, CurveExt}, + pallas, + }; + + #[test] + fn generator() { + let hasher = pallas::Point::hash_to_curve(VALUE_COMMITMENT_PERSONALIZATION); + let point = hasher(b"v"); + let coords = point.to_affine().coordinates().unwrap(); + + assert_eq!(*coords.x(), pallas::Base::from_repr(GENERATOR.0).unwrap()); + assert_eq!(*coords.y(), pallas::Base::from_repr(GENERATOR.1).unwrap()); + } + + #[test] + fn lagrange_coeffs() { + let base = super::generator(); + test_lagrange_coeffs(base, NUM_WINDOWS_SHORT); + } + + #[test] + fn z() { + let base = super::generator(); + test_zs_and_us(base, &Z_SHORT, &U_SHORT, NUM_WINDOWS_SHORT); + } +} diff --git a/zk-crates/zk-headstash/src/constants/load.rs b/zk-crates/zk-headstash/src/constants/load.rs new file mode 100644 index 0000000..e4edb35 --- /dev/null +++ b/zk-crates/zk-headstash/src/constants/load.rs @@ -0,0 +1,255 @@ +use crate::constants::{self, compute_lagrange_coeffs, H, NUM_WINDOWS, NUM_WINDOWS_SHORT}; +use group::ff::PrimeField; +use pasta_curves::pallas; + +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +pub enum OrchardFixedBasesFull { + CommitIvkR, + NoteCommitR, + ValueCommitR, + SpendAuthG, +} + +impl OrchardFixedBasesFull { + pub fn generator(&self) -> pallas::Affine { + match self { + OrchardFixedBasesFull::CommitIvkR => super::commit_ivk_r::generator(), + OrchardFixedBasesFull::NoteCommitR => super::note_commit_r::generator(), + OrchardFixedBasesFull::ValueCommitR => super::value_commit_r::generator(), + OrchardFixedBasesFull::SpendAuthG => super::spend_auth_g::generator(), + } + } + + pub fn u(&self) -> U { + match self { + OrchardFixedBasesFull::CommitIvkR => super::commit_ivk_r::U.into(), + OrchardFixedBasesFull::NoteCommitR => super::note_commit_r::U.into(), + OrchardFixedBasesFull::ValueCommitR => super::value_commit_r::U.into(), + OrchardFixedBasesFull::SpendAuthG => super::spend_auth_g::U.into(), + } + } +} + +/// A fixed base to be used in scalar multiplication with a full-width scalar. +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct OrchardFixedBase { + pub generator: pallas::Affine, + pub lagrange_coeffs: LagrangeCoeffs, + pub z: Z, + pub u: U, +} + +impl From for OrchardFixedBase { + fn from(base: OrchardFixedBasesFull) -> Self { + let (generator, z, u) = match base { + OrchardFixedBasesFull::CommitIvkR => ( + super::commit_ivk_r::generator(), + super::commit_ivk_r::Z.into(), + super::commit_ivk_r::U.into(), + ), + OrchardFixedBasesFull::NoteCommitR => ( + super::note_commit_r::generator(), + super::note_commit_r::Z.into(), + super::note_commit_r::U.into(), + ), + OrchardFixedBasesFull::ValueCommitR => ( + super::value_commit_r::generator(), + super::value_commit_r::Z.into(), + super::value_commit_r::U.into(), + ), + OrchardFixedBasesFull::SpendAuthG => ( + super::spend_auth_g::generator(), + super::spend_auth_g::Z.into(), + super::spend_auth_g::U.into(), + ), + }; + + Self { + generator, + lagrange_coeffs: compute_lagrange_coeffs(generator, NUM_WINDOWS).into(), + z, + u, + } + } +} + +/// A fixed base to be used in scalar multiplication with a base field element. +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct ValueCommitV { + pub generator: pallas::Affine, + pub lagrange_coeffs_short: LagrangeCoeffsShort, + pub z_short: ZShort, + pub u_short: UShort, +} + +impl ValueCommitV { + pub fn get() -> Self { + let generator = super::value_commit_v::generator(); + Self { + generator, + lagrange_coeffs_short: compute_lagrange_coeffs(generator, NUM_WINDOWS_SHORT).into(), + z_short: super::value_commit_v::Z_SHORT.into(), + u_short: super::value_commit_v::U_SHORT.into(), + } + } +} + +/// A fixed base to be used in scalar multiplication with a short signed exponent. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +pub struct NullifierK; + +impl From for OrchardFixedBase { + fn from(_nullifier_k: NullifierK) -> Self { + let (generator, z, u) = ( + super::nullifier_k::generator(), + super::nullifier_k::Z.into(), + super::nullifier_k::U.into(), + ); + Self { + generator, + lagrange_coeffs: compute_lagrange_coeffs(generator, NUM_WINDOWS).into(), + z, + u, + } + } +} + +impl NullifierK { + pub fn generator(&self) -> pallas::Affine { + super::nullifier_k::generator() + } + + pub fn u(&self) -> U { + super::nullifier_k::U.into() + } +} + +#[derive(Clone, Debug, Eq, PartialEq)] +// 8 coefficients per window +pub struct WindowLagrangeCoeffs(pub Box<[pallas::Base; H]>); + +impl From<&[pallas::Base; H]> for WindowLagrangeCoeffs { + fn from(array: &[pallas::Base; H]) -> Self { + Self(Box::new(*array)) + } +} + +#[derive(Clone, Debug, Eq, PartialEq)] +// 85 windows per base (with the exception of ValueCommitV) +pub struct LagrangeCoeffs(pub Box<[WindowLagrangeCoeffs; constants::NUM_WINDOWS]>); + +impl From> for LagrangeCoeffs { + fn from(windows: Vec) -> Self { + Self(windows.into_boxed_slice().try_into().unwrap()) + } +} + +impl From> for LagrangeCoeffs { + fn from(arrays: Vec<[pallas::Base; H]>) -> Self { + let windows: Vec = arrays.iter().map(|array| array.into()).collect(); + windows.into() + } +} + +#[derive(Clone, Debug, Eq, PartialEq)] +// 22 windows for ValueCommitV +pub struct LagrangeCoeffsShort(pub Box<[WindowLagrangeCoeffs; NUM_WINDOWS_SHORT]>); + +impl From> for LagrangeCoeffsShort { + fn from(windows: Vec) -> Self { + Self(windows.into_boxed_slice().try_into().unwrap()) + } +} + +impl From> for LagrangeCoeffsShort { + fn from(arrays: Vec<[pallas::Base; H]>) -> Self { + let windows: Vec = arrays.iter().map(|array| array.into()).collect(); + windows.into() + } +} + +#[derive(Clone, Debug, Eq, PartialEq)] +// 85 Z's per base (with the exception of ValueCommitV) +pub struct Z(pub Box<[pallas::Base; NUM_WINDOWS]>); + +impl From<[u64; NUM_WINDOWS]> for Z { + fn from(zs: [u64; NUM_WINDOWS]) -> Self { + Self( + zs.iter() + .map(|z| pallas::Base::from(*z)) + .collect::>() + .into_boxed_slice() + .try_into() + .unwrap(), + ) + } +} + +#[derive(Clone, Debug, Eq, PartialEq)] +// 22 Z's for ValueCommitV +pub struct ZShort(pub Box<[pallas::Base; NUM_WINDOWS_SHORT]>); + +impl From<[u64; NUM_WINDOWS_SHORT]> for ZShort { + fn from(zs: [u64; NUM_WINDOWS_SHORT]) -> Self { + Self( + zs.iter() + .map(|z| pallas::Base::from(*z)) + .collect::>() + .into_boxed_slice() + .try_into() + .unwrap(), + ) + } +} + +#[derive(Clone, Debug, Eq, PartialEq)] +// 8 u's per window +pub struct WindowUs(pub Box<[pallas::Base; H]>); + +impl From<&[[u8; 32]; H]> for WindowUs { + fn from(window_us: &[[u8; 32]; H]) -> Self { + Self( + window_us + .iter() + .map(|u| pallas::Base::from_repr(*u).unwrap()) + .collect::>() + .into_boxed_slice() + .try_into() + .unwrap(), + ) + } +} + +#[derive(Clone, Debug, Eq, PartialEq)] +// 85 windows per base (with the exception of ValueCommitV) +pub struct U(pub Box<[WindowUs; NUM_WINDOWS]>); + +impl From> for U { + fn from(windows: Vec) -> Self { + Self(windows.into_boxed_slice().try_into().unwrap()) + } +} + +impl From<[[[u8; 32]; H]; NUM_WINDOWS]> for U { + fn from(window_us: [[[u8; 32]; H]; NUM_WINDOWS]) -> Self { + let windows: Vec = window_us.iter().map(|us| us.into()).collect(); + windows.into() + } +} + +#[derive(Clone, Debug, Eq, PartialEq)] +// 22 windows for ValueCommitV +pub struct UShort(pub Box<[WindowUs; NUM_WINDOWS_SHORT]>); + +impl From> for UShort { + fn from(windows: Vec) -> Self { + Self(windows.into_boxed_slice().try_into().unwrap()) + } +} + +impl From<[[[u8; 32]; H]; NUM_WINDOWS_SHORT]> for UShort { + fn from(window_us: [[[u8; 32]; H]; NUM_WINDOWS_SHORT]) -> Self { + let windows: Vec = window_us.iter().map(|us| us.into()).collect(); + windows.into() + } +} diff --git a/zk-crates/zk-headstash/src/constants/sinsemilla.rs b/zk-crates/zk-headstash/src/constants/sinsemilla.rs new file mode 100644 index 0000000..902292a --- /dev/null +++ b/zk-crates/zk-headstash/src/constants/sinsemilla.rs @@ -0,0 +1,247 @@ +//! Sinsemilla generators +use crate::spec::i2lebsp; + +#[cfg(feature = "circuit")] +use { + super::{OrchardFixedBases, OrchardFixedBasesFull}, + group::ff::PrimeField, + halo2_gadgets::sinsemilla::{CommitDomains, HashDomains}, + pasta_curves::{arithmetic::CurveAffine, pallas}, +}; + +/// Number of bits of each message piece in $\mathsf{SinsemillaHashToPoint}$ +pub const K: usize = 10; + +/// $\frac{1}{2^K}$ +pub const INV_TWO_POW_K: [u8; 32] = [ + 1, 0, 192, 196, 160, 229, 70, 82, 221, 165, 74, 202, 85, 7, 62, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 240, 63, +]; + +/// The largest integer such that $2^c \leq (r_P - 1) / 2$, where $r_P$ is the order +/// of Pallas. +pub const C: usize = 253; + +/// $\ell^\mathsf{Orchard}_\mathsf{Merkle}$ +pub(crate) const L_ORCHARD_MERKLE: usize = 255; + +pub const LEAF_PERSONALIZATION: &str = "t.network:Headstash-Sinsemilla-leaf"; + +/// SWU hash-to-curve personalization for the Merkle CRH generator +pub const MERKLE_CRH_PERSONALIZATION: &str = "z.cash:Orchard-MerkleCRH"; + +/// Generator used in SinsemillaHashToPoint for note commitment +pub const Q_NOTE_COMMITMENT_M_GENERATOR: ([u8; 32], [u8; 32]) = ( + [ + 93, 116, 168, 64, 9, 186, 14, 50, 42, 221, 70, 253, 90, 15, 150, 197, 93, 237, 176, 121, + 180, 242, 159, 247, 13, 205, 251, 86, 160, 7, 128, 23, + ], + [ + 99, 172, 73, 115, 90, 10, 39, 135, 158, 94, 219, 129, 136, 18, 34, 136, 44, 201, 244, 110, + 217, 194, 190, 78, 131, 112, 198, 138, 147, 88, 160, 50, + ], +); + +/// Generator used in SinsemillaHashToPoint for IVK commitment +pub const Q_COMMIT_IVK_M_GENERATOR: ([u8; 32], [u8; 32]) = ( + [ + 242, 130, 15, 121, 146, 47, 203, 107, 50, 162, 40, 81, 36, 204, 27, 66, 250, 65, 162, 90, + 184, 129, 204, 125, 17, 200, 169, 74, 241, 12, 188, 5, + ], + [ + 190, 222, 173, 207, 206, 229, 90, 190, 241, 165, 109, 201, 29, 53, 196, 70, 75, 5, 222, 32, + 70, 7, 89, 239, 230, 190, 26, 212, 246, 76, 1, 27, + ], +); + +/// Generator used in SinsemillaHashToPoint for Merkle collision-resistant hash +pub const Q_MERKLE_CRH: ([u8; 32], [u8; 32]) = ( + [ + 160, 198, 41, 127, 249, 199, 185, 248, 112, 16, 141, 192, 85, 185, 190, 201, 153, 14, 137, + 239, 90, 54, 15, 160, 185, 24, 168, 99, 150, 210, 22, 22, + ], + [ + 98, 234, 242, 37, 206, 174, 233, 134, 150, 21, 116, 5, 234, 150, 28, 226, 121, 89, 163, 79, + 62, 242, 196, 45, 153, 32, 175, 227, 163, 66, 134, 53, + ], +); + +pub(crate) fn lebs2ip_k(bits: &[bool]) -> u32 { + assert!(bits.len() == K); + bits.iter() + .enumerate() + .fold(0u32, |acc, (i, b)| acc + if *b { 1 << i } else { 0 }) +} + +/// The sequence of K bits in little-endian order representing an integer +/// up to `2^K` - 1. +pub(crate) fn i2lebsp_k(int: usize) -> [bool; K] { + assert!(int < (1 << K)); + i2lebsp(int as u64) +} + +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum OrchardHashDomains { + NoteCommit, + CommitIvk, + MerkleCrh, + Leaf, +} + +#[cfg(feature = "circuit")] +#[allow(non_snake_case)] +impl HashDomains for OrchardHashDomains { + fn Q(&self) -> pallas::Affine { + use pasta_curves::arithmetic::CurveExt; + + match self { + OrchardHashDomains::CommitIvk => pallas::Affine::from_xy( + pallas::Base::from_repr(Q_COMMIT_IVK_M_GENERATOR.0).unwrap(), + pallas::Base::from_repr(Q_COMMIT_IVK_M_GENERATOR.1).unwrap(), + ) + .unwrap(), + OrchardHashDomains::NoteCommit => pallas::Affine::from_xy( + pallas::Base::from_repr(Q_NOTE_COMMITMENT_M_GENERATOR.0).unwrap(), + pallas::Base::from_repr(Q_NOTE_COMMITMENT_M_GENERATOR.1).unwrap(), + ) + .unwrap(), + OrchardHashDomains::MerkleCrh => pallas::Affine::from_xy( + pallas::Base::from_repr(Q_MERKLE_CRH.0).unwrap(), + pallas::Base::from_repr(Q_MERKLE_CRH.1).unwrap(), + ) + .unwrap(), + OrchardHashDomains::Leaf => { + pallas::Point::hash_to_curve(LEAF_PERSONALIZATION)(&[]).into() + } + } + } +} + +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum OrchardCommitDomains { + NoteCommit, + CommitIvk, +} + +#[cfg(feature = "circuit")] +impl CommitDomains for OrchardCommitDomains { + fn r(&self) -> OrchardFixedBasesFull { + match self { + Self::NoteCommit => OrchardFixedBasesFull::NoteCommitR, + Self::CommitIvk => OrchardFixedBasesFull::CommitIvkR, + } + } + + fn hash_domain(&self) -> OrchardHashDomains { + match self { + Self::NoteCommit => OrchardHashDomains::NoteCommit, + Self::CommitIvk => OrchardHashDomains::CommitIvk, + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::constants::{ + fixed_bases::{COMMIT_IVK_PERSONALIZATION, NOTE_COMMITMENT_PERSONALIZATION}, + sinsemilla::MERKLE_CRH_PERSONALIZATION, + }; + use group::{ff::PrimeField, Curve}; + use halo2_gadgets::sinsemilla::primitives::{CommitDomain, HashDomain}; + use halo2_proofs::arithmetic::CurveAffine; + use halo2_proofs::pasta::pallas; + use rand::{self, rngs::OsRng, Rng}; + + #[test] + // Nodes in the Merkle tree are Pallas base field elements. + fn l_orchard_merkle() { + assert_eq!(super::L_ORCHARD_MERKLE, pallas::Base::NUM_BITS as usize); + } + + #[test] + fn lebs2ip_k_round_trip() { + let mut rng = OsRng; + { + let int = rng.gen_range(0..(1 << K)); + assert_eq!(lebs2ip_k(&i2lebsp_k(int)) as usize, int); + } + + assert_eq!(lebs2ip_k(&i2lebsp_k(0)) as usize, 0); + assert_eq!(lebs2ip_k(&i2lebsp_k((1 << K) - 1)) as usize, (1 << K) - 1); + } + + #[test] + fn i2lebsp_k_round_trip() { + { + let bitstring = [0; K].map(|_| rand::random()); + assert_eq!(i2lebsp_k(lebs2ip_k(&bitstring) as usize), bitstring); + } + + { + let bitstring = [false; K]; + assert_eq!(i2lebsp_k(lebs2ip_k(&bitstring) as usize), bitstring); + } + + { + let bitstring = [true; K]; + assert_eq!(i2lebsp_k(lebs2ip_k(&bitstring) as usize), bitstring); + } + } + + #[test] + fn q_note_commitment_m() { + let domain = CommitDomain::new(NOTE_COMMITMENT_PERSONALIZATION); + let point = domain.Q(); + let coords = point.to_affine().coordinates().unwrap(); + + assert_eq!( + *coords.x(), + pallas::Base::from_repr(Q_NOTE_COMMITMENT_M_GENERATOR.0).unwrap() + ); + assert_eq!( + *coords.y(), + pallas::Base::from_repr(Q_NOTE_COMMITMENT_M_GENERATOR.1).unwrap() + ); + } + + #[test] + fn q_commit_ivk_m() { + let domain = CommitDomain::new(COMMIT_IVK_PERSONALIZATION); + let point = domain.Q(); + let coords = point.to_affine().coordinates().unwrap(); + + assert_eq!( + *coords.x(), + pallas::Base::from_repr(Q_COMMIT_IVK_M_GENERATOR.0).unwrap() + ); + assert_eq!( + *coords.y(), + pallas::Base::from_repr(Q_COMMIT_IVK_M_GENERATOR.1).unwrap() + ); + } + + #[test] + fn q_merkle_crh() { + let domain = HashDomain::new(MERKLE_CRH_PERSONALIZATION); + let point = domain.Q(); + let coords = point.to_affine().coordinates().unwrap(); + + assert_eq!( + *coords.x(), + pallas::Base::from_repr(Q_MERKLE_CRH.0).unwrap() + ); + assert_eq!( + *coords.y(), + pallas::Base::from_repr(Q_MERKLE_CRH.1).unwrap() + ); + } + + #[test] + fn inv_two_pow_k() { + let two_pow_k = pallas::Base::from(1u64 << K); + let inv_two_pow_k = pallas::Base::from_repr(INV_TWO_POW_K).unwrap(); + + assert_eq!(two_pow_k * inv_two_pow_k, pallas::Base::one()); + } +} diff --git a/zk-crates/zk-headstash/src/constants/util.rs b/zk-crates/zk-headstash/src/constants/util.rs new file mode 100644 index 0000000..e9876ca --- /dev/null +++ b/zk-crates/zk-headstash/src/constants/util.rs @@ -0,0 +1,18 @@ +/// Takes in an FnMut closure and returns a constant-length array with elements of +/// type `Output`. +pub fn gen_const_array( + closure: impl FnMut(usize) -> Output, +) -> [Output; LEN] { + gen_const_array_with_default(Default::default(), closure) +} + +pub(crate) fn gen_const_array_with_default( + default_value: Output, + closure: impl FnMut(usize) -> Output, +) -> [Output; LEN] { + let mut ret: [Output; LEN] = [default_value; LEN]; + for (bit, val) in ret.iter_mut().zip((0..LEN).map(closure)) { + *bit = val; + } + ret +} diff --git a/zk-crates/zk-headstash/src/deploy/db.rs b/zk-crates/zk-headstash/src/deploy/db.rs new file mode 100644 index 0000000..3282855 --- /dev/null +++ b/zk-crates/zk-headstash/src/deploy/db.rs @@ -0,0 +1,158 @@ + + +// /// Database trait for headstash wallet storage +// /// +// /// This trait abstracts the storage backend. Implementations could use: +// /// - In-memory (for testing) +// /// - MetaMask snap_manageState (encrypted storage) +// /// - IndexedDB (browser) +// /// - File system (native) +// pub trait HeadstashApiDbInstance: Send + Sync { +// // /// Store note data for a specific headstash +// // fn gen_claim(&mut self, headstash_id: &String, note_data: NoteData) -> Result<(), Error>; + +// // /// Get note data by nullifier +// // fn get_note_by_nullifier( +// // &self, +// // headstash_id: &String, +// // nullifier: &Nullifier, +// // ) -> Result, Error>; + +// /// List all unspent notes for a headstash +// // fn list_unspent_notes(&self, headstash_id: &String) -> Result, Error>; + +// /// List all spent notes for a headstash +// // fn list_spent_notes(&self, headstash_id: &String) -> Result, Error>; + +// /// Mark a note as spent +// // fn mark_note_spent( +// // &mut self, +// // headstash_id: &String, +// // nullifier: &Nullifier, +// // ) -> Result<(), Error>; + +// // /// Get all headstash IDs we have notes for +// // fn list_headstash_ids(&self) -> Result, Error>; +// } + +// impl HeadstashApiDbInstance for MemoryHeadstashDb { +// // fn gen_claim(&mut self, headstash_id: &String, note_data: NoteData) -> Result<(), Error> { +// // let notes = self +// // .storage +// // .entry(headstash_id.clone()) +// // .or_insert_with(HashMap::new); +// // notes.insert(note_data.nullifier.to_bytes(), note_data); +// // Ok(()) +// // } + +// // fn get_note_by_nullifier( +// // &self, +// // headstash_id: &String, +// // nullifier: &Nullifier, +// // ) -> Result, Error> { +// // Ok(self +// // .storage +// // .get(headstash_id) +// // .and_then(|notes| notes.get(&nullifier.to_bytes())) +// // .cloned()) +// // } + +// // fn list_unspent_notes(&self, headstash_id: &String) -> Result, Error> { +// // Ok(self +// // .storage +// // .get(headstash_id) +// // .map(|notes| notes.values().filter(|note| !note.spent).cloned().collect()) +// // .unwrap_or_default()) +// // } + +// // fn list_spent_notes(&self, headstash_id: &String) -> Result, Error> { +// // Ok(self +// // .storage +// // .get(headstash_id) +// // .map(|notes| notes.values().filter(|note| note.spent).cloned().collect()) +// // .unwrap_or_default()) +// // } + +// // fn mark_note_spent( +// // &mut self, +// // headstash_id: &String, +// // nullifier: &Nullifier, +// // ) -> Result<(), Error> { +// // if let Some(notes) = self.storage.get_mut(headstash_id) { +// // if let Some(note) = notes.get_mut(&nullifier.to_bytes()) { +// // note.spent = true; +// // } +// // } +// // Ok(()) +// // } + +// // fn list_headstash_ids(&self) -> Result, Error> { +// // Ok(self.storage.keys().cloned().collect()) +// // } +// } + + /// Store a note in the wallet database + /// + /// # Arguments + /// + /// * `headstash_id` - Contract address of the headstash + /// * `esk_hex` - Secret key in hex format (from MetaMask) + /// * `rho_hex` - Randomness value in hex + /// * `fdi` - Fixed denomination index (leaf position in tree) + /// * `recp_hex` - Recipient address in hex + /// * `value_amount` - Note value amount + /// * `value_denom` - Denomination (e.g., "uterp") + /// * `rseed_hex` - Random seed in hex + /// + /// # Examples + /// + /// ```javascript + /// await wallet.gen_claim( + /// "terp1contract123", + /// esk_hex, + /// rho_hex, + /// 0, + /// recp_hex, + /// 1000, + /// "uterp", + /// rseed_hex + /// ); + /// ``` + // pub async fn gen_claim( + // &self, + // headstash_id: String, + // esk_hex: String, + // rho_hex: String, + // fdi: u64, + // recp_hex: String, + // value_amount: u64, + // value_denom: String, + // rseed_hex: String, + // ) -> Result<(), Error> { + // let esk = EligibleSk::from_hex(&esk_hex); + // let rho_bytes = hex::decode(&rho_hex) + // .map_err(|e| Error::KeyDecoding(format!("Invalid rho hex: {}", e)))?; + // let rho = Rho::from_bytes( + // rho_bytes + // .as_slice() + // .try_into() + // .map_err(|_| Error::KeyDecoding("Invalid rho length".into()))?, + // ) + // .expect("rho from bytes"); + + // let recp_bytes = hex::decode(&recp_hex) + // .map_err(|e| Error::KeyDecoding(format!("Invalid recp hex: {}", e)))?; + + // let hv = HeadstashValue::from_raw(value_amount, &value_denom) + // .map_err(|e| Error::KeyDecoding(format!("Invalid value: {:?}", e)))?; + + // let rseed_bytes: [u8; 32] = hex::decode(&rseed_hex) + // .map_err(|e| Error::KeyDecoding(format!("Invalid rseed hex: {}", e)))? + // .as_slice() + // .try_into() + // .map_err(|_| Error::KeyDecoding("Invalid rseed length".into()))?; + + // self.inner + // .gen_claim(headstash_id, esk, rho, fdi, &recp_bytes, hv, rseed_bytes) + // .await + // } diff --git a/zk-crates/zk-headstash/src/deploy/mod.rs b/zk-crates/zk-headstash/src/deploy/mod.rs new file mode 100644 index 0000000..da32262 --- /dev/null +++ b/zk-crates/zk-headstash/src/deploy/mod.rs @@ -0,0 +1,7 @@ +//! spec: `docs/zk-headstash/suite.md` +pub mod suite; + +#[cfg(test)] +mod test_circuit_keys; + +pub use suite::HeadstashSuite; diff --git a/zk-crates/zk-headstash/src/deploy/suite.rs b/zk-crates/zk-headstash/src/deploy/suite.rs new file mode 100644 index 0000000..303b235 --- /dev/null +++ b/zk-crates/zk-headstash/src/deploy/suite.rs @@ -0,0 +1,978 @@ +//! main suite for headstash +use alloc::boxed::Box; +use rand_core::OsRng; +use rayon::prelude::*; + +use crate::address::RecpAddr; +use crate::builder::SpendInfo; +use crate::circuit::{Circuit, Instance, ProvingKey, VerifyingKey}; +use crate::constants::fixed_bases::FIXED_AMOUNTS; +use crate::constants::sinsemilla::{LEAF_PERSONALIZATION, MERKLE_CRH_PERSONALIZATION}; +use crate::keys::{EligibleSk, FullViewingKey, NullifierDerivingKey, SpendingKey}; +use crate::note::{ExtractedNoteCommitment, Note, RandomSeed, Rho}; +use crate::tree::MerklePath; +use crate::value::{HeadstashValue, NoteDenom, NoteValue, ValueCommitTrapdoor}; +use crate::{spec, Anchor, Proof}; +use halo2_proofs::plonk; + +use std::error::Error; +use std::fs::File; +use std::io::{BufWriter, Write}; +use std::path::{Path, PathBuf}; +use std::string::{String, ToString}; +use std::sync::Mutex; +use std::vec::Vec; +use std::{env, eprintln, fs, println}; + +use anybuf::Anybuf; +use base64::{engine::general_purpose, Engine as _}; +// use cosmwasm_std::CanonicalAddr; +use ff::{Field, FromUniformBytes, PrimeField, PrimeFieldBits}; +use hex::decode; +use pasta_curves::pallas::Base; +use pasta_curves::{arithmetic::CurveAffine, group::Curve, pallas, Fp}; +use pasta_curves::{vesta, EqAffine}; +use secp256k1::SecretKey; +use serde_json::{json, Value}; +use sinsemilla::HashDomain; + +const KEYS_DIR: &str = "./circuit_keys"; +const PARAMS_FILE: &str = "params.bin"; +const VK_FILE: &str = "verifying_key.bin"; +const PK_FILE: &str = "proving_key.bin"; + +/// BoxError +pub type BoxError = Box; +/// get_cli_args +pub fn get_cli_args() -> Result<(String, String), Box> { + let args: Vec = env::args().collect(); + if args.len() != 3 { + eprintln!("flag format: {}
", args[0]); + std::process::exit(1); + } + Ok((args[1].clone(), args[2].clone())) +} + +/// TerpHeadstashConfig +#[derive(Debug)] +pub struct TerpHeadstashConfig { + // smart contract params + // file location params + // storage params + // deployment params + // node params +} + +/// HeadstashSuite +#[derive(Debug, Default)] +pub struct HeadstashSuite {} +impl HeadstashBitwiseInstance for HeadstashSuite {} +impl HeadstashLaunchpadInstance for HeadstashSuite {} +impl HeadstashSinsemillaTree for HeadstashSuite {} +impl HeadstashIpfsInstance for HeadstashSuite {} +impl HeadstashSuite { + /// create new headsatsh suite + pub fn new() -> Self { + Self {} + } +} + +/// # Trait: `HeadstashInstance` +/// +/// implement expected functions for client side interactions headstashes. +// pub trait HeadstashInstance { +// type HsErr; + +// /// TODO: wire into network client for headstash market contract state queries +// fn find_new_headstashes() -> Result<(), Self::HsErr> { +// todo!() +// } + +// /// TODO: query ipfs file to retrieve headstash config +// fn list_headstash_info() -> Result<(), Self::HsErr> { +// todo!() +// } + +// /// TODO: read folder and display sum of notes and number of fdi counts +// fn list_unspent_notes() -> Vec { +// todo!() +// } + +// /// TODO: read folder and display notes spent +// fn list_spent_notes() -> Vec { +// todo!() +// } + +// /// TODO: select unspent notes used to claim and move note file over into spent, +// /// specify method of preparing and harvesting (creating proof) for a given note (either wasm-bindgen invocation,locally via cargo script, or external method invoked with a bash script) +// fn prepare_and_harvest_note() -> Result<(), Self::HsErr> { +// todo!() +// } + +// fn headstash_action() -> Result<(), Self::HsErr> { +// todo!() +// } +// } + +/// HeadstashBitwiseInstance +pub trait HeadstashBitwiseInstance { + // /// derive_m + // fn derive_m( + // &self, + // esk: &[u8; 32], + // fdi: u64, + // v: u64, + // nd: &str, + // ) -> Result { + // let esk = self.derive_secp256k1_limbs_sum_const_time(&self.derive_esk(*esk)); + // let (fdi, v, nd) = ( + // Fp::from_u128(u64::from_le_bytes(self.derive_fdi(fdi)) as u128), + // Fp::from_repr(NoteDenom::new_for_proof(nd).as_bytes().try_into().unwrap()).expect("nd"), + // Fp::from_u128(u64::from_le_bytes(self.derive_v(v)) as u128), + // ); + // Ok(crate::spec::prf_pallas_m(fdi, esk, v, nd)) + // } + + /// `derive_esk`: derives the 3x88 libs of a raw esk. + fn derive_esk(&self, sk: [u8; 32]) -> [Fp; 3] { + let skfq = + halo2_base::halo2_proofs::halo2curves::secq256k1::Fp::from_repr(sk).expect("valid Fq"); + let sk_big = halo2_base::utils::fe_to_biguint(&skfq); + crate::spec::decompose_biguint_simple(&sk_big, 3, 88) + .try_into() + .unwrap() + } + + /// derive_epk + fn derive_epk(&self, pk: [u8; 32]) -> [Fp; 3] { + let pkfq = + halo2_base::halo2_proofs::halo2curves::secq256k1::Fp::from_repr(pk).expect("valid Fq"); + let sk_big = halo2_base::utils::fe_to_biguint(&pkfq); + crate::spec::decompose_biguint_simple(&sk_big, 3, 88) + .try_into() + .unwrap() + } + /// derive_v + fn derive_v(&self, v: u64) -> [u8; 8] { + v.to_le_bytes() + } + /// derive_fdi + fn derive_fdi(&self, fdi: u64) -> [u8; 8] { + fdi.to_le_bytes() + } + /// derive_nk + fn derive_nk(&self, esk: &[u8; 32], rho: Rho) -> NullifierDerivingKey { + NullifierDerivingKey::derive_from( + EligibleSk::from(SecretKey::from_byte_array(*esk).unwrap()), + rho, + ) + } + /// Convert a byte slice into an iterator of little‑endian bits (LSB first per byte). + fn bytes_to_bits_le(bytes: &[u8]) -> impl Iterator + '_ { + bytes + .iter() + .flat_map(|b| (0..8).map(move |i| (b >> i) & 1 == 1)) + } + + /// Returns the sum of the 3 88-bit pallas curve point representation of a secp256k1 value + fn derive_secp256k1_limbs_sum_const_time(&self, bytes: &[Fp; 3]) -> Fp { + let limb3 = &bytes[0]; + let limb2 = &bytes[1]; + let limb1 = &bytes[2]; + limb1.add(&limb2.add(&limb3)) + } + + /// Note‑Denom (nd): blake3 hash of the token, 1 bit cleared. + fn derive_nd(&self, raw_nd: &str) -> [u8; 32] { + NoteDenom::new_for_proof(raw_nd) + .as_bytes() + .try_into() + .expect("NoteDenom is always 32 bytes") + } + /// Recipient (recp): poseidon hash a 2x16byte limbs of `CanonicalAddr` + fn derive_recp(&self, addr: [u8; 32]) -> pallas::Base { + spec::recp_to_fp(&RecpAddr::new(addr)) + } + + /// extend_with_base_field_bits + fn extend_with_base_field_bits(bits: &mut Vec, a: pallas::Base) { + let bit_slice = a.to_le_bits(); + bits.extend(bit_slice.iter().take(250).map(|b| *b)); + } + /// repeated_bytes: turns proof keys into anybuf msgs + fn repeated_bytes(&self, items: &[C]) -> Vec { + items + .iter() + .map(|b| Anybuf::new().append_bytes(1, b.to_bytes())) + .collect() + } + /// rho_from_secure_random + fn rho_from_secure_random(&self) -> Rho { + let mut randomness_64 = [0; 64]; + blake3::Hasher::new() + .update(&headstash_randomness::ultra_secure_random()) + .finalize_xof() + .fill(&mut randomness_64); + + Rho::from_bytes(&Base::from_uniform_bytes(&randomness_64).to_repr()).unwrap() + } +} + +/// `HeadstashSinsemillaTree`: all functions powering creating of headstash distribution merkle tree instances +pub trait HeadstashSinsemillaTree: HeadstashBitwiseInstance { + /// `get_input_path`: cli helper to retrieve input path + fn get_input_path(&self) -> Result { + let args: Vec = env::args().collect(); + if args.len() != 2 { + eprintln!("Usage: {} ", args[0]); + std::process::exit(1); + } + Ok(args[1].clone()) + } + /// Find the first note matching token & amount, return its fdi + fn print_tree( + &self, + input: &mut Value, + output: Value, + path: &std::path::Path, + ) -> Result<(), BoxError> { + fs::write( + &self.get_input_path()?, + serde_json::to_string_pretty(&input)?, + )?; + eprintln!("✅ Input with leaves written to {}", self.get_input_path()?); + let merkle_path = path.join("merkle_output.json"); + fs::write(&merkle_path, serde_json::to_string_pretty(&output)?)?; + eprintln!("✅ Merkle output written to {}", merkle_path.display()); + Ok(()) + } + + /// gen_headstash_tree + fn gen_headstash_tree(&self, output_path: PathBuf) -> Result + where + Self: Sync, + { + let mut data: Value = serde_json::from_str(&fs::read_to_string(&self.get_input_path()?)?)?; + let mut leaves = Vec::new(); + let balances = data.as_object_mut().ok_or("Input JSON must be an object")?; + + // Sort addresses lexicographically + let mut addresses: Vec<_> = balances.keys().cloned().collect(); + addresses.sort(); + + for addr in addresses { + let alloc_array = match balances.get_mut(addr.as_str()) { + Some(v) => v, + None => continue, + }; + + let alloc_array = match alloc_array.as_array_mut() { + Some(arr) => arr, + None => continue, + }; + + // Sort token allocations by `name` field + alloc_array.sort_by_key(|t| t["name"].to_string()); + + for token in alloc_array.iter_mut() { + let v: u64 = token["amount"] + .as_str() + .and_then(|s| s.parse::().ok()) + .unwrap(); + + // ---- parallel leaf generation --------------------------------- + // Parallel leaf generation (now also gives us an index) + let (lidxh, raw_leaves) = + self.derive_leaf(addr.as_str(), &token["name"].to_string(), v)?; + // ---- attach leaves back to the JSON object (single‑thread) ---- + { + token + .as_object_mut() + .unwrap() + .entry("leaves") + .or_insert_with(|| json!([])); + } + + // Push each leaf together with its index: + for (fixed_amount, idx, leaf_hex) in lidxh { + token + .get_mut("leaves") + .unwrap() + .as_array_mut() + .unwrap() + .push(json!({ "amnt":fixed_amount,"index": idx, "leaf": leaf_hex })); + } + + // ---- push raw leaves into the global vector ------------------- + leaves.extend(raw_leaves); + } + } + + if leaves.is_empty() { + println!("No leaves generated."); + return Ok(String::default()); + } + + // Build Merkle root + let merkle_root = self.tree_root_from_leaves(leaves.clone())[0]; + let root_hex = format!("0x{}", hex::encode(merkle_root.to_repr())); + let leaves_hex: Vec = leaves + .into_iter() + .map(|leaf| format!("0x{}", hex::encode(leaf.to_repr()))) + .collect(); + + // Output Merkle result + let merkle_output = json!({ + "root": root_hex, + "leaves": leaves_hex, + "count": leaves_hex.len() + }); + + self.print_tree(&mut data, merkle_output, &output_path)?; + + Ok(root_hex) + } + + /// Helper that generates all leaves for a single token (parallelised) + fn derive_leaf( + &self, + addr: &str, + token_name: &str, + v: u64, + ) -> Result<(Vec<(u64, usize, String)>, Vec), BoxError> + where + Self: Sync, + { + // ---------- build work list ------------------------------------------------ + let mut work_items: Vec = Vec::new(); + let mut remainder = v; + for &fixed_amount in FIXED_AMOUNTS.iter() { + let count = remainder / fixed_amount; + if count == 0 { + remainder %= fixed_amount; + continue; + } + // push *count* copies of the denomination value + work_items.extend(std::iter::repeat(fixed_amount).take(count as usize)); + remainder %= fixed_amount; + } + debug_assert_eq!(remainder, 0, "remainder not zero after denomination split"); + + // ---------- parallel leaf generation --------------------------------------- + let leaf_hexes = Mutex::new(Vec::<(u64, usize, String)>::new()); + let raw_leaves = Mutex::new(Vec::::new()); + + let addr_bytes: &[u8; 32] = match addr.starts_with("0x") { + true => &decode(addr.trim_start_matches("0x"))?.try_into().unwrap(), + false => &general_purpose::STANDARD + .decode(addr) + .unwrap() + .try_into() + .unwrap(), + }; + + // `enumerate` gives us the leaf‑index (0‑based) for this address/token + work_items.par_iter().enumerate().try_for_each( + |(idx, &fixed_amount)| -> Result<(), BoxError> { + let leaf = self.leaf_hash( + &self + .derive_secp256k1_limbs_sum_const_time(&self.derive_esk(*addr_bytes)) + .to_repr(), + &self.derive_nd(token_name), + &self.derive_v(fixed_amount), + &self.derive_fdi(idx as u64), + )?; + let leaf_hex = format!("0x{}", hex::encode(leaf.to_repr())); + leaf_hexes + .lock() + .unwrap() + .push((fixed_amount, idx, leaf_hex)); + raw_leaves.lock().unwrap().push(leaf); + Ok(()) + }, + )?; + + Ok(( + leaf_hexes.into_inner().unwrap(), + raw_leaves.into_inner().unwrap(), + )) + } + + /// Build Merkle tree from list of leaves + fn tree_root_from_leaves(&self, leaves: Vec) -> Vec { + let mut c = leaves; + let mut n = Vec::new(); + let mut l = 0; + while c.len() > 1 { + if c.len() % 2 != 0 { + c.push(pallas::Base::ZERO); + } + let lp = l; + let p = c + .par_chunks(2) + .map(|c| Self::merkle_crh(lp, c[0], c[1])) + .collect::>(); + n.extend(p); + c = n; + n = Vec::new(); + l += 1; + } + if c.is_empty() { + vec![pallas::Base::ZERO] + } else { + c + } + } + + /// Calculate MerkleCRH: H(layer || left || right) + fn merkle_crh(layer: u32, left: pallas::Base, right: pallas::Base) -> pallas::Base { + let domain = HashDomain::new(MERKLE_CRH_PERSONALIZATION); + // bit string: 10 + 250 + 250 = 510 bits + let mut message = Vec::with_capacity(510); + + for i in 0..10 { + message.push((layer >> i) & 1 == 1); + } + + ::extend_with_base_field_bits( + &mut message, + left, + ); + ::extend_with_base_field_bits( + &mut message, + right, + ); + + // Hash and return x-coordinate + let point = domain.hash_to_point(message.into_iter()).unwrap(); + point.to_affine().coordinates().unwrap().x().clone() + } + + /// Compute the leaf hash + fn leaf_hash( + &self, + epk: &[u8], + nd: &[u8], + v: &[u8], + fdi: &[u8], + ) -> Result { + let mut message_bytes = Vec::new(); + message_bytes.extend_from_slice(epk); + message_bytes.extend_from_slice(nd); + message_bytes.extend_from_slice(v); + message_bytes.extend_from_slice(fdi); + Ok(HashDomain::new(LEAF_PERSONALIZATION) + .hash_to_point(HeadstashSuite::bytes_to_bits_le(&message_bytes).into_iter()) + .expect("dang") + .to_affine() + .coordinates() + .unwrap() + .x() + .clone()) + } + + /// create_headstash_notes + fn create_headstash_notes(&self) -> Result<(), BoxError> { + let (input_path, addr_target) = get_cli_args().unwrap(); + let input_data: Value = serde_json::from_str(&fs::read_to_string(&input_path)?)?; + let mut address_notes = serde_json::Map::new(); + + if let Value::Object(map) = &input_data { + if let Some(holdings) = map.get(&addr_target) { + if let Value::Array(holding_array) = holdings { + for holding in holding_array.iter() { + // token identifier: raw value ("uterp", "ibc/...", "tokenfactory/...") + let token_name = holding["name"].as_str().unwrap().to_string(); + let _total_amount = holding["amount"].as_str().unwrap(); + + let leaves = match holding.get("leaves") { + Some(Value::Array(arr)) => arr, + _ => { + eprintln!("⚠️ No \"leaves\" array for token {}", token_name); + std::process::exit(1); + } + }; + + let mut generated_notes = Vec::new(); + + for leaf in leaves.iter() { + // concrete amount for this note + let amnt = leaf["amnt"].as_u64().unwrap_or_else(|| { + eprintln!("⚠️ Missing \"amnt\" in leaf for token {}", token_name); + std::process::exit(1); + }); + + // the fdi value (the leaf itself) + let fdi = leaf["index"].as_u64().unwrap_or_else(|| { + eprintln!("⚠️ Missing \"index\" in leaf for token {}", token_name); + std::process::exit(1); + }); + generated_notes.push(json!({ + "nd": NoteDenom::new_for_proof(&token_name.clone()).to_string(), + "v": NoteValue::from_bytes(amnt.to_le_bytes()).inner(), + "fdi": fdi, + })); + } + + // ------------------------------------------------------------------ + // 3️⃣ Insert the array of notes for this token into the final map + // ------------------------------------------------------------------ + address_notes.insert(token_name, Value::Array(generated_notes)); + } + } else { + eprintln!( + "Error: Address '{}' does not have holdings array.", + addr_target + ); + std::process::exit(1); + } + } else { + eprintln!("Error: Address '{}' not found in input data.", addr_target); + std::process::exit(1); + } + } else { + eprintln!("Error: Input data is not a JSON object."); + std::process::exit(1); + } + + // Create output file: ./data/
_notes.json + let output_dir = Path::new("./data/notes"); + fs::create_dir_all(output_dir)?; + let safe_addr: String = addr_target + .chars() + .filter(|c| c.is_ascii_alphanumeric()) + .collect(); + let output_path = output_dir.join(format!("{}.json", safe_addr)); + + fs::write(&output_path, serde_json::to_string_pretty(&address_notes)?)?; + + eprintln!("✅ Default Genesis Notes generated for {}", addr_target); + eprintln!("📁 Written to: {}", output_path.display()); + + Ok(()) + } + + /// TODO: create default notes of a specific public key allocation for a given headstash instance. + /// retrieves the entire tree from the headstash-API client, and then generate our notes 100% client side + fn gen_headstash_my_notes(&self, input: PathBuf, output: PathBuf) -> Result<(), BoxError> { + todo!() + } + + /// Find the first note matching token & amount, return its fdi + fn find_fdi(input_path: &str, token: &str, amount: &str) -> Result { + let json: Value = + serde_json::from_str(&fs::read_to_string(std::path::Path::new(input_path))?)?; + + let notes = json + .get(token) + .and_then(|v| v.as_array()) + .ok_or("Missing or invalid `uterp` array")?; + + for note in notes { + let denom_match = note.get("denom").and_then(|v| v.as_str()) == Some(token); + let amount_match = note.get("amount").and_then(|v| v.as_str()) == Some(amount); + + if denom_match && amount_match { + // fdi is a number (u32); pull it out + let fdi = note + .get("fdi") + .and_then(|v| v.as_u64()) + .ok_or("Missing or invalid `fdi` field")?; + return Ok(fdi); + } + } + + Err(format!( + "No note found for token '{}' with amount '{}'", + token, amount + ) + .into()) + } + + /// # get_note_path + fn get_note_path() -> Result<(String, String, String), BoxError> { + let args: Vec = env::args().collect(); + if args.len() != 4 { + eprintln!( + "Usage: {} ./data/notes/ ", + args[0] + ); + std::process::exit(1); + } + Ok((args[1].clone(), args[2].clone(), args[3].clone())) + } +} + +/// All actions any user would take for creating a new headstash 100% client side using this launchpad framework. +/// Requires struct implementing trait to also implement `HeadstashBitwiseInstance` default members. +/// TODO: feature flag parallelization in tree generation +/// TODO: add default documentation to each member +pub trait HeadstashIpfsInstance: HeadstashBitwiseInstance { + /// `upload_circuit_keys`: upload keys to ipfs for public distribution + fn upload_circuit_keys(&self) -> Result<(), BoxError> { + // check for existing ipfs connection + // options: + // - use node local ipfs gateway + // - use remote ipfs gateway + // - deploy new one if needed + // load key files from default folder + // upload and handle response gracefully + Ok(()) + } + /// `upload_headstash_params`: upload headstash params to ipfs for public distribution + fn upload_headstash_yaml(&self) -> Result<(), BoxError> { + Ok(()) + } + /// `req_headstash_pk`: request headstash proof keys from storage method defined by params + async fn req_headstash_pk(&self) -> Result { + todo!() + } +} + +/// launchpad +pub trait HeadstashLaunchpadInstance: HeadstashBitwiseInstance + HeadstashIpfsInstance { + /// ## [create_headstash_proof] + /// > #### Default method for creating a proof. Requires both the *public (instance)* & *private (witnesses)* values. + async fn create_headstash_proof( + &self, + a: Anchor, + mp: MerklePath, + esk: EligibleSk, + recp: RecpAddr, + hv: HeadstashValue, + ) -> Result { + let mut rng = OsRng; + let r = self.rho_from_secure_random().to_bytes(); + let rho = self.rho_from_secure_random(); + let rseed = RandomSeed::from_bytes(r, &rho).expect("random seed"); + + let pk = self.req_headstash_pk().await?; + let spk = SpendingKey::from_bytes(r).expect("spk"); + let fvk = FullViewingKey::from(&spk); + + let n = Note::from_parts(hv, recp, esk, rho, rseed).expect("note derivation"); + let nf = n.nullifier(); + let cmx = ExtractedNoteCommitment::from(n.commitment()); + + let c = SpendInfo::new(fvk, n, mp).expect("headstash claim"); + + // generate proof, unchecked as we rho is not deterministically derived + let instances = Instance::from_parts(a, hv.denom(), hv.amount(), recp, nf, cmx); + let circuit = Circuit::from_action_context_unchecked(c, n); + Ok(Proof::create(&pk, &[circuit], &[instances], &mut rng)?) + } + /// create_new_headstash + fn create_new_headstash(&self) -> Result<(), BoxError> { + // generate template headstash yaml + self.gen_new_headstash_params(); + // prompt to determine communities to include in headstash airdrop + // deploy/retrieve holder distributions via full ephemeral full nodes api queries + self.gen_community_snapshots(); + // prompt calculations on percentile distribution and suggested ranges for normalization of airdrop allocation between communities + self.gen_calculate_distribution(); + // generate headstash circuit + self.gen_headstash_circuit()?; + // upload circuit keys to ipfs + self.upload_circuit_keys()?; + // upload headstash yaml to ipfs + self.upload_headstash_yaml()?; + // call headstash launchpad + // deploy new headstash aggregator + unimplemented!() + } + + /// `gen_headstgen_community_snapshotsash_keys`: retrive snapshot and pubkeys of list of community holders. + fn gen_new_headstash_params(&self) { + // load config file or create new one + // a. determine what circuit keys used + // - default headstash, custom one we upload + // b. smart contract params + // c. deployment params + // d. node params + } + + /// `gen_headstgen_community_snapshotsash_keys`: retrive snapshot and pubkeys of list of community holders. + fn gen_community_snapshots(&self) { + // load config file + // connect to eth node + // retrieve latest holder distribution and pubkeys for each community + // write csv into each community folder + } + /// `gen_calculate_distribution`: . + fn gen_calculate_distribution(&self) {} + + /// `gen_headstash_circuit`: generate circuit [ProvingKey] & [VerifyingKey] with hex-encode, write to ./data/keys/. + fn gen_headstash_circuit(&self) -> Result<(), BoxError> { + fs::create_dir_all("./data/keys")?; + let pk_path = Path::new("./data/keys").join(PK_FILE); + ProvingKey::build_and_write(pk_path)?; + Ok(()) + } + + /// `gen_test_circuit_keys`: generate test circuit keys for all example circuits + /// This creates proving and verifying keys for demo circuits in the test suite + fn gen_test_circuit_keys(&self, path: &Path) -> Result<(), BoxError> { + eprintln!("🔑 Generating test circuit keys for example circuits..."); + fs::create_dir_all(path)?; + self.gen_no_rick_circuit_keys(path)?; + // self.gen_sinsemilla_hashdomain_circuit_keys(path)?; + eprintln!("✅ All test circuit keys generated successfully"); + Ok(()) + } + + /// Generate keys for NoRickCircuit example + fn gen_no_rick_circuit_keys(&self, base_path: &Path) -> Result<(), BoxError> { + const K: u32 = 10; + use crate::example_circuits::no_rick::NoRickCircuit; + + eprintln!(" 📝 Generating NoRickCircuit keys..."); + let params: halo2_proofs::poly::commitment::Params = + halo2_proofs::poly::commitment::Params::new(K); + let circuit: NoRickCircuit = Default::default(); + let vk: plonk::VerifyingKey = plonk::keygen_vk(¶ms, &circuit) + .map_err(|e| format!("Failed to generate VK for NoRickCircuit: {:?}", e))?; + let pk = plonk::keygen_pk(¶ms, vk.clone(), &circuit) + .map_err(|e| format!("Failed to generate PK for NoRickCircuit: {:?}", e))?; + + let circuit_dir = base_path.join("no_rick"); + fs::create_dir_all(&circuit_dir)?; + + // Write params (separate, for reference) + let params_path = circuit_dir.join("params.bin"); + let mut params_file = BufWriter::new(File::create(¶ms_path)?); + params.write(&mut params_file)?; + params_file.flush()?; + eprintln!(" ✓ Params written to {}", params_path.display()); + + // Write verifying key (separate, for reference) + let vk_path = circuit_dir.join("verifying_key.bin"); + let mut vk_file = BufWriter::new(File::create(&vk_path)?); + vk.write(&mut vk_file)?; + vk_file.flush()?; + eprintln!(" ✓ Verifying key written to {}", vk_path.display()); + + let combined_path = circuit_dir.join("vk_combined.bin"); + let mut combined_file = BufWriter::new(File::create(&combined_path)?); + params.write(&mut combined_file)?; // Params first + vk.write(&mut combined_file)?; // VK second + combined_file.flush()?; + eprintln!( + " ✅ COMBINED VK (for upload) written to {}", + combined_path.display() + ); + + // Write proving key (for proving, not upload) + let pk_path = circuit_dir.join("proving_key.bin"); + let mut pk_file = BufWriter::new(File::create(&pk_path)?); + pk.get_vk().write(&mut pk_file)?; + pk_file.flush()?; + eprintln!(" ✓ Proving key written to {}", pk_path.display()); + + Ok(()) + } + /// Generate keys for MySinsemillaHashDomainCircuit example + fn gen_sinsemilla_hashdomain_circuit_keys(&self, base_path: &Path) -> Result<(), BoxError> { + use crate::example_circuits::sinsemilla_hashdomain::MySinsemillaHashDomainCircuit; + use halo2_gadgets::utilities::lookup_range_check::PallasLookupRangeCheckConfig; + use halo2_proofs::plonk; + + eprintln!(" 📝 Generating MySinsemillaHashDomainCircuit keys..."); + + const K: u32 = 11; // Circuit size for Sinsemilla hash domain + let params: halo2_proofs::poly::commitment::Params = + halo2_proofs::poly::commitment::Params::new(K); + let circuit: MySinsemillaHashDomainCircuit = + MySinsemillaHashDomainCircuit::new(); + + // Generate verifying key + let vk = plonk::keygen_vk(¶ms, &circuit).map_err(|e| { + format!( + "Failed to generate VK for MySinsemillaHashDomainCircuit: {:?}", + e + ) + })?; + + // Generate proving key + let pk = plonk::keygen_pk(¶ms, vk.clone(), &circuit).map_err(|e| { + format!( + "Failed to generate PK for MySinsemillaHashDomainCircuit: {:?}", + e + ) + })?; + + // Create circuit-specific directory + let circuit_dir = base_path.join("sinsemilla_hashdomain"); + fs::create_dir_all(&circuit_dir)?; + + // Write params + let params_path = circuit_dir.join("params.bin"); + let mut params_file = BufWriter::new(File::create(¶ms_path)?); + params.write(&mut params_file)?; + params_file.flush()?; + eprintln!(" ✓ Params written to {}", params_path.display()); + + // Write verifying key + let vk_path = circuit_dir.join("verifying_key.bin"); + let mut vk_file = BufWriter::new(File::create(&vk_path)?); + vk.write(&mut vk_file)?; + vk_file.flush()?; + eprintln!(" ✓ Verifying key written to {}", vk_path.display()); + + // Write proving key (full key) + let pk_path = circuit_dir.join("proving_key.bin"); + let mut pk_file = BufWriter::new(File::create(&pk_path)?); + // pk.write(&mut pk_file)?; + pk_file.flush()?; + eprintln!(" ✓ Proving key written to {}", pk_path.display()); + + Ok(()) + } +} + +// TODO: +// - notecommitment derivation accuracy +// - nullifier derivation accuracy +// - document DST & hashing algo constant in spec + +// TEST: +// nullifier should not be impacted by randomness inputs +// nullifier should change with different esk/epk +// + +#[cfg(test)] +mod test { + use super::*; + use std::boxed::Box; + use std::collections::HashMap; + + #[test] + pub fn test_note_accuracy() -> Result<(), Box> { + // Load original allocations + let input_data: Value = + serde_json::from_str(&fs::read_to_string("./data/genesis_sinsemilla.json")?)?; + + // Load generated notes for the zero address + let notes_path = "./data/notes/0x0000000000000000000000000000000000000000.json"; + let calculated_notes: Value = serde_json::from_str(&fs::read_to_string(notes_path)?)?; + + // Extract original holdings + let mut original_balances: HashMap = HashMap::new(); + + if let Value::Object(map) = &input_data { + if let Some(holdings) = map.get("0x0000000000000000000000000000000000000000") { + if let Value::Array(holding_array) = holdings { + for holding in holding_array { + if let Some(name) = holding["name"].as_str() { + let amount_str = holding["amount"].as_str().unwrap_or("0"); + let amount: u64 = amount_str.parse().unwrap_or(0); + *original_balances.entry(name.to_string()).or_insert(0) += amount; + } + } + } + } + } + + // Extract and sum note values from generated notes + let mut notes_sum: HashMap = HashMap::new(); + + if let Value::Object(note_map) = &calculated_notes { + for (token_name, notes) in note_map { + if let Value::Array(note_array) = notes { + for note in note_array { + if let Some(v_str) = note["v"].as_str() { + let v: u64 = v_str.parse().unwrap_or(0); + *notes_sum.entry(token_name.clone()).or_insert(0) += v; + } + } + } + } + } + + // Compare: original vs summed note values + for (token, original_amount) in &original_balances { + let note_total = notes_sum.get(token).copied().unwrap_or(0); + assert_eq!( + original_amount, ¬e_total, + "Token {}: allocation ({}) does not match total notes ({})", + token, original_amount, note_total + ); + } + + // Also check for extra tokens in notes not in original + for (token, _) in ¬es_sum { + assert!( + original_balances.contains_key(token), + "Token {} appears in notes but not in original allocation", + token + ); + } + + Ok(()) + } + + fn load_data() -> Result { + let file = fs::File::open("./data/genesis_sinsemilla.json")?; + let reader = std::io::BufReader::new(file); + Ok(serde_json::from_reader(reader)?) + } + + // Ensures input data is in compatible format + #[test] + pub fn test_input_data_accuracy() -> Result<(), BoxError> { + let data = load_data()?; + if !data.is_object() { + panic!("Expected JSON object (map) at root"); + } + + for (addr, tokens) in data.as_object().unwrap().iter() { + assert!(tokens.is_array(), "Value for {} must be an array", addr); + for token in tokens.as_array().unwrap() { + let obj = token.as_object().unwrap(); + assert!(obj.contains_key("amount"), "missing required key 'amount'"); + assert!(obj.contains_key("token"), " missing required key 'token'"); + assert!(obj["amount"].is_string(), "'amount' must be a string"); + assert!(obj["token"].is_string(), "'token' must be a string"); + } + } + + Ok(()) + } + + // #[test] + // pub fn test_leaves_accuracy() -> Result<(), BoxError> { + // let data = load_data()?; + // // Expect top-level object: { "addr": [ { token, amount, leaf }, ... ] } + // let balances = data.as_object().ok_or("JSON must be an object")?; + // for (address, allocs) in balances { + // let alloc_array = allocs.as_array().unwrap(); + + // for token_obj in alloc_array { + // let token_name = token_obj["token"].as_str().unwrap_or_default(); + // let amount = token_obj["amount"].as_str().unwrap_or_default(); + // let expected_leaf_hex = token_obj["leaf"].as_str().unwrap_or_default(); + + // // Remove 0x prefix if present + // let expected_bytes = if expected_leaf_hex.starts_with("0x") { + // hex::decode(&expected_leaf_hex[2..])? + // } else { + // hex::decode(expected_leaf_hex)? + // }; + + // // Re-compute expected scalar from address + token + amount + // let computed_leaf = leaf_hash(address, token_name, amount,)?; + // let computed_bytes = computed_leaf.to_repr(); + + // // Compare raw field element bytes + // assert_eq!( + // computed_bytes.as_ref(), + // expected_bytes.as_slice(), + // "Leaf mismatch for address={}, token={}", + // address, + // token_name + // ); + // } + // } + + // Ok(()) + // } +} diff --git a/zk-crates/zk-headstash/src/deploy/test_circuit_keys.rs b/zk-crates/zk-headstash/src/deploy/test_circuit_keys.rs new file mode 100644 index 0000000..fb4fef7 --- /dev/null +++ b/zk-crates/zk-headstash/src/deploy/test_circuit_keys.rs @@ -0,0 +1,119 @@ +//! Unit tests for test circuit key generation + +#[cfg(test)] +mod tests { + use super::super::suite::*; + use std::path::PathBuf; + + #[test] + fn test_gen_no_rick_circuit_keys() -> Result<(), BoxError> { + let suite = HeadstashSuite::new(); + let temp_dir = PathBuf::from("./data/test_keys_temp_no_rick"); + + // Generate keys + suite.gen_no_rick_circuit_keys(&temp_dir)?; + + // Verify files exist + let circuit_dir = temp_dir.join("no_rick"); + assert!( + circuit_dir.join("params.bin").exists(), + "params.bin should exist" + ); + assert!( + circuit_dir.join("verifying_key.bin").exists(), + "verifying_key.bin should exist" + ); + assert!( + circuit_dir.join("proving_key.bin").exists(), + "proving_key.bin should exist" + ); + + // Cleanup + std::fs::remove_dir_all(&temp_dir)?; + + Ok(()) + } + + // TODO: Fix MySinsemillaHashDomainCircuit configuration issues before enabling this test + // #[test] + // fn test_gen_sinsemilla_hashdomain_circuit_keys() -> Result<(), BoxError> { + // let suite = HeadstashSuite::new(); + // let temp_dir = PathBuf::from("./data/test_keys_temp_sinsemilla"); + // + // // Generate keys + // suite.gen_sinsemilla_hashdomain_circuit_keys(&temp_dir)?; + // + // // Verify files exist + // let circuit_dir = temp_dir.join("sinsemilla_hashdomain"); + // assert!( + // circuit_dir.join("params.bin").exists(), + // "params.bin should exist" + // ); + // assert!( + // circuit_dir.join("verifying_key.bin").exists(), + // "verifying_key.bin should exist" + // ); + // assert!( + // circuit_dir.join("proving_key.bin").exists(), + // "proving_key.bin should exist" + // ); + // + // // Cleanup + // std::fs::remove_dir_all(&temp_dir)?; + // + // Ok(()) + // } + + #[test] + fn test_gen_test_circuit_keys() -> Result<(), BoxError> { + let suite = HeadstashSuite::new(); + let temp_dir = PathBuf::from("./data/test_keys_temp_no_rick"); + // Generate all test circuit keys + suite.gen_test_circuit_keys(&temp_dir)?; + + // Verify directory structure exists + let test_keys_dir = PathBuf::from("./data/test_keys"); + assert!(test_keys_dir.exists(), "test_keys directory should exist"); + + // Verify NoRickCircuit keys + let no_rick_dir = test_keys_dir.join("no_rick"); + assert!(no_rick_dir.exists(), "no_rick directory should exist"); + assert!( + no_rick_dir.join("params.bin").exists(), + "no_rick params.bin should exist" + ); + assert!( + no_rick_dir.join("verifying_key.bin").exists(), + "no_rick verifying_key.bin should exist" + ); + assert!( + no_rick_dir.join("proving_key.bin").exists(), + "no_rick proving_key.bin should exist" + ); + + // TODO: Re-enable when MySinsemillaHashDomainCircuit is fixed + // // Verify MySinsemillaHashDomainCircuit keys + // let sinsemilla_dir = test_keys_dir.join("sinsemilla_hashdomain"); + // assert!( + // sinsemilla_dir.exists(), + // "sinsemilla_hashdomain directory should exist" + // ); + // assert!( + // sinsemilla_dir.join("params.bin").exists(), + // "sinsemilla_hashdomain params.bin should exist" + // ); + // assert!( + // sinsemilla_dir.join("verifying_key.bin").exists(), + // "sinsemilla_hashdomain verifying_key.bin should exist" + // ); + // assert!( + // sinsemilla_dir.join("proving_key.bin").exists(), + // "sinsemilla_hashdomain proving_key.bin should exist" + // ); + + // Note: Not cleaning up here so keys can be used in other tests + // Users can manually clean up ./data/test_keys if needed + + Ok(()) + } +} diff --git a/zk-crates/zk-headstash/src/example_circuits/mod.rs b/zk-crates/zk-headstash/src/example_circuits/mod.rs new file mode 100644 index 0000000..4f72a54 --- /dev/null +++ b/zk-crates/zk-headstash/src/example_circuits/mod.rs @@ -0,0 +1,4 @@ +//! Simple circuit examples for demo & test libraries +pub mod no_rick; +pub mod sinsemilla_hashdomain; +pub mod secp256k1_chip; \ No newline at end of file diff --git a/zk-crates/zk-headstash/src/example_circuits/no_rick.rs b/zk-crates/zk-headstash/src/example_circuits/no_rick.rs new file mode 100644 index 0000000..10a1cb6 --- /dev/null +++ b/zk-crates/zk-headstash/src/example_circuits/no_rick.rs @@ -0,0 +1,487 @@ +//! Norick: a witnessed string does not contain the work "rick" +//! The circuit is designed to work without knowing the specific private or public inputs during key generation. +//! During key generation, use NoRickCircuit::default() or call without_witnesses() on an instance, which sets priv_input to unknown values. +//! The forbidden string is loaded from the instance column, and since instance values are not needed for key generation (only for proving/verification), +//! the circuit configures and synthesizes correctly with unknown instances.For proving, instantiate the circuit with the actual private inputs and provide +//! the public inputs (including the forbidden string) to the prover. +//! +//! This matches standard Halo2 patterns where the circuit struct holds witness data for proving, but key generation uses placeholders. +//! +use ff::{Field, PrimeField}; +use halo2_proofs::{ + circuit::{AssignedCell, Chip, Layouter, Region, SimpleFloorPlanner, Value}, + plonk::{Advice, Circuit, Column, ConstraintSystem, Error, Fixed, Instance, Selector}, + poly::Rotation, +}; + +use std::{marker::PhantomData, println, vec::Vec}; + +// ANCHOR: instructions +trait NumericInstructions: Chip { + /// Variable representing a number. + type Num; + + /// Loads a number into the circuit as a private input. + fn load_private(&self, layouter: impl Layouter, a: Value) -> Result; + + /// Loads a number into the circuit as a fixed constant. + fn load_constant(&self, layouter: impl Layouter, constant: F) -> Result; + + /// Loads a number from public instance. + fn load_public(&self, layouter: impl Layouter, row: usize) -> Result; + + /// Returns `c = a * b`. + fn mul( + &self, + layouter: impl Layouter, + a: Self::Num, + b: Self::Num, + ) -> Result; + + /// Exposes a number as a public input to the circuit. + fn expose_public( + &self, + layouter: impl Layouter, + num: Self::Num, + row: usize, + ) -> Result<(), Error>; +} +// ANCHOR_END: instructions + +// ANCHOR: chip +/// The chip that will implement our instructions! Chips store their own +/// config, as well as type markers if necessary. +#[derive(Debug)] +pub struct FieldChip { + config: FieldConfig, + _marker: PhantomData, +} +// ANCHOR_END: chip + +// ANCHOR: chip-config +/// Chip state is stored in a config struct. This is generated by the chip +/// during configuration, and then stored inside the chip. +#[derive(Clone, Debug)] +pub struct FieldConfig { + /// For this chip, we will use two advice columns to implement our instructions. + /// These are also the columns through which we communicate with other parts of + /// the circuit. + advice: [Column; 2], + + /// This is the public input (instance) column. + instance: Column, + + // We need a selector to enable the multiplication gate, so that we aren't placing + // any constraints on cells where `NumericInstructions::mul` is not being used. + // This is important when building larger circuits, where columns are used by + // multiple sets of instructions. + s_mul: Selector, +} + +impl FieldChip { + fn construct(config: >::Config) -> Self { + Self { + config, + _marker: PhantomData, + } + } + + fn configure( + meta: &mut ConstraintSystem, + advice: [Column; 2], + instance: Column, + constant: Column, + ) -> >::Config { + meta.enable_equality(instance); + meta.enable_constant(constant); + for column in &advice { + meta.enable_equality(*column); + } + let s_mul = meta.selector(); + + // Define our multiplication gate! + meta.create_gate("mul", |meta| { + // To implement multiplication, we need three advice cells and a selector + // cell. We arrange them like so: + // + // | a0 | a1 | s_mul | + // |-----|-----|-------| + // | lhs | rhs | s_mul | + // | out | | | + // + // Gates may refer to any relative offsets we want, but each distinct + // offset adds a cost to the proof. The most common offsets are 0 (the + // current row), 1 (the next row), and -1 (the previous row), for which + // `Rotation` has specific constructors. + let lhs = meta.query_advice(advice[0], Rotation::cur()); + let rhs = meta.query_advice(advice[1], Rotation::cur()); + let out = meta.query_advice(advice[0], Rotation::next()); + let s_mul = meta.query_selector(s_mul); + + // Finally, we return the polynomial expressions that constrain this gate. + // For our multiplication gate, we only need a single polynomial constraint. + // + // The polynomial expressions returned from `create_gate` will be + // constrained by the proving system to equal zero. Our expression + // has the following properties: + // - When s_mul = 0, any value is allowed in lhs, rhs, and out. + // - When s_mul != 0, this constrains lhs * rhs = out. + vec![s_mul * (lhs * rhs - out)] + }); + + FieldConfig { + advice, + instance, + s_mul, + } + } +} +// ANCHOR_END: chip-config + +// ANCHOR: chip-impl +impl Chip for FieldChip { + type Config = FieldConfig; + type Loaded = (); + + fn config(&self) -> &Self::Config { + &self.config + } + + fn loaded(&self) -> &Self::Loaded { + &() + } +} +// ANCHOR_END: chip-impl + +// ANCHOR: instructions-impl +/// A variable representing a number. +#[derive(Clone)] +struct Number(AssignedCell); + +impl NumericInstructions for FieldChip { + type Num = Number; + + fn load_private( + &self, + mut layouter: impl Layouter, + value: Value, + ) -> Result { + let config = self.config(); + + layouter.assign_region( + || "load private", + |mut region| { + region + .assign_advice(|| "private input", config.advice[0], 0, || value) + .map(Number) + }, + ) + } + + fn load_constant( + &self, + mut layouter: impl Layouter, + constant: F, + ) -> Result { + let config = self.config(); + + layouter.assign_region( + || "load constant", + |mut region| { + region + .assign_advice_from_constant(|| "constant value", config.advice[0], 0, constant) + .map(Number) + }, + ) + } + + fn load_public(&self, mut layouter: impl Layouter, row: usize) -> Result { + let config = self.config(); + + layouter.assign_region( + || "load public", + |mut region| { + region + .assign_advice_from_instance( + || "public input", + config.instance, + row, + config.advice[0], + 0, + ) + .map(Number) + }, + ) + } + + fn mul( + &self, + mut layouter: impl Layouter, + a: Self::Num, + b: Self::Num, + ) -> Result { + let config = self.config(); + + layouter.assign_region( + || "mul", + |mut region: Region<'_, F>| { + // We only want to use a single multiplication gate in this region, + // so we enable it at region offset 0; this means it will constrain + // cells at offsets 0 and 1. + config.s_mul.enable(&mut region, 0)?; + + // The inputs we've been given could be located anywhere in the circuit, + // but we can only rely on relative offsets inside this region. So we + // assign new cells inside the region and constrain them to have the + // same values as the inputs. + a.0.copy_advice(|| "lhs", &mut region, config.advice[0], 0)?; + b.0.copy_advice(|| "rhs", &mut region, config.advice[1], 0)?; + + // Now we can assign the multiplication result, which is to be assigned + // into the output position. + let value = a.0.value().copied() * b.0.value(); + + // Finally, we do the assignment to the output, returning a + // variable to be used in another part of the circuit. + region + .assign_advice(|| "lhs * rhs", config.advice[0], 1, || value) + .map(Number) + }, + ) + } + + fn expose_public( + &self, + mut layouter: impl Layouter, + num: Self::Num, + row: usize, + ) -> Result<(), Error> { + let config = self.config(); + + layouter.constrain_instance(num.0.cell(), config.instance, row) + } +} +// ANCHOR_END: instructions-impl + +// ANCHOR: circuit +/// The full circuit implementation. +/// +/// In this struct we store the private input variables. We use `Option` because +/// they won't have any value during key generation. During proving, if any of these +/// were `None` we would get an error. +#[derive(Debug)] +pub struct NoRickCircuit { + priv_input: Vec>, // Fixed length of 20 +} + +impl Default for NoRickCircuit { + fn default() -> Self { + Self { + priv_input: vec![Value::unknown(); 20], + } + } +} + +impl Circuit for NoRickCircuit { + // Since we are using a single chip for everything, we can just reuse its config. + type Config = FieldConfig; + type FloorPlanner = SimpleFloorPlanner; + + fn without_witnesses(&self) -> Self { + Self::default() + } + + fn configure(meta: &mut ConstraintSystem) -> Self::Config { + let advice = [meta.advice_column(), meta.advice_column()]; + let instance = meta.instance_column(); + let constant = meta.fixed_column(); + FieldChip::configure(meta, advice, instance, constant) + } + + fn synthesize( + &self, + config: Self::Config, + mut layouter: impl Layouter, + ) -> Result<(), Error> { + let chip = FieldChip::::construct(config); + + // -------------------------------------------------------------- + // 2️⃣ Powers of 256 (little‑endian) – they are plain F values, + // no gates are needed to load them. + // this essentially moves between 8-bit byte values + // -------------------------------------------------------------- + let _pow_256_0 = F::from(256u64.pow(0)); // 256⁰ + let pow_256_1 = F::from(256u64.pow(1)); // 256¹ + let pow_256_2 = F::from(256u64.pow(2)); // 256² = 65536 + let pow_256_3 = F::from(256u64.pow(3)); // 256³ = 16777216 + + // Load all private inputs + let mut chars = Vec::new(); + for (i, &char_val) in self.priv_input.iter().enumerate() { + let char_cell = + chip.load_private(layouter.namespace(|| format!("load char {}", i)), char_val)?; + chars.push(char_cell); + } + + // --------------------------------------------------------------------- + let rick_constant = chip.load_public(layouter.namespace(|| "load public rick"), 1)?; + // Check for "rick" at every possible starting index (0 to 16) + let mut conditions = Vec::new(); + for idx in 0..17 { + let c0 = chars[idx].clone(); + let c1 = chars[idx + 1].clone(); + let c2 = chars[idx + 2].clone(); + let c3 = chars[idx + 3].clone(); + + // Compute differences from 'r','i','c','k' + let packed_val = c0.0.value().copied() + + c1.0.value().copied() * Value::known(pow_256_1) + + c2.0.value().copied() * Value::known(pow_256_2) + + c3.0.value().copied() * Value::known(pow_256_3); + + // ---- compute the difference from the packed constant “rick” ---------- + // `rick_const` is a `Number` that we loaded earlier. + let diff_val = packed_val - rick_constant.0.value().copied(); + + // ---- turn the difference into a private cell (so we can multiply it) -- + let diff = + chip.load_private(layouter.namespace(|| format!("diff {}", idx)), diff_val)?; + + conditions.push(diff); + } + + // Compute product of all conditions + let mut product = conditions[0].clone(); + for i in 1..conditions.len() { + product = chip.mul( + layouter.namespace(|| format!("mul conditions {}", i)), + product, + conditions[i].clone(), + )?; + } + + // Compute inverse of product (fails if product is zero) + let inv_p_val = product.0.value().map(|p| p.invert().unwrap_or(F::ZERO)); + let inv_p = chip.load_private(layouter.namespace(|| "load inv_p"), inv_p_val)?; + + // Multiply product by its inverse; should be 1 if no match + let product_times_inv = + chip.mul(layouter.namespace(|| "product times inv"), product, inv_p)?; + + // Load constant 1 + let one = chip.load_constant(layouter.namespace(|| "load one"), F::ONE)?; + + // Constrain product_times_inv to equal 1 by binding both to the same instance cell + layouter.constrain_instance(product_times_inv.0.cell(), chip.config().instance, 0)?; + layouter.constrain_instance(one.0.cell(), chip.config().instance, 0)?; + + Ok(()) + } +} + +/// string to field +pub fn str_to_field(s: &str) -> F { + let mut repr = F::default().to_repr(); + let src = s.as_bytes(); + let len = core::cmp::min(src.len(), repr.as_ref().len()); + repr.as_mut()[..len].copy_from_slice(&src[..len]); + F::from_repr(repr).expect("something bad happened") +} + +// ANCHOR: dev-graph +#[test] +fn test_rick_circuit() { + use halo2_proofs::dev::MockProver; + use pasta_curves::Fp; + let circuit_rows: u32 = 10; + + // Test with "ricky" (contains "rick") - should fail + let s1 = "ricky"; + let s2 = "ronaldrickstien"; + let s3 = "randy"; + + let as_bytes = s1.as_bytes(); + println!("s1 as_bytes: {:#?}", as_bytes); + println!("s1 byte lens: {:#?}", as_bytes.len()); + let mut bytes1 = as_bytes.to_vec(); + bytes1.resize(20, 0); + println!("resized 5 byte string to full 20 via padding"); + println!("bytes1.len(): {:#?}", bytes1.len()); + println!("bytes1: {:#?}", bytes1); + + let priv_input: Vec> = bytes1 + .iter() + .map(|&b| Value::known(Fp::from(b as u64))) + .collect(); + + let mut circuit = NoRickCircuit { priv_input }; + + // === THE CONSTRAINT===: + // set to 1 as we inverse constraint (if result == 0 , we know that the private input has "rick in it") + let public_input = vec![Fp::one(), str_to_field("rick")]; + + let prover1 = MockProver::run(circuit_rows, &circuit, vec![public_input.clone()]).unwrap(); + assert!(prover1.verify().is_err()); + + let mut bytes2 = s2.as_bytes().to_vec(); + println!("s2 as_bytes: {:#?}", bytes2); + println!("s2 byte lens: {:#?}", bytes2.len()); + bytes2.resize(20, 0); + println!("s2 resized byte lens: {:#?}", bytes2.len()); + println!("s2: {:#?}", bytes2); + + let string_vec2: Vec> = bytes2 + .iter() + .map(|&b| Value::known(Fp::from(b as u64))) + .collect(); + + circuit.priv_input = string_vec2; + + let prover2 = MockProver::run(circuit_rows, &circuit, vec![public_input]).unwrap(); + assert!(prover2.verify().is_err()); + + // Ensure we are not dropping any of the values + let mut bytes3 = s3.as_bytes().to_vec(); + bytes3.resize(20, 0); + + let string_vec3: Vec> = bytes3 + .iter() + .map(|&b| Value::known(Fp::from(b as u64))) + .collect(); + + circuit.priv_input = string_vec3; + + let public_inputs3 = vec![Fp::one(), str_to_field("rick")]; + let prover3 = MockProver::run(circuit_rows, &circuit, vec![public_inputs3]).unwrap(); + assert!(prover3.verify().is_ok()); + + // Create the area you want to draw on. + // Use SVGBackend if you want to render to .svg instead. + // use plotters::prelude::*; + // let root = BitMapBackend::new("layout.png", (1024, 768)).into_drawing_area(); + // root.fill(&WHITE).unwrap(); + // let root = root + // .titled("Example Circuit Layout", ("sans-serif", 60)) + // .unwrap(); + + // halo2_proofs::dev::CircuitLayout::default() + // .show_equality_constraints(true) + // // You can optionally render only a section of the circuit. + // // .view_width() + // // .view_height(0..16) + // // You can hide labels, which can be useful with smaller areas. + // .show_labels(true); + // // Render the circuit onto your area! + // // The first argument is the size parameter for the circuit. + // .render(10, &circuit, &root) + // .unwrap(); + + // Generate the DOT graph string. + // let dot_string = halo2_proofs::dev::circuit_dot_graph(&circuit); + + // Now you can either handle it in Rust, or just + // print it out to use with command-line tools. + // println!("{}", dot_string); + // ANCHOR_END: test-circuit +} +// ANCHOR_END: dev-graph diff --git a/zk-crates/zk-headstash/src/example_circuits/posiedon.rs b/zk-crates/zk-headstash/src/example_circuits/posiedon.rs new file mode 100644 index 0000000..e69de29 diff --git a/zk-crates/zk-headstash/src/example_circuits/secp256k1_chip.rs b/zk-crates/zk-headstash/src/example_circuits/secp256k1_chip.rs new file mode 100644 index 0000000..7a9a86e --- /dev/null +++ b/zk-crates/zk-headstash/src/example_circuits/secp256k1_chip.rs @@ -0,0 +1 @@ +//! constrain knowledge of esk to public key \ No newline at end of file diff --git a/zk-crates/zk-headstash/src/example_circuits/sinsemilla_commitdomain.rs b/zk-crates/zk-headstash/src/example_circuits/sinsemilla_commitdomain.rs new file mode 100644 index 0000000..fa28021 --- /dev/null +++ b/zk-crates/zk-headstash/src/example_circuits/sinsemilla_commitdomain.rs @@ -0,0 +1 @@ +// sinsemilla commit domain circuit (use for spent-note commitments in headstash) \ No newline at end of file diff --git a/zk-crates/zk-headstash/src/example_circuits/sinsemilla_hashdomain.rs b/zk-crates/zk-headstash/src/example_circuits/sinsemilla_hashdomain.rs new file mode 100644 index 0000000..b8662de --- /dev/null +++ b/zk-crates/zk-headstash/src/example_circuits/sinsemilla_hashdomain.rs @@ -0,0 +1,303 @@ +//! proove that H(v||nd||fdi||epk) was derived accurately using the sinsemilla hash domain. +//! - public inputs (exposed as instance columns): v,nd, H_sinsemilla +//! - private inputs: fdi,epk + +use std::marker::PhantomData; + +use crate::constants::fixed_bases::OrchardFixedBases; +use crate::constants::sinsemilla::OrchardCommitDomains; +use crate::constants::OrchardHashDomains; +use group::Curve; +use halo2_gadgets::ecc::chip::{EccChip, EccConfig, NonIdentityEccPoint}; +use halo2_gadgets::sinsemilla::chip::{SinsemillaChip, SinsemillaConfig}; +use halo2_gadgets::sinsemilla::{ + HashDomain, HashDomains, Message, MessagePiece, SinsemillaInstructions, +}; +use halo2_gadgets::utilities::lookup_range_check::{ + LookupRangeCheck, LookupRangeCheckConfig, PallasLookupRangeCheck, +}; +use halo2_gadgets::utilities::{FieldValue, RangeConstrained}; +use halo2_proofs::circuit::Layouter; +use halo2_proofs::circuit::{AssignedCell, SimpleFloorPlanner, Value}; +use halo2_proofs::plonk::{Circuit, Column, Error, Instance, Selector}; +use pasta_curves::{pallas, EpAffine, Fp}; + +type MySinsemillaHashDomainConfig = ( + EccConfig, + Column, + SinsemillaConfig, + // supports up to 2^32 bits + Selector, +); + +/// MySinsemillaHashDomainCircuit +#[derive(Default, Debug)] +pub struct MySinsemillaHashDomainCircuit { + _lookup_marker: PhantomData, + v: Value, + nd: Value, + fdi: Value, + epk: Value, + path: [(Value, Value); 2], + root: Value, +} + +impl MySinsemillaHashDomainCircuit { + /// new + pub fn new() -> Self { + Self { + _lookup_marker: PhantomData, + v: Value::default(), + nd: Value::default(), + fdi: Value::default(), + epk: Value::default(), + root: Value::default(), + path: [(Value::default(), Value::default()); 2], + } + } +} + +impl Circuit + for MySinsemillaHashDomainCircuit +{ + type Config = MySinsemillaHashDomainConfig; + + type FloorPlanner = SimpleFloorPlanner; + + fn without_witnesses(&self) -> Self { + MySinsemillaHashDomainCircuit::new() + } + + fn configure(meta: &mut halo2_proofs::plonk::ConstraintSystem) -> Self::Config { + // Advice columns for Sinsemilla (bit decomposition, running sum, etc.) + let advices = [ + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + meta.advice_column(), + ]; + + let primary = meta.instance_column(); + meta.enable_equality(primary); + + let q_enabled = meta.complex_selector(); + + // Fixed columns for the Sinsemilla generator lookup table + let table_idx = meta.lookup_table_column(); + let lookup = ( + table_idx, + meta.lookup_table_column(), + meta.lookup_table_column(), + ); + + // Permutation over all advice columns. + for advice in advices.iter() { + meta.enable_equality(*advice); + } + + let lagrange_coeffs = [ + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + meta.fixed_column(), + ]; + + // Also use the first Lagrange coefficient column for loading global constants. + // It's free real estate :) + meta.enable_constant(lagrange_coeffs[0]); + + // We have a lot of free space in the right-most advice columns; use one of them + // for all of our range checks. + let range_check = Lookup::configure(meta, advices[9], table_idx); + + let ecc_config = EccChip::::configure( + meta, + advices, + lagrange_coeffs, + range_check, + ); + + // sinsemilla config uses 5 advice columns + let sinsemilla_config = SinsemillaChip::configure( + meta, + advices[..5].try_into().unwrap(), + advices[6], // is this correct advice colum for witness_pieces + lagrange_coeffs[0], + lookup, + range_check, + false, + ); + + (ecc_config, primary, sinsemilla_config, q_enabled) + } + + fn synthesize( + &self, + config: Self::Config, + mut layouter: impl Layouter, + ) -> Result<(), halo2_proofs::plonk::Error> { + let ecc_chip = EccChip::construct(config.0); + + // Load the Sinsemilla chip + // The two `SinsemillaChip`s share the same lookup table. + SinsemillaChip::::load( + config.2.clone(), + &mut layouter, + )?; + + let sinsemilla_chip = SinsemillaChip::construct(config.2.clone()); + + let merkle_crh = HashDomain::new( + sinsemilla_chip.clone(), + ecc_chip.clone(), + &OrchardHashDomains::MerkleCrh, + ); + + // === Step 1: Compute leaf = H(v || nd || fdi || epk) === + + // `a` = bits 0..=249 of `x(v)` + let a = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "v bits 0..250"), + [RangeConstrained::bitrange_of(self.v.value(), 0..250)], + )?; + + // b = bits 250..253 of v (3 bits), and bit 253 is sign (ỹ) — but we only need the bits + let b = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "v bits 250..253"), + [RangeConstrained::bitrange_of(self.v.value(), 250..253)], + )?; + + let c = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "nd bits 0..250"), + [RangeConstrained::bitrange_of(self.nd.value(), 0..250)], + )?; + + // d = bits 250..253 of nd + let d = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "nd bits 250..253"), + [RangeConstrained::bitrange_of(self.nd.value(), 250..253)], + )?; + + // e = bits 0..250 of fdi + let e = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "fdi bits 0..250"), + [RangeConstrained::bitrange_of(self.fdi.value(), 0..250)], + )?; + + // f = bits 250..253 of fdi + let f = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "fdi bits 250..253"), + [RangeConstrained::bitrange_of(self.fdi.value(), 250..253)], + )?; + + // g = bits 0..250 of epk + let g = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "epk bits 0..250"), + [RangeConstrained::bitrange_of(self.epk.value(), 0..250)], + )?; + + // h = bits 250..253 of epk + let h = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "epk bits 250..253"), + [RangeConstrained::bitrange_of(self.epk.value(), 250..253)], + )?; + + // === Assemble full message representing leaf === + let message = Message::from_pieces(sinsemilla_chip.clone(), vec![a, b, c, d, e, f, g, h]); + + // === Hash to point, generating leaf === + let (leaf_point, _aux) = + merkle_crh.hash_to_point(layouter.namespace(|| "hash v||nd||fdi||epk"), message)?; + + // Extract leaf as field element (x-coordinate) + let binding = leaf_point.inner().x(); + + let mut current = binding.value(); + + fn select(selector: Value, true_val: Value, false_val: Value) -> Value { + selector + .zip(true_val) + .zip(false_val) + .map(|((b, t), f)| if b { t } else { f }) + } + + // === Step 2: Compute Merkle root using path === + // this will always be the closest index to the root, because we do not append leaves to this tree. + for (i, (is_right, sibling)) in self.path.iter().enumerate() { + // Convert sibling: &Value --> Value<&Fp> + let sibling_ref: Value<&Fp> = sibling.as_ref(); + let is_right_value: Value = *is_right; + + let left_value = select(is_right_value, sibling_ref, current); + let right_value = select(is_right_value, current, sibling_ref); + + // Convert each to MessagePieces (same decomposition) + let l_lo = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "left lo"), + [RangeConstrained::bitrange_of(left_value, 0..250)], + )?; + let l_hi = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "left hi"), + [RangeConstrained::bitrange_of(left_value, 250..253)], + )?; + + let r_lo = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "right lo"), + [RangeConstrained::bitrange_of(right_value, 0..250)], + )?; + let r_hi = MessagePiece::from_subpieces( + sinsemilla_chip.clone(), + layouter.namespace(|| "right hi"), + [RangeConstrained::bitrange_of(right_value, 250..253)], + )?; + + // Construct single message: left_lo || left_hi || right_lo || right_hi + let message = + Message::from_pieces(sinsemilla_chip.clone(), vec![l_lo, l_hi, r_lo, r_hi]); + + // Hash: H(left || right) + let (parent_point, _) = merkle_crh.hash_to_point( + layouter.namespace(|| format!("merkle level {}", i)), + message, + )?; + + // Update current to x-coordinate of parent point + let current = leaf_point.inner().x().value().copied(); + } + + // === Step 3: Constrain computed_leaf == private_leaf === + + // === Step 4: Constrain computed root == public root === + let computed_root_cell = sinsemilla_chip.witness_message_piece( + layouter.namespace(|| "witness final root"), + current.cloned(), + 253, + )?; + layouter.constrain_instance(computed_root_cell.cell(), config.1, 2)?; // index 2 + + // === Step 5: Constrain root is tree of leaf + + Ok(()) + } +} diff --git a/zk-crates/zk-headstash/src/gen.rs b/zk-crates/zk-headstash/src/gen.rs new file mode 100644 index 0000000..c6ff69c --- /dev/null +++ b/zk-crates/zk-headstash/src/gen.rs @@ -0,0 +1,360 @@ +//! Protobuf definitions for Penumbra. +//! +//! This crate only contains the `.proto` files and the Rust types generated +//! from them. These types only handle parsing the wire format; validation +//! should be performed by converting them into an appropriate domain type, as +//! in the following diagram: +//! +//! ```ascii +//! ┌───────┐ ┌──────────────┐ ┌──────────────┐ +//! │encoded│ protobuf │penumbra_sdk_proto│ TryFrom/Into │ domain types │ +//! │ bytes │<──wire ─>│ types │<─validation ─>│(other crates)│ +//! └───────┘ format └──────────────┘ boundary └──────────────┘ +//! ``` +//! +//! The [`DomainType`] marker trait can be implemented on a domain type to ensure +//! these conversions exist. + +// The autogen code is not clippy-clean, so we disable some clippy warnings for this crate. +#![allow(clippy::derive_partial_eq_without_eq)] +#![allow(clippy::large_enum_variant)] +#![allow(clippy::needless_borrow)] +#![allow(clippy::unwrap_used)] +#![allow(non_snake_case)] +#![cfg_attr(docsrs, feature(doc_auto_cfg))] + +pub use prost::{Message, Name}; + +// /// Helper methods used for shaping the JSON (and other Serde) formats derived from the protos. +// pub mod serializers; + +// // /// Helper trait for using Protobuf messages as ABCI events. +// // pub mod event; +// // mod protobuf; +// pub use protobuf::DomainType; + +#[cfg(feature = "cnidarium")] +pub mod state; +#[cfg(feature = "cnidarium")] +pub use state::StateReadProto; +#[cfg(feature = "cnidarium")] +pub use state::StateWriteProto; + +pub use headstash::*; + +/// headstash module +pub mod headstash { + + /// Top-level structures for the Penumbra application. + pub mod actions { + /// v1 + pub mod v1 { + include!("gen/headstash.actions.v1.rs"); + } + } + + /// metamask snap-n-pull types + pub mod snp { + /// v1 + pub mod v1 { + include!("gen/headstash.snp.v1.rs"); + } + } + /// Top-level structures for the Penumbra application. + pub mod types { + /// v1 + pub mod v1 { + include!("gen/headstash.types.v1.rs"); + } + } + /// vote extensions information + pub mod extendo { + /// v1 + pub mod v1 { + include!("gen/headstash.extendo.v1.rs"); + } + } + + // pub mod asset { + // pub mod v1 { + // include!("gen/penumbra.core.asset.v1.rs"); + // include!("gen/penumbra.core.asset.v1.serde.rs"); + // } + // } + + // pub mod txhash { + // pub mod v1 { + // include!("gen/penumbra.core.txhash.v1.rs"); + // include!("gen/penumbra.core.txhash.v1.serde.rs"); + // } + // } + + // /// Components of the Penumbra application. + // pub mod component { + // pub mod auction { + // pub mod v1 { + // include!("gen/penumbra.core.component.auction.v1.rs"); + // include!("gen/penumbra.core.component.auction.v1.serde.rs"); + // } + // } + // pub mod compact_block { + // pub mod v1 { + // include!("gen/penumbra.core.component.compact_block.v1.rs"); + // include!("gen/penumbra.core.component.compact_block.v1.serde.rs"); + // } + // } + + // pub mod community_pool { + // pub mod v1 { + // include!("gen/penumbra.core.component.community_pool.v1.rs"); + // include!("gen/penumbra.core.component.community_pool.v1.serde.rs"); + // } + // } + + // pub mod dex { + // pub mod v1 { + // include!("gen/penumbra.core.component.dex.v1.rs"); + // include!("gen/penumbra.core.component.dex.v1.serde.rs"); + // } + // } + + // pub mod distributions { + // pub mod v1 { + // include!("gen/penumbra.core.component.distributions.v1.rs"); + // include!("gen/penumbra.core.component.distributions.v1.serde.rs"); + // } + // } + + // pub mod fee { + // pub mod v1 { + // include!("gen/penumbra.core.component.fee.v1.rs"); + // include!("gen/penumbra.core.component.fee.v1.serde.rs"); + // } + // } + + // pub mod funding { + // pub mod v1 { + // include!("gen/penumbra.core.component.funding.v1.rs"); + // include!("gen/penumbra.core.component.funding.v1.serde.rs"); + // } + // } + + // pub mod governance { + // pub mod v1 { + // include!("gen/penumbra.core.component.governance.v1.rs"); + // include!("gen/penumbra.core.component.governance.v1.serde.rs"); + // } + // } + + // pub mod ibc { + // pub mod v1 { + // include!("gen/penumbra.core.component.ibc.v1.rs"); + // include!("gen/penumbra.core.component.ibc.v1.serde.rs"); + // } + // } + + // pub mod sct { + // pub mod v1 { + // include!("gen/penumbra.core.component.sct.v1.rs"); + // include!("gen/penumbra.core.component.sct.v1.serde.rs"); + // } + // } + + // pub mod shielded_pool { + // pub mod v1 { + // include!("gen/penumbra.core.component.shielded_pool.v1.rs"); + // include!("gen/penumbra.core.component.shielded_pool.v1.serde.rs"); + // } + // } + + // pub mod stake { + // pub mod v1 { + // include!("gen/penumbra.core.component.stake.v1.rs"); + // include!("gen/penumbra.core.component.stake.v1.serde.rs"); + // } + // } + // } + + // pub mod keys { + // pub mod v1 { + // include!("gen/penumbra.core.keys.v1.rs"); + // include!("gen/penumbra.core.keys.v1.serde.rs"); + // } + // } + + // pub mod num { + // pub mod v1 { + // include!("gen/penumbra.core.num.v1.rs"); + // include!("gen/penumbra.core.num.v1.serde.rs"); + // } + // } + + // /// Transaction structures. + // pub mod transaction { + // pub mod v1 { + // include!("gen/penumbra.core.transaction.v1.rs"); + // include!("gen/penumbra.core.transaction.v1.serde.rs"); + // } + // } + // } + + // /// Cryptography primitives used by Penumbra. + // pub mod crypto { + // pub mod decaf377_fmd { + // pub mod v1 { + // include!("gen/penumbra.crypto.decaf377_fmd.v1.rs"); + // include!("gen/penumbra.crypto.decaf377_fmd.v1.serde.rs"); + // } + // } + + // pub mod decaf377_frost { + // pub mod v1 { + // include!("gen/penumbra.crypto.decaf377_frost.v1.rs"); + // include!("gen/penumbra.crypto.decaf377_frost.v1.serde.rs"); + // } + // } + + // pub mod decaf377_rdsa { + // pub mod v1 { + // include!("gen/penumbra.crypto.decaf377_rdsa.v1.rs"); + // include!("gen/penumbra.crypto.decaf377_rdsa.v1.serde.rs"); + // } + // } + + // pub mod tct { + // pub mod v1 { + // include!("gen/penumbra.crypto.tct.v1.rs"); + // include!("gen/penumbra.crypto.tct.v1.serde.rs"); + // } + // } + // } + + // /// Custody protocol structures. + // pub mod custody { + // pub mod threshold { + // pub mod v1 { + // include!("gen/penumbra.custody.threshold.v1.rs"); + // include!("gen/penumbra.custody.threshold.v1.serde.rs"); + // } + // } + + // pub mod v1 { + // include!("gen/penumbra.custody.v1.rs"); + // include!("gen/penumbra.custody.v1.serde.rs"); + // } + // } + + // pub mod util { + // pub mod tendermint_proxy { + // pub mod v1 { + // include!("gen/penumbra.util.tendermint_proxy.v1.rs"); + // include!("gen/penumbra.util.tendermint_proxy.v1.serde.rs"); + // } + // } + // } + + // pub mod tools { + // pub mod summoning { + // pub mod v1 { + // include!("gen/penumbra.tools.summoning.v1.rs"); + // include!("gen/penumbra.tools.summoning.v1.serde.rs"); + // } + // } + // } + + // /// View protocol structures. + // pub mod view { + // pub mod v1 { + // include!("gen/penumbra.view.v1.rs"); + // include!("gen/penumbra.view.v1.serde.rs"); + // } + // } + + // pub mod tendermint { + // pub mod crypto { + // include!("gen/tendermint.crypto.rs"); + // } + + // #[allow(clippy::large_enum_variant)] + // pub mod types { + // include!("gen/tendermint.types.rs"); + // } + + // pub mod version { + // include!("gen/tendermint.version.rs"); + // } + + // pub mod p2p { + // include!("gen/tendermint.p2p.rs"); + // } + + // pub mod abci { + // include!("gen/tendermint.abci.rs"); + // } + // } + + // pub mod noble { + // pub mod forwarding { + // pub mod v1 { + // include!("gen/noble.forwarding.v1.rs"); + // } + // } + // } + + // pub mod cosmos { + // pub mod base { + // pub mod v1beta1 { + // include!("gen/cosmos.base.v1beta1.rs"); + // } + + // pub mod query { + // pub mod v1beta1 { + // include!("gen/cosmos.base.query.v1beta1.rs"); + // } + // } + + // pub mod abci { + // pub mod v1beta1 { + // include!("gen/cosmos.base.abci.v1beta1.rs"); + // } + // } + // } + + // pub mod auth { + // pub mod v1beta1 { + // include!("gen/cosmos.auth.v1beta1.rs"); + // } + // } + + // pub mod bank { + // pub mod v1beta1 { + // include!("gen/cosmos.bank.v1beta1.rs"); + // } + // } + + // pub mod tx { + // pub mod v1beta1 { + // include!("gen/cosmos.tx.v1beta1.rs"); + // } + + // pub mod config { + // pub mod v1 { + // include!("gen/cosmos.tx.config.v1.rs"); + // } + // } + + // pub mod signing { + // pub mod v1beta1 { + // include!("gen/cosmos.tx.signing.v1beta1.rs"); + // } + // } + // } + + // pub mod crypto { + // pub mod multisig { + // pub mod v1beta1 { + // include!("gen/cosmos.crypto.multisig.v1beta1.rs"); + // } + // } + // } +} diff --git a/zk-crates/zk-headstash/src/gen/headstash.actions.v1.rs b/zk-crates/zk-headstash/src/gen/headstash.actions.v1.rs new file mode 100644 index 0000000..0816cfa --- /dev/null +++ b/zk-crates/zk-headstash/src/gen/headstash.actions.v1.rs @@ -0,0 +1,1029 @@ +// This file is @generated by prost-build. +/// Create a distribution headstash tree for a given distribution param +#[derive( + serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message, +)] +pub struct MsgCreateHeadstashTree {} +impl ::prost::Name for MsgCreateHeadstashTree { + const NAME: &'static str = "MsgCreateHeadstashTree"; + const PACKAGE: &'static str = "headstash.actions.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.actions.v1.MsgCreateHeadstashTree".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.actions.v1.MsgCreateHeadstashTree".into() + } +} +/// Create a Headstash instance +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct MsgCreateHeadstash { + /// HeadstashInstanceParams bytes + #[prost(bytes = "vec", tag = "1")] + pub params: ::prost::alloc::vec::Vec, +} +impl ::prost::Name for MsgCreateHeadstash { + const NAME: &'static str = "MsgCreateHeadstash"; + const PACKAGE: &'static str = "headstash.actions.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.actions.v1.MsgCreateHeadstash".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.actions.v1.MsgCreateHeadstash".into() + } +} +/// response of creating the tree +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct MsgCreateHeadstashTreeResponse { + /// genesis tree root + #[prost(string, tag = "1")] + pub root: ::prost::alloc::string::String, + /// total leafs in genesis tree + #[prost(uint64, tag = "2")] + pub total_leafs: u64, + /// total eligible members + #[prost(uint64, tag = "3")] + pub total_elig: u64, + /// total byte size of genesis tree param file + #[prost(uint64, tag = "4")] + pub total_size: u64, +} +impl ::prost::Name for MsgCreateHeadstashTreeResponse { + const NAME: &'static str = "MsgCreateHeadstashTreeResponse"; + const PACKAGE: &'static str = "headstash.actions.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.actions.v1.MsgCreateHeadstashTreeResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.actions.v1.MsgCreateHeadstashTreeResponse".into() + } +} +/// request for client to access a circuit verifying key from its storage layer +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct MsgManageHeadstashKeyFromStorage { + /// technique + #[prost(oneof = "msg_manage_headstash_key_from_storage::Tech", tags = "1, 2")] + pub tech: ::core::option::Option, +} +/// Nested message and enum types in `MsgManageHeadstashKeyFromStorage`. +pub mod msg_manage_headstash_key_from_storage { + /// technique + #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum Tech { + /// sets key, or removes key via id if empty. + /// keys are mapped as values to prefixes of blake3 hashes of the hex encoded binary + #[prost(message, tag = "1")] + SetHeadstashPk(super::SetHeadstashKey), + /// retrieves key via prefix (blake3 hash of pk) + #[prost(message, tag = "2")] + GetHeadstashPk(super::GetHeadstashKey), + } +} +impl ::prost::Name for MsgManageHeadstashKeyFromStorage { + const NAME: &'static str = "MsgManageHeadstashKeyFromStorage"; + const PACKAGE: &'static str = "headstash.actions.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.actions.v1.MsgManageHeadstashKeyFromStorage".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.actions.v1.MsgManageHeadstashKeyFromStorage".into() + } +} +/// set a headstash instance ProvingKey bytes +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct SetHeadstashKey { + /// headstash instance ProvingKey bytes + #[prost(bytes = "vec", tag = "1")] + pub data: ::prost::alloc::vec::Vec, +} +impl ::prost::Name for SetHeadstashKey { + const NAME: &'static str = "SetHeadstashKey"; + const PACKAGE: &'static str = "headstash.actions.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.actions.v1.SetHeadstashKey".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.actions.v1.SetHeadstashKey".into() + } +} +/// get a headstash instance ProvingKey bytes given its storage key +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GetHeadstashKey { + /// store key for headstash circuit + #[prost(string, tag = "1")] + pub key: ::prost::alloc::string::String, +} +impl ::prost::Name for GetHeadstashKey { + const NAME: &'static str = "GetHeadstashKey"; + const PACKAGE: &'static str = "headstash.actions.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.actions.v1.GetHeadstashKey".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.actions.v1.GetHeadstashKey".into() + } +} +/// response for client to access a circuit verifying key from its storage layer +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct MsgManageHeadstashKeyFromStorageResponse { + /// store key for headstash circuit + #[prost(string, tag = "1")] + pub key: ::prost::alloc::string::String, +} +impl ::prost::Name for MsgManageHeadstashKeyFromStorageResponse { + const NAME: &'static str = "MsgManageHeadstashKeyFromStorageResponse"; + const PACKAGE: &'static str = "headstash.actions.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.actions.v1.MsgManageHeadstashKeyFromStorageResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.actions.v1.MsgManageHeadstashKeyFromStorageResponse".into() + } +} +/// Create a note nullifier for a given note input +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct MsgPrepareNoteNullifier { + /// note-denom + #[prost(string, tag = "1")] + pub nd: ::prost::alloc::string::String, + /// value + #[prost(uint64, tag = "2")] + pub v: u64, + /// fixed-denom-index + #[prost(uint64, tag = "3")] + pub fdi: u64, + /// recipient + #[prost(string, tag = "4")] + pub recp: ::prost::alloc::string::String, + /// epk + #[prost(bytes = "vec", tag = "5")] + pub epk: ::prost::alloc::vec::Vec, + /// epk + #[prost(bytes = "vec", tag = "6")] + pub esk: ::prost::alloc::vec::Vec, + /// headstash sinsemilla root + #[prost(bytes = "vec", tag = "7")] + pub sinroot: ::prost::alloc::vec::Vec, +} +impl ::prost::Name for MsgPrepareNoteNullifier { + const NAME: &'static str = "MsgPrepareNoteNullifier"; + const PACKAGE: &'static str = "headstash.actions.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.actions.v1.MsgPrepareNoteNullifier".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.actions.v1.MsgPrepareNoteNullifier".into() + } +} +/// Return the resonse for a spefici note input +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct MsgPrepareNoteNullifierResponse { + /// all instance values required for proof creation + #[prost(bytes = "vec", repeated, tag = "1")] + pub instances: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, +} +impl ::prost::Name for MsgPrepareNoteNullifierResponse { + const NAME: &'static str = "MsgPrepareNoteNullifierResponse"; + const PACKAGE: &'static str = "headstash.actions.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.actions.v1.MsgPrepareNoteNullifierResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.actions.v1.MsgPrepareNoteNullifierResponse".into() + } +} +/// All relevant information created during successful headstash creation +#[derive( + serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message, +)] +pub struct MsgCreateHeadstashResponse {} +impl ::prost::Name for MsgCreateHeadstashResponse { + const NAME: &'static str = "MsgCreateHeadstashResponse"; + const PACKAGE: &'static str = "headstash.actions.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.actions.v1.MsgCreateHeadstashResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.actions.v1.MsgCreateHeadstashResponse".into() + } +} +/// Create a list of the notes for a given address and headstash instance +#[derive( + serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message, +)] +pub struct MsgCreateHeadstashNotes {} +impl ::prost::Name for MsgCreateHeadstashNotes { + const NAME: &'static str = "MsgCreateHeadstashNotes"; + const PACKAGE: &'static str = "headstash.actions.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.actions.v1.MsgCreateHeadstashNotes".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.actions.v1.MsgCreateHeadstashNotes".into() + } +} +/// output of note instance location +#[derive( + serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message, +)] +pub struct MsgCreateHeadstashNoteResponse {} +impl ::prost::Name for MsgCreateHeadstashNoteResponse { + const NAME: &'static str = "MsgCreateHeadstashNoteResponse"; + const PACKAGE: &'static str = "headstash.actions.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.actions.v1.MsgCreateHeadstashNoteResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.actions.v1.MsgCreateHeadstashNoteResponse".into() + } +} +/// Generated client implementations. +#[cfg(feature = "rpc")] +pub mod headstash_service_client { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value + )] + use tonic::codegen::http::Uri; + use tonic::codegen::*; + #[derive(Debug, Clone)] + pub struct HeadstashServiceClient { + inner: tonic::client::Grpc, + } + impl HeadstashServiceClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl HeadstashServiceClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> HeadstashServiceClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + >>::Error: + Into + std::marker::Send + std::marker::Sync, + { + HeadstashServiceClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + /// client access to storage layer dedicated for headstash keys + pub async fn manage_headstash_key_from_storage( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner.ready().await.map_err(|e| { + tonic::Status::unknown(format!("Service was not ready: {}", e.into())) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/headstash.actions.v1.HeadstashService/ManageHeadstashKeyFromStorage", + ); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new( + "headstash.actions.v1.HeadstashService", + "ManageHeadstashKeyFromStorage", + )); + self.inner.unary(req, path, codec).await + } + /// retrieve token holder distribution + pub async fn create_headstash_notes( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner.ready().await.map_err(|e| { + tonic::Status::unknown(format!("Service was not ready: {}", e.into())) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/headstash.actions.v1.HeadstashService/CreateHeadstashNotes", + ); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new( + "headstash.actions.v1.HeadstashService", + "CreateHeadstashNotes", + )); + self.inner.unary(req, path, codec).await + } + /// Creates a new headstash instance + pub async fn create_new_headstash( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::unknown(format!("Service was not ready: {}", e.into())) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/headstash.actions.v1.HeadstashService/CreateNewHeadstash", + ); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new( + "headstash.actions.v1.HeadstashService", + "CreateNewHeadstash", + )); + self.inner.unary(req, path, codec).await + } + /// creates a note nullifier given private inputs + pub async fn prepare_note_nullifier( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner.ready().await.map_err(|e| { + tonic::Status::unknown(format!("Service was not ready: {}", e.into())) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/headstash.actions.v1.HeadstashService/PrepareNoteNullifier", + ); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new( + "headstash.actions.v1.HeadstashService", + "PrepareNoteNullifier", + )); + self.inner.unary(req, path, codec).await + } + /// generate headstash instance tree + pub async fn create_headstash_tree( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner.ready().await.map_err(|e| { + tonic::Status::unknown(format!("Service was not ready: {}", e.into())) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/headstash.actions.v1.HeadstashService/CreateHeadstashTree", + ); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new( + "headstash.actions.v1.HeadstashService", + "CreateHeadstashTree", + )); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +#[cfg(feature = "rpc")] +pub mod headstash_service_server { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value + )] + use std::boxed::Box; + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with HeadstashServiceServer. + #[async_trait] + pub trait HeadstashService: std::marker::Send + std::marker::Sync + 'static { + /// client access to storage layer dedicated for headstash keys + async fn manage_headstash_key_from_storage( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// retrieve token holder distribution + async fn create_headstash_notes( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// Creates a new headstash instance + async fn create_new_headstash( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// creates a note nullifier given private inputs + async fn prepare_note_nullifier( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// generate headstash instance tree + async fn create_headstash_tree( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + #[derive(Debug)] + pub struct HeadstashServiceServer { + inner: Arc, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + impl HeadstashServiceServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor(inner: T, interceptor: F) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for HeadstashServiceServer + where + T: HeadstashService, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + match req.uri().path() { + "/headstash.actions.v1.HeadstashService/ManageHeadstashKeyFromStorage" => { + #[allow(non_camel_case_types)] + struct ManageHeadstashKeyFromStorageSvc(pub Arc); + impl + tonic::server::UnaryService + for ManageHeadstashKeyFromStorageSvc + { + type Response = super::MsgManageHeadstashKeyFromStorageResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::manage_headstash_key_from_storage( + &inner, request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ManageHeadstashKeyFromStorageSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/headstash.actions.v1.HeadstashService/CreateHeadstashNotes" => { + #[allow(non_camel_case_types)] + struct CreateHeadstashNotesSvc(pub Arc); + impl + tonic::server::UnaryService + for CreateHeadstashNotesSvc + { + type Response = super::MsgCreateHeadstashNoteResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::create_headstash_notes(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = CreateHeadstashNotesSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/headstash.actions.v1.HeadstashService/CreateNewHeadstash" => { + #[allow(non_camel_case_types)] + struct CreateNewHeadstashSvc(pub Arc); + impl tonic::server::UnaryService + for CreateNewHeadstashSvc + { + type Response = super::MsgCreateHeadstashResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::create_new_headstash(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = CreateNewHeadstashSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/headstash.actions.v1.HeadstashService/PrepareNoteNullifier" => { + #[allow(non_camel_case_types)] + struct PrepareNoteNullifierSvc(pub Arc); + impl + tonic::server::UnaryService + for PrepareNoteNullifierSvc + { + type Response = super::MsgPrepareNoteNullifierResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::prepare_note_nullifier(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = PrepareNoteNullifierSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/headstash.actions.v1.HeadstashService/CreateHeadstashTree" => { + #[allow(non_camel_case_types)] + struct CreateHeadstashTreeSvc(pub Arc); + impl + tonic::server::UnaryService + for CreateHeadstashTreeSvc + { + type Response = super::MsgCreateHeadstashTreeResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::create_headstash_tree(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = CreateHeadstashTreeSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => Box::pin(async move { + let mut response = http::Response::new(tonic::body::Body::default()); + let headers = response.headers_mut(); + headers.insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers.insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) + }), + } + } + } + impl Clone for HeadstashServiceServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "headstash.actions.v1.HeadstashService"; + impl tonic::server::NamedService for HeadstashServiceServer { + const NAME: &'static str = SERVICE_NAME; + } +} +/// Generated client implementations. +#[cfg(feature = "rpc")] +pub mod headstash_actions_service_client { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value + )] + use tonic::codegen::http::Uri; + use tonic::codegen::*; + #[derive(Debug, Clone)] + pub struct HeadstashActionsServiceClient { + inner: tonic::client::Grpc, + } + impl HeadstashActionsServiceClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl HeadstashActionsServiceClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> HeadstashActionsServiceClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + >>::Error: + Into + std::marker::Send + std::marker::Sync, + { + HeadstashActionsServiceClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + } +} +/// Generated server implementations. +#[cfg(feature = "rpc")] +pub mod headstash_actions_service_server { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value + )] + use std::boxed::Box; + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with HeadstashActionsServiceServer. + #[async_trait] + pub trait HeadstashActionsService: std::marker::Send + std::marker::Sync + 'static {} + #[derive(Debug)] + pub struct HeadstashActionsServiceServer { + inner: Arc, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + impl HeadstashActionsServiceServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor(inner: T, interceptor: F) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for HeadstashActionsServiceServer + where + T: HeadstashActionsService, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + match req.uri().path() { + _ => Box::pin(async move { + let mut response = http::Response::new(tonic::body::Body::default()); + let headers = response.headers_mut(); + headers.insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers.insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) + }), + } + } + } + impl Clone for HeadstashActionsServiceServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "headstash.actions.v1.HeadstashActionsService"; + impl tonic::server::NamedService for HeadstashActionsServiceServer { + const NAME: &'static str = SERVICE_NAME; + } +} diff --git a/zk-crates/zk-headstash/src/gen/headstash.extendo.v1.rs b/zk-crates/zk-headstash/src/gen/headstash.extendo.v1.rs new file mode 100644 index 0000000..45e3d83 --- /dev/null +++ b/zk-crates/zk-headstash/src/gen/headstash.extendo.v1.rs @@ -0,0 +1,19 @@ +// This file is @generated by prost-build. +/// HeadstashVoteExtensions defines the vote extension structure for nullifiers. +#[derive(serde::Serialize, serde::Deserialize)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VoteExtension { + /// Headstashes defines a map of id(HeadstashAddr) -> new nullifiers . i.e. 1 -> vec![0x123..\] (bytes). + #[prost(map = "uint64, bytes", tag = "1")] + pub headstashes: ::std::collections::HashMap>, +} +impl ::prost::Name for VoteExtension { + const NAME: &'static str = "VoteExtension"; + const PACKAGE: &'static str = "headstash.extendo.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.extendo.v1.VoteExtension".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.extendo.v1.VoteExtension".into() + } +} diff --git a/zk-crates/zk-headstash/src/gen/headstash.snp.v1.rs b/zk-crates/zk-headstash/src/gen/headstash.snp.v1.rs new file mode 100644 index 0000000..28b8869 --- /dev/null +++ b/zk-crates/zk-headstash/src/gen/headstash.snp.v1.rs @@ -0,0 +1,435 @@ +// This file is @generated by prost-build. +/// serialized note data +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct SerializedNoteData { + /// nullifier key + #[prost(bytes = "vec", tag = "1")] + pub nk: ::prost::alloc::vec::Vec, + /// nullifier + #[prost(bytes = "vec", tag = "2")] + pub nul: ::prost::alloc::vec::Vec, + /// note-commitment + #[prost(bytes = "vec", tag = "3")] + pub cm: ::prost::alloc::vec::Vec, + /// value + #[prost(string, tag = "4")] + pub v: ::prost::alloc::string::String, + /// nd + #[prost(string, tag = "5")] + pub nd: ::prost::alloc::string::String, + /// fixed index + #[prost(uint64, tag = "6")] + pub recp: u64, + /// recp + #[prost(uint64, tag = "7")] + pub fdi: u64, + /// spent + #[prost(bool, tag = "8")] + pub spent: bool, +} +impl ::prost::Name for SerializedNoteData { + const NAME: &'static str = "SerializedNoteData"; + const PACKAGE: &'static str = "headstash.snp.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.snp.v1.SerializedNoteData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.snp.v1.SerializedNoteData".into() + } +} +/// claim a headstash note and broadcast claim +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct MsgClaimHeadstashRequest { + /// proof bytes + #[prost(bytes = "vec", tag = "1")] + pub proof: ::prost::alloc::vec::Vec, + /// instances + #[prost(bytes = "vec", repeated, tag = "2")] + pub instance: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, + /// headstash contract address + #[prost(string, tag = "3")] + pub hid: ::prost::alloc::string::String, +} +impl ::prost::Name for MsgClaimHeadstashRequest { + const NAME: &'static str = "MsgClaimHeadstashRequest"; + const PACKAGE: &'static str = "headstash.snp.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.snp.v1.MsgClaimHeadstashRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.snp.v1.MsgClaimHeadstashRequest".into() + } +} +/// response of claiming a headhstash note +#[derive( + serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message, +)] +pub struct MsgClaimHeadstashResponse {} +impl ::prost::Name for MsgClaimHeadstashResponse { + const NAME: &'static str = "MsgClaimHeadstashResponse"; + const PACKAGE: &'static str = "headstash.snp.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.snp.v1.MsgClaimHeadstashResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.snp.v1.MsgClaimHeadstashResponse".into() + } +} +/// A transaction that appeared within a given block. +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct DownloadNullifierStateResponse { + /// data + #[prost(bytes = "vec", tag = "1")] + pub data: ::prost::alloc::vec::Vec, +} +impl ::prost::Name for DownloadNullifierStateResponse { + const NAME: &'static str = "DownloadNullifierStateResponse"; + const PACKAGE: &'static str = "headstash.snp.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.snp.v1.DownloadNullifierStateResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.snp.v1.DownloadNullifierStateResponse".into() + } +} +/// A transaction that appeared within a given block. +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct DownloadNullifierStateRequest { + /// id + #[prost(string, tag = "1")] + pub id: ::prost::alloc::string::String, + /// id + #[prost(bytes = "vec", tag = "2")] + pub pk: ::prost::alloc::vec::Vec, +} +impl ::prost::Name for DownloadNullifierStateRequest { + const NAME: &'static str = "DownloadNullifierStateRequest"; + const PACKAGE: &'static str = "headstash.snp.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.snp.v1.DownloadNullifierStateRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.snp.v1.DownloadNullifierStateRequest".into() + } +} +/// A transaction that appeared within a given block. +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct UploadNullifierStateRequest { + /// id of claim + #[prost(string, tag = "1")] + pub id: ::prost::alloc::string::String, + /// data + #[prost(bytes = "vec", tag = "2")] + pub data: ::prost::alloc::vec::Vec, + /// sig + #[prost(bytes = "vec", tag = "3")] + pub sig: ::prost::alloc::vec::Vec, +} +impl ::prost::Name for UploadNullifierStateRequest { + const NAME: &'static str = "UploadNullifierStateRequest"; + const PACKAGE: &'static str = "headstash.snp.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.snp.v1.UploadNullifierStateRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.snp.v1.UploadNullifierStateRequest".into() + } +} +/// A transaction that appeared within a given block. +#[derive( + serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message, +)] +pub struct UploadNullifierStateResponse {} +impl ::prost::Name for UploadNullifierStateResponse { + const NAME: &'static str = "UploadNullifierStateResponse"; + const PACKAGE: &'static str = "headstash.snp.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.snp.v1.UploadNullifierStateResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.snp.v1.UploadNullifierStateResponse".into() + } +} +/// Generated client implementations. +#[cfg(feature = "rpc")] +pub mod headstash_snap_service_client { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value + )] + use tonic::codegen::http::Uri; + use tonic::codegen::*; + #[derive(Debug, Clone)] + pub struct HeadstashSnapServiceClient { + inner: tonic::client::Grpc, + } + impl HeadstashSnapServiceClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl HeadstashSnapServiceClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> HeadstashSnapServiceClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + >>::Error: + Into + std::marker::Send + std::marker::Sync, + { + HeadstashSnapServiceClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + /// claim a headstash + pub async fn claim_headstash( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::unknown(format!("Service was not ready: {}", e.into())) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/headstash.snp.v1.HeadstashSnapService/ClaimHeadstash", + ); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new( + "headstash.snp.v1.HeadstashSnapService", + "ClaimHeadstash", + )); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +#[cfg(feature = "rpc")] +pub mod headstash_snap_service_server { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value + )] + use std::boxed::Box; + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with HeadstashSnapServiceServer. + #[async_trait] + pub trait HeadstashSnapService: std::marker::Send + std::marker::Sync + 'static { + /// claim a headstash + async fn claim_headstash( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + } + #[derive(Debug)] + pub struct HeadstashSnapServiceServer { + inner: Arc, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + impl HeadstashSnapServiceServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor(inner: T, interceptor: F) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for HeadstashSnapServiceServer + where + T: HeadstashSnapService, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + match req.uri().path() { + "/headstash.snp.v1.HeadstashSnapService/ClaimHeadstash" => { + #[allow(non_camel_case_types)] + struct ClaimHeadstashSvc(pub Arc); + impl + tonic::server::UnaryService + for ClaimHeadstashSvc + { + type Response = super::MsgClaimHeadstashResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::claim_headstash(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ClaimHeadstashSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => Box::pin(async move { + let mut response = http::Response::new(tonic::body::Body::default()); + let headers = response.headers_mut(); + headers.insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers.insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) + }), + } + } + } + impl Clone for HeadstashSnapServiceServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "headstash.snp.v1.HeadstashSnapService"; + impl tonic::server::NamedService for HeadstashSnapServiceServer { + const NAME: &'static str = SERVICE_NAME; + } +} diff --git a/zk-crates/zk-headstash/src/gen/headstash.types.v1.rs b/zk-crates/zk-headstash/src/gen/headstash.types.v1.rs new file mode 100644 index 0000000..318883a --- /dev/null +++ b/zk-crates/zk-headstash/src/gen/headstash.types.v1.rs @@ -0,0 +1,49 @@ +// This file is @generated by prost-build. +/// HeadstashNote +#[derive(serde::Serialize, serde::Deserialize)] +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct HeadstashNote { + /// psi + #[prost(string, tag = "1")] + pub psi: ::prost::alloc::string::String, + /// epk + #[prost(bytes = "vec", tag = "2")] + pub epk: ::prost::alloc::vec::Vec, + /// esk + #[prost(bytes = "vec", optional, tag = "3")] + pub esk: ::core::option::Option<::prost::alloc::vec::Vec>, + /// nul_sk + #[prost(bytes = "vec", tag = "4")] + pub nul_sk: ::prost::alloc::vec::Vec, + /// nd + #[prost(bytes = "vec", tag = "5")] + pub nd: ::prost::alloc::vec::Vec, + /// fdi + #[prost(uint64, tag = "6")] + pub fdi: u64, + /// v + #[prost(uint64, tag = "7")] + pub v: u64, + /// recp + #[prost(bytes = "vec", tag = "8")] + pub recp: ::prost::alloc::vec::Vec, + /// m + #[prost(bytes = "vec", tag = "9")] + pub m: ::prost::alloc::vec::Vec, + /// null + #[prost(bytes = "vec", tag = "10")] + pub nul: ::prost::alloc::vec::Vec, + /// cm + #[prost(bytes = "vec", tag = "11")] + pub cm: ::prost::alloc::vec::Vec, +} +impl ::prost::Name for HeadstashNote { + const NAME: &'static str = "HeadstashNote"; + const PACKAGE: &'static str = "headstash.types.v1"; + fn full_name() -> ::prost::alloc::string::String { + "headstash.types.v1.HeadstashNote".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/headstash.types.v1.HeadstashNote".into() + } +} diff --git a/zk-crates/zk-headstash/src/keys.rs b/zk-crates/zk-headstash/src/keys.rs new file mode 100644 index 0000000..f583f7e --- /dev/null +++ b/zk-crates/zk-headstash/src/keys.rs @@ -0,0 +1,1205 @@ +//! Key structures for Orchard. + +use alloc::vec::Vec; +use core2::io::{self, Read, Write}; + +use ::zip32::{AccountId, ChildIndex}; +use aes::Aes256; +use blake2b_simd::{Hash as Blake2bHash, Params}; +use fpe::ff1::{BinaryNumeralString, FF1}; +use group::{ + ff::{Field, PrimeField}, + prime::PrimeCurveAffine, + Curve, GroupEncoding, +}; +use pasta_curves::pallas; +use rand::RngCore; +use secp256k1::SecretKey; +use subtle::{Choice, ConditionallySelectable, ConstantTimeEq, CtOption}; +use zcash_note_encryption::EphemeralKeyBytes; + +use crate::{ + address::Address, + primitives::redpallas::{self, SpendAuth}, + spec::{ + commit_ivk, diversify_hash, extract_p, ka_orchard, ka_orchard_prepared, prf_nf, to_base, + to_scalar, NonIdentityPallasPoint, NonZeroPallasBase, NonZeroPallasScalar, + PreparedNonIdentityBase, PreparedNonZeroScalar, PrfExpand, + }, + zip32::{self, ExtendedSpendingKey}, +}; + +pub use ::zip32::{DiversifierIndex, Scope}; + +const KDF_ORCHARD_PERSONALIZATION: &[u8; 16] = b"Zcash_OrchardKDF"; +const ZIP32_PURPOSE: u32 = 32; + +/// A spending key, from which all key material is derived. +/// +/// $\mathsf{sk}$ as defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. +/// +/// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents +#[derive(Debug, Copy, Clone)] +pub struct SpendingKey([u8; 32]); + +impl ConstantTimeEq for SpendingKey { + fn ct_eq(&self, other: &Self) -> Choice { + self.to_bytes().ct_eq(other.to_bytes()) + } +} + +impl SpendingKey { + /// Generates a random spending key. + /// + /// This is only used when generating dummy notes. Real spending keys should be + /// derived according to [ZIP 32]. + /// + /// [ZIP 32]: https://zips.z.cash/zip-0032 + pub(crate) fn random(rng: &mut impl RngCore) -> Self { + loop { + let mut bytes = [0; 32]; + rng.fill_bytes(&mut bytes); + let sk = SpendingKey::from_bytes(bytes); + if sk.is_some().into() { + break sk.unwrap(); + } + } + } + + /// Constructs an Orchard spending key from uniformly-random bytes. + /// + /// Returns `None` if the bytes do not correspond to a valid Orchard spending key. + pub fn from_bytes(sk: [u8; 32]) -> CtOption { + let sk = SpendingKey(sk); + // If ask = 0, discard this key. We call `derive_inner` rather than + // `SpendAuthorizingKey::from` here because we only need to know + // whether ask = 0; the adjustment to potentially negate ask is not + // needed. Also, `from` would panic on ask = 0. + let ask = SpendAuthorizingKey::derive_inner(&sk); + // If ivk is 0 or ⊥, discard this key. + let fvk = (&sk).into(); + let external_ivk = KeyAgreementPrivateKey::derive_inner(&fvk); + let internal_ivk = KeyAgreementPrivateKey::derive_inner(&fvk.derive_internal()); + CtOption::new( + sk, + !(ask.is_zero() | external_ivk.is_none() | internal_ivk.is_none()), + ) + } + + /// Returns the raw bytes of the spending key. + pub fn to_bytes(&self) -> &[u8; 32] { + &self.0 + } + + /// Derives the Orchard spending key for the given seed, coin type, and account. + pub fn from_zip32_seed( + seed: &[u8], + coin_type: u32, + account: AccountId, + ) -> Result { + if coin_type >= (1 << 31) { + return Err(zip32::Error::InvalidChildIndex(coin_type)); + } + + // Call zip32 logic + let path = &[ + ChildIndex::hardened(ZIP32_PURPOSE), + ChildIndex::hardened(coin_type), + ChildIndex::hardened(account.into()), + ]; + ExtendedSpendingKey::from_path(seed, path).map(|esk| esk.sk()) + } +} + +/// A spend authorizing key, used to create spend authorization signatures. +/// This type enforces that the corresponding public point (ak^ℙ) has ỹ = 0. +/// +/// $\mathsf{ask}$ as defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. +/// +/// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents +#[derive(Clone, Debug)] +pub struct SpendAuthorizingKey(redpallas::SigningKey); + +impl SpendAuthorizingKey { + /// Derives ask from sk. Internal use only, does not enforce all constraints. + fn derive_inner(sk: &SpendingKey) -> pallas::Scalar { + to_scalar(PrfExpand::ORCHARD_ASK.with(&sk.0)) + } + + /// Randomizes this spend authorizing key with the given `randomizer`. + /// + /// The resulting key can be used to actually sign a spend. + pub fn randomize(&self, randomizer: &pallas::Scalar) -> redpallas::SigningKey { + self.0.randomize(randomizer) + } +} + +impl From<&SpendingKey> for SpendAuthorizingKey { + fn from(sk: &SpendingKey) -> Self { + let ask = Self::derive_inner(sk); + // SpendingKey cannot be constructed such that this assertion would fail. + assert!(!bool::from(ask.is_zero())); + // TODO: Add TryFrom for SpendAuthorizingKey. + let ret = SpendAuthorizingKey(ask.to_repr().try_into().unwrap()); + // If the last bit of repr_P(ak) is 1, negate ask. + if (<[u8; 32]>::from(SpendValidatingKey::from(&ret).0)[31] >> 7) == 1 { + SpendAuthorizingKey((-ask).to_repr().try_into().unwrap()) + } else { + ret + } + } +} + +/// A key used to validate spend authorization signatures. +/// +/// Defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. +/// Note that this is $\mathsf{ak}^\mathbb{P}$, which by construction is equivalent to +/// $\mathsf{ak}$ but stored here as a RedPallas verification key. +/// +/// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents +#[derive(Debug, Clone, PartialOrd, Ord)] +pub struct SpendValidatingKey(redpallas::VerificationKey); + +impl From<&SpendAuthorizingKey> for SpendValidatingKey { + fn from(ask: &SpendAuthorizingKey) -> Self { + SpendValidatingKey((&ask.0).into()) + } +} + +impl From<&SpendValidatingKey> for pallas::Point { + fn from(spend_validating_key: &SpendValidatingKey) -> pallas::Point { + pallas::Point::from_bytes(&(&spend_validating_key.0).into()).unwrap() + } +} + +impl PartialEq for SpendValidatingKey { + fn eq(&self, other: &Self) -> bool { + <[u8; 32]>::from(&self.0).eq(&<[u8; 32]>::from(&other.0)) + } +} + +impl Eq for SpendValidatingKey {} + +impl SpendValidatingKey { + /// Randomizes this spend validating key with the given `randomizer`. + pub fn randomize(&self, randomizer: &pallas::Scalar) -> redpallas::VerificationKey { + self.0.randomize(randomizer) + } + + /// Converts this spend validating key to its serialized form, + /// I2LEOSP_256(ak). + #[cfg_attr(feature = "unstable-frost", visibility::make(pub))] + pub(crate) fn to_bytes(&self) -> [u8; 32] { + // This is correct because the wrapped point must have ỹ = 0, and + // so the point repr is the same as I2LEOSP of its x-coordinate. + let b = <[u8; 32]>::from(&self.0); + assert!(b[31] & 0x80 == 0); + b + } + + /// Attempts to parse a byte slice as a spend validating key, `I2LEOSP_256(ak)`. + /// + /// Returns `None` if the given slice does not contain a valid spend validating key. + #[cfg_attr(feature = "unstable-frost", visibility::make(pub))] + pub(crate) fn from_bytes(bytes: &[u8]) -> Option { + <[u8; 32]>::try_from(bytes) + .ok() + .and_then(|b| { + // Structural validity checks for ak_P: + // - The point must not be the identity + // (which for Pallas is canonically encoded as all-zeroes). + // - The sign of the y-coordinate must be positive. + if b != [0; 32] && b[31] & 0x80 == 0 { + >::try_from(b).ok() + } else { + None + } + }) + .map(SpendValidatingKey) + } +} + +/// A key used to derive [`Nullifier`]s from [`Note`]s. +/// +/// $\mathsf{nk}$ as defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. +/// +/// [`Nullifier`]: crate::note::Nullifier +/// [`Note`]: crate::note::Note +/// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents +#[derive(Copy, Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +pub struct NullifierDerivingKey(pallas::Base); + +impl NullifierDerivingKey { + pub(crate) fn inner(&self) -> pallas::Base { + self.0 + } +} + +impl From<&SpendingKey> for NullifierDerivingKey { + fn from(sk: &SpendingKey) -> Self { + NullifierDerivingKey(to_base(PrfExpand::ORCHARD_NK.with(&sk.0))) + } +} + +impl NullifierDerivingKey { + // pseudo-random function for nullifier + pub(crate) fn prf_nf(&self, rho: pallas::Base) -> pallas::Base { + prf_nf(self.0, rho) + } + /// derive from esk & rho. Decomposes esk into 3x88 bit limbs via [crate::spec::hdkf_pallas] + pub fn derive_from(esk: EligibleSk, rho: crate::note::Rho) -> Self { + Self(crate::spec::hdkf_pallas( + crate::spec::esk_to_base(&esk), + rho.into_inner(), + )) + } + + /// Converts this nullifier deriving key to its serialized form. + pub fn to_bytes(self) -> [u8; 32] { + <[u8; 32]>::from(self.0) + } + + pub(crate) fn from_bytes(bytes: &[u8]) -> Option { + let nk_bytes = <[u8; 32]>::try_from(bytes).ok()?; + let nk = pallas::Base::from_repr(nk_bytes).map(NullifierDerivingKey); + if nk.is_some().into() { + Some(nk.unwrap()) + } else { + None + } + } +} + +/// The randomness for $\mathsf{Commit}^\mathsf{ivk}$. +/// +/// $\mashsf{rivk}$ as defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. +/// +/// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents +#[derive(Copy, Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +pub(crate) struct CommitIvkRandomness(pallas::Scalar); + +impl From<&SpendingKey> for CommitIvkRandomness { + fn from(sk: &SpendingKey) -> Self { + CommitIvkRandomness(to_scalar(PrfExpand::ORCHARD_RIVK.with(&sk.0))) + } +} + +impl CommitIvkRandomness { + pub(crate) fn inner(&self) -> pallas::Scalar { + self.0 + } + + /// Converts this nullifier deriving key to its serialized form. + pub(crate) fn to_bytes(self) -> [u8; 32] { + <[u8; 32]>::from(self.0) + } + + pub(crate) fn from_bytes(bytes: &[u8]) -> Option { + let rivk_bytes = <[u8; 32]>::try_from(bytes).ok()?; + let rivk = pallas::Scalar::from_repr(rivk_bytes).map(CommitIvkRandomness); + if rivk.is_some().into() { + Some(rivk.unwrap()) + } else { + None + } + } +} + +/// A key that provides the capability to view incoming and outgoing transactions. +/// +/// This key is useful anywhere you need to maintain accurate balance, but do not want the +/// ability to spend funds (such as a view-only wallet). +/// +/// Defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. +/// +/// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +pub struct FullViewingKey { + ak: SpendValidatingKey, + nk: NullifierDerivingKey, + rivk: CommitIvkRandomness, +} + +impl From<&SpendingKey> for FullViewingKey { + fn from(sk: &SpendingKey) -> Self { + FullViewingKey { + ak: (&SpendAuthorizingKey::from(sk)).into(), + nk: sk.into(), + rivk: sk.into(), + } + } +} + +impl From<&ExtendedSpendingKey> for FullViewingKey { + fn from(extsk: &ExtendedSpendingKey) -> Self { + (&extsk.sk()).into() + } +} + +impl From for SpendValidatingKey { + fn from(fvk: FullViewingKey) -> Self { + fvk.ak + } +} + +impl FullViewingKey { + pub(crate) fn nk(&self) -> &NullifierDerivingKey { + &self.nk + } + + /// Returns either `rivk` or `rivk_internal` based on `scope`. + pub(crate) fn rivk(&self, scope: Scope) -> CommitIvkRandomness { + match scope { + Scope::External => self.rivk, + Scope::Internal => { + let k = self.rivk.0.to_repr(); + let ak = self.ak.to_bytes(); + let nk = self.nk.to_bytes(); + CommitIvkRandomness(to_scalar( + PrfExpand::ORCHARD_RIVK_INTERNAL.with(&k, &ak, &nk), + )) + } + } + } + + /// Defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. + /// + /// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents + fn derive_dk_ovk(&self) -> (DiversifierKey, OutgoingViewingKey) { + let k = self.rivk.0.to_repr(); + let b = [(&self.ak.0).into(), self.nk.0.to_repr()]; + let r = PrfExpand::ORCHARD_DK_OVK.with(&k, &b[0], &b[1]); + ( + DiversifierKey(r[..32].try_into().unwrap()), + OutgoingViewingKey(r[32..].try_into().unwrap()), + ) + } + + /// Returns the payment address for this key at the given index. + pub fn address_at(&self, j: impl Into, scope: Scope) -> Address { + self.to_ivk(scope).address_at(j) + } + + /// Returns the payment address for this key corresponding to the given diversifier. + pub fn address(&self, d: Diversifier, scope: Scope) -> Address { + // Shortcut: we don't need to derive DiversifierKey. + match scope { + Scope::External => KeyAgreementPrivateKey::from_fvk(self), + Scope::Internal => KeyAgreementPrivateKey::from_fvk(&self.derive_internal()), + } + .address(d) + } + + /// Returns the scope of the given address, or `None` if the address is not derived + /// from this full viewing key. + pub fn scope_for_address(&self, address: &Address) -> Option { + [Scope::External, Scope::Internal] + .into_iter() + .find(|scope| self.to_ivk(*scope).diversifier_index(address).is_some()) + } + + /// Serializes the full viewing key as specified in [Zcash Protocol Spec § 5.6.4.4: Orchard Raw Full Viewing Keys][orchardrawfullviewingkeys] + /// + /// [orchardrawfullviewingkeys]: https://zips.z.cash/protocol/protocol.pdf#orchardfullviewingkeyencoding + pub fn write(&self, mut writer: W) -> io::Result<()> { + writer.write_all(&self.to_bytes()) + } + + /// Parses a full viewing key from its "raw" encoding as specified in [Zcash Protocol Spec § 5.6.4.4: Orchard Raw Full Viewing Keys][orchardrawfullviewingkeys] + /// + /// [orchardrawfullviewingkeys]: https://zips.z.cash/protocol/protocol.pdf#orchardfullviewingkeyencoding + pub fn read(mut reader: R) -> io::Result { + let mut data = [0u8; 96]; + reader.read_exact(&mut data)?; + + Self::from_bytes(&data).ok_or_else(|| { + io::Error::new( + io::ErrorKind::InvalidInput, + "Unable to deserialize a valid Orchard FullViewingKey from bytes", + ) + }) + } + + /// Serializes the full viewing key as specified in [Zcash Protocol Spec § 5.6.4.4: Orchard Raw Full Viewing Keys][orchardrawfullviewingkeys] + /// + /// [orchardrawfullviewingkeys]: https://zips.z.cash/protocol/protocol.pdf#orchardfullviewingkeyencoding + pub fn to_bytes(&self) -> [u8; 96] { + let mut result = [0u8; 96]; + result[0..32].copy_from_slice(&<[u8; 32]>::from(self.ak.0.clone())); + result[32..64].copy_from_slice(&self.nk.0.to_repr()); + result[64..96].copy_from_slice(&self.rivk.0.to_repr()); + result + } + + /// Parses a full viewing key from its "raw" encoding as specified in [Zcash Protocol Spec § 5.6.4.4: Orchard Raw Full Viewing Keys][orchardrawfullviewingkeys] + /// + /// [orchardrawfullviewingkeys]: https://zips.z.cash/protocol/protocol.pdf#orchardfullviewingkeyencoding + pub fn from_bytes(bytes: &[u8; 96]) -> Option { + let ak = SpendValidatingKey::from_bytes(&bytes[..32])?; + let nk = NullifierDerivingKey::from_bytes(&bytes[32..64])?; + let rivk = CommitIvkRandomness::from_bytes(&bytes[64..])?; + + let fvk = FullViewingKey { ak, nk, rivk }; + + // If either ivk is 0 or ⊥, this FVK is invalid. + let _: NonZeroPallasBase = Option::from(KeyAgreementPrivateKey::derive_inner(&fvk))?; + let _: NonZeroPallasBase = + Option::from(KeyAgreementPrivateKey::derive_inner(&fvk.derive_internal()))?; + + Some(fvk) + } + + /// Derives an internal full viewing key from a full viewing key, as specified in + /// [ZIP32][orchardinternalfullviewingkey]. Internal use only. + /// + /// [orchardinternalfullviewingkey]: https://zips.z.cash/zip-0032#orchard-internal-key-derivation + fn derive_internal(&self) -> Self { + FullViewingKey { + ak: self.ak.clone(), + nk: self.nk, + rivk: self.rivk(Scope::Internal), + } + } + + /// Derives an `IncomingViewingKey` for this full viewing key. + pub fn to_ivk(&self, scope: Scope) -> IncomingViewingKey { + match scope { + Scope::External => IncomingViewingKey::from_fvk(self), + Scope::Internal => IncomingViewingKey::from_fvk(&self.derive_internal()), + } + } + + /// Derives an `OutgoingViewingKey` for this full viewing key. + pub fn to_ovk(&self, scope: Scope) -> OutgoingViewingKey { + match scope { + Scope::External => OutgoingViewingKey::from_fvk(self), + Scope::Internal => OutgoingViewingKey::from_fvk(&self.derive_internal()), + } + } +} + +/// A key that provides the capability to derive a sequence of diversifiers. +/// +/// $\mathsf{dk}$ as defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. +/// +/// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents +#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub(crate) struct DiversifierKey([u8; 32]); + +impl DiversifierKey { + /// Returns the diversifier at the given index. + pub fn get(&self, j: impl Into) -> Diversifier { + let ff = FF1::::new(&self.0, 2).expect("valid radix"); + let enc = ff + .encrypt( + &[], + &BinaryNumeralString::from_bytes_le(j.into().as_bytes()), + ) + .unwrap(); + Diversifier(enc.to_bytes_le().try_into().unwrap()) + } + + /// Returns the diversifier index obtained by decrypting the diversifier. + pub fn diversifier_index(&self, d: &Diversifier) -> DiversifierIndex { + let ff = FF1::::new(&self.0, 2).expect("valid radix"); + let dec = ff + .decrypt(&[], &BinaryNumeralString::from_bytes_le(d.as_array())) + .unwrap(); + DiversifierIndex::from(<[u8; 11]>::try_from(dec.to_bytes_le()).unwrap()) + } + + /// Return the raw bytes of the diversifier key + pub fn to_bytes(&self) -> &[u8; 32] { + &self.0 + } + + /// Construct a diversifier key from bytes + pub fn from_bytes(bytes: [u8; 32]) -> Self { + DiversifierKey(bytes) + } +} + +/// A diversifier that can be used to derive a specific [`Address`] from a +/// [`FullViewingKey`] or [`IncomingViewingKey`]. +/// +/// $\mathsf{d}$ as defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. +/// +/// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct Diversifier([u8; 11]); + +impl Diversifier { + /// Reads a diversifier from a byte array. + pub fn from_bytes(d: [u8; 11]) -> Self { + Diversifier(d) + } + + /// Returns the byte array corresponding to this diversifier. + pub fn as_array(&self) -> &[u8; 11] { + &self.0 + } +} + +/// The private key $\mathsf{ivk}$ used in $KA^{Orchard}$, for decrypting incoming notes. +/// +/// In Sapling this is what was encoded as an incoming viewing key. For Orchard, we store +/// both this and [`DiversifierKey`] inside [`IncomingViewingKey`] for usability (to +/// enable deriving the default address for an incoming viewing key), while this separate +/// type represents $\mathsf{ivk}$. +/// +/// Defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. +/// +/// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents +/// +/// # Implementation notes +/// +/// We store $\mathsf{ivk}$ in memory as a scalar instead of a base, so that we aren't +/// incurring an expensive serialize-and-parse step every time we use it (e.g. for trial +/// decryption of notes). When we actually want to serialize ivk, we're guaranteed to get +/// a valid base field element encoding, because we always construct ivk from an integer +/// in the correct range. +#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] +struct KeyAgreementPrivateKey(NonZeroPallasScalar); + +impl KeyAgreementPrivateKey { + /// Derives `KeyAgreementPrivateKey` from fvk. + /// + /// Defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. + /// + /// [orchardkeycomponents]: https://zips.z.cash/protocol/protocol.pdf#orchardkeycomponents + fn from_fvk(fvk: &FullViewingKey) -> Self { + // FullViewingKey cannot be constructed such that this unwrap would fail. + let ivk = KeyAgreementPrivateKey::derive_inner(fvk).unwrap(); + KeyAgreementPrivateKey(ivk.into()) + } +} + +impl KeyAgreementPrivateKey { + /// Derives ivk from fvk. Internal use only, does not enforce all constraints. + /// + /// Defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. + /// + /// [orchardkeycomponents]: https://zips.z.cash/protocol/protocol.pdf#orchardkeycomponents + fn derive_inner(fvk: &FullViewingKey) -> CtOption { + let ak = extract_p(&pallas::Point::from_bytes(&(&fvk.ak.0).into()).unwrap()); + commit_ivk(&ak, &fvk.nk.0, &fvk.rivk.0) + // sinsemilla::CommitDomain::short_commit returns a value in range + // [0..q_P] ∪ {⊥}: + // - sinsemilla::HashDomain::hash_to_point uses incomplete addition and + // returns a point in P* ∪ {⊥}. + // - sinsemilla::CommitDomain::commit applies a final complete addition step + // and returns a point in P ∪ {⊥}. + // - 0 is not a valid x-coordinate for any Pallas point. + // - sinsemilla::CommitDomain::short_commit calls extract_p_bottom, which + // replaces the identity (which has no affine coordinates) with 0. + // + // Commit^ivk.Output is specified as [1..q_P] ∪ {⊥}, so we explicitly check + // for 0 and map it to None. Note that we are collapsing this case (which is + // rejected by the circuit) with ⊥ (which the circuit explicitly allows for + // efficiency); this is fine because we don't want users of the `orchard` + // crate to encounter either case (and it matches the behaviour described in + // Section 4.2.3 of the protocol spec when generating spending keys). + .and_then(NonZeroPallasBase::from_base) + } + + /// Returns the payment address for this key corresponding to the given diversifier. + fn address(&self, d: Diversifier) -> Address { + let prepared_ivk = PreparedIncomingViewingKey::new_inner(self); + let pk_d = DiversifiedTransmissionKey::derive(&prepared_ivk, &d); + Address::from_parts(d, pk_d) + } +} + +/// A key that provides the capability to detect and decrypt incoming notes from the block +/// chain, without being able to spend the notes or detect when they are spent. +/// +/// This key is useful in situations where you only need the capability to detect inbound +/// payments, such as merchant terminals. +/// +/// This key is not suitable for use on its own in a wallet, as it cannot maintain +/// accurate balance. You should use a [`FullViewingKey`] instead. +/// +/// Defined in [Zcash Protocol Spec § 5.6.4.3: Orchard Raw Incoming Viewing Keys][orchardinviewingkeyencoding]. +/// +/// [orchardinviewingkeyencoding]: https://zips.z.cash/protocol/nu5.pdf#orchardinviewingkeyencoding +#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub struct IncomingViewingKey { + dk: DiversifierKey, + ivk: KeyAgreementPrivateKey, +} + +impl IncomingViewingKey { + /// Helper method. + fn from_fvk(fvk: &FullViewingKey) -> Self { + IncomingViewingKey { + dk: fvk.derive_dk_ovk().0, + ivk: KeyAgreementPrivateKey::from_fvk(fvk), + } + } +} + +impl IncomingViewingKey { + /// Serializes an Orchard incoming viewing key to its raw encoding as specified in [Zcash Protocol Spec § 5.6.4.3: Orchard Raw Incoming Viewing Keys][orchardrawinviewingkeys] + /// + /// [orchardrawinviewingkeys]: https://zips.z.cash/protocol/protocol.pdf#orchardinviewingkeyencoding + pub fn to_bytes(&self) -> [u8; 64] { + let mut result = [0u8; 64]; + result[..32].copy_from_slice(self.dk.to_bytes()); + result[32..].copy_from_slice(&self.ivk.0.to_repr()); + result + } + + /// Parses an Orchard incoming viewing key from its raw encoding. + pub fn from_bytes(bytes: &[u8; 64]) -> CtOption { + NonZeroPallasBase::from_bytes(bytes[32..].try_into().unwrap()).map(|ivk| { + IncomingViewingKey { + dk: DiversifierKey(bytes[..32].try_into().unwrap()), + ivk: KeyAgreementPrivateKey(ivk.into()), + } + }) + } + + /// Checks whether the given address was derived from this incoming viewing + /// key, and returns the diversifier index used to derive the address if + /// so. Returns `None` if the address was not derived from this key. + pub fn diversifier_index(&self, addr: &Address) -> Option { + let j = self.dk.diversifier_index(&addr.diversifier()); + if &self.address_at(j) == addr { + Some(j) + } else { + None + } + } + + /// Returns the payment address for this key at the given index. + pub fn address_at(&self, j: impl Into) -> Address { + self.address(self.dk.get(j)) + } + + /// Returns the payment address for this key corresponding to the given diversifier. + pub fn address(&self, d: Diversifier) -> Address { + self.ivk.address(d) + } + + /// Returns the [`PreparedIncomingViewingKey`] for this [`IncomingViewingKey`]. + pub fn prepare(&self) -> PreparedIncomingViewingKey { + PreparedIncomingViewingKey::new(self) + } +} + +/// An Orchard incoming viewing key that has been precomputed for trial decryption. +#[derive(Clone, Debug)] +pub struct PreparedIncomingViewingKey(PreparedNonZeroScalar); + +#[cfg(feature = "std")] +impl memuse::DynamicUsage for PreparedIncomingViewingKey { + fn dynamic_usage(&self) -> usize { + self.0.dynamic_usage() + } + + fn dynamic_usage_bounds(&self) -> (usize, Option) { + self.0.dynamic_usage_bounds() + } +} + +impl PreparedIncomingViewingKey { + /// Performs the necessary precomputations to use an `IncomingViewingKey` for note + /// decryption. + pub fn new(ivk: &IncomingViewingKey) -> Self { + Self::new_inner(&ivk.ivk) + } + + fn new_inner(ivk: &KeyAgreementPrivateKey) -> Self { + Self(PreparedNonZeroScalar::new(&ivk.0)) + } +} + +/// A key that provides the capability to recover outgoing transaction information from +/// the block chain. +/// +/// This key is not suitable for use on its own in a wallet, as it cannot maintain +/// accurate balance. You should use a [`FullViewingKey`] instead. +/// +/// Defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. +/// +/// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents +#[derive(Debug, Clone)] +pub struct OutgoingViewingKey([u8; 32]); + +impl OutgoingViewingKey { + /// Helper method. + fn from_fvk(fvk: &FullViewingKey) -> Self { + fvk.derive_dk_ovk().1 + } +} + +impl From<[u8; 32]> for OutgoingViewingKey { + fn from(ovk: [u8; 32]) -> Self { + OutgoingViewingKey(ovk) + } +} + +impl AsRef<[u8; 32]> for OutgoingViewingKey { + fn as_ref(&self) -> &[u8; 32] { + &self.0 + } +} + +/// The diversified transmission key for a given payment address. +/// +/// Defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. +/// +/// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)] +pub struct DiversifiedTransmissionKey(NonIdentityPallasPoint); + +impl DiversifiedTransmissionKey { + pub(crate) fn inner(&self) -> NonIdentityPallasPoint { + self.0 + } +} + +impl DiversifiedTransmissionKey { + /// Defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. + /// + /// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents + pub(crate) fn derive(ivk: &PreparedIncomingViewingKey, d: &Diversifier) -> Self { + let g_d = PreparedNonIdentityBase::new(diversify_hash(d.as_array())); + DiversifiedTransmissionKey(ka_orchard_prepared(&ivk.0, &g_d)) + } + + /// $abst_P(bytes)$ + pub(crate) fn from_bytes(bytes: &[u8; 32]) -> CtOption { + NonIdentityPallasPoint::from_bytes(bytes).map(DiversifiedTransmissionKey) + } + + /// $repr_P(self)$ + pub(crate) fn to_bytes(self) -> [u8; 32] { + self.0.to_bytes() + } +} + +impl ConditionallySelectable for DiversifiedTransmissionKey { + fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self { + DiversifiedTransmissionKey(NonIdentityPallasPoint::conditional_select( + &a.0, &b.0, choice, + )) + } +} + +/// An ephemeral secret key used to encrypt an output note on-chain. +/// +/// `esk` is "ephemeral" in the sense that each secret key is only used once. In +/// practice, `esk` is derived deterministically from the note that it is encrypting. +/// +/// $\mathsf{KA}^\mathsf{Orchard}.\mathsf{Private} := \mathbb{F}^{\ast}_{r_P}$ +/// +/// Defined in [section 5.4.5.5: Orchard Key Agreement][concreteorchardkeyagreement]. +/// +/// [concreteorchardkeyagreement]: https://zips.z.cash/protocol/nu5.pdf#concreteorchardkeyagreement +#[derive(Debug)] +pub struct EphemeralSecretKey(pub(crate) NonZeroPallasScalar); + +impl ConstantTimeEq for EphemeralSecretKey { + fn ct_eq(&self, other: &Self) -> subtle::Choice { + self.0.ct_eq(&other.0) + } +} + +impl EphemeralSecretKey { + pub(crate) fn from_bytes(bytes: &[u8; 32]) -> CtOption { + NonZeroPallasScalar::from_bytes(bytes).map(EphemeralSecretKey) + } + + pub(crate) fn derive_public(&self, g_d: NonIdentityPallasPoint) -> EphemeralPublicKey { + EphemeralPublicKey(ka_orchard(&self.0, &g_d)) + } + + pub(crate) fn agree(&self, pk_d: &DiversifiedTransmissionKey) -> SharedSecret { + SharedSecret(ka_orchard(&self.0, &pk_d.0)) + } +} + +/// An ephemeral public key used to encrypt an output note on-chain. +/// +/// `epk` is "ephemeral" in the sense that each public key is only used once. In practice, +/// `epk` is derived deterministically from the note that it is encrypting. +/// +/// $\mathsf{KA}^\mathsf{Orchard}.\mathsf{Public} := \mathbb{P}^{\ast}$ +/// +/// Defined in [section 5.4.5.5: Orchard Key Agreement][concreteorchardkeyagreement]. +/// +/// [concreteorchardkeyagreement]: https://zips.z.cash/protocol/nu5.pdf#concreteorchardkeyagreement +#[derive(Debug)] +pub struct EphemeralPublicKey(NonIdentityPallasPoint); + +impl EphemeralPublicKey { + pub(crate) fn from_bytes(bytes: &[u8; 32]) -> CtOption { + NonIdentityPallasPoint::from_bytes(bytes).map(EphemeralPublicKey) + } + + pub(crate) fn to_bytes(&self) -> EphemeralKeyBytes { + EphemeralKeyBytes(self.0.to_bytes()) + } + + pub(crate) fn agree(&self, ivk: &IncomingViewingKey) -> SharedSecret { + SharedSecret(ka_orchard(&ivk.ivk.0, &self.0)) + } +} + +/// An Orchard ephemeral public key that has been precomputed for trial decryption. +#[derive(Clone, Debug)] +pub struct PreparedEphemeralPublicKey(PreparedNonIdentityBase); + +impl PreparedEphemeralPublicKey { + pub(crate) fn new(epk: EphemeralPublicKey) -> Self { + PreparedEphemeralPublicKey(PreparedNonIdentityBase::new(epk.0)) + } + + pub(crate) fn agree(&self, ivk: &PreparedIncomingViewingKey) -> SharedSecret { + SharedSecret(ka_orchard_prepared(&ivk.0, &self.0)) + } +} + +/// $\mathsf{KA}^\mathsf{Orchard}.\mathsf{SharedSecret} := \mathbb{P}^{\ast}$ +/// +/// Defined in [section 5.4.5.5: Orchard Key Agreement][concreteorchardkeyagreement]. +/// +/// [concreteorchardkeyagreement]: https://zips.z.cash/protocol/nu5.pdf#concreteorchardkeyagreement +#[derive(Debug)] +pub struct SharedSecret(NonIdentityPallasPoint); + +impl SharedSecret { + /// For checking test vectors only. + #[cfg(test)] + pub(crate) fn to_bytes(&self) -> [u8; 32] { + self.0.to_bytes() + } + + /// Only for use in batched note encryption. + pub(crate) fn batch_to_affine( + shared_secrets: Vec>, + ) -> impl Iterator> { + // Filter out the positions for which ephemeral_key was not a valid encoding. + let secrets: Vec<_> = shared_secrets + .iter() + .filter_map(|s| s.as_ref().map(|s| *(s.0))) + .collect(); + + // Batch-normalize the shared secrets. + let mut secrets_affine = vec![pallas::Affine::identity(); secrets.len()]; + group::Curve::batch_normalize(&secrets, &mut secrets_affine); + + // Re-insert the invalid ephemeral_key positions. + let mut secrets_affine = secrets_affine.into_iter(); + shared_secrets + .into_iter() + .map(move |s| s.and_then(|_| secrets_affine.next())) + } + + /// Defined in [Zcash Protocol Spec § 5.4.5.6: Orchard Key Agreement][concreteorchardkdf]. + /// + /// [concreteorchardkdf]: https://zips.z.cash/protocol/nu5.pdf#concreteorchardkdf + pub(crate) fn kdf_orchard(self, ephemeral_key: &EphemeralKeyBytes) -> Blake2bHash { + Self::kdf_orchard_inner(self.0.to_affine(), ephemeral_key) + } + + /// Only for direct use in batched note encryption. + pub(crate) fn kdf_orchard_inner( + secret: pallas::Affine, + ephemeral_key: &EphemeralKeyBytes, + ) -> Blake2bHash { + Params::new() + .hash_length(32) + .personal(KDF_ORCHARD_PERSONALIZATION) + .to_state() + .update(&secret.to_bytes()) + .update(&ephemeral_key.0) + .finalize() + } +} + +/// eligible secret key +#[derive(Debug, Copy, Clone)] +pub struct EligibleSk(secp256k1::SecretKey); + +impl EligibleSk { + /// Generates a random key that will be eligible for a headstash instance. + pub fn random(rng: &mut impl RngCore) -> Self { + let mut bytes = [0; 32]; + rng.fill_bytes(&mut bytes); + EligibleSk::from(secp256k1::SecretKey::from_byte_array(bytes).expect("dang")) + } + + /// derive from an secp256k1 crate value + pub fn from(sk: secp256k1::SecretKey) -> Self { + Self(sk) + } + /// derive from bytes + pub fn from_bytes(sk: [u8; 32]) -> Self { + let mut bytes = [0; 32]; + + Self(secp256k1::SecretKey::from_byte_array(bytes).expect("dang")) + } + + /// derive from a hex string of raw 32-byte sk. + pub fn from_hex(hex_str: &str) -> Self { + Self( + secp256k1::SecretKey::from_byte_array( + hex_str + .as_bytes() + .try_into() + .expect("slice conversion to [u8;32] should never fail"), + ) + .expect("invalid secp256k1 secret key material"), + ) + } + + /// the public key paired with this secret key + pub fn epk(&self) -> EligiblePk { + EligiblePk(self.0.public_key(&secp256k1::Secp256k1::new())) + } + /// the public key paired with this secret key + pub fn secret_bytes(&self) -> [u8; 32] { + self.0.secret_bytes() + } + /// the public key paired with this secret key + pub fn secret_key(&self) -> SecretKey { + self.0 + } + + /// derive the pallas field element representation of the secp256k1 foreign field esk + pub fn derive_pallas(&self) -> pallas::Base { + crate::spec::esk_to_base(self) + } +} + +/// Eligible secret key for headstashes +#[derive(Debug, Copy, Clone)] +pub struct EligiblePk(pub secp256k1::PublicKey); +impl EligiblePk { + /// the (x,y) uncompressed coordinates + pub fn xy(&self) -> ([u8; 32], [u8; 32]) { + let e_pk_bytes = self.0.serialize_uncompressed(); + let e_pk_x_bytes: [u8; 32] = e_pk_bytes[1..33].try_into().unwrap(); + let e_pk_y_bytes: [u8; 32] = e_pk_bytes[33..65].try_into().unwrap(); + (e_pk_x_bytes, e_pk_y_bytes) + } +} +impl From<&Vec> for EligiblePk { + fn from(data: &Vec) -> Self { + Self( + secp256k1::PublicKey::from_byte_array_compressed(data.as_slice().try_into().unwrap()) + .expect("darn"), + ) + } +} +impl From for EligiblePk { + fn from(sk: EligibleSk) -> Self { + Self(sk.0.public_key(&secp256k1::Secp256k1::new())) + } +} + +/// Generators for property testing. +#[cfg(any(test, feature = "test-dependencies"))] +#[cfg_attr(docsrs, doc(cfg(feature = "test-dependencies")))] +pub mod testing { + use proptest::prelude::*; + + use super::{DiversifierIndex, DiversifierKey, EligibleSk, EphemeralSecretKey, SpendingKey}; + + prop_compose! { + /// Generate a uniformly distributed Orchard spending key. + pub fn arb_spending_key()( + key in prop::array::uniform32(prop::num::u8::ANY) + .prop_map(SpendingKey::from_bytes) + .prop_filter( + "Values must correspond to valid Orchard spending keys.", + |opt| bool::from(opt.is_some()) + ) + ) -> SpendingKey { + key.unwrap() + } + } + + prop_compose! { + /// Generate a uniformly distributed Orchard ephemeral secret key. + pub fn arb_elig_sk()( + esk in prop::array::uniform32(prop::num::u8::ANY) + .prop_map(|b| EligibleSk::from_bytes(b)) + + ) -> EligibleSk { + esk + } + } + prop_compose! { + /// Generate a uniformly distributed Orchard ephemeral secret key. + pub fn arb_esk()( + esk in prop::array::uniform32(prop::num::u8::ANY) + .prop_map(|b| EphemeralSecretKey::from_bytes(&b)) + .prop_filter( + "Values must correspond to valid Orchard ephemeral secret keys.", + |opt| bool::from(opt.is_some()) + ) + ) -> EphemeralSecretKey { + esk.unwrap() + } + } + + prop_compose! { + /// Generate a uniformly distributed Orchard diversifier key. + pub(crate) fn arb_diversifier_key()( + dk_bytes in prop::array::uniform32(prop::num::u8::ANY) + ) -> DiversifierKey { + DiversifierKey::from_bytes(dk_bytes) + } + } + + prop_compose! { + /// Generate a uniformly distributed diversifier index. + pub fn arb_diversifier_index()( + d_bytes in prop::array::uniform11(prop::num::u8::ANY) + ) -> DiversifierIndex { + DiversifierIndex::from(d_bytes) + } + } +} + +#[cfg(test)] +mod tests { + // use cosmwasm_std::{testing::mock_dependencies, Api}; + use ff::PrimeField; + use proptest::prelude::*; + + use super::{ + testing::{arb_diversifier_index, arb_diversifier_key, arb_esk, arb_spending_key}, + *, + }; + use crate::{ + note::{ExtractedNoteCommitment, RandomSeed, Rho}, + value::{NoteDenom, NoteValue}, + Note, + }; + + #[test] + fn spend_validating_key_from_bytes() { + // ak_P must not be the identity. + assert!(SpendValidatingKey::from_bytes(&[0; 32]).is_none()); + } + + #[test] + fn parsers_reject_invalid() { + assert!(bool::from( + EphemeralSecretKey::from_bytes(&[0xff; 32]).is_none() + )); + assert!(bool::from( + EphemeralPublicKey::from_bytes(&[0xff; 32]).is_none() + )); + } + + proptest! { + #[test] + fn key_agreement( + sk in arb_spending_key(), + esk in arb_esk(), + j in arb_diversifier_index(), + ) { + let ivk = IncomingViewingKey::from_fvk(&(&sk).into()); + let addr = ivk.address_at(j); + + let epk = esk.derive_public(addr.g_d()); + + assert!(bool::from( + esk.agree(addr.pk_d()).0.ct_eq(&epk.agree(&ivk).0) + )); + } + } + + proptest! { + #[test] + fn diversifier_index( + dk in arb_diversifier_key(), + j in arb_diversifier_index(), + ) { + let d = dk.get(j); + assert_eq!(j, dk.diversifier_index(&d)); + } + } + + // #[test] + // fn test_vectors() { + // for tv in crate::test_vectors::keys::test_vectors() { + // let sk = SpendingKey::from_bytes(tv.sk).unwrap(); + + // let ask: SpendAuthorizingKey = (&sk).into(); + // assert_eq!(<[u8; 32]>::from(&ask.0), tv.ask); + + // let ak: SpendValidatingKey = (&ask).into(); + // assert_eq!(<[u8; 32]>::from(ak.0), tv.ak); + + // let nk: NullifierDerivingKey = (&sk).into(); + // assert_eq!(nk.0.to_repr(), tv.nk); + + // let rivk: CommitIvkRandomness = (&sk).into(); + // assert_eq!(rivk.0.to_repr(), tv.rivk); + + // let fvk: FullViewingKey = (&sk).into(); + // assert_eq!(<[u8; 32]>::from(&fvk.ak.0), tv.ak); + // assert_eq!(fvk.nk().0.to_repr(), tv.nk); + // assert_eq!(fvk.rivk.0.to_repr(), tv.rivk); + + // let external_ivk = fvk.to_ivk(Scope::External); + // assert_eq!(external_ivk.ivk.0.to_repr(), tv.ivk); + + // let diversifier = Diversifier(tv.default_d); + + // let addr = fvk.address(diversifier, Scope::External); + // assert_eq!(&addr.pk_d().to_bytes(), &tv.default_pk_d); + // // 3. Note parameters + // let v = NoteValue::from(100); + // let nd = NoteDenom::new_for_proof("TEST_DENOM"); + // let fdi = 0u64; + // let rho = Rho::from_bytes(&tv.note_rho).unwrap(); + // let note = Note::from_parts( + // tv.nd, + // NoteValue::from(tv.note_v), + // v, + // addr, + // fdi, + // rho, + // RandomSeed::from_bytes(tv.note_rseed, &rho).unwrap(), + // ) + // .unwrap(); + + // // 4. Create recp address + // let mock_deps = mock_dependencies(); + // let recp = crate::address::RecpAddr::try_from( + // mock_deps + // .api + // .addr_canonicalize( + // &mock_deps + // .api + // .addr_make(&format!("test{}", hex::encode(rho.into_inner().to_repr()))) + // .to_string(), + // ) + // .unwrap(), + // ) + // .unwrap(); + + // let cmx: ExtractedNoteCommitment = note.commitment().into(); + // assert_eq!(cmx.to_bytes(), tv.note_cmx); + + // assert_eq!(note.nullifier(&fvk).to_bytes(), tv.note_nf); + + // let internal_rivk = fvk.rivk(Scope::Internal); + // assert_eq!(internal_rivk.0.to_repr(), tv.internal_rivk); + + // let internal_ivk = fvk.to_ivk(Scope::Internal); + // assert_eq!(internal_ivk.ivk.0.to_repr(), tv.internal_ivk); + // assert_eq!(internal_ivk.dk.0, tv.internal_dk); + + // let internal_ovk = fvk.to_ovk(Scope::Internal); + // assert_eq!(internal_ovk.0, tv.internal_ovk); + // } + // } +} diff --git a/zk-crates/zk-headstash/src/lib.rs b/zk-crates/zk-headstash/src/lib.rs new file mode 100644 index 0000000..3000cdb --- /dev/null +++ b/zk-crates/zk-headstash/src/lib.rs @@ -0,0 +1,103 @@ +//! # orchard +//! +//! ## Nomenclature +//! +//! All types in the `orchard` crate, unless otherwise specified, are Orchard-specific +//! types. For example, [`Address`] is documented as being a shielded payment address; we +//! implicitly mean it is an Orchard payment address (as opposed to e.g. a Sapling payment +//! address, which is also shielded). + +#![no_std] +#![cfg_attr(docsrs, feature(doc_cfg))] +// Temporary until we have more of the crate implemented. +#![allow(dead_code)] +// Catch documentation errors caused by code changes. +#![deny(rustdoc::broken_intra_doc_links)] +#![deny(missing_debug_implementations)] +#![deny(missing_docs)] +#![deny(unsafe_code)] + +#[macro_use] +extern crate alloc; + +#[cfg(feature = "std")] +extern crate std; + +use alloc::vec::Vec; + +mod action; +pub mod address; +pub mod builder; +mod constants; +// pub mod bundle; + +#[cfg(feature = "circuit")] +pub mod circuit; +#[cfg(feature = "circuit")] +pub mod example_circuits; + +pub mod keys; +pub mod note; +// pub mod note_encryption; +// pub mod pczt; +pub mod gen; +pub mod primitives; +mod spec; +#[cfg(test)] +mod test_vectors; +pub mod tree; +pub mod value; +pub mod zip32; + +#[cfg(feature = "interface")] +pub mod deploy; + +pub use action::Action; +pub use address::Address; +// pub use bundle::Bundle; +pub use constants::MERKLE_DEPTH_ORCHARD as NOTE_COMMITMENT_TREE_DEPTH; +pub use note::Note; +pub use spec::recp_to_fp; +pub use tree::Anchor; + +/// A proof of the validity of an Orchard [`Bundle`]. +/// +/// [`Bundle`]: crate::bundle::Bundle +#[derive(Clone)] +pub struct Proof(Vec); + +impl core::fmt::Debug for Proof { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + if f.alternate() { + f.debug_tuple("Proof").field(&self.0).finish() + } else { + // By default, only show the proof length, not its contents. + f.debug_tuple("Proof") + .field(&format_args!("{} bytes", self.0.len())) + .finish() + } + } +} + +impl AsRef<[u8]> for Proof { + fn as_ref(&self) -> &[u8] { + &self.0 + } +} + +impl memuse::DynamicUsage for Proof { + fn dynamic_usage(&self) -> usize { + self.0.dynamic_usage() + } + + fn dynamic_usage_bounds(&self) -> (usize, Option) { + self.0.dynamic_usage_bounds() + } +} + +impl Proof { + /// Constructs a new Proof value. + pub fn new(bytes: Vec) -> Self { + Proof(bytes) + } +} diff --git a/zk-crates/zk-headstash/src/note.rs b/zk-crates/zk-headstash/src/note.rs new file mode 100644 index 0000000..06815d4 --- /dev/null +++ b/zk-crates/zk-headstash/src/note.rs @@ -0,0 +1,398 @@ +//! Data structures used for note construction. +// use cosmwasm_std::CanonicalAddr; +use core::fmt; +use memuse::DynamicUsage; + +use ff::PrimeField; +use group::GroupEncoding; +use pasta_curves::pallas; +use rand::RngCore; +use subtle::CtOption; + +use crate::{ + address::RecpAddr, + keys::{ + EligibleSk, EphemeralSecretKey, FullViewingKey, NullifierDerivingKey, Scope, SpendingKey, + }, + spec::{to_base, to_scalar, NonZeroPallasScalar, PrfExpand}, + value::{HeadstashValue, NoteDenom, NoteValue}, + Address, +}; + +pub(crate) mod commitment; +pub use self::commitment::{ExtractedNoteCommitment, NoteCommitment}; + +pub(crate) mod nullifier; +pub use self::nullifier::Nullifier; + +/// The randomness used to construct a note. +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub struct Rho(pallas::Base); + +// We know that `pallas::Base` doesn't allocate internally. +memuse::impl_no_dynamic_usage!(Rho); + +impl Rho { + /// Deserialize the rho value from a byte array. + /// + /// This should only be used in cases where the components of a `Note` are being serialized and + /// stored individually. Use [`Action::rho`] or [`CompactAction::rho`] to obtain the [`Rho`] + /// value otherwise. + /// + /// [`Action::rho`]: crate::action::Action::rho + /// [`CompactAction::rho`]: crate::note_encryption::CompactAction::rho + pub fn from_bytes(bytes: &[u8; 32]) -> CtOption { + pallas::Base::from_repr(*bytes).map(Rho) + } + + /// Serialize the rho value to its canonical byte representation. + pub fn to_bytes(self) -> [u8; 32] { + self.0.to_repr() + } + + /// Constructs the [`Rho`] value to be used to construct a new note from the revealed nullifier + /// of the note being spent in the [`Action`] under construction. + /// + /// [`Action`]: crate::action::Action + pub(crate) fn from_nf_old(nf: Nullifier) -> Self { + Rho(nf.0) + } + + pub(crate) fn into_inner(self) -> pallas::Base { + self.0 + } +} + +/// The ZIP 212 seed randomness for a note. +#[derive(Copy, Clone, Debug)] +pub struct RandomSeed([u8; 32]); + +impl RandomSeed { + pub(crate) fn random(rng: &mut impl RngCore, rho: &Rho) -> Self { + loop { + let mut bytes = [0; 32]; + rng.fill_bytes(&mut bytes); + let rseed = RandomSeed::from_bytes(bytes, rho); + if rseed.is_some().into() { + break rseed.unwrap(); + } + } + } + + /// Reads a note's random seed from bytes, given the note's rho value. + /// + /// Returns `None` if the rho value is not for the same note as the seed. + pub fn from_bytes(rseed: [u8; 32], rho: &Rho) -> CtOption { + let rseed = RandomSeed(rseed); + let esk = rseed.esk_inner(rho); + CtOption::new(rseed, esk.is_some()) + } + + /// Returns the byte array corresponding to this seed. + pub fn as_bytes(&self) -> &[u8; 32] { + &self.0 + } + + /// Defined in [Zcash Protocol Spec § 4.7.3: Sending Notes (Orchard)][orchardsend]. + /// + /// [orchardsend]: https://zips.z.cash/protocol/nu5.pdf#orchardsend + pub(crate) fn psi(&self, rho: &Rho) -> pallas::Base { + to_base(PrfExpand::PSI.with(&self.0, &rho.to_bytes())) + } + + /// Defined in [Zcash Protocol Spec § 4.7.3: Sending Notes (Orchard)][orchardsend]. + /// + /// [orchardsend]: https://zips.z.cash/protocol/nu5.pdf#orchardsend + fn esk_inner(&self, rho: &Rho) -> CtOption { + NonZeroPallasScalar::from_scalar(to_scalar( + PrfExpand::ORCHARD_ESK.with(&self.0, &rho.to_bytes()), + )) + } + + /// Defined in [Zcash Protocol Spec § 4.7.3: Sending Notes (Orchard)][orchardsend]. + /// + /// [orchardsend]: https://zips.z.cash/protocol/nu5.pdf#orchardsend + fn esk(&self, rho: &Rho) -> NonZeroPallasScalar { + // We can't construct a RandomSeed for which this unwrap fails. + self.esk_inner(rho).unwrap() + } + + /// Defined in [Zcash Protocol Spec § 4.7.3: Sending Notes (Orchard)][orchardsend]. + /// + /// [orchardsend]: https://zips.z.cash/protocol/nu5.pdf#orchardsend + pub(crate) fn rcm(&self, rho: &Rho) -> commitment::NoteCommitTrapdoor { + commitment::NoteCommitTrapdoor(to_scalar( + PrfExpand::ORCHARD_RCM.with(&self.0, &rho.to_bytes()), + )) + } +} + +/// A discrete amount of funds received by an address. +#[derive(Debug, Copy, Clone)] +pub struct Note { + /// The recp of the funds. is a raw CanonicalAddr + recipient: RecpAddr, + /// The value of this note. + v: NoteValue, + /// The token denomination of this note + nd: NoteDenom, + /// The token denomination of this note + esk: EligibleSk, + /// fixed_denomination_index of a genesis note (exists for genesis leaf uniqueness) + fdi: u64, + /// A unique creation ID for this note. + /// + /// This is produced from the nullifier of the note that will be spent in the [`Action`] that + /// creates this note. + /// + /// [`Action`]: crate::action::Action + rho: Rho, + /// The seed randomness for various note components. + rseed: RandomSeed, +} + +impl PartialEq for Note { + fn eq(&self, other: &Self) -> bool { + // Notes are canonically defined by their commitments. + ExtractedNoteCommitment::from(self.commitment()) + .eq(&ExtractedNoteCommitment::from(other.commitment())) + } +} + +impl Eq for Note {} + +impl Note { + /// Creates a `Note` from its component parts. + /// + /// Returns `None` if a valid [`NoteCommitment`] cannot be derived from the note. + /// + /// # Caveats + /// + /// This low-level constructor enforces that the provided arguments produce an + /// internally valid `Note`. However, it allows notes to be constructed in a way that + /// violates required security checks for note decryption, as specified in + /// [Section 4.19] of the Zcash Protocol Specification. Users of this constructor + /// should only call it with note components that have been fully validated by + /// decrypting a received note according to [Section 4.19]. + /// + /// [Section 4.19]: https://zips.z.cash/protocol/protocol.pdf#saplingandorchardinband + pub fn from_parts( + hv: HeadstashValue, + recipient: RecpAddr, + esk: EligibleSk, + rho: Rho, + rseed: RandomSeed, + ) -> CtOption { + let (v, nd, fdi) = hv.into_parts(); + let note = Note { + nd, + v, + fdi, + recipient, + esk, + rho, + rseed, + }; + CtOption::new(note, note.commitment_inner().is_some()) + } + + /// Generates a new note. + /// + /// Defined in [Zcash Protocol Spec § 4.7.3: Sending Notes (Orchard)][orchardsend]. + /// + /// [orchardsend]: https://zips.z.cash/protocol/nu5.pdf#orchardsend + pub(crate) fn new( + nd: NoteDenom, + v: NoteValue, + fdi: u64, + recipient: RecpAddr, + esk: EligibleSk, + rho: Rho, + mut rng: impl RngCore, + ) -> Self { + loop { + let note = Note::from_parts( + HeadstashValue::new(v, nd, fdi), + recipient, + esk, + rho, + RandomSeed::random(&mut rng, &rho), + ); + if note.is_some().into() { + break note.unwrap(); + } + } + } + + /// Generates a dummy spent note. + /// + /// Defined in [Zcash Protocol Spec § 4.8.3: Dummy Notes (Orchard)][orcharddummynotes]. + /// + /// [orcharddummynotes]: https://zips.z.cash/protocol/nu5.pdf#orcharddummynotes + pub(crate) fn dummy( + rng: &mut impl RngCore, + rho: Option, + ) -> (SpendingKey, FullViewingKey, EligibleSk, Self) { + let esk = EligibleSk::random(rng); + let sk = SpendingKey::random(rng); + let fvk: FullViewingKey = (&sk).into(); + let recipient = fvk.address_at(0u32, Scope::External); + + let note = Note::new( + NoteDenom::new_for_proof("I hope you got the necessary doguments and fucking permutations to suck on my shaved balls"), + NoteValue::zero(), + 0, + RecpAddr::new([43; 32]), + esk, + rho.unwrap_or_else(|| Rho::from_nf_old(Nullifier::dummy(rng))), + rng, + ); + + (sk, fvk, esk, note) + } + + /// Returns the recipient of this note. + pub fn recipient(&self) -> RecpAddr { + self.recipient + } + + /// Returns the value of this note. + pub fn value(&self) -> NoteValue { + self.v + } + /// Returns the fdi of this note. + pub fn fdi(&self) -> u64 { + self.fdi + } + /// Returns the fdi of this note. + pub fn nd(&self) -> NoteDenom { + self.nd + } + + /// Returns the rseed value of this note. + pub fn rseed(&self) -> &RandomSeed { + &self.rseed + } + + /// Derives the ephemeral secret key for this note. + pub(crate) fn elig_sk(&self) -> EligibleSk { + self.esk + } + /// Derives the ephemeral secret key for this note. + pub(crate) fn esk(&self) -> EphemeralSecretKey { + EphemeralSecretKey(self.rseed.esk(&self.rho)) + } + + /// Returns rho of this note. + pub fn rho(&self) -> Rho { + self.rho + } + + /// Derives the commitment to this note. + /// + /// Defined in [Zcash Protocol Spec § 3.2: Notes][notes]. + /// + /// [notes]: https://zips.z.cash/protocol/nu5.pdf#notes + pub fn commitment(&self) -> NoteCommitment { + // `Note` will always have a note commitment by construction. + self.commitment_inner().unwrap() + } + + /// Derives the commitment to this note. + /// + /// This is the internal fallible API, used to check at construction time that the + /// note has a commitment. Once you have a [`Note`] object, use `note.commitment()` + /// instead. + /// + /// Defined in [Zcash Protocol Spec § 3.2: Notes][notes]. + /// + /// [notes]: https://zips.z.cash/protocol/nu5.pdf#notes + + fn commitment_inner(&self) -> CtOption { + NoteCommitment::derive( + self.nd.to_pallas(), + self.v, + self.fdi.into(), + self.recipient, + self.esk, + self.rho.0, + self.rseed.psi(&self.rho), + self.rseed.rcm(&self.rho), + ) + } + + /// Derives the nullifier key for this note. + pub fn nk(&self, rho: Rho) -> NullifierDerivingKey { + NullifierDerivingKey::derive_from(self.esk, rho) + } + + /// Derives the nullifier for this note. + pub fn nullifier(&self) -> Nullifier { + Nullifier::derive( + &self.nk(self.rho()), + self.rho.0, + self.rseed.psi(&self.rho), + self.commitment(), + ) + } +} + +/// An encrypted note. +#[derive(Clone)] +pub struct TransmittedNoteCiphertext { + /// The serialization of the ephemeral public key + pub epk_bytes: [u8; 32], + /// The encrypted note ciphertext + pub enc_ciphertext: [u8; 580], + /// An encrypted value that allows the holder of the outgoing cipher + /// key for the note to recover the note plaintext. + pub out_ciphertext: [u8; 80], +} + +impl fmt::Debug for TransmittedNoteCiphertext { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("TransmittedNoteCiphertext") + .field("epk_bytes", &self.epk_bytes) + .field("enc_ciphertext", &hex::encode(self.enc_ciphertext)) + .field("out_ciphertext", &hex::encode(self.out_ciphertext)) + .finish() + } +} + +/// Generators for property testing. +#[cfg(any(test, feature = "test-dependencies"))] +#[cfg_attr(docsrs, doc(cfg(feature = "test-dependencies")))] +pub mod testing { + use proptest::prelude::*; + + use crate::address::testing::arb_recp; + use crate::keys::testing::{arb_elig_sk, arb_esk}; + use crate::value::testing::{arb_fdi, arb_note_denom, arb_note_value}; + use crate::{ + address::testing::arb_address, note::nullifier::testing::arb_nullifier, value::NoteValue, + }; + + use super::{Note, RandomSeed, Rho}; + + prop_compose! { + /// Generate an arbitrary random seed + pub(crate) fn arb_rseed()(elems in prop::array::uniform32(prop::num::u8::ANY)) -> RandomSeed { + RandomSeed(elems) + } + + } + + prop_compose! { + /// Generate an action without authorization data. + pub fn arb_note(v: NoteValue)( + recipient in arb_recp(), + rho in arb_nullifier().prop_map(Rho::from_nf_old), + rseed in arb_rseed(), + nd in arb_note_denom(), + esk in arb_elig_sk(), + fdi in arb_fdi(), + ) -> Note { + Note {v,rho,rseed,nd,esk,fdi, recipient } + } + } +} diff --git a/zk-crates/zk-headstash/src/note/# Proposal: Trustless Manifesto b/zk-crates/zk-headstash/src/note/# Proposal: Trustless Manifesto new file mode 100644 index 0000000..e69de29 diff --git a/zk-crates/zk-headstash/src/note/commitment.rs b/zk-crates/zk-headstash/src/note/commitment.rs new file mode 100644 index 0000000..4d6a50c --- /dev/null +++ b/zk-crates/zk-headstash/src/note/commitment.rs @@ -0,0 +1,131 @@ +use core::iter; + +use bitvec::{array::BitArray, order::Lsb0}; +use group::ff::{PrimeField, PrimeFieldBits}; +use pasta_curves::pallas; +use subtle::{ConstantTimeEq, CtOption}; + +use crate::{ + address::RecpAddr, + constants::{fixed_bases::NOTE_COMMITMENT_PERSONALIZATION, L_ORCHARD_BASE}, + keys::EligibleSk, + spec::extract_p, + value::NoteValue, +}; + +#[derive(Clone, Debug)] +pub(crate) struct NoteCommitTrapdoor(pub(super) pallas::Scalar); + +impl NoteCommitTrapdoor { + pub(crate) fn inner(&self) -> pallas::Scalar { + self.0 + } +} + +/// A commitment to a note. +#[derive(Clone, Debug)] +pub struct NoteCommitment(pub(super) pallas::Point); + +impl NoteCommitment { + pub(crate) fn inner(&self) -> pallas::Point { + self.0 + } +} + +impl NoteCommitment { + /// $NoteCommit^Orchard$. + /// + /// Defined in [Zcash Protocol Spec § 5.4.8.4: Sinsemilla commitments][concretesinsemillacommit]. + /// + /// [concretesinsemillacommit]: https://zips.z.cash/protocol/nu5.pdf#concretesinsemillacommit + pub(super) fn derive( + nd: pallas::Base, + v: NoteValue, + fdi: pallas::Base, + recp: RecpAddr, + esk: EligibleSk, + rho: pallas::Base, + psi: pallas::Base, + rcm: NoteCommitTrapdoor, + ) -> CtOption { + let esk = esk.derive_pallas(); + let recp = recp.to_pallas(); + + let domain = sinsemilla::CommitDomain::new(NOTE_COMMITMENT_PERSONALIZATION); + domain + .commit( + iter::empty() + .chain(nd.to_le_bits().iter().by_vals()) + .chain(v.to_le_bits().iter().by_vals()) + .chain(fdi.to_le_bits().iter().by_vals()) + .chain(recp.to_le_bits().iter().by_vals()) + .chain(esk.to_le_bits().iter().by_vals()) + .chain(rho.to_le_bits().iter().by_vals().take(L_ORCHARD_BASE)) + .chain(psi.to_le_bits().iter().by_vals().take(L_ORCHARD_BASE)), + &rcm.0, + ) + .map(NoteCommitment) + } +} + +/// The x-coordinate of the commitment to a note. +#[derive(Copy, Clone, Debug)] +pub struct ExtractedNoteCommitment(pub(super) pallas::Base); + +impl ExtractedNoteCommitment { + /// Deserialize the extracted note commitment from a byte array. + /// + /// This method enforces the [consensus rule][cmxcanon] that the + /// byte representation of cmx MUST be canonical. + /// + /// [cmxcanon]: https://zips.z.cash/protocol/protocol.pdf#actionencodingandconsensus + pub fn from_bytes(bytes: &[u8; 32]) -> CtOption { + pallas::Base::from_repr(*bytes).map(ExtractedNoteCommitment) + } + + /// Serialize the value commitment to its canonical byte representation. + pub fn to_bytes(self) -> [u8; 32] { + self.0.to_repr() + } +} + +// impl From for ExtractedNoteCommitment { +// fn from(cm: cosmwasm_std::Binary) -> Self { +// ExtractedNoteCommitment::from_bytes( +// cm.as_slice().try_into().expect("Invalid commitment bytes"), +// ) +// .expect("bad cw -> pallas::Base") +// } +// } + +impl From for ExtractedNoteCommitment { + fn from(cm: NoteCommitment) -> Self { + ExtractedNoteCommitment(extract_p(&cm.0)) + } +} + +impl ExtractedNoteCommitment { + pub(crate) fn inner(&self) -> pallas::Base { + self.0 + } +} + +impl From<&ExtractedNoteCommitment> for [u8; 32] { + fn from(cmx: &ExtractedNoteCommitment) -> Self { + cmx.to_bytes() + } +} + +impl ConstantTimeEq for ExtractedNoteCommitment { + fn ct_eq(&self, other: &Self) -> subtle::Choice { + self.0.ct_eq(&other.0) + } +} + +impl PartialEq for ExtractedNoteCommitment { + fn eq(&self, other: &Self) -> bool { + self.ct_eq(other).into() + } +} + +impl Eq for ExtractedNoteCommitment {} diff --git a/zk-crates/zk-headstash/src/note/nullifier.rs b/zk-crates/zk-headstash/src/note/nullifier.rs new file mode 100644 index 0000000..15ac369 --- /dev/null +++ b/zk-crates/zk-headstash/src/note/nullifier.rs @@ -0,0 +1,91 @@ +use group::{ff::PrimeField, Group}; +use memuse::DynamicUsage; +use pasta_curves::{arithmetic::CurveExt, pallas}; +use rand::RngCore; +use subtle::{ConstantTimeEq, CtOption}; + +use super::NoteCommitment; +use crate::{ + keys::NullifierDerivingKey, + spec::{extract_p, mod_r_p}, +}; + +/// A unique nullifier for a note. +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub struct Nullifier(pub(crate) pallas::Base); + +// We know that `pallas::Base` doesn't allocate internally. +memuse::impl_no_dynamic_usage!(Nullifier); + +impl Nullifier { + /// Generates a dummy nullifier for use as $\rho$ in dummy spent notes. + /// + /// Nullifiers are required by consensus to be unique. For dummy output notes, we get + /// this restriction as intended: the note's $\rho$ value is set to the nullifier of + /// the accompanying spent note within the action, which is constrained by consensus + /// to be unique. In the case of dummy spent notes, we get this restriction by + /// following the chain backwards: the nullifier of the dummy spent note will be + /// constrained by consensus to be unique, and the nullifier's uniqueness is derived + /// from the uniqueness of $\rho$. + /// + /// Instead of explicitly sampling for a unique nullifier, we rely here on the size of + /// the base field to make the chance of sampling a colliding nullifier negligible. + pub(crate) fn dummy(rng: &mut impl RngCore) -> Self { + Nullifier(extract_p(&pallas::Point::random(rng))) + } + + /// Deserialize the nullifier from a byte array. + pub fn from_bytes(bytes: &[u8; 32]) -> CtOption { + pallas::Base::from_repr(*bytes).map(Nullifier) + } + + /// Serialize the nullifier to its canonical byte representation. + pub fn to_bytes(self) -> [u8; 32] { + self.0.to_repr() + } + + /// $DeriveNullifier$. + /// + /// Defined in [Zcash Protocol Spec § 4.16: Note Commitments and Nullifiers][commitmentsandnullifiers]. + /// + /// [commitmentsandnullifiers]: https://zips.z.cash/protocol/nu5.pdf#commitmentsandnullifiers + pub(super) fn derive( + nk: &NullifierDerivingKey, + rho: pallas::Base, + psi: pallas::Base, + cm: NoteCommitment, + ) -> Self { + let k = pallas::Point::hash_to_curve("z.cash:Orchard")(b"K"); + + Nullifier(extract_p(&(k * mod_r_p(nk.prf_nf(rho) + psi) + cm.0))) + } +} + +impl ConstantTimeEq for Nullifier { + fn ct_eq(&self, other: &Self) -> subtle::Choice { + self.0.ct_eq(&other.0) + } +} + +/// Generators for property testing. +#[cfg(any(test, feature = "test-dependencies"))] +#[cfg_attr(docsrs, doc(cfg(feature = "test-dependencies")))] +pub mod testing { + use group::{ff::FromUniformBytes, Group}; + use pasta_curves::pallas; + use proptest::collection::vec; + use proptest::prelude::*; + + use super::Nullifier; + use crate::spec::extract_p; + + prop_compose! { + /// Generate a uniformly distributed nullifier value. + pub fn arb_nullifier()( + bytes in vec(any::(), 64) + ) -> Nullifier { + let point = pallas::Point::generator() * pallas::Scalar::from_uniform_bytes(&<[u8; 64]>::try_from(bytes).unwrap()); + Nullifier(extract_p(&point)) + } + } +} diff --git a/zk-crates/zk-headstash/src/note_encryption.rs b/zk-crates/zk-headstash/src/note_encryption.rs new file mode 100644 index 0000000..911559a --- /dev/null +++ b/zk-crates/zk-headstash/src/note_encryption.rs @@ -0,0 +1,548 @@ +// //! In-band secret distribution for Orchard bundles. + +// use alloc::vec::Vec; +// use core::fmt; + +// use blake2b_simd::{Hash, Params}; +// use group::ff::PrimeField; +// use zcash_note_encryption::{ +// BatchDomain, Domain, EphemeralKeyBytes, NotePlaintextBytes, OutPlaintextBytes, +// OutgoingCipherKey, ShieldedOutput, COMPACT_NOTE_SIZE, ENC_CIPHERTEXT_SIZE, NOTE_PLAINTEXT_SIZE, +// OUT_PLAINTEXT_SIZE, +// }; + +// use crate::{ +// action::Action, +// keys::{ +// DiversifiedTransmissionKey, Diversifier, EphemeralPublicKey, EphemeralSecretKey, +// OutgoingViewingKey, PreparedEphemeralPublicKey, PreparedIncomingViewingKey, SharedSecret, +// }, +// note::{ExtractedNoteCommitment, Nullifier, RandomSeed, Rho}, +// value::{NoteValue, ValueCommitment}, +// Address, Note, +// }; + +// const PRF_OCK_ORCHARD_PERSONALIZATION: &[u8; 16] = b"Zcash_Orchardock"; + +// /// Defined in [Zcash Protocol Spec § 5.4.2: Pseudo Random Functions][concreteprfs]. +// /// +// /// [concreteprfs]: https://zips.z.cash/protocol/nu5.pdf#concreteprfs +// pub(crate) fn prf_ock_orchard( +// ovk: &OutgoingViewingKey, +// cv: &ValueCommitment, +// cmx_bytes: &[u8; 32], +// ephemeral_key: &EphemeralKeyBytes, +// ) -> OutgoingCipherKey { +// OutgoingCipherKey( +// Params::new() +// .hash_length(32) +// .personal(PRF_OCK_ORCHARD_PERSONALIZATION) +// .to_state() +// .update(ovk.as_ref()) +// .update(&cv.to_bytes()) +// .update(cmx_bytes) +// .update(ephemeral_key.as_ref()) +// .finalize() +// .as_bytes() +// .try_into() +// .unwrap(), +// ) +// } + +// fn orchard_parse_note_plaintext_without_memo( +// domain: &OrchardDomain, +// plaintext: &[u8], +// get_pk_d: F, +// ) -> Option<(Note, Address)> +// where +// F: FnOnce(&Diversifier) -> DiversifiedTransmissionKey, +// { +// assert!(plaintext.len() >= COMPACT_NOTE_SIZE); + +// // Check note plaintext version +// if plaintext[0] != 0x02 { +// return None; +// } + +// // The unwraps below are guaranteed to succeed by the assertion above +// let diversifier = Diversifier::from_bytes(plaintext[1..12].try_into().unwrap()); +// let value = NoteValue::from_bytes(plaintext[12..20].try_into().unwrap()); +// let rseed = Option::from(RandomSeed::from_bytes( +// plaintext[20..COMPACT_NOTE_SIZE].try_into().unwrap(), +// &domain.rho, +// ))?; + +// let pk_d = get_pk_d(&diversifier); + +// let recipient = Address::from_parts(diversifier, pk_d); +// let note = Option::from(Note::from_parts(recipient, value, domain.rho, rseed))?; +// Some((note, recipient)) +// } + +// /// Orchard-specific note encryption logic. +// #[derive(Debug)] +// pub struct OrchardDomain { +// rho: Rho, +// } + +// impl memuse::DynamicUsage for OrchardDomain { +// fn dynamic_usage(&self) -> usize { +// self.rho.dynamic_usage() +// } + +// fn dynamic_usage_bounds(&self) -> (usize, Option) { +// self.rho.dynamic_usage_bounds() +// } +// } + +// impl OrchardDomain { +// /// Constructs a domain that can be used to trial-decrypt this action's output note. +// pub fn for_action(act: &Action) -> Self { +// Self { rho: act.rho() } +// } + +// /// Constructs a domain that can be used to trial-decrypt a PCZT action's output note. +// pub fn for_pczt_action(act: &crate::pczt::Action) -> Self { +// Self { +// rho: Rho::from_nf_old(act.spend.nullifier), +// } +// } + +// /// Constructs a domain that can be used to trial-decrypt this action's output note. +// pub fn for_compact_action(act: &CompactAction) -> Self { +// Self { rho: act.rho() } +// } +// } + +// impl Domain for OrchardDomain { +// type EphemeralSecretKey = EphemeralSecretKey; +// type EphemeralPublicKey = EphemeralPublicKey; +// type PreparedEphemeralPublicKey = PreparedEphemeralPublicKey; +// type SharedSecret = SharedSecret; +// type SymmetricKey = Hash; +// type Note = Note; +// type Recipient = Address; +// type DiversifiedTransmissionKey = DiversifiedTransmissionKey; +// type IncomingViewingKey = PreparedIncomingViewingKey; +// type OutgoingViewingKey = OutgoingViewingKey; +// type ValueCommitment = ValueCommitment; +// type ExtractedCommitment = ExtractedNoteCommitment; +// type ExtractedCommitmentBytes = [u8; 32]; +// type Memo = [u8; 512]; // TODO use a more interesting type + +// fn derive_esk(note: &Self::Note) -> Option { +// Some(note.esk()) +// } + +// fn get_pk_d(note: &Self::Note) -> Self::DiversifiedTransmissionKey { +// *note.recipient().pk_d() +// } + +// fn prepare_epk(epk: Self::EphemeralPublicKey) -> Self::PreparedEphemeralPublicKey { +// PreparedEphemeralPublicKey::new(epk) +// } + +// fn ka_derive_public( +// note: &Self::Note, +// esk: &Self::EphemeralSecretKey, +// ) -> Self::EphemeralPublicKey { +// esk.derive_public(note.recipient().g_d()) +// } + +// fn ka_agree_enc( +// esk: &Self::EphemeralSecretKey, +// pk_d: &Self::DiversifiedTransmissionKey, +// ) -> Self::SharedSecret { +// esk.agree(pk_d) +// } + +// fn ka_agree_dec( +// ivk: &Self::IncomingViewingKey, +// epk: &Self::PreparedEphemeralPublicKey, +// ) -> Self::SharedSecret { +// epk.agree(ivk) +// } + +// fn kdf(secret: Self::SharedSecret, ephemeral_key: &EphemeralKeyBytes) -> Self::SymmetricKey { +// secret.kdf_orchard(ephemeral_key) +// } + +// fn note_plaintext_bytes(note: &Self::Note, memo: &Self::Memo) -> NotePlaintextBytes { +// let mut np = [0; NOTE_PLAINTEXT_SIZE]; +// np[0] = 0x02; +// np[1..12].copy_from_slice(note.recipient().diversifier().as_array()); +// np[12..20].copy_from_slice(¬e.value().to_bytes()); +// np[20..52].copy_from_slice(note.rseed().as_bytes()); +// np[52..].copy_from_slice(memo); +// NotePlaintextBytes(np) +// } + +// fn derive_ock( +// ovk: &Self::OutgoingViewingKey, +// cv: &Self::ValueCommitment, +// cmstar_bytes: &Self::ExtractedCommitmentBytes, +// ephemeral_key: &EphemeralKeyBytes, +// ) -> OutgoingCipherKey { +// prf_ock_orchard(ovk, cv, cmstar_bytes, ephemeral_key) +// } + +// fn outgoing_plaintext_bytes( +// note: &Self::Note, +// esk: &Self::EphemeralSecretKey, +// ) -> OutPlaintextBytes { +// let mut op = [0; OUT_PLAINTEXT_SIZE]; +// op[..32].copy_from_slice(¬e.recipient().pk_d().to_bytes()); +// op[32..].copy_from_slice(&esk.0.to_repr()); +// OutPlaintextBytes(op) +// } + +// fn epk_bytes(epk: &Self::EphemeralPublicKey) -> EphemeralKeyBytes { +// epk.to_bytes() +// } + +// fn epk(ephemeral_key: &EphemeralKeyBytes) -> Option { +// EphemeralPublicKey::from_bytes(&ephemeral_key.0).into() +// } + +// fn cmstar(note: &Self::Note) -> Self::ExtractedCommitment { +// note.commitment().into() +// } + +// fn parse_note_plaintext_without_memo_ivk( +// &self, +// ivk: &Self::IncomingViewingKey, +// plaintext: &[u8], +// ) -> Option<(Self::Note, Self::Recipient)> { +// orchard_parse_note_plaintext_without_memo(self, plaintext, |diversifier| { +// DiversifiedTransmissionKey::derive(ivk, diversifier) +// }) +// } + +// fn parse_note_plaintext_without_memo_ovk( +// &self, +// pk_d: &Self::DiversifiedTransmissionKey, +// plaintext: &NotePlaintextBytes, +// ) -> Option<(Self::Note, Self::Recipient)> { +// orchard_parse_note_plaintext_without_memo(self, &plaintext.0, |_| *pk_d) +// } + +// fn extract_memo(&self, plaintext: &NotePlaintextBytes) -> Self::Memo { +// plaintext.0[COMPACT_NOTE_SIZE..NOTE_PLAINTEXT_SIZE] +// .try_into() +// .unwrap() +// } + +// fn extract_pk_d(out_plaintext: &OutPlaintextBytes) -> Option { +// DiversifiedTransmissionKey::from_bytes(out_plaintext.0[0..32].try_into().unwrap()).into() +// } + +// fn extract_esk(out_plaintext: &OutPlaintextBytes) -> Option { +// EphemeralSecretKey::from_bytes(out_plaintext.0[32..OUT_PLAINTEXT_SIZE].try_into().unwrap()) +// .into() +// } +// } + +// impl BatchDomain for OrchardDomain { +// fn batch_kdf<'a>( +// items: impl Iterator, &'a EphemeralKeyBytes)>, +// ) -> Vec> { +// let (shared_secrets, ephemeral_keys): (Vec<_>, Vec<_>) = items.unzip(); + +// SharedSecret::batch_to_affine(shared_secrets) +// .zip(ephemeral_keys) +// .map(|(secret, ephemeral_key)| { +// secret.map(|dhsecret| SharedSecret::kdf_orchard_inner(dhsecret, ephemeral_key)) +// }) +// .collect() +// } +// } + +// /// Implementation of in-band secret distribution for Orchard bundles. +// pub type OrchardNoteEncryption = zcash_note_encryption::NoteEncryption; + +// impl ShieldedOutput for Action { +// fn ephemeral_key(&self) -> EphemeralKeyBytes { +// EphemeralKeyBytes(self.encrypted_note().epk_bytes) +// } + +// fn cmstar_bytes(&self) -> [u8; 32] { +// self.cmx().to_bytes() +// } + +// fn enc_ciphertext(&self) -> &[u8; ENC_CIPHERTEXT_SIZE] { +// &self.encrypted_note().enc_ciphertext +// } +// } + +// impl ShieldedOutput for crate::pczt::Action { +// fn ephemeral_key(&self) -> EphemeralKeyBytes { +// EphemeralKeyBytes(self.output.encrypted_note.epk_bytes) +// } + +// fn cmstar_bytes(&self) -> [u8; 32] { +// self.output.cmx.to_bytes() +// } + +// fn enc_ciphertext(&self) -> &[u8; ENC_CIPHERTEXT_SIZE] { +// &self.output.encrypted_note.enc_ciphertext +// } +// } + +// /// A compact Action for light clients. +// #[derive(Clone)] +// pub struct CompactAction { +// nullifier: Nullifier, +// cmx: ExtractedNoteCommitment, +// ephemeral_key: EphemeralKeyBytes, +// enc_ciphertext: [u8; 52], +// } + +// impl fmt::Debug for CompactAction { +// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { +// write!(f, "CompactAction") +// } +// } + +// impl From<&Action> for CompactAction { +// fn from(action: &Action) -> Self { +// CompactAction { +// nullifier: *action.nullifier(), +// cmx: *action.cmx(), +// ephemeral_key: action.ephemeral_key(), +// enc_ciphertext: action.encrypted_note().enc_ciphertext[..52] +// .try_into() +// .unwrap(), +// } +// } +// } + +// impl ShieldedOutput for CompactAction { +// fn ephemeral_key(&self) -> EphemeralKeyBytes { +// EphemeralKeyBytes(self.ephemeral_key.0) +// } + +// fn cmstar_bytes(&self) -> [u8; 32] { +// self.cmx.to_bytes() +// } + +// fn enc_ciphertext(&self) -> &[u8; COMPACT_NOTE_SIZE] { +// &self.enc_ciphertext +// } +// } + +// impl CompactAction { +// /// Create a CompactAction from its constituent parts +// pub fn from_parts( +// nullifier: Nullifier, +// cmx: ExtractedNoteCommitment, +// ephemeral_key: EphemeralKeyBytes, +// enc_ciphertext: [u8; 52], +// ) -> Self { +// Self { +// nullifier, +// cmx, +// ephemeral_key, +// enc_ciphertext, +// } +// } + +// /// Returns the nullifier of the note being spent. +// pub fn nullifier(&self) -> Nullifier { +// self.nullifier +// } + +// /// Returns the commitment to the new note being created. +// pub fn cmx(&self) -> ExtractedNoteCommitment { +// self.cmx +// } + +// /// Obtains the [`Rho`] value that was used to construct the new note being created. +// pub fn rho(&self) -> Rho { +// Rho::from_nf_old(self.nullifier) +// } +// } + +// // /// Utilities for constructing test data. +// // #[cfg(feature = "test-dependencies")] +// // pub mod testing { +// // use rand::RngCore; +// // use zcash_note_encryption::Domain; + +// // use crate::{ +// // keys::OutgoingViewingKey, +// // note::{ExtractedNoteCommitment, Nullifier, RandomSeed, Rho}, +// // value::NoteValue, +// // Address, Note, +// // }; + +// // use super::{CompactAction, OrchardDomain, OrchardNoteEncryption}; + +// // /// Creates a fake `CompactAction` paying the given recipient the specified value. +// // /// +// // /// Returns the `CompactAction` and the new note. +// // pub fn fake_compact_action( +// // rng: &mut R, +// // nf_old: Nullifier, +// // recipient: Address, +// // value: NoteValue, +// // ovk: Option, +// // ) -> (CompactAction, Note) { +// // let rho = Rho::from_nf_old(nf_old); +// // let rseed = { +// // loop { +// // let mut bytes = [0; 32]; +// // rng.fill_bytes(&mut bytes); +// // let rseed = RandomSeed::from_bytes(bytes, &rho); +// // if rseed.is_some().into() { +// // break rseed.unwrap(); +// // } +// // } +// // }; +// // let note = Note::from_parts(recipient, value, rho, rseed).unwrap(); +// // let encryptor = OrchardNoteEncryption::new(ovk, note, [0u8; 512]); +// // let cmx = ExtractedNoteCommitment::from(note.commitment()); +// // let ephemeral_key = OrchardDomain::epk_bytes(encryptor.epk()); +// // let enc_ciphertext = encryptor.encrypt_note_plaintext(); + +// // ( +// // CompactAction { +// // nullifier: nf_old, +// // cmx, +// // ephemeral_key, +// // enc_ciphertext: enc_ciphertext.as_ref()[..52].try_into().unwrap(), +// // }, +// // note, +// // ) +// // } +// // } + +// // #[cfg(test)] +// // mod tests { +// // use rand::rngs::OsRng; +// // use zcash_note_encryption::{ +// // try_compact_note_decryption, try_note_decryption, try_output_recovery_with_ovk, +// // EphemeralKeyBytes, +// // }; + +// // use super::{prf_ock_orchard, CompactAction, OrchardDomain, OrchardNoteEncryption}; +// // use crate::{ +// // action::Action, +// // keys::{ +// // DiversifiedTransmissionKey, Diversifier, EphemeralSecretKey, IncomingViewingKey, +// // OutgoingViewingKey, PreparedIncomingViewingKey, +// // }, +// // note::{ExtractedNoteCommitment, Nullifier, RandomSeed, Rho, TransmittedNoteCiphertext}, +// // primitives::redpallas, +// // value::{NoteValue, ValueCommitment}, +// // Address, Note, +// // }; + +// // #[test] +// // fn test_vectors() { +// // let test_vectors = crate::test_vectors::note_encryption::test_vectors(); + +// // for tv in test_vectors { +// // // +// // // Load the test vector components +// // // + +// // // Recipient key material +// // let ivk = PreparedIncomingViewingKey::new( +// // &IncomingViewingKey::from_bytes(&tv.incoming_viewing_key).unwrap(), +// // ); +// // let ovk = OutgoingViewingKey::from(tv.ovk); +// // let d = Diversifier::from_bytes(tv.default_d); +// // let pk_d = DiversifiedTransmissionKey::from_bytes(&tv.default_pk_d).unwrap(); + +// // // Received Action +// // let cv_net = ValueCommitment::from_bytes(&tv.cv_net).unwrap(); +// // let nf_old = Nullifier::from_bytes(&tv.nf_old).unwrap(); +// // let rho = Rho::from_nf_old(nf_old); +// // let cmx = ExtractedNoteCommitment::from_bytes(&tv.cmx).unwrap(); + +// // let esk = EphemeralSecretKey::from_bytes(&tv.esk).unwrap(); +// // let ephemeral_key = EphemeralKeyBytes(tv.ephemeral_key); + +// // // Details about the expected note +// // let value = NoteValue::from(tv.v); +// // let rseed = RandomSeed::from_bytes(tv.rseed, &rho).unwrap(); + +// // // +// // // Test the individual components +// // // + +// // let shared_secret = esk.agree(&pk_d); +// // assert_eq!(shared_secret.to_bytes(), tv.shared_secret); + +// // let k_enc = shared_secret.kdf_orchard(&ephemeral_key); +// // assert_eq!(k_enc.as_bytes(), tv.k_enc); + +// // let ock = prf_ock_orchard(&ovk, &cv_net, &cmx.to_bytes(), &ephemeral_key); +// // assert_eq!(ock.as_ref(), tv.ock); + +// // let recipient = Address::from_parts(d, pk_d); +// // let note = Note::from_parts(recipient, value, rho, rseed).unwrap(); +// // assert_eq!(ExtractedNoteCommitment::from(note.commitment()), cmx); + +// // let action = Action::from_parts( +// // // nf_old is the nullifier revealed by the receiving Action. +// // nf_old, +// // // We don't need a valid rk for this test. +// // redpallas::VerificationKey::dummy(), +// // cmx, +// // TransmittedNoteCiphertext { +// // epk_bytes: ephemeral_key.0, +// // enc_ciphertext: tv.c_enc, +// // out_ciphertext: tv.c_out, +// // }, +// // cv_net.clone(), +// // (), +// // ); + +// // // +// // // Test decryption +// // // (Tested first because it only requires immutable references.) +// // // + +// // let domain = OrchardDomain { rho }; + +// // match try_note_decryption(&domain, &ivk, &action) { +// // Some((decrypted_note, decrypted_to, decrypted_memo)) => { +// // assert_eq!(decrypted_note, note); +// // assert_eq!(decrypted_to, recipient); +// // assert_eq!(&decrypted_memo[..], &tv.memo[..]); +// // } +// // None => panic!("Note decryption failed"), +// // } + +// // match try_compact_note_decryption(&domain, &ivk, &CompactAction::from(&action)) { +// // Some((decrypted_note, decrypted_to)) => { +// // assert_eq!(decrypted_note, note); +// // assert_eq!(decrypted_to, recipient); +// // } +// // None => panic!("Compact note decryption failed"), +// // } + +// // match try_output_recovery_with_ovk(&domain, &ovk, &action, &cv_net, &tv.c_out) { +// // Some((decrypted_note, decrypted_to, decrypted_memo)) => { +// // assert_eq!(decrypted_note, note); +// // assert_eq!(decrypted_to, recipient); +// // assert_eq!(&decrypted_memo[..], &tv.memo[..]); +// // } +// // None => panic!("Output recovery failed"), +// // } + +// // // +// // // Test encryption +// // // + +// // let ne = OrchardNoteEncryption::new_with_esk(esk, Some(ovk), note, tv.memo); + +// // assert_eq!(ne.encrypt_note_plaintext().as_ref(), &tv.c_enc[..]); +// // assert_eq!( +// // &ne.encrypt_outgoing_plaintext(&cv_net, &cmx, &mut OsRng)[..], +// // &tv.c_out[..] +// // ); +// // } +// // } +// // } diff --git a/zk-crates/zk-headstash/src/pczt.rs b/zk-crates/zk-headstash/src/pczt.rs new file mode 100644 index 0000000..3fb2c93 --- /dev/null +++ b/zk-crates/zk-headstash/src/pczt.rs @@ -0,0 +1,539 @@ +//! PCZT support for Orchard. + +use alloc::collections::BTreeMap; +use alloc::string::String; +use alloc::vec::Vec; +use core::fmt; + +use getset::Getters; +use pasta_curves::pallas; +use zcash_note_encryption::OutgoingCipherKey; +use zip32::ChildIndex; + +use crate::{ + address::RecpAddr, + bundle::Flags, + keys::{EligibleSk, FullViewingKey, SpendingKey}, + note::{ExtractedNoteCommitment, Nullifier, RandomSeed, Rho, TransmittedNoteCiphertext}, + primitives::redpallas::{self, Binding, SpendAuth}, + tree::MerklePath, + value::{NoteDenom, NoteValue, ValueCommitTrapdoor, ValueCommitment, ValueSum}, + Address, Anchor, Proof, +}; + +mod parse; +pub use parse::ParseError; + +mod verify; +pub use verify::VerifyError; + +mod io_finalizer; +pub use io_finalizer::IoFinalizerError; + +mod updater; +pub use updater::{ActionUpdater, Updater, UpdaterError}; + +// #[cfg(feature = "circuit")] +mod prover; +// #[cfg(feature = "circuit")] +pub use prover::ProverError; + +mod signer; +pub use signer::SignerError; + +mod tx_extractor; +pub use tx_extractor::{TxExtractorError, Unbound}; + +/// PCZT fields that are specific to producing the transaction's Orchard bundle (if any). +/// +/// This struct is for representing Orchard in a partially-created transaction. If you +/// have a fully-created transaction, use [the regular `Bundle` struct]. +/// +/// [the regular `Bundle` struct]: crate::Bundle +#[derive(Debug, Getters)] +#[getset(get = "pub")] +pub struct Bundle { + /// The Orchard actions in this bundle. + /// + /// Entries are added by the Constructor, and modified by an Updater, IO Finalizer, + /// Signer, Combiner, or Spend Finalizer. + pub(crate) actions: Vec, + + /// The flags for the Orchard bundle. + /// + /// This is set by the Creator. The Constructor MUST only add spends and outputs that + /// are consistent with these flags (i.e. are dummies as appropriate). + pub(crate) flags: Flags, + + /// The sum of the values of all `actions`. + /// + /// This is initialized by the Creator, and updated by the Constructor as spends or + /// outputs are added to the PCZT. It enables per-spend and per-output values to be + /// redacted from the PCZT after they are no longer necessary. + pub(crate) value_sum: ValueSum, + + /// The Orchard anchor for this transaction. + /// + /// Set by the Creator. + pub(crate) anchor: Anchor, + + /// The Orchard bundle proof. + /// + /// This is `None` until it is set by the Prover. + pub(crate) zkproof: Option, + + /// The Orchard binding signature signing key. + /// + /// - This is `None` until it is set by the IO Finalizer. + /// - The Transaction Extractor uses this to produce the binding signature. + pub(crate) bsk: Option>, +} + +impl Bundle { + /// Returns a mutable reference to the actions in this bundle. + /// + /// This is used by Signers to apply signatures with [`Action::sign`]. + /// + /// Note: updating the `Action`s via the returned slice will not update other + /// fields of the bundle dependent on them, such as `value_sum` and `bsk`. + pub fn actions_mut(&mut self) -> &mut [Action] { + &mut self.actions + } +} + +/// PCZT fields that are specific to producing an Orchard action within a transaction. +/// +/// This struct is for representing Orchard actions in a partially-created transaction. +/// If you have a fully-created transaction, use [the regular `Action` struct]. +/// +/// [the regular `Action` struct]: crate::Action +#[derive(Debug, Getters)] +#[getset(get = "pub")] +pub struct Action { + /// A commitment to the net value created or consumed by this action. + pub(crate) cv_net: ValueCommitment, + + /// The spend half of this action. + pub(crate) spend: Spend, + + /// The output half of this action. + pub(crate) output: Output, + + /// The value commitment randomness. + /// + /// - This is set by the Constructor. + /// - The IO Finalizer compresses it into the bsk. + /// - This is required by the Prover. + /// - This may be used by Signers to verify that the value correctly matches `cv`. + /// + /// This opens `cv` for all participants. For Signers who don't need this information, + /// or after proofs / signatures have been applied, this can be redacted. + pub(crate) rcv: Option, +} + +/// Information about an Orchard spend within a transaction. +#[derive(Debug, Getters)] +#[getset(get = "pub")] +pub struct Spend { + /// The nullifier of the note being spent. + pub(crate) nullifier: Nullifier, + + /// The randomized verification key for the note being spent. + pub(crate) rk: redpallas::VerificationKey, + + /// The spend authorization signature. + /// + /// This is set by the Signer. + pub(crate) spend_auth_sig: Option>, + + /// The note denomination + pub(crate) nd: Option, + /// The note fixed-denomination index + pub(crate) fdi: Option, + pub(crate) esk: Option, + + /// The value of the input being spent. + /// + /// - This is required by the Prover. + /// - This may be used by Signers to verify that the value matches `cv`, and to + /// confirm the values and change involved in the transaction. + /// + /// This exposes the input value to all participants. For Signers who don't need this + /// information, or after signatures have been applied, this can be redacted. + pub(crate) v: Option, + + /// The address that received the note being spent. + /// + /// - This is set by the Constructor (or Updater?). + /// - This is required by the Prover. + pub(crate) recipient: Option, + /// The rho value for the note being spent. + /// + /// - This is set by the Constructor. + /// - This is required by the Prover. + // + // TODO: This could be merged with `rseed` into a tuple. `recipient` and `value` are + // separate because they might need to be independently redacted. (For which role?) + pub(crate) rho: Option, + + /// The seed randomness for the note being spent. + /// + /// - This is set by the Constructor. + /// - This is required by the Prover. + pub(crate) rseed: Option, + + /// The full viewing key that received the note being spent. + /// + /// - This is set by the Updater. + /// - This is required by the Prover. + pub(crate) fvk: Option, + + /// A witness from the note to the bundle's anchor. + /// + /// - This is set by the Updater. + /// - This is required by the Prover. + pub(crate) witness: Option, + + /// The spend authorization randomizer. + /// + /// - This is chosen by the Constructor. + /// - This is required by the Signer for creating `spend_auth_sig`, and may be used to + /// validate `rk`. + /// - After`zkproof` / `spend_auth_sig` has been set, this can be redacted. + pub(crate) alpha: Option, + + /// The ZIP 32 derivation path at which the spending key can be found for the note + /// being spent. + pub(crate) zip32_derivation: Option, + + /// The spending key for this spent note, if it is a dummy note. + /// + /// - This is chosen by the Constructor. + /// - This is required by the IO Finalizer, and is cleared by it once used. + /// - Signers MUST reject PCZTs that contain `dummy_sk` values. + pub(crate) dummy_sk: Option, + + /// Proprietary fields related to the note being spent. + pub(crate) proprietary: BTreeMap>, +} + +/// Information about an Orchard output within a transaction. +#[derive(Getters)] +#[getset(get = "pub")] +pub struct Output { + /// A commitment to the new note being created. + pub(crate) cmx: ExtractedNoteCommitment, + + /// The transmitted note ciphertext. + /// + /// This contains the following PCZT fields: + /// - `ephemeral_key` + /// - `enc_ciphertext` + /// - `out_ciphertext` + pub(crate) encrypted_note: TransmittedNoteCiphertext, + + /// The address that will receive the output. + /// + /// - This is set by the Constructor. + /// - This is required by the Prover. + /// - The Signer can use `recipient` and `rseed` (if present) to verify that + /// `enc_ciphertext` is correctly encrypted (and contains a note plaintext matching + /// the public commitments), and to confirm the value of the memo. + pub(crate) recipient: Option, + + /// The value of the output. + /// + /// This may be used by Signers to verify that the value matches `cv`, and to confirm + /// the values and change involved in the transaction. + /// + /// This exposes the value to all participants. For Signers who don't need this + /// information, we can drop the values and compress the rcvs into the bsk global. + pub(crate) v: Option, + + /// The esk the output. + pub(crate) esk: Option, + + /// The note denom of the output. + pub(crate) nd: Option, + + /// The fdi for the output. + pub(crate) fdi: Option, + /// The seed randomness for the output. + /// + /// - This is set by the Constructor. + /// - This is required by the Prover. + /// - The Signer can use `recipient` and `rseed` (if present) to verify that + /// `enc_ciphertext` is correctly encrypted (and contains a note plaintext matching + /// the public commitments), and to confirm the value of the memo. + pub(crate) rseed: Option, + + /// The `ock` value used to encrypt `out_ciphertext`. + /// + /// This enables Signers to verify that `out_ciphertext` is correctly encrypted. + /// + /// This may be `None` if the Constructor added the output using an OVK policy of + /// "None", to make the output unrecoverable from the chain by the sender. + pub(crate) ock: Option, + + /// The ZIP 32 derivation path at which the spending key can be found for the output. + pub(crate) zip32_derivation: Option, + + /// The user-facing address to which this output is being sent, if any. + /// + /// - This is set by an Updater. + /// - Signers must parse this address (if present) and confirm that it contains + /// `recipient` (either directly, or e.g. as a receiver within a Unified Address). + pub(crate) user_address: Option, + + /// Proprietary fields related to the note being created. + pub(crate) proprietary: BTreeMap>, +} + +impl fmt::Debug for Output { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Output") + .field("cmx", &self.cmx) + .field("encrypted_note", &self.encrypted_note) + .field("recipient", &self.recipient) + .field("v", &self.v) + .field("rseed", &self.rseed) + .field("zip32_derivation", &self.zip32_derivation) + .field("user_address", &self.user_address) + .field("proprietary", &self.proprietary) + .finish_non_exhaustive() + } +} + +/// The ZIP 32 derivation path at which a key can be found. +#[derive(Debug, Getters, PartialEq, Eq)] +#[getset(get = "pub")] +pub struct Zip32Derivation { + /// The [ZIP 32 seed fingerprint](https://zips.z.cash/zip-0032#seed-fingerprints). + seed_fingerprint: [u8; 32], + + /// The sequence of indices corresponding to the shielded HD path. + derivation_path: Vec, +} + +impl Zip32Derivation { + /// Extracts the ZIP 32 account index from this derivation path. + /// + /// Returns `None` if the seed fingerprints don't match, or if this is a non-standard + /// derivation path. + pub fn extract_account_index( + &self, + seed_fp: &zip32::fingerprint::SeedFingerprint, + expected_coin_type: zip32::ChildIndex, + ) -> Option { + if self.seed_fingerprint == seed_fp.to_bytes() { + match &self.derivation_path[..] { + [purpose, coin_type, account_index] + if purpose == &zip32::ChildIndex::hardened(32) + && coin_type == &expected_coin_type => + { + Some( + zip32::AccountId::try_from(account_index.index() - (1 << 31)) + .expect("zip32::ChildIndex only supports hardened"), + ) + } + _ => None, + } + } else { + None + } + } +} + +#[cfg(test)] +mod tests { + use cosmwasm_std::Api; + use ff::{Field, PrimeField}; + use incrementalmerkletree::{Marking, Retention}; + use pasta_curves::pallas; + use rand::rngs::OsRng; + use secp256k1::SecretKey; + use shardtree::{store::memory::MemoryShardStore, ShardTree}; + + use crate::{ + address::RecpAddr, + builder::{Builder, BundleType}, + circuit::ProvingKey, + constants::MERKLE_DEPTH_ORCHARD, + keys::{EligibleSk, FullViewingKey, Scope, SpendAuthorizingKey, SpendingKey}, + note::{ExtractedNoteCommitment, RandomSeed, Rho}, + pczt::Zip32Derivation, + tree::{MerkleHashOrchard, EMPTY_ROOTS}, + value::{NoteDenom, NoteValue}, + Note, + }; + + #[test] + fn shielding_bundle() { + let pk = ProvingKey::build(); + let mut rng = OsRng; + + let sk = SpendingKey::random(&mut rng); + let fvk = FullViewingKey::from(&sk); + let recipient = fvk.address_at(0u32, Scope::External); + + // Run the Creator and Constructor roles. + let mut builder = Builder::new( + BundleType::DEFAULT, + EMPTY_ROOTS[MERKLE_DEPTH_ORCHARD].into(), + ); + builder + .add_output(None, recipient, NoteValue::from(5000), [0u8; 512]) + .unwrap(); + let balance: i64 = builder.value_balance().unwrap(); + assert_eq!(balance, -5000); + let mut pczt_bundle = builder.build_for_pczt(&mut rng).unwrap().0; + + // Run the IO Finalizer role. + let sighash = [0; 32]; + pczt_bundle.finalize_io(sighash, rng).unwrap(); + + // Run the Prover role. + pczt_bundle.create_proof(&pk, rng).unwrap(); + + // Run the Transaction Extractor role. + let bundle = pczt_bundle.extract::().unwrap().unwrap(); + + assert_eq!(bundle.value_balance(), &(-5000)); + // We can successfully bind the bundle. + bundle.apply_binding_signature(sighash, rng).unwrap(); + } + + #[test] + fn shielded_bundle() { + let pk = ProvingKey::build(); + let mut rng = OsRng; + use crate::alloc::string::ToString; + // 1. Generate secp256k1 key pair (esk, epk) + let e_sk_bytes = [ + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, + 0x1d, 0x1e, 0x1f, 0x20, + ]; + + let e_sk_secp = SecretKey::from_byte_array(e_sk_bytes).expect("valid secret key"); + let esk = EligibleSk::from(e_sk_secp); + + // Pretend we derived the spending key via ZIP 32. + let zip32_derivation = Zip32Derivation::parse([1; 32], vec![]).unwrap(); + let sk = SpendingKey::random(&mut rng); + let ask = SpendAuthorizingKey::from(&sk); + let fvk = FullViewingKey::from(&sk); + let recipient = fvk.address_at(0u32, Scope::External); + + // 4. Create recp address + + let mock_deps = cosmwasm_std::testing::mock_dependencies(); + let recp = RecpAddr::try_from( + mock_deps + .api + .addr_canonicalize(&mock_deps.api.addr_make(&"dang").to_string()) + .unwrap(), + ) + .unwrap(); + + // Pretend we already received a note. + let value = NoteValue::from(15_000); + let nd = NoteDenom::new_for_proof("dang jroc"); + let note = { + let rho = Rho::from_bytes(&pallas::Base::random(&mut rng).to_repr()).unwrap(); + loop { + if let Some(note) = Note::from_parts( + nd, + value, + 0, + recp, + esk, + rho, + RandomSeed::random(&mut rng, &rho), + ) + .into_option() + { + break note; + } + } + }; + + // Use the tree with a single leaf. + let (anchor, merkle_path) = { + let cmx: ExtractedNoteCommitment = note.commitment().into(); + let leaf = MerkleHashOrchard::from_cmx(&cmx); + let mut tree: ShardTree, 32, 16> = + ShardTree::new(MemoryShardStore::empty(), 100); + tree.append( + leaf, + Retention::Checkpoint { + id: 0, + marking: Marking::Marked, + }, + ) + .unwrap(); + let root = tree.root_at_checkpoint_id(&0).unwrap().unwrap(); + let position = tree.max_leaf_position(None).unwrap().unwrap(); + let merkle_path = tree + .witness_at_checkpoint_id(position, &0) + .unwrap() + .unwrap(); + assert_eq!(root, merkle_path.root(MerkleHashOrchard::from_cmx(&cmx))); + (root.into(), merkle_path) + }; + + // Run the Creator and Constructor roles. + let mut builder = Builder::new(BundleType::DEFAULT, anchor); + builder + .add_spend(fvk.clone(), note, merkle_path.into()) + .unwrap(); + builder + .add_output(None, recipient, NoteValue::from(10_000), [0u8; 512]) + .unwrap(); + builder + .add_output( + Some(fvk.to_ovk(Scope::Internal)), + fvk.address_at(0u32, Scope::Internal), + NoteValue::from(5_000), + [0u8; 512], + ) + .unwrap(); + let balance: i64 = builder.value_balance().unwrap(); + assert_eq!(balance, 0); + let mut pczt_bundle = builder.build_for_pczt(&mut rng).unwrap().0; + + // Run the IO Finalizer role. + let sighash = [0; 32]; + pczt_bundle.finalize_io(sighash, rng).unwrap(); + + // Run the Updater role. + for action in pczt_bundle.actions_mut() { + if action.spend.v() == &Some(value) { + action.spend.zip32_derivation = Some(Zip32Derivation { + seed_fingerprint: zip32_derivation.seed_fingerprint, + derivation_path: zip32_derivation.derivation_path.clone(), + }); + } + } + + // Run the Prover role. + pczt_bundle.create_proof(&pk, rng).unwrap(); + + // TODO: Verify that the PCZT contains sufficient information to decrypt and check + // `enc_ciphertext`. + + // Run the Signer role. + for action in pczt_bundle.actions_mut() { + if action.spend.zip32_derivation.as_ref() == Some(&zip32_derivation) { + action.sign(sighash, &ask, rng).unwrap(); + } + } + + // Run the Transaction Extractor role. + let bundle = pczt_bundle.extract::().unwrap().unwrap(); + + assert_eq!(bundle.value_balance(), &0); + // We can successfully bind the bundle. + bundle.apply_binding_signature(sighash, rng).unwrap(); + } +} diff --git a/zk-crates/zk-headstash/src/pczt/io_finalizer.rs b/zk-crates/zk-headstash/src/pczt/io_finalizer.rs new file mode 100644 index 0000000..6f9a7ec --- /dev/null +++ b/zk-crates/zk-headstash/src/pczt/io_finalizer.rs @@ -0,0 +1,71 @@ +use alloc::vec::Vec; + +use rand::{CryptoRng, RngCore}; + +use crate::{ + keys::SpendAuthorizingKey, + primitives::redpallas, + value::{ValueCommitTrapdoor, ValueCommitment}, +}; + +use super::SignerError; + +impl super::Bundle { + /// Finalizes the IO for this bundle. + pub fn finalize_io( + &mut self, + sighash: [u8; 32], + mut rng: R, + ) -> Result<(), IoFinalizerError> { + // Compute the transaction binding signing key. + let rcvs = self + .actions + .iter() + .map(|a| { + a.rcv + .as_ref() + .ok_or(IoFinalizerError::MissingValueCommitTrapdoor) + }) + .collect::, _>>()?; + let bsk = rcvs.into_iter().sum::().into_bsk(); + + // Verify that bsk and bvk are consistent. + let bvk = (self + .actions + .iter() + .map(|a| a.cv_net()) + .sum::() + - ValueCommitment::derive(self.value_sum, ValueCommitTrapdoor::zero())) + .into_bvk(); + if redpallas::VerificationKey::from(&bsk) != bvk { + return Err(IoFinalizerError::ValueCommitMismatch); + } + self.bsk = Some(bsk); + + // Add signatures to dummy spends. + for action in self.actions.iter_mut() { + // The `Option::take` ensures we don't have any spend authorizing keys in the + // PCZT after the IO Finalizer has run. + if let Some(sk) = action.spend.dummy_sk.take() { + let ask = SpendAuthorizingKey::from(&sk); + action + .sign(sighash, &ask, &mut rng) + .map_err(IoFinalizerError::DummySignature)?; + } + } + + Ok(()) + } +} + +/// Errors that can occur while finalizing the I/O for a PCZT bundle. +#[derive(Debug)] +pub enum IoFinalizerError { + /// An error occurred while signing a dummy spend. + DummySignature(SignerError), + /// The IO Finalizer role requires all `rcv` fields to be set. + MissingValueCommitTrapdoor, + /// The `cv_net`, `rcv`, and `value_sum` values within the Orchard bundle are + /// inconsistent. + ValueCommitMismatch, +} diff --git a/zk-crates/zk-headstash/src/pczt/parse.rs b/zk-crates/zk-headstash/src/pczt/parse.rs new file mode 100644 index 0000000..26dfde7 --- /dev/null +++ b/zk-crates/zk-headstash/src/pczt/parse.rs @@ -0,0 +1,341 @@ +use alloc::collections::BTreeMap; +use alloc::string::String; +use alloc::vec::Vec; + +use ff::PrimeField; +use incrementalmerkletree::Hashable; +use pasta_curves::pallas; +use zcash_note_encryption::OutgoingCipherKey; +use zip32::ChildIndex; + +use super::{Action, Bundle, Output, Spend, Zip32Derivation}; +use crate::{ + address::RecpAddr, + bundle::Flags, + keys::{EligibleSk, FullViewingKey, SpendingKey}, + note::{ExtractedNoteCommitment, Nullifier, RandomSeed, Rho, TransmittedNoteCiphertext}, + primitives::redpallas::{self, SpendAuth}, + tree::{MerkleHashOrchard, MerklePath}, + value::{NoteDenom, NoteValue, Sign, ValueCommitTrapdoor, ValueCommitment, ValueSum}, + Address, Anchor, Proof, NOTE_COMMITMENT_TREE_DEPTH, +}; + +impl Bundle { + /// Parses a PCZT bundle from its component parts. + /// `value_sum` is represented as `(magnitude, is_negative)`. + pub fn parse( + actions: Vec, + flags: u8, + value_sum: (u64, bool), + anchor: [u8; 32], + zkproof: Option>, + bsk: Option<[u8; 32]>, + ) -> Result { + let flags = Flags::from_byte(flags).ok_or(ParseError::UnexpectedFlagBitsSet)?; + + let value_sum = { + let (magnitude, is_negative) = value_sum; + ValueSum::from_magnitude_sign( + magnitude, + if is_negative { + Sign::Negative + } else { + Sign::Positive + }, + ) + }; + + let anchor = Anchor::from_bytes(anchor) + .into_option() + .ok_or(ParseError::InvalidAnchor)?; + + let zkproof = zkproof.map(Proof::new); + + let bsk = bsk + .map(redpallas::SigningKey::try_from) + .transpose() + .map_err(|_| ParseError::InvalidBindingSignatureSigningKey)?; + + Ok(Self { + actions, + flags, + value_sum, + anchor, + zkproof, + bsk, + }) + } +} + +impl Action { + /// Parses a PCZT action from its component parts. + pub fn parse( + cv_net: [u8; 32], + spend: Spend, + output: Output, + rcv: Option<[u8; 32]>, + ) -> Result { + let cv_net = ValueCommitment::from_bytes(&cv_net) + .into_option() + .ok_or(ParseError::InvalidValueCommitment)?; + + let rcv = rcv + .map(ValueCommitTrapdoor::from_bytes) + .map(|rcv| { + rcv.into_option() + .ok_or(ParseError::InvalidValueCommitTrapdoor) + }) + .transpose()?; + + Ok(Self { + cv_net, + spend, + output, + rcv, + }) + } +} + +impl Spend { + /// Parses a PCZT spend from its component parts. + #[allow(clippy::too_many_arguments)] + pub fn parse( + nullifier: [u8; 32], + rk: [u8; 32], + spend_auth_sig: Option<[u8; 64]>, + recipient: Option<[u8; 32]>, + value: Option, + rho: Option<[u8; 32]>, + rseed: Option<[u8; 32]>, + nd: Option<[u8; 32]>, + esk: Option<[u8; 32]>, + fdi: Option, + fvk: Option<[u8; 96]>, + witness: Option<(u32, [[u8; 32]; NOTE_COMMITMENT_TREE_DEPTH])>, + alpha: Option<[u8; 32]>, + zip32_derivation: Option, + dummy_sk: Option<[u8; 32]>, + proprietary: BTreeMap>, + ) -> Result { + let nullifier = Nullifier::from_bytes(&nullifier) + .into_option() + .ok_or(ParseError::InvalidNullifier)?; + + let rk = redpallas::VerificationKey::try_from(rk) + .map_err(|_| ParseError::InvalidRandomizedKey)?; + + let spend_auth_sig = spend_auth_sig.map(redpallas::Signature::::from); + + let recipient = recipient.map(|r| RecpAddr::new(r)); + + let value = value.map(NoteValue::from); + let nd = nd.map(NoteDenom::from); + let fdi = fdi.map(u64::from); + + let rho = rho + .map(|rho| { + Rho::from_bytes(&rho) + .into_option() + .ok_or(ParseError::InvalidRho) + }) + .transpose()?; + + let rseed = rseed + .map(|rseed| { + let rho = rho.as_ref().ok_or(ParseError::MissingRho)?; + RandomSeed::from_bytes(rseed, rho) + .into_option() + .ok_or(ParseError::InvalidRandomSeed) + }) + .transpose()?; + + let fvk = fvk + .map(|fvk| FullViewingKey::from_bytes(&fvk).ok_or(ParseError::InvalidFullViewingKey)) + .transpose()?; + let esk = esk.map(|esk| EligibleSk::from_bytes(esk)); + let witness = witness + .map(|(position, auth_path)| { + Ok(MerklePath::from_parts(position, { + // Replace this with `array::try_map` if it ever stabilises. + let mut buf = [MerkleHashOrchard::empty_leaf(); NOTE_COMMITMENT_TREE_DEPTH]; + for (from, to) in auth_path.into_iter().zip(&mut buf) { + *to = MerkleHashOrchard::from_bytes(&from) + .into_option() + .ok_or(ParseError::InvalidWitness)?; + } + buf + })) + }) + .transpose()?; + + let alpha = alpha + .map(|alpha| { + pallas::Scalar::from_repr(alpha) + .into_option() + .ok_or(ParseError::InvalidSpendAuthRandomizer) + }) + .transpose()?; + + let dummy_sk = dummy_sk + .map(|dummy_sk| { + SpendingKey::from_bytes(dummy_sk) + .into_option() + .ok_or(ParseError::InvalidDummySpendingKey) + }) + .transpose()?; + + Ok(Self { + nullifier, + rk, + nd, + fdi, + spend_auth_sig, + recipient, + esk, + value, + rho, + rseed, + fvk, + witness, + alpha, + zip32_derivation, + dummy_sk, + proprietary, + }) + } +} + +impl Output { + /// Parses a PCZT output from its component parts, and the corresponding `Spend`'s + /// nullifier. + #[allow(clippy::too_many_arguments)] + pub fn parse( + spend_nullifier: Nullifier, + cmx: [u8; 32], + ephemeral_key: [u8; 32], + enc_ciphertext: Vec, + out_ciphertext: Vec, + esk: Option<[u8; 32]>, + fdi: Option, + nd: Option, + v: Option, + recipient: Option<[u8; 32]>, + rseed: Option<[u8; 32]>, + ock: Option<[u8; 32]>, + zip32_derivation: Option, + user_address: Option, + proprietary: BTreeMap>, + ) -> Result { + let cmx = ExtractedNoteCommitment::from_bytes(&cmx) + .into_option() + .ok_or(ParseError::InvalidExtractedNoteCommitment)?; + + let encrypted_note = TransmittedNoteCiphertext { + epk_bytes: ephemeral_key, + enc_ciphertext: enc_ciphertext + .as_slice() + .try_into() + .map_err(|_| ParseError::InvalidEncCiphertext)?, + out_ciphertext: out_ciphertext + .as_slice() + .try_into() + .map_err(|_| ParseError::InvalidOutCiphertext)?, + }; + + let esk = esk.map(|r| EligibleSk::from_bytes(r)); + let recipient = recipient + .as_ref() + .map(|r| RecpAddr::try_from(r.as_slice()).unwrap()); + + let v = v.map(NoteValue::from); + let nd = nd.map(NoteDenom::from); + + let rseed = rseed + .map(|rseed| { + let rho = Rho::from_nf_old(spend_nullifier); + RandomSeed::from_bytes(rseed, &rho) + .into_option() + .ok_or(ParseError::InvalidRandomSeed) + }) + .transpose()?; + + let ock = ock.map(OutgoingCipherKey); + + Ok(Self { + cmx, + encrypted_note, + recipient, + v, + nd, + esk, + fdi, + rseed, + ock, + zip32_derivation, + user_address, + proprietary, + }) + } +} + +impl Zip32Derivation { + /// Parses a ZIP 32 derivation path from its component parts. + /// + /// Returns an error if any of the derivation path indices are non-hardened (which + /// Orchard does not support). + pub fn parse( + seed_fingerprint: [u8; 32], + derivation_path: Vec, + ) -> Result { + Ok(Self { + seed_fingerprint, + derivation_path: derivation_path + .into_iter() + .map(|i| ChildIndex::from_index(i).ok_or(ParseError::InvalidZip32Derivation)) + .collect::>()?, + }) + } +} + +/// Errors that can occur while parsing a PCZT bundle. +#[derive(Debug)] +pub enum ParseError { + /// An invalid anchor was provided. + InvalidAnchor, + /// An invalid `bsk` was provided. + InvalidBindingSignatureSigningKey, + /// An invalid `dummy_sk` was provided. + InvalidDummySpendingKey, + /// An invalid `enc_ciphertext` was provided. + InvalidEncCiphertext, + /// An invalid `cmx` was provided. + InvalidExtractedNoteCommitment, + /// An invalid `fvk` was provided. + InvalidFullViewingKey, + /// An invalid `nullifier` was provided. + InvalidNullifier, + /// An invalid `out_ciphertext` was provided. + InvalidOutCiphertext, + /// An invalid `rk` was provided. + InvalidRandomizedKey, + /// An invalid `rseed` was provided. + InvalidRandomSeed, + /// An invalid `recipient` was provided. + InvalidRecipient, + /// An invalid `rho` was provided. + InvalidRho, + /// An invalid `alpha` was provided. + InvalidSpendAuthRandomizer, + /// An invalid `cv_net` was provided. + InvalidValueCommitment, + /// An invalid `rcv` was provided. + InvalidValueCommitTrapdoor, + /// An invalid `witness` was provided. + InvalidWitness, + /// An invalid `zip32_derivation` was provided. + InvalidZip32Derivation, + /// `rho` must be provided whenever `rseed` is provided. + MissingRho, + /// The provided `flags` field had unexpected bits set. + UnexpectedFlagBitsSet, +} diff --git a/zk-crates/zk-headstash/src/pczt/prover.rs b/zk-crates/zk-headstash/src/pczt/prover.rs new file mode 100644 index 0000000..8efe79f --- /dev/null +++ b/zk-crates/zk-headstash/src/pczt/prover.rs @@ -0,0 +1,144 @@ +use alloc::vec::Vec; + +use halo2_proofs::plonk; +use rand::{CryptoRng, RngCore}; + +use crate::{ + builder::SpendInfo, + circuit::{Circuit, Instance, ProvingKey}, + note::Rho, + Note, Proof, +}; + +impl super::Bundle { + /// Adds a proof to this PCZT bundle. + pub fn create_proof( + &mut self, + pk: &ProvingKey, + rng: R, + ) -> Result<(), ProverError> { + // If we have no actions, we don't need a proof (and if we still have no actions + // by the time we come to transaction extraction, we will end up with a `None` + // bundle that doesn't even hold a proof field). + if self.actions.is_empty() { + return Ok(()); + } + + let circuits = self + .actions + .iter() + .map(|action| { + let fvk = action + .spend + .fvk + .clone() + .ok_or(ProverError::MissingFullViewingKey)?; + + let note = Note::from_parts( + action.spend.nd.ok_or(ProverError::MissingRecipient)?, + action.spend.value.ok_or(ProverError::MissingRecipient)?, + action.spend.fdi.ok_or(ProverError::MissingRecipient)?, + action + .spend + .recipient + .ok_or(ProverError::MissingRecipient)?, + action.spend.esk.ok_or(ProverError::MissingRecipient)?, + action.spend.rho.ok_or(ProverError::MissingRho)?, + action.spend.rseed.ok_or(ProverError::MissingRandomSeed)?, + ) + .into_option() + .ok_or(ProverError::InvalidSpendNote)?; + + let merkle_path = action + .spend + .witness + .clone() + .ok_or(ProverError::MissingWitness)?; + + let spend = + SpendInfo::new(fvk, note, merkle_path).ok_or(ProverError::WrongFvkForNote)?; + + let output_note = Note::from_parts( + action.output.nd.ok_or(ProverError::MissingRecipient)?, + action.output.v.ok_or(ProverError::MissingValue)?, + action.output.fdi.ok_or(ProverError::MissingValue)?, + action + .output + .recipient + .ok_or(ProverError::MissingRecipient)?, + action.output.esk.ok_or(ProverError::MissingRecipient)?, + Rho::from_nf_old(action.spend.nullifier), + action.output.rseed.ok_or(ProverError::MissingRandomSeed)?, + ) + .into_option() + .ok_or(ProverError::InvalidOutputNote)?; + + let alpha = action + .spend + .alpha + .ok_or(ProverError::MissingSpendAuthRandomizer)?; + let rcv = action + .rcv + .clone() + .ok_or(ProverError::MissingValueCommitTrapdoor)?; + + Circuit::from_action_context(spend, output_note, alpha, rcv) + .ok_or(ProverError::RhoMismatch) + }) + .collect::, ProverError>>()?; + + let instances = self + .actions + .iter() + .map(|action| { + Instance::from_parts( + self.anchor, + action.cv_net.clone(), + action.spend.nullifier, + action.spend.rk.clone(), + action.output.cmx, + self.flags.spends_enabled(), + self.flags.outputs_enabled(), + ) + }) + .collect::>(); + + let proof = + Proof::create(pk, &circuits, &instances, rng).map_err(ProverError::ProofFailed)?; + + self.zkproof = Some(proof); + + Ok(()) + } +} + +/// Errors that can occur while creating Orchard proofs for a PCZT. +#[derive(Debug)] +pub enum ProverError { + /// The output note's components do not produce a valid note commitment. + InvalidOutputNote, + /// The spent note's components do not produce a valid note commitment. + InvalidSpendNote, + /// The Prover role requires `fvk` to be set. + MissingFullViewingKey, + /// The Prover role requires all `rseed` fields to be set. + MissingRandomSeed, + /// The Prover role requires all `recipient` fields to be set. + MissingRecipient, + /// The Prover role requires `rho` to be set. + MissingRho, + /// The Prover role requires `alpha` to be set. + MissingSpendAuthRandomizer, + /// The Prover role requires all `value` fields to be set. + MissingValue, + /// The Prover role requires `rcv` to be set. + MissingValueCommitTrapdoor, + /// The Prover role requires `witness` to be set. + MissingWitness, + /// An error occurred while creating the proof. + ProofFailed(plonk::Error), + /// The `rho` of the `output_note` is not equal to the nullifier of the spent note. + RhoMismatch, + /// The provided `fvk` does not own the spent note. + WrongFvkForNote, +} diff --git a/zk-crates/zk-headstash/src/pczt/signer.rs b/zk-crates/zk-headstash/src/pczt/signer.rs new file mode 100644 index 0000000..7f5f802 --- /dev/null +++ b/zk-crates/zk-headstash/src/pczt/signer.rs @@ -0,0 +1,41 @@ +use rand::{CryptoRng, RngCore}; + +use crate::{keys::SpendAuthorizingKey, primitives::redpallas}; + +impl super::Action { + /// Signs the Orchard spend with the given spend authorizing key. + /// + /// It is the caller's responsibility to perform any semantic validity checks on the + /// PCZT (for example, comfirming that the change amounts are correct) before calling + /// this method. + pub fn sign( + &mut self, + sighash: [u8; 32], + ask: &SpendAuthorizingKey, + rng: R, + ) -> Result<(), SignerError> { + let alpha = self + .spend + .alpha + .ok_or(SignerError::MissingSpendAuthRandomizer)?; + + let rsk = ask.randomize(&alpha); + let rk = redpallas::VerificationKey::from(&rsk); + + if self.spend.rk == rk { + self.spend.spend_auth_sig = Some(rsk.sign(rng, &sighash)); + Ok(()) + } else { + Err(SignerError::WrongSpendAuthorizingKey) + } + } +} + +/// Errors that can occur while signing an Orchard action in a PCZT. +#[derive(Debug)] +pub enum SignerError { + /// The Signer role requires `alpha` to be set. + MissingSpendAuthRandomizer, + /// The provided `ask` does not own the action's spent note. + WrongSpendAuthorizingKey, +} diff --git a/zk-crates/zk-headstash/src/pczt/tx_extractor.rs b/zk-crates/zk-headstash/src/pczt/tx_extractor.rs new file mode 100644 index 0000000..f2daf9e --- /dev/null +++ b/zk-crates/zk-headstash/src/pczt/tx_extractor.rs @@ -0,0 +1,152 @@ +use nonempty::NonEmpty; +use rand::{CryptoRng, RngCore}; + +use super::Action; +use crate::{ + bundle::{Authorization, Authorized, EffectsOnly}, + primitives::redpallas::{self, Binding, SpendAuth}, + Proof, +}; + +impl super::Bundle { + /// Extracts the effects of this PCZT bundle as a [regular `Bundle`]. + /// + /// This is used by the Signer role to produce the transaction sighash. + /// + /// [regular `Bundle`]: crate::Bundle + pub fn extract_effects>( + &self, + ) -> Result>, TxExtractorError> { + self.to_tx_data(|_| Ok(()), |_| Ok(EffectsOnly)) + } + + /// Extracts a fully authorized [regular `Bundle`] from this PCZT bundle. + /// + /// This is used by the Transaction Extractor role to produce the final transaction. + /// + /// [regular `Bundle`]: crate::Bundle + pub fn extract>( + self, + ) -> Result>, TxExtractorError> { + self.to_tx_data( + |action| { + action + .spend + .spend_auth_sig + .clone() + .ok_or(TxExtractorError::MissingSpendAuthSig) + }, + |bundle| { + Ok(Unbound { + proof: bundle + .zkproof + .clone() + .ok_or(TxExtractorError::MissingProof)?, + bsk: bundle + .bsk + .clone() + .ok_or(TxExtractorError::MissingBindingSignatureSigningKey)?, + }) + }, + ) + } + + /// Converts this PCZT bundle into a regular bundle with the given authorizations. + fn to_tx_data( + &self, + action_auth: F, + bundle_auth: G, + ) -> Result>, E> + where + A: Authorization, + E: From, + F: Fn(&Action) -> Result<::SpendAuth, E>, + G: FnOnce(&Self) -> Result, + V: TryFrom, + { + let actions = self + .actions + .iter() + .map(|action| { + let authorization = action_auth(action)?; + + Ok(crate::Action::from_parts( + action.spend.nullifier, + action.spend.rk.clone(), + action.output.cmx, + action.output.encrypted_note.clone(), + action.cv_net.clone(), + authorization, + )) + }) + .collect::>()?; + + Ok(if let Some(actions) = NonEmpty::from_vec(actions) { + let value_balance = i64::try_from(self.value_sum) + .ok() + .and_then(|v| v.try_into().ok()) + .ok_or(TxExtractorError::ValueSumOutOfRange)?; + + let authorization = bundle_auth(self)?; + + Some(crate::Bundle::from_parts( + actions, + self.flags, + value_balance, + self.anchor, + authorization, + )) + } else { + None + }) + } +} + +/// Errors that can occur while extracting a regular Orchard bundle from a PCZT bundle. +#[derive(Debug)] +pub enum TxExtractorError { + /// The Transaction Extractor role requires `bsk` to be set. + MissingBindingSignatureSigningKey, + /// The Transaction Extractor role requires `zkproof` to be set. + MissingProof, + /// The Transaction Extractor role requires all `spend_auth_sig` fields to be set. + MissingSpendAuthSig, + /// The value sum does not fit into a `valueBalance`. + ValueSumOutOfRange, +} + +/// Authorizing data for a bundle of actions that is just missing a binding signature. +#[derive(Debug)] +pub struct Unbound { + proof: Proof, + bsk: redpallas::SigningKey, +} + +impl Authorization for Unbound { + type SpendAuth = redpallas::Signature; +} + +impl crate::Bundle { + /// Verifies the given sighash with every `spend_auth_sig`, and then binds the bundle. + /// + /// Returns `None` if the given sighash does not validate against every `spend_auth_sig`. + pub fn apply_binding_signature( + self, + sighash: [u8; 32], + rng: R, + ) -> Option> { + if self + .actions() + .iter() + .all(|action| action.rk().verify(&sighash, action.authorization()).is_ok()) + { + Some(self.map_authorization( + &mut (), + |_, _, a| a, + |_, Unbound { proof, bsk }| Authorized::from_parts(proof, bsk.sign(rng, &sighash)), + )) + } else { + None + } + } +} diff --git a/zk-crates/zk-headstash/src/pczt/updater.rs b/zk-crates/zk-headstash/src/pczt/updater.rs new file mode 100644 index 0000000..5d032b1 --- /dev/null +++ b/zk-crates/zk-headstash/src/pczt/updater.rs @@ -0,0 +1,77 @@ +use alloc::string::String; +use alloc::vec::Vec; + +use super::{Action, Bundle, Zip32Derivation}; + +impl Bundle { + /// Updates the bundle with information provided in the given closure. + pub fn update_with(&mut self, f: F) -> Result<(), UpdaterError> + where + F: FnOnce(Updater<'_>) -> Result<(), UpdaterError>, + { + f(Updater(self)) + } +} + +/// An updater for an Orchard PCZT bundle. +#[derive(Debug)] +pub struct Updater<'a>(&'a mut Bundle); + +impl Updater<'_> { + /// Provides read access to the bundle being updated. + pub fn bundle(&self) -> &Bundle { + self.0 + } + + /// Updates the action at the given index with information provided in the given + /// closure. + pub fn update_action_with(&mut self, index: usize, f: F) -> Result<(), UpdaterError> + where + F: FnOnce(ActionUpdater<'_>) -> Result<(), UpdaterError>, + { + f(ActionUpdater( + self.0 + .actions + .get_mut(index) + .ok_or(UpdaterError::InvalidIndex)?, + )) + } +} + +/// An updater for an Orchard PCZT action. +#[derive(Debug)] +pub struct ActionUpdater<'a>(&'a mut Action); + +impl ActionUpdater<'_> { + /// Sets the ZIP 32 derivation path for the spent note's signing key. + pub fn set_spend_zip32_derivation(&mut self, derivation: Zip32Derivation) { + self.0.spend.zip32_derivation = Some(derivation); + } + + /// Stores the given spend-specific proprietary value at the given key. + pub fn set_spend_proprietary(&mut self, key: String, value: Vec) { + self.0.spend.proprietary.insert(key, value); + } + + /// Sets the ZIP 32 derivation path for the new note's signing key. + pub fn set_output_zip32_derivation(&mut self, derivation: Zip32Derivation) { + self.0.output.zip32_derivation = Some(derivation); + } + + /// Sets the user-facing address that the new note is being sent to. + pub fn set_output_user_address(&mut self, user_address: String) { + self.0.output.user_address = Some(user_address); + } + + /// Stores the given output-specific proprietary value at the given key. + pub fn set_output_proprietary(&mut self, key: String, value: Vec) { + self.0.output.proprietary.insert(key, value); + } +} + +/// Errors that can occur while updating an Orchard bundle in a PCZT. +#[derive(Debug)] +pub enum UpdaterError { + /// An out-of-bounds index was provided when looking up an action. + InvalidIndex, +} diff --git a/zk-crates/zk-headstash/src/pczt/verify.rs b/zk-crates/zk-headstash/src/pczt/verify.rs new file mode 100644 index 0000000..119eac6 --- /dev/null +++ b/zk-crates/zk-headstash/src/pczt/verify.rs @@ -0,0 +1,182 @@ +use crate::{ + keys::{FullViewingKey, SpendValidatingKey}, + note::{ExtractedNoteCommitment, Rho}, + value::ValueCommitment, + Note, +}; + +impl super::Action { + /// Verifies that the `cv_net` field is consistent with the note fields. + /// + /// Requires that the following optional fields are set: + /// - `spend.value` + /// - `output.value` + /// - `rcv` + pub fn verify_cv_net(&self) -> Result<(), VerifyError> { + let spend_value = self.spend().v.ok_or(VerifyError::MissingValue)?; + let output_value = self.output().v.ok_or(VerifyError::MissingValue)?; + let rcv = self + .rcv + .clone() + .ok_or(VerifyError::MissingValueCommitTrapdoor)?; + + let cv_net = ValueCommitment::derive(spend_value - output_value, rcv); + if cv_net.to_bytes() == self.cv_net.to_bytes() { + Ok(()) + } else { + Err(VerifyError::InvalidValueCommitment) + } + } +} + +impl super::Spend { + /// Returns the [`FullViewingKey`] to use when validating this note. + /// + /// Handles dummy notes when the `value` field is set. + fn fvk_for_validation<'a>( + &'a self, + expected_fvk: Option<&'a FullViewingKey>, + ) -> Result<&'a FullViewingKey, VerifyError> { + match (expected_fvk, self.fvk.as_ref(), self.v.as_ref()) { + (Some(expected_fvk), Some(fvk), _) if fvk == expected_fvk => Ok(fvk), + // `expected_fvk` is ignored if the spent note is a dummy note. + (Some(_), Some(fvk), Some(value)) if value.inner() == 0 => Ok(fvk), + (Some(_), Some(_), _) => Err(VerifyError::MismatchedFullViewingKey), + (Some(expected_fvk), None, _) => Ok(expected_fvk), + (None, Some(fvk), _) => Ok(fvk), + (None, None, _) => Err(VerifyError::MissingFullViewingKey), + } + } + + /// Verifies that the `nullifier` field is consistent with the note fields. + /// + /// Requires that the following optional fields are set: + /// - `recipient` + /// - `value` + /// - `rho` + /// - `rseed` + /// + /// In addition, at least one of the `fvk` field or `expected_fvk` must be provided. + /// + /// The provided [`FullViewingKey`] is ignored if the spent note is a dummy note. + /// Otherwise, it will be checked against the `fvk` field (if both are set). + pub fn verify_nullifier( + &self, + expected_fvk: Option<&FullViewingKey>, + ) -> Result<(), VerifyError> { + let fvk = self.fvk_for_validation(expected_fvk)?; + let note = Note::from_parts( + self.nd.ok_or(VerifyError::MissingRecipient)?, + self.v.ok_or(VerifyError::MissingValue)?, + self.fdi.ok_or(VerifyError::MissingValue)?, + self.recipient.ok_or(VerifyError::MissingRecipient)?, + self.esk.ok_or(VerifyError::MissingRecipient)?, + self.rho.ok_or(VerifyError::MissingRho)?, + self.rseed.ok_or(VerifyError::MissingRandomSeed)?, + ) + .into_option() + .ok_or(VerifyError::InvalidSpendNote)?; + + // // We need both the note and the FVK to verify the nullifier; we have everything + // // needed to also verify that the correct FVK was provided (the nullifier check + // // itself only constrains `nk` within the FVK). + // fvk.scope_for_address(¬e.recipient()) + // .ok_or(VerifyError::WrongFvkForNote)?; + + // if note.nullifier(fvk) == self.nullifier { + Ok(()) + // } else { + // Err(VerifyError::InvalidNullifier) + // } + } + + /// Verifies that the `rk` field is consistent with the given FVK. + /// + /// Requires that the following optional fields are set: + /// - `alpha` + /// + /// The provided [`FullViewingKey`] is ignored if the spent note is a dummy note + /// (which can only be determined if the `value` field is set). Otherwise, it will be + /// checked against the `fvk` field (if set). + pub fn verify_rk(&self, expected_fvk: Option<&FullViewingKey>) -> Result<(), VerifyError> { + let fvk = self.fvk_for_validation(expected_fvk)?; + + let ak = SpendValidatingKey::from(fvk.clone()); + + let alpha = self + .alpha + .as_ref() + .ok_or(VerifyError::MissingSpendAuthRandomizer)?; + + if ak.randomize(alpha) == self.rk { + Ok(()) + } else { + Err(VerifyError::InvalidRandomizedVerificationKey) + } + } +} + +impl super::Output { + /// Verifies that the `cmx` field is consistent with the note fields. + /// + /// Requires that the following optional fields are set: + /// - `recipient` + /// - `value` + /// - `rseed` + /// + /// `spend` must be the Spend from the same Orchard action. + pub fn verify_note_commitment(&self, spend: &super::Spend) -> Result<(), VerifyError> { + let note = Note::from_parts( + self.nd.ok_or(VerifyError::MissingValue)?, + self.v.ok_or(VerifyError::MissingValue)?, + self.fdi.ok_or(VerifyError::MissingValue)?, + self.recipient.ok_or(VerifyError::MissingValue)?, + self.esk.ok_or(VerifyError::MissingValue)?, + Rho::from_nf_old(spend.nullifier), + self.rseed.ok_or(VerifyError::MissingRandomSeed)?, + ) + .into_option() + .ok_or(VerifyError::InvalidOutputNote)?; + + if ExtractedNoteCommitment::from(note.commitment()) == self.cmx { + Ok(()) + } else { + Err(VerifyError::InvalidExtractedNoteCommitment) + } + } +} + +/// Errors that can occur while verifying a PCZT bundle. +#[derive(Debug)] +pub enum VerifyError { + /// The output note's components do not produce the expected `cmx`. + InvalidExtractedNoteCommitment, + /// The spent note's components do not produce the expected `nullifier`. + InvalidNullifier, + /// The output note's components do not produce a valid note commitment. + InvalidOutputNote, + /// The Spend's FVK and `alpha` do not produce the expected `rk`. + InvalidRandomizedVerificationKey, + /// The spent note's components do not produce a valid note commitment. + InvalidSpendNote, + /// The action's `cv_net` does not match the provided note values and `rcv`. + InvalidValueCommitment, + /// The spend or output's `fvk` field does not match the provided FVK. + MismatchedFullViewingKey, + /// Dummy notes must have their `fvk` field set in order to be verified. + MissingFullViewingKey, + /// `nullifier` verification requires `rseed` to be set. + MissingRandomSeed, + /// `nullifier` verification requires `recipient` to be set. + MissingRecipient, + /// `nullifier` verification requires `rho` to be set. + MissingRho, + /// `rk` verification requires `alpha` to be set. + MissingSpendAuthRandomizer, + /// Verification requires all `value` fields to be set. + MissingValue, + /// `cv_net` verification requires `rcv` to be set. + MissingValueCommitTrapdoor, + /// The provided `fvk` does not own the spent note. + WrongFvkForNote, +} diff --git a/zk-crates/zk-headstash/src/primitives.rs b/zk-crates/zk-headstash/src/primitives.rs new file mode 100644 index 0000000..42a01fe --- /dev/null +++ b/zk-crates/zk-headstash/src/primitives.rs @@ -0,0 +1,7 @@ +//! Primitives used in the Orchard protocol. +// TODO: +// - DH stuff +// - EphemeralPublicKey +// - EphemeralSecretKey + +pub mod redpallas; diff --git a/zk-crates/zk-headstash/src/primitives/redpallas.rs b/zk-crates/zk-headstash/src/primitives/redpallas.rs new file mode 100644 index 0000000..23074d9 --- /dev/null +++ b/zk-crates/zk-headstash/src/primitives/redpallas.rs @@ -0,0 +1,228 @@ +//! A minimal RedPallas implementation for use in Zcash. + +use core::cmp::{Ord, Ordering, PartialOrd}; + +use pasta_curves::pallas; +use rand::{CryptoRng, RngCore}; + +#[cfg(feature = "std")] +pub use reddsa::batch; + +#[cfg(test)] +use rand::rngs::OsRng; + +/// A RedPallas signature type. +pub trait SigType: reddsa::SigType + private::Sealed {} + +/// A type variable corresponding to an Orchard spend authorization signature. +pub type SpendAuth = reddsa::orchard::SpendAuth; +impl SigType for SpendAuth {} + +/// A type variable corresponding to an Orchard binding signature. +pub type Binding = reddsa::orchard::Binding; +impl SigType for Binding {} + +/// A RedPallas signing key. +#[derive(Clone, Debug)] +pub struct SigningKey(reddsa::SigningKey); + +impl From> for [u8; 32] { + fn from(sk: SigningKey) -> [u8; 32] { + sk.0.into() + } +} + +impl From<&SigningKey> for [u8; 32] { + fn from(sk: &SigningKey) -> [u8; 32] { + sk.0.into() + } +} + +impl TryFrom<[u8; 32]> for SigningKey { + type Error = reddsa::Error; + + fn try_from(bytes: [u8; 32]) -> Result { + bytes.try_into().map(SigningKey) + } +} + +impl SigningKey { + /// Randomizes this signing key with the given `randomizer`. + /// + /// Randomization is only supported for `SpendAuth` keys. + pub fn randomize(&self, randomizer: &pallas::Scalar) -> Self { + SigningKey(self.0.randomize(randomizer)) + } +} + +impl SigningKey { + /// Creates a signature of type `T` on `msg` using this `SigningKey`. + pub fn sign(&self, rng: R, msg: &[u8]) -> Signature { + Signature(self.0.sign(rng, msg)) + } +} + +/// A RedPallas verification key. +#[derive(Clone, Debug)] +pub struct VerificationKey(reddsa::VerificationKey); + +impl From> for [u8; 32] { + fn from(vk: VerificationKey) -> [u8; 32] { + vk.0.into() + } +} + +impl From<&VerificationKey> for [u8; 32] { + fn from(vk: &VerificationKey) -> [u8; 32] { + vk.0.into() + } +} + +impl TryFrom<[u8; 32]> for VerificationKey { + type Error = reddsa::Error; + + fn try_from(bytes: [u8; 32]) -> Result { + bytes.try_into().map(VerificationKey) + } +} + +impl<'a, T: SigType> From<&'a SigningKey> for VerificationKey { + fn from(sk: &'a SigningKey) -> VerificationKey { + VerificationKey((&sk.0).into()) + } +} + +impl PartialEq for VerificationKey { + fn eq(&self, other: &Self) -> bool { + <[u8; 32]>::from(self).eq(&<[u8; 32]>::from(other)) + } +} + +impl Eq for VerificationKey {} + +impl PartialOrd for VerificationKey { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.cmp(other)) + } +} + +impl Ord for VerificationKey { + fn cmp(&self, other: &Self) -> Ordering { + <[u8; 32]>::from(self).cmp(&<[u8; 32]>::from(other)) + } +} + +impl VerificationKey { + /// Used in the note encryption tests. + #[cfg(test)] + pub(crate) fn dummy() -> Self { + VerificationKey((&reddsa::SigningKey::new(OsRng)).into()) + } + + /// Randomizes this verification key with the given `randomizer`. + /// + /// Randomization is only supported for `SpendAuth` keys. + pub fn randomize(&self, randomizer: &pallas::Scalar) -> Self { + VerificationKey(self.0.randomize(randomizer)) + } + + /// Creates a batch validation item from a `SpendAuth` signature. + #[cfg(feature = "std")] + pub fn create_batch_item>( + &self, + sig: Signature, + msg: &M, + ) -> batch::Item { + batch::Item::from_spendauth(self.0.into(), sig.0, msg) + } +} + +#[cfg(feature = "std")] +impl VerificationKey { + /// Creates a batch validation item from a `Binding` signature. + pub fn create_batch_item>( + &self, + sig: Signature, + msg: &M, + ) -> batch::Item { + batch::Item::from_binding(self.0.into(), sig.0, msg) + } +} + +impl VerificationKey { + /// Verifies a purported `signature` over `msg` made by this verification key. + pub fn verify(&self, msg: &[u8], signature: &Signature) -> Result<(), reddsa::Error> { + self.0.verify(msg, &signature.0) + } +} + +/// A RedPallas signature. +#[derive(Debug, Clone)] +pub struct Signature(reddsa::Signature); + +impl From<[u8; 64]> for Signature { + fn from(bytes: [u8; 64]) -> Self { + Signature(bytes.into()) + } +} + +impl From<&Signature> for [u8; 64] { + fn from(sig: &Signature) -> Self { + sig.0.into() + } +} + +pub(crate) mod private { + use super::{Binding, SpendAuth}; + + pub trait Sealed {} + + impl Sealed for SpendAuth {} + + impl Sealed for Binding {} +} + +/// Generators for property testing. +#[cfg(any(test, feature = "test-dependencies"))] +#[cfg_attr(docsrs, doc(cfg(feature = "test-dependencies")))] +pub mod testing { + use proptest::prelude::*; + + use super::{Binding, SigningKey, SpendAuth, VerificationKey}; + + prop_compose! { + /// Generate a uniformly distributed RedDSA spend authorization signing key. + pub fn arb_spendauth_signing_key()( + sk in prop::array::uniform32(prop::num::u8::ANY) + .prop_map(reddsa::SigningKey::try_from) + .prop_filter("Values must be parseable as valid signing keys", |r| r.is_ok()) + ) -> SigningKey { + SigningKey(sk.unwrap()) + } + } + + prop_compose! { + /// Generate a uniformly distributed RedDSA binding signing key. + pub fn arb_binding_signing_key()( + sk in prop::array::uniform32(prop::num::u8::ANY) + .prop_map(reddsa::SigningKey::try_from) + .prop_filter("Values must be parseable as valid signing keys", |r| r.is_ok()) + ) -> SigningKey { + SigningKey(sk.unwrap()) + } + } + + prop_compose! { + /// Generate a uniformly distributed RedDSA spend authorization verification key. + pub fn arb_spendauth_verification_key()(sk in arb_spendauth_signing_key()) -> VerificationKey { + VerificationKey::from(&sk) + } + } + + prop_compose! { + /// Generate a uniformly distributed RedDSA binding verification key. + pub fn arb_binding_verification_key()(sk in arb_binding_signing_key()) -> VerificationKey { + VerificationKey::from(&sk) + } + } +} diff --git a/zk-crates/zk-headstash/src/serde.rs b/zk-crates/zk-headstash/src/serde.rs new file mode 100644 index 0000000..e69de29 diff --git a/zk-crates/zk-headstash/src/spec.rs b/zk-crates/zk-headstash/src/spec.rs new file mode 100644 index 0000000..f2ec9d9 --- /dev/null +++ b/zk-crates/zk-headstash/src/spec.rs @@ -0,0 +1,508 @@ +//! Helper functions defined in the Zcash Protocol Specification. + +use core::iter; +use core::ops::Deref; +use std::vec::Vec; + +use ff::{Field, FromUniformBytes, PrimeField, PrimeFieldBits}; +use group::{Curve, Group, GroupEncoding, WnafBase, WnafScalar}; +// #[cfg(feature = "circuit")] +use halo2_gadgets::{poseidon::primitives as poseidon, sinsemilla::primitives as sinsemilla}; +#[cfg(feature = "std")] +use memuse::DynamicUsage; +use num_bigint::BigUint; +use pasta_curves::{ + arithmetic::{CurveAffine, CurveExt}, + pallas, +}; +use subtle::{ConditionallySelectable, CtOption}; + +use crate::constants::{ + fixed_bases::COMMIT_IVK_PERSONALIZATION, util::gen_const_array, DST_HKDF, + KEY_DIVERSIFICATION_PERSONALIZATION, L_ORCHARD_BASE, +}; + +pub(crate) use zcash_spec::PrfExpand; + +/// A Pallas point that is guaranteed to not be the identity. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub(crate) struct NonIdentityPallasPoint(pallas::Point); + +impl Default for NonIdentityPallasPoint { + fn default() -> Self { + NonIdentityPallasPoint(pallas::Point::generator()) + } +} + +impl ConditionallySelectable for NonIdentityPallasPoint { + fn conditional_select(a: &Self, b: &Self, choice: subtle::Choice) -> Self { + NonIdentityPallasPoint(pallas::Point::conditional_select(&a.0, &b.0, choice)) + } +} + +impl NonIdentityPallasPoint { + pub(crate) fn from_bytes(bytes: &[u8; 32]) -> CtOption { + pallas::Point::from_bytes(bytes) + .and_then(|p| CtOption::new(NonIdentityPallasPoint(p), !p.is_identity())) + } +} + +impl Deref for NonIdentityPallasPoint { + type Target = pallas::Point; + + fn deref(&self) -> &pallas::Point { + &self.0 + } +} + +/// An integer in [1..q_P]. +#[derive(Clone, Copy, Debug)] +pub(crate) struct NonZeroPallasBase(pallas::Base); + +impl Default for NonZeroPallasBase { + fn default() -> Self { + NonZeroPallasBase(pallas::Base::one()) + } +} + +impl ConditionallySelectable for NonZeroPallasBase { + fn conditional_select(a: &Self, b: &Self, choice: subtle::Choice) -> Self { + NonZeroPallasBase(pallas::Base::conditional_select(&a.0, &b.0, choice)) + } +} + +impl NonZeroPallasBase { + pub(crate) fn from_bytes(bytes: &[u8; 32]) -> CtOption { + pallas::Base::from_repr(*bytes).and_then(NonZeroPallasBase::from_base) + } + + pub(crate) fn to_bytes(self) -> [u8; 32] { + self.0.to_repr() + } + + pub(crate) fn from_base(b: pallas::Base) -> CtOption { + CtOption::new(NonZeroPallasBase(b), !b.is_zero()) + } + + /// Constructs a wrapper for a base field element that is guaranteed to be non-zero. + /// + /// # Panics + /// + /// Panics if `s.is_zero()`. + fn guaranteed(s: pallas::Base) -> Self { + assert!(!bool::from(s.is_zero())); + NonZeroPallasBase(s) + } +} + +/// An integer in [1..r_P]. +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub(crate) struct NonZeroPallasScalar(pallas::Scalar); + +impl Default for NonZeroPallasScalar { + fn default() -> Self { + NonZeroPallasScalar(pallas::Scalar::one()) + } +} + +impl From for NonZeroPallasScalar { + fn from(s: NonZeroPallasBase) -> Self { + NonZeroPallasScalar::guaranteed(mod_r_p(s.0)) + } +} + +impl ConditionallySelectable for NonZeroPallasScalar { + fn conditional_select(a: &Self, b: &Self, choice: subtle::Choice) -> Self { + NonZeroPallasScalar(pallas::Scalar::conditional_select(&a.0, &b.0, choice)) + } +} + +impl NonZeroPallasScalar { + pub(crate) fn from_bytes(bytes: &[u8; 32]) -> CtOption { + pallas::Scalar::from_repr(*bytes).and_then(NonZeroPallasScalar::from_scalar) + } + + pub(crate) fn from_scalar(s: pallas::Scalar) -> CtOption { + CtOption::new(NonZeroPallasScalar(s), !s.is_zero()) + } + + /// Constructs a wrapper for a scalar field element that is guaranteed to be non-zero. + /// + /// # Panics + /// + /// Panics if `s.is_zero()`. + fn guaranteed(s: pallas::Scalar) -> Self { + assert!(!bool::from(s.is_zero())); + NonZeroPallasScalar(s) + } +} + +impl Deref for NonZeroPallasScalar { + type Target = pallas::Scalar; + + fn deref(&self) -> &pallas::Scalar { + &self.0 + } +} + +const PREPARED_WINDOW_SIZE: usize = 4; + +#[derive(Clone, Debug)] +pub(crate) struct PreparedNonIdentityBase(WnafBase); + +impl PreparedNonIdentityBase { + pub(crate) fn new(base: NonIdentityPallasPoint) -> Self { + PreparedNonIdentityBase(WnafBase::new(base.0)) + } +} + +#[derive(Clone, Debug)] +pub(crate) struct PreparedNonZeroScalar(WnafScalar); + +#[cfg(feature = "std")] +impl DynamicUsage for PreparedNonZeroScalar { + fn dynamic_usage(&self) -> usize { + self.0.dynamic_usage() + } + + fn dynamic_usage_bounds(&self) -> (usize, Option) { + self.0.dynamic_usage_bounds() + } +} + +impl PreparedNonZeroScalar { + pub(crate) fn new(scalar: &NonZeroPallasScalar) -> Self { + PreparedNonZeroScalar(WnafScalar::new(scalar)) + } +} + +/// $\mathsf{ToBase}^\mathsf{Orchard}(x) := LEOS2IP_{\ell_\mathsf{PRFexpand}}(x) (mod q_P)$ +/// +/// Defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. +/// +/// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents +pub(crate) fn to_base(x: [u8; 64]) -> pallas::Base { + pallas::Base::from_uniform_bytes(&x) +} + +/// $\mathsf{ToScalar}^\mathsf{Orchard}(x) := LEOS2IP_{\ell_\mathsf{PRFexpand}}(x) (mod r_P)$ +/// +/// Defined in [Zcash Protocol Spec § 4.2.3: Orchard Key Components][orchardkeycomponents]. +/// +/// [orchardkeycomponents]: https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents +pub(crate) fn to_scalar(x: [u8; 64]) -> pallas::Scalar { + pallas::Scalar::from_uniform_bytes(&x) +} + +/// Converts from pallas::Base to pallas::Scalar (aka $x \pmod{r_\mathbb{P}}$). +/// +/// This requires no modular reduction because Pallas' base field is smaller than its +/// scalar field. +pub(crate) fn mod_r_p(x: pallas::Base) -> pallas::Scalar { + pallas::Scalar::from_repr(x.to_repr()).unwrap() +} + +/// Defined in [Zcash Protocol Spec § 5.4.8.4: Sinsemilla commitments][concretesinsemillacommit]. +/// +/// [concretesinsemillacommit]: https://zips.z.cash/protocol/protocol.pdf#concretesinsemillacommit +pub(crate) fn commit_ivk( + ak: &pallas::Base, + nk: &pallas::Base, + rivk: &pallas::Scalar, +) -> CtOption { + // We rely on the API contract that to_le_bits() returns at least PrimeField::NUM_BITS + // bits, which is equal to L_ORCHARD_BASE. + let domain = sinsemilla::CommitDomain::new(COMMIT_IVK_PERSONALIZATION); + domain.short_commit( + iter::empty() + .chain(ak.to_le_bits().iter().by_vals().take(L_ORCHARD_BASE)) + .chain(nk.to_le_bits().iter().by_vals().take(L_ORCHARD_BASE)), + rivk, + ) +} + +/// Defined in [Zcash Protocol Spec § 5.4.1.6: DiversifyHash^Sapling and DiversifyHash^Orchard Hash Functions][concretediversifyhash]. +/// +/// [concretediversifyhash]: https://zips.z.cash/protocol/nu5.pdf#concretediversifyhash +pub(crate) fn diversify_hash_headstash(d: &[u8; 32]) -> NonIdentityPallasPoint { + let hasher = pallas::Point::hash_to_curve(KEY_DIVERSIFICATION_PERSONALIZATION); + let g_d = hasher(d); + // If the identity occurs, we replace it with a different fixed point. + // TODO: Replace the unwrap_or_else with a cached fixed point. + NonIdentityPallasPoint(CtOption::new(g_d, !g_d.is_identity()).unwrap_or_else(|| hasher(&[]))) +} +/// Defined in [Zcash Protocol Spec § 5.4.1.6: DiversifyHash^Sapling and DiversifyHash^Orchard Hash Functions][concretediversifyhash]. +/// +/// [concretediversifyhash]: https://zips.z.cash/protocol/nu5.pdf#concretediversifyhash +pub(crate) fn diversify_hash(d: &[u8; 11]) -> NonIdentityPallasPoint { + let hasher = pallas::Point::hash_to_curve(KEY_DIVERSIFICATION_PERSONALIZATION); + let g_d = hasher(d); + // If the identity occurs, we replace it with a different fixed point. + // TODO: Replace the unwrap_or_else with a cached fixed point. + NonIdentityPallasPoint(CtOption::new(g_d, !g_d.is_identity()).unwrap_or_else(|| hasher(&[]))) +} + +/// $PRF^\mathsf{nfOrchard}(nk, \rho) := Poseidon(nk, \rho)$ +/// +/// Defined in [Zcash Protocol Spec § 5.4.2: Pseudo Random Functions][concreteprfs]. +/// +/// [concreteprfs]: https://zips.z.cash/protocol/nu5.pdf#concreteprfs +pub(crate) fn prf_nf(nk: pallas::Base, rho: pallas::Base) -> pallas::Base { + poseidon::Hash::<_, poseidon::P128Pow5T3, poseidon::ConstantLength<2>, 3, 2>::init() + .hash([nk, rho]) +} + +/// Defined in [Zcash Protocol Spec § 5.4.5.5: Orchard Key Agreement][concreteorchardkeyagreement]. +/// +/// [concreteorchardkeyagreement]: https://zips.z.cash/protocol/nu5.pdf#concreteorchardkeyagreement +pub(crate) fn ka_orchard( + sk: &NonZeroPallasScalar, + b: &NonIdentityPallasPoint, +) -> NonIdentityPallasPoint { + ka_orchard_prepared( + &PreparedNonZeroScalar::new(sk), + &PreparedNonIdentityBase::new(*b), + ) +} + +/// Defined in [Zcash Protocol Spec § 5.4.5.5: Orchard Key Agreement][concreteorchardkeyagreement]. +/// +/// [concreteorchardkeyagreement]: https://zips.z.cash/protocol/nu5.pdf#concreteorchardkeyagreement +pub(crate) fn ka_orchard_prepared( + sk: &PreparedNonZeroScalar, + b: &PreparedNonIdentityBase, +) -> NonIdentityPallasPoint { + NonIdentityPallasPoint(&b.0 * &sk.0) +} + +/// Coordinate extractor for Pallas. +/// +/// Defined in [Zcash Protocol Spec § 5.4.9.7: Coordinate Extractor for Pallas][concreteextractorpallas]. +/// +/// [concreteextractorpallas]: https://zips.z.cash/protocol/nu5.pdf#concreteextractorpallas +pub(crate) fn extract_p(point: &pallas::Point) -> pallas::Base { + point + .to_affine() + .coordinates() + .map(|c| *c.x()) + .unwrap_or_else(pallas::Base::zero) +} + +/// Coordinate extractor for Pallas. +/// +/// Defined in [Zcash Protocol Spec § 5.4.9.7: Coordinate Extractor for Pallas][concreteextractorpallas]. +/// +/// [concreteextractorpallas]: https://zips.z.cash/protocol/nu5.pdf#concreteextractorpallas +pub(crate) fn extract_p_bottom(point: CtOption) -> CtOption { + point.map(|p| extract_p(&p)) +} + +/// The field element representation of a u64 integer represented by +/// an L-bit little-endian bitstring. +pub fn lebs2ip_field(bits: &[bool; L]) -> F { + F::from(lebs2ip::(bits)) +} + +/// The u64 integer represented by an L-bit little-endian bitstring. +/// +/// # Panics +/// +/// Panics if the bitstring is longer than 64 bits. +pub fn lebs2ip(bits: &[bool; L]) -> u64 { + assert!(L <= 64); + bits.iter() + .enumerate() + .fold(0u64, |acc, (i, b)| acc + if *b { 1 << i } else { 0 }) +} + +/// The sequence of bits representing a u64 in little-endian order. +/// +/// # Panics +/// +/// Panics if the expected length of the sequence `NUM_BITS` exceeds +/// 64. +pub fn i2lebsp(int: u64) -> [bool; NUM_BITS] { + assert!(NUM_BITS <= 64); + gen_const_array(|mask: usize| (int & (1 << mask)) != 0) +} + +/// Convert esk (`EligibleSk`) into a `pallas::Base` scalar by decomposing into 3 88 bit limbs\ +/// Hash array of 3 limbs using Poseidon to get single pallas::Base value\ +/// This compresses the CRT representation into a single field element + +/// Convert esk (`EligibleSk`) into a `pallas::Base` scalar by decomposing into 3 88 bit limbs\ +/// Hash array of 3 limbs using Poseidon to get single pallas::Base value\ +/// This compresses the CRT representation into a single field element +pub(crate) fn esk_to_base(esk: &crate::keys::EligibleSk) -> pallas::Base { + poseidon::Hash::<_, poseidon::P128Pow5T3, poseidon::ConstantLength<3>, 3, 2>::init().hash( + crate::spec::decompose_biguint_simple( + &halo2_base::utils::fe_to_biguint( + &halo2_base::halo2_proofs::halo2curves::secq256k1::Fp::from_repr( + esk.secret_bytes(), + ) + .expect("valid Fq"), + ), + 3, + 88, + ) + .try_into() + .unwrap(), + ) +} + +/// Convert a `RecpAddr` into a field element by hashing its byte payload.\ +/// poseidon params: width = 3 (t = 3) // rounds = 2 (full rounds per the spec) +pub fn recp_to_fp(ra: &crate::address::RecpAddr) -> pallas::Base { + let bytes: [u8; 32] = ra.to_bytes(); + let first_half = &bytes[0..16]; + let second_half = &bytes[16..32]; + + // Convert each chunk to a field element (interpreting as little-endian u128) + let fe1 = pallas::Base::from_u128(u128::from_le_bytes(first_half.try_into().unwrap())); + let fe2 = pallas::Base::from_u128(u128::from_le_bytes(second_half.try_into().unwrap())); + + poseidon::Hash::<_, poseidon::P128Pow5T3, poseidon::ConstantLength<2>, 3, 2>::init() + .hash([fe1, fe2]) +} + +/// Decompose a BigUint into limbs without requiring BigPrimeField trait. +/// +/// This is our own implementation to avoid dependency on halo2-base traits. +pub fn decompose_biguint_simple( + value: &BigUint, + num_limbs: usize, + limb_bits: usize, +) -> Vec { + use ff::PrimeField; + let mask = (BigUint::from(1u64) << limb_bits) - 1u64; + let mut limbs = Vec::with_capacity(num_limbs); + let mut remaining = value.clone(); + + for _ in 0..num_limbs { + let limb_big = &remaining & &mask; + let limb_bytes = limb_big.to_bytes_le(); + let mut limb_bytes_32 = [0u8; 32]; + limb_bytes_32[..limb_bytes.len().min(32)] + .copy_from_slice(&limb_bytes[..limb_bytes.len().min(32)]); + let limb_fe = pallas::Base::from_repr(limb_bytes_32).expect("limb must be in pallas range"); + limbs.push(limb_fe); + remaining >>= limb_bits; + } + + limbs +} + +/// # hdkf_pallas +/// Derives nk from the Pallas base field representation for `esk`\ +/// *(via modular big-endian byte-to-field-element conversion)*\ +/// using the poseidon hashing algorithm with a domain-separation-tag in the order (`DST`,`esk_fp`,`rho`). +pub fn hdkf_pallas(esk_pallas: pallas::Base, rho: pallas::Base) -> pallas::Base { + poseidon::Hash::<_, poseidon::P128Pow5T3, poseidon::ConstantLength<3>, 3, 2>::init().hash([ + pallas::Base::from_repr(DST_HKDF).expect("invalid DST bytes"), + esk_pallas, + rho, + ]) +} + +// Derives the hash of the expected_dst used for the hash deriving step. +// is multiplied by rho an provided to the function. +pub(crate) fn prf_pallas_m( + fdi: pallas::Base, + esk: pallas::Base, + v: pallas::Base, + nd: pallas::Base, +) -> pallas::Base { + poseidon::Hash::<_, poseidon::P128Pow5T3, poseidon::ConstantLength<4>, 3, 2>::init() + .hash([fdi, v, nd, esk]) +} +/// Convert a `NoteDenom` into a field element. +/// NoteDenom is expected to have been hashed and trimmed when it was initialized. +pub(crate) fn nd_to_fp(nd: &crate::value::NoteDenom) -> pallas::Base { + pallas::Base::from_repr(nd.as_bytes().try_into().expect("invalid length")) + .expect("bad nd_to_fp") +} + +/// Convert a field element to BigUint without requiring BigPrimeField trait. +pub fn fe_to_biguint_simple(fe: &pallas::Base) -> BigUint { + use ff::PrimeField; + let bytes = fe.to_repr(); + BigUint::from_bytes_le(&bytes) +} + +/// Convert a BigUint to a field element without requiring BigPrimeField trait. +pub fn biguint_to_fe_simple(value: &BigUint) -> pallas::Base { + use ff::PrimeField; + let bytes = value.to_bytes_le(); + let mut bytes_32 = [0u8; 32]; + bytes_32[..bytes.len().min(32)].copy_from_slice(&bytes[..bytes.len().min(32)]); + pallas::Base::from_repr(bytes_32).unwrap() +} + +/// Convert a generic field element to BigUint. +/// This is a generic version that works for any PrimeField, not just pallas::Base. +pub fn fe_to_biguint_for_field(fe: &F) -> BigUint { + let bytes = fe.to_repr(); + BigUint::from_bytes_le(bytes.as_ref()) +} + +/// Compute the native Pallas::Base representation of a secp256k1 field element. +pub fn to_native_out_of_circuit(f: &F) -> pallas::Base { + let big = fe_to_biguint_for_field(f); + let pallas_modulus = fe_to_biguint_simple(&-pallas::Base::ONE) + 1u64; + biguint_to_fe_simple(&(big % pallas_modulus)) +} + +#[cfg(test)] +mod tests { + use super::{i2lebsp, lebs2ip}; + + use group::Group; + use halo2_proofs::arithmetic::CurveExt; + use pasta_curves::pallas; + use rand::{rngs::OsRng, RngCore}; + + #[test] + fn diversify_hash_substitution() { + assert!(!bool::from( + pallas::Point::hash_to_curve("z.cash:Orchard-gd")(&[]).is_identity() + )); + } + + #[test] + fn lebs2ip_round_trip() { + let mut rng = OsRng; + { + let int = rng.next_u64(); + assert_eq!(lebs2ip::<64>(&i2lebsp(int)), int); + } + + assert_eq!(lebs2ip::<64>(&i2lebsp(0)), 0); + assert_eq!( + lebs2ip::<64>(&i2lebsp(0xFFFFFFFFFFFFFFFF)), + 0xFFFFFFFFFFFFFFFF + ); + } + + #[test] + fn i2lebsp_round_trip() { + { + let bitstring = [0; 64].map(|_| rand::random()); + assert_eq!(i2lebsp(lebs2ip(&bitstring)), bitstring); + } + + { + let bitstring = [false; 64]; + assert_eq!(i2lebsp(lebs2ip(&bitstring)), bitstring); + } + + { + let bitstring = [true; 64]; + assert_eq!(i2lebsp(lebs2ip(&bitstring)), bitstring); + } + + { + let bitstring = []; + assert_eq!(i2lebsp(lebs2ip(&bitstring)), bitstring); + } + } +} diff --git a/zk-crates/zk-headstash/src/test_vectors.rs b/zk-crates/zk-headstash/src/test_vectors.rs new file mode 100644 index 0000000..b1ef91e --- /dev/null +++ b/zk-crates/zk-headstash/src/test_vectors.rs @@ -0,0 +1,5 @@ +pub(crate) mod commitment_tree; +pub(crate) mod keys; +pub(crate) mod merkle_path; +pub(crate) mod note_encryption; +pub(crate) mod zip32; diff --git a/zk-crates/zk-headstash/src/test_vectors/commitment_tree.rs b/zk-crates/zk-headstash/src/test_vectors/commitment_tree.rs new file mode 100644 index 0000000..d9532c5 --- /dev/null +++ b/zk-crates/zk-headstash/src/test_vectors/commitment_tree.rs @@ -0,0 +1,176 @@ +pub(crate) struct TestVector { + pub empty_roots: [[u8; 32]; 33], +} + +pub(crate) fn test_vectors() -> TestVector { + // From https://github.com/zcash-hackworks/zcash-test-vectors/blob/master/orchard_empty_roots.py + TestVector { + empty_roots: [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, 0x5e, 0x9f, + 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, 0x7f, 0x79, 0x2d, 0xde, + 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, 0xc1, 0x09, + 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, 0xe0, 0xdf, 0x83, 0x76, + 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, 0x6d, 0xf2, + 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, 0xb2, 0x57, 0x3c, 0x8f, + 0xac, 0x79, 0x42, 0x04, + ], + [ + 0x80, 0x6a, 0xfb, 0xfe, 0xb4, 0x5c, 0x64, 0xd4, 0xf2, 0x38, 0x4c, 0x51, 0xef, 0xf3, + 0x07, 0x64, 0xb8, 0x45, 0x99, 0xae, 0x56, 0xa7, 0xab, 0x3d, 0x4a, 0x46, 0xd9, 0xce, + 0x3a, 0xea, 0xb4, 0x31, + ], + [ + 0x87, 0x3e, 0x41, 0x57, 0xf2, 0xc0, 0xf0, 0xc6, 0x45, 0xe8, 0x99, 0x36, 0x00, 0x69, + 0xfc, 0xc9, 0xd2, 0xed, 0x9b, 0xc1, 0x1b, 0xf5, 0x98, 0x27, 0xaf, 0x02, 0x30, 0xed, + 0x52, 0xed, 0xab, 0x18, + ], + [ + 0x27, 0xab, 0x13, 0x20, 0x95, 0x3a, 0xe1, 0xad, 0x70, 0xc8, 0xc1, 0x5a, 0x12, 0x53, + 0xa0, 0xa8, 0x6f, 0xbc, 0x8a, 0x0a, 0xa3, 0x6a, 0x84, 0x20, 0x72, 0x93, 0xf8, 0xa4, + 0x95, 0xff, 0xc4, 0x02, + ], + [ + 0x4e, 0x14, 0x56, 0x3d, 0xf1, 0x91, 0xa2, 0xa6, 0x5b, 0x4b, 0x37, 0x11, 0x3b, 0x52, + 0x30, 0x68, 0x05, 0x55, 0x05, 0x1b, 0x22, 0xd7, 0x4a, 0x8e, 0x1f, 0x1d, 0x70, 0x6f, + 0x90, 0xf3, 0x13, 0x3b, + ], + [ + 0xb3, 0xbb, 0xe4, 0xf9, 0x93, 0xd1, 0x8a, 0x0f, 0x4e, 0xb7, 0xf4, 0x17, 0x4b, 0x1d, + 0x85, 0x55, 0xce, 0x33, 0x96, 0x85, 0x5d, 0x04, 0x67, 0x6f, 0x1c, 0xe4, 0xf0, 0x6d, + 0xda, 0x07, 0x37, 0x1f, + ], + [ + 0x4e, 0xf5, 0xbd, 0xe9, 0xc6, 0xf0, 0xd7, 0x6a, 0xeb, 0x9e, 0x27, 0xe9, 0x3f, 0xba, + 0x28, 0xc6, 0x79, 0xdf, 0xcb, 0x99, 0x1c, 0xbc, 0xb8, 0x39, 0x5a, 0x2b, 0x57, 0x92, + 0x4c, 0xbd, 0x17, 0x0e, + ], + [ + 0xa3, 0xc0, 0x25, 0x68, 0xac, 0xeb, 0xf5, 0xca, 0x1e, 0xc3, 0x0d, 0x6a, 0x7d, 0x7c, + 0xd2, 0x17, 0xa4, 0x7d, 0x6a, 0x1b, 0x83, 0x11, 0xbf, 0x94, 0x62, 0xa5, 0xf9, 0x39, + 0xc6, 0xb7, 0x43, 0x07, + ], + [ + 0x3e, 0xf9, 0xb3, 0x0b, 0xae, 0x61, 0x22, 0xda, 0x16, 0x05, 0xba, 0xd6, 0xec, 0x5d, + 0x49, 0xb4, 0x1d, 0x4d, 0x40, 0xca, 0xa9, 0x6c, 0x1c, 0xf6, 0x30, 0x2b, 0x66, 0xc5, + 0xd2, 0xd1, 0x0d, 0x39, + ], + [ + 0x22, 0xae, 0x28, 0x00, 0xcb, 0x93, 0xab, 0xe6, 0x3b, 0x70, 0xc1, 0x72, 0xde, 0x70, + 0x36, 0x2d, 0x98, 0x30, 0xe5, 0x38, 0x00, 0x39, 0x88, 0x84, 0xa7, 0xa6, 0x4f, 0xf6, + 0x8e, 0xd9, 0x9e, 0x0b, + ], + [ + 0x18, 0x71, 0x10, 0xd9, 0x26, 0x72, 0xc2, 0x4c, 0xed, 0xb0, 0x97, 0x9c, 0xdf, 0xc9, + 0x17, 0xa6, 0x05, 0x3b, 0x31, 0x0d, 0x14, 0x5c, 0x03, 0x1c, 0x72, 0x92, 0xbb, 0x1d, + 0x65, 0xb7, 0x66, 0x1b, + ], + [ + 0x3f, 0x98, 0xad, 0xbe, 0x36, 0x4f, 0x14, 0x8b, 0x0c, 0xc2, 0x04, 0x2c, 0xaf, 0xc6, + 0xbe, 0x11, 0x66, 0xfa, 0xe3, 0x90, 0x90, 0xab, 0x4b, 0x35, 0x4b, 0xfb, 0x62, 0x17, + 0xb9, 0x64, 0x45, 0x3b, + ], + [ + 0x63, 0xf8, 0xdb, 0xd1, 0x0d, 0xf9, 0x36, 0xf1, 0x73, 0x49, 0x73, 0xe0, 0xb3, 0xbd, + 0x25, 0xf4, 0xed, 0x44, 0x05, 0x66, 0xc9, 0x23, 0x08, 0x59, 0x03, 0xf6, 0x96, 0xbc, + 0x63, 0x47, 0xec, 0x0f, + ], + [ + 0x21, 0x82, 0x16, 0x3e, 0xac, 0x40, 0x61, 0x88, 0x5a, 0x31, 0x35, 0x68, 0x14, 0x8d, + 0xfa, 0xe5, 0x64, 0xe4, 0x78, 0x06, 0x6d, 0xcb, 0xe3, 0x89, 0xa0, 0xdd, 0xb1, 0xec, + 0xb7, 0xf5, 0xdc, 0x34, + ], + [ + 0xbd, 0x9d, 0xc0, 0x68, 0x19, 0x18, 0xa3, 0xf3, 0xf9, 0xcd, 0x1f, 0x9e, 0x06, 0xaa, + 0x1a, 0xd6, 0x89, 0x27, 0xda, 0x63, 0xac, 0xc1, 0x3b, 0x92, 0xa2, 0x57, 0x8b, 0x27, + 0x38, 0xa6, 0xd3, 0x31, + ], + [ + 0xca, 0x2c, 0xed, 0x95, 0x3b, 0x7f, 0xb9, 0x5e, 0x3b, 0xa9, 0x86, 0x33, 0x3d, 0xa9, + 0xe6, 0x9c, 0xd3, 0x55, 0x22, 0x3c, 0x92, 0x97, 0x31, 0x09, 0x4b, 0x6c, 0x21, 0x74, + 0xc7, 0x63, 0x8d, 0x2e, + ], + [ + 0x55, 0x35, 0x4b, 0x96, 0xb5, 0x6f, 0x9e, 0x45, 0xaa, 0xe1, 0xe0, 0x09, 0x4d, 0x71, + 0xee, 0x24, 0x8d, 0xab, 0xf6, 0x68, 0x11, 0x77, 0x78, 0xbd, 0xc3, 0xc1, 0x9c, 0xa5, + 0x33, 0x1a, 0x4e, 0x1a, + ], + [ + 0x70, 0x97, 0xb0, 0x4c, 0x2a, 0xa0, 0x45, 0xa0, 0xde, 0xff, 0xca, 0xca, 0x41, 0xc5, + 0xac, 0x92, 0xe6, 0x94, 0x46, 0x65, 0x78, 0xf5, 0x90, 0x9e, 0x72, 0xbb, 0x78, 0xd3, + 0x33, 0x10, 0xf7, 0x05, + ], + [ + 0xe8, 0x1d, 0x68, 0x21, 0xff, 0x81, 0x3b, 0xd4, 0x10, 0x86, 0x7a, 0x3f, 0x22, 0xe8, + 0xe5, 0xcb, 0x7a, 0xc5, 0x59, 0x9a, 0x61, 0x0a, 0xf5, 0xc3, 0x54, 0xeb, 0x39, 0x28, + 0x77, 0x36, 0x2e, 0x01, + ], + [ + 0x15, 0x7d, 0xe8, 0x56, 0x7f, 0x7c, 0x49, 0x96, 0xb8, 0xc4, 0xfd, 0xc9, 0x49, 0x38, + 0xfd, 0x80, 0x8c, 0x3b, 0x2a, 0x5c, 0xcb, 0x79, 0xd1, 0xa6, 0x38, 0x58, 0xad, 0xaa, + 0x9a, 0x6d, 0xd8, 0x24, + ], + [ + 0xfe, 0x1f, 0xce, 0x51, 0xcd, 0x61, 0x20, 0xc1, 0x2c, 0x12, 0x46, 0x95, 0xc4, 0xf9, + 0x8b, 0x27, 0x59, 0x18, 0xfc, 0xea, 0xe6, 0xeb, 0x20, 0x98, 0x73, 0xed, 0x73, 0xfe, + 0x73, 0x77, 0x5d, 0x0b, + ], + [ + 0x1f, 0x91, 0x98, 0x29, 0x12, 0x01, 0x26, 0x69, 0xf7, 0x4d, 0x0c, 0xfa, 0x10, 0x30, + 0xff, 0x37, 0xb1, 0x52, 0x32, 0x4e, 0x5b, 0x83, 0x46, 0xb3, 0x33, 0x5a, 0x0a, 0xae, + 0xb6, 0x3a, 0x0a, 0x2d, + ], + [ + 0x5d, 0xec, 0x15, 0xf5, 0x2a, 0xf1, 0x7d, 0xa3, 0x93, 0x13, 0x96, 0x18, 0x3c, 0xbb, + 0xbf, 0xbe, 0xa7, 0xed, 0x95, 0x07, 0x14, 0x54, 0x0a, 0xec, 0x06, 0xc6, 0x45, 0xc7, + 0x54, 0x97, 0x55, 0x22, + ], + [ + 0xe8, 0xae, 0x2a, 0xd9, 0x1d, 0x46, 0x3b, 0xab, 0x75, 0xee, 0x94, 0x1d, 0x33, 0xcc, + 0x58, 0x17, 0xb6, 0x13, 0xc6, 0x3c, 0xda, 0x94, 0x3a, 0x4c, 0x07, 0xf6, 0x00, 0x59, + 0x1b, 0x08, 0x8a, 0x25, + ], + [ + 0xd5, 0x3f, 0xde, 0xe3, 0x71, 0xce, 0xf5, 0x96, 0x76, 0x68, 0x23, 0xf4, 0xa5, 0x18, + 0xa5, 0x83, 0xb1, 0x15, 0x82, 0x43, 0xaf, 0xe8, 0x97, 0x00, 0xf0, 0xda, 0x76, 0xda, + 0x46, 0xd0, 0x06, 0x0f, + ], + [ + 0x15, 0xd2, 0x44, 0x4c, 0xef, 0xe7, 0x91, 0x4c, 0x9a, 0x61, 0xe8, 0x29, 0xc7, 0x30, + 0xec, 0xeb, 0x21, 0x62, 0x88, 0xfe, 0xe8, 0x25, 0xf6, 0xb3, 0xb6, 0x29, 0x8f, 0x6f, + 0x6b, 0x6b, 0xd6, 0x2e, + ], + [ + 0x4c, 0x57, 0xa6, 0x17, 0xa0, 0xaa, 0x10, 0xea, 0x7a, 0x83, 0xaa, 0x6b, 0x6b, 0x0e, + 0xd6, 0x85, 0xb6, 0xa3, 0xd9, 0xe5, 0xb8, 0xfd, 0x14, 0xf5, 0x6c, 0xdc, 0x18, 0x02, + 0x1b, 0x12, 0x25, 0x3f, + ], + [ + 0x3f, 0xd4, 0x91, 0x5c, 0x19, 0xbd, 0x83, 0x1a, 0x79, 0x20, 0xbe, 0x55, 0xd9, 0x69, + 0xb2, 0xac, 0x23, 0x35, 0x9e, 0x25, 0x59, 0xda, 0x77, 0xde, 0x23, 0x73, 0xf0, 0x6c, + 0xa0, 0x14, 0xba, 0x27, + ], + [ + 0x87, 0xd0, 0x63, 0xcd, 0x07, 0xee, 0x49, 0x44, 0x22, 0x2b, 0x77, 0x62, 0x84, 0x0e, + 0xb9, 0x4c, 0x68, 0x8b, 0xec, 0x74, 0x3f, 0xa8, 0xbd, 0xf7, 0x71, 0x5c, 0x8f, 0xe2, + 0x9f, 0x10, 0x4c, 0x2a, + ], + [ + 0xae, 0x29, 0x35, 0xf1, 0xdf, 0xd8, 0xa2, 0x4a, 0xed, 0x7c, 0x70, 0xdf, 0x7d, 0xe3, + 0xa6, 0x68, 0xeb, 0x7a, 0x49, 0xb1, 0x31, 0x98, 0x80, 0xdd, 0xe2, 0xbb, 0xd9, 0x03, + 0x1a, 0xe5, 0xd8, 0x2f, + ], + ], + } +} diff --git a/zk-crates/zk-headstash/src/test_vectors/keys.rs b/zk-crates/zk-headstash/src/test_vectors/keys.rs new file mode 100644 index 0000000..5551a26 --- /dev/null +++ b/zk-crates/zk-headstash/src/test_vectors/keys.rs @@ -0,0 +1,941 @@ +//! Test vectors for Orchard key components. + +use alloc::vec::Vec; + +pub(crate) struct TestVector { + pub(crate) sk: [u8; 32], + pub(crate) ask: [u8; 32], + pub(crate) ak: [u8; 32], + pub(crate) nk: [u8; 32], + pub(crate) rivk: [u8; 32], + pub(crate) ivk: [u8; 32], + pub(crate) ovk: [u8; 32], + pub(crate) dk: [u8; 32], + pub(crate) default_d: [u8; 11], + pub(crate) default_pk_d: [u8; 32], + pub(crate) internal_rivk: [u8; 32], + pub(crate) internal_ivk: [u8; 32], + pub(crate) internal_ovk: [u8; 32], + pub(crate) internal_dk: [u8; 32], + pub(crate) note_v: u64, + pub(crate) note_rho: [u8; 32], + pub(crate) note_rseed: [u8; 32], + pub(crate) note_cmx: [u8; 32], + pub(crate) note_nf: [u8; 32], +} + +pub(crate) fn test_vectors() -> Vec { + // From https://github.com/zcash-hackworks/zcash-test-vectors/blob/master/orchard_key_components.py + vec![ + TestVector { + sk: [ + 0x5d, 0x7a, 0x8f, 0x73, 0x9a, 0x2d, 0x9e, 0x94, 0x5b, 0x0c, 0xe1, 0x52, 0xa8, 0x04, + 0x9e, 0x29, 0x4c, 0x4d, 0x6e, 0x66, 0xb1, 0x64, 0x93, 0x9d, 0xaf, 0xfa, 0x2e, 0xf6, + 0xee, 0x69, 0x21, 0x48, + ], + ask: [ + 0x8e, 0xb8, 0xc4, 0x01, 0xc2, 0x87, 0xa6, 0xc1, 0x3a, 0x2c, 0x34, 0x5a, 0xd8, 0x21, + 0x72, 0xd8, 0x6b, 0xe4, 0xa8, 0x85, 0x35, 0x25, 0xdb, 0x60, 0x2d, 0x14, 0xf6, 0x30, + 0xf4, 0xe6, 0x1c, 0x17, + ], + ak: [ + 0x74, 0x0b, 0xbe, 0x5d, 0x05, 0x80, 0xb2, 0xca, 0xd4, 0x30, 0x18, 0x0d, 0x02, 0xcc, + 0x12, 0x8b, 0x9a, 0x14, 0x0d, 0x5e, 0x07, 0xc1, 0x51, 0x72, 0x1d, 0xc1, 0x6d, 0x25, + 0xd4, 0xe2, 0x0f, 0x15, + ], + nk: [ + 0x9f, 0x2f, 0x82, 0x67, 0x38, 0x94, 0x5a, 0xd0, 0x1f, 0x47, 0xf7, 0x0d, 0xb0, 0xc3, + 0x67, 0xc2, 0x46, 0xc2, 0x0c, 0x61, 0xff, 0x55, 0x83, 0x94, 0x8c, 0x39, 0xde, 0xa9, + 0x68, 0xfe, 0xfd, 0x1b, + ], + rivk: [ + 0x02, 0x1c, 0xcf, 0x89, 0x60, 0x4f, 0x5f, 0x7c, 0xc6, 0xe0, 0x34, 0xb3, 0x2d, 0x33, + 0x89, 0x08, 0xb8, 0x19, 0xfb, 0xe3, 0x25, 0xfe, 0xe6, 0x45, 0x8b, 0x56, 0xb4, 0xca, + 0x71, 0xa7, 0xe4, 0x3d, + ], + ivk: [ + 0x85, 0xc8, 0xb5, 0xcd, 0x1a, 0xc3, 0xec, 0x3a, 0xd7, 0x09, 0x21, 0x32, 0xf9, 0x7f, + 0x01, 0x78, 0xb0, 0x75, 0xc8, 0x1a, 0x13, 0x9f, 0xd4, 0x60, 0xbb, 0xe0, 0xdf, 0xcd, + 0x75, 0x51, 0x47, 0x24, + ], + ovk: [ + 0xbc, 0xc7, 0x06, 0x5e, 0x59, 0x91, 0x0b, 0x35, 0x99, 0x3f, 0x59, 0x50, 0x5b, 0xe2, + 0x09, 0xb1, 0x4b, 0xf0, 0x24, 0x88, 0x75, 0x0b, 0xbc, 0x8b, 0x1a, 0xcd, 0xcf, 0x10, + 0x8c, 0x36, 0x20, 0x04, + ], + dk: [ + 0x31, 0xd6, 0xa6, 0x85, 0xbe, 0x57, 0x0f, 0x9f, 0xaf, 0x3c, 0xa8, 0xb0, 0x52, 0xe8, + 0x87, 0x84, 0x0b, 0x2c, 0x9f, 0x8d, 0x67, 0x22, 0x4c, 0xa8, 0x2a, 0xef, 0xb9, 0xe2, + 0xee, 0x5b, 0xed, 0xaf, + ], + default_d: [ + 0x8f, 0xf3, 0x38, 0x69, 0x71, 0xcb, 0x64, 0xb8, 0xe7, 0x78, 0x99, + ], + default_pk_d: [ + 0x08, 0xdd, 0x8e, 0xbd, 0x7d, 0xe9, 0x2a, 0x68, 0xe5, 0x86, 0xa3, 0x4d, 0xb8, 0xfe, + 0xa9, 0x99, 0xef, 0xd2, 0x01, 0x6f, 0xae, 0x76, 0x75, 0x0a, 0xfa, 0xe7, 0xee, 0x94, + 0x16, 0x46, 0xbc, 0xb9, + ], + internal_rivk: [ + 0x90, 0x1a, 0x30, 0xb9, 0x9a, 0xe1, 0x57, 0x0c, 0xb8, 0x0b, 0xb6, 0x16, 0xae, 0xef, + 0x3b, 0xb9, 0x16, 0xc6, 0x40, 0xc4, 0xcc, 0x62, 0x0f, 0x9b, 0x4b, 0x44, 0x99, 0xc7, + 0x43, 0x32, 0xeb, 0x2a, + ], + internal_ivk: [ + 0x90, 0x6e, 0x2d, 0x20, 0xd0, 0x0d, 0xc0, 0xbf, 0x7c, 0x52, 0x06, 0x87, 0xd9, 0xdf, + 0x3c, 0xe9, 0x81, 0x4d, 0x30, 0xee, 0x05, 0xc2, 0x15, 0xf8, 0x76, 0x4a, 0x32, 0xc3, + 0x62, 0xf9, 0x26, 0x2f, + ], + internal_ovk: [ + 0xd7, 0x26, 0x8b, 0xeb, 0xbe, 0xe6, 0x92, 0x28, 0x62, 0x52, 0xac, 0x60, 0xbd, 0x4d, + 0xf4, 0x05, 0xea, 0x49, 0x9d, 0x69, 0x7c, 0x45, 0x47, 0x73, 0xc5, 0xc4, 0x3c, 0xb1, + 0x70, 0x93, 0x01, 0x23, + ], + internal_dk: [ + 0x6d, 0x61, 0xa0, 0x3f, 0x74, 0x6b, 0xa9, 0x3b, 0x93, 0x24, 0x02, 0xac, 0x10, 0x71, + 0xfc, 0x27, 0x59, 0xd4, 0xf4, 0xd6, 0x84, 0xb2, 0xc5, 0x05, 0x6d, 0x5b, 0x17, 0x7a, + 0xf0, 0xfa, 0x8a, 0xa9, + ], + note_v: 15643327852135767324, + note_rho: [ + 0x2c, 0xb5, 0xb4, 0x06, 0xed, 0x89, 0x85, 0xe1, 0x81, 0x30, 0xab, 0x33, 0x36, 0x26, + 0x97, 0xb0, 0xe4, 0xe4, 0xc7, 0x63, 0xcc, 0xb8, 0xf6, 0x76, 0x49, 0x5c, 0x22, 0x2f, + 0x7f, 0xba, 0x1e, 0x31, + ], + note_rseed: [ + 0xde, 0xfa, 0x3d, 0x5a, 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, + 0xd5, 0xfb, 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, 0x3e, 0x0a, 0xd3, 0x36, + 0x0c, 0x1d, 0x37, 0x10, + ], + note_cmx: [ + 0x45, 0x02, 0xe3, 0x39, 0x90, 0x1e, 0x39, 0x77, 0x17, 0x83, 0x91, 0x67, 0xcb, 0xb4, + 0x03, 0x7e, 0x0e, 0xcf, 0x68, 0x13, 0xb5, 0x1c, 0x81, 0xfe, 0x08, 0x5a, 0x7b, 0x78, + 0x2f, 0x12, 0x42, 0x28, + ], + note_nf: [ + 0x1b, 0x32, 0xed, 0xbb, 0xe4, 0xd1, 0x8f, 0x28, 0x87, 0x6d, 0xe2, 0x62, 0x51, 0x8a, + 0xd3, 0x11, 0x22, 0x70, 0x1f, 0x8c, 0x0a, 0x52, 0xe9, 0x80, 0x47, 0xa3, 0x37, 0x87, + 0x6e, 0x7e, 0xea, 0x19, + ], + }, + TestVector { + sk: [ + 0xac, 0xd2, 0x0b, 0x18, 0x3e, 0x31, 0xd4, 0x9f, 0x25, 0xc9, 0xa1, 0x38, 0xf4, 0x9b, + 0x1a, 0x53, 0x7e, 0xdc, 0xf0, 0x4b, 0xe3, 0x4a, 0x98, 0x51, 0xa7, 0xaf, 0x9d, 0xb6, + 0x99, 0x0e, 0xd8, 0x3d, + ], + ask: [ + 0x41, 0xd4, 0x7c, 0xc9, 0x63, 0x13, 0xb4, 0x82, 0x1d, 0xfc, 0x12, 0x96, 0x51, 0xc3, + 0x13, 0x7f, 0x44, 0xd9, 0xca, 0xd1, 0x6b, 0x3d, 0xc0, 0x81, 0x33, 0xc3, 0xd2, 0xdf, + 0x0d, 0x0c, 0x53, 0x20, + ], + ak: [ + 0x6d, 0xe1, 0x34, 0x98, 0x30, 0xd6, 0x6d, 0x7b, 0x97, 0xfe, 0x23, 0x1f, 0xc7, 0xb0, + 0x2a, 0xd6, 0x43, 0x23, 0x62, 0x9c, 0xfe, 0xd1, 0xe3, 0xaa, 0x24, 0xef, 0x05, 0x2f, + 0x56, 0xe4, 0x00, 0x2a, + ], + nk: [ + 0xa8, 0xb7, 0x3d, 0x97, 0x9b, 0x6e, 0xaa, 0xda, 0x89, 0x24, 0xbc, 0xbd, 0xc6, 0x3a, + 0x9e, 0xf4, 0xe8, 0x73, 0x46, 0xf2, 0x30, 0xab, 0xa6, 0xbb, 0xe1, 0xe2, 0xb4, 0x3c, + 0x5b, 0xea, 0x6b, 0x22, + ], + rivk: [ + 0xda, 0xcb, 0x2f, 0x2a, 0x9c, 0xed, 0x36, 0x31, 0x71, 0x82, 0x1a, 0xaf, 0x5d, 0x8c, + 0xd9, 0x02, 0xbc, 0x5e, 0x3a, 0x5a, 0x41, 0xfb, 0x51, 0xae, 0x61, 0xa9, 0xf0, 0x2d, + 0xc8, 0x9d, 0x1d, 0x12, + ], + ivk: [ + 0x56, 0x3a, 0x6d, 0xb6, 0x0c, 0x74, 0xc2, 0xdb, 0x08, 0x49, 0x2c, 0xba, 0xe3, 0xbb, + 0x08, 0x3f, 0x1a, 0xea, 0xbf, 0xfb, 0xcf, 0x42, 0x55, 0x1d, 0x0a, 0xc6, 0x4f, 0x26, + 0x90, 0x53, 0x67, 0x11, + ], + ovk: [ + 0x71, 0xcd, 0x30, 0x64, 0x0f, 0xdb, 0x63, 0xf8, 0xd1, 0x30, 0x50, 0x29, 0xe9, 0x40, + 0xe5, 0x3f, 0xd5, 0xec, 0x04, 0xa8, 0xcc, 0xad, 0x41, 0x95, 0x78, 0xc2, 0x42, 0xfe, + 0xc0, 0x5b, 0x9a, 0xf7, + ], + dk: [ + 0x9d, 0x9b, 0xd4, 0x45, 0x25, 0xe7, 0xae, 0x06, 0xb0, 0x3a, 0xe6, 0xd4, 0xae, 0xcd, + 0xe6, 0xae, 0x09, 0x27, 0xa7, 0xc6, 0x67, 0xd5, 0xd9, 0xf8, 0x17, 0x6b, 0x54, 0x46, + 0x95, 0xdf, 0xec, 0x11, + ], + default_d: [ + 0x78, 0x07, 0xca, 0x65, 0x08, 0x58, 0x81, 0x4d, 0x50, 0x22, 0xa8, + ], + default_pk_d: [ + 0x3d, 0x3d, 0xe4, 0xd5, 0x2c, 0x77, 0xfd, 0x0b, 0x63, 0x0a, 0x40, 0xdc, 0x38, 0x21, + 0x24, 0x87, 0xb2, 0xff, 0x6e, 0xee, 0xf5, 0x6d, 0x8c, 0x6a, 0x61, 0x63, 0xe8, 0x54, + 0xaf, 0xf0, 0x41, 0x89, + ], + internal_rivk: [ + 0x8a, 0x22, 0xa7, 0xf5, 0xa1, 0xe9, 0x1a, 0x92, 0xad, 0x39, 0x4b, 0x18, 0xeb, 0x73, + 0x38, 0xb5, 0x92, 0x47, 0x0d, 0xd4, 0x2b, 0xe8, 0xef, 0x84, 0xc9, 0x3e, 0x7c, 0xd8, + 0x45, 0xec, 0xfa, 0x32, + ], + internal_ivk: [ + 0x12, 0x11, 0x83, 0xcb, 0x3b, 0x8d, 0x06, 0xf5, 0x99, 0xbb, 0x38, 0xb3, 0x73, 0x22, + 0x85, 0x1e, 0x5f, 0xc9, 0x5a, 0xd0, 0xc9, 0x70, 0x7e, 0xe8, 0x5f, 0xb6, 0x5e, 0x21, + 0xf1, 0xa3, 0x0d, 0x13, + ], + internal_ovk: [ + 0x93, 0x25, 0x2b, 0x24, 0xb4, 0x91, 0xd9, 0xc9, 0xc9, 0x97, 0x65, 0xc8, 0x4d, 0x4a, + 0xc7, 0xc2, 0xbf, 0xf0, 0x54, 0xcd, 0x9c, 0xad, 0xcd, 0x3e, 0x01, 0xb2, 0x6f, 0x21, + 0xe2, 0x84, 0x09, 0x09, + ], + internal_dk: [ + 0x6e, 0xea, 0x18, 0xfd, 0x0d, 0x50, 0x70, 0x7f, 0x90, 0xdf, 0x00, 0x2c, 0xbf, 0x30, + 0x9e, 0xca, 0x3c, 0x00, 0xd3, 0x98, 0xae, 0xde, 0x1f, 0xdc, 0x2a, 0xbf, 0xfc, 0x88, + 0x35, 0x38, 0x59, 0xaf, + ], + note_v: 4481649511318637270, + note_rho: [ + 0xa5, 0x1b, 0x00, 0x52, 0xad, 0x80, 0x84, 0xa8, 0xb9, 0xda, 0x94, 0x8d, 0x32, 0x0d, + 0xad, 0xd6, 0x4f, 0x54, 0x31, 0xe6, 0x1d, 0xdf, 0x65, 0x8d, 0x24, 0xae, 0x67, 0xc2, + 0x2c, 0x8d, 0x13, 0x09, + ], + note_rseed: [ + 0x13, 0x1f, 0xc0, 0x0f, 0xe7, 0xf2, 0x35, 0x73, 0x42, 0x76, 0xd3, 0x8d, 0x47, 0xf1, + 0xe1, 0x91, 0xe0, 0x0c, 0x7a, 0x1d, 0x48, 0xaf, 0x04, 0x68, 0x27, 0x59, 0x1e, 0x97, + 0x33, 0xa9, 0x7f, 0xa6, + ], + note_cmx: [ + 0xc7, 0xad, 0x79, 0x4c, 0x56, 0x3e, 0x32, 0xca, 0xd4, 0x7d, 0x47, 0xdc, 0xda, 0x78, + 0x84, 0x69, 0x28, 0x48, 0xdc, 0xe2, 0x9b, 0xa4, 0xfe, 0xbd, 0x93, 0x20, 0x2b, 0x73, + 0x05, 0xf9, 0x03, 0x00, + ], + note_nf: [ + 0x2c, 0xf0, 0x67, 0xbc, 0x21, 0xd6, 0x63, 0x20, 0xe5, 0x1b, 0x9f, 0xbd, 0xc8, 0xae, + 0x03, 0x1c, 0x2c, 0x96, 0x37, 0x3d, 0xb4, 0x3b, 0x7b, 0x1a, 0x45, 0x05, 0x6c, 0x00, + 0xc6, 0x5d, 0x43, 0x20, + ], + }, + TestVector { + sk: [ + 0xb6, 0x79, 0xf3, 0xdc, 0x60, 0x1d, 0x00, 0x82, 0x85, 0xed, 0xcb, 0xda, 0xe6, 0x9c, + 0xe8, 0xfc, 0x1b, 0xe4, 0xaa, 0xc0, 0x0f, 0xf2, 0x71, 0x1e, 0xbd, 0x93, 0x1d, 0xe5, + 0x18, 0x85, 0x68, 0x78, + ], + ask: [ + 0xce, 0x8b, 0x65, 0xa7, 0x23, 0x65, 0x11, 0xb2, 0xea, 0xf1, 0x9f, 0x72, 0xa3, 0xd6, + 0xdb, 0x7d, 0x06, 0x2b, 0x66, 0xf5, 0x16, 0x30, 0x7d, 0x19, 0x87, 0x06, 0xe5, 0xf6, + 0x92, 0x8e, 0x16, 0x15, + ], + ak: [ + 0xef, 0xa5, 0xf1, 0xde, 0xbe, 0xea, 0xd0, 0x94, 0x0a, 0x61, 0x9c, 0xe0, 0x01, 0x7b, + 0xed, 0xb4, 0x26, 0x65, 0x7b, 0x2d, 0x07, 0x40, 0x66, 0x64, 0xd8, 0x95, 0x31, 0x2e, + 0xa1, 0xc3, 0xb3, 0x34, + ], + nk: [ + 0x04, 0x51, 0x4e, 0xa0, 0x48, 0xb9, 0x43, 0x63, 0xde, 0xa7, 0xcb, 0x3b, 0xe8, 0xd6, + 0x25, 0x82, 0xac, 0x52, 0x92, 0x2e, 0x08, 0x65, 0xf6, 0x62, 0x74, 0x3b, 0x05, 0xea, + 0xe8, 0x71, 0x5f, 0x17, + ], + rivk: [ + 0x2a, 0x32, 0x8f, 0x99, 0x4f, 0x6e, 0x5a, 0xd2, 0x9c, 0xa8, 0x11, 0xed, 0x34, 0x49, + 0x68, 0xea, 0x2c, 0xfc, 0x3f, 0xd2, 0x31, 0x03, 0x0e, 0x37, 0xbb, 0xd5, 0x6d, 0xb4, + 0x26, 0x40, 0x23, 0x1c, + ], + ivk: [ + 0x60, 0x9e, 0xcb, 0xc3, 0xd8, 0xce, 0xe3, 0xbe, 0x2b, 0x2a, 0x23, 0x62, 0x95, 0x1f, + 0x58, 0xb7, 0x44, 0x82, 0xad, 0xfa, 0xee, 0xe1, 0xc4, 0x0f, 0x94, 0x03, 0x04, 0x40, + 0xf5, 0x58, 0xaa, 0x30, + ], + ovk: [ + 0xdf, 0xd3, 0x0f, 0x62, 0xaa, 0x31, 0x9c, 0x6f, 0x53, 0xe2, 0x4c, 0x1f, 0x48, 0xc1, + 0xde, 0x96, 0x1b, 0x90, 0x01, 0xcb, 0x98, 0x8b, 0x80, 0xb3, 0xed, 0xa2, 0x44, 0xfc, + 0xfe, 0xb2, 0x5f, 0x83, + ], + dk: [ + 0x23, 0x6b, 0xc3, 0xf3, 0xd0, 0x2f, 0x96, 0x02, 0x80, 0xee, 0xde, 0xde, 0x10, 0x8d, + 0x36, 0x85, 0x04, 0x9f, 0x23, 0x9a, 0xa6, 0x7c, 0x48, 0x55, 0x8f, 0x7c, 0x01, 0xd3, + 0xfd, 0x46, 0x9e, 0xcd, + ], + default_d: [ + 0x64, 0x24, 0xf7, 0x1a, 0x3a, 0xd1, 0x97, 0x42, 0x64, 0x98, 0xf4, + ], + default_pk_d: [ + 0xec, 0xcb, 0x6a, 0x57, 0x80, 0x20, 0x42, 0x37, 0x98, 0x72, 0x32, 0xbc, 0x09, 0x8f, + 0x89, 0xac, 0xc4, 0x75, 0xc3, 0xf7, 0x4b, 0xd6, 0x9e, 0x2f, 0x35, 0xd4, 0x47, 0x36, + 0xf4, 0x8f, 0x3c, 0x14, + ], + internal_rivk: [ + 0x0a, 0xa9, 0xaa, 0xaa, 0x2c, 0xf1, 0x84, 0x90, 0xdd, 0xf9, 0xa7, 0xe5, 0x21, 0x07, + 0x14, 0x07, 0xea, 0x9b, 0xff, 0xfe, 0x84, 0x34, 0x29, 0xbc, 0x94, 0xa2, 0x88, 0xe8, + 0xa6, 0x06, 0xa7, 0x10, + ], + internal_ivk: [ + 0xa0, 0x6a, 0xbd, 0x29, 0xd5, 0xa1, 0x99, 0xe1, 0xc2, 0x10, 0x25, 0xb0, 0x33, 0x7e, + 0x94, 0x1f, 0x6d, 0x4d, 0x84, 0xeb, 0x7c, 0xc3, 0x5a, 0x39, 0x7f, 0x9e, 0x75, 0x3f, + 0xda, 0xed, 0x81, 0x0d, + ], + internal_ovk: [ + 0xf8, 0x2e, 0xb2, 0x49, 0x06, 0xe2, 0x94, 0xff, 0x65, 0x71, 0xac, 0x7d, 0x83, 0x68, + 0xea, 0x82, 0x80, 0xd4, 0x22, 0xf3, 0x47, 0x7c, 0xe7, 0x2a, 0xef, 0x5f, 0x9b, 0x9e, + 0xca, 0x48, 0x46, 0x8f, + ], + internal_dk: [ + 0x36, 0x56, 0xb5, 0x45, 0xa5, 0x0a, 0x6b, 0x26, 0x28, 0x74, 0x76, 0x64, 0x1b, 0x2b, + 0x68, 0xc6, 0x3c, 0x36, 0xf3, 0x32, 0xe7, 0x45, 0x57, 0xe9, 0x16, 0x05, 0x0f, 0x0b, + 0x91, 0x11, 0x17, 0x9b, + ], + note_v: 14496603531126387959, + note_rho: [ + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, 0xe7, 0x23, 0x89, 0xfc, 0x03, 0x88, + 0x0d, 0x78, 0x0c, 0xb0, 0x7f, 0xcf, 0xaa, 0xbe, 0x3f, 0x1a, 0x84, 0xb2, 0x7d, 0xb5, + 0x9a, 0x4a, 0x15, 0x3d, + ], + note_rseed: [ + 0x88, 0x2d, 0x2b, 0x21, 0x03, 0x59, 0x65, 0x55, 0xed, 0x94, 0x94, 0xc6, 0xac, 0x89, + 0x3c, 0x49, 0x72, 0x38, 0x33, 0xec, 0x89, 0x26, 0xc1, 0x03, 0x95, 0x86, 0xa7, 0xaf, + 0xcf, 0x4a, 0x0d, 0x9c, + ], + note_cmx: [ + 0x03, 0xce, 0x20, 0xce, 0xa1, 0x94, 0xb7, 0x55, 0x9a, 0x8a, 0x90, 0x47, 0x1d, 0x28, + 0xa3, 0xc0, 0x53, 0xc3, 0x72, 0x0a, 0xd4, 0x9f, 0x40, 0xd2, 0x7c, 0x2d, 0xcc, 0xe3, + 0x35, 0x00, 0x56, 0x16, + ], + note_nf: [ + 0x16, 0xfa, 0x2c, 0x34, 0x97, 0xfc, 0x09, 0xad, 0x90, 0xdd, 0x34, 0x92, 0x02, 0xa2, + 0x4b, 0x69, 0x89, 0x2d, 0xc8, 0x06, 0x29, 0xb2, 0xd1, 0xbf, 0xeb, 0xaf, 0x41, 0x70, + 0x8f, 0x0f, 0xb1, 0x0c, + ], + }, + TestVector { + sk: [ + 0x73, 0x1e, 0x98, 0x5d, 0x99, 0x58, 0x9c, 0x8b, 0xb8, 0x38, 0xe8, 0xaa, 0xf7, 0x45, + 0x53, 0x3e, 0xd9, 0xe8, 0xae, 0x3a, 0x1c, 0xd0, 0x74, 0xa5, 0x1a, 0x20, 0xda, 0x8a, + 0xba, 0x18, 0xd1, 0xdb, + ], + ask: [ + 0x42, 0x6a, 0x78, 0x44, 0xf3, 0x05, 0xb9, 0xd4, 0xe0, 0x7e, 0xa5, 0x2a, 0x39, 0x00, + 0x1c, 0x9b, 0x33, 0x6c, 0xfc, 0x0d, 0x6f, 0xa1, 0x5e, 0xf3, 0xd1, 0x1c, 0x3d, 0x7b, + 0x74, 0xf0, 0x8c, 0x2d, + ], + ak: [ + 0xb1, 0xe0, 0xac, 0xbc, 0x69, 0xbf, 0x37, 0x7b, 0x85, 0xab, 0xf0, 0xf5, 0xa1, 0x0b, + 0xe7, 0x2c, 0x3b, 0x64, 0x00, 0x06, 0xff, 0x08, 0x50, 0x52, 0x80, 0xe4, 0xf0, 0x0f, + 0xad, 0xf7, 0x63, 0x28, + ], + nk: [ + 0xcf, 0x36, 0xad, 0x6a, 0x06, 0x6c, 0xd2, 0x13, 0xe1, 0xd7, 0x67, 0xab, 0x07, 0x1d, + 0xc1, 0x16, 0x78, 0x85, 0xc4, 0x16, 0x8b, 0xc2, 0xe2, 0x17, 0x54, 0x48, 0x56, 0x3a, + 0xd1, 0x3f, 0x33, 0x3d, + ], + rivk: [ + 0xc4, 0x1b, 0xba, 0xd3, 0x51, 0x05, 0xa8, 0x03, 0x14, 0xb7, 0x96, 0x24, 0xb6, 0x75, + 0x24, 0x12, 0x20, 0xb3, 0x31, 0xf1, 0x25, 0x92, 0x61, 0x7b, 0xdb, 0x70, 0x5b, 0xfc, + 0xce, 0x72, 0xae, 0x38, + ], + ivk: [ + 0xf7, 0x9f, 0xe8, 0x02, 0xe4, 0xd2, 0x43, 0x07, 0xa6, 0xaa, 0xf8, 0x5d, 0x19, 0xf5, + 0xe0, 0x83, 0x37, 0x40, 0xba, 0xe5, 0x98, 0xdc, 0x7c, 0x88, 0x0a, 0xc6, 0x09, 0x63, + 0x1d, 0xe1, 0x58, 0x19, + ], + ovk: [ + 0xf9, 0x63, 0x66, 0xbc, 0x6e, 0xab, 0xd2, 0x32, 0x54, 0x9e, 0xbb, 0x43, 0xb4, 0xed, + 0x6f, 0xd8, 0x1d, 0x33, 0x03, 0x73, 0xc5, 0xb5, 0x66, 0x90, 0x4e, 0x9a, 0xf1, 0x1a, + 0x6b, 0xab, 0x8d, 0x77, + ], + dk: [ + 0x80, 0x3e, 0x34, 0x85, 0x73, 0x02, 0x2b, 0xf8, 0x93, 0x2f, 0x23, 0xee, 0x7a, 0x32, + 0x5e, 0xa2, 0x83, 0x87, 0x9c, 0x65, 0x24, 0x12, 0xb8, 0x60, 0x6b, 0xe3, 0x19, 0x8c, + 0x4b, 0x78, 0x2c, 0x47, + ], + default_d: [ + 0xdb, 0x8c, 0x30, 0x55, 0x24, 0xbc, 0x0d, 0xea, 0xa8, 0x5d, 0x97, + ], + default_pk_d: [ + 0x04, 0xea, 0x8c, 0x13, 0x20, 0xff, 0xbb, 0xad, 0xfe, 0x96, 0xf0, 0xc6, 0xff, 0x16, + 0xb6, 0x07, 0x11, 0x1b, 0x55, 0x83, 0xbf, 0xb6, 0xf1, 0xea, 0x45, 0x27, 0x5e, 0xf2, + 0xaa, 0x2d, 0x87, 0x9b, + ], + internal_rivk: [ + 0x9e, 0x45, 0x2a, 0xb7, 0x2c, 0x6c, 0x8e, 0xcc, 0xf2, 0xe4, 0x39, 0xa0, 0xce, 0xc0, + 0xa0, 0xac, 0x39, 0x4a, 0x1a, 0xa1, 0x21, 0xac, 0x60, 0x32, 0xa7, 0xeb, 0xc2, 0x9d, + 0xb4, 0x85, 0x62, 0x26, + ], + internal_ivk: [ + 0x3b, 0xa9, 0x3b, 0x0f, 0xc3, 0xf2, 0x7a, 0xb2, 0x17, 0x63, 0x5d, 0x03, 0xf9, 0x0d, + 0x0b, 0x84, 0x2d, 0x99, 0xa1, 0x2c, 0xdc, 0x37, 0xa8, 0x1c, 0x18, 0x1e, 0xc0, 0x18, + 0xe5, 0xf4, 0x4c, 0x11, + ], + internal_ovk: [ + 0xe3, 0xc7, 0xf8, 0x6c, 0x1b, 0x23, 0x83, 0xb3, 0xbd, 0x41, 0xad, 0x1a, 0x8f, 0x11, + 0xef, 0xa2, 0x55, 0x4a, 0x41, 0x0a, 0x98, 0xc8, 0x92, 0x07, 0xae, 0xb4, 0x31, 0x9b, + 0x1a, 0xbd, 0x78, 0x79, + ], + internal_dk: [ + 0xd7, 0x1a, 0x68, 0xcf, 0xd6, 0xc7, 0x68, 0xf4, 0x30, 0x73, 0xf6, 0x98, 0x18, 0x9a, + 0xc7, 0x5e, 0xe4, 0x21, 0xb4, 0x20, 0x4b, 0xb6, 0xf3, 0xc5, 0xd0, 0xfc, 0x43, 0x28, + 0x49, 0xaa, 0x71, 0x61, + ], + note_v: 6792346249443327211, + note_rho: [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, 0xbc, + 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, 0x3c, 0xe7, + 0x1a, 0x02, 0xaf, 0x11, + ], + note_rseed: [ + 0x7d, 0x41, 0x7a, 0xdb, 0x3d, 0x15, 0xcc, 0x54, 0xdc, 0xb1, 0xfc, 0xe4, 0x67, 0x50, + 0x0c, 0x6b, 0x8f, 0xb8, 0x6b, 0x12, 0xb5, 0x6d, 0xa9, 0xc3, 0x82, 0x85, 0x7d, 0xee, + 0xcc, 0x40, 0xa9, 0x8d, + ], + note_cmx: [ + 0xa9, 0xb1, 0x1b, 0xaf, 0x30, 0x34, 0xb6, 0x5c, 0x64, 0x24, 0x84, 0x1b, 0xfe, 0x02, + 0x3f, 0x8e, 0xda, 0x13, 0x13, 0xc3, 0x0a, 0xa2, 0x7d, 0xe9, 0x2e, 0x21, 0xa1, 0x08, + 0x31, 0x6e, 0x82, 0x19, + ], + note_nf: [ + 0x72, 0xd6, 0x30, 0x89, 0x60, 0x35, 0x1f, 0x7b, 0x26, 0xfa, 0x64, 0x60, 0x3f, 0xe4, + 0xdf, 0xd8, 0x67, 0xbd, 0x5e, 0xb3, 0x67, 0xba, 0x2b, 0x7c, 0xa4, 0x91, 0xc9, 0x23, + 0xc0, 0xea, 0xd2, 0x22, + ], + }, + TestVector { + sk: [ + 0x5f, 0x29, 0x35, 0x39, 0x5e, 0xe4, 0x76, 0x2d, 0xd2, 0x1a, 0xfd, 0xbb, 0x5d, 0x47, + 0xfa, 0x9a, 0x6d, 0xd9, 0x84, 0xd5, 0x67, 0xdb, 0x28, 0x57, 0xb9, 0x27, 0xb7, 0xfa, + 0xe2, 0xdb, 0x58, 0x71, + ], + ask: [ + 0x11, 0x80, 0x73, 0x28, 0x51, 0x64, 0xe6, 0x55, 0x73, 0x58, 0xfb, 0xc4, 0x1a, 0x81, + 0x35, 0xcb, 0x06, 0x2f, 0x86, 0x76, 0xcb, 0x61, 0xf9, 0xaa, 0x52, 0xd1, 0x9a, 0x09, + 0xfa, 0xc5, 0x58, 0x02, + ], + ak: [ + 0x0d, 0x26, 0x2d, 0xe3, 0x60, 0x94, 0x33, 0xfe, 0x5b, 0x7c, 0x86, 0x2b, 0xc4, 0x8e, + 0xf5, 0x6d, 0x83, 0x20, 0x09, 0xf7, 0x24, 0x2e, 0x1f, 0x7c, 0x77, 0x0a, 0x12, 0x24, + 0x1d, 0xfa, 0x28, 0x07, + ], + nk: [ + 0x51, 0xba, 0xf3, 0x33, 0xcf, 0xf1, 0xf2, 0xd0, 0xc7, 0xe3, 0xcf, 0xf4, 0xd3, 0x01, + 0x29, 0x9d, 0xc1, 0xef, 0xe9, 0x83, 0x00, 0x31, 0x4a, 0x54, 0x19, 0x38, 0x02, 0x9b, + 0x45, 0xcc, 0x15, 0x21, + ], + rivk: [ + 0x22, 0x8f, 0xeb, 0x79, 0x21, 0x98, 0x73, 0xc7, 0xa7, 0x60, 0x6e, 0x52, 0x97, 0x3c, + 0x85, 0xf4, 0x60, 0x46, 0x5a, 0x60, 0x59, 0x08, 0x39, 0x19, 0xed, 0x73, 0xeb, 0x80, + 0x5c, 0x11, 0x83, 0x01, + ], + ivk: [ + 0x76, 0xf4, 0x9c, 0xf8, 0xa3, 0x19, 0x21, 0x85, 0x61, 0x6a, 0x9a, 0x0d, 0xa0, 0xc7, + 0x6e, 0xc2, 0xc2, 0x75, 0x61, 0x59, 0xbc, 0xe1, 0x86, 0xa1, 0x86, 0x2b, 0x6e, 0x6e, + 0x59, 0x44, 0x2d, 0x11, + ], + ovk: [ + 0xeb, 0x72, 0xb6, 0xc3, 0x1e, 0x83, 0x7f, 0xd8, 0x37, 0xaa, 0xcb, 0x61, 0xfa, 0xba, + 0xce, 0x75, 0xa1, 0x9d, 0xd9, 0xdd, 0x5b, 0x4b, 0x3a, 0x3e, 0xe7, 0x23, 0xc1, 0x4d, + 0xa7, 0x7b, 0x4b, 0xe8, + ], + dk: [ + 0xee, 0x19, 0xf8, 0xdd, 0xd9, 0xda, 0x06, 0x34, 0x24, 0x51, 0x43, 0xc4, 0xb4, 0x3a, + 0xfc, 0x7d, 0x78, 0xc5, 0x49, 0xc8, 0x20, 0x54, 0xa9, 0xd8, 0x40, 0x07, 0xb5, 0x62, + 0x17, 0xdb, 0xfd, 0xd6, + ], + default_d: [ + 0xaa, 0xe3, 0x6e, 0x09, 0x4d, 0xe0, 0x7b, 0xc1, 0x6f, 0x89, 0x8e, + ], + default_pk_d: [ + 0xb6, 0x53, 0x3d, 0xcb, 0xff, 0xf0, 0xf6, 0xc1, 0xce, 0xef, 0xa8, 0x47, 0x99, 0xbd, + 0xa3, 0xde, 0x73, 0x34, 0x32, 0x6c, 0xcd, 0x65, 0xf7, 0xce, 0x92, 0xff, 0x3d, 0x9e, + 0x6e, 0x1f, 0x14, 0x0b, + ], + internal_rivk: [ + 0x25, 0x44, 0x06, 0x72, 0x3b, 0x06, 0x67, 0xaf, 0x27, 0xe5, 0x1c, 0xb3, 0xce, 0x8f, + 0xa1, 0x38, 0x81, 0x64, 0xd9, 0x43, 0x76, 0xc8, 0x50, 0xbd, 0xdb, 0x39, 0xe9, 0xbe, + 0xa5, 0xfa, 0x96, 0x05, + ], + internal_ivk: [ + 0xba, 0xd4, 0x83, 0x7b, 0xa7, 0x88, 0x22, 0xb8, 0xb1, 0x65, 0xb0, 0xa1, 0x6e, 0x11, + 0x04, 0xc7, 0x05, 0xc3, 0xc0, 0xe3, 0x82, 0xd3, 0xf1, 0x3c, 0x19, 0x5c, 0x0e, 0xf3, + 0x11, 0xbb, 0x80, 0x04, + ], + internal_ovk: [ + 0xb9, 0x11, 0x3a, 0x95, 0x2d, 0xcc, 0x1e, 0x15, 0xc3, 0x4d, 0x13, 0x66, 0x03, 0xa2, + 0xef, 0x25, 0x4a, 0x38, 0x75, 0x5a, 0x55, 0x7f, 0xa9, 0xf8, 0x8c, 0x14, 0x3b, 0xd3, + 0x07, 0x64, 0x41, 0xb0, + ], + internal_dk: [ + 0x02, 0xb5, 0x2c, 0x6e, 0xd9, 0xad, 0x49, 0xfb, 0x38, 0xe4, 0x44, 0x7c, 0x69, 0xb5, + 0x70, 0xeb, 0xd0, 0x55, 0xe4, 0xc7, 0xfd, 0x91, 0xc0, 0x20, 0xff, 0x43, 0x46, 0x1d, + 0x14, 0xe0, 0x2f, 0x29, + ], + note_v: 4079549063511228677, + note_rho: [ + 0x26, 0x70, 0xdc, 0x82, 0xd3, 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, + 0xaa, 0x2a, 0x4f, 0x5a, 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, 0x40, 0x6f, 0x2f, 0xdd, + 0x2a, 0xfa, 0x73, 0x3f, + ], + note_rseed: [ + 0x5f, 0x64, 0x1c, 0x8c, 0x21, 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, + 0xcf, 0xa1, 0x58, 0xcf, 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, 0xe3, 0x15, 0xdc, 0x7d, + 0x83, 0x88, 0xe7, 0x6c, + ], + note_cmx: [ + 0x0f, 0xfb, 0xca, 0x1d, 0x59, 0x21, 0xfa, 0x0a, 0x8c, 0x51, 0x16, 0xae, 0x13, 0x7e, + 0x37, 0xf2, 0xc1, 0x18, 0xd5, 0x21, 0x25, 0x62, 0x8d, 0x8a, 0x3f, 0x41, 0x2c, 0xe0, + 0xe6, 0x53, 0x0e, 0x04, + ], + note_nf: [ + 0xe6, 0x2b, 0x8e, 0xd8, 0x35, 0x40, 0x14, 0x6c, 0xd2, 0x3c, 0xac, 0x74, 0xee, 0xd7, + 0xd7, 0x73, 0xd8, 0x02, 0x24, 0xa5, 0xaa, 0x30, 0xd6, 0x8e, 0x35, 0x57, 0x2e, 0xe8, + 0x83, 0xd1, 0xb7, 0x04, + ], + }, + TestVector { + sk: [ + 0x17, 0x82, 0xfd, 0x27, 0x95, 0xd1, 0x8a, 0x76, 0x36, 0x24, 0xc2, 0x5f, 0xa9, 0x59, + 0xcc, 0x97, 0x48, 0x9c, 0xe7, 0x57, 0x45, 0x82, 0x4b, 0x77, 0x86, 0x8c, 0x53, 0x23, + 0x9c, 0xfb, 0xdf, 0x73, + ], + ask: [ + 0xf6, 0xef, 0x32, 0x8d, 0x24, 0x76, 0x1d, 0x6d, 0x3c, 0xcd, 0x25, 0xd4, 0x71, 0x96, + 0xe8, 0x10, 0x9c, 0x03, 0x8f, 0xe1, 0x7c, 0x59, 0xa7, 0xf0, 0x5b, 0x98, 0xd6, 0x6b, + 0xeb, 0xc6, 0x41, 0x24, + ], + ak: [ + 0xd1, 0x17, 0x87, 0xca, 0x58, 0x2f, 0x94, 0x8e, 0x45, 0x07, 0x18, 0xb3, 0x69, 0x98, + 0xdf, 0x28, 0xbb, 0x0f, 0x10, 0x21, 0xea, 0x84, 0x3f, 0x86, 0x7f, 0x8a, 0x17, 0x0f, + 0x5c, 0x33, 0x90, 0x1f, + ], + nk: [ + 0x9e, 0x99, 0x7d, 0x9d, 0x26, 0x97, 0x87, 0x26, 0x8e, 0x09, 0x2a, 0x7c, 0x85, 0x41, + 0x7d, 0xa5, 0x30, 0xea, 0x42, 0xfa, 0xc6, 0x68, 0xa7, 0x49, 0xaf, 0x55, 0xdf, 0xb7, + 0x1c, 0xdb, 0xbe, 0x09, + ], + rivk: [ + 0x13, 0x6c, 0x6f, 0xe2, 0xe2, 0xb7, 0x9c, 0x51, 0x56, 0xdb, 0x50, 0x47, 0xd8, 0xd5, + 0xe7, 0x95, 0xdf, 0xc0, 0xbd, 0xc0, 0x88, 0x08, 0x53, 0xa4, 0x4a, 0xdb, 0x73, 0x92, + 0xc0, 0x2f, 0x94, 0x1b, + ], + ivk: [ + 0x02, 0x8b, 0x64, 0x05, 0x64, 0xb2, 0x49, 0x05, 0xde, 0x92, 0x92, 0xba, 0x5b, 0x98, + 0x10, 0xad, 0xdd, 0x86, 0xbe, 0xd0, 0xfb, 0x3b, 0x2d, 0x6b, 0x37, 0xf2, 0x6d, 0xd2, + 0x38, 0xa7, 0xdb, 0x13, + ], + ovk: [ + 0x98, 0xd6, 0xa4, 0xbf, 0x68, 0x01, 0xd8, 0xba, 0x0d, 0x0b, 0x67, 0xea, 0x7b, 0x80, + 0x52, 0x07, 0xab, 0xc0, 0x34, 0x8f, 0xc5, 0x62, 0x00, 0x5a, 0x59, 0xa2, 0x7a, 0x8a, + 0x46, 0xfa, 0x6a, 0xdd, + ], + dk: [ + 0xd0, 0xba, 0xef, 0x60, 0x12, 0xd3, 0x08, 0xef, 0xbb, 0x76, 0x9a, 0x99, 0xcc, 0xa2, + 0x92, 0x8c, 0xed, 0xe8, 0xdb, 0x27, 0x76, 0x45, 0xa7, 0x77, 0xea, 0xf1, 0x72, 0x2c, + 0xd0, 0x84, 0x50, 0xb3, + ], + default_d: [ + 0xcc, 0x7c, 0xe7, 0x34, 0xb0, 0x75, 0xa0, 0x1b, 0x92, 0xaa, 0xca, + ], + default_pk_d: [ + 0x3d, 0xa5, 0x27, 0x3a, 0x56, 0x67, 0xc7, 0x66, 0xb8, 0x23, 0x12, 0x06, 0x18, 0x0f, + 0x15, 0x8a, 0xc0, 0x2a, 0xf3, 0xf0, 0x6e, 0xcc, 0xa6, 0xec, 0x7c, 0x38, 0xc7, 0x5d, + 0x33, 0x60, 0x03, 0x20, + ], + internal_rivk: [ + 0x88, 0xd7, 0xb1, 0x96, 0x99, 0xf3, 0x94, 0xa5, 0x50, 0xbc, 0x9c, 0xdc, 0x6b, 0xf3, + 0xfc, 0x71, 0xf6, 0x10, 0xc3, 0x06, 0x56, 0x37, 0x61, 0x53, 0xa6, 0x96, 0x1f, 0xcd, + 0x5b, 0x97, 0xfa, 0x19, + ], + internal_ivk: [ + 0x0a, 0x2d, 0xc9, 0x66, 0x61, 0xb9, 0x27, 0x25, 0x0d, 0x7e, 0x3c, 0xd2, 0xc7, 0xe0, + 0x6d, 0x51, 0x74, 0xc6, 0x2c, 0xb1, 0x2e, 0x07, 0x16, 0x7f, 0x19, 0x4f, 0x4c, 0xe6, + 0x4e, 0x68, 0x95, 0x02, + ], + internal_ovk: [ + 0xcc, 0x79, 0x65, 0xf3, 0x3a, 0xc0, 0x1c, 0x60, 0x68, 0x51, 0xb1, 0x29, 0xbd, 0xc9, + 0xb6, 0xab, 0xd5, 0xca, 0x5b, 0x9d, 0x24, 0x1d, 0xbd, 0x5c, 0x18, 0xb2, 0x46, 0x9b, + 0x7c, 0x8c, 0xc8, 0x9f, + ], + internal_dk: [ + 0xda, 0xa2, 0x42, 0xd2, 0x0d, 0xfd, 0xce, 0x8f, 0xc1, 0x0f, 0x4d, 0x99, 0x39, 0x7d, + 0xa2, 0x2c, 0x49, 0x1d, 0xc0, 0x9e, 0x1b, 0x12, 0x0f, 0x66, 0x93, 0xd6, 0x86, 0xec, + 0xd4, 0x03, 0x0a, 0x00, + ], + note_v: 5706402952489856202, + note_rho: [ + 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, 0x47, 0x7a, 0x70, 0x96, 0x49, 0xe9, + 0x50, 0x06, 0x05, 0x91, 0x39, 0x48, 0x12, 0x95, 0x1e, 0x1f, 0xe3, 0x89, 0x5b, 0x8c, + 0xc3, 0xd1, 0x4d, 0x2c, + ], + note_rseed: [ + 0xf6, 0x55, 0x6d, 0xf6, 0xed, 0x4b, 0x4d, 0xdd, 0x3d, 0x9a, 0x69, 0xf5, 0x33, 0x57, + 0xd7, 0x76, 0x7f, 0x4f, 0x5c, 0xcb, 0xdb, 0xc5, 0x96, 0x63, 0x12, 0x77, 0xf8, 0xfe, + 0xcd, 0x08, 0xcb, 0x05, + ], + note_cmx: [ + 0x63, 0xce, 0xe3, 0x7e, 0x3c, 0x7b, 0x4e, 0x6c, 0xc9, 0x39, 0xa2, 0xe6, 0x3a, 0xda, + 0x74, 0xf8, 0x5e, 0xa4, 0x8b, 0xa0, 0x7a, 0x4f, 0x92, 0xcc, 0xbd, 0x34, 0xfa, 0xa4, + 0x2d, 0xfd, 0x49, 0x16, + ], + note_nf: [ + 0x4c, 0x99, 0xbf, 0xa8, 0xc2, 0x0d, 0xba, 0x59, 0xbb, 0x73, 0x47, 0xda, 0x16, 0xc4, + 0x3b, 0x73, 0xc8, 0x87, 0x94, 0xc9, 0xeb, 0xcd, 0x0d, 0xd2, 0xb2, 0x5e, 0xe7, 0xbb, + 0x83, 0x6f, 0x95, 0x20, + ], + }, + TestVector { + sk: [ + 0x6b, 0x95, 0xe3, 0x02, 0x5b, 0x97, 0x92, 0xff, 0xf7, 0xf2, 0x44, 0xfc, 0x71, 0x62, + 0x69, 0xb9, 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, + 0x9e, 0x68, 0x62, 0x5a, + ], + ask: [ + 0x75, 0x7d, 0x15, 0x8d, 0x07, 0x35, 0x6b, 0x3b, 0xc2, 0xc9, 0xe5, 0x1c, 0x55, 0x8a, + 0x9b, 0x31, 0x6b, 0xdd, 0xbc, 0x36, 0x0b, 0x8b, 0xeb, 0x6e, 0x2a, 0xe3, 0xb0, 0x61, + 0x8f, 0x06, 0x2d, 0x2e, + ], + ak: [ + 0x44, 0x9a, 0x90, 0xd2, 0xe8, 0xd1, 0xa0, 0x37, 0x64, 0x2a, 0x97, 0x09, 0x6c, 0x91, + 0x65, 0x43, 0x46, 0x2a, 0x13, 0x7f, 0xfe, 0xa3, 0x7b, 0xaf, 0x41, 0xef, 0x28, 0x6b, + 0xb7, 0x32, 0xbe, 0x2c, + ], + nk: [ + 0xfd, 0x31, 0x64, 0xc6, 0x32, 0xbe, 0xc9, 0x4c, 0xe9, 0xfb, 0x2f, 0x30, 0x22, 0x63, + 0xb8, 0x84, 0xab, 0xb9, 0xc1, 0x0e, 0x55, 0xe4, 0x48, 0x64, 0x7f, 0x67, 0x98, 0x49, + 0x5c, 0x9d, 0x08, 0x3f, + ], + rivk: [ + 0xc0, 0xb3, 0x6b, 0x56, 0x07, 0x0f, 0xff, 0x2f, 0xdf, 0x38, 0xeb, 0xa1, 0x1a, 0x74, + 0x24, 0x95, 0x71, 0x95, 0x01, 0x4c, 0xba, 0x43, 0xa5, 0x6b, 0xd1, 0xb1, 0x65, 0x8e, + 0x66, 0xa3, 0x9d, 0x00, + ], + ivk: [ + 0x97, 0x6a, 0x87, 0x88, 0x19, 0x1b, 0x87, 0xe4, 0xc1, 0x3f, 0x2c, 0x6d, 0x23, 0xb4, + 0xf3, 0x59, 0x5e, 0x02, 0x28, 0xe2, 0x45, 0xe9, 0x6e, 0xef, 0x1d, 0x24, 0xb2, 0x93, + 0x29, 0x6a, 0x19, 0x1c, + ], + ovk: [ + 0x1e, 0xd0, 0xed, 0xa5, 0xa4, 0x08, 0x61, 0x31, 0x26, 0x1a, 0x2e, 0xd4, 0x42, 0x92, + 0x61, 0xe4, 0x27, 0x6a, 0x26, 0xd4, 0x28, 0x59, 0xfa, 0xbd, 0xa3, 0x1a, 0xa9, 0x67, + 0x09, 0x87, 0x43, 0x71, + ], + dk: [ + 0x5e, 0x5b, 0x60, 0xc0, 0x5b, 0x53, 0xd0, 0xbc, 0xd2, 0xda, 0x46, 0xa1, 0x31, 0x29, + 0x12, 0x51, 0x5c, 0xc7, 0xcf, 0x2d, 0x97, 0x4c, 0x11, 0x7c, 0x8d, 0xde, 0xa9, 0xfa, + 0xb6, 0x20, 0xc6, 0x68, + ], + default_d: [ + 0x99, 0xaf, 0x6b, 0xf3, 0xf4, 0x75, 0xbd, 0xe8, 0x89, 0xaa, 0xca, + ], + default_pk_d: [ + 0xac, 0xdc, 0xd3, 0x48, 0xca, 0x45, 0xee, 0x58, 0x32, 0x78, 0x30, 0x38, 0x46, 0xca, + 0x07, 0x84, 0x59, 0xd5, 0xbe, 0x5c, 0x5d, 0xcf, 0x34, 0x7e, 0x3b, 0x9a, 0x34, 0xcb, + 0xa1, 0x24, 0xb4, 0xa3, + ], + internal_rivk: [ + 0x94, 0x1a, 0x17, 0xe1, 0x20, 0x2a, 0x62, 0x71, 0xa4, 0x4a, 0x01, 0x66, 0x65, 0x53, + 0xb5, 0x81, 0xbf, 0x25, 0xef, 0x99, 0xe8, 0xe9, 0x5f, 0x13, 0x2a, 0xce, 0x38, 0x1d, + 0x96, 0x01, 0x84, 0x32, + ], + internal_ivk: [ + 0xa2, 0x76, 0x29, 0xac, 0x1c, 0x62, 0xc9, 0xf4, 0xda, 0xd5, 0x7c, 0x95, 0x30, 0xab, + 0x2a, 0x59, 0x80, 0x0d, 0x2e, 0xf4, 0x55, 0xcd, 0x17, 0x44, 0x6f, 0x3f, 0xc6, 0x08, + 0x1a, 0x58, 0x1e, 0x3b, + ], + internal_ovk: [ + 0xe9, 0x89, 0x8e, 0xd6, 0xb6, 0x69, 0xc8, 0xd9, 0xd5, 0x90, 0xb7, 0x59, 0xd0, 0x29, + 0x5f, 0xcf, 0xaf, 0x95, 0xe2, 0xda, 0xf7, 0xda, 0x99, 0x1c, 0x27, 0x57, 0xdc, 0xef, + 0xe1, 0x62, 0x6e, 0x0e, + ], + internal_dk: [ + 0x61, 0x0c, 0xbd, 0x9a, 0x57, 0x79, 0x79, 0xe1, 0xf7, 0x1d, 0xa8, 0x10, 0x0f, 0x6f, + 0xe6, 0xb8, 0xf6, 0xd1, 0x0a, 0x74, 0x7f, 0xed, 0x2a, 0x1c, 0x91, 0xcb, 0xe1, 0x42, + 0x47, 0x5c, 0x30, 0x82, + ], + note_v: 2558469029534639129, + note_rho: [ + 0x72, 0x2d, 0xb0, 0x41, 0xa3, 0xef, 0x66, 0xfa, 0x48, 0x3a, 0xfd, 0x3c, 0x2e, 0x19, + 0xe5, 0x94, 0x44, 0xa6, 0x4a, 0xdd, 0x6d, 0xf1, 0xd9, 0x63, 0xf5, 0xdd, 0x5b, 0x50, + 0x10, 0xd3, 0xd0, 0x25, + ], + note_rseed: [ + 0xf0, 0x28, 0x7c, 0x4c, 0xf1, 0x9c, 0x75, 0xf3, 0x3d, 0x51, 0xdd, 0xdd, 0xba, 0x5d, + 0x65, 0x7b, 0x43, 0xee, 0x8d, 0xa6, 0x45, 0x44, 0x38, 0x14, 0xcc, 0x73, 0x29, 0xf3, + 0xe9, 0xb4, 0xe5, 0x4c, + ], + note_cmx: [ + 0x1e, 0x61, 0x9e, 0x46, 0xbb, 0x62, 0xb6, 0x1d, 0x4e, 0x1c, 0xf3, 0x62, 0x2e, 0xa7, + 0x0a, 0x90, 0x8d, 0xe7, 0xf0, 0x76, 0xec, 0xf8, 0x7f, 0x54, 0x1e, 0x0b, 0x7b, 0x48, + 0xad, 0x4a, 0x26, 0x01, + ], + note_nf: [ + 0x3b, 0x94, 0x8d, 0xb2, 0x16, 0x08, 0xe9, 0xac, 0xb2, 0x2a, 0x54, 0x17, 0xb9, 0x8c, + 0x0d, 0xed, 0xd5, 0x27, 0xa9, 0x64, 0x87, 0x81, 0x4e, 0x64, 0x20, 0xcb, 0xff, 0x6e, + 0x4e, 0xee, 0x4e, 0x31, + ], + }, + TestVector { + sk: [ + 0x23, 0x6c, 0x29, 0xaf, 0x39, 0x23, 0x10, 0x17, 0x56, 0xd9, 0xfa, 0x4b, 0xd0, 0xf7, + 0xd2, 0xdd, 0xaa, 0xcb, 0x6b, 0x0f, 0x86, 0xa2, 0x65, 0x8e, 0x0a, 0x07, 0xa0, 0x5a, + 0xc5, 0xb9, 0x50, 0x05, + ], + ask: [ + 0xb4, 0xde, 0xd9, 0x0d, 0x62, 0x11, 0x7f, 0x18, 0xf3, 0xdd, 0x5f, 0xdb, 0x22, 0x23, + 0x8a, 0x35, 0xca, 0x37, 0xc4, 0x0f, 0xee, 0xc8, 0x45, 0xce, 0x5f, 0xc2, 0x7f, 0xe8, + 0xbc, 0xa5, 0xef, 0x0f, + ], + ak: [ + 0x4e, 0xfd, 0x5a, 0x2e, 0xf1, 0xff, 0xa9, 0x9a, 0x0f, 0xf6, 0x2b, 0x76, 0x7d, 0x44, + 0xb3, 0x65, 0x1f, 0xfa, 0x1c, 0x69, 0x69, 0x15, 0xac, 0x00, 0xa2, 0x5e, 0xa3, 0xac, + 0x7d, 0xff, 0x99, 0x01, + ], + nk: [ + 0x02, 0xab, 0x99, 0x5c, 0xe9, 0x8f, 0x63, 0x02, 0x5f, 0xb6, 0x24, 0x28, 0xa0, 0xfb, + 0xf5, 0x2f, 0x25, 0x22, 0xe6, 0xa2, 0x72, 0x61, 0x07, 0x8a, 0x9f, 0x4d, 0x6a, 0x36, + 0xa1, 0xc0, 0x5d, 0x39, + ], + rivk: [ + 0xd9, 0x84, 0x0d, 0x0b, 0xd8, 0x95, 0x20, 0xab, 0xbc, 0xa7, 0xf1, 0x0b, 0xe6, 0xeb, + 0xa3, 0x66, 0xf8, 0x6e, 0xc3, 0xb7, 0x8d, 0xbd, 0xf1, 0xeb, 0xfe, 0x20, 0xd9, 0x95, + 0x12, 0xaf, 0x15, 0x15, + ], + ivk: [ + 0x58, 0xf5, 0xbb, 0x5c, 0x32, 0x31, 0x15, 0x25, 0x29, 0x42, 0x3b, 0x67, 0xfa, 0x43, + 0x28, 0x79, 0x11, 0x26, 0x35, 0xcd, 0xa0, 0xda, 0x2e, 0xc2, 0x41, 0x9c, 0x6f, 0xe9, + 0x1e, 0xa4, 0x8d, 0x24, + ], + ovk: [ + 0x78, 0xf5, 0xd3, 0x48, 0x67, 0x2e, 0x8d, 0x20, 0x9c, 0x41, 0xb7, 0x83, 0xf8, 0xca, + 0x14, 0xa7, 0x7b, 0x3e, 0xa3, 0xe6, 0x00, 0x4c, 0xa4, 0xe0, 0xc2, 0x5a, 0xa4, 0x45, + 0x63, 0x98, 0x1d, 0xcb, + ], + dk: [ + 0x5d, 0x7f, 0xe3, 0x96, 0xbb, 0xfd, 0x22, 0x67, 0xac, 0xa7, 0x11, 0xab, 0x5b, 0x3e, + 0x1f, 0x02, 0x4f, 0x49, 0x11, 0xf3, 0xa1, 0x81, 0x73, 0x2f, 0x13, 0x22, 0xa1, 0x59, + 0x2f, 0x9e, 0x0e, 0xbe, + ], + default_d: [ + 0x2f, 0xbe, 0x4b, 0x4b, 0x1e, 0xdf, 0xf3, 0x31, 0x23, 0xce, 0x65, + ], + default_pk_d: [ + 0xeb, 0x2c, 0x6f, 0xee, 0x34, 0x1e, 0xad, 0xe0, 0x7d, 0x74, 0x87, 0x99, 0x7a, 0xa7, + 0x23, 0x69, 0x7d, 0x05, 0xe6, 0x29, 0x60, 0xdf, 0x37, 0x9c, 0x9e, 0x4a, 0x8d, 0x47, + 0x6d, 0xfa, 0xc5, 0xbf, + ], + internal_rivk: [ + 0x66, 0x3b, 0x67, 0xd3, 0xac, 0x15, 0x99, 0x27, 0xf0, 0x6e, 0x6c, 0x8d, 0xab, 0x80, + 0xa5, 0x89, 0x67, 0xc5, 0x45, 0xda, 0xac, 0x3d, 0x98, 0x72, 0x9a, 0x0b, 0xcc, 0x41, + 0xfd, 0x53, 0x6d, 0x2b, + ], + internal_ivk: [ + 0xaa, 0x6a, 0xcc, 0x8a, 0x7a, 0xa9, 0xa8, 0x05, 0x20, 0x04, 0xff, 0x93, 0x83, 0x3f, + 0x4a, 0xbb, 0x15, 0x3b, 0x45, 0x79, 0x7f, 0xd9, 0x07, 0xe3, 0x05, 0xc8, 0x92, 0x7b, + 0xb0, 0x37, 0x82, 0x20, + ], + internal_ovk: [ + 0xbf, 0xd1, 0x09, 0x67, 0x27, 0xb6, 0xd5, 0xa2, 0xe1, 0x7a, 0xcb, 0xc5, 0xb2, 0x46, + 0x80, 0xcb, 0x88, 0xdb, 0x34, 0xcf, 0x53, 0xb6, 0xb7, 0x46, 0x6c, 0xef, 0x67, 0x6f, + 0xb3, 0xf7, 0x22, 0x29, + ], + internal_dk: [ + 0x47, 0xbd, 0xf9, 0x27, 0x1e, 0xcc, 0x50, 0xe7, 0x05, 0xc5, 0x21, 0xcd, 0x0d, 0xbb, + 0xaf, 0x1c, 0x4e, 0x6a, 0x96, 0x2f, 0xc9, 0x14, 0x13, 0x48, 0xb8, 0xbd, 0x7b, 0x35, + 0xc4, 0x00, 0x1e, 0x62, + ], + note_v: 15425828902564319772, + note_rho: [ + 0x73, 0x6c, 0x23, 0x35, 0x7c, 0x85, 0xf4, 0x57, 0x91, 0xe1, 0x70, 0x80, 0x29, 0xd9, + 0x82, 0x4d, 0x90, 0x70, 0x46, 0x07, 0xf3, 0x87, 0xa0, 0x3e, 0x49, 0xbf, 0x98, 0x36, + 0x57, 0x44, 0x31, 0x34, + ], + note_rseed: [ + 0x5a, 0x78, 0x77, 0xef, 0xaa, 0x8a, 0x08, 0xe7, 0x30, 0x81, 0xef, 0x8d, 0x62, 0xcb, + 0x78, 0x0a, 0xb6, 0x88, 0x3a, 0x50, 0xa0, 0xd4, 0x70, 0x19, 0x0d, 0xfb, 0xa1, 0x0a, + 0x85, 0x7f, 0x82, 0x84, + ], + note_cmx: [ + 0xc8, 0x52, 0x8f, 0x72, 0x2c, 0xd3, 0xe4, 0x7d, 0xc9, 0x9e, 0x1e, 0x38, 0x80, 0x56, + 0x37, 0x08, 0x15, 0xa9, 0xd0, 0x37, 0x97, 0x3d, 0x85, 0xca, 0xc7, 0xea, 0x38, 0xb5, + 0xa7, 0x16, 0xfa, 0x3b, + ], + note_nf: [ + 0xac, 0xc2, 0xed, 0x2c, 0x7e, 0x3b, 0x19, 0x7e, 0x5c, 0xdb, 0x4a, 0x57, 0x63, 0x57, + 0xd5, 0xf1, 0x35, 0x39, 0x16, 0x26, 0xc7, 0xa8, 0x25, 0xd1, 0x0a, 0xa2, 0x60, 0xae, + 0x0b, 0x95, 0x81, 0x28, + ], + }, + TestVector { + sk: [ + 0x2d, 0x38, 0x25, 0xb3, 0xd6, 0xda, 0x05, 0x73, 0xd3, 0x16, 0xeb, 0x16, 0x0d, 0xc0, + 0xb7, 0x16, 0xc4, 0x8f, 0xbd, 0x46, 0x7f, 0x75, 0xb7, 0x80, 0x14, 0x9a, 0xe8, 0x80, + 0x8f, 0x4e, 0x68, 0xf5, + ], + ask: [ + 0x2d, 0x6e, 0x97, 0x3e, 0x17, 0x54, 0xd4, 0x17, 0x87, 0x93, 0x4c, 0x34, 0x55, 0x8c, + 0xfe, 0x99, 0x38, 0x44, 0x19, 0x99, 0x72, 0xd9, 0xa6, 0x34, 0x8b, 0x7a, 0x3d, 0xad, + 0xfc, 0xb6, 0x77, 0x2a, + ], + ak: [ + 0x76, 0x21, 0x59, 0xa4, 0x14, 0xf5, 0x74, 0xb5, 0x39, 0x75, 0x0f, 0x22, 0xc8, 0x86, + 0x3b, 0x02, 0xd2, 0x5c, 0xc1, 0x0c, 0x90, 0x71, 0xfc, 0x02, 0x19, 0xe9, 0x7f, 0x93, + 0x92, 0xd0, 0x67, 0x0c, + ], + nk: [ + 0x25, 0x91, 0xed, 0xf7, 0xef, 0x4c, 0xf2, 0x18, 0x4c, 0x34, 0xbe, 0x93, 0xfc, 0xf6, + 0x12, 0x91, 0x50, 0x42, 0xf1, 0x5a, 0xb5, 0x08, 0x4b, 0x14, 0xe1, 0x66, 0x79, 0x5b, + 0x09, 0xce, 0xa1, 0x33, + ], + rivk: [ + 0x75, 0x8f, 0xb2, 0x50, 0xdd, 0x29, 0x50, 0xe5, 0xd2, 0xb2, 0xee, 0xd7, 0xff, 0xcf, + 0x94, 0xae, 0x67, 0xcd, 0xe1, 0x25, 0xb9, 0x5b, 0x47, 0x9e, 0x23, 0x77, 0x81, 0x3a, + 0x85, 0xa0, 0x3d, 0x2f, + ], + ivk: [ + 0x6e, 0xa4, 0x36, 0x3c, 0xb2, 0xdf, 0x62, 0xb1, 0x0d, 0xa1, 0x30, 0x8a, 0x0b, 0x96, + 0x79, 0xbd, 0x0f, 0x74, 0x95, 0xff, 0xe7, 0xd4, 0xe2, 0x61, 0x8f, 0x54, 0xdf, 0x9b, + 0x67, 0x0c, 0x33, 0x16, + ], + ovk: [ + 0xa6, 0x3c, 0xbc, 0xd3, 0x1b, 0xa1, 0x36, 0xd8, 0x3b, 0x8f, 0x1e, 0x88, 0xef, 0xb6, + 0x00, 0x55, 0xef, 0x6f, 0x98, 0x25, 0x2d, 0xdb, 0xd7, 0x5f, 0x62, 0x5f, 0x44, 0xdc, + 0xb6, 0x63, 0x2c, 0x72, + ], + dk: [ + 0x02, 0xf0, 0x74, 0x08, 0xf3, 0x3e, 0x87, 0x12, 0xe4, 0xc9, 0xec, 0x42, 0xde, 0x56, + 0x04, 0x20, 0x01, 0x09, 0x86, 0x17, 0x24, 0xd3, 0x3e, 0xb6, 0x36, 0x8b, 0x70, 0xf6, + 0x5e, 0x0a, 0x16, 0x21, + ], + default_d: [ + 0x08, 0xdf, 0x1d, 0x4b, 0x45, 0xc6, 0x73, 0xa4, 0x59, 0xff, 0x58, + ], + default_pk_d: [ + 0x26, 0x8c, 0xc2, 0x4b, 0x38, 0xa6, 0x28, 0x80, 0xb6, 0xee, 0x3c, 0xbc, 0xb8, 0x5a, + 0x71, 0x2f, 0xa6, 0x86, 0xcf, 0xfc, 0xa6, 0xdb, 0x2f, 0xee, 0xc5, 0xf3, 0xc3, 0x56, + 0x6f, 0x84, 0x21, 0x8f, + ], + internal_rivk: [ + 0x00, 0x57, 0x37, 0x74, 0x61, 0xf2, 0x19, 0x1a, 0x7e, 0xca, 0x2b, 0x02, 0xed, 0xfd, + 0x9c, 0x9b, 0x44, 0x84, 0x5d, 0x2f, 0xdb, 0x8a, 0x99, 0xc7, 0x61, 0x20, 0x52, 0x7e, + 0x53, 0xdd, 0x09, 0x17, + ], + internal_ivk: [ + 0x81, 0x62, 0x97, 0x35, 0x09, 0x47, 0x0c, 0x44, 0x24, 0x19, 0x11, 0xc0, 0x6d, 0x04, + 0x02, 0x9f, 0x5f, 0x1f, 0x0e, 0x98, 0x51, 0xe3, 0x2b, 0xa6, 0x9b, 0x18, 0xe5, 0x81, + 0x05, 0xdd, 0x4e, 0x2b, + ], + internal_ovk: [ + 0x69, 0x47, 0x91, 0x0e, 0xa3, 0xe7, 0x33, 0x1d, 0x15, 0xa7, 0x1a, 0x64, 0xb2, 0xa8, + 0xc1, 0x6a, 0x6d, 0xa0, 0x8e, 0x6f, 0x34, 0x29, 0xdb, 0x26, 0xf9, 0x37, 0xab, 0x9d, + 0xd1, 0x33, 0xb5, 0xfd, + ], + internal_dk: [ + 0x32, 0x7f, 0x76, 0xcc, 0x42, 0x44, 0xce, 0x0a, 0x91, 0x48, 0xa3, 0x5a, 0x7e, 0xa6, + 0x22, 0x8d, 0x44, 0x1c, 0x4c, 0x7b, 0x05, 0xbd, 0x02, 0x65, 0x7c, 0xea, 0xab, 0xb6, + 0x09, 0xbc, 0x3c, 0x52, + ], + note_v: 12606128263924155660, + note_rho: [ + 0x12, 0xf6, 0xb0, 0x2f, 0xe8, 0x06, 0xb9, 0x45, 0x69, 0xcd, 0x40, 0x59, 0xf3, 0x96, + 0xbf, 0x29, 0xb9, 0x9d, 0x0a, 0x40, 0xe5, 0xe1, 0x71, 0x1c, 0xa9, 0x44, 0xf7, 0x2d, + 0x43, 0x6a, 0x10, 0x2f, + ], + note_rseed: [ + 0xca, 0x4b, 0x97, 0x69, 0x3d, 0xa0, 0xb0, 0x86, 0xfe, 0x9d, 0x2e, 0x71, 0x62, 0x47, + 0x0d, 0x02, 0xe0, 0xf0, 0x5d, 0x4b, 0xec, 0x95, 0x12, 0xbf, 0xb3, 0xf3, 0x83, 0x27, + 0x29, 0x6e, 0xfa, 0xa7, + ], + note_cmx: [ + 0x6a, 0x11, 0x95, 0xaa, 0x05, 0x36, 0xf6, 0x0e, 0xcf, 0xae, 0xcb, 0xdf, 0x53, 0x74, + 0xe4, 0x94, 0xea, 0x07, 0x2a, 0x2b, 0x86, 0x7b, 0x5f, 0x69, 0x43, 0x40, 0xc9, 0x6f, + 0xc3, 0x70, 0xa9, 0x10, + ], + note_nf: [ + 0xb0, 0xf1, 0x60, 0x2a, 0x2b, 0x1a, 0xf2, 0xfc, 0x55, 0xf1, 0x59, 0x50, 0xa6, 0x83, + 0x83, 0x85, 0xe5, 0xe3, 0x9f, 0xec, 0xfd, 0x05, 0xcc, 0xec, 0x79, 0x9b, 0x75, 0xc6, + 0x5c, 0x8d, 0xa2, 0x35, + ], + }, + TestVector { + sk: [ + 0x43, 0x28, 0xb1, 0x18, 0xc2, 0x74, 0x02, 0xc7, 0x0c, 0x3a, 0x90, 0xb4, 0x9a, 0xd4, + 0xbb, 0xc6, 0x8e, 0x37, 0xc0, 0xaa, 0x7d, 0x9b, 0x3f, 0xe1, 0x77, 0x99, 0xd7, 0x3b, + 0x84, 0x1e, 0x75, 0x17, + ], + ask: [ + 0x28, 0xdc, 0x45, 0xf1, 0x15, 0x44, 0x42, 0x5c, 0x1b, 0xef, 0x86, 0x61, 0xda, 0x11, + 0x15, 0x5f, 0xdb, 0xb7, 0xe3, 0xbc, 0xfc, 0x0f, 0x0d, 0x49, 0xe6, 0xf1, 0x31, 0xe7, + 0xc0, 0x9d, 0x35, 0x2f, + ], + ak: [ + 0x0d, 0x21, 0x1a, 0x90, 0x60, 0xfb, 0xaa, 0x66, 0x4e, 0x41, 0xa7, 0x34, 0xad, 0x1d, + 0x8d, 0x4b, 0x02, 0x5f, 0x8c, 0xc1, 0x60, 0xe1, 0xf4, 0xe9, 0x5f, 0x0a, 0x85, 0x3e, + 0xbc, 0x41, 0x6a, 0x2b, + ], + nk: [ + 0x3e, 0x88, 0xf2, 0x07, 0x1f, 0xd9, 0xa2, 0xbb, 0x26, 0xcd, 0xa2, 0xea, 0x85, 0x6a, + 0xa0, 0xfb, 0x3a, 0x80, 0xa8, 0x7d, 0x2f, 0xb6, 0x13, 0x6f, 0xab, 0x85, 0xe3, 0x6c, + 0x5b, 0x38, 0xd8, 0x24, + ], + rivk: [ + 0x2c, 0x37, 0x38, 0x82, 0xc4, 0x08, 0xcd, 0x5f, 0xd4, 0x82, 0xa0, 0xc9, 0x81, 0x6f, + 0xc3, 0x22, 0x03, 0xa1, 0x0f, 0xbf, 0xce, 0x0e, 0x20, 0x0c, 0xcf, 0xd9, 0xee, 0x30, + 0x7c, 0x5e, 0x12, 0x24, + ], + ivk: [ + 0xbb, 0x9e, 0x20, 0xb2, 0x99, 0x1c, 0x99, 0x6d, 0xa2, 0x1e, 0x3e, 0xcd, 0x39, 0xfb, + 0x7b, 0x3a, 0xa2, 0xba, 0xbc, 0x6b, 0xde, 0x18, 0x6f, 0x7d, 0xd8, 0xa8, 0x75, 0xd1, + 0x0c, 0x51, 0xa4, 0x30, + ], + ovk: [ + 0x93, 0x21, 0x83, 0x8a, 0x2d, 0xb7, 0xf1, 0x68, 0xf0, 0xce, 0x77, 0xc4, 0x5b, 0x21, + 0x1f, 0xfb, 0xb9, 0xb3, 0x65, 0xe8, 0x5e, 0x67, 0x31, 0xd9, 0x09, 0x70, 0x05, 0x53, + 0xde, 0x49, 0x2b, 0x28, + ], + dk: [ + 0x3d, 0xf5, 0x83, 0x36, 0x1b, 0x33, 0x38, 0xbb, 0x68, 0x15, 0xf8, 0x58, 0x72, 0xe3, + 0x9f, 0x04, 0xdf, 0x50, 0x08, 0x52, 0x48, 0x84, 0xaf, 0x0f, 0x8c, 0x55, 0x97, 0x16, + 0xfc, 0xb1, 0x49, 0x58, + ], + default_d: [ + 0x4c, 0x40, 0x64, 0xc4, 0x7a, 0x5c, 0xa6, 0xe7, 0x5d, 0x46, 0x44, + ], + default_pk_d: [ + 0xf5, 0x17, 0x17, 0x4b, 0xe2, 0x58, 0x92, 0x32, 0x78, 0xcf, 0x45, 0x89, 0x08, 0xc0, + 0x73, 0x56, 0x49, 0xf1, 0x89, 0x9d, 0xb9, 0x9c, 0x3b, 0xa9, 0x00, 0x3f, 0x4b, 0xa3, + 0x0a, 0xb0, 0xd2, 0x10, + ], + internal_rivk: [ + 0xd8, 0x09, 0xa2, 0xa3, 0xd3, 0x6e, 0xf9, 0x6d, 0xc5, 0x63, 0xf8, 0xa7, 0xb4, 0x13, + 0x90, 0x8b, 0xfd, 0xff, 0xc0, 0x6d, 0x51, 0x06, 0x48, 0x49, 0xef, 0x88, 0x6b, 0x6a, + 0x1d, 0x1d, 0x7c, 0x3f, + ], + internal_ivk: [ + 0xae, 0x18, 0xa9, 0xa4, 0x25, 0x12, 0x38, 0x7f, 0x92, 0xee, 0xc1, 0x34, 0xbd, 0xe5, + 0x28, 0xb6, 0x2b, 0x61, 0xe9, 0x95, 0x6f, 0x9f, 0xb3, 0xc7, 0xd6, 0x5e, 0x19, 0x45, + 0xda, 0x34, 0xf3, 0x09, + ], + internal_ovk: [ + 0x67, 0xa6, 0xd8, 0x4a, 0x81, 0x66, 0x32, 0x6c, 0xf3, 0x4c, 0xed, 0xff, 0xd4, 0x29, + 0x8a, 0x13, 0xb8, 0x01, 0xcb, 0x12, 0x2d, 0x5f, 0x33, 0x29, 0xa1, 0x59, 0x9f, 0x31, + 0xea, 0xdf, 0x5b, 0x17, + ], + internal_dk: [ + 0xa0, 0x07, 0x3a, 0xdd, 0xfb, 0x89, 0xc9, 0xcc, 0x34, 0x9e, 0xad, 0x5a, 0x92, 0xb7, + 0xd4, 0x17, 0xfe, 0x0e, 0x61, 0xf4, 0xa7, 0xe5, 0x66, 0x69, 0xc9, 0x07, 0xd4, 0x17, + 0x46, 0xc0, 0x72, 0xb9, + ], + note_v: 625536973899669523, + note_rho: [ + 0x03, 0xfd, 0x69, 0x44, 0x2e, 0xb7, 0x68, 0x1e, 0xc2, 0xa0, 0x56, 0x00, 0x05, 0x4e, + 0x92, 0xee, 0xd5, 0x55, 0x02, 0x8f, 0x21, 0xb6, 0xa1, 0x55, 0x26, 0x8a, 0x2d, 0xd6, + 0x64, 0x0a, 0x69, 0x30, + ], + note_rseed: [ + 0x1a, 0x52, 0xa3, 0x8d, 0x4d, 0x9f, 0x9f, 0x95, 0x7a, 0xe3, 0x5a, 0xf7, 0x16, 0x71, + 0x18, 0x14, 0x1c, 0xe4, 0xc9, 0xbe, 0x0a, 0x6a, 0x49, 0x2f, 0xe7, 0x9f, 0x15, 0x81, + 0xa1, 0x55, 0xfa, 0x3a, + ], + note_cmx: [ + 0xf7, 0x0e, 0xbf, 0x0f, 0x5e, 0xe5, 0xda, 0x6c, 0x6c, 0xde, 0xff, 0x8f, 0xec, 0x2f, + 0x8e, 0xed, 0x65, 0xc8, 0x8e, 0x67, 0x55, 0xda, 0xf1, 0x14, 0xd5, 0x54, 0xaf, 0x19, + 0x67, 0xa7, 0xf4, 0x0a, + ], + note_nf: [ + 0x95, 0x64, 0x97, 0x28, 0x46, 0x5e, 0x68, 0x2a, 0xc0, 0x57, 0xad, 0x87, 0x62, 0x94, + 0xd7, 0x00, 0xc2, 0x7f, 0xeb, 0xa2, 0xf7, 0x50, 0x92, 0x2f, 0x95, 0x51, 0x85, 0x70, + 0x62, 0x61, 0xc3, 0x0c, + ], + }, + ] +} diff --git a/zk-crates/zk-headstash/src/test_vectors/merkle_path.rs b/zk-crates/zk-headstash/src/test_vectors/merkle_path.rs new file mode 100644 index 0000000..dc3a26f --- /dev/null +++ b/zk-crates/zk-headstash/src/test_vectors/merkle_path.rs @@ -0,0 +1,7101 @@ +use alloc::vec::Vec; + +pub(crate) struct TestVector { + pub(crate) leaves: [[u8; 32]; 16], + pub(crate) paths: [[[u8; 32]; 4]; 16], + pub(crate) root: [u8; 32], +} + +pub(crate) fn test_vectors() -> Vec { + // From https://github.com/zcash-hackworks/zcash-test-vectors/blob/master/orchard_merkle_tree.py + vec![ + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xf7, 0x9d, 0x1e, 0x46, 0x50, 0x49, 0x33, 0xb3, 0x24, 0x5f, 0x4f, 0xb1, + 0x60, 0x3d, 0x6a, 0x29, 0x62, 0x58, 0x2d, 0xe0, 0x8e, 0x57, 0xf8, 0x6c, + 0xfb, 0xce, 0x7b, 0xde, 0xe1, 0x46, 0xe0, 0x20, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xf7, 0x9d, 0x1e, 0x46, 0x50, 0x49, 0x33, 0xb3, 0x24, 0x5f, 0x4f, 0xb1, + 0x60, 0x3d, 0x6a, 0x29, 0x62, 0x58, 0x2d, 0xe0, 0x8e, 0x57, 0xf8, 0x6c, + 0xfb, 0xce, 0x7b, 0xde, 0xe1, 0x46, 0xe0, 0x20, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x9e, 0xd3, 0x91, 0x18, 0x2c, 0x69, 0xa6, 0xe1, 0xcb, 0x93, 0x60, 0x28, + 0xb2, 0x99, 0x1e, 0x0d, 0x4c, 0x62, 0x58, 0x83, 0x84, 0xaf, 0x46, 0xc8, + 0x97, 0xd3, 0x31, 0x29, 0x3d, 0x55, 0x06, 0x1c, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x9e, 0xd3, 0x91, 0x18, 0x2c, 0x69, 0xa6, 0xe1, 0xcb, 0x93, 0x60, 0x28, + 0xb2, 0x99, 0x1e, 0x0d, 0x4c, 0x62, 0x58, 0x83, 0x84, 0xaf, 0x46, 0xc8, + 0x97, 0xd3, 0x31, 0x29, 0x3d, 0x55, 0x06, 0x1c, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x9e, 0xd3, 0x91, 0x18, 0x2c, 0x69, 0xa6, 0xe1, 0xcb, 0x93, 0x60, 0x28, + 0xb2, 0x99, 0x1e, 0x0d, 0x4c, 0x62, 0x58, 0x83, 0x84, 0xaf, 0x46, 0xc8, + 0x97, 0xd3, 0x31, 0x29, 0x3d, 0x55, 0x06, 0x1c, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x9e, 0xd3, 0x91, 0x18, 0x2c, 0x69, 0xa6, 0xe1, 0xcb, 0x93, 0x60, 0x28, + 0xb2, 0x99, 0x1e, 0x0d, 0x4c, 0x62, 0x58, 0x83, 0x84, 0xaf, 0x46, 0xc8, + 0x97, 0xd3, 0x31, 0x29, 0x3d, 0x55, 0x06, 0x1c, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x6e, 0x4b, 0x74, 0x94, 0x4a, 0xcb, 0xf8, 0x20, 0x96, 0x0e, 0xbc, 0x4d, + 0x36, 0x6d, 0xe6, 0x0b, 0x1b, 0x7e, 0x74, 0x9a, 0xb3, 0xa3, 0x8e, 0x71, + 0x61, 0x7e, 0x08, 0x71, 0x14, 0xab, 0x2f, 0x2d, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x6e, 0x4b, 0x74, 0x94, 0x4a, 0xcb, 0xf8, 0x20, 0x96, 0x0e, 0xbc, 0x4d, + 0x36, 0x6d, 0xe6, 0x0b, 0x1b, 0x7e, 0x74, 0x9a, 0xb3, 0xa3, 0x8e, 0x71, + 0x61, 0x7e, 0x08, 0x71, 0x14, 0xab, 0x2f, 0x2d, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x6e, 0x4b, 0x74, 0x94, 0x4a, 0xcb, 0xf8, 0x20, 0x96, 0x0e, 0xbc, 0x4d, + 0x36, 0x6d, 0xe6, 0x0b, 0x1b, 0x7e, 0x74, 0x9a, 0xb3, 0xa3, 0x8e, 0x71, + 0x61, 0x7e, 0x08, 0x71, 0x14, 0xab, 0x2f, 0x2d, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x6e, 0x4b, 0x74, 0x94, 0x4a, 0xcb, 0xf8, 0x20, 0x96, 0x0e, 0xbc, 0x4d, + 0x36, 0x6d, 0xe6, 0x0b, 0x1b, 0x7e, 0x74, 0x9a, 0xb3, 0xa3, 0x8e, 0x71, + 0x61, 0x7e, 0x08, 0x71, 0x14, 0xab, 0x2f, 0x2d, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x6e, 0x4b, 0x74, 0x94, 0x4a, 0xcb, 0xf8, 0x20, 0x96, 0x0e, 0xbc, 0x4d, + 0x36, 0x6d, 0xe6, 0x0b, 0x1b, 0x7e, 0x74, 0x9a, 0xb3, 0xa3, 0x8e, 0x71, + 0x61, 0x7e, 0x08, 0x71, 0x14, 0xab, 0x2f, 0x2d, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x6e, 0x4b, 0x74, 0x94, 0x4a, 0xcb, 0xf8, 0x20, 0x96, 0x0e, 0xbc, 0x4d, + 0x36, 0x6d, 0xe6, 0x0b, 0x1b, 0x7e, 0x74, 0x9a, 0xb3, 0xa3, 0x8e, 0x71, + 0x61, 0x7e, 0x08, 0x71, 0x14, 0xab, 0x2f, 0x2d, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x6e, 0x4b, 0x74, 0x94, 0x4a, 0xcb, 0xf8, 0x20, 0x96, 0x0e, 0xbc, 0x4d, + 0x36, 0x6d, 0xe6, 0x0b, 0x1b, 0x7e, 0x74, 0x9a, 0xb3, 0xa3, 0x8e, 0x71, + 0x61, 0x7e, 0x08, 0x71, 0x14, 0xab, 0x2f, 0x2d, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x6e, 0x4b, 0x74, 0x94, 0x4a, 0xcb, 0xf8, 0x20, 0x96, 0x0e, 0xbc, 0x4d, + 0x36, 0x6d, 0xe6, 0x0b, 0x1b, 0x7e, 0x74, 0x9a, 0xb3, 0xa3, 0x8e, 0x71, + 0x61, 0x7e, 0x08, 0x71, 0x14, 0xab, 0x2f, 0x2d, + ], + ], + ], + root: [ + 0x40, 0x0c, 0x4c, 0xa6, 0xae, 0xca, 0x2e, 0xcc, 0xfd, 0x6e, 0xc2, 0xc6, 0x9d, 0xbd, + 0x96, 0xfc, 0x17, 0x8d, 0x7f, 0x4e, 0xe5, 0x97, 0x61, 0x6f, 0xc9, 0x58, 0xed, 0xbf, + 0x69, 0x3c, 0x61, 0x0d, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x10, 0xa2, 0x10, 0xa3, 0xe8, 0xa0, 0xd2, 0x77, 0xa4, 0x93, 0x69, 0x8d, + 0xac, 0xca, 0x21, 0x62, 0x37, 0xe3, 0xe2, 0xba, 0x61, 0x38, 0xc1, 0x08, + 0x33, 0x59, 0x4b, 0x3a, 0xdf, 0xfc, 0x74, 0x11, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x10, 0xa2, 0x10, 0xa3, 0xe8, 0xa0, 0xd2, 0x77, 0xa4, 0x93, 0x69, 0x8d, + 0xac, 0xca, 0x21, 0x62, 0x37, 0xe3, 0xe2, 0xba, 0x61, 0x38, 0xc1, 0x08, + 0x33, 0x59, 0x4b, 0x3a, 0xdf, 0xfc, 0x74, 0x11, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x10, 0xa2, 0x10, 0xa3, 0xe8, 0xa0, 0xd2, 0x77, 0xa4, 0x93, 0x69, 0x8d, + 0xac, 0xca, 0x21, 0x62, 0x37, 0xe3, 0xe2, 0xba, 0x61, 0x38, 0xc1, 0x08, + 0x33, 0x59, 0x4b, 0x3a, 0xdf, 0xfc, 0x74, 0x11, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x10, 0xa2, 0x10, 0xa3, 0xe8, 0xa0, 0xd2, 0x77, 0xa4, 0x93, 0x69, 0x8d, + 0xac, 0xca, 0x21, 0x62, 0x37, 0xe3, 0xe2, 0xba, 0x61, 0x38, 0xc1, 0x08, + 0x33, 0x59, 0x4b, 0x3a, 0xdf, 0xfc, 0x74, 0x11, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x59, 0x91, 0x17, 0x2c, 0x89, 0x30, 0xbf, 0x09, 0xeb, 0x10, 0x85, 0xd9, + 0xf5, 0xed, 0x1f, 0xd5, 0x4a, 0xc7, 0xec, 0xb2, 0x95, 0x98, 0x64, 0x21, + 0x26, 0x09, 0x8e, 0x87, 0x04, 0xeb, 0x02, 0x2e, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x59, 0x91, 0x17, 0x2c, 0x89, 0x30, 0xbf, 0x09, 0xeb, 0x10, 0x85, 0xd9, + 0xf5, 0xed, 0x1f, 0xd5, 0x4a, 0xc7, 0xec, 0xb2, 0x95, 0x98, 0x64, 0x21, + 0x26, 0x09, 0x8e, 0x87, 0x04, 0xeb, 0x02, 0x2e, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x59, 0x91, 0x17, 0x2c, 0x89, 0x30, 0xbf, 0x09, 0xeb, 0x10, 0x85, 0xd9, + 0xf5, 0xed, 0x1f, 0xd5, 0x4a, 0xc7, 0xec, 0xb2, 0x95, 0x98, 0x64, 0x21, + 0x26, 0x09, 0x8e, 0x87, 0x04, 0xeb, 0x02, 0x2e, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x59, 0x91, 0x17, 0x2c, 0x89, 0x30, 0xbf, 0x09, 0xeb, 0x10, 0x85, 0xd9, + 0xf5, 0xed, 0x1f, 0xd5, 0x4a, 0xc7, 0xec, 0xb2, 0x95, 0x98, 0x64, 0x21, + 0x26, 0x09, 0x8e, 0x87, 0x04, 0xeb, 0x02, 0x2e, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x59, 0x91, 0x17, 0x2c, 0x89, 0x30, 0xbf, 0x09, 0xeb, 0x10, 0x85, 0xd9, + 0xf5, 0xed, 0x1f, 0xd5, 0x4a, 0xc7, 0xec, 0xb2, 0x95, 0x98, 0x64, 0x21, + 0x26, 0x09, 0x8e, 0x87, 0x04, 0xeb, 0x02, 0x2e, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x59, 0x91, 0x17, 0x2c, 0x89, 0x30, 0xbf, 0x09, 0xeb, 0x10, 0x85, 0xd9, + 0xf5, 0xed, 0x1f, 0xd5, 0x4a, 0xc7, 0xec, 0xb2, 0x95, 0x98, 0x64, 0x21, + 0x26, 0x09, 0x8e, 0x87, 0x04, 0xeb, 0x02, 0x2e, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x59, 0x91, 0x17, 0x2c, 0x89, 0x30, 0xbf, 0x09, 0xeb, 0x10, 0x85, 0xd9, + 0xf5, 0xed, 0x1f, 0xd5, 0x4a, 0xc7, 0xec, 0xb2, 0x95, 0x98, 0x64, 0x21, + 0x26, 0x09, 0x8e, 0x87, 0x04, 0xeb, 0x02, 0x2e, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x59, 0x91, 0x17, 0x2c, 0x89, 0x30, 0xbf, 0x09, 0xeb, 0x10, 0x85, 0xd9, + 0xf5, 0xed, 0x1f, 0xd5, 0x4a, 0xc7, 0xec, 0xb2, 0x95, 0x98, 0x64, 0x21, + 0x26, 0x09, 0x8e, 0x87, 0x04, 0xeb, 0x02, 0x2e, + ], + ], + ], + root: [ + 0x5e, 0xbd, 0xe4, 0xff, 0x9b, 0x44, 0xce, 0xc2, 0x4c, 0x93, 0x88, 0x05, 0xd8, 0xff, + 0x83, 0x78, 0x54, 0x3e, 0x0d, 0x37, 0xad, 0x43, 0xca, 0xad, 0xf2, 0xf0, 0xb9, 0x10, + 0xcd, 0x63, 0x83, 0x28, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xf9, 0xee, 0x61, 0xe7, 0x95, 0xa2, 0xdf, 0x16, 0x31, 0xf5, 0x27, 0x1b, + 0x10, 0x11, 0x8f, 0xee, 0x3b, 0x48, 0x90, 0x1a, 0xa4, 0x79, 0xbe, 0x24, + 0x9f, 0x42, 0x83, 0x51, 0xed, 0x60, 0xbf, 0x37, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0xf9, 0xee, 0x61, 0xe7, 0x95, 0xa2, 0xdf, 0x16, 0x31, 0xf5, 0x27, 0x1b, + 0x10, 0x11, 0x8f, 0xee, 0x3b, 0x48, 0x90, 0x1a, 0xa4, 0x79, 0xbe, 0x24, + 0x9f, 0x42, 0x83, 0x51, 0xed, 0x60, 0xbf, 0x37, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xd8, 0x46, 0x86, 0x1d, 0xf6, 0xd3, 0x52, 0x51, 0x6c, 0xf9, 0x30, 0xb9, + 0x23, 0xfd, 0xae, 0x2e, 0x7d, 0xed, 0x15, 0xed, 0x0e, 0x5b, 0xc7, 0xb6, + 0x60, 0x4d, 0x50, 0x3e, 0xc2, 0xb2, 0x6a, 0x03, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xd8, 0x46, 0x86, 0x1d, 0xf6, 0xd3, 0x52, 0x51, 0x6c, 0xf9, 0x30, 0xb9, + 0x23, 0xfd, 0xae, 0x2e, 0x7d, 0xed, 0x15, 0xed, 0x0e, 0x5b, 0xc7, 0xb6, + 0x60, 0x4d, 0x50, 0x3e, 0xc2, 0xb2, 0x6a, 0x03, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xd8, 0x46, 0x86, 0x1d, 0xf6, 0xd3, 0x52, 0x51, 0x6c, 0xf9, 0x30, 0xb9, + 0x23, 0xfd, 0xae, 0x2e, 0x7d, 0xed, 0x15, 0xed, 0x0e, 0x5b, 0xc7, 0xb6, + 0x60, 0x4d, 0x50, 0x3e, 0xc2, 0xb2, 0x6a, 0x03, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xd8, 0x46, 0x86, 0x1d, 0xf6, 0xd3, 0x52, 0x51, 0x6c, 0xf9, 0x30, 0xb9, + 0x23, 0xfd, 0xae, 0x2e, 0x7d, 0xed, 0x15, 0xed, 0x0e, 0x5b, 0xc7, 0xb6, + 0x60, 0x4d, 0x50, 0x3e, 0xc2, 0xb2, 0x6a, 0x03, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x95, 0x3b, 0x84, 0xe4, 0x47, 0xf6, 0xa5, 0x06, 0xe4, 0x56, 0x4d, 0x1f, + 0x81, 0xe3, 0x6c, 0x10, 0x45, 0x8e, 0x68, 0x52, 0x39, 0x45, 0xf0, 0xf8, + 0x00, 0xac, 0x54, 0x95, 0xe5, 0x42, 0xbd, 0x13, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x95, 0x3b, 0x84, 0xe4, 0x47, 0xf6, 0xa5, 0x06, 0xe4, 0x56, 0x4d, 0x1f, + 0x81, 0xe3, 0x6c, 0x10, 0x45, 0x8e, 0x68, 0x52, 0x39, 0x45, 0xf0, 0xf8, + 0x00, 0xac, 0x54, 0x95, 0xe5, 0x42, 0xbd, 0x13, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x95, 0x3b, 0x84, 0xe4, 0x47, 0xf6, 0xa5, 0x06, 0xe4, 0x56, 0x4d, 0x1f, + 0x81, 0xe3, 0x6c, 0x10, 0x45, 0x8e, 0x68, 0x52, 0x39, 0x45, 0xf0, 0xf8, + 0x00, 0xac, 0x54, 0x95, 0xe5, 0x42, 0xbd, 0x13, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x95, 0x3b, 0x84, 0xe4, 0x47, 0xf6, 0xa5, 0x06, 0xe4, 0x56, 0x4d, 0x1f, + 0x81, 0xe3, 0x6c, 0x10, 0x45, 0x8e, 0x68, 0x52, 0x39, 0x45, 0xf0, 0xf8, + 0x00, 0xac, 0x54, 0x95, 0xe5, 0x42, 0xbd, 0x13, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x95, 0x3b, 0x84, 0xe4, 0x47, 0xf6, 0xa5, 0x06, 0xe4, 0x56, 0x4d, 0x1f, + 0x81, 0xe3, 0x6c, 0x10, 0x45, 0x8e, 0x68, 0x52, 0x39, 0x45, 0xf0, 0xf8, + 0x00, 0xac, 0x54, 0x95, 0xe5, 0x42, 0xbd, 0x13, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x95, 0x3b, 0x84, 0xe4, 0x47, 0xf6, 0xa5, 0x06, 0xe4, 0x56, 0x4d, 0x1f, + 0x81, 0xe3, 0x6c, 0x10, 0x45, 0x8e, 0x68, 0x52, 0x39, 0x45, 0xf0, 0xf8, + 0x00, 0xac, 0x54, 0x95, 0xe5, 0x42, 0xbd, 0x13, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x95, 0x3b, 0x84, 0xe4, 0x47, 0xf6, 0xa5, 0x06, 0xe4, 0x56, 0x4d, 0x1f, + 0x81, 0xe3, 0x6c, 0x10, 0x45, 0x8e, 0x68, 0x52, 0x39, 0x45, 0xf0, 0xf8, + 0x00, 0xac, 0x54, 0x95, 0xe5, 0x42, 0xbd, 0x13, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x95, 0x3b, 0x84, 0xe4, 0x47, 0xf6, 0xa5, 0x06, 0xe4, 0x56, 0x4d, 0x1f, + 0x81, 0xe3, 0x6c, 0x10, 0x45, 0x8e, 0x68, 0x52, 0x39, 0x45, 0xf0, 0xf8, + 0x00, 0xac, 0x54, 0x95, 0xe5, 0x42, 0xbd, 0x13, + ], + ], + ], + root: [ + 0x93, 0x30, 0x2e, 0xea, 0xe8, 0xf1, 0xb2, 0x77, 0xa1, 0x32, 0xe0, 0xbf, 0x4b, 0xcc, + 0x1c, 0x38, 0x07, 0xd7, 0x83, 0x6e, 0x6e, 0x14, 0xce, 0x9c, 0x06, 0xae, 0xfc, 0x0a, + 0xfd, 0x9e, 0xeb, 0x04, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, + 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, + 0x96, 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, + 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x94, 0xda, 0x8d, 0x59, 0x7f, 0x32, 0x64, 0x55, 0x67, 0x53, 0xef, 0x6a, + 0x33, 0x3c, 0x87, 0x24, 0x2b, 0x00, 0x45, 0x5f, 0x27, 0x2c, 0xd1, 0xa6, + 0x8b, 0x95, 0x5e, 0x29, 0xe7, 0xff, 0x7e, 0x15, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x94, 0xda, 0x8d, 0x59, 0x7f, 0x32, 0x64, 0x55, 0x67, 0x53, 0xef, 0x6a, + 0x33, 0x3c, 0x87, 0x24, 0x2b, 0x00, 0x45, 0x5f, 0x27, 0x2c, 0xd1, 0xa6, + 0x8b, 0x95, 0x5e, 0x29, 0xe7, 0xff, 0x7e, 0x15, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x94, 0xda, 0x8d, 0x59, 0x7f, 0x32, 0x64, 0x55, 0x67, 0x53, 0xef, 0x6a, + 0x33, 0x3c, 0x87, 0x24, 0x2b, 0x00, 0x45, 0x5f, 0x27, 0x2c, 0xd1, 0xa6, + 0x8b, 0x95, 0x5e, 0x29, 0xe7, 0xff, 0x7e, 0x15, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x94, 0xda, 0x8d, 0x59, 0x7f, 0x32, 0x64, 0x55, 0x67, 0x53, 0xef, 0x6a, + 0x33, 0x3c, 0x87, 0x24, 0x2b, 0x00, 0x45, 0x5f, 0x27, 0x2c, 0xd1, 0xa6, + 0x8b, 0x95, 0x5e, 0x29, 0xe7, 0xff, 0x7e, 0x15, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x94, 0xda, 0x8d, 0x59, 0x7f, 0x32, 0x64, 0x55, 0x67, 0x53, 0xef, 0x6a, + 0x33, 0x3c, 0x87, 0x24, 0x2b, 0x00, 0x45, 0x5f, 0x27, 0x2c, 0xd1, 0xa6, + 0x8b, 0x95, 0x5e, 0x29, 0xe7, 0xff, 0x7e, 0x15, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x94, 0xda, 0x8d, 0x59, 0x7f, 0x32, 0x64, 0x55, 0x67, 0x53, 0xef, 0x6a, + 0x33, 0x3c, 0x87, 0x24, 0x2b, 0x00, 0x45, 0x5f, 0x27, 0x2c, 0xd1, 0xa6, + 0x8b, 0x95, 0x5e, 0x29, 0xe7, 0xff, 0x7e, 0x15, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x94, 0xda, 0x8d, 0x59, 0x7f, 0x32, 0x64, 0x55, 0x67, 0x53, 0xef, 0x6a, + 0x33, 0x3c, 0x87, 0x24, 0x2b, 0x00, 0x45, 0x5f, 0x27, 0x2c, 0xd1, 0xa6, + 0x8b, 0x95, 0x5e, 0x29, 0xe7, 0xff, 0x7e, 0x15, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x94, 0xda, 0x8d, 0x59, 0x7f, 0x32, 0x64, 0x55, 0x67, 0x53, 0xef, 0x6a, + 0x33, 0x3c, 0x87, 0x24, 0x2b, 0x00, 0x45, 0x5f, 0x27, 0x2c, 0xd1, 0xa6, + 0x8b, 0x95, 0x5e, 0x29, 0xe7, 0xff, 0x7e, 0x15, + ], + ], + ], + root: [ + 0x97, 0x33, 0x53, 0xab, 0x56, 0xaa, 0x7e, 0xf9, 0x44, 0x0e, 0x0f, 0x75, 0xc3, 0x5e, + 0xa4, 0x80, 0xad, 0x34, 0xf4, 0xe5, 0xda, 0x53, 0x4a, 0x56, 0x23, 0x6e, 0x14, 0x09, + 0xc0, 0x59, 0x39, 0x11, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, + 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, 0xc1, + 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, 0xce, 0xcb, + 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x92, 0xff, 0xdb, 0xf5, 0x23, 0x57, 0x2d, 0x8c, 0x7a, 0xaf, 0x10, 0xb1, + 0x0b, 0x35, 0x4e, 0x24, 0xff, 0x40, 0xdd, 0xb0, 0xcc, 0xca, 0x5f, 0xa0, + 0x1d, 0xb8, 0xad, 0x63, 0x55, 0x83, 0xc8, 0x3f, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x92, 0xff, 0xdb, 0xf5, 0x23, 0x57, 0x2d, 0x8c, 0x7a, 0xaf, 0x10, 0xb1, + 0x0b, 0x35, 0x4e, 0x24, 0xff, 0x40, 0xdd, 0xb0, 0xcc, 0xca, 0x5f, 0xa0, + 0x1d, 0xb8, 0xad, 0x63, 0x55, 0x83, 0xc8, 0x3f, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, + 0x96, 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, + 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x92, 0xff, 0xdb, 0xf5, 0x23, 0x57, 0x2d, 0x8c, 0x7a, 0xaf, 0x10, 0xb1, + 0x0b, 0x35, 0x4e, 0x24, 0xff, 0x40, 0xdd, 0xb0, 0xcc, 0xca, 0x5f, 0xa0, + 0x1d, 0xb8, 0xad, 0x63, 0x55, 0x83, 0xc8, 0x3f, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x92, 0xff, 0xdb, 0xf5, 0x23, 0x57, 0x2d, 0x8c, 0x7a, 0xaf, 0x10, 0xb1, + 0x0b, 0x35, 0x4e, 0x24, 0xff, 0x40, 0xdd, 0xb0, 0xcc, 0xca, 0x5f, 0xa0, + 0x1d, 0xb8, 0xad, 0x63, 0x55, 0x83, 0xc8, 0x3f, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, + 0xc1, 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, + 0xce, 0xcb, 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xc6, 0x5e, 0x55, 0xdd, 0x1c, 0xcd, 0x0d, 0x05, 0x54, 0x87, 0xa0, 0x9b, + 0x93, 0xaf, 0x03, 0x73, 0x58, 0x4d, 0x2e, 0x2e, 0x9c, 0x2b, 0x3f, 0xa0, + 0x5a, 0x68, 0x4a, 0x32, 0xc3, 0xb1, 0x72, 0x0c, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xc6, 0x5e, 0x55, 0xdd, 0x1c, 0xcd, 0x0d, 0x05, 0x54, 0x87, 0xa0, 0x9b, + 0x93, 0xaf, 0x03, 0x73, 0x58, 0x4d, 0x2e, 0x2e, 0x9c, 0x2b, 0x3f, 0xa0, + 0x5a, 0x68, 0x4a, 0x32, 0xc3, 0xb1, 0x72, 0x0c, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe5, 0x1f, 0xfe, 0x95, 0x9a, 0x68, 0xbc, 0xc4, 0x81, 0xb8, 0x36, 0xa8, + 0xf9, 0x57, 0xcd, 0x98, 0x3a, 0x9d, 0x33, 0x18, 0xe9, 0x2d, 0x0d, 0x57, + 0xeb, 0x37, 0xf8, 0x2a, 0xe4, 0xff, 0x87, 0x06, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe5, 0x1f, 0xfe, 0x95, 0x9a, 0x68, 0xbc, 0xc4, 0x81, 0xb8, 0x36, 0xa8, + 0xf9, 0x57, 0xcd, 0x98, 0x3a, 0x9d, 0x33, 0x18, 0xe9, 0x2d, 0x0d, 0x57, + 0xeb, 0x37, 0xf8, 0x2a, 0xe4, 0xff, 0x87, 0x06, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe5, 0x1f, 0xfe, 0x95, 0x9a, 0x68, 0xbc, 0xc4, 0x81, 0xb8, 0x36, 0xa8, + 0xf9, 0x57, 0xcd, 0x98, 0x3a, 0x9d, 0x33, 0x18, 0xe9, 0x2d, 0x0d, 0x57, + 0xeb, 0x37, 0xf8, 0x2a, 0xe4, 0xff, 0x87, 0x06, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe5, 0x1f, 0xfe, 0x95, 0x9a, 0x68, 0xbc, 0xc4, 0x81, 0xb8, 0x36, 0xa8, + 0xf9, 0x57, 0xcd, 0x98, 0x3a, 0x9d, 0x33, 0x18, 0xe9, 0x2d, 0x0d, 0x57, + 0xeb, 0x37, 0xf8, 0x2a, 0xe4, 0xff, 0x87, 0x06, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe5, 0x1f, 0xfe, 0x95, 0x9a, 0x68, 0xbc, 0xc4, 0x81, 0xb8, 0x36, 0xa8, + 0xf9, 0x57, 0xcd, 0x98, 0x3a, 0x9d, 0x33, 0x18, 0xe9, 0x2d, 0x0d, 0x57, + 0xeb, 0x37, 0xf8, 0x2a, 0xe4, 0xff, 0x87, 0x06, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe5, 0x1f, 0xfe, 0x95, 0x9a, 0x68, 0xbc, 0xc4, 0x81, 0xb8, 0x36, 0xa8, + 0xf9, 0x57, 0xcd, 0x98, 0x3a, 0x9d, 0x33, 0x18, 0xe9, 0x2d, 0x0d, 0x57, + 0xeb, 0x37, 0xf8, 0x2a, 0xe4, 0xff, 0x87, 0x06, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe5, 0x1f, 0xfe, 0x95, 0x9a, 0x68, 0xbc, 0xc4, 0x81, 0xb8, 0x36, 0xa8, + 0xf9, 0x57, 0xcd, 0x98, 0x3a, 0x9d, 0x33, 0x18, 0xe9, 0x2d, 0x0d, 0x57, + 0xeb, 0x37, 0xf8, 0x2a, 0xe4, 0xff, 0x87, 0x06, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe5, 0x1f, 0xfe, 0x95, 0x9a, 0x68, 0xbc, 0xc4, 0x81, 0xb8, 0x36, 0xa8, + 0xf9, 0x57, 0xcd, 0x98, 0x3a, 0x9d, 0x33, 0x18, 0xe9, 0x2d, 0x0d, 0x57, + 0xeb, 0x37, 0xf8, 0x2a, 0xe4, 0xff, 0x87, 0x06, + ], + ], + ], + root: [ + 0x0b, 0xaf, 0xbe, 0x8d, 0xf2, 0x6e, 0x91, 0x38, 0x13, 0xdd, 0x25, 0x78, 0xba, 0x07, + 0x31, 0x52, 0xe6, 0xf0, 0x6e, 0x26, 0x58, 0x6a, 0x8d, 0xad, 0x67, 0x1d, 0x3d, 0xba, + 0xa6, 0xa5, 0x22, 0x30, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, + 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, 0xc1, + 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, 0xce, 0xcb, + 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, 0xd3, + 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, 0x4f, 0x5a, + 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x0b, 0x86, 0x29, 0x6b, 0xa8, 0x3b, 0xe0, 0x8b, 0x1e, 0xf6, 0xfb, 0x92, + 0x10, 0x54, 0xa3, 0xc9, 0x75, 0x66, 0x76, 0x47, 0xb8, 0x18, 0xc1, 0x50, + 0x9c, 0x9c, 0xb4, 0x89, 0xa5, 0xd1, 0xf1, 0x2d, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x0b, 0x86, 0x29, 0x6b, 0xa8, 0x3b, 0xe0, 0x8b, 0x1e, 0xf6, 0xfb, 0x92, + 0x10, 0x54, 0xa3, 0xc9, 0x75, 0x66, 0x76, 0x47, 0xb8, 0x18, 0xc1, 0x50, + 0x9c, 0x9c, 0xb4, 0x89, 0xa5, 0xd1, 0xf1, 0x2d, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, + 0x96, 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, + 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x0b, 0x86, 0x29, 0x6b, 0xa8, 0x3b, 0xe0, 0x8b, 0x1e, 0xf6, 0xfb, 0x92, + 0x10, 0x54, 0xa3, 0xc9, 0x75, 0x66, 0x76, 0x47, 0xb8, 0x18, 0xc1, 0x50, + 0x9c, 0x9c, 0xb4, 0x89, 0xa5, 0xd1, 0xf1, 0x2d, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x0b, 0x86, 0x29, 0x6b, 0xa8, 0x3b, 0xe0, 0x8b, 0x1e, 0xf6, 0xfb, 0x92, + 0x10, 0x54, 0xa3, 0xc9, 0x75, 0x66, 0x76, 0x47, 0xb8, 0x18, 0xc1, 0x50, + 0x9c, 0x9c, 0xb4, 0x89, 0xa5, 0xd1, 0xf1, 0x2d, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, + 0xd3, 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, + 0x4f, 0x5a, 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, + 0xc1, 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, + 0xce, 0xcb, 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x2e, 0xb4, 0x4a, 0xee, 0x3d, 0x7b, 0x60, 0xd4, 0xce, 0x2d, 0xa0, 0xa7, + 0x14, 0x5a, 0x9d, 0x39, 0xca, 0x2f, 0x19, 0xb5, 0xf4, 0x91, 0x91, 0x6b, + 0x4c, 0x25, 0x99, 0xc0, 0x47, 0x3c, 0x1d, 0x0b, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x2e, 0xb4, 0x4a, 0xee, 0x3d, 0x7b, 0x60, 0xd4, 0xce, 0x2d, 0xa0, 0xa7, + 0x14, 0x5a, 0x9d, 0x39, 0xca, 0x2f, 0x19, 0xb5, 0xf4, 0x91, 0x91, 0x6b, + 0x4c, 0x25, 0x99, 0xc0, 0x47, 0x3c, 0x1d, 0x0b, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x2e, 0xb4, 0x4a, 0xee, 0x3d, 0x7b, 0x60, 0xd4, 0xce, 0x2d, 0xa0, 0xa7, + 0x14, 0x5a, 0x9d, 0x39, 0xca, 0x2f, 0x19, 0xb5, 0xf4, 0x91, 0x91, 0x6b, + 0x4c, 0x25, 0x99, 0xc0, 0x47, 0x3c, 0x1d, 0x0b, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x2e, 0xb4, 0x4a, 0xee, 0x3d, 0x7b, 0x60, 0xd4, 0xce, 0x2d, 0xa0, 0xa7, + 0x14, 0x5a, 0x9d, 0x39, 0xca, 0x2f, 0x19, 0xb5, 0xf4, 0x91, 0x91, 0x6b, + 0x4c, 0x25, 0x99, 0xc0, 0x47, 0x3c, 0x1d, 0x0b, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x2e, 0xb4, 0x4a, 0xee, 0x3d, 0x7b, 0x60, 0xd4, 0xce, 0x2d, 0xa0, 0xa7, + 0x14, 0x5a, 0x9d, 0x39, 0xca, 0x2f, 0x19, 0xb5, 0xf4, 0x91, 0x91, 0x6b, + 0x4c, 0x25, 0x99, 0xc0, 0x47, 0x3c, 0x1d, 0x0b, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x2e, 0xb4, 0x4a, 0xee, 0x3d, 0x7b, 0x60, 0xd4, 0xce, 0x2d, 0xa0, 0xa7, + 0x14, 0x5a, 0x9d, 0x39, 0xca, 0x2f, 0x19, 0xb5, 0xf4, 0x91, 0x91, 0x6b, + 0x4c, 0x25, 0x99, 0xc0, 0x47, 0x3c, 0x1d, 0x0b, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x2e, 0xb4, 0x4a, 0xee, 0x3d, 0x7b, 0x60, 0xd4, 0xce, 0x2d, 0xa0, 0xa7, + 0x14, 0x5a, 0x9d, 0x39, 0xca, 0x2f, 0x19, 0xb5, 0xf4, 0x91, 0x91, 0x6b, + 0x4c, 0x25, 0x99, 0xc0, 0x47, 0x3c, 0x1d, 0x0b, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x2e, 0xb4, 0x4a, 0xee, 0x3d, 0x7b, 0x60, 0xd4, 0xce, 0x2d, 0xa0, 0xa7, + 0x14, 0x5a, 0x9d, 0x39, 0xca, 0x2f, 0x19, 0xb5, 0xf4, 0x91, 0x91, 0x6b, + 0x4c, 0x25, 0x99, 0xc0, 0x47, 0x3c, 0x1d, 0x0b, + ], + ], + ], + root: [ + 0x55, 0xa5, 0xe3, 0xda, 0x59, 0x38, 0xaa, 0xb9, 0x67, 0x5b, 0x19, 0xb4, 0x5f, 0x38, + 0x21, 0x3c, 0xee, 0xff, 0xd3, 0x52, 0xb9, 0x07, 0x85, 0x56, 0x2a, 0x50, 0xd5, 0xd6, + 0x4b, 0x98, 0x00, 0x1a, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, + 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, 0xc1, + 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, 0xce, 0xcb, + 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, 0xd3, + 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, 0x4f, 0x5a, + 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, 0x21, + 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, 0x58, 0xcf, + 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x92, 0x10, 0xf6, 0x35, 0xe2, 0x0b, 0x4d, 0x9f, 0x7c, 0xd0, 0x56, 0x80, + 0xab, 0x84, 0x79, 0x46, 0x2d, 0xd0, 0x73, 0xe9, 0xc3, 0x0b, 0xd3, 0x36, + 0xff, 0x86, 0x16, 0x9f, 0x2e, 0xe7, 0xfe, 0x00, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x92, 0x10, 0xf6, 0x35, 0xe2, 0x0b, 0x4d, 0x9f, 0x7c, 0xd0, 0x56, 0x80, + 0xab, 0x84, 0x79, 0x46, 0x2d, 0xd0, 0x73, 0xe9, 0xc3, 0x0b, 0xd3, 0x36, + 0xff, 0x86, 0x16, 0x9f, 0x2e, 0xe7, 0xfe, 0x00, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, + 0x96, 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, + 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x92, 0x10, 0xf6, 0x35, 0xe2, 0x0b, 0x4d, 0x9f, 0x7c, 0xd0, 0x56, 0x80, + 0xab, 0x84, 0x79, 0x46, 0x2d, 0xd0, 0x73, 0xe9, 0xc3, 0x0b, 0xd3, 0x36, + 0xff, 0x86, 0x16, 0x9f, 0x2e, 0xe7, 0xfe, 0x00, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x92, 0x10, 0xf6, 0x35, 0xe2, 0x0b, 0x4d, 0x9f, 0x7c, 0xd0, 0x56, 0x80, + 0xab, 0x84, 0x79, 0x46, 0x2d, 0xd0, 0x73, 0xe9, 0xc3, 0x0b, 0xd3, 0x36, + 0xff, 0x86, 0x16, 0x9f, 0x2e, 0xe7, 0xfe, 0x00, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, + 0xd3, 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, + 0x4f, 0x5a, 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x41, 0x8c, 0xa3, 0xb7, 0xb3, 0xcc, 0xe8, 0x92, 0x51, 0xba, 0xd1, 0x8f, + 0x0e, 0x35, 0x48, 0x61, 0x19, 0x8c, 0x82, 0xc6, 0xd3, 0x07, 0xa1, 0xfd, + 0xce, 0x6f, 0xca, 0xaf, 0xef, 0xe7, 0xd0, 0x3d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, + 0xc1, 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, + 0xce, 0xcb, 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x41, 0x8c, 0xa3, 0xb7, 0xb3, 0xcc, 0xe8, 0x92, 0x51, 0xba, 0xd1, 0x8f, + 0x0e, 0x35, 0x48, 0x61, 0x19, 0x8c, 0x82, 0xc6, 0xd3, 0x07, 0xa1, 0xfd, + 0xce, 0x6f, 0xca, 0xaf, 0xef, 0xe7, 0xd0, 0x3d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, + 0x21, 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, + 0x58, 0xcf, 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe7, 0x1d, 0x2d, 0x74, 0x4a, 0xbb, 0x96, 0x13, 0xa0, 0xa1, 0x0c, 0xab, + 0x67, 0x79, 0x39, 0x0b, 0x17, 0xb0, 0x86, 0x60, 0xbc, 0x19, 0xcf, 0xef, + 0xa2, 0xc1, 0x93, 0xbd, 0xa9, 0xbf, 0xeb, 0x00, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe7, 0x1d, 0x2d, 0x74, 0x4a, 0xbb, 0x96, 0x13, 0xa0, 0xa1, 0x0c, 0xab, + 0x67, 0x79, 0x39, 0x0b, 0x17, 0xb0, 0x86, 0x60, 0xbc, 0x19, 0xcf, 0xef, + 0xa2, 0xc1, 0x93, 0xbd, 0xa9, 0xbf, 0xeb, 0x00, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe7, 0x1d, 0x2d, 0x74, 0x4a, 0xbb, 0x96, 0x13, 0xa0, 0xa1, 0x0c, 0xab, + 0x67, 0x79, 0x39, 0x0b, 0x17, 0xb0, 0x86, 0x60, 0xbc, 0x19, 0xcf, 0xef, + 0xa2, 0xc1, 0x93, 0xbd, 0xa9, 0xbf, 0xeb, 0x00, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe7, 0x1d, 0x2d, 0x74, 0x4a, 0xbb, 0x96, 0x13, 0xa0, 0xa1, 0x0c, 0xab, + 0x67, 0x79, 0x39, 0x0b, 0x17, 0xb0, 0x86, 0x60, 0xbc, 0x19, 0xcf, 0xef, + 0xa2, 0xc1, 0x93, 0xbd, 0xa9, 0xbf, 0xeb, 0x00, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe7, 0x1d, 0x2d, 0x74, 0x4a, 0xbb, 0x96, 0x13, 0xa0, 0xa1, 0x0c, 0xab, + 0x67, 0x79, 0x39, 0x0b, 0x17, 0xb0, 0x86, 0x60, 0xbc, 0x19, 0xcf, 0xef, + 0xa2, 0xc1, 0x93, 0xbd, 0xa9, 0xbf, 0xeb, 0x00, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe7, 0x1d, 0x2d, 0x74, 0x4a, 0xbb, 0x96, 0x13, 0xa0, 0xa1, 0x0c, 0xab, + 0x67, 0x79, 0x39, 0x0b, 0x17, 0xb0, 0x86, 0x60, 0xbc, 0x19, 0xcf, 0xef, + 0xa2, 0xc1, 0x93, 0xbd, 0xa9, 0xbf, 0xeb, 0x00, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe7, 0x1d, 0x2d, 0x74, 0x4a, 0xbb, 0x96, 0x13, 0xa0, 0xa1, 0x0c, 0xab, + 0x67, 0x79, 0x39, 0x0b, 0x17, 0xb0, 0x86, 0x60, 0xbc, 0x19, 0xcf, 0xef, + 0xa2, 0xc1, 0x93, 0xbd, 0xa9, 0xbf, 0xeb, 0x00, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0xe7, 0x1d, 0x2d, 0x74, 0x4a, 0xbb, 0x96, 0x13, 0xa0, 0xa1, 0x0c, 0xab, + 0x67, 0x79, 0x39, 0x0b, 0x17, 0xb0, 0x86, 0x60, 0xbc, 0x19, 0xcf, 0xef, + 0xa2, 0xc1, 0x93, 0xbd, 0xa9, 0xbf, 0xeb, 0x00, + ], + ], + ], + root: [ + 0x01, 0x43, 0x1e, 0x11, 0xa7, 0xda, 0xb6, 0xa8, 0xb0, 0x16, 0x8e, 0x1c, 0xce, 0xb7, + 0xb5, 0x6e, 0xa5, 0x6b, 0xcd, 0x5f, 0xeb, 0x4b, 0x49, 0x37, 0x5c, 0x6f, 0x47, 0x0e, + 0x7e, 0x24, 0x67, 0x2e, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, + 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, 0xc1, + 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, 0xce, 0xcb, + 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, 0xd3, + 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, 0x4f, 0x5a, + 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, 0x21, + 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, 0x58, 0xcf, + 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, 0x40, + 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, 0xf8, 0x37, + 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, + 0x96, 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, + 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, + 0xd3, 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, + 0x4f, 0x5a, 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, + 0xc1, 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, + 0xce, 0xcb, 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, + 0x40, 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, + 0xf8, 0x37, 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, + 0x21, 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, + 0x58, 0xcf, 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x21, 0x11, 0xfc, 0x39, 0x77, 0x53, 0xe5, 0xfd, 0x50, 0xec, 0x74, 0x81, + 0x6d, 0xf2, 0x7d, 0x6a, 0xda, 0x7e, 0xd2, 0xa9, 0xac, 0x38, 0x16, 0xaa, + 0xb2, 0x57, 0x3c, 0x8f, 0xac, 0x79, 0x42, 0x04, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + ], + root: [ + 0xfb, 0x9b, 0x01, 0x02, 0x9c, 0x5f, 0x33, 0x44, 0xf2, 0xa9, 0xb0, 0xe1, 0x69, 0xb7, + 0x21, 0xf5, 0x3d, 0x70, 0xc1, 0xd6, 0xdb, 0xfd, 0x59, 0x69, 0x47, 0x59, 0x3e, 0x3a, + 0x39, 0x0e, 0xab, 0x09, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, + 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, 0xc1, + 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, 0xce, 0xcb, + 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, 0xd3, + 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, 0x4f, 0x5a, + 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, 0x21, + 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, 0x58, 0xcf, + 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, 0x40, + 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, 0xf8, 0x37, + 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, 0x6c, + 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, 0x47, 0x7a, + 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x73, 0xc0, 0xd8, 0x8e, 0xc7, 0xdb, 0x28, 0xc3, 0x00, 0x14, 0xa1, 0x16, + 0xc3, 0x2b, 0x93, 0xee, 0x41, 0xdb, 0x57, 0xeb, 0x1d, 0xa4, 0x65, 0x34, + 0x2a, 0x3b, 0x32, 0x5f, 0xa9, 0x9f, 0xc7, 0x25, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x73, 0xc0, 0xd8, 0x8e, 0xc7, 0xdb, 0x28, 0xc3, 0x00, 0x14, 0xa1, 0x16, + 0xc3, 0x2b, 0x93, 0xee, 0x41, 0xdb, 0x57, 0xeb, 0x1d, 0xa4, 0x65, 0x34, + 0x2a, 0x3b, 0x32, 0x5f, 0xa9, 0x9f, 0xc7, 0x25, + ], + ], + [ + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, + 0x96, 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, + 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x73, 0xc0, 0xd8, 0x8e, 0xc7, 0xdb, 0x28, 0xc3, 0x00, 0x14, 0xa1, 0x16, + 0xc3, 0x2b, 0x93, 0xee, 0x41, 0xdb, 0x57, 0xeb, 0x1d, 0xa4, 0x65, 0x34, + 0x2a, 0x3b, 0x32, 0x5f, 0xa9, 0x9f, 0xc7, 0x25, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x73, 0xc0, 0xd8, 0x8e, 0xc7, 0xdb, 0x28, 0xc3, 0x00, 0x14, 0xa1, 0x16, + 0xc3, 0x2b, 0x93, 0xee, 0x41, 0xdb, 0x57, 0xeb, 0x1d, 0xa4, 0x65, 0x34, + 0x2a, 0x3b, 0x32, 0x5f, 0xa9, 0x9f, 0xc7, 0x25, + ], + ], + [ + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, + 0xd3, 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, + 0x4f, 0x5a, 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x73, 0xc0, 0xd8, 0x8e, 0xc7, 0xdb, 0x28, 0xc3, 0x00, 0x14, 0xa1, 0x16, + 0xc3, 0x2b, 0x93, 0xee, 0x41, 0xdb, 0x57, 0xeb, 0x1d, 0xa4, 0x65, 0x34, + 0x2a, 0x3b, 0x32, 0x5f, 0xa9, 0x9f, 0xc7, 0x25, + ], + ], + [ + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, + 0xc1, 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, + 0xce, 0xcb, 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x73, 0xc0, 0xd8, 0x8e, 0xc7, 0xdb, 0x28, 0xc3, 0x00, 0x14, 0xa1, 0x16, + 0xc3, 0x2b, 0x93, 0xee, 0x41, 0xdb, 0x57, 0xeb, 0x1d, 0xa4, 0x65, 0x34, + 0x2a, 0x3b, 0x32, 0x5f, 0xa9, 0x9f, 0xc7, 0x25, + ], + ], + [ + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, + 0x40, 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, + 0xf8, 0x37, 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x73, 0xc0, 0xd8, 0x8e, 0xc7, 0xdb, 0x28, 0xc3, 0x00, 0x14, 0xa1, 0x16, + 0xc3, 0x2b, 0x93, 0xee, 0x41, 0xdb, 0x57, 0xeb, 0x1d, 0xa4, 0x65, 0x34, + 0x2a, 0x3b, 0x32, 0x5f, 0xa9, 0x9f, 0xc7, 0x25, + ], + ], + [ + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, + 0x21, 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, + 0x58, 0xcf, 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x73, 0xc0, 0xd8, 0x8e, 0xc7, 0xdb, 0x28, 0xc3, 0x00, 0x14, 0xa1, 0x16, + 0xc3, 0x2b, 0x93, 0xee, 0x41, 0xdb, 0x57, 0xeb, 0x1d, 0xa4, 0x65, 0x34, + 0x2a, 0x3b, 0x32, 0x5f, 0xa9, 0x9f, 0xc7, 0x25, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, + 0x6c, 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, + 0x47, 0x7a, 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x6a, 0xcf, 0xef, 0x13, 0xd3, 0x88, 0xb7, 0x00, 0x76, 0xc8, 0x71, 0x1e, + 0xb7, 0x4a, 0x4f, 0xff, 0x64, 0xff, 0x8b, 0x5b, 0xd9, 0x0b, 0x77, 0x74, + 0x65, 0x6c, 0x69, 0x88, 0x20, 0xcf, 0xa6, 0x06, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x6a, 0xcf, 0xef, 0x13, 0xd3, 0x88, 0xb7, 0x00, 0x76, 0xc8, 0x71, 0x1e, + 0xb7, 0x4a, 0x4f, 0xff, 0x64, 0xff, 0x8b, 0x5b, 0xd9, 0x0b, 0x77, 0x74, + 0x65, 0x6c, 0x69, 0x88, 0x20, 0xcf, 0xa6, 0x06, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x2e, 0x07, 0x55, 0xfa, 0x3f, 0xe5, 0x1b, 0x1e, 0xe4, 0x9d, 0x67, 0xcf, + 0xc5, 0xef, 0x89, 0x33, 0xe9, 0x4e, 0x1e, 0xf1, 0x20, 0x16, 0x67, 0xcf, + 0xfa, 0x1d, 0x1f, 0xda, 0x40, 0xcd, 0xbe, 0x36, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x2e, 0x07, 0x55, 0xfa, 0x3f, 0xe5, 0x1b, 0x1e, 0xe4, 0x9d, 0x67, 0xcf, + 0xc5, 0xef, 0x89, 0x33, 0xe9, 0x4e, 0x1e, 0xf1, 0x20, 0x16, 0x67, 0xcf, + 0xfa, 0x1d, 0x1f, 0xda, 0x40, 0xcd, 0xbe, 0x36, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x2e, 0x07, 0x55, 0xfa, 0x3f, 0xe5, 0x1b, 0x1e, 0xe4, 0x9d, 0x67, 0xcf, + 0xc5, 0xef, 0x89, 0x33, 0xe9, 0x4e, 0x1e, 0xf1, 0x20, 0x16, 0x67, 0xcf, + 0xfa, 0x1d, 0x1f, 0xda, 0x40, 0xcd, 0xbe, 0x36, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x2e, 0x07, 0x55, 0xfa, 0x3f, 0xe5, 0x1b, 0x1e, 0xe4, 0x9d, 0x67, 0xcf, + 0xc5, 0xef, 0x89, 0x33, 0xe9, 0x4e, 0x1e, 0xf1, 0x20, 0x16, 0x67, 0xcf, + 0xfa, 0x1d, 0x1f, 0xda, 0x40, 0xcd, 0xbe, 0x36, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + ], + root: [ + 0xbd, 0xb8, 0xd0, 0xa6, 0x37, 0x8c, 0xc8, 0xe6, 0xb8, 0x24, 0xac, 0x1b, 0xd3, 0xef, + 0xa0, 0x0c, 0x42, 0x27, 0xbd, 0xe6, 0x12, 0x8e, 0x76, 0x54, 0xa6, 0x4e, 0x0e, 0xa1, + 0xbe, 0x91, 0xf8, 0x3d, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, + 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, 0xc1, + 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, 0xce, 0xcb, + 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, 0xd3, + 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, 0x4f, 0x5a, + 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, 0x21, + 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, 0x58, 0xcf, + 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, 0x40, + 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, 0xf8, 0x37, + 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, 0x6c, + 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, 0x47, 0x7a, + 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, 0x9e, + 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, 0xd9, 0x78, + 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x6d, 0xee, 0xde, 0xd7, 0x9c, 0x44, 0xa4, 0x0e, 0x5b, 0xef, 0x3d, 0x11, + 0x70, 0xfa, 0x30, 0x2a, 0xb9, 0xf7, 0xa6, 0xae, 0xa1, 0xac, 0xfc, 0x1d, + 0x0f, 0x80, 0xee, 0x5b, 0x0a, 0xcb, 0x74, 0x34, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x6d, 0xee, 0xde, 0xd7, 0x9c, 0x44, 0xa4, 0x0e, 0x5b, 0xef, 0x3d, 0x11, + 0x70, 0xfa, 0x30, 0x2a, 0xb9, 0xf7, 0xa6, 0xae, 0xa1, 0xac, 0xfc, 0x1d, + 0x0f, 0x80, 0xee, 0x5b, 0x0a, 0xcb, 0x74, 0x34, + ], + ], + [ + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, + 0x96, 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, + 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x6d, 0xee, 0xde, 0xd7, 0x9c, 0x44, 0xa4, 0x0e, 0x5b, 0xef, 0x3d, 0x11, + 0x70, 0xfa, 0x30, 0x2a, 0xb9, 0xf7, 0xa6, 0xae, 0xa1, 0xac, 0xfc, 0x1d, + 0x0f, 0x80, 0xee, 0x5b, 0x0a, 0xcb, 0x74, 0x34, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x6d, 0xee, 0xde, 0xd7, 0x9c, 0x44, 0xa4, 0x0e, 0x5b, 0xef, 0x3d, 0x11, + 0x70, 0xfa, 0x30, 0x2a, 0xb9, 0xf7, 0xa6, 0xae, 0xa1, 0xac, 0xfc, 0x1d, + 0x0f, 0x80, 0xee, 0x5b, 0x0a, 0xcb, 0x74, 0x34, + ], + ], + [ + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, + 0xd3, 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, + 0x4f, 0x5a, 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x6d, 0xee, 0xde, 0xd7, 0x9c, 0x44, 0xa4, 0x0e, 0x5b, 0xef, 0x3d, 0x11, + 0x70, 0xfa, 0x30, 0x2a, 0xb9, 0xf7, 0xa6, 0xae, 0xa1, 0xac, 0xfc, 0x1d, + 0x0f, 0x80, 0xee, 0x5b, 0x0a, 0xcb, 0x74, 0x34, + ], + ], + [ + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, + 0xc1, 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, + 0xce, 0xcb, 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x6d, 0xee, 0xde, 0xd7, 0x9c, 0x44, 0xa4, 0x0e, 0x5b, 0xef, 0x3d, 0x11, + 0x70, 0xfa, 0x30, 0x2a, 0xb9, 0xf7, 0xa6, 0xae, 0xa1, 0xac, 0xfc, 0x1d, + 0x0f, 0x80, 0xee, 0x5b, 0x0a, 0xcb, 0x74, 0x34, + ], + ], + [ + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, + 0x40, 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, + 0xf8, 0x37, 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x6d, 0xee, 0xde, 0xd7, 0x9c, 0x44, 0xa4, 0x0e, 0x5b, 0xef, 0x3d, 0x11, + 0x70, 0xfa, 0x30, 0x2a, 0xb9, 0xf7, 0xa6, 0xae, 0xa1, 0xac, 0xfc, 0x1d, + 0x0f, 0x80, 0xee, 0x5b, 0x0a, 0xcb, 0x74, 0x34, + ], + ], + [ + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, + 0x21, 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, + 0x58, 0xcf, 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x6d, 0xee, 0xde, 0xd7, 0x9c, 0x44, 0xa4, 0x0e, 0x5b, 0xef, 0x3d, 0x11, + 0x70, 0xfa, 0x30, 0x2a, 0xb9, 0xf7, 0xa6, 0xae, 0xa1, 0xac, 0xfc, 0x1d, + 0x0f, 0x80, 0xee, 0x5b, 0x0a, 0xcb, 0x74, 0x34, + ], + ], + [ + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, + 0x9e, 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, + 0xd9, 0x78, 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, + 0x6c, 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, + 0x47, 0x7a, 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xaa, 0x39, 0xd8, 0x4e, 0xda, 0x77, 0x05, 0x7a, 0x37, 0x58, 0x9c, 0x8a, + 0xe8, 0x3c, 0xba, 0x0a, 0xcc, 0x3f, 0xb3, 0x18, 0x7e, 0x2b, 0xd3, 0xa8, + 0xe2, 0xcb, 0x49, 0xb5, 0xd4, 0x46, 0xf2, 0x1a, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xaa, 0x39, 0xd8, 0x4e, 0xda, 0x77, 0x05, 0x7a, 0x37, 0x58, 0x9c, 0x8a, + 0xe8, 0x3c, 0xba, 0x0a, 0xcc, 0x3f, 0xb3, 0x18, 0x7e, 0x2b, 0xd3, 0xa8, + 0xe2, 0xcb, 0x49, 0xb5, 0xd4, 0x46, 0xf2, 0x1a, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xaa, 0x39, 0xd8, 0x4e, 0xda, 0x77, 0x05, 0x7a, 0x37, 0x58, 0x9c, 0x8a, + 0xe8, 0x3c, 0xba, 0x0a, 0xcc, 0x3f, 0xb3, 0x18, 0x7e, 0x2b, 0xd3, 0xa8, + 0xe2, 0xcb, 0x49, 0xb5, 0xd4, 0x46, 0xf2, 0x1a, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0xaa, 0x39, 0xd8, 0x4e, 0xda, 0x77, 0x05, 0x7a, 0x37, 0x58, 0x9c, 0x8a, + 0xe8, 0x3c, 0xba, 0x0a, 0xcc, 0x3f, 0xb3, 0x18, 0x7e, 0x2b, 0xd3, 0xa8, + 0xe2, 0xcb, 0x49, 0xb5, 0xd4, 0x46, 0xf2, 0x1a, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + ], + root: [ + 0x61, 0xc6, 0x21, 0xc0, 0x87, 0xea, 0x80, 0xfc, 0xa1, 0xc6, 0xba, 0x22, 0x92, 0x23, + 0x33, 0x5f, 0x0a, 0xe5, 0x85, 0x44, 0xcd, 0x89, 0x0a, 0xf4, 0xd2, 0x3a, 0x24, 0x02, + 0x36, 0x3a, 0x70, 0x12, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, + 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, 0xc1, + 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, 0xce, 0xcb, + 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, 0xd3, + 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, 0x4f, 0x5a, + 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, 0x21, + 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, 0x58, 0xcf, + 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, 0x40, + 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, 0xf8, 0x37, + 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, 0x6c, + 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, 0x47, 0x7a, + 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, 0x9e, + 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, 0xd9, 0x78, + 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0x08, 0x14, 0xd3, 0xa2, 0xd4, 0x52, 0x43, 0x1c, 0x32, 0xd4, 0x11, 0xac, 0x1c, + 0xce, 0x82, 0xad, 0x02, 0x29, 0x40, 0x7b, 0xbc, 0x48, 0x98, 0x56, 0x75, 0xe3, + 0xf8, 0x74, 0xa4, 0x53, 0x3f, 0x1d, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0xb9, 0x88, 0x05, 0x33, 0xb8, 0x08, 0xf8, 0xb1, 0xb1, 0x00, 0x18, 0xa1, + 0xa6, 0x22, 0x5a, 0x02, 0xdc, 0xe3, 0x73, 0x26, 0xc7, 0xe2, 0x22, 0xf2, + 0xef, 0x6f, 0x17, 0x31, 0xeb, 0xf7, 0xbd, 0x0c, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0xb9, 0x88, 0x05, 0x33, 0xb8, 0x08, 0xf8, 0xb1, 0xb1, 0x00, 0x18, 0xa1, + 0xa6, 0x22, 0x5a, 0x02, 0xdc, 0xe3, 0x73, 0x26, 0xc7, 0xe2, 0x22, 0xf2, + 0xef, 0x6f, 0x17, 0x31, 0xeb, 0xf7, 0xbd, 0x0c, + ], + ], + [ + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, + 0x96, 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, + 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0xb9, 0x88, 0x05, 0x33, 0xb8, 0x08, 0xf8, 0xb1, 0xb1, 0x00, 0x18, 0xa1, + 0xa6, 0x22, 0x5a, 0x02, 0xdc, 0xe3, 0x73, 0x26, 0xc7, 0xe2, 0x22, 0xf2, + 0xef, 0x6f, 0x17, 0x31, 0xeb, 0xf7, 0xbd, 0x0c, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0xb9, 0x88, 0x05, 0x33, 0xb8, 0x08, 0xf8, 0xb1, 0xb1, 0x00, 0x18, 0xa1, + 0xa6, 0x22, 0x5a, 0x02, 0xdc, 0xe3, 0x73, 0x26, 0xc7, 0xe2, 0x22, 0xf2, + 0xef, 0x6f, 0x17, 0x31, 0xeb, 0xf7, 0xbd, 0x0c, + ], + ], + [ + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, + 0xd3, 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, + 0x4f, 0x5a, 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0xb9, 0x88, 0x05, 0x33, 0xb8, 0x08, 0xf8, 0xb1, 0xb1, 0x00, 0x18, 0xa1, + 0xa6, 0x22, 0x5a, 0x02, 0xdc, 0xe3, 0x73, 0x26, 0xc7, 0xe2, 0x22, 0xf2, + 0xef, 0x6f, 0x17, 0x31, 0xeb, 0xf7, 0xbd, 0x0c, + ], + ], + [ + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, + 0xc1, 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, + 0xce, 0xcb, 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0xb9, 0x88, 0x05, 0x33, 0xb8, 0x08, 0xf8, 0xb1, 0xb1, 0x00, 0x18, 0xa1, + 0xa6, 0x22, 0x5a, 0x02, 0xdc, 0xe3, 0x73, 0x26, 0xc7, 0xe2, 0x22, 0xf2, + 0xef, 0x6f, 0x17, 0x31, 0xeb, 0xf7, 0xbd, 0x0c, + ], + ], + [ + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, + 0x40, 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, + 0xf8, 0x37, 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0xb9, 0x88, 0x05, 0x33, 0xb8, 0x08, 0xf8, 0xb1, 0xb1, 0x00, 0x18, 0xa1, + 0xa6, 0x22, 0x5a, 0x02, 0xdc, 0xe3, 0x73, 0x26, 0xc7, 0xe2, 0x22, 0xf2, + 0xef, 0x6f, 0x17, 0x31, 0xeb, 0xf7, 0xbd, 0x0c, + ], + ], + [ + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, + 0x21, 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, + 0x58, 0xcf, 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0xb9, 0x88, 0x05, 0x33, 0xb8, 0x08, 0xf8, 0xb1, 0xb1, 0x00, 0x18, 0xa1, + 0xa6, 0x22, 0x5a, 0x02, 0xdc, 0xe3, 0x73, 0x26, 0xc7, 0xe2, 0x22, 0xf2, + 0xef, 0x6f, 0x17, 0x31, 0xeb, 0xf7, 0xbd, 0x0c, + ], + ], + [ + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, + 0x9e, 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, + 0xd9, 0x78, 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0x64, 0x1a, 0x71, 0x42, 0x2b, 0x60, 0xa7, 0xf4, 0xbe, 0x94, 0x13, 0xd4, + 0x88, 0xdd, 0x21, 0x39, 0x08, 0x05, 0x93, 0x8b, 0xd0, 0x84, 0x8f, 0x50, + 0x9a, 0x64, 0x33, 0x87, 0x83, 0x09, 0x23, 0x21, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, + 0x6c, 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, + 0x47, 0x7a, 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x64, 0x1a, 0x71, 0x42, 0x2b, 0x60, 0xa7, 0xf4, 0xbe, 0x94, 0x13, 0xd4, + 0x88, 0xdd, 0x21, 0x39, 0x08, 0x05, 0x93, 0x8b, 0xd0, 0x84, 0x8f, 0x50, + 0x9a, 0x64, 0x33, 0x87, 0x83, 0x09, 0x23, 0x21, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x08, 0x14, 0xd3, 0xa2, 0xd4, 0x52, 0x43, 0x1c, 0x32, 0xd4, 0x11, 0xac, + 0x1c, 0xce, 0x82, 0xad, 0x02, 0x29, 0x40, 0x7b, 0xbc, 0x48, 0x98, 0x56, + 0x75, 0xe3, 0xf8, 0x74, 0xa4, 0x53, 0x3f, 0x1d, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x55, 0xff, 0xc2, 0x47, 0x08, 0x1b, 0xa9, 0x91, 0x37, 0xe7, 0xfc, 0x74, + 0xcf, 0x10, 0x5e, 0x36, 0xb1, 0xd3, 0xf0, 0x2b, 0x6e, 0x0c, 0xba, 0x02, + 0x82, 0x50, 0x54, 0x5b, 0x46, 0x03, 0xc0, 0x11, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x55, 0xff, 0xc2, 0x47, 0x08, 0x1b, 0xa9, 0x91, 0x37, 0xe7, 0xfc, 0x74, + 0xcf, 0x10, 0x5e, 0x36, 0xb1, 0xd3, 0xf0, 0x2b, 0x6e, 0x0c, 0xba, 0x02, + 0x82, 0x50, 0x54, 0x5b, 0x46, 0x03, 0xc0, 0x11, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x55, 0xff, 0xc2, 0x47, 0x08, 0x1b, 0xa9, 0x91, 0x37, 0xe7, 0xfc, 0x74, + 0xcf, 0x10, 0x5e, 0x36, 0xb1, 0xd3, 0xf0, 0x2b, 0x6e, 0x0c, 0xba, 0x02, + 0x82, 0x50, 0x54, 0x5b, 0x46, 0x03, 0xc0, 0x11, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x55, 0xff, 0xc2, 0x47, 0x08, 0x1b, 0xa9, 0x91, 0x37, 0xe7, 0xfc, 0x74, + 0xcf, 0x10, 0x5e, 0x36, 0xb1, 0xd3, 0xf0, 0x2b, 0x6e, 0x0c, 0xba, 0x02, + 0x82, 0x50, 0x54, 0x5b, 0x46, 0x03, 0xc0, 0x11, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + ], + root: [ + 0x5f, 0x1c, 0xb8, 0x1f, 0x36, 0xce, 0x49, 0x49, 0xfc, 0xdb, 0xd5, 0x3a, 0x33, 0x50, + 0xa5, 0x29, 0x2e, 0x65, 0x81, 0x61, 0xa4, 0xfc, 0x9c, 0xd4, 0xde, 0xf4, 0x0b, 0xb1, + 0x12, 0x1a, 0xfe, 0x22, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, + 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, 0xc1, + 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, 0xce, 0xcb, + 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, 0xd3, + 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, 0x4f, 0x5a, + 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, 0x21, + 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, 0x58, 0xcf, + 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, 0x40, + 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, 0xf8, 0x37, + 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, 0x6c, + 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, 0x47, 0x7a, + 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, 0x9e, + 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, 0xd9, 0x78, + 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0x08, 0x14, 0xd3, 0xa2, 0xd4, 0x52, 0x43, 0x1c, 0x32, 0xd4, 0x11, 0xac, 0x1c, + 0xce, 0x82, 0xad, 0x02, 0x29, 0x40, 0x7b, 0xbc, 0x48, 0x98, 0x56, 0x75, 0xe3, + 0xf8, 0x74, 0xa4, 0x53, 0x3f, 0x1d, + ], + [ + 0x3d, 0x51, 0xdd, 0xdd, 0xba, 0x5d, 0x65, 0x7b, 0x43, 0xee, 0x8d, 0xa6, 0x45, + 0x44, 0x38, 0x14, 0xcc, 0x73, 0x29, 0xf3, 0xe9, 0xb4, 0xe5, 0x4c, 0x23, 0x6c, + 0x29, 0xaf, 0x39, 0x23, 0x10, 0x17, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x6c, 0x47, 0x5b, 0x53, 0x23, 0xc5, 0x13, 0x4c, 0x13, 0x73, 0xf4, 0xe4, + 0x5a, 0xa0, 0x6f, 0xfe, 0x3f, 0x9d, 0xb2, 0xf1, 0x26, 0x71, 0x3f, 0xa5, + 0x29, 0x5c, 0x57, 0x5e, 0x4d, 0x3c, 0xdd, 0x3b, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x6c, 0x47, 0x5b, 0x53, 0x23, 0xc5, 0x13, 0x4c, 0x13, 0x73, 0xf4, 0xe4, + 0x5a, 0xa0, 0x6f, 0xfe, 0x3f, 0x9d, 0xb2, 0xf1, 0x26, 0x71, 0x3f, 0xa5, + 0x29, 0x5c, 0x57, 0x5e, 0x4d, 0x3c, 0xdd, 0x3b, + ], + ], + [ + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, + 0x96, 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, + 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x6c, 0x47, 0x5b, 0x53, 0x23, 0xc5, 0x13, 0x4c, 0x13, 0x73, 0xf4, 0xe4, + 0x5a, 0xa0, 0x6f, 0xfe, 0x3f, 0x9d, 0xb2, 0xf1, 0x26, 0x71, 0x3f, 0xa5, + 0x29, 0x5c, 0x57, 0x5e, 0x4d, 0x3c, 0xdd, 0x3b, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x6c, 0x47, 0x5b, 0x53, 0x23, 0xc5, 0x13, 0x4c, 0x13, 0x73, 0xf4, 0xe4, + 0x5a, 0xa0, 0x6f, 0xfe, 0x3f, 0x9d, 0xb2, 0xf1, 0x26, 0x71, 0x3f, 0xa5, + 0x29, 0x5c, 0x57, 0x5e, 0x4d, 0x3c, 0xdd, 0x3b, + ], + ], + [ + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, + 0xd3, 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, + 0x4f, 0x5a, 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x6c, 0x47, 0x5b, 0x53, 0x23, 0xc5, 0x13, 0x4c, 0x13, 0x73, 0xf4, 0xe4, + 0x5a, 0xa0, 0x6f, 0xfe, 0x3f, 0x9d, 0xb2, 0xf1, 0x26, 0x71, 0x3f, 0xa5, + 0x29, 0x5c, 0x57, 0x5e, 0x4d, 0x3c, 0xdd, 0x3b, + ], + ], + [ + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, + 0xc1, 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, + 0xce, 0xcb, 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x6c, 0x47, 0x5b, 0x53, 0x23, 0xc5, 0x13, 0x4c, 0x13, 0x73, 0xf4, 0xe4, + 0x5a, 0xa0, 0x6f, 0xfe, 0x3f, 0x9d, 0xb2, 0xf1, 0x26, 0x71, 0x3f, 0xa5, + 0x29, 0x5c, 0x57, 0x5e, 0x4d, 0x3c, 0xdd, 0x3b, + ], + ], + [ + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, + 0x40, 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, + 0xf8, 0x37, 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x6c, 0x47, 0x5b, 0x53, 0x23, 0xc5, 0x13, 0x4c, 0x13, 0x73, 0xf4, 0xe4, + 0x5a, 0xa0, 0x6f, 0xfe, 0x3f, 0x9d, 0xb2, 0xf1, 0x26, 0x71, 0x3f, 0xa5, + 0x29, 0x5c, 0x57, 0x5e, 0x4d, 0x3c, 0xdd, 0x3b, + ], + ], + [ + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, + 0x21, 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, + 0x58, 0xcf, 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x6c, 0x47, 0x5b, 0x53, 0x23, 0xc5, 0x13, 0x4c, 0x13, 0x73, 0xf4, 0xe4, + 0x5a, 0xa0, 0x6f, 0xfe, 0x3f, 0x9d, 0xb2, 0xf1, 0x26, 0x71, 0x3f, 0xa5, + 0x29, 0x5c, 0x57, 0x5e, 0x4d, 0x3c, 0xdd, 0x3b, + ], + ], + [ + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, + 0x9e, 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, + 0xd9, 0x78, 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0x46, 0x09, 0x4f, 0x1f, 0xf6, 0x74, 0xed, 0x31, 0x78, 0x9c, 0xb9, 0x8d, + 0xf7, 0x87, 0x03, 0x15, 0x99, 0xbe, 0xec, 0x9e, 0x8d, 0x0c, 0xac, 0xdf, + 0x08, 0x3e, 0xab, 0xf4, 0xab, 0x92, 0x41, 0x28, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, + 0x6c, 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, + 0x47, 0x7a, 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x46, 0x09, 0x4f, 0x1f, 0xf6, 0x74, 0xed, 0x31, 0x78, 0x9c, 0xb9, 0x8d, + 0xf7, 0x87, 0x03, 0x15, 0x99, 0xbe, 0xec, 0x9e, 0x8d, 0x0c, 0xac, 0xdf, + 0x08, 0x3e, 0xab, 0xf4, 0xab, 0x92, 0x41, 0x28, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x3d, 0x51, 0xdd, 0xdd, 0xba, 0x5d, 0x65, 0x7b, 0x43, 0xee, 0x8d, 0xa6, + 0x45, 0x44, 0x38, 0x14, 0xcc, 0x73, 0x29, 0xf3, 0xe9, 0xb4, 0xe5, 0x4c, + 0x23, 0x6c, 0x29, 0xaf, 0x39, 0x23, 0x10, 0x17, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x08, 0x14, 0xd3, 0xa2, 0xd4, 0x52, 0x43, 0x1c, 0x32, 0xd4, 0x11, 0xac, + 0x1c, 0xce, 0x82, 0xad, 0x02, 0x29, 0x40, 0x7b, 0xbc, 0x48, 0x98, 0x56, + 0x75, 0xe3, 0xf8, 0x74, 0xa4, 0x53, 0x3f, 0x1d, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0xc7, 0x41, 0x3f, 0x46, 0x14, 0xcd, 0x64, 0x04, 0x3a, 0xbb, 0xab, 0x7c, + 0xc1, 0x09, 0x5c, 0x9b, 0xb1, 0x04, 0x23, 0x1c, 0xea, 0x89, 0xe2, 0xc3, + 0xe0, 0xdf, 0x83, 0x76, 0x95, 0x56, 0xd0, 0x30, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + ], + root: [ + 0x63, 0x95, 0x13, 0x62, 0xb5, 0xd3, 0x14, 0x0d, 0x50, 0x17, 0x28, 0xf7, 0xff, 0xba, + 0x55, 0x0b, 0x09, 0x5b, 0x74, 0x5c, 0xf4, 0x7c, 0x4a, 0x76, 0x49, 0x66, 0x4b, 0x48, + 0xe4, 0x35, 0xdf, 0x1a, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, + 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, 0xc1, + 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, 0xce, 0xcb, + 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, 0xd3, + 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, 0x4f, 0x5a, + 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, 0x21, + 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, 0x58, 0xcf, + 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, 0x40, + 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, 0xf8, 0x37, + 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, 0x6c, + 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, 0x47, 0x7a, + 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, 0x9e, + 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, 0xd9, 0x78, + 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0x08, 0x14, 0xd3, 0xa2, 0xd4, 0x52, 0x43, 0x1c, 0x32, 0xd4, 0x11, 0xac, 0x1c, + 0xce, 0x82, 0xad, 0x02, 0x29, 0x40, 0x7b, 0xbc, 0x48, 0x98, 0x56, 0x75, 0xe3, + 0xf8, 0x74, 0xa4, 0x53, 0x3f, 0x1d, + ], + [ + 0x3d, 0x51, 0xdd, 0xdd, 0xba, 0x5d, 0x65, 0x7b, 0x43, 0xee, 0x8d, 0xa6, 0x45, + 0x44, 0x38, 0x14, 0xcc, 0x73, 0x29, 0xf3, 0xe9, 0xb4, 0xe5, 0x4c, 0x23, 0x6c, + 0x29, 0xaf, 0x39, 0x23, 0x10, 0x17, + ], + [ + 0x73, 0x6c, 0x23, 0x35, 0x7c, 0x85, 0xf4, 0x57, 0x91, 0xe1, 0x70, 0x80, 0x29, + 0xd9, 0x82, 0x4d, 0x90, 0x70, 0x46, 0x07, 0xf3, 0x87, 0xa0, 0x3e, 0x49, 0xbf, + 0x98, 0x36, 0x57, 0x44, 0x31, 0x34, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x62, 0xc9, 0xeb, 0xa7, 0x6b, 0x88, 0x30, 0x0e, 0x1b, 0x42, 0xd4, 0xc5, + 0xd8, 0x1c, 0x4b, 0x7d, 0x7a, 0xb4, 0x49, 0xd9, 0xaa, 0x2c, 0x8f, 0xc8, + 0x06, 0x0c, 0x3f, 0xbd, 0x5a, 0xfd, 0xf8, 0x0d, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x62, 0xc9, 0xeb, 0xa7, 0x6b, 0x88, 0x30, 0x0e, 0x1b, 0x42, 0xd4, 0xc5, + 0xd8, 0x1c, 0x4b, 0x7d, 0x7a, 0xb4, 0x49, 0xd9, 0xaa, 0x2c, 0x8f, 0xc8, + 0x06, 0x0c, 0x3f, 0xbd, 0x5a, 0xfd, 0xf8, 0x0d, + ], + ], + [ + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, + 0x96, 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, + 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x62, 0xc9, 0xeb, 0xa7, 0x6b, 0x88, 0x30, 0x0e, 0x1b, 0x42, 0xd4, 0xc5, + 0xd8, 0x1c, 0x4b, 0x7d, 0x7a, 0xb4, 0x49, 0xd9, 0xaa, 0x2c, 0x8f, 0xc8, + 0x06, 0x0c, 0x3f, 0xbd, 0x5a, 0xfd, 0xf8, 0x0d, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x62, 0xc9, 0xeb, 0xa7, 0x6b, 0x88, 0x30, 0x0e, 0x1b, 0x42, 0xd4, 0xc5, + 0xd8, 0x1c, 0x4b, 0x7d, 0x7a, 0xb4, 0x49, 0xd9, 0xaa, 0x2c, 0x8f, 0xc8, + 0x06, 0x0c, 0x3f, 0xbd, 0x5a, 0xfd, 0xf8, 0x0d, + ], + ], + [ + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, + 0xd3, 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, + 0x4f, 0x5a, 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x62, 0xc9, 0xeb, 0xa7, 0x6b, 0x88, 0x30, 0x0e, 0x1b, 0x42, 0xd4, 0xc5, + 0xd8, 0x1c, 0x4b, 0x7d, 0x7a, 0xb4, 0x49, 0xd9, 0xaa, 0x2c, 0x8f, 0xc8, + 0x06, 0x0c, 0x3f, 0xbd, 0x5a, 0xfd, 0xf8, 0x0d, + ], + ], + [ + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, + 0xc1, 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, + 0xce, 0xcb, 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x62, 0xc9, 0xeb, 0xa7, 0x6b, 0x88, 0x30, 0x0e, 0x1b, 0x42, 0xd4, 0xc5, + 0xd8, 0x1c, 0x4b, 0x7d, 0x7a, 0xb4, 0x49, 0xd9, 0xaa, 0x2c, 0x8f, 0xc8, + 0x06, 0x0c, 0x3f, 0xbd, 0x5a, 0xfd, 0xf8, 0x0d, + ], + ], + [ + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, + 0x40, 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, + 0xf8, 0x37, 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x62, 0xc9, 0xeb, 0xa7, 0x6b, 0x88, 0x30, 0x0e, 0x1b, 0x42, 0xd4, 0xc5, + 0xd8, 0x1c, 0x4b, 0x7d, 0x7a, 0xb4, 0x49, 0xd9, 0xaa, 0x2c, 0x8f, 0xc8, + 0x06, 0x0c, 0x3f, 0xbd, 0x5a, 0xfd, 0xf8, 0x0d, + ], + ], + [ + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, + 0x21, 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, + 0x58, 0xcf, 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x62, 0xc9, 0xeb, 0xa7, 0x6b, 0x88, 0x30, 0x0e, 0x1b, 0x42, 0xd4, 0xc5, + 0xd8, 0x1c, 0x4b, 0x7d, 0x7a, 0xb4, 0x49, 0xd9, 0xaa, 0x2c, 0x8f, 0xc8, + 0x06, 0x0c, 0x3f, 0xbd, 0x5a, 0xfd, 0xf8, 0x0d, + ], + ], + [ + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, + 0x9e, 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, + 0xd9, 0x78, 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0x46, 0x09, 0x4f, 0x1f, 0xf6, 0x74, 0xed, 0x31, 0x78, 0x9c, 0xb9, 0x8d, + 0xf7, 0x87, 0x03, 0x15, 0x99, 0xbe, 0xec, 0x9e, 0x8d, 0x0c, 0xac, 0xdf, + 0x08, 0x3e, 0xab, 0xf4, 0xab, 0x92, 0x41, 0x28, + ], + [ + 0x6f, 0x2a, 0x0e, 0x27, 0x97, 0x38, 0xb5, 0x7f, 0xaa, 0x2e, 0xf8, 0xce, + 0xdd, 0x29, 0x4d, 0xd3, 0xab, 0x5f, 0x68, 0xf6, 0x65, 0xe8, 0x65, 0x8c, + 0x03, 0x10, 0xe3, 0xa0, 0xcd, 0x37, 0x38, 0x3c, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, + 0x6c, 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, + 0x47, 0x7a, 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x46, 0x09, 0x4f, 0x1f, 0xf6, 0x74, 0xed, 0x31, 0x78, 0x9c, 0xb9, 0x8d, + 0xf7, 0x87, 0x03, 0x15, 0x99, 0xbe, 0xec, 0x9e, 0x8d, 0x0c, 0xac, 0xdf, + 0x08, 0x3e, 0xab, 0xf4, 0xab, 0x92, 0x41, 0x28, + ], + [ + 0x6f, 0x2a, 0x0e, 0x27, 0x97, 0x38, 0xb5, 0x7f, 0xaa, 0x2e, 0xf8, 0xce, + 0xdd, 0x29, 0x4d, 0xd3, 0xab, 0x5f, 0x68, 0xf6, 0x65, 0xe8, 0x65, 0x8c, + 0x03, 0x10, 0xe3, 0xa0, 0xcd, 0x37, 0x38, 0x3c, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x3d, 0x51, 0xdd, 0xdd, 0xba, 0x5d, 0x65, 0x7b, 0x43, 0xee, 0x8d, 0xa6, + 0x45, 0x44, 0x38, 0x14, 0xcc, 0x73, 0x29, 0xf3, 0xe9, 0xb4, 0xe5, 0x4c, + 0x23, 0x6c, 0x29, 0xaf, 0x39, 0x23, 0x10, 0x17, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0x6f, 0x2a, 0x0e, 0x27, 0x97, 0x38, 0xb5, 0x7f, 0xaa, 0x2e, 0xf8, 0xce, + 0xdd, 0x29, 0x4d, 0xd3, 0xab, 0x5f, 0x68, 0xf6, 0x65, 0xe8, 0x65, 0x8c, + 0x03, 0x10, 0xe3, 0xa0, 0xcd, 0x37, 0x38, 0x3c, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x08, 0x14, 0xd3, 0xa2, 0xd4, 0x52, 0x43, 0x1c, 0x32, 0xd4, 0x11, 0xac, + 0x1c, 0xce, 0x82, 0xad, 0x02, 0x29, 0x40, 0x7b, 0xbc, 0x48, 0x98, 0x56, + 0x75, 0xe3, 0xf8, 0x74, 0xa4, 0x53, 0x3f, 0x1d, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0x6f, 0x2a, 0x0e, 0x27, 0x97, 0x38, 0xb5, 0x7f, 0xaa, 0x2e, 0xf8, 0xce, + 0xdd, 0x29, 0x4d, 0xd3, 0xab, 0x5f, 0x68, 0xf6, 0x65, 0xe8, 0x65, 0x8c, + 0x03, 0x10, 0xe3, 0xa0, 0xcd, 0x37, 0x38, 0x3c, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x73, 0x6c, 0x23, 0x35, 0x7c, 0x85, 0xf4, 0x57, 0x91, 0xe1, 0x70, 0x80, + 0x29, 0xd9, 0x82, 0x4d, 0x90, 0x70, 0x46, 0x07, 0xf3, 0x87, 0xa0, 0x3e, + 0x49, 0xbf, 0x98, 0x36, 0x57, 0x44, 0x31, 0x34, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x7c, 0x57, 0xbe, 0x94, 0x53, 0x38, 0x59, 0x79, 0xee, 0xdf, 0xd0, 0x5f, + 0x49, 0x24, 0x0b, 0x9d, 0x3c, 0x5b, 0x5f, 0xfd, 0x48, 0x81, 0x53, 0x26, + 0x2d, 0x0d, 0xc1, 0xec, 0x7b, 0x23, 0x96, 0x19, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x7c, 0x57, 0xbe, 0x94, 0x53, 0x38, 0x59, 0x79, 0xee, 0xdf, 0xd0, 0x5f, + 0x49, 0x24, 0x0b, 0x9d, 0x3c, 0x5b, 0x5f, 0xfd, 0x48, 0x81, 0x53, 0x26, + 0x2d, 0x0d, 0xc1, 0xec, 0x7b, 0x23, 0x96, 0x19, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + ], + root: [ + 0xba, 0x7e, 0x15, 0x28, 0x16, 0x2e, 0x1d, 0xcb, 0x04, 0x29, 0x7b, 0xce, 0x6c, 0xdf, + 0xf1, 0xd0, 0x1d, 0xfd, 0xad, 0xdb, 0xe5, 0x26, 0x23, 0xf9, 0x55, 0x4e, 0xc9, 0xb1, + 0xed, 0x0a, 0x39, 0x35, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, + 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, 0xc1, + 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, 0xce, 0xcb, + 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, 0xd3, + 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, 0x4f, 0x5a, + 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, 0x21, + 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, 0x58, 0xcf, + 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, 0x40, + 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, 0xf8, 0x37, + 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, 0x6c, + 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, 0x47, 0x7a, + 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, 0x9e, + 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, 0xd9, 0x78, + 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0x08, 0x14, 0xd3, 0xa2, 0xd4, 0x52, 0x43, 0x1c, 0x32, 0xd4, 0x11, 0xac, 0x1c, + 0xce, 0x82, 0xad, 0x02, 0x29, 0x40, 0x7b, 0xbc, 0x48, 0x98, 0x56, 0x75, 0xe3, + 0xf8, 0x74, 0xa4, 0x53, 0x3f, 0x1d, + ], + [ + 0x3d, 0x51, 0xdd, 0xdd, 0xba, 0x5d, 0x65, 0x7b, 0x43, 0xee, 0x8d, 0xa6, 0x45, + 0x44, 0x38, 0x14, 0xcc, 0x73, 0x29, 0xf3, 0xe9, 0xb4, 0xe5, 0x4c, 0x23, 0x6c, + 0x29, 0xaf, 0x39, 0x23, 0x10, 0x17, + ], + [ + 0x73, 0x6c, 0x23, 0x35, 0x7c, 0x85, 0xf4, 0x57, 0x91, 0xe1, 0x70, 0x80, 0x29, + 0xd9, 0x82, 0x4d, 0x90, 0x70, 0x46, 0x07, 0xf3, 0x87, 0xa0, 0x3e, 0x49, 0xbf, + 0x98, 0x36, 0x57, 0x44, 0x31, 0x34, + ], + [ + 0x0c, 0x05, 0x36, 0xac, 0xdd, 0xf6, 0xf1, 0xae, 0xab, 0x01, 0x6b, 0x6b, 0xc1, + 0xec, 0x14, 0x4b, 0x4e, 0x55, 0x3a, 0xcf, 0xd6, 0x70, 0xf7, 0x7e, 0x75, 0x5f, + 0xc8, 0x8e, 0x06, 0x77, 0xe3, 0x1b, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0xef, 0xc6, 0x93, 0xeb, 0xc0, 0x1b, 0xa5, 0x8e, 0xa2, 0x5c, 0x14, 0x2b, + 0xf7, 0xc9, 0xdb, 0x0a, 0xe4, 0x69, 0x1a, 0xe3, 0x2b, 0x4c, 0x6a, 0xb7, + 0x46, 0x40, 0x3c, 0xac, 0x0d, 0x33, 0x19, 0x23, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0xef, 0xc6, 0x93, 0xeb, 0xc0, 0x1b, 0xa5, 0x8e, 0xa2, 0x5c, 0x14, 0x2b, + 0xf7, 0xc9, 0xdb, 0x0a, 0xe4, 0x69, 0x1a, 0xe3, 0x2b, 0x4c, 0x6a, 0xb7, + 0x46, 0x40, 0x3c, 0xac, 0x0d, 0x33, 0x19, 0x23, + ], + ], + [ + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, + 0x96, 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, + 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0xef, 0xc6, 0x93, 0xeb, 0xc0, 0x1b, 0xa5, 0x8e, 0xa2, 0x5c, 0x14, 0x2b, + 0xf7, 0xc9, 0xdb, 0x0a, 0xe4, 0x69, 0x1a, 0xe3, 0x2b, 0x4c, 0x6a, 0xb7, + 0x46, 0x40, 0x3c, 0xac, 0x0d, 0x33, 0x19, 0x23, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0xef, 0xc6, 0x93, 0xeb, 0xc0, 0x1b, 0xa5, 0x8e, 0xa2, 0x5c, 0x14, 0x2b, + 0xf7, 0xc9, 0xdb, 0x0a, 0xe4, 0x69, 0x1a, 0xe3, 0x2b, 0x4c, 0x6a, 0xb7, + 0x46, 0x40, 0x3c, 0xac, 0x0d, 0x33, 0x19, 0x23, + ], + ], + [ + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, + 0xd3, 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, + 0x4f, 0x5a, 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0xef, 0xc6, 0x93, 0xeb, 0xc0, 0x1b, 0xa5, 0x8e, 0xa2, 0x5c, 0x14, 0x2b, + 0xf7, 0xc9, 0xdb, 0x0a, 0xe4, 0x69, 0x1a, 0xe3, 0x2b, 0x4c, 0x6a, 0xb7, + 0x46, 0x40, 0x3c, 0xac, 0x0d, 0x33, 0x19, 0x23, + ], + ], + [ + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, + 0xc1, 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, + 0xce, 0xcb, 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0xef, 0xc6, 0x93, 0xeb, 0xc0, 0x1b, 0xa5, 0x8e, 0xa2, 0x5c, 0x14, 0x2b, + 0xf7, 0xc9, 0xdb, 0x0a, 0xe4, 0x69, 0x1a, 0xe3, 0x2b, 0x4c, 0x6a, 0xb7, + 0x46, 0x40, 0x3c, 0xac, 0x0d, 0x33, 0x19, 0x23, + ], + ], + [ + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, + 0x40, 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, + 0xf8, 0x37, 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0xef, 0xc6, 0x93, 0xeb, 0xc0, 0x1b, 0xa5, 0x8e, 0xa2, 0x5c, 0x14, 0x2b, + 0xf7, 0xc9, 0xdb, 0x0a, 0xe4, 0x69, 0x1a, 0xe3, 0x2b, 0x4c, 0x6a, 0xb7, + 0x46, 0x40, 0x3c, 0xac, 0x0d, 0x33, 0x19, 0x23, + ], + ], + [ + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, + 0x21, 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, + 0x58, 0xcf, 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0xef, 0xc6, 0x93, 0xeb, 0xc0, 0x1b, 0xa5, 0x8e, 0xa2, 0x5c, 0x14, 0x2b, + 0xf7, 0xc9, 0xdb, 0x0a, 0xe4, 0x69, 0x1a, 0xe3, 0x2b, 0x4c, 0x6a, 0xb7, + 0x46, 0x40, 0x3c, 0xac, 0x0d, 0x33, 0x19, 0x23, + ], + ], + [ + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, + 0x9e, 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, + 0xd9, 0x78, 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0x46, 0x09, 0x4f, 0x1f, 0xf6, 0x74, 0xed, 0x31, 0x78, 0x9c, 0xb9, 0x8d, + 0xf7, 0x87, 0x03, 0x15, 0x99, 0xbe, 0xec, 0x9e, 0x8d, 0x0c, 0xac, 0xdf, + 0x08, 0x3e, 0xab, 0xf4, 0xab, 0x92, 0x41, 0x28, + ], + [ + 0xd6, 0xd4, 0x00, 0x14, 0x59, 0xfa, 0xb1, 0x91, 0xf0, 0xc7, 0xee, 0x8f, + 0x37, 0x63, 0x6b, 0xfb, 0xb4, 0x5e, 0x83, 0xbb, 0xef, 0x32, 0xf6, 0xdf, + 0x82, 0xe6, 0x5c, 0x3a, 0xb6, 0xe3, 0x8e, 0x2f, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, + 0x6c, 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, + 0x47, 0x7a, 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x46, 0x09, 0x4f, 0x1f, 0xf6, 0x74, 0xed, 0x31, 0x78, 0x9c, 0xb9, 0x8d, + 0xf7, 0x87, 0x03, 0x15, 0x99, 0xbe, 0xec, 0x9e, 0x8d, 0x0c, 0xac, 0xdf, + 0x08, 0x3e, 0xab, 0xf4, 0xab, 0x92, 0x41, 0x28, + ], + [ + 0xd6, 0xd4, 0x00, 0x14, 0x59, 0xfa, 0xb1, 0x91, 0xf0, 0xc7, 0xee, 0x8f, + 0x37, 0x63, 0x6b, 0xfb, 0xb4, 0x5e, 0x83, 0xbb, 0xef, 0x32, 0xf6, 0xdf, + 0x82, 0xe6, 0x5c, 0x3a, 0xb6, 0xe3, 0x8e, 0x2f, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x3d, 0x51, 0xdd, 0xdd, 0xba, 0x5d, 0x65, 0x7b, 0x43, 0xee, 0x8d, 0xa6, + 0x45, 0x44, 0x38, 0x14, 0xcc, 0x73, 0x29, 0xf3, 0xe9, 0xb4, 0xe5, 0x4c, + 0x23, 0x6c, 0x29, 0xaf, 0x39, 0x23, 0x10, 0x17, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0xd6, 0xd4, 0x00, 0x14, 0x59, 0xfa, 0xb1, 0x91, 0xf0, 0xc7, 0xee, 0x8f, + 0x37, 0x63, 0x6b, 0xfb, 0xb4, 0x5e, 0x83, 0xbb, 0xef, 0x32, 0xf6, 0xdf, + 0x82, 0xe6, 0x5c, 0x3a, 0xb6, 0xe3, 0x8e, 0x2f, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x08, 0x14, 0xd3, 0xa2, 0xd4, 0x52, 0x43, 0x1c, 0x32, 0xd4, 0x11, 0xac, + 0x1c, 0xce, 0x82, 0xad, 0x02, 0x29, 0x40, 0x7b, 0xbc, 0x48, 0x98, 0x56, + 0x75, 0xe3, 0xf8, 0x74, 0xa4, 0x53, 0x3f, 0x1d, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0xd6, 0xd4, 0x00, 0x14, 0x59, 0xfa, 0xb1, 0x91, 0xf0, 0xc7, 0xee, 0x8f, + 0x37, 0x63, 0x6b, 0xfb, 0xb4, 0x5e, 0x83, 0xbb, 0xef, 0x32, 0xf6, 0xdf, + 0x82, 0xe6, 0x5c, 0x3a, 0xb6, 0xe3, 0x8e, 0x2f, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x0c, 0x05, 0x36, 0xac, 0xdd, 0xf6, 0xf1, 0xae, 0xab, 0x01, 0x6b, 0x6b, + 0xc1, 0xec, 0x14, 0x4b, 0x4e, 0x55, 0x3a, 0xcf, 0xd6, 0x70, 0xf7, 0x7e, + 0x75, 0x5f, 0xc8, 0x8e, 0x06, 0x77, 0xe3, 0x1b, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x73, 0x6c, 0x23, 0x35, 0x7c, 0x85, 0xf4, 0x57, 0x91, 0xe1, 0x70, 0x80, + 0x29, 0xd9, 0x82, 0x4d, 0x90, 0x70, 0x46, 0x07, 0xf3, 0x87, 0xa0, 0x3e, + 0x49, 0xbf, 0x98, 0x36, 0x57, 0x44, 0x31, 0x34, + ], + [ + 0xd1, 0xab, 0x25, 0x07, 0xc8, 0x09, 0xc2, 0x71, 0x3c, 0x00, 0x0f, 0x52, + 0x5e, 0x9f, 0xbd, 0xcb, 0x06, 0xc9, 0x58, 0x38, 0x4e, 0x51, 0xb9, 0xcc, + 0x7f, 0x79, 0x2d, 0xde, 0x6c, 0x97, 0xf4, 0x11, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xdf, 0x72, 0x50, 0xf8, 0xe8, 0x0b, 0xfe, 0x2c, 0xde, 0xe3, 0xad, 0x5e, + 0x3a, 0x14, 0x56, 0x6a, 0xbc, 0xec, 0xe0, 0x29, 0x62, 0x87, 0xc0, 0x5b, + 0x4b, 0xdd, 0x09, 0xc0, 0x0e, 0x7a, 0xc6, 0x3f, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xdf, 0x72, 0x50, 0xf8, 0xe8, 0x0b, 0xfe, 0x2c, 0xde, 0xe3, 0xad, 0x5e, + 0x3a, 0x14, 0x56, 0x6a, 0xbc, 0xec, 0xe0, 0x29, 0x62, 0x87, 0xc0, 0x5b, + 0x4b, 0xdd, 0x09, 0xc0, 0x0e, 0x7a, 0xc6, 0x3f, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + ], + root: [ + 0xb2, 0x20, 0xf4, 0xe4, 0xa0, 0x7b, 0x29, 0x40, 0xb3, 0xb0, 0xa4, 0x78, 0x25, 0x67, + 0xcc, 0xd4, 0x7f, 0xe4, 0x7c, 0x33, 0x7c, 0x21, 0x66, 0x7f, 0x54, 0xbb, 0xcf, 0x8a, + 0xeb, 0xcd, 0x24, 0x3f, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, + 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, 0xc1, + 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, 0xce, 0xcb, + 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, 0xd3, + 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, 0x4f, 0x5a, + 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, 0x21, + 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, 0x58, 0xcf, + 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, 0x40, + 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, 0xf8, 0x37, + 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, 0x6c, + 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, 0x47, 0x7a, + 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, 0x9e, + 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, 0xd9, 0x78, + 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0x08, 0x14, 0xd3, 0xa2, 0xd4, 0x52, 0x43, 0x1c, 0x32, 0xd4, 0x11, 0xac, 0x1c, + 0xce, 0x82, 0xad, 0x02, 0x29, 0x40, 0x7b, 0xbc, 0x48, 0x98, 0x56, 0x75, 0xe3, + 0xf8, 0x74, 0xa4, 0x53, 0x3f, 0x1d, + ], + [ + 0x3d, 0x51, 0xdd, 0xdd, 0xba, 0x5d, 0x65, 0x7b, 0x43, 0xee, 0x8d, 0xa6, 0x45, + 0x44, 0x38, 0x14, 0xcc, 0x73, 0x29, 0xf3, 0xe9, 0xb4, 0xe5, 0x4c, 0x23, 0x6c, + 0x29, 0xaf, 0x39, 0x23, 0x10, 0x17, + ], + [ + 0x73, 0x6c, 0x23, 0x35, 0x7c, 0x85, 0xf4, 0x57, 0x91, 0xe1, 0x70, 0x80, 0x29, + 0xd9, 0x82, 0x4d, 0x90, 0x70, 0x46, 0x07, 0xf3, 0x87, 0xa0, 0x3e, 0x49, 0xbf, + 0x98, 0x36, 0x57, 0x44, 0x31, 0x34, + ], + [ + 0x0c, 0x05, 0x36, 0xac, 0xdd, 0xf6, 0xf1, 0xae, 0xab, 0x01, 0x6b, 0x6b, 0xc1, + 0xec, 0x14, 0x4b, 0x4e, 0x55, 0x3a, 0xcf, 0xd6, 0x70, 0xf7, 0x7e, 0x75, 0x5f, + 0xc8, 0x8e, 0x06, 0x77, 0xe3, 0x1b, + ], + [ + 0xa4, 0x59, 0xb4, 0x4e, 0x30, 0x77, 0x68, 0x95, 0x8f, 0xe3, 0x78, 0x9d, 0x41, + 0xc2, 0xb1, 0xff, 0x43, 0x4c, 0xb3, 0x0e, 0x15, 0x91, 0x4f, 0x01, 0xbc, 0x6b, + 0xc2, 0x30, 0x7b, 0x48, 0x8d, 0x25, + ], + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x35, 0x70, 0xdc, 0xcc, 0xcb, 0xa8, 0x86, 0xc8, 0x06, 0x08, 0x02, 0x46, + 0x1a, 0xa3, 0x86, 0x76, 0x17, 0x9e, 0x32, 0xdb, 0x80, 0x78, 0xaa, 0x83, + 0x83, 0xbd, 0x31, 0x95, 0x9d, 0x00, 0xe8, 0x34, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x35, 0x70, 0xdc, 0xcc, 0xcb, 0xa8, 0x86, 0xc8, 0x06, 0x08, 0x02, 0x46, + 0x1a, 0xa3, 0x86, 0x76, 0x17, 0x9e, 0x32, 0xdb, 0x80, 0x78, 0xaa, 0x83, + 0x83, 0xbd, 0x31, 0x95, 0x9d, 0x00, 0xe8, 0x34, + ], + ], + [ + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, + 0x96, 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, + 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x35, 0x70, 0xdc, 0xcc, 0xcb, 0xa8, 0x86, 0xc8, 0x06, 0x08, 0x02, 0x46, + 0x1a, 0xa3, 0x86, 0x76, 0x17, 0x9e, 0x32, 0xdb, 0x80, 0x78, 0xaa, 0x83, + 0x83, 0xbd, 0x31, 0x95, 0x9d, 0x00, 0xe8, 0x34, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x35, 0x70, 0xdc, 0xcc, 0xcb, 0xa8, 0x86, 0xc8, 0x06, 0x08, 0x02, 0x46, + 0x1a, 0xa3, 0x86, 0x76, 0x17, 0x9e, 0x32, 0xdb, 0x80, 0x78, 0xaa, 0x83, + 0x83, 0xbd, 0x31, 0x95, 0x9d, 0x00, 0xe8, 0x34, + ], + ], + [ + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, + 0xd3, 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, + 0x4f, 0x5a, 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x35, 0x70, 0xdc, 0xcc, 0xcb, 0xa8, 0x86, 0xc8, 0x06, 0x08, 0x02, 0x46, + 0x1a, 0xa3, 0x86, 0x76, 0x17, 0x9e, 0x32, 0xdb, 0x80, 0x78, 0xaa, 0x83, + 0x83, 0xbd, 0x31, 0x95, 0x9d, 0x00, 0xe8, 0x34, + ], + ], + [ + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, + 0xc1, 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, + 0xce, 0xcb, 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x35, 0x70, 0xdc, 0xcc, 0xcb, 0xa8, 0x86, 0xc8, 0x06, 0x08, 0x02, 0x46, + 0x1a, 0xa3, 0x86, 0x76, 0x17, 0x9e, 0x32, 0xdb, 0x80, 0x78, 0xaa, 0x83, + 0x83, 0xbd, 0x31, 0x95, 0x9d, 0x00, 0xe8, 0x34, + ], + ], + [ + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, + 0x40, 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, + 0xf8, 0x37, 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x35, 0x70, 0xdc, 0xcc, 0xcb, 0xa8, 0x86, 0xc8, 0x06, 0x08, 0x02, 0x46, + 0x1a, 0xa3, 0x86, 0x76, 0x17, 0x9e, 0x32, 0xdb, 0x80, 0x78, 0xaa, 0x83, + 0x83, 0xbd, 0x31, 0x95, 0x9d, 0x00, 0xe8, 0x34, + ], + ], + [ + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, + 0x21, 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, + 0x58, 0xcf, 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x35, 0x70, 0xdc, 0xcc, 0xcb, 0xa8, 0x86, 0xc8, 0x06, 0x08, 0x02, 0x46, + 0x1a, 0xa3, 0x86, 0x76, 0x17, 0x9e, 0x32, 0xdb, 0x80, 0x78, 0xaa, 0x83, + 0x83, 0xbd, 0x31, 0x95, 0x9d, 0x00, 0xe8, 0x34, + ], + ], + [ + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, + 0x9e, 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, + 0xd9, 0x78, 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0x46, 0x09, 0x4f, 0x1f, 0xf6, 0x74, 0xed, 0x31, 0x78, 0x9c, 0xb9, 0x8d, + 0xf7, 0x87, 0x03, 0x15, 0x99, 0xbe, 0xec, 0x9e, 0x8d, 0x0c, 0xac, 0xdf, + 0x08, 0x3e, 0xab, 0xf4, 0xab, 0x92, 0x41, 0x28, + ], + [ + 0x25, 0x91, 0x65, 0x4d, 0xb4, 0xd0, 0x7c, 0x87, 0x02, 0x82, 0xb6, 0x9a, + 0x80, 0x5f, 0xb1, 0x06, 0xac, 0x62, 0xcf, 0xc9, 0xc1, 0xd1, 0x52, 0xc8, + 0x00, 0x14, 0x3a, 0x26, 0xcb, 0x1d, 0x66, 0x0f, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, + 0x6c, 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, + 0x47, 0x7a, 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x46, 0x09, 0x4f, 0x1f, 0xf6, 0x74, 0xed, 0x31, 0x78, 0x9c, 0xb9, 0x8d, + 0xf7, 0x87, 0x03, 0x15, 0x99, 0xbe, 0xec, 0x9e, 0x8d, 0x0c, 0xac, 0xdf, + 0x08, 0x3e, 0xab, 0xf4, 0xab, 0x92, 0x41, 0x28, + ], + [ + 0x25, 0x91, 0x65, 0x4d, 0xb4, 0xd0, 0x7c, 0x87, 0x02, 0x82, 0xb6, 0x9a, + 0x80, 0x5f, 0xb1, 0x06, 0xac, 0x62, 0xcf, 0xc9, 0xc1, 0xd1, 0x52, 0xc8, + 0x00, 0x14, 0x3a, 0x26, 0xcb, 0x1d, 0x66, 0x0f, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x3d, 0x51, 0xdd, 0xdd, 0xba, 0x5d, 0x65, 0x7b, 0x43, 0xee, 0x8d, 0xa6, + 0x45, 0x44, 0x38, 0x14, 0xcc, 0x73, 0x29, 0xf3, 0xe9, 0xb4, 0xe5, 0x4c, + 0x23, 0x6c, 0x29, 0xaf, 0x39, 0x23, 0x10, 0x17, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0x25, 0x91, 0x65, 0x4d, 0xb4, 0xd0, 0x7c, 0x87, 0x02, 0x82, 0xb6, 0x9a, + 0x80, 0x5f, 0xb1, 0x06, 0xac, 0x62, 0xcf, 0xc9, 0xc1, 0xd1, 0x52, 0xc8, + 0x00, 0x14, 0x3a, 0x26, 0xcb, 0x1d, 0x66, 0x0f, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x08, 0x14, 0xd3, 0xa2, 0xd4, 0x52, 0x43, 0x1c, 0x32, 0xd4, 0x11, 0xac, + 0x1c, 0xce, 0x82, 0xad, 0x02, 0x29, 0x40, 0x7b, 0xbc, 0x48, 0x98, 0x56, + 0x75, 0xe3, 0xf8, 0x74, 0xa4, 0x53, 0x3f, 0x1d, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0x25, 0x91, 0x65, 0x4d, 0xb4, 0xd0, 0x7c, 0x87, 0x02, 0x82, 0xb6, 0x9a, + 0x80, 0x5f, 0xb1, 0x06, 0xac, 0x62, 0xcf, 0xc9, 0xc1, 0xd1, 0x52, 0xc8, + 0x00, 0x14, 0x3a, 0x26, 0xcb, 0x1d, 0x66, 0x0f, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x0c, 0x05, 0x36, 0xac, 0xdd, 0xf6, 0xf1, 0xae, 0xab, 0x01, 0x6b, 0x6b, + 0xc1, 0xec, 0x14, 0x4b, 0x4e, 0x55, 0x3a, 0xcf, 0xd6, 0x70, 0xf7, 0x7e, + 0x75, 0x5f, 0xc8, 0x8e, 0x06, 0x77, 0xe3, 0x1b, + ], + [ + 0x77, 0x53, 0x89, 0x37, 0xa1, 0x80, 0xd9, 0x2a, 0x37, 0xbf, 0xd5, 0x55, + 0xc5, 0xe2, 0x38, 0x50, 0xe6, 0xf4, 0x6c, 0xc3, 0xf4, 0xed, 0xe6, 0x8f, + 0x00, 0x0a, 0x16, 0x4f, 0x45, 0xa7, 0x9d, 0x04, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x73, 0x6c, 0x23, 0x35, 0x7c, 0x85, 0xf4, 0x57, 0x91, 0xe1, 0x70, 0x80, + 0x29, 0xd9, 0x82, 0x4d, 0x90, 0x70, 0x46, 0x07, 0xf3, 0x87, 0xa0, 0x3e, + 0x49, 0xbf, 0x98, 0x36, 0x57, 0x44, 0x31, 0x34, + ], + [ + 0x77, 0x53, 0x89, 0x37, 0xa1, 0x80, 0xd9, 0x2a, 0x37, 0xbf, 0xd5, 0x55, + 0xc5, 0xe2, 0x38, 0x50, 0xe6, 0xf4, 0x6c, 0xc3, 0xf4, 0xed, 0xe6, 0x8f, + 0x00, 0x0a, 0x16, 0x4f, 0x45, 0xa7, 0x9d, 0x04, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + [ + 0xdf, 0x72, 0x50, 0xf8, 0xe8, 0x0b, 0xfe, 0x2c, 0xde, 0xe3, 0xad, 0x5e, + 0x3a, 0x14, 0x56, 0x6a, 0xbc, 0xec, 0xe0, 0x29, 0x62, 0x87, 0xc0, 0x5b, + 0x4b, 0xdd, 0x09, 0xc0, 0x0e, 0x7a, 0xc6, 0x3f, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0xa4, 0x59, 0xb4, 0x4e, 0x30, 0x77, 0x68, 0x95, 0x8f, 0xe3, 0x78, 0x9d, + 0x41, 0xc2, 0xb1, 0xff, 0x43, 0x4c, 0xb3, 0x0e, 0x15, 0x91, 0x4f, 0x01, + 0xbc, 0x6b, 0xc2, 0x30, 0x7b, 0x48, 0x8d, 0x25, + ], + [ + 0xdf, 0x72, 0x50, 0xf8, 0xe8, 0x0b, 0xfe, 0x2c, 0xde, 0xe3, 0xad, 0x5e, + 0x3a, 0x14, 0x56, 0x6a, 0xbc, 0xec, 0xe0, 0x29, 0x62, 0x87, 0xc0, 0x5b, + 0x4b, 0xdd, 0x09, 0xc0, 0x0e, 0x7a, 0xc6, 0x3f, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + ], + root: [ + 0x63, 0x04, 0x06, 0x20, 0xca, 0xe8, 0x86, 0xb9, 0xa7, 0x5f, 0x97, 0x81, 0x1b, 0x26, + 0x37, 0x57, 0xda, 0x16, 0x6b, 0xca, 0xa6, 0x51, 0x79, 0x96, 0xa7, 0x5d, 0x8c, 0xb7, + 0x17, 0xd2, 0x29, 0x25, + ], + }, + TestVector { + leaves: [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, + 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, + 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, + 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, + 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, + 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, + 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, 0xc1, + 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, 0xce, 0xcb, + 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, 0xd3, + 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, 0x4f, 0x5a, + 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, 0x21, + 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, 0x58, 0xcf, + 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, 0x40, + 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, 0xf8, 0x37, + 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, 0x6c, + 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, 0x47, 0x7a, + 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, 0x9e, + 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, 0xd9, 0x78, + 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0x08, 0x14, 0xd3, 0xa2, 0xd4, 0x52, 0x43, 0x1c, 0x32, 0xd4, 0x11, 0xac, 0x1c, + 0xce, 0x82, 0xad, 0x02, 0x29, 0x40, 0x7b, 0xbc, 0x48, 0x98, 0x56, 0x75, 0xe3, + 0xf8, 0x74, 0xa4, 0x53, 0x3f, 0x1d, + ], + [ + 0x3d, 0x51, 0xdd, 0xdd, 0xba, 0x5d, 0x65, 0x7b, 0x43, 0xee, 0x8d, 0xa6, 0x45, + 0x44, 0x38, 0x14, 0xcc, 0x73, 0x29, 0xf3, 0xe9, 0xb4, 0xe5, 0x4c, 0x23, 0x6c, + 0x29, 0xaf, 0x39, 0x23, 0x10, 0x17, + ], + [ + 0x73, 0x6c, 0x23, 0x35, 0x7c, 0x85, 0xf4, 0x57, 0x91, 0xe1, 0x70, 0x80, 0x29, + 0xd9, 0x82, 0x4d, 0x90, 0x70, 0x46, 0x07, 0xf3, 0x87, 0xa0, 0x3e, 0x49, 0xbf, + 0x98, 0x36, 0x57, 0x44, 0x31, 0x34, + ], + [ + 0x0c, 0x05, 0x36, 0xac, 0xdd, 0xf6, 0xf1, 0xae, 0xab, 0x01, 0x6b, 0x6b, 0xc1, + 0xec, 0x14, 0x4b, 0x4e, 0x55, 0x3a, 0xcf, 0xd6, 0x70, 0xf7, 0x7e, 0x75, 0x5f, + 0xc8, 0x8e, 0x06, 0x77, 0xe3, 0x1b, + ], + [ + 0xa4, 0x59, 0xb4, 0x4e, 0x30, 0x77, 0x68, 0x95, 0x8f, 0xe3, 0x78, 0x9d, 0x41, + 0xc2, 0xb1, 0xff, 0x43, 0x4c, 0xb3, 0x0e, 0x15, 0x91, 0x4f, 0x01, 0xbc, 0x6b, + 0xc2, 0x30, 0x7b, 0x48, 0x8d, 0x25, + ], + [ + 0x56, 0xd7, 0xb7, 0x38, 0x0e, 0xa4, 0xff, 0xd7, 0x12, 0xf6, 0xb0, 0x2f, 0xe8, + 0x06, 0xb9, 0x45, 0x69, 0xcd, 0x40, 0x59, 0xf3, 0x96, 0xbf, 0x29, 0xb9, 0x9d, + 0x0a, 0x40, 0xe5, 0xe1, 0x71, 0x1c, + ], + ], + paths: [ + [ + [ + 0x49, 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, + 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, + 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x7e, 0x8c, 0x33, 0x94, 0x58, 0x96, 0x16, 0xde, 0xd3, 0x4a, 0x95, 0xd2, + 0xaf, 0xb5, 0x98, 0x46, 0xd5, 0xa8, 0x59, 0xc1, 0x1b, 0xad, 0x64, 0xa3, + 0x35, 0x27, 0x21, 0x4f, 0x9d, 0x64, 0x06, 0x22, + ], + ], + [ + [ + 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, + 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, + 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, + ], + [ + 0x11, 0xee, 0x0d, 0xa4, 0xaa, 0x96, 0x66, 0x57, 0x53, 0xfd, 0x74, 0x40, + 0x51, 0x97, 0xb3, 0x9d, 0x3a, 0x7a, 0x41, 0x0d, 0xcf, 0x01, 0x72, 0x6d, + 0xe7, 0x45, 0xe7, 0x31, 0xc3, 0xf6, 0xb7, 0x1c, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x7e, 0x8c, 0x33, 0x94, 0x58, 0x96, 0x16, 0xde, 0xd3, 0x4a, 0x95, 0xd2, + 0xaf, 0xb5, 0x98, 0x46, 0xd5, 0xa8, 0x59, 0xc1, 0x1b, 0xad, 0x64, 0xa3, + 0x35, 0x27, 0x21, 0x4f, 0x9d, 0x64, 0x06, 0x22, + ], + ], + [ + [ + 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, + 0x96, 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, + 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, 0x11, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x7e, 0x8c, 0x33, 0x94, 0x58, 0x96, 0x16, 0xde, 0xd3, 0x4a, 0x95, 0xd2, + 0xaf, 0xb5, 0x98, 0x46, 0xd5, 0xa8, 0x59, 0xc1, 0x1b, 0xad, 0x64, 0xa3, + 0x35, 0x27, 0x21, 0x4f, 0x9d, 0x64, 0x06, 0x22, + ], + ], + [ + [ + 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, + 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, 0xac, + 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, + ], + [ + 0x00, 0xc3, 0xa0, 0x0a, 0x20, 0x92, 0x8c, 0x95, 0xbb, 0xca, 0xd3, 0x38, + 0x9e, 0x0b, 0x5f, 0x28, 0x04, 0x5d, 0x55, 0xc1, 0x6e, 0xfb, 0xcf, 0x61, + 0xce, 0x30, 0x4b, 0x35, 0xa0, 0x59, 0x16, 0x04, + ], + [ + 0x74, 0xcd, 0x05, 0x3b, 0x84, 0xf9, 0x21, 0xcf, 0x4c, 0xbd, 0x27, 0x31, + 0xe2, 0xba, 0x65, 0x0a, 0x16, 0x8b, 0xd9, 0xf6, 0xd4, 0x3f, 0xcb, 0xdd, + 0x0d, 0x1c, 0x05, 0x80, 0x76, 0x9d, 0xe7, 0x3d, + ], + [ + 0x7e, 0x8c, 0x33, 0x94, 0x58, 0x96, 0x16, 0xde, 0xd3, 0x4a, 0x95, 0xd2, + 0xaf, 0xb5, 0x98, 0x46, 0xd5, 0xa8, 0x59, 0xc1, 0x1b, 0xad, 0x64, 0xa3, + 0x35, 0x27, 0x21, 0x4f, 0x9d, 0x64, 0x06, 0x22, + ], + ], + [ + [ + 0x71, 0x52, 0xf1, 0x39, 0x36, 0xa2, 0x70, 0x57, 0x26, 0x70, 0xdc, 0x82, + 0xd3, 0x90, 0x26, 0xc6, 0xcb, 0x4c, 0xd4, 0xb0, 0xf7, 0xf5, 0xaa, 0x2a, + 0x4f, 0x5a, 0x53, 0x41, 0xec, 0x5d, 0xd7, 0x15, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x7e, 0x8c, 0x33, 0x94, 0x58, 0x96, 0x16, 0xde, 0xd3, 0x4a, 0x95, 0xd2, + 0xaf, 0xb5, 0x98, 0x46, 0xd5, 0xa8, 0x59, 0xc1, 0x1b, 0xad, 0x64, 0xa3, + 0x35, 0x27, 0x21, 0x4f, 0x9d, 0x64, 0x06, 0x22, + ], + ], + [ + [ + 0x05, 0x41, 0x5d, 0x46, 0x42, 0x78, 0x9d, 0x38, 0xf5, 0x0b, 0x8d, 0xbc, + 0xc1, 0x29, 0xca, 0xb3, 0xd1, 0x7d, 0x19, 0xf3, 0x35, 0x5b, 0xcf, 0x73, + 0xce, 0xcb, 0x8c, 0xb8, 0xa5, 0xda, 0x01, 0x30, + ], + [ + 0x8b, 0xba, 0xed, 0xda, 0x24, 0x46, 0x4f, 0x26, 0x3a, 0x13, 0x96, 0x8c, + 0x8f, 0x93, 0xa3, 0xe6, 0xc4, 0x29, 0x67, 0xcb, 0x30, 0x5f, 0x75, 0x13, + 0x9f, 0x53, 0xc9, 0xe6, 0x2c, 0xc3, 0xc9, 0x39, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x7e, 0x8c, 0x33, 0x94, 0x58, 0x96, 0x16, 0xde, 0xd3, 0x4a, 0x95, 0xd2, + 0xaf, 0xb5, 0x98, 0x46, 0xd5, 0xa8, 0x59, 0xc1, 0x1b, 0xad, 0x64, 0xa3, + 0x35, 0x27, 0x21, 0x4f, 0x9d, 0x64, 0x06, 0x22, + ], + ], + [ + [ + 0x86, 0x8c, 0x53, 0x23, 0x9c, 0xfb, 0xdf, 0x73, 0xca, 0xec, 0x65, 0x60, + 0x40, 0x37, 0x31, 0x4f, 0xaa, 0xce, 0xb5, 0x62, 0x18, 0xc6, 0xbd, 0x30, + 0xf8, 0x37, 0x4a, 0xc1, 0x33, 0x86, 0x79, 0x3f, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x7e, 0x8c, 0x33, 0x94, 0x58, 0x96, 0x16, 0xde, 0xd3, 0x4a, 0x95, 0xd2, + 0xaf, 0xb5, 0x98, 0x46, 0xd5, 0xa8, 0x59, 0xc1, 0x1b, 0xad, 0x64, 0xa3, + 0x35, 0x27, 0x21, 0x4f, 0x9d, 0x64, 0x06, 0x22, + ], + ], + [ + [ + 0x40, 0x6f, 0x2f, 0xdd, 0x2a, 0xfa, 0x73, 0x3f, 0x5f, 0x64, 0x1c, 0x8c, + 0x21, 0x86, 0x2a, 0x1b, 0xaf, 0xce, 0x26, 0x09, 0xd9, 0xee, 0xcf, 0xa1, + 0x58, 0xcf, 0xb5, 0xcd, 0x79, 0xf8, 0x80, 0x08, + ], + [ + 0x65, 0x0f, 0x3a, 0xf8, 0xe0, 0x18, 0x62, 0x18, 0x4e, 0x44, 0x50, 0xb3, + 0xeb, 0x45, 0x54, 0x94, 0xd6, 0xa7, 0x7f, 0xe5, 0x67, 0x09, 0xd6, 0x02, + 0x42, 0x02, 0x5e, 0x6e, 0xc7, 0x91, 0xcc, 0x2d, + ], + [ + 0xc9, 0x31, 0x1b, 0x6e, 0xf3, 0x3c, 0x81, 0x9b, 0xd9, 0x3a, 0xf3, 0x81, + 0x70, 0x74, 0xc9, 0x76, 0xa5, 0x07, 0x40, 0xd0, 0x93, 0xf9, 0x40, 0x6a, + 0x84, 0x36, 0x57, 0x2b, 0xef, 0x87, 0x69, 0x19, + ], + [ + 0x7e, 0x8c, 0x33, 0x94, 0x58, 0x96, 0x16, 0xde, 0xd3, 0x4a, 0x95, 0xd2, + 0xaf, 0xb5, 0x98, 0x46, 0xd5, 0xa8, 0x59, 0xc1, 0x1b, 0xad, 0x64, 0xa3, + 0x35, 0x27, 0x21, 0x4f, 0x9d, 0x64, 0x06, 0x22, + ], + ], + [ + [ + 0x26, 0xd6, 0x2e, 0x95, 0x96, 0xfa, 0x82, 0x5c, 0x6b, 0xf2, 0x1a, 0xff, + 0x9e, 0x68, 0x62, 0x5a, 0x19, 0x24, 0x40, 0xea, 0x06, 0x82, 0x81, 0x23, + 0xd9, 0x78, 0x84, 0x80, 0x6f, 0x15, 0xfa, 0x08, + ], + [ + 0x46, 0x09, 0x4f, 0x1f, 0xf6, 0x74, 0xed, 0x31, 0x78, 0x9c, 0xb9, 0x8d, + 0xf7, 0x87, 0x03, 0x15, 0x99, 0xbe, 0xec, 0x9e, 0x8d, 0x0c, 0xac, 0xdf, + 0x08, 0x3e, 0xab, 0xf4, 0xab, 0x92, 0x41, 0x28, + ], + [ + 0x87, 0x1b, 0xa3, 0x44, 0x1a, 0x62, 0x29, 0xfe, 0xc1, 0x38, 0x87, 0xf1, + 0x18, 0x56, 0xf6, 0xbf, 0x91, 0x58, 0x9b, 0x78, 0xcc, 0xe8, 0x88, 0x57, + 0x4d, 0xd8, 0x91, 0x9c, 0x9d, 0x1c, 0xfa, 0x31, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x21, 0xa9, 0xfb, 0x80, 0xad, 0x03, 0xbc, 0x0c, 0xda, 0x4a, 0x44, 0x94, + 0x6c, 0x00, 0xe1, 0xb1, 0xa1, 0xdf, 0x0e, 0x5b, 0x87, 0xb5, 0xbe, 0xce, + 0x47, 0x7a, 0x70, 0x96, 0x49, 0xe9, 0x50, 0x06, + ], + [ + 0x46, 0x09, 0x4f, 0x1f, 0xf6, 0x74, 0xed, 0x31, 0x78, 0x9c, 0xb9, 0x8d, + 0xf7, 0x87, 0x03, 0x15, 0x99, 0xbe, 0xec, 0x9e, 0x8d, 0x0c, 0xac, 0xdf, + 0x08, 0x3e, 0xab, 0xf4, 0xab, 0x92, 0x41, 0x28, + ], + [ + 0x87, 0x1b, 0xa3, 0x44, 0x1a, 0x62, 0x29, 0xfe, 0xc1, 0x38, 0x87, 0xf1, + 0x18, 0x56, 0xf6, 0xbf, 0x91, 0x58, 0x9b, 0x78, 0xcc, 0xe8, 0x88, 0x57, + 0x4d, 0xd8, 0x91, 0x9c, 0x9d, 0x1c, 0xfa, 0x31, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x3d, 0x51, 0xdd, 0xdd, 0xba, 0x5d, 0x65, 0x7b, 0x43, 0xee, 0x8d, 0xa6, + 0x45, 0x44, 0x38, 0x14, 0xcc, 0x73, 0x29, 0xf3, 0xe9, 0xb4, 0xe5, 0x4c, + 0x23, 0x6c, 0x29, 0xaf, 0x39, 0x23, 0x10, 0x17, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0x87, 0x1b, 0xa3, 0x44, 0x1a, 0x62, 0x29, 0xfe, 0xc1, 0x38, 0x87, 0xf1, + 0x18, 0x56, 0xf6, 0xbf, 0x91, 0x58, 0x9b, 0x78, 0xcc, 0xe8, 0x88, 0x57, + 0x4d, 0xd8, 0x91, 0x9c, 0x9d, 0x1c, 0xfa, 0x31, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x08, 0x14, 0xd3, 0xa2, 0xd4, 0x52, 0x43, 0x1c, 0x32, 0xd4, 0x11, 0xac, + 0x1c, 0xce, 0x82, 0xad, 0x02, 0x29, 0x40, 0x7b, 0xbc, 0x48, 0x98, 0x56, + 0x75, 0xe3, 0xf8, 0x74, 0xa4, 0x53, 0x3f, 0x1d, + ], + [ + 0x8b, 0x8a, 0xef, 0xa3, 0x5c, 0x67, 0x32, 0x79, 0x21, 0x7e, 0x36, 0xc1, + 0xa9, 0xe3, 0x5c, 0xf5, 0xd7, 0xef, 0xe4, 0x45, 0x9a, 0x40, 0x5b, 0xdf, + 0x2b, 0xdc, 0x68, 0x9b, 0x26, 0x56, 0x3e, 0x17, + ], + [ + 0x87, 0x1b, 0xa3, 0x44, 0x1a, 0x62, 0x29, 0xfe, 0xc1, 0x38, 0x87, 0xf1, + 0x18, 0x56, 0xf6, 0xbf, 0x91, 0x58, 0x9b, 0x78, 0xcc, 0xe8, 0x88, 0x57, + 0x4d, 0xd8, 0x91, 0x9c, 0x9d, 0x1c, 0xfa, 0x31, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x0c, 0x05, 0x36, 0xac, 0xdd, 0xf6, 0xf1, 0xae, 0xab, 0x01, 0x6b, 0x6b, + 0xc1, 0xec, 0x14, 0x4b, 0x4e, 0x55, 0x3a, 0xcf, 0xd6, 0x70, 0xf7, 0x7e, + 0x75, 0x5f, 0xc8, 0x8e, 0x06, 0x77, 0xe3, 0x1b, + ], + [ + 0x74, 0x3d, 0x07, 0x78, 0x7b, 0x22, 0x53, 0x68, 0xe6, 0x9e, 0xc6, 0x5e, + 0x24, 0x41, 0xce, 0x0c, 0x4e, 0xfc, 0x5e, 0xec, 0x49, 0xd1, 0xa6, 0xbd, + 0x15, 0x14, 0x17, 0x48, 0xb2, 0x57, 0x1d, 0x27, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x73, 0x6c, 0x23, 0x35, 0x7c, 0x85, 0xf4, 0x57, 0x91, 0xe1, 0x70, 0x80, + 0x29, 0xd9, 0x82, 0x4d, 0x90, 0x70, 0x46, 0x07, 0xf3, 0x87, 0xa0, 0x3e, + 0x49, 0xbf, 0x98, 0x36, 0x57, 0x44, 0x31, 0x34, + ], + [ + 0x74, 0x3d, 0x07, 0x78, 0x7b, 0x22, 0x53, 0x68, 0xe6, 0x9e, 0xc6, 0x5e, + 0x24, 0x41, 0xce, 0x0c, 0x4e, 0xfc, 0x5e, 0xec, 0x49, 0xd1, 0xa6, 0xbd, + 0x15, 0x14, 0x17, 0x48, 0xb2, 0x57, 0x1d, 0x27, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0x56, 0xd7, 0xb7, 0x38, 0x0e, 0xa4, 0xff, 0xd7, 0x12, 0xf6, 0xb0, 0x2f, + 0xe8, 0x06, 0xb9, 0x45, 0x69, 0xcd, 0x40, 0x59, 0xf3, 0x96, 0xbf, 0x29, + 0xb9, 0x9d, 0x0a, 0x40, 0xe5, 0xe1, 0x71, 0x1c, + ], + [ + 0xdf, 0x72, 0x50, 0xf8, 0xe8, 0x0b, 0xfe, 0x2c, 0xde, 0xe3, 0xad, 0x5e, + 0x3a, 0x14, 0x56, 0x6a, 0xbc, 0xec, 0xe0, 0x29, 0x62, 0x87, 0xc0, 0x5b, + 0x4b, 0xdd, 0x09, 0xc0, 0x0e, 0x7a, 0xc6, 0x3f, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + [ + [ + 0xa4, 0x59, 0xb4, 0x4e, 0x30, 0x77, 0x68, 0x95, 0x8f, 0xe3, 0x78, 0x9d, + 0x41, 0xc2, 0xb1, 0xff, 0x43, 0x4c, 0xb3, 0x0e, 0x15, 0x91, 0x4f, 0x01, + 0xbc, 0x6b, 0xc2, 0x30, 0x7b, 0x48, 0x8d, 0x25, + ], + [ + 0xdf, 0x72, 0x50, 0xf8, 0xe8, 0x0b, 0xfe, 0x2c, 0xde, 0xe3, 0xad, 0x5e, + 0x3a, 0x14, 0x56, 0x6a, 0xbc, 0xec, 0xe0, 0x29, 0x62, 0x87, 0xc0, 0x5b, + 0x4b, 0xdd, 0x09, 0xc0, 0x0e, 0x7a, 0xc6, 0x3f, + ], + [ + 0x08, 0xc5, 0x51, 0x95, 0xd2, 0x80, 0x5b, 0x3e, 0xb7, 0xc6, 0xb6, 0x78, + 0x6a, 0xd0, 0x96, 0x9d, 0xfc, 0x70, 0x96, 0x96, 0x13, 0xea, 0x55, 0xea, + 0xd9, 0x6f, 0x3d, 0x02, 0x62, 0xab, 0x99, 0x0d, + ], + [ + 0x01, 0xf9, 0x78, 0xd8, 0xbf, 0xd2, 0x2a, 0x80, 0x28, 0x1b, 0x8d, 0x87, + 0x6d, 0x56, 0x0e, 0xf4, 0x41, 0x32, 0xc8, 0x63, 0x94, 0xb8, 0x40, 0x1e, + 0x58, 0x00, 0xc7, 0xe8, 0x1f, 0x1a, 0x5e, 0x01, + ], + ], + ], + root: [ + 0xcf, 0x9a, 0x97, 0x45, 0xab, 0x08, 0x7c, 0x13, 0xf3, 0x5d, 0xcd, 0xec, 0xb9, 0xd5, + 0xa9, 0x69, 0xc5, 0x28, 0x4d, 0x6f, 0x8a, 0x38, 0x69, 0x7a, 0xea, 0xd1, 0x6f, 0xdf, + 0x7e, 0xaa, 0x2b, 0x25, + ], + }, + ] +} diff --git a/zk-crates/zk-headstash/src/test_vectors/note_encryption.rs b/zk-crates/zk-headstash/src/test_vectors/note_encryption.rs new file mode 100644 index 0000000..fc7c5ad --- /dev/null +++ b/zk-crates/zk-headstash/src/test_vectors/note_encryption.rs @@ -0,0 +1,2121 @@ +//! Test vectors for Orchard key components. + +use alloc::vec::Vec; + +pub(crate) struct TestVector { + pub(crate) incoming_viewing_key: [u8; 64], + pub(crate) ovk: [u8; 32], + pub(crate) default_d: [u8; 11], + pub(crate) default_pk_d: [u8; 32], + pub(crate) v: u64, + pub(crate) rseed: [u8; 32], + pub(crate) memo: [u8; 512], + pub(crate) cv_net: [u8; 32], + pub(crate) nf_old: [u8; 32], + pub(crate) cmx: [u8; 32], + pub(crate) esk: [u8; 32], + pub(crate) ephemeral_key: [u8; 32], + pub(crate) shared_secret: [u8; 32], + pub(crate) k_enc: [u8; 32], + pub(crate) p_enc: [u8; 564], + pub(crate) c_enc: [u8; 580], + pub(crate) ock: [u8; 32], + pub(crate) op: [u8; 64], + pub(crate) c_out: [u8; 80], +} + +pub(crate) fn test_vectors() -> Vec { + // From https://github.com/zcash-hackworks/zcash-test-vectors/blob/master/orchard_note_encryption.py + vec![ + TestVector { + incoming_viewing_key: [ + 0x10, 0x39, 0xd8, 0xe6, 0x4a, 0x80, 0x90, 0x2e, 0x10, 0x59, 0x47, 0x81, 0x7d, 0xf3, + 0xbd, 0xfb, 0x7d, 0xf7, 0x03, 0x0e, 0x68, 0x73, 0x9f, 0x9c, 0x53, 0x3a, 0x36, 0xbf, + 0x5a, 0x6a, 0x80, 0x72, 0x43, 0x10, 0x6d, 0xe9, 0xa7, 0xec, 0x54, 0xdd, 0x36, 0xdf, + 0xa7, 0x0b, 0xdb, 0xd9, 0x07, 0x2d, 0xbd, 0xda, 0xb5, 0xe0, 0x66, 0xaa, 0xef, 0xfc, + 0xf9, 0xbb, 0xa3, 0x20, 0xd4, 0xff, 0xf7, 0x12, + ], + ovk: [ + 0x5d, 0x7a, 0x8f, 0x73, 0x9a, 0x2d, 0x9e, 0x94, 0x5b, 0x0c, 0xe1, 0x52, 0xa8, 0x04, + 0x9e, 0x29, 0x4c, 0x4d, 0x6e, 0x66, 0xb1, 0x64, 0x93, 0x9d, 0xaf, 0xfa, 0x2e, 0xf6, + 0xee, 0x69, 0x21, 0x48, + ], + default_d: [ + 0x56, 0xe8, 0x4b, 0x1a, 0xdc, 0x94, 0x23, 0xc3, 0x67, 0x6c, 0x04, + ], + default_pk_d: [ + 0x63, 0xf7, 0x12, 0x5d, 0xf4, 0x83, 0x6f, 0xd2, 0x81, 0x6b, 0x02, 0x4e, 0xe7, 0x0e, + 0xfe, 0x09, 0xfb, 0x9a, 0x7b, 0x38, 0x63, 0xc6, 0xea, 0xcd, 0xf9, 0x5e, 0x03, 0x89, + 0x49, 0x50, 0x69, 0x2c, + ], + v: 8567075990963576717, + rseed: [ + 0xbf, 0x69, 0xb8, 0x25, 0x0c, 0x18, 0xef, 0x41, 0x29, 0x4c, 0xa9, 0x79, 0x93, 0xdb, + 0x54, 0x6c, 0x1f, 0xe0, 0x1f, 0x7e, 0x9c, 0x8e, 0x36, 0xd6, 0xa5, 0xe2, 0x9d, 0x4e, + 0x30, 0xa7, 0x35, 0x94, + ], + memo: [ + 0xff, 0xbf, 0x50, 0x98, 0x42, 0x1c, 0x69, 0x37, 0x8a, 0xf1, 0xe4, 0x0f, 0x64, 0xe1, + 0x25, 0x94, 0x6f, 0x62, 0xc2, 0xfa, 0x7b, 0x2f, 0xec, 0xbc, 0xb6, 0x4b, 0x69, 0x68, + 0x91, 0x2a, 0x63, 0x81, 0xce, 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, + 0xd7, 0x55, 0x1d, 0xb5, 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, + 0xd4, 0x77, 0x08, 0x37, 0x56, 0xd5, 0x9a, 0xf8, 0x0d, 0x06, 0xa7, 0x45, 0xf4, 0x4a, + 0xb0, 0x23, 0x75, 0x2c, 0xb5, 0xb4, 0x06, 0xed, 0x89, 0x85, 0xe1, 0x81, 0x30, 0xab, + 0x33, 0x36, 0x26, 0x97, 0xb0, 0xe4, 0xe4, 0xc7, 0x63, 0xcc, 0xb8, 0xf6, 0x76, 0x49, + 0x5c, 0x22, 0x2f, 0x7f, 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, 0xef, 0xc2, + 0xe1, 0xe9, 0xb0, 0x1a, 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, 0xe0, 0x1d, 0x94, + 0x90, 0x3d, 0x3c, 0x3e, 0x0a, 0xd3, 0x36, 0x0c, 0x1d, 0x37, 0x10, 0xac, 0xd2, 0x0b, + 0x18, 0x3e, 0x31, 0xd4, 0x9f, 0x25, 0xc9, 0xa1, 0x38, 0xf4, 0x9b, 0x1a, 0x53, 0x7e, + 0xdc, 0xf0, 0x4b, 0xe3, 0x4a, 0x98, 0x51, 0xa7, 0xaf, 0x9d, 0xb6, 0x99, 0x0e, 0xd8, + 0x3d, 0xd6, 0x4a, 0xf3, 0x59, 0x7c, 0x04, 0x32, 0x3e, 0xa5, 0x1b, 0x00, 0x52, 0xad, + 0x80, 0x84, 0xa8, 0xb9, 0xda, 0x94, 0x8d, 0x32, 0x0d, 0xad, 0xd6, 0x4f, 0x54, 0x31, + 0xe6, 0x1d, 0xdf, 0x65, 0x8d, 0x24, 0xae, 0x67, 0xc2, 0x2c, 0x8d, 0x13, 0x09, 0x13, + 0x1f, 0xc0, 0x0f, 0xe7, 0xf2, 0x35, 0x73, 0x42, 0x76, 0xd3, 0x8d, 0x47, 0xf1, 0xe1, + 0x91, 0xe0, 0x0c, 0x7a, 0x1d, 0x48, 0xaf, 0x04, 0x68, 0x27, 0x59, 0x1e, 0x97, 0x33, + 0xa9, 0x7f, 0xa6, 0xb6, 0x79, 0xf3, 0xdc, 0x60, 0x1d, 0x00, 0x82, 0x85, 0xed, 0xcb, + 0xda, 0xe6, 0x9c, 0xe8, 0xfc, 0x1b, 0xe4, 0xaa, 0xc0, 0x0f, 0xf2, 0x71, 0x1e, 0xbd, + 0x93, 0x1d, 0xe5, 0x18, 0x85, 0x68, 0x78, 0xf7, 0x34, 0x76, 0xf2, 0x1a, 0x48, 0x2e, + 0xc9, 0x37, 0x83, 0x65, 0xc8, 0xf7, 0x39, 0x3c, 0x94, 0xe2, 0x88, 0x53, 0x15, 0xeb, + 0x46, 0x71, 0x09, 0x8b, 0x79, 0x53, 0x5e, 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, + 0xb3, 0x76, 0x66, 0x97, 0xac, 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, 0xe7, + 0x23, 0x89, 0xfc, 0x03, 0x88, 0x0d, 0x78, 0x0c, 0xb0, 0x7f, 0xcf, 0xaa, 0xbe, 0x3f, + 0x1a, 0x84, 0xb2, 0x7d, 0xb5, 0x9a, 0x4a, 0x15, 0x3d, 0x88, 0x2d, 0x2b, 0x21, 0x03, + 0x59, 0x65, 0x55, 0xed, 0x94, 0x94, 0xc6, 0xac, 0x89, 0x3c, 0x49, 0x72, 0x38, 0x33, + 0xec, 0x89, 0x26, 0xc1, 0x03, 0x95, 0x86, 0xa7, 0xaf, 0xcf, 0x4a, 0x0d, 0x9c, 0x73, + 0x1e, 0x98, 0x5d, 0x99, 0x58, 0x9c, 0x8b, 0xb8, 0x38, 0xe8, 0xaa, 0xf7, 0x45, 0x53, + 0x3e, 0xd9, 0xe8, 0xae, 0x3a, 0x1c, 0xd0, 0x74, 0xa5, 0x1a, 0x20, 0xda, 0x8a, 0xba, + 0x18, 0xd1, 0xdb, 0xeb, 0xbc, 0x86, 0x2d, 0xed, 0x42, 0x43, 0x5e, 0x92, 0x47, 0x69, + 0x30, 0xd0, 0x69, 0x89, 0x6c, 0xff, 0x30, 0xeb, 0x41, 0x4f, 0x72, 0x7b, 0x89, 0xe0, + 0x01, 0xaf, 0xa2, 0xfb, 0x8d, 0xc3, 0x43, 0x6d, 0x75, 0xa4, 0xa6, 0xf2, 0x65, 0x72, + 0x50, 0x4b, 0x19, 0x22, 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, + 0xbc, 0x5e, 0x90, 0x45, 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, 0x3c, + 0xe7, 0x1a, 0x02, 0xaf, 0x11, 0x7d, 0x41, 0x7a, 0xdb, 0x3d, 0x15, 0xcc, 0x54, 0xdc, + 0xb1, 0xfc, 0xe4, 0x67, 0x50, 0x0c, 0x6b, 0x8f, 0xb8, 0x6b, 0x12, 0xb5, 0x6d, 0xa9, + 0xc3, 0x82, 0x85, 0x7d, 0xee, 0xcc, 0x40, 0xa9, + ], + cv_net: [ + 0xdd, 0xba, 0x24, 0xf3, 0x9f, 0x70, 0x8e, 0xd7, 0xa7, 0x48, 0x57, 0x13, 0x71, 0x11, + 0x42, 0xc2, 0x38, 0x51, 0x38, 0x15, 0x30, 0x2d, 0xf0, 0xf4, 0x83, 0x04, 0x21, 0xa6, + 0xc1, 0x3e, 0x71, 0x01, + ], + nf_old: [ + 0xc5, 0x96, 0xfb, 0xd3, 0x2e, 0xbb, 0xcb, 0xad, 0xae, 0x60, 0xd2, 0x85, 0xc7, 0xd7, + 0x5f, 0xa8, 0x36, 0xf9, 0xd2, 0xfa, 0x86, 0x10, 0x0a, 0xb8, 0x58, 0xea, 0x2d, 0xe1, + 0xf1, 0x1c, 0x83, 0x06, + ], + cmx: [ + 0xa5, 0x70, 0x6f, 0x3d, 0x1b, 0x68, 0x8e, 0x9d, 0xc6, 0x34, 0xee, 0xe4, 0xe6, 0x5b, + 0x02, 0x8a, 0x43, 0xee, 0xae, 0xd2, 0x43, 0x5b, 0xea, 0x2a, 0xe3, 0xd5, 0x16, 0x05, + 0x75, 0xc1, 0x1a, 0x3b, + ], + esk: [ + 0x56, 0x66, 0x9d, 0x64, 0x3f, 0x78, 0x0b, 0x6a, 0xd8, 0xb3, 0xd3, 0x5a, 0xd7, 0x46, + 0x8a, 0xaa, 0x73, 0x27, 0x66, 0x57, 0x5f, 0x84, 0xa9, 0x5d, 0x20, 0xa6, 0x25, 0xff, + 0x38, 0x77, 0xea, 0x3f, + ], + ephemeral_key: [ + 0xad, 0xdb, 0x47, 0xb6, 0xac, 0x5d, 0xfc, 0x16, 0x55, 0x89, 0x23, 0xd3, 0xa8, 0xf3, + 0x76, 0x09, 0x5c, 0x69, 0x5c, 0x04, 0x7c, 0x4e, 0x32, 0x66, 0xae, 0x67, 0x69, 0x87, + 0xf7, 0xe3, 0x13, 0x81, + ], + shared_secret: [ + 0x30, 0x3c, 0x1c, 0x3f, 0x2b, 0xcb, 0xb9, 0xd8, 0x49, 0x70, 0x15, 0xa6, 0xdf, 0xca, + 0x95, 0x4e, 0xce, 0x0d, 0x3b, 0x6c, 0xf1, 0x0a, 0xb9, 0xf7, 0x19, 0xeb, 0x89, 0x19, + 0x9e, 0xdf, 0xe9, 0x89, + ], + k_enc: [ + 0xef, 0x9d, 0x62, 0x25, 0x68, 0x7c, 0x2c, 0x91, 0x7b, 0x5c, 0xad, 0xa1, 0x75, 0x23, + 0xe8, 0xfb, 0xdb, 0x08, 0x82, 0x25, 0xaf, 0x2d, 0xb5, 0x72, 0xbb, 0x40, 0x0e, 0x44, + 0x8b, 0x5e, 0xa8, 0x71, + ], + p_enc: [ + 0x02, 0x56, 0xe8, 0x4b, 0x1a, 0xdc, 0x94, 0x23, 0xc3, 0x67, 0x6c, 0x04, 0x8d, 0x5f, + 0x29, 0x35, 0x39, 0x5e, 0xe4, 0x76, 0xbf, 0x69, 0xb8, 0x25, 0x0c, 0x18, 0xef, 0x41, + 0x29, 0x4c, 0xa9, 0x79, 0x93, 0xdb, 0x54, 0x6c, 0x1f, 0xe0, 0x1f, 0x7e, 0x9c, 0x8e, + 0x36, 0xd6, 0xa5, 0xe2, 0x9d, 0x4e, 0x30, 0xa7, 0x35, 0x94, 0xff, 0xbf, 0x50, 0x98, + 0x42, 0x1c, 0x69, 0x37, 0x8a, 0xf1, 0xe4, 0x0f, 0x64, 0xe1, 0x25, 0x94, 0x6f, 0x62, + 0xc2, 0xfa, 0x7b, 0x2f, 0xec, 0xbc, 0xb6, 0x4b, 0x69, 0x68, 0x91, 0x2a, 0x63, 0x81, + 0xce, 0x3d, 0xc1, 0x66, 0xd5, 0x6a, 0x1d, 0x62, 0xf5, 0xa8, 0xd7, 0x55, 0x1d, 0xb5, + 0xfd, 0x93, 0x13, 0xe8, 0xc7, 0x20, 0x3d, 0x99, 0x6a, 0xf7, 0xd4, 0x77, 0x08, 0x37, + 0x56, 0xd5, 0x9a, 0xf8, 0x0d, 0x06, 0xa7, 0x45, 0xf4, 0x4a, 0xb0, 0x23, 0x75, 0x2c, + 0xb5, 0xb4, 0x06, 0xed, 0x89, 0x85, 0xe1, 0x81, 0x30, 0xab, 0x33, 0x36, 0x26, 0x97, + 0xb0, 0xe4, 0xe4, 0xc7, 0x63, 0xcc, 0xb8, 0xf6, 0x76, 0x49, 0x5c, 0x22, 0x2f, 0x7f, + 0xba, 0x1e, 0x31, 0xde, 0xfa, 0x3d, 0x5a, 0x57, 0xef, 0xc2, 0xe1, 0xe9, 0xb0, 0x1a, + 0x03, 0x55, 0x87, 0xd5, 0xfb, 0x1a, 0x38, 0xe0, 0x1d, 0x94, 0x90, 0x3d, 0x3c, 0x3e, + 0x0a, 0xd3, 0x36, 0x0c, 0x1d, 0x37, 0x10, 0xac, 0xd2, 0x0b, 0x18, 0x3e, 0x31, 0xd4, + 0x9f, 0x25, 0xc9, 0xa1, 0x38, 0xf4, 0x9b, 0x1a, 0x53, 0x7e, 0xdc, 0xf0, 0x4b, 0xe3, + 0x4a, 0x98, 0x51, 0xa7, 0xaf, 0x9d, 0xb6, 0x99, 0x0e, 0xd8, 0x3d, 0xd6, 0x4a, 0xf3, + 0x59, 0x7c, 0x04, 0x32, 0x3e, 0xa5, 0x1b, 0x00, 0x52, 0xad, 0x80, 0x84, 0xa8, 0xb9, + 0xda, 0x94, 0x8d, 0x32, 0x0d, 0xad, 0xd6, 0x4f, 0x54, 0x31, 0xe6, 0x1d, 0xdf, 0x65, + 0x8d, 0x24, 0xae, 0x67, 0xc2, 0x2c, 0x8d, 0x13, 0x09, 0x13, 0x1f, 0xc0, 0x0f, 0xe7, + 0xf2, 0x35, 0x73, 0x42, 0x76, 0xd3, 0x8d, 0x47, 0xf1, 0xe1, 0x91, 0xe0, 0x0c, 0x7a, + 0x1d, 0x48, 0xaf, 0x04, 0x68, 0x27, 0x59, 0x1e, 0x97, 0x33, 0xa9, 0x7f, 0xa6, 0xb6, + 0x79, 0xf3, 0xdc, 0x60, 0x1d, 0x00, 0x82, 0x85, 0xed, 0xcb, 0xda, 0xe6, 0x9c, 0xe8, + 0xfc, 0x1b, 0xe4, 0xaa, 0xc0, 0x0f, 0xf2, 0x71, 0x1e, 0xbd, 0x93, 0x1d, 0xe5, 0x18, + 0x85, 0x68, 0x78, 0xf7, 0x34, 0x76, 0xf2, 0x1a, 0x48, 0x2e, 0xc9, 0x37, 0x83, 0x65, + 0xc8, 0xf7, 0x39, 0x3c, 0x94, 0xe2, 0x88, 0x53, 0x15, 0xeb, 0x46, 0x71, 0x09, 0x8b, + 0x79, 0x53, 0x5e, 0x79, 0x0f, 0xe5, 0x3e, 0x29, 0xfe, 0xf2, 0xb3, 0x76, 0x66, 0x97, + 0xac, 0x32, 0xb4, 0xf4, 0x73, 0xf4, 0x68, 0xa0, 0x08, 0xe7, 0x23, 0x89, 0xfc, 0x03, + 0x88, 0x0d, 0x78, 0x0c, 0xb0, 0x7f, 0xcf, 0xaa, 0xbe, 0x3f, 0x1a, 0x84, 0xb2, 0x7d, + 0xb5, 0x9a, 0x4a, 0x15, 0x3d, 0x88, 0x2d, 0x2b, 0x21, 0x03, 0x59, 0x65, 0x55, 0xed, + 0x94, 0x94, 0xc6, 0xac, 0x89, 0x3c, 0x49, 0x72, 0x38, 0x33, 0xec, 0x89, 0x26, 0xc1, + 0x03, 0x95, 0x86, 0xa7, 0xaf, 0xcf, 0x4a, 0x0d, 0x9c, 0x73, 0x1e, 0x98, 0x5d, 0x99, + 0x58, 0x9c, 0x8b, 0xb8, 0x38, 0xe8, 0xaa, 0xf7, 0x45, 0x53, 0x3e, 0xd9, 0xe8, 0xae, + 0x3a, 0x1c, 0xd0, 0x74, 0xa5, 0x1a, 0x20, 0xda, 0x8a, 0xba, 0x18, 0xd1, 0xdb, 0xeb, + 0xbc, 0x86, 0x2d, 0xed, 0x42, 0x43, 0x5e, 0x92, 0x47, 0x69, 0x30, 0xd0, 0x69, 0x89, + 0x6c, 0xff, 0x30, 0xeb, 0x41, 0x4f, 0x72, 0x7b, 0x89, 0xe0, 0x01, 0xaf, 0xa2, 0xfb, + 0x8d, 0xc3, 0x43, 0x6d, 0x75, 0xa4, 0xa6, 0xf2, 0x65, 0x72, 0x50, 0x4b, 0x19, 0x22, + 0x32, 0xec, 0xb9, 0xf0, 0xc0, 0x24, 0x11, 0xe5, 0x25, 0x96, 0xbc, 0x5e, 0x90, 0x45, + 0x7e, 0x74, 0x59, 0x39, 0xff, 0xed, 0xbd, 0x12, 0x86, 0x3c, 0xe7, 0x1a, 0x02, 0xaf, + 0x11, 0x7d, 0x41, 0x7a, 0xdb, 0x3d, 0x15, 0xcc, 0x54, 0xdc, 0xb1, 0xfc, 0xe4, 0x67, + 0x50, 0x0c, 0x6b, 0x8f, 0xb8, 0x6b, 0x12, 0xb5, 0x6d, 0xa9, 0xc3, 0x82, 0x85, 0x7d, + 0xee, 0xcc, 0x40, 0xa9, + ], + c_enc: [ + 0x1a, 0x9a, 0xdb, 0x14, 0x24, 0x98, 0xe3, 0xdc, 0xc7, 0x6f, 0xed, 0x77, 0x86, 0x14, + 0xdd, 0x31, 0x6c, 0x02, 0xfb, 0xb8, 0xba, 0x92, 0x44, 0xae, 0x4c, 0x2e, 0x32, 0xa0, + 0x7d, 0xae, 0xec, 0xa4, 0x12, 0x26, 0xb9, 0x8b, 0xfe, 0x74, 0xf9, 0xfc, 0xb2, 0x28, + 0xcf, 0xc1, 0x00, 0xf3, 0x18, 0x0f, 0x57, 0x75, 0xec, 0xe3, 0x8b, 0xe7, 0xed, 0x45, + 0xd9, 0x40, 0x21, 0xf4, 0x40, 0x1b, 0x2a, 0x4d, 0x75, 0x82, 0xb4, 0x28, 0xd4, 0x9e, + 0xc7, 0xf5, 0xb5, 0xa4, 0x98, 0x97, 0x3e, 0x60, 0xe3, 0x8e, 0x74, 0xf5, 0xc3, 0xe5, + 0x77, 0x82, 0x7c, 0x38, 0x28, 0x57, 0xd8, 0x16, 0x6b, 0x54, 0xe6, 0x4f, 0x66, 0xef, + 0x5c, 0x7e, 0x8c, 0x9b, 0xaa, 0x2a, 0x3f, 0xa9, 0xe3, 0x7d, 0x08, 0x77, 0x17, 0xd5, + 0xe9, 0x6b, 0xc2, 0xf7, 0x3d, 0x03, 0x14, 0x50, 0xdc, 0x24, 0x32, 0xba, 0x49, 0xd8, + 0xb7, 0x4d, 0xb2, 0x13, 0x09, 0x9e, 0xa9, 0xba, 0x04, 0xeb, 0x63, 0xb6, 0x57, 0x4d, + 0x46, 0xc0, 0x3c, 0xe7, 0x90, 0x0d, 0x4a, 0xc4, 0xbb, 0x18, 0x8e, 0xe9, 0x03, 0x0d, + 0x7f, 0x69, 0xc8, 0x95, 0xa9, 0x4f, 0xc1, 0x82, 0xf2, 0x25, 0xa9, 0x4f, 0x0c, 0xde, + 0x1b, 0x49, 0x88, 0x68, 0x71, 0xa3, 0x76, 0x34, 0x1e, 0xa9, 0x41, 0x71, 0xbe, 0xfd, + 0x95, 0xa8, 0x30, 0xfa, 0x18, 0x40, 0x70, 0x97, 0xdc, 0xa5, 0x11, 0x02, 0x54, 0x63, + 0xd4, 0x37, 0xe9, 0x69, 0x5c, 0xaa, 0x07, 0x9a, 0x2f, 0x68, 0xcd, 0xc7, 0xf2, 0xc1, + 0x32, 0x67, 0xbf, 0xf4, 0x19, 0x51, 0x37, 0xfa, 0x89, 0x53, 0x25, 0x2a, 0x81, 0xb2, + 0xaf, 0xa1, 0x58, 0x2b, 0x9b, 0xfb, 0x4a, 0xc9, 0x60, 0x37, 0xed, 0x29, 0x91, 0xd3, + 0xcb, 0xc7, 0xd5, 0x4a, 0xff, 0x6e, 0x62, 0x1b, 0x06, 0xa7, 0xb2, 0xb9, 0xca, 0xf2, + 0x95, 0x5e, 0xfa, 0xf4, 0xea, 0x8e, 0xfc, 0xfd, 0x02, 0x3a, 0x3c, 0x17, 0x48, 0xdf, + 0x3c, 0xbd, 0x43, 0xe0, 0xb9, 0xa8, 0xb0, 0x94, 0x56, 0x88, 0xd5, 0x20, 0x56, 0xc1, + 0xd1, 0x6e, 0xea, 0x37, 0xe7, 0x98, 0xba, 0x31, 0xdc, 0x3e, 0x5d, 0x49, 0x52, 0xbd, + 0x51, 0xec, 0x76, 0x9d, 0x57, 0x88, 0xb6, 0xe3, 0x5f, 0xe9, 0x04, 0x2b, 0x95, 0xd4, + 0xd2, 0x17, 0x81, 0x40, 0x0e, 0xaf, 0xf5, 0x86, 0x16, 0xad, 0x56, 0x27, 0x96, 0x63, + 0x6a, 0x50, 0xb8, 0xed, 0x6c, 0x7f, 0x98, 0x1d, 0xc7, 0xba, 0x81, 0x4e, 0xff, 0x15, + 0x2c, 0xb2, 0x28, 0xa2, 0xea, 0xd2, 0xf8, 0x32, 0x66, 0x2f, 0xa4, 0xa4, 0xa5, 0x07, + 0x97, 0xb0, 0xf8, 0x5b, 0x62, 0xd0, 0x8b, 0x1d, 0xd2, 0xd8, 0xe4, 0x3b, 0x4a, 0x5b, + 0xfb, 0xb1, 0x59, 0xed, 0x57, 0x8e, 0xf7, 0x47, 0x5d, 0xe0, 0xad, 0xa1, 0x3e, 0x17, + 0xad, 0x87, 0xcc, 0x23, 0x05, 0x67, 0x2b, 0xcc, 0x55, 0xa8, 0x88, 0x13, 0x17, 0xfd, + 0xc1, 0xbf, 0xc4, 0x59, 0xb6, 0x8b, 0x2d, 0xf7, 0x0c, 0xad, 0x37, 0x70, 0xed, 0x0f, + 0xd0, 0x2d, 0x64, 0xb9, 0x6f, 0x2b, 0xbf, 0x6f, 0x8f, 0x63, 0x2e, 0x86, 0x6c, 0xa5, + 0xd1, 0x96, 0xd2, 0x48, 0xad, 0x05, 0xc3, 0xde, 0x64, 0x41, 0x48, 0xa8, 0x0b, 0x51, + 0xad, 0xa9, 0x5b, 0xd0, 0x8d, 0x73, 0xcd, 0xbb, 0x45, 0x26, 0x4f, 0x3b, 0xd1, 0x13, + 0x83, 0x5b, 0x46, 0xf9, 0xbe, 0x7b, 0x6d, 0x23, 0xa4, 0x3b, 0xdd, 0xfe, 0x1e, 0x74, + 0x08, 0xc9, 0x70, 0x31, 0xe1, 0xa8, 0x21, 0x4b, 0xab, 0x46, 0x39, 0x10, 0x44, 0xb7, + 0x00, 0xd3, 0x8f, 0x51, 0x92, 0xc5, 0x7f, 0xe6, 0xf8, 0x71, 0x59, 0xb5, 0x55, 0x12, + 0x09, 0x4e, 0x29, 0xd2, 0xce, 0xba, 0xb8, 0x68, 0xc8, 0xf1, 0xad, 0xba, 0xd5, 0x70, + 0x77, 0xcb, 0xeb, 0x5e, 0x69, 0x65, 0x85, 0x82, 0xbf, 0x98, 0xd1, 0x9d, 0x64, 0xf4, + 0x4b, 0x0d, 0x50, 0xc7, 0xe2, 0x20, 0x9a, 0xb3, 0xfc, 0x56, 0xb4, 0xf4, 0x09, 0x12, + 0x3a, 0xae, 0xb0, 0x26, 0x3a, 0x22, 0x45, 0x1b, 0xc1, 0x4e, 0xd7, 0x56, 0xd0, 0x48, + 0x38, 0x5a, 0xed, 0xbb, 0x86, 0xa8, 0x46, 0x77, 0xbb, 0x2d, 0x21, 0xc5, 0x2c, 0xc9, + 0x49, 0x41, 0x47, 0xbf, 0x0f, 0xb1, 0x02, 0x74, 0x52, 0x82, 0x99, 0x09, 0x09, 0x72, + 0x62, 0x28, 0x18, 0x6e, 0x02, 0xc8, + ], + ock: [ + 0x4e, 0x9d, 0x45, 0x94, 0x6b, 0x3e, 0xea, 0xe7, 0xfe, 0x30, 0x5d, 0x5b, 0x90, 0x50, + 0x36, 0x14, 0x1f, 0x9f, 0x40, 0x09, 0xa6, 0x29, 0x4b, 0x96, 0xc7, 0x22, 0xa4, 0xa0, + 0xbe, 0x68, 0x5d, 0xff, + ], + op: [ + 0x63, 0xf7, 0x12, 0x5d, 0xf4, 0x83, 0x6f, 0xd2, 0x81, 0x6b, 0x02, 0x4e, 0xe7, 0x0e, + 0xfe, 0x09, 0xfb, 0x9a, 0x7b, 0x38, 0x63, 0xc6, 0xea, 0xcd, 0xf9, 0x5e, 0x03, 0x89, + 0x49, 0x50, 0x69, 0x2c, 0x56, 0x66, 0x9d, 0x64, 0x3f, 0x78, 0x0b, 0x6a, 0xd8, 0xb3, + 0xd3, 0x5a, 0xd7, 0x46, 0x8a, 0xaa, 0x73, 0x27, 0x66, 0x57, 0x5f, 0x84, 0xa9, 0x5d, + 0x20, 0xa6, 0x25, 0xff, 0x38, 0x77, 0xea, 0x3f, + ], + c_out: [ + 0xcb, 0xdf, 0x68, 0xa5, 0x7f, 0xb4, 0xa4, 0x6f, 0x34, 0x60, 0xff, 0x22, 0x7b, 0xc6, + 0x18, 0xda, 0xe1, 0x12, 0x29, 0x45, 0xb3, 0x80, 0xc7, 0xe5, 0x49, 0xcf, 0x4a, 0x6e, + 0x8b, 0xf3, 0x75, 0x49, 0xba, 0xe1, 0x89, 0x1f, 0xd8, 0xd1, 0xa4, 0x94, 0x4f, 0xdf, + 0x41, 0x0f, 0x07, 0x02, 0xed, 0xa5, 0x44, 0x2f, 0x0e, 0xa0, 0x1a, 0x5d, 0xf0, 0x12, + 0xa0, 0xae, 0x4d, 0x84, 0xed, 0x79, 0x80, 0x33, 0x28, 0xbd, 0x1f, 0xd5, 0xfa, 0xc7, + 0x19, 0x21, 0x6a, 0x77, 0x6d, 0xe6, 0x4f, 0xd1, 0x67, 0xdb, + ], + }, + TestVector { + incoming_viewing_key: [ + 0xfd, 0x9e, 0x9a, 0x1f, 0x38, 0x1c, 0xbe, 0x75, 0xcd, 0x8d, 0x6a, 0xe1, 0x2f, 0xca, + 0x87, 0x2e, 0x94, 0x00, 0xf0, 0x02, 0x72, 0xb0, 0x29, 0x65, 0x2e, 0x65, 0x6c, 0x8f, + 0x3c, 0x4b, 0xf0, 0x37, 0xee, 0xef, 0x96, 0x42, 0x1b, 0x2f, 0xab, 0x2f, 0xb3, 0xad, + 0x1e, 0x0a, 0xd8, 0x50, 0x2d, 0x74, 0xe6, 0xf0, 0x8f, 0x0d, 0xd5, 0x18, 0xf8, 0xfa, + 0x82, 0x2a, 0x65, 0xbe, 0x27, 0x40, 0xc0, 0x21, + ], + ovk: [ + 0xe7, 0x30, 0x81, 0xef, 0x8d, 0x62, 0xcb, 0x78, 0x0a, 0xb6, 0x88, 0x3a, 0x50, 0xa0, + 0xd4, 0x70, 0x19, 0x0d, 0xfb, 0xa1, 0x0a, 0x85, 0x7f, 0x82, 0x84, 0x2d, 0x38, 0x25, + 0xb3, 0xd6, 0xda, 0x05, + ], + default_d: [ + 0x55, 0x6e, 0x5e, 0x1b, 0xf5, 0x1b, 0xc6, 0xa6, 0x11, 0x58, 0xf7, + ], + default_pk_d: [ + 0xb4, 0xca, 0xc5, 0x6f, 0x06, 0x2b, 0xfb, 0x2e, 0x27, 0x15, 0xea, 0xf9, 0xc8, 0xfc, + 0xdb, 0xc2, 0x0c, 0x86, 0x79, 0x3f, 0x23, 0x57, 0xdd, 0xd0, 0x4a, 0xad, 0x39, 0xf9, + 0x4a, 0xd7, 0xc7, 0x84, + ], + v: 9072946746592546880, + rseed: [ + 0xae, 0xab, 0x01, 0x6b, 0x6b, 0xc1, 0xec, 0x14, 0x4b, 0x4e, 0x55, 0x3a, 0xcf, 0xd6, + 0x70, 0xf7, 0x7e, 0x75, 0x5f, 0xc8, 0x8e, 0x06, 0x77, 0xe3, 0x1b, 0xa4, 0x59, 0xb4, + 0x4e, 0x30, 0x77, 0x68, + ], + memo: [ + 0xff, 0x95, 0x8f, 0xe3, 0x78, 0x9d, 0x41, 0xc2, 0xb1, 0xff, 0x43, 0x4c, 0xb3, 0x0e, + 0x15, 0x91, 0x4f, 0x01, 0xbc, 0x6b, 0xc2, 0x30, 0x7b, 0x48, 0x8d, 0x25, 0x56, 0xd7, + 0xb7, 0x38, 0x0e, 0xa4, 0xff, 0xd7, 0x12, 0xf6, 0xb0, 0x2f, 0xe8, 0x06, 0xb9, 0x45, + 0x69, 0xcd, 0x40, 0x59, 0xf3, 0x96, 0xbf, 0x29, 0xb9, 0x9d, 0x0a, 0x40, 0xe5, 0xe1, + 0x71, 0x1c, 0xa9, 0x44, 0xf7, 0x2d, 0x43, 0x6a, 0x10, 0x2f, 0xca, 0x4b, 0x97, 0x69, + 0x3d, 0xa0, 0xb0, 0x86, 0xfe, 0x9d, 0x2e, 0x71, 0x62, 0x47, 0x0d, 0x02, 0xe0, 0xf0, + 0x5d, 0x4b, 0xec, 0x95, 0x12, 0xbf, 0xb3, 0xf3, 0x83, 0x27, 0x29, 0x6e, 0xfa, 0xa7, + 0x43, 0x28, 0xb1, 0x18, 0xc2, 0x74, 0x02, 0xc7, 0x0c, 0x3a, 0x90, 0xb4, 0x9a, 0xd4, + 0xbb, 0xc6, 0x8e, 0x37, 0xc0, 0xaa, 0x7d, 0x9b, 0x3f, 0xe1, 0x77, 0x99, 0xd7, 0x3b, + 0x84, 0x1e, 0x75, 0x17, 0x13, 0xa0, 0x29, 0x43, 0x90, 0x5a, 0xae, 0x08, 0x03, 0xfd, + 0x69, 0x44, 0x2e, 0xb7, 0x68, 0x1e, 0xc2, 0xa0, 0x56, 0x00, 0x05, 0x4e, 0x92, 0xee, + 0xd5, 0x55, 0x02, 0x8f, 0x21, 0xb6, 0xa1, 0x55, 0x26, 0x8a, 0x2d, 0xd6, 0x64, 0x0a, + 0x69, 0x30, 0x1a, 0x52, 0xa3, 0x8d, 0x4d, 0x9f, 0x9f, 0x95, 0x7a, 0xe3, 0x5a, 0xf7, + 0x16, 0x71, 0x18, 0x14, 0x1c, 0xe4, 0xc9, 0xbe, 0x0a, 0x6a, 0x49, 0x2f, 0xe7, 0x9f, + 0x15, 0x81, 0xa1, 0x55, 0xfa, 0x3a, 0x2b, 0x9d, 0xaf, 0xd8, 0x2e, 0x65, 0x0b, 0x38, + 0x6a, 0xd3, 0xa0, 0x8c, 0xb6, 0xb8, 0x31, 0x31, 0xac, 0x30, 0x0b, 0x08, 0x46, 0x35, + 0x4a, 0x7e, 0xef, 0x9c, 0x41, 0x0e, 0x4b, 0x62, 0xc4, 0x7c, 0x54, 0x26, 0x90, 0x7d, + 0xfc, 0x66, 0x85, 0xc5, 0xc9, 0x9b, 0x71, 0x41, 0xac, 0x62, 0x6a, 0xb4, 0x76, 0x1f, + 0xd3, 0xf4, 0x1e, 0x72, 0x8e, 0x1a, 0x28, 0xf8, 0x9d, 0xb8, 0x9f, 0xfd, 0xec, 0xa3, + 0x64, 0xdd, 0x2f, 0x0f, 0x07, 0x39, 0xf0, 0x53, 0x45, 0x56, 0x48, 0x31, 0x99, 0xc7, + 0x1f, 0x18, 0x93, 0x41, 0xac, 0x9b, 0x78, 0xa2, 0x69, 0x16, 0x42, 0x06, 0xa0, 0xea, + 0x1c, 0xe7, 0x3b, 0xfb, 0x2a, 0x94, 0x2e, 0x73, 0x70, 0xb2, 0x47, 0xc0, 0x46, 0xf8, + 0xe7, 0x5e, 0xf8, 0xe3, 0xf8, 0xbd, 0x82, 0x1c, 0xf5, 0x77, 0x49, 0x18, 0x64, 0xe2, + 0x0e, 0x6d, 0x08, 0xfd, 0x2e, 0x32, 0xb5, 0x55, 0xc9, 0x2c, 0x66, 0x1f, 0x19, 0x58, + 0x8b, 0x72, 0xa8, 0x95, 0x99, 0x71, 0x0a, 0x88, 0x06, 0x12, 0x53, 0xca, 0x28, 0x5b, + 0x63, 0x04, 0xb3, 0x7d, 0xa2, 0xb5, 0x29, 0x4f, 0x5c, 0xb3, 0x54, 0xa8, 0x94, 0x32, + 0x28, 0x48, 0xcc, 0xbd, 0xc7, 0xc2, 0x54, 0x5b, 0x7d, 0xa5, 0x68, 0xaf, 0xac, 0x87, + 0xff, 0xa0, 0x05, 0xc3, 0x12, 0x24, 0x1c, 0x2d, 0x57, 0xf4, 0xb4, 0x5d, 0x64, 0x19, + 0xf0, 0xd2, 0xe2, 0xc5, 0xaf, 0x33, 0xae, 0x24, 0x37, 0x85, 0xb3, 0x25, 0xcd, 0xab, + 0x95, 0x40, 0x4f, 0xc7, 0xae, 0xd7, 0x05, 0x25, 0xcd, 0xdb, 0x41, 0x87, 0x2c, 0xfc, + 0xc2, 0x14, 0xb1, 0x32, 0x32, 0xed, 0xc7, 0x86, 0x09, 0x75, 0x3d, 0xbf, 0xf9, 0x30, + 0xeb, 0x0d, 0xc1, 0x56, 0x61, 0x2b, 0x9c, 0xb4, 0x34, 0xbc, 0x4b, 0x69, 0x33, 0x92, + 0xde, 0xb8, 0x7c, 0x53, 0x04, 0x35, 0x31, 0x2e, 0xdc, 0xed, 0xc6, 0xa9, 0x61, 0x13, + 0x33, 0x38, 0xd7, 0x86, 0xc4, 0xa3, 0xe1, 0x03, 0xf6, 0x01, 0x10, 0xa1, 0x6b, 0x13, + 0x37, 0x12, 0x97, 0x04, 0xbf, 0x47, 0x54, 0xff, 0x6b, 0xa9, 0xfb, 0xe6, 0x59, 0x51, + 0xe6, 0x10, 0x62, 0x0f, 0x71, 0xcd, 0xa8, 0xfc, 0x87, 0x76, 0x25, 0xf2, 0xc5, 0xbb, + 0x04, 0xcb, 0xe1, 0x22, 0x8b, 0x1e, 0x88, 0x6f, + ], + cv_net: [ + 0x15, 0x49, 0x70, 0x7e, 0x1e, 0xd2, 0xb2, 0xeb, 0x66, 0x15, 0x65, 0x0b, 0xec, 0x45, + 0xa2, 0x17, 0x64, 0x10, 0x4a, 0x23, 0xea, 0xf6, 0xba, 0x49, 0x6c, 0xb9, 0xb8, 0xe8, + 0x25, 0x7a, 0xd8, 0xb3, + ], + nf_old: [ + 0x33, 0x88, 0xda, 0x05, 0x06, 0xda, 0x9e, 0xa2, 0xd5, 0x16, 0x73, 0x9b, 0x95, 0x1c, + 0x7c, 0xc0, 0x58, 0x53, 0x36, 0xb4, 0x4d, 0xf9, 0xb3, 0xb5, 0x0e, 0x48, 0x93, 0xe4, + 0xb1, 0x84, 0x92, 0x11, + ], + cmx: [ + 0x9e, 0x04, 0x32, 0xb2, 0xb3, 0x33, 0xcd, 0xe8, 0xce, 0x92, 0x1b, 0x77, 0xca, 0x7e, + 0x9e, 0x41, 0x51, 0xe3, 0x74, 0xd5, 0x16, 0xcd, 0xa1, 0x17, 0x63, 0x83, 0x6a, 0xf3, + 0xb6, 0x6f, 0x5b, 0x15, + ], + esk: [ + 0x68, 0x65, 0x87, 0xce, 0x53, 0xc3, 0x39, 0xf9, 0xce, 0xcf, 0x4d, 0x80, 0x4a, 0x17, + 0x09, 0x39, 0x2b, 0x6a, 0xb1, 0x08, 0xea, 0x2c, 0x57, 0x79, 0x92, 0x1c, 0xd5, 0xda, + 0x8a, 0x6e, 0x1a, 0x08, + ], + ephemeral_key: [ + 0x91, 0x92, 0x3e, 0xd8, 0x2b, 0x76, 0xd7, 0x97, 0x30, 0x7c, 0xaa, 0x23, 0x02, 0xc0, + 0xcf, 0x75, 0x56, 0x12, 0x17, 0x24, 0x98, 0x67, 0x53, 0x2a, 0xe5, 0x1c, 0x2e, 0xa0, + 0x05, 0xed, 0xad, 0xb6, + ], + shared_secret: [ + 0x53, 0xd7, 0xe4, 0x84, 0x3a, 0x36, 0xd5, 0x79, 0xb5, 0xa7, 0xc1, 0x04, 0x11, 0x96, + 0xbd, 0x4c, 0x85, 0x80, 0x5c, 0xcd, 0x0a, 0x3f, 0x95, 0xbc, 0x9e, 0x71, 0x06, 0x90, + 0xd1, 0x1b, 0x7a, 0xaa, + ], + k_enc: [ + 0xc2, 0xe3, 0x38, 0x9d, 0x6f, 0xc3, 0xcd, 0x06, 0x7f, 0x59, 0x0a, 0x93, 0x73, 0x05, + 0x04, 0xad, 0x9b, 0x63, 0xc4, 0x55, 0x45, 0x69, 0xb9, 0x62, 0x0f, 0x3e, 0xf0, 0xb0, + 0x65, 0x94, 0xde, 0xd6, + ], + p_enc: [ + 0x02, 0x55, 0x6e, 0x5e, 0x1b, 0xf5, 0x1b, 0xc6, 0xa6, 0x11, 0x58, 0xf7, 0x40, 0x50, + 0xaf, 0xd8, 0xfe, 0x94, 0xe9, 0x7d, 0xae, 0xab, 0x01, 0x6b, 0x6b, 0xc1, 0xec, 0x14, + 0x4b, 0x4e, 0x55, 0x3a, 0xcf, 0xd6, 0x70, 0xf7, 0x7e, 0x75, 0x5f, 0xc8, 0x8e, 0x06, + 0x77, 0xe3, 0x1b, 0xa4, 0x59, 0xb4, 0x4e, 0x30, 0x77, 0x68, 0xff, 0x95, 0x8f, 0xe3, + 0x78, 0x9d, 0x41, 0xc2, 0xb1, 0xff, 0x43, 0x4c, 0xb3, 0x0e, 0x15, 0x91, 0x4f, 0x01, + 0xbc, 0x6b, 0xc2, 0x30, 0x7b, 0x48, 0x8d, 0x25, 0x56, 0xd7, 0xb7, 0x38, 0x0e, 0xa4, + 0xff, 0xd7, 0x12, 0xf6, 0xb0, 0x2f, 0xe8, 0x06, 0xb9, 0x45, 0x69, 0xcd, 0x40, 0x59, + 0xf3, 0x96, 0xbf, 0x29, 0xb9, 0x9d, 0x0a, 0x40, 0xe5, 0xe1, 0x71, 0x1c, 0xa9, 0x44, + 0xf7, 0x2d, 0x43, 0x6a, 0x10, 0x2f, 0xca, 0x4b, 0x97, 0x69, 0x3d, 0xa0, 0xb0, 0x86, + 0xfe, 0x9d, 0x2e, 0x71, 0x62, 0x47, 0x0d, 0x02, 0xe0, 0xf0, 0x5d, 0x4b, 0xec, 0x95, + 0x12, 0xbf, 0xb3, 0xf3, 0x83, 0x27, 0x29, 0x6e, 0xfa, 0xa7, 0x43, 0x28, 0xb1, 0x18, + 0xc2, 0x74, 0x02, 0xc7, 0x0c, 0x3a, 0x90, 0xb4, 0x9a, 0xd4, 0xbb, 0xc6, 0x8e, 0x37, + 0xc0, 0xaa, 0x7d, 0x9b, 0x3f, 0xe1, 0x77, 0x99, 0xd7, 0x3b, 0x84, 0x1e, 0x75, 0x17, + 0x13, 0xa0, 0x29, 0x43, 0x90, 0x5a, 0xae, 0x08, 0x03, 0xfd, 0x69, 0x44, 0x2e, 0xb7, + 0x68, 0x1e, 0xc2, 0xa0, 0x56, 0x00, 0x05, 0x4e, 0x92, 0xee, 0xd5, 0x55, 0x02, 0x8f, + 0x21, 0xb6, 0xa1, 0x55, 0x26, 0x8a, 0x2d, 0xd6, 0x64, 0x0a, 0x69, 0x30, 0x1a, 0x52, + 0xa3, 0x8d, 0x4d, 0x9f, 0x9f, 0x95, 0x7a, 0xe3, 0x5a, 0xf7, 0x16, 0x71, 0x18, 0x14, + 0x1c, 0xe4, 0xc9, 0xbe, 0x0a, 0x6a, 0x49, 0x2f, 0xe7, 0x9f, 0x15, 0x81, 0xa1, 0x55, + 0xfa, 0x3a, 0x2b, 0x9d, 0xaf, 0xd8, 0x2e, 0x65, 0x0b, 0x38, 0x6a, 0xd3, 0xa0, 0x8c, + 0xb6, 0xb8, 0x31, 0x31, 0xac, 0x30, 0x0b, 0x08, 0x46, 0x35, 0x4a, 0x7e, 0xef, 0x9c, + 0x41, 0x0e, 0x4b, 0x62, 0xc4, 0x7c, 0x54, 0x26, 0x90, 0x7d, 0xfc, 0x66, 0x85, 0xc5, + 0xc9, 0x9b, 0x71, 0x41, 0xac, 0x62, 0x6a, 0xb4, 0x76, 0x1f, 0xd3, 0xf4, 0x1e, 0x72, + 0x8e, 0x1a, 0x28, 0xf8, 0x9d, 0xb8, 0x9f, 0xfd, 0xec, 0xa3, 0x64, 0xdd, 0x2f, 0x0f, + 0x07, 0x39, 0xf0, 0x53, 0x45, 0x56, 0x48, 0x31, 0x99, 0xc7, 0x1f, 0x18, 0x93, 0x41, + 0xac, 0x9b, 0x78, 0xa2, 0x69, 0x16, 0x42, 0x06, 0xa0, 0xea, 0x1c, 0xe7, 0x3b, 0xfb, + 0x2a, 0x94, 0x2e, 0x73, 0x70, 0xb2, 0x47, 0xc0, 0x46, 0xf8, 0xe7, 0x5e, 0xf8, 0xe3, + 0xf8, 0xbd, 0x82, 0x1c, 0xf5, 0x77, 0x49, 0x18, 0x64, 0xe2, 0x0e, 0x6d, 0x08, 0xfd, + 0x2e, 0x32, 0xb5, 0x55, 0xc9, 0x2c, 0x66, 0x1f, 0x19, 0x58, 0x8b, 0x72, 0xa8, 0x95, + 0x99, 0x71, 0x0a, 0x88, 0x06, 0x12, 0x53, 0xca, 0x28, 0x5b, 0x63, 0x04, 0xb3, 0x7d, + 0xa2, 0xb5, 0x29, 0x4f, 0x5c, 0xb3, 0x54, 0xa8, 0x94, 0x32, 0x28, 0x48, 0xcc, 0xbd, + 0xc7, 0xc2, 0x54, 0x5b, 0x7d, 0xa5, 0x68, 0xaf, 0xac, 0x87, 0xff, 0xa0, 0x05, 0xc3, + 0x12, 0x24, 0x1c, 0x2d, 0x57, 0xf4, 0xb4, 0x5d, 0x64, 0x19, 0xf0, 0xd2, 0xe2, 0xc5, + 0xaf, 0x33, 0xae, 0x24, 0x37, 0x85, 0xb3, 0x25, 0xcd, 0xab, 0x95, 0x40, 0x4f, 0xc7, + 0xae, 0xd7, 0x05, 0x25, 0xcd, 0xdb, 0x41, 0x87, 0x2c, 0xfc, 0xc2, 0x14, 0xb1, 0x32, + 0x32, 0xed, 0xc7, 0x86, 0x09, 0x75, 0x3d, 0xbf, 0xf9, 0x30, 0xeb, 0x0d, 0xc1, 0x56, + 0x61, 0x2b, 0x9c, 0xb4, 0x34, 0xbc, 0x4b, 0x69, 0x33, 0x92, 0xde, 0xb8, 0x7c, 0x53, + 0x04, 0x35, 0x31, 0x2e, 0xdc, 0xed, 0xc6, 0xa9, 0x61, 0x13, 0x33, 0x38, 0xd7, 0x86, + 0xc4, 0xa3, 0xe1, 0x03, 0xf6, 0x01, 0x10, 0xa1, 0x6b, 0x13, 0x37, 0x12, 0x97, 0x04, + 0xbf, 0x47, 0x54, 0xff, 0x6b, 0xa9, 0xfb, 0xe6, 0x59, 0x51, 0xe6, 0x10, 0x62, 0x0f, + 0x71, 0xcd, 0xa8, 0xfc, 0x87, 0x76, 0x25, 0xf2, 0xc5, 0xbb, 0x04, 0xcb, 0xe1, 0x22, + 0x8b, 0x1e, 0x88, 0x6f, + ], + c_enc: [ + 0x6d, 0x21, 0x18, 0x0a, 0xc4, 0x74, 0x94, 0x57, 0x8a, 0x90, 0x06, 0xaf, 0x5b, 0xeb, + 0x4e, 0x34, 0x55, 0x59, 0xab, 0xdb, 0x0e, 0x23, 0xed, 0x52, 0x65, 0xaf, 0x79, 0xce, + 0x0c, 0xc5, 0x96, 0x71, 0xea, 0x31, 0x7b, 0x3e, 0xb1, 0x52, 0x93, 0xd1, 0xe0, 0x4a, + 0x9a, 0xd8, 0x39, 0x69, 0xab, 0x9e, 0x17, 0x08, 0xf2, 0x28, 0x85, 0x3a, 0x28, 0x1f, + 0xcf, 0x6c, 0x97, 0x60, 0xae, 0x71, 0x96, 0x5b, 0xb1, 0xd4, 0x45, 0x2e, 0x5e, 0xd0, + 0x06, 0x00, 0xab, 0x58, 0x94, 0x27, 0x75, 0xb7, 0x4e, 0x12, 0x62, 0xb4, 0x22, 0x5d, + 0x3b, 0x61, 0x9c, 0x31, 0x65, 0x96, 0xd7, 0xcf, 0x9c, 0x93, 0xbd, 0xb5, 0x2a, 0xfa, + 0x77, 0x8a, 0xa1, 0x20, 0x8d, 0x56, 0xd0, 0x69, 0xe5, 0x6e, 0x27, 0x79, 0x61, 0x4d, + 0x56, 0xf4, 0x36, 0x10, 0x72, 0xbc, 0x15, 0x16, 0xa9, 0xb4, 0x56, 0x2a, 0x4f, 0x54, + 0x63, 0xa5, 0x13, 0xc4, 0x59, 0x42, 0x15, 0x70, 0xf3, 0x34, 0xef, 0xb6, 0xbc, 0xd2, + 0x08, 0xf8, 0xf8, 0x05, 0x0e, 0x15, 0x3d, 0x4e, 0x61, 0xf3, 0x1e, 0xdd, 0xbb, 0x5a, + 0x98, 0xf1, 0x70, 0xd3, 0xd0, 0x80, 0xe8, 0xec, 0x3f, 0x65, 0x20, 0xb6, 0xa2, 0xd6, + 0x08, 0x83, 0xa5, 0x87, 0xff, 0x0e, 0x98, 0x21, 0x1c, 0x73, 0x45, 0x16, 0xb5, 0xdc, + 0xc7, 0x5e, 0xf2, 0x3c, 0xfb, 0x9f, 0x55, 0xf1, 0xde, 0xed, 0xf1, 0x26, 0xc2, 0xce, + 0x17, 0x27, 0x3f, 0x41, 0xdb, 0xbb, 0xbd, 0x2f, 0x49, 0xe3, 0x55, 0x77, 0x6e, 0xc0, + 0x46, 0x98, 0x35, 0xf7, 0x9d, 0x94, 0x80, 0x42, 0xf8, 0x42, 0x0f, 0x11, 0xe1, 0xab, + 0xd7, 0x45, 0x06, 0xb7, 0x8b, 0x5e, 0x41, 0xcb, 0xe0, 0xc7, 0x07, 0x17, 0xf4, 0x6e, + 0x7e, 0xb9, 0xac, 0xdc, 0x35, 0x1c, 0x94, 0x98, 0x83, 0x3a, 0xfd, 0xed, 0x93, 0x06, + 0xa0, 0x43, 0x5b, 0x10, 0xb8, 0x3a, 0xe3, 0x95, 0xd5, 0x7f, 0x5b, 0x0a, 0x5d, 0x41, + 0xa9, 0x34, 0x2d, 0x02, 0xec, 0x58, 0xb6, 0xee, 0x16, 0x87, 0x77, 0x50, 0x16, 0xb8, + 0x74, 0x9b, 0x28, 0x7a, 0xbd, 0xd3, 0xed, 0x1a, 0x83, 0x5e, 0xa8, 0xf3, 0xb1, 0x4d, + 0x08, 0x18, 0xfe, 0x0d, 0x5d, 0x9a, 0x48, 0xeb, 0x02, 0x13, 0x64, 0x0e, 0xec, 0xc1, + 0x9a, 0x5d, 0x16, 0x61, 0xdb, 0x82, 0x2b, 0x77, 0x9b, 0x08, 0x0c, 0xd8, 0xba, 0x7f, + 0x3a, 0x27, 0x23, 0x21, 0xee, 0x5d, 0xa2, 0x27, 0x8c, 0x53, 0x85, 0x67, 0xd0, 0xd9, + 0xbb, 0x28, 0xce, 0x64, 0x21, 0x31, 0x15, 0x03, 0xa4, 0xa0, 0x17, 0x14, 0xcf, 0x91, + 0x01, 0x55, 0x2b, 0xa5, 0xef, 0xc8, 0x5c, 0x94, 0xd5, 0xe5, 0x09, 0x72, 0x7e, 0x5e, + 0x01, 0x1c, 0x15, 0xb1, 0xb2, 0xec, 0xdf, 0xf3, 0x99, 0xc0, 0xbe, 0x33, 0x42, 0xab, + 0x6e, 0xdd, 0xa8, 0xe3, 0xed, 0x81, 0x1a, 0x7d, 0x9c, 0x9c, 0xa4, 0xbb, 0x71, 0xa5, + 0x63, 0xe1, 0x59, 0x78, 0xbf, 0x8e, 0x64, 0x04, 0xac, 0x79, 0x6e, 0xb7, 0x81, 0xfd, + 0x2c, 0xf2, 0x19, 0x1b, 0x2f, 0x4d, 0x40, 0x76, 0xd9, 0x3c, 0xcc, 0x80, 0xf7, 0xe5, + 0x92, 0xfa, 0x66, 0x9b, 0x72, 0x26, 0x57, 0x82, 0xee, 0x8f, 0x5c, 0xe3, 0x03, 0x12, + 0xd3, 0x51, 0x2b, 0x35, 0x49, 0x0a, 0xfe, 0x00, 0x6b, 0xad, 0xb1, 0x62, 0x0d, 0x1b, + 0x0c, 0x79, 0xfb, 0xc4, 0xbe, 0xc5, 0x65, 0xd7, 0x46, 0x1d, 0x68, 0xef, 0x72, 0x27, + 0x79, 0x11, 0x77, 0x6c, 0xd5, 0xa7, 0xb5, 0xfc, 0x6f, 0xa8, 0xb3, 0xee, 0xfd, 0x7a, + 0x39, 0xe8, 0xe5, 0xb4, 0xf6, 0xa5, 0x0c, 0x7d, 0x58, 0xd9, 0xeb, 0x08, 0x38, 0x0d, + 0x32, 0x0b, 0x36, 0xea, 0x04, 0x37, 0x00, 0xac, 0xa7, 0x64, 0xb4, 0x8c, 0x3d, 0xa4, + 0x93, 0x67, 0xfa, 0x93, 0x35, 0x6a, 0xaa, 0x4f, 0x87, 0x08, 0xea, 0x6e, 0x34, 0x59, + 0x81, 0x84, 0x5b, 0xe7, 0x37, 0x6d, 0xa7, 0x98, 0x40, 0x53, 0xef, 0x7d, 0xd4, 0xb6, + 0xa7, 0x27, 0x92, 0x35, 0x6a, 0x6c, 0x34, 0x62, 0x68, 0x88, 0xcc, 0x70, 0xde, 0x49, + 0x9e, 0xf9, 0x10, 0x26, 0x95, 0xd9, 0xdb, 0x12, 0xaf, 0x29, 0x62, 0xfc, 0x75, 0xd4, + 0x36, 0x56, 0x19, 0xdb, 0x0e, 0x87, 0x6c, 0xdb, 0x82, 0x02, 0xe8, 0x16, 0xfd, 0xc2, + 0xcd, 0xf3, 0x7a, 0xd3, 0xbe, 0x3b, + ], + ock: [ + 0x91, 0x36, 0x59, 0x30, 0x9e, 0xcf, 0xcd, 0xfd, 0x7e, 0x0c, 0xef, 0x23, 0xf8, 0x80, + 0xae, 0x4c, 0xf4, 0xd8, 0xcf, 0x67, 0x78, 0xb9, 0xc4, 0xe6, 0xf4, 0xc7, 0x71, 0x7b, + 0xf5, 0xca, 0xf0, 0x9e, + ], + op: [ + 0xb4, 0xca, 0xc5, 0x6f, 0x06, 0x2b, 0xfb, 0x2e, 0x27, 0x15, 0xea, 0xf9, 0xc8, 0xfc, + 0xdb, 0xc2, 0x0c, 0x86, 0x79, 0x3f, 0x23, 0x57, 0xdd, 0xd0, 0x4a, 0xad, 0x39, 0xf9, + 0x4a, 0xd7, 0xc7, 0x84, 0x68, 0x65, 0x87, 0xce, 0x53, 0xc3, 0x39, 0xf9, 0xce, 0xcf, + 0x4d, 0x80, 0x4a, 0x17, 0x09, 0x39, 0x2b, 0x6a, 0xb1, 0x08, 0xea, 0x2c, 0x57, 0x79, + 0x92, 0x1c, 0xd5, 0xda, 0x8a, 0x6e, 0x1a, 0x08, + ], + c_out: [ + 0x4d, 0xf8, 0xda, 0x22, 0xec, 0x17, 0xf4, 0x16, 0xe0, 0x59, 0x1a, 0xac, 0xc1, 0x6b, + 0x6d, 0xd2, 0xbb, 0xbf, 0x47, 0xbe, 0x04, 0x30, 0x3d, 0xc8, 0x85, 0xd3, 0x5a, 0xc3, + 0xf9, 0x92, 0x3e, 0xea, 0x41, 0xf3, 0x6b, 0x3a, 0x4a, 0x5c, 0x5e, 0x73, 0x3e, 0x32, + 0x6e, 0x96, 0xdb, 0xe5, 0x5e, 0xf9, 0xe7, 0xe8, 0x42, 0x27, 0x0c, 0xbf, 0x46, 0x7c, + 0xdc, 0x16, 0x0e, 0xbf, 0x4f, 0x10, 0x9a, 0xd6, 0x92, 0x0a, 0x6a, 0xed, 0x4a, 0x01, + 0x71, 0xd9, 0x06, 0xe3, 0xe8, 0x13, 0x32, 0xe6, 0xc5, 0x61, + ], + }, + TestVector { + incoming_viewing_key: [ + 0x91, 0xee, 0x20, 0x54, 0x48, 0xc9, 0x8b, 0x69, 0xa3, 0x3e, 0xbf, 0x29, 0x35, 0x09, + 0x5d, 0x79, 0xc2, 0x53, 0x02, 0x9e, 0x5e, 0x5d, 0xc0, 0x2d, 0xf5, 0x8a, 0x10, 0x03, + 0xd1, 0xd8, 0x5c, 0x27, 0xf2, 0xde, 0xf5, 0xb1, 0x10, 0xfd, 0x43, 0xd7, 0x15, 0xe8, + 0xd5, 0x9e, 0xc4, 0xad, 0x0f, 0x41, 0x02, 0x0e, 0xc6, 0x60, 0xcd, 0x97, 0x33, 0xe7, + 0x79, 0xb5, 0x1a, 0x7a, 0xc2, 0xd5, 0xa6, 0x31, + ], + ovk: [ + 0x18, 0x2f, 0x20, 0x7b, 0x31, 0x75, 0x96, 0x1f, 0x64, 0x11, 0xa4, 0x93, 0xbf, 0xfd, + 0x04, 0x8e, 0x7d, 0x0d, 0x87, 0xd8, 0x2f, 0xe6, 0xf9, 0x90, 0xa2, 0xb0, 0xa2, 0x5f, + 0x5a, 0xa0, 0x11, 0x1a, + ], + default_d: [ + 0x08, 0xab, 0x2e, 0xe9, 0x9d, 0x4d, 0x9b, 0x98, 0x3d, 0xdd, 0x22, + ], + default_pk_d: [ + 0x82, 0xfe, 0xf6, 0x43, 0xdb, 0xf4, 0x2d, 0xca, 0x51, 0x56, 0xfb, 0x51, 0xd4, 0xc4, + 0xee, 0x00, 0x8a, 0x72, 0xf0, 0xdb, 0xc3, 0xf3, 0x1e, 0xfa, 0xb0, 0x75, 0xf2, 0x75, + 0x15, 0x37, 0x14, 0x0d, + ], + v: 14400879385556610631, + rseed: [ + 0xd5, 0x07, 0xcd, 0xfe, 0x6f, 0xbd, 0xaa, 0x86, 0x16, 0x3e, 0x9c, 0xf5, 0xde, 0x31, + 0x00, 0xfb, 0xca, 0x7e, 0x8d, 0xa0, 0x47, 0xb0, 0x90, 0xdb, 0x9f, 0x37, 0x95, 0x2f, + 0xbf, 0xee, 0x76, 0xaf, + ], + memo: [ + 0xff, 0x61, 0x66, 0x81, 0x90, 0xbd, 0x52, 0xed, 0x49, 0x0e, 0x67, 0x7b, 0x51, 0x5d, + 0x01, 0x43, 0x84, 0xaf, 0x07, 0x21, 0x9c, 0x7c, 0x0e, 0xe7, 0xfc, 0x7b, 0xfc, 0x79, + 0xf3, 0x25, 0x64, 0x4e, 0x4d, 0xf4, 0xc0, 0xd7, 0xdb, 0x08, 0xe9, 0xf0, 0xbd, 0x02, + 0x49, 0x43, 0xc7, 0x05, 0xab, 0xff, 0x89, 0x94, 0xbf, 0xa6, 0x05, 0xcf, 0xbc, 0x7e, + 0xd7, 0x46, 0xa7, 0xd3, 0xf7, 0xc3, 0x7d, 0x9e, 0x8b, 0xdc, 0x43, 0x3b, 0x7d, 0x79, + 0xe0, 0x8a, 0x12, 0xf7, 0x38, 0xa8, 0xf0, 0xdb, 0xdd, 0xfe, 0xf2, 0xf2, 0x65, 0x7e, + 0xf3, 0xe4, 0x7d, 0x1b, 0x0f, 0xd1, 0x1e, 0x6a, 0x13, 0x31, 0x1f, 0xb7, 0x99, 0xc7, + 0x9c, 0x64, 0x1d, 0x9d, 0xa4, 0x3b, 0x33, 0xe7, 0xad, 0x01, 0x2e, 0x28, 0x25, 0x53, + 0x98, 0x78, 0x92, 0x62, 0x27, 0x5f, 0x11, 0x75, 0xbe, 0x84, 0x62, 0xc0, 0x14, 0x91, + 0xc4, 0xd8, 0x42, 0x40, 0x6d, 0x0e, 0xc4, 0x28, 0x2c, 0x95, 0x26, 0x17, 0x4a, 0x09, + 0x87, 0x8f, 0xe8, 0xfd, 0xde, 0x33, 0xa2, 0x96, 0x04, 0xe5, 0xe5, 0xe7, 0xb2, 0xa0, + 0x25, 0xd6, 0x65, 0x0b, 0x97, 0xdb, 0xb5, 0x2b, 0xef, 0xb5, 0x9b, 0x1d, 0x30, 0xa5, + 0x74, 0x33, 0xb0, 0xa3, 0x51, 0x47, 0x44, 0x44, 0x09, 0x9d, 0xaa, 0x37, 0x10, 0x46, + 0x61, 0x32, 0x60, 0xcf, 0x33, 0x54, 0xcf, 0xcd, 0xad, 0xa6, 0x63, 0xec, 0xe8, 0x24, + 0xff, 0xd7, 0xe4, 0x43, 0x93, 0x88, 0x6a, 0x86, 0x16, 0x5d, 0xdd, 0xdf, 0x2b, 0x4c, + 0x41, 0x77, 0x35, 0x54, 0xc8, 0x69, 0x95, 0x26, 0x94, 0x08, 0xb1, 0x1e, 0x67, 0x37, + 0xa4, 0xc4, 0x47, 0x58, 0x6f, 0x69, 0x17, 0x34, 0x46, 0xd8, 0xe4, 0x8b, 0xf8, 0x4c, + 0xbc, 0x00, 0x0a, 0x80, 0x78, 0x99, 0x97, 0x3e, 0xb9, 0x3c, 0x5e, 0x81, 0x9a, 0xad, + 0x66, 0x94, 0x13, 0xf8, 0x38, 0x79, 0x33, 0xad, 0x15, 0x84, 0xaa, 0x35, 0xe4, 0x3f, + 0x4e, 0xcd, 0x1e, 0x2d, 0x04, 0x07, 0xc0, 0xb1, 0xb8, 0x99, 0x20, 0xff, 0xdf, 0xdb, + 0x9b, 0xea, 0x51, 0xac, 0x95, 0xb5, 0x57, 0xaf, 0x71, 0xb8, 0x9f, 0x90, 0x3f, 0x5d, + 0x98, 0x48, 0xf1, 0x4f, 0xcb, 0xeb, 0x18, 0x37, 0x57, 0x0f, 0x54, 0x4d, 0x63, 0x59, + 0xeb, 0x23, 0xfa, 0xf3, 0x8a, 0x08, 0x22, 0xda, 0x36, 0xce, 0x42, 0x6c, 0x4a, 0x2f, + 0xbe, 0xff, 0xeb, 0x0a, 0x8a, 0x2e, 0x29, 0x7a, 0x9d, 0x19, 0xba, 0x15, 0x02, 0x45, + 0x90, 0xe3, 0x32, 0x9d, 0x9f, 0xa9, 0x26, 0x1f, 0x99, 0x38, 0xa4, 0x03, 0x2d, 0xd3, + 0x46, 0x06, 0xc9, 0xcf, 0x9f, 0x3d, 0xd3, 0x3e, 0x57, 0x6f, 0x05, 0xcd, 0x1d, 0xd6, + 0x81, 0x1c, 0x62, 0x98, 0x75, 0x7d, 0x77, 0xd9, 0xe8, 0x10, 0xab, 0xdb, 0x22, 0x6a, + 0xfc, 0xaa, 0x43, 0x46, 0xa6, 0x56, 0x0f, 0x89, 0x32, 0xb3, 0x18, 0x1f, 0xd3, 0x55, + 0xd5, 0xd3, 0x91, 0x97, 0x61, 0x83, 0xf8, 0xd9, 0x93, 0x88, 0x83, 0x96, 0x32, 0xd6, + 0x35, 0x4f, 0x66, 0x6d, 0x09, 0xd3, 0xe5, 0x62, 0x9e, 0xa1, 0x97, 0x37, 0x38, 0x86, + 0x13, 0xd3, 0x8a, 0x34, 0xfd, 0x0f, 0x6e, 0x50, 0xee, 0x5a, 0x0c, 0xc9, 0x67, 0x71, + 0x77, 0xf5, 0x00, 0x28, 0xc1, 0x41, 0x37, 0x81, 0x87, 0xbd, 0x28, 0x19, 0x40, 0x3f, + 0xc5, 0x34, 0xf8, 0x00, 0x76, 0xe9, 0x38, 0x0c, 0xb4, 0x96, 0x4d, 0x3b, 0x6b, 0x45, + 0x81, 0x9d, 0x3b, 0x8e, 0x9c, 0xaf, 0x54, 0xf0, 0x51, 0x85, 0x2d, 0x67, 0x1b, 0xf8, + 0xc1, 0xff, 0xde, 0x2d, 0x15, 0x10, 0x75, 0x64, 0x18, 0xcb, 0x48, 0x10, 0x93, 0x6a, + 0xa5, 0x7e, 0x69, 0x65, 0xd6, 0xfb, 0x65, 0x6a, 0x76, 0x0b, 0x7f, 0x19, 0xad, 0xf9, + 0x6c, 0x17, 0x34, 0x88, 0x55, 0x21, 0x93, 0xb1, + ], + cv_net: [ + 0xc3, 0x94, 0x68, 0x5d, 0x92, 0x95, 0x59, 0x7e, 0x21, 0x55, 0x7f, 0x21, 0x9f, 0x3c, + 0x9d, 0x5e, 0x64, 0x07, 0x19, 0xbc, 0xa5, 0xc8, 0xed, 0x49, 0x99, 0x97, 0x34, 0xe6, + 0xc5, 0xb3, 0x73, 0x3e, + ], + nf_old: [ + 0xbe, 0xf8, 0xcf, 0x16, 0x98, 0xe4, 0x78, 0x47, 0xd3, 0x8e, 0x1a, 0xaa, 0x88, 0x86, + 0x10, 0x77, 0xcd, 0xb5, 0xad, 0x4c, 0xf6, 0x6f, 0xe4, 0x2f, 0xd6, 0x52, 0x57, 0x81, + 0xb6, 0xd3, 0x4f, 0x1e, + ], + cmx: [ + 0xd8, 0x19, 0xa6, 0x37, 0x7a, 0xce, 0x33, 0xf9, 0x21, 0xf2, 0x29, 0xf9, 0x32, 0x86, + 0x6d, 0x9f, 0xcd, 0xb9, 0xd0, 0x42, 0x6a, 0xfa, 0xca, 0x9e, 0x60, 0x50, 0xb4, 0x7a, + 0x83, 0x19, 0xd6, 0x0d, + ], + esk: [ + 0x59, 0xd1, 0x0a, 0x5b, 0x94, 0x15, 0x8a, 0x3f, 0x3a, 0x78, 0xb3, 0x5d, 0xa9, 0xc6, + 0x27, 0xbe, 0xdf, 0x7c, 0xfb, 0x84, 0x7e, 0x3e, 0x59, 0x86, 0xec, 0x8a, 0xd7, 0xf7, + 0x4c, 0xd9, 0xb2, 0x1b, + ], + ephemeral_key: [ + 0x5b, 0xcb, 0xf9, 0xf1, 0xd7, 0xdd, 0x68, 0xe7, 0xcc, 0x6d, 0x6c, 0x78, 0x49, 0x50, + 0xd1, 0xc2, 0xe0, 0xbe, 0x6a, 0x84, 0xa7, 0xa8, 0x8d, 0x6f, 0x7a, 0x20, 0x98, 0xc3, + 0xdc, 0xae, 0x3f, 0x2f, + ], + shared_secret: [ + 0x37, 0x35, 0x1c, 0xe2, 0x57, 0xb2, 0x79, 0x4d, 0x86, 0xa5, 0x3d, 0x26, 0x8d, 0xc9, + 0x00, 0x06, 0x40, 0xc2, 0x76, 0xf3, 0xf4, 0x65, 0xe1, 0xaa, 0x70, 0xbf, 0xde, 0xf4, + 0x99, 0xa3, 0xd7, 0xaa, + ], + k_enc: [ + 0xea, 0x22, 0x99, 0x65, 0x39, 0xd3, 0x74, 0xda, 0x6a, 0x75, 0x34, 0x39, 0x5a, 0xe9, + 0x23, 0x36, 0xfc, 0xa7, 0x85, 0x11, 0x20, 0xdd, 0x1a, 0xe4, 0x9e, 0x45, 0xb3, 0x3e, + 0x0b, 0xed, 0xe9, 0xac, + ], + p_enc: [ + 0x02, 0x08, 0xab, 0x2e, 0xe9, 0x9d, 0x4d, 0x9b, 0x98, 0x3d, 0xdd, 0x22, 0x47, 0xee, + 0x58, 0x85, 0x80, 0x33, 0xda, 0xc7, 0xd5, 0x07, 0xcd, 0xfe, 0x6f, 0xbd, 0xaa, 0x86, + 0x16, 0x3e, 0x9c, 0xf5, 0xde, 0x31, 0x00, 0xfb, 0xca, 0x7e, 0x8d, 0xa0, 0x47, 0xb0, + 0x90, 0xdb, 0x9f, 0x37, 0x95, 0x2f, 0xbf, 0xee, 0x76, 0xaf, 0xff, 0x61, 0x66, 0x81, + 0x90, 0xbd, 0x52, 0xed, 0x49, 0x0e, 0x67, 0x7b, 0x51, 0x5d, 0x01, 0x43, 0x84, 0xaf, + 0x07, 0x21, 0x9c, 0x7c, 0x0e, 0xe7, 0xfc, 0x7b, 0xfc, 0x79, 0xf3, 0x25, 0x64, 0x4e, + 0x4d, 0xf4, 0xc0, 0xd7, 0xdb, 0x08, 0xe9, 0xf0, 0xbd, 0x02, 0x49, 0x43, 0xc7, 0x05, + 0xab, 0xff, 0x89, 0x94, 0xbf, 0xa6, 0x05, 0xcf, 0xbc, 0x7e, 0xd7, 0x46, 0xa7, 0xd3, + 0xf7, 0xc3, 0x7d, 0x9e, 0x8b, 0xdc, 0x43, 0x3b, 0x7d, 0x79, 0xe0, 0x8a, 0x12, 0xf7, + 0x38, 0xa8, 0xf0, 0xdb, 0xdd, 0xfe, 0xf2, 0xf2, 0x65, 0x7e, 0xf3, 0xe4, 0x7d, 0x1b, + 0x0f, 0xd1, 0x1e, 0x6a, 0x13, 0x31, 0x1f, 0xb7, 0x99, 0xc7, 0x9c, 0x64, 0x1d, 0x9d, + 0xa4, 0x3b, 0x33, 0xe7, 0xad, 0x01, 0x2e, 0x28, 0x25, 0x53, 0x98, 0x78, 0x92, 0x62, + 0x27, 0x5f, 0x11, 0x75, 0xbe, 0x84, 0x62, 0xc0, 0x14, 0x91, 0xc4, 0xd8, 0x42, 0x40, + 0x6d, 0x0e, 0xc4, 0x28, 0x2c, 0x95, 0x26, 0x17, 0x4a, 0x09, 0x87, 0x8f, 0xe8, 0xfd, + 0xde, 0x33, 0xa2, 0x96, 0x04, 0xe5, 0xe5, 0xe7, 0xb2, 0xa0, 0x25, 0xd6, 0x65, 0x0b, + 0x97, 0xdb, 0xb5, 0x2b, 0xef, 0xb5, 0x9b, 0x1d, 0x30, 0xa5, 0x74, 0x33, 0xb0, 0xa3, + 0x51, 0x47, 0x44, 0x44, 0x09, 0x9d, 0xaa, 0x37, 0x10, 0x46, 0x61, 0x32, 0x60, 0xcf, + 0x33, 0x54, 0xcf, 0xcd, 0xad, 0xa6, 0x63, 0xec, 0xe8, 0x24, 0xff, 0xd7, 0xe4, 0x43, + 0x93, 0x88, 0x6a, 0x86, 0x16, 0x5d, 0xdd, 0xdf, 0x2b, 0x4c, 0x41, 0x77, 0x35, 0x54, + 0xc8, 0x69, 0x95, 0x26, 0x94, 0x08, 0xb1, 0x1e, 0x67, 0x37, 0xa4, 0xc4, 0x47, 0x58, + 0x6f, 0x69, 0x17, 0x34, 0x46, 0xd8, 0xe4, 0x8b, 0xf8, 0x4c, 0xbc, 0x00, 0x0a, 0x80, + 0x78, 0x99, 0x97, 0x3e, 0xb9, 0x3c, 0x5e, 0x81, 0x9a, 0xad, 0x66, 0x94, 0x13, 0xf8, + 0x38, 0x79, 0x33, 0xad, 0x15, 0x84, 0xaa, 0x35, 0xe4, 0x3f, 0x4e, 0xcd, 0x1e, 0x2d, + 0x04, 0x07, 0xc0, 0xb1, 0xb8, 0x99, 0x20, 0xff, 0xdf, 0xdb, 0x9b, 0xea, 0x51, 0xac, + 0x95, 0xb5, 0x57, 0xaf, 0x71, 0xb8, 0x9f, 0x90, 0x3f, 0x5d, 0x98, 0x48, 0xf1, 0x4f, + 0xcb, 0xeb, 0x18, 0x37, 0x57, 0x0f, 0x54, 0x4d, 0x63, 0x59, 0xeb, 0x23, 0xfa, 0xf3, + 0x8a, 0x08, 0x22, 0xda, 0x36, 0xce, 0x42, 0x6c, 0x4a, 0x2f, 0xbe, 0xff, 0xeb, 0x0a, + 0x8a, 0x2e, 0x29, 0x7a, 0x9d, 0x19, 0xba, 0x15, 0x02, 0x45, 0x90, 0xe3, 0x32, 0x9d, + 0x9f, 0xa9, 0x26, 0x1f, 0x99, 0x38, 0xa4, 0x03, 0x2d, 0xd3, 0x46, 0x06, 0xc9, 0xcf, + 0x9f, 0x3d, 0xd3, 0x3e, 0x57, 0x6f, 0x05, 0xcd, 0x1d, 0xd6, 0x81, 0x1c, 0x62, 0x98, + 0x75, 0x7d, 0x77, 0xd9, 0xe8, 0x10, 0xab, 0xdb, 0x22, 0x6a, 0xfc, 0xaa, 0x43, 0x46, + 0xa6, 0x56, 0x0f, 0x89, 0x32, 0xb3, 0x18, 0x1f, 0xd3, 0x55, 0xd5, 0xd3, 0x91, 0x97, + 0x61, 0x83, 0xf8, 0xd9, 0x93, 0x88, 0x83, 0x96, 0x32, 0xd6, 0x35, 0x4f, 0x66, 0x6d, + 0x09, 0xd3, 0xe5, 0x62, 0x9e, 0xa1, 0x97, 0x37, 0x38, 0x86, 0x13, 0xd3, 0x8a, 0x34, + 0xfd, 0x0f, 0x6e, 0x50, 0xee, 0x5a, 0x0c, 0xc9, 0x67, 0x71, 0x77, 0xf5, 0x00, 0x28, + 0xc1, 0x41, 0x37, 0x81, 0x87, 0xbd, 0x28, 0x19, 0x40, 0x3f, 0xc5, 0x34, 0xf8, 0x00, + 0x76, 0xe9, 0x38, 0x0c, 0xb4, 0x96, 0x4d, 0x3b, 0x6b, 0x45, 0x81, 0x9d, 0x3b, 0x8e, + 0x9c, 0xaf, 0x54, 0xf0, 0x51, 0x85, 0x2d, 0x67, 0x1b, 0xf8, 0xc1, 0xff, 0xde, 0x2d, + 0x15, 0x10, 0x75, 0x64, 0x18, 0xcb, 0x48, 0x10, 0x93, 0x6a, 0xa5, 0x7e, 0x69, 0x65, + 0xd6, 0xfb, 0x65, 0x6a, 0x76, 0x0b, 0x7f, 0x19, 0xad, 0xf9, 0x6c, 0x17, 0x34, 0x88, + 0x55, 0x21, 0x93, 0xb1, + ], + c_enc: [ + 0x12, 0xd6, 0x64, 0xed, 0x05, 0xd6, 0x46, 0x26, 0x89, 0xd4, 0xf2, 0x4a, 0xee, 0x5a, + 0x4f, 0x0f, 0x32, 0x35, 0xff, 0x11, 0x0b, 0x2d, 0xf9, 0x9f, 0x67, 0xd8, 0xc5, 0xb3, + 0x68, 0xdd, 0x47, 0x69, 0xd8, 0x44, 0xd3, 0xdd, 0xa0, 0x3f, 0x58, 0xc5, 0x48, 0x63, + 0x62, 0xe8, 0x90, 0x81, 0xa5, 0xdf, 0xd0, 0xa6, 0x06, 0xa3, 0x91, 0x26, 0x4b, 0x56, + 0xca, 0x3a, 0xfc, 0x4f, 0xe0, 0xe4, 0xc3, 0x05, 0xf3, 0x07, 0x78, 0x09, 0x4a, 0x00, + 0xb7, 0x33, 0x4b, 0xdd, 0x82, 0x45, 0xac, 0x56, 0x0e, 0xf3, 0x29, 0xbc, 0x68, 0x97, + 0xd4, 0xd7, 0xba, 0x31, 0xac, 0x84, 0x54, 0x44, 0x1a, 0x15, 0xc8, 0xd3, 0xce, 0xcc, + 0x71, 0x32, 0xdf, 0x0d, 0x9d, 0x0e, 0xcf, 0x92, 0x84, 0x34, 0xa0, 0xd2, 0x8c, 0x1b, + 0x00, 0x48, 0x52, 0x01, 0xec, 0x33, 0xbe, 0x9a, 0x28, 0x74, 0xb4, 0x29, 0x6c, 0x04, + 0x22, 0xc7, 0xe7, 0xa0, 0xa3, 0xa2, 0x2e, 0xc7, 0xe7, 0x21, 0xa4, 0x79, 0x22, 0x8d, + 0xa2, 0x8b, 0x47, 0x37, 0xaf, 0x52, 0x06, 0xdf, 0x7d, 0x74, 0xe4, 0x84, 0xc4, 0xf7, + 0xa8, 0x56, 0xbe, 0x8c, 0xd0, 0x4b, 0x21, 0x26, 0xb5, 0x27, 0x11, 0xe7, 0xb0, 0xaf, + 0x75, 0xc7, 0x52, 0x84, 0xa1, 0x57, 0x20, 0x40, 0xe8, 0xad, 0xe5, 0x85, 0xe8, 0xa4, + 0x82, 0x80, 0x03, 0x59, 0x67, 0x46, 0xc4, 0x0c, 0x9d, 0x76, 0x0d, 0x92, 0x74, 0xb1, + 0x25, 0x42, 0x2b, 0x63, 0x48, 0x1a, 0x17, 0xff, 0xba, 0xb8, 0xc2, 0xde, 0x13, 0xb2, + 0x19, 0xf5, 0x8a, 0x35, 0x95, 0x2d, 0x88, 0x7a, 0xed, 0xe8, 0xe0, 0x2f, 0x10, 0x33, + 0x8c, 0x23, 0x98, 0x23, 0xfb, 0x43, 0x49, 0x51, 0x84, 0x47, 0x12, 0xf6, 0x8d, 0x6e, + 0x4f, 0xef, 0xae, 0x2b, 0x79, 0x5b, 0xa9, 0x78, 0xe9, 0x81, 0xc1, 0x09, 0x27, 0xab, + 0xbc, 0x16, 0x30, 0x66, 0xa0, 0xe9, 0x60, 0xb3, 0xb8, 0xa3, 0x26, 0xc0, 0x39, 0x85, + 0x81, 0x10, 0x93, 0x99, 0xf6, 0xed, 0x60, 0x44, 0x9a, 0xa8, 0x58, 0xd5, 0xdd, 0x27, + 0xdb, 0xf8, 0x89, 0x9f, 0x9c, 0x9a, 0x50, 0x20, 0x5f, 0x25, 0xd0, 0xcc, 0x50, 0xb2, + 0xde, 0xe3, 0x63, 0x54, 0xc5, 0xe4, 0x48, 0x4d, 0x36, 0xf6, 0x3c, 0x97, 0x63, 0xd8, + 0x41, 0xad, 0x5e, 0x00, 0x21, 0x63, 0x6a, 0x85, 0x7c, 0xfb, 0x79, 0xa5, 0x12, 0x3c, + 0x3d, 0xfb, 0x77, 0x3d, 0x0c, 0x1b, 0xeb, 0x9f, 0x90, 0xa9, 0x72, 0xd0, 0xfc, 0x80, + 0x5f, 0x65, 0x5d, 0x69, 0x40, 0x85, 0x23, 0xb9, 0x9b, 0x62, 0xa8, 0xfa, 0xbe, 0xf0, + 0xc0, 0x24, 0xf2, 0x1f, 0x50, 0xe4, 0xc1, 0x12, 0xe2, 0xfe, 0xdd, 0x58, 0xca, 0xe9, + 0x60, 0x9a, 0xc6, 0xf7, 0xcc, 0x79, 0x83, 0x86, 0xc9, 0xd9, 0x06, 0x42, 0x1c, 0xa5, + 0x7c, 0xf8, 0x1b, 0x09, 0x6b, 0xba, 0xda, 0x64, 0xd0, 0xee, 0x76, 0x95, 0x18, 0x9d, + 0x5f, 0xb1, 0x7a, 0xe2, 0x53, 0x1d, 0xbb, 0x2c, 0x00, 0x58, 0x5a, 0x26, 0xa6, 0x8c, + 0x27, 0xf9, 0x77, 0x77, 0x84, 0x1a, 0x3e, 0x39, 0x30, 0xc7, 0x0f, 0xc3, 0xfa, 0x8e, + 0x2b, 0x7f, 0xc2, 0x1e, 0x87, 0xcf, 0x9f, 0x63, 0xb3, 0x63, 0xb8, 0x8d, 0xaa, 0x1f, + 0xb6, 0x7b, 0xda, 0xe8, 0xe5, 0x5b, 0x68, 0x51, 0x6d, 0x19, 0xdf, 0xef, 0xec, 0x9b, + 0x3d, 0x38, 0xe6, 0xe1, 0xd0, 0xa6, 0xe4, 0x51, 0xd6, 0xd1, 0xf5, 0x2d, 0x1f, 0x96, + 0xdd, 0x0d, 0x53, 0x6d, 0x68, 0xd2, 0x69, 0x86, 0x70, 0x9f, 0x41, 0xe7, 0x60, 0x74, + 0x05, 0x5b, 0xf7, 0x52, 0xbf, 0x38, 0x86, 0x92, 0xc8, 0x2c, 0xfd, 0xa1, 0xeb, 0xb0, + 0x17, 0x8b, 0x8e, 0x0c, 0x85, 0xad, 0x7b, 0x15, 0x99, 0x14, 0x42, 0x8e, 0x30, 0x21, + 0xda, 0xe3, 0x01, 0x0d, 0x65, 0x6c, 0x10, 0x36, 0xf4, 0xa5, 0x7e, 0x7f, 0xad, 0xe0, + 0xfc, 0x32, 0x2a, 0xa6, 0xfd, 0xde, 0x71, 0x4a, 0x8c, 0x53, 0x78, 0x79, 0xe7, 0x04, + 0x41, 0x6f, 0x51, 0x04, 0xdb, 0xbc, 0x8f, 0xf2, 0x42, 0xc1, 0x6d, 0x2d, 0xf4, 0xa8, + 0x41, 0xeb, 0x6b, 0x45, 0x3a, 0x12, 0x83, 0xf6, 0x5f, 0xe1, 0x0d, 0x70, 0xc8, 0x76, + 0x41, 0x8e, 0x44, 0x4a, 0xb3, 0x1b, 0x93, 0x71, 0xa2, 0x7d, 0x36, 0xd8, 0x6e, 0x8f, + 0x1c, 0x32, 0x77, 0xca, 0xfd, 0xf8, + ], + ock: [ + 0xca, 0x6f, 0x98, 0xe6, 0xcf, 0x9f, 0xc3, 0x6a, 0xf5, 0xf6, 0x98, 0x82, 0x74, 0x2d, + 0x06, 0xec, 0x5d, 0x29, 0xac, 0x2a, 0x02, 0x89, 0x44, 0xa2, 0x01, 0x89, 0xd5, 0x1c, + 0x8a, 0x9b, 0xdc, 0xd6, + ], + op: [ + 0x82, 0xfe, 0xf6, 0x43, 0xdb, 0xf4, 0x2d, 0xca, 0x51, 0x56, 0xfb, 0x51, 0xd4, 0xc4, + 0xee, 0x00, 0x8a, 0x72, 0xf0, 0xdb, 0xc3, 0xf3, 0x1e, 0xfa, 0xb0, 0x75, 0xf2, 0x75, + 0x15, 0x37, 0x14, 0x0d, 0x59, 0xd1, 0x0a, 0x5b, 0x94, 0x15, 0x8a, 0x3f, 0x3a, 0x78, + 0xb3, 0x5d, 0xa9, 0xc6, 0x27, 0xbe, 0xdf, 0x7c, 0xfb, 0x84, 0x7e, 0x3e, 0x59, 0x86, + 0xec, 0x8a, 0xd7, 0xf7, 0x4c, 0xd9, 0xb2, 0x1b, + ], + c_out: [ + 0xa9, 0x5e, 0x1a, 0x22, 0x45, 0x65, 0x29, 0x5e, 0x9b, 0x55, 0x3a, 0xdd, 0xe8, 0xb0, + 0x14, 0x47, 0x5c, 0x68, 0x7b, 0x5d, 0x13, 0x49, 0xc1, 0xdf, 0x8a, 0xd4, 0xb7, 0xcf, + 0xd3, 0xdf, 0xc1, 0x00, 0x6c, 0x7c, 0x37, 0xde, 0x67, 0x6d, 0x6f, 0xde, 0x31, 0x8e, + 0x2f, 0xdf, 0xcc, 0x2e, 0x2e, 0x23, 0x2c, 0xc5, 0xf8, 0x85, 0x28, 0x39, 0xe7, 0xef, + 0xab, 0x8b, 0x20, 0x0e, 0xbc, 0x6a, 0x4d, 0xf8, 0x2a, 0x75, 0x21, 0xce, 0x0f, 0x38, + 0x4f, 0xe2, 0x7a, 0x0d, 0xec, 0x59, 0xe9, 0xd2, 0xc0, 0xe3, + ], + }, + TestVector { + incoming_viewing_key: [ + 0xf1, 0x90, 0x42, 0xb9, 0xd1, 0x0c, 0xc4, 0x80, 0xa0, 0x8c, 0x04, 0x32, 0x2d, 0xb6, + 0xec, 0x4e, 0x41, 0x2e, 0xaa, 0x84, 0xc9, 0x71, 0x82, 0x8c, 0xcc, 0xd7, 0x33, 0xa1, + 0x1f, 0x25, 0x3e, 0xda, 0x8a, 0xc3, 0x0b, 0xa3, 0x1f, 0xbc, 0x89, 0x5d, 0x60, 0xb9, + 0x83, 0x06, 0x2a, 0x5f, 0x45, 0x33, 0x90, 0x79, 0x32, 0x26, 0xff, 0xd9, 0x21, 0xbd, + 0x64, 0xac, 0x39, 0x07, 0x03, 0x85, 0x6a, 0x0b, + ], + ovk: [ + 0xda, 0xdc, 0x96, 0x6c, 0x8a, 0x54, 0x66, 0xb6, 0x1f, 0xc9, 0x98, 0xc3, 0x1f, 0x10, + 0x70, 0xd9, 0xa5, 0xc9, 0xa6, 0xd2, 0x68, 0xd3, 0x04, 0xfe, 0x6b, 0x8f, 0xd3, 0xb4, + 0x01, 0x03, 0x48, 0x61, + ], + default_d: [ + 0xaa, 0x14, 0x92, 0x9c, 0x57, 0x89, 0x85, 0x85, 0xce, 0x66, 0x5a, + ], + default_pk_d: [ + 0x78, 0xa4, 0xe3, 0x39, 0x88, 0xd7, 0x1d, 0x71, 0x8e, 0x59, 0x55, 0x55, 0x28, 0x4c, + 0x24, 0x9a, 0x62, 0xb7, 0x12, 0x88, 0x06, 0xa5, 0x4c, 0x3b, 0x36, 0xa3, 0xaa, 0x57, + 0x14, 0x93, 0x16, 0x36, + ], + v: 17936016275122962426, + rseed: [ + 0x49, 0x95, 0x0a, 0xfc, 0xb0, 0xef, 0x46, 0x2a, 0x2a, 0xe0, 0x24, 0xb0, 0xf0, 0x22, + 0x4d, 0xfd, 0x73, 0x68, 0x4b, 0x88, 0xc7, 0xfb, 0xe9, 0x2d, 0x02, 0xb6, 0x8f, 0x75, + 0x9c, 0x47, 0x52, 0x66, + ], + memo: [ + 0xff, 0x3c, 0xd7, 0xb9, 0x7a, 0x14, 0x94, 0x36, 0x49, 0x30, 0x55, 0x21, 0x32, 0x6b, + 0xde, 0x08, 0x56, 0x30, 0x86, 0x46, 0x29, 0x29, 0x1b, 0xae, 0x25, 0xff, 0x88, 0x22, + 0xa1, 0x4c, 0x4b, 0x66, 0x6a, 0x92, 0x59, 0xad, 0x0d, 0xc4, 0x2a, 0x82, 0x90, 0xac, + 0x7b, 0xc7, 0xf5, 0x3a, 0x16, 0xf3, 0x79, 0xf7, 0x58, 0xe5, 0xde, 0x75, 0x0f, 0x04, + 0xfd, 0x7c, 0xad, 0x47, 0x70, 0x1c, 0x85, 0x97, 0xf9, 0x78, 0x88, 0xbe, 0xa6, 0xfa, + 0x0b, 0xf2, 0x99, 0x99, 0x56, 0xfb, 0xfd, 0x0e, 0xe6, 0x8e, 0xc3, 0x6e, 0x46, 0x88, + 0x80, 0x9a, 0xe2, 0x31, 0xeb, 0x8b, 0xc4, 0x36, 0x9f, 0x5f, 0xe1, 0x57, 0x3f, 0x57, + 0xe0, 0x99, 0xd9, 0xc0, 0x99, 0x01, 0xbf, 0x39, 0xca, 0xac, 0x48, 0xdc, 0x11, 0x95, + 0x6a, 0x8a, 0xe9, 0x05, 0xea, 0xd8, 0x69, 0x54, 0x54, 0x7c, 0x44, 0x8a, 0xe4, 0x3d, + 0x31, 0x5e, 0x66, 0x9c, 0x42, 0x42, 0xda, 0x56, 0x59, 0x38, 0xf4, 0x17, 0xbf, 0x43, + 0xce, 0x7b, 0x2b, 0x30, 0xb1, 0xcd, 0x40, 0x18, 0x38, 0x8e, 0x1a, 0x91, 0x0f, 0x0f, + 0xc4, 0x1f, 0xb0, 0x87, 0x7a, 0x59, 0x25, 0xe4, 0x66, 0x81, 0x9d, 0x37, 0x5b, 0x0a, + 0x91, 0x2d, 0x4f, 0xe8, 0x43, 0xb7, 0x6e, 0xf6, 0xf2, 0x23, 0xf0, 0xf7, 0xc8, 0x94, + 0xf3, 0x8f, 0x7a, 0xb7, 0x80, 0xdf, 0xd7, 0x5f, 0x66, 0x9c, 0x8c, 0x06, 0xcf, 0xfa, + 0x43, 0xeb, 0x47, 0x56, 0x5a, 0x50, 0xe3, 0xb1, 0xfa, 0x45, 0xad, 0x61, 0xce, 0x9a, + 0x1c, 0x47, 0x27, 0xb7, 0xaa, 0xa5, 0x35, 0x62, 0xf5, 0x23, 0xe7, 0x39, 0x52, 0xbb, + 0xf3, 0x3d, 0x8a, 0x41, 0x04, 0x07, 0x8a, 0xde, 0x3e, 0xaa, 0xa4, 0x96, 0x99, 0xa6, + 0x9f, 0xdf, 0x1c, 0x5a, 0xc7, 0x73, 0x21, 0x46, 0xee, 0x5e, 0x1d, 0x6b, 0x6c, 0xa9, + 0xb9, 0x18, 0x0f, 0x96, 0x4c, 0xc9, 0xd0, 0x87, 0x8a, 0xe1, 0x37, 0x35, 0x24, 0xd7, + 0xd5, 0x10, 0xe5, 0x82, 0x27, 0xdf, 0x6d, 0xe9, 0xd3, 0x0d, 0x27, 0x18, 0x67, 0x64, + 0x01, 0x77, 0xb0, 0xf1, 0x85, 0x6e, 0x28, 0xd5, 0xc8, 0xaf, 0xb0, 0x95, 0xef, 0x61, + 0x84, 0xfe, 0xd6, 0x51, 0x58, 0x90, 0x22, 0xee, 0xae, 0xa4, 0xc0, 0xce, 0x1f, 0xa6, + 0xf0, 0x85, 0x09, 0x2b, 0x04, 0x97, 0x94, 0x89, 0x17, 0x2b, 0x3e, 0xf8, 0x19, 0x4a, + 0x79, 0x8d, 0xf5, 0x72, 0x4d, 0x6b, 0x05, 0xf1, 0xae, 0x00, 0x00, 0x13, 0xa0, 0x8d, + 0x61, 0x2b, 0xca, 0x8a, 0x8c, 0x31, 0x44, 0x3c, 0x10, 0x34, 0x6d, 0xbf, 0x61, 0xde, + 0x84, 0x75, 0xc0, 0xbb, 0xec, 0x51, 0x04, 0xb4, 0x75, 0x56, 0xaf, 0x3d, 0x51, 0x44, + 0x58, 0xe2, 0x32, 0x1d, 0x14, 0x60, 0x71, 0x78, 0x9d, 0x23, 0x35, 0x93, 0x4a, 0x68, + 0x06, 0x14, 0xe8, 0x35, 0x62, 0xf8, 0x2d, 0xfd, 0x40, 0x5b, 0x54, 0xa4, 0x5e, 0xb3, + 0x2c, 0x16, 0x54, 0x48, 0xd4, 0xd5, 0xd6, 0x1c, 0xa2, 0x85, 0x95, 0x85, 0x36, 0x9f, + 0x53, 0xf1, 0xa1, 0x37, 0xe9, 0xe8, 0x2b, 0x67, 0xb8, 0xfd, 0xaf, 0x01, 0xbd, 0xa5, + 0x4a, 0x31, 0x73, 0x11, 0x89, 0x6a, 0xe1, 0x02, 0x80, 0xa0, 0x32, 0x44, 0x0c, 0x42, + 0x0a, 0x42, 0x1e, 0x94, 0x4d, 0x1e, 0x95, 0x2b, 0x70, 0xd5, 0x82, 0x6c, 0xd3, 0xb0, + 0x8b, 0x7d, 0xb9, 0x63, 0x0f, 0xe4, 0xfd, 0x5f, 0x22, 0x12, 0x5d, 0xe8, 0x40, 0xfc, + 0xc4, 0x0b, 0x98, 0x03, 0x8a, 0xf1, 0x1d, 0x55, 0xbe, 0x25, 0x43, 0x25, 0x97, 0xb4, + 0xb6, 0x5b, 0x9e, 0xc1, 0xc7, 0xa8, 0xbb, 0xfd, 0x05, 0x2c, 0xbf, 0x7e, 0x1c, 0x17, + 0x85, 0x31, 0x49, 0x34, 0xb2, 0x62, 0xd5, 0x85, 0x37, 0x54, 0xf1, 0xf1, 0x77, 0x71, + 0xcf, 0xb7, 0x50, 0x30, 0x72, 0x65, 0x57, 0x53, + ], + cv_net: [ + 0xd4, 0x51, 0xb4, 0x62, 0x89, 0xba, 0x99, 0x8c, 0x0c, 0xce, 0xd1, 0xcc, 0x15, 0xb3, + 0xfa, 0xde, 0x94, 0xfa, 0x0b, 0x46, 0xe3, 0xb1, 0xa5, 0x73, 0x34, 0x99, 0x34, 0xe2, + 0x32, 0xb5, 0x0e, 0x96, + ], + nf_old: [ + 0x18, 0x89, 0x8e, 0x75, 0x21, 0x7b, 0x32, 0x9b, 0x3a, 0x56, 0x7b, 0x09, 0x37, 0x89, + 0xa4, 0xd8, 0x19, 0xcd, 0xb0, 0x34, 0x88, 0xb8, 0x10, 0xda, 0x22, 0x0c, 0x3f, 0x59, + 0xba, 0x03, 0x39, 0x26, + ], + cmx: [ + 0x23, 0xad, 0xc3, 0xbf, 0x35, 0x0e, 0xb0, 0x84, 0xbd, 0x28, 0xbc, 0x2d, 0xcf, 0xb7, + 0x98, 0x3f, 0xf6, 0xb3, 0xb6, 0xf2, 0xeb, 0x2d, 0x6f, 0x12, 0x4f, 0xfc, 0x46, 0x85, + 0xab, 0xe8, 0xde, 0x3a, + ], + esk: [ + 0x34, 0x39, 0x22, 0x52, 0xc9, 0xcc, 0x9f, 0x45, 0x4b, 0x54, 0x2c, 0xf1, 0xb8, 0x88, + 0xb3, 0xab, 0x02, 0xe6, 0x05, 0xa8, 0xda, 0x26, 0x10, 0x7d, 0x98, 0x02, 0xf1, 0x53, + 0x6a, 0x9e, 0x9f, 0x2b, + ], + ephemeral_key: [ + 0x91, 0xaf, 0x13, 0x8e, 0xd9, 0x95, 0x44, 0x66, 0x95, 0x16, 0x1b, 0x14, 0x2d, 0xc2, + 0xde, 0x59, 0xac, 0x23, 0x05, 0xec, 0xbe, 0xc6, 0x29, 0x33, 0xf5, 0x2f, 0x2a, 0xa1, + 0xf9, 0xb2, 0x71, 0x86, + ], + shared_secret: [ + 0xe1, 0xd3, 0xaf, 0x73, 0x6a, 0xb9, 0xc6, 0x11, 0x6f, 0x46, 0x8f, 0x91, 0x66, 0x80, + 0x63, 0x20, 0x35, 0x0f, 0x7e, 0x73, 0x51, 0x3b, 0xa6, 0x05, 0x50, 0xeb, 0x2d, 0xf0, + 0x1f, 0xf7, 0x83, 0x2d, + ], + k_enc: [ + 0xb4, 0x3e, 0x43, 0x3e, 0x16, 0x45, 0xeb, 0x51, 0x5e, 0x4a, 0x4c, 0x7d, 0x10, 0xc9, + 0x3d, 0x08, 0xf2, 0xf1, 0xc3, 0x30, 0x95, 0xbf, 0x8c, 0x80, 0x0a, 0x04, 0x17, 0x62, + 0xab, 0x5c, 0xf8, 0x2c, + ], + p_enc: [ + 0x02, 0xaa, 0x14, 0x92, 0x9c, 0x57, 0x89, 0x85, 0x85, 0xce, 0x66, 0x5a, 0xfa, 0x3f, + 0x54, 0xec, 0xc5, 0x87, 0xe9, 0xf8, 0x49, 0x95, 0x0a, 0xfc, 0xb0, 0xef, 0x46, 0x2a, + 0x2a, 0xe0, 0x24, 0xb0, 0xf0, 0x22, 0x4d, 0xfd, 0x73, 0x68, 0x4b, 0x88, 0xc7, 0xfb, + 0xe9, 0x2d, 0x02, 0xb6, 0x8f, 0x75, 0x9c, 0x47, 0x52, 0x66, 0xff, 0x3c, 0xd7, 0xb9, + 0x7a, 0x14, 0x94, 0x36, 0x49, 0x30, 0x55, 0x21, 0x32, 0x6b, 0xde, 0x08, 0x56, 0x30, + 0x86, 0x46, 0x29, 0x29, 0x1b, 0xae, 0x25, 0xff, 0x88, 0x22, 0xa1, 0x4c, 0x4b, 0x66, + 0x6a, 0x92, 0x59, 0xad, 0x0d, 0xc4, 0x2a, 0x82, 0x90, 0xac, 0x7b, 0xc7, 0xf5, 0x3a, + 0x16, 0xf3, 0x79, 0xf7, 0x58, 0xe5, 0xde, 0x75, 0x0f, 0x04, 0xfd, 0x7c, 0xad, 0x47, + 0x70, 0x1c, 0x85, 0x97, 0xf9, 0x78, 0x88, 0xbe, 0xa6, 0xfa, 0x0b, 0xf2, 0x99, 0x99, + 0x56, 0xfb, 0xfd, 0x0e, 0xe6, 0x8e, 0xc3, 0x6e, 0x46, 0x88, 0x80, 0x9a, 0xe2, 0x31, + 0xeb, 0x8b, 0xc4, 0x36, 0x9f, 0x5f, 0xe1, 0x57, 0x3f, 0x57, 0xe0, 0x99, 0xd9, 0xc0, + 0x99, 0x01, 0xbf, 0x39, 0xca, 0xac, 0x48, 0xdc, 0x11, 0x95, 0x6a, 0x8a, 0xe9, 0x05, + 0xea, 0xd8, 0x69, 0x54, 0x54, 0x7c, 0x44, 0x8a, 0xe4, 0x3d, 0x31, 0x5e, 0x66, 0x9c, + 0x42, 0x42, 0xda, 0x56, 0x59, 0x38, 0xf4, 0x17, 0xbf, 0x43, 0xce, 0x7b, 0x2b, 0x30, + 0xb1, 0xcd, 0x40, 0x18, 0x38, 0x8e, 0x1a, 0x91, 0x0f, 0x0f, 0xc4, 0x1f, 0xb0, 0x87, + 0x7a, 0x59, 0x25, 0xe4, 0x66, 0x81, 0x9d, 0x37, 0x5b, 0x0a, 0x91, 0x2d, 0x4f, 0xe8, + 0x43, 0xb7, 0x6e, 0xf6, 0xf2, 0x23, 0xf0, 0xf7, 0xc8, 0x94, 0xf3, 0x8f, 0x7a, 0xb7, + 0x80, 0xdf, 0xd7, 0x5f, 0x66, 0x9c, 0x8c, 0x06, 0xcf, 0xfa, 0x43, 0xeb, 0x47, 0x56, + 0x5a, 0x50, 0xe3, 0xb1, 0xfa, 0x45, 0xad, 0x61, 0xce, 0x9a, 0x1c, 0x47, 0x27, 0xb7, + 0xaa, 0xa5, 0x35, 0x62, 0xf5, 0x23, 0xe7, 0x39, 0x52, 0xbb, 0xf3, 0x3d, 0x8a, 0x41, + 0x04, 0x07, 0x8a, 0xde, 0x3e, 0xaa, 0xa4, 0x96, 0x99, 0xa6, 0x9f, 0xdf, 0x1c, 0x5a, + 0xc7, 0x73, 0x21, 0x46, 0xee, 0x5e, 0x1d, 0x6b, 0x6c, 0xa9, 0xb9, 0x18, 0x0f, 0x96, + 0x4c, 0xc9, 0xd0, 0x87, 0x8a, 0xe1, 0x37, 0x35, 0x24, 0xd7, 0xd5, 0x10, 0xe5, 0x82, + 0x27, 0xdf, 0x6d, 0xe9, 0xd3, 0x0d, 0x27, 0x18, 0x67, 0x64, 0x01, 0x77, 0xb0, 0xf1, + 0x85, 0x6e, 0x28, 0xd5, 0xc8, 0xaf, 0xb0, 0x95, 0xef, 0x61, 0x84, 0xfe, 0xd6, 0x51, + 0x58, 0x90, 0x22, 0xee, 0xae, 0xa4, 0xc0, 0xce, 0x1f, 0xa6, 0xf0, 0x85, 0x09, 0x2b, + 0x04, 0x97, 0x94, 0x89, 0x17, 0x2b, 0x3e, 0xf8, 0x19, 0x4a, 0x79, 0x8d, 0xf5, 0x72, + 0x4d, 0x6b, 0x05, 0xf1, 0xae, 0x00, 0x00, 0x13, 0xa0, 0x8d, 0x61, 0x2b, 0xca, 0x8a, + 0x8c, 0x31, 0x44, 0x3c, 0x10, 0x34, 0x6d, 0xbf, 0x61, 0xde, 0x84, 0x75, 0xc0, 0xbb, + 0xec, 0x51, 0x04, 0xb4, 0x75, 0x56, 0xaf, 0x3d, 0x51, 0x44, 0x58, 0xe2, 0x32, 0x1d, + 0x14, 0x60, 0x71, 0x78, 0x9d, 0x23, 0x35, 0x93, 0x4a, 0x68, 0x06, 0x14, 0xe8, 0x35, + 0x62, 0xf8, 0x2d, 0xfd, 0x40, 0x5b, 0x54, 0xa4, 0x5e, 0xb3, 0x2c, 0x16, 0x54, 0x48, + 0xd4, 0xd5, 0xd6, 0x1c, 0xa2, 0x85, 0x95, 0x85, 0x36, 0x9f, 0x53, 0xf1, 0xa1, 0x37, + 0xe9, 0xe8, 0x2b, 0x67, 0xb8, 0xfd, 0xaf, 0x01, 0xbd, 0xa5, 0x4a, 0x31, 0x73, 0x11, + 0x89, 0x6a, 0xe1, 0x02, 0x80, 0xa0, 0x32, 0x44, 0x0c, 0x42, 0x0a, 0x42, 0x1e, 0x94, + 0x4d, 0x1e, 0x95, 0x2b, 0x70, 0xd5, 0x82, 0x6c, 0xd3, 0xb0, 0x8b, 0x7d, 0xb9, 0x63, + 0x0f, 0xe4, 0xfd, 0x5f, 0x22, 0x12, 0x5d, 0xe8, 0x40, 0xfc, 0xc4, 0x0b, 0x98, 0x03, + 0x8a, 0xf1, 0x1d, 0x55, 0xbe, 0x25, 0x43, 0x25, 0x97, 0xb4, 0xb6, 0x5b, 0x9e, 0xc1, + 0xc7, 0xa8, 0xbb, 0xfd, 0x05, 0x2c, 0xbf, 0x7e, 0x1c, 0x17, 0x85, 0x31, 0x49, 0x34, + 0xb2, 0x62, 0xd5, 0x85, 0x37, 0x54, 0xf1, 0xf1, 0x77, 0x71, 0xcf, 0xb7, 0x50, 0x30, + 0x72, 0x65, 0x57, 0x53, + ], + c_enc: [ + 0x27, 0x62, 0x0d, 0xf5, 0xdb, 0x17, 0x76, 0x6e, 0xbd, 0x9a, 0x99, 0xd6, 0x9a, 0x9a, + 0x49, 0x38, 0x73, 0x21, 0xf0, 0xc9, 0x47, 0x25, 0x23, 0x57, 0xb5, 0xb7, 0x48, 0x49, + 0x38, 0xe3, 0xf5, 0xff, 0x9f, 0x32, 0x0e, 0x80, 0x6c, 0x4b, 0x54, 0xc3, 0x6e, 0x41, + 0x2e, 0x8a, 0x6e, 0xad, 0xe3, 0x5b, 0x83, 0x01, 0xf7, 0x34, 0xf3, 0x71, 0x2e, 0x6a, + 0xac, 0xe6, 0x99, 0xf5, 0x9e, 0x11, 0x2a, 0x7b, 0xf5, 0x44, 0x59, 0xdc, 0x5d, 0x9f, + 0x7b, 0xbf, 0x3b, 0x9f, 0x74, 0x6c, 0x45, 0xbb, 0xed, 0x69, 0xa4, 0x25, 0x1b, 0x29, + 0xf3, 0xd2, 0x15, 0xc2, 0x9f, 0x76, 0x1c, 0x7d, 0x05, 0x88, 0x19, 0xf0, 0xdd, 0x4e, + 0x70, 0x71, 0xb0, 0x77, 0xcb, 0x00, 0xcb, 0x93, 0x62, 0xa4, 0x98, 0x16, 0x88, 0x0d, + 0x49, 0xb7, 0x11, 0xf9, 0x20, 0x65, 0xf1, 0x53, 0x2e, 0x58, 0x18, 0x0b, 0xbd, 0xb4, + 0x91, 0xdb, 0xbb, 0x96, 0x8a, 0x09, 0xb5, 0x63, 0xce, 0x1d, 0x29, 0x87, 0x6f, 0xd0, + 0x52, 0x6d, 0x65, 0xda, 0x67, 0x27, 0xad, 0x40, 0xf9, 0x64, 0x02, 0xf9, 0x9a, 0xa5, + 0xac, 0x06, 0x42, 0x51, 0xc4, 0x65, 0xe3, 0xc7, 0xdb, 0x1f, 0xfe, 0xef, 0xac, 0xd7, + 0xf5, 0x1b, 0xa4, 0xf1, 0x9c, 0x6c, 0x17, 0x87, 0xa0, 0xff, 0xb4, 0x9d, 0xbb, 0x7b, + 0x0a, 0x2b, 0x15, 0x64, 0x03, 0xd6, 0x6c, 0x22, 0x13, 0xe5, 0x1d, 0x58, 0xea, 0xef, + 0xe8, 0x6d, 0x5d, 0xef, 0x0d, 0x24, 0xb7, 0xf2, 0xf8, 0xc1, 0x10, 0x32, 0x9a, 0x3a, + 0x73, 0xcb, 0x33, 0x50, 0x14, 0x0e, 0x6b, 0xf7, 0x2c, 0xb6, 0xaa, 0x22, 0x2d, 0xef, + 0x5a, 0x47, 0xe2, 0x1a, 0xf0, 0xb9, 0xae, 0xeb, 0x74, 0x8c, 0x01, 0xc6, 0x7a, 0xb6, + 0xc9, 0xfd, 0x6e, 0x53, 0x6a, 0x0d, 0x92, 0x76, 0x61, 0x51, 0xb1, 0xac, 0x7c, 0xc9, + 0x85, 0x5c, 0xa9, 0x8d, 0xea, 0x74, 0x85, 0x14, 0xef, 0xee, 0x89, 0xe8, 0x9a, 0x01, + 0x68, 0xf5, 0xdd, 0xf4, 0xac, 0x2b, 0x7c, 0xe1, 0xc9, 0xc2, 0x92, 0xfb, 0xef, 0x2f, + 0x45, 0x51, 0xa8, 0x88, 0xc3, 0x34, 0x5c, 0x65, 0x92, 0x30, 0x39, 0xfc, 0x21, 0xf7, + 0x31, 0x55, 0x9b, 0xd9, 0x24, 0xbc, 0x2c, 0x15, 0x5b, 0xc0, 0xbe, 0x80, 0x38, 0x4a, + 0x9e, 0x49, 0xbd, 0xa6, 0x9a, 0x70, 0x6b, 0x1a, 0xd6, 0xa2, 0x62, 0xab, 0xc6, 0x26, + 0x50, 0x77, 0x2f, 0xd7, 0xea, 0xbc, 0x3f, 0x75, 0xa9, 0xac, 0xca, 0xa2, 0x8b, 0xcd, + 0xea, 0x65, 0xf9, 0x4e, 0x16, 0xcc, 0x3d, 0x05, 0x38, 0xe5, 0x49, 0x86, 0x0a, 0x60, + 0x12, 0x5b, 0xb4, 0xbc, 0x0c, 0x23, 0xe3, 0x22, 0x27, 0x68, 0x2c, 0x09, 0xb5, 0xaa, + 0x30, 0x4a, 0x16, 0x09, 0x2a, 0xd4, 0xa3, 0xe2, 0xf6, 0x28, 0x3c, 0x38, 0x51, 0x80, + 0x6e, 0x72, 0x17, 0x3f, 0x7d, 0x32, 0x97, 0xed, 0x92, 0xe5, 0x32, 0x40, 0x39, 0xa7, + 0x31, 0x4f, 0x5f, 0xb7, 0x38, 0x6e, 0x09, 0x94, 0xf5, 0x2f, 0x8c, 0xcc, 0xf1, 0x87, + 0xd6, 0x20, 0x41, 0x0c, 0xce, 0x9d, 0x0b, 0x91, 0x93, 0xac, 0xec, 0x6d, 0x4c, 0x9b, + 0xd3, 0x4e, 0x08, 0x80, 0x58, 0x0a, 0xbe, 0xae, 0xd9, 0x7c, 0xb7, 0x80, 0x0f, 0x6a, + 0xbc, 0x67, 0xc2, 0x5c, 0x49, 0x19, 0x2e, 0x37, 0xdc, 0xf3, 0x3d, 0x1a, 0x59, 0x16, + 0x47, 0x5a, 0xe9, 0x99, 0x90, 0xd8, 0x29, 0xc1, 0xd5, 0x9e, 0x69, 0x2f, 0x47, 0x36, + 0x93, 0xbc, 0xe3, 0x58, 0x5a, 0xec, 0xd3, 0xc1, 0x3b, 0xae, 0x15, 0xcb, 0xef, 0xf2, + 0x98, 0x52, 0x2a, 0xab, 0xf4, 0x6b, 0xea, 0x3a, 0xbf, 0x63, 0x30, 0xa5, 0x6e, 0x37, + 0x24, 0x51, 0x81, 0x32, 0xce, 0x94, 0x39, 0x41, 0x6a, 0x28, 0xe9, 0x52, 0x0d, 0xdf, + 0x64, 0x17, 0x00, 0xb4, 0x6f, 0x37, 0x49, 0x50, 0xf3, 0x27, 0xaf, 0x3d, 0x0b, 0x3d, + 0x3b, 0x3f, 0x61, 0xa8, 0x84, 0xcf, 0x4f, 0x82, 0x02, 0x56, 0xfb, 0x91, 0x65, 0xdc, + 0xa0, 0xe4, 0x32, 0x60, 0xfc, 0xb5, 0x63, 0xef, 0x1a, 0xb4, 0xe7, 0x12, 0xef, 0x07, + 0x23, 0xd6, 0x75, 0x90, 0xa4, 0xff, 0xc3, 0x66, 0xc4, 0xa7, 0x92, 0x50, 0x29, 0x93, + 0x1b, 0xf0, 0x87, 0x3d, 0xac, 0xaa, 0xe9, 0x38, 0x5d, 0x9a, 0xd9, 0x1a, 0xed, 0x75, + 0x93, 0x9d, 0x8b, 0xd1, 0xaf, 0x5d, + ], + ock: [ + 0x2a, 0xec, 0x11, 0xd4, 0xae, 0x79, 0x84, 0xe1, 0x69, 0xd1, 0xdf, 0xf1, 0xff, 0x0f, + 0x9a, 0xf5, 0x19, 0x96, 0x34, 0x51, 0xa4, 0x1c, 0x9f, 0x5a, 0xdc, 0x58, 0xe4, 0xf9, + 0x0a, 0xf3, 0x8d, 0x47, + ], + op: [ + 0x78, 0xa4, 0xe3, 0x39, 0x88, 0xd7, 0x1d, 0x71, 0x8e, 0x59, 0x55, 0x55, 0x28, 0x4c, + 0x24, 0x9a, 0x62, 0xb7, 0x12, 0x88, 0x06, 0xa5, 0x4c, 0x3b, 0x36, 0xa3, 0xaa, 0x57, + 0x14, 0x93, 0x16, 0x36, 0x34, 0x39, 0x22, 0x52, 0xc9, 0xcc, 0x9f, 0x45, 0x4b, 0x54, + 0x2c, 0xf1, 0xb8, 0x88, 0xb3, 0xab, 0x02, 0xe6, 0x05, 0xa8, 0xda, 0x26, 0x10, 0x7d, + 0x98, 0x02, 0xf1, 0x53, 0x6a, 0x9e, 0x9f, 0x2b, + ], + c_out: [ + 0xe6, 0xeb, 0x22, 0x47, 0xc9, 0x33, 0xe2, 0x4c, 0x9d, 0xf1, 0x28, 0xb1, 0xe0, 0x4e, + 0x8b, 0xc0, 0x5c, 0x65, 0xeb, 0x31, 0x97, 0xdf, 0x9b, 0xa8, 0x70, 0xd8, 0xa0, 0xa1, + 0x8d, 0x9c, 0x24, 0xb7, 0xc9, 0x78, 0xc3, 0x4d, 0x3c, 0x7b, 0xbd, 0x21, 0xe8, 0x7b, + 0x22, 0x39, 0x21, 0x87, 0x54, 0xd9, 0x67, 0x3a, 0x56, 0xa2, 0x73, 0x58, 0x0f, 0x6b, + 0x41, 0xc6, 0x91, 0xe5, 0xfd, 0x30, 0x9c, 0xd5, 0xd1, 0xd2, 0x6d, 0x57, 0x63, 0xa9, + 0xe8, 0xd2, 0x71, 0xc9, 0x77, 0x05, 0x0e, 0x05, 0xdc, 0x96, + ], + }, + TestVector { + incoming_viewing_key: [ + 0x0b, 0xb5, 0x6c, 0x49, 0xc0, 0x63, 0x2d, 0x4c, 0xc7, 0xe4, 0x85, 0x51, 0xdb, 0x46, + 0x42, 0x8f, 0x1b, 0x1a, 0x52, 0x66, 0x1e, 0x07, 0xe0, 0xc3, 0xbc, 0xc2, 0x31, 0x74, + 0xcc, 0xbb, 0xbd, 0xa1, 0xfa, 0x19, 0x24, 0xf4, 0x16, 0xcd, 0x48, 0x39, 0x0e, 0x2b, + 0x11, 0xc6, 0xe7, 0x82, 0x56, 0xd4, 0xc4, 0xc5, 0x64, 0x1a, 0xca, 0xd9, 0xa2, 0x0c, + 0x24, 0xfb, 0xe6, 0xcb, 0x4e, 0xe7, 0x81, 0x25, + ], + ovk: [ + 0x21, 0xe9, 0x1a, 0x3c, 0x4a, 0xa3, 0xf2, 0x7f, 0xa1, 0xb6, 0x33, 0x96, 0xe2, 0xb4, + 0x1d, 0xb9, 0x08, 0xfd, 0xab, 0x8b, 0x18, 0xcc, 0x73, 0x04, 0xe9, 0x4e, 0x97, 0x05, + 0x68, 0xf9, 0x42, 0x1c, + ], + default_d: [ + 0xe0, 0x66, 0xb5, 0xe7, 0x96, 0x86, 0xe9, 0xf3, 0x6e, 0xce, 0xc7, + ], + default_pk_d: [ + 0x3b, 0x3e, 0x88, 0x3e, 0x95, 0x8c, 0xd6, 0xe0, 0x75, 0x4d, 0x74, 0xca, 0xae, 0x1e, + 0x5a, 0x43, 0x98, 0xab, 0xeb, 0x7d, 0x10, 0xee, 0x5f, 0x75, 0xa4, 0xab, 0x8e, 0xf7, + 0x03, 0x8e, 0x3d, 0xb3, + ], + v: 12119135386131850622, + rseed: [ + 0xc3, 0x6d, 0xcf, 0xd3, 0x4a, 0x0c, 0xb6, 0x63, 0x78, 0x76, 0x10, 0x5e, 0x79, 0xbf, + 0x3b, 0xd5, 0x8e, 0xc1, 0x48, 0xcb, 0x64, 0x97, 0x0e, 0x32, 0x23, 0xa9, 0x1f, 0x71, + 0xdf, 0xcf, 0xd5, 0xa0, + ], + memo: [ + 0xff, 0x4b, 0x66, 0x7f, 0xba, 0xf3, 0xd4, 0xb3, 0xb9, 0x08, 0xb9, 0x82, 0x88, 0x20, + 0xdf, 0xec, 0xdd, 0x75, 0x37, 0x50, 0xb5, 0xf9, 0xd2, 0x21, 0x6e, 0x56, 0xc6, 0x15, + 0x27, 0x2f, 0x85, 0x44, 0x64, 0xc0, 0xca, 0x4b, 0x1e, 0x85, 0xae, 0xdd, 0x03, 0x82, + 0x92, 0xc4, 0xe1, 0xa5, 0x77, 0x44, 0xeb, 0xba, 0x01, 0x0b, 0x9e, 0xbf, 0xbb, 0x01, + 0x1b, 0xd6, 0xf0, 0xb7, 0x88, 0x05, 0x02, 0x5d, 0x27, 0xf3, 0xc1, 0x77, 0x46, 0xba, + 0xe1, 0x16, 0xc1, 0x5d, 0x9f, 0x47, 0x1f, 0x0f, 0x62, 0x88, 0xa1, 0x50, 0x64, 0x7b, + 0x2a, 0xfe, 0x9d, 0xf7, 0xcc, 0xcf, 0x01, 0xf5, 0xcd, 0xe5, 0xf0, 0x46, 0x80, 0xbb, + 0xfe, 0xd8, 0x7f, 0x6c, 0xf4, 0x29, 0xfb, 0x27, 0xad, 0x6b, 0xab, 0xe7, 0x91, 0x76, + 0x66, 0x11, 0xcf, 0x5b, 0xc2, 0x0e, 0x48, 0xbe, 0xf1, 0x19, 0x25, 0x9b, 0x9b, 0x8a, + 0x0e, 0x39, 0xc3, 0xdf, 0x28, 0xcb, 0x95, 0x82, 0xea, 0x33, 0x86, 0x01, 0xcd, 0xc4, + 0x81, 0xb3, 0x2f, 0xb8, 0x2a, 0xde, 0xeb, 0xb3, 0xda, 0xde, 0x25, 0xd1, 0xa3, 0xdf, + 0x20, 0xc3, 0x7e, 0x71, 0x25, 0x06, 0xb5, 0xd9, 0x96, 0xc4, 0x9a, 0x9f, 0x0f, 0x30, + 0xdd, 0xcb, 0x91, 0xfe, 0x90, 0x04, 0xe1, 0xe8, 0x32, 0x94, 0xa6, 0xc9, 0x20, 0x3d, + 0x94, 0xe8, 0xdc, 0x2c, 0xbb, 0x44, 0x9d, 0xe4, 0x15, 0x50, 0x32, 0x60, 0x4e, 0x47, + 0x99, 0x70, 0x16, 0xb3, 0x04, 0xfd, 0x43, 0x7d, 0x82, 0x35, 0x04, 0x5e, 0x25, 0x5a, + 0x19, 0xb7, 0x43, 0xa0, 0xa9, 0xf2, 0xe3, 0x36, 0xb4, 0x4c, 0xae, 0x30, 0x7b, 0xb3, + 0x98, 0x7b, 0xd3, 0xe4, 0xe7, 0x77, 0xfb, 0xb3, 0x4c, 0x0a, 0xb8, 0xcc, 0x3d, 0x67, + 0x46, 0x6c, 0x0a, 0x88, 0xdd, 0x4c, 0xca, 0xd1, 0x8a, 0x07, 0xa8, 0xd1, 0x06, 0x8d, + 0xf5, 0xb6, 0x29, 0xe5, 0x71, 0x8d, 0x0f, 0x6d, 0xf5, 0xc9, 0x57, 0xcf, 0x71, 0xbb, + 0x00, 0xa5, 0x17, 0x8f, 0x17, 0x5c, 0xac, 0xa9, 0x44, 0xe6, 0x35, 0xc5, 0x15, 0x9f, + 0x73, 0x8e, 0x24, 0x02, 0xa2, 0xd2, 0x1a, 0xa0, 0x81, 0xe1, 0x0e, 0x45, 0x6a, 0xfb, + 0x00, 0xb9, 0xf6, 0x24, 0x16, 0xc8, 0xb9, 0xc0, 0xf7, 0x22, 0x8f, 0x51, 0x07, 0x29, + 0xe0, 0xbe, 0x3f, 0x30, 0x53, 0x13, 0xd7, 0x7f, 0x73, 0x79, 0xdc, 0x2a, 0xf2, 0x48, + 0x69, 0xc6, 0xc7, 0x4e, 0xe4, 0x47, 0x14, 0x98, 0x86, 0x1d, 0x19, 0x2f, 0x0f, 0xf0, + 0xf5, 0x08, 0x28, 0x5d, 0xab, 0x6b, 0x6a, 0x36, 0xcc, 0xf7, 0xd1, 0x22, 0x56, 0xcc, + 0x76, 0xb9, 0x55, 0x03, 0x72, 0x0a, 0xc6, 0x72, 0xd0, 0x82, 0x68, 0xd2, 0xcf, 0x77, + 0x73, 0xb6, 0xba, 0x2a, 0x5f, 0x66, 0x48, 0x47, 0xbf, 0x70, 0x7f, 0x2f, 0xc1, 0x0c, + 0x98, 0xf2, 0xf0, 0x06, 0xec, 0x22, 0xcc, 0xb5, 0xa8, 0xc8, 0xb7, 0xc4, 0x0c, 0x7c, + 0x2d, 0x49, 0xa6, 0x63, 0x9b, 0x9f, 0x2c, 0xe3, 0x3c, 0x25, 0xc0, 0x4b, 0xc4, 0x61, + 0xe7, 0x44, 0xdf, 0xa5, 0x36, 0xb0, 0x0d, 0x94, 0xba, 0xdd, 0xf4, 0xf4, 0xd1, 0x40, + 0x44, 0xc6, 0x95, 0xa3, 0x38, 0x81, 0x47, 0x7d, 0xf1, 0x24, 0xf0, 0xfc, 0xf2, 0x06, + 0xa9, 0xfb, 0x2e, 0x65, 0xe3, 0x04, 0xcd, 0xbf, 0x0c, 0x4d, 0x23, 0x90, 0x17, 0x0c, + 0x13, 0x0a, 0xb8, 0x49, 0xc2, 0xf2, 0x2b, 0x5c, 0xdd, 0x39, 0x21, 0x64, 0x0c, 0x8c, + 0xf1, 0x97, 0x6a, 0xe1, 0x01, 0x0b, 0x0d, 0xfd, 0x9c, 0xb2, 0x54, 0x3e, 0x45, 0xf9, + 0x97, 0x49, 0xcc, 0x4d, 0x61, 0xf2, 0xe8, 0xaa, 0xbf, 0xe9, 0x8b, 0xd9, 0x05, 0xfa, + 0x39, 0x95, 0x1b, 0x33, 0xea, 0x76, 0x9c, 0x45, 0xab, 0x95, 0x31, 0xc5, 0x72, 0x09, + 0x86, 0x2a, 0xd1, 0x2f, 0xd7, 0x6b, 0xa4, 0x80, + ], + cv_net: [ + 0xca, 0xf6, 0x40, 0x8d, 0xef, 0x1f, 0x0f, 0x2b, 0xaa, 0x17, 0xb1, 0x30, 0xc3, 0xae, + 0x72, 0x95, 0x89, 0xbe, 0x69, 0xd8, 0x28, 0xbe, 0x54, 0x30, 0x69, 0x16, 0x41, 0x3c, + 0xd2, 0x50, 0x21, 0x17, + ], + nf_old: [ + 0x23, 0x39, 0xa8, 0x95, 0x29, 0xcf, 0x35, 0x7b, 0x06, 0x7d, 0xd2, 0x8b, 0xe4, 0x06, + 0x6e, 0x16, 0x23, 0x6d, 0xc5, 0xd7, 0x87, 0x06, 0x14, 0x9a, 0x72, 0x8c, 0x3e, 0x3d, + 0x9d, 0xc1, 0x08, 0x1c, + ], + cmx: [ + 0xe3, 0x04, 0xcf, 0x08, 0xc7, 0x86, 0xaf, 0xcb, 0x1d, 0x65, 0x2f, 0x7a, 0x94, 0x17, + 0x29, 0x32, 0x01, 0x51, 0x71, 0x37, 0x93, 0x82, 0x89, 0x42, 0xcb, 0x88, 0xd0, 0x1f, + 0x68, 0x60, 0x4e, 0x1f, + ], + esk: [ + 0x0f, 0xba, 0x68, 0x76, 0xb3, 0x76, 0x5d, 0xff, 0x4f, 0x4c, 0x40, 0xaf, 0x89, 0x3e, + 0x4b, 0xd1, 0x34, 0x3a, 0x53, 0x4c, 0xdf, 0x50, 0x20, 0x15, 0x6b, 0x5e, 0xd1, 0xf6, + 0xbf, 0x62, 0xbe, 0x3c, + ], + ephemeral_key: [ + 0xdf, 0xe0, 0xf0, 0x0e, 0xb2, 0xb2, 0xf7, 0x08, 0x04, 0x19, 0x1b, 0x5b, 0x2d, 0xdf, + 0x57, 0x8f, 0x6a, 0xda, 0x21, 0x1b, 0x8b, 0x41, 0x7d, 0x95, 0xd2, 0xb7, 0x34, 0xff, + 0xa2, 0x2d, 0x81, 0x30, + ], + shared_secret: [ + 0x0e, 0xc6, 0x82, 0xc8, 0xdc, 0x66, 0x41, 0x41, 0x02, 0x4f, 0x92, 0x9d, 0x1a, 0xe5, + 0xd3, 0x9c, 0x39, 0x4d, 0x05, 0xa2, 0x4d, 0xad, 0x0e, 0x4a, 0x6f, 0x94, 0x98, 0xed, + 0x5f, 0x87, 0xd4, 0x88, + ], + k_enc: [ + 0xb1, 0x24, 0x5f, 0xb6, 0x37, 0x47, 0xc0, 0x13, 0x39, 0xcd, 0xe8, 0xf9, 0x35, 0x98, + 0xdf, 0xb2, 0xd3, 0x99, 0xec, 0x5e, 0x03, 0xbe, 0xa1, 0x3f, 0x3d, 0xbf, 0x01, 0xca, + 0xdb, 0x93, 0xc9, 0xba, + ], + p_enc: [ + 0x02, 0xe0, 0x66, 0xb5, 0xe7, 0x96, 0x86, 0xe9, 0xf3, 0x6e, 0xce, 0xc7, 0x7e, 0x65, + 0x41, 0x7b, 0x6c, 0xd1, 0x2f, 0xa8, 0xc3, 0x6d, 0xcf, 0xd3, 0x4a, 0x0c, 0xb6, 0x63, + 0x78, 0x76, 0x10, 0x5e, 0x79, 0xbf, 0x3b, 0xd5, 0x8e, 0xc1, 0x48, 0xcb, 0x64, 0x97, + 0x0e, 0x32, 0x23, 0xa9, 0x1f, 0x71, 0xdf, 0xcf, 0xd5, 0xa0, 0xff, 0x4b, 0x66, 0x7f, + 0xba, 0xf3, 0xd4, 0xb3, 0xb9, 0x08, 0xb9, 0x82, 0x88, 0x20, 0xdf, 0xec, 0xdd, 0x75, + 0x37, 0x50, 0xb5, 0xf9, 0xd2, 0x21, 0x6e, 0x56, 0xc6, 0x15, 0x27, 0x2f, 0x85, 0x44, + 0x64, 0xc0, 0xca, 0x4b, 0x1e, 0x85, 0xae, 0xdd, 0x03, 0x82, 0x92, 0xc4, 0xe1, 0xa5, + 0x77, 0x44, 0xeb, 0xba, 0x01, 0x0b, 0x9e, 0xbf, 0xbb, 0x01, 0x1b, 0xd6, 0xf0, 0xb7, + 0x88, 0x05, 0x02, 0x5d, 0x27, 0xf3, 0xc1, 0x77, 0x46, 0xba, 0xe1, 0x16, 0xc1, 0x5d, + 0x9f, 0x47, 0x1f, 0x0f, 0x62, 0x88, 0xa1, 0x50, 0x64, 0x7b, 0x2a, 0xfe, 0x9d, 0xf7, + 0xcc, 0xcf, 0x01, 0xf5, 0xcd, 0xe5, 0xf0, 0x46, 0x80, 0xbb, 0xfe, 0xd8, 0x7f, 0x6c, + 0xf4, 0x29, 0xfb, 0x27, 0xad, 0x6b, 0xab, 0xe7, 0x91, 0x76, 0x66, 0x11, 0xcf, 0x5b, + 0xc2, 0x0e, 0x48, 0xbe, 0xf1, 0x19, 0x25, 0x9b, 0x9b, 0x8a, 0x0e, 0x39, 0xc3, 0xdf, + 0x28, 0xcb, 0x95, 0x82, 0xea, 0x33, 0x86, 0x01, 0xcd, 0xc4, 0x81, 0xb3, 0x2f, 0xb8, + 0x2a, 0xde, 0xeb, 0xb3, 0xda, 0xde, 0x25, 0xd1, 0xa3, 0xdf, 0x20, 0xc3, 0x7e, 0x71, + 0x25, 0x06, 0xb5, 0xd9, 0x96, 0xc4, 0x9a, 0x9f, 0x0f, 0x30, 0xdd, 0xcb, 0x91, 0xfe, + 0x90, 0x04, 0xe1, 0xe8, 0x32, 0x94, 0xa6, 0xc9, 0x20, 0x3d, 0x94, 0xe8, 0xdc, 0x2c, + 0xbb, 0x44, 0x9d, 0xe4, 0x15, 0x50, 0x32, 0x60, 0x4e, 0x47, 0x99, 0x70, 0x16, 0xb3, + 0x04, 0xfd, 0x43, 0x7d, 0x82, 0x35, 0x04, 0x5e, 0x25, 0x5a, 0x19, 0xb7, 0x43, 0xa0, + 0xa9, 0xf2, 0xe3, 0x36, 0xb4, 0x4c, 0xae, 0x30, 0x7b, 0xb3, 0x98, 0x7b, 0xd3, 0xe4, + 0xe7, 0x77, 0xfb, 0xb3, 0x4c, 0x0a, 0xb8, 0xcc, 0x3d, 0x67, 0x46, 0x6c, 0x0a, 0x88, + 0xdd, 0x4c, 0xca, 0xd1, 0x8a, 0x07, 0xa8, 0xd1, 0x06, 0x8d, 0xf5, 0xb6, 0x29, 0xe5, + 0x71, 0x8d, 0x0f, 0x6d, 0xf5, 0xc9, 0x57, 0xcf, 0x71, 0xbb, 0x00, 0xa5, 0x17, 0x8f, + 0x17, 0x5c, 0xac, 0xa9, 0x44, 0xe6, 0x35, 0xc5, 0x15, 0x9f, 0x73, 0x8e, 0x24, 0x02, + 0xa2, 0xd2, 0x1a, 0xa0, 0x81, 0xe1, 0x0e, 0x45, 0x6a, 0xfb, 0x00, 0xb9, 0xf6, 0x24, + 0x16, 0xc8, 0xb9, 0xc0, 0xf7, 0x22, 0x8f, 0x51, 0x07, 0x29, 0xe0, 0xbe, 0x3f, 0x30, + 0x53, 0x13, 0xd7, 0x7f, 0x73, 0x79, 0xdc, 0x2a, 0xf2, 0x48, 0x69, 0xc6, 0xc7, 0x4e, + 0xe4, 0x47, 0x14, 0x98, 0x86, 0x1d, 0x19, 0x2f, 0x0f, 0xf0, 0xf5, 0x08, 0x28, 0x5d, + 0xab, 0x6b, 0x6a, 0x36, 0xcc, 0xf7, 0xd1, 0x22, 0x56, 0xcc, 0x76, 0xb9, 0x55, 0x03, + 0x72, 0x0a, 0xc6, 0x72, 0xd0, 0x82, 0x68, 0xd2, 0xcf, 0x77, 0x73, 0xb6, 0xba, 0x2a, + 0x5f, 0x66, 0x48, 0x47, 0xbf, 0x70, 0x7f, 0x2f, 0xc1, 0x0c, 0x98, 0xf2, 0xf0, 0x06, + 0xec, 0x22, 0xcc, 0xb5, 0xa8, 0xc8, 0xb7, 0xc4, 0x0c, 0x7c, 0x2d, 0x49, 0xa6, 0x63, + 0x9b, 0x9f, 0x2c, 0xe3, 0x3c, 0x25, 0xc0, 0x4b, 0xc4, 0x61, 0xe7, 0x44, 0xdf, 0xa5, + 0x36, 0xb0, 0x0d, 0x94, 0xba, 0xdd, 0xf4, 0xf4, 0xd1, 0x40, 0x44, 0xc6, 0x95, 0xa3, + 0x38, 0x81, 0x47, 0x7d, 0xf1, 0x24, 0xf0, 0xfc, 0xf2, 0x06, 0xa9, 0xfb, 0x2e, 0x65, + 0xe3, 0x04, 0xcd, 0xbf, 0x0c, 0x4d, 0x23, 0x90, 0x17, 0x0c, 0x13, 0x0a, 0xb8, 0x49, + 0xc2, 0xf2, 0x2b, 0x5c, 0xdd, 0x39, 0x21, 0x64, 0x0c, 0x8c, 0xf1, 0x97, 0x6a, 0xe1, + 0x01, 0x0b, 0x0d, 0xfd, 0x9c, 0xb2, 0x54, 0x3e, 0x45, 0xf9, 0x97, 0x49, 0xcc, 0x4d, + 0x61, 0xf2, 0xe8, 0xaa, 0xbf, 0xe9, 0x8b, 0xd9, 0x05, 0xfa, 0x39, 0x95, 0x1b, 0x33, + 0xea, 0x76, 0x9c, 0x45, 0xab, 0x95, 0x31, 0xc5, 0x72, 0x09, 0x86, 0x2a, 0xd1, 0x2f, + 0xd7, 0x6b, 0xa4, 0x80, + ], + c_enc: [ + 0x31, 0xec, 0x78, 0xd4, 0x02, 0x14, 0xc1, 0xbc, 0x7b, 0x25, 0x94, 0x7b, 0x42, 0xf3, + 0x54, 0x34, 0x60, 0x72, 0x90, 0x27, 0x7c, 0x44, 0xc4, 0x89, 0xe9, 0x38, 0x72, 0x2f, + 0x7c, 0x12, 0xff, 0x55, 0xc4, 0xf1, 0xdf, 0xbe, 0x0f, 0x1a, 0x65, 0xb1, 0x5c, 0x0c, + 0xc4, 0x7a, 0x46, 0xc9, 0xbb, 0x33, 0x5b, 0xd1, 0xa3, 0xe7, 0xe6, 0x62, 0xee, 0x85, + 0x84, 0x57, 0x6b, 0x6f, 0x42, 0x81, 0x95, 0xc9, 0x8c, 0x72, 0xfb, 0x99, 0x75, 0xc7, + 0x17, 0x9c, 0x4c, 0xab, 0x58, 0x66, 0xf5, 0xb4, 0x85, 0x42, 0x8b, 0x50, 0x8e, 0x2e, + 0x05, 0xbe, 0x0c, 0x98, 0x41, 0xa3, 0xa2, 0x91, 0x12, 0x80, 0x2c, 0x52, 0x15, 0xe2, + 0x51, 0x37, 0xcf, 0xdd, 0x13, 0x8c, 0x99, 0x39, 0x0e, 0xfb, 0xce, 0xb7, 0x52, 0x4e, + 0x84, 0x7c, 0x36, 0xb4, 0x3f, 0x3e, 0xde, 0x32, 0xf2, 0x3b, 0x39, 0x81, 0xf6, 0xd3, + 0xc3, 0x2b, 0x17, 0xbb, 0xbe, 0x65, 0xf2, 0xfd, 0x01, 0xab, 0xdd, 0x99, 0x87, 0xf1, + 0xb8, 0x88, 0xeb, 0xef, 0x41, 0xef, 0x45, 0x55, 0xc9, 0xfb, 0x0c, 0x8a, 0xee, 0x9b, + 0x6d, 0xd0, 0x85, 0xb9, 0xfb, 0xc7, 0x4f, 0xe4, 0x6a, 0x1e, 0x36, 0x3d, 0x68, 0x32, + 0xb5, 0x08, 0x20, 0x0e, 0x50, 0x0d, 0xa6, 0x95, 0x13, 0xb7, 0x9e, 0x81, 0xf7, 0x33, + 0xb6, 0x6c, 0x3f, 0x24, 0x3a, 0x28, 0x5b, 0xf8, 0x6f, 0xfe, 0xef, 0x4f, 0xfd, 0x1c, + 0xac, 0xa7, 0x83, 0x07, 0x26, 0x63, 0xbf, 0x9b, 0x48, 0x7f, 0xbc, 0x3e, 0x7f, 0x5a, + 0xd2, 0xf7, 0xac, 0xbf, 0x2b, 0x6e, 0x00, 0x8e, 0x3e, 0x4d, 0x6f, 0x31, 0xe1, 0x14, + 0x75, 0xe1, 0x96, 0x98, 0x9d, 0xb9, 0x62, 0x8a, 0x5d, 0x56, 0x39, 0x7c, 0x9a, 0x04, + 0x2a, 0xab, 0x55, 0xe1, 0xec, 0xc4, 0x92, 0xfe, 0x94, 0x27, 0xd4, 0x90, 0xf2, 0x73, + 0xb6, 0x01, 0xd6, 0x51, 0x05, 0x56, 0x82, 0xd3, 0x5b, 0x30, 0x75, 0xfa, 0xda, 0x85, + 0x25, 0x84, 0x48, 0x14, 0x95, 0x7f, 0xfc, 0x9b, 0xc7, 0xfb, 0x39, 0x39, 0x73, 0x7b, + 0x01, 0x50, 0x2e, 0x0b, 0x6f, 0x1f, 0x9b, 0x88, 0xf2, 0x71, 0x54, 0x80, 0xae, 0x42, + 0x2e, 0x9b, 0xb7, 0xb7, 0x6e, 0x5d, 0x22, 0xde, 0x0d, 0x3d, 0x7a, 0xea, 0x58, 0x10, + 0x01, 0xdc, 0xf4, 0x6a, 0x62, 0x2f, 0x08, 0x03, 0x10, 0xbe, 0x50, 0xdf, 0x07, 0x75, + 0x21, 0x92, 0xd4, 0xe4, 0x1a, 0xc5, 0x18, 0xe4, 0x24, 0x1e, 0x06, 0x67, 0x76, 0xa8, + 0xea, 0xec, 0xc7, 0x42, 0xfd, 0x2c, 0x1b, 0xf0, 0x6f, 0xc5, 0x8b, 0xd2, 0x8d, 0x1d, + 0x6c, 0x60, 0x1f, 0x91, 0x5d, 0x75, 0x2e, 0x7c, 0xc3, 0xd9, 0x76, 0x3c, 0x8b, 0x9e, + 0xec, 0x14, 0x2c, 0x84, 0x81, 0xf9, 0xc5, 0x23, 0x59, 0xbf, 0xbf, 0x51, 0x24, 0x36, + 0x67, 0x84, 0xe1, 0x71, 0xd7, 0xa4, 0xaa, 0x01, 0x5e, 0x85, 0x56, 0x47, 0x4a, 0x6d, + 0x0f, 0xee, 0x69, 0xb0, 0xd5, 0x3e, 0xe7, 0xf4, 0xed, 0xf5, 0xea, 0x59, 0xfa, 0x55, + 0x97, 0xf4, 0x8d, 0xd6, 0xaa, 0x88, 0x51, 0x84, 0x29, 0xac, 0x8c, 0x18, 0xc4, 0x73, + 0x8d, 0xb8, 0x01, 0x09, 0xa5, 0xe4, 0xbc, 0x81, 0xbb, 0x84, 0xb3, 0x7d, 0x9b, 0x2a, + 0xd4, 0xb1, 0xd2, 0x6b, 0x36, 0x3d, 0x16, 0x60, 0x72, 0xf0, 0x8c, 0x56, 0x70, 0x62, + 0x27, 0xa9, 0xf8, 0x32, 0x97, 0x03, 0x70, 0x12, 0xd1, 0xf6, 0xda, 0x24, 0xa8, 0x69, + 0xeb, 0x32, 0x97, 0xbc, 0xbc, 0xcc, 0x8d, 0x7d, 0xed, 0x03, 0x0a, 0x3d, 0x60, 0xdf, + 0x88, 0x82, 0xe0, 0x62, 0x9e, 0x36, 0x14, 0x3c, 0x09, 0xca, 0x05, 0x21, 0x43, 0xcb, + 0x56, 0x62, 0x93, 0x8f, 0xa9, 0xf1, 0x15, 0xdd, 0xc0, 0x96, 0x65, 0x4c, 0x0b, 0x40, + 0x59, 0x4c, 0xba, 0x19, 0xee, 0xd4, 0x99, 0x53, 0x2b, 0x70, 0x8a, 0xde, 0xbe, 0x47, + 0x72, 0x6a, 0x83, 0xaf, 0x46, 0x3c, 0x80, 0xba, 0x2a, 0x1f, 0xe0, 0x71, 0xe1, 0x66, + 0xc4, 0x4d, 0x70, 0xdd, 0xbb, 0xba, 0x67, 0x06, 0xa1, 0xdc, 0x43, 0x27, 0x26, 0xfe, + 0x0f, 0xdb, 0xc6, 0x28, 0x21, 0xb5, 0x04, 0xea, 0x11, 0x66, 0xda, 0x48, 0xa8, 0x1b, + 0x63, 0x5e, 0x37, 0x63, 0x33, 0xd9, 0xbe, 0xfe, 0xc4, 0x93, 0xa0, 0x7d, 0xf4, 0x7b, + 0xba, 0x0a, 0x2e, 0x2f, 0x65, 0xe7, + ], + ock: [ + 0xec, 0xa3, 0x70, 0x7a, 0x74, 0x5d, 0x5d, 0x58, 0x65, 0x86, 0xb2, 0x35, 0xf2, 0x92, + 0xad, 0x20, 0x48, 0x93, 0x14, 0xc4, 0x58, 0x80, 0xd9, 0x83, 0x2b, 0x7f, 0x47, 0xee, + 0xbb, 0xd4, 0x5c, 0xfe, + ], + op: [ + 0x3b, 0x3e, 0x88, 0x3e, 0x95, 0x8c, 0xd6, 0xe0, 0x75, 0x4d, 0x74, 0xca, 0xae, 0x1e, + 0x5a, 0x43, 0x98, 0xab, 0xeb, 0x7d, 0x10, 0xee, 0x5f, 0x75, 0xa4, 0xab, 0x8e, 0xf7, + 0x03, 0x8e, 0x3d, 0xb3, 0x0f, 0xba, 0x68, 0x76, 0xb3, 0x76, 0x5d, 0xff, 0x4f, 0x4c, + 0x40, 0xaf, 0x89, 0x3e, 0x4b, 0xd1, 0x34, 0x3a, 0x53, 0x4c, 0xdf, 0x50, 0x20, 0x15, + 0x6b, 0x5e, 0xd1, 0xf6, 0xbf, 0x62, 0xbe, 0x3c, + ], + c_out: [ + 0xd0, 0x65, 0x9a, 0x03, 0xc5, 0x3e, 0x15, 0xdc, 0x11, 0x01, 0xa6, 0x6e, 0xa8, 0x0d, + 0xf4, 0x14, 0x4d, 0x5e, 0xe0, 0x1c, 0x3d, 0xbf, 0x20, 0x2c, 0xe6, 0x08, 0x7e, 0x96, + 0xa8, 0x5a, 0xe1, 0x39, 0xdd, 0x46, 0xfc, 0x82, 0xa1, 0xc3, 0x7d, 0x06, 0x05, 0xf8, + 0x49, 0x98, 0x53, 0x13, 0x16, 0xf1, 0xf0, 0xcb, 0xc0, 0x4e, 0xa2, 0x0a, 0xa4, 0x04, + 0xb3, 0xd5, 0xb0, 0x42, 0x96, 0x01, 0x49, 0x81, 0x6d, 0x9b, 0x8f, 0x06, 0x2a, 0xfc, + 0xc1, 0x93, 0x89, 0x43, 0x82, 0x7a, 0x1b, 0x43, 0xfc, 0xbd, + ], + }, + TestVector { + incoming_viewing_key: [ + 0xeb, 0xd4, 0x80, 0x6d, 0x81, 0x25, 0x49, 0x89, 0xfa, 0xdb, 0xa8, 0xcd, 0x58, 0x96, + 0x7d, 0x6f, 0xd8, 0x73, 0x83, 0xbc, 0x09, 0x38, 0x63, 0xd5, 0xab, 0xfc, 0xdd, 0xd3, + 0x8f, 0x15, 0x39, 0xfa, 0xb7, 0xe5, 0xd4, 0xf0, 0x61, 0x91, 0x67, 0xb8, 0xd4, 0x82, + 0xcb, 0x54, 0x8c, 0xb5, 0x59, 0x83, 0x49, 0x6f, 0x77, 0xd3, 0xdc, 0xaf, 0xf5, 0x6e, + 0x32, 0x41, 0x0b, 0xfe, 0xc1, 0xf2, 0x68, 0x11, + ], + ovk: [ + 0xb2, 0x5f, 0x30, 0x3f, 0x58, 0x15, 0xc4, 0x53, 0x31, 0x24, 0xac, 0xf9, 0xd1, 0x89, + 0x40, 0xe7, 0x75, 0x22, 0xac, 0x5d, 0xc4, 0xb9, 0x57, 0x0a, 0xae, 0x8f, 0x47, 0xb7, + 0xf5, 0x7f, 0xd8, 0x76, + ], + default_d: [ + 0x1c, 0xa7, 0xb6, 0x49, 0x39, 0x9e, 0x13, 0xe4, 0x39, 0x44, 0x62, + ], + default_pk_d: [ + 0x3f, 0xeb, 0x34, 0x5a, 0xec, 0xd3, 0x42, 0x9a, 0x16, 0xe1, 0x0f, 0x3d, 0x13, 0x20, + 0xbc, 0x99, 0x71, 0xb5, 0x9e, 0x63, 0x9d, 0x62, 0xb6, 0x96, 0x1a, 0xea, 0x78, 0x15, + 0x67, 0xa8, 0x60, 0x9e, + ], + v: 9624581763228770449, + rseed: [ + 0x4a, 0x95, 0xb2, 0x05, 0x52, 0x6c, 0xfc, 0xb4, 0xc4, 0xe1, 0xcc, 0x95, 0x51, 0x75, + 0xb3, 0xe8, 0xde, 0x1f, 0x5d, 0x81, 0xb1, 0x86, 0x69, 0x69, 0x23, 0x50, 0xaa, 0xa1, + 0xa1, 0xd7, 0x97, 0x61, + ], + memo: [ + 0xff, 0x75, 0x82, 0xe5, 0x4d, 0x7a, 0x5b, 0x57, 0xa6, 0x83, 0xb3, 0x2f, 0xb1, 0x09, + 0x80, 0x62, 0xda, 0xd7, 0xb0, 0xc2, 0xeb, 0x51, 0x8f, 0x68, 0x62, 0xe8, 0x3d, 0xb2, + 0x5e, 0x3d, 0xba, 0xf7, 0xae, 0xd5, 0x04, 0xde, 0x93, 0x2a, 0xcb, 0x99, 0xd7, 0x35, + 0x99, 0x2c, 0xe6, 0x2b, 0xae, 0x9e, 0xf8, 0x93, 0xff, 0x6a, 0xcc, 0x0f, 0xfc, 0xf8, + 0xe3, 0x48, 0x3e, 0x14, 0x6b, 0x9d, 0x49, 0xdd, 0x8c, 0x78, 0x35, 0xf4, 0x3a, 0x37, + 0xdc, 0xa0, 0x78, 0x7e, 0x3e, 0xc9, 0xf6, 0x60, 0x52, 0x23, 0xd5, 0xba, 0x7a, 0xe0, + 0xab, 0x90, 0x25, 0xb7, 0x3b, 0xc0, 0x3f, 0x7f, 0xac, 0x36, 0xc0, 0x09, 0xa5, 0x6d, + 0x4d, 0x95, 0xd1, 0xe8, 0x1d, 0x3b, 0x3e, 0xbc, 0xa7, 0xe5, 0x4c, 0xc1, 0xa1, 0x2d, + 0x12, 0x7b, 0x57, 0xc8, 0x13, 0x89, 0x76, 0xe7, 0x91, 0x01, 0x3b, 0x01, 0x5f, 0x06, + 0xa6, 0x24, 0xf5, 0x21, 0xb6, 0xee, 0x04, 0xec, 0x98, 0x08, 0x93, 0xc7, 0xe5, 0xe0, + 0x1a, 0x33, 0x62, 0x03, 0x59, 0x40, 0x94, 0xf8, 0x28, 0x33, 0xd7, 0x44, 0x5f, 0xe2, + 0xd0, 0x91, 0x30, 0xf6, 0x35, 0x11, 0xda, 0x54, 0x83, 0x2d, 0xe9, 0x13, 0x6b, 0x39, + 0xf4, 0x59, 0x9f, 0x5a, 0xa5, 0xdf, 0xbb, 0x45, 0xda, 0x60, 0xcd, 0xce, 0xab, 0x7e, + 0xef, 0xde, 0x89, 0xbe, 0x63, 0xf3, 0xf7, 0xc0, 0xd2, 0x32, 0x48, 0x47, 0xcc, 0xe1, + 0x40, 0x5d, 0xef, 0x7c, 0x46, 0x9b, 0x0e, 0x27, 0x24, 0x94, 0xe5, 0xdf, 0x54, 0xf5, + 0x68, 0x65, 0x6c, 0xb9, 0xc8, 0x81, 0x8d, 0x92, 0xb7, 0x2b, 0x8b, 0xc3, 0x4d, 0xb7, + 0xbb, 0x31, 0x12, 0x48, 0x7e, 0x74, 0x6e, 0xef, 0xe4, 0xe8, 0x08, 0xbb, 0xb2, 0x87, + 0xd9, 0x9b, 0xf0, 0x7d, 0x00, 0xda, 0xbe, 0xde, 0xdc, 0x5e, 0x5f, 0x07, 0x4f, 0xfe, + 0xae, 0x0c, 0xba, 0x7d, 0xa3, 0xa5, 0x16, 0xc1, 0x73, 0xbe, 0x1c, 0x51, 0x33, 0x23, + 0xe1, 0x19, 0xf6, 0x35, 0xe8, 0x20, 0x9a, 0x07, 0x4b, 0x21, 0x6b, 0x70, 0x23, 0xfa, + 0xdc, 0x2d, 0x25, 0x94, 0x9c, 0x90, 0x03, 0x7e, 0x71, 0xe3, 0xe5, 0x50, 0x72, 0x6d, + 0x21, 0x0a, 0x2c, 0x68, 0x83, 0x42, 0xe5, 0x24, 0x40, 0x63, 0x5e, 0x9c, 0xc1, 0x4a, + 0xfe, 0x10, 0x10, 0x26, 0x21, 0xa9, 0xc9, 0xac, 0xcb, 0x78, 0x2e, 0x9e, 0x4a, 0x5f, + 0xa8, 0x7f, 0x0a, 0x95, 0x6f, 0x5b, 0x85, 0x50, 0x99, 0x60, 0x28, 0x5c, 0x22, 0x62, + 0x7c, 0x59, 0x48, 0x3a, 0x5a, 0x4c, 0x28, 0xcc, 0xe4, 0xb1, 0x56, 0xe5, 0x51, 0x40, + 0x6a, 0x7e, 0xe8, 0x35, 0x56, 0x56, 0xa2, 0x1e, 0x43, 0xe3, 0x8c, 0xe1, 0x29, 0xfd, + 0xad, 0xb7, 0x59, 0xed, 0xdf, 0xa0, 0x8f, 0x00, 0xfc, 0x8e, 0x56, 0x7c, 0xef, 0x93, + 0xc6, 0x79, 0x2d, 0x01, 0xdf, 0x05, 0xe6, 0xd5, 0x80, 0xf4, 0xd5, 0xd4, 0x8d, 0xf0, + 0x42, 0x45, 0x1a, 0x33, 0x59, 0x0d, 0x3e, 0x8c, 0xf4, 0x9b, 0x26, 0x27, 0x21, 0x8f, + 0x0c, 0x29, 0x2f, 0xa6, 0x6a, 0xda, 0x94, 0x5f, 0xa5, 0x5b, 0xb2, 0x35, 0x48, 0xe3, + 0x3a, 0x83, 0xa5, 0x62, 0x95, 0x7a, 0x31, 0x49, 0xa9, 0x93, 0xcc, 0x47, 0x23, 0x62, + 0x29, 0x87, 0x36, 0xa8, 0xb7, 0x78, 0xd9, 0x7c, 0xe4, 0x23, 0x01, 0x3d, 0x64, 0xb3, + 0x2c, 0xd1, 0x72, 0xef, 0xa5, 0x51, 0xbf, 0x7f, 0x36, 0x8f, 0x04, 0xbd, 0xae, 0xc6, + 0x09, 0x1a, 0x30, 0x04, 0xa7, 0x57, 0x59, 0x8b, 0x80, 0x1d, 0xcf, 0x67, 0x5c, 0xb8, + 0x3e, 0x43, 0xa5, 0x3a, 0xe8, 0xb2, 0x54, 0xd3, 0x33, 0xbc, 0xda, 0x20, 0xd4, 0x81, + 0x7d, 0x34, 0x77, 0xab, 0xfb, 0xa2, 0x5b, 0xb8, 0x3d, 0xf5, 0x94, 0x9c, 0x12, 0x6f, + 0x14, 0x9b, 0x1d, 0x99, 0x34, 0x1e, 0x4e, 0x6f, + ], + cv_net: [ + 0xd2, 0xf9, 0xad, 0xff, 0x53, 0x1b, 0x65, 0x43, 0x2b, 0xa2, 0xd7, 0xda, 0xa6, 0xd8, + 0x6e, 0x62, 0xe4, 0xed, 0xc7, 0x86, 0xd9, 0xe0, 0xb2, 0x7d, 0x26, 0x62, 0x8b, 0x79, + 0xda, 0x6b, 0x15, 0x14, + ], + nf_old: [ + 0xe5, 0xd0, 0x8c, 0x40, 0x26, 0x3e, 0x4a, 0x2a, 0x56, 0x96, 0xda, 0x21, 0x0d, 0x8e, + 0x9a, 0x77, 0xf0, 0xaf, 0xc4, 0xc6, 0x8a, 0x6d, 0xda, 0x38, 0xe2, 0x85, 0xf4, 0xe3, + 0xef, 0x13, 0xb8, 0x17, + ], + cmx: [ + 0xad, 0xc2, 0x44, 0x3a, 0xf9, 0x57, 0x67, 0x47, 0xca, 0x4f, 0x10, 0x4b, 0x1f, 0x5a, + 0x7a, 0xdc, 0x80, 0x5a, 0xc5, 0x5a, 0xcc, 0x56, 0x33, 0xa0, 0xb3, 0xc2, 0xdc, 0x7a, + 0xad, 0xff, 0x21, 0x26, + ], + esk: [ + 0x24, 0x75, 0x30, 0x5c, 0x35, 0xcf, 0x37, 0xeb, 0xd2, 0x77, 0x82, 0x35, 0x16, 0x58, + 0x5a, 0xfa, 0x06, 0x05, 0x78, 0x52, 0x17, 0x1e, 0x0c, 0xe4, 0xb0, 0x52, 0xd5, 0xb4, + 0x20, 0x41, 0xd8, 0x1c, + ], + ephemeral_key: [ + 0x00, 0x5d, 0x31, 0x5b, 0xd1, 0x80, 0xa2, 0x94, 0x0b, 0xd7, 0xfb, 0x34, 0xa7, 0x0e, + 0x90, 0xe8, 0x32, 0x6c, 0xb1, 0x34, 0x30, 0x66, 0x05, 0x46, 0x53, 0xd2, 0x64, 0x4d, + 0x20, 0x45, 0xe3, 0x0f, + ], + shared_secret: [ + 0x8e, 0x59, 0x0d, 0x06, 0x3f, 0x7e, 0xc3, 0x8e, 0xb2, 0x00, 0x84, 0x70, 0xf9, 0xbb, + 0x42, 0x29, 0x04, 0xfc, 0x0b, 0xaf, 0x97, 0x80, 0xf8, 0xfd, 0x1f, 0x54, 0x22, 0xea, + 0x30, 0x8c, 0x47, 0xba, + ], + k_enc: [ + 0xeb, 0xb2, 0xff, 0x9b, 0x1f, 0x29, 0x0d, 0xa5, 0x63, 0x27, 0xa9, 0x67, 0x71, 0xb2, + 0x5f, 0x71, 0x29, 0xff, 0x10, 0x2e, 0xe6, 0xd2, 0xb2, 0x0d, 0xa0, 0x9a, 0x06, 0x25, + 0xf8, 0xbb, 0x26, 0x07, + ], + p_enc: [ + 0x02, 0x1c, 0xa7, 0xb6, 0x49, 0x39, 0x9e, 0x13, 0xe4, 0x39, 0x44, 0x62, 0x91, 0x20, + 0xf4, 0xd4, 0x1e, 0x62, 0x91, 0x85, 0x4a, 0x95, 0xb2, 0x05, 0x52, 0x6c, 0xfc, 0xb4, + 0xc4, 0xe1, 0xcc, 0x95, 0x51, 0x75, 0xb3, 0xe8, 0xde, 0x1f, 0x5d, 0x81, 0xb1, 0x86, + 0x69, 0x69, 0x23, 0x50, 0xaa, 0xa1, 0xa1, 0xd7, 0x97, 0x61, 0xff, 0x75, 0x82, 0xe5, + 0x4d, 0x7a, 0x5b, 0x57, 0xa6, 0x83, 0xb3, 0x2f, 0xb1, 0x09, 0x80, 0x62, 0xda, 0xd7, + 0xb0, 0xc2, 0xeb, 0x51, 0x8f, 0x68, 0x62, 0xe8, 0x3d, 0xb2, 0x5e, 0x3d, 0xba, 0xf7, + 0xae, 0xd5, 0x04, 0xde, 0x93, 0x2a, 0xcb, 0x99, 0xd7, 0x35, 0x99, 0x2c, 0xe6, 0x2b, + 0xae, 0x9e, 0xf8, 0x93, 0xff, 0x6a, 0xcc, 0x0f, 0xfc, 0xf8, 0xe3, 0x48, 0x3e, 0x14, + 0x6b, 0x9d, 0x49, 0xdd, 0x8c, 0x78, 0x35, 0xf4, 0x3a, 0x37, 0xdc, 0xa0, 0x78, 0x7e, + 0x3e, 0xc9, 0xf6, 0x60, 0x52, 0x23, 0xd5, 0xba, 0x7a, 0xe0, 0xab, 0x90, 0x25, 0xb7, + 0x3b, 0xc0, 0x3f, 0x7f, 0xac, 0x36, 0xc0, 0x09, 0xa5, 0x6d, 0x4d, 0x95, 0xd1, 0xe8, + 0x1d, 0x3b, 0x3e, 0xbc, 0xa7, 0xe5, 0x4c, 0xc1, 0xa1, 0x2d, 0x12, 0x7b, 0x57, 0xc8, + 0x13, 0x89, 0x76, 0xe7, 0x91, 0x01, 0x3b, 0x01, 0x5f, 0x06, 0xa6, 0x24, 0xf5, 0x21, + 0xb6, 0xee, 0x04, 0xec, 0x98, 0x08, 0x93, 0xc7, 0xe5, 0xe0, 0x1a, 0x33, 0x62, 0x03, + 0x59, 0x40, 0x94, 0xf8, 0x28, 0x33, 0xd7, 0x44, 0x5f, 0xe2, 0xd0, 0x91, 0x30, 0xf6, + 0x35, 0x11, 0xda, 0x54, 0x83, 0x2d, 0xe9, 0x13, 0x6b, 0x39, 0xf4, 0x59, 0x9f, 0x5a, + 0xa5, 0xdf, 0xbb, 0x45, 0xda, 0x60, 0xcd, 0xce, 0xab, 0x7e, 0xef, 0xde, 0x89, 0xbe, + 0x63, 0xf3, 0xf7, 0xc0, 0xd2, 0x32, 0x48, 0x47, 0xcc, 0xe1, 0x40, 0x5d, 0xef, 0x7c, + 0x46, 0x9b, 0x0e, 0x27, 0x24, 0x94, 0xe5, 0xdf, 0x54, 0xf5, 0x68, 0x65, 0x6c, 0xb9, + 0xc8, 0x81, 0x8d, 0x92, 0xb7, 0x2b, 0x8b, 0xc3, 0x4d, 0xb7, 0xbb, 0x31, 0x12, 0x48, + 0x7e, 0x74, 0x6e, 0xef, 0xe4, 0xe8, 0x08, 0xbb, 0xb2, 0x87, 0xd9, 0x9b, 0xf0, 0x7d, + 0x00, 0xda, 0xbe, 0xde, 0xdc, 0x5e, 0x5f, 0x07, 0x4f, 0xfe, 0xae, 0x0c, 0xba, 0x7d, + 0xa3, 0xa5, 0x16, 0xc1, 0x73, 0xbe, 0x1c, 0x51, 0x33, 0x23, 0xe1, 0x19, 0xf6, 0x35, + 0xe8, 0x20, 0x9a, 0x07, 0x4b, 0x21, 0x6b, 0x70, 0x23, 0xfa, 0xdc, 0x2d, 0x25, 0x94, + 0x9c, 0x90, 0x03, 0x7e, 0x71, 0xe3, 0xe5, 0x50, 0x72, 0x6d, 0x21, 0x0a, 0x2c, 0x68, + 0x83, 0x42, 0xe5, 0x24, 0x40, 0x63, 0x5e, 0x9c, 0xc1, 0x4a, 0xfe, 0x10, 0x10, 0x26, + 0x21, 0xa9, 0xc9, 0xac, 0xcb, 0x78, 0x2e, 0x9e, 0x4a, 0x5f, 0xa8, 0x7f, 0x0a, 0x95, + 0x6f, 0x5b, 0x85, 0x50, 0x99, 0x60, 0x28, 0x5c, 0x22, 0x62, 0x7c, 0x59, 0x48, 0x3a, + 0x5a, 0x4c, 0x28, 0xcc, 0xe4, 0xb1, 0x56, 0xe5, 0x51, 0x40, 0x6a, 0x7e, 0xe8, 0x35, + 0x56, 0x56, 0xa2, 0x1e, 0x43, 0xe3, 0x8c, 0xe1, 0x29, 0xfd, 0xad, 0xb7, 0x59, 0xed, + 0xdf, 0xa0, 0x8f, 0x00, 0xfc, 0x8e, 0x56, 0x7c, 0xef, 0x93, 0xc6, 0x79, 0x2d, 0x01, + 0xdf, 0x05, 0xe6, 0xd5, 0x80, 0xf4, 0xd5, 0xd4, 0x8d, 0xf0, 0x42, 0x45, 0x1a, 0x33, + 0x59, 0x0d, 0x3e, 0x8c, 0xf4, 0x9b, 0x26, 0x27, 0x21, 0x8f, 0x0c, 0x29, 0x2f, 0xa6, + 0x6a, 0xda, 0x94, 0x5f, 0xa5, 0x5b, 0xb2, 0x35, 0x48, 0xe3, 0x3a, 0x83, 0xa5, 0x62, + 0x95, 0x7a, 0x31, 0x49, 0xa9, 0x93, 0xcc, 0x47, 0x23, 0x62, 0x29, 0x87, 0x36, 0xa8, + 0xb7, 0x78, 0xd9, 0x7c, 0xe4, 0x23, 0x01, 0x3d, 0x64, 0xb3, 0x2c, 0xd1, 0x72, 0xef, + 0xa5, 0x51, 0xbf, 0x7f, 0x36, 0x8f, 0x04, 0xbd, 0xae, 0xc6, 0x09, 0x1a, 0x30, 0x04, + 0xa7, 0x57, 0x59, 0x8b, 0x80, 0x1d, 0xcf, 0x67, 0x5c, 0xb8, 0x3e, 0x43, 0xa5, 0x3a, + 0xe8, 0xb2, 0x54, 0xd3, 0x33, 0xbc, 0xda, 0x20, 0xd4, 0x81, 0x7d, 0x34, 0x77, 0xab, + 0xfb, 0xa2, 0x5b, 0xb8, 0x3d, 0xf5, 0x94, 0x9c, 0x12, 0x6f, 0x14, 0x9b, 0x1d, 0x99, + 0x34, 0x1e, 0x4e, 0x6f, + ], + c_enc: [ + 0x96, 0x3b, 0xe3, 0x6e, 0xdc, 0xa4, 0x8b, 0x7c, 0x4a, 0x1c, 0xd6, 0xa1, 0x37, 0x2e, + 0x84, 0xc0, 0x54, 0x54, 0x83, 0x4c, 0x5e, 0xe1, 0x92, 0x5e, 0xed, 0xeb, 0x48, 0xda, + 0x16, 0x77, 0x79, 0xe3, 0x99, 0x83, 0x58, 0xcb, 0x92, 0x7a, 0x0a, 0x0b, 0x36, 0x9c, + 0x85, 0xee, 0xb3, 0x30, 0xf7, 0x00, 0x5c, 0x26, 0x9d, 0x0b, 0xe4, 0xf2, 0x38, 0x09, + 0x57, 0xb1, 0x62, 0x97, 0x7c, 0xae, 0x7a, 0x7b, 0x1d, 0x0b, 0xe5, 0xd0, 0xb7, 0x03, + 0xd3, 0x92, 0xac, 0xae, 0xd2, 0x4f, 0x52, 0x5b, 0x83, 0xcf, 0xdd, 0x7f, 0x35, 0xc1, + 0xf1, 0x74, 0xbf, 0x06, 0x6b, 0x7a, 0xfd, 0xb7, 0x45, 0xed, 0xbe, 0xdc, 0x0b, 0x46, + 0xa5, 0x91, 0x36, 0x21, 0x47, 0x61, 0x9d, 0x6b, 0xd3, 0xf3, 0xce, 0x6b, 0x45, 0x23, + 0xf0, 0x64, 0x9a, 0x7c, 0x65, 0x32, 0x2d, 0x05, 0xfa, 0xe2, 0x22, 0x70, 0x1a, 0x8c, + 0xd6, 0xca, 0xbf, 0x8d, 0xc3, 0x2f, 0x05, 0x5f, 0xeb, 0x14, 0x1e, 0x55, 0x6d, 0xdf, + 0xb1, 0x98, 0x30, 0xb7, 0x20, 0x4c, 0x30, 0x98, 0x4e, 0xdd, 0xf4, 0x34, 0xec, 0xc5, + 0xf0, 0xea, 0x82, 0x5c, 0xf8, 0xd9, 0xd5, 0x03, 0x8f, 0x28, 0xe2, 0x3e, 0xf3, 0x6b, + 0xa9, 0x38, 0x52, 0xe5, 0x8e, 0x85, 0xf8, 0x90, 0xb1, 0x77, 0x5c, 0x6d, 0x4c, 0x13, + 0x5b, 0xef, 0x0e, 0x2a, 0x19, 0x33, 0x02, 0xd9, 0x0a, 0x80, 0x4c, 0x85, 0x31, 0x25, + 0xaa, 0x5b, 0x11, 0x6f, 0x8c, 0x58, 0x0e, 0xb6, 0x54, 0xfe, 0x35, 0xe6, 0x73, 0x79, + 0x9e, 0x93, 0xcf, 0x58, 0xfe, 0x1e, 0x70, 0xcd, 0xe1, 0x19, 0xab, 0x58, 0x6c, 0x12, + 0xc4, 0x95, 0x75, 0xe6, 0x1a, 0xc4, 0xb7, 0x71, 0xfa, 0x8e, 0xbf, 0x76, 0xca, 0x95, + 0xd6, 0x51, 0xa4, 0xba, 0x87, 0x3b, 0x24, 0xcf, 0x97, 0xff, 0x75, 0x5b, 0xc7, 0x49, + 0xf4, 0x09, 0x6d, 0x2d, 0xa1, 0x5c, 0xf8, 0x30, 0x36, 0xcc, 0x22, 0x0f, 0x0a, 0x68, + 0x93, 0x43, 0x21, 0xc9, 0xae, 0x33, 0x4e, 0x2d, 0x99, 0xa9, 0x95, 0xe9, 0x29, 0x04, + 0xc1, 0x45, 0x23, 0x33, 0x19, 0x00, 0xcb, 0xca, 0x20, 0x4a, 0xdc, 0xb6, 0x93, 0x9d, + 0xc1, 0x71, 0x87, 0x53, 0x53, 0xa1, 0x1e, 0x12, 0xba, 0xcb, 0x2a, 0xab, 0x0f, 0x57, + 0x17, 0x9f, 0x1b, 0x67, 0xea, 0xcc, 0x7e, 0x7b, 0x6c, 0x5c, 0xc8, 0xa3, 0x78, 0x64, + 0x9b, 0x62, 0xb8, 0x52, 0xfa, 0x47, 0x6f, 0x93, 0x37, 0x88, 0x59, 0xd0, 0xd9, 0xa3, + 0x03, 0x3d, 0xa1, 0x31, 0x28, 0x17, 0x57, 0xad, 0x98, 0x5c, 0x86, 0xfe, 0x03, 0x7a, + 0x4e, 0xdd, 0x0a, 0x4a, 0x49, 0xee, 0x5c, 0x4f, 0x48, 0x15, 0xf0, 0x14, 0x73, 0xb9, + 0x60, 0xa1, 0x8a, 0x3b, 0x7f, 0x75, 0x07, 0xee, 0x3d, 0x8b, 0x39, 0x5a, 0x76, 0x68, + 0x40, 0x95, 0x5b, 0xaa, 0xdd, 0x0a, 0xbb, 0xf4, 0xf5, 0x91, 0x4e, 0x92, 0x10, 0xf5, + 0x9e, 0x4c, 0xd1, 0x3c, 0x82, 0xe0, 0xac, 0xf8, 0x79, 0x51, 0x78, 0x02, 0x91, 0xd0, + 0xa9, 0xa7, 0x0f, 0x6b, 0x4f, 0xf5, 0x0d, 0x81, 0x0d, 0x50, 0x90, 0x20, 0x45, 0x30, + 0xad, 0x69, 0x44, 0xb1, 0x3d, 0x23, 0x83, 0xab, 0xca, 0x42, 0x0c, 0xb6, 0xd9, 0xfc, + 0xd8, 0xfd, 0xcb, 0xe9, 0xb3, 0xb5, 0xf4, 0x2f, 0x0a, 0xf5, 0xdf, 0x36, 0x37, 0x8c, + 0xe7, 0x3d, 0xc9, 0x06, 0x16, 0x7d, 0xd4, 0xb3, 0x80, 0x41, 0x8f, 0x17, 0xe4, 0x50, + 0x61, 0x18, 0x57, 0x23, 0xda, 0xbb, 0x6f, 0xfd, 0xbb, 0xd5, 0xa4, 0x18, 0xc3, 0xc6, + 0xfd, 0x33, 0x70, 0x34, 0x09, 0x94, 0x27, 0x7b, 0x88, 0x8e, 0xe4, 0x9b, 0x08, 0x91, + 0xbb, 0xb9, 0x4b, 0x6b, 0x8b, 0x06, 0x5f, 0xd1, 0x92, 0x00, 0xdc, 0x3a, 0x68, 0x1c, + 0xa5, 0xff, 0x2a, 0x98, 0x8f, 0xa6, 0x6d, 0x02, 0x9d, 0xdd, 0xf9, 0xb0, 0x3a, 0x5e, + 0x6c, 0x6e, 0x99, 0xb6, 0x35, 0x41, 0x15, 0x6a, 0x09, 0x51, 0xd9, 0x08, 0x7d, 0xd8, + 0x83, 0xd5, 0x13, 0x9e, 0xe6, 0x7a, 0x8c, 0xe5, 0xdd, 0x6e, 0xf1, 0x4c, 0x9a, 0x10, + 0xdb, 0x81, 0x8b, 0x93, 0x69, 0x02, 0xc7, 0x99, 0x93, 0x90, 0xf9, 0x72, 0xba, 0xfa, + 0x5a, 0x57, 0x2f, 0xc8, 0x73, 0x42, 0xe2, 0xc5, 0x1c, 0xeb, 0x80, 0x30, 0xe0, 0x6b, + 0x72, 0x40, 0x95, 0xf9, 0x8d, 0x7b, + ], + ock: [ + 0x5b, 0x5b, 0x20, 0xfc, 0x46, 0xba, 0x14, 0xbd, 0x18, 0x43, 0xb6, 0xc7, 0x7e, 0xc3, + 0xf4, 0x55, 0xb7, 0x65, 0xb4, 0xd1, 0x2d, 0xb6, 0x52, 0xeb, 0x34, 0x20, 0x0c, 0x41, + 0x48, 0x88, 0x1f, 0xfc, + ], + op: [ + 0x3f, 0xeb, 0x34, 0x5a, 0xec, 0xd3, 0x42, 0x9a, 0x16, 0xe1, 0x0f, 0x3d, 0x13, 0x20, + 0xbc, 0x99, 0x71, 0xb5, 0x9e, 0x63, 0x9d, 0x62, 0xb6, 0x96, 0x1a, 0xea, 0x78, 0x15, + 0x67, 0xa8, 0x60, 0x9e, 0x24, 0x75, 0x30, 0x5c, 0x35, 0xcf, 0x37, 0xeb, 0xd2, 0x77, + 0x82, 0x35, 0x16, 0x58, 0x5a, 0xfa, 0x06, 0x05, 0x78, 0x52, 0x17, 0x1e, 0x0c, 0xe4, + 0xb0, 0x52, 0xd5, 0xb4, 0x20, 0x41, 0xd8, 0x1c, + ], + c_out: [ + 0xe0, 0x1b, 0x5c, 0x1e, 0x01, 0x90, 0x0f, 0xf7, 0x9b, 0xf7, 0x27, 0xf5, 0x37, 0xc4, + 0xac, 0x36, 0xf8, 0x06, 0x7a, 0x0c, 0xc5, 0xc8, 0xe9, 0xc8, 0x20, 0x44, 0x28, 0x43, + 0x69, 0x35, 0x30, 0x91, 0x8a, 0xea, 0x67, 0x2c, 0x4c, 0xd8, 0xfa, 0x3f, 0x6f, 0x2c, + 0xb6, 0x8b, 0x87, 0x17, 0x22, 0xe7, 0x78, 0xf6, 0xe2, 0x5e, 0x78, 0xae, 0x00, 0xa8, + 0x43, 0x28, 0xc4, 0xc2, 0xbf, 0x1c, 0x79, 0xb2, 0xc9, 0xd8, 0x69, 0x72, 0x60, 0xcd, + 0x44, 0x7e, 0x2e, 0xff, 0x31, 0x5d, 0x74, 0xb5, 0xb1, 0xfd, + ], + }, + TestVector { + incoming_viewing_key: [ + 0xc3, 0x7c, 0x7d, 0xbb, 0xe5, 0x51, 0xd9, 0xd3, 0xb1, 0xa4, 0x96, 0x88, 0x7d, 0xb2, + 0xe8, 0x42, 0xdc, 0x94, 0x52, 0x01, 0xf4, 0x08, 0x10, 0xdf, 0x4d, 0x76, 0x39, 0x32, + 0xed, 0x5c, 0x76, 0x39, 0x8b, 0x35, 0x73, 0xfe, 0x23, 0xf1, 0xe8, 0xb7, 0xe7, 0x9f, + 0x1c, 0x16, 0x95, 0xc0, 0x97, 0xc1, 0x24, 0xff, 0x1f, 0x7d, 0x6e, 0x61, 0xf2, 0xc5, + 0x8f, 0x14, 0x39, 0xa7, 0x56, 0x96, 0x9d, 0x19, + ], + ovk: [ + 0xa6, 0x68, 0xa0, 0xae, 0x2b, 0xb9, 0x34, 0xc8, 0x2c, 0x41, 0x42, 0xda, 0x69, 0xd1, + 0x2c, 0xa7, 0xde, 0x9a, 0x7d, 0xf7, 0x06, 0x40, 0x0e, 0xc7, 0x98, 0x78, 0xd8, 0x68, + 0xe1, 0x7e, 0x8f, 0x71, + ], + default_d: [ + 0x56, 0x4f, 0xc3, 0x81, 0xfc, 0x4d, 0xc8, 0x11, 0x8d, 0xe4, 0x7c, + ], + default_pk_d: [ + 0xae, 0xee, 0xa5, 0x0c, 0x6b, 0xb0, 0x2e, 0x5e, 0x22, 0x4d, 0xc2, 0x95, 0x9c, 0x22, + 0x9d, 0x0e, 0x3b, 0xb8, 0x79, 0xc4, 0xab, 0x00, 0xaa, 0x0a, 0xb2, 0x5a, 0x40, 0x10, + 0x6b, 0x80, 0xbb, 0xb7, + ], + v: 11137853725062838288, + rseed: [ + 0x25, 0x37, 0xb8, 0x71, 0xb4, 0x29, 0x4a, 0x65, 0xd3, 0xe0, 0x55, 0xff, 0x71, 0x8d, + 0xd9, 0xdc, 0x8c, 0x75, 0xe7, 0xe5, 0xb2, 0xef, 0xe4, 0x42, 0x63, 0x73, 0x71, 0xb7, + 0xc4, 0x8f, 0x6e, 0xe9, + ], + memo: [ + 0xff, 0x9e, 0x3e, 0xa3, 0x8a, 0x4b, 0x0f, 0x2f, 0x67, 0xfc, 0x2b, 0x90, 0x8c, 0xda, + 0x65, 0x7e, 0xae, 0x75, 0x4e, 0x03, 0x7e, 0x26, 0x2e, 0x9a, 0x9f, 0x9b, 0xd7, 0xec, + 0x42, 0x67, 0xed, 0x8e, 0x96, 0x93, 0x0e, 0x10, 0x84, 0x78, 0x3c, 0x37, 0xd6, 0xf9, + 0xdd, 0x15, 0xfd, 0x29, 0xf4, 0xcc, 0x47, 0x7e, 0x66, 0xf1, 0x30, 0xd6, 0x30, 0x43, + 0x0d, 0xcc, 0x01, 0x04, 0x89, 0x9b, 0x4f, 0x9f, 0x46, 0xeb, 0x09, 0x0e, 0xf7, 0xfc, + 0x90, 0xb4, 0x79, 0xab, 0xf6, 0x1f, 0x93, 0x95, 0x5e, 0xe0, 0x0e, 0x6a, 0x18, 0x48, + 0xf1, 0xab, 0x14, 0xad, 0x33, 0x4f, 0x2b, 0x68, 0x03, 0x58, 0x08, 0xcd, 0xf1, 0xbb, + 0x9e, 0x9d, 0x9a, 0x81, 0x6b, 0xaf, 0x72, 0x8a, 0x95, 0x5b, 0x96, 0x0b, 0x77, 0x01, + 0xfa, 0x62, 0x66, 0x87, 0xdc, 0x3c, 0x9c, 0xba, 0x64, 0x63, 0x37, 0xb5, 0x3e, 0x29, + 0x81, 0x6e, 0x94, 0x82, 0xdd, 0xf5, 0x57, 0x8a, 0x87, 0x68, 0xaa, 0xe4, 0x77, 0xfc, + 0xe4, 0x10, 0xac, 0x2d, 0x5d, 0xe6, 0x09, 0x58, 0x61, 0xc1, 0x11, 0xd7, 0xfe, 0xb3, + 0xe6, 0xbb, 0x4f, 0xbb, 0x5a, 0x54, 0x95, 0x54, 0x95, 0x97, 0x27, 0x98, 0x35, 0x0a, + 0x25, 0x3f, 0x05, 0xf6, 0x6c, 0x2e, 0xcf, 0xcb, 0xc0, 0xed, 0x43, 0xf5, 0xec, 0x2e, + 0x6d, 0x8d, 0xba, 0x15, 0xa5, 0x12, 0x54, 0xd9, 0x7b, 0x18, 0x21, 0x10, 0x7c, 0x07, + 0xdd, 0x9a, 0x16, 0xef, 0x84, 0x06, 0xf9, 0x43, 0xe2, 0x82, 0xb9, 0x5d, 0x4b, 0x36, + 0x25, 0x30, 0xc9, 0x13, 0xd6, 0xba, 0x42, 0x1d, 0xf6, 0x02, 0x7d, 0xe5, 0xaf, 0x1e, + 0x47, 0x45, 0xd5, 0x86, 0x81, 0x06, 0x95, 0x4b, 0xe6, 0xc1, 0x96, 0x27, 0x80, 0xa2, + 0x94, 0x10, 0x72, 0xe9, 0x51, 0x31, 0xb1, 0x67, 0x9d, 0xf0, 0x63, 0x76, 0x25, 0x04, + 0x2c, 0x37, 0xd4, 0x8f, 0xfb, 0x15, 0x2e, 0x5e, 0xbc, 0x18, 0x5c, 0x8a, 0x2b, 0x7d, + 0x43, 0x85, 0xf1, 0xc9, 0x5a, 0xf9, 0x37, 0xdf, 0x78, 0xdf, 0xd8, 0x75, 0x7f, 0xab, + 0x43, 0x49, 0x68, 0xb0, 0xb5, 0x7c, 0x66, 0x57, 0x44, 0x68, 0xf1, 0x60, 0xb4, 0x47, + 0xac, 0x82, 0x21, 0xe5, 0x06, 0x06, 0x76, 0xa8, 0x42, 0xa1, 0xc6, 0xb7, 0x17, 0x2d, + 0xd3, 0x34, 0x0f, 0x76, 0x40, 0x70, 0xab, 0x1f, 0xe0, 0x91, 0xc5, 0xc7, 0x4c, 0x95, + 0xa5, 0xdc, 0x04, 0x33, 0x90, 0x72, 0x3a, 0x4c, 0x12, 0x7d, 0xa1, 0x4c, 0xdd, 0xe1, + 0xdc, 0x26, 0x75, 0xa6, 0x23, 0x40, 0xb3, 0xe6, 0xaf, 0xd0, 0x52, 0x2a, 0x31, 0xde, + 0x26, 0xe7, 0xd1, 0xec, 0x3a, 0x9c, 0x8a, 0x09, 0x1f, 0xfd, 0xc7, 0x5b, 0x7e, 0xcf, + 0xdc, 0x7c, 0x12, 0x99, 0x5a, 0x5e, 0x37, 0xce, 0x34, 0x88, 0xbd, 0x29, 0xf8, 0x62, + 0x9d, 0x68, 0xf6, 0x96, 0x49, 0x24, 0x48, 0xdd, 0x52, 0x66, 0x97, 0x47, 0x6d, 0xc0, + 0x61, 0x34, 0x6e, 0xbe, 0x3f, 0x67, 0x72, 0x17, 0xff, 0x9c, 0x60, 0xef, 0xce, 0x94, + 0x3a, 0xf2, 0x8d, 0xfd, 0x3f, 0x9e, 0x59, 0x69, 0x25, 0x98, 0xa6, 0x04, 0x7c, 0x23, + 0xc4, 0xc0, 0x14, 0x00, 0xf1, 0xab, 0x57, 0x30, 0xea, 0xc0, 0xae, 0x8d, 0x58, 0x43, + 0xd5, 0x05, 0x1c, 0x37, 0x62, 0x40, 0x17, 0x2a, 0xf2, 0x18, 0xd7, 0xa1, 0xec, 0xfe, + 0x65, 0xb4, 0xf7, 0x51, 0x00, 0x63, 0x89, 0x83, 0xc1, 0x4d, 0xe4, 0x97, 0x47, 0x55, + 0xda, 0xde, 0x80, 0x18, 0xc9, 0xb8, 0xf4, 0x54, 0x3f, 0xb0, 0x95, 0x96, 0x15, 0x13, + 0xe6, 0x7c, 0x61, 0xdb, 0xc5, 0x9c, 0x60, 0x7f, 0x9b, 0x51, 0xf8, 0xd0, 0x9b, 0xdc, + 0xad, 0x28, 0xbc, 0xfb, 0x9e, 0x5d, 0x27, 0x44, 0xea, 0x88, 0x48, 0xb2, 0x62, 0x3a, + 0xc0, 0x7f, 0x8e, 0xf6, 0x1a, 0x81, 0xa3, 0x59, + ], + cv_net: [ + 0xb2, 0x7f, 0x48, 0x59, 0x15, 0x0d, 0x48, 0x45, 0xab, 0x57, 0x78, 0x82, 0x61, 0x50, + 0x0a, 0x12, 0x01, 0x2d, 0x63, 0xc0, 0x09, 0xc6, 0x77, 0x44, 0xba, 0xe0, 0xd5, 0x83, + 0x88, 0xff, 0xee, 0x2f, + ], + nf_old: [ + 0xe9, 0x16, 0x93, 0xc3, 0x7d, 0x04, 0x37, 0x5e, 0x67, 0xc5, 0x71, 0x5a, 0x39, 0xc9, + 0x79, 0x4a, 0x4e, 0xcd, 0x08, 0x38, 0xe2, 0x35, 0x1f, 0xd7, 0xcd, 0x93, 0xa1, 0x55, + 0x7f, 0x01, 0x02, 0x3e, + ], + cmx: [ + 0xcc, 0x29, 0x41, 0xe0, 0xf6, 0x38, 0x25, 0x7f, 0xb6, 0x51, 0x6a, 0x27, 0xc3, 0x0e, + 0xaa, 0xe0, 0xb4, 0x6d, 0x2f, 0xf0, 0x6a, 0x73, 0x50, 0x70, 0x41, 0x74, 0x6c, 0xdc, + 0x23, 0x07, 0x61, 0x25, + ], + esk: [ + 0xec, 0x99, 0xeb, 0x6f, 0x67, 0x1d, 0x0a, 0x9e, 0x84, 0x5a, 0xbf, 0xb7, 0x8a, 0xec, + 0xe9, 0x32, 0xeb, 0x13, 0xf5, 0xae, 0xd6, 0x4f, 0x20, 0xa7, 0x77, 0xc9, 0x46, 0xe9, + 0xcd, 0x7a, 0x24, 0x23, + ], + ephemeral_key: [ + 0xad, 0xa7, 0x60, 0x27, 0xdc, 0xae, 0xb5, 0xf1, 0x58, 0xac, 0x6c, 0x5c, 0x6d, 0x7f, + 0x05, 0x31, 0x8f, 0xec, 0x26, 0xd5, 0xc7, 0x94, 0xf2, 0xe9, 0x00, 0xcb, 0x96, 0x29, + 0x92, 0x49, 0xe0, 0xb5, + ], + shared_secret: [ + 0xc2, 0x5c, 0xf1, 0xd6, 0x53, 0x2e, 0x06, 0xcb, 0x8b, 0x15, 0x22, 0x14, 0x76, 0x6e, + 0xee, 0xd7, 0x5a, 0x17, 0x8c, 0x82, 0x2a, 0x11, 0x51, 0xf6, 0x9e, 0x92, 0xe9, 0xcf, + 0xfa, 0x47, 0xcb, 0x19, + ], + k_enc: [ + 0xd4, 0xef, 0x89, 0xc4, 0x64, 0xbe, 0x8f, 0x42, 0xf6, 0xb7, 0xf2, 0x6d, 0x89, 0x37, + 0x8b, 0x73, 0xa3, 0x55, 0xa4, 0xfe, 0x24, 0x6c, 0x2e, 0xc8, 0xe8, 0x14, 0x6b, 0xef, + 0x7d, 0xdd, 0x14, 0x19, + ], + p_enc: [ + 0x02, 0x56, 0x4f, 0xc3, 0x81, 0xfc, 0x4d, 0xc8, 0x11, 0x8d, 0xe4, 0x7c, 0x10, 0xb8, + 0xa1, 0xba, 0xf3, 0x9a, 0x91, 0x9a, 0x25, 0x37, 0xb8, 0x71, 0xb4, 0x29, 0x4a, 0x65, + 0xd3, 0xe0, 0x55, 0xff, 0x71, 0x8d, 0xd9, 0xdc, 0x8c, 0x75, 0xe7, 0xe5, 0xb2, 0xef, + 0xe4, 0x42, 0x63, 0x73, 0x71, 0xb7, 0xc4, 0x8f, 0x6e, 0xe9, 0xff, 0x9e, 0x3e, 0xa3, + 0x8a, 0x4b, 0x0f, 0x2f, 0x67, 0xfc, 0x2b, 0x90, 0x8c, 0xda, 0x65, 0x7e, 0xae, 0x75, + 0x4e, 0x03, 0x7e, 0x26, 0x2e, 0x9a, 0x9f, 0x9b, 0xd7, 0xec, 0x42, 0x67, 0xed, 0x8e, + 0x96, 0x93, 0x0e, 0x10, 0x84, 0x78, 0x3c, 0x37, 0xd6, 0xf9, 0xdd, 0x15, 0xfd, 0x29, + 0xf4, 0xcc, 0x47, 0x7e, 0x66, 0xf1, 0x30, 0xd6, 0x30, 0x43, 0x0d, 0xcc, 0x01, 0x04, + 0x89, 0x9b, 0x4f, 0x9f, 0x46, 0xeb, 0x09, 0x0e, 0xf7, 0xfc, 0x90, 0xb4, 0x79, 0xab, + 0xf6, 0x1f, 0x93, 0x95, 0x5e, 0xe0, 0x0e, 0x6a, 0x18, 0x48, 0xf1, 0xab, 0x14, 0xad, + 0x33, 0x4f, 0x2b, 0x68, 0x03, 0x58, 0x08, 0xcd, 0xf1, 0xbb, 0x9e, 0x9d, 0x9a, 0x81, + 0x6b, 0xaf, 0x72, 0x8a, 0x95, 0x5b, 0x96, 0x0b, 0x77, 0x01, 0xfa, 0x62, 0x66, 0x87, + 0xdc, 0x3c, 0x9c, 0xba, 0x64, 0x63, 0x37, 0xb5, 0x3e, 0x29, 0x81, 0x6e, 0x94, 0x82, + 0xdd, 0xf5, 0x57, 0x8a, 0x87, 0x68, 0xaa, 0xe4, 0x77, 0xfc, 0xe4, 0x10, 0xac, 0x2d, + 0x5d, 0xe6, 0x09, 0x58, 0x61, 0xc1, 0x11, 0xd7, 0xfe, 0xb3, 0xe6, 0xbb, 0x4f, 0xbb, + 0x5a, 0x54, 0x95, 0x54, 0x95, 0x97, 0x27, 0x98, 0x35, 0x0a, 0x25, 0x3f, 0x05, 0xf6, + 0x6c, 0x2e, 0xcf, 0xcb, 0xc0, 0xed, 0x43, 0xf5, 0xec, 0x2e, 0x6d, 0x8d, 0xba, 0x15, + 0xa5, 0x12, 0x54, 0xd9, 0x7b, 0x18, 0x21, 0x10, 0x7c, 0x07, 0xdd, 0x9a, 0x16, 0xef, + 0x84, 0x06, 0xf9, 0x43, 0xe2, 0x82, 0xb9, 0x5d, 0x4b, 0x36, 0x25, 0x30, 0xc9, 0x13, + 0xd6, 0xba, 0x42, 0x1d, 0xf6, 0x02, 0x7d, 0xe5, 0xaf, 0x1e, 0x47, 0x45, 0xd5, 0x86, + 0x81, 0x06, 0x95, 0x4b, 0xe6, 0xc1, 0x96, 0x27, 0x80, 0xa2, 0x94, 0x10, 0x72, 0xe9, + 0x51, 0x31, 0xb1, 0x67, 0x9d, 0xf0, 0x63, 0x76, 0x25, 0x04, 0x2c, 0x37, 0xd4, 0x8f, + 0xfb, 0x15, 0x2e, 0x5e, 0xbc, 0x18, 0x5c, 0x8a, 0x2b, 0x7d, 0x43, 0x85, 0xf1, 0xc9, + 0x5a, 0xf9, 0x37, 0xdf, 0x78, 0xdf, 0xd8, 0x75, 0x7f, 0xab, 0x43, 0x49, 0x68, 0xb0, + 0xb5, 0x7c, 0x66, 0x57, 0x44, 0x68, 0xf1, 0x60, 0xb4, 0x47, 0xac, 0x82, 0x21, 0xe5, + 0x06, 0x06, 0x76, 0xa8, 0x42, 0xa1, 0xc6, 0xb7, 0x17, 0x2d, 0xd3, 0x34, 0x0f, 0x76, + 0x40, 0x70, 0xab, 0x1f, 0xe0, 0x91, 0xc5, 0xc7, 0x4c, 0x95, 0xa5, 0xdc, 0x04, 0x33, + 0x90, 0x72, 0x3a, 0x4c, 0x12, 0x7d, 0xa1, 0x4c, 0xdd, 0xe1, 0xdc, 0x26, 0x75, 0xa6, + 0x23, 0x40, 0xb3, 0xe6, 0xaf, 0xd0, 0x52, 0x2a, 0x31, 0xde, 0x26, 0xe7, 0xd1, 0xec, + 0x3a, 0x9c, 0x8a, 0x09, 0x1f, 0xfd, 0xc7, 0x5b, 0x7e, 0xcf, 0xdc, 0x7c, 0x12, 0x99, + 0x5a, 0x5e, 0x37, 0xce, 0x34, 0x88, 0xbd, 0x29, 0xf8, 0x62, 0x9d, 0x68, 0xf6, 0x96, + 0x49, 0x24, 0x48, 0xdd, 0x52, 0x66, 0x97, 0x47, 0x6d, 0xc0, 0x61, 0x34, 0x6e, 0xbe, + 0x3f, 0x67, 0x72, 0x17, 0xff, 0x9c, 0x60, 0xef, 0xce, 0x94, 0x3a, 0xf2, 0x8d, 0xfd, + 0x3f, 0x9e, 0x59, 0x69, 0x25, 0x98, 0xa6, 0x04, 0x7c, 0x23, 0xc4, 0xc0, 0x14, 0x00, + 0xf1, 0xab, 0x57, 0x30, 0xea, 0xc0, 0xae, 0x8d, 0x58, 0x43, 0xd5, 0x05, 0x1c, 0x37, + 0x62, 0x40, 0x17, 0x2a, 0xf2, 0x18, 0xd7, 0xa1, 0xec, 0xfe, 0x65, 0xb4, 0xf7, 0x51, + 0x00, 0x63, 0x89, 0x83, 0xc1, 0x4d, 0xe4, 0x97, 0x47, 0x55, 0xda, 0xde, 0x80, 0x18, + 0xc9, 0xb8, 0xf4, 0x54, 0x3f, 0xb0, 0x95, 0x96, 0x15, 0x13, 0xe6, 0x7c, 0x61, 0xdb, + 0xc5, 0x9c, 0x60, 0x7f, 0x9b, 0x51, 0xf8, 0xd0, 0x9b, 0xdc, 0xad, 0x28, 0xbc, 0xfb, + 0x9e, 0x5d, 0x27, 0x44, 0xea, 0x88, 0x48, 0xb2, 0x62, 0x3a, 0xc0, 0x7f, 0x8e, 0xf6, + 0x1a, 0x81, 0xa3, 0x59, + ], + c_enc: [ + 0xea, 0x86, 0x7e, 0x07, 0xac, 0xb7, 0xfa, 0x03, 0xe7, 0x36, 0xce, 0xdd, 0xed, 0x82, + 0x3d, 0x19, 0x91, 0x30, 0xfb, 0x3f, 0xef, 0x62, 0xcc, 0x3e, 0xa9, 0xa0, 0xc9, 0x35, + 0xdf, 0x05, 0xc5, 0xad, 0x5e, 0x67, 0xf7, 0x4f, 0xcb, 0xa6, 0x67, 0xe0, 0x81, 0x1c, + 0xdc, 0x0c, 0xa9, 0xf3, 0xd7, 0x81, 0x76, 0x43, 0x75, 0x56, 0x47, 0xbe, 0x59, 0xdf, + 0x09, 0x6e, 0x46, 0x5e, 0xc1, 0x11, 0x24, 0x36, 0x3c, 0x98, 0x1c, 0x55, 0xd5, 0x5f, + 0x8d, 0x8a, 0xc8, 0xb6, 0x54, 0x0a, 0x98, 0xcf, 0xcc, 0x29, 0x4a, 0xa7, 0xcc, 0x62, + 0x95, 0x50, 0x85, 0x3a, 0x25, 0xbf, 0x6b, 0x32, 0x35, 0x16, 0xe1, 0x58, 0x2b, 0x4e, + 0x8b, 0x82, 0x95, 0xe2, 0x7f, 0x6b, 0x99, 0x94, 0x80, 0x2e, 0xfe, 0xf5, 0x43, 0x1f, + 0x03, 0x7d, 0x22, 0x09, 0xa0, 0x88, 0x07, 0x34, 0x6f, 0xb3, 0x9c, 0xad, 0xd8, 0x93, + 0xd6, 0x5f, 0x64, 0xc7, 0xfe, 0x92, 0xec, 0xbc, 0xdf, 0xe5, 0x55, 0x54, 0xca, 0xff, + 0xb0, 0xcf, 0x41, 0xeb, 0x5c, 0x55, 0x72, 0xba, 0x44, 0x39, 0x90, 0x00, 0xe9, 0xfa, + 0x9a, 0xaf, 0x6e, 0xb7, 0x6c, 0x2a, 0x8a, 0x5d, 0x7b, 0x6b, 0x52, 0xb9, 0xa9, 0xef, + 0x6e, 0xc3, 0xed, 0xa6, 0x65, 0xfe, 0x8a, 0xa8, 0x07, 0x48, 0xb8, 0x1f, 0x7d, 0x55, + 0x96, 0xf1, 0x94, 0x2f, 0xf7, 0x1d, 0x29, 0xc6, 0x78, 0xa3, 0xb6, 0xc6, 0x6b, 0xa7, + 0x0f, 0x45, 0xb1, 0xfc, 0xf2, 0x22, 0x38, 0x84, 0x50, 0x68, 0xf3, 0x60, 0xb0, 0x99, + 0xae, 0xe9, 0xf2, 0xf0, 0xef, 0x22, 0x33, 0x3f, 0xd6, 0x4f, 0xf1, 0x1e, 0x48, 0x15, + 0x43, 0xa5, 0x2b, 0xb3, 0x3f, 0x52, 0x3d, 0xe2, 0xec, 0x92, 0x3a, 0xe9, 0x86, 0x58, + 0x57, 0x71, 0x7b, 0x65, 0xd4, 0x4c, 0x3d, 0x9d, 0xb7, 0xb3, 0xec, 0xb2, 0xff, 0x02, + 0x25, 0x29, 0x7d, 0xeb, 0x83, 0xdd, 0x1b, 0x9a, 0x39, 0x4d, 0x69, 0x7c, 0x09, 0xd7, + 0xfe, 0xc6, 0x1e, 0xac, 0xee, 0x39, 0xa2, 0xf1, 0xce, 0xd9, 0xe6, 0xfd, 0xa5, 0xc0, + 0xf3, 0x27, 0x71, 0xc6, 0xce, 0x3f, 0x17, 0xbe, 0x0e, 0xef, 0x81, 0x10, 0x99, 0xc1, + 0x09, 0xe4, 0xfb, 0x6a, 0xec, 0x30, 0xdf, 0x04, 0x5b, 0x43, 0xda, 0x89, 0x30, 0x8b, + 0xc8, 0x37, 0x68, 0x8b, 0xb0, 0xf4, 0xa2, 0xc6, 0x04, 0xa1, 0x54, 0xa8, 0x47, 0xc5, + 0xd7, 0x87, 0x27, 0xf0, 0xe1, 0xab, 0x11, 0xe3, 0x40, 0xcf, 0xd4, 0xc7, 0xe8, 0xc6, + 0xba, 0xff, 0xfe, 0xfc, 0x74, 0xef, 0x55, 0x3d, 0x4b, 0x29, 0x26, 0x9f, 0x38, 0xb4, + 0xb7, 0xfe, 0x6e, 0x07, 0x3a, 0x70, 0xae, 0xf2, 0x0d, 0x6c, 0x23, 0x8b, 0x9f, 0xfd, + 0x24, 0x1f, 0xf6, 0x99, 0x99, 0x92, 0x30, 0xf0, 0xb3, 0x9c, 0x96, 0x3e, 0xfa, 0x00, + 0xef, 0x7f, 0x09, 0x2d, 0x76, 0x0c, 0x40, 0x9a, 0x2b, 0x6c, 0x26, 0xb4, 0x97, 0x82, + 0x9b, 0x81, 0xcb, 0xa4, 0xc8, 0x3b, 0x11, 0x44, 0xc6, 0x5a, 0x2d, 0x31, 0x78, 0xbb, + 0x28, 0xc1, 0xd8, 0xe3, 0x30, 0xd3, 0xf4, 0xaf, 0x90, 0x10, 0xad, 0x49, 0xa5, 0xdb, + 0x70, 0xd6, 0x6a, 0xf5, 0x70, 0x19, 0x21, 0x49, 0x80, 0x5f, 0xe1, 0xca, 0x61, 0xc6, + 0xd4, 0xec, 0xaf, 0xa7, 0x97, 0x51, 0x7f, 0x33, 0x06, 0xaf, 0x2a, 0x32, 0x27, 0x3b, + 0xf3, 0xd6, 0x98, 0xaa, 0x55, 0xa5, 0x72, 0xb2, 0xdf, 0x80, 0x36, 0xd9, 0x7c, 0xf5, + 0x8c, 0x12, 0x9f, 0x82, 0x85, 0xd0, 0xd7, 0xea, 0x04, 0xc1, 0x88, 0xa8, 0x39, 0x6e, + 0x73, 0x8b, 0xd4, 0x48, 0x46, 0x5e, 0x7b, 0x9a, 0x64, 0xb7, 0x96, 0x7b, 0xcb, 0x25, + 0xf8, 0xaa, 0x85, 0x9e, 0xa5, 0xca, 0x06, 0xc3, 0xdf, 0x39, 0x0f, 0xac, 0x8a, 0xc6, + 0x06, 0x05, 0x03, 0x1a, 0x02, 0x09, 0xbb, 0x80, 0x24, 0x0d, 0x05, 0x45, 0xf4, 0x11, + 0x77, 0xea, 0xb4, 0x40, 0x2e, 0x8a, 0x42, 0x3a, 0x40, 0xcc, 0xff, 0x58, 0x6b, 0x2e, + 0xdd, 0x6a, 0xcf, 0xb8, 0xf1, 0xd8, 0x0d, 0x8c, 0x60, 0x5f, 0x49, 0x05, 0x2e, 0x7a, + 0x30, 0x82, 0x6e, 0x1f, 0x03, 0x09, 0x9c, 0x71, 0x43, 0xad, 0x0b, 0x51, 0xfc, 0x63, + 0x6f, 0x1d, 0x87, 0x05, 0x83, 0xd6, 0xed, 0xce, 0xcd, 0xe9, 0x42, 0x38, 0x9e, 0x6c, + 0x01, 0x00, 0x66, 0x78, 0xda, 0xad, + ], + ock: [ + 0xf9, 0x59, 0x87, 0xcc, 0x0c, 0x73, 0x57, 0xc7, 0x20, 0x26, 0x27, 0xa5, 0xa5, 0x50, + 0x09, 0xef, 0xd7, 0x17, 0x55, 0x3e, 0x9d, 0x34, 0xc1, 0x5f, 0xad, 0xf5, 0xc9, 0x46, + 0xa9, 0xa0, 0x72, 0x17, + ], + op: [ + 0xae, 0xee, 0xa5, 0x0c, 0x6b, 0xb0, 0x2e, 0x5e, 0x22, 0x4d, 0xc2, 0x95, 0x9c, 0x22, + 0x9d, 0x0e, 0x3b, 0xb8, 0x79, 0xc4, 0xab, 0x00, 0xaa, 0x0a, 0xb2, 0x5a, 0x40, 0x10, + 0x6b, 0x80, 0xbb, 0xb7, 0xec, 0x99, 0xeb, 0x6f, 0x67, 0x1d, 0x0a, 0x9e, 0x84, 0x5a, + 0xbf, 0xb7, 0x8a, 0xec, 0xe9, 0x32, 0xeb, 0x13, 0xf5, 0xae, 0xd6, 0x4f, 0x20, 0xa7, + 0x77, 0xc9, 0x46, 0xe9, 0xcd, 0x7a, 0x24, 0x23, + ], + c_out: [ + 0x28, 0x9d, 0x00, 0xd4, 0x62, 0x78, 0x0b, 0xdb, 0xb6, 0xcd, 0x6c, 0xec, 0x93, 0x6b, + 0xe6, 0x5e, 0x63, 0x0d, 0x4a, 0x3c, 0x2a, 0xf7, 0x6e, 0x10, 0x4b, 0x17, 0x4e, 0x3d, + 0x5b, 0x71, 0x66, 0x39, 0xb0, 0x68, 0xb3, 0x85, 0x00, 0xd8, 0x04, 0x00, 0xee, 0x64, + 0x2f, 0x8e, 0x08, 0xc8, 0xdb, 0x29, 0xff, 0xd5, 0xa9, 0xda, 0xde, 0x84, 0xa5, 0x49, + 0x5d, 0x57, 0x7b, 0x2f, 0x56, 0xd3, 0x2b, 0x07, 0x96, 0xca, 0x23, 0xf0, 0x0f, 0x0f, + 0x8e, 0xf9, 0x93, 0x07, 0x4f, 0x88, 0x0d, 0x6a, 0xeb, 0xcb, + ], + }, + TestVector { + incoming_viewing_key: [ + 0x74, 0xa8, 0x41, 0x1a, 0x20, 0xbc, 0x3c, 0x53, 0xf7, 0xe7, 0xab, 0xb9, 0x31, 0x6c, + 0x44, 0x2b, 0x4b, 0x09, 0xcf, 0x88, 0xbb, 0xed, 0x4a, 0x90, 0xb9, 0x2f, 0x5a, 0x1c, + 0xed, 0x93, 0x16, 0x2b, 0xc3, 0x37, 0x34, 0x67, 0x20, 0xec, 0x0c, 0xd0, 0xea, 0x73, + 0x5d, 0x9e, 0x32, 0x3f, 0x20, 0xdb, 0x77, 0x8a, 0xd1, 0x8a, 0x84, 0xc7, 0x9e, 0xe6, + 0x28, 0x77, 0x99, 0xef, 0x02, 0x76, 0x41, 0x07, + ], + ovk: [ + 0x0c, 0x81, 0x1e, 0x4c, 0x31, 0xfb, 0xb4, 0x9f, 0x3a, 0x90, 0xbb, 0xd0, 0x5d, 0xce, + 0x62, 0xf3, 0x44, 0xe7, 0x07, 0x75, 0x93, 0x15, 0x9a, 0xe3, 0x50, 0x50, 0xb0, 0x4c, + 0x9e, 0x6b, 0x86, 0xbc, + ], + default_d: [ + 0xc6, 0xe8, 0xf0, 0xd5, 0x0a, 0xe8, 0x05, 0x87, 0x91, 0xdc, 0x0e, + ], + default_pk_d: [ + 0x8e, 0x66, 0xb7, 0x92, 0xec, 0xb1, 0x56, 0xef, 0x68, 0x5e, 0xe8, 0xea, 0x35, 0xd3, + 0x82, 0x75, 0x8b, 0xa4, 0x15, 0x97, 0xa3, 0x3a, 0x93, 0xba, 0xf3, 0x81, 0xd6, 0x3c, + 0x17, 0x5b, 0xa9, 0x8b, + ], + v: 7387862906040043846, + rseed: [ + 0x25, 0x01, 0xe5, 0x1b, 0x01, 0x2a, 0xea, 0x94, 0x46, 0xa2, 0x10, 0x4e, 0x93, 0xf8, + 0x15, 0xa0, 0xb3, 0xa2, 0x9b, 0x45, 0x83, 0x14, 0xf3, 0xd8, 0xbe, 0x2b, 0x98, 0x23, + 0xd3, 0x42, 0xf4, 0x62, + ], + memo: [ + 0xff, 0x13, 0xe9, 0x42, 0xa7, 0xe1, 0x9a, 0x46, 0xe9, 0x70, 0xb5, 0xc5, 0x06, 0x70, + 0x84, 0x30, 0x31, 0x7b, 0x1b, 0xb3, 0xb3, 0x5d, 0xf6, 0x8a, 0xe3, 0x3a, 0x49, 0x26, + 0xa0, 0x3e, 0x6b, 0xfe, 0xb5, 0x51, 0x04, 0x16, 0xfc, 0xbb, 0x05, 0x24, 0xc9, 0xca, + 0x50, 0x74, 0x15, 0x6c, 0xc5, 0xa5, 0xd6, 0xfe, 0x1c, 0x99, 0x5e, 0xdc, 0x60, 0xa2, + 0xf5, 0x50, 0x41, 0x1a, 0xa4, 0x1e, 0x3d, 0xa3, 0xbd, 0xcf, 0x64, 0xbc, 0xf0, 0x4a, + 0x05, 0x10, 0x57, 0x1b, 0x93, 0x6d, 0x47, 0xe5, 0x5c, 0xec, 0x03, 0x30, 0xee, 0x8d, + 0xfe, 0x73, 0x56, 0x34, 0x04, 0xf0, 0x47, 0xd7, 0xf3, 0xa8, 0xa3, 0xd7, 0x74, 0x3b, + 0xc5, 0x54, 0x95, 0x52, 0x10, 0xf1, 0xeb, 0x0d, 0x08, 0x59, 0x9e, 0xa7, 0x7d, 0x5f, + 0x97, 0x4d, 0x87, 0x17, 0x6d, 0x37, 0xd9, 0x8b, 0x9c, 0x0a, 0xd4, 0x40, 0x40, 0x72, + 0x09, 0xed, 0x6a, 0x9f, 0x08, 0x46, 0x4d, 0x56, 0x55, 0x93, 0xe1, 0xa6, 0x3b, 0x93, + 0x85, 0x36, 0xb4, 0x92, 0x44, 0xe9, 0x7d, 0x88, 0x01, 0x73, 0xb6, 0x40, 0xf2, 0xdd, + 0xb7, 0x4d, 0x06, 0x8e, 0xcb, 0x46, 0xcf, 0x28, 0x9b, 0x7d, 0x89, 0x13, 0x07, 0xbb, + 0xa3, 0x70, 0x54, 0xcf, 0x91, 0xb3, 0x1f, 0xc8, 0x2f, 0x74, 0xd5, 0xfc, 0xc0, 0x00, + 0x94, 0x2e, 0xde, 0x91, 0x18, 0x25, 0xf5, 0x3f, 0xe6, 0x09, 0x68, 0x6f, 0x46, 0x32, + 0x23, 0xb1, 0xe9, 0xbc, 0x03, 0xbd, 0xe8, 0x95, 0xd1, 0x23, 0x8f, 0xad, 0x04, 0xa3, + 0xbf, 0xce, 0x68, 0xa0, 0x75, 0xe8, 0xa3, 0x7c, 0x0e, 0x87, 0xbf, 0x46, 0xdd, 0x01, + 0x55, 0x45, 0xf9, 0xb4, 0xfb, 0x0e, 0xec, 0x64, 0x5f, 0xfc, 0xbb, 0xe0, 0xca, 0x5f, + 0x8c, 0x56, 0x1b, 0x25, 0x7d, 0x52, 0xd6, 0x02, 0xd8, 0xc9, 0x4c, 0x50, 0x28, 0x73, + 0xa0, 0x1d, 0x92, 0x51, 0xd8, 0xc8, 0x60, 0xc0, 0x41, 0x52, 0x5b, 0x3b, 0xf4, 0xe3, + 0xa2, 0xeb, 0x92, 0x72, 0x81, 0x5c, 0x75, 0x86, 0x76, 0x84, 0x28, 0xb4, 0xc2, 0xb2, + 0x5e, 0x37, 0x45, 0xf0, 0x09, 0xc5, 0xdc, 0xe2, 0x0b, 0x69, 0xd5, 0xd7, 0xc4, 0x3c, + 0xeb, 0x73, 0x6b, 0x68, 0x31, 0xe8, 0xc1, 0x10, 0xf1, 0x6c, 0xfd, 0xb3, 0xa4, 0x67, + 0xe9, 0x41, 0x4c, 0x00, 0xec, 0xf1, 0x37, 0x31, 0x50, 0x08, 0x94, 0x55, 0x56, 0x78, + 0xc4, 0x97, 0xfa, 0xba, 0x9a, 0x95, 0xd0, 0x1c, 0xc4, 0x64, 0x39, 0x0f, 0xc4, 0xa7, + 0x6b, 0xfa, 0x8b, 0x0e, 0x1c, 0x68, 0xa5, 0x25, 0xd7, 0x06, 0xd6, 0x60, 0x4b, 0x23, + 0x30, 0xb6, 0xb3, 0x48, 0x52, 0x15, 0xf6, 0x06, 0xf1, 0x88, 0x3a, 0x75, 0x15, 0x88, + 0xc7, 0xef, 0xa5, 0x06, 0xc3, 0xe8, 0xd0, 0xc6, 0x01, 0x92, 0xe8, 0x47, 0x6b, 0xd1, + 0x17, 0x5d, 0x95, 0x62, 0x08, 0x7b, 0xdb, 0x81, 0x8e, 0x66, 0x21, 0x62, 0x86, 0xba, + 0xfe, 0x47, 0xff, 0x4d, 0xbc, 0xce, 0xd5, 0x14, 0x44, 0x48, 0x0a, 0x9a, 0x56, 0x73, + 0xec, 0xe7, 0xfa, 0xc7, 0x3a, 0x0e, 0xd4, 0x1a, 0xb0, 0x05, 0x17, 0x53, 0xa7, 0xca, + 0xa8, 0x9b, 0xe3, 0x13, 0x9a, 0xfd, 0x97, 0x93, 0xb3, 0xe0, 0x2f, 0x27, 0xf0, 0x40, + 0x04, 0x65, 0x95, 0xac, 0xd4, 0x7b, 0xf1, 0x3f, 0xd0, 0xda, 0x27, 0xf0, 0x9e, 0xda, + 0x48, 0x03, 0x6d, 0x3e, 0xe4, 0x37, 0xf2, 0xee, 0x8f, 0x86, 0x06, 0xea, 0x97, 0x34, + 0x3c, 0x33, 0x58, 0x46, 0x57, 0xf4, 0x6d, 0xba, 0x99, 0xdb, 0x5c, 0xfe, 0x6c, 0xa1, + 0x76, 0xfa, 0xb7, 0xb0, 0xf3, 0xbf, 0xa0, 0xab, 0x61, 0xe3, 0x40, 0xc3, 0x4e, 0xb9, + 0xf1, 0x7c, 0x7e, 0xc2, 0xbe, 0x03, 0xb1, 0x80, 0xf0, 0xbb, 0x6f, 0x43, 0x4c, 0x2a, + 0x65, 0x42, 0xe0, 0x0e, 0x84, 0x37, 0x3f, 0x4f, + ], + cv_net: [ + 0x47, 0x35, 0xa6, 0xfd, 0x21, 0x5c, 0x7b, 0x95, 0x03, 0x3d, 0xab, 0x62, 0xcc, 0xf9, + 0xcd, 0x51, 0x00, 0x89, 0x08, 0xa6, 0xcd, 0xd0, 0xaa, 0x02, 0x1b, 0x88, 0x8b, 0x98, + 0xe2, 0x3c, 0x39, 0x11, + ], + nf_old: [ + 0x35, 0x6f, 0xc7, 0x2e, 0x1b, 0xf1, 0xe3, 0xa2, 0xa5, 0x9a, 0xa9, 0xe4, 0x75, 0x15, + 0x5c, 0xf7, 0x43, 0xf8, 0xfd, 0xf0, 0xd1, 0x5b, 0x4c, 0xc4, 0x02, 0x60, 0xd0, 0xd0, + 0x9a, 0xda, 0x04, 0x08, + ], + cmx: [ + 0xca, 0xa2, 0x8a, 0x69, 0x04, 0x54, 0x66, 0x37, 0xa7, 0xd4, 0xe5, 0xfb, 0xc2, 0x65, + 0x4c, 0xbf, 0x24, 0x4d, 0x18, 0x77, 0x9d, 0x35, 0x62, 0x25, 0x6c, 0x14, 0xd5, 0xb1, + 0x00, 0x5d, 0xc6, 0x0f, + ], + esk: [ + 0x01, 0xa3, 0x66, 0x1e, 0xa9, 0xaa, 0xb8, 0xf4, 0x32, 0x53, 0x42, 0x0e, 0xff, 0xd7, + 0xa4, 0x83, 0xc2, 0x79, 0xd4, 0x18, 0x18, 0xbc, 0xb3, 0xee, 0x91, 0x90, 0x01, 0xf8, + 0x66, 0xa8, 0xe9, 0x2c, + ], + ephemeral_key: [ + 0x00, 0x62, 0x7e, 0x29, 0xc1, 0x83, 0x3e, 0x4e, 0x8f, 0xad, 0xe0, 0x82, 0x52, 0xf3, + 0x83, 0x67, 0x78, 0xb9, 0x39, 0x4c, 0x1f, 0xfe, 0xab, 0x70, 0xbf, 0x35, 0x93, 0xd5, + 0x9a, 0x81, 0xa0, 0xa5, + ], + shared_secret: [ + 0xa9, 0x93, 0x34, 0x1f, 0x99, 0xeb, 0xa8, 0x2d, 0xb6, 0xec, 0x5e, 0x71, 0x3e, 0xe2, + 0x9c, 0x01, 0xf4, 0xce, 0x2a, 0x8b, 0xb6, 0xb5, 0xeb, 0xb6, 0x0b, 0xa6, 0xeb, 0xa9, + 0x6b, 0xa4, 0x17, 0x9b, + ], + k_enc: [ + 0x35, 0x81, 0x19, 0x19, 0x3c, 0x9d, 0x2a, 0xb6, 0xd4, 0x95, 0xe0, 0x19, 0xf9, 0x7a, + 0x1c, 0x41, 0x30, 0xae, 0xe6, 0x3d, 0xae, 0xc6, 0xbb, 0xa2, 0xf2, 0x74, 0x40, 0x0f, + 0xd3, 0x4f, 0xad, 0x28, + ], + p_enc: [ + 0x02, 0xc6, 0xe8, 0xf0, 0xd5, 0x0a, 0xe8, 0x05, 0x87, 0x91, 0xdc, 0x0e, 0x46, 0x49, + 0xcd, 0xa3, 0x2b, 0xf6, 0x86, 0x66, 0x25, 0x01, 0xe5, 0x1b, 0x01, 0x2a, 0xea, 0x94, + 0x46, 0xa2, 0x10, 0x4e, 0x93, 0xf8, 0x15, 0xa0, 0xb3, 0xa2, 0x9b, 0x45, 0x83, 0x14, + 0xf3, 0xd8, 0xbe, 0x2b, 0x98, 0x23, 0xd3, 0x42, 0xf4, 0x62, 0xff, 0x13, 0xe9, 0x42, + 0xa7, 0xe1, 0x9a, 0x46, 0xe9, 0x70, 0xb5, 0xc5, 0x06, 0x70, 0x84, 0x30, 0x31, 0x7b, + 0x1b, 0xb3, 0xb3, 0x5d, 0xf6, 0x8a, 0xe3, 0x3a, 0x49, 0x26, 0xa0, 0x3e, 0x6b, 0xfe, + 0xb5, 0x51, 0x04, 0x16, 0xfc, 0xbb, 0x05, 0x24, 0xc9, 0xca, 0x50, 0x74, 0x15, 0x6c, + 0xc5, 0xa5, 0xd6, 0xfe, 0x1c, 0x99, 0x5e, 0xdc, 0x60, 0xa2, 0xf5, 0x50, 0x41, 0x1a, + 0xa4, 0x1e, 0x3d, 0xa3, 0xbd, 0xcf, 0x64, 0xbc, 0xf0, 0x4a, 0x05, 0x10, 0x57, 0x1b, + 0x93, 0x6d, 0x47, 0xe5, 0x5c, 0xec, 0x03, 0x30, 0xee, 0x8d, 0xfe, 0x73, 0x56, 0x34, + 0x04, 0xf0, 0x47, 0xd7, 0xf3, 0xa8, 0xa3, 0xd7, 0x74, 0x3b, 0xc5, 0x54, 0x95, 0x52, + 0x10, 0xf1, 0xeb, 0x0d, 0x08, 0x59, 0x9e, 0xa7, 0x7d, 0x5f, 0x97, 0x4d, 0x87, 0x17, + 0x6d, 0x37, 0xd9, 0x8b, 0x9c, 0x0a, 0xd4, 0x40, 0x40, 0x72, 0x09, 0xed, 0x6a, 0x9f, + 0x08, 0x46, 0x4d, 0x56, 0x55, 0x93, 0xe1, 0xa6, 0x3b, 0x93, 0x85, 0x36, 0xb4, 0x92, + 0x44, 0xe9, 0x7d, 0x88, 0x01, 0x73, 0xb6, 0x40, 0xf2, 0xdd, 0xb7, 0x4d, 0x06, 0x8e, + 0xcb, 0x46, 0xcf, 0x28, 0x9b, 0x7d, 0x89, 0x13, 0x07, 0xbb, 0xa3, 0x70, 0x54, 0xcf, + 0x91, 0xb3, 0x1f, 0xc8, 0x2f, 0x74, 0xd5, 0xfc, 0xc0, 0x00, 0x94, 0x2e, 0xde, 0x91, + 0x18, 0x25, 0xf5, 0x3f, 0xe6, 0x09, 0x68, 0x6f, 0x46, 0x32, 0x23, 0xb1, 0xe9, 0xbc, + 0x03, 0xbd, 0xe8, 0x95, 0xd1, 0x23, 0x8f, 0xad, 0x04, 0xa3, 0xbf, 0xce, 0x68, 0xa0, + 0x75, 0xe8, 0xa3, 0x7c, 0x0e, 0x87, 0xbf, 0x46, 0xdd, 0x01, 0x55, 0x45, 0xf9, 0xb4, + 0xfb, 0x0e, 0xec, 0x64, 0x5f, 0xfc, 0xbb, 0xe0, 0xca, 0x5f, 0x8c, 0x56, 0x1b, 0x25, + 0x7d, 0x52, 0xd6, 0x02, 0xd8, 0xc9, 0x4c, 0x50, 0x28, 0x73, 0xa0, 0x1d, 0x92, 0x51, + 0xd8, 0xc8, 0x60, 0xc0, 0x41, 0x52, 0x5b, 0x3b, 0xf4, 0xe3, 0xa2, 0xeb, 0x92, 0x72, + 0x81, 0x5c, 0x75, 0x86, 0x76, 0x84, 0x28, 0xb4, 0xc2, 0xb2, 0x5e, 0x37, 0x45, 0xf0, + 0x09, 0xc5, 0xdc, 0xe2, 0x0b, 0x69, 0xd5, 0xd7, 0xc4, 0x3c, 0xeb, 0x73, 0x6b, 0x68, + 0x31, 0xe8, 0xc1, 0x10, 0xf1, 0x6c, 0xfd, 0xb3, 0xa4, 0x67, 0xe9, 0x41, 0x4c, 0x00, + 0xec, 0xf1, 0x37, 0x31, 0x50, 0x08, 0x94, 0x55, 0x56, 0x78, 0xc4, 0x97, 0xfa, 0xba, + 0x9a, 0x95, 0xd0, 0x1c, 0xc4, 0x64, 0x39, 0x0f, 0xc4, 0xa7, 0x6b, 0xfa, 0x8b, 0x0e, + 0x1c, 0x68, 0xa5, 0x25, 0xd7, 0x06, 0xd6, 0x60, 0x4b, 0x23, 0x30, 0xb6, 0xb3, 0x48, + 0x52, 0x15, 0xf6, 0x06, 0xf1, 0x88, 0x3a, 0x75, 0x15, 0x88, 0xc7, 0xef, 0xa5, 0x06, + 0xc3, 0xe8, 0xd0, 0xc6, 0x01, 0x92, 0xe8, 0x47, 0x6b, 0xd1, 0x17, 0x5d, 0x95, 0x62, + 0x08, 0x7b, 0xdb, 0x81, 0x8e, 0x66, 0x21, 0x62, 0x86, 0xba, 0xfe, 0x47, 0xff, 0x4d, + 0xbc, 0xce, 0xd5, 0x14, 0x44, 0x48, 0x0a, 0x9a, 0x56, 0x73, 0xec, 0xe7, 0xfa, 0xc7, + 0x3a, 0x0e, 0xd4, 0x1a, 0xb0, 0x05, 0x17, 0x53, 0xa7, 0xca, 0xa8, 0x9b, 0xe3, 0x13, + 0x9a, 0xfd, 0x97, 0x93, 0xb3, 0xe0, 0x2f, 0x27, 0xf0, 0x40, 0x04, 0x65, 0x95, 0xac, + 0xd4, 0x7b, 0xf1, 0x3f, 0xd0, 0xda, 0x27, 0xf0, 0x9e, 0xda, 0x48, 0x03, 0x6d, 0x3e, + 0xe4, 0x37, 0xf2, 0xee, 0x8f, 0x86, 0x06, 0xea, 0x97, 0x34, 0x3c, 0x33, 0x58, 0x46, + 0x57, 0xf4, 0x6d, 0xba, 0x99, 0xdb, 0x5c, 0xfe, 0x6c, 0xa1, 0x76, 0xfa, 0xb7, 0xb0, + 0xf3, 0xbf, 0xa0, 0xab, 0x61, 0xe3, 0x40, 0xc3, 0x4e, 0xb9, 0xf1, 0x7c, 0x7e, 0xc2, + 0xbe, 0x03, 0xb1, 0x80, 0xf0, 0xbb, 0x6f, 0x43, 0x4c, 0x2a, 0x65, 0x42, 0xe0, 0x0e, + 0x84, 0x37, 0x3f, 0x4f, + ], + c_enc: [ + 0x31, 0xac, 0xda, 0xa6, 0xc1, 0x76, 0xbb, 0x7a, 0x2c, 0x7d, 0x66, 0x09, 0xdc, 0x2c, + 0x5e, 0x7b, 0x2e, 0xe7, 0x1d, 0xa9, 0x3c, 0x73, 0x87, 0x52, 0x74, 0xfa, 0x6c, 0x2a, + 0xd6, 0x26, 0x13, 0xc7, 0x18, 0x9b, 0x35, 0x33, 0xec, 0xf0, 0x34, 0xd8, 0x76, 0xc7, + 0x26, 0xf1, 0xed, 0x99, 0x43, 0xd4, 0x45, 0x07, 0x87, 0x52, 0x75, 0xa8, 0xe3, 0x71, + 0x0a, 0x11, 0x8d, 0x91, 0x64, 0x72, 0x91, 0x28, 0x6c, 0xf8, 0x80, 0xa7, 0x82, 0xab, + 0xea, 0xa8, 0xa6, 0xc3, 0x2f, 0xdf, 0x6f, 0x30, 0x4b, 0x0e, 0xe5, 0xbc, 0xb1, 0x4b, + 0x82, 0x79, 0x2a, 0xa3, 0xaf, 0xd7, 0x24, 0x3f, 0x57, 0xb7, 0xdc, 0xa7, 0x93, 0x52, + 0x19, 0xdf, 0x98, 0x2c, 0xe1, 0x28, 0xae, 0xa6, 0xf6, 0xbd, 0x18, 0xe1, 0x30, 0x7e, + 0xba, 0x0e, 0x3d, 0xb0, 0x06, 0x14, 0xc2, 0x65, 0xc6, 0xf2, 0x8b, 0xfe, 0x58, 0xc1, + 0x1d, 0x4a, 0xc9, 0x6d, 0x49, 0x02, 0x96, 0x7b, 0x54, 0xbc, 0x5d, 0xd1, 0x5c, 0x14, + 0x3f, 0xf4, 0x2b, 0xbb, 0x62, 0xb9, 0x34, 0xb0, 0x9e, 0x79, 0xb6, 0x1e, 0xaf, 0xe7, + 0x9a, 0xbc, 0x86, 0x94, 0x47, 0x5b, 0x6c, 0x8e, 0x19, 0x94, 0xba, 0x05, 0x5e, 0xa3, + 0xc1, 0x82, 0x93, 0xb0, 0x3c, 0x42, 0x49, 0x50, 0x1d, 0xfd, 0xc0, 0x14, 0x60, 0xcf, + 0x78, 0xcd, 0x97, 0x51, 0x30, 0xae, 0x34, 0x05, 0xba, 0x7d, 0xdc, 0x71, 0x30, 0xcb, + 0xdb, 0xb9, 0x8c, 0x7a, 0xaf, 0x6b, 0x1d, 0x0b, 0x44, 0xa5, 0x16, 0x79, 0xaa, 0x63, + 0x0a, 0x43, 0xae, 0x23, 0xb3, 0xd2, 0x2f, 0x73, 0x4c, 0xe1, 0xdb, 0xed, 0xea, 0x17, + 0x5a, 0x00, 0x62, 0xb0, 0x6e, 0x23, 0xf4, 0xd0, 0x6d, 0x2a, 0xd0, 0x45, 0xae, 0x98, + 0x2d, 0xb4, 0x34, 0x8f, 0x20, 0xc8, 0x9b, 0xf9, 0x67, 0x0e, 0x2f, 0xda, 0x47, 0x2e, + 0x55, 0xce, 0x4c, 0x35, 0x82, 0xb7, 0x64, 0x43, 0xe0, 0xab, 0xbb, 0x77, 0x8a, 0xec, + 0xa0, 0xf3, 0x9c, 0x55, 0xb6, 0xab, 0xbe, 0xd8, 0x1f, 0xde, 0x89, 0xad, 0x2c, 0x56, + 0x7d, 0xfe, 0x27, 0x7b, 0xb2, 0x69, 0xac, 0x6a, 0xe0, 0xe1, 0x88, 0x39, 0x8d, 0xea, + 0x24, 0xad, 0xcc, 0xe1, 0x82, 0xe7, 0xfd, 0xdc, 0x80, 0xeb, 0xd7, 0x69, 0xd0, 0xf0, + 0x76, 0xf9, 0xaf, 0x2d, 0xd9, 0x83, 0x07, 0xa5, 0x27, 0xc6, 0x99, 0x42, 0xdf, 0xa3, + 0xe7, 0xf4, 0x86, 0x76, 0x10, 0x1a, 0x47, 0xeb, 0x07, 0x80, 0xb6, 0x90, 0xb1, 0xaf, + 0x10, 0xfc, 0xfb, 0x5e, 0xe2, 0xbd, 0x40, 0xd2, 0x7d, 0x10, 0x9b, 0xa1, 0x5a, 0xb0, + 0xb1, 0xe9, 0x55, 0x4f, 0xdd, 0xfa, 0x81, 0x6b, 0x99, 0xcd, 0x8f, 0xdd, 0xe6, 0x81, + 0xae, 0x6b, 0x6c, 0xbb, 0xfb, 0xf0, 0x2c, 0x36, 0x32, 0x68, 0xd0, 0xf3, 0xc6, 0xa7, + 0x26, 0x1b, 0x6d, 0x00, 0x87, 0xbc, 0xad, 0xb6, 0xfb, 0x9b, 0xf3, 0x93, 0x04, 0xfc, + 0x08, 0x41, 0x5d, 0x83, 0x6f, 0xe4, 0x09, 0xa4, 0x3f, 0xaf, 0x9e, 0x28, 0xfb, 0x48, + 0x3f, 0x4a, 0x47, 0xaa, 0xd7, 0xe1, 0xf7, 0x97, 0x30, 0xb3, 0x21, 0x53, 0x60, 0x80, + 0xdb, 0x35, 0x12, 0x48, 0xb2, 0x66, 0x9b, 0x6e, 0x74, 0x48, 0x90, 0x87, 0xae, 0x72, + 0xba, 0x15, 0xd2, 0xae, 0xdd, 0x0c, 0x1e, 0x7e, 0xb1, 0x5a, 0x2f, 0x5a, 0x77, 0x31, + 0xeb, 0x45, 0xa6, 0x17, 0x8a, 0x44, 0x87, 0x09, 0x31, 0xec, 0x8e, 0x34, 0x8c, 0x19, + 0x2b, 0xc8, 0x87, 0xc8, 0x63, 0x60, 0x56, 0x67, 0x6f, 0x58, 0xd0, 0xc6, 0x34, 0xfc, + 0x99, 0xea, 0x7b, 0x07, 0xfa, 0x1b, 0x62, 0x99, 0xae, 0x5d, 0xbf, 0xe0, 0x84, 0x45, + 0xad, 0x99, 0x9f, 0x45, 0xdf, 0x00, 0xf1, 0xa4, 0x7a, 0xa5, 0xef, 0x6f, 0x88, 0xcd, + 0xba, 0x80, 0xc8, 0x8f, 0x94, 0x01, 0xe6, 0xe9, 0x09, 0xca, 0x2c, 0x5d, 0xe2, 0xcf, + 0x8f, 0x6a, 0x98, 0x44, 0xca, 0x32, 0xfe, 0x91, 0xf7, 0x13, 0xfe, 0x10, 0xa0, 0x69, + 0x8a, 0x1b, 0x3b, 0xfd, 0xf4, 0x47, 0x43, 0x75, 0xb4, 0x79, 0x1d, 0xc8, 0x50, 0x50, + 0xc9, 0x28, 0x90, 0x0e, 0x73, 0x1f, 0x7c, 0x4a, 0x12, 0x9d, 0x8e, 0x21, 0xfc, 0xf4, + 0x17, 0x62, 0x7c, 0x47, 0xdd, 0xc9, 0xf5, 0x88, 0x40, 0x38, 0x41, 0x31, 0x7a, 0x9a, + 0xc2, 0x6e, 0xef, 0x6c, 0xda, 0x23, + ], + ock: [ + 0x9c, 0x10, 0x3d, 0xd5, 0xd6, 0x38, 0x6c, 0xdd, 0x67, 0x69, 0x51, 0xe6, 0x56, 0x4b, + 0x16, 0x6b, 0xc5, 0xc5, 0x72, 0x32, 0xcf, 0xc3, 0x1e, 0x0e, 0x69, 0xce, 0x84, 0xda, + 0xe8, 0x32, 0x76, 0xbe, + ], + op: [ + 0x8e, 0x66, 0xb7, 0x92, 0xec, 0xb1, 0x56, 0xef, 0x68, 0x5e, 0xe8, 0xea, 0x35, 0xd3, + 0x82, 0x75, 0x8b, 0xa4, 0x15, 0x97, 0xa3, 0x3a, 0x93, 0xba, 0xf3, 0x81, 0xd6, 0x3c, + 0x17, 0x5b, 0xa9, 0x8b, 0x01, 0xa3, 0x66, 0x1e, 0xa9, 0xaa, 0xb8, 0xf4, 0x32, 0x53, + 0x42, 0x0e, 0xff, 0xd7, 0xa4, 0x83, 0xc2, 0x79, 0xd4, 0x18, 0x18, 0xbc, 0xb3, 0xee, + 0x91, 0x90, 0x01, 0xf8, 0x66, 0xa8, 0xe9, 0x2c, + ], + c_out: [ + 0xdf, 0x6b, 0xb6, 0x2e, 0x3b, 0x64, 0xf7, 0xe9, 0x37, 0xc1, 0xde, 0x38, 0xaa, 0xc5, + 0xe6, 0xb1, 0x61, 0x35, 0xba, 0x2f, 0x9d, 0xbe, 0xed, 0xb0, 0x7a, 0x45, 0xb6, 0xf0, + 0x9d, 0xf3, 0xeb, 0xec, 0xac, 0x04, 0x6c, 0x61, 0x92, 0xfb, 0xe8, 0x95, 0xd2, 0x31, + 0x02, 0x77, 0xb3, 0xe0, 0x3a, 0x90, 0xfd, 0xc8, 0x53, 0x48, 0x4a, 0x01, 0x5c, 0x88, + 0xd6, 0x63, 0x2e, 0x97, 0xba, 0x98, 0xad, 0xca, 0x9e, 0x49, 0xf5, 0x38, 0xc3, 0xa7, + 0xcb, 0x6d, 0x77, 0x23, 0xbd, 0xcc, 0x9c, 0x03, 0xae, 0x88, + ], + }, + TestVector { + incoming_viewing_key: [ + 0x73, 0xa2, 0x5e, 0xba, 0x9b, 0xd7, 0xa8, 0xed, 0x2b, 0x5b, 0x1b, 0x8d, 0x5a, 0x05, + 0x6b, 0xde, 0x8d, 0x05, 0xe6, 0xa2, 0x80, 0x67, 0xb3, 0x84, 0x57, 0x91, 0xbe, 0xbf, + 0xa7, 0xae, 0x2a, 0xcd, 0x36, 0x32, 0x6f, 0xe6, 0x27, 0xbe, 0xe8, 0x0e, 0x32, 0x92, + 0xe0, 0xe5, 0x13, 0x2d, 0xe1, 0x6c, 0xa4, 0xf8, 0x1e, 0x5a, 0x6f, 0xc0, 0x9c, 0x95, + 0xff, 0x13, 0xb5, 0x2e, 0x96, 0xb7, 0x89, 0x0f, + ], + ovk: [ + 0xf5, 0xe8, 0xde, 0xd8, 0x18, 0x92, 0x51, 0x1c, 0xc2, 0x85, 0x1b, 0x00, 0xb8, 0x32, + 0x71, 0x2a, 0x6d, 0x3b, 0xa5, 0x66, 0x65, 0x17, 0xbc, 0xd3, 0x56, 0x76, 0x21, 0xa7, + 0xcf, 0x84, 0x45, 0x58, + ], + default_d: [ + 0x81, 0xf2, 0x75, 0x7c, 0x53, 0x2e, 0xd3, 0xb6, 0x2e, 0x89, 0x01, + ], + default_pk_d: [ + 0x55, 0xdb, 0x72, 0x90, 0x07, 0x3b, 0xa0, 0x06, 0x66, 0xe8, 0x7d, 0x25, 0x61, 0xb8, + 0x88, 0x3c, 0x66, 0x2c, 0x56, 0x78, 0xff, 0x27, 0x30, 0x2a, 0x82, 0xe2, 0x0a, 0x72, + 0x01, 0x70, 0x89, 0x1a, + ], + v: 17209482587585417762, + rseed: [ + 0xfc, 0x54, 0x88, 0x62, 0xf5, 0xa0, 0x70, 0x94, 0xfd, 0x42, 0x8a, 0x7b, 0xbc, 0x15, + 0xd7, 0xb3, 0x8d, 0x05, 0x36, 0x2c, 0x9c, 0xa9, 0x85, 0xf5, 0x8a, 0x76, 0x64, 0x7d, + 0x2b, 0xe4, 0xc2, 0xcd, + ], + memo: [ + 0xff, 0x6b, 0x3d, 0x17, 0xd6, 0x87, 0x09, 0x71, 0xd7, 0xa0, 0x98, 0xba, 0xf7, 0x2c, + 0x6f, 0x6f, 0x12, 0x14, 0xcf, 0x1f, 0xaa, 0xe4, 0x88, 0xbd, 0x7d, 0xe2, 0x59, 0xd3, + 0x41, 0x5c, 0x2f, 0x0d, 0xde, 0xc7, 0x45, 0x70, 0x04, 0xf3, 0x57, 0x08, 0xd1, 0xec, + 0xcc, 0xcc, 0x0d, 0xf6, 0x5a, 0x04, 0x94, 0x3a, 0xd5, 0xcb, 0xc1, 0x3f, 0x29, 0x5f, + 0x00, 0x0f, 0xe0, 0x56, 0xc4, 0x0b, 0x2d, 0x88, 0xf2, 0x7d, 0xc3, 0x4c, 0xfe, 0xb8, + 0x03, 0xbe, 0x34, 0x83, 0xa9, 0xeb, 0xf9, 0xb5, 0xa9, 0x02, 0x60, 0x57, 0x72, 0x5d, + 0x63, 0xea, 0xd2, 0xc0, 0xc0, 0xff, 0x1f, 0xe2, 0x6a, 0xc1, 0xe7, 0xbd, 0xfc, 0xd6, + 0xfa, 0xd8, 0x75, 0x84, 0x2d, 0x19, 0x4f, 0x33, 0x17, 0x50, 0x46, 0x2c, 0x06, 0xb8, + 0xd7, 0x98, 0x2d, 0x67, 0x99, 0x5e, 0xd5, 0xd3, 0xae, 0x96, 0xa0, 0x5a, 0xe0, 0x06, + 0x7f, 0x4e, 0xb1, 0xc7, 0xc9, 0x32, 0x31, 0xbd, 0x39, 0x77, 0x3c, 0xbe, 0x0a, 0x9d, + 0x66, 0xb0, 0xc9, 0xaa, 0x8c, 0xff, 0x6a, 0x37, 0x6e, 0x1f, 0x37, 0x2e, 0xac, 0x6a, + 0xc4, 0xe4, 0x6c, 0xc0, 0x94, 0x22, 0x45, 0xd4, 0xc2, 0xdc, 0xf0, 0x2d, 0x76, 0x40, + 0xff, 0xcc, 0x5a, 0x6a, 0xc3, 0xa8, 0x7f, 0x5c, 0x41, 0x15, 0x51, 0xbc, 0xc2, 0xf2, + 0x6c, 0xb9, 0x49, 0x61, 0xd5, 0x3f, 0x95, 0xdd, 0xb1, 0x9a, 0xe9, 0x30, 0xc8, 0xd7, + 0x0f, 0x03, 0x1b, 0x29, 0xa5, 0xdf, 0x99, 0xff, 0x36, 0x69, 0x5e, 0x80, 0x2c, 0xbc, + 0xb6, 0xb5, 0x8c, 0x1b, 0xa7, 0xed, 0x5e, 0xac, 0xfa, 0x76, 0x41, 0x4a, 0x41, 0xad, + 0x4a, 0x44, 0xf7, 0x1f, 0x1b, 0x58, 0x0d, 0x34, 0xc3, 0xa9, 0x52, 0x92, 0x0b, 0x25, + 0x4a, 0x14, 0x5f, 0xea, 0x51, 0x7f, 0x5b, 0x42, 0xb2, 0xf6, 0x5e, 0xcd, 0x0f, 0x82, + 0x59, 0x54, 0x78, 0xd8, 0x0a, 0xe5, 0xc8, 0xce, 0xea, 0x12, 0xa1, 0x61, 0xcc, 0xbb, + 0x5e, 0xac, 0x09, 0x99, 0x0f, 0xc6, 0x19, 0xa4, 0x60, 0x80, 0x43, 0x6d, 0xbd, 0x08, + 0xd7, 0x47, 0x84, 0xaf, 0x00, 0x2d, 0x58, 0xe0, 0x6f, 0xaf, 0x7f, 0x3c, 0xea, 0xe7, + 0xd3, 0x41, 0x9b, 0x1f, 0xca, 0x26, 0x5a, 0x55, 0x59, 0xcf, 0x9e, 0x2d, 0x3b, 0x60, + 0x97, 0x8d, 0x81, 0xa6, 0x78, 0xb9, 0xed, 0x8e, 0x44, 0x86, 0xb4, 0xd1, 0x46, 0x09, + 0xd6, 0xc1, 0x27, 0xc0, 0xc2, 0xfb, 0xff, 0xe3, 0x0a, 0x60, 0xf7, 0xbf, 0xf1, 0xd9, + 0xfb, 0x83, 0x00, 0xed, 0x00, 0x92, 0x53, 0xba, 0x9b, 0x99, 0x6f, 0xa0, 0x52, 0x41, + 0xb1, 0x0f, 0x5a, 0xc9, 0xa8, 0x40, 0x8e, 0x92, 0x5b, 0x62, 0x6b, 0xb2, 0x1a, 0x47, + 0x1f, 0xe3, 0xbe, 0xde, 0x52, 0xbb, 0xa0, 0x97, 0xb2, 0xa9, 0x9a, 0x9b, 0xa5, 0xa8, + 0x66, 0x58, 0xc3, 0xfd, 0x9e, 0xc5, 0x5b, 0xfa, 0x9b, 0x32, 0x85, 0x67, 0x25, 0x4a, + 0xb3, 0x6d, 0x2c, 0x7f, 0x44, 0xd2, 0xc7, 0xe1, 0x3e, 0xb5, 0x4b, 0xeb, 0x70, 0xea, + 0x8f, 0xa9, 0x4b, 0x6c, 0x6e, 0x01, 0x2d, 0x79, 0xe3, 0xf5, 0x36, 0x89, 0xc2, 0xb1, + 0xa1, 0x8e, 0xaf, 0x2d, 0x47, 0x1d, 0x13, 0xc1, 0xab, 0x39, 0xd9, 0x19, 0x4a, 0xe8, + 0x43, 0xab, 0x1d, 0x28, 0xff, 0xa8, 0xf6, 0x9d, 0xc7, 0xe1, 0x5c, 0xc3, 0x8b, 0x12, + 0xe8, 0xfc, 0xd7, 0x92, 0x55, 0xb7, 0x21, 0x60, 0x56, 0xd9, 0xed, 0xb7, 0x48, 0x2f, + 0xb9, 0x8a, 0xa0, 0x33, 0xb6, 0x5e, 0x51, 0xc1, 0xa0, 0x8b, 0x8a, 0x11, 0xd8, 0x4d, + 0x04, 0x09, 0xb7, 0x34, 0xf4, 0x52, 0xaa, 0xf0, 0xd6, 0xb1, 0x8f, 0x50, 0x25, 0x86, + 0x83, 0xd3, 0xf9, 0xa7, 0x6d, 0x39, 0x9f, 0xd0, 0x47, 0xee, 0xe2, 0x88, 0xbb, 0x45, + 0x85, 0x85, 0x1d, 0xc9, 0x3e, 0xcc, 0xc6, 0x23, + ], + cv_net: [ + 0xe8, 0x06, 0x5c, 0x40, 0x96, 0xd3, 0x54, 0x33, 0x40, 0x01, 0x1f, 0x58, 0x90, 0xb1, + 0x7e, 0xed, 0xd2, 0xa7, 0x06, 0x44, 0x07, 0x34, 0x78, 0x41, 0x01, 0xae, 0x2d, 0x8e, + 0x87, 0xe5, 0x05, 0xad, + ], + nf_old: [ + 0x32, 0x91, 0x87, 0x35, 0x66, 0x3f, 0x34, 0xad, 0xa0, 0x22, 0x8a, 0xea, 0x4a, 0xcc, + 0x19, 0x2a, 0x12, 0x3f, 0xcf, 0xa0, 0x60, 0x46, 0x89, 0xf9, 0x1a, 0xcb, 0xe9, 0x38, + 0x31, 0xe4, 0x8c, 0x0c, + ], + cmx: [ + 0xde, 0x7b, 0xf1, 0x55, 0x08, 0x29, 0x51, 0x96, 0x0a, 0x10, 0xbb, 0x8b, 0x75, 0x41, + 0x02, 0x43, 0x0f, 0x89, 0xf5, 0x32, 0x67, 0x24, 0x04, 0x36, 0x81, 0xf5, 0x06, 0xf7, + 0x48, 0xe2, 0x6f, 0x07, + ], + esk: [ + 0x1d, 0xb6, 0x79, 0x07, 0x9a, 0xcd, 0xef, 0xe9, 0xfc, 0x1e, 0x59, 0xa1, 0x33, 0xf3, + 0x7b, 0x6d, 0x1f, 0xfb, 0xed, 0x78, 0x8c, 0xce, 0x3b, 0x0c, 0xdd, 0x63, 0xe0, 0x62, + 0x83, 0x05, 0x47, 0x08, + ], + ephemeral_key: [ + 0x18, 0x20, 0x84, 0x5b, 0x2d, 0x90, 0xe5, 0x45, 0x76, 0x0f, 0xca, 0x4d, 0xab, 0x30, + 0xa6, 0x78, 0x3e, 0x03, 0x1c, 0x0e, 0x54, 0x28, 0xcc, 0x22, 0x6f, 0x3f, 0x40, 0x1d, + 0xec, 0x20, 0x0b, 0x11, + ], + shared_secret: [ + 0x79, 0x38, 0x77, 0xa1, 0xae, 0xda, 0xe9, 0xac, 0x6d, 0xa3, 0xd7, 0xe8, 0x02, 0xb5, + 0xbc, 0x77, 0x3c, 0x0d, 0x93, 0x1c, 0x79, 0x6d, 0x17, 0x0c, 0x59, 0x7f, 0x22, 0xba, + 0x6f, 0xcc, 0xa2, 0x06, + ], + k_enc: [ + 0x28, 0x20, 0xb9, 0x38, 0xd6, 0xfc, 0xea, 0x99, 0xa7, 0x23, 0x37, 0x50, 0xa0, 0xf0, + 0x9a, 0x32, 0x10, 0xad, 0x91, 0x73, 0x46, 0x16, 0x6a, 0xea, 0xdc, 0x89, 0xbb, 0x50, + 0xf4, 0x54, 0x50, 0xa3, + ], + p_enc: [ + 0x02, 0x81, 0xf2, 0x75, 0x7c, 0x53, 0x2e, 0xd3, 0xb6, 0x2e, 0x89, 0x01, 0x22, 0x92, + 0x4c, 0xd1, 0x3b, 0x5d, 0xd4, 0xee, 0xfc, 0x54, 0x88, 0x62, 0xf5, 0xa0, 0x70, 0x94, + 0xfd, 0x42, 0x8a, 0x7b, 0xbc, 0x15, 0xd7, 0xb3, 0x8d, 0x05, 0x36, 0x2c, 0x9c, 0xa9, + 0x85, 0xf5, 0x8a, 0x76, 0x64, 0x7d, 0x2b, 0xe4, 0xc2, 0xcd, 0xff, 0x6b, 0x3d, 0x17, + 0xd6, 0x87, 0x09, 0x71, 0xd7, 0xa0, 0x98, 0xba, 0xf7, 0x2c, 0x6f, 0x6f, 0x12, 0x14, + 0xcf, 0x1f, 0xaa, 0xe4, 0x88, 0xbd, 0x7d, 0xe2, 0x59, 0xd3, 0x41, 0x5c, 0x2f, 0x0d, + 0xde, 0xc7, 0x45, 0x70, 0x04, 0xf3, 0x57, 0x08, 0xd1, 0xec, 0xcc, 0xcc, 0x0d, 0xf6, + 0x5a, 0x04, 0x94, 0x3a, 0xd5, 0xcb, 0xc1, 0x3f, 0x29, 0x5f, 0x00, 0x0f, 0xe0, 0x56, + 0xc4, 0x0b, 0x2d, 0x88, 0xf2, 0x7d, 0xc3, 0x4c, 0xfe, 0xb8, 0x03, 0xbe, 0x34, 0x83, + 0xa9, 0xeb, 0xf9, 0xb5, 0xa9, 0x02, 0x60, 0x57, 0x72, 0x5d, 0x63, 0xea, 0xd2, 0xc0, + 0xc0, 0xff, 0x1f, 0xe2, 0x6a, 0xc1, 0xe7, 0xbd, 0xfc, 0xd6, 0xfa, 0xd8, 0x75, 0x84, + 0x2d, 0x19, 0x4f, 0x33, 0x17, 0x50, 0x46, 0x2c, 0x06, 0xb8, 0xd7, 0x98, 0x2d, 0x67, + 0x99, 0x5e, 0xd5, 0xd3, 0xae, 0x96, 0xa0, 0x5a, 0xe0, 0x06, 0x7f, 0x4e, 0xb1, 0xc7, + 0xc9, 0x32, 0x31, 0xbd, 0x39, 0x77, 0x3c, 0xbe, 0x0a, 0x9d, 0x66, 0xb0, 0xc9, 0xaa, + 0x8c, 0xff, 0x6a, 0x37, 0x6e, 0x1f, 0x37, 0x2e, 0xac, 0x6a, 0xc4, 0xe4, 0x6c, 0xc0, + 0x94, 0x22, 0x45, 0xd4, 0xc2, 0xdc, 0xf0, 0x2d, 0x76, 0x40, 0xff, 0xcc, 0x5a, 0x6a, + 0xc3, 0xa8, 0x7f, 0x5c, 0x41, 0x15, 0x51, 0xbc, 0xc2, 0xf2, 0x6c, 0xb9, 0x49, 0x61, + 0xd5, 0x3f, 0x95, 0xdd, 0xb1, 0x9a, 0xe9, 0x30, 0xc8, 0xd7, 0x0f, 0x03, 0x1b, 0x29, + 0xa5, 0xdf, 0x99, 0xff, 0x36, 0x69, 0x5e, 0x80, 0x2c, 0xbc, 0xb6, 0xb5, 0x8c, 0x1b, + 0xa7, 0xed, 0x5e, 0xac, 0xfa, 0x76, 0x41, 0x4a, 0x41, 0xad, 0x4a, 0x44, 0xf7, 0x1f, + 0x1b, 0x58, 0x0d, 0x34, 0xc3, 0xa9, 0x52, 0x92, 0x0b, 0x25, 0x4a, 0x14, 0x5f, 0xea, + 0x51, 0x7f, 0x5b, 0x42, 0xb2, 0xf6, 0x5e, 0xcd, 0x0f, 0x82, 0x59, 0x54, 0x78, 0xd8, + 0x0a, 0xe5, 0xc8, 0xce, 0xea, 0x12, 0xa1, 0x61, 0xcc, 0xbb, 0x5e, 0xac, 0x09, 0x99, + 0x0f, 0xc6, 0x19, 0xa4, 0x60, 0x80, 0x43, 0x6d, 0xbd, 0x08, 0xd7, 0x47, 0x84, 0xaf, + 0x00, 0x2d, 0x58, 0xe0, 0x6f, 0xaf, 0x7f, 0x3c, 0xea, 0xe7, 0xd3, 0x41, 0x9b, 0x1f, + 0xca, 0x26, 0x5a, 0x55, 0x59, 0xcf, 0x9e, 0x2d, 0x3b, 0x60, 0x97, 0x8d, 0x81, 0xa6, + 0x78, 0xb9, 0xed, 0x8e, 0x44, 0x86, 0xb4, 0xd1, 0x46, 0x09, 0xd6, 0xc1, 0x27, 0xc0, + 0xc2, 0xfb, 0xff, 0xe3, 0x0a, 0x60, 0xf7, 0xbf, 0xf1, 0xd9, 0xfb, 0x83, 0x00, 0xed, + 0x00, 0x92, 0x53, 0xba, 0x9b, 0x99, 0x6f, 0xa0, 0x52, 0x41, 0xb1, 0x0f, 0x5a, 0xc9, + 0xa8, 0x40, 0x8e, 0x92, 0x5b, 0x62, 0x6b, 0xb2, 0x1a, 0x47, 0x1f, 0xe3, 0xbe, 0xde, + 0x52, 0xbb, 0xa0, 0x97, 0xb2, 0xa9, 0x9a, 0x9b, 0xa5, 0xa8, 0x66, 0x58, 0xc3, 0xfd, + 0x9e, 0xc5, 0x5b, 0xfa, 0x9b, 0x32, 0x85, 0x67, 0x25, 0x4a, 0xb3, 0x6d, 0x2c, 0x7f, + 0x44, 0xd2, 0xc7, 0xe1, 0x3e, 0xb5, 0x4b, 0xeb, 0x70, 0xea, 0x8f, 0xa9, 0x4b, 0x6c, + 0x6e, 0x01, 0x2d, 0x79, 0xe3, 0xf5, 0x36, 0x89, 0xc2, 0xb1, 0xa1, 0x8e, 0xaf, 0x2d, + 0x47, 0x1d, 0x13, 0xc1, 0xab, 0x39, 0xd9, 0x19, 0x4a, 0xe8, 0x43, 0xab, 0x1d, 0x28, + 0xff, 0xa8, 0xf6, 0x9d, 0xc7, 0xe1, 0x5c, 0xc3, 0x8b, 0x12, 0xe8, 0xfc, 0xd7, 0x92, + 0x55, 0xb7, 0x21, 0x60, 0x56, 0xd9, 0xed, 0xb7, 0x48, 0x2f, 0xb9, 0x8a, 0xa0, 0x33, + 0xb6, 0x5e, 0x51, 0xc1, 0xa0, 0x8b, 0x8a, 0x11, 0xd8, 0x4d, 0x04, 0x09, 0xb7, 0x34, + 0xf4, 0x52, 0xaa, 0xf0, 0xd6, 0xb1, 0x8f, 0x50, 0x25, 0x86, 0x83, 0xd3, 0xf9, 0xa7, + 0x6d, 0x39, 0x9f, 0xd0, 0x47, 0xee, 0xe2, 0x88, 0xbb, 0x45, 0x85, 0x85, 0x1d, 0xc9, + 0x3e, 0xcc, 0xc6, 0x23, + ], + c_enc: [ + 0xd9, 0x6a, 0xe8, 0x2f, 0xba, 0xff, 0xb9, 0xe4, 0xbd, 0x36, 0x47, 0x57, 0x96, 0x33, + 0xbc, 0x8a, 0x89, 0x66, 0xae, 0x4e, 0x18, 0x85, 0x99, 0xdc, 0x3c, 0xf0, 0x30, 0x41, + 0xd2, 0x64, 0x4f, 0x60, 0x3c, 0xe5, 0x56, 0x2e, 0x7f, 0xa1, 0xd3, 0x83, 0x12, 0x79, + 0xb6, 0x32, 0x60, 0x4d, 0x06, 0x5e, 0xd2, 0x46, 0xad, 0x2d, 0x4f, 0x73, 0xf3, 0xa4, + 0x1b, 0x2a, 0x27, 0x99, 0xe5, 0xba, 0xf8, 0x6e, 0x7d, 0x9f, 0xcc, 0x64, 0xd5, 0x6b, + 0xde, 0x56, 0xcb, 0xb0, 0x01, 0xeb, 0x7c, 0x7c, 0x0c, 0xf1, 0xe2, 0xae, 0xc3, 0xce, + 0xb1, 0x49, 0x2d, 0xdf, 0x4e, 0x35, 0x20, 0x76, 0x1f, 0x70, 0xf6, 0xa9, 0x5c, 0x9e, + 0xde, 0xed, 0x51, 0x43, 0x6d, 0xca, 0xcf, 0x71, 0x1e, 0xb5, 0x53, 0x24, 0xd3, 0xf0, + 0x1d, 0xcc, 0xa0, 0x1b, 0xca, 0x15, 0xba, 0xf2, 0x8f, 0xed, 0x81, 0x4c, 0xc3, 0x3a, + 0x43, 0x6b, 0xbc, 0x08, 0x60, 0x56, 0x78, 0x55, 0xa4, 0x9f, 0x5e, 0xfd, 0x49, 0xea, + 0x78, 0x30, 0xc2, 0xf6, 0x00, 0x61, 0xd8, 0x13, 0xa8, 0x49, 0xb4, 0x40, 0xb1, 0x2e, + 0x8f, 0x31, 0xe2, 0xdc, 0x0c, 0x39, 0x4c, 0xeb, 0x92, 0x4f, 0x0d, 0xc6, 0xd5, 0x7b, + 0xcc, 0x39, 0x1d, 0x4a, 0x5f, 0x56, 0x9f, 0x34, 0x74, 0x6b, 0x9d, 0x92, 0x08, 0x82, + 0x25, 0xb1, 0xaa, 0x3e, 0x90, 0x6f, 0x6d, 0xe4, 0xa7, 0x92, 0x2a, 0xc1, 0x16, 0xac, + 0xb2, 0x78, 0xe8, 0xef, 0xbb, 0xf6, 0xf1, 0xe3, 0xe0, 0x8d, 0x66, 0xb3, 0x4d, 0x6e, + 0xde, 0x34, 0xae, 0x78, 0x40, 0xa8, 0x80, 0x2b, 0x7c, 0x10, 0x0f, 0xa7, 0x98, 0x46, + 0x4d, 0xb5, 0x29, 0x45, 0xdb, 0xbe, 0x35, 0xe7, 0x7a, 0x77, 0x21, 0xb2, 0xe0, 0xf8, + 0xb9, 0xa1, 0x0f, 0x6b, 0xf9, 0xa2, 0x80, 0x8f, 0xa5, 0x85, 0xff, 0x21, 0xb0, 0xa3, + 0xaf, 0xfd, 0x5f, 0x3c, 0xb2, 0x30, 0x63, 0x4e, 0x2e, 0x43, 0xff, 0xde, 0x6d, 0x09, + 0x0a, 0xfc, 0xc6, 0x70, 0x4d, 0x7b, 0x3f, 0xc6, 0x15, 0x44, 0x85, 0x3b, 0xcd, 0xa7, + 0xa1, 0x06, 0xd8, 0x5b, 0xd8, 0xd8, 0x6c, 0x6f, 0x8c, 0xe0, 0x34, 0x01, 0x6e, 0xd9, + 0xa3, 0x69, 0x46, 0xf8, 0x52, 0x8b, 0x6f, 0x1e, 0x1a, 0x19, 0x82, 0xd6, 0x8d, 0x38, + 0x86, 0xe5, 0xea, 0xe6, 0xc1, 0xe3, 0x88, 0xf3, 0xde, 0xad, 0x0d, 0x35, 0x3b, 0x6c, + 0x0c, 0xbf, 0x57, 0xc2, 0xe4, 0x7d, 0x30, 0x72, 0x3e, 0xac, 0x95, 0x7b, 0x4a, 0xec, + 0x82, 0xc8, 0xa1, 0x00, 0x9e, 0x3d, 0x71, 0x96, 0x92, 0xb2, 0xfc, 0xbd, 0xda, 0xae, + 0x62, 0x5a, 0x89, 0x6a, 0x47, 0x29, 0x85, 0xb7, 0x9e, 0xb6, 0x2b, 0x1f, 0xe3, 0x3d, + 0x6e, 0x27, 0xbc, 0x1f, 0x10, 0xe4, 0xfe, 0x5c, 0x06, 0xb2, 0x4c, 0x59, 0x7f, 0x72, + 0x3c, 0x67, 0x13, 0x36, 0x13, 0xae, 0x8e, 0x15, 0x4d, 0x81, 0x69, 0x78, 0xb8, 0xfc, + 0xa6, 0x50, 0xc0, 0x1d, 0x77, 0x1a, 0x62, 0x69, 0x2a, 0x84, 0x82, 0x94, 0x2e, 0x28, + 0xfe, 0xf0, 0x45, 0x19, 0x9e, 0xd1, 0xa6, 0x64, 0x99, 0xeb, 0xa1, 0xee, 0xc1, 0x9a, + 0xc8, 0x4a, 0x12, 0xe4, 0x10, 0x29, 0xd2, 0x2f, 0x21, 0x87, 0x6e, 0xd7, 0x4a, 0x76, + 0xef, 0x39, 0xa0, 0x57, 0xce, 0x0a, 0x15, 0x8e, 0x68, 0x51, 0xec, 0x35, 0x6d, 0x97, + 0x7b, 0x1a, 0xa6, 0x8d, 0xcf, 0x70, 0x88, 0xa9, 0xf0, 0xf9, 0xe4, 0x75, 0xa2, 0xbb, + 0xc1, 0xc4, 0x49, 0x5b, 0x54, 0x6f, 0xff, 0xed, 0xaa, 0x66, 0xc4, 0xf9, 0x51, 0x74, + 0xc6, 0x2f, 0x56, 0x5a, 0x3c, 0xc0, 0xac, 0xaf, 0x85, 0x4a, 0xde, 0xd4, 0xb4, 0x25, + 0xa0, 0xc7, 0xdb, 0xcd, 0x37, 0x42, 0xa7, 0xe0, 0x59, 0x2e, 0x83, 0x73, 0x41, 0xf8, + 0x95, 0x32, 0x90, 0x99, 0xe1, 0x70, 0xb6, 0xff, 0xb1, 0x05, 0xfd, 0xbc, 0x77, 0x29, + 0x8e, 0x8c, 0x0f, 0x5e, 0xeb, 0x9e, 0x99, 0xc6, 0x58, 0x4b, 0xcf, 0xf1, 0x20, 0x20, + 0x9d, 0x69, 0x22, 0xb5, 0x34, 0xbe, 0xc9, 0xfa, 0xc1, 0xd7, 0xd2, 0x74, 0xdb, 0xcb, + 0x4a, 0x12, 0xea, 0x5a, 0x99, 0x21, 0x39, 0x2f, 0x00, 0x96, 0x60, 0x29, 0xff, 0x26, + 0x0e, 0xd2, 0x4c, 0x32, 0x78, 0x58, 0xe0, 0x34, 0x64, 0x0a, 0x8c, 0xfb, 0x28, 0xad, + 0x97, 0xe5, 0x3d, 0x80, 0xe1, 0xc9, + ], + ock: [ + 0x28, 0xcf, 0x3b, 0xea, 0xc3, 0xbd, 0xe2, 0xe9, 0x63, 0xaa, 0x60, 0x91, 0x3f, 0x10, + 0x5d, 0x25, 0x67, 0xcd, 0xaf, 0xbb, 0x66, 0x09, 0x08, 0x5a, 0x84, 0x3f, 0x75, 0x68, + 0xe4, 0x92, 0xd4, 0x4e, + ], + op: [ + 0x55, 0xdb, 0x72, 0x90, 0x07, 0x3b, 0xa0, 0x06, 0x66, 0xe8, 0x7d, 0x25, 0x61, 0xb8, + 0x88, 0x3c, 0x66, 0x2c, 0x56, 0x78, 0xff, 0x27, 0x30, 0x2a, 0x82, 0xe2, 0x0a, 0x72, + 0x01, 0x70, 0x89, 0x1a, 0x1d, 0xb6, 0x79, 0x07, 0x9a, 0xcd, 0xef, 0xe9, 0xfc, 0x1e, + 0x59, 0xa1, 0x33, 0xf3, 0x7b, 0x6d, 0x1f, 0xfb, 0xed, 0x78, 0x8c, 0xce, 0x3b, 0x0c, + 0xdd, 0x63, 0xe0, 0x62, 0x83, 0x05, 0x47, 0x08, + ], + c_out: [ + 0x0b, 0x2c, 0xc0, 0xa2, 0x2d, 0x06, 0xfc, 0x36, 0xa0, 0x8a, 0x7d, 0x82, 0x33, 0x8d, + 0x4a, 0xd0, 0x95, 0xa3, 0x93, 0xa1, 0xc2, 0x4a, 0x78, 0x8d, 0x45, 0x24, 0x35, 0x94, + 0x4a, 0xcc, 0xe6, 0x38, 0x1e, 0xcc, 0x69, 0x37, 0xf2, 0xc3, 0x8c, 0x89, 0xa5, 0xf5, + 0x1a, 0xa6, 0x0c, 0xa6, 0x58, 0xfe, 0x71, 0x37, 0x1c, 0x2a, 0x83, 0xf4, 0x96, 0xca, + 0x2e, 0x62, 0x49, 0x79, 0x2e, 0x09, 0xeb, 0x79, 0xea, 0x3a, 0x13, 0x80, 0x32, 0x18, + 0xff, 0x20, 0x88, 0x9d, 0x8c, 0x59, 0xc8, 0x5e, 0x90, 0x99, + ], + }, + TestVector { + incoming_viewing_key: [ + 0xa4, 0xd7, 0x9c, 0x81, 0x9a, 0x6c, 0x5e, 0x01, 0x67, 0xfc, 0xa9, 0x8c, 0xe2, 0x62, + 0x98, 0x15, 0xf9, 0xba, 0xc9, 0x26, 0xb6, 0x27, 0x18, 0xcf, 0xbe, 0x50, 0x45, 0xd9, + 0x2d, 0xd7, 0x1c, 0xd3, 0x36, 0x75, 0xd5, 0x56, 0xe0, 0x77, 0x1e, 0x40, 0xcc, 0x3d, + 0x61, 0x8d, 0x9b, 0xda, 0x13, 0x2f, 0x13, 0x95, 0x3d, 0x82, 0x43, 0x2e, 0x81, 0x59, + 0x4a, 0x97, 0x1e, 0x98, 0xb0, 0x71, 0x40, 0x39, + ], + ovk: [ + 0x67, 0x79, 0x9a, 0x90, 0x01, 0xa2, 0xed, 0x36, 0x76, 0xa8, 0xb4, 0x03, 0xae, 0x25, + 0xff, 0xd7, 0x72, 0xf7, 0x08, 0x1e, 0x9a, 0x32, 0xbc, 0xc1, 0xc5, 0xe2, 0xed, 0xd4, + 0xe2, 0xa6, 0x57, 0x6b, + ], + default_d: [ + 0xdd, 0xb7, 0xc5, 0xbc, 0x4d, 0xe9, 0xdf, 0x52, 0x1b, 0xb0, 0x4b, + ], + default_pk_d: [ + 0x65, 0x3d, 0x07, 0xc9, 0x07, 0x94, 0x6a, 0xc3, 0x02, 0x0e, 0xbd, 0xe1, 0xb4, 0xf6, + 0x10, 0x21, 0x0c, 0x30, 0xc4, 0x50, 0xe4, 0x27, 0x12, 0x65, 0xa0, 0x5d, 0x6e, 0xce, + 0x44, 0x6d, 0xf4, 0x39, + ], + v: 7122345086698755501, + rseed: [ + 0x2d, 0xd4, 0x17, 0xdf, 0x26, 0xdc, 0xd2, 0x20, 0xf2, 0xb7, 0x31, 0x77, 0x2b, 0x43, + 0x9e, 0x96, 0xd6, 0x14, 0xe1, 0xfa, 0xcb, 0x48, 0x6c, 0x7a, 0x7d, 0x51, 0x71, 0xb1, + 0xde, 0x35, 0x9f, 0x6a, + ], + memo: [ + 0xff, 0xd3, 0xa9, 0x6f, 0x64, 0x9c, 0x96, 0x91, 0x02, 0xa1, 0x96, 0x4f, 0xb4, 0xb4, + 0xa1, 0xa4, 0x27, 0x9c, 0x68, 0xe6, 0xc3, 0x72, 0xe4, 0x21, 0x87, 0xd7, 0x54, 0xe8, + 0x04, 0xa6, 0x16, 0x53, 0x09, 0x20, 0x69, 0xfb, 0x9b, 0x6d, 0x25, 0x26, 0x68, 0x90, + 0x80, 0x8b, 0x01, 0x5d, 0xf2, 0x8c, 0x80, 0x10, 0x65, 0xda, 0x6f, 0xeb, 0xdc, 0x1a, + 0x56, 0xbf, 0xd0, 0x02, 0x62, 0x5a, 0xcf, 0xaa, 0x53, 0x73, 0xfd, 0xe1, 0x49, 0xc1, + 0xcf, 0xc3, 0x64, 0x9b, 0x48, 0x69, 0x69, 0x6d, 0x44, 0xec, 0xb1, 0x24, 0x79, 0xc5, + 0xeb, 0xef, 0x99, 0x5f, 0x10, 0x02, 0x9f, 0x8b, 0x53, 0x0e, 0xeb, 0x3f, 0xdc, 0x2e, + 0x50, 0xe8, 0x75, 0x7f, 0xc0, 0xbb, 0x9e, 0x26, 0x30, 0x23, 0xdb, 0x82, 0xf8, 0x78, + 0xd9, 0xac, 0x7f, 0xfb, 0x0b, 0xd4, 0x39, 0x1d, 0xf1, 0xd8, 0x79, 0x89, 0x9a, 0x3e, + 0xf5, 0x7b, 0xfd, 0x0d, 0x1f, 0x77, 0x55, 0x64, 0x8e, 0xdd, 0x85, 0xbb, 0x05, 0x2a, + 0x6e, 0xdf, 0x71, 0xcd, 0x26, 0x28, 0xc9, 0x87, 0x42, 0x9f, 0x36, 0xdc, 0x50, 0x5c, + 0xcc, 0x43, 0xf3, 0x0e, 0x7a, 0x86, 0x9c, 0x9e, 0x25, 0x5e, 0x2a, 0xf9, 0xfc, 0xf3, + 0x0c, 0x12, 0x17, 0x96, 0xd1, 0x90, 0x00, 0x09, 0x60, 0xcb, 0x6f, 0xe2, 0xf1, 0xbf, + 0x24, 0x61, 0x18, 0xb4, 0x98, 0xf3, 0x24, 0x7f, 0x9d, 0x48, 0x4c, 0x73, 0xcf, 0x09, + 0x39, 0x30, 0x39, 0xe4, 0x53, 0x26, 0xb8, 0xff, 0xff, 0xb3, 0xe7, 0xe6, 0x15, 0x9c, + 0x46, 0x69, 0x9f, 0x10, 0x07, 0x92, 0xd4, 0x67, 0x29, 0x50, 0x34, 0x8a, 0x90, 0x55, + 0x2e, 0x45, 0x94, 0x3b, 0xee, 0xac, 0xf0, 0x3f, 0x32, 0x16, 0xf9, 0x4e, 0x27, 0x4d, + 0x63, 0xd6, 0x37, 0xd9, 0xf1, 0x90, 0xe8, 0xa2, 0x66, 0xcd, 0xee, 0xf1, 0x53, 0x53, + 0x0b, 0xee, 0x5c, 0xb8, 0x35, 0x52, 0x60, 0x50, 0x5c, 0x2c, 0x2e, 0x5d, 0x99, 0x0f, + 0xff, 0xdc, 0x34, 0xec, 0x0f, 0xf7, 0xf1, 0xaf, 0x81, 0xb2, 0x4c, 0xed, 0x0e, 0xfa, + 0x62, 0x13, 0xda, 0x6c, 0x7c, 0x60, 0xc4, 0x87, 0xf5, 0xf7, 0xb0, 0x3f, 0x81, 0x60, + 0xa0, 0x57, 0xf4, 0x6d, 0x05, 0xbf, 0x82, 0x18, 0xb3, 0xad, 0xd9, 0xc0, 0x68, 0x93, + 0xbd, 0x02, 0xdb, 0x9b, 0x61, 0x19, 0x1d, 0xfb, 0x13, 0x3b, 0xfa, 0xbe, 0x48, 0x58, + 0xe4, 0x7a, 0x4c, 0xc3, 0x2e, 0x41, 0x6e, 0xc0, 0x8b, 0x8a, 0xc7, 0x91, 0x5a, 0x43, + 0x73, 0x3f, 0x44, 0x06, 0xe9, 0xd9, 0x67, 0xc5, 0x60, 0xf3, 0x44, 0xd7, 0xe9, 0x04, + 0xa2, 0x80, 0x45, 0xd9, 0x9f, 0x3a, 0xf8, 0xc8, 0x2e, 0x97, 0xe1, 0xb9, 0xc1, 0xb2, + 0x05, 0xe5, 0x85, 0xfb, 0xeb, 0xb4, 0x8f, 0xaf, 0x58, 0xf1, 0xb6, 0x5d, 0xca, 0x24, + 0x97, 0xe0, 0x9a, 0x70, 0xaa, 0xd4, 0x86, 0x5f, 0x85, 0x71, 0x5a, 0x28, 0x0e, 0x18, + 0x6f, 0x3f, 0xc1, 0x74, 0x0d, 0x81, 0x84, 0xd3, 0x3e, 0x83, 0x22, 0x16, 0x95, 0x21, + 0xcd, 0xc1, 0x32, 0x21, 0x29, 0x39, 0xc8, 0x4a, 0x10, 0x89, 0x64, 0xe2, 0xde, 0x74, + 0xb6, 0xea, 0x55, 0xb4, 0xcb, 0x8f, 0x6f, 0x9b, 0xee, 0x98, 0xb1, 0x0d, 0x41, 0x51, + 0x09, 0x45, 0x5f, 0x48, 0xb7, 0x76, 0x08, 0x2d, 0xc3, 0x0b, 0x4b, 0xc7, 0x34, 0x77, + 0x07, 0x55, 0x11, 0x70, 0x03, 0x08, 0x15, 0x8c, 0xe2, 0xf2, 0xf9, 0xbf, 0x0f, 0x69, + 0x1b, 0x2c, 0xe5, 0x3e, 0x61, 0x14, 0x2c, 0xb7, 0x40, 0xc1, 0x5b, 0x7b, 0x62, 0x3c, + 0xf4, 0x8b, 0x3f, 0x7b, 0xfe, 0xfa, 0x31, 0xbc, 0xdc, 0x66, 0x5c, 0x6d, 0x71, 0x23, + 0xe9, 0x53, 0x50, 0x81, 0x13, 0x75, 0x94, 0x7b, 0x05, 0x5a, 0x43, 0xdb, 0x07, 0xe0, + 0x3f, 0x33, 0x62, 0x7d, 0xf5, 0xc6, 0x38, 0xbf, + ], + cv_net: [ + 0x00, 0x55, 0xf3, 0x5c, 0x6c, 0x82, 0x62, 0xac, 0x74, 0xfe, 0x27, 0xd7, 0x2a, 0x33, + 0xbd, 0xb9, 0x6f, 0x1c, 0xe0, 0x57, 0xc3, 0x30, 0xd1, 0xcc, 0xba, 0x2f, 0x7d, 0xa8, + 0x71, 0x55, 0x00, 0xb5, + ], + nf_old: [ + 0x3b, 0x37, 0x96, 0x78, 0x0c, 0x0a, 0xec, 0x14, 0xed, 0x28, 0x74, 0xb5, 0x23, 0x06, + 0xe1, 0xc3, 0xd5, 0xde, 0x45, 0x93, 0xc6, 0x69, 0xaf, 0x1c, 0xaf, 0x11, 0xbc, 0xb4, + 0xd3, 0x5c, 0x60, 0x12, + ], + cmx: [ + 0x4d, 0xa9, 0xdf, 0xdc, 0x70, 0x8c, 0xe8, 0xa0, 0x77, 0xa0, 0x6e, 0xc0, 0x67, 0x79, + 0x24, 0xcf, 0x37, 0x70, 0xed, 0xc2, 0x07, 0xfd, 0x5e, 0x7d, 0x69, 0x5f, 0x71, 0xb0, + 0x15, 0xbb, 0x03, 0x05, + ], + esk: [ + 0xae, 0xec, 0x0d, 0xb9, 0x0e, 0x55, 0x83, 0x3c, 0x8b, 0xaf, 0x52, 0x6d, 0x66, 0x54, + 0xa1, 0x74, 0x5b, 0xa4, 0x4c, 0xad, 0x3c, 0xf9, 0xa6, 0x2c, 0xfb, 0xee, 0x5d, 0xe3, + 0x99, 0xca, 0x31, 0x26, + ], + ephemeral_key: [ + 0x2d, 0xa0, 0x59, 0x4c, 0xd8, 0x74, 0x91, 0x46, 0x52, 0x67, 0xe7, 0x2c, 0x61, 0x89, + 0x07, 0x91, 0xfe, 0xb4, 0x25, 0xa2, 0xbb, 0xcd, 0xda, 0xcf, 0xe4, 0x5a, 0x66, 0x62, + 0x2f, 0x49, 0xef, 0x35, + ], + shared_secret: [ + 0xe0, 0xb1, 0x52, 0x67, 0xfd, 0x21, 0x08, 0xeb, 0xbd, 0xd4, 0x16, 0x3f, 0x83, 0xad, + 0xef, 0xb6, 0x1c, 0x3e, 0xdf, 0x56, 0x6d, 0x94, 0x6f, 0xa1, 0xc1, 0x5e, 0x96, 0x46, + 0x43, 0xb1, 0x9c, 0x8e, + ], + k_enc: [ + 0x28, 0x48, 0xae, 0x53, 0xaa, 0xce, 0xbe, 0x7c, 0xab, 0x58, 0x73, 0x1d, 0xc2, 0x21, + 0x88, 0x1b, 0x60, 0x2c, 0xc5, 0xa5, 0x3b, 0xcc, 0x1f, 0x76, 0xc8, 0x20, 0xb0, 0xea, + 0x13, 0x55, 0x68, 0x8e, + ], + p_enc: [ + 0x02, 0xdd, 0xb7, 0xc5, 0xbc, 0x4d, 0xe9, 0xdf, 0x52, 0x1b, 0xb0, 0x4b, 0xad, 0x95, + 0x6d, 0xdc, 0x1e, 0xa7, 0xd7, 0x62, 0x2d, 0xd4, 0x17, 0xdf, 0x26, 0xdc, 0xd2, 0x20, + 0xf2, 0xb7, 0x31, 0x77, 0x2b, 0x43, 0x9e, 0x96, 0xd6, 0x14, 0xe1, 0xfa, 0xcb, 0x48, + 0x6c, 0x7a, 0x7d, 0x51, 0x71, 0xb1, 0xde, 0x35, 0x9f, 0x6a, 0xff, 0xd3, 0xa9, 0x6f, + 0x64, 0x9c, 0x96, 0x91, 0x02, 0xa1, 0x96, 0x4f, 0xb4, 0xb4, 0xa1, 0xa4, 0x27, 0x9c, + 0x68, 0xe6, 0xc3, 0x72, 0xe4, 0x21, 0x87, 0xd7, 0x54, 0xe8, 0x04, 0xa6, 0x16, 0x53, + 0x09, 0x20, 0x69, 0xfb, 0x9b, 0x6d, 0x25, 0x26, 0x68, 0x90, 0x80, 0x8b, 0x01, 0x5d, + 0xf2, 0x8c, 0x80, 0x10, 0x65, 0xda, 0x6f, 0xeb, 0xdc, 0x1a, 0x56, 0xbf, 0xd0, 0x02, + 0x62, 0x5a, 0xcf, 0xaa, 0x53, 0x73, 0xfd, 0xe1, 0x49, 0xc1, 0xcf, 0xc3, 0x64, 0x9b, + 0x48, 0x69, 0x69, 0x6d, 0x44, 0xec, 0xb1, 0x24, 0x79, 0xc5, 0xeb, 0xef, 0x99, 0x5f, + 0x10, 0x02, 0x9f, 0x8b, 0x53, 0x0e, 0xeb, 0x3f, 0xdc, 0x2e, 0x50, 0xe8, 0x75, 0x7f, + 0xc0, 0xbb, 0x9e, 0x26, 0x30, 0x23, 0xdb, 0x82, 0xf8, 0x78, 0xd9, 0xac, 0x7f, 0xfb, + 0x0b, 0xd4, 0x39, 0x1d, 0xf1, 0xd8, 0x79, 0x89, 0x9a, 0x3e, 0xf5, 0x7b, 0xfd, 0x0d, + 0x1f, 0x77, 0x55, 0x64, 0x8e, 0xdd, 0x85, 0xbb, 0x05, 0x2a, 0x6e, 0xdf, 0x71, 0xcd, + 0x26, 0x28, 0xc9, 0x87, 0x42, 0x9f, 0x36, 0xdc, 0x50, 0x5c, 0xcc, 0x43, 0xf3, 0x0e, + 0x7a, 0x86, 0x9c, 0x9e, 0x25, 0x5e, 0x2a, 0xf9, 0xfc, 0xf3, 0x0c, 0x12, 0x17, 0x96, + 0xd1, 0x90, 0x00, 0x09, 0x60, 0xcb, 0x6f, 0xe2, 0xf1, 0xbf, 0x24, 0x61, 0x18, 0xb4, + 0x98, 0xf3, 0x24, 0x7f, 0x9d, 0x48, 0x4c, 0x73, 0xcf, 0x09, 0x39, 0x30, 0x39, 0xe4, + 0x53, 0x26, 0xb8, 0xff, 0xff, 0xb3, 0xe7, 0xe6, 0x15, 0x9c, 0x46, 0x69, 0x9f, 0x10, + 0x07, 0x92, 0xd4, 0x67, 0x29, 0x50, 0x34, 0x8a, 0x90, 0x55, 0x2e, 0x45, 0x94, 0x3b, + 0xee, 0xac, 0xf0, 0x3f, 0x32, 0x16, 0xf9, 0x4e, 0x27, 0x4d, 0x63, 0xd6, 0x37, 0xd9, + 0xf1, 0x90, 0xe8, 0xa2, 0x66, 0xcd, 0xee, 0xf1, 0x53, 0x53, 0x0b, 0xee, 0x5c, 0xb8, + 0x35, 0x52, 0x60, 0x50, 0x5c, 0x2c, 0x2e, 0x5d, 0x99, 0x0f, 0xff, 0xdc, 0x34, 0xec, + 0x0f, 0xf7, 0xf1, 0xaf, 0x81, 0xb2, 0x4c, 0xed, 0x0e, 0xfa, 0x62, 0x13, 0xda, 0x6c, + 0x7c, 0x60, 0xc4, 0x87, 0xf5, 0xf7, 0xb0, 0x3f, 0x81, 0x60, 0xa0, 0x57, 0xf4, 0x6d, + 0x05, 0xbf, 0x82, 0x18, 0xb3, 0xad, 0xd9, 0xc0, 0x68, 0x93, 0xbd, 0x02, 0xdb, 0x9b, + 0x61, 0x19, 0x1d, 0xfb, 0x13, 0x3b, 0xfa, 0xbe, 0x48, 0x58, 0xe4, 0x7a, 0x4c, 0xc3, + 0x2e, 0x41, 0x6e, 0xc0, 0x8b, 0x8a, 0xc7, 0x91, 0x5a, 0x43, 0x73, 0x3f, 0x44, 0x06, + 0xe9, 0xd9, 0x67, 0xc5, 0x60, 0xf3, 0x44, 0xd7, 0xe9, 0x04, 0xa2, 0x80, 0x45, 0xd9, + 0x9f, 0x3a, 0xf8, 0xc8, 0x2e, 0x97, 0xe1, 0xb9, 0xc1, 0xb2, 0x05, 0xe5, 0x85, 0xfb, + 0xeb, 0xb4, 0x8f, 0xaf, 0x58, 0xf1, 0xb6, 0x5d, 0xca, 0x24, 0x97, 0xe0, 0x9a, 0x70, + 0xaa, 0xd4, 0x86, 0x5f, 0x85, 0x71, 0x5a, 0x28, 0x0e, 0x18, 0x6f, 0x3f, 0xc1, 0x74, + 0x0d, 0x81, 0x84, 0xd3, 0x3e, 0x83, 0x22, 0x16, 0x95, 0x21, 0xcd, 0xc1, 0x32, 0x21, + 0x29, 0x39, 0xc8, 0x4a, 0x10, 0x89, 0x64, 0xe2, 0xde, 0x74, 0xb6, 0xea, 0x55, 0xb4, + 0xcb, 0x8f, 0x6f, 0x9b, 0xee, 0x98, 0xb1, 0x0d, 0x41, 0x51, 0x09, 0x45, 0x5f, 0x48, + 0xb7, 0x76, 0x08, 0x2d, 0xc3, 0x0b, 0x4b, 0xc7, 0x34, 0x77, 0x07, 0x55, 0x11, 0x70, + 0x03, 0x08, 0x15, 0x8c, 0xe2, 0xf2, 0xf9, 0xbf, 0x0f, 0x69, 0x1b, 0x2c, 0xe5, 0x3e, + 0x61, 0x14, 0x2c, 0xb7, 0x40, 0xc1, 0x5b, 0x7b, 0x62, 0x3c, 0xf4, 0x8b, 0x3f, 0x7b, + 0xfe, 0xfa, 0x31, 0xbc, 0xdc, 0x66, 0x5c, 0x6d, 0x71, 0x23, 0xe9, 0x53, 0x50, 0x81, + 0x13, 0x75, 0x94, 0x7b, 0x05, 0x5a, 0x43, 0xdb, 0x07, 0xe0, 0x3f, 0x33, 0x62, 0x7d, + 0xf5, 0xc6, 0x38, 0xbf, + ], + c_enc: [ + 0xf1, 0x42, 0xc4, 0xe5, 0x0e, 0xef, 0x2c, 0x64, 0x44, 0xcc, 0xd4, 0x0b, 0x8c, 0x99, + 0xe5, 0x6a, 0x72, 0xec, 0x4e, 0x30, 0xcf, 0x73, 0x68, 0x75, 0xf0, 0xaa, 0x6b, 0x8e, + 0x6d, 0x9c, 0xc3, 0x67, 0x73, 0x2d, 0xbc, 0x9a, 0xf0, 0xb3, 0x7d, 0x1f, 0xca, 0x6d, + 0x5b, 0xdd, 0x1d, 0xc1, 0x23, 0x79, 0x29, 0x66, 0x99, 0x9d, 0x62, 0xea, 0xf8, 0xc5, + 0xfe, 0x8d, 0x99, 0x91, 0x84, 0xf2, 0x8b, 0x99, 0xec, 0xef, 0xcc, 0x8f, 0x14, 0x8d, + 0xbd, 0x52, 0x02, 0x6f, 0xdb, 0x48, 0xdf, 0xda, 0x7b, 0xad, 0xb6, 0xd1, 0xfc, 0xd2, + 0x9a, 0xd2, 0x19, 0xea, 0xbf, 0xbb, 0x44, 0x3f, 0x5d, 0x0f, 0x98, 0xb6, 0x6a, 0x3a, + 0x25, 0x73, 0x1b, 0x52, 0xd7, 0xf2, 0xdf, 0x70, 0x01, 0x4b, 0x4a, 0xc6, 0x99, 0x34, + 0x32, 0xf8, 0x98, 0x1e, 0x9c, 0xbf, 0xe1, 0x69, 0x13, 0xf6, 0x8a, 0x93, 0x5d, 0x2d, + 0xd0, 0x06, 0xd4, 0x28, 0xf1, 0x45, 0x53, 0xe7, 0x29, 0x86, 0xc7, 0x0f, 0xb4, 0x43, + 0x18, 0xd2, 0x7c, 0x4d, 0x6f, 0x6f, 0xd3, 0x92, 0x3a, 0xb0, 0xf6, 0x28, 0x9a, 0x02, + 0x48, 0x5e, 0x87, 0x17, 0xe5, 0x7d, 0xa0, 0x24, 0xeb, 0xe1, 0x6e, 0x9c, 0xf8, 0x35, + 0xcf, 0x53, 0xd2, 0x19, 0x4f, 0xd4, 0x25, 0x50, 0x06, 0xb8, 0x1b, 0xfd, 0x51, 0xd1, + 0xef, 0x5a, 0xe9, 0xf9, 0xef, 0x6a, 0xf6, 0x57, 0x41, 0x81, 0xe2, 0xe2, 0x26, 0x50, + 0xcb, 0x91, 0x2a, 0x6b, 0x89, 0x88, 0xa0, 0x28, 0x86, 0x32, 0xbc, 0x73, 0x62, 0xbb, + 0xe1, 0x87, 0x23, 0xd8, 0x27, 0xf7, 0x94, 0x58, 0x62, 0x26, 0x0d, 0xf7, 0x8e, 0x95, + 0xd7, 0xd5, 0xe3, 0x31, 0x3f, 0x5a, 0xff, 0x72, 0xe2, 0x1c, 0xe2, 0xdf, 0x00, 0xee, + 0x7e, 0x81, 0x5a, 0xba, 0x17, 0xcc, 0xde, 0x15, 0xc2, 0x7e, 0xee, 0x08, 0x5f, 0x52, + 0xf3, 0x6c, 0x02, 0xec, 0xd6, 0x6c, 0xe1, 0x8b, 0x40, 0x15, 0xbe, 0xb6, 0x09, 0x23, + 0x3f, 0x6e, 0xb2, 0x8e, 0x4a, 0xd5, 0xcd, 0xbe, 0x6f, 0xdc, 0xab, 0x68, 0xbf, 0xbb, + 0x6f, 0xfd, 0x87, 0xd3, 0x86, 0xd8, 0x7e, 0xb1, 0xfe, 0x00, 0x34, 0x27, 0x0f, 0x41, + 0x27, 0x1e, 0xa0, 0x1f, 0x9e, 0xae, 0xa9, 0xe8, 0x9f, 0x78, 0x35, 0x9e, 0x41, 0x73, + 0x94, 0xbb, 0x9d, 0xf5, 0xb6, 0x1c, 0x36, 0xe3, 0x0b, 0xc1, 0xce, 0x4a, 0xb1, 0xbd, + 0xd7, 0x9f, 0xa4, 0x08, 0x3e, 0x82, 0x8d, 0xd1, 0x04, 0xe4, 0x73, 0x80, 0xcd, 0x83, + 0xcd, 0x65, 0x9d, 0xf4, 0x4d, 0xb9, 0x43, 0xdc, 0x07, 0xbc, 0xc8, 0x07, 0x05, 0x04, + 0xa1, 0xc6, 0x55, 0x23, 0x02, 0xe7, 0x4b, 0xe4, 0xb9, 0xc4, 0x32, 0x75, 0xec, 0xc2, + 0x88, 0xce, 0xda, 0x41, 0x59, 0xa9, 0xcc, 0x55, 0x7c, 0x18, 0x19, 0x5c, 0xec, 0x92, + 0x62, 0x24, 0xd8, 0xd6, 0x9e, 0x98, 0xe1, 0x83, 0x5a, 0x2e, 0x29, 0x05, 0x63, 0xef, + 0x20, 0xd0, 0x83, 0xd1, 0x4e, 0x93, 0xcc, 0x1f, 0x3f, 0x76, 0x3e, 0xf5, 0x58, 0x0e, + 0x13, 0x5f, 0xae, 0x1b, 0xb8, 0x54, 0x4a, 0x0c, 0x5c, 0x6d, 0x88, 0x17, 0x41, 0xe4, + 0x51, 0x34, 0x47, 0xac, 0xeb, 0x09, 0x33, 0xe6, 0xeb, 0xaf, 0x0c, 0xe3, 0x13, 0xc1, + 0x8c, 0x9a, 0xf9, 0x5b, 0xa5, 0x61, 0x31, 0xf7, 0x8f, 0x42, 0x72, 0x41, 0x22, 0x65, + 0xbc, 0xf4, 0xc5, 0xf6, 0x80, 0x89, 0x3c, 0xcd, 0xa5, 0x73, 0x7d, 0xa8, 0x23, 0xb7, + 0x63, 0x6e, 0x98, 0xdb, 0xa5, 0x62, 0x44, 0xf2, 0xb9, 0x6a, 0x10, 0x90, 0xa6, 0x60, + 0x38, 0x15, 0xc0, 0xef, 0x54, 0x97, 0x50, 0xf2, 0x47, 0x06, 0x19, 0x0b, 0x55, 0x76, + 0x6e, 0x8a, 0x62, 0x09, 0xa1, 0xc2, 0x2f, 0x67, 0xe8, 0x77, 0x62, 0x66, 0xb6, 0xfa, + 0xe4, 0x5b, 0xf7, 0x94, 0x90, 0x7f, 0x64, 0x71, 0x4f, 0xbe, 0x26, 0xc3, 0x0a, 0xc4, + 0x04, 0x11, 0xf5, 0xe6, 0x4f, 0xc1, 0x66, 0xc8, 0x4f, 0x28, 0xb8, 0x23, 0xfd, 0xaa, + 0x68, 0x32, 0xa3, 0x25, 0x63, 0x31, 0x7d, 0x25, 0x4c, 0x53, 0x16, 0x9b, 0x9f, 0xfb, + 0x24, 0x53, 0xa1, 0x12, 0x2f, 0xa4, 0x4c, 0x7f, 0x17, 0xc1, 0x36, 0xb5, 0x7e, 0x20, + 0xad, 0x17, 0x7a, 0x7e, 0xee, 0xbf, 0x9f, 0x56, 0xfb, 0x0b, 0x55, 0xcc, 0xcf, 0x68, + 0x2b, 0x8a, 0x5b, 0xd8, 0xa7, 0x45, + ], + ock: [ + 0x06, 0x3c, 0x83, 0xa4, 0x95, 0x74, 0xe7, 0x80, 0x35, 0x89, 0xcc, 0x3d, 0x34, 0xb4, + 0x38, 0x90, 0xf3, 0xd7, 0x63, 0x87, 0x35, 0xe7, 0xbd, 0x5e, 0xbd, 0xd1, 0xa5, 0xea, + 0xb9, 0xd9, 0xc5, 0xd6, + ], + op: [ + 0x65, 0x3d, 0x07, 0xc9, 0x07, 0x94, 0x6a, 0xc3, 0x02, 0x0e, 0xbd, 0xe1, 0xb4, 0xf6, + 0x10, 0x21, 0x0c, 0x30, 0xc4, 0x50, 0xe4, 0x27, 0x12, 0x65, 0xa0, 0x5d, 0x6e, 0xce, + 0x44, 0x6d, 0xf4, 0x39, 0xae, 0xec, 0x0d, 0xb9, 0x0e, 0x55, 0x83, 0x3c, 0x8b, 0xaf, + 0x52, 0x6d, 0x66, 0x54, 0xa1, 0x74, 0x5b, 0xa4, 0x4c, 0xad, 0x3c, 0xf9, 0xa6, 0x2c, + 0xfb, 0xee, 0x5d, 0xe3, 0x99, 0xca, 0x31, 0x26, + ], + c_out: [ + 0xca, 0xb7, 0x8d, 0xd1, 0x83, 0xf3, 0xe1, 0x6a, 0xf7, 0x6e, 0x9a, 0x90, 0x3d, 0xd4, + 0x2a, 0x96, 0x67, 0xbf, 0xe7, 0x08, 0xce, 0x88, 0x79, 0xb8, 0x38, 0x6e, 0x62, 0xac, + 0x9f, 0x66, 0x74, 0xf4, 0x93, 0x59, 0x5d, 0xa5, 0x06, 0xe9, 0xef, 0x06, 0xbb, 0xa2, + 0x4a, 0x93, 0x80, 0x60, 0xe5, 0xd3, 0x82, 0xcc, 0x75, 0xdf, 0xab, 0x97, 0xe0, 0xf8, + 0x49, 0x4b, 0x47, 0x6a, 0xdf, 0x4f, 0xfd, 0x96, 0xff, 0x7f, 0x1b, 0x4f, 0x16, 0xf8, + 0x59, 0x4b, 0x7c, 0x5a, 0x21, 0x9c, 0x7a, 0x00, 0xad, 0x15, + ], + }, + ] +} diff --git a/zk-crates/zk-headstash/src/test_vectors/zip32.rs b/zk-crates/zk-headstash/src/test_vectors/zip32.rs new file mode 100644 index 0000000..755294d --- /dev/null +++ b/zk-crates/zk-headstash/src/test_vectors/zip32.rs @@ -0,0 +1,112 @@ +//! Test vectors for Orchard ZIP 32 key derivation. + +pub(crate) struct TestVector { + pub(crate) sk: [u8; 32], + pub(crate) c: [u8; 32], + pub(crate) xsk: [u8; 73], + pub(crate) fp: [u8; 32], +} + +// From https://github.com/zcash-hackworks/zcash-test-vectors/blob/master/orchard_zip32.py +pub(crate) const TEST_VECTORS: &[TestVector] = &[ + TestVector { + sk: [ + 0x7e, 0xee, 0x3c, 0x10, 0x17, 0x87, 0x09, 0x90, 0xa3, 0xdd, 0x68, 0x91, 0xb8, 0x2f, + 0x80, 0xbe, 0x89, 0x76, 0xc1, 0xe7, 0xdc, 0x20, 0xd6, 0x08, 0x17, 0xa5, 0xe8, 0x8e, + 0x8b, 0x2c, 0xd4, 0xb8, + ], + c: [ + 0xab, 0x8b, 0x7a, 0x00, 0x50, 0x9e, 0xf2, 0x0e, 0x46, 0x9b, 0x52, 0x92, 0xb6, 0x1d, + 0x47, 0x4b, 0x7c, 0xff, 0xcb, 0x16, 0x57, 0x92, 0x4c, 0xda, 0x72, 0x02, 0x50, 0xae, + 0x40, 0x52, 0x66, 0x77, + ], + xsk: [ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0x8b, 0x7a, 0x00, 0x50, + 0x9e, 0xf2, 0x0e, 0x46, 0x9b, 0x52, 0x92, 0xb6, 0x1d, 0x47, 0x4b, 0x7c, 0xff, 0xcb, + 0x16, 0x57, 0x92, 0x4c, 0xda, 0x72, 0x02, 0x50, 0xae, 0x40, 0x52, 0x66, 0x77, 0x7e, + 0xee, 0x3c, 0x10, 0x17, 0x87, 0x09, 0x90, 0xa3, 0xdd, 0x68, 0x91, 0xb8, 0x2f, 0x80, + 0xbe, 0x89, 0x76, 0xc1, 0xe7, 0xdc, 0x20, 0xd6, 0x08, 0x17, 0xa5, 0xe8, 0x8e, 0x8b, + 0x2c, 0xd4, 0xb8, + ], + fp: [ + 0xff, 0x4c, 0xda, 0x50, 0x02, 0xc8, 0xd1, 0x82, 0x05, 0x88, 0x07, 0xb8, 0x4e, 0x61, + 0x6b, 0x6d, 0x33, 0x9e, 0x1b, 0xbe, 0xec, 0xea, 0x01, 0x65, 0x05, 0x68, 0xd8, 0x91, + 0xa4, 0x38, 0xe7, 0x06, + ], + }, + TestVector { + sk: [ + 0x98, 0xd7, 0x03, 0xfc, 0xb4, 0x05, 0x04, 0xc9, 0x5b, 0x3b, 0x6e, 0xd1, 0x0e, 0xcd, + 0x50, 0x08, 0x2c, 0xff, 0x97, 0xdf, 0xd1, 0xdd, 0x9a, 0xa0, 0x91, 0x3c, 0x78, 0xf9, + 0x77, 0xc9, 0x62, 0xaf, + ], + c: [ + 0x6a, 0x04, 0x1d, 0xfb, 0x9c, 0xfe, 0xbe, 0xe9, 0x7c, 0xb1, 0x85, 0x4f, 0xdc, 0x48, + 0x1c, 0xc0, 0x4f, 0x02, 0xc9, 0x57, 0x7a, 0xa6, 0xf1, 0x3b, 0x2c, 0x44, 0x5b, 0x80, + 0xa9, 0x66, 0x9a, 0x22, + ], + xsk: [ + 0x01, 0xff, 0x4c, 0xda, 0x50, 0x01, 0x00, 0x00, 0x80, 0x6a, 0x04, 0x1d, 0xfb, 0x9c, + 0xfe, 0xbe, 0xe9, 0x7c, 0xb1, 0x85, 0x4f, 0xdc, 0x48, 0x1c, 0xc0, 0x4f, 0x02, 0xc9, + 0x57, 0x7a, 0xa6, 0xf1, 0x3b, 0x2c, 0x44, 0x5b, 0x80, 0xa9, 0x66, 0x9a, 0x22, 0x98, + 0xd7, 0x03, 0xfc, 0xb4, 0x05, 0x04, 0xc9, 0x5b, 0x3b, 0x6e, 0xd1, 0x0e, 0xcd, 0x50, + 0x08, 0x2c, 0xff, 0x97, 0xdf, 0xd1, 0xdd, 0x9a, 0xa0, 0x91, 0x3c, 0x78, 0xf9, 0x77, + 0xc9, 0x62, 0xaf, + ], + fp: [ + 0x32, 0xbb, 0xdc, 0x92, 0x1d, 0x06, 0x6f, 0x23, 0x5d, 0xc9, 0x3e, 0x91, 0x3b, 0x8f, + 0xe1, 0xfd, 0x5b, 0x9f, 0x7f, 0x6a, 0x13, 0xd5, 0x6f, 0x18, 0xec, 0x0d, 0x36, 0x20, + 0xd1, 0xf7, 0xb9, 0xa6, + ], + }, + TestVector { + sk: [ + 0x99, 0xaf, 0xd8, 0x89, 0x4b, 0xaa, 0xd5, 0x87, 0x84, 0xd0, 0xec, 0x08, 0xf5, 0x14, + 0x8e, 0xe2, 0xc2, 0xa1, 0x7b, 0x2b, 0x29, 0x4b, 0x08, 0xef, 0x9e, 0x0a, 0x0c, 0xf1, + 0x4b, 0xcc, 0x09, 0x20, + ], + c: [ + 0x6d, 0xa8, 0xb5, 0x7a, 0x36, 0xc7, 0x7a, 0xd6, 0x41, 0x2a, 0x9d, 0xc0, 0x11, 0x5f, + 0x12, 0xac, 0xed, 0x0e, 0xe0, 0x1c, 0x40, 0x2a, 0x0c, 0xf0, 0xa5, 0x07, 0xcb, 0x17, + 0xfc, 0x7b, 0xbd, 0x1d, + ], + xsk: [ + 0x02, 0x32, 0xbb, 0xdc, 0x92, 0x02, 0x00, 0x00, 0x80, 0x6d, 0xa8, 0xb5, 0x7a, 0x36, + 0xc7, 0x7a, 0xd6, 0x41, 0x2a, 0x9d, 0xc0, 0x11, 0x5f, 0x12, 0xac, 0xed, 0x0e, 0xe0, + 0x1c, 0x40, 0x2a, 0x0c, 0xf0, 0xa5, 0x07, 0xcb, 0x17, 0xfc, 0x7b, 0xbd, 0x1d, 0x99, + 0xaf, 0xd8, 0x89, 0x4b, 0xaa, 0xd5, 0x87, 0x84, 0xd0, 0xec, 0x08, 0xf5, 0x14, 0x8e, + 0xe2, 0xc2, 0xa1, 0x7b, 0x2b, 0x29, 0x4b, 0x08, 0xef, 0x9e, 0x0a, 0x0c, 0xf1, 0x4b, + 0xcc, 0x09, 0x20, + ], + fp: [ + 0x36, 0xa5, 0x7c, 0x4f, 0xc5, 0xb8, 0xb4, 0xa3, 0xd6, 0x2f, 0x22, 0xa5, 0x50, 0x08, + 0x78, 0xf3, 0x93, 0x85, 0x6b, 0x7e, 0xcc, 0xe7, 0x71, 0xad, 0x59, 0x7c, 0xa9, 0x64, + 0xb9, 0x86, 0x37, 0xd9, + ], + }, + TestVector { + sk: [ + 0x96, 0x43, 0x9e, 0xa3, 0x48, 0xa4, 0xb2, 0xce, 0x4e, 0xc7, 0xbe, 0xb4, 0x54, 0x3c, + 0x70, 0x27, 0x4c, 0x8f, 0x76, 0x49, 0x5d, 0x60, 0xc5, 0xfa, 0x5f, 0x01, 0x8b, 0x68, + 0xf3, 0xc3, 0x23, 0x67, + ], + c: [ + 0xb1, 0x96, 0xe9, 0xb5, 0x80, 0x9d, 0x76, 0x57, 0x7a, 0x89, 0x44, 0xc3, 0xf8, 0xc8, + 0xa8, 0x3f, 0x93, 0xf0, 0xc8, 0xf5, 0xac, 0xe6, 0xe7, 0xbc, 0x9c, 0xe4, 0x39, 0x6c, + 0x03, 0x4d, 0x93, 0xfe, + ], + xsk: [ + 0x03, 0x36, 0xa5, 0x7c, 0x4f, 0x03, 0x00, 0x00, 0x80, 0xb1, 0x96, 0xe9, 0xb5, 0x80, + 0x9d, 0x76, 0x57, 0x7a, 0x89, 0x44, 0xc3, 0xf8, 0xc8, 0xa8, 0x3f, 0x93, 0xf0, 0xc8, + 0xf5, 0xac, 0xe6, 0xe7, 0xbc, 0x9c, 0xe4, 0x39, 0x6c, 0x03, 0x4d, 0x93, 0xfe, 0x96, + 0x43, 0x9e, 0xa3, 0x48, 0xa4, 0xb2, 0xce, 0x4e, 0xc7, 0xbe, 0xb4, 0x54, 0x3c, 0x70, + 0x27, 0x4c, 0x8f, 0x76, 0x49, 0x5d, 0x60, 0xc5, 0xfa, 0x5f, 0x01, 0x8b, 0x68, 0xf3, + 0xc3, 0x23, 0x67, + ], + fp: [ + 0xbe, 0x1a, 0x1b, 0x66, 0x1d, 0x2c, 0xa3, 0x19, 0x82, 0x2a, 0x32, 0x55, 0x0d, 0x6d, + 0xc4, 0x88, 0xb6, 0x57, 0x1e, 0x0c, 0xd7, 0x81, 0xd5, 0x07, 0x8b, 0x8f, 0x7b, 0xa3, + 0x66, 0xdd, 0xd3, 0x68, + ], + }, +]; diff --git a/zk-crates/zk-headstash/src/tree.rs b/zk-crates/zk-headstash/src/tree.rs new file mode 100644 index 0000000..dee5b3a --- /dev/null +++ b/zk-crates/zk-headstash/src/tree.rs @@ -0,0 +1,414 @@ +//! Types related to Orchard note commitment trees and anchors. + +use alloc::vec::Vec; +use core::iter; + +use crate::{ + constants::{ + sinsemilla::{i2lebsp_k, L_ORCHARD_MERKLE, MERKLE_CRH_PERSONALIZATION}, + MERKLE_DEPTH_ORCHARD, + }, + note::commitment::ExtractedNoteCommitment, +}; + +use incrementalmerkletree::{Hashable, Level}; +use pasta_curves::pallas; +use sinsemilla::HashDomain; + +use ff::{Field, PrimeField, PrimeFieldBits}; +use lazy_static::lazy_static; +use rand::RngCore; +use serde::de::{Deserializer, Error}; +use serde::ser::Serializer; +use serde::{Deserialize, Serialize}; +use subtle::{Choice, ConditionallySelectable, CtOption}; + +// The uncommitted leaf is defined as pallas::Base(2). +// +lazy_static! { + static ref UNCOMMITTED_ORCHARD: pallas::Base = pallas::Base::from(2); + pub(crate) static ref EMPTY_ROOTS: Vec = { + iter::empty() + .chain(Some(MerkleHashOrchard::empty_leaf())) + .chain( + (0..MERKLE_DEPTH_ORCHARD).scan(MerkleHashOrchard::empty_leaf(), |state, l| { + let l = l as u8; + *state = MerkleHashOrchard::combine(l.into(), state, state); + Some(*state) + }), + ) + .collect() + }; +} + +/// The root of an Orchard commitment tree. This must be a value +/// in the range {0..=q_ℙ-1} +#[derive(Eq, PartialEq, Clone, Copy, Debug)] +pub struct Anchor(pallas::Base); + +impl From for Anchor { + fn from(anchor_field: pallas::Base) -> Anchor { + Anchor(anchor_field) + } +} + +impl From for Anchor { + fn from(anchor: MerkleHashOrchard) -> Anchor { + Anchor(anchor.0) + } +} + +impl Anchor { + /// The anchor of the empty Orchard note commitment tree. + /// + /// This anchor does not correspond to any valid anchor for a spend, so it + /// may only be used for coinbase bundles or in circumstances where Orchard + /// functionality is not active. + pub fn empty_tree() -> Anchor { + Anchor(MerkleHashOrchard::empty_root(Level::from(MERKLE_DEPTH_ORCHARD as u8)).0) + } + + pub(crate) fn inner(&self) -> pallas::Base { + self.0 + } + + /// Parses an Orchard anchor from a byte encoding. + pub fn from_bytes(bytes: [u8; 32]) -> CtOption { + pallas::Base::from_repr(bytes).map(Anchor) + } + + /// Returns the byte encoding of this anchor. + pub fn to_bytes(self) -> [u8; 32] { + self.0.to_repr() + } +} + +/// The Merkle path from a leaf of the note commitment tree +/// to its anchor. +#[derive(Clone, Debug)] +pub struct MerklePath { + position: u32, + auth_path: [MerkleHashOrchard; MERKLE_DEPTH_ORCHARD], +} + +#[cfg(any(test, feature = "test-dependencies"))] +#[cfg_attr(docsrs, doc(cfg(feature = "test-dependencies")))] +impl From<(incrementalmerkletree::Position, Vec)> for MerklePath { + fn from(path: (incrementalmerkletree::Position, Vec)) -> Self { + let position: u64 = path.0.into(); + Self { + position: position as u32, + auth_path: path.1.try_into().unwrap(), + } + } +} + +impl From> for MerklePath { + fn from(path: incrementalmerkletree::MerklePath) -> Self { + let position: u64 = path.position().into(); + Self { + position: position as u32, + auth_path: path.path_elems().try_into().unwrap(), + } + } +} + +impl MerklePath { + /// Generates a dummy Merkle path for use in dummy spent notes. + pub(crate) fn dummy(mut rng: &mut impl RngCore) -> Self { + MerklePath { + position: rng.next_u32(), + auth_path: [(); MERKLE_DEPTH_ORCHARD] + .map(|_| MerkleHashOrchard(pallas::Base::random(&mut rng))), + } + } + + /// Instantiates a new Merkle path given a leaf position and authentication path. + pub(crate) fn new(position: u32, auth_path: [pallas::Base; MERKLE_DEPTH_ORCHARD]) -> Self { + Self::from_parts(position, auth_path.map(MerkleHashOrchard)) + } + + /// Instantiates a new Merkle path given a leaf position and authentication path. + pub fn from_parts(position: u32, auth_path: [MerkleHashOrchard; MERKLE_DEPTH_ORCHARD]) -> Self { + Self { + position, + auth_path, + } + } + + /// + /// The layer with 2^n nodes is called "layer n": + /// - leaves are at layer MERKLE_DEPTH_ORCHARD = 32; + /// - the root is at layer 0. + /// `l` is MERKLE_DEPTH_ORCHARD - layer - 1. + /// - when hashing two leaves, we produce a node on the layer above the leaves, i.e. + /// layer = 31, l = 0 + /// - when hashing to the final root, we produce the anchor with layer = 0, l = 31. + pub fn root(&self, cmx: ExtractedNoteCommitment) -> Anchor { + self.auth_path + .iter() + .enumerate() + .fold(MerkleHashOrchard::from_cmx(&cmx), |node, (l, sibling)| { + let l = l as u8; + if self.position & (1 << l) == 0 { + MerkleHashOrchard::combine(l.into(), &node, sibling) + } else { + MerkleHashOrchard::combine(l.into(), sibling, &node) + } + }) + .into() + } + + /// Returns the position of the leaf using this Merkle path. + pub fn position(&self) -> u32 { + self.position + } + + /// Returns the authentication path. + pub fn auth_path(&self) -> [MerkleHashOrchard; MERKLE_DEPTH_ORCHARD] { + self.auth_path + } +} + +/// A newtype wrapper for leaves and internal nodes in the Orchard +/// incremental note commitment tree. +#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub struct MerkleHashOrchard(pallas::Base); + +impl MerkleHashOrchard { + /// Creates an incremental tree leaf digest from the specified + /// Orchard extracted note commitment. + pub fn from_cmx(value: &ExtractedNoteCommitment) -> Self { + MerkleHashOrchard(value.inner()) + } + + /// Only used in the circuit. + pub(crate) fn inner(&self) -> pallas::Base { + self.0 + } + + /// Convert this digest to its canonical byte representation. + pub fn to_bytes(&self) -> [u8; 32] { + self.0.to_repr() + } + + /// Parses a incremental tree leaf digest from the bytes of + /// a note commitment. + /// + /// Returns the empty `CtOption` if the provided bytes represent + /// a non-canonical encoding. + pub fn from_bytes(bytes: &[u8; 32]) -> CtOption { + pallas::Base::from_repr(*bytes).map(MerkleHashOrchard) + } +} + +impl ConditionallySelectable for MerkleHashOrchard { + fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self { + MerkleHashOrchard(pallas::Base::conditional_select(&a.0, &b.0, choice)) + } +} + +impl Hashable for MerkleHashOrchard { + fn empty_leaf() -> Self { + MerkleHashOrchard(*UNCOMMITTED_ORCHARD) + } + + /// Implements `MerkleCRH^Orchard` as defined in + /// + /// + /// The layer with 2^n nodes is called "layer n": + /// - leaves are at layer MERKLE_DEPTH_ORCHARD = 32; + /// - the root is at layer 0. + /// `l` is MERKLE_DEPTH_ORCHARD - layer - 1. + /// - when hashing two leaves, we produce a node on the layer above the leaves, i.e. + /// layer = 31, l = 0 + /// - when hashing to the final root, we produce the anchor with layer = 0, l = 31. + fn combine(level: Level, left: &Self, right: &Self) -> Self { + // MerkleCRH Sinsemilla hash domain. + let domain = HashDomain::new(MERKLE_CRH_PERSONALIZATION); + + MerkleHashOrchard( + domain + .hash( + iter::empty() + .chain(i2lebsp_k(level.into()).iter().copied()) + .chain(left.0.to_le_bits().iter().by_vals().take(L_ORCHARD_MERKLE)) + .chain(right.0.to_le_bits().iter().by_vals().take(L_ORCHARD_MERKLE)), + ) + .unwrap_or(pallas::Base::zero()), + ) + } + + fn empty_root(level: Level) -> Self { + EMPTY_ROOTS[::from(level)] + } +} + +impl Serialize for MerkleHashOrchard { + fn serialize(&self, serializer: S) -> Result { + self.to_bytes().serialize(serializer) + } +} + +impl<'de> Deserialize<'de> for MerkleHashOrchard { + fn deserialize>(deserializer: D) -> Result { + let parsed = <[u8; 32]>::deserialize(deserializer)?; + >::from(Self::from_bytes(&parsed)).ok_or_else(|| { + Error::custom( + "Attempted to deserialize a non-canonical representation of a Pallas base field element.", + ) + }) + } +} + +/// Test utilities available under the `test-dependencies` feature flag. +#[cfg(feature = "test-dependencies")] +pub mod testing { + use ff::Field; + use rand::{ + distributions::{Distribution, Standard}, + RngCore, + }; + + use super::MerkleHashOrchard; + + impl MerkleHashOrchard { + /// Return a random fake `MerkleHashOrchard`. + pub fn random(rng: &mut impl RngCore) -> Self { + Standard.sample(rng) + } + } + + impl Distribution for Standard { + fn sample(&self, rng: &mut R) -> MerkleHashOrchard { + MerkleHashOrchard(pasta_curves::Fp::random(rng)) + } + } +} + +#[cfg(test)] +mod tests { + use { + crate::tree::{MerkleHashOrchard, EMPTY_ROOTS}, + group::ff::PrimeField, + incrementalmerkletree::{frontier::Frontier, Level, Marking, MerklePath, Retention}, + pasta_curves::pallas, + shardtree::{store::memory::MemoryShardStore, ShardTree}, + }; + + #[test] + fn test_vectors() { + let tv_empty_roots = crate::test_vectors::commitment_tree::test_vectors().empty_roots; + + for (height, root) in EMPTY_ROOTS.iter().enumerate() { + assert_eq!(tv_empty_roots[height], root.to_bytes()); + } + + let mut tree: ShardTree, 4, 3> = + ShardTree::new(MemoryShardStore::empty(), 100); + for (i, tv) in crate::test_vectors::merkle_path::test_vectors() + .into_iter() + .enumerate() + { + let checkpoint_id = u32::try_from(i).unwrap(); + let cmx = MerkleHashOrchard::from_bytes(&tv.leaves[i]).unwrap(); + tree.append( + cmx, + Retention::Checkpoint { + id: checkpoint_id, + marking: Marking::Marked, + }, + ) + .unwrap(); + + let root = tree.root_at_checkpoint_id(&checkpoint_id).unwrap().unwrap(); + assert_eq!(root.0, pallas::Base::from_repr(tv.root).unwrap()); + + // Check paths for all leaves up to this point. The test vectors include paths + // for not-yet-appended leaves (using UNCOMMITTED_ORCHARD as the leaf value), + // but BridgeTree doesn't encode these. + for j in 0..=i { + let position = j.try_into().unwrap(); + assert_eq!( + tree.witness_at_checkpoint_id(position, &checkpoint_id) + .unwrap(), + MerklePath::from_parts( + tv.paths[j] + .iter() + .map(|v| MerkleHashOrchard::from_bytes(v).unwrap()) + .collect(), + position + ) + .ok() + ); + } + } + } + + #[test] + fn empty_roots_incremental() { + use incrementalmerkletree::Hashable; + + let tv_empty_roots = crate::test_vectors::commitment_tree::test_vectors().empty_roots; + + for (level, tv_root) in tv_empty_roots.iter().enumerate() { + assert_eq!( + MerkleHashOrchard::empty_root(Level::from(level as u8)) + .0 + .to_repr(), + *tv_root, + "Empty root mismatch at level {}", + level + ); + } + } + + #[test] + fn anchor_incremental() { + // These commitment values are derived from the bundle data that was generated for + // testing commitment tree construction inside of zcashd here. + // https://github.com/zcash/zcash/blob/ecec1f9769a5e37eb3f7fd89a4fcfb35bc28eed7/src/test/data/merkle_roots_orchard.h + let commitments = [ + [ + 0x68, 0x13, 0x5c, 0xf4, 0x99, 0x33, 0x22, 0x90, 0x99, 0xa4, 0x4e, 0xc9, 0x9a, 0x75, + 0xe1, 0xe1, 0xcb, 0x46, 0x40, 0xf9, 0xb5, 0xbd, 0xec, 0x6b, 0x32, 0x23, 0x85, 0x6f, + 0xea, 0x16, 0x39, 0x0a, + ], + [ + 0x78, 0x31, 0x50, 0x08, 0xfb, 0x29, 0x98, 0xb4, 0x30, 0xa5, 0x73, 0x1d, 0x67, 0x26, + 0x20, 0x7d, 0xc0, 0xf0, 0xec, 0x81, 0xea, 0x64, 0xaf, 0x5c, 0xf6, 0x12, 0x95, 0x69, + 0x01, 0xe7, 0x2f, 0x0e, + ], + [ + 0xee, 0x94, 0x88, 0x05, 0x3a, 0x30, 0xc5, 0x96, 0xb4, 0x30, 0x14, 0x10, 0x5d, 0x34, + 0x77, 0xe6, 0xf5, 0x78, 0xc8, 0x92, 0x40, 0xd1, 0xd1, 0xee, 0x17, 0x43, 0xb7, 0x7b, + 0xb6, 0xad, 0xc4, 0x0a, + ], + [ + 0x9d, 0xdc, 0xe7, 0xf0, 0x65, 0x01, 0xf3, 0x63, 0x76, 0x8c, 0x5b, 0xca, 0x3f, 0x26, + 0x46, 0x60, 0x83, 0x4d, 0x4d, 0xf4, 0x46, 0xd1, 0x3e, 0xfc, 0xd7, 0xc6, 0xf1, 0x7b, + 0x16, 0x7a, 0xac, 0x1a, + ], + [ + 0xbd, 0x86, 0x16, 0x81, 0x1c, 0x6f, 0x5f, 0x76, 0x9e, 0xa4, 0x53, 0x9b, 0xba, 0xff, + 0x0f, 0x19, 0x8a, 0x6c, 0xdf, 0x3b, 0x28, 0x0d, 0xd4, 0x99, 0x26, 0x16, 0x3b, 0xd5, + 0x3f, 0x53, 0xa1, 0x21, + ], + ]; + + // This value was produced by the Python test vector generation code implemented here: + // https://github.com/zcash-hackworks/zcash-test-vectors/blob/f4d756410c8f2456f5d84cedf6dac6eb8c068eed/orchard_merkle_tree.py + let anchor = [ + 0xc8, 0x75, 0xbe, 0x2d, 0x60, 0x87, 0x3f, 0x8b, 0xcd, 0xeb, 0x91, 0x28, 0x2e, 0x64, + 0x2e, 0x0c, 0xc6, 0x5f, 0xf7, 0xd0, 0x64, 0x2d, 0x13, 0x7b, 0x28, 0xcf, 0x28, 0xcc, + 0x9c, 0x52, 0x7f, 0x0e, + ]; + + let mut frontier: Frontier = Frontier::empty(); + for commitment in commitments.iter() { + let cmx = MerkleHashOrchard(pallas::Base::from_repr(*commitment).unwrap()); + frontier.append(cmx); + } + assert_eq!(frontier.root().0, pallas::Base::from_repr(anchor).unwrap()); + } +} diff --git a/zk-crates/zk-headstash/src/value.rs b/zk-crates/zk-headstash/src/value.rs new file mode 100644 index 0000000..1a410e3 --- /dev/null +++ b/zk-crates/zk-headstash/src/value.rs @@ -0,0 +1,1135 @@ +//! Monetary values within the Orchard shielded pool. +//! +//! Values are represented in three places within the Orchard protocol: +//! - [`NoteValue`], the value of an individual note. It is an unsigned 64-bit integer +//! (with maximum value [`MAX_NOTE_VALUE`]), and is serialized in a note plaintext. +//! - [`ValueSum`], the sum of note values within an Orchard [`Action`] or [`Bundle`]. +//! It is a signed 64-bit integer (with range [`VALUE_SUM_RANGE`]). +//! - `valueBalanceOrchard`, which is a signed 63-bit integer. This is represented +//! by a user-defined type parameter on [`Bundle`], returned by +//! [`Bundle::value_balance`] and [`Builder::value_balance`]. +//! +//! If your specific instantiation of the Orchard protocol requires a smaller bound on +//! valid note values (for example, Zcash's `MAX_MONEY` fits into a 51-bit integer), you +//! should enforce this in two ways: +//! +//! - Define your `valueBalanceOrchard` type to enforce your valid value range. This can +//! be checked in its `TryFrom` implementation. +//! - Define your own "amount" type for note values, and convert it to `NoteValue` prior +//! to calling [`Builder::add_output`]. +//! +//! Inside the circuit, note values are constrained to be unsigned 64-bit integers. +//! +//! # Caution! +//! +//! An `i64` is _not_ a signed 64-bit integer! The [Rust documentation] calls `i64` the +//! 64-bit signed integer type, which is true in the sense that its encoding in memory +//! takes up 64 bits. Numerically, however, `i64` is a signed 63-bit integer. +//! +//! Fortunately, users of this crate should never need to construct [`ValueSum`] directly; +//! you should only need to interact with [`NoteValue`] (which can be safely constructed +//! from a `u64`) and `valueBalanceOrchard` (which can be represented as an `i64`). +//! +//! [`Action`]: crate::action::Action +//! [`Bundle`]: crate::bundle::Bundle +//! [`Bundle::value_balance`]: crate::bundle::Bundle::value_balance +//! [`Builder::value_balance`]: crate::builder::Builder::value_balance +//! [`Builder::add_output`]: crate::builder::Builder::add_output +//! [Rust documentation]: https://doc.rust-lang.org/stable/std/primitive.i64.html + +use core::fmt::{self, Debug}; +use core::iter::Sum; +use core::ops::{Add, RangeInclusive, Sub}; +use std::string::{String, ToString}; + +use bitvec::{array::BitArray, order::Lsb0}; +use ff::{Field, PrimeField}; +use group::{Curve, Group, GroupEncoding}; +#[cfg(feature = "circuit")] +use halo2_proofs::plonk::Assigned; +use pasta_curves::{ + arithmetic::{CurveAffine, CurveExt}, + pallas, +}; +use rand::RngCore; +use subtle::CtOption; + +use crate::{ + constants::fixed_bases::{ + VALUE_COMMITMENT_PERSONALIZATION, VALUE_COMMITMENT_R_BYTES, VALUE_COMMITMENT_V_BYTES, + }, + primitives::redpallas::{self, Binding}, +}; + +/// Maximum note value. +pub const MAX_NOTE_VALUE: u64 = u64::MAX; + +/// The valid range of the scalar multiplication used in ValueCommit^Orchard. +/// +/// Defined in a note in [Zcash Protocol Spec § 4.17.4: Action Statement (Orchard)][actionstatement]. +/// +/// [actionstatement]: https://zips.z.cash/protocol/nu5.pdf#actionstatement +pub const VALUE_SUM_RANGE: RangeInclusive = + -(MAX_NOTE_VALUE as i128)..=MAX_NOTE_VALUE as i128; + +/// A value operation overflowed. +#[derive(Debug)] +pub struct OverflowError; + +impl fmt::Display for OverflowError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "Orchard value operation overflowed") + } +} + +#[cfg(feature = "std")] +impl std::error::Error for OverflowError {} + +/// NoteDenom +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct NoteDenom { + bytes: [u8; 32], +} + +/// Return the padded value used in proof generation (blake3 hash with bit-trim) +impl NoteDenom { + /// Return the padded value used in proof generation (poseidon hash with bit-trim for field note denom field inclusion). + /// Clear the top three bits of the first byte to get 253-bit field element (pallas)\ + /// 0x1F = 00011111 in binary (clears top 3 bits) + pub fn new_for_proof(denom: &str) -> Self { + let hash = Self::hash(denom); + let mut bytes = *hash.as_bytes(); + bytes[31] &= 0x1F; + NoteDenom { bytes } + } + /// hash via blake3 + pub fn hash(denom: &str) -> blake3::Hash { + let mut hasher = blake3::Hasher::new(); + hasher.update(denom.as_bytes()); + hasher.finalize() + } + + /// hex string of already trimmed blake3 hash representing note-denom + pub fn as_str_for_proof(&self) -> String { + hex::encode(self.bytes) + } + + /// Return the raw bytes (including unused trailing zeros). + pub fn as_bytes(&self) -> &[u8] { + &self.bytes + } + /// Return the raw bytes (including unused trailing zeros). + pub fn max_len() -> usize { + 32 + } + /// Return the raw bytes (including unused trailing zeros). + pub fn to_pallas(&self) -> pallas::Base { + pallas::Base::from_repr(self.bytes).expect("darn") + } + /// Return the raw bytes (including unused trailing zeros). + pub fn to_fp(&self) -> pallas::Base { + crate::spec::nd_to_fp(self) + } + // /// Return the raw bytes (including unused trailing zeros). + // pub fn to_cosmwasm(&self) -> cosmwasm_std::Binary { + // cosmwasm_std::Binary::new(self.as_bytes().to_vec()) + // } +} + +// impl From for NoteDenom { +// fn from(value: cosmwasm_std::Binary) -> Self { +// NoteDenom { +// bytes: value +// .as_slice() +// .try_into() +// .expect("Invalid note denom bytes"), +// } +// } +// } + +impl From<[u8; 32]> for NoteDenom { + fn from(value: [u8; 32]) -> Self { + NoteDenom { bytes: value } + } +} + +impl Default for NoteDenom { + fn default() -> Self { + Self { bytes: [0u8; 32] } + } +} + +// --------------------------------------------------------------------- +// Pretty‑printing (e.g. with `println!("{:?}", denom)` or `format!`) +impl fmt::Display for NoteDenom { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.as_str_for_proof()) + } +} + +// --------------------------------------------------------------------- +// Parsing from a CLI string +impl std::str::FromStr for NoteDenom { + type Err = String; // simple error type; change to a custom error if desired + + fn from_str(ds: &str) -> Result { + Ok(Self::new_for_proof(ds)) + } +} + +/// The non-negative value of an individual Orchard note. +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)] +pub struct NoteValue(u64); + +impl NoteValue { + pub(crate) fn zero() -> Self { + Default::default() + } + pub(crate) fn one() -> Self { + NoteValue(1) + } + + /// Returns the raw underlying value. + pub fn inner(&self) -> u64 { + self.0 + } + + pub(crate) fn from_bytes(bytes: [u8; 8]) -> Self { + NoteValue(u64::from_le_bytes(bytes)) + } + + pub(crate) fn to_bytes(self) -> [u8; 8] { + self.0.to_le_bytes() + } + + pub(crate) fn to_le_bits(self) -> BitArray<[u8; 8], Lsb0> { + BitArray::<_, Lsb0>::new(self.0.to_le_bytes()) + } +} + +#[cfg(feature = "circuit")] +impl From<&NoteValue> for Assigned { + fn from(v: &NoteValue) -> Self { + pallas::Base::from(v.inner()).into() + } +} + +impl From for NoteValue { + fn from(v: u64) -> Self { + Self(v) + } +} + +impl Sub for NoteValue { + type Output = ValueSum; + + #[allow(clippy::suspicious_arithmetic_impl)] + fn sub(self, rhs: Self) -> Self::Output { + let a = self.0 as i128; + let b = rhs.0 as i128; + a.checked_sub(b) + .filter(|v| VALUE_SUM_RANGE.contains(v)) + .map(ValueSum) + .expect("u64 - u64 result is always in VALUE_SUM_RANGE") + } +} + +/// The sign of a [`ValueSum`]. +#[derive(Debug)] +pub enum Sign { + /// A non-negative [`ValueSum`]. + Positive, + /// A negative [`ValueSum`]. + Negative, +} + +/// A sum of Orchard note values. +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)] +pub struct ValueSum(i128); + +impl ValueSum { + pub(crate) fn zero() -> Self { + // Default for i128 is zero. + Default::default() + } + + /// Creates a value sum from a raw i64 (which is always in range for this type). + /// + /// This only enforces that the value is a signed 63-bit integer. We use it internally + /// in `Bundle::binding_validating_key`, where we are converting from the user-defined + /// `valueBalance` type that enforces any additional constraints on the value's valid + /// range. + pub(crate) fn from_raw(value: i64) -> Self { + ValueSum(value as i128) + } + + /// Constructs a value sum from its magnitude and sign. + pub(crate) fn from_magnitude_sign(magnitude: u64, sign: Sign) -> Self { + Self(match sign { + Sign::Positive => magnitude as i128, + Sign::Negative => -(magnitude as i128), + }) + } + + /// Splits this value sum into its magnitude and sign. + /// + /// This is a low-level API, requiring a detailed understanding of the + /// [use of value balancing][orchardbalance] in the Zcash protocol to use correctly + /// and securely. It is intended to be used in combination with the [`crate::pczt`] + /// module. + /// + /// [orchardbalance]: https://zips.z.cash/protocol/protocol.pdf#orchardbalance + pub fn magnitude_sign(&self) -> (u64, Sign) { + let (magnitude, sign) = if self.0.is_negative() { + (-self.0, Sign::Negative) + } else { + (self.0, Sign::Positive) + }; + ( + u64::try_from(magnitude) + .expect("ValueSum magnitude is in range for u64 by construction"), + sign, + ) + } +} + +impl Add for ValueSum { + type Output = Option; + + #[allow(clippy::suspicious_arithmetic_impl)] + fn add(self, rhs: Self) -> Self::Output { + self.0 + .checked_add(rhs.0) + .filter(|v| VALUE_SUM_RANGE.contains(v)) + .map(ValueSum) + } +} + +impl<'a> Sum<&'a ValueSum> for Result { + fn sum>(mut iter: I) -> Self { + iter.try_fold(ValueSum(0), |acc, v| acc + *v) + .ok_or(OverflowError) + } +} + +impl Sum for Result { + fn sum>(mut iter: I) -> Self { + iter.try_fold(ValueSum(0), |acc, v| acc + v) + .ok_or(OverflowError) + } +} + +impl TryFrom for i64 { + type Error = OverflowError; + + fn try_from(v: ValueSum) -> Result { + i64::try_from(v.0).map_err(|_| OverflowError) + } +} + +/// The blinding factor for a [`ValueCommitment`]. +#[derive(Clone, Debug)] +pub struct ValueCommitTrapdoor(pallas::Scalar); + +impl ValueCommitTrapdoor { + pub(crate) fn inner(&self) -> pallas::Scalar { + self.0 + } + + /// Constructs `ValueCommitTrapdoor` from the byte representation of a scalar. + /// Returns a `None` [`CtOption`] if `bytes` is not a canonical representation + /// of a Pallas scalar. + /// + /// This is a low-level API, requiring a detailed understanding of the + /// [use of value commitment trapdoors][orchardbalance] in the Zcash protocol + /// to use correctly and securely. It is intended to be used in combination + /// with [`ValueCommitment::derive`]. + /// + /// [orchardbalance]: https://zips.z.cash/protocol/protocol.pdf#orchardbalance + pub fn from_bytes(bytes: [u8; 32]) -> CtOption { + pallas::Scalar::from_repr(bytes).map(ValueCommitTrapdoor) + } + + /// Returns the byte encoding of a `ValueCommitTrapdoor`. + /// + /// This is a low-level API, requiring a detailed understanding of the + /// [use of value commitment trapdoors][orchardbalance] in the Zcash protocol + /// to use correctly and securely. It is intended to be used in combination + /// with the [`crate::pczt`] module. + /// + /// [orchardbalance]: https://zips.z.cash/protocol/protocol.pdf#orchardbalance + pub fn to_bytes(&self) -> [u8; 32] { + self.0.to_repr() + } +} + +impl Add<&ValueCommitTrapdoor> for ValueCommitTrapdoor { + type Output = ValueCommitTrapdoor; + + fn add(self, rhs: &Self) -> Self::Output { + ValueCommitTrapdoor(self.0 + rhs.0) + } +} + +impl<'a> Sum<&'a ValueCommitTrapdoor> for ValueCommitTrapdoor { + fn sum>(iter: I) -> Self { + iter.fold(ValueCommitTrapdoor::zero(), |acc, cv| acc + cv) + } +} + +impl ValueCommitTrapdoor { + /// Generates a new value commitment trapdoor. + pub(crate) fn random(rng: impl RngCore) -> Self { + ValueCommitTrapdoor(pallas::Scalar::random(rng)) + } + + /// Returns the zero trapdoor, which provides no blinding. + pub(crate) fn zero() -> Self { + ValueCommitTrapdoor(pallas::Scalar::zero()) + } + + pub(crate) fn into_bsk(self) -> redpallas::SigningKey { + // TODO: impl From for redpallas::SigningKey. + self.0.to_repr().try_into().unwrap() + } +} + +/// A commitment to a [`ValueSum`]. +#[derive(Clone, Debug)] +pub struct ValueCommitment(pallas::Point); + +impl Add<&ValueCommitment> for ValueCommitment { + type Output = ValueCommitment; + + fn add(self, rhs: &Self) -> Self::Output { + ValueCommitment(self.0 + rhs.0) + } +} + +impl Sub for ValueCommitment { + type Output = ValueCommitment; + + fn sub(self, rhs: Self) -> Self::Output { + ValueCommitment(self.0 - rhs.0) + } +} + +impl Sum for ValueCommitment { + fn sum>(iter: I) -> Self { + iter.fold(ValueCommitment(pallas::Point::identity()), |acc, cv| { + acc + &cv + }) + } +} + +impl<'a> Sum<&'a ValueCommitment> for ValueCommitment { + fn sum>(iter: I) -> Self { + iter.fold(ValueCommitment(pallas::Point::identity()), |acc, cv| { + acc + cv + }) + } +} + +impl ValueCommitment { + /// Derives a `ValueCommitment` by $\mathsf{ValueCommit^{Orchard}}$. + /// + /// Defined in [Zcash Protocol Spec § 5.4.8.3: Homomorphic Pedersen commitments (Sapling and Orchard)][concretehomomorphiccommit]. + /// + /// [concretehomomorphiccommit]: https://zips.z.cash/protocol/nu5.pdf#concretehomomorphiccommit + #[allow(non_snake_case)] + pub fn derive(value: ValueSum, rcv: ValueCommitTrapdoor) -> Self { + let hasher = pallas::Point::hash_to_curve(VALUE_COMMITMENT_PERSONALIZATION); + let V = hasher(&VALUE_COMMITMENT_V_BYTES); + let R = hasher(&VALUE_COMMITMENT_R_BYTES); + let abs_value = u64::try_from(value.0.abs()).expect("value must be in valid range"); + + let value = if value.0.is_negative() { + -pallas::Scalar::from(abs_value) + } else { + pallas::Scalar::from(abs_value) + }; + + ValueCommitment(V * value + R * rcv.0) + } + + pub(crate) fn into_bvk(self) -> redpallas::VerificationKey { + // TODO: impl From for redpallas::VerificationKey. + self.0.to_bytes().try_into().unwrap() + } + + /// Deserialize a value commitment from its byte representation + pub fn from_bytes(bytes: &[u8; 32]) -> CtOption { + pallas::Point::from_bytes(bytes).map(ValueCommitment) + } + + /// Serialize this value commitment to its canonical byte representation. + pub fn to_bytes(&self) -> [u8; 32] { + self.0.to_bytes() + } + + /// x-coordinate of this value commitment. + pub(crate) fn x(&self) -> pallas::Base { + if self.0 == pallas::Point::identity() { + pallas::Base::zero() + } else { + *self.0.to_affine().coordinates().unwrap().x() + } + } + + /// y-coordinate of this value commitment. + pub(crate) fn y(&self) -> pallas::Base { + if self.0 == pallas::Point::identity() { + pallas::Base::zero() + } else { + *self.0.to_affine().coordinates().unwrap().y() + } + } +} + +/// A Headstash value with multi-denomination support. +/// +/// This struct combines a numeric value with a denomination identifier, +/// enabling support for uterp, IBC tokens, and tokenfactory denoms. +/// +/// # Members +/// - `v`: The note value (amount) as a u64 +/// - `nd`: The note denomination (token type) +/// +/// # Example +/// ```rust,ignore +/// use zk_headstash::value::{HeadstashValue, NoteValue, NoteDenom}; +/// +/// // Create a value for 1000 uterp +/// let value = HeadstashValue::new( +/// NoteValue::from(1000), +/// NoteDenom::from_str("uterp").unwrap() +/// ); +/// +/// // Access components +/// let amount = value.amount(); +/// let denom = value.denom(); +/// ``` +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct HeadstashValue { + v: NoteValue, + nd: NoteDenom, + fdi: u64, +} + +impl HeadstashValue { + /// Create a new HeadstashValue from amount and denomination. + pub fn new(v: NoteValue, nd: NoteDenom, fdi: u64) -> Self { + Self { v, nd, fdi } + } + + /// Create a HeadstashValue from raw u64 amount and denomination string. + pub fn from_raw(amount: u64, denom: &str, fdi: u64) -> Result { + let v = NoteValue::from(amount); + let nd = NoteDenom::new_for_proof(denom); + Ok(Self { v, nd, fdi }) + } + + /// Returns the note value (amount). + pub fn amount(&self) -> NoteValue { + self.v + } + + /// Returns a reference to the note denomination. + pub fn denom(&self) -> NoteDenom { + self.nd + } + + /// Returns the raw amount as u64. + pub fn raw_amount(&self) -> u64 { + self.v.inner() + } + + /// Returns the denomination as a display string (hash representation). + pub fn denom_str(&self) -> String { + self.nd.to_string() + } + + /// Convert to tuple (amount, denom) for easier destructuring. + pub fn into_parts(self) -> (NoteValue, NoteDenom, u64) { + (self.v, self.nd, self.fdi) + } + + /// Create a zero value for a given denomination. + pub fn zero(nd: NoteDenom) -> Self { + Self { + v: NoteValue::zero(), + nd, + fdi: 0, + } + } + + /// Check if this value is zero. + pub fn is_zero(&self) -> bool { + self.v.inner() == 0 + } + + /// Add two HeadstashValues of the same denomination. + /// Returns None if denominations don't match or overflow occurs. + pub fn checked_add(&self, other: &Self) -> Option { + if self.nd != other.nd { + return None; + } + let new_amount = self.v.inner().checked_add(other.v.inner())?; + if new_amount > MAX_NOTE_VALUE { + return None; + } + Some(Self { + v: NoteValue::from(new_amount), + nd: self.nd, + fdi: self.fdi, + }) + } + + /// Subtract two HeadstashValues of the same denomination. + /// Returns None if denominations don't match or underflow would occur. + pub fn checked_sub(&self, other: &Self) -> Option { + if self.nd != other.nd { + return None; + } + let new_amount = self.v.inner().checked_sub(other.v.inner())?; + Some(Self { + v: NoteValue::from(new_amount), + nd: self.nd, + fdi: self.fdi, + }) + } +} + +impl Default for HeadstashValue { + fn default() -> Self { + Self { + v: NoteValue::zero(), + nd: NoteDenom::default(), + fdi: 0, + } + } +} + +impl fmt::Display for HeadstashValue { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{} {}", self.v.inner(), self.nd) + } +} + +/// Generators for property testing. +#[cfg(any(test, feature = "test-dependencies"))] +#[cfg_attr(docsrs, doc(cfg(feature = "test-dependencies")))] +pub mod testing { + use group::ff::FromUniformBytes; + use pasta_curves::pallas; + use proptest::prelude::*; + + use crate::value::NoteDenom; + + use super::{NoteValue, ValueCommitTrapdoor, ValueSum, MAX_NOTE_VALUE, VALUE_SUM_RANGE}; + + prop_compose! { + /// Generate an arbitrary Pallas scalar. + pub fn arb_scalar()(bytes in prop::array::uniform32(0u8..)) -> pallas::Scalar { + // Instead of rejecting out-of-range bytes, let's reduce them. + let mut buf = [0; 64]; + buf[..32].copy_from_slice(&bytes); + pallas::Scalar::from_uniform_bytes(&buf) + } + } + + prop_compose! { + /// Generate an arbitrary [`ValueSum`] in the range of valid Zcash values. + pub fn arb_value_sum()(value in VALUE_SUM_RANGE) -> ValueSum { + ValueSum(value) + } + } + + prop_compose! { + /// Generate an arbitrary [`ValueSum`] in the range of valid Zcash values. + pub fn arb_value_sum_bounded(bound: NoteValue)(value in -(bound.0 as i128)..=(bound.0 as i128)) -> ValueSum { + ValueSum(value) + } + } + + prop_compose! { + /// Generate an arbitrary ValueCommitTrapdoor + pub fn arb_trapdoor()(rcv in arb_scalar()) -> ValueCommitTrapdoor { + ValueCommitTrapdoor(rcv) + } + } + + prop_compose! { + /// Generate an arbitrary value in the range of valid nonnegative Zcash amounts. + pub fn arb_note_denom()(bytes in prop::array::uniform32(0u8..)) -> NoteDenom { + NoteDenom{ bytes } + } + } + prop_compose! { + /// Generate an arbitrary value in the range of valid nonnegative Zcash amounts. + pub fn arb_note_value()(value in 0u64..MAX_NOTE_VALUE) -> NoteValue { + NoteValue(value) + } + } + prop_compose! { + /// Generate an arbitrary value in the range of valid nonnegative Zcash amounts. + pub fn arb_fdi()(value in 0u64..MAX_NOTE_VALUE) -> u64 { + value + } + } + + prop_compose! { + /// Generate an arbitrary value in the range of valid positive Zcash amounts + /// less than a specified value. + pub fn arb_note_value_bounded(max: u64)(value in 0u64..max) -> NoteValue { + NoteValue(value) + } + } + + prop_compose! { + /// Generate an arbitrary value in the range of valid positive Zcash amounts + /// less than a specified value. + pub fn arb_positive_note_value(max: u64)(value in 1u64..max) -> NoteValue { + NoteValue(value) + } + } +} + +#[cfg(test)] +mod tests { + use proptest::prelude::*; + + use super::*; + use crate::spec::nd_to_fp; + use ff::Field; + + use super::{ + testing::{arb_note_value_bounded, arb_trapdoor, arb_value_sum_bounded}, + OverflowError, ValueCommitTrapdoor, ValueCommitment, ValueSum, MAX_NOTE_VALUE, + }; + use crate::primitives::redpallas; + use pasta_curves::group::ff::PrimeField; + use pasta_curves::pallas; + + proptest! { + #[test] + fn bsk_consistent_with_bvk( + values in (1usize..10).prop_flat_map(|n_values| + arb_note_value_bounded(MAX_NOTE_VALUE / n_values as u64).prop_flat_map(move |bound| + prop::collection::vec((arb_value_sum_bounded(bound), arb_trapdoor()), n_values) + ) + ) + ) { + let value_balance = values + .iter() + .map(|(value, _)| value) + .sum::>() + .expect("we generate values that won't overflow"); + + let bsk = values + .iter() + .map(|(_, rcv)| rcv) + .sum::() + .into_bsk(); + + let bvk = (values + .into_iter() + .map(|(value, rcv)| ValueCommitment::derive(value, rcv)) + .sum::() + - ValueCommitment::derive(value_balance, ValueCommitTrapdoor::zero())) + .into_bvk(); + + assert_eq!(redpallas::VerificationKey::from(&bsk), bvk); + } + } + + #[test] + fn test_headstash_value_creation() { + // Test creating HeadstashValue from raw components + let value = HeadstashValue::from_raw(1000, "uterp", 0).unwrap(); + + assert_eq!(value.raw_amount(), 1000); + assert_eq!(value.amount(), NoteValue::from(1000)); + } + + #[test] + fn test_headstash_value_new() { + // Test creating HeadstashValue with NoteValue and NoteDenom + let note_val = NoteValue::from(5000); + let note_denom = NoteDenom::new_for_proof("ibc/usdc"); + + let value = HeadstashValue::new(note_val, note_denom, 0); + assert_eq!(value.raw_amount(), 5000); + assert_eq!(value.amount(), note_val); + } + + #[test] + fn test_headstash_value_zero() { + // Test zero value creation + let denom = NoteDenom::new_for_proof("uterp"); + let zero_value = HeadstashValue::zero(denom); + + assert_eq!(zero_value.raw_amount(), 0); + assert!(zero_value.is_zero()); + } + + #[test] + fn test_headstash_value_checked_add_same_denom() { + // Test adding two values with same denomination + let val1 = HeadstashValue::from_raw(1000, "uterp", 0).unwrap(); + let val2 = HeadstashValue::from_raw(500, "uterp", 0).unwrap(); + + let result = val1.checked_add(&val2).unwrap(); + assert_eq!(result.raw_amount(), 1500); + } + + #[test] + fn test_headstash_value_checked_add_different_denom() { + // Test that adding values with different denoms returns None + let val1 = HeadstashValue::from_raw(1000, "uterp", 0).unwrap(); + let val2 = HeadstashValue::from_raw(500, "ibc/usdc", 0).unwrap(); + + let result = val1.checked_add(&val2); + assert!(result.is_none()); + } + + #[test] + fn test_headstash_value_checked_add_overflow() { + // Test overflow protection + let val1 = HeadstashValue::from_raw(MAX_NOTE_VALUE, "uterp", 0).unwrap(); + let val2 = HeadstashValue::from_raw(1, "uterp", 0).unwrap(); + let result = val1.checked_add(&val2); + assert!(result.is_none()); + } + + #[test] + fn test_headstash_value_checked_sub_same_denom() { + // Test subtracting two values with same denomination + let val1 = HeadstashValue::from_raw(1000, "uterp", 0).unwrap(); + let val2 = HeadstashValue::from_raw(300, "uterp", 0).unwrap(); + + let result = val1.checked_sub(&val2).unwrap(); + assert_eq!(result.raw_amount(), 700); + } + + #[test] + fn test_headstash_value_checked_sub_different_denom() { + // Test that subtracting values with different denoms returns None + let val1 = HeadstashValue::from_raw(1000, "uterp", 0).unwrap(); + let val2 = HeadstashValue::from_raw(300, "ibc/usdc", 0).unwrap(); + + let result = val1.checked_sub(&val2); + assert!(result.is_none()); + } + + #[test] + fn test_headstash_value_checked_sub_underflow() { + // Test underflow protection + let val1 = HeadstashValue::from_raw(100, "uterp", 0).unwrap(); + let val2 = HeadstashValue::from_raw(200, "uterp", 0).unwrap(); + + let result = val1.checked_sub(&val2); + assert!(result.is_none()); + } + + #[test] + fn test_headstash_value_into_parts() { + // Test destructuring into components + let value = HeadstashValue::from_raw(1000, "uterp", 0).unwrap(); + let (note_val, note_denom, fdi) = value.into_parts(); + + assert_eq!(note_val.inner(), 1000); + assert_eq!(note_denom, NoteDenom::new_for_proof("uterp")); + } + + #[test] + fn test_headstash_value_display() { + // Test display formatting + let value = HeadstashValue::from_raw(1000, "uterp", 0).unwrap(); + let display_str = format!("{}", value); + + assert!(display_str.contains("1000")); + } + + #[test] + fn test_headstash_value_default() { + // Test default value + let default_value = HeadstashValue::default(); + + assert_eq!(default_value.raw_amount(), 0); + assert!(default_value.is_zero()); + } + + #[test] + fn test_headstash_value_multi_denom_support() { + // Test multiple different denominations + let uterp = HeadstashValue::from_raw(1000, "uterp", 0).unwrap(); + let usdc = HeadstashValue::from_raw(500, "ibc/usdc", 0).unwrap(); + let custom = HeadstashValue::from_raw(250, "factory/contract/custom", 0).unwrap(); + + assert_eq!(uterp.raw_amount(), 1000); + assert_eq!(usdc.raw_amount(), 500); + assert_eq!(custom.raw_amount(), 250); + + // Verify they're different denominations + assert!(uterp.checked_add(&usdc).is_none()); + assert!(usdc.checked_add(&custom).is_none()); + } + + // Helper function to create a NoteDenom from 32 bytes + fn make_note_denom_string(bytes: &str) -> NoteDenom { + // Assuming NoteDenom has a constructor or can be created from bytes + // Adjust this based on actual NoteDenom implementation + NoteDenom::new_for_proof(bytes) + } + // Helper function to create a NoteDenom from 32 bytes + fn make_note_denom(bytes: [u8; 32]) -> NoteDenom { + // Assuming NoteDenom has a constructor or can be created from bytes + // Adjust this based on actual NoteDenom implementation + NoteDenom::try_from(bytes).unwrap() + } + + #[test] + fn test_nd_to_fp_deterministic() { + // Same input should always produce same output + let test_bytes = [42u8; 32]; + let nd1 = make_note_denom(test_bytes); + let nd2 = make_note_denom(test_bytes); + + let fp1 = nd_to_fp(&nd1); + let fp2 = nd_to_fp(&nd2); + + assert_eq!(fp1, fp2); + } + + #[test] + fn test_nd_to_fp_different_inputs() { + // Different inputs should produce different outputs + let bytes1 = [1u8; 32]; + let bytes2 = [2u8; 32]; + + let nd1 = make_note_denom(bytes1); + let nd2 = make_note_denom(bytes2); + + let fp1 = nd_to_fp(&nd1); + let fp2 = nd_to_fp(&nd2); + + assert_ne!(fp1, fp2); + } + + #[test] + fn test_nd_to_fp_all_zeros() { + let zero_bytes = [0u8; 32]; + let nd = make_note_denom(zero_bytes); + + let fp = nd_to_fp(&nd); + + // All zeros should map to zero field element + assert_eq!(fp, pallas::Base::zero()); + } + + #[test] + fn test_nd_to_fp_all_ones() { + let ones_bytes = [0xFFu8; 32]; + let nd = make_note_denom_string(&hex::encode(ones_bytes)); + + let fp = nd_to_fp(&nd); + + // Should produce a valid field element + // Verify it's not zero (all 0xFF bytes shouldn't be zero in the field) + assert_ne!(fp, pallas::Base::zero()); + } + + #[test] + fn test_nd_to_fp_sequential_bytes() { + let mut bytes = [0u8; 32]; + for (i, byte) in bytes.iter_mut().enumerate() { + *byte = (i % 256) as u8; + } + + let nd = make_note_denom(bytes); + let fp = nd_to_fp(&nd); + + // Should produce a valid, non-zero field element + assert_ne!(fp, pallas::Base::zero()); + } + + #[test] + fn test_nd_to_fp_returns_valid_field_element() { + let test_bytes = [123u8; 32]; + let nd = make_note_denom_string(&hex::encode(test_bytes)); + + let fp = nd_to_fp(&nd); + + // Test that we can perform field operations on the result + let doubled = fp + fp; + let squared = fp * fp; + let inverted = fp.invert(); + + // Basic sanity checks + assert!(doubled == doubled); + assert!(squared == squared); + + // If fp is non-zero, it should have an inverse + if fp != pallas::Base::zero() { + assert!(inverted.is_some().unwrap_u8() == 1); + } + } + + #[test] + fn test_nd_to_fp_round_trip_with_repr() { + // Test that from_repr is consistent + let test_bytes = [77u8; 32]; + let nd = make_note_denom_string(&hex::encode(test_bytes)); + + let fp = nd_to_fp(&nd); + let repr = fp.to_repr(); + let fp_reconstructed = pallas::Base::from_repr(repr).unwrap(); + + assert_eq!(fp, fp_reconstructed); + } + + #[test] + fn test_nd_to_fp_single_bit_difference() { + // Small change in input should cause different output + let mut bytes1 = [0u8; 32]; + let mut bytes2 = [0u8; 32]; + bytes2[0] = 1; // Only change first byte + + let nd1 = make_note_denom(bytes1); + let nd2 = make_note_denom(bytes2); + + let fp1 = nd_to_fp(&nd1); + let fp2 = nd_to_fp(&nd2); + + assert_ne!(fp1, fp2); + } + + #[test] + fn test_nd_to_fp_last_byte_matters() { + // Change in last byte should affect output + let mut bytes1 = [0u8; 32]; + let mut bytes2 = [0u8; 32]; + bytes2[31] = 1; // Change last byte + + let nd1 = make_note_denom(bytes1); + let nd2 = make_note_denom(bytes2); + + let fp1 = nd_to_fp(&nd1); + let fp2 = nd_to_fp(&nd2); + + assert_ne!(fp1, fp2); + } + + #[test] + fn test_nd_to_fp_boundary_values() { + // Test with specific boundary values + let mut bytes = [0u8; 32]; + + // Set to just below field modulus (if known) + // This is a placeholder - adjust based on actual Pallas field modulus + bytes[31] = 0x3F; // Some high value + + let nd = make_note_denom(bytes); + let fp = nd_to_fp(&nd); + + // Should successfully convert without panic + assert!(fp == fp); // Just verify it exists + } + + #[test] + fn test_nd_to_fp_multiple_conversions_consistency() { + // Converting the same NoteDenom multiple times should give same result + let test_bytes = [99u8; 32]; + let nd = make_note_denom_string(&hex::encode(test_bytes)); + + let fp1 = nd_to_fp(&nd); + let fp2 = nd_to_fp(&nd); + let fp3 = nd_to_fp(&nd); + + assert_eq!(fp1, fp2); + assert_eq!(fp2, fp3); + } + + #[test] + fn test_nd_to_fp_no_collisions_in_small_set() { + // Test that different byte patterns don't collide + use std::collections::HashSet; + + let mut seen = HashSet::new(); + + for i in 0u8..100 { + let mut bytes = [0u8; 32]; + bytes[0] = i; + + let nd = make_note_denom(bytes); + let fp = nd_to_fp(&nd); + let repr = fp.to_repr(); + + assert!(seen.insert(repr), "Found collision at i={}", i); + } + + assert_eq!(seen.len(), 100); + } + + #[test] + fn test_nd_to_fp_preserves_byte_order() { + // Reversed bytes should give different field element + let mut bytes1 = [0u8; 32]; + for (i, byte) in bytes1.iter_mut().enumerate() { + *byte = i as u8; + } + + let mut bytes2 = bytes1; + bytes2.reverse(); + + let nd1 = make_note_denom(bytes1); + let nd2 = make_note_denom(bytes2); + + let fp1 = nd_to_fp(&nd1); + let fp2 = nd_to_fp(&nd2); + + assert_ne!(fp1, fp2); + } + + #[test] + fn test_nd_to_fp_with_maximum_valid_value() { + // Test with bytes that represent a large but valid field element + // Pallas field modulus is approximately 2^255 + // Using a value that's definitely in the field + let mut bytes = [0xFFu8; 32]; + bytes[31] = 0x3F; // Ensure it's below the modulus + + let nd = make_note_denom(bytes); + let fp = nd_to_fp(&nd); + + // Should not panic and should be a valid large field element + assert_ne!(fp, pallas::Base::zero()); + } + + #[test] + fn test_nd_to_fp_arithmetic_properties() { + // Test that the resulting field element has proper arithmetic properties + let bytes1 = [1u8; 32]; + let bytes2 = [2u8; 32]; + + let nd1 = make_note_denom(bytes1); + let nd2 = make_note_denom(bytes2); + + let fp1 = nd_to_fp(&nd1); + let fp2 = nd_to_fp(&nd2); + + // Test commutativity of addition + assert_eq!(fp1 + fp2, fp2 + fp1); + + // Test commutativity of multiplication + assert_eq!(fp1 * fp2, fp2 * fp1); + + // Test distributivity + let fp3_bytes = [3u8; 32]; + let nd3 = make_note_denom(fp3_bytes); + let fp3 = nd_to_fp(&nd3); + + assert_eq!(fp1 * (fp2 + fp3), fp1 * fp2 + fp1 * fp3); + } +} diff --git a/zk-crates/zk-headstash/src/zip32.rs b/zk-crates/zk-headstash/src/zip32.rs new file mode 100644 index 0000000..93b1cf5 --- /dev/null +++ b/zk-crates/zk-headstash/src/zip32.rs @@ -0,0 +1,305 @@ +//! Key structures for Orchard. + +use core::fmt; + +use blake2b_simd::Params as Blake2bParams; +use subtle::{Choice, ConstantTimeEq, CtOption}; +use zcash_spec::VariableLengthSlice; +use zip32::{ + hardened_only::{self, HardenedOnlyKey}, + ChainCode, +}; + +use crate::{ + keys::{FullViewingKey, SpendingKey}, + spec::PrfExpand, +}; + +pub use zip32::ChildIndex; + +const ZIP32_ORCHARD_PERSONALIZATION: &[u8; 16] = b"ZcashIP32Orchard"; +const ZIP32_ORCHARD_FVFP_PERSONALIZATION: &[u8; 16] = b"ZcashOrchardFVFP"; + +/// Errors produced in derivation of extended spending keys +#[derive(Debug, PartialEq, Eq)] +pub enum Error { + /// A seed resulted in an invalid spending key + InvalidSpendingKey, + /// A child index in a derivation path exceeded 2^31 + InvalidChildIndex(u32), +} + +impl fmt::Display for Error { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "Seed produced invalid spending key.") + } +} + +//impl std::error::Error for Error {} + +/// An Orchard full viewing key fingerprint +struct FvkFingerprint([u8; 32]); + +impl From<&FullViewingKey> for FvkFingerprint { + fn from(fvk: &FullViewingKey) -> Self { + let mut h = Blake2bParams::new() + .hash_length(32) + .personal(ZIP32_ORCHARD_FVFP_PERSONALIZATION) + .to_state(); + h.update(&fvk.to_bytes()); + let mut fvfp = [0u8; 32]; + fvfp.copy_from_slice(h.finalize().as_bytes()); + FvkFingerprint(fvfp) + } +} + +/// An Orchard full viewing key tag +#[derive(Clone, Copy, Debug, PartialEq)] +struct FvkTag([u8; 4]); + +impl FvkFingerprint { + fn tag(&self) -> FvkTag { + let mut tag = [0u8; 4]; + tag.copy_from_slice(&self.0[..4]); + FvkTag(tag) + } +} + +impl FvkTag { + fn master() -> Self { + FvkTag([0u8; 4]) + } +} + +/// The derivation index associated with a key. +/// +/// Master keys are never derived via the ZIP 32 child derivation process, but they have +/// an index in their encoding. This type allows the encoding to be represented, while +/// also enabling the derivation methods to only accept [`ChildIndex`]. +#[derive(Clone, Copy, Debug)] +struct KeyIndex(CtOption); + +impl ConstantTimeEq for KeyIndex { + fn ct_eq(&self, other: &Self) -> Choice { + // We use a `CtOption` above instead of an enum so that we can implement this. + self.0.ct_eq(&other.0) + } +} + +impl PartialEq for KeyIndex { + fn eq(&self, other: &Self) -> bool { + self.ct_eq(other).into() + } +} + +impl Eq for KeyIndex {} + +impl KeyIndex { + fn master() -> Self { + Self(CtOption::new(ChildIndex::hardened(0), 0.into())) + } + + fn child(i: ChildIndex) -> Self { + Self(CtOption::new(i, 1.into())) + } + + fn new(depth: u8, i: u32) -> Option { + match (depth == 0, i) { + (true, 0) => Some(KeyIndex::master()), + (false, _) => ChildIndex::from_index(i).map(KeyIndex::child), + _ => None, + } + } + + fn index(&self) -> u32 { + if self.0.is_some().into() { + self.0.unwrap().index() + } else { + 0 + } + } +} + +#[derive(Clone, Copy, Debug)] +struct Orchard; + +impl hardened_only::Context for Orchard { + const MKG_DOMAIN: [u8; 16] = *ZIP32_ORCHARD_PERSONALIZATION; + const CKD_DOMAIN: PrfExpand<([u8; 32], [u8; 4], [u8; 1], VariableLengthSlice)> = + PrfExpand::ORCHARD_ZIP32_CHILD; +} + +/// An Orchard extended spending key. +/// +/// Defined in [ZIP32: Orchard extended keys][orchardextendedkeys]. +/// +/// [orchardextendedkeys]: https://zips.z.cash/zip-0032#orchard-extended-keys +#[derive(Debug, Clone)] +pub(crate) struct ExtendedSpendingKey { + depth: u8, + parent_fvk_tag: FvkTag, + child_index: KeyIndex, + inner: HardenedOnlyKey, +} + +impl ConstantTimeEq for ExtendedSpendingKey { + fn ct_eq(&self, rhs: &Self) -> Choice { + self.depth.ct_eq(&rhs.depth) + & self.parent_fvk_tag.0.ct_eq(&rhs.parent_fvk_tag.0) + & self.child_index.ct_eq(&rhs.child_index) + & self.inner.ct_eq(&rhs.inner) + } +} + +#[allow(non_snake_case)] +impl ExtendedSpendingKey { + /// Returns the spending key of the child key corresponding to + /// the path derived from the master key + /// + /// # Panics + /// + /// Panics if seed results in invalid spending key. + pub fn from_path(seed: &[u8], path: &[ChildIndex]) -> Result { + let mut xsk = Self::master(seed)?; + for i in path { + xsk = xsk.derive_child(*i)?; + } + Ok(xsk) + } + + /// Generates the master key of an Orchard extended spending key. + /// + /// Defined in [ZIP32: Orchard master key generation][orchardmasterkey]. + /// + /// [orchardmasterkey]: https://zips.z.cash/zip-0032#orchard-master-key-generation + /// + /// # Panics + /// + /// Panics if the seed is shorter than 32 bytes or longer than 252 bytes. + fn master(seed: &[u8]) -> Result { + let m_orchard = HardenedOnlyKey::master(&[seed]); + + let sk = SpendingKey::from_bytes(*m_orchard.parts().0); + if sk.is_none().into() { + return Err(Error::InvalidSpendingKey); + } + + // For the master extended spending key, depth is 0, parent_fvk_tag is 4 zero bytes, and i is 0. + Ok(Self { + depth: 0, + parent_fvk_tag: FvkTag([0; 4]), + child_index: KeyIndex::master(), + inner: m_orchard, + }) + } + + /// Derives a child key from a parent key at a given index. + /// + /// Defined in [ZIP32: Orchard child key derivation][orchardchildkey]. + /// + /// [orchardchildkey]: https://zips.z.cash/zip-0032#orchard-child-key-derivation + /// + /// Discards index if it results in an invalid sk + fn derive_child(&self, index: ChildIndex) -> Result { + let child_i = self.inner.derive_child(index); + + let sk = SpendingKey::from_bytes(*child_i.parts().0); + if sk.is_none().into() { + return Err(Error::InvalidSpendingKey); + } + + let fvk: FullViewingKey = self.into(); + + Ok(Self { + depth: self.depth + 1, + parent_fvk_tag: FvkFingerprint::from(&fvk).tag(), + child_index: KeyIndex::child(index), + inner: child_i, + }) + } + + /// Returns sk of this ExtendedSpendingKey. + pub fn sk(&self) -> SpendingKey { + SpendingKey::from_bytes(*self.inner.parts().0).expect("checked during derivation") + } + + /// Returns the chain code for this ExtendedSpendingKey. + fn chain_code(&self) -> &ChainCode { + self.inner.parts().1 + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn derive_child() { + let seed = [0; 32]; + let xsk_m = ExtendedSpendingKey::master(&seed).unwrap(); + + let i_5 = ChildIndex::hardened(5); + let xsk_5 = xsk_m.derive_child(i_5); + + assert!(xsk_5.is_ok()); + } + + #[test] + fn path() { + let seed = [0; 32]; + let xsk_m = ExtendedSpendingKey::master(&seed).unwrap(); + + let xsk_5h = xsk_m.derive_child(ChildIndex::hardened(5)).unwrap(); + assert!(bool::from( + ExtendedSpendingKey::from_path(&seed, &[ChildIndex::hardened(5)]) + .unwrap() + .ct_eq(&xsk_5h) + )); + + let xsk_5h_7 = xsk_5h.derive_child(ChildIndex::hardened(7)).unwrap(); + assert!(bool::from( + ExtendedSpendingKey::from_path( + &seed, + &[ChildIndex::hardened(5), ChildIndex::hardened(7)] + ) + .unwrap() + .ct_eq(&xsk_5h_7) + )); + } + + #[test] + fn test_vectors() { + let test_vectors = crate::test_vectors::zip32::TEST_VECTORS; + + let seed = [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, + ]; + + let i1h = ChildIndex::hardened(1); + let i2h = ChildIndex::hardened(2); + let i3h = ChildIndex::hardened(3); + + let m = ExtendedSpendingKey::master(&seed).unwrap(); + let m_1h = m.derive_child(i1h).unwrap(); + let m_1h_2h = ExtendedSpendingKey::from_path(&seed, &[i1h, i2h]).unwrap(); + let m_1h_2h_3h = m_1h_2h.derive_child(i3h).unwrap(); + + let xsks = [m, m_1h, m_1h_2h, m_1h_2h_3h]; + assert_eq!(test_vectors.len(), xsks.len()); + + for (xsk, tv) in xsks.iter().zip(test_vectors.iter()) { + assert_eq!(xsk.sk().to_bytes(), &tv.sk); + assert_eq!(xsk.chain_code().as_bytes(), &tv.c); + + assert_eq!(xsk.depth, tv.xsk[0]); + assert_eq!(&xsk.parent_fvk_tag.0, &tv.xsk[1..5]); + assert_eq!(&xsk.child_index.index().to_le_bytes(), &tv.xsk[5..9]); + assert_eq!(xsk.chain_code().as_bytes(), &tv.xsk[9..9 + 32]); + assert_eq!(xsk.sk().to_bytes(), &tv.xsk[9 + 32..]); + + let fvk: FullViewingKey = (&xsk.sk()).into(); + assert_eq!(FvkFingerprint::from(&fvk).0, tv.fp); + } + } +} diff --git a/zk-crates/zk-wasmvm-test/.cargo/config b/zk-crates/zk-wasmvm-test/.cargo/config new file mode 100644 index 0000000..336b618 --- /dev/null +++ b/zk-crates/zk-wasmvm-test/.cargo/config @@ -0,0 +1,4 @@ +[alias] +wasm = "build --release --target wasm32-unknown-unknown" +unit-test = "test --lib" +schema = "run --example schema" diff --git a/zk-crates/zk-wasmvm-test/Cargo.toml b/zk-crates/zk-wasmvm-test/Cargo.toml new file mode 100644 index 0000000..f2e039c --- /dev/null +++ b/zk-crates/zk-wasmvm-test/Cargo.toml @@ -0,0 +1,34 @@ +[package] +name = "zk-wasmvm-test" +version = "0.2.0" +authors = ["A Hardnett"] +edition = "2024" + + +[lib] +crate-type = ["cdylib", "rlib"] + +[profile.release] +opt-level = 3 +debug = false +rpath = false +lto = true +debug-assertions = false +codegen-units = 1 +panic = 'abort' +incremental = false +overflow-checks = true + +[features] +# use library feature to disable all instantiate/execute/query exports +library = [] + +[dependencies] +cosmwasm-std = { workspace = true } +cosmwasm-schema = { workspace = true } +cw-storage-plus = { workspace = true } +cw2 = { workspace = true } +thiserror = { version = "2.0.16" } + +[dev-dependencies] +cw-multi-test = { git = "https://github.com/permissionlessweb/cw-multi-test", branch = "mvp" , package = "cw-multi-test"} diff --git a/zk-crates/zk-wasmvm-test/README.md b/zk-crates/zk-wasmvm-test/README.md new file mode 100644 index 0000000..ba364cb --- /dev/null +++ b/zk-crates/zk-wasmvm-test/README.md @@ -0,0 +1,3 @@ +# Zk-WasmVm Test + +Tests proof verification with zk-wasmvm. diff --git a/zk-crates/zk-wasmvm-test/justfile b/zk-crates/zk-wasmvm-test/justfile new file mode 100644 index 0000000..295d2cd --- /dev/null +++ b/zk-crates/zk-wasmvm-test/justfile @@ -0,0 +1,14 @@ +#!/bin/sh + +optimize: + if [[ $(uname -m) =~ "arm64" ]]; then \ + docker run --rm -v "$(pwd)":/code \ + --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \ + --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ + --platform linux/arm64 \ + cosmwasm/optimizer-arm64:0.17.0; else \ + docker run --rm -v "$(pwd)":/code \ + --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \ + --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ + --platform linux/amd64 \ + cosmwasm/optimizer:0.17.0; fi \ No newline at end of file diff --git a/zk-crates/zk-wasmvm-test/src/lib.rs b/zk-crates/zk-wasmvm-test/src/lib.rs new file mode 100644 index 0000000..0acd51a --- /dev/null +++ b/zk-crates/zk-wasmvm-test/src/lib.rs @@ -0,0 +1,119 @@ +use cosmwasm_schema::{QueryResponses, cw_serde}; +use cosmwasm_std::Checksum; +use cosmwasm_std::StdError; +use cosmwasm_std::VerificationError; +#[cfg(not(feature = "library"))] +use cosmwasm_std::entry_point; +use cosmwasm_std::{Binary, Deps, DepsMut, Env, MessageInfo, Response, StdResult, to_json_binary}; +use cw_storage_plus::Item; +use cw2::set_contract_version; +use thiserror::Error; + +#[cw_serde] +pub struct Config { + /// words we are prooving a privte instance does not contain + pub words: Vec, +} + +pub const CONFIG: Item = Item::new("config"); +pub const MOCK_DATA: Item> = Item::new("mock_data"); + +const CONTRACT_NAME: &str = "crates.io:cw-cadence"; +const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION"); + +#[cw_serde] +pub struct InstantiateMsg { + words: Vec, +} + +#[cw_serde] +pub enum ExecuteMsg { + Proove { word_id: usize, proof: Vec }, +} + +#[cw_serde] +#[derive(QueryResponses)] +pub enum QueryMsg { + #[returns(Checksum)] + VkChecksum {}, + #[returns(Vec)] + WordList {}, +} + +#[derive(Error, Debug)] +pub enum Never {} + + +#[cw_serde] +pub enum SudoMsg {} + +#[derive(Error, Debug)] +pub enum ContractError { + #[error("{0}")] + Std(#[from] StdError), + #[error("{0}")] + VerificationError(#[from] VerificationError), +} + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn instantiate( + deps: DepsMut, + _env: Env, + _info: MessageInfo, + msg: InstantiateMsg, +) -> Result { + set_contract_version(deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?; + + CONFIG.save(deps.storage, &Config { words: msg.words })?; + + Ok(Response::new().add_attribute("method", "instantiate")) +} + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn execute( + deps: DepsMut, + _env: Env, + _info: MessageInfo, + msg: ExecuteMsg, +) -> Result { + let c = CONFIG.load(deps.storage)?; + match msg { + ExecuteMsg::Proove { word_id, proof } => { + let instance = c.words[word_id].as_bytes(); + deps.api.halo2_proof_instance_verify(&proof, instance)?; + } + } + + Ok(Response::default()) +} + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { + match msg { + QueryMsg::VkChecksum {} => unimplemented!(), + QueryMsg::WordList {} => to_json_binary(&CONFIG.load(deps.storage)?.words), + } +} + +// sudo msg +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn sudo(deps: DepsMut, _env: Env, msg: SudoMsg) -> Result { + Ok(Response::default()) +} + +// #[test] +// fn test_gas_consumption() -> StdResult<()> { +// #![cfg(not(target_arch = "wasm32"))] +// let mut deps = cosmwasm_std::testing::mock_dependencies(); +// MOCK_DATA.save(&mut deps.storage, &vec![])?; +// CONFIG.save(&mut deps.storage, &Config { val: 2 })?; + +// increment(deps.as_mut())?; + +// let data = MOCK_DATA.load(&deps.storage)?; +// let byte_count = data.len(); + +// println!("Byte count: {}", byte_count); + +// Ok(()) +// } diff --git a/zk-packages/README.md b/zk-packages/README.md new file mode 100644 index 0000000..f38c907 --- /dev/null +++ b/zk-packages/README.md @@ -0,0 +1 @@ +# Zk-Packages diff --git a/zk-packages/snap/jest.config.js b/zk-packages/snap/jest.config.js new file mode 100644 index 0000000..f0a22c3 --- /dev/null +++ b/zk-packages/snap/jest.config.js @@ -0,0 +1,6 @@ +module.exports = { + preset: '@metamask/snaps-jest', + transform: { + '^.+\\.(t|j)sx?$': 'ts-jest', + }, +}; diff --git a/zk-packages/snap/package.json b/zk-packages/snap/package.json new file mode 100644 index 0000000..f5c3598 --- /dev/null +++ b/zk-packages/snap/package.json @@ -0,0 +1,36 @@ +{ + "name": "@terpnetwork/snap-n-pull", + "version": "0.0.1", + "description": "Terp Network Metmamask Snap that generates claim proofs.", + "repository": { + "type": "git", + "url": "https://github.com/terpnetwork/snap-n-pull.git" + }, + "license": "(MIT-0 OR Apache-2.0)", + "main": "./dist/bundle.js", + "files": [ + "dist/", + "images/logo.svg", + "snap.manifest.json" + ], + "scripts": { + "build": "mm-snap build", + "build:clean": "yarn clean && yarn build", + "build:prePublish": "bash ./build_prePublish.sh", + "build:local": "./build_local.sh", + "clean": "rimraf dist", + "lint": "eslint --color --ext .ts src/", + "lint:fix": "yarn run lint --fix", + "prepublishOnly": "mm-snap manifest", + "serve": "mm-snap serve", + "start": "mm-snap watch", + "test": "jest" + }, + "dependencies": { + "@metamask/snaps-sdk": "^6.17.1" , + "@noble/curves": "2.0.1" + + }, + "devDependencies": {}, + "publishConfig": {} +} \ No newline at end of file diff --git a/zk-packages/snap/pnpm-lock.yaml b/zk-packages/snap/pnpm-lock.yaml new file mode 100644 index 0000000..8d1bc2d --- /dev/null +++ b/zk-packages/snap/pnpm-lock.yaml @@ -0,0 +1,449 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@metamask/snaps-sdk': + specifier: ^6.17.1 + version: 6.24.0(webextension-polyfill@0.12.0) + '@noble/curves': + specifier: 2.0.1 + version: 2.0.1 + +packages: + + '@ethereumjs/common@3.2.0': + resolution: {integrity: sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==} + + '@ethereumjs/rlp@4.0.1': + resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} + engines: {node: '>=14'} + hasBin: true + + '@ethereumjs/tx@4.2.0': + resolution: {integrity: sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==} + engines: {node: '>=14'} + + '@ethereumjs/util@8.1.0': + resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} + engines: {node: '>=14'} + + '@metamask/json-rpc-engine@10.2.0': + resolution: {integrity: sha512-/aJrBeT3RblRRpESgNjHqXMLZPFPl14g6oVJnek5F1yW6iA7n/eeCd0smgKOJ95uYlFtGNzyxzX7Qy3IlpBv5w==} + engines: {node: ^18.18 || >=20} + + '@metamask/json-rpc-middleware-stream@8.0.8': + resolution: {integrity: sha512-GeYc3tfRvEMhKzNcRSN1m1XIQs2SPaCpzgljoDlYyvnYeftGqteSSXu9ZXRGSdgtOzoS7gUJntj+JYxticGoYg==} + engines: {node: ^18.18 || >=20} + + '@metamask/key-tree@10.1.1': + resolution: {integrity: sha512-k9/MljlUqXC86hAOp6QGUwNm9ODWuA/YkMxiEwXcChNJgQSYfPzDh+Hp6Agf3g2mLKagMbl2nkH0+4vas+Pnyw==} + engines: {node: ^18.20 || ^20.17 || >=22} + + '@metamask/object-multiplex@2.1.0': + resolution: {integrity: sha512-4vKIiv0DQxljcXwfpnbsXcfa5glMj5Zg9mqn4xpIWqkv6uJ2ma5/GtUfLFSxhlxnR8asRMv8dDmWya1Tc1sDFA==} + engines: {node: ^16.20 || ^18.16 || >=20} + + '@metamask/providers@22.1.1': + resolution: {integrity: sha512-z7ODqHkbhSfG6SK9gJ/SAxS/NnfjpScKgQEHiNCPnPWK4Lx5ej8IsXieEWvssrVlQechiPrHieFim7C8drK78A==} + engines: {node: ^18.18 || >=20} + peerDependencies: + webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 + + '@metamask/rpc-errors@7.0.3': + resolution: {integrity: sha512-nrEaeBawm8yFU7hetJKok/CUs0tQsWtTqp3OLbFhPUMXYqU7uI5LAV5vi9o7rTjFkUyof7Nzbw5bea5+1ou+dg==} + engines: {node: ^18.20 || ^20.17 || >=22} + + '@metamask/safe-event-emitter@3.1.2': + resolution: {integrity: sha512-5yb2gMI1BDm0JybZezeoX/3XhPDOtTbcFvpTXM9kxsoZjPZFh4XciqRbpD6N86HYZqWDhEaKUDuOyR0sQHEjMA==} + engines: {node: '>=12.0.0'} + + '@metamask/scure-bip39@2.1.1': + resolution: {integrity: sha512-1K8aBsAqr6+8jWhguVl06n8e+zjV9sUnys+5PLyVU4mb8LbulQ60F6cq7iQys3xX/yCwKt1+7c7j2nuTEpW+ZQ==} + engines: {node: ^16.20 || ^18.16 || >=20} + + '@metamask/snaps-sdk@6.24.0': + resolution: {integrity: sha512-1MjfKt8fsKfNLs69xWD9XNtCFstth4mGvzkfXZdm37yZn8Hu4PHE56AFvTvTlYua3zRTuEHXn1PALDGnLs6jPw==} + engines: {node: ^18.16 || >=20} + + '@metamask/superstruct@3.2.1': + resolution: {integrity: sha512-fLgJnDOXFmuVlB38rUN5SmU7hAFQcCjrg3Vrxz67KTY7YHFnSNEKvX4avmEBdOI0yTCxZjwMCFEqsC8k2+Wd3g==} + engines: {node: '>=16.0.0'} + + '@metamask/utils@11.8.1': + resolution: {integrity: sha512-DIbsNUyqWLFgqJlZxi1OOCMYvI23GqFCvNJAtzv8/WXWzJfnJnvp1M24j7VvUe3URBi3S86UgQ7+7aWU9p/cnQ==} + engines: {node: ^18.18 || ^20.14 || >=22} + + '@noble/curves@1.4.2': + resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==} + + '@noble/curves@1.9.7': + resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/curves@2.0.1': + resolution: {integrity: sha512-vs1Az2OOTBiP4q0pwjW5aF0xp9n4MxVrmkFBxc6EKZc6ddYx5gaZiAsZoq0uRRXWbi3AT/sBqn05eRPtn1JCPw==} + engines: {node: '>= 20.19.0'} + + '@noble/hashes@1.3.3': + resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} + engines: {node: '>= 16'} + + '@noble/hashes@1.4.0': + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} + + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@2.0.1': + resolution: {integrity: sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==} + engines: {node: '>= 20.19.0'} + + '@scure/base@1.1.9': + resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} + + '@scure/base@1.2.6': + resolution: {integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==} + + '@scure/bip32@1.4.0': + resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} + + '@scure/bip39@1.3.0': + resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/deep-freeze-strict@1.1.2': + resolution: {integrity: sha512-VvMETBojHvhX4f+ocYTySQlXMZfxKV3Jyb7iCWlWaC+exbedkv6Iv2bZZqI736qXjVguH6IH7bzwMBMfTT+zuQ==} + + '@types/lodash@4.17.21': + resolution: {integrity: sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-freeze-strict@1.1.1: + resolution: {integrity: sha512-QemROZMM2IvhAcCFvahdX2Vbm4S/txeq5rFYU9fh4mQP79WTMW5c/HkQ2ICl1zuzcDZdPZ6zarDxQeQMsVYoNA==} + + detect-browser@5.3.0: + resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} + + ethereum-cryptography@2.2.1: + resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} + + extension-port-stream@4.2.0: + resolution: {integrity: sha512-i5IgiPVMVrHN+Zx8PRjvFsOw8L1A3sboVwPZghDjW9Yp1BMmBDE6mCcTNu4xMXPYduBOwI3CBK7wd72LcOyD6g==} + engines: {node: '>=12.0.0'} + peerDependencies: + webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + micro-ftch@0.3.1: + resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + pony-cause@2.1.11: + resolution: {integrity: sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==} + engines: {node: '>=12.0.0'} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + webextension-polyfill@0.12.0: + resolution: {integrity: sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q==} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + +snapshots: + + '@ethereumjs/common@3.2.0': + dependencies: + '@ethereumjs/util': 8.1.0 + crc-32: 1.2.2 + + '@ethereumjs/rlp@4.0.1': {} + + '@ethereumjs/tx@4.2.0': + dependencies: + '@ethereumjs/common': 3.2.0 + '@ethereumjs/rlp': 4.0.1 + '@ethereumjs/util': 8.1.0 + ethereum-cryptography: 2.2.1 + + '@ethereumjs/util@8.1.0': + dependencies: + '@ethereumjs/rlp': 4.0.1 + ethereum-cryptography: 2.2.1 + micro-ftch: 0.3.1 + + '@metamask/json-rpc-engine@10.2.0': + dependencies: + '@metamask/rpc-errors': 7.0.3 + '@metamask/safe-event-emitter': 3.1.2 + '@metamask/utils': 11.8.1 + '@types/deep-freeze-strict': 1.1.2 + deep-freeze-strict: 1.1.1 + klona: 2.0.6 + transitivePeerDependencies: + - supports-color + + '@metamask/json-rpc-middleware-stream@8.0.8': + dependencies: + '@metamask/json-rpc-engine': 10.2.0 + '@metamask/safe-event-emitter': 3.1.2 + '@metamask/utils': 11.8.1 + readable-stream: 3.6.2 + transitivePeerDependencies: + - supports-color + + '@metamask/key-tree@10.1.1': + dependencies: + '@metamask/scure-bip39': 2.1.1 + '@metamask/utils': 11.8.1 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + transitivePeerDependencies: + - supports-color + + '@metamask/object-multiplex@2.1.0': + dependencies: + once: 1.4.0 + readable-stream: 3.6.2 + + '@metamask/providers@22.1.1(webextension-polyfill@0.12.0)': + dependencies: + '@metamask/json-rpc-engine': 10.2.0 + '@metamask/json-rpc-middleware-stream': 8.0.8 + '@metamask/object-multiplex': 2.1.0 + '@metamask/rpc-errors': 7.0.3 + '@metamask/safe-event-emitter': 3.1.2 + '@metamask/utils': 11.8.1 + detect-browser: 5.3.0 + extension-port-stream: 4.2.0(webextension-polyfill@0.12.0) + fast-deep-equal: 3.1.3 + is-stream: 2.0.1 + readable-stream: 3.6.2 + webextension-polyfill: 0.12.0 + transitivePeerDependencies: + - supports-color + + '@metamask/rpc-errors@7.0.3': + dependencies: + '@metamask/utils': 11.8.1 + fast-safe-stringify: 2.1.1 + transitivePeerDependencies: + - supports-color + + '@metamask/safe-event-emitter@3.1.2': {} + + '@metamask/scure-bip39@2.1.1': + dependencies: + '@noble/hashes': 1.3.3 + '@scure/base': 1.1.9 + + '@metamask/snaps-sdk@6.24.0(webextension-polyfill@0.12.0)': + dependencies: + '@metamask/key-tree': 10.1.1 + '@metamask/providers': 22.1.1(webextension-polyfill@0.12.0) + '@metamask/rpc-errors': 7.0.3 + '@metamask/superstruct': 3.2.1 + '@metamask/utils': 11.8.1 + transitivePeerDependencies: + - supports-color + - webextension-polyfill + + '@metamask/superstruct@3.2.1': {} + + '@metamask/utils@11.8.1': + dependencies: + '@ethereumjs/tx': 4.2.0 + '@metamask/superstruct': 3.2.1 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + '@types/debug': 4.1.12 + '@types/lodash': 4.17.21 + debug: 4.4.3 + lodash: 4.17.21 + pony-cause: 2.1.11 + semver: 7.7.3 + uuid: 9.0.1 + transitivePeerDependencies: + - supports-color + + '@noble/curves@1.4.2': + dependencies: + '@noble/hashes': 1.4.0 + + '@noble/curves@1.9.7': + dependencies: + '@noble/hashes': 1.8.0 + + '@noble/curves@2.0.1': + dependencies: + '@noble/hashes': 2.0.1 + + '@noble/hashes@1.3.3': {} + + '@noble/hashes@1.4.0': {} + + '@noble/hashes@1.8.0': {} + + '@noble/hashes@2.0.1': {} + + '@scure/base@1.1.9': {} + + '@scure/base@1.2.6': {} + + '@scure/bip32@1.4.0': + dependencies: + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.9 + + '@scure/bip39@1.3.0': + dependencies: + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.9 + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + + '@types/deep-freeze-strict@1.1.2': {} + + '@types/lodash@4.17.21': {} + + '@types/ms@2.1.0': {} + + crc-32@1.2.2: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + deep-freeze-strict@1.1.1: {} + + detect-browser@5.3.0: {} + + ethereum-cryptography@2.2.1: + dependencies: + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + '@scure/bip32': 1.4.0 + '@scure/bip39': 1.3.0 + + extension-port-stream@4.2.0(webextension-polyfill@0.12.0): + dependencies: + readable-stream: 3.6.2 + webextension-polyfill: 0.12.0 + + fast-deep-equal@3.1.3: {} + + fast-safe-stringify@2.1.1: {} + + inherits@2.0.4: {} + + is-stream@2.0.1: {} + + klona@2.0.6: {} + + lodash@4.17.21: {} + + micro-ftch@0.3.1: {} + + ms@2.1.3: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + pony-cause@2.1.11: {} + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + safe-buffer@5.2.1: {} + + semver@7.7.3: {} + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + util-deprecate@1.0.2: {} + + uuid@9.0.1: {} + + webextension-polyfill@0.12.0: {} + + wrappy@1.0.2: {} diff --git a/zk-packages/snap/src/index.tsx b/zk-packages/snap/src/index.tsx new file mode 100644 index 0000000..a1d7196 --- /dev/null +++ b/zk-packages/snap/src/index.tsx @@ -0,0 +1,78 @@ +import { + OnRpcRequestHandler, + OnUserInputHandler, + UserInputEventType, +} from '@metamask/snaps-sdk'; + +import type { InitOutput } from '@terpnetwork/snap-n-pull'; +import { initialiseWasm } from './utils/initialiseWasm'; +import { gn, type GenerateNullifierParams } from './rpc/gn'; + +let wasm: InitOutput | null = null; + +/** + * Initialize WASM module if not already initialized + */ +async function ensureWasmInitialized(): Promise { + if (!wasm) { + wasm = initialiseWasm(); + } + return wasm; +} + +/** + * Handle incoming JSON-RPC requests from dApps + * + * Supported methods: + * - generateNullifier: Generate note nullifier for headstash claim + */ +export const onRpcRequest: OnRpcRequestHandler = async ({ + request, + origin, +}) => { + // Ensure WASM is initialized + const wasmModule = await ensureWasmInitialized(); + + switch (request.method) { + case 'generateNullifier': { + // Validate params + if (!request.params || typeof request.params !== 'object') { + throw new Error('Invalid params: expected object'); + } + + const params = request.params as GenerateNullifierParams; + + // Validate required fields + if (!params.headstashId) { + throw new Error('Missing required field: headstashId'); + } + if (!params.noteInputs) { + throw new Error('Missing required field: noteInputs'); + } + if (!params.noteInputs.recp) { + throw new Error('Missing required field: noteInputs.recp'); + } + if (!params.noteInputs.nd) { + throw new Error('Missing required field: noteInputs.nd'); + } + if (!params.noteInputs.v) { + throw new Error('Missing required field: noteInputs.v'); + } + if (params.noteInputs.fdi === undefined) { + throw new Error('Missing required field: noteInputs.fdi'); + } + if (!params.noteInputs.rho) { + throw new Error('Missing required field: noteInputs.rho'); + } + if (!params.noteInputs.rseed) { + throw new Error('Missing required field: noteInputs.rseed'); + } + + // Generate nullifier + return await gn(wasmModule, params, origin); + } + + default: + throw new Error(`Method not found: ${request.method}`); + } +}; \ No newline at end of file diff --git a/zk-packages/snap/src/rpc/gn.tsx b/zk-packages/snap/src/rpc/gn.tsx new file mode 100644 index 0000000..963413d --- /dev/null +++ b/zk-packages/snap/src/rpc/gn.tsx @@ -0,0 +1,141 @@ +import { Box, Copyable, Divider, Heading, Text } from '@metamask/snaps-sdk/jsx'; +import type { InitOutput } from '@terpnetwork/snap-n-pull'; +import { getSk } from '../utils/getSk'; +import { generateNullifier, type NoteInputs } from '../utils/nullifier'; +import { getPk } from '../utils/getPk'; +import { loadCircuitKey, downloadAndCacheCircuitKey } from '../utils/circuitKeys'; + +/** + * Parameters for generating a note nullifier + */ +export type GenerateNullifierParams = { + /** The headstash contract address */ + headstashId: string; + /** Note details */ + noteInputs: { + /** Recipient address (hex) */ + recp: string; + /** Denomination (e.g., "uterp") */ + nd: string; + /** Value amount */ + v: string; + /** Fixed denomination index (leaf position) */ + fdi: number; + /** Randomness rho (hex) */ + rho: string; + /** Random seed (hex) */ + rseed: string; + }; +}; + +/** + * Response from nullifier generation + */ +export type GenerateNullifierResponse = { + /** The nullifier (hex) */ + nullifier: string; + /** The note commitment (hex) */ + commitment: string; + /** The public key (hex) - safe to reveal */ + pk: string; +}; + +/** + * Generate note nullifier (gn^2) + * + * This function: + * 1. Shows a confirmation dialog to the user + * 2. Retrieves the secret key from MetaMask (transiently) + * 3. Generates the nullifier and commitment + * 4. Returns only the public outputs (nullifier, commitment, pk) + * + * SECURITY: + * - Secret key is NEVER stored, logged, or returned + * - Only used transiently for cryptographic operations + * - Only public key is included in response + * + * @param wasm - Initialized WASM module + * @param params - Note inputs for nullifier generation + * @param origin - Origin of the request (for user confirmation) + * @returns Nullifier, commitment, and public key + */ +export async function gn( + wasm: InitOutput, + params: GenerateNullifierParams, + origin: string, +): Promise { + // Show confirmation dialog to user + const result = await snap.request({ + method: 'snap_dialog', + params: { + type: 'confirmation', + content: ( + + Generate Nullifier for Headstash Claim + + Origin: {origin} + Headstash ID: {params.headstashId} + + Note Details: + Recipient: {params.noteInputs.recp} + Amount: {params.noteInputs.v} {params.noteInputs.nd} + Position: {params.noteInputs.fdi} + + + This will generate a nullifier for claiming this headstash allocation. + Your private key will be used temporarily but never stored or revealed. + + + + verify @ https://headstash.terp.network/trustless + + + ), + }, + }); + + if (!result) { + throw new Error('User rejected nullifier generation'); + } + + // Load circuit verification key for this headstash (with caching) + // This minimizes bandwidth by caching VK locally + let vk: string | null = null; + try { + vk = await loadCircuitKey(params.headstashId, 'vk'); + } catch (error) { + // VK not available - that's okay for nullifier generation + // We only need VK for proof verification, not nullifier derivation + console.warn(`VK not available for ${params.headstashId}:`, error); + } + + // Retrieve secret key from MetaMask (transiently - not stored) + const sk = await getSk(); + + // Derive public key (safe to reveal) + const pk = await getPk(sk); + + // Convert value to BigInt + const noteInputs: NoteInputs = { + recp: params.noteInputs.recp, + nd: params.noteInputs.nd, + v: BigInt(params.noteInputs.v), + fdi: params.noteInputs.fdi, + rho: params.noteInputs.rho, + rseed: params.noteInputs.rseed, + }; + + // Generate nullifier and commitment + const nullifierData = await generateNullifier(wasm, sk, noteInputs); + + // Clear the secret key from memory + sk.fill(0); + + // Return only public data + return { + nullifier: nullifierData.nullifier, + commitment: nullifierData.commitment, + pk, // Public key - safe to reveal + vk_cached: vk !== null, // Indicate if VK is cached for future proof generation + }; +} diff --git a/zk-packages/snap/src/utils/circuitKeys.tsx b/zk-packages/snap/src/utils/circuitKeys.tsx new file mode 100644 index 0000000..b8bb132 --- /dev/null +++ b/zk-packages/snap/src/utils/circuitKeys.tsx @@ -0,0 +1,306 @@ +/** + * Circuit key management for headstash proof generation + * + * This module handles loading and caching of circuit proving/verification keys + * for different headstash instances. Keys are cached locally to minimize bandwidth. + * + * ## Architecture + * + * 1. **Static Files**: Circuit keys bundled with snap (snap.manifest.json) + * 2. **Dynamic Download**: Download keys from headstash-api if not bundled + * 3. **Local Caching**: Cache downloaded keys in snap storage + * + * ## Key Types + * + * - **Verification Key (VK)**: Used to verify proofs (smaller, ~1-2KB) + * - **Proving Key (PK)**: Used to generate proofs (larger, ~100MB) + * + * For bandwidth optimization, we: + * - Bundle common VKs with the snap + * - Download PKs on-demand + * - Cache both in snap storage by headstash ID + */ + +/** + * Circuit key metadata + */ +export type CircuitKeyMetadata = { + headstashId: string; + vkPath?: string; // Path to static VK file + pkPath?: string; // Path to static PK file + vkUrl?: string; // URL to download VK + pkUrl?: string; // URL to download PK + vkHash?: string; // SHA256 hash for verification + pkHash?: string; // SHA256 hash for verification +}; + +/** + * Load verification key for a headstash instance + * + * Priority order: + * 1. Check snap storage (cached from previous download) + * 2. Load from static files (bundled with snap) + * 3. Download from headstash-api + * + * @param headstashId - Contract address of the headstash + * @returns Verification key as hex string + */ +export async function loadVerificationKey( + headstashId: string, +): Promise { + // 1. Check cache first + const cached = await loadCachedKey(headstashId, 'vk'); + if (cached) { + return cached; + } + + // 2. Try loading from static files + const staticKey = await loadStaticVK(headstashId); + if (staticKey) { + // Cache it for next time + await cacheKey(headstashId, 'vk', staticKey); + return staticKey; + } + + // 3. Download from API + const downloaded = await downloadVerificationKey(headstashId); + await cacheKey(headstashId, 'vk', downloaded); + return downloaded; +} + +/** + * Load proving key for a headstash instance + * + * Proving keys are much larger (~100MB), so we: + * - Never bundle them with the snap + * - Download on-demand + * - Cache aggressively + * + * @param headstashId - Contract address of the headstash + * @returns Proving key as hex string + */ +export async function loadProvingKey(headstashId: string): Promise { + // 1. Check cache first (proving keys are large, caching is critical) + const cached = await loadCachedKey(headstashId, 'pk'); + if (cached) { + return cached; + } + + // 2. Download from API (no static files for PKs due to size) + const downloaded = await downloadProvingKey(headstashId); + await cacheKey(headstashId, 'pk', downloaded); + return downloaded; +} + +/** + * Load static verification key from bundled files + * + * This uses snap_getFile to load VK files that were included + * in the snap bundle via snap.manifest.json. + * + * @param headstashId - Contract address + * @returns VK hex string or null if not found + */ +async function loadStaticVK(headstashId: string): Promise { + try { + // Map headstash IDs to static file paths + // This would be configured per deployment + const vkPath = getStaticVKPath(headstashId); + if (!vkPath) { + return null; + } + + // Load from static files using snap_getFile + const contents = await snap.request({ + method: 'snap_getFile', + params: { + path: vkPath, + encoding: 'hex', + }, + }); + + return contents; + } catch (error) { + // Static file not found, that's okay + return null; + } +} + +/** + * Download verification key from headstash-api + * + * @param headstashId - Contract address + * @returns VK hex string + */ +async function downloadVerificationKey(headstashId: string): Promise { + // TODO: Implement actual API call + // For now, throw to indicate not implemented + throw new Error(`VK download not yet implemented for ${headstashId}`); + + // Example implementation: + // const response = await fetch( + // `https://headstash-api.terp.network/vk/${headstashId}`, + // ); + // const vkHex = await response.text(); + // return vkHex; +} + +/** + * Download proving key from headstash-api + * + * WARNING: Proving keys are very large (~100MB). This may take time. + * + * @param headstashId - Contract address + * @returns PK hex string + */ +async function downloadProvingKey(headstashId: string): Promise { + // TODO: Implement actual API call with progress indication + throw new Error(`PK download not yet implemented for ${headstashId}`); + + // Example implementation with chunked download: + // const response = await fetch( + // `https://headstash-api.terp.network/pk/${headstashId}`, + // ); + // const reader = response.body?.getReader(); + // // ... stream chunks and show progress + // return pkHex; +} + +/** + * Load cached key from snap storage + * + * @param headstashId - Contract address + * @param keyType - 'vk' or 'pk' + * @returns Cached key hex string or null if not found + */ +async function loadCachedKey( + headstashId: string, + keyType: 'vk' | 'pk', +): Promise { + try { + const state = await snap.request({ + method: 'snap_manageState', + params: { operation: 'get' }, + }); + + const cacheKey = `circuit_${keyType}_${headstashId}`; + return (state as any)?.[cacheKey] || null; + } catch (error) { + return null; + } +} + +/** + * Cache key in snap storage + * + * @param headstashId - Contract address + * @param keyType - 'vk' or 'pk' + * @param keyData - Key data as hex string + */ +async function cacheKey( + headstashId: string, + keyType: 'vk' | 'pk', + keyData: string, +): Promise { + const state = (await snap.request({ + method: 'snap_manageState', + params: { operation: 'get' }, + })) || {}; + + const cacheKey = `circuit_${keyType}_${headstashId}`; + + await snap.request({ + method: 'snap_manageState', + params: { + operation: 'update', + newState: { + ...state, + [cacheKey]: keyData, + }, + }, + }); +} + +/** + * Get static VK file path for a headstash ID + * + * This maps known headstash instances to their bundled VK files. + * Update this mapping when deploying new headstash instances. + * + * @param headstashId - Contract address + * @returns Path to static file or null + */ +function getStaticVKPath(headstashId: string): string | null { + // Map of known headstash IDs to static VK files + // These would be configured during snap deployment + const staticVKMap: Record = { + // Example: + // 'terp1contract123': './files/circuit-vk-v1.bin', + // 'terp1contract456': './files/circuit-vk-v2.bin', + }; + + return staticVKMap[headstashId] || null; +} + +/** + * Clear all cached circuit keys (for testing/debugging) + */ +export async function clearCircuitKeyCache(): Promise { + const state = (await snap.request({ + method: 'snap_manageState', + params: { operation: 'get' }, + })) || {}; + + // Remove all circuit_* keys + const newState = Object.keys(state).reduce((acc, key) => { + if (!key.startsWith('circuit_')) { + acc[key] = state[key]; + } + return acc; + }, {} as Record); + + await snap.request({ + method: 'snap_manageState', + params: { + operation: 'update', + newState, + }, + }); +} + +/** + * Download and cache circuit key from API for a headstash + * + * This is the main entry point for ensuring circuit keys are available. + * It checks cache first, then downloads if needed. + * + * @param headstashId - Contract address + * @param keyType - 'vk' or 'pk' + * @returns Hex-encoded circuit key + */ +export async function downloadAndCacheCircuitKey( + headstashId: string, + keyType: 'vk' | 'pk', +): Promise { + if (keyType === 'vk') { + return loadVerificationKey(headstashId); + } else { + return loadProvingKey(headstashId); + } +} + +/** + * Load a circuit key (VK or PK) for a headstash + * + * Convenience wrapper that handles caching automatically. + * + * @param headstashId - Contract address + * @param keyType - 'vk' or 'pk' + * @returns Hex-encoded circuit key + */ +export async function loadCircuitKey( + headstashId: string, + keyType: 'vk' | 'pk', +): Promise { + return downloadAndCacheCircuitKey(headstashId, keyType); +} diff --git a/zk-packages/snap/src/utils/dialogs.tsx b/zk-packages/snap/src/utils/dialogs.tsx new file mode 100644 index 0000000..59650ed --- /dev/null +++ b/zk-packages/snap/src/utils/dialogs.tsx @@ -0,0 +1,23 @@ +import { Box, Heading, Text, Link } from '@metamask/snaps-sdk/jsx'; + +export const installDialog = async () => { + await snap.request({ + method: 'snap_dialog', + params: { + type: 'alert', + content: ( + + You have installed the Headstash Snap! + + This snap powers the serialization of proof inputs and the actual proof generation of, involving your private key.\ + Please verify the headstash spec & also review the scripts we have for released package binary recreation & verification {' '} + + https://headstash.terp.network/trustless + + . + + + ), + }, + }); +}; diff --git a/zk-packages/snap/src/utils/getPk.tsx b/zk-packages/snap/src/utils/getPk.tsx new file mode 100644 index 0000000..23f4ba7 --- /dev/null +++ b/zk-packages/snap/src/utils/getPk.tsx @@ -0,0 +1,51 @@ +/** + * Derive the public key from the secret key + * + * This function derives the secp256k1 public key from the secret key. + * The public key is used for verification and address derivation but never + * reveals the private key. + * + * @param sk - The secret key as Uint8Array (32 bytes) + * @returns The compressed public key as hex string (33 bytes, 66 hex chars) + */ +export async function getPk(sk: Uint8Array): Promise { + // Use secp256k1 to derive public key + const { secp256k1 } = await import('@noble/curves/secp256k1'); + + // Derive public key (compressed format) + const publicKey = secp256k1.getPublicKey(sk, true); + + // Return as hex string + return Buffer.from(publicKey).toString('hex'); +} + +/** + * Derive the Ethereum-style address from public key + * + * This follows the Ethereum EIP-55 address derivation: + * 1. Serialize uncompressed public key (65 bytes) + * 2. Hash with Keccak256 + * 3. Take last 20 bytes + * + * @param pk - The compressed public key as hex string + * @returns The Ethereum-style address (0x-prefixed, 40 hex chars for 20 bytes) + */ +export async function pkToAddress(pk: string): Promise { + const { secp256k1 } = await import('@noble/curves/secp256k1'); + const { keccak_256 } = await import('@noble/hashes/sha3'); + + // Convert compressed public key to bytes + const pkBytes = Buffer.from(pk, 'hex'); + + // Get uncompressed public key (remove 0x04 prefix for hashing) + const uncompressed = secp256k1.ProjectivePoint.fromHex(pkBytes).toRawBytes(false); + + // Hash the uncompressed public key (excluding the 0x04 prefix byte) + const hash = keccak_256(uncompressed.slice(1)); + + // Take last 20 bytes + const address = hash.slice(-20); + + // Return as 0x-prefixed hex string + return '0x' + Buffer.from(address).toString('hex'); +} diff --git a/zk-packages/snap/src/utils/getSk.tsx b/zk-packages/snap/src/utils/getSk.tsx new file mode 100644 index 0000000..416c4db --- /dev/null +++ b/zk-packages/snap/src/utils/getSk.tsx @@ -0,0 +1,40 @@ +/** + * Retrieve the secret key from MetaMask Snap + * + * This function requests entropy from MetaMask using BIP-32 derivation. + * The secret key is NEVER stored or revealed - only used transiently for + * cryptographic operations (nullifier generation, signing). + * + * SECURITY: + * - Private key is only accessed when needed for specific operations + * - Never logged, stored, or transmitted + * - Only the public key is ever revealed in spent note records + * + * Uses snap_getBip32Entropy as per: + * https://docs.metamask.io/snaps/reference/snaps-api/#snap_getbip32entropy + * + * @returns The 32-byte secret key as Uint8Array + */ +export async function getSk(): Promise { + // Request BIP-32 entropy from MetaMask Snap + // Path: m/44'/133'/0'/0'/0' (Zcash coin type as placeholder for Terp Network) + const entropyResult = await snap.request({ + method: 'snap_getBip32Entropy', + params: { + path: ['m', "44'", "133'", "0'", "0'", "0'"], + curve: 'secp256k1', + }, + }); + + // Extract the private key from the entropy result + // The privateKey is returned as a hex string (without 0x prefix) + const privateKeyHex = entropyResult.privateKey; + + // Convert hex string to Uint8Array (32 bytes) + const privateKeyBytes = new Uint8Array(32); + for (let i = 0; i < 32; i++) { + privateKeyBytes[i] = parseInt(privateKeyHex.substr(i * 2, 2), 16); + } + + return privateKeyBytes; +} diff --git a/zk-packages/snap/src/utils/initialiseWasm.ts b/zk-packages/snap/src/utils/initialiseWasm.ts new file mode 100644 index 0000000..642a66c --- /dev/null +++ b/zk-packages/snap/src/utils/initialiseWasm.ts @@ -0,0 +1,17 @@ +import type { InitOutput, initSync } from '@terpnetwork/snap-n-pull'; +import wasmDataBase64 from '@terpnetwork/snap_n_pull.wasm'; + +export function initialiseWasm(): InitOutput { + const base64String = wasmDataBase64 as unknown as string; + // Check if the imported data is a data URL + const base64Formatted = base64String.startsWith('data:') + ? base64String.split(',')[1] + : base64String; + + if (!base64Formatted) { + throw new Error('Invalid WASM data'); + } + + const wasmData = Buffer.from(base64Formatted, 'base64'); + return initSync({ module: wasmData }); +} diff --git a/zk-packages/snap/src/utils/nullifier.tsx b/zk-packages/snap/src/utils/nullifier.tsx new file mode 100644 index 0000000..ed06b2f --- /dev/null +++ b/zk-packages/snap/src/utils/nullifier.tsx @@ -0,0 +1,136 @@ +/** + * Nullifier generation utilities + * + * This module provides functions to generate note nullifiers and commitments + * using the wasm-bindgen exports from snap-n-pull. + * + * SECURITY PRINCIPLE: + * - Secret key (esk) is only used transiently during computation + * - Never stored, logged, or transmitted + * - Only public keys and nullifiers are returned/stored + */ + +import type { InitOutput } from '@terpnetwork/snap-n-pull'; + +/** + * Note data required for nullifier generation + */ +export interface NoteInputs { + /** Recipient address (32 bytes hex) */ + recp: string; + /** Note denomination (e.g., "uterp") */ + nd: string; + /** Note value amount */ + v: bigint; + /** Fixed denomination index (leaf position in merkle tree) */ + fdi: number; + /** Randomness value rho (32 bytes hex) */ + rho: string; + /** Random seed for note (32 bytes hex) */ + rseed: string; +} + +/** + * Generated nullifier data + */ +export interface NullifierData { + /** The nullifier (32 bytes hex) */ + nullifier: string; + /** The note commitment (32 bytes hex) */ + commitment: string; + /** The nullifier deriving key (32 bytes hex) */ + nk: string; +} + +/** + * Generate nullifier and commitment for a note + * + * This function: + * 1. Takes the secret key (transiently, never stored) + * 2. Derives the nullifier key (nk) from esk and rho + * 3. Generates the nullifier and note commitment + * 4. Returns the cryptographic values needed for claiming + * + * The secret key is used only during this computation and is not retained. + * + * @param wasm - The initialized WASM module + * @param esk - Secret key as Uint8Array (32 bytes) - NEVER STORED + * @param noteInputs - Public inputs for the note + * @returns Nullifier, commitment, and nullifier key + */ +export async function generateNullifier( + wasm: InitOutput, + esk: Uint8Array, + noteInputs: NoteInputs, +): Promise { + // Convert esk to hex for WASM (this is transient, not stored) + const eskHex = Buffer.from(esk).toString('hex'); + + // Use the HeadstashWallet from WASM to generate note data + // This follows the same pattern as the Rust implementation in + // zk-crates/snap-n-pull/src/wallet/wallet.rs:generate_note_data + + // Import the WebWallet class from WASM + const { WebWallet } = wasm; + + // Create a temporary wallet instance (in-memory only) + // We use "test" network for nullifier generation (network doesn't affect crypto) + const wallet = await WebWallet.new( + 'test', + 'http://localhost:8080', // Dummy URL, not used for nullifier generation + null, + null, + ); + + // Store the note to generate nullifier and commitment + // This calls the Rust generate_note_data function internally + await wallet.gen_claim( + 'temp_headstash_id', // Temporary ID, only used for this operation + eskHex, + noteInputs.rho, + noteInputs.fdi, + noteInputs.recp, + noteInputs.v.toString(), + noteInputs.nd, + noteInputs.rseed, + ); + + // Retrieve the generated note data + const notesJson = await wallet.list_unspent_notes('temp_headstash_id'); + const notes = JSON.parse(notesJson); + + if (notes.length === 0) { + throw new Error('Failed to generate nullifier'); + } + + const note = notes[0]; + + // Extract the nullifier data + // Note: We're returning the nullifier key (nk) which is derived from esk+rho, + // but we're NOT returning esk itself + return { + nullifier: note.nullifier, + commitment: note.commitment, + nk: note.nk || '', // Nullifier key (safe to store/reveal) + }; +} + +/** + * Derive public key from secret key + * + * This uses the WASM secp256k1 implementation to derive the public key. + * The public key is safe to reveal and store. + * + * @param esk - Secret key as Uint8Array (32 bytes) + * @returns Public key as hex string (33 bytes compressed) + */ +export function derivePk(esk: Uint8Array): string { + // Use noble-secp256k1 for key derivation + // This is a pure JS implementation, lightweight and secure + const { secp256k1 } = require('@noble/curves/secp256k1'); + + // Derive compressed public key + const pk = secp256k1.getPublicKey(esk, true); + + return Buffer.from(pk).toString('hex'); +}