From e843d68a4da39a3b3540e71346c515ab167d6bd2 Mon Sep 17 00:00:00 2001 From: M Alghazwi Date: Thu, 14 Nov 2024 10:31:32 +0100 Subject: [PATCH] update readme and refactor --- codex-plonky2-circuits/README.md | 45 +- proof-input/BENCHMARKS.md | 41 + proof-input/README.md | 23 + proof-input/src/gen_input.rs | 1 - proof-input/src/params.rs | 3 +- workflow/Cargo.toml | 14 +- workflow/README.md | 121 + workflow/{run_proof.sh => build_circuit.sh} | 2 +- workflow/circ_params.sh | 7 + workflow/gen_input.sh | 10 + workflow/input.json | 2611 +++++++++++++---- workflow/prove.sh | 10 + workflow/prove_and_verify.sh | 10 + workflow/src/bin/build_circ.rs | 28 + workflow/src/bin/gen_input.rs | 20 + workflow/src/bin/prove.rs | 45 + .../src/{main.rs => bin/prove_and_verify.rs} | 8 +- 17 files changed, 2422 insertions(+), 577 deletions(-) create mode 100644 proof-input/BENCHMARKS.md create mode 100644 proof-input/README.md create mode 100644 workflow/README.md rename workflow/{run_proof.sh => build_circuit.sh} (82%) create mode 100644 workflow/circ_params.sh create mode 100644 workflow/gen_input.sh create mode 100644 workflow/prove.sh create mode 100644 workflow/prove_and_verify.sh create mode 100644 workflow/src/bin/build_circ.rs create mode 100644 workflow/src/bin/gen_input.rs create mode 100644 workflow/src/bin/prove.rs rename workflow/src/{main.rs => bin/prove_and_verify.rs} (85%) diff --git a/codex-plonky2-circuits/README.md b/codex-plonky2-circuits/README.md index 86da0bd..83c96e7 100644 --- a/codex-plonky2-circuits/README.md +++ b/codex-plonky2-circuits/README.md @@ -11,46 +11,19 @@ This crate is an implementation of the [codex storage proofs circuits](https://g - [`sample_cells`](./src/circuits/sample_cells.rs) is the Plonky2 Circuit implementation for sampling cells in dataset merkle tree. +- [`keyed_compress`](./src/circuits/keyed_compress.rs) is the compression function used in the construction (and reconstruction) of the Merkle tree root. The function takes 2 hash digest (4 Goldilocks field elements each) and a key, then outputs a single hash digest. + +- [`sponge`](./src/circuits/sponge.rs) contains the hash function (with and without padding) used to hash cells and during sampling. + - [`params`](./src/circuits/params.rs) is the parameters used in the circuits. - [`utils`](./src/circuits/utils.rs) contains helper functions. +## Documentation +writeup coming soon... + ## Usage -TODO! +see [`workflow`](../workflow) for how to use the circuits and run them. ## Benchmarks -In here we show the preliminary benchmarks of codex storage proofs circuits. - -### Running benchmarks -To run the benchmarks for safe merkle tree circuit, you can use the following command: - -```bash -cargo bench --bench safe_circuit -``` -To run the benchmarks for proving cells circuit, you can use the following command: -Note: make sure to adjust the parameters as need in [`params`](./src/circuits/params.rs) - -```bash -cargo bench --bench prove_cells -``` - -To run the benchmarks for sampling circuit, you can use the following command: -Note: make sure to adjust the parameters as need in [`params`](./src/circuits/params.rs) - -```bash -cargo bench --bench sample_cells -``` - -### Results -Benchmark results for proving 10 cells (10 samples) in a Slot Merkle tree with max depth 16 with -the small tree (block tree) is of depth 5 so 32 cells in each block. Cell data size is 2048 bytes (256 field elements) - -| Operation | Time (ms) | -|-----------|-----------| -| **Build** | 34.4 ms | -| **Prove** | 50.3 ms | -| **Verify**| 2.4 ms | - -Circuit size: 210 gates - -Proof size: 116,008 bytes +see [`BENCHMARKS.md`](../proof-input/BENCHMARKS.md) diff --git a/proof-input/BENCHMARKS.md b/proof-input/BENCHMARKS.md new file mode 100644 index 0000000..f3770e0 --- /dev/null +++ b/proof-input/BENCHMARKS.md @@ -0,0 +1,41 @@ +## Benchmarks + +In here we show the preliminary benchmarks of codex storage proofs circuits. + +## Running Benchmarks + +To run the benchmarks for safe merkle tree circuit, you can use the following command: + +```bash +cargo bench --bench safe_circuit +``` + +To run the benchmarks for sampling circuit, you can use the following command: +Note: make sure to adjust the parameters as need in .... + +```bash +cargo bench --bench sample_cells +``` + +The following operations were benchmarked: + +- **Build Circuit**: Time taken to construct the circuit for the specified params. +- **Prove Circuit**: Time taken to generate a proof for the constructed circuit. +- **Verify Circuit**: Time taken to verify the generated proof. + +#### Build Time + + +#### Prove Time + + +#### Verify Time + + +#### Proof Size + + +#### Peak Memory Usage + + +### Remarks diff --git a/proof-input/README.md b/proof-input/README.md new file mode 100644 index 0000000..5ce892e --- /dev/null +++ b/proof-input/README.md @@ -0,0 +1,23 @@ +# Input Generator for the Plonky2 Circuit +WARNING: This is a work-in-progress prototype, and has not received careful code review. This implementation is NOT ready for production use. + +This crate generates input to the proof circuit based on the test parameters. The proof input generated can be ported into +the [`plonky2 codex proof circuits`](../codex-plonky2-circuits). Currently only generates fake data for testing. + +## Code organization + +- [`gen_input`](./src/gen_input.rs) contains the necessary function to generate the proof input. + +- [`json`](./src/json.rs) contains the serialization function to read and write the proof input from/to json files. + +- [`params`](./src/params.rs) is the test parameters used to generate the input. The params include circuit params as well. + +- [`sponge`](./src/sponge.rs) contains the non-circuit version of hash function (with and without padding) used to hash cells and during sampling. + +- [`utils`](./src/utils.rs) contains helper functions. + +## Usage +see [`workflow`](../workflow) for how to generate proof input. + +## Benchmarks +see [`BENCHMARKS.md`](../proof-input/BENCHMARKS.md) diff --git a/proof-input/src/gen_input.rs b/proof-input/src/gen_input.rs index 9a6378f..26a04b9 100644 --- a/proof-input/src/gen_input.rs +++ b/proof-input/src/gen_input.rs @@ -363,7 +363,6 @@ impl< mask_bits.clone() ); let cell_index = bits_le_padded_to_usize(&cell_index_bits); - println!("sample cell index = {}", cell_index); let mut s_proof = slot.get_proof(cell_index); Self::pad_proof(&mut s_proof, self.params.max_depth); slot_proofs.push(s_proof); diff --git a/proof-input/src/params.rs b/proof-input/src/params.rs index 9d3ad03..97a344a 100644 --- a/proof-input/src/params.rs +++ b/proof-input/src/params.rs @@ -5,6 +5,7 @@ use plonky2::plonk::config::{GenericConfig, PoseidonGoldilocksConfig}; use std::env; use anyhow::{Result, Context}; use codex_plonky2_circuits::circuits::params::CircuitParams; +use plonky2_field::goldilocks_field::GoldilocksField; use plonky2_poseidon2::config::Poseidon2GoldilocksConfig; // test types @@ -132,14 +133,12 @@ impl TestParams { // DATASET_DEPTH pub fn dataset_max_depth(&self) -> usize { - // self.max_slots.trailing_zeros() as usize ceiling_log2(self.max_slots) } // DATASET_DEPTH for test pub fn dataset_depth_test(&self) -> usize { ceiling_log2(self.n_slots) - // self.n_slots.trailing_zeros() as usize } } diff --git a/workflow/Cargo.toml b/workflow/Cargo.toml index 464c7a0..6269de7 100644 --- a/workflow/Cargo.toml +++ b/workflow/Cargo.toml @@ -18,4 +18,16 @@ proof-input = { path = "../proof-input" } [[bin]] name = "prove_and_verify" -path = "src/main.rs" \ No newline at end of file +path = "src/bin/prove_and_verify.rs" + +[[bin]] +name = "gen_input" +path = "src/bin/gen_input.rs" + +[[bin]] +name = "build_circ" +path = "src/bin/build_circ.rs" + +[[bin]] +name = "prove" +path = "src/bin/prove.rs" \ No newline at end of file diff --git a/workflow/README.md b/workflow/README.md new file mode 100644 index 0000000..30cf91e --- /dev/null +++ b/workflow/README.md @@ -0,0 +1,121 @@ +# Workflow of the Storage Proof Circuits +WARNING: This is a work-in-progress prototype, and has not received careful code review. This implementation is NOT ready for production use. + +This crate guides you through generating the circuit input, +exporting it to a JSON file, importing from a JSON file, +running the circuits to generate a proof, and finally verify the proof. + +This crate can be used to: + +- Generate circuit input from **fake data** with given params. +- Build the plonky2 codex storage proof circuits. +- Generate a proof with given proof input in JSON file. +- Verify the proof. + +## Code organization + +- [`gen_input`](./src/bin/gen_input.rs) contains the main function to generated input with the given params as environment variables. + +- [`build_circ`](./src/bin/build_circ.rs) contains the main function to generated input with the given params as environment variables. + +- [`prove`](./src/bin/prove.rs) contains the main function to generated input with the given params as environment variables. + +- [`prove_and_verify`](./src/bin/prove_and_verify.rs) contains the main function to generated input with the given params as environment variables. + + +## Usage + +### Prerequisites + +- **Rust Toolchain**: Ensure you have Rust installed. If not, install it from [rustup.rs](https://rustup.rs/). + +- **Rust nightly**:: This crate requires the Rust nightly compiler. To install the nightly toolchain, use `rustup`: + +```bash +rustup install nightly +``` + +To ensure that the nightly toolchain is used when building this crate, you can set the override in the project directory: + +```bash +rustup override set nightly +``` + +### Generate Circuit Input +The steps to generate circuit input with **fake data** are the following: + +#### Step 1: Setting Up Parameters +Parameters for generating the circuit input can be defined in [`params.sh`](./params.sh). +You can customize the test parameters by setting the following environment variables: + +```bash +export MAXDEPTH=32 # Maximum depth of the slot tree +export MAXSLOTS=256 # Maximum number of slots +export CELLSIZE=2048 # Cell size in bytes +export BLOCKSIZE=65536 # Block size in bytes +export NSAMPLES=5 # Number of samples to prove + +export ENTROPY=1234567 # External randomness +export SEED=12345 # Seed for creating fake data + +export NSLOTS=11 # Number of slots in the dataset +export SLOTINDEX=3 # Which slot to prove (0..NSLOTS-1) +export NCELLS=512 # Number of cells in this slot +``` +Alternatively, for testing you can just use the default parameters as follows: + +```rust +use proof_input::params::TestParams; + +fn main() { + let params = TestParams::::default(); +} +``` +#### Step 2: Run the Script +Once the params are set, you can run the script to generate the [`JSON file`](./input.json). + +```bash +sudo bash ./gen_input.sh +``` + +### Build the Circuit +To build the circuit and measure the time to build, you can simply run the script: +```bash +sudo bash ./build_circuit.sh +``` +To see the source code of how to build the circuit, see [`build_circ`](./src/bin/build_circ.rs). + +### Generate the Proof +After generating the circuit input (in a JSON file), +you can run the circuits to generate the proofs. +First make sure you have the [`JSON file`](./input.json), then follow the steps: + +#### Step 1: Setting Up Circuit Parameters +Parameters for the circuit can be defined in [`circ_params.sh`](./circ_params.sh). +You can customize the test parameters by setting the following environment variables: +```bash +export MAX_DEPTH=32 # maximum depth of the slot tree +export MAX_LOG2_N_SLOTS=8 # Depth of the dataset tree = ceiling_log2(max_slots) +export BLOCK_TREE_DEPTH=5 # depth of the mini tree (block tree) +export N_FIELD_ELEMS_PER_CELL=272 # number of field elements per cell +export N_SAMPLES=5 # number of samples to prove +``` + +#### Step 2: Run the Script +Once the params are set, you can run the script to generate the proof. +You can also see the time taken to generate the proof. + +```bash +sudo bash ./prove.sh +``` + +### Build, Prove, and Verify +To automate the whole process, you can run the following script +the script builds the circuit, loads the JSON circuit input, generates the proof, and verifies it. +It also shows the time taken for each step. +Make sure that you generate the circuit input prior to this so that you have the [`JSON input file`](./input.json) and set the [`circ_params.sh`](./circ_params.sh). + +```bash +sudo bash ./prove_and_verify.sh +``` +To inspect the source code, see [`prove_and_verify`](./src/bin/prove_and_verify.rs). diff --git a/workflow/run_proof.sh b/workflow/build_circuit.sh similarity index 82% rename from workflow/run_proof.sh rename to workflow/build_circuit.sh index 3f94604..a1ae112 100644 --- a/workflow/run_proof.sh +++ b/workflow/build_circuit.sh @@ -7,4 +7,4 @@ source ./params.sh cargo build --release # Run the Rust executable -cargo run prove_and_verify +cargo run --bin build_circ diff --git a/workflow/circ_params.sh b/workflow/circ_params.sh new file mode 100644 index 0000000..434df9a --- /dev/null +++ b/workflow/circ_params.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +export MAX_DEPTH=32 # maximum depth of the slot tree +export MAX_LOG2_N_SLOTS=8 # Depth of the dataset tree = ceiling_log2(max_slots) +export BLOCK_TREE_DEPTH=5 # depth of the mini tree (block tree) +export N_FIELD_ELEMS_PER_CELL=272 # number of field elements per cell +export N_SAMPLES=5 # number of samples to prove \ No newline at end of file diff --git a/workflow/gen_input.sh b/workflow/gen_input.sh new file mode 100644 index 0000000..9649e2c --- /dev/null +++ b/workflow/gen_input.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Source the parameters from params.sh +source ./params.sh + +# Build +cargo build --release + +# Run the Rust executable +cargo run --bin gen_input diff --git a/workflow/input.json b/workflow/input.json index 903802a..3a5d6d7 100644 --- a/workflow/input.json +++ b/workflow/input.json @@ -1,532 +1,2081 @@ { - "dataSetRoot": [ "6755155175595395828", "313507776630410965", "9227740409681413313", "2795138142659503669" ] -, "entropy": [ "1234567", "0", "0", "0" ] -, "nCellsPerSlot": 512 -, "nSlotsPerDataSet": 11 -, "slotIndex": 3 -, "slotRoot": [ "6216356142838248961", "7651361162368135479", "8250178335123580371", "3813462866599431579" ] -, "slotProof": -[ "1345604040032513712" , "7222769029677219453" , "4856886058017005512" , "17218820401481758629" -, "6741690371018853470" , "10000950172891759230" , "1256624250298316158" , "14572953286928282395" -, "11250861626949238654" , "2066450512590186880" , "4406339264013603126" , "6649535526486987988" -, "13405718683906940252" , "10830552896276419282" , "17191223065200470009" , "6751178910350619564" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -] -, "cellData": -[ [ "4111200969682878543" , "3387325207997927417" , "2932616927275391430" , "1995025627313496704" -, "1961347507293077647" , "1537181324488336218" , "3404404103013841137" , "3727710427346324943" -, "2138927732587695812" , "3715208475804714900" , "1454647159510086086" , "2849056681024814242" -, "2797770732564552381" , "4281068461220306323" , "2536791672187626673" , "187094301857999069" -, "4445112716515618692" , "259331173854983828" , "2153045190582574034" , "4304617055179540805" -, "221639124978313464" , "3304308916190250430" , "4089021076266286507" , "549033640858706364" -, "3044331879679251067" , "827587919550726016" , "4308334610113884279" , "4376001487296465758" -, "2355566683295648241" , "3612937677867517433" , "324879072152204991" , "4604327956877922356" -, "2924057261191726263" , "2354770520803503714" , "2249237342059505826" , "2818746003917675025" -, "3900053946986081579" , "4000975298798935391" , "322828372466088550" , "4250868332703693959" -, "854494083567288809" , "1244072611728971108" , "2559927554901977476" , "3324774724617852106" -, "1121127421087780836" , "1420818988498458600" , "831472750897778003" , "2168567604992124122" -, "29031593268236269" , "3647421755276834722" , "3986259886944478303" , "3345921067416441296" -, "13402926240441408" , "4421183053520442268" , "3201790561536980107" , "715823076146640477" -, "2754415368380477293" , "2949936321134401483" , "3474839395401159221" , "2124707552062842856" -, "2335485430641049073" , "4159019635853261564" , "547574573450363288" , "2154702348979979256" -, "4134963352851828758" , "1081302865101813789" , "2860564291276163485" , "4445835739319427715" -, "101201533965712487" , "1189762149663562544" , "3758693535869738126" , "3783353322678103675" -, "3474702117738007790" , "3074235448632480569" , "2577787124799568580" , "2323475333206976081" -, "3727929389140395656" , "504713527856300523" , "2772733426215402193" , "4597785345371857626" -, "2718133888660076442" , "4241166334257671809" , "3773495718228185339" , "1585470836972839739" -, "3905275032831739718" , "474118084850764791" , "3103165294613983120" , "809106277746366547" -, "77078292750204660" , "2009125912847635644" , "4334129009260425985" , "27914664153758694" -, "124183207760005694" , "2697644494020638873" , "1450582017557751997" , "2502694172625563114" -, "2740289107361865643" , "2712792501727369229" , "3071717962989657709" , "3341174445798330484" -, "2682651989210624359" , "1307526723014652984" , "179080794167069577" , "733133405798895763" -, "1968208516111884241" , "616726862203855605" , "3416520294945343392" , "3087673580377118030" -, "4492934591495466062" , "1367433602106674104" , "2292594969558892092" , "3496174638708163871" -, "1564175426693493214" , "1857069202634712791" , "3507703991356295846" , "4321354599820788562" -, "1933559093976823439" , "2506982692689670503" , "2335226876498022814" , "1756434612888038379" -, "2291735429251398871" , "3272557233784814701" , "1809699743445877700" , "3816856311479577580" -, "267950068872586384" , "721638994294338152" , "1216119273831318463" , "80053828028318046" -, "3560572514732187897" , "67245162611487250" , "1328217792914408215" , "1810477217048845046" -, "3119483990704144534" , "2066620474867043288" , "2523262138385687043" , "362691473327972498" -, "4598598868398188905" , "2774627440956921156" , "1628248636575611249" , "783002716800150996" -, "2613551581444565337" , "786725214529311687" , "4039260154995749485" , "1763895279097705375" -, "136527392068420286" , "513510190194159543" , "101962925982303979" , "1510157729819943802" -, "2330496005485118764" , "4000105577985578320" , "718494282380928926" , "2383517511824224511" -, "604197990500817771" , "3136971506998756433" , "3805138655859277411" , "1038385800740847149" -, "2122441102602688988" , "2311548995071730590" , "3125457545937811808" , "1416440682927465239" -, "1964367996399419205" , "3248660041939743727" , "4378487656428293722" , "741029356261789514" -, "3748221582368077009" , "533602551966563701" , "3282997084915483113" , "1231084572180473469" -, "3101179494144344034" , "3093205585436474945" , "3310012133156627299" , "3621605735885467729" -, "3124055322560316203" , "4109105559621002367" , "1653594148441457035" , "4332483426975350034" -, "3128791066896671630" , "3887278857891362911" , "3800172414968149810" , "1448401594644363382" -, "723585641772663768" , "2093179871223812466" , "2047800924815603061" , "3497650546718683561" -, "85833608374463290" , "3156547449332280267" , "1504677293871231369" , "1862764179206336726" -, "433821097900675005" , "4423255150988169390" , "1869049632168030510" , "3537248554988173472" -, "3135567919321587466" , "59138030503916467" , "404986263418400711" , "3426158735292024614" -, "2760116461917317810" , "2765796058087423764" , "1650995702197220856" , "1557535858445128723" -, "4257359473731533882" , "3835704793995667782" , "4352636554728767509" , "997252253590194569" -, "3737003374149059427" , "1322430971271905956" , "2755339423941703565" , "3391612788900790099" -, "1460681206394994196" , "2715817034082647845" , "806862389131961876" , "3152342880005229524" -, "4380217121047074139" , "4258103535158169693" , "2385457763972534377" , "4264480050562585615" -, "3412805117945145990" , "3435951942136979620" , "4097351347079059951" , "992914614506707395" -, "2005824081553683499" , "2319178920306968620" , "370837535487542853" , "3087560580926660094" -, "1083460313090264711" , "4482662514768920601" , "2656944137720080249" , "2649218097512041923" -, "2917715738356780065" , "1732641010676924796" , "4217252956018746972" , "978331566086950332" -, "3869223900929810022" , "3769840101624562479" , "946179666777742606" , "292295823696793243" -, "3659177233315384652" , "1854765096914974433" , "3762708774876587040" , "1222463533452030663" -, "3922722120059662793" , "3835830254335161100" , "2165030581383031435" , "1907026954948407123" -, "3790519940998177702" , "4017268473312137414" , "2859623361020640825" , "33918126679757461" -, "209081036798970399" , "3655976865540575992" , "4369372716842525678" , "262859757646325118" -, "172795378700495550" , "2578381167144733861" , "984917776960728752" , "3143105712253023288" -, "1130341035935710337" , "980824067806251077" , "1133707772968996023" , "2448825588499779635" -, "1022554427485498709" , "4149557735996014227" , "210322022232931300" , "4321917687253745218" -, "109851" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -] -, [ "1740247924101429115" , "4076899211406316800" , "2740294522385674890" , "4513515597031920585" -, "3890295521635620764" , "3903514916766118946" , "2469053593687320765" , "1927258944600359179" -, "2968615827183516338" , "3689618118861200518" , "1031372939054649472" , "1160040347519875842" -, "2290711972580904719" , "1262387029206600958" , "1610027556955263330" , "858435105936868455" -, "604116268270118160" , "2787118114566461420" , "1228964852938398132" , "1317908183990527513" -, "4122213493373894732" , "698702370829118884" , "860524147185089598" , "2427479531219887269" -, "4189544695706508114" , "448638170186506326" , "613435978962882295" , "1999341910201706383" -, "1723586248401252047" , "2961198498193378175" , "3362584888439142575" , "825849071715979952" -, "3692164194230014933" , "3360869706514970844" , "2405679623070026282" , "408995571663877990" -, "3613694856153956375" , "4217462972249558426" , "3729858483507208511" , "293259059372178850" -, "1865109397070692915" , "2604311632678145909" , "847427973491741092" , "157854495767521711" -, "1744748983941024631" , "2716923401657556654" , "1309187368991276347" , "3377086404443872538" -, "3268228995410361899" , "1390590013231769735" , "843321359797834567" , "4377862678787274645" -, "1762633846479541110" , "3504309754435526908" , "4105361296916375418" , "1996786457690748387" -, "4385290136985659892" , "1514980045446969037" , "3792755388344933894" , "4371381066397542899" -, "2362552373871863651" , "3190002817734611373" , "1433464277171295671" , "1908924694486781913" -, "4084139914214156588" , "4354675488265033892" , "1507350556899056076" , "3657538233619727818" -, "1604171879120423301" , "4370420407338374592" , "2971314578911797646" , "4420872655040029801" -, "2513152870342165646" , "891288922577365469" , "2637159796188441434" , "2721086576957952589" -, "2910289070713016799" , "157487828591049221" , "1098745217390755146" , "4503163939253693077" -, "3282918787641454003" , "4417455552150967880" , "4534831605894389500" , "2145028049100003680" -, "3438691870746395183" , "3799124582190096529" , "3814236898776615901" , "2929311423812309556" -, "882287390383490059" , "1840231491456374045" , "1604957791486495283" , "2685781010650730476" -, "405551328684509400" , "4109428449850090546" , "2287386738610412120" , "1102826798991022350" -, "3369052660962246195" , "3400251041646588058" , "3792704257748705509" , "154318897679130227" -, "3601341568781445917" , "1815421129478477193" , "3730184868009598910" , "2050838087330047062" -, "3674674550801913735" , "3448185771829931687" , "3369043043018450647" , "3357076207316393124" -, "3639898142526596914" , "3671116533410970031" , "1489504295580236227" , "1244078290837664852" -, "1492673429444569148" , "849512542602903874" , "4493897496253735964" , "3059885178524483403" -, "608314302162510787" , "2184761026382301527" , "2766818245282136321" , "1117918175269250463" -, "3395422328511115980" , "2121044414107285769" , "3141485994933322028" , "1129025632440526055" -, "1245845587859245647" , "2493998865463134242" , "2932877222041015003" , "616520034738720678" -, "3436715504077232702" , "3498349940167621228" , "1675100397690396990" , "3329019848715543351" -, "2011575105055987900" , "3164783028667496422" , "208220243896927970" , "3350233803493997954" -, "1086154613409624399" , "1584228202526684473" , "375970094484699389" , "3112993245769759055" -, "155783341694243182" , "1330151662533921300" , "1954049591109334638" , "3022325775736865511" -, "4084059835013475084" , "2314885887195178432" , "4029203188834676206" , "2511023319010113181" -, "2607221340783972382" , "4124310369000351777" , "652633106766492702" , "1343391239155231328" -, "1433378117535115127" , "3211578682153665966" , "866638607975787142" , "1474600303508843892" -, "4252315049303154917" , "154649040170904710" , "2659271626752154890" , "4026055544109582753" -, "4587000127531341085" , "228689208288643289" , "3071445791017824652" , "974768627319060133" -, "3435598662213761019" , "2717424039722393438" , "4206582327715198138" , "1332795598098933649" -, "1890386717132391369" , "4250832997085526718" , "4381049003932567083" , "4202782160516225415" -, "3352021238119475619" , "1739111923876519219" , "1143755492632516616" , "1726588181884562216" -, "735502438415293103" , "3964715484174518426" , "2585437392511277388" , "348852864212095828" -, "1920831584411789075" , "819597068116486364" , "4038814023584915027" , "1674714616716492701" -, "4164439961562935436" , "1184307289365646644" , "498834566750665744" , "1014636180686852576" -, "263108527029350448" , "3419203390527229493" , "1591046683846946094" , "1128479034666427823" -, "623856640086412828" , "3009277813855588561" , "4302732515176733762" , "440094952630958707" -, "700433279943211520" , "3734993401692576364" , "567142770971570149" , "3351356786661839173" -, "2337375191972234379" , "3676594625892375450" , "3195239127947323539" , "3274572739335572800" -, "722438843133311029" , "3632640065135241434" , "1406870168751385884" , "3997729982639099225" -, "4152410130580995722" , "2444175749731805317" , "2252991114853718909" , "322862976488447192" -, "289600462246444089" , "2078561382367926548" , "758971031321665284" , "2563237838864695735" -, "832793656366225708" , "3745983751681651235" , "1939686285994381906" , "2331711706443056241" -, "3101085416466286431" , "4225612617764736033" , "3527812509561136890" , "347233014593799249" -, "2251605915000189804" , "2027694949093821735" , "2211424286732840414" , "964287100987581971" -, "3736654886072816302" , "1188279880302832876" , "4491110567041049837" , "3634462972769884428" -, "574910107083290322" , "1437740518720929047" , "3009972588929306780" , "2753324902041718172" -, "4295252301355742330" , "546473556218819594" , "3603108839024607419" , "442174043480035149" -, "113911089973870374" , "2358923856122416931" , "2063957394518861613" , "4000517799896203183" -, "3598940743247845156" , "2086122670432549377" , "2899025127998528180" , "3668735081946404988" -, "4420185708558256958" , "4261416569840974841" , "648091691717925440" , "4308128932111313861" -, "4471666908494364342" , "372710140034101384" , "761369993984953570" , "3563689546399894847" -, "298549818361379306" , "3397069628239614794" , "2912593475200042894" , "1608380753914775026" -, "454206761387813136" , "2722996350971702783" , "2233659965767739326" , "94170365089341541" -, "106098" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -] -, [ "4269217080107917315" , "3002529947471764372" , "1410485619074271960" , "2412172837606072799" -, "735982899557536948" , "3126813882817885979" , "4554487793657015374" , "2612394731416256360" -, "789441106544735984" , "2840473353403557693" , "2491349202704975507" , "1322247417319014707" -, "3489298261890375408" , "120921204875429723" , "2556995975834403956" , "1322569991502939901" -, "595663518169734633" , "1976947952694156926" , "177419009408828844" , "2981656894867057950" -, "933683991600842717" , "1556024341947015075" , "1528832387625930425" , "2258418808672006542" -, "322189633024627822" , "2901386242713213802" , "2107153791199786102" , "4052762187760749544" -, "4468308413635939273" , "3754089616358444687" , "3217503950858778236" , "2627399654855737333" -, "1065085773191920427" , "3481487962215039208" , "3608060193157369043" , "505500163679529188" -, "2032274213645330882" , "1867777459785160091" , "4090211671831159534" , "3661020466081829892" -, "1877103857757113696" , "1007989508541195228" , "2665585298040398907" , "1748164637661419113" -, "4048760727523549475" , "784752931847224418" , "3553111610738846743" , "1918868442483758769" -, "1025534032072748502" , "3982276761682013531" , "3739956343125563241" , "3391152095090929847" -, "3159671034808006047" , "3087632300253926367" , "3726958436444389790" , "1612709058199034646" -, "1813691241632563076" , "2739006205621012281" , "2558630501960152731" , "261665221835472147" -, "3854879658920644098" , "1403153273197001276" , "288992136186323065" , "2070009193273042477" -, "200374876600540888" , "2090104854767178727" , "2297937207665675965" , "2085896524112114488" -, "602263733186440786" , "47385514888993093" , "1656145679924341936" , "695508894659282789" -, "1005096926141116532" , "4602779206702860999" , "469097243194684892" , "3892877616036353276" -, "986652829478757461" , "223210426495108436" , "939812352133045105" , "2170625073972023415" -, "3180051650474840564" , "2658822860098496976" , "642265539292867361" , "2550248824891340472" -, "2614188123440237895" , "500028998005890283" , "2428877111125298535" , "925552511724042478" -, "589811893861642503" , "851086453874682365" , "2699737757775485327" , "1103497768561027088" -, "1787391592434004074" , "3035352497976605590" , "2285520883319247194" , "2469901128319806150" -, "1861040232417807455" , "45414959312010764" , "2311948019031419661" , "492172463312075510" -, "4112861065337729260" , "831647986402230099" , "3183760295759876064" , "3438452349066514620" -, "882517070776505781" , "3317396599233980334" , "4240145096914809302" , "2011262586069274960" -, "4103953558296647960" , "1418702271879404371" , "1959919418881369895" , "3014669647349013320" -, "3237074321901702006" , "256816243701201656" , "1587918799048199096" , "4429146953010531024" -, "565468721530027539" , "2980139394704656668" , "2281473537586627910" , "2762072807084836719" -, "1486570444868871404" , "1849263680617777060" , "2741397340574396227" , "1701463323648166586" -, "1192808620877578746" , "3977982114493820008" , "2841615523241411811" , "2461942625004967503" -, "864862364754843617" , "899912590774276666" , "3910738009171267548" , "1422450704220784819" -, "2823399222032852648" , "1532361859692609374" , "4444580144236762437" , "4523157819835923738" -, "106098318269852896" , "3986558867800806807" , "1745040207027043254" , "3211749465276535570" -, "2791132508437805945" , "1726892885296791968" , "1840710446032440285" , "2555502709646605682" -, "1920957178136545389" , "625440214405951583" , "233132155951932024" , "2271293242458751629" -, "1916458030493781998" , "3079975750766311175" , "4385946880827309392" , "1491387941386491389" -, "2290674866190483816" , "1307043017044232725" , "1587867447473933966" , "3274873995899517535" -, "1575648891314254896" , "1468758773928690682" , "2988954328483840712" , "754717958497851970" -, "958894104350147851" , "1385639662707185527" , "2441501061593081231" , "370757457305386857" -, "3063766153228284197" , "1503211531675869072" , "2240594769350305033" , "1991914690279289572" -, "4397607093791337427" , "3087827333841347057" , "4049673731898354309" , "1034997463794810186" -, "1801050255152298003" , "4075659800348359018" , "540583941027491123" , "852201818472145202" -, "1635546953483627016" , "2198406301876731211" , "2365377194525176813" , "3763507075044466444" -, "2615506326697832598" , "2085515881029168586" , "3173541310846010286" , "2381323695947433609" -, "1415497488454315707" , "1893132992753540543" , "159231429263297891" , "663019843120498766" -, "2528183577280516060" , "3222071957377155289" , "1343654081919068430" , "964001076591402465" -, "1802148986473543877" , "3624604862914189406" , "475618852845084558" , "1641224167482927147" -, "558070326565299465" , "4468758352374712192" , "271801347353513521" , "4147909304123525049" -, "913733661991382335" , "3493832731564656596" , "446401282583683396" , "3625033362876913384" -, "727981844130152919" , "2355109423745509012" , "4344513483564806693" , "1088123283181583866" -, "1269257038191714510" , "755885356245804755" , "2680370426584061118" , "2636534924656666957" -, "2812662215915486130" , "204907474557831366" , "2277523053219389771" , "3494625316811556466" -, "2251371057826067857" , "3984958506656195405" , "1043411628143119281" , "965260509922522101" -, "1452681651394098308" , "1928906814480856517" , "1522662701059844384" , "3940668726166583310" -, "2318241343726496365" , "724943314353507760" , "1598209935237229414" , "3713665373396873937" -, "3202788579372926993" , "3650619177113211660" , "4106750337233566087" , "3299485301117379231" -, "3463058546657874282" , "1989867058486124563" , "2235039597165542009" , "2798627659952166199" -, "1086159084416669135" , "240212879075016729" , "3610422649631706349" , "3338673654008928052" -, "2756582177872374553" , "2858593688875150399" , "795972438017868699" , "1518344596392717507" -, "1622079393028597250" , "2359619858799117861" , "2632655552983988075" , "847473853922990637" -, "477132166834364404" , "1614078183324599535" , "4243589195534839931" , "3076493426286382189" -, "1803508460576784247" , "1037301339405262447" , "1662612656027017382" , "3085108054985072695" -, "764303457255820768" , "1688744926479925688" , "2037821477264833556" , "1457055616663297762" -, "4349298316035461802" , "2313813087589802506" , "4124925054569713583" , "1745089117020077554" -, "128009" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -] -, [ "4034258811268727131" , "3747903721835719006" , "2915060974245649894" , "342268869424411050" -, "2828618065782119503" , "4549677653382332109" , "3793879338695881009" , "1109056251282680760" -, "2076963639258163690" , "68558097751707552" , "1065932252746590842" , "1311691949688338375" -, "1544822431166405051" , "3138250420935986410" , "3831943302525073074" , "3379173993932715430" -, "617574271763008743" , "2910336113661804832" , "4209319645020586650" , "4350875593377970693" -, "168147635635558495" , "100137458425461499" , "361348144792776416" , "1905911283351355008" -, "4382748444635181137" , "1859508053613754665" , "4141609283310046708" , "3239774328216985835" -, "1006970701590879797" , "582385908075562107" , "1993368531721371396" , "4116950789841207986" -, "4348323119375560800" , "336551841953193797" , "2776409846765966228" , "1017592380367072177" -, "1572767989013296701" , "2676220325748701320" , "155522884005268625" , "4569373692831779077" -, "1901348869812955684" , "1432454250909224407" , "167976466128008872" , "3319577092833020986" -, "2594252293894598800" , "1427227988658253092" , "3186852682845959816" , "74409632769568017" -, "82493767425828584" , "2375643263266247001" , "1263139615711367468" , "3259724224887018668" -, "2182856907113974917" , "3615754531117206186" , "3289458811844216286" , "1192068880553730738" -, "4315229906269155766" , "1372241243661500621" , "1214204425620881351" , "566415669586456325" -, "3689514131691563486" , "994413662019578564" , "1991739235662019382" , "1200301986205483083" -, "259599505393679913" , "656057734119360815" , "1890057182639032696" , "2052486473606719025" -, "2273769158435343306" , "3566289986762825150" , "3875043611909078571" , "2797235889004443582" -, "4606071113256315244" , "3164954935311312052" , "4603538855186042565" , "4590558009846370322" -, "3911769446705370614" , "1322695775546030769" , "4074251421799962732" , "3276395048424377247" -, "3364047784202721295" , "707971968192296130" , "4478201459490950368" , "417342652224710615" -, "3710048229567942579" , "243105651372125901" , "1335786873187158963" , "1064547539559377357" -, "4040142256414689712" , "3247209950997871336" , "4520816560928353345" , "2876982642158268689" -, "1557461529091414378" , "2251046400529334790" , "4399073735722609726" , "288200234089439522" -, "1799271808882054954" , "3375377140402158074" , "369563638355551847" , "3265960239537616297" -, "2766715688631960996" , "389811442837290425" , "3970638659170937219" , "3745215392975298489" -, "1666749384170497586" , "4395364368258962112" , "3095933287235481830" , "2404553171347076937" -, "923914309133067349" , "110512329106909005" , "2571213514155772759" , "1608615468027306193" -, "3048031461289902529" , "2250184535440197257" , "3842601759395432384" , "1048997399028863606" -, "1101069807581422728" , "205472880281761342" , "2536290833437606961" , "2699837461100786536" -, "3295411351199015347" , "1916847814122984956" , "629815332996880247" , "513249329308473362" -, "2915391358008275194" , "583278642434764470" , "1733840426942977026" , "1530474950141369160" -, "639584009366816930" , "2933424926250428254" , "334507876526688560" , "1307694710160984501" -, "2577508023309377005" , "3642804190098490557" , "4437095278206366511" , "2254150624260715970" -, "2139231036716350578" , "2766540836222040252" , "4491404586413201819" , "699312550883961557" -, "3118167877768394458" , "3355709382841365489" , "3865620940871347792" , "1307584790838457930" -, "4080650036711645354" , "4463218759346529389" , "43970965558380393" , "3455228703619535131" -, "2193764858103935376" , "2871732653415886738" , "189763178356227238" , "2648014131876669366" -, "182205767269906464" , "3250429063499634285" , "4457561747449361987" , "4230664686238075478" -, "4195469071241820394" , "3694445673738644831" , "188551364087861924" , "1435496809726568143" -, "1653013391855985938" , "557316168815842068" , "566565519374138725" , "2760524227075749924" -, "1926928551043772910" , "492555028768783230" , "566590877769045237" , "1840037698875425501" -, "1151317328330147511" , "4169547369930409304" , "1929757148545418022" , "1685341382791060441" -, "95567160303065373" , "610770537258850513" , "1856963553471385494" , "3906416155852487197" -, "3491575212902766306" , "2915555939576079229" , "3066524882109743886" , "2050966712803315247" -, "4436867151341965219" , "2876133991093047589" , "1531558931389985516" , "609295401452253136" -, "878136522203982246" , "736573217458225186" , "2896838713462176324" , "1239694122903340249" -, "3568720184842846977" , "2438659447718085650" , "2307237960575751971" , "2874424632537001946" -, "2114122649700690944" , "4158282920229145252" , "3581231995086054003" , "3212872322384170124" -, "2597981302786705302" , "2383845074619489599" , "1666408275696244301" , "3193620155608629851" -, "604193242668252601" , "3116698393649158584" , "3496906759161849810" , "1550067100036854871" -, "1302361190183266894" , "2801643178516380439" , "1316257918787671092" , "1712535271201799992" -, "1519805723976433477" , "572953496803780160" , "1537149374868240126" , "4525203334696189752" -, "1651333964279501388" , "4450400634056729786" , "4315888781773972025" , "2314444543238181166" -, "1686214067882920884" , "75588805091420152" , "2164015379901309587" , "1431800025305561432" -, "4554871942226940256" , "681896366615087175" , "4107629971838150522" , "706913327911266223" -, "4267969105887702650" , "4534750020289987791" , "3325157788413592143" , "4071858564498037886" -, "17749945396983179" , "615788952756878455" , "3815800775926733402" , "1875768056398886392" -, "781573997886719383" , "808579595702316284" , "4537987737262617433" , "1479298715038519908" -, "1458085359981697890" , "2319092321717084364" , "1000045781174926009" , "4033481308942455678" -, "1944720254698959703" , "4411507657321965437" , "739076175520307092" , "2831115737844256114" -, "2939691721040033520" , "1180885103423573403" , "4405258893921740449" , "1142722576435559326" -, "1276528694337546678" , "3739321411385173515" , "2859837460513398498" , "1740605769974335770" -, "2562485060480653378" , "3407175589759234111" , "388040142502699120" , "285978442519040419" -, "3212906882331004682" , "3354358794709257316" , "2790038108176267653" , "3997701335533752205" -, "262114768528636505" , "2952771560557473695" , "594966962978633438" , "1050553650730158820" -, "89402" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -] -, [ "4585647360169792715" , "637092895853869247" , "3680301794979440480" , "3272240410778951745" -, "1907588772344321794" , "2118392365386677260" , "321114416898931728" , "4368009528771158492" -, "3040901449782471172" , "1763902489192295806" , "3436122906695846062" , "3877316532760524033" -, "2927605622262285722" , "4273603369037493315" , "2238093637769952593" , "465533404698505241" -, "1274022518146607189" , "3679274203742965597" , "182518914421704117" , "3088355213309652341" -, "442175882298559647" , "2624542502448096509" , "1181878371906476667" , "4002265688512198793" -, "355435372633049250" , "3646184600300258220" , "4120840758593657457" , "1963056284354583097" -, "3671750817852836075" , "2549133830639179039" , "2137205193743930975" , "59648369268099622" -, "4521643247863200466" , "1787603390667754340" , "4410761777687154103" , "460931760009977310" -, "2035868968120383183" , "1890176898911809526" , "3866198267444783518" , "4574142902242889742" -, "2068690149090293140" , "23483655452108849" , "1641601526235922484" , "1209317114873179397" -, "4057889490377590115" , "100206208205579869" , "463390678378481407" , "4599029785588028659" -, "954972794129401430" , "2172858440467935733" , "1932968841211426199" , "797936691786011805" -, "1693268917000782269" , "2736706931815153940" , "1673819999061234461" , "2585078955629062846" -, "1008877085655280750" , "717304752597676106" , "1762010368325490064" , "405423855065293624" -, "2872389664080832515" , "2194054485519583783" , "3649142805955030625" , "110303519806246991" -, "141391826309699575" , "1415507553047999020" , "1256417909728789924" , "1044890571791003713" -, "2462084135651050297" , "2041354866627844070" , "2288583844265384266" , "2496153536323947473" -, "1125058162910695329" , "683839509616110758" , "2095686486212194940" , "2237405805607643186" -, "1460372125944900836" , "1979665962215631160" , "4115263130171348457" , "2978764308871310876" -, "1610502036996964485" , "4160427234137384333" , "492390303037973971" , "4032883445122087245" -, "2935596346809814838" , "4503125268917720312" , "536896610281104580" , "4525587308028008088" -, "3265251638288306089" , "2977408702889014075" , "2489410661914759990" , "224793601637439379" -, "2706455675496190497" , "4584876448294189762" , "1649223135950255576" , "4321261765447156991" -, "1527170886046608304" , "4412687983008422151" , "701701280870054007" , "2629450753627733594" -, "1683433298656108845" , "2036277688276465844" , "4592482322340907336" , "1693145671040017448" -, "4262306691582335749" , "2481715786421298923" , "3700347177408511442" , "253650191096688594" -, "2369579471735274041" , "1178995183013596539" , "3715845855134451849" , "324433903018407711" -, "2702944824638582724" , "2850194154098227888" , "3925610040601001177" , "1568465845460912442" -, "3709488707504803170" , "2496304841161334755" , "3356463215924088751" , "390087558743705651" -, "3146792706887611132" , "3652829400091104177" , "3529932428983110069" , "183903644958988700" -, "1408718722936060518" , "2349074789330064236" , "3092272642502306770" , "658519625390452289" -, "3054268205845223046" , "1800093047391782585" , "1816038197766132514" , "4259871600934857093" -, "4031138263206185790" , "2736035190950736534" , "697078701681291341" , "3843811334842978991" -, "1327155110095089894" , "4233265598798480422" , "4478047016788071315" , "4460574795296070623" -, "2314161259131064436" , "1706485008935801151" , "3361316189833096783" , "58722395994608625" -, "1897221512849417118" , "1446863326430381912" , "3441506136750767338" , "1196155297844881885" -, "2151891439507803370" , "2528830923170162970" , "3467147251790540268" , "1925573318675310711" -, "910897726872158593" , "886636637469203851" , "699415088519809866" , "620549995522399744" -, "2720318249942851319" , "1500725603840125008" , "1046059893110617521" , "1291858299307502765" -, "126454272744965174" , "544760937627253094" , "1461492078942643441" , "3867578530080271582" -, "2808740404808488649" , "4043252821938006002" , "1405797315043545553" , "3043065161768601984" -, "4132567650742225426" , "2763152476802377995" , "3154672501483406549" , "738478938354693182" -, "3502364167659541782" , "4119851605145463023" , "1394776259484880068" , "4254053148395761053" -, "2766872521161867078" , "3387767449873169764" , "3333865894334693564" , "3927419868603461209" -, "2623947431017153930" , "536382778743307605" , "1664298717831184780" , "4382292103972261877" -, "1778838356301456071" , "3191832998335806630" , "759353573157166473" , "2258266633771544587" -, "1840033620012410471" , "207674819160438351" , "4498753874550176532" , "1785612421113518194" -, "2983772418443509274" , "540314127903744468" , "4529810762091361488" , "277832436168781297" -, "898957249522448991" , "4213131705487228769" , "4560508554318264762" , "3507562348512978320" -, "303685799839028746" , "4054507336076804416" , "301826712272177575" , "2602117677727442568" -, "564063056010460730" , "4312384978348291599" , "2285985095934913156" , "1116468530500719017" -, "2733009317567395781" , "858221147137389636" , "2802498280405563903" , "3980651357858023491" -, "2247012173149371056" , "1384802880189130822" , "780761584789737132" , "4581853320062536258" -, "912585638091475355" , "3129677796094758172" , "1596770183618478602" , "612979441521138809" -, "175615052289326610" , "1260513110338939949" , "3924222087534503828" , "535966268729661117" -, "730575115507149430" , "735349088147729394" , "2778827585126035462" , "4213549720835052555" -, "298372445350557516" , "3501309051409557259" , "842575147545701996" , "173813682935984123" -, "1388792571375942475" , "1455150440135641438" , "2260219559743886715" , "3107826610681383421" -, "4376410395106051287" , "49855704996896609" , "1589584590475316183" , "91435248312387748" -, "2282798535294398412" , "1888932451254878767" , "1574226381317583077" , "74115622574787929" -, "3435564770168676636" , "1076395275430734247" , "1572019728185895810" , "2725697364159300211" -, "74184766091540040" , "4562065544904886858" , "3670338608895294796" , "3371125856901349116" -, "2218636492951209708" , "2856521937383034418" , "4082442644917294560" , "3760165073964257381" -, "4296142666541308754" , "2152654961013012459" , "1215292761610185781" , "3989529837338434741" -, "2500940227765773601" , "408703817990298007" , "1257857444576143597" , "4574255700170983201" -, "77731" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -] -] -, "merklePaths": -[ [ "9834617050221860669" , "11413351114854288773" , "9661533288504321674" , "9993562115511150911" -, "40596393986291956" , "6738885603367353421" , "10026638978888874626" , "9990782655098669043" -, "6958452223888496824" , "7445615281374087287" , "3655095276382107958" , "14835878204613494021" -, "11015824641572930280" , "6056980346481056257" , "6824090081898407148" , "2113969394956659120" -, "6778109155961807653" , "18174770895019250057" , "10607426966322341230" , "17965352660033392569" -, "144240798700931663" , "11530574946682703691" , "8355604947418566174" , "6103188823783126937" -, "4000612478508899977" , "8397442622676597751" , "13242454311279131968" , "10592266448750114916" -, "1263866799050840545" , "18151952965040454658" , "3483398585178976437" , "7449270796943584753" -, "1136242299330249726" , "7608457769884715833" , "13580287345497539746" , "16479758974647629501" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -] -, [ "12277565398883697065" , "12966826759417505082" , "5795109041248799435" , "16350534932773079605" -, "13964329456201248279" , "12177226905544071508" , "16878549604909533046" , "4831646808973125303" -, "11979098715829099124" , "325848407665776441" , "12976738426733958035" , "7465517250240442027" -, "7353866537984482010" , "8443029017649882272" , "11104194545718927887" , "8939299725534350324" -, "8602711423734886011" , "6761073709857852548" , "1635641880460770607" , "7697913814958120287" -, "1235524795390281371" , "1292729621304636804" , "4596091520835463012" , "12310606328363584857" -, "12887193143336132435" , "130991362062484114" , "10206445096175313452" , "9099408428750151040" -, "15935762892386899695" , "16582893623466051094" , "8773256083473141790" , "6310382211943425947" -, "16099314040403866093" , "12549936286293566773" , "9358051429526891720" , "5411364965461459503" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -] -, [ "8675946949755015264" , "14389130687241392837" , "17682413887329223517" , "11929399742931727625" -, "18279513764132020454" , "9366153031008754896" , "1161364267968999225" , "1541298602850740777" -, "5762526300648633401" , "15060965457752732744" , "197739587337899268" , "2452043592173906867" -, "12346542879087693892" , "18359959275067230319" , "16836398065760064101" , "1541769849053040938" -, "276092587984131724" , "2406700358930161058" , "3756885899371763970" , "6024375329659067589" -, "3621084053329100874" , "17194883189804166156" , "17748720327722260252" , "6804475603834117414" -, "4000612478508899977" , "8397442622676597751" , "13242454311279131968" , "10592266448750114916" -, "1263866799050840545" , "18151952965040454658" , "3483398585178976437" , "7449270796943584753" -, "1136242299330249726" , "7608457769884715833" , "13580287345497539746" , "16479758974647629501" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -] -, [ "2014126693772473758" , "4721303185769578558" , "15086279296374402050" , "2885937490215767929" -, "9400460128488157524" , "13275042069570623686" , "11785798308338023689" , "8062883252203070626" -, "17251726025829636869" , "9286694173558625140" , "14705903578307684931" , "14917462102530245161" -, "806491059107730621" , "11945941923097768442" , "2235457049536883281" , "4138299859997790382" -, "8589405410594606401" , "1814976684727025548" , "14527033532487819091" , "10240414561802292563" -, "14742464408095144171" , "16544693206367652302" , "15838189002094790660" , "18391909175493208822" -, "2922300906810883188" , "1093851137768273969" , "17114140682760652883" , "16623253816502961246" -, "9821745235529706132" , "8498976871983154550" , "2173719562183224871" , "15009364511706365378" -, "16099314040403866093" , "12549936286293566773" , "9358051429526891720" , "5411364965461459503" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -] -, [ "15307040056009449864" , "8430744368882257587" , "5208920732682010010" , "2738412775374354188" -, "3190962989799627688" , "1544375688640491249" , "7184114604083088049" , "974119149852979888" -, "14424936762437040165" , "7590102420731214238" , "5556435183401744867" , "2962283806633179954" -, "7069457919655947376" , "17107523070819849925" , "14011394415365107360" , "2098752472097163481" -, "17557157386777867198" , "9973017664694461503" , "5970806457558584534" , "13707375376876415401" -, "10133432455905105372" , "9393758708900450342" , "16768953102210068075" , "11397644483005454082" -, "15105488844782799105" , "3006015595587065888" , "14759981272899772376" , "2352254281822318718" -, "9821745235529706132" , "8498976871983154550" , "2173719562183224871" , "15009364511706365378" -, "16099314040403866093" , "12549936286293566773" , "9358051429526891720" , "5411364965461459503" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -, "0" , "0" , "0" , "0" -] -] -} + "dataSetRoot": [ + "7227516050042522281", + "15605692942410130655", + "4071287351103999865", + "10400576513634645543" + ], + "entropy": [ + "1234567", + "0", + "0", + "0" + ], + "nCellsPerSlot": 512, + "nSlotsPerDataSet": 11, + "slotIndex": 3, + "slotRoot": [ + "2090750690750182732", + "1881748754875308316", + "12252377310688530072", + "11467407166754927367" + ], + "slotProof": [ + "827439652992611846", + "16905769495525140780", + "16695068033037246276", + "17151630741232149889", + "3469569746364851618", + "18391056527690884511", + "8010039421125473150", + "3408023460182710126", + "12855129173382438132", + "10585118078362511618", + "18326498811560493459", + "4121357915895258498", + "15982493084566743355", + "14593007143866990693", + "14424160485348619", + "291881629905080749", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "cellData": [ + [ + "11457939612777156149", + "3050316285222942956", + "6220403600626645889", + "12552302917535337169", + "14541909488033149911", + "11770580506856219669", + "5159721427328441664", + "17484751996670362665", + "18080055594735154274", + "8113355594472245232", + "12028132870773367291", + "11178885573919577166", + "81431431914614418", + "6514073139358794268", + "6142463557504220189", + "8014341706762814367", + "15859189912477348442", + "11206463965002104979", + "18386940451390972601", + "14320572997556349975", + "2902433927452857519", + "166093506148296056", + "6410137538410426200", + "1405305335167060997", + "7091263553953219162", + "7991898997607812380", + "14367150039566225051", + "14169430135722176060", + "357234809254528860", + "12431984114929387189", + "3850217156876860009", + "14108978968002153623", + "5897805459465079856", + "11742592175139819044", + "5663597380091824223", + "14565010685027775699", + "6355414844296328300", + "3176342646126333868", + "13312000239731526284", + "1813401179374360382", + "15721025662865302074", + "9307898683008387800", + "16095022648834918397", + "8508727319451852508", + "5013877483662715182", + "14687171630836174210", + "1016977896552879017", + "10603229287201375808", + "7606106266477371270", + "14619993846981785001", + "16158266043354227350", + "8109889459249440702", + "17638021571635370803", + "5776583562053523708", + "13309465232537818977", + "17894370279417414860", + "2039516115519122646", + "7735738456787701801", + "2114131480597510478", + "13002865183559024873", + "8148382867428146303", + "17107096754664950015", + "15995939518225188127", + "6660679226877450664", + "2258774982255286380", + "5969102767119322183", + "323508450456616506", + "5771167036451490601", + "4702863787346388524", + "11235019473529664748", + "15208269915881733477", + "13732850805365222539", + "3967824483187236383", + "341453855160546845", + "2601431415727074157", + "837981355672673674", + "13895835929540901620", + "5023171277881449578", + "2578292732108730937", + "1326590181131489736", + "18019166505500049607", + "12676415830163378066", + "11713152662527014394", + "8419436892173104651", + "5328185136439228391", + "13761180753885192880", + "4088282376487232653", + "14376963741823602081", + "9416113316478283377", + "3942124876619731144", + "14016868039958633320", + "9275316385742963753", + "9267036037585021293", + "10624856383029657471", + "1564704649345818868", + "6955664300360433452", + "12784901068904496139", + "11609004912455571330", + "5544851504161475053", + "2505485096186424081", + "13080900163691646929", + "14378229203385276580", + "5548015082664891139", + "16197257410793639245", + "4283836127775517463", + "15659487608606043098", + "14716714177566364100", + "1360725025897396820", + "5924244461659690705", + "18256436209234680180", + "11482860894832381774", + "7280920457206799588", + "6038354509238150729", + "8497209293930154698", + "6595159824161281888", + "17959311744547630815", + "9446618738681521192", + "2231145625154182532", + "1612721077977526703", + "2502800087465115680", + "9149386836956544246", + "6023500600611771197", + "14038511452395334814", + "12058296496725143040", + "14874523481840059166", + "4098824888723150267", + "8031903337636976906", + "5352304907919464659", + "9044984052868393768", + "13787552916107169853", + "608704541507515593", + "6519169404641962810", + "14283726146636458097", + "4691169573022853179", + "3845381349270990195", + "9472095443014492420", + "338100774276812605", + "847897542424490257", + "5833395661420031132", + "3376168990927144848", + "11781433533985455703", + "6766859483076690677", + "8241999241541652117", + "12238465456608891684", + "10182030407849654133", + "6471333605282880288", + "14671103760105037248", + "14772117017874459234", + "13398147735979779243", + "6728887418425058904", + "9591410645557265199", + "7721536086278307051", + "8663434822473730735", + "15870613879126630825", + "12420371311349064158", + "7642189123898814043", + "11301463847625725696", + "1271980502357224197", + "2691921715512971114", + "10791956304114519697", + "10841827082834230797", + "14496216107658951657", + "378576822342238932", + "11816132404790890721", + "10197678341961963153", + "4859273885331353576", + "2304826773056208586", + "1561618584435426461", + "13704606001261612888", + "5971266373562726982", + "7694426958578363986", + "1343097757023061443", + "16269449968189772941", + "10716735754636996006", + "11225031182828259295", + "388082336936778193", + "17121142095308037305", + "11088446402873002262", + "18286165223564381809", + "4204250876184437870", + "17635951554570279619", + "11834370865941306267", + "11331819102150205784", + "14696000503512223579", + "12125027264771580003", + "8508030444347051700", + "18138614803133214676", + "17429805149296050164", + "4139381086373086671", + "10305278958539323622", + "16906554973309761266", + "18191503767547609470", + "10948747037421524840", + "15546196023394655407", + "16496199075810259040", + "210503735868645472", + "2269391182322777419", + "12748524104627655381", + "11704134142470353594", + "4694332057572424632", + "12644071377066629751", + "2939607068326303448", + "4825680112038181769", + "685078848477726269", + "1882006854736407768", + "16208047635330099295", + "4869004388903488938", + "13205369555389902404", + "7163714606990315644", + "2565130413235394395", + "15336881740765232645", + "643356287468158481", + "3128163661496103712", + "2423681737807333546", + "18255664325176426004", + "9639986078867987376", + "6056528663322833774", + "17480595638196051099", + "8050319088589534255", + "2254245225727370562", + "2960302824048561031", + "13808371501942544682", + "6043402723449931620", + "3094190345562236603", + "1766431621657220256", + "5603805724266261910", + "2511225517705518845", + "17967586742541797443", + "16886289216936100567", + "7048895143869535547", + "2551053130787240129", + "14099852168180132653", + "14892970324593649945", + "3183606805598469479", + "17564307367935913701", + "9442907787544290153", + "8061833043936010873", + "8266514373712854111", + "13029841803856050421", + "9278151427913043456", + "4264121391537141960", + "9325698041249610094", + "205038774086865162", + "9626460993533827671", + "3278025538283206693", + "1038778560474010056", + "11769534725766270789", + "5836487059400872605", + "855120296257882848", + "14606576843236539041", + "17359957639196096335", + "5984493807993134323", + "10931601703210143334", + "2383543864181883763", + "4065775530135081205", + "15291538758754625774", + "14082658636388685835", + "17831807206976612048", + "16650746555689327992", + "8847714052410328437", + "11342686403008154695", + "11571151994688702486", + "6328686857903171911", + "8417369756593193679", + "4966669765458807260", + "3689762854656012439", + "816098669409627343", + "13355343131837999261", + "2156757980567137663", + "9022400708841159580", + "16779817458419398909", + "3886507359276398446" + ], + [ + "6721232702017077302", + "12475612654079651056", + "4977176195387576710", + "11134725293831972623", + "14413002553349700271", + "10647576892489495120", + "4672303252751685098", + "10990246817432151598", + "2387894660603585077", + "13685770433063431927", + "10148144693549069268", + "3729247976349065521", + "15662519038707209589", + "1738955485427196136", + "11538236434351509949", + "17955343370480970801", + "5726438345700118952", + "10583391631556681902", + "17076505242797337942", + "15924165500908052437", + "13987684438996895635", + "17858752710905735679", + "17590491146285471070", + "15517133774658435173", + "13158819927720523757", + "13756584389065432548", + "11369141697259277262", + "11986024649036386387", + "9311443037921761660", + "3196154892668814932", + "13384907004176771304", + "7905597036072159077", + "8115922880825552752", + "13038864463857292300", + "12473738214063433392", + "2713971355613794188", + "2539028696773665321", + "12726200971758104752", + "4837384484254314366", + "13459519393926747590", + "3623123573163104488", + "6446250364244618794", + "15262438093647138802", + "7026203862828151677", + "4091516187233384122", + "4879942609781572068", + "4275233804944213169", + "5836877358584586018", + "11940850459795881777", + "11931874266480519182", + "11877785928551628378", + "15428088157871158856", + "5619024456479980020", + "5132959148372594174", + "4105586279089295226", + "10401083082494218471", + "10642971609942808055", + "3106613604515160761", + "3622830259043537881", + "15724666586914738439", + "12670189152374154916", + "7817174367040730853", + "5227332517312342592", + "2455950705847810881", + "15595614510260184323", + "4373119459236273577", + "17260564084035709740", + "9002646846495801583", + "3998454067632879388", + "9592626029893722590", + "3300588876482269697", + "13930938273468792300", + "7563776060625181849", + "12101760128706774857", + "2923170985712919647", + "2330540019069094436", + "4442618974447902278", + "9542886998446340847", + "7391294788033610355", + "11580604221402544930", + "1040556388343617029", + "10688524025829479148", + "10372310660570314980", + "15109586926628479611", + "4734601250891833955", + "14808447330303165159", + "14179298419048631515", + "7263837993413156244", + "16754132462285820999", + "4203092745607243680", + "12621108795245239067", + "1698242084926197938", + "7868418716465543729", + "13178617512722500656", + "14492295372647039507", + "16303996286482041300", + "3884864343972150167", + "7426572316386731275", + "15074579128879493253", + "14490994716014752725", + "8808946999259346907", + "18347765361320273534", + "18196909830226819626", + "13272176547357240210", + "12163682805231727069", + "4933759853068427702", + "11416836099140617120", + "2466502800472213634", + "7338602267171010046", + "3796055477539205845", + "13020371238821039252", + "16820846264881697581", + "12174599496145334656", + "3579093382270402647", + "17965656154631645278", + "11861991253724333992", + "17693206677530405091", + "11110159880918421248", + "12805808988026839851", + "8307090202661751625", + "16984445494986805679", + "10719415293816582979", + "17322125912772573748", + "5599141576365483585", + "108904335923310728", + "11734794265397623360", + "4054002085828379491", + "1242452637817436709", + "12914797608457919373", + "14835116170806721435", + "8800905434010539709", + "1571995954458689514", + "6795216452241508134", + "5052756608233600619", + "112912440840969701", + "16751177511771059088", + "10173239208732551273", + "5118940782996092617", + "4502960692939529371", + "12879600492476175850", + "5331730162008549764", + "18445938992836642910", + "493864978289321967", + "14792775115328061600", + "9716175610927379996", + "11245621546993350599", + "3671490230636581857", + "4677840900589246015", + "9703925051099592249", + "11609915259850376871", + "7491754147104414384", + "17232795207381675901", + "12227426302493520953", + "6460817974297424565", + "3037542604644099058", + "3872180147948396814", + "17316554388665892429", + "17070596860958502200", + "1041587368909168929", + "3358126558287287929", + "1199095593511605166", + "4439453748296313014", + "10007363362641385451", + "14556181550425810705", + "6706280503367668063", + "7753981597037113760", + "15855476297576348162", + "4639987027732189419", + "4161734456562415607", + "5166269605943314684", + "9545490924987113035", + "8843161450626942947", + "11544663596013793676", + "3489657506581048666", + "7762210227775067518", + "10963449786921368006", + "6794816922323902034", + "13285914987630943499", + "17622946888844870098", + "1545521434613223881", + "12378022896061207508", + "12336136802111730762", + "13394497075328255506", + "13028376930905030901", + "15795895854035405079", + "12914281765940686487", + "7840519634597245128", + "10356485216703720166", + "2666250153250765643", + "15029878341171849804", + "5816420203403615773", + "6640322877449361331", + "7705000228508602171", + "8040168814978176645", + "12491234390370835426", + "7260307533172973737", + "10133164531727552407", + "646348178790810048", + "681531226085237328", + "6289300604086766761", + "7698834891669246305", + "5160588610754431403", + "6161824749003614212", + "17769329463319132623", + "8712863314296662721", + "11972567898359284941", + "8694598074700479909", + "2274303794970654269", + "678235774698932300", + "8520319109793574819", + "14622198420838340640", + "17438683371184955880", + "13759163496646694424", + "11877247345355319784", + "11026558179277718074", + "14122867160839050906", + "8559442564565542977", + "15911994735633381771", + "11995549083226142284", + "355758315054350727", + "15998760717047826934", + "5816473583434621710", + "6741365613678749945", + "14552916375014314050", + "10730902978191353717", + "11813996248510480602", + "2392182149900671620", + "18362382335740747720", + "3233615719353480986", + "13044554037056394399", + "6195145571296722418", + "17169985187035397765", + "9773928313188647181", + "13253360453944761065", + "6085819423770166226", + "361931791981338178", + "18028679479807039784", + "3899368884195804794", + "18009906019540051438", + "291131985460526119", + "11992486019986575364", + "16917360103975230440", + "14863471357440726050", + "14098280602648620079", + "7595764480238621281", + "14692665201403327331", + "8424607914322150603", + "15466580626510746719", + "3885737150806877246", + "7031243235608913243", + "17318678117294793011", + "18207659930104443032", + "4075317271607333090", + "6739302673191150248", + "10573518239698790299", + "13213306982999519809", + "7147875043917532126", + "16270662693487798119", + "2808139879173223391", + "18156303133972990647", + "5200553146687022577", + "17367391427344545503", + "12012771809897666189", + "10158636347720005478", + "10626104297653257433", + "4189203482365691177", + "10548368577915771417", + "17414436031762151860", + "17642938630996756210", + "13138655298477529045", + "11222985645015047643", + "9550397843416753217" + ], + [ + "7493712615091807924", + "12491857401929433925", + "10111871645916240282", + "11415976748525453105", + "408177589817834199", + "5690422363399257584", + "8593239964078530854", + "639039436848320157", + "17238164273407330374", + "16434020659524772764", + "1287924983260899289", + "230770248779777096", + "14391616404120645134", + "9036242372314499875", + "4514687185114727631", + "1737202195093577234", + "6034759621517765642", + "10176134653378046654", + "12995007031609092581", + "16992014384559643421", + "11021740938277423157", + "10519188483118372245", + "14226854133953769650", + "6962468528418947804", + "16180858482840135911", + "7099715435791928984", + "4134681998019969821", + "13263413980517871880", + "8657533374449441076", + "6179940779262662031", + "15926791816600093474", + "10739932627304992062", + "15599738621195681235", + "2927484156163185853", + "1347605082279621107", + "6108170790330696948", + "15473960263479650030", + "5143518414553946628", + "4992696442912355038", + "16086423138265354341", + "9186094418133912634", + "6767169482466311373", + "11297555711973773355", + "10705132449646413276", + "2793343448994437422", + "15078122966847519890", + "3088180319862413520", + "10944948634438026573", + "10814092993125742620", + "15163370526003065474", + "9718993502920389954", + "11789767049000469156", + "920490169660143302", + "6876207450105325185", + "15184682997594627638", + "12956685301933657829", + "2206706000163988632", + "7378043093828655717", + "107195693157185644", + "10495635022214430241", + "7196894913799402200", + "7055510130028700374", + "998218436866547529", + "5720667116549884180", + "6479043832563497484", + "6675856232708514542", + "13614107203471826097", + "13607557298292942180", + "5042180370488439662", + "810152899379944940", + "1210012123603062387", + "15752372988373226541", + "10550492218160136659", + "6152387919175494844", + "3741418945685671355", + "8096506028933601483", + "13404236159397826381", + "17182268276005431226", + "9645698649393927176", + "12798524188320917586", + "756561952967938486", + "15821080163308692551", + "18377122036434598686", + "16152557350383201578", + "14622455126752022350", + "5135978779942597504", + "2411250342879651219", + "582973520676642285", + "18371912599299862297", + "5959977026544839623", + "4599823216899116526", + "6835496762514835514", + "11986905022165286932", + "168149493652025699", + "15056499665139150363", + "13357499185006993149", + "5486968673376220281", + "6763903210559055469", + "12947503208417000598", + "15429643499585574357", + "4535284461649960984", + "9155447436921832078", + "3390101270817022966", + "14361575279545797223", + "17678455481009512511", + "18229277832294426980", + "15428781695718378259", + "15199758281362252903", + "7514122676504223707", + "4507842963483967880", + "13183917044320748698", + "16282671240206216175", + "13091854783274460328", + "7242898935607183237", + "12705386195831576516", + "14925710940990721924", + "11814636084932757123", + "15841147339449629698", + "18075963098244948167", + "1516191028595140457", + "2252273007191928687", + "6411127446485803024", + "8101415305331077638", + "15103208649195774187", + "1511676851469144933", + "5486635014123043256", + "8977058953237432024", + "30007289978188568", + "17745417624027574933", + "13479328013552572887", + "4782015453822078956", + "792315533213745631", + "1639038727204758500", + "11182696329503535227", + "17132997735759785152", + "8562034892617489548", + "9548762849318410251", + "14803893036248380424", + "4527536889559534073", + "12011007400040290724", + "10196659484172842939", + "667790015456892920", + "12925489555329803241", + "2629278296210726370", + "10029477269416352404", + "17727330188856026801", + "10992264961087475124", + "1928832090413071190", + "6416677214315011687", + "822061200227652982", + "466741207293311392", + "4729312932469561312", + "543548293272256628", + "16478371323299276753", + "6995579892281376624", + "6605215391302786330", + "10006921728365990370", + "8582305582190863029", + "17467506422497681404", + "7180707598131289471", + "11468643715642381932", + "13051127833960561498", + "777383375687737185", + "16780425818318476010", + "18188685238212930669", + "7589374859380068839", + "1358511365239494364", + "5706748431856073782", + "3724906797086275482", + "13634293741295223409", + "15874499083818509117", + "18288977236082298222", + "14787691328165508417", + "553800680119265186", + "13934281162270639121", + "2517210270956136245", + "11856808273217757105", + "6551434532322277436", + "12348483583934980910", + "15736771497866685453", + "2564179133701215202", + "17526924060645695579", + "10479333763566955972", + "14061836694593168480", + "4698279880334209556", + "9167501397194504918", + "1461586296418322732", + "6383921047839772962", + "7932914837256567982", + "4477395949186552874", + "3210124559740647997", + "2237504911340225377", + "9525312516555335186", + "18415896919208671272", + "6578597382158845273", + "656634248125025738", + "12791656968653901279", + "17570009689693723224", + "10828167620798924939", + "12646311072786803424", + "13067210938685542336", + "12886345679221280362", + "16950731504027258938", + "7994688633428627662", + "10832719185154300910", + "6553955362718264419", + "5627538529532123645", + "2162842280016909432", + "8851773066610436125", + "12423302490659802252", + "8435305693985820815", + "2677355472531293824", + "7387093257197192127", + "15033100579315731626", + "6237384218815574302", + "13711513620666305297", + "8748832911496053752", + "7851941548488037786", + "11128897598490629360", + "4319652234188276615", + "12772105429442122171", + "2016297297243206594", + "10157550207877285100", + "3132511863832902428", + "1479774632203537218", + "6068851279853148989", + "15563768705059112383", + "11467078414449555590", + "3798979209833264423", + "5614940062031757799", + "4411372841562942093", + "10920875328300712303", + "2979641069988536939", + "7749139579493925032", + "2068137417043739547", + "9843790133318350854", + "1030683462852230754", + "8063003646170356719", + "14980191434449704899", + "3920098142356119253", + "10810177120261609298", + "18146046991522245058", + "8014367686969541879", + "11445072481769026883", + "6499863983066801134", + "15087033904318313252", + "1182866707018495522", + "6959661720543482525", + "14624581579462995795", + "10445646871326644347", + "16984638666749737612", + "2874647325855226377", + "15251651115295035707", + "17866309005393575454", + "2265968357949147757", + "12235105108505831431", + "15746408505287705069", + "15664810744824724567", + "8799193784126002007", + "13226133377062859987", + "442678767381428577", + "12809447202622678714", + "1475277108346348043", + "11463220567308981902", + "14948744674271841516", + "14414916648546603906", + "2675293357852891183", + "16856571903345836875", + "18414962728617961073", + "10353975783792728757", + "3366574188095576759", + "17530315582208739251" + ], + [ + "13329159936392679574", + "16707672887279884602", + "11648916149405141432", + "16333022378488791080", + "16636382009159196903", + "12969897121038836305", + "6218582034209851693", + "12436804614953829016", + "1448942295176403881", + "7906089311574917436", + "7077369663959714716", + "9723546481481173555", + "12027740066518020158", + "17874640613367515689", + "2963378718891252156", + "6520535730276874496", + "6997686658507735832", + "10797936614608523923", + "10187001870237869763", + "7881641342816538617", + "17222844231361409798", + "11582061836440775085", + "797755543105175530", + "8626833030205587640", + "16729230701973440889", + "11768227024552352578", + "9940169958104041990", + "15115954820673438459", + "12392184457574014018", + "14403784693182981232", + "12223123032351049310", + "17601128668535242481", + "1787425967587704517", + "15920523285611033602", + "10594096521904196414", + "2741452877452181058", + "6335972448773125801", + "10936263638638655020", + "4348937291011602107", + "10750946372011080689", + "7044430913928487691", + "15831650874201919456", + "11005490183243863650", + "7257604834534410238", + "17566129329142388050", + "8957928484543640868", + "8106473200619315775", + "521010519494488400", + "15080835044229566876", + "14295636299686962076", + "18165839086537400743", + "7446414459132770060", + "7129661349711377193", + "10560077028929235570", + "1967231945765138353", + "16587435430069779672", + "17476603831932899840", + "10235737596778626854", + "7863324653341199508", + "10458012995554838936", + "14877670349352737161", + "10482440137204162794", + "16757714915893129812", + "10377519890042862427", + "14555446271428752561", + "6753388897655357506", + "470947109908765021", + "8684245041550488132", + "14031537097929488997", + "14727077005812863696", + "16198395616811971044", + "9714219483721216981", + "4385986189869083384", + "16608093413934965866", + "14576587989036631674", + "17288823904549686821", + "14028590523361814237", + "14920134241717389482", + "14205942735358554594", + "17833459573905913840", + "13542715191480265530", + "8856562901607138320", + "15056603453917231889", + "9221156829756668930", + "15407303038224444148", + "8387556028875754517", + "581254133009288111", + "10296301696289317465", + "12326213586064903111", + "11228972081928652312", + "6273069288053110521", + "11684936294732227666", + "14969396938909364893", + "11728945125997640184", + "16655597484819942985", + "14395769016687713295", + "4871788797638369814", + "1097455520228692741", + "12520401099619610788", + "1379755230382375783", + "6388438518253044742", + "234002024957476615", + "6763748771113401328", + "4003000410268150455", + "10876683454495384347", + "6070532632487395823", + "17594790868976286287", + "7569322031431566673", + "17900763490349217180", + "15102184034741700747", + "12105869388062632264", + "1778050736739529755", + "6220713506838664509", + "12483608649588579951", + "15696437081734863284", + "8196913155295169961", + "2368795681915302847", + "3729678341431248200", + "9162793911831421031", + "5679490078898494094", + "5270114045281118062", + "4474081944957776602", + "16478699977633370332", + "3635474475581161187", + "3577921853850340959", + "15499888930585975773", + "3021399935850573878", + "4881268722435947086", + "15233924798578648041", + "11084645468168015652", + "6109877564080574359", + "11532577183127756904", + "3190005063230214988", + "10112102004563836520", + "13721469168734580496", + "11328817001171483738", + "17623666125062241272", + "6405552187135991453", + "3050225029049962399", + "7846182345889581038", + "17723627253582423004", + "8239545933852943515", + "3050474762816909303", + "6048770181730570593", + "4340483299348618417", + "5771975854369952366", + "4189751055340937209", + "11607678024812952173", + "8500468858604533392", + "12894322627536465563", + "12533055894263594844", + "4741233032750961771", + "1967252284844905959", + "9862597195827545299", + "10454698359797359573", + "8808779430919147673", + "9903430763867290673", + "11624519616614702020", + "5340869559973234724", + "8318752964880702308", + "13710244887887911376", + "10487815107443364937", + "16941628439854429184", + "2152457175742631151", + "16968268244120125557", + "12805861151360880493", + "159158214755461693", + "10951420301993528367", + "6982307178085698446", + "11256850000920452552", + "7002093740701428318", + "3727133681616508939", + "5800184999155595067", + "15430305782117828746", + "15145401563504772138", + "13735616916838909558", + "15599929276123586757", + "9097586068250793839", + "9721297850418795270", + "14388503735553321246", + "1764357627523073038", + "11605394564131385536", + "16750346945687301333", + "646634582680506135", + "3740482857561687130", + "17620146631644080405", + "5316955640110484000", + "15272753107593799563", + "12820671408469695639", + "5309973028375003542", + "16339529113883130466", + "10350204014151551699", + "16737690955354343071", + "13462503974907031270", + "14907510332697607768", + "16238173823524824772", + "7662402603319971965", + "11351383072308104618", + "2897056032580371810", + "17438567693933503218", + "7955494714327134366", + "12597559886546428033", + "2135445315893801003", + "5312036228587682068", + "6847045889948567658", + "16231149688171572647", + "17652510218133820796", + "8900301828219526170", + "4231856570261866093", + "7791655338234069117", + "3772885423972376531", + "11187320806169570340", + "1946259532650942153", + "3014581906096601970", + "14627552092122411556", + "1338361361488641918", + "1123998678652076478", + "7644772784802734309", + "7098230407765069273", + "7406413077655225902", + "4329716335861283979", + "18274231368635500347", + "4835635216729529406", + "13519389842408694885", + "14861151279415338904", + "2494109710010431582", + "8293812494848280960", + "18426004176010318230", + "13989626892849481316", + "9228061226467144101", + "8888441345126853051", + "10979255938545013887", + "14135612566512406543", + "14875247855406865281", + "5039794511576650430", + "3037829632038055740", + "14927028412547681926", + "17168070591316391516", + "9302934645434138039", + "2366323210395183083", + "2280588210332426948", + "3364107430753042424", + "1621374833538391660", + "1298645850739810943", + "12353098943585263969", + "6326886690111696470", + "17559011606992264359", + "5284400903780616746", + "643633600620352473", + "6434031042188387802", + "2505049689167188437", + "3681968637690118989", + "5167777514606825478", + "1082989775720551304", + "10322474457481783536", + "3574287151566024726", + "8640689161757216134", + "11908570416500273759", + "3124722376406911947", + "4341280687070832436", + "13556239523828980071", + "2786526133064916344", + "2021282603560814447", + "17944115911896422039", + "12005773979483532778", + "18325585214598309150", + "12888628453695877392", + "997771217784491515", + "14951234362140303426", + "13429810296299852674", + "8141209857337757087", + "13451152287401078912" + ], + [ + "15284564651893843631", + "709149263278622309", + "6000907418993900521", + "15578062466232228324", + "8673855770155117221", + "4631283024171755654", + "17499341332890478180", + "1569554787394817421", + "1490442176570342165", + "9517839469577252755", + "16815144443427070438", + "5684816298180973177", + "16130464798401046913", + "4947709762955831136", + "2555553274136502762", + "15128350441644074451", + "10052620657111920441", + "8691456108216287473", + "9074264330506273241", + "16573348378796049503", + "8075607066619011981", + "12184944668463316697", + "13746149775234653909", + "2251286283340353742", + "18360032995924029795", + "1943908174707763470", + "3721083291904490764", + "2963357705694839257", + "15209654239898776487", + "10243459378829679067", + "11589395767301060021", + "5968463507859824553", + "12106005975235764579", + "5671144641741236919", + "3105353237728330306", + "18341039120942005031", + "14090319605710819755", + "5832854094991690084", + "10265964554108153631", + "16123352476365476381", + "11533794034821022069", + "17328277470468612987", + "1490472340769259028", + "10407664795812161080", + "10587754630514258220", + "4559530248796857690", + "14354788359397844609", + "16477297183122379583", + "9312850245153757272", + "15507345458530915304", + "6726547151472182347", + "8463117167694400054", + "4744051472240441022", + "4076951763654347633", + "3738726051871283734", + "4969649854632744295", + "11262945699899231811", + "14850669260807228657", + "248141915501868629", + "3567698975733716528", + "6814085473409693867", + "9401780503032433880", + "15088294762149020722", + "18309801491658955900", + "14512678707650855075", + "17343172839684257397", + "10689670630212562156", + "3978959520474077367", + "411424940288861537", + "7135052655049916060", + "5203332077999073945", + "9111455520876907514", + "8789540745653183734", + "9576308004239485745", + "8785390606992240569", + "3040871570632901031", + "4392001102632320474", + "12701027747535827631", + "17669134657155735407", + "2508006088930399369", + "3865558491214438653", + "8472329755310529729", + "8338584834797590413", + "4021025304279293723", + "11803846135081497064", + "7100363465151417217", + "4875174814978276462", + "4033328713980738640", + "221212391468663350", + "5751401480176387160", + "4367637862431440254", + "8186512709031245398", + "9983569152970899230", + "8834507393719557879", + "14829626176094557414", + "10561178321823410311", + "5939382201535829865", + "8961853088718890290", + "1153733995984359621", + "8125762051262972210", + "5476552836176275506", + "2301073877360468243", + "16728449720207083457", + "7231299329756463863", + "6575328704773112980", + "6189927745943154899", + "18132769415380352192", + "15297092919037540849", + "6194279616498517256", + "8082447145795419532", + "13406306077546664621", + "17838839974823895334", + "1855184838530753229", + "16249504228466291902", + "15672232783942870785", + "4546453767031945949", + "18106024852507643977", + "6416374386694266073", + "1665462200740408556", + "5485431247792237684", + "13918672273366362731", + "3566734614301186790", + "17329419866043294951", + "17695089450912477892", + "4665252911900309757", + "4404472705916953016", + "12585694768582182921", + "1626031448200576407", + "8845705228371493137", + "14502714156028189586", + "7388344461472208507", + "6779471952691602134", + "4038151571358770554", + "8844937802332325804", + "13195380181205685347", + "7868244869991102104", + "7334770055910773639", + "6932449578060667267", + "12218202330920444954", + "17284732381705563769", + "6182525282139573146", + "11218481326959058808", + "13534367046391903465", + "2787254686103947823", + "15220074213827762908", + "17642837778732696523", + "9169576471633960209", + "13994455297029802675", + "8938410846165422553", + "16754871334712913966", + "16416065893427975511", + "10574710315997050688", + "13104387351597420643", + "14783691967933310574", + "7544151137513169691", + "17550583114866676602", + "2818457123727847586", + "9683690410194988753", + "6041383516999205036", + "7372467275155533070", + "4557843724199612636", + "4821416975990935453", + "5511001006297100522", + "6774802631329261106", + "3351881541651100391", + "16705431911229531634", + "8301211486648962347", + "3036442288111492506", + "14094832590672474775", + "8859101909229346093", + "3748556683573323404", + "3587718468533527565", + "3324192514281327345", + "17401810928232547863", + "3229305853311809568", + "2574918517898334284", + "14212746474126952507", + "11849410815991382161", + "13537564931161944133", + "10604075148868298831", + "11559164705970362935", + "3682397047739735314", + "322382643140343974", + "5247278551534403247", + "10473975361048885034", + "4099081729039326528", + "11419740142624154783", + "232369858646000843", + "3609593863379380919", + "12927023521603576514", + "9817651223368521769", + "9057185953908500050", + "12542978555646201403", + "12532324032109568445", + "1285028840395271647", + "14008796011687208534", + "8510258243114628199", + "5834619004988674897", + "16633931831992836611", + "10983610888915615235", + "16831690606486190478", + "18187276621836993363", + "6647958752019999998", + "16480059931076868129", + "6269823875829025909", + "460273881712015284", + "4047998336847102562", + "11883712386550416969", + "16226961655537153640", + "1290977940790067249", + "12291487141163051412", + "1851619911521811947", + "11759925668346825062", + "17923108410524371812", + "1580848109441470087", + "5267911231737518483", + "14599780468176866402", + "5953342747034134307", + "9093271253558613059", + "11990394709530360388", + "6210056360752657928", + "13209421064608705090", + "17499031144973532881", + "2875296522204337078", + "3811697760643158225", + "1377294503404778627", + "3600813485643103524", + "10379679332054941378", + "3537678644825983336", + "6607112735071972722", + "14071427950972821271", + "865455860203584967", + "5520088569831704533", + "2366996265784510204", + "734722879437060217", + "7194214203060812394", + "3892632693396549314", + "16911051410455481665", + "6112640638447787412", + "68053035675309601", + "5722373678758756805", + "2601294493867051885", + "14873098543413277302", + "16297693586258606015", + "1618504809247150463", + "13680843457235273945", + "8992821216336946636", + "2101410463397575736", + "13798536330719775884", + "9051988849710907562", + "4010880974184780592", + "7545248984163170836", + "9596925705383457824", + "13951143259694635934", + "12815555741273605466", + "5864033336376232530", + "906609683739028221", + "7705636002793685543", + "11941520200521871917", + "7277958639657768662", + "8887687348635565047", + "7892996449945085510", + "4705840032428686921", + "11734957710059213401", + "13241920344428987475", + "5149170821521062064", + "3678263541578534356", + "10345625015424527773", + "10495312940706097959", + "16790689156194764695", + "10458919115267892306", + "17976630607936768011" + ] + ], + "merklePaths": [ + [ + "5330780144421818680", + "10515881715195215980", + "14086070973614885917", + "12566237814497071553", + "12600862601330235800", + "16883069359742529159", + "8892090350464194651", + "18063993943612043165", + "5311291670006812191", + "15014712300081966637", + "6247459476648333675", + "10104646648686978290", + "14590900074080443934", + "18053311515868340118", + "16080446228042512111", + "18400926785196826969", + "12083795083086343610", + "17963623608025901521", + "6100275558897678810", + "3794640635371141309", + "6161717320144789157", + "17784817362554624501", + "15963755681525719569", + "10393778629921092069", + "8316983105621921967", + "4981877206303856674", + "17057007054052031180", + "11297946758299308187", + "16456211005317408269", + "12627276095713059650", + "17576392602123151074", + "7641438746184019831", + "2572717977553962810", + "4416719756262058031", + "18281189771898274853", + "17323927343283798563", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "18186445722825051390", + "6376432698137505314", + "16766885043157617950", + "16243470117439592398", + "976898549315339138", + "8880088124297368485", + "448116158486253623", + "17717174110346681758", + "14594759378431808791", + "1586132303093775199", + "11748435865142298907", + "16459524518360101015", + "3875225215282808825", + "2730294442148528857", + "148052173121115221", + "9793191736303147676", + "9054363280863949990", + "6821521399154234369", + "9272200714351413404", + "3748593654622691631", + "7942499646327155967", + "10340096055554605577", + "11936265408546565383", + "15392204126056523140", + "8316983105621921967", + "4981877206303856674", + "17057007054052031180", + "11297946758299308187", + "16456211005317408269", + "12627276095713059650", + "17576392602123151074", + "7641438746184019831", + "2572717977553962810", + "4416719756262058031", + "18281189771898274853", + "17323927343283798563", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "15560211356412949285", + "12594633890819580214", + "10542754436138083411", + "13981710432391860891", + "15890947890091309772", + "1166004366467796613", + "3472680021563265646", + "4581367637445075889", + "1949983753787049906", + "12411349400459349133", + "4409364184746761515", + "17055562722570998328", + "8708692799180652853", + "4262190259026687309", + "6928465031041921763", + "15714448379453340748", + "17688672174871911126", + "4329791720212124152", + "15129825434175478408", + "13691849237193284170", + "2300929483285754933", + "11489675537368161476", + "1469785407258250502", + "9958395378052486267", + "9929091793139403004", + "8061414218191030662", + "13486642608625485414", + "11330153350019014620", + "16456211005317408269", + "12627276095713059650", + "17576392602123151074", + "7641438746184019831", + "2572717977553962810", + "4416719756262058031", + "18281189771898274853", + "17323927343283798563", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "10273735808511345464", + "15502154157645600399", + "7402458213600042608", + "9686204793601623303", + "4899920060966486773", + "11181129846118323773", + "15742435778802439326", + "8275414763548861126", + "6002569415642491422", + "494057822576698570", + "8489446994346441540", + "10076810769828126795", + "10214858325383108245", + "12390500041962326283", + "8864911671928194318", + "9041866188248909687", + "6774585794405370421", + "1400030771435394587", + "7580585701188293676", + "4916774029230028591", + "3586277619198395075", + "17820734516232094837", + "7890823011154340926", + "13217648020199973518", + "2795227239443065284", + "16106153975968615749", + "4470452277871379139", + "3861752215335560225", + "12304260224180557951", + "7076114541200301880", + "4638910155077376360", + "4304088339225689984", + "14091762875456338064", + "1870754070905164314", + "3238753342083935192", + "18319843239590385079", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "865147779581819515", + "3524417636541810354", + "2884471864405515290", + "1335227471942358084", + "8200709276479144672", + "15920227223646766842", + "3227940724599613035", + "2001852968684377937", + "7113376518348933153", + "16971973376171260928", + "10174379104881750819", + "1452385973669057623", + "14095817899703312363", + "14572792104462011721", + "1255351250845749944", + "6699729789643118113", + "9848134914702424452", + "3861688562429820220", + "10943162330000785274", + "10847633277998808088", + "2300929483285754933", + "11489675537368161476", + "1469785407258250502", + "9958395378052486267", + "9929091793139403004", + "8061414218191030662", + "13486642608625485414", + "11330153350019014620", + "16456211005317408269", + "12627276095713059650", + "17576392602123151074", + "7641438746184019831", + "2572717977553962810", + "4416719756262058031", + "18281189771898274853", + "17323927343283798563", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ] +} \ No newline at end of file diff --git a/workflow/prove.sh b/workflow/prove.sh new file mode 100644 index 0000000..68966ca --- /dev/null +++ b/workflow/prove.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Source the parameters from params.sh +source ./circ_params.sh + +# Build +cargo build --release + +# Run the Rust executable +cargo run --bin prove diff --git a/workflow/prove_and_verify.sh b/workflow/prove_and_verify.sh new file mode 100644 index 0000000..8a9947e --- /dev/null +++ b/workflow/prove_and_verify.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Source the parameters from params.sh +source ./circ_params.sh + +# Build +cargo build --release + +# Run the Rust executable +cargo run --bin prove_and_verify diff --git a/workflow/src/bin/build_circ.rs b/workflow/src/bin/build_circ.rs new file mode 100644 index 0000000..143540e --- /dev/null +++ b/workflow/src/bin/build_circ.rs @@ -0,0 +1,28 @@ +use plonky2::plonk::circuit_data::CircuitConfig; +use plonky2::plonk::config::GenericConfig; +use plonky2::plonk::circuit_builder::CircuitBuilder; +use anyhow::Result; +use std::time::Instant; +use codex_plonky2_circuits::circuits::sample_cells::SampleCircuit; +use proof_input::params::Params; +use proof_input::params::{D, C, F}; + +fn main() -> Result<()> { + // Load the parameters from environment variables + let params = Params::from_env()?; + + // Create the circuit + let config = CircuitConfig::standard_recursion_config(); + let mut builder = CircuitBuilder::::new(config); + let circuit_params = params.circuit_params; + let circ = SampleCircuit::new(circuit_params); + let mut targets = circ.sample_slot_circuit(&mut builder); + + // Build the circuit + let build_time = Instant::now(); + let data = builder.build::(); + println!("Build time: {:?}", build_time.elapsed()); + println!("Circuit size (degree bits): {:?}", data.common.degree_bits()); + + Ok(()) +} diff --git a/workflow/src/bin/gen_input.rs b/workflow/src/bin/gen_input.rs new file mode 100644 index 0000000..dfe64f8 --- /dev/null +++ b/workflow/src/bin/gen_input.rs @@ -0,0 +1,20 @@ +use plonky2::plonk::config::GenericConfig; +use anyhow::Result; +use proof_input::json::export_circ_input_to_json; +use proof_input::gen_input::gen_testing_circuit_input; +use proof_input::params::Params; +use proof_input::params::{D, F}; + +fn main() -> Result<()> { + // Load the parameters from environment variables + let params = Params::from_env()?; + + // generate circuit input with given parameters + let circ_input = gen_testing_circuit_input::(¶ms.test); + + // export circuit parameters to json file + let filename= "input.json"; + export_circ_input_to_json(circ_input, filename)?; + + Ok(()) +} diff --git a/workflow/src/bin/prove.rs b/workflow/src/bin/prove.rs new file mode 100644 index 0000000..0de7772 --- /dev/null +++ b/workflow/src/bin/prove.rs @@ -0,0 +1,45 @@ +use plonky2::plonk::circuit_data::CircuitConfig; +use plonky2::plonk::config::GenericConfig; +use plonky2::iop::witness::PartialWitness; +use plonky2::plonk::circuit_builder::CircuitBuilder; +use anyhow::Result; +use std::time::Instant; + +use proof_input::json::import_circ_input_from_json; +use codex_plonky2_circuits::circuits::sample_cells::{SampleCircuit, SampleCircuitInput}; +use codex_plonky2_circuits::circuits::params::CircuitParams; +use proof_input::params::{D, C, F}; + +fn main() -> Result<()> { + // Load the parameters from environment variables + let circuit_params = CircuitParams::from_env()?; + + // Read the witness from input.json + let circ_input: SampleCircuitInput = import_circ_input_from_json("input.json")?; + println!("Witness imported from input.json"); + + // Create the circuit + let config = CircuitConfig::standard_recursion_config(); + let mut builder = CircuitBuilder::::new(config); + let circ = SampleCircuit::new(circuit_params); + let mut targets = circ.sample_slot_circuit(&mut builder); + + // Create a PartialWitness and assign + let mut pw = PartialWitness::new(); + circ.sample_slot_assign_witness(&mut pw, &mut targets, circ_input); + + // Build the circuit + let build_time = Instant::now(); + let data = builder.build::(); + println!("Build time: {:?}", build_time.elapsed()); + println!("Circuit size (degree bits): {:?}", data.common.degree_bits()); + + // Prove the circuit with the assigned witness + let start_time = Instant::now(); + let proof_with_pis = data.prove(pw)?; + println!("Proving time: {:?}", start_time.elapsed()); + + //TODO: write proof to json file + + Ok(()) +} diff --git a/workflow/src/main.rs b/workflow/src/bin/prove_and_verify.rs similarity index 85% rename from workflow/src/main.rs rename to workflow/src/bin/prove_and_verify.rs index 75f76e4..ea10f89 100644 --- a/workflow/src/main.rs +++ b/workflow/src/bin/prove_and_verify.rs @@ -8,29 +8,27 @@ use std::time::Instant; use proof_input::json::import_circ_input_from_json; use codex_plonky2_circuits::circuits::sample_cells::{SampleCircuit, SampleCircuitInput}; use codex_plonky2_circuits::circuits::params::CircuitParams; -use proof_input::params::Params; use proof_input::params::{D, C, F}; fn main() -> Result<()> { // Load the parameters from environment variables - let params = Params::from_env()?; + let circuit_params = CircuitParams::from_env()?; // Read the witness from input.json - let witness: SampleCircuitInput = import_circ_input_from_json("input.json")?; + let circ_input: SampleCircuitInput = import_circ_input_from_json("input.json")?; println!("Witness imported from input.json"); // Create the circuit let config = CircuitConfig::standard_recursion_config(); let mut builder = CircuitBuilder::::new(config); - let circuit_params = params.circuit_params; let circ = SampleCircuit::new(circuit_params); let mut targets = circ.sample_slot_circuit(&mut builder); // Create a PartialWitness and assign let mut pw = PartialWitness::new(); - circ.sample_slot_assign_witness(&mut pw, &mut targets, witness); + circ.sample_slot_assign_witness(&mut pw, &mut targets, circ_input); // Build the circuit let build_time = Instant::now();