From 0882b8f6226d811c2d53313255614a3b20529cd2 Mon Sep 17 00:00:00 2001 From: thomas-quadratic <116874460+thomas-quadratic@users.noreply.github.com> Date: Fri, 3 Nov 2023 09:32:36 +0100 Subject: [PATCH] ENH: adds ipa-multipoint library with Pedersen primitives (#123) ENH: adds ipa-multipoint library with Pedersen primitives Rust nativelib for ipa-multipoint includes pedersen hash and pedersen commit These primitives are used by Verkle Tries. Signed-off-by: Thomas Zamojski --- ipa-multipoint/build.gradle | 24 +- ipa-multipoint/ipa_multipoint_jni/Cargo.toml | 12 +- ipa-multipoint/ipa_multipoint_jni/src/lib.rs | 220 +- .../ipamultipoint/LibIpaMultipoint.java | 22 +- .../ipa_multipoint/LibIpaMultipointTest.java | 65 +- .../PedersenCommitmentTest.java | 47 + .../resources/pedersen_commitment_test.json | 2612 +++++++++++++++++ .../test/resources/pedersen_hash_test.json | 53 + 8 files changed, 2945 insertions(+), 110 deletions(-) create mode 100644 ipa-multipoint/src/test/java/org/hyperledger/besu/nativelib/ipa_multipoint/PedersenCommitmentTest.java create mode 100644 ipa-multipoint/src/test/resources/pedersen_commitment_test.json create mode 100644 ipa-multipoint/src/test/resources/pedersen_hash_test.json diff --git a/ipa-multipoint/build.gradle b/ipa-multipoint/build.gradle index 18147441..38f8a93d 100644 --- a/ipa-multipoint/build.gradle +++ b/ipa-multipoint/build.gradle @@ -20,11 +20,25 @@ plugins { } dependencies { - implementation 'net.java.dev.jna:jna:5.12.1' - testImplementation 'org.apache.tuweni:tuweni-bytes:2.2.0' - testImplementation 'junit:junit:4.13.2' - testImplementation 'org.assertj:assertj-core:3.22.0' - testImplementation 'org.mockito:mockito-core:4.4.0' + implementation 'net.java.dev.jna:jna:5.12.1' + testImplementation 'org.apache.tuweni:tuweni-bytes:2.3.1' + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.2' + testImplementation 'org.junit.jupiter:junit-jupiter-params:5.7.2' + testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.12.5' + testImplementation 'org.assertj:assertj-core:3.22.0' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.2' +} + +test { + useJUnitPlatform() +} + +sourceSets { + test { + resources { + srcDirs = ['src/test/resources'] + } + } } task macArmLibCopy(type: Copy) { diff --git a/ipa-multipoint/ipa_multipoint_jni/Cargo.toml b/ipa-multipoint/ipa_multipoint_jni/Cargo.toml index 0097821d..b32ec522 100644 --- a/ipa-multipoint/ipa_multipoint_jni/Cargo.toml +++ b/ipa-multipoint/ipa_multipoint_jni/Cargo.toml @@ -22,11 +22,19 @@ repository = "https://github.com/hyperledger/besu-native" edition = "2018" [dependencies] -ipa-multipoint = { git = "https://github.com/crate-crypto/ipa_multipoint", rev = "d5590ef5" } +verkle-spec = { git = "https://github.com/crate-crypto/rust-verkle", branch = "master" } +verkle-trie = { git = "https://github.com/crate-crypto/rust-verkle", branch = "master" } +ipa-multipoint = { git = "https://github.com/crate-crypto/ipa_multipoint", branch = "banderwagon_migration" } +banderwagon = { git = "https://github.com/crate-crypto/banderwagon" } bandersnatch = "0.1.1" +ark-ff = { version = "^0.3.0", default-features = false } +ark-ec = { version = "^0.3.0", default-features = false } +ark-serialize = { version = "^0.3.0", default-features = false } +ark-std = { version = "^0.3.0", default-features = false } jni = { version = "0.19.0", features = ["invocation"] } # We use invocation in tests. -ark-ff = "0.3.0" hex = "0.4.3" +num-bigint = "0.4.4" + [lib] name = "ipa_multipoint_jni" diff --git a/ipa-multipoint/ipa_multipoint_jni/src/lib.rs b/ipa-multipoint/ipa_multipoint_jni/src/lib.rs index f083193c..b5a63ffb 100644 --- a/ipa-multipoint/ipa_multipoint_jni/src/lib.rs +++ b/ipa-multipoint/ipa_multipoint_jni/src/lib.rs @@ -12,99 +12,163 @@ * * SPDX-License-Identifier: Apache-2.0 */ -use std::convert::TryFrom; -use ark_ff::bytes::{FromBytes, ToBytes}; -use bandersnatch::Fr; -use ipa_multipoint::lagrange_basis::LagrangeBasis; -use ipa_multipoint::multiproof::CRS; +use ark_ff::PrimeField; +use banderwagon::{Fr, multi_scalar_mul}; +use ipa_multipoint::crs::CRS; +use verkle_spec::*; +// use crate::{vergroup_to_field}; +use ark_serialize::CanonicalSerialize; +use verkle_trie::*; + +// use group_to_field; + use jni::JNIEnv; use jni::objects::JClass; -use jni::sys::{jbyteArray, jobjectArray, jsize}; +use jni::sys::jbyteArray; + -// Seed used to compute the 256 pedersen generators -// using try-and-increment // Copied from rust-verkle: https://github.com/crate-crypto/rust-verkle/blob/581200474327f5d12629ac2e1691eff91f944cec/verkle-trie/src/constants.rs#L12 const PEDERSEN_SEED: &'static [u8] = b"eth_verkle_oct_2021"; +/// Pedersen hash receives an address and a trie index and returns a hash calculated this way: +/// H(constant || address_low || address_high || trie_index_low || trie_index_high) +/// where constant = 2 + 256*64 +/// address_low = lower 16 bytes of the address interpreted as a little endian integer +/// address_high = higher 16 bytes of the address interpreted as a little endian integer +/// trie_index_low = lower 16 bytes of the trie index +/// trie_index_high = higher 16 bytes of the trie index +/// The result is a 256 bit hash +/// This is ported from rust-verkle/verkle-specs +#[no_mangle] +pub extern "system" fn Java_org_hyperledger_besu_nativelib_ipamultipoint_LibIpaMultipoint_pedersenHash( + env: JNIEnv, + _class: JClass, + input: jbyteArray, +) -> jbyteArray { + + let input = env.convert_byte_array(input).unwrap(); + + let mut address32 = [0u8; 32]; + + address32.copy_from_slice(&input[0..32]); + + let mut trie_index= [0u8; 32]; + + trie_index.copy_from_slice(&input[32..64]); + trie_index.reverse(); // reverse for little endian per specs + + let base_hash = hash_addr_int(&address32, &trie_index); + + let result = base_hash.as_fixed_bytes(); + let output = env.byte_array_from_slice(result).unwrap(); + output +} + +// Helper function to hash an address and an integer taken from rust-verkle/verkle-specs. +pub(crate) fn hash_addr_int(addr: &[u8; 32], integer: &[u8; 32]) -> H256 { + + let address_bytes = addr; + + let integer_bytes = integer; + let mut hash_input = [0u8; 64]; + let (first_half, second_half) = hash_input.split_at_mut(32); + // Copy address and index into slice, then hash it + first_half.copy_from_slice(address_bytes); + second_half.copy_from_slice(integer_bytes); + + hash64(hash_input) +} + +/// Commit receives a list of 32 byte scalars and returns a 32 byte scalar +/// Scalar is actually the map_to_field(commitment) because we want to reuse the commitment in parent node. +/// This is ported from rust-verkle. #[no_mangle] pub extern "system" fn Java_org_hyperledger_besu_nativelib_ipamultipoint_LibIpaMultipoint_commit(env: JNIEnv, _class: JClass<'_>, - input: jobjectArray) + input: jbyteArray) -> jbyteArray { - let length = env.get_array_length(input).unwrap(); - let len = >::try_from(length) - .expect("invalid jsize, in jsize => usize conversation"); - let mut vec = Vec::with_capacity(len); - for i in 0..length { - let jbarray: jbyteArray = env.get_object_array_element(input, i).unwrap().cast(); - let barray = env.convert_byte_array(jbarray).expect("Couldn't read byte array input"); - vec.push(Fr::read(barray.as_ref()).unwrap()) + // Input should be a multiple of 32-be-bytes. + let inp = env.convert_byte_array(input).expect("Cannot convert jbyteArray to rust array"); + let len = inp.len(); + if len % 32 != 0 { + env.throw_new("java/lang/IllegalArgumentException", "Invalid input length. Should be a multiple of 32-bytes.") + .expect("Failed to throw exception"); + return std::ptr::null_mut(); // Return null pointer to indicate an error + } + let n_scalars = len / 32; + if n_scalars > 256 { + env.throw_new("java/lang/IllegalArgumentException", "Invalid input length. Should be at most 256 elements of 32-bytes.") + .expect("Failed to throw exception"); + return std::ptr::null_mut(); // Return null pointer to indicate an error + } + + // Each 32-be-bytes are interpreted as field elements. + let mut scalars: Vec = Vec::with_capacity(n_scalars); + for b in inp.chunks(32) { + scalars.push(Fr::from_be_bytes_mod_order(b)); } + + // Committing all values at once. + let bases = CRS::new(n_scalars, PEDERSEN_SEED); + let commit = multi_scalar_mul(&bases.G, &scalars); - let poly = LagrangeBasis::new(vec); - let crs = CRS::new(256, PEDERSEN_SEED); - let result = crs.commit_lagrange_poly(&poly); - let mut result_bytes = [0u8; 128]; - result.write(result_bytes.as_mut()).unwrap(); - let javaarray = env.byte_array_from_slice(&result_bytes).expect("Couldn't convert to byte array"); - return javaarray; + // Serializing via x/y in projective coordinates, to int and to scalars. + let scalar = group_to_field(&commit); + let mut scalar_bytes = [0u8; 32]; + scalar.serialize(&mut scalar_bytes[..]).expect("could not serialise Fr into a 32 byte array"); + scalar_bytes.reverse(); + + return env.byte_array_from_slice(&scalar_bytes).expect("Couldn't convert to byte array"); } -#[cfg(test)] -mod tests { - use std::ops::Deref; - - use ark_ff::biginteger::BigInteger256; - use ark_ff::ToBytes; - use bandersnatch::Fr; - use hex; - use jni::{InitArgsBuilder, JavaVM}; - - use crate::Java_org_hyperledger_besu_nativelib_ipamultipoint_LibIpaMultipoint_commit; - - #[test] - fn commit_multiproof_lagrange() { - let f1_from_repr = Fr::from(BigInteger256([ - 0xc81265fb4130fe0c, - 0xb308836c14e22279, - 0x699e887f96bff372, - 0x84ecc7e76c11ad, - ])); - - let mut f1_bytes = [0u8; 32]; - f1_from_repr.write(f1_bytes.as_mut()).unwrap(); - - let jvm_args = InitArgsBuilder::default().build().unwrap(); - let jvm = JavaVM::new(jvm_args).unwrap(); - let guard = jvm.attach_current_thread().unwrap(); - let env = guard.deref(); - let class = env.find_class("java/lang/String").unwrap(); - let jarray = env.byte_array_from_slice(&f1_bytes).unwrap(); - let objarray = env.new_object_array(4, "java/lang/byte[]", jarray).unwrap(); - env.set_object_array_element(objarray, 1, jarray).expect("cannot set input"); - env.set_object_array_element(objarray, 2, jarray).expect("cannot set input"); - env.set_object_array_element(objarray, 3, jarray).expect("cannot set input"); - let result = Java_org_hyperledger_besu_nativelib_ipamultipoint_LibIpaMultipoint_commit(*env, class, objarray); - let result_u8 = env.convert_byte_array(result).unwrap(); - assert_eq!("0fc066481fb30a138938dc749fa3608fc840386671d3ee355d778ed4e1843117a73b5363f846b850a958dab228d6c181f6e2c1035dad9b3b47c4d4bbe4b8671adc36f4edb34ac17a093f1c183f00f6e4863a2b38a7470edd1739cc1fdbc6541bc3b7896389a3fe5f59cdefe3ac2f8ae89101c227395d6fc7bca05f138683e204", hex::encode(result_u8)); - } - #[test] - fn commit_multiproof_lagrange_known_input() { - let mut vec = Vec::with_capacity(len); - vec.insert(2, Fr::read(hex::decode("")).unwrap()); - for i in 0..length { - let jbarray: jbyteArray = env.get_object_array_element(input, i).unwrap().cast(); - let barray = env.convert_byte_array(jbarray).expect("Couldn't read byte array input"); - vec.push(Fr::read(barray.as_ref()).unwrap()) - } - - let poly = LagrangeBasis::new(vec); - let crs = CRS::new(256, PEDERSEN_SEED); - let result = crs.commit_lagrange_poly(&poly); - let mut result_bytes = [0u8; 128]; - result.write(result_bytes.as_mut()).unwrap(); - assert_eq!("0fc066481fb30a138938dc749fa3608fc840386671d3ee355d778ed4e1843117a73b5363f846b850a958dab228d6c181f6e2c1035dad9b3b47c4d4bbe4b8671adc36f4edb34ac17a093f1c183f00f6e4863a2b38a7470edd1739cc1fdbc6541bc3b7896389a3fe5f59cdefe3ac2f8ae89101c227395d6fc7bca05f138683e204", hex::encode(result_u8)); +/// Commit_root receives a list of 32 byte scalars and returns a 32 byte commitment.to_bytes() +/// This is ported from rust-verkle. +#[no_mangle] +pub extern "system" fn Java_org_hyperledger_besu_nativelib_ipamultipoint_LibIpaMultipoint_commit_root(env: JNIEnv, + _class: JClass<'_>, + input: jbyteArray) + -> jbyteArray { + // Input should be a multiple of 32-be-bytes. + let inp = env.convert_byte_array(input).expect("Cannot convert jbyteArray to rust array"); + let len = inp.len(); + if len % 32 != 0 { + env.throw_new("java/lang/IllegalArgumentException", "Invalid input length. Should be a multiple of 32-bytes.") + .expect("Failed to throw exception"); + return std::ptr::null_mut(); // Return null pointer to indicate an error + } + let n_scalars = len / 32; + if n_scalars > 256 { + env.throw_new("java/lang/IllegalArgumentException", "Invalid input length. Should be at most 256 elements of 32-bytes.") + .expect("Failed to throw exception"); + return std::ptr::null_mut(); // Return null pointer to indicate an error + } + + // Each 32-be-bytes are interpreted as field elements. + let mut scalars: Vec = Vec::with_capacity(n_scalars); + for b in inp.chunks(32) { + scalars.push(Fr::from_be_bytes_mod_order(b)); } + + // Committing all values at once. + let bases = CRS::new(n_scalars, PEDERSEN_SEED); + let commit = multi_scalar_mul(&bases.G, &scalars); + + // Serializing using first affine coordinate + let commit_bytes = commit.to_bytes(); + + return env.byte_array_from_slice(&commit_bytes).expect("Couldn't convert to byte array"); } + + +// Note: This is a 2 to 1 map, but the two preimages are identified to be the same +// TODO: Create a document showing that this poses no problems +pub(crate)fn group_to_field(point: &Element) -> Fr { + let base_field = point.map_to_field(); + let mut bytes = [0u8; 32]; + base_field + .serialize(&mut bytes[..]) + .expect("could not serialise point into a 32 byte array"); + Fr::from_le_bytes_mod_order(&bytes) +} \ No newline at end of file diff --git a/ipa-multipoint/src/main/java/org/hyperledger/besu/nativelib/ipamultipoint/LibIpaMultipoint.java b/ipa-multipoint/src/main/java/org/hyperledger/besu/nativelib/ipamultipoint/LibIpaMultipoint.java index 179a1f84..a234f13d 100644 --- a/ipa-multipoint/src/main/java/org/hyperledger/besu/nativelib/ipamultipoint/LibIpaMultipoint.java +++ b/ipa-multipoint/src/main/java/org/hyperledger/besu/nativelib/ipamultipoint/LibIpaMultipoint.java @@ -44,10 +44,24 @@ public class LibIpaMultipoint { } /** - * Evaluates a polynomial of degree 3 (uniquely defined by 4 values) at a specific point on the curve. + * Evaluates a polynomial of degree 255 (uniquely defined by 256 values) at a specific point on the curve. - * @param input polynomial elements - * @return the coordinates of the projection of the polynomial on the curve + * @param input [Fr,Fr,Fr...] + * @return group_to_field(commitment) */ - public static native byte[] commit(byte[][] input); + public static native byte[] commit(byte[] input); + + /** + * Evaluates a polynomial of degree 255 (uniquely defined by 256 values) at a specific point on the curve. + * @param input [Fr,Fr,Fr...] + * @return commitment.to_bytes() + */ + public static native byte[] commit_root(byte[] input); + + /** + * Pedersen hash as specified in https://notes.ethereum.org/@vbuterin/verkle_tree_eip + * @param input Expects 64byte value as input encoded as byte[] e.g. "0x000..." <-> [48,48,48...] (48 is 0 in ASCII) + * @return 32bytes as byte[] "0x000..." <-> [48,48,48...] (48 is 0 in ASCII) + */ + public static native byte[] pedersenHash(byte[] input); } diff --git a/ipa-multipoint/src/test/java/org/hyperledger/besu/nativelib/ipa_multipoint/LibIpaMultipointTest.java b/ipa-multipoint/src/test/java/org/hyperledger/besu/nativelib/ipa_multipoint/LibIpaMultipointTest.java index ec2719a8..1af19fa0 100644 --- a/ipa-multipoint/src/test/java/org/hyperledger/besu/nativelib/ipa_multipoint/LibIpaMultipointTest.java +++ b/ipa-multipoint/src/test/java/org/hyperledger/besu/nativelib/ipa_multipoint/LibIpaMultipointTest.java @@ -15,33 +15,56 @@ */ package org.hyperledger.besu.nativelib.ipa_multipoint; +import org.junit.jupiter.api.Test; +import static org.assertj.core.api.Assertions.*; + import org.apache.tuweni.bytes.Bytes; +import org.apache.tuweni.bytes.Bytes32; import org.hyperledger.besu.nativelib.ipamultipoint.LibIpaMultipoint; -import org.junit.Test; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +public class LibIpaMultipointTest { -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + @Test + public void testCallLibrary() { + Bytes32 input = Bytes32.fromHexString("0x0cfe0000"); + Bytes32 result = Bytes32.wrap(LibIpaMultipoint.commit(input.toArray())); + Bytes32 expected = Bytes32.fromHexString("0x11169fb6b9dab0b5984ce0b02c9f2c9a3a5adf6f9a95b597bca42ac2a8d8e89f"); + assertThat(result).isEqualTo(expected); + } -public class LibIpaMultipointTest { + @Test + public void testCallLibraryWithManyElements() { + Bytes32 element = Bytes32.fromHexString("0x0cfe3041fb6512c87922e2146c8308b372f3bf967f889e69ad116ce7c7ec00"); + Bytes32[] arr = new Bytes32[128]; + for (int i = 0; i < 128; i++) { + arr[i] = element; + } + Bytes input = Bytes.concatenate(arr); + Bytes32 result = Bytes32.wrap(LibIpaMultipoint.commit(input.toArray())); + Bytes32 expected = Bytes32.fromHexString("0x1b8a1c8c25323f9a58d9221b521f9618e78bb253866de6a3d1c16398678dfa26"); + assertThat(result).isEqualTo(expected); + } - @Test - public void testCallLibrary() { - Bytes input = Bytes.fromHexString("0x0cfe3041fb6512c87922e2146c8308b372f3bf967f889e69ad116ce7c7ec840cfe3041fb6512c87922e2146c8308b372f3bf967f889e69ad116ce7c7ec840cfe3041fb6512c87922e2146c8308b372f3bf967f889e69ad116ce7c7ec840cfe3041fb6512c87922e2146c8308b372f3bf967f889e69ad116ce7c7ec84"); - byte[] result = LibIpaMultipoint.commit(new byte[][]{input.toArrayUnsafe(), input.toArrayUnsafe(), input.toArrayUnsafe(), input.toArrayUnsafe()}); - assertThat(Bytes.wrap(result)).isEqualTo(Bytes.fromHexString("0xc70a1e0077e1fff6702f2bde0cccf1bf5915d4c5ab73c33ea5e75b6f703d2346aa7aa373cd07fdf684282c11a7f7623b6e67d2b65862ca0011e2415726c87415d07ada26afff5e6be8066c57228e78399cb3af7490f4de739eef0191907eca0d9ba47aec3457f0fab28324061ec27508e29b067acb3a97fbb43dea61a376f73b")); - } + @Test + public void testCallLibraryWithMaxElements() { + Bytes32 element = Bytes32.fromHexString("0xd36f20567f74f607d9252186ff8efed04de4578d1ddb3de4fe6c5e4249e0045b"); + Bytes32[] arr = new Bytes32[256]; + for (int i = 0; i < 256; i++) { + arr[i] = element; + } + Bytes input = Bytes.concatenate(arr); + Bytes32 result = Bytes32.wrap(LibIpaMultipoint.commit(input.toArray())); + Bytes32 expected = Bytes32.fromHexString("0x069e4460d5dd6b48cfcb0a3338a84bc6e38fe686c9d9035017570c3fa10471d6"); + assertThat(result).isEqualTo(expected); + } - @Test - public void testCallLibraryWithManyElements() { - Bytes input = Bytes.fromHexString("0x0cfe3041fb6512c87922e2146c8308b372f3bf967f889e69ad116ce7c7ec840cfe3041fb6512c87922e2146c8308b372f3bf967f889e69ad116ce7c7ec840cfe3041fb6512c87922e2146c8308b372f3bf967f889e69ad116ce7c7ec840cfe3041fb6512c87922e2146c8308b372f3bf967f889e69ad116ce7c7ec84"); - List params = new ArrayList<>(); - for (int i = 0 ; i < 128; i++) { - params.add(input.toArrayUnsafe()); + @Test + public void testCallLibraryPedersenHash() { + // Example of passing address and trieIndex to pedersenHash. + Bytes32 address = Bytes32.fromHexString("0xed3f9549040250ec5cdef31947e5213edee80ad2d5bba35c9e48246c5d9213d6"); + Bytes32 trieIndex = Bytes32.fromHexString("0x1C4C6CE0115457AC1AB82968749EB86ED2D984743D609647AE88299989F91271"); + byte[] total = Bytes.wrap(address, trieIndex).toArray(); + Bytes result = Bytes.of(LibIpaMultipoint.pedersenHash(total)); + assertThat(result).isEqualTo(Bytes32.fromHexString("0x2e50716b7d8c6d13d6005ea248f63f5a11ed63318cad38010f4bcb9a9c2e8b43")); } - byte[] result = LibIpaMultipoint.commit(params.toArray(new byte[][]{})); - assertThat(Bytes.wrap(result)).isEqualTo(Bytes.fromHexString("0x2754861a27f6a3c497d191a659c5969c079d48b24b14e51fdf4a547c6212730871be4e9e05ca94c3a59765e698ea27a6ce5e8ebaaff5ee4b4d692933689bad5980af30ba045d8817819133fa2dbe1a287275b5e95929e0bd3aedacc39759aa57bd8c8b67fb06a45e661923f3d003cc523ce9bec2cee009bbaa30b46216b1d76f")); - } } diff --git a/ipa-multipoint/src/test/java/org/hyperledger/besu/nativelib/ipa_multipoint/PedersenCommitmentTest.java b/ipa-multipoint/src/test/java/org/hyperledger/besu/nativelib/ipa_multipoint/PedersenCommitmentTest.java new file mode 100644 index 00000000..9177cd7b --- /dev/null +++ b/ipa-multipoint/src/test/java/org/hyperledger/besu/nativelib/ipa_multipoint/PedersenCommitmentTest.java @@ -0,0 +1,47 @@ +package org.hyperledger.besu.nativelib.ipa_multipoint; + +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import static org.assertj.core.api.Assertions.*; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.tuweni.bytes.Bytes; +import org.apache.tuweni.bytes.Bytes32; +import org.hyperledger.besu.nativelib.ipamultipoint.LibIpaMultipoint; + +import java.io.IOException; +import java.io.InputStream; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; + + +public class PedersenCommitmentTest { + private static final ObjectMapper objectMapper = new ObjectMapper(); + + public static List JsonData() throws IOException { + InputStream inputStream = PedersenCommitmentTest.class.getResourceAsStream("/pedersen_commitment_test.json"); + return objectMapper.readValue(inputStream, new TypeReference>() {}); + } + + static class TestData { + public ArrayList frs; + public String commitment; + } + + @ParameterizedTest + @MethodSource("JsonData") + public void TestPolynomialCommitments(TestData testData) { + List FrBytes = new ArrayList<>(); + for (int i = 0 ; i < 256; i++ ) { + BigInteger decimalBigInt = new BigInteger(testData.frs.get(i)); + FrBytes.add(Bytes32.leftPad(Bytes.wrap(decimalBigInt.toByteArray()))); + } + byte[] input = Bytes.concatenate(FrBytes).toArray(); + BigInteger result = Bytes32.wrap(LibIpaMultipoint.commit(input)).toBigInteger(); + BigInteger expected = new BigInteger(testData.commitment); + assertThat(result).isEqualTo(expected); + } +} \ No newline at end of file diff --git a/ipa-multipoint/src/test/resources/pedersen_commitment_test.json b/ipa-multipoint/src/test/resources/pedersen_commitment_test.json new file mode 100644 index 00000000..660885c1 --- /dev/null +++ b/ipa-multipoint/src/test/resources/pedersen_commitment_test.json @@ -0,0 +1,2612 @@ +[ + { + "frs": [ + "12893195647771395811699951507158597214664424940649011701135597074831545065572", + "5142893599542602373656276295216018895715173401140617021336262693592841454997", + "10048101194046039788700061051360312084066913886790839268685488738138501072290", + "6509159510107270410132488689623076603937787145758952532530957976566979018526", + "4218053922264434878286145096031859410428699791450539652914904444536342603519", + "4817885337192536893580889994105033948635916945479522974997443371870775265442", + "12700774640826926729587945194211829796659702819105459444735987744642569635384", + "2534416989521419140159001527386194742160256148836559716980495154971236022043", + "3304812000722692897480960646343280555534662124534976778427326500030581681505", + "2478089886800690920121122258054428150769531086857935920347336656096683944845", + "9828097927585441660142229037709758538733842192166418960799237542646179037265", + "3241371844911415182089157490625179118983522171662845555522917913284987298000", + "1062333266298549602090306593985318566026393430146752550329004973107327833352", + "12714576994066485926971194792572386807833497396652673310309738998621768561285", + "7558913088233756777353502110945757302504103378904059002924396308299974406133", + "12501558037310443769038329214990943122261476531521805519107865257048059430148", + "3165981467430116453082267551349272590759429776292516484810031836529507242581", + "2142082662641343642939009140506036856039246715475067461215149105927597401892", + "925456255267296432478333337100084771468314495304472665047432148702150970710", + "1127251552775428898363136209812974188204900794254560344244021893876264636608", + "10921797792765040804533604613913154605868859382644859563711733544225837678321", + "8098444634516585233849884795465908361049134611938340564030810461423319757546", + "6593284649264747654202052745463168832684165516019671616833940675413470357016", + "10604233578716236184362088385036501552566706533555913238087019691942897760838", + "8962834564480178766042346704302816762727591620596928729375080033409273340897", + "4771642822527689112704476319586512148608885496718154787136974526312955120523", + "2478385689119821839610584127534018174842370687968907067371644133896019288527", + "6025472311694966559046455616632043256039461649384000945043286866192762263965", + "10266250608784947522647565411039445323146803231059027422805159352906328104868", + "6235907730003856259719396227941086027061785699970465044013871504392361711543", + "612116858301522364490715899655025758228271195134655325144276873611269249887", + "3259495993492463138514421174287186831728266915600152772006700145132854859136", + "3673444652761637186797032801221813544156525383756137010988214465626692776969", + "3076975027019252493285794773786511694893333513337058672335807039365762176212", + "690988353428436762178368834347223647961030194439924437495301179577489295174", + "12043791781075321111842298403628664924151292989358593235458333553012406281058", + "7731400279002616029632883586916506894982297346283068470698174118075543479475", + "775139800865916551447087737156451916254312526192544917583514897399560391374", + "9284791386846558668896003270192181750406558215311252015374033831837673696315", + "11814124806105136876899608047096716245060162883585694116803765671181297415115", + "7369328722076878340951398737204111779425283257150583963697815827315952950666", + "9607131043669571444949934819697789485903755583444784706246935569033627313339", + "7448758317539725722199394010513821696506542974199041026035638694742047885541", + "7545092859093966712895098789271456011024149765125278356616534817838615146606", + "11528003327435148568907248200309498627000453376245597230991931477223904757544", + "3207925479795221463160190033766581901882078228964250763652835082853006564127", + "8571449026941734423219126389635579763618813308968379888413966494668565284294", + "2298295937074310707904325527979504569269483204290517298339939441908277809392", + "2893609353469276052874154456630317669447446965145559147817995390784747403216", + "10208589773135987542025251179995733364231885661841171814121123209889014816454", + "495595853636198473891240431477578369268691492870546657677233118996051796433", + "6648876838709302339235953881001034615263121071527881082427505518177976692090", + "4062095126700285562231632937600756417132543464250825955718609536964182966229", + "6648988747251564304799476943415503767374210412840488050165085408376554810052", + "105555890227947207822644285106117369504152076268097537656151278222841301194", + "4818876792357084487652326970106812678989415825727298510464329617820340683807", + "630779252513776744411742339134786858975766299811507422820426388775797741641", + "11790660158815036407884782192902339430951233822144595239158692402791189310049", + "11965786243798576882659005071678279269792476263485041180425270548545549253394", + "5649263656410270722628341096390262310846253529625745369956844629913631331964", + "1373632191161871206608337810269760575293720592467573027169294061520192547850", + "12129385601134305178259675047870088638962986645172775804428600150072116185454", + "11929480785616132939580013994734953008659995851057940458562168038198074971376", + "8424109577428777900230434526000878271007719683351852161419937977051056223530", + "7758475447477476885389995074382663657052272046038051747790285199823031079154", + "1095115031232314628307869391065481441306356929395536930828484236421581998652", + "178313000239857334602958170493254209075423932459699097650735468632139790539", + "2615664929164580051178469727994556739525393827966638658586157541100119720105", + "3655424487281269794049074460188229858440315999714111045721337041072974565082", + "11716052722444739157787802428887445492765040459893466324851288450093974386176", + "10879675263593203986989027294810816458278702874571667477331092131209475755416", + "10213806970250721088128709897653787262479673908915814068563866387043368875164", + "376473206716129645561904362317168634000218489046423827839032112113660319053", + "6194493399388413958663174240231631530665825348853745027769775899736328461359", + "1085535531643665998972042737410563284412495604048207224179326548152684822893", + "10097999270273940853723901428239656303168718474554600461294936164141294149438", + "847784203483471375211102341856117193032743549174237334127471078119401385807", + "551440257124708632902528020602666621459551822536995974294014236599229611717", + "12109851686213956031084059394971548575636092399406327141738252645406130450959", + "5295724305650384480205444705604211851527309498148859821577183377310181674423", + "4978571665403312025495328099911400440922191031144885944265530500893560948007", + "824725323721817913939170586375369547494180380208364712600109528432393285177", + "1865395059492746087167306204392867309838745567657044175263096026670471958450", + "5874576885018377378147580102863128112427196300059612986304503232530437122596", + "10996789905734791278472424036201917701758677907986857595209625143920179376799", + "1595495883866010171892680264483576192768151041471171359488689338713141409196", + "4925796656902162339049917635040650131371092712252256984014122886295059783175", + "12771693623569060051131837436030710650128044133573525470005256391754666531855", + "10559352180534714773503166076143995328689140021187988791053459391443863730378", + "5667153345142145123816794086377435713392506244788911089399000753852228769425", + "8869446350189957447868019506697707759591026465213600247423473212325918137373", + "3298147973125497812185968665538750915085914277774105467708569373003079354381", + "9975141340590245216475820268474706992737007931926580944899892629707244420336", + "2726789665470532072508778000899100027612904062097750876332859434735345170851", + "12069527890891509040341672515538690594082874369350405764049757958533932059986", + "12016660719461473465346151699819234720674051138730565486213087115041778185275", + "6981207727477659210570391427969816160537371284926742756808424543663822141169", + "252599447203073057830026987976812417015879592586698341973725978864387207428", + "4886431872879575351387612502424906852307216021832616094534026554076316085805", + "8658997355167539490013230593634206532697635000677267075920776436033811879757", + "7759769781831338040038546848167157404250245296663802715444752322548171990274", + "11794943548503239236579124424486426925598614545312792527120257495424176859766", + "2227990407990851442477979559491292057640328341815678970447482856480462233389", + "6823103280365076970289738824259537829146588992823500720237332796416287704891", + "3460133463093550925311032364028108462797868705547538173351886512985481176621", + "8716337357652589018988750305453022933395054276808687725159303594031939811382", + "2406986096350514154236626182144110983374107062976051385765313020057098483735", + "4985713772484370128698291891352540150752085760582916977720466129806222041869", + "1876818268338883908856580364258065021602010204057089182017139713059776055376", + "6052748124749229711322974848791665055859884423244342988352466108830475996108", + "5690002874843559865120779195879211489968838048101834176429286840804779411054", + "10681351940386210815927388550897189128774483950028494375932438116001626429239", + "4632505077722959386674412482688807862624163597066370466890539594175294037530", + "4190891699024793387363139429929871828736730227832403360650056572003158298826", + "861037143430103903184386903752016763240430626003714630326841095893855530256", + "3141430126117628750873149856126629228764806846971209927136891197471768173917", + "10329376531283211355831147833589450749877893499072253128409229473840017886335", + "6012460377296426093764031205806432489808130880690421318636329755728625265328", + "2669966201493100929034156458594552525306350493835487039003069289797059935547", + "4032035953130457081718628194103023632388738238498959863832145281409726366991", + "10677706130816553889295598572238715224483338382515259956525640574795604987249", + "9087179921800376353156188894118672661789229053025726527215340306181594663332", + "1468793628960226270207628914229194472827548429490794906146279822347010144530", + "4791052467982635585873611348335651344925801780579054187630784235193765503588", + "6179291870442163311401545410374816798689314231111054022746959210802485383325", + "7526291875120042401672830941045250120070706222004673155349147231240591129669", + "9703432289069447826416159229231447217314727256467220404438459931321733332755", + "5594526833535306793619953336726740851776732252150658602333695729463725459462", + "11387240776034245134402974622400960571978926242035975186507280669153896707660", + "10073032863927102305748720114882677146795454146666114362265061834239649566707", + "1181463268797474897189014417767839467943706934897445034616213829858989760221", + "2663266948892654009683421543378737563256674130930921007071514838898134756492", + "591882454457225148120943371021209442968675165838446785871247376076106291352", + "4791601180653222798208552183749255017690476268856925593451038178617633635316", + "10379088491724349261203945928397958972018966881368907934325304568888896558507", + "5991285097569225767598372079137898706665590459942213056783224523878324116798", + "12181800895618019443997899859750515139672034790952599670614806326427326139422", + "10833773759098230683826371839216153281958674594878927447237809107313339083369", + "2163194942043968452281703777926885076906685292330126717418178794569707962805", + "269001527075956785597351116486504633122631501194068203301233059953243025174", + "10345762692176877988811147167805166887613624223074255736609423401167948503496", + "5621121385239827876783958432026292682643186899449774231729807079182582404010", + "3447047451657964023981872090138908017744282231640313215526377285278731966574", + "6355675393301155669388623646033476721400726573784531682470484092814173525247", + "9334428616180239709987251414053482958294608649698100976952097096291118118895", + "7080810346674310690687664532944266872439993463974059252702796827738184738938", + "433508495432114922623032678990781653351661203568943508828163123722308574169", + "710019160965897429786386925315383527601229388101106808036579246212177196364", + "8557994119737131196738989510813527965705994021856533905584965316935202385088", + "2601211281616545340483137825464905754683648840178969506632282102995897141401", + "1309358461127391426287557026960633950769107208212639288784341767679811612013", + "59036085993653680649285433813967196296438980949366223408505657181832709261", + "6992359991434060223874553903672890915518460464852732478524273173624028375670", + "5086386733328529668588799481549834659406691915771006913052425103689280671276", + "1838800330959591476644039528315936115901075754882361417661136097900103656856", + "11859489907713976885558048934319440335243190910345224912090665350857376566062", + "3377853042833471716203056877374016255631909785168156735872984714602647229337", + "5865067691600984662210413809588840494501984309383083251748913936732062916244", + "9761965154258695179624858222923976371545887868556365242900857860952535604894", + "7550997060083038893400677517236257865651792410523965462096508419851276913774", + "11799587414996511540838404998866661325587933706028037210168836909813885002909", + "8032697420899905903685794096481816123549625891161978232094800126965398351741", + "10427746899987934764462037877275713388711565722657100927619900991669437335276", + "6906617276312541695258091343393673011770862193316073684482138998827015057858", + "5128770914619751144989329481477467147678360480104447378973376755243269369681", + "8678719333253475497805926330058206180512030638518436823862296204066137541719", + "8792866345531677858042900394265358983712931605414923044576101776488324109045", + "11088119744983289594014645071733850074285234961531085687906202877203492487890", + "3921449148427966517283852703455465735985749514481516438008990422864932066309", + "8212939283835062658746320304015441799660256633124632034790228491490352339297", + "1056259386525318012537646239845993156502635540020524466393463213114411453957", + "2400938680838865967929099223324261504235176461491033357964486233635044270198", + "7793056478596084806971806564904706279280648903340669004996360802229971999005", + "9301659020477747128572506231771595902245640659201326287249444363280602498220", + "2263293871001176430869803898932156614004067643815357449045313006430809654157", + "1668583508936133240053463442199848723046705125505002711688240108574218817588", + "4116076749934532818921323405588059629059232279566058746979738750809607499896", + "13034507765398801709342084758317328619559855889950007187295332799882649422241", + "8759245142403383315445120931975751624770674169379493394045239547372390608071", + "5497403571604911036037039339513445017149147081901323110869500241848280702996", + "12503358617856597894819764793078068674349493799522464006347850571006332170919", + "2583155300024336428634579997980932690926732811831380480069680874093141810095", + "3302022453555717855098318801552189032341303365226507057839920095951853371687", + "11578278039705323281362142428002645981210753537226151635790245206292153852065", + "12504957320236202700576805432265863887677265244103402827924485325206970183419", + "8997682435786879914260206834106538481923118404692453293412957808015317990559", + "4923395920238807519222600798826531687091886809917013648773879998604735545758", + "1660844223072508345059429683662239697630024802639486820446633597702380490033", + "7981622788109261446933210940568718083851188077839800242090552025542705900884", + "7189893530435398038910028009636989542321504863136439481503224508446498842102", + "3221700091970515856812454441410898261324997100716933068442833202799609412905", + "6517686250318150440180035075189077184390561645806828359237474587280376729462", + "2198649419912555203011289393515559722135022150353165480770625055423791366435", + "9391988466230835862492237402211159181673409805965358463330979863871060241454", + "54077479904616123751888034012806765062757150009868514300113283299904410536", + "12807992404193845605230668867243136664071961646085608259863328399018536256685", + "5662932143939320864669662399009331541419545654158293093744622569494918396345", + "949162313338583599199902230521935167350474442118051849852937669624334347063", + "11404816329996663905342685195398360056647173276478133362387792862574665008206", + "8070763012419623985965228112113022712274227370293351190218403258221435435965", + "4130486753315632168676893650945946181843390335979106316400995213849037039111", + "3636799658641135698015610685999335447019960243627676431996330054969204581303", + "118344527005580179353272608992055854664385573792762008884255719910562283454", + "3685351746799011852939919845647315370819798850219080359828917097263580229224", + "3950699656715692095978490958575769708509159460595940013830702074628548798932", + "3992011732808029758210123126030959676638328364014564318101521222986038766085", + "1355387764771468311388578594957067138841307871004513964982353312498752489869", + "1052288711192044874792617644171422116331002581478428446222990111989697635869", + "12116446032378430703134323327521668750787927465213287050364206628892195989988", + "2517753617599794067336839668861353071751867692385526566350587617409615463469", + "1386739251405679131302581436759161759324701954900357896153902979080114524234", + "535380515302816115163757670687019041270400451924313813872172698127700156657", + "7070069800748719139501415211328901843445688725949465160213270951038362337316", + "2161438559771183099302244999576622640789119978607033314793897583598655811691", + "4654161866463046590781885676800930690933766966683292851199271780489401166052", + "12405827469050559122045906574103388388432562997193911179428964065906051153522", + "8645697982318671985230083008457491032232580476165334017852924517027817008538", + "5716558069438635962514961909564238785488187026323524964890895621795139829265", + "3776773138502650329164757120752585493597905564074402326505612943737890168883", + "10926029816104879443747282989274877429103129665371471462902056607290480887463", + "10678716738730598829113102363348476559037593338521229646915698163432379729498", + "742293736007574358590677634385215456166399361635438167476166930766363405788", + "10966812976710031171847774864315137532395221648141708078017055294757598337671", + "5931427360839524080497595423104983752443692867958086203063292709149412412860", + "1688200970083949688472322472248562377202822861373198194362457115366394920848", + "9917612172105853897038486505886676756599648408247857141183628150964064431966", + "3939385480314019506390246318419648176417942793909561632552348934311125055351", + "6016255772532193691077824716633961621947200302415470181661215362617417731968", + "5364536500523317548696767614260780911727703270914525837219283661348332731520", + "9564920704249742558018598671051464722117763307852916363051827255050567345493", + "8760876194952856851942489734410756666148609075683803871316886407538029439393", + "9193729436206516005737023782521713027774747781639133297314249131754515792678", + "8804649572000875419477032731397920581014146631485981628608332551860221483525", + "3223289071079869798174888188342828503877705479386280952107874617450911888214", + "6210792609934244514917782634709654573352417717872622791219474359884122001176", + "9798010429392953548594993125866386198593362661738917378910808625623680549695", + "605779152454430965742009275844806024859748953043104095998453723611548248084", + "10299387883185059938283925914129936190848891199038823673008642941541114751931", + "3469645677755284010576379227827407247311285333483040185037697366983097848867", + "5863880927799432778741395474776159114655592947489204611995482295449318532178", + "9512979383107784185496953564859933633177324095103842615132411371077978460901", + "8266312367043564362025273785794346200181849484675448696234488433816874700541", + "10276236826187760441970624202119203620307504894628729446845667809499003394916", + "3669098697446307105385902301413490915057429070465850970676508289877075591886", + "11134505087876633339792985145310623960229660303407506559571483806911419440640", + "12285342242793569309512519218917106123731002865156212611250050527256426638690", + "10313997805418783675870735735099063385886627863713525166465369645504882746949", + "1631650841536378612009004165152533520263308480484449782757612897814490075715", + "2833929667698944878074779360653080731131297180120035741034949873655964519083", + "8852444073191111608825766121112054840146085090164508725905219182461101198905", + "7165041649933975380698490911160539637620512426099238482538991209566309623001", + "7572385432460729226725887206592819985242729179522351603172298555208961301676", + "1030804535252827326300304649397384165705239982539462285208069329069347166247", + "1067374208043299012338186030851351165738190928328533758641941931072452821680", + "9740067923900993470991413046663740497215828394772030063984135614467471441719", + "423280507774398882865995446233766231985025391423683323655050630435229339773" + ], + "commitment": "343631063500037180255649641649246034875911403994963956300854482492129364803" + }, + { + "frs": [ + "9613627207549981539687357924784011600557627436185818450782443970557447479246", + "7498662685818021131838228302984100477385770769630453962406057561596593462465", + "12426464511360893314765315422267138596478059353555057740584038686773773087196", + "5353326049343329109309365655493013267518026952713101341863458994917540922246", + "8623066220859106179175037808674446233856670677163725218211134494767184069411", + "7310054970041318791133647658098641018545902828891157145824755959100325474308", + "7377333618000634757840518327619190049430686339261513613150172485398907852936", + "3217260963909006366486183596911844315050465577645077417643926455397930255362", + "8875481480295188672468596398463511079964276576989612378478350050105411496767", + "5114116177399689083374877054004696195815244038072865724415184861351861899867", + "10879101905041342249316981288343589567074468965601045853253169088617055437457", + "7908205040426922627820280570142184616868510602333342008661196969833663319124", + "11932607163553697528117712730836357115072888162131597623382822472572113729913", + "3087335267787177384797262347086666176800292746003095760704210763812157617766", + "4220023684899154815322861526793367174528925463141677769170814753568665857610", + "4454077636102250838465750012496476609468887705121787529807904574338409061506", + "4678645259181417394851079873899404340145278722552252766529380923315481136653", + "8520785436061021981263401631174249484136816335487687394010557762169133782943", + "7885649869963817590249176725824886729923421516326546613762222111752501861538", + "6466114136432565716351515359898532725719276412087119204729090384199199676238", + "3610550483704651844552050442252094278410991119363999415991818767809601338610", + "1108001202638886809708158038764868919833157698101438830902089169658141387963", + "4621540245394737061960003088472833037288230871336189434428777201365648317062", + "12191623192617473702553588480153115710695109728127619107046899903293030969302", + "1669545345651020487743765134352466262926841854916683147823118490999965388583", + "2271953124018751342927175572992716658486114166845497841636475201972089408778", + "2139773304862839767995330107889921358101056947530039506453150340864274777491", + "2487920290178629956781764647510438411509026794299469269521641785404261147657", + "2550390553092927551224342655906696377389138391890519003499619400179814904620", + "1989235098516305935038949898955560122571883265999008697496589132415751561193", + "1972266282378674574799832317183895266512239113693803242017762404963617759396", + "691200960032601265368114501201375712182370529802003311216289650622341898083", + "4363974214700617615198794491106651380850837955183669995564384006678192234798", + "10500921837862107357768440894997240192937093364700609050757830004586540716686", + "981174915815169963154404534513644467165498925912665797744101287562215760936", + "9355960718479141714403662673174978958118983533645325388173999433840094850304", + "5721778373150183351043596680020811724281379562160835657215627604992063170632", + "4731775632329110255842314302236805562293687132515706082451358138790226793597", + "11680781357652806942658903442189468010782637440904142920607779689225436385856", + "10503464792340154708881657534036469769971844587586711756720382882338978001309", + "4331899174171209679026986564501241633651120233133157931248437927521906969271", + "8852288951104270923452880900895976932689436811166305306631835696970305398554", + "870102858588346269577430266463807604871638087880594020049281650479089346578", + "10677261171893431718693507037097879552922272295200039966335980358082573972471", + "6886710808886891570638458670223445578076371313640887693177051323240247146640", + "10867600230758331810862235288517088654554508405652485793631090353098785038505", + "3113064308067686123880534659449828615388221420480909750238176275383615764380", + "10310826717511222567698262831062226457554331366005747415943234479119188109000", + "1085562235369855393583961228424363091375037170872737367969732433404978004672", + "13063964609901149480243358016609567948016089705551348558813173726260763700878", + "8126391824918371057217258234665953470935666799134522203024104555605965557646", + "2408275782435444430763814308877269113404537304905333845867262982418207824309", + "12626559278612627069155249907375415303494934071803891615891863182645830402231", + "2008311052839710048556775603801184571021161228259332843752835274801078935530", + "2340985870998356418391327874398053638316411162149719019750881025588148356081", + "12629815796624508129183766468585169586840718766581891684671857498144494903565", + "11324514913316577753061349565770255687082685339256503246358639139436066620979", + "1931570555569935313972248198258207752590037963698591585693025792926553048964", + "8810791594572470466466205126158572998953813414783301184762440565824524866365", + "889305397118406066093612287956802095152060439575024030047850812906226863040", + "2178039439258799819795621690607794757505740477748580299061332459921925997676", + "10024439646393647980515286432904857326527969787554272684832258708705588614637", + "1983782792606757379106343538226592408369654412208807485048970626102584700725", + "7336806742589660391710290209389548668697184612709528840585149239371492028674", + "11409841935107087253678154879723853201848192784511829209835978893842732177369", + "9188824699815449012758927603609176922498267403823540555213934009090993349292", + "650780102190859119096115264540220629983341251222222731182942930931378308133", + "9845704413258226472907914184764211778341469858939283613203195282883640584431", + "1244568048250162850739499494638291392797938564629902823767673585036469327877", + "1596747271819588991471079659712923330739137558158182317958483557724193672722", + "1349046772899407824422043464384493453665481905450962191765303870012616588063", + "178236639028345235492434550362076678997014989025811396281385853351155403167", + "4634936596701181878769874848070529330691899789073453911360219072632978929502", + "4858095572268546663912650135699038769175497577275840299587250693913273663659", + "12900966503261462985072674218446442219769666664939735501265491363164540326808", + "1703665272115804965631847875925650568940987560427343850788242851051332924664", + "9176614786101707075201154786537651190249107781187762797493057612430014949873", + "5845379012982250404179308251060169956263081011392085324606587309651182599958", + "11453624369641539703777925357831204591944670085052109004172742936125978520558", + "12919954936683695593967551799960415452688116372206492119398797692211869240785", + "9247770863752120025673084570379985286631688681960882617986475603534225030531", + "4174228422606257551046994130526334982060120354824160340460899678861219912978", + "2119451493554707512792881509842495509768816851600277971317724249259138979210", + "5016528861513367722794313867618493195398280058106811372299522910313515883854", + "6016404673199252113406653358864438373525041432341656725900025378109981334790", + "4615549527150075876105988889747308604500411032208222891146548389244984705431", + "11324934395998552395159162250963890967575397934226529683771660609419828914831", + "10358001960902020911582253096752111815697796360096981042527063179133092053790", + "3179586112745816159406709802380727218458519853910214976183502190772125264619", + "10448392864953646144605011722210762421666377897769034860022818027076837321885", + "12473173407465608556689473634365758682606344494526833160190650795479826928160", + "9171709314356336683064768683692196755406326358038624950413720999566100028139", + "12485826811129832965969777693121762981525258185768051825519931774194240587006", + "12971494582974094095535162928651009556075064523152345057201925793971547873864", + "11960234523739538493489661707629789596428327255527936040591849660678937378024", + "2727053777466618094315963642715438267067090372897971588966162080505800280209", + "4813125710628949472169323029871218743264230310804436742822274214176832716596", + "6596222979818294526808030124344464664965502981092017496718412189787838585259", + "2436736567710500923861520307579698578474414328648418310391075902764622657858", + "4241963030192528560719839140974526447895067937432531903303610223307732601880", + "9829054089022579191497765949339752089879623559069105566081706151665767855100", + "5740481530554575184455116221479260915974122538737397049570666059287549826259", + "12099081547558215926258771727679410872183520695474227714977175800789066367950", + "794270905608681069560308503049943417227845598498320774610389665133618247725", + "8011245599802996244156152493912885107477358111543038959727016415631373129872", + "7831258362515775469557745098265322789798748539384541099486311117930656281782", + "790019958291772069479129143540619278205621818918460699010260886855370286279", + "7356534310738967850186339938548544252077533425946609333052799406498616607749", + "2355519920106873674218802065217228098035769629195089114340837494081872326042", + "8654479980599768684333400280032445025885346142980898426398989434388623778982", + "9335154844268089338135862773905033648541071095313302888714544653274165658000", + "2245314696763890782575248045528411466654286121884275238542622949633724364711", + "6218192637533056971082214211869737376293083958492783492665099278749102716074", + "8483030767493166731400578928278471109737484906754154330496586820716402445615", + "11213088255904008468690101858876156280485207768914208335648087817016017098083", + "2420258889829083224419264972253449053833819095729455848866153272608634170102", + "1296068240533593377153437469887334874086545561419644768103044060648407748051", + "7486995516632209096990405898406043680577998842970131854237462388557737494960", + "6291730130933591027954127501616829004569689848842056823945418775082376501729", + "3705207519319775264065289098172237114204323633937057709637361769703114855554", + "7912756307022640410052562591057069420357276891899044059202039728852792036493", + "4280281159510556023552629272024752134055197383677007729050629450574443285525", + "12737937934283614471124487474680484361745159700852679827626176415648018541028", + "7884437175250554308793367670864613683408905613176314691600884989235472268542", + "1010741904544875131863306573583012397231034624811796748530124510008675593823", + "11773738056828962434346631199268680582005734830057738009986741225846422777101", + "4102363234692829581893234478819325830303300776812099699172223851472892002611", + "4658891487553092448242556929340134192362517462808458300637351475761929828788", + "5735795041293013780031192855183082587459233673732172721024311261318917728710", + "3806376488543851500220524827437541956164991775744417528243411174120246862107", + "344439638622200153947564649201793679208051434501451706564449398234406262297", + "6218198881625253197489846681658143429986173896919940410136711794577852271917", + "9731104998039476665723239998474770635200021344701704518110237169502429184377", + "2163170373687132371147808920599753906996788507521449945316693776217779634811", + "10540895644466156934376773461174944221072238445334137069000092049984161807217", + "6850895534563031964891335810253970262373063226341415809335985379154801809215", + "5639450886374574893858375128291503648138197620918375954704276331809658067172", + "869511089745587775301752968866395278147869955587695934976404474432921929511", + "7128002914537545220898002517448379411401446612936996447206004778874950128305", + "9937378749525263106816252783812541287825050065624684854266290296559472380361", + "7877717099959385349295430129789958597802912219155861894090050463284834553873", + "10027892718395359696791283475590107552085813808991180415148436946070308445177", + "5185239090917886260145530462593934136042716769565130933692408377273802933975", + "11969364912228508006709451090289827017196362967095872327199692852049924991392", + "6907203750695414654176632718064423395095774564675114007024517901277571374923", + "2517910063433222299204500164007319305724424481028209298708698424605013015314", + "12864568400645868276997949462683149779465148491140742834948017268790937203787", + "2997225506027763288563265570110496916669761323816125904125239142340446375863", + "4233862807036936913122148958524434657465333458236979823874423300417414141785", + "4258375701219478686011265745294061177004599120109301415239219999706606206671", + "9346657386125421666507073353190979990459102331327730926127945855164244519355", + "1313677388269246333426962919098757856963866848363089035575077201534317720", + "9681144471902934064856444411346348976890222683892040363398617773400457499889", + "8982029611702010386241633989975997455723557276153989586490669646138235490012", + "8833474016427983613840474319739683010119943042536957316371959943547161157084", + "10290785324904318168682410370020486414948248268401381781072051997978684479756", + "12515127071343034515516280590080762671846118004656221603204911789233992286434", + "11790470887806207241258847287162117094294004714194411538216723391436137834530", + "10557488158335988039430441490464640559161599312257240709677477418478841750071", + "3658528810836041324975556068962466633528279443826228619571319931560362831500", + "2994184910681696968216986032800675277415864078134229285891740110267238851240", + "6115392465513781804236286912634322729670548711318218024833743028417681362011", + "9713484360675055635202824021191047286931305392947828932396285118982756300192", + "9426094498126705222919208239293931749808433826242303301145452851738339382636", + "8763755294078569864777807872889482850854947865574112160981454972336505492649", + "12973509370754688085523901246667451717070214967333301086067788532612936797984", + "1044752173226915604671907369972783737966144766197465336930045731895860385422", + "563521760753084830365582206656583029423159892548976884606215831586150871253", + "10825322479086472064776974135464628557902584239513475102213101332732990022042", + "7648333105833191893165164972091281172170404166656779337871395347915980671212", + "6165353028169033472696252527501311360229393027375546675884638366746187470742", + "3568138350263262418138592001584855531679745301826753956379203193094190211960", + "9472602471876940418905589275319021056477263747803571551658129371930199688429", + "6610754436945391917421568016584946934753779574262215723658791974479281108908", + "9971955095382886407396947176559862903892599192373123012384132153104216566648", + "1588268432144708501367834075605287059855962781561075939237239281137522757471", + "635226714990162615914661326287864279610612903968039908041973405111301487862", + "1039680366968230831457850998077140108055443218922855485882828055379494239285", + "3166376691620157854786692790429266356080530567879541412365088703167099476521", + "5915789306641252088403251679678091030426304348353076161881470806997424284118", + "2002465976171794717753680695718397122208737636320834686287491037764865128152", + "1764945828051916980524949689533381309913443188502195253669262442806272496939", + "4445721615275677138232295647654366229838586328594689171232334661998794840615", + "8657476975436510042581135156334203524191320259946473041313324486602763671119", + "1156091463199916249239047513890761234651618285402812595894142476863242144262", + "1530568975230382303944372175880272254199515928064793239958700362737944577154", + "395202267496651971484237624145468457997343171769688302388946831600315661869", + "1714114565907108856526114255247840282445197138483706562974643555216490623669", + "11558286347138375999574173535614966384799021119912088524048925845018497403566", + "2099590249972550212451222144847645927043011456256568805191215156225346425559", + "6603049356477586090531506747762558325457603528662624425441579052530926519638", + "12655880749814082157412148210488596039507833489843762860820796810719231975573", + "6415647565823413291192528839929532956536794212994281894598493403033317710837", + "3961546152890878552299837198003996637455389008797974331555021677271329275998", + "11337295856964127290192645731644785275645250931419842683683719750411542283617", + "1081284460681809708908283122020577895910761128301679827244562735332920822632", + "4111824128623605534691618425770320857626064430856187636841217419844939090629", + "4396206871627869318241925615944860974969541821736222244989168393746292808589", + "3998508860422122145114922030070589717450395621523064936144872923630225503763", + "11967752484299616530845485853429339286985174758925000011250802004084800896198", + "7452916635350206011907080579060198486839151623185299321152910130796277997973", + "3452447961822375053542575321032870257071481477047641534058844674855832906521", + "6152671837127705700646767109072931776603305524923781809441914291327823044418", + "3666231719074463596116893018392728805698176201211935659755467929058732286428", + "6619522847378008102747739551226425778607804875075037628497193971974623363334", + "4718805827458948338153344287392519302869406068834041177307475194102903301201", + "6749189606816554882363594868966281787222973830896795120147739683159891187591", + "3620053919853417404424786387720135951177596602085287181517318902968717274583", + "12273167247598593721316720233719859181562609831830405069202434111118729964567", + "3823861459687191054360203174322569529133474984502206974920601729978779202552", + "3669097723810699447929352890857570842336521386832971285756922754083836243292", + "11583122510813437988219659616183282642427895503405830122704753674818703717935", + "10549311658557587803873048478180312757846459692724536891829510920382080925220", + "5287196922446399844543674577549245536957246352480239771551068772492393897516", + "3169723983162180434421779993431673710176642170437283039733801931672487396158", + "8248141537603359807344515447171797679797574602715694254462516695677719892834", + "2778391745847523168616487870773826290593802799355066505223948552775712817254", + "9657434352854657199142771395256875662831993076980245150388991234289909103402", + "5963427568475222686985077147725298621738614264211961878360375398976599802888", + "1736879395730689024226036719069952489176422334442843606533554049810009400646", + "5426629335048678263185101065200819523791030555447578255501231203460784437216", + "9938843618629689027230350656578890827151241195885045811065097176550919176833", + "6802208282606377315123716960352418805359112941789204671109391246814388667060", + "3859743908805282737097303591047406982983876790263018422019404364968979815550", + "2017637023367695142950391969089384444006739544540697640617505921656731067975", + "6214245275203993152749790698768077606731848330141411420092647515327017050015", + "2030986261724545063383802334752878908528399397181109566248051113992153085560", + "7027964916045543445412286664130783493251297924001643418473669952304532054688", + "7468735173971509073874863572463768434252907493289793289102799884021846499840", + "4599131815266155614491725508418393616212856348104551929034793610010119582694", + "10022583820537377117421212622288873771622687910594572918834689742411822998604", + "5262805027091019655929815397540753671880024130507149738330056284011348198072", + "60486770826017980160912989361182627802007277263442251593080734120719881142", + "6837040478782904922936446248237169903119892897824402989154782296384848853378", + "11510647705688142600691231319917079493561120783445294447165497165031614117087", + "148281843894552718149661537178655266302479369401775259921420013970795476447", + "3774513805062548667588831037147278837140075806635587049512222597026715918803", + "4744087093628590835905859519378057730974122729736310255252723276507049450977", + "8127570854188660358212478459339534004218869169733193431526866683736173145438", + "3840342681551722729927138925365638694396883904323502001232419899416068933430", + "11446370095168657211255122302602803824901735552724434407649734435496323427076", + "6660870857227207587979693157279403288160965552332762315203661442467677556724", + "2718396597829245144609869155971552692845402081392577986710660725603767011568", + "4171924485100488984475562057657304369993222092075808604067866474378438686870", + "6189607548876277938857307411599052102534348126931216761858561354107216816162", + "8029009282233969770931391027525144819643890311641822257940889715888712667582", + "5804812284600538569982397686032684198630250063609921993161761636948897219950", + "3685731217256304685492536365596345047181384281591615672316594304550374579862", + "4967467059699071245025667545718821057350082870474255197136581704689177752722", + "5044764046744815274571488280794975586177673233814414987460059661759143899412", + "7526596395191799178748069397073557049798995757789232551321555726064484766640", + "3722985122121800287302796901125746527525221411263951595325210629672024861023", + "6525219373540799003196997435216958605947869781019250121831827893943242206943", + "6853346268480087150981440770221715955353765447663931357180875137294783929552", + "7449573308188741722595103917216700440013857623375389090023769089602026470096", + "3234663086876982552878669198417707849355073902711160908259861154052590923871" + ], + "commitment": "5362266209725582516883403294671155494724802272902884205681962517545113994306" + }, + { + "frs": [ + "3231893686720882139289812531884921148731776623281183403580242364099903279905", + "10798161782808696580830774927018785712088302733649505651019437424483908688120", + "9144599028690904317304846243077845614565949228335515925473172786125848618864", + "3889675947381344791690413815375601199018360551211284086197064004378204037211", + "8589675767249770570196393223733638009789963361705826101309813227116286883899", + "11775848233410244233181683734850928436584126464223821715699588840663992581468", + "7516666439740081586672816380600406666890269273751479833369157494114268255630", + "7586613237600595983784498094678251890443704496238155283614294541150603721012", + "3894133921694271337902199515647951491811431415672821557806310913974617986399", + "2034914098640809165916186407466352730967194101527981306561162557744790436645", + "7638191033276019653125775301352503215592917622798145872028017818608871585701", + "11251899334450520183174942102533068262537374318272532584302698559859077452443", + "12470999242793108743243002534629391388207965145716081729943917980577109194162", + "4252053492237785176440995576743437684760767837601380210818946368523355086070", + "3096603214514279750618695815740646543432458324483976547853778130224891492479", + "2750661356832970805602518165769008272550105211751961755714365462346682883843", + "10438680512519102321723787226634456542210021213801794824642102989711988721761", + "6776300191095933337032850896091558819007346675003368226161542784113477211915", + "11188512742214663838162681242599707184668579842326088856765284165148594419672", + "10653576783466317260201316684073405131931062842944488394298602526134756092496", + "9564671334358379282796792898005005412070096935331730362048943511372111454015", + "6809983889917278408947280857625118591620390453924605718035323858533533802978", + "12709420897108572086731789048042218340629151180678264593211297271933787457378", + "6682294784303989989124673760409038153438105266645379489099840773370820314291", + "7120828945262411270634624754028360474585115343041669094769988300992268133976", + "240180625909129704831812131380749132572309256937070647590266936759429514970", + "8111994490810248020268715387640751807767130676896549072748868423790486003944", + "2158426216481925801915320454476754476759170458005520116660445291965742156036", + "2876870009118189941072286997991085595687510593277493798951927356996658134346", + "7469703796543528108947246899339190144138956543932827809025379691947053666859", + "223617760970970045536822382465285696357174512154974973931720589822478701935", + "8641512110142194070409266749085774676276209821650659017951552532449641671427", + "450330830654580563973387013802461251350267939541512617379009794892511922756", + "3906037141364197369781334680299787491443795506851190378814168625543702902416", + "12148635115125001813202506930122730383408219860886882904192815436864541414238", + "5116351287052945839987287497521954636834649570494790670138958794519272490800", + "3376576822535108337700624449319652324093905763255893821162537349702039717188", + "5703631434707258239306817508132364293443731519078382244821601969497617691312", + "1988170346921068601463088845953718947677375954223458191784370870471041570346", + "8747860337652820988165535957734496770064280001692058186463014151628964083520", + "1218583134186957260427150580556830310658554812700442578797665228381973221533", + "6653582950981474497037068265157097636198529093907440777203873105521239781529", + "8856464036330965214109639682929218954373585761968376499418962151792638817244", + "6502118285647993955880497612955187786526312547997753021699599260979756628972", + "9542040823931902813263583615704362089156938344293702455384541752750353613539", + "484013766452123422598306321316130651843095785790376567222691702634414519786", + "7997705480069084911617402365604541789733139782192021472165952941263807752319", + "2982292595207464673047723474225868689882872708858304684208239290132618884596", + "922073023367704875810736226960081586350592388223039824161632880103385970598", + "882500169488564040372940240248966070577513804606489200478539584154008341690", + "1282991826190713815937342923144461234782253897744892245710274301668199248718", + "12947187775552994867828855776985910661638391980958949738968886660855793556860", + "6626360624441557937130165816986929749207579122562629106363968710019946102765", + "10668413174963124712459548853601472116676387349814763980288598797935535245693", + "11763084147607399503991620269617055319064438145584352153729276743688410356584", + "7279756524381271208792016499999474182372592615732408975871351097959744519101", + "7273462952777446520368297675786482298000605387504885081248961371305543367237", + "612177250178845721495953991934450349731564929144169043415180099080181141668", + "2279692565645408278706509868104801263469514124146579382310494823828541917258", + "9398692036552678161520370949918232895455430632809601244610155985517539963968", + "2770979563021717209024895024800934578361201346077483043753711900531010209218", + "11377983254852476969813579626467979555993007086640864323145251351343828755316", + "2192974405915832306559900707405640535848454541708687927681350823132947362778", + "9257490163959140439968521135085034495446521484874143073498765915808681535699", + "4330774726320630044851092182872422220700680475760029982718234019707567580504", + "9842089689601116653697425500159381513169792313078627153953845776175948559483", + "6066081837540883531849043633112374252429119150095794736928742272816385965724", + "8736868787351085373965831480282634823601759373369278183991086186614563869594", + "4038646843941420848894484642474309184431349295466808937200551803058522364697", + "12076720855113904927232253272240013715201813174672400623955307717217111568545", + "10260656244875008346407106471891591746026844126157298825673841176315366385509", + "4293858376612601440197557103964074420013226471177277741549928076143719203809", + "7353456505550912808587312022910468653409057321123317174074972507337130941661", + "12169803692591877229517619152993575387030239747264456785537459383138379331944", + "4095521409824042599767189914749144976669804659284609206302890498694292243226", + "7395938245179677804066931596734443212688119422953859302576370040947379315601", + "4230967781239075010765866094188168429320960125908830427814931680233708556169", + "7278620772014804755186972883771143358169022492154117804452076768410221211678", + "7289533408972442798312593806601840704525743587322470614340173819377887446796", + "201931471420136364776494337936819730244970333056787131298991827843427554444", + "12440773166800134340320658594435538014169298363038617417696363351886660092704", + "864390581026510391023054072396742993216025176967680569801549467040993431160", + "11712509081779765662820069726098975092978329411272964333348594233771000081201", + "7383474542572334023226633966791321459152733730651365629875810445806555829800", + "3343659324863885102208255352824922941980713122236716994285497648970675757814", + "1057141660646047902624561545277388203616160421493893944269658978491912555601", + "8038752548850399801090573629448599217505331170228923868597546714336153314142", + "2603957426075797953142752588301772674545459347674566113281252103679854809871", + "12300391287806255729832852441968262552946477676684039955881354824243598344299", + "12439308652089618873737956100443678189582740757083195114505616204550881724059", + "10184483619713157748070562929537462569257685910379057434390803948939847630664", + "7655417108557179170877315471397881832251099998219313956751857708484278627069", + "9314690799910850065288516276950217284302733401197253330658199671526224309798", + "2543727229306768006076958856787202520876932071682112255983521311028172658696", + "1082490263612317644173140291675212239339538634372008939950180617381300627091", + "4315504141316911450032510924775593483235514651528259080301514714831164531941", + "11682191379308664650230551474564574519119311391256939137730979689231275231904", + "2423035187515821743047956457576828391153648831265045701186895924750078930320", + "6665103739740318313076306556143440794908844269387648318906506936100444858955", + "12382155329295639815332350020203569126474956518852279008925300609235877188213", + "463877188752708611430974003818178211425707510840958838394191773278543795791", + "5507069608699595396459128202040435450458677202745142750634387740452007807128", + "3642023462055008081449685791674424187691977782011788277284213273514234421632", + "12469625860829492388118887670001695793119026439928028608304601292494092359798", + "6244932113260521926340687106274189676940628738833128873914751147711917513459", + "4442838096811756263266773584938922596238109617686980750417298612695853455917", + "10522999546507744070072573640924699262819618874862246510324522434309653654061", + "3632597585193151836105779164342658447597440106801374799003760898398054919781", + "10671047153880145879013452895410378431062099193604706525106258984490670461117", + "10715593611889746899849452755136076864980381773480877609979504400136253226354", + "2654241248757697803847560555103033398395443692775284151218897279669200486743", + "5961838484889766271724910407995645660099248832100044629341724625847048815599", + "12645203746298861546174080567167489859637900147796553353023873581599597602686", + "9442422497813648098327965781167945165602108616195212998917612660670761131848", + "12330557498284672670498705767717815042056655569163174023748127882182933608227", + "1375583809757040908253664324471250473420015604536290956309028286172009026699", + "3531090953425725638319292378088662561193885500082037882494239877712957490034", + "9886882881975070043248496214146699600022145779687874297546743223632026922123", + "7141951361371963174995253577657481908576842194518072844312268854354240968110", + "201276543330950274957714874833042673320895549708194836604941099214951059063", + "6345824077772317306795896749815980003663533479350854468077102963860323358137", + "11073905633191677870848650677949240739853496188890701755025820800312564172256", + "5818079995904132200774737069116455166268478708687372195559140401454154412416", + "2927975269610481464498658456832348710417670233434671924241846478996543706705", + "6332129588713709133991420808927681242177383138733567709669488321942127662325", + "215866888469105717941597289869973146384543048629299382339606763055912582985", + "7573820940452315681349094589463524217469376323390066366931303456507171099817", + "12837143882398147939935322539531891925764202679699191417772252659310427589676", + "8856831143225556637387420026608835983408875577665653343892012549665401603741", + "2860303709229554238407238250180893237038560407570440686561708323566585822010", + "8456662963918025164025694812667211531848808434812776232689969684618210424957", + "1351508715820985570416318690119237856964815658729423581780011606818586845780", + "12757466857004625127211389555993294901892775499483133439756127669057253009393", + "11792753670893472684072383852113316425014882233040799561959162115744399456318", + "5915950974684254641856202869121737560392351102836399495403215608646334762501", + "4129246456574338040739143268060059073704483629285778737232126915269937896192", + "5029700551093464884884321307713593775533934295829826582418584524443871552297", + "1374430967142292374589201589385579078229188999252288839317464687854558247670", + "2964932551464646840109908479690672633419181134127332696358698551745929567395", + "6063532688481495043765795315366367016097203708178483508427738024745670609266", + "12354214393197884180996346649140320056845844827206050696454927935759329018752", + "10841135299487826848568503881690501135563620485371368140492469738989114103348", + "188437539942503827958089571221678405481759975922694937618310869617964664858", + "12768968524975911608805792652679340782461305321062653154312689427517910100150", + "2218841953146771407704696945755293609049708819635289369994863284030988034966", + "10483033827933492062572736803181777721872892186903925668778251167310096669134", + "3566619549502247974220066651146097926771698657166899749563497602250725593487", + "1255958369609469832524864753263574763708551657836045200291835432813194411304", + "9863188633894357798249037013890681273064662707589489386542505922931915500593", + "4349621794671046656193776451331873109490224538360645626679438497260385891118", + "12418416395736154773244348233983058058096319272463344428752785626957513463828", + "10579524524476377326869118762034775618928303771264990377207597961325324225039", + "5621475788434495367579073771412601852031854554297752983149824915242914385216", + "13053038508019607448245443173067681641388470514964927572812972512754810760700", + "2563975945193205939292199004120457440128972786505568501578080632326063320974", + "828022000215173117956821175064160001546086867983687171750918542879875271875", + "509154148127878639967266422939861224060684519117899988946792183486349219153", + "2517097709097124922024553519380431008170894365729901505695055209223665339893", + "6161018609658682749654474383378979127064261669716949592801781392086656712388", + "613316761975387933315032982808172600781400322365297502241562891854828385475", + "789596008595328761367631976363927280665016532280611209613514228107997192965", + "309034369440701202007393098677078352605386519497168413617141176850477364012", + "3037215292072953898455408377578825096338469222081697344747246322886732506575", + "8228615608290305608540247030243931383954677946644395398750340322632056516049", + "9363405624250596293220474998869726034182578935076108528406118166529018885594", + "2035896138266650173754676501036153547759703128990258167208034757901221396421", + "5182846197844135623961099366986818218316413003319803129814249134405516247559", + "7347702446875702297525239367263999288798828379076130045931085435404490764030", + "520587796375422760165360941382126888001722137249753307649549922106743665672", + "4633773058404023194116248760487784662066288841647516891330155311615622290054", + "789977609504766984545101500584717340318673671710433192101689110557422250618", + "599614596187330013073621108167057870524064840304360099434977462794744823478", + "130417440108322438149320315194928690864493966643941936370975545170525116422", + "6775558669572839687209733678811147799526565104030891901849997145538605805867", + "7202734214049174758442834742363904617208225324730915959993655716363487170689", + "350299654832427494977864921271293686792104330247148801601042285153850055159", + "6741371499058781836091762100723880726453388100700679622272054903889491647021", + "8142235878665406291782631229689210657879022807959998183168817381840043352741", + "1374087647527721955129406590685128456455837621449486367038097288943211753846", + "11906530603160873007896657072393446679492060173622932322892126387478734529022", + "5033589744963546791613215403779905810458776417354727506975151350477156819508", + "9047203621657515156731808458663860778623160211852469599197620040614388497615", + "347573324835718493111477306315527244152015933793198101498135112407722230453", + "9364579099540637349153914174807017197957529050678465816326197103060388977546", + "1340278303070827398769171210278598071149580578807228471746089671031115627529", + "3163567046352085832330627596367394035678491109811778214019756869138765783682", + "4925466525509315343875979549331857587667235267744857684771546842045575491953", + "5917178311913907831609865938260620501078074292501430441369579650762545425484", + "4273833833320667515160965177328454038262315235498461265566335418951126604383", + "5653789672417753800919522812716240020907767619506573278685652782027086250323", + "6392875385415662504011102318458255675144471883751865074312923435108713790414", + "11329484025348106614241199752821299781238880183070274371476586650853705195025", + "6198370637893560253218212986108183671155031873698259264635362441215472921027", + "11238045305515135191131731107155410536953525095309511928161190668401456234625", + "987517013622984500769285915999920112082569091840407786333299426417091143849", + "9057130587044026715343181514032933544386361824792602353682140118712477595999", + "8639273995981828453925961720222790758961213225868665888773974458795256507876", + "9771023953761176487813937779423111234915395350572270040014245027309633007502", + "4112790757031304959162238558501025429039567681221987888237683808486499510603", + "12820469010436467773119533089680395443078437844561107425596175687416639953654", + "8226367866241185430718420721128101164581521957245383717679470933382517793280", + "10929204606653297389937308221539108161028409959299234389445274416057964524338", + "5445484703969551129147781165938080702831313442573851033562296534947415819406", + "3010063276614781198154854929258004266086185574595259726296180641401178130232", + "6911128021716939433809916478469754177290540502440247904106467548753266777936", + "1686659410539907245988531928205268749958306124793561229428349799540901301445", + "6798764886552022293317071787982696601533037566422450004270646366446856806934", + "5370016782271457374286512809021154451028771886650989619437591093809189300553", + "83286723946370572983746334517796840837843433432256317914082023479512578259", + "12263996676162827115541139256937602525527164274989805503680016500243380209462", + "1393285847395827607343406288979211783202363933810372419583928058108263284762", + "11836750551883118281604191268178373929841395778697958427556380398811406320402", + "12404380317641450283532882171518293879550357063185042303949609456401968069268", + "4804794774687452509589095330143899942027741870330573746577498811744899425934", + "7733866492413273133797851989531754944899712716389776145928780590415232642533", + "3763886895049026867525622518893502307722084878882766510420319044329149795755", + "11520717129283340466933858332271171369709761851735788580559952263615642241408", + "9392808061101554079878605828850287276699573052578013537895277465537769247033", + "12762530857144824694499327484325993639532290959177923571172477120022417368542", + "9899007508803033218569941168810640300644968275409433504845727392086404473980", + "817370568873428780513966554997639051816272569680560758699901503348612249531", + "2334208227713884779327617019536021024375556883056016316541323429016774316769", + "11505918279912019048014393203010716636255746846967780146399333596126826641397", + "12012751056946032751867514059918193655221349539247590522468449183981141072402", + "5767992311863903474913833311527055188331506995845628739476575483904645176418", + "9754305561348837311366178453077797875553635076433438614532737882672767894049", + "8748761991174121363947858578917334077381700571369017582309790772263037610513", + "6149779031042446236563081471427408334622547277166269956424803936706141824947", + "741090320174501565845595972385676145006220259781221015089286716830568078153", + "10871997294796003743590778640025790598454198283368452242157125887162568313914", + "6630146948660865479877050465028979751100574445767324686905498742302342742417", + "11933577524230512127137264623574166463819740343399036558743444155177076578174", + "1086195530605975410121668237691198581797486428363344625951337811481069051724", + "10636115583222292112879965466519021763785236357135779307065941221425239790303", + "2845908625514057756350940333235968904962560440493028223019688957612894970141", + "2310013420871580653473821440282675611246584368285404909299945707789490664164", + "3925948056031038881418744456651652857645907299133185954038260877395190314056", + "3968995623149285326530811872138430202888876998558064402494426510845385984741", + "5907666733153411703621477802897872993948856600540575186672767383035868774313", + "9745554220480909792861892525862062468170280698798159557379239228628707953153", + "7111899224289928275156042488615302269349079452580611339052333703109815816066", + "12783744564404039937729075580376417532695493593945419587635622819865127695600", + "11022750257982156372746096794396637723263919392872365827074573396313957349669", + "4397966431569473176017156114937802409963569575285080038813378520357187325827", + "4241814849604954026942554590668965167313616047837188948886190424670876642901", + "10896218013427801227351973049668103700968978153117152961973933165845603980498", + "8005266615580099412319083605511251020026169077997629046321221722883774031832", + "6954668481000000679024852847570558832633314493021482996509207131330298643134", + "1789389024367774158900098228235404715285529637857461127721581738198994486521", + "4660886411635716858746356794155798322505849072360174887485482691850915943775", + "7143053140001680518976708517357164634876902938023025005090124435866333786551", + "8949696871531238077088042937763341524945563733025737095166881713186515582444", + "12115668594983384876948219135547117669424193363213334975983973180720052526242", + "2885989323810571386390838489399216470997214948312118323520959315076595635315", + "12975722596255373271352582382788114823923353554444665599464784614665227399349", + "12045810636229167725595231818053497561758577806524880347583448198389401924716" + ], + "commitment": "3296656845129692121503540731614861220307728420933157758411092778752532204707" + }, + { + "frs": [ + "12347706685408674339055376867015789207505931633340404500524393342005778435714", + "6852746037074554720544176120907846566536721285820891968800099518404339723215", + "3195993399797406412854246880239118926413017065413563501149509849262953929293", + "1817360300853866673405918298920997135642380050928006844141092383223891827857", + "1698921356890654692521387256086056376963976995924383171937922753954486208629", + "2001241605928922411253052430660086844429510930367260753670476061903025142304", + "10916460128395598480119495972898877228111346881355800003485495745124902455855", + "8644270436908017160888769856105179575888293607948201480325433782995705783146", + "7918477513413812769120322445207463391650669977886160565043529196617745191542", + "12079492354279090475740152554802737373580715405279511459655033256516491740131", + "7095177758635373863512664214616830206683458797545869891523135840645093885501", + "1145275289932326580917702445352499921980483438801361600415190923762642562941", + "11608494809741579306350299295922424606944261003292685247424246985006596849288", + "370380420088329414606409334468102351483783644460055361974999669924391481989", + "12817438000039503014232462515053918715444658711597215555017450704080279914388", + "8455662630635193140576520448255344863348928310234525794463553144211422310562", + "2990821543332225201393643731044775385696567923042368832528877192011392884410", + "1830409590757499145773070050043751133870764314767600539440354942041117163298", + "1714947454556225295547299390397300102099150696381925922941920175788444168778", + "7722033889023262029546855185992612698765947971860084687254744982383624799605", + "3544052769142649579542821119452783881604352061573941134192257826677791834728", + "8441212740258129252323143321657023005550324405355798348354753267899117985897", + "1510737417510886838077177726081331387592032048362729868310912934730642274669", + "11533307843263400622010326872511357512472913583408185868053861500688292721337", + "10009734455758267541749162415613297771037939681836693594481057081695796346900", + "9407563702724184454209633728781774386950647280680357982446681601286037240996", + "1618581350558868031279118518037652470439163341202650587456988716313324255619", + "10732543357876041145678608557180168133292174825765661419034072788244711653715", + "10679829498704693981483341462513480239913144099372435993748774737644881206835", + "3347045730708067934151796615950128952131514287846493598390586991910335166403", + "6747791775230147598473484389779849282067642234865189931122175298136592140117", + "6123848376568186148171861916752322060035041156931048762618004396441643904513", + "4433145240230397061314761489045141500448208213126581659831138414140084865756", + "2705467429012590692548953389528176475013036794534694565697329074549959262809", + "5683740925779996534554842080272032503478384273829604880792000069946371802376", + "7117818514467566416972736769715531742969439706904686786460616146306110154146", + "7057268679587732789250663763844323056121026705909393150698475638862272258107", + "297266173888983066891536883580056451972803444973480733191829532468800505095", + "7137863435942051773121184541431469446053245064918041118468129544598362153784", + "6462241196692781011203945678335428429011989252797036930254268304359179949751", + "12567520061035464370997502917716188419076081665558668214733859481568912054214", + "7573298887912067096507438203355738651502711017448018254401285576680663243206", + "3915048402645821056000699624691133830128340708014230025260513690030482847620", + "3850067493001795659404904027058774518094023250078144442422593705416076278342", + "12074667665319798620627269624163951801354808917983424364436668198182103991919", + "6937276935454668061267681710176289128447377319902701786695864191510374518464", + "12199228084115966221803300722785900836251960292421761463872283843215542137802", + "11512007074595663424382711694205841934234279730590892317052139870894727287477", + "3439636321856734317112693598336087038855297315707848294237856172662495605104", + "1853095855403332840273883959937827743608871974479464922557508069098573656714", + "2981381463671898061090467800422873487572956233727809892069017819396499596549", + "6927191571127449941589528723565014888952772488423125989879845795639602347890", + "1531166077306289390553594837296816648793011236366359299699732207108301495452", + "11742630358868888080171261778766095525983660461516350280075958410186119488309", + "1474018919741563245888016276091296570220490515200510845031875662629796600258", + "5675788704723389637755336121332674557321641036685014986630672553295650949168", + "629798941464361249820968806709333748000563091393125351542215900778317269158", + "10864673112606647336901917783470305208097356788728715725879057494133562146662", + "462448731254851987284729958769188771644988294480373555903993988837675963815", + "116432320558393001398160430531771411150587511212520660025455831421189688944", + "2011205590801534475767838413818124039695630750610693610910201560532856595412", + "8031487088852047474594347038645242196495601513257368371001687039184752563467", + "2641920064606741072832963559710729328425201980231224325997577716814275276854", + "4653826405660926630038202940836747617454616056651156644930901611950353812515", + "7305684191981548771611153722260057996505825394959899079491689768885278279396", + "11519646816402143448318021697723127121016171549382940233213402194642417185050", + "8235327051402207573692120636872093095682795119402451750713165887476317530930", + "11021402299086726007392357291155926068698033405400984436410663091153390520310", + "1009612670714946158334096364254586476808868854266271792270654660655657052661", + "9691211113289510547163785205027337215775441327586784322524227451664195736925", + "4374639120662151196909109895108789033511537535559421321180548141023663204889", + "4380716967754067853207729755351807933927733202698405310303474096201755749835", + "1912420601113698124805585855587127111606664014274554486213137054851942993494", + "2327236869427673205509666894690696800785698307157983524383659070225783372571", + "7026545409322553020896917146561101673492527675701402705413035634946330579000", + "1641663872566614630548708969399137308388463141807256981963964151501800577007", + "1005953305938455674900145011187025596056282614876112360297987666035656291277", + "11493206405075983284459138276248212116414907982325430358252437886215594318481", + "410125104269740446781298570483184734439681649856775093891129281929620098854", + "7410926745738935668346088176894739256073157353807740679125181102521687646579", + "8552486290009061997810327199666808887241398452197091028407525772647097238184", + "9538313171376809836949563617116605963212891112127036558655975559621494892085", + "839147690363128591397006378487871544196226954115950887460956362286282130690", + "8761738856106966620521708400788094806576805202847892105350342847041876893411", + "6891223493792127485755790059787856966793803922353983920580144559605771823116", + "10543311579009037878232574704274581351871579798594663682296595055871927559282", + "3201107089868446501522727692113268520779622077337172520768965165111419363085", + "828874687929553807922377538266447296087704771836313381393374610161720241630", + "5354771545418785319473597255183774805679683692067548064546098383945145093302", + "2253622103077360471381440400680803664041488800636303144449964465403986370362", + "2330400937210105124059872774547416969170078982951068648666852896063782178690", + "1212218982702098561993958261451139398813856630088798575928497731492753578761", + "12949458713022248675207566947436140722145243630238154333138893146448664669786", + "4280634850576010152266000223628708576863646618571241215974732605597923483535", + "1299025221654713727284405179615996178662592975791442745502337581126195396107", + "6187767473979285697275154844254134608727417086998409233124346345873001187046", + "9224556914478685996269299098915843116835696610783757236136831126671964413174", + "4219500870988162031168427660465999390042004241826972684067355694588672347785", + "3898081217875983745760700997148682600450131949477365379538053512378913515080", + "8622423598876096259536594816503211327457236698971731832463276662106632454921", + "5776733731124365087897140172004123256712064755431505909614838138917501575521", + "1974639413995353676143519318989512455687220070588678649773971516892843691617", + "7071802130009274486060520433311083835476993887895220282614589378838862640930", + "12434113363671697732402999200142294495049853572724784762240576029744881790249", + "1896916051659721263587279214386517728636484034860429088120025307285332378350", + "5803041610482167607939608992063952571214450960816659318859339812245321834029", + "4268195426303830594102378809237230041550055386419008097939197429820709549117", + "2206135774145681502663658915194016768781230422827114864513688011096739816265", + "819210571659154162303255039357207000744552429164557862788862305693019256064", + "9753774493673630531603498190687585266934073764318285113335289417457570037640", + "7937530773939668822829757477076848290120685501432295574943690507206277714422", + "3323602686253193471441097554080047379557449676248526648467870155066428310952", + "9039741955285685092169056038496412004401683829684222009236478089959259613991", + "3796725946655409792364442597632279606142883275022000915084543891884758622200", + "5317047398016892712438142470953724549915545854297173657737243178792252309471", + "4811758415016348503543589688984758997855103585544751794451072043903815483407", + "5802246132312598694091908053238774705262991723856077252049209520372652505876", + "3481637383597637379423626647202197986443106394567131369746694072366999245444", + "4646985809273388469087148044434158853637174481044304905978728370391307485052", + "8636972074597203846929834803034691636223735995827743839841356216372831934747", + "9547356223504543107139169751982352054719241215407776632384379108163474723732", + "9803654624207755662160494506662141227628372521696797372734385664312666785375", + "125828394889892583989155312885644574365157634366031172911648166699901151955", + "1255468394137953522808272081344127937387361189979222844791951811862523141821", + "4741799481762148734562538994490308639481022255183950734665435946451938590364", + "9860512365753183425125474307364537401332736862148882651059482067004964432017", + "10332224420836419034761807479907019233677274886655715782058045911933949892508", + "1614315913414545183498398668496757584290816404381302536994911353756816989894", + "3058021368682889896133077089583733912801191451746239918540545683890485932163", + "11450680220157933785572311466862707711280107807699592313923885220087401230314", + "9283869312368378032782737398039612134085994177690944851916387233312170255015", + "10909217442495233705875965677813554061943118943949684543784405376025665195410", + "12843550535143316443299769944507920406542736321110041405269254617893601987111", + "9640403887671512455184416172082435155473577787666475874864520625278063286531", + "7785942868046204749613846828011061934329811055945449437571491750414869959457", + "7784605040471670810027033764508944126264650808651004191401615763543452793442", + "11428371917160284246928432974116037100371962585227043395476477793155636310867", + "1717951052012772580677112649594668686912452793034994123833720765076638466600", + "4485800101531223862820363197102734731775713619273357809164658645520396892123", + "3026589542835000299907759019406693478911676128821170779553447372120169800", + "10334203757166115656804134049064767072187515998434349874433286840561407817065", + "7782352077068412255287456723854741199405830362123796822177162404387498043809", + "1283305101370038144172538551954613195329543242282053941040868508752906091981", + "5388915165100059233695065840962411156213391856243981675797414689756681559901", + "12751621730122776331990500439513216124857145468376405391544007481519159888340", + "3133503718544395570703754904436018576922711250416785726233988135300065422545", + "6421650905505989214390717856065440200243106081626342117334228991549771296220", + "12728722194830305435558316872806906137350746572023106378560886709515883533552", + "573093016237511617061657577097826700879614831484902430922254147216695508384", + "2623207426251357477725354842844090449015481629942447693413222725665544045935", + "3546085770460569903065819524247760628750151158427917421454085090913630271272", + "3997487672413759221770896680547720084807507558847143863379149060074521425550", + "5993911512559537089205732383361866835020844106135421377251077731010584106567", + "10437048732681184954250012913609063917985545364797322171885954522446706360574", + "1439933827994493220938245415856238631083590413167890092616590115616947901862", + "12411930847490967116202903536166557282659802397673796665647587157063049920020", + "7956910034092018932954502306081260857546008544759361248095264033019301869795", + "11319106791385291506545060271965150467408326456720468201553681393063735573464", + "6997283624765738023794675875829575489183261033402824344370087281019762782663", + "12988378944331782282842441162807322688694211445157447493666297914131843797296", + "1306813698308674483389129603304527317896726419477671812278767533708692243547", + "1090250911409741426838546734889625964748035627752364302967873423752397347340", + "2466610168056882705988234475558189175558054426392062143419599839841604021729", + "12078865192886373202248038746976879214488294686815786337815600265031871915757", + "10740028779090531778775789257255188270476775132600664066729803947985669328849", + "11068832018673989896760249914258574588028592332176165503481074238130148046982", + "3945960615718044824571402209803450798747440407122071805803940230993333375588", + "12456094683115095864115685221357521631200309604631058886102573840508181695453", + "8055884905513843122947262595932017773532256166776296892770364543477761469660", + "12255897944982762979366679621033224654980422794502677595139064888505588021131", + "2105637322025603911311888412091906711352993680200504443405859921593320707753", + "12858692076647180177211493058873181291136988602628353083963376400562773270253", + "2627773305199341097564218303190892880586419741996274986341294835086478327772", + "4009926182374872686874492763641444886851103958970823117550329725652912820380", + "3540441536792295212622204254847992505817755302326896829862221369066030606202", + "3382759673407351045750221836207974668839508953048921869567611017767177986411", + "12968393945276325214186700688397519442608678398185615124489060073587433926281", + "8744374061760907977884357559286946364590362230021216272712021084144072641309", + "6217223506429513491976711751394896505220656384349086331883091172298587428411", + "1859881552784061377093684251322412504749515152002145404168860605514109412664", + "2576558496362001309630080405970585547406711019755278564760377999835349838200", + "3924892947771815651638594824696983050832966770350692496973758885312549971304", + "280369270983288897519860795189403284668102347342878143602076176210707876385", + "4668952263172022050401474243035383784043942696142449624691535509770323944577", + "10002886136324687785636535871804570238917085543517016535472340344840006923216", + "57161304145061273727189209933984050738550068654608920473259688360620785289", + "3130543036970939913903686763344714478124458471798706351276523277109224753553", + "6558298012152828247719459819684055305443504349983910563917022384188371458054", + "3664527888664711334570973868715388763374975037825092912447574376282304315802", + "12121110033615352068496955802659849830809126841309373750635112296335549355593", + "12038563203504627200452688128352355457106735206580364448660011273733709336292", + "9466438028859547776189960647485764032024510075305783906076206746697507090805", + "4721849388259482560540518920124811812761943912427369389897029085793377198007", + "9629712788495124579168908097657317264597805594431593748343415150503289090448", + "11064549984630276722210168591535268286230509899941072386060927350187290576408", + "7588943670104635407132901280345395683551183482518793600836610519884713002368", + "2512355159829464169676489572113455660651801499688121223801402430848418220489", + "48830352456414800429368476297287363931982001488119194348914226477104581036", + "4138614452479515012259990376852082194157664717623417742046701099770451194984", + "1823080663726767158623281321485689258187240569685579259231490119447703817151", + "8701510631848137369211413791774525814250327853489262492957588570156546833686", + "3093543531476624026227798279746035191213954964054081837188397806980522638595", + "6128880787868012515569404379519208004235069010817512506768338419758167073670", + "9570161815063085259656550963899433270713543242197992458877677970212195412114", + "1211882764989933336548689244488387251310136086797697235856385637174993923437", + "2361090992169615053434609067264299330389049763104787322033005218069545911244", + "12838027616874116484694068281362951007871264922118303470773057685485845391824", + "841967611158905814172821166554083500666484847793085438993445729041220355068", + "6954100069015295442912710320132553532036318785193802055140694991886335643554", + "10757550182929759590428302120170530100627484203839628996761861505131977872982", + "9713924727705567976753857849090972912764557015346030793829678912870340449966", + "8061472215610634969213896397265058569639960152094986791470714128806105397539", + "10335676884567891755933814598557574115904136572777085276828483252674161901573", + "4555047699585248553933711388233254809481285270454638545690577954222246688121", + "8268080822504280307934707474031549576940257855232168160224391290293897101725", + "7709090944004927712622227752856825451504077639452163967786016743050188850725", + "2937130064766334117189571145745443972326649711877329969404206273912871603263", + "9838118632765936305241558884391150597800832520678475147597184829786759564233", + "8227873536340657545459132538748434572004359468276270311592985351955554628751", + "11172712170819648225531267008181871653547614272781334628295553212429459251107", + "631935571968423660628716289446166376647884660387774779644736587021897327876", + "11248083952948647756822266700532022335510420388628856281150559067995244343826", + "2889441621834004686967531230000536296475507768477182804707811936907261311439", + "8840654912045177502886541917459560932441248678087614914654546453012741879319", + "4980628785664779875583239005912890377541586709447127771005575141046684480930", + "2787378290585830417599718272604639145072768583010336735576415275962739897802", + "9315303305701292506175108153909603146058665351373911354827671909117596466649", + "1299101438743826836748200587479604529309830093879751165940994544994369618135", + "8997183530835440896198145725961770200993020319896429317831921720428911658096", + "11949558932245260235905347617137180195383016307987782671360798613408103080980", + "3287022833731274029129857376873021658626022203118589100476443519796769103067", + "3623264723883952105937014184291080067777966001515550237914733086139666475199", + "372781296086876708548249159389913718058720613056006522472356251947251181950", + "10605556491037779601192896701006268284436802646943194236707202375473057017356", + "7529410004116932640473236363231004357333801441079351876776165295537236861592", + "10858436462393108541152233477597415228854586921493573319386078289640116173300", + "10636297566353191983694402657580841209766441319398777480122195623048044292503", + "10644444806183020252291051529483166059728355624699947072502762471560928008119", + "3333921805923033027825262301480206078455315885200639442030646076364079497601", + "10870359396522591385911619555916442106826622492246103067788743950733297055585", + "807513588320299363032681767418909797287601063649270588087599282032636118859", + "2996956588479220092733699941590587557060909369218391673701110558132023099387", + "664770917233191337742258017664927575909483622379700336734967991936482277455", + "7729220883314702566778964638969017281918763591728877900600556800649848015341", + "1071191016662315871331296660015763519259430700264694971184020310088057984707", + "2966567836306907465049326909955468119454967835382788537272812771638335909843", + "8165782232642603851387098553078571803289187379906693801659823463065224979895", + "5166801017398891341118138150477771944543295935051311058839070922586158801499", + "10307851650534624329650356606558891343994040660156413382841945166525058076274", + "4992548610009640072836175409222379229478713287194882616381140021804587818379", + "6887021143407404665636029814269059405335459138718492409635051966954923280701", + "9748970704584537683841386924868767695646081986298429865046487555144077519890", + "3929620496023257985682616720839115641065923009680200957540202311412307034000", + "6507835779708971213470477499211695392044335468584603316415037189846250385424", + "5195306172722538395744453100588511509164213088716786998707726653970350456922", + "4539484747701460815594889496719182025479447181229150977199857967670495171885" + ], + "commitment": "9462588232405739332200627386043595301134251595522331579819645249359082471150" + }, + { + "frs": [ + "2662100192723246146161200517727438050479503203737940339006275264342489429452", + "7156017227016614391693146301785961975930630953437098730609943504603110826638", + "4913521656688075615495461624620572345303315438979398573784121830903603064797", + "5151935462826603516830156549547158545404016787004805392426180495315124764352", + "2484063033815297569779788791759081401770040847135963176032971400180997534887", + "4871942319734456469125573346761953709860947082969021346866689701391424183372", + "10224772689258913676956289287638650724665424651467701453141384482883713196629", + "7477093302493647207467483969814672552022795572002640212621542459164235796326", + "11064392221788337479844418656998206248084418501186069244663268291514601548222", + "5905908404626644813376173194505203004202644881395634711629198922331274893769", + "7713624560651978173545910445786339406577114665847178939829373797480431498586", + "10508621046287912878342038745490155934890708087342697628369905852948645732737", + "11702405874955844680025648036315778535571080346877213366741089916468713683236", + "8986630660675083377881310253201066085342849280424685773960943325301977502747", + "9446411961537918431006873619807562738336803508400867780257726311513565210213", + "7073306322726902242500914263959028698315617238006910954387020574246741526944", + "2038390489252639685629645034650217286244191787792531157920480431269608594315", + "10703684081000378926310072330891764999971776651486569005462875304339872055334", + "3956373962161764044446740538094293684765716307186415608934739579807784500256", + "3748068934780357415786914332414536048137513184199417336945398578619756422471", + "11082925294809840584555409279655315726602572895256822420724102628753897423391", + "11580724495991240735441872481598468274024426752525081230624641552853384002206", + "6988373772696376829268254790238756403943227661799166583690722783532812417681", + "7646080011127646954773856779886802148550434701036395965271995213702681995940", + "4898388329939119315033058678511829710002416211122763581990065723832039382851", + "1628967157387713911430342116337314856503585538177935244983790005438083159128", + "410406569657596635182362821526579970487813976625939749743850038626708356771", + "1623341663996823696708968932654146793567172376215736528034466626702815651463", + "13063221749495464284164593467355079106377685242010274966927391976660756630919", + "11114191820113243765494129391031347883841223970006595552409871549379135876273", + "3324579692480163444012356334382883101232483669646311690574504667869697293148", + "6960268647078230536265548693137146232596263416982528148274866972053669145635", + "7329618337397798139229318694827321016719694896227711819403090724009484463828", + "6648327332009119168848333483405533234171990741287409666802119250724225001248", + "12375314984792498344266577517745938702790050461010632047321122283269573688509", + "12627850012839620632195331886633340640822445894457249232440039855591825499335", + "6216298774068026148458592745456742932356493989832848924780937261856648791974", + "206811069171750194533962826651684777505834680033224851268107928700084666205", + "10148111894327688298867840404980695191591197763947008168144472241717474900227", + "7906835688705147604069254404629123754534162693517938225029919400585100458012", + "3966929638528978140819886145246023010933950167526095295174516788283139202671", + "7276504952118125758071581305331625172964517235595901270034733998972416478385", + "10414073563667055476918366678581288581957990921247203714706101282400864254673", + "5929244107570987813893144425904346872368778695628216944069084145020424270289", + "5310379001320867974323404535893447160951069526450369230469836171695077531629", + "5593888780521576481360894709410446450059603364134178518592327107416989085123", + "11441199019665007702684698086474432228949041016103462495607514834458129430873", + "5594336494304214960580543771226445071121052900947878143822261903601054207709", + "4678668927845478806061771308341056725227837819142053096224391123000399207606", + "5065986795030211259236823427311274746151361508338083458649511167199725225617", + "3213753756334686814206438145546308484412327647551053104032111572301184642005", + "8080531346289832448961694705411377151587479095680528671229369348490669939157", + "12234128232467220847292623471763444555783296410292801982559934654198576099017", + "8494432033575123151782678503083995590160706566979481814173620996990764723752", + "5511335144087857934280879509631692955857609237859588738839315215619402358473", + "9376720179854650470454895890725179029230992085568943597869030936367421667423", + "112006339469287046527808907236644924442836812654346404690770701202058430911", + "446541588433915743591996532160736648362325784733363431027594642519777351733", + "11003638393208798553324858769829718134393380287852876275316599734565486730768", + "6708930405374923893384627179336983573596384958516099201403310900868796193133", + "11121217887021941513274980698834298060126634983567599992842257974840586256506", + "4272109489777331013759496361788549387399959000981712157536532372300415465590", + "10640217617578287244984334899276576629428539160292801541647328971066721443857", + "2834956513797259141941994093551272390689532094303220292333207305691004086617", + "7213982144707029051473574353147636532180212349997497024713178600495616647149", + "3452012844847923850126805059478986024225021666289119168911236763406104819926", + "3678849304933487742383444521118699504800545733188036593811389639124231627914", + "12112696151802724652346254685980266329649802587800074405930682835204513008328", + "11771285251529391623565037387398151439732294330010335372191888492112106393638", + "2199409579963610192988694387388848873485550380645451920101669114387172621117", + "10268922241694394562940824713188766262395142004455387290085317623290906889199", + "7201463872438595952214522741439067181816862635581921089917302375806725305675", + "7835485090734911812624823467400919497146786600267528680363499187364668258944", + "6484225406191759718751206015224582864332658453201857761157385848812337779934", + "7914087531612755228763975662015059591829753084111921407563351760343812299171", + "12045458979777562037442568137993653467253462163059953616462530094457090340707", + "5091884324197076175885425026165459381586058001717268504154083379603320275281", + "1665214516249578066667222683108719920600822551349253462914760121642100508037", + "3335688551747952525933859067841083682231835500526316322374348345663097544071", + "610852423156242462004347823088993014600728363117897105273748386470937874334", + "3991622870198822504925044963319907272809723088154552696885450891669429990446", + "1873545196936953990065038406577871839518188327933406938066749749944513525899", + "5643732856101315562661002698313188948554935447183403030948657964779319715204", + "6262861486452504707221650715417113359344617568272508827257834750355351422659", + "5431826334293047937359777555486251269365809255761934831797999081879489829422", + "4668971801452885883599740684067444198964966389001990556973217300971646230564", + "7852974527666202815672756687427436371942728335305786393603768816510744862834", + "9740779846470486571528283137094218947351417811477905467994652722010577037400", + "1833704135192114021138559406278615520891023825848149503013007299373213906932", + "8329199265608430524983325178193001472364234838938528566511348003696474131851", + "3836602772902469567958611128033784340438888719384379269963652377623820520240", + "3248955750868324219509723409005373503696050495043742796527946922072613963450", + "7267610475880947592214666370766300772077007977824059024294385281964284940867", + "10810601038115507292639070873582602829726504093839726122723730477693591644865", + "3380991430849629650862364739556807190236943490409790352766787797170336927567", + "9891249048605360066152107130393400532212561206588288492573688484542645950291", + "1547108597232409216634139291074459976349662060466386628890298983553065681155", + "13026835544381285898144087864854491200499652292756943041893307009061222960430", + "10314734463083141167176337273400391324571709740690191634504148114368425757884", + "7260504248977479694235586736829269933287406070112366729946681737744241232789", + "992232982748276568509172614470478829190868253602100104797593547496861050466", + "11903473454242036763713762885519729179085843981339355144550209180083972455373", + "733333007290037656812027619380762362274885650959660461294049804782777384518", + "1619147625470915433177863635225408128825269238219897352734636319295162835389", + "10541667713284915147510182766329606104345268140322718899176920871493897411615", + "9475554354428941275656309753405805304849537569341319884830014838125614567888", + "7423725511385788806397763500784341457551639352378438468203544173999560115890", + "9711922219625788530504776477360501307468347524112642097193018223815428931262", + "11189582070107520423360731922281913005807577458735292481616459459082873695740", + "9556355453560219549023462432158022895551565037609515268244189853056517414455", + "1837406001697688276357783482221720686897228776647006694238574238675722328586", + "5737208044355849640708248660059845531944870665690666851425231429685599379266", + "3803401385285640514793356567616165432303081020902508960648089393292497135291", + "6364213612781555390512066285468483091999726952967394554780038168520417883231", + "12499736985877261426565558979235393968012483834672263850442554283468292534976", + "10245011526426543127850089735875732929506825874059288228431178378086026353771", + "11124012818473567230223695310005868980735618041360749037561388753001520923170", + "10317959304683081659870024937168641530279167192450886686520029368878544761513", + "12638715388279113020131857166832167191409647241153575029333843558467408679459", + "10701296294779908702657900998382259132824673802457046808745251380713377511771", + "10091609743992948665328373818008755963582983641860147582243653626144853681411", + "12967281230878316470098864760363872891583591845233871533013784450234367863946", + "6906856171936274390404198504876885765693802004707288468001239102778658639495", + "1258273106983700383807556786945189783490796212740398499234251453143350437741", + "1923275507030163065862596503688077587804087526295292959080983985883919858619", + "10237346270996893854929229495954551655295528044179760419485587221479398002518", + "9214325787817427863155292731220919259524270224587148810002999535183764121135", + "1441135142196056514984959332265251767865172840871576449764227876242257097045", + "11230602168789544064252676542168848017540507449080160480837325617645784055998", + "12469911977215174436743338132700349257918906997544625500064758501446634878692", + "6637945574287784590124903991523236302987916622455384232855243222727536738242", + "12887041280150544774982009676274243105624278162088572175614580332768424196185", + "10175027462479460620055088856994815503630073829015478046341009127528391290633", + "179605395170325921099380096197648758314945836989302262960690605173014675161", + "6401716592684001814774768964406732136817428377340465167330777666603989171986", + "5131478876887226163623880003989512366107871054686642874580628085346389508218", + "10132025804069466596490367914012298480640682670454383034523798343974417446630", + "4181827947945069959806961422748913300487194432852701050734685436781754969046", + "5016275785463928492798542537345390522216170386581284273176188531636277551313", + "9998362720767538705499245449291755628801529040213069732469102805571502141754", + "3836050324866064235798123571556761792250810453766602801366872619707722665494", + "4268028368264663892910017524248647548132353832047981564570069627891079404724", + "89248727076137238834978084918619361005160467926519319872352678340057210130", + "11308272415713842017984869917446372342722411019976211686360104026754797327557", + "11050081990081134306344380423499969271935633785882537184773848477578040999025", + "9171118663340767351378431774253471851289819261199466723673097042299922058389", + "12182727154789263609990784559970437239035197449425629806127956525316266017788", + "491506956365734603455283801967612013358548514574931312601463467910808490202", + "254375605344020043721622985016635352238378707796745590129784257003091325069", + "9947525893317737604974052779693658064928627880724447227819067527261017303417", + "6355682115876727666928962028078687298686358122685531543626371161916519009863", + "8812365043521933426796659079820946574576102825149932504655785091113623680915", + "5527342351552211852072365710299053989230538842520576208513026644723043656996", + "591498283551172762157988567465911187524609618116594683244683694515192400254", + "4317244254612337820031612747168883433824724353819000271382847909021416765380", + "8106854743770440035020966613162124797136725431580827534051294935884081597690", + "785802175160154542082908465793049354988578746422969106989534732376507185488", + "2332432756552505743494898048679822228509042364058213807225821740644411846213", + "11073472592504019575252885013105986984614994434697615268737499103764473520043", + "4231377358478478505211651611819777547050736899756228685567936323072811053152", + "7533111775437649672491492811481388679525318064054426180295509722697654506816", + "9877316157560962459520251512168577922342505182314555377841137995785005545639", + "12571108795466804877797454129381095897333218510023458245738436861087996941153", + "11032382938590809528258644968370831990216716777058635706326556141854570418736", + "11401784229377776762980379851619301088727345389528336608872232466304554190863", + "2917296485594709052843515135186284725673706383677354214272053284271555090938", + "3397899343936089412286175062358163239221838401915471349989644282142231478407", + "5375084274945110715589731124084807455479823359082671712533445519875271202119", + "2380849554563361997823166263039976292851350277074100072037565465847577594626", + "4576325051782800181259890116696855224336722883357301914872263665558021554743", + "2099490650232679660877402481201117783317355460634764583593696511852905811625", + "3784860890847265005630869193762050729523611855749007057956782017374216648519", + "7893083185352336957986889320045927744587982584929792114509009984749838677241", + "1545786049339560498786662094748230088199612364186098942398343374259654819635", + "9717767436476907796481708263912534050758099776122891000820875102265079426407", + "11645737451267676221662783136662725347803043173518503483847997056237068879969", + "4276978811584165432639550577015184950181482033534950420078453778045147445561", + "645158493388638148721404118289590494488511417677978461024916188304083934890", + "12553505519627965400365765156865387234475887831172551146079623624278300355072", + "10212600673842583555681057704068590024362489269423033070500313737036609550650", + "10750410914177808676231024429922874903077682730088151711157254395420554584738", + "3112959945050071601518008524015816832230126951262104836489578974436379899839", + "1876904022677479447090484069140170153772581490527414127354160616074553721002", + "6895384240488164328394886306280787519619221638830661804544480929633004206596", + "4658515136387478578036636795496406445039924913153602385704188476979595923522", + "11052157073954616078931066854473659866317341080442505280902800002640551745342", + "7117895703476317513272485541317580581203299108284174784985862192043612615061", + "11352935733935245712134289996897880415894398364255853815847701878760773026592", + "8604082129461527689053990802109642284285696053964777774831497763888725609024", + "5623737564825551678110666789369443368288079659569879868083882156965171468651", + "3506212875491980033005319911745291163646222169476118717947263120849425645076", + "4344195038590324153433993193050567679753794725861621137212243218242738087538", + "5774952297517209343024287158807615762897000884015538649736245386201908299347", + "2753387768202406473356545207377501460569393978100095058274687587494463236071", + "5132599983622986263939528465160896727190861002422413391889750234561979446343", + "5659293172535457385518505635295868981942602180695543614651085109060117916727", + "593956803457249781591424594848514722513645077289881602777429745398643755057", + "10155749350430792551538450353401543279638893063055019531411727455941245251182", + "246638155751990982387082980299771216517194233946235826295677102781734075352", + "12387628691879509101172344411051162696255921682882542134125348687421881397268", + "1520206440588192157943201208604094358306952219260043707917495830729274535368", + "10051196198582212687330861125494776882946695742062578090064112728733811579014", + "5744791074156024709325278380934911786245987360230970354550648943120184549206", + "370523347465751190782842632125759258401949617466343036720454969848089417931", + "11209635832828400452003077441154324640940499508065097950567710419537682793197", + "2351901336886797950896633032517977730666208720839057396283527181939321606571", + "1794655915727926989541572365966463122556436668030930471506076790127986425473", + "2826139832337748910302974697837018998349069274570088780155778071845936839064", + "1800639714878613221145678789392842199984927602548584374685459879778868226402", + "10760814755059506222071807937848275418105414894084330569367051116975756549188", + "3725540889733959306968640744774004605191360952483999219146936321318832904111", + "7603642448216878091303269891469992107515046255117593225219154746307102493941", + "8651996177966540102648391709272164759799061386790598985531697965316071913640", + "12138596735778411973233122657954359833730667481351854523675749952242718998753", + "1235983210420037182147233406413838217488640697925212889531389055458007570039", + "5034061091973427783485166655230766869747272891083602858879710783743841419758", + "10470952655785125235332498977380198469528990511103133421689117103517586733178", + "9986630086480867117434587179407548665680309518216190169992882542752491684850", + "10397700832482858833977813086099800707652773266061845763811982498431343362587", + "5698919095518947899815248096162278027381134791305767111082330873765625070362", + "3054681744169149269837276221166161390133697498843623595623947333897631064591", + "7840414887697399696583260580897980121687125109154381099613294501706014288079", + "2402004938212741663733393078115061617967772253202131597660682277012583394329", + "12346910809641194223391060949204950269263363272612529149521725895359326082842", + "6531561929153843631186625350312987938336191359987411205375036172417062319064", + "5533360593809128032247164199963086479276107007467697932970574184143944352800", + "3565798645835754610602463328852660885439252208091537865082157575609921033512", + "5482720770699777480899671866064537756289688546724063430531018703234166214752", + "921059312112155910701211831354581787224326383921040169014562404475586957358", + "2710179887843281942403024297499542755371711888695508907638092030576661549835", + "8522335084795976864719270476614744540812000936330596355115333613334642503410", + "10656152848577960207430026455204571506403148187191562874789707223789367792075", + "6244947284895748830465318003160281433673366490769703362387540683512447262031", + "11959768390403849296836892851561136536224639279969896666700038748802281382236", + "3511808880837926475786202700914043312806449980470337733099904365864015824425", + "4723766386544868095066427819407757848491793438619380777006120410517567545540", + "2410221248634016448911939792744474021913488715904495548769226261857844637518", + "5890906710667862127644123019454456921078813411527399112975466573278291597449", + "2968034467136605263759032526457758370536135569125768180059943295112770567563", + "1412290940788256583563936896706224199464631436605513731895421427396581730153", + "3375560711382259990289815678132572459919901663079850941743981089853019192783", + "2201356831125228482478625963546792268179929531418701603488235535072982293966", + "10495384199707806264484365414081989062098786491489680496347797415123397434828", + "4295981563434848473713827222424821236025612675631694837659382749625438575044", + "8893076832878489288265414725287295331820187085213829429544383337597801924378", + "3524037516138243463389198022326784355637440442506472945425336952276648416717", + "2302237585493882523154284651070134344721638608631615196662700953218228250094", + "5120990099551190749527751277908766549774399683022865134723333872044771576047", + "2128310386600486246170363598636795799131497868699343736991820425055889902438", + "7874988949982514861780987212020995419084102372619138228132246012832367797614", + "6455704612825467756312830097974894006150344438641932209868640260819085535378", + "7825925367052811276444326358478776064126102316512034853128167361846327029440", + "7519028781421938520553018924493502443460162760416305507692133751884898639098", + "5082497999109496440635866450803121575575450496421082732177649937226342018565", + "9334084038202045540966822881871019742058999877670020585159881983437452403397", + "6520816975610388946240968320237826659329248551799497780185696838189481152681" + ], + "commitment": "4558443041363985458592255444361725384670880311524089583003049546932525505508" + }, + { + "frs": [ + "7631449813147718775672221623209950385407350297939323628538118978089916706965", + "11244670261609251469420829557449341273299473257048787087287418298255381613987", + "8280882828645090427905339237297264381919148391946245708876056848477958696019", + "5797019706011185146300968472375561346255726347085596659702248805832527988770", + "5288459935450910056552858812834486134449376568047269619613113279090476940475", + "8872796011379751426684514172185170559817644523281340620812484945623316736106", + "4003531992508095340732591914449781584022178492363384230733290029139561851952", + "13059590008310003764792506703467985270305215553349874830239020342962824630442", + "358806807438300229977629623337506564485116408159146367343631640783354863311", + "62563823804784053598967868786644793363251823410085249434609375590585073134", + "7430691290051272659267262349549341743984014329443969255903732531733508263950", + "6786033266175096893507605945972788631615619034528489243650628429664750005583", + "9343466126097089920382425185949806759907058120112821429878316222131617463016", + "11092275810936879715416468936122778526386894628969795960681830036582482916836", + "8607458058714419431559030014737769045711674347436671762274766004300543773261", + "1786191444714434318460069743548531335200731760813510337596368795166222032098", + "8497769584728338683832425216697024499545423045258108351788792579832065856395", + "6913288012201025050411518879865469818169881247868095534993022067524276593258", + "4961130689756315565093383495230450327366445178628555041348709146369951654730", + "11942705928018244265810406991133624391907152324698833765508947831546469540186", + "10346608480645412270560163260861523719655706389288007371164709402182071957480", + "4373796065433567127283463396747531479189879144485727118506679345004950054413", + "12106878056701057533029925683780307748403230159006562735845800388313470558531", + "8119069637108638128144892864808387897403264366779116062581460104593254659496", + "6287255032791035298018516026359874892176316055082874311711601996259299304653", + "9734421251843474591762507852530621014775662150495309400944832536778608113943", + "4825067624455751407375880294198795288464592676839466836679004147121500792449", + "4314051862990861301493668933318695990733296778086410284032037119802254678001", + "11141529051033155464246257240732223040376603760234408301477431895325763567211", + "8054215278605943527386140285912066326546219492962065068407678712295765851807", + "4306631727890676300027976729392608166466638311602297877387241891731471576567", + "9000320913070037252322026535677663315756232829554733361015002731640115620994", + "3134552682308644690476902185631601068641929924371173910157509354268571294219", + "10867730836680750433830455598112162676981889118955346598626226324276279686790", + "7121923553525054545481328003876179673240623470534611806534994024156237334268", + "11103712162310935574898980254717791569712110136025303411474273788391938335368", + "8830689374005819000380066782178031443360424055232762282652096444681311319457", + "3345015982184703082704412267166982567287675195509325146014596925009740253452", + "625009571845559887701879502592041896362306645609252658966302580580365527802", + "3831611010084717201306507194316206531920932698993153597171087234289932496395", + "5139748898784305458809546676872252304891655033583597925860021955293623885318", + "1186842530304853897410740708514912811361320163280580596544439972502707690225", + "3748053183877490523740075900531634381460687709801718100851951834849649702815", + "2918755552438920504779971703868603162666603940387646840576342035823713661416", + "5676212999957008467668119000980100940387596142539220651726166012975324572593", + "9286074241931450083905202476417249239790028730412096439490027559633930800205", + "658203363857810039875811533667305967718351983838864297491136876537457691286", + "3869744993203093264697851779270800122788444169458836178430187089408340886637", + "12466165279472642884313532671934278959465973116786601280983190298300220796944", + "5467818083483808415993528758090740367170452390227461566074379188825104038163", + "2354971220642302890355257390205837094254990900184900000288141289583301233696", + "10563128667898577564572763164585517968795504561465832826608602469333895532672", + "6563832314527585721391782192640403023293195586434625456739203374215632803429", + "691251999285807778597528742427640336329879175902903016657424156545657547475", + "1047687631268734805157611343887715424897107159068559522502469735727794807787", + "5503437134523603566298700181692299358658339311489313934816481312767906169605", + "1155817310810520241391268079532455714226711123246189012406893799426689931465", + "180806868703502963922316901500586348964714196946044146608119237562949051747", + "9378461829234428887820355646635271296599886880676390591700655450695525216033", + "10723454691635869258990492639971526615305485862877711171424585570132536866411", + "3465352353103640316729859991764814896817449218287019708929389802242622511620", + "11900846651250685971910094970104378218250233852006016745620823371662551920851", + "4407292570878875244650042799819817389333852673247532139770072026629907680452", + "12388859696020717135740282053742936830862118943263846057387241417493516585469", + "878366365947128367393853117277948527669555310505988804160197010088578178769", + "297151026444087168704237495355303094844845828869384176675808974291159898967", + "9799417683007400873389404733998344674742293757275674806627068953959326457904", + "6227342306356977698599906514482410281140828482424880248515230161347594764428", + "6563341249185746259889951033800582339703007709679119676760949518347339269124", + "4474054036624944924049829514027852617637627449805930956496400043728948269226", + "151589135345669374399718273223168744411106240848998469579490148132599383238", + "1309989560625443968649492682397434683366526473641097166499710819761078321387", + "1794410092541492051782249951428992529204120981582008255040285374848039666510", + "8222220984593597018556473255538643294384291288153745862718760422047956350219", + "1534645340931440384920512463028534916334539334255427439382472628179586578260", + "10480198709309224878845674908032242596101075822473055267376602660672041414367", + "7775922395203056108282913460717619047993995341359609954829987558175289730508", + "12901385875703872355715449637051817748572941169476952831250518677188754162572", + "2034714208014189257659128441739983099411573813103313861119134406224045941473", + "2897517269070597046783630992003894502400459027436944212266135952748520461631", + "6151797899099569178161748640258882910489086010016790228980625165080129098681", + "7365908286664978536960262852016426872851274751670332369926444166006134948071", + "10458567346718075610404280817640200807460297140608039915891851683550839484084", + "5352956754556898271359241523775108934060751872872841064748820713644189827323", + "9869329574066722375571057208001272732215349587587631207337224945166743181149", + "1988046197977994143028474591252225164886780442453130220952479059123321879341", + "7025152409947578630990671485269410288826081838644065482107193127068254282384", + "2168510732486845436838150281087912846295688060724450793051642440821013528673", + "5299956177638300346759686886687407798112509524733539000273213565207584538932", + "9172493291970430769871977948894401056777419736968034544725570683076170795941", + "12464673030143101550820954008405888700259884231014651041975011128495427545218", + "8285297571418355252668311314166600270552045538492071925495684087013741165540", + "11847680945661970673511088266747492640569690772260707281771822361116307207035", + "124915697183262349601718945398763171503111710698371081199181176256963972598", + "1708942758823577027343720905963208593591978373868840939667617307772369932138", + "8604210514561073525061609445085969842130516745224616625413823024657099458891", + "9326955675216042348008372050849829519595789882887245420653760179592363256623", + "11906856852055764814405868250962587696112118682260250420943037602780721053256", + "11589557082393247028267462489419590952188758911548850925544975221588703607539", + "852851232947722895760522352557450230274728229304525443041372512694268480934", + "11473515495917276723863159140265311548501249816328636199519935748666454458272", + "10615492221436431165236165504947651475107952897129746260945258795250112769634", + "8706830938054708532145398276283940491445050943366609715567452953084180049841", + "753670380335808608527425352651860898892635629755806071317600516961611709923", + "4674754121313087656608493858598561501272408134398454418377407862419983572643", + "2558427584244995829302466735012222433396702960599427936936733627839890466263", + "12218547689140938842608171558454407139480250591364092952840382101455780331299", + "7944044679247181782239846854619412361798632189298994376511611846417067747330", + "4333999408324293192259796966152274859706959218382204976327596239461077888919", + "3921075156849921681171906400884626357642769245849671379479154681378637829948", + "3534962160257795369146863340981918789161842777406383201785153001721930642588", + "7855122455566468162263526869199836862827212229493495617280586499860801075178", + "4545630629439352664700210060890791813991017878486565517277699357753379956339", + "11033636665961284070062066358474115377477581567887538504984171836656676866042", + "1427490322994457517643009370711571430671900479265638809123573191358330088819", + "7738449546394707598821960562759295493298999374202039385175573302266597528929", + "6237129202545523741923010677658497704977867783078194262890872350801434177650", + "8161955446667834823601522367655749786727186666295318557758030421428784604473", + "7423213362608627411248453576313680400371122762084705648055448720820758779125", + "5447524717551324464687253227502157360343293432514945388413706478234578996470", + "3981471076977518139144999993658729842095497667668750067189453271211905886165", + "8927017518752572856515554806319925011101200276930772210192646630358814512310", + "4173001255487084548919044945040975163738142099697895072383550464914619939138", + "810138962805087405554472936131934682709538602594274821194233897358145777418", + "3704414823948381771087964117219982746881421567908279532104580155193622067935", + "12256136930537667434609706494002115118744500436654407154059953249032063101652", + "10657502094403702207028457720209113233737054738384903735658723248295884831951", + "9548789904056093666352349480922982517306010335440267306993212088225240335795", + "12660870928237505250471167956026516152425992405296334154465647164457475976580", + "1685882514382628715601093985974488677719252552616844645325806146705490672998", + "10400101122644306493749101655648891230311769873606734377190611594324879656092", + "3998104390580787178196422830835642087099990473011760190190407019084988555263", + "343610153723569358817143916881062845558517555292630929462272993547490425192", + "251271174878982638195221619008618964957280515351651486498073978670026991385", + "4920038184512133918500549691297153826954673838855913537229411620518176236557", + "7386067418239770784007813233171957010750554100490485445836641686635260330216", + "11343501524286166620318164618792961090547671927759391306358854965017480119565", + "9339260810374293143758848461842173624238986339230039338134415928779324867097", + "9327637307825780235802990789399027578887441631670179860816346846286076842811", + "10569372792330377966865667750460299190078055818441707090337902051786083622313", + "8824911404558342520959305326354003808311453784100903237248648074052031535880", + "7918765212907591132299461095551687892013783515887815213069653481539733568557", + "8646114882554473696733346024878743683650428514181594304815155130696693085625", + "11844293695423372215911341297284611265739341182099092827476994590461293208022", + "9394555962815264039314581634063618384917077015086620701203180220556197358468", + "5120316687247874997082091420286929475280439767326248207918400666662076152158", + "8366406603352526375843449506078132326878277331373677603103165140230565545065", + "7715358101936927897493465821616167538105883218369755136102810597946026443193", + "4118104467293069925743584301226125770198935812928329134682308885688782010771", + "1404936693816026332140406870769728513034698480441844934186548677208316879273", + "6917545594435906867067513458232981529955455999875446226615463293967833774849", + "6455644731909365981697331061521598323665788091079445637206723520313270106979", + "9951109126590782847345813538564419824644273797143315737941875918551163271040", + "1494724733626486856731366142771862493068413234312278199363897722676562772489", + "2640909466998724958799027448747417226909296089809617743655517660872190440264", + "6326070282992663414559110001637759882876193864619453126599976797948526204352", + "10972329668029210787434317191552410174968418606027029072261644261136971910004", + "7737028812774433843487940627179758075081443505069330165263016022530204968455", + "1866692689712519014497467406799949744895372984271961048437115120907544210420", + "3576231752965580543681678371357589374838698684595914837213402111462816261803", + "12227121226223281532972464233054306761230459945297008464362961694057354519428", + "7290397078782470426379629381659108686114470930976187302711074298271083814423", + "151576163510160230816509312980586147514456991312308951721652409516127751786", + "9939694979341244627919584085029655207879205508110941731392768267361170781331", + "319093398607069547133011691623067205734420568329963203176780891908824643056", + "3323930614711143768197783425318365378177365746940855738572280946713742253272", + "2488970657769991986425580884247588075589390474963648554267892165700011970564", + "11407322471545972950984204907162952626013250740854997546319937656773961203682", + "2936484905184762364382055320504710707485041991306608832064473042798967735271", + "9456841999801845723970018664437178160551854905137422613974752197472572021806", + "301406804055700064601714192284856668034852937970438011535121145498372989986", + "829152102515536846966486329453501961464893906657244505667361568853545576655", + "675941399576787045990057315776623626032303624492405891970534787845337726731", + "3994285944948417277327874736574722829438725941597364806495391226418753524993", + "2813638385496037582234994079437323773640310962133176552308517512395184790273", + "318850287455658570400136436321994976311631375370549738398441226262624776504", + "6529536747329156593160850500289667752753360203485391733900796011595269478300", + "2058852718243565251922029772118251378120425341392886593041955322724552579814", + "11795901979869753676076226707588646926924040248201709922772282114543188423674", + "6965586032501575880739674273035966531795883799428341751536493179054973492749", + "12111214858670770269160687099169393912038107416363203015500102240522592007145", + "8918623808991543409508397068895063894831247180040751943269234913036483896925", + "7369852889990376245601557755170576416238948781110590663943966860075912139889", + "8242242150651153677905844374166808215668773817963998820237837273600093373922", + "8520192431127905177870598708773320525869977710654626497114768298998432909988", + "8380303815845410702975675593629103397980827057265460548650801648484064032989", + "5724528680962546626506925394226926709254435254222305325411915061692267252456", + "12055296626968568922340831708659742749800308730456553172428777122267827251930", + "2332203581109219418263843758541588210871652967137844460476307493964103641636", + "619796904763353102518170012784626346834768803550153745802737367176955151996", + "228927224188486575065123415135244148334210878306541702808312351781591770478", + "930425050421366330587535801324805715296422474032880123130451807366436443550", + "7417242389847084107267003920906186623058217317944708249343082870529855743434", + "3865528709475636237808714557207622604250327545900362312209782110137322554434", + "9858510196906464142596053104974960290780411245756590217679580128937185281370", + "11342387042075730955659811258533267696357972859678208243471896408736023607789", + "11714433219609216646727422853479477941838764829458436731676872935794162877873", + "7244690599942638483386335903761597557867990052233556447534499036502346778870", + "6527867556395661818372099705845412091539026917538425105592311316476246356741", + "7897501134815046349450365041158116672118446980950622604235808114062703332291", + "8015420884824590425988394299766776472216411866145257238864553946194156973812", + "1597635724808755539900455738775818009393617550635726684944505776860747538463", + "8773846338070064675482658934941173511737916630891810478264104752278499949463", + "5972976801694676376492630546624190105009750786519670696021688622872668293740", + "4666159215209754470575896517724871921260351002316975959952355297280336203812", + "1963392391809111839641975053763110831832771046116499077802074296015911275894", + "6512789688723547979666677417694040035189471070480365739660944354575609003232", + "3999090804007167018512512455099275359033307381164186168164187935680852525697", + "589066943274222872343418165410481454502697706614552575928334890855202547291", + "12961632316652649043899203599311195702932196286144879865757834907237120010272", + "8988061545230007019833132718152991952273935643098772840288673897755416778033", + "9954924524701346788573212606836150390037627048695758528269980179675903751138", + "1955902336047487883006984393615487969880482466339600910603403907014840431472", + "3976285340275497518495765258237735308968868326484630279912972382381881657670", + "2280137405110724373681664643920766981411335830918976575795729690125639847140", + "2423252829794520057346858240326547530241192269864944578412114575659121394318", + "3079898238697580596765863982730564906678907757196076830898346111867013542968", + "11012234223434026058234570525217931865087114820360439723639100514346813621567", + "11437510033882908433645675851785809660365403141971453687058518562914819277613", + "8911489695930220857172708009120371663146537956029588438197807405763478410825", + "12221522325303557387747329830620442133494232261153487339858007126565017369846", + "2066829673058749349673534306598984592309054580853667314379978272397831981690", + "10407785228822220756340667613468424149330199970656465103008547332561031965242", + "10084748224788214917182893545232038680264334487215102783779846887344888577946", + "1127565368218815757156453020073693005343663898665663996319296231427095539653", + "10728499332450333197217547729912754662947066179688745545375920702359646331235", + "10138507323980323238890397214515492360959922704783860967775112165990341153807", + "10375783500635878520593233589680371277011012808271017670571525001146367483745", + "186670332450732844051443818354202422884757473427617498577068243441270134090", + "5343711114517627974377546544788655243993919529443609302904976402974386554920", + "5943181802383497326165305767540970821724402994683765066048552200410250298558", + "900462747907889015595107096218292731639100564535969754863068912192862372752", + "6913764457943251968723976969256440830516015606379838949459068496311432613832", + "12593017316490341610443123106524002810498623541258016554176016697276150800820", + "9222209633089738095764471010777493268888874964894188822060245873103044541735", + "8582038174642684664525967708756501896596571068577990450549172561863799939796", + "2550509107691766178997695079179212065366019114311865997393926651315793340201", + "9228237152340035564904921437536081583987227902518230878329507367974234018671", + "5803647357279284004810775242263806914338038049080261787289843946374425637049", + "8783056111463748130818599319585283185791437290684525136888277234901140298127", + "9123021342531600868619884312323237838549729265334442851124386887696385769501", + "11743534315186304847605212402101603027464607874661143828171352486948758964704", + "3484309847429357635185805564430457270602314186392101600043038537496685224312", + "10585756737001338313307328156405273194628998534234448430086554493847563310293", + "3155814881564853371566894093543265906727027125695308254416457146153917693337", + "7026289602836288180715720299398564513080279641568319171066570763069127160361", + "10139240226067767751918116703883399134540392126922017085038017877904855972615", + "2727945338784226761014610063080128601391911216390974563510315804055354407038", + "1957587730105446344765375707529694628651081532235846073646534700528064961606", + "12866946886147111312359342849532226239300777752645494287944183289409002140779", + "9564876028620829255029177932484467258199920535882397000339925671112003131672", + "7376312619682263959187697747966275907981751207060722714968283664030684738930", + "3100907357115778334587283083499266910690218919934629213807977496026822962221", + "6824491057429887878244810699487774438048494556713763504668875267527260386083", + "12798192949683839194274613948025030668833104196434504377817629965993291121349", + "3260438687244949527720832851941162812404215234374220005376790059556543066505" + ], + "commitment": "966617795780285355078789820239659598646592689549835001916561112634317322776" + }, + { + "frs": [ + "10592616177983873216276025556221360762409941890231541580877687117892369573097", + "8243003607485218305605502295450189202628310882100029980239031340251380873822", + "10271847753365639756592985884705715797640166372349370357443897394069284939661", + "4906294814614251798973015302877538948679871925768105446986451462299045601962", + "9884745414809328405034893426896519685360673655818037397076618316530502888000", + "3979529292965612425414228902582470126063446503668914344051760505631487447174", + "10965853041031027952564631772044307904151414592717263632164870082748739881560", + "5894448001587332782096772652751520584431194969901162468921331032515125654978", + "10583177811801299665188481535513570279818510501146478183571252820384804685498", + "11559541117586578060231154796795295137602608191270877698336999849103497107691", + "1766391837333662623690615264826107140192085030324543842196695479216113323366", + "4727997770295521958773505677262077304498916708446764686372611913491324915649", + "3490592918155779780283207298326030119411815730652982425016546286213374383420", + "7249322735072173645866017669875523254479959932950441543518093891522484034322", + "1649860384590912379811918815618346749869646385561762958674680724876449175540", + "3924672171607551648646534705395540226564687184898903836087498229562268128395", + "5347963746879343353605781774350603888412007411997251130292383011665550846232", + "3862770740283037173255605516598801978814924929293677591851686921403494777902", + "6023577818197242717142873746521459709795574379146686759611207859578404748308", + "12291147599533821753803281011668132477156978657296552337288618671365416920079", + "5644870734048734517826408400951645432240529488225510597324452070863881179853", + "11909635363227019454767466194447200521035670013407657081138560049077328469985", + "7167274351743565889511652281862219181640472107806304181688605147558891882679", + "11996527226079618962703300480386217070076729212858799610898485649938745949727", + "12440923947512431316274341926217361212717543352551502486971893198018826966633", + "1741873560415871707486475200115785644422157644044851773776309544597085556523", + "1249680031333542468880007143930477836600155111889113726675610083501586985972", + "5106712579605334020594949437356905009124266683022018966058700817453720028612", + "7324512730422183454384049935890980427082438243560007063496931514841681505609", + "9665147146928260271388061702956296194215781410007500117450076521897705607481", + "361049042341271803492095055657597831047497692696757668931241162223899980953", + "7514781987180369179170698544873521485283260955511082896928166487739044231957", + "6914877246993940339817968598353245713898749953037505439147233794313105394271", + "1976454552310802629235581156606105319374953017655479096459226587952558080625", + "6324442506238723962459018895057348258623515542037297024953884048348415543066", + "11905862139878291415944778696760366438712455682153019678734740444467906835082", + "734777490826691017835654263516475515001645198484886784645629419584754138630", + "2963215068079795367582865795362037555836611534215412089909663047327664711477", + "8983669379944753570786624869248055401877152500409591682812212691058264992766", + "5656217806575432751998886031610814899690124227130881647135278458345472561657", + "3158893427930779951170837683358384966828778137980096177792960315214155428281", + "7102813317677935268661286822970412005437934251888838206423575764128679225610", + "243873400734232663869384821365082665168964468459593538904132223615855033162", + "7386580928237029723081911771689186321407035900161439795339233904304976558037", + "2947183315091802263303517847113331827965376938921443902344458824093873107239", + "4578122460574616899993013803697065856786014842813256524566438690087714179940", + "1453547398366616224389151229420943772804028426010666518489508970559175243091", + "12525669605679300385725051085884022097811311783482017329636319802966445783953", + "12642903065546929933792758874888967433120049648575059219979586009948766970982", + "6348605907440250777024662871797375943881339475659694046370342025732086749355", + "6966496897838434317928823317726847520837637419705048853664372879098179684679", + "3890554281690694770657486208917926790267772712710501598218242288571012732974", + "6957073591915801267040129792017055566702501861686757296820269839865596534173", + "4552406954895940751307854557009518579863268902776069227286497853481388286894", + "1778559635520464736290597927970893754538858008964604760248329559386821269245", + "8159328569501630145287275473246745028928002763216790428568039207343203297822", + "7833378302343381005749660393793174870026513108429603720827301905563220701630", + "131724899091247445047272414834739358626429317732078296772610514963468288965", + "1591272831593776246450191779006420546358836173949205552684032918602211602032", + "12494594034222273850310860265824058060319622398231739506118658848673570166837", + "819831680710962573748308693447280783786344453563747504633339425814559354086", + "8589179226814099026956093050145197244963222167195827482059842163831703270937", + "535976870018493621609387453631446466882455672857441508679511058462976199086", + "13066209167567284303222046570527956364227556707834267757496153654377118493260", + "4338512756314838154833364412242557067734562793694113564264051507998218370500", + "5571002504499473600228880816624247081438112609413420986340763919919907668866", + "12037574227158710277605149827107931300119954524962357035915943218235885501901", + "11013734431945213570925875674550575297055821639461361798671936616127007851293", + "8601377803271408102164826170062063998416623140151662199868336224614941216660", + "12125026517987079262693880629529104298044946078481372115190050618492744306079", + "4926658802533585681190632179845947490764976596106888002640467424160433992765", + "11925886572221687914626214931693329531230232146073180915354866574037676079725", + "569496225748014757933651682293519308966910310796881815987796647044759475503", + "6058985448692008078808273095864837284004298663106710315173643190002047265724", + "4689369615202223223124533431690368145856766600928548541568563963012878478037", + "4498543831827764573101074239991554760476878105000683378214744093907799058877", + "1928193213217573186772656717087365919468469720249389651449863145063802101605", + "12293430328677787498765951294849276302035470330806694140513565847809982259069", + "7831820095630269114345926408762838148650890007336348074691666127397216516315", + "11807748615380682945344010143182808568255617442659801894110804832757036084634", + "7534384515317856500635824343974750533702827519940358921153386480082966269791", + "8976270587440442829288009214577708961216874111558254874307390261168209749801", + "741931208891218726803465129389716642184568424292031196687955717004205682685", + "8826322335436963478889241792680168306633991337678801150440299024885901207246", + "8202177636341758120586654717768897335280126194377006907156297472088201646782", + "3376507208819510951008104712667585543600074232623784058534371770718502613997", + "10293714798489673721201550830708729059661581953834227958896603586526160054780", + "12959007045575838475948271301132267912631267845879161092170640009791107459855", + "6614302762096332510150055142056915808960872947590751952451199469680986630876", + "1837867077486163655844543442410048822857421424702418197341582668768139125319", + "8414441908420022674672707476020997312491645160914163439792642650820698276347", + "12094108539407320893495953262267069629014625394828887068438019183353953259261", + "10770523455027286665400300061058689986422434029451184408869458554865425333862", + "8189277566336861494993721882326257369813182682421766493946559253518102890707", + "3706773669431422818643846492294154659767411764614911704315904012943260531600", + "11001308982134189627038236331373939088628677062224894550115242565475805933837", + "6670425884829179689134702277168350340767065245952577192246218940098850195936", + "11864522735220259862611346529194111132461844810799853792519556048758530667167", + "2509850243305252347042287444157033379886304033846250267276963288555057595973", + "864979793018045970205627568677834052450114305157310841000159479095163754663", + "9075244393063109445433418549303879052177617820083189817522798302757418786975", + "7881591082279721097293900550574932474021284616763616803914300983032229855654", + "399176413614721364389492258311684111190391735248888047717445349238297776139", + "10716150542609221486694767618131129689718730720615082800928960150296894009196", + "8763988572721801876374892856322286900697001859529878610460507204175364488551", + "9151614130765463356137297687482497378725523920934205051381751591393607622109", + "8861268353274883319972764984539110434757204912502420921685432545807184237003", + "9765517306585251429573296237733996142212661065043228304514849849000202279061", + "7829965823015574290336187190427664697706290094944578144957666997508701718627", + "5751061363933737090039141748952717682539179361206302444099517551164697330099", + "11663128511506784587444943319283182231581756156631215050820848871751356989966", + "1705346913982684173880215024738285676402117413796371168095263981655715010241", + "6345251587752086005591366119465454821827015625589066456688890203772743117606", + "9535467631873070905436223677065957593712558039555408915078429248358316775266", + "7750241279746215735059612679897459824608433366267608043061734599731580892078", + "9081143337281332894993447642865057277361750790679004022236000409976599930912", + "11252183923600059364847799254592524559830697780370502829358841901827302504272", + "10756672362832802729355479670571878747564366486959284216648165639485329790241", + "11680351598989345751170130115561005762745738387457272148775715716896719084861", + "7159717183476682379624322499012666123218285417571079190188757150098926693587", + "5867590191365285674608744161624353869069067031806031508515869173999525825255", + "4124729861073090351523832763948252568108841123728378975775849431044000033980", + "1942110687745738007020469162916755404036602955625033150474102140730619239400", + "7981141299832706257250265184210958406386457241024389204733126445242634314931", + "5560576201019282371127147088711902296042695895635416793591403984040146196907", + "9643288379822332819110777983107249004039387293296208150511933542829895239398", + "6627347942717678642586908753004615271077741828351180743181294807687538835826", + "229953901001369869417925166241966440768319921341000594772669677219045825258", + "3203720378492283264933723038574771572684122149409526761711361797497673326503", + "11999732848048319727065491029381680744915151187324008196096829220333839140615", + "1130409820400317324599052143332950600365468063166183788287133430526913550705", + "4283481212379397869194237992431677316671805687631696465379714245575932026835", + "5785008116847983105924734314932704480282990284172857723728179504380056117679", + "3691917739550643800947160989151045984254998771484827658611297613362970222410", + "10456604631157008354389062152934816413978222914056935724381542687486092339735", + "268137549794675515271948813458186838806212205335511486364043503755650107948", + "10951176533636825452155877845064994962436683375408768277579399667113740093155", + "5114940818503072387890303269884777739193475464306010241924574789437130733386", + "8733615097580915474271562801066796316037161528963695584732466519359985392860", + "5393929234098526654205842364884886810241111028778046844394543524027789430600", + "5514391399442872164727179047111440004507333193000064829440692467669648882592", + "6881459963625108398813629676286074349065338993459142515584392967655327894469", + "1550464837522691856026378075637466354375463016893271641082012876703643325892", + "11078670564086703262554923322257138350570488090013574526498456307670741196659", + "4953940884476760004142312447805479399969684757128456868972550799211238417959", + "6416778757404358330595813850633998028428094950965897317468661646765656389415", + "7370437136856407292585197801005313531621736460691518448322789960455849435107", + "3939070844198690139064505974576086705380675703676378090706586540518297024652", + "7253360164054034443916147591122126060428277118925440995256028486377563003940", + "5083085647443418357183107173168513342113806886411784277738810107106187340594", + "2312788932771633885208487534046810593185107380397674347954259362658116417820", + "762517581006395076905167844896874745364011044020747440474117977122700494494", + "9691038653160178937689060506555203182061141685394108541918205087017151271242", + "4573681775361724591003093831538771658161601932803747025562364227347089086798", + "2752600452380157706509290653245080528520908131619434962126479948172208173913", + "1801441705734799822698833621324148068661710306715352891906676180702680811103", + "4637374529792436045405766009626011049611864725526466648318186072898748002193", + "2537739368946634432897672055845095114740670803338536611076263408037834085040", + "1728515014729016912219742365757447482860906545986576374629178500099490308180", + "4348032357349319363262625172127439155737438435179964105664721739753077295234", + "9730709224001159720261284580186389970239041175658927785412294082815021812912", + "10242375425217575153990958235416975514148575767559626031413929830339417029054", + "7594951179118851645785897728392860956099288019824159591225578594150592636293", + "12905286267145666202162562576644376880334956704927198663358927279729026344123", + "3841013722232728736127084247300541304650294690382910302064573258604827928209", + "1077566100419966735976687242371015542770218767697097362562155898832091726619", + "7482466309001313883950964125946160248193629599197466350591908863251405904008", + "2651166117787984791591245665706631436203119296705268957941504816832889162924", + "3355205786823329326422932959008344787038674411682868218479641309346041941044", + "2060590489226936159034499877037504980902149034291363690300951282097896488448", + "72958372681684047331900760895002296130712654377782903497691820516419923839", + "4607493059293650167709255277223511558233887008336515523234432236518291593727", + "12131000618192985740873807622859257283038431833878687375595344663165137101095", + "31148165262481482996957394526373204215654560370307557788612511707687312336", + "5126590646986548452417471960901181360357491237376997484473767240648252214961", + "1810579055441610097970816910280807834613455072896517678780204645068933095185", + "6446550966702861028802338593831094665573211392022017293462908970159900446899", + "6467880506032744573761446105354561705400454916912673698034042180780008816152", + "4722676196362206919396846493866571281984218811341540894761766552177499661930", + "9584397811469099383116976965564898572305737706463716606775808477548775611129", + "5106639699710109740673870475974252280501506595263275282596706051548003717688", + "1854827579740256571892738170096089901057157154437971683421294906091165038544", + "2131337705036773563717516512729656372975266219046037401395332765413713353559", + "7593122805291592338233618343227066624412045446687931924303567736251767750178", + "2711139928539595140585283324301094855826322240337936778286357970322119809490", + "12266847463843139665203922490295605839861364075501229840942254594808551170649", + "5926496668330426378939711945356366819787082775655536844493575209779268955877", + "11063521700722644708409963207605167675311195370188181769337718612808628819285", + "7527759426028242091086451488409021377572584245450102700496069169737546260789", + "8353234185340543015859654203691815494047053342159700975077157658821706381056", + "6778091562297154746662831639494358825841663995360819628287651477485961098407", + "1713491397430294296777864036198420910046416319530248563550426737676763720585", + "7860874177176320261163691200033574659997525388758403611417780667997256539151", + "2075322587147560685525741117853652704309618752654053611393633117008652086433", + "10186295936514852090760183089455543346745795767149133092159574482154296346388", + "3673087153765469717171614381752557813575433207293649032461321368440490106892", + "10852609984828772527887879911521135922269071011544206704220407435453170747206", + "11987974668952858638349856816664715263225084198592274748409255410486459010898", + "9187194422364208698990438010676247604374009990959031051188958085133393440073", + "4996656277279701419327007979835110122306652548180892060284731645784399761967", + "7825618349900915025649874291970427284215759530668885488726762553666645385784", + "8200322408036494303387119885825634270059631744720832538652392584036242805890", + "2045536565189590396866465995212079511206310431989850714601490457597888388856", + "1463580384516726328316471644997980781169376238260478225596174831004060711208", + "12675726923066549674413390361607922449719944535606822949411954855556370973946", + "6187304439985501012130237368516722129574767889971362645318861678270874618081", + "13026371827345221535088133244131105003108095250691126072938198044719141569018", + "8959866266983018655519284365694830559797911418754204392085688519292484290233", + "11350043911666244732289338791994184394266140928142670227415873653802780256660", + "9554796194363901112275369180676965812561342441731326874030403169582292825573", + "12342289943586197595322880934819873892143909082290428647795118894243981655705", + "3730269262834959573407159782941037089162349807277099826932815088699676980986", + "9624716022142735485525154226593893520471264642879822678881857261302932378979", + "851332705587150664830991917338040527822540529826256999788074441877800462947", + "10120989444107315352165030250622412565693092142788313794202600330230685914321", + "2924724651427680994178412089317140861135751550127485009322604794470622202424", + "801561146930760261619841154430865465823983245058184978029443219128738983812", + "10228932143757984689664129863447622297640395714938178655364368239224782032929", + "9053263314344871160061288342410062653885803091443978065898666207764683683600", + "1096947489481165598042756220964618259918887362647048738890705932357392294230", + "10835885120360756066771843302192785925548143907569388593990390270898979356078", + "9794931867578197188061927401169188094421985407463628083342841024378384832082", + "7730538120853703892378566446897218565683117506590722671137587081058359411828", + "10597045702369249184702235618774802618244998341414842519206579853473869679102", + "2597356250852729195467412763471447291486180180222335075370549261960851046963", + "7239152683891438576461291623395793374213591469281665992750475731919966385208", + "8391058488696364214513189741655566248250513038969710429161810867836618428678", + "3473767341268632231523502350461530609236717082875326525363877144403284107093", + "3881853611566621976811815526651180579108256552272866667026063924616938057962", + "7466634115031559301559752818608274841777832126600314761045405349210013563709", + "877159479553012525293390219279275592282074454476202640611986035429865035981", + "7203869361677627515612622257590992017879315559587462245629815743722818609665", + "5164607394691021388881487333607197424890341013437256545616771578745719350018", + "10294802565155310709565218542696116242598256130132127796651051074125143472046", + "11772232745683912085162645838337264770122302464646035954287489079236955647409", + "10446856117785010028380063813107677037688368596341569273013645703373593660681", + "7126848986314801343651421364617808753710665673618016130463685156978560536629", + "3935609164134832795758499021920158221299107079999577056945934288077803463262", + "9703557286782219172189394441665714180434145385848976478413560750199216151780", + "737903634252881300508559439397044466976483479517643510720164213028179386050", + "4812775499627109021627500788967841582611790314567386505281481112787262229959", + "8535228873254244465498603899859688465889448235556157860413190401538023487623", + "9808286737162117902477918898804600768800546567377970836191249506738789045035", + "7608246655729633092279017326213474577111213548058080331797802845159912165391", + "2484434050523330637086149049672844881951478226035605234996347639312591093973", + "4824507641053782419675589840396899985783355950814515735111888659477898347557", + "4218207940992375366932944144583949004605307459937544078035304349216251093925", + "4287653941738446103783268572809719661484097278661256746191842522742074220986", + "11313968264471613306808274822110733432879883229634425081483902042682865377769", + "9033393987659032148013868137638633137979342658341758333529480088350361065840", + "11375606010158327288738662594035454177056801397585219637244109013980032506766", + "11584325235993701128441336723828770337966444091068905388289906511005155892825", + "7876889895316890719927548060702758035123818298068307425558354644866776349031", + "6113923729295045712094207760127705111827580263655448912021607863190232776797", + "12598357946291490606575898445694891726301174663394563585511670722708392180435", + "5103717287349294135842954631061837403009060801128755687069216279841705586572" + ], + "commitment": "6294258230554837097163693393988150850172664314177790507140193041009946495517" + }, + { + "frs": [ + "4694524292136679426788560688000876451616791796558478900079419686253610477335", + "1850811838493937859123246636080593888265881926254389050627107653157877186002", + "11237969193110523315954879575706709020714624178654925484670560915889369398368", + "2416400540671100655262459786274091735433239100331932603036078509702589771619", + "1243678559964764806248764300818489352886624826484465045187523350215106584539", + "11454372823310419161364862015705519476346823929191639947933432328474503481392", + "4726711400316072099916049198450127584223525140569482561391937976278068077872", + "7444886108205283642983219263040159261058757665819251945780340122169584240077", + "5758035374115960834263536810851120328370953319677453980496210081994516788724", + "6073371331369047446126147188237660132268247946910482666852365714692121795210", + "7739653837939499922897841505750857267118723476287504594258955615517002805926", + "4076453724019197631396846667260782328023871069119710548296652771197395779523", + "11206777058421328552013855379497813329118946096829969799393613780668816079777", + "6370559007034430256615524790951575043377021557899706192821289252998290037948", + "4829739095412227787460036560273348464316341198663977034428145755861105010866", + "4906311258078137864032681770745776290081708690162714260891868943910108142631", + "7362508270181059942069551856768044805624398636186129036122775115492797453848", + "2904090444187300607965142196048636358598651495260091725333080052607811294163", + "5368740589292719986200692966390360973159569989305070251941625129578130370767", + "8837921348974849319185562326553921957629639358447586544314736819585461792199", + "12306136470657327855292512104301317274221513830439473528093084523825617994656", + "11036797119553148627337325726603034547144932423153884599686401717675988070279", + "2489586269566218105631833760043108727388293936414113685806961503297940700850", + "9577658250338877251450943495802953565162367590413343096132530257930361091621", + "2949547083263770453088839636928253002127898202703921138333274225357480300943", + "6211159783803261923248595458761894052396602797009867797174716894478308551729", + "12681427230626190744981462393190461838279067637376660674100687090185735435255", + "7514156258205817983295315645303436499527675826731736631961652914772639644091", + "11237739322646571487672121005701011842061164760771160827038288510976958828087", + "2823234188422850635429666144479227904015294993151341532954458365619388110170", + "10742146761887245802605007828166965826279899463164290369617683493163096408984", + "7204871142033493370758499125557823622400768983721364827963805598413755849099", + "10030865563774164354990457486826194731731664918057369171290669203804106405293", + "12997278932680566625845375607415129054431293240501207270732475344183554180947", + "7383670648177041313916876930454352873665374456479424860524604889905169721130", + "9263880617059122206879105869201520175367036049574502378164928698099931116271", + "2321057066537461841710883471651391609197900058792871385737361535642246882671", + "6869160272433842445346100247047936539874375236376439786390095595432026751145", + "5733928063914290707134441674720395353934600516821199130510348283887112509070", + "5114871895959655087558433695265031317564333966791859753522750921210906464169", + "11848489556365010983426093064878472827246009599245115568524074504268895548352", + "245718073624972961921942177576419607635692847295106990432065442065316714261", + "7769017786890888266287544956210510927016206160586406588358411681139974832440", + "12045390052264082035565458231133689482907981414777969451688280873988620217927", + "9960277680910758314882097463355046669488646256685759212788366726235895299111", + "3870667772280706053862017804625831764934531017372264494179313695058924797301", + "6025210429609234740306073462127519426044590768261040859808911809180173694634", + "2635497497205057166163700223903292711576596847453274441854910236167526679540", + "4426930735212869581007681396966666868774214916456623568692600699323043383917", + "10324417362513252121084381640602642860823253197373311848209738548659177952169", + "6651475453141208547683793284355826360113040359360351062597962867302765314871", + "7161176341167042740680163899231117349779909975652534997449264706160092190487", + "2781904526748029961093145514596712229563935730192047071092534036816950104886", + "5993431909241130845928286116334539881043762913161152002597008497140519054491", + "12066236026753667294797149682615740020714339497354333250428774765588539565767", + "9391904031402643966704610817997356882413217993762312827416415812894858258374", + "2964888778661145871959749869018834531167135302306234678773646259688392324556", + "4381224891036937157409515103081663641904491383255839587575768477986538570553", + "3680951484078890830731349794176569585855960208456043289389098924328955649097", + "259853586504577510827320928367223034530095132485793777393373518289849343254", + "9535180510883716577281149212332289217352624601232666997303806758040378720832", + "7974351797039852203280392892098621652908432839936633179429896977870453493711", + "4894482692187681979021596639625389728081878003188410098214796026266779371757", + "9648292720707257169019610767565212758711504307418101629384461632023432559670", + "8632708945231874702274986542806255542658902059364536311433836090146014145214", + "12819891677874852062495736140162753909740682497342273469913571705012571742302", + "8001100736746789832483724961516077208677366242871739576258059550061620153585", + "265956837574380799771918739183069111585771869471826193459026065699969652819", + "572403335823763282356354029756807430089018969109229513619796957474554347307", + "10010580807742871776120234414037770476969764680632643848312961844416812739535", + "10251562248207510840116127065428817044635456411761981252693355886054794360436", + "8284141167445893877051884694657367067439994906095039611564006919832900640648", + "6739921121497367011034077003344049382827154132793944006180190551573846669799", + "6369192533301680887529768245241818874028649227196102182637884793080732898134", + "2280362348509582521444824909062036940265414300647580224564044139958287827327", + "4076178204698149103895414519204039920086267104141608600088050679635300900780", + "481920518325170789777119556506405933276223695287347905535971071040216199908", + "5837258351588217576700675487657605679611847368360184550690456440579533705962", + "7803182951509283642943107459335388880595231445659136725055120182244799682168", + "9106049941241739628282542977430513614479320954864421878135313464296706064954", + "7625194726762210857888158648313036868405606116977553541836181242839266264058", + "2614077805452355831924739718076320727135145410970547387676710389383351993060", + "5854665556769966266776846018529323661399953120769627370032303588765326813609", + "10840645803284422766893837882767920893074941139344708211586988490700570682298", + "3928980216990806668700669524791694966184996822527091414949016517736767918683", + "11475431602664212452366543046918158433687567419111453368882560497884755478682", + "5400733447654312015556605556520809081167597442169781628005447666677142647242", + "8185745866239853334851579380444384505787861221069516563086598724671986584815", + "3369492522375485344562885894150355380396203148661412294228634505930859183149", + "3945075708743499777375094994700236714204188539157851436737897077456276235789", + "2564958671312001664391159243091538782077130127078977355542673297214968723486", + "11561669100000617034792158388492613706569356026734181754445685898031771011319", + "2362369406150482619152602405832537551887456205598673824741485060169219896764", + "10900874200541372995673669536435709911913074913918509137929175735995742546406", + "814011433098870106391982478195858013298175540017634838905436100281681421416", + "5399332300346594313349692750217972853495004379105259878842380037846428921689", + "2552609545471751946443920908107868603979150359893842721052544809513103080541", + "3389381002356183462765594869019488902004342392723187929122559633383486095320", + "6808229775762732135564618474024396307492676834430158955872427412478767100192", + "7559862629928292512546836153221016732092522578943964277876297075236333546750", + "11297399109497488566275028271662486387419720319953749301555510570564330197706", + "6708495046753066499035425202808603994948955812605108284862113031245063799065", + "8421355542035317049440563218989749497351062456302238481796112917167495366669", + "7768757788951786555745190265837135964441985810565865121535148065601545459525", + "10031671152897394786891026035397201537435367014216214397418722464289218412330", + "2690957399407727412245828955333519449553249774393452331994449704143684276232", + "1113940730958013473868835608221380872260901722956677699241018670706694622374", + "8935702604769392595314884288850123380660549274655421108648075491702336864269", + "1015159693063508946897199727740371342952855167330083859084096894075269881918", + "2418709514197983141441890478464448678558127987957071123028976407706044299911", + "8035522799258619885984406763861459407313239608471430205810930109034238782493", + "3299418280669149198085414766372686778012539343737832025306104714532114468336", + "12561404470261012125361410092901202444113812414115486915042077635999717125805", + "3387152111272331804472521770938970554514729071716491271872484574174460460076", + "778553523687705846087576216996917823833037389745734879739084340659240998272", + "12493249052213295893851985653163239287737850130463621261991440312547672190842", + "258631563312385436257450304350436276331063570420109602365200329914229840650", + "2964438304922130733180903746856806915558862324848445070152502880126986738270", + "6768104713354753940504808928080914399515528198016867134130255988200014098688", + "12377722818896990074117584312202774080826418572893029788820223970171417938210", + "4143071446673799585759110029012955871140628657295791776602587192643163340034", + "1340007468347077337930741756720344546065617117896391209059897356661313220490", + "11794730768692655255977235744339494486271404326239628474392867016852960204444", + "10792139395379770303970556017189528655471714673934356314788228754619978540869", + "4190262499910247553801744658631111992029060294511970319824751285447433912131", + "4442741752113838546434389585893020365083475510308361083695640206247188808913", + "9022137228257834065412878064335074710309804318497428347038834319680946102964", + "1095100930346370222000218099203607880016846281362962409690412095207400594557", + "2573951618776346813423527149169640163527683843981646917346332459311638714722", + "5962423404101072534785070038863360746040775795256897792600515770443923723716", + "3810467087220742171675590460216367316784005571853755031455154900020543058080", + "7112036940029494837630602289184056510809087182224497482011952427512652259309", + "2053065457708329112916420957658438445365681967859440555859218792472318946384", + "1166837303475779119313921547435748450958524453348812487742036359775249495333", + "1842858837746938503683393649143642893535061791288432679077858658946760427540", + "222891186423922947066086235334576943031394409063951394662745117131931449697", + "9488670668801842476659454750023116986695975641010990427252516398585858118331", + "9911551427022844194022355905614149816257188265757628857204833555801344919017", + "7198525721461152682021324890254339117055959758469173515844840613351785012550", + "702283493247114890133966659820903950844653173479343351016886804490065666856", + "542387201601607994158206968384564451858251013416925447298451333288284014926", + "220021078774803161498565207119201651747729985806244544204622344760561849784", + "10591147703512246643676806441799463125927554245491489205357367712907092538012", + "11237914866921944661827206535021598755952475538923067811768342404163618443485", + "9670532909666860982926993065658533777835989753202078750645527322001987900659", + "5789612080106515785609927981798512176928473707779592754548079671246457582177", + "1520618665590098184559757364002281334325653361723291862355351433403034884641", + "8977865467581532957948588988233094929223951718738165168626932985721201441808", + "6230463998249236625171065377573377514831447999689778505722516557045330309832", + "1161374035632933954702629587975908516049715106824087021955137623507173378337", + "12141514115859391100442878666827109860767032965523065924768984568518829307537", + "3825175688007728963029006454287771980007659685119008284304935273560509651384", + "1829803271783319581890503667492361395853949671865208351813940641350016668287", + "10538117917882258122944559170739209049896253182531071930708106070976060245740", + "1225538503633412608284662252158250371214739714046762782719068370540410204559", + "1646984581037847373528847338800949790865827290550179656268963647728833841776", + "1755702789071339946579297330562913005347478713650412965315963504431425129374", + "4094162735056371790575535079459987008541802643680354814001518127304607368967", + "194891591959503639421257190244254313439546337155691290124097700436099356365", + "4339062589006621468778511749626387249544447167903858969363823785744190410129", + "5551137899787528947664096440542988618646167505903759532094320870999634857456", + "6306744550831121005838730053830542331014009217167007225497748993975837659774", + "5203952279937806352413065418136587550056003100490261510274424454602116595144", + "7760913767657517452274200400158216280356437381961794544073714110717158303866", + "2453147608830555658543324497373855315980482740248144979282127145673973342608", + "9438800552995599293552552624174601390756984468298775279458675514140402211851", + "7053086014927563382893254445001924332380471097874889119110371190288099775834", + "1344465697579499361267844906451393932935167920681241637628750829098269278632", + "10317308735146469121992325709013662623388885917331426268188745405912153340674", + "9919109617529237014855933379111812568742063559853591348842745728019736891048", + "9681862905687663044378241399979276687366529375407429142702550793718260553776", + "4096647177365210662949483820177783849964776383620769344488803848057701802509", + "8683847833945651444362780964789806319499589923757657456203540957972133491212", + "12097707980820489440835496662417569043397766854260764665114230084459514796031", + "6874805753135334738772764721124492170488131529485057073273752695986867827247", + "7816458001231161537486600248764274275134907477459067267006673378664376928914", + "5352022233866179657760517056636684765708103136282835953224191770803303891462", + "5251352791769429145309929270003790410097338813795341483917826721065117674331", + "4651444310757023586804718115427880613719343845656558915370318427852138883832", + "5738221343141818549583379935203812892179466849906119674370650081270603534301", + "1721361532592928357028461322904100001243777032356883156297575026785341070147", + "1787821594578862222778891068991119248030113966465668426872972510330007939560", + "7222294659135033517176995211458361124910178692978142427705463059931020440517", + "503279345446639980853519532450830494115914291689455072019706851039977129081", + "11134208943032681187492258195779065127996884715606055029464261722123520929855", + "8869238995396252166474701061209563292811218445865589066490063739599638594066", + "3082568983542236444338582735422506463177976420433027764809613376095737112045", + "10425146604757562991335225711286895871640601366803816502354595291601134487060", + "1965865380070607207111578931952139175392312427477962069786492198910901327228", + "8220453708078606515641626106331891989055386529258277391105236459223009477171", + "9004848248685953923954495540955200234747455584771982722208893493943741710809", + "2418412391843535636818330131744576277377852575829523217613359683553362790775", + "6099899440592168977626497144797610682215077943249215742195396564781674925137", + "8479196288647818685001016599042686820975446485683929017026161591253532336362", + "10995741444865055213656532691937321841592672581919407263700582752144305870519", + "4332128687940637278652409238486872956296485004305822746837496199847693640596", + "5468648101838635764669971005729137999186099449518907920518076274604549238446", + "12757133071160416745740597758460852527156683124939585376242512634835548365729", + "8502406808533775983863909769723516740579287000659623033802068835120494759882", + "10854992263274139123886476052415773606956370475026126395956416361158054051606", + "12317948800967852119195907356521152675135613833173705292034643877948429124319", + "7157670507664215044498375366496279976138656635401175679269752221165865340855", + "9318226363040624763300799446574704000134821438994887585628253760015852850714", + "3601064249617648931223461823599462360107101103532982297846276302790256213337", + "9954055989176197938129044618367534141522627993119535445912954767290491657629", + "4674886622739731694696580179281928692308787872259111890327109210621657581823", + "12006364262948728631849979742363084294941329635633890030231985883934048413519", + "12553493501727672182353966667706486723475041894971675804666600744800094693355", + "5663569732936002243601024781231957371824417203783585964065753062766566328093", + "11738887404426066659186918774303590859426917875847929737681379389406121580035", + "9200323668353388533025718367759702879190280727185204382019828263090852059041", + "10392403188138018950566209468404386522652353136015139601044198706238655477011", + "5883659953488717787813641098550743022626420288888964068550400909915155877015", + "6153558908967511426632531388290058875580632043847460080569039186834177058647", + "7054509591021772235607403783091468527205453428134681859424711820475459875335", + "8784629824393387231337297358150494116809843840125261555232670887483649468175", + "12176222343494269517040505133525825369209405403869043095651058938065246362925", + "3788716305244776490631420726487522920698654644455488746660043156626228812082", + "6603227842887311420946042056952333328325548338338171052318263518715236999679", + "1578539732726135874717751394205147787398391054711189673809147642506281308777", + "667506119372024271839566602787015659211653310268665152526521352110905471206", + "2285806484122611832068734023877624810853025717931773307499513877041411894764", + "11974802133644879107167901734827123268413231696456122908458812843219117885333", + "7825568245912059219928410588964117842568179029719470252282342835959298067963", + "3991211754295449129556753272652203412323926650397857280840517942895819210389", + "4338461578315737683958982389146542229962661932121276832419633965148418892893", + "1660710999855614428646052621172026399497710353303807655344269563138483962394", + "12511520029097099342994947736224024581584250224075325256074740451097474053325", + "3864309900360588752974640457783720701801768720962210419099101335478821044535", + "10165199757309468926870445206467220024574777623534491897489051280352435275324", + "446589242089981769703751772476170669263785156692630623882931919041510343910", + "9920951592330211253124269640241018975550464847233989015207964962839301827417", + "12684800872536370593086127462580959883091416788648221579790900199230513833197", + "88211906513298554066607462369879629841894727881046841419702569048492952081", + "1018867619588513416235472370706058269521827721936204936615246283862119003470", + "6301446974423754092452245885203921343361859251304608039966280642557803669078", + "13026322082754772854588815400315599292397269540541154566351613495160992550742", + "4678703028130641658786307456822841749401112582732735755383435185113977125406", + "11127475113352964812899682822787362557267377325627783326391756463834655028414", + "5583970169431430496515777439874209481969219375510656166921815822435624411761", + "6681870282495503633912365805417959619179594789688531173180202227059520516263", + "9608388075455079642323694274335563009556233688652503827603441396802308741318", + "3486006962047852380900278227207242408876909991651876030650978748961725485674", + "12049056453283960351784183719524352921069847017756005101029011682949305784967", + "3184046034509743112992372414405653047927064751779980788656436103158252953791", + "217243572627267209026360659956940699082381913151042178428269837290525026679", + "2873460258697609098465460719425777614930673272197186864351079070827203522439", + "12309649655093227158275067569222889197914972510494216340698414126986291643372", + "1938389414997769213875764101567688465481603861343725456859578865764501568929", + "4604744563824272109280778744542171652584012089550488954580210977792245166878", + "11522377921999474270141772466164250537639535481066847988538728641190327783078", + "5465785922947138449655781274553309568568231169896313518624097354822085122399", + "4067815834695693710204546764738857733652210603849913136839294117596811698804", + "10457427404834532653249733896203940391203055318750915489989894472325640731454", + "12191846642124406164202401130692468718938057073305065395891230085612660358787", + "11812344763561435577212965570935762394922851023544454945885537948338967033584" + ], + "commitment": "11431999576129693463624166015697264827119971462328844216598009877996250203232" + }, + { + "frs": [ + "7755929819698182123699177468072156313279475571467582800143777129012585957969", + "10660439602121784020990016668460200907218384553794075034175227426081745635427", + "2699414489617700269951952067619465032904608139824420408280452357670323960874", + "7076376639547536716266754696712984810959714540287315628606865242132465335946", + "10665035059049848773724977949731785975285845792939832664487182796200712168636", + "629049396407363943645651638703874450915592821455812781668381694358191586013", + "4938936932719361877270185859953853847237576486795251144063461358703993185529", + "12649871053795234237751485381766672320468311361065019106072735116705051893841", + "3650220297893116246576344537292151200464051257831257906346712913204287029415", + "13054526685737605271356202630191653690453352667635048104163815649448451290551", + "2251287433240245913058273437568604891443217448117343568464633522849543612074", + "5911888531527391987445073267548455558691626313489402512117928012241222353636", + "13059423121925762133955855060885803458256870576609339584960047298506459185844", + "9363096166260300504690630456184773052486422620890708371774442750462869312058", + "6410056409781965040257583401335595049082227590871033726168993653852245537995", + "4824880454095742682307810096611564961336144982792853555326968833447679382792", + "9479609482199204460096223738012846251833147546744703377869959809525807142195", + "12338908075533845499376016219856921423488760085323950301777955175977082999252", + "1625147939358750175758287173454329876050997112570440116606935798663349500431", + "9555499220440488738912968819317140987241358306149413718222531482470206340167", + "1966208565744199896954937380038268107051402469041089357760029893121350329771", + "5382233841992735434145600154331234429488505505678816692709305623707328341526", + "1721431909181578753859852541245765148699842180592426106460069210913731119758", + "10244255735174220179925081043271275517853159086697030501127609613609193140671", + "2091301591715720480176607615745579128133640719753643809853880066286713400637", + "131938862033566887311108118140188411343058371582178541669547495831516596533", + "3305215383733664299943762091927251792121735479310513944227486230104464047712", + "8059561113953554526220973513677570202022480831988974450204064255965728852939", + "7245446295113909338007572076911298164766383483268852882344199861639058768371", + "6273602273328173056099795792169024015076910494167490998080586400301585725833", + "11903819808009225171464018694792108197216261434516756151948910446439291490684", + "3016252680151678745111654008818985682385203801695330213426458369028005110611", + "10357156580983946233944904347379873410926181167582253928198544675168336324075", + "6250310151880118184936322145992595229749652927002602514702486904654409861937", + "5813558428118365606336860816420597083284277356062904315234621434715339937139", + "7632755519700598633796697372857651840446487905266140785721966240843982223731", + "5929495350735024698793242081804150421724556426638294768211005216025541184675", + "794313695327086565863845228322693102826392377752097150039282847513830436428", + "6860492638445046274636559072056965332557903055949453912569569586198768902666", + "11668456935757502488132781080373930586335410117420241132855111238101879916785", + "2146198494255975066024925129909797843745487246712881307959169725805302360584", + "8756016324104093615908456948290599597335570229620910816726666946659668787600", + "12080855111827861200829414389514206533315438941615168060838222139469153755228", + "5602669565331804457142260197736190971330922073384650528298202734309825662397", + "4534949271463683060540391912990311909707004334604825867416904143651346148841", + "4103763041481226950862996211266329565452206349079609738480803603606298277834", + "3592850099484153141603692019803440131227312016081133828097725663548134379577", + "11667071759171216836635402362908825257730004539027992097915977702532032765534", + "2133260571092576465239069187120786119506242244520006718410007981231315610331", + "1426729638486011891385990328068674586658873102605996811627159612120498348754", + "1295505992382289321501231217859335690561183527368170110761871979673298643181", + "4831367972587409779173583476660699592907827152612321375341776586898091438437", + "12225813513724325848831505543173337971021499658268303567752689590882187403016", + "8566429161315962689343453300995091802703722426932153924628021959760599259198", + "5452147021730702097450265250661858779617182902990432708089165347788643091384", + "7744929230499706293038113534217527542246099097813277910940172166619329451507", + "5754831005595974902676379884260447901753608438410331811091984410054681907487", + "9769502717217030698835270756828567635703164664961440191041547008208195582398", + "6412020925043153048865611784451802515038692907528646430828716454224542379872", + "2885975116648631771260840058372214793850641171469812985525416758476623393907", + "3495569631220234246717980416796067667734460095736613251191885261744002349304", + "6641384814551483235730850027373892399984284493443365721774782290570683255024", + "1053547581997248746660632477859728885240815542634176694251987329126176299533", + "2515063031120523633121625152139293380756908190272117873761429973885258348446", + "3205238600694885623363558501472699807304923182960323604101362120280917166160", + "7599568110008980990426716063135508427175553719209816838878130781352280679553", + "7211893717457174795868732953543908196459497443894598665226290783948334039987", + "4150845484907975751861746104455849633805882213385958848646786317836672409518", + "13048788813464128224810107415065540997116811380948930839127721419301454478828", + "8750429263223912257840910409136762336073190989885287339409834946658515373465", + "5214789907829680658303094559723982585016134590008806615965532881790078002279", + "9675029423121521360806783006652754847675028429029890022386269278851830019751", + "12784057489803074240443595865623786917570692697756261957232993208216863555659", + "13026687521914910156313925119818530857900487507806740970050044683917407081488", + "2870813698889765520500565642756127524221120307385524995761570054390113262356", + "5767000246296212647246279557761525010254875483022134423826558011580971859182", + "2307767794832215228384899930895824233816945936343284988293810043780492113568", + "6319635554846192611710008213048446650743746160248517876930889912371693348824", + "7901079129103867181688063725656978221133216184584545073800707990356690845013", + "2215435631940922856718706091191307143796279679780747715116579709751591784629", + "2288532993295952488095654799473384428550614005049290892843777052137835905242", + "11532331169212947991692587405285182918723808078153184733324686942899512530295", + "10561086159228444901275118758611383745125925666216652881679857247424820755679", + "9296629828594157757714811363567781832520928216719629680254763073029834859769", + "7965780876281372748523479896236481267435522150522300845582819504435681010501", + "4717521819052266012731656738984178512132544214504674810602334924019030896370", + "2870364004286996215499822909203271252361610113181936222296958513683816028857", + "8132700973548502626049935682562695536142680165196299825674955245982376064205", + "2708538797570108532957079702383291552187149057175045822597215924567239939649", + "3700504613975680731423105463779161577977624797930027544953766528986424564565", + "11537348832309172114041423642054716823466255534891704122010723003679572063831", + "9396838554312818752064842865008316272256811682349366340701790667807034567123", + "11445937649129172376797218615748435451018703043028004612997292877348933439474", + "5681849200415933402490216894002296553148154030457413631465848861613026771979", + "10257689550316808726688963403539968301443982532531010783383254596503326971669", + "3749343464470581585413195999539555908276027429340187252468215045680785973370", + "6278909536967799998040233422364427698494195663677887694700073163113824459970", + "5048855016295047531711522628439856533644761473466041462966110010464462109617", + "12090680691776893025061577464221764616119690439756641968904514229568162508626", + "2117549932943411525119351579451919313123534417911253818049816233793063688258", + "10454672028623699118208675769865210868899202680289993112353380485414679407711", + "12416901680742252333277727920463213490320490237017606147408459927628085311856", + "7522706886461088760239404807434454492387326670168461271388968824761640721392", + "8891562764975812318517345059759781163376302648397959681138867937592197676880", + "6621090418218645494766826001201896067651730825065267415651315961485747156717", + "9710631612744506490572017798687192650867200601932796524818961829814648507608", + "8563352339272629562111253082910210428514765267745263250572376645272885693967", + "13029894748255945799876858580365557840006233339614118923568660616324460928690", + "9592573247830684874417160599428529282407022771727647462222915926584856626034", + "4380773124823614286347582119222995322327623405254263043264234818684804357079", + "1003714171985195881639790180686439843079905022331049318889787452220560279271", + "8435002155552072911758689309756689654035386892850033498079452320633527589668", + "3447814091144536025090372317751804271627787646008397577569345009586444005090", + "1920855114108046357982869226610994291362642101212722439958143174512450166013", + "3851695228209778508281532328887506120091952287977842539500289379085394376914", + "6413583154867924309255676661177983519824592046327776766911839918315856465235", + "7352647332456835693585968202187911157313212474156485764476437337841312605349", + "1076613524129394920623063739281026589884942674383227732439678812118898933287", + "32770043022976171002898751111447959411086469777489057661657882166666577291", + "7364159096994446991761770717668955164724875318801753431279554414726303061708", + "11164862590738640964896399427474073068019476256167062980375676953321959564436", + "4393808633074043406533214184391585259313023741649293851757619492806770727666", + "3178925549126742291913982548669549015008140330860586903557055384041857608708", + "3562493936871393531077038772348238019673056962121517419977006059402470392284", + "5581848585312249383502524190365726975339956225297428934986421345026419801178", + "7980089214724597873395999582026290998208799321695454113705481013364489361337", + "6977632305026779651546713871771838845307099587810158526748365306275457179586", + "6630394078403554357463361488112659851035760569279052865284308980443473282922", + "9591527606912084121058890186589522977088595914791513271399115526644463897266", + "5964029547530396089482600423446303179807763912478752277281481002929589172898", + "675422785233726625737596593374874152207476996385500546501188937641499432611", + "471830784690836828378483930911156076140587707079081449249885465672152476431", + "5107514098676389000054270907832413046992395817263162191595984744220215506147", + "221125070399770204623433440408294162547968845017047227487196528168052128362", + "4953321376238242213967894919487690864481148266697193694453739915095134012019", + "72570751054256852030286669171380546012130727364228315214068294957726928315", + "4844293697207568908058094896168956551801612461608201578650722772982968627918", + "6980200787959717257734466215331149321506290022019109554671280760541997855257", + "2957821052827356381382168289372524215135534917794678726860828054989336204656", + "11150745237535944753358827412126139233096337655340542880502934122134666096422", + "1854069803898681898785882861495929857498063485122938801031595727202808913812", + "9639644301158437725240746508814133035333157588026403255986444852675954964752", + "8281406513125680306211159498573825667250451685482031089174115253363226794238", + "6436305936961822139145067253994817345119507717712985763265517915275452807", + "256529731867863554609266860007065173462778448575840678040304925888410411110", + "9332318620009991347316137526292483778259430484841963988710601478061658946743", + "5692738765032076943055229371315447422764295943848669299094547764376047550969", + "4645508488489881858387421262048878241605513784560453801346239106453316176464", + "1711859597905799836832093632955001064690549127855403453343621092729167449478", + "1634267142217641692666966821035956197123102432852067391685452744430699020953", + "6061908869630011047282651164671640291422637318967431501230787825624250991196", + "5368323475318638900617197471254949253984542817724451412058961844819623043036", + "6856862440558882786396207662615765153981420125832095101944788571589585869328", + "51235494637026904497830255286001073665775024952478791004922794144888937531", + "560016337442904027078126634052634019374344522591328194341607427383692768", + "12383086899925770179228023499593678179593245055221345553608980044649009778542", + "9634311886994936268304424978180335075511232287082876207303641774474106767803", + "11185041114834761970923206799844170393908220835567450416986100894317105771713", + "9494026304871385498164968708886589014902276796338099669048003703651278748730", + "5417145351477385095661113938029225722853079641154600675524662920080823829228", + "5871782851760036655366713118782744946129440243675009971943683269142907082899", + "8303212397190832549505110155378848644565601972216710358657205253351847507584", + "562515778601693376874681660365146563033612118889527516725651682916298343869", + "7145278142938873339715421032622203170914284043563444622341170789373339949210", + "4362280907794017185831291398699163473239666257700158645562507616308637071750", + "6355118700597876039849244161932103330346429754681317650407757274354095862652", + "5363255951756330183168370138517610697571565348964243225295167911582917474729", + "8314670305757791354671681544949152912989329558976026085713145631540437209427", + "6126619186572017616483516820999629615824050221955912512614427355104975891393", + "9374735018311636405327043241111932394369706773833347646094361509707537453166", + "75646543905844763458000615195645379007830726518118245232678738343125037441", + "13106477256100102837830656287157223335368440526171620061834673010902030957499", + "9341484966764621135376661577486485477910772602268992312506568897373024543091", + "9356072236214575575424978819553081836309985518443401271778930551398228798859", + "5258427703158562235788617806261541946614682907305605296374076527994688861404", + "7037256688258428221181241925027114998398313461253196931616826968863039892858", + "6328637050469999218227704572737385153351556269272021938093805764000561380904", + "12928090689060384748288398318001818020696282469691387805315499819130491276631", + "2866075465815814836839037118541576187308801283238626264564022610162690953009", + "7324251947738884075100983950061421818659490442366796399427296158373070180367", + "4323655049396643788173440736272499722876321313370997357205226185171596530739", + "4997343670319650631331083398860646695000588493000289901001992587494935045620", + "5990653481240051507282825735528986217511490318751966952622066108820306756143", + "1527676445397179642977450432112507600942083146719951630639454974718749986875", + "3554547474007814470214245608309647840960068100927218063740452058390911765950", + "2696312327008571186221200957618074416822154165756417463249559516139301207959", + "11819889040706096675831097095433351974625250792535926870736425129272002477375", + "1424127032177135479247138601507906295322741476757730269788566396191394627253", + "6323552565512337304388822428934188620139035713573908172994277721802850044397", + "11281328178941654502631404986391524439045727259665445921946715434151083529469", + "3853352336540654440782167968508989902907792898109371852248930742550257498315", + "1742074096902762683538932997977546091569203315279674265721579127905634613349", + "5867332025369035260071394044217768885817965358260356669664566025831767575875", + "265915474021848505159070407154220771196793617574138558803811845665992386120", + "3742473183879767991644084813316686047986459116876339004068562418628376111355", + "1807177542397601786811008721565599337419921719887391431313804123715093774577", + "12649083268785628554008762255439767184419366027076006973101452436963158668372", + "1245107701372412393702129373845766757138341679234390477613926199039851751741", + "3695456975102782401686301429005314669936890259339297909903753878391560552767", + "8339711766454962719246688656917991014549631945872405958297996057217806452071", + "2862229930902112813660100472316925475387780573458671772199687691766624349038", + "7661843986155547899851490685257471328407969418932435696007738608228271023994", + "1438545793962336943744796453225219794106863547590911053391270829622633160787", + "9793398926588639721951063195802256188966201098133195035366488735620697104", + "13040031225258111228450759257281261058086312152869563567533020646143258072541", + "10919623834761234477100215866010169347442699208418115792628205499220906661341", + "150554965461705104075991122328259511233261455309940350784434766700249889108", + "9311676243639282655777649713432700437793168863044248285686004766052054150633", + "6771482342215770957373021582022349584288031662726953080473876783592937178587", + "4424689170571252718480057981678272828471840855502062882404366899136434910747", + "756985585991548199401794878281116761386427953773415908248588079817805750255", + "2308884978716238437895317589857871103447849396392231281888273055749432055950", + "3539845151436566826956656936436118147031292477519511292166670964510841136292", + "613360259338978088744182920314010660180248116606292402137713434359755059771", + "6058623120317753582084583659311504645675981923036654939903639910274374098159", + "5388846210468316018331520413499872229099368099183564669672882508724450837485", + "1886883565057609425648834441068812638048916891498677779197848333039839966670", + "11028883307717639313519104127770800024477396404628493030211271677019416689319", + "6623570183871882027663248084678883388508282803501187145666470481143527999603", + "3892775558990687178257256182123937678543613485010742139084708942037040907458", + "10087864252904974841949152000087795789724892354323513612742537404306486692056", + "8889072796281013738662272035902509247172079140276816713869115113770316119410", + "7181044066296395959377020334173876824962440666024492317418015118986221717043", + "8050601889096119737428455334524123546657341987445863039189324353342543301600", + "10481437872280618851898936185073507861466573517313043889776575713812095164637", + "1392042460885441859835436858985581217800828541137302857082238511676265048575", + "7802141599831448863495623808291914825457246116507908583762844681183612188303", + "6626338531030030620909275736643422172919882577252040791554924600616964712925", + "6277809842974533902673349630703440253838152647646787157145797720259175322561", + "1435083551667401935931818544924880218383358670585543335903877047787949077260", + "9042392074882354729632115138853520059314651130357251994006844275017760293726", + "66317730870466815956328808860751192890735964963908482166160700141551017759", + "9266370788006926110186750808050608527367776262811692084332354247999627311378", + "8851865888910654165842342992382743504903680590521776201879031576452504288111", + "1846127710796365802031621523624803359210530319404487126668585125688801439483", + "10899011224649016056556311109942978698368512807129146832683325127278226969569", + "640617152928465183828210518183403944718166725526255570427670013924733018879", + "6842345161958797933815135844282134939540220805474677243254514998735832005229", + "989567109728945422057135696459203758832218447671146512813153074993564086294", + "7143899462478542653646467458324490279695242617350260968380483653292967190159", + "3350385243106385602402148549933431034096559767133682614111980366725260789523", + "746450694530668337342671272158537936411264370181828581599492416741883898423", + "4186338541990866687829561078415117673973947297525242978687101254566473494418", + "2792033790215195842710316005376136574235034999286424989106482870964894447311", + "7420769685998180407221630764160031002189592513109954636344538725764612822619", + "8945462973119755011395587803325763366546017473030166230880414010126196060382", + "12563424204029466839239923833395930876770008890408059554415595879749403145664", + "9823746850530876931020057310477723185939251357041469676353923465002208492864", + "5597594786704112738431542635106532854436756048941182595553427731241796614814", + "1276749877748967489450000110815224052935811875115336938009512637334398926917", + "8505912141213651931519923019894112473913219384703509138707230280943849623039", + "4609489168301358197658951033798140303867283024811063487128828796813298895981", + "11248000547330774260425851236292062765567529896471679171441070620848391541718", + "5082486908860722586533971870479800866167055216871830615165433815718640248816", + "8011239863355734446244708168466763637837774473561466116984885309673647221819", + "6687903483998216678168429038732720274408574434567447980379415054340811326457" + ], + "commitment": "9079437272323036011754988001161801633515996508659649550096046746258839562611" + }, + { + "frs": [ + "9846966184998353740544620223127476221783438137589312777677192672485555299963", + "337914314504439871375026018556969967206570989198476251342388941506815393406", + "3623284149396686909072133324185490311449355195398691500192909400881169113749", + "3910501135759819887701282064440730408307479387707976770808296375346022238045", + "9121355441478023083121687078238856143381596899559981721580300612795243602182", + "7366669173631162990763516803519583875941488058813772736557241602611279565709", + "7877214214122971395271400293454409433132626114149593917394238172254633731377", + "9150847877549569352333032128629941743672143862049201791128214467074774910575", + "838840143234318130092336073890777426643350245616555243853620202781535211135", + "10828347800182423636783847237300940193850276156461590535274457385761206282443", + "9153716405314363600305843046451045837942818205568484493961010149179678379160", + "4766446693891988041486550854107308063121427691388866778177758569068895442797", + "7918301906494616024274332424655780039730749000257725609062009127209728104123", + "5255324094141870644974107281967556134649276174238754873275491991782855798706", + "11164691722466987571573014246078435477199580999227732306372683446362780340249", + "3846172523050460088030402576610620408552152559388834487964159688294801308707", + "3216936740549998235163497033926862894491921092643106845668771249666839953007", + "5468221886409304812528142476534290592859869597356463151259840212449055021766", + "3128060096876175805888931487027768098456528935421504376563226693080192744924", + "10623147866122409338069535874352947178260093958295625422438406870806431614224", + "12865906199055244168535134824974024368188006250781190778475130847182435983003", + "8846684985160474945926177445750046974110318462123546065480897402275940078069", + "1577429331776916700684050769589377009944391565638664470301068872053508784941", + "11414368660960048715253862490300292684721912962323171522834599314570208651115", + "5500113553361688431803329026903360948870392921521021428162323618393498420665", + "2881734426814954728479085099925890149276931835944843882828521276854680293347", + "983748820784143838178744049842678274641888345580115334345919729954333009720", + "6555242101533294850787303216100627951847914765609417752971288437490945540534", + "5805452320871318953047173847359091371466201449656556175869342020000996667737", + "6252358941983765123215198302886388427393925925155729105282963824731639349196", + "4282752856480070376721797923147170512854761372772519395954581234408801235769", + "10895228111361799472924916911112742584311658764124051084563066544784857294038", + "9757367250266439752512132043942939498738800510090038037731469160889439251433", + "6327011260197581729326838642716120803334949574751422406069460064885449068427", + "9981810195379285932699450562996432949019141252972769619373814807327965978843", + "8450193228151434370281759949525775664420139845545860624687805916348688111841", + "1834951365748393209208487740847656017610534121691646633975674114510610248938", + "6004254921885850803110103970440451785626926175597319745628642679066111477543", + "11546607098065861663793347256428609467011231408805077171512954564423813965696", + "879768136419847515470092244525842188363707820981331604418075675924754918228", + "11478307513725732298219956064698827268858852545554582411244942468847858374341", + "10700343202808223773693076882932524261158836516004050699592866094348925972196", + "4091556914246213005247583582817614051817309361446236518423132399177278487904", + "3757891830700079800772907477236900118824052144075316708490400638713748335716", + "4234484758123624500523833907501328802485391238168576519410690404396604870574", + "7698657296225260355249533582346680296163926631738817580859924789523229735274", + "6528192016407141660460643867353084717018798892294956525386271106940780885892", + "2042584386274463430929873905311394466376133524769107747531573197688161956290", + "12085032439303444511537453696744080897327025763866269889909794950593539540075", + "1410031508012563194873829521139228503621402658491183910343491767824885974411", + "4401493970819000471862062301007257311566519905744285646111608702917970990283", + "5637511919996469808266852936359382572063563521569515776052854536611403792896", + "3740834422602182445817310306634262723723997957650616519700919577687616512169", + "9476857959698037945637903227997457632585398391322353390795522535554361045241", + "12059544934628707733838543871122539919532714944189491032109627024158998784119", + "2089704715070532512856337310135642307259584698501540909722192087525404168159", + "8409510590327798745202156471686773693528712097695067447322300417087954017743", + "6176518194118566225817137045689174638413228298467864622601880780780310212319", + "6015424608410792561760853843575385368234905231068874551662283857967891587002", + "6470214287334186959890244436827731802220110752749042997316220123045737054741", + "3978617992757267168440217913233141716258111631606785719040907360935158760980", + "2256057936408636041201608342339033640154868519093278933954232286200548449793", + "7773567136575389570068400514426234809295967848560489031935831689244734822049", + "9994379258968670743322951294222463216919228184888402126841073767241137430095", + "3772804060786901409867363642903169673175155227537152061049189687481451899832", + "11939703312760207117740494824177169332063675641390361674903092917098665348083", + "6289724728043505706004979581704300761164934001216852495924128858026282387016", + "1311120231954198767288747719936069881193660453046932067686541425482346998442", + "5970561228538775594795724388214282460651392873901801095327928022727869913567", + "9168881182057162558682325153202613126545527682702961092128608728576681866564", + "11555818464210741852373544510060592473296042760708925429374176935820566265083", + "10641944964438595332185008159482341236446355913018943742882286507211472137939", + "9300250805551792761323922544113982117470798556259093516312360112005162830304", + "11509839765570026816344620388842095394181397681019745963027086108896857728447", + "7106364123021357947452993025113166548564187444184801017704004644553340891479", + "10880417665248320643678620362662865855973234250395926475094349276127912322155", + "8615452757787006268521030230809398648682527370791659798026717564306634276197", + "5805810738792641753855190308983054253730797570047079882880368329737382263417", + "1919301815295812647924240617724384813105270959150076821022218996082482237487", + "2950821565247670745553656912174341670084494651352691387128277530079551513103", + "5007792286829636545273142495358593371487203291813070570229310916043095100816", + "10740846675384865149405075799126855431244869011145118822115869978142195848567", + "5697625029991339457917507812640577275004177213470651890597796398213097594983", + "10313970419353071964895090568613853366809764303224564686030932952013996912257", + "12955227725149435536138263115458784792688294309343183624373627456164443233199", + "662035904832744079315240435915915757699138565154176077132077690735650122133", + "1754317768787846452814278768522873926192573127679839224816600960514903730132", + "1921942886368722408662554623571988774471742787650663539581196502522910146595", + "10196344425696283884916680896821806911847513363805169288182077177518046494261", + "12058791821520903264162863595054453296045654211070873976065781965883346742711", + "12541793100436583482100728104819079412543688087298224379437128103878835314883", + "3064626233394663995209439256227918618807406480697945191212871731198819717208", + "1780468317862935334405720819781538343988982431501950614523074321017844336715", + "8258096356954461920251013980254966600507440954091317956576281479474389517514", + "5685044540043240796036339090836631968004879833607755489848552254513373962854", + "2982324663395969116274802682495573986514315495336289645445996859464430690433", + "10614533278862135249576770500603828199414136857789355576558828625272829583203", + "8025569541056750687667424202202140692063261699398737728752852922051951670271", + "5760135559153770421918621586362962611255525154889702973930212547000381922891", + "6189600423767195151760720528372617788110135886738378323168872708308076298397", + "3716503847538838494123646812325431075615028310081210818977130305592949468134", + "853473553795438225755341293363582212800376429954096621427846896596084512086", + "3830657385024141837942663543494638473598406236572558263130830815478605025975", + "13104241749732970134406711917715082546709279245875122282599966996756875945914", + "4397695221854522186655065023708625611400524433326897221408201639204354117681", + "2490538065009647879648397866484961998062569309847517695847714501677461415512", + "7570238816889714175996938333352633926127387567368144645064854378847514076560", + "9384686997385668741456561285096489677908451899204659297649566848113149705053", + "9044595314638174041671390430409476014478852778814581842411363370756888894386", + "227415683078199210315781828781575693469021956738685933661320286986432202977", + "5736927708749817078061875851328909367246766605642685761864567598065678263681", + "1425049284581870918716351679235893883433751680188850433537293390801996069211", + "11831511036049964434415400860014424099373023217609731436984543972217088516233", + "10776640942169754692311304941352666548252331295233612844475194341944190568909", + "4355962357007541118520796896631258798516527749768495981288690934533493613352", + "9802135548757074818735679661241910851505991365903281560476412792439881786630", + "5884380523530727530992274597075337247154629055588237872199119383058574770716", + "735109121271301445384865364724243659088519688999199475256749973150319308987", + "4023528854848916133339855376482689238601529343107470692046896284635886116733", + "10545973742822127737991212213479144371951549268311729863327508221740283691909", + "1566897334377858271390496881926618355443188324926259289489230145610811331602", + "2864895432482324615332666338049632295384511380292507441731195747352258184377", + "4577187614462701377305579595580432065909871502180790518400951737826617678776", + "12163401087908143335757422737399314370158496737536811675030132417149942981558", + "2332444712558551429162296475451633821204479190449181805352673161512865027979", + "7774714058422707603079330634331705293620005053905955777055273687571484768678", + "69969393837045411986069996822574535011340319246452673055504333525640032009", + "10168526788159834120988052866686391852832380189770480048943270099232708923605", + "6062945465505008254928581759290255711465352024758421910956545182056891750344", + "4075941671364517224871422064747421460009952443973602479638835065280334814139", + "11006523174343402056877118998088181788637743465210694527581990926582284433524", + "8716496097573239790581896727974825753415003976712092903478457932897360435974", + "7777872733803681118461755133703549052908064476553707165794317611041957747706", + "2088036769377412059888081205420114338760378716963165421874240730030614911160", + "6497997615870086221453647598436466676110709941665821677602448500869686533567", + "2732034344985600055188596186783291882787663768818454327729591083773889635079", + "5492489173398034643662037224991473116057793740823903659092350838260358076065", + "4811394992462311237099518728641023314287616014821940319241098556759155565632", + "2979558543314895261978329202923781544232752888674847995447330175083493338055", + "5271417349431640698808441403251602485422075186744799559758050911844295076632", + "6743570608250613369370107699709958300342786810624857518499451384698294273613", + "12474044440561823432894334934928875059611019827126762389996894469833189365120", + "438030602644254323175369046925156599322131353720618425739368600629090061021", + "1190991284652380323063199459050942318633758491460738932698320477473508926573", + "6718884238236982827436911014426994164905212695721952051229836843671428138262", + "8672529969533332039400621419892861126206696152150947241314611896283787140994", + "11698745727564194160833173442039282417439540259798307196507003409411028872641", + "7578117465148136203374539530954389081736648784899108369387023942184641490943", + "13001990212021454365336949035322986273438270870597041115363072405589625615694", + "1980564733299714946768411316162200118697290693256443906974542888196965509824", + "3530707067342601351527061824793982210988294245128535045375273904965954352234", + "1859654844731531464770266034833695546231125780749258614586512611196948831451", + "3715791329044955937833419809926019858319564152281674472872654592021028604032", + "4373485111081332829246981173809577401554274117928170830204974522241236038404", + "3098826135743811458635559465035687173712317069258949197967544328414369239792", + "3218197117284567186329968809151687660340606302378029359852023752784085484823", + "6315663566335929241732812435939380348484843991599647162029137513186338789271", + "4213887194159012053685439699863859990363165398821784333715348362469293909110", + "3354897248613930758231161196580983672063881341574249365034469263690907924145", + "5926027369361103017707168450291787275909741751118309463556361327317658705958", + "10349951766614694467257953245444430687291234731286136163193193242695284119492", + "3989387912142026695696058193466677235306858673794178825399306946031887940949", + "10946389174259246937413679567353934637893133151518354249324124700806996456977", + "3277319029701730046409883500575376500213605325866987869333976426336417192764", + "368757454267271887416919569588294456290738820335238830646783890831306691202", + "10024960153629860833743544200361220035784293776970450775700672566593364331676", + "5762902058349679654672082155449375641227987285906318879343170099178832291150", + "349013141969114524307058778494801662952078704204682442018043467121655136629", + "9390592862162570536849052523029157733027798759369085047855111508716087248", + "653390257543700471319265440042049115035583367556908026838875985773399905895", + "11657909533275581767635729105754873602530717787748416346782704618771309571097", + "10411479690842667779286073686217035182098330719441459099195553399001405890615", + "6871815100323695342911992203234834036211964101554550139586621775100690681714", + "9741247495583997434362609284322761550873662148032094901651350573085893066735", + "9897498796673704622399805658297363768986960499640880450227718939922851399785", + "10385981499029890582659993562157211201871629017108748748756872246780746305168", + "2226846904272119834566596833945964133647027673417804207492609787721987283633", + "3632131582706258761400160689548889711841259376842628671170643350580541241653", + "10369147981035131795631095762101214253645762160508591247613667754974609127001", + "6544925332623919422342573135506673327220102177258283329980189778385769162176", + "8392824680348939071493711086315623941389743121540348956584464616200086118018", + "12139165064510434754980429097828843524485603235101843914543625702398528890653", + "5578316833217168106873270827526547114075265711091391371117366248830349733024", + "3828497083991179650531812332635386068825253169233046850803464248891889124239", + "8867180204218383413661434547618759485185718629565760766550441082663064777565", + "3613477842221217381534980332353274054829124910711383093510954408206564051203", + "12255007016213751582663404894682417113653409495372048797872599451242579547131", + "5057616150834595395398609066519568110998237596834119593895936320478606246769", + "261580319147882903938099606378914557156454766242519956809838464542189012240", + "2904735593210391968367647246850378281037009287162498274158001601338298209893", + "2431232625452031629048945609315582176613781029579785967091965005721188233925", + "9916699871102815804870499579449411571161972930566313546888080789695363794456", + "10225263386159627013233891453383569942576554654834595421866205884225579211263", + "2395813164887263117870410114447494814362625569531863605273784883011022005721", + "11723762164870700518240706035880700472846616619262532775597548714914688978044", + "10485615097577307842202251571734876138355742961568606180981529522484324971975", + "292339949055827418230653659852361024251199648066939533234554207546338267268", + "2071489336073437681316501985342550120620787063184585092507269348545127728211", + "9621010907576236635934607321144241117346802570367215999487299677374383605310", + "10732068354618762605586339280144238823369814404659539928022345063433442647702", + "4939386618473651092652761331561332670698689470296282135200230033677846998000", + "10251597135697246519403636556650577496301728950453276053653604932257438571079", + "1444152628707422411299998598103489957221339135389349126492502748994444135805", + "9690791983459816691307595470553961903873372721021296050116910403423900825273", + "5141859377334952003170014584203351717284375776728392730759610233517836943643", + "8308484335532593455426994943478806644904333630432905913504188415674490460776", + "9855465417243425902013373767186258426026514021173069922463798248181744883078", + "1750857026054739627657060835170435483211417151664583086586786164313927354196", + "10721021645833476301371892434502608520388062737161420990344256813605357847658", + "4836311616510310909551033519079497337321753305130583857894206290650510979809", + "1002341778323171599158013597266721446434702528292828488920654067024258583259", + "5394023010380281990830811675020280602155945841551914593490795278106274252483", + "8833729796149396293368852084041351720363662907474467196693493724302942851855", + "3359866592825283414347451827506898109320713071345978993727803013796803486619", + "4857123308761307900211366338214962783297654461633636240344164689385814736435", + "2807740848709378452290201806952550900178838442145254080125718215394664202521", + "13083040127434752721349948663558915962166852490132140388164888466703310031178", + "5748063194999332404409578989391006137415736072986531392066126711488312006462", + "4230310726738718654840184195152646322510677851181367258117552543362947511774", + "1914915789174216172444222079602009844300673062701695803661153897206226634073", + "53231472935531903385810225269744007787996294757687763569908804358424181051", + "9898322813447160131927163761085913305225170516992062908631581916207510919329", + "3831243435191560966984388645445447800330799851183866787162092504190276355618", + "6027546163855986899739494075989611215308679405338002752174754661076049642003", + "12053986664005527484572564038920360642730992434591804606096419330766724977630", + "505877118289220162619876038258786045755873267852221644465961456807765067812", + "498828338201030424030169311200019868416176370446120138106884382867780819087", + "9063382585545586874255361297423110717214749084983139053308266403415069488024", + "8411315393863050012924410430664379499040923570674088638100860691972123465011", + "10692703899932756700836731929861702826959257018629485298390369439871915495476", + "10165805855506880701064725096270863655452852964935113777623369338882742529218", + "10200586879728868570592974018215634954229335306926022874194776736647091366901", + "8224519900290659274059649696633708060544337346311590860179051484490780394658", + "1287065730232031881402503378321788270476561500024305457991050133402564816196", + "1091680012556634186572276649772304057779043313943021830787750647682082381798", + "5242437582816728192488210056046471762870937512153970053284158755488632431314", + "11189496966609851486597795872714112990903108235661230815274847116781324042180", + "7667232521766973661905998606939886956464333094337370432219259603149633688682", + "7398474579100261817169698252605041977108917327598327255054258376583571716549", + "10073672889581088029698795369797316760933460543700719974669988998862000813102", + "8256263118390377728250314467258416695531305224940692898133408534389772017279", + "9077675377654400421789693067022138322024959461134896230592677994589405036583", + "7298852958272823610837357543946617227533433703068384823326946823804803913071", + "6609440167637197602383653584473921108718563182270276243726647761691917318159", + "9358270118177745855917259911620902298410030683495885241439289478091897184210", + "324072513195555818962591213951439066106050118155361361286696761958413370013", + "7882101487250576942806310030551443337089685224651236443350150482993010631357", + "2473620289091067265319811803467010778182523096653242630335938754678968459105", + "13048212243328060171382264059259873917012500477802651034245789473169391287572", + "3754068376681081551892728388771258806806951570822566838160423380549722116461", + "11398699392830076160991173194022428292059332710283012937851563186840367394390", + "3797773242100793033410973210852429149730166365218344349332557519838184297482", + "1276730549424617592473495507372215134408352293888300249972052950011280935287", + "12265521558782461563305073671059366860263370662892259668099451865535027996671", + "8843036055175439637266112534772199468025647235437990991683653600029418521215", + "2620687060777582277065289011531777250708714437257581922975396992976529717936" + ], + "commitment": "540162479731152163824569719456274164222508440550588173229273842102963135688" + } +] \ No newline at end of file diff --git a/ipa-multipoint/src/test/resources/pedersen_hash_test.json b/ipa-multipoint/src/test/resources/pedersen_hash_test.json new file mode 100644 index 00000000..2978b6e7 --- /dev/null +++ b/ipa-multipoint/src/test/resources/pedersen_hash_test.json @@ -0,0 +1,53 @@ +[ + { + "addr": "ed3f9549040250ec5cdef31947e5213edee80ad2d5bba35c9e48246c5d9213d6", + "treeIndex": "12799791566713128344129487910142437201762343781989895398135125439977717568113", + "treeKey": "2e50716b7d8c6d13d6005ea248f63f5a11ed63318cad38010f4bcb9a9c2e8b01" + }, + { + "addr": "1529bcd7ec766191f11c2bf72572aabff770befb7f7a838d970405cb80a5ca7f", + "treeIndex": "103007063076699009359590897535458882830299574105063886589774568433909778869954", + "treeKey": "11250c335f8ee945340b4ff14f1779e6e09b6b1f62f035ee5546d67f415e4901" + }, + { + "addr": "29fae57a7c64d653572b7c2d123dc402a596ada158cf6b231d4fef6386e4bedb", + "treeIndex": "62610570058181606183886372930629891919809392494824294375099646354644839675119", + "treeKey": "08b7ae8b3357ab6a2b6c588ebccecb56dce0058aae14d12db9cea9e74eb0d701" + }, + { + "addr": "dd88161404eb7f178366e5ff8605fd205a8d3b9f89d3d98642abdf27076f5278", + "treeIndex": "52414537576753537551969298885771848714362836123978646629259839023424723308578", + "treeKey": "82743d493789d524293bf3627a1b95dae0015ce9f48bba5e5a303a0aec5a2001" + }, + { + "addr": "6e12d3931847bd94d021c1f2c9818b7fbe6c6d662de3c89b3832d2fa6877313d", + "treeIndex": "27739012335572007254751379080924414410738052256657431900442388385091478656177", + "treeKey": "e11aa52116c53c7b7e5b77ec302583522fb0f0879620754e747eae99cdfb1401" + }, + { + "addr": "a7c1867f65c97d855d49fddeee16bce3c1ddb7495574710aacdc985d07128532", + "treeIndex": "79640400043998737611326288161617750917752622095168616267031294044356311151338", + "treeKey": "0024c0049fcb5f63baa1021774ba6ef67a5720d3daeb1f299e0125e097bb2701" + }, + { + "addr": "fed06e7a12d266ae7a58bb877e76d4c5a773e0efe3f72e52cf432c6b8a84e208", + "treeIndex": "30556744647865105944122581218901048352578130644348709186830610492128249742089", + "treeKey": "62064c3225fc44573ba5da3f84bb2db1fd11aa0b67114555ad4777dc61541201" + }, + { + "addr": "8a88a9efc36f1d77f2c4a0ccd22ab88e14f62cd6680831053fb33f388b85e400", + "treeIndex": "69490879420084483102032188835940183622600405945239580775517469342395928901300", + "treeKey": "9a46d9fbb99ecd7b6c086792426ba8c3a37070fa76cd38c6bf1372f071232401" + }, + { + "addr": "a3701e282edbc94cc662a3e328fd427212c3437b6099dfb5a1e11d86a562a0b1", + "treeIndex": "48301202651700369735659313467078927981009470772072580217889107807147208726885", + "treeKey": "7f2ee0bd3e314716fff89b5bb5d8305696160afb8f7c5f2966483e3f9c287001" + }, + { + "addr": "c6b00ea376447a139f3aff5f4f1773db7407a142062defee88c90f91c9f16c9c", + "treeIndex": "109215306339304144489862568004048252592065523112397664885703099216524468075226", + "treeKey": "85847ff304ec6c7b80b2ad61b9a22f9a3f030f4906d0425bf0b11d2bba276801" + }, + { "comment": "addr: bytes in hex\ntreeIndex: The big int number in decimal notation (base 10). It's a \"string\" because I can put such a big integer in a JSON.\ntreeKey: the result of the perdersen hash bytes" } +] \ No newline at end of file