From c6daf30c5c963877e6615c3ae9204e6d4347d975 Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 00:29:07 +0400 Subject: [PATCH 01/17] recursive aggregation, for real --- crates/lean_prover/src/verify_execution.rs | 6 - crates/lean_vm/src/execution/runner.rs | 7 +- crates/rec_aggregation/hashing.py | 32 +- crates/rec_aggregation/main.py | 227 ++++++++ crates/rec_aggregation/recursion.py | 139 +---- crates/rec_aggregation/src/compilation.rs | 87 ++- crates/rec_aggregation/src/lib.rs | 537 ++++++++++++++++++- crates/rec_aggregation/src/recursion.rs | 268 --------- crates/rec_aggregation/src/xmss_aggregate.rs | 255 --------- crates/rec_aggregation/utils.py | 11 +- crates/rec_aggregation/xmss_aggregate.py | 76 +-- crates/utils/src/misc.rs | 61 +-- minimal_zkVM.pdf | Bin 340262 -> 349867 bytes misc/minimal_zkVM.tex | 65 ++- src/lib.rs | 154 +++--- src/main.rs | 41 -- 16 files changed, 1042 insertions(+), 924 deletions(-) create mode 100644 crates/rec_aggregation/main.py delete mode 100644 crates/rec_aggregation/src/recursion.rs delete mode 100644 crates/rec_aggregation/src/xmss_aggregate.rs diff --git a/crates/lean_prover/src/verify_execution.rs b/crates/lean_prover/src/verify_execution.rs index fbefaf58..5da589ea 100644 --- a/crates/lean_prover/src/verify_execution.rs +++ b/crates/lean_prover/src/verify_execution.rs @@ -9,9 +9,6 @@ use utils::ToUsize; #[derive(Debug, Clone)] pub struct ProofVerificationDetails { - pub log_memory: usize, - pub table_n_vars: BTreeMap, - pub first_quotient_gkr_n_vars: usize, pub bytecode_evaluation: Evaluation, } @@ -161,9 +158,6 @@ pub fn verify_execution( )?; Ok(ProofVerificationDetails { - log_memory, - table_n_vars, - first_quotient_gkr_n_vars: logup_statements.total_gkr_n_vars, bytecode_evaluation: logup_statements.bytecode_evaluation.unwrap(), }) } diff --git a/crates/lean_vm/src/execution/runner.rs b/crates/lean_vm/src/execution/runner.rs index a2f699a5..135e2c92 100644 --- a/crates/lean_vm/src/execution/runner.rs +++ b/crates/lean_vm/src/execution/runner.rs @@ -17,11 +17,12 @@ use utils::{ToUsize, get_poseidon_16_of_zero, pretty_integer}; use xmss::Poseidon16History; /// Build public memory with standard initialization -pub fn build_public_memory(public_input: &[F]) -> Vec { +pub fn build_public_memory(non_reserved_public_input: &[F]) -> Vec { // padded to a power of two - let public_memory_len = (NONRESERVED_PROGRAM_INPUT_START + public_input.len()).next_power_of_two(); + let public_memory_len = (NONRESERVED_PROGRAM_INPUT_START + non_reserved_public_input.len()).next_power_of_two(); let mut public_memory = F::zero_vec(public_memory_len); - public_memory[NONRESERVED_PROGRAM_INPUT_START..][..public_input.len()].copy_from_slice(public_input); + public_memory[NONRESERVED_PROGRAM_INPUT_START..][..non_reserved_public_input.len()] + .copy_from_slice(non_reserved_public_input); // "zero" vector let zero_start = ZERO_VEC_PTR; diff --git a/crates/rec_aggregation/hashing.py b/crates/rec_aggregation/hashing.py index c7aeab40..c8241176 100644 --- a/crates/rec_aggregation/hashing.py +++ b/crates/rec_aggregation/hashing.py @@ -7,50 +7,50 @@ LITTLE_ENDIAN = 1 BIG_ENDIAN = 0 -def batch_hash_slice(num_queries, all_data_to_hash, all_resulting_hashes, num_chuncks): - if num_chuncks == DIM * 2: +def batch_hash_slice(num_queries, all_data_to_hash, all_resulting_hashes, num_chunks): + if num_chunks == DIM * 2: batch_hash_slice_const(num_queries, all_data_to_hash, all_resulting_hashes, DIM * 2) return - if num_chuncks == 16: + if num_chunks == 16: batch_hash_slice_const(num_queries, all_data_to_hash, all_resulting_hashes, 16) return - if num_chuncks == 8: + if num_chunks == 8: batch_hash_slice_const(num_queries, all_data_to_hash, all_resulting_hashes, 8) return - if num_chuncks == 20: + if num_chunks == 20: batch_hash_slice_const(num_queries, all_data_to_hash, all_resulting_hashes, 20) return - if num_chuncks == 1: + if num_chunks == 1: batch_hash_slice_const(num_queries, all_data_to_hash, all_resulting_hashes, 1) return - if num_chuncks == 4: + if num_chunks == 4: batch_hash_slice_const(num_queries, all_data_to_hash, all_resulting_hashes, 4) return - if num_chuncks == 5: + if num_chunks == 5: batch_hash_slice_const(num_queries, all_data_to_hash, all_resulting_hashes, 5) return - print(num_chuncks) + print(num_chunks) assert False, "batch_hash_slice called with unsupported len" -def batch_hash_slice_const(num_queries, all_data_to_hash, all_resulting_hashes, num_chuncks: Const): +def batch_hash_slice_const(num_queries, all_data_to_hash, all_resulting_hashes, num_chunks: Const): for i in range(0, num_queries): data = all_data_to_hash[i] - res = slice_hash(data, num_chuncks) + res = slice_hash(data, num_chunks) all_resulting_hashes[i] = res return @inline -def slice_hash(data, num_chuncks): - states = Array((num_chuncks - 1) * DIGEST_LEN) +def slice_hash(data, num_chunks): + states = Array((num_chunks - 1) * DIGEST_LEN) poseidon16(data, data + DIGEST_LEN, states) - state_indexes = Array(num_chuncks) + state_indexes = Array(num_chunks) state_indexes[0] = states - for j in unroll(1, num_chuncks - 1): + for j in unroll(1, num_chunks - 1): state_indexes[j] = state_indexes[j - 1] + DIGEST_LEN poseidon16(state_indexes[j - 1], data + (j + 1) * DIGEST_LEN, state_indexes[j]) - return state_indexes[num_chuncks - 2] + return state_indexes[num_chunks - 2] def slice_hash_dynamic_unroll(data, len, len_bits: Const): diff --git a/crates/rec_aggregation/main.py b/crates/rec_aggregation/main.py new file mode 100644 index 00000000..b23490a2 --- /dev/null +++ b/crates/rec_aggregation/main.py @@ -0,0 +1,227 @@ +from recursion import * +from xmss_aggregate import * + +MAX_RECURSIONS = 16 +LOG_SIZE_PUBKEY_REGISTRY = LOG_SIZE_PUBKEY_REGISTRY_PLACEHOLDER +DATA_PER_RAW_SIGNER = DIGEST_LEN + LOG_SIZE_PUBKEY_REGISTRY * DIGEST_LEN + SIG_SIZE +INNER_PUB_MEM_SIZE = 2 ** INNER_PUBLIC_MEMORY_LOG_SIZE +BYTECODE_CLAIM_OFFSET = 2 + 2 * DIGEST_LEN + 2 + MESSAGE_LEN + N_MERKLE_CHUNKS + + +def main(): + pub_mem = NONRESERVED_PROGRAM_INPUT_START + n_sigs = pub_mem[0] + assert n_sigs <= 2**LOG_SIZE_PUBKEY_REGISTRY + n_recursions = pub_mem[1] + assert n_recursions <= MAX_RECURSIONS + registry_root = pub_mem + 2 + signer_indexes_hash_expected = registry_root + DIGEST_LEN + message = signer_indexes_hash_expected + DIGEST_LEN + slot_ptr = message + MESSAGE_LEN + slot_lo = slot_ptr[0] + slot_hi = slot_ptr[1] + merkle_chunks_for_slot = slot_ptr + 2 + bytecode_claim_output = pub_mem + BYTECODE_CLAIM_OFFSET + + priv_start: Imu + hint_private_input_start(priv_start) + + signer_indexes_hash, sub_slice_starts, bytecode_sumcheck_proof, source_hashes = verify_signer_index_partitioning(n_sigs, n_recursions, priv_start) + + copy_8(signer_indexes_hash, signer_indexes_hash_expected) + + verify_raw_xmss(sub_slice_starts[0], registry_root, message, slot_lo, slot_hi, merkle_chunks_for_slot) + + verify_recursive_sources_and_reduce_bytecode_claims( + n_recursions, sub_slice_starts, source_hashes, bytecode_sumcheck_proof, + registry_root, message, slot_lo, slot_hi, merkle_chunks_for_slot, + bytecode_claim_output) + return + + +def verify_signer_index_partitioning(n_sigs, n_recursions, priv_mem): + sub_slice_starts = priv_mem + bytecode_sumcheck_proof = priv_mem[n_recursions + 1] + n_duplicates = priv_mem[n_recursions + 2] + assert n_duplicates < 2**16 # TODO should we tolerate even more duplicates? + global_indices = priv_mem + n_recursions + 3 + duplicate_indices = global_indices + n_sigs + + # Hash global indices + global_hash = slice_hash_dynamic_unroll(global_indices, n_sigs, LOG_SIZE_PUBKEY_REGISTRY) + + # Hash duplicate indices + duplicate_hash: Imu + if n_duplicates == 0: + duplicate_hash = ZERO_VEC_PTR + else: + duplicate_hash = slice_hash_dynamic_unroll(duplicate_indices, n_duplicates, LOG_SIZE_PUBKEY_REGISTRY) + + # Combine hashes: global, duplicate, and sub-indices, everything hashed together (for Fiat-Shamir challenge derivation) + combined_hash: Mut = Array(DIGEST_LEN) + poseidon16(global_hash, duplicate_hash, combined_hash) + + source_hashes = Array(n_recursions + 1) + for s in range(0, n_recursions + 1): + source_data = sub_slice_starts[s] + n_sub = source_data[0] + sub_indices_s = source_data + 1 + source_hash: Imu + if n_sub == 0: + source_hash = ZERO_VEC_PTR + else: + source_hash = slice_hash_dynamic_unroll(sub_indices_s, n_sub, LOG_SIZE_PUBKEY_REGISTRY) + source_hashes[s] = source_hash + new_combined = Array(DIGEST_LEN) + poseidon16(combined_hash, source_hash, new_combined) + combined_hash = new_combined + + # Derive challenge alpha from combined hash + alpha = combined_hash + + # Polynomial identity check: P_global(alpha) * P_duplicate(alpha) == prod_s P_s(alpha) + p_global = compute_product_polynomial(alpha, global_indices, n_sigs) + p_dup = compute_product_polynomial(alpha, duplicate_indices, n_duplicates) + lhs = mul_extension_ret(p_global, p_dup) + + rhs: Mut = Array(DIM) + set_to_one(rhs) + for s in range(0, n_recursions + 1): + source_data = sub_slice_starts[s] + n_sub = source_data[0] + sub_indices_s = source_data + 1 + p_s = compute_product_polynomial(alpha, sub_indices_s, n_sub) + rhs = mul_extension_ret(rhs, p_s) + + copy_5(lhs, rhs) + + return global_hash, sub_slice_starts, bytecode_sumcheck_proof, source_hashes + + +def compute_product_polynomial(alpha, indices, n): + result: Mut = Array(DIM) + alpha_0 = alpha[0] + alpha_tail = alpha + 1 + set_to_one(result) + for i in dynamic_unroll(0, n, LOG_SIZE_PUBKEY_REGISTRY): + factor = Array(DIM + 1) + factor[0] = alpha_0 - indices[i] + copy_5(alpha_tail, factor + 1) + result = mul_extension_ret(result, factor) + return result + + +def verify_raw_xmss(data_block, registry_root, message, slot_lo, slot_hi, merkle_chunks_for_slot): + n_raw_xmss = data_block[0] + raw_indices = data_block + 1 + raw_data = raw_indices + n_raw_xmss + + for i in range(0, n_raw_xmss): + signer_index = raw_indices[i] + signer_data = raw_data + i * DATA_PER_RAW_SIGNER + pubkey = signer_data + registry_proof = signer_data + DIGEST_LEN + xmss_sig = signer_data + DIGEST_LEN + LOG_SIZE_PUBKEY_REGISTRY * DIGEST_LEN + + # Decompose signer_index to bits for registry merkle proof + signer_index_bits = checked_decompose_bits_small_value(signer_index, LOG_SIZE_PUBKEY_REGISTRY) + + # Verify pubkey is in registry merkle tree + merkle_verify(pubkey, registry_proof, signer_index_bits, registry_root, LOG_SIZE_PUBKEY_REGISTRY) + + # Verify XMSS signature + xmss_verify(pubkey, message, xmss_sig, slot_lo, slot_hi, merkle_chunks_for_slot) + return + + +def verify_recursive_sources_and_reduce_bytecode_claims( + n_recursions, sub_slice_starts, source_hashes, bytecode_sumcheck_proof, + registry_root, message, slot_lo, slot_hi, merkle_chunks_for_slot, + bytecode_claim_output): + + if n_recursions == 0: + for k in unroll(0, BYTECODE_POINT_N_VARS): + set_to_5_zeros(bytecode_claim_output + k * DIM) + bytecode_claim_output[BYTECODE_POINT_N_VARS * DIM] = BYTECODE_ZERO_EVAL + for k in unroll(1, DIM): + bytecode_claim_output[BYTECODE_POINT_N_VARS * DIM + k] = 0 + return + + n_bytecode_claims = n_recursions * 2 + bytecode_claims = Array(n_bytecode_claims) + + for rec_idx in range(0, n_recursions): + source_data = sub_slice_starts[rec_idx + 1] + n_sub_sigs = source_data[0] + sub_indices = source_data + 1 + bytecode_value_hint = sub_indices + n_sub_sigs # hinted evaluation of bytecode, used to verify the recursive proof, and verified at the end (2n->1 sumcheck reduction) + inner_pub_mem = bytecode_value_hint + DIM + proof_transcript = inner_pub_mem + INNER_PUB_MEM_SIZE + + sub_indexes_hash = source_hashes[rec_idx + 1] + + # Verify inner public memory matches expected structure + debug_assert(NONRESERVED_PROGRAM_INPUT_START % DIM == 0) # NONRESERVED_PROGRAM_INPUT_START should be a multiple of DIM + for i in unroll(0, NONRESERVED_PROGRAM_INPUT_START / DIM): + copy_5(i * DIM, inner_pub_mem + i * DIM) + non_reserserved_inner_pub_mem = inner_pub_mem + NONRESERVED_PROGRAM_INPUT_START + assert non_reserserved_inner_pub_mem[0] == n_sub_sigs + copy_8(registry_root, non_reserserved_inner_pub_mem + 2) + copy_8(sub_indexes_hash, non_reserserved_inner_pub_mem + 2 + DIGEST_LEN) + inner_msg = non_reserserved_inner_pub_mem + 2 + 2 * DIGEST_LEN + debug_assert(MESSAGE_LEN <= 2*DIM) + copy_5(message, inner_msg) + copy_5(message + (MESSAGE_LEN - DIM), inner_msg + (MESSAGE_LEN - DIM) ) + inner_msg[MESSAGE_LEN] = slot_lo + inner_msg[MESSAGE_LEN + 1] = slot_hi + for k in unroll(0, N_MERKLE_CHUNKS): + inner_msg[MESSAGE_LEN + 2 + k] = merkle_chunks_for_slot[k] + + # Collect inner bytecode claim from inner pub mem + bytecode_claims[2 * rec_idx] = non_reserserved_inner_pub_mem + BYTECODE_CLAIM_OFFSET + + # Verify recursive proof - returns the second bytecode claim + bytecode_claims[2 * rec_idx + 1] = recursion(inner_pub_mem, proof_transcript, bytecode_value_hint) + + # Bytecode claims reduction: 2n -> 1 via sumcheck + bytecode_claims_hash: Mut = ZERO_VEC_PTR + for i in range(0, n_bytecode_claims): + claim_ptr = bytecode_claims[i] + for k in unroll(BYTECODE_CLAIM_SIZE, BYTECODE_CLAIM_SIZE_PADDED): + assert claim_ptr[k] == 0 + claim_hash = slice_hash(claim_ptr, BYTECODE_CLAIM_SIZE_PADDED / DIGEST_LEN) + new_hash = Array(DIGEST_LEN) + poseidon16(bytecode_claims_hash, claim_hash, new_hash) + bytecode_claims_hash = new_hash + + reduction_fs: Mut = fs_new(bytecode_sumcheck_proof) + reduction_fs, received_claims_hash = fs_receive_chunks(reduction_fs, 1) + copy_8(bytecode_claims_hash, received_claims_hash) + + reduction_fs, alpha = fs_sample_ef(reduction_fs) + alpha_powers = powers(alpha, n_bytecode_claims) + + all_values = Array(n_bytecode_claims * DIM) + for i in range(0, n_bytecode_claims): + claim_ptr = bytecode_claims[i] + copy_5(claim_ptr + BYTECODE_POINT_N_VARS * DIM, all_values + i * DIM) + + claimed_sum = Array(DIM) + dot_product_ee_dynamic(all_values, alpha_powers, claimed_sum, n_bytecode_claims) + + reduction_fs, challenges, final_eval = sumcheck_verify(reduction_fs, BYTECODE_POINT_N_VARS, claimed_sum, 2) + + # Verify: final_eval == bytecode(r) * w(r) + eq_evals = Array(n_bytecode_claims * DIM) + for i in range(0, n_bytecode_claims): + claim_ptr = bytecode_claims[i] + eq_val = eq_mle_extension(claim_ptr, challenges, BYTECODE_POINT_N_VARS) + copy_5(eq_val, eq_evals + i * DIM) + w_r = Array(DIM) + dot_product_ee_dynamic(eq_evals, alpha_powers, w_r, n_bytecode_claims) + + bytecode_value_at_r = div_extension_ret(final_eval, w_r) + + copy_many_ef(challenges, bytecode_claim_output, BYTECODE_POINT_N_VARS) + copy_5(bytecode_value_at_r, bytecode_claim_output + BYTECODE_POINT_N_VARS * DIM) + return diff --git a/crates/rec_aggregation/recursion.py b/crates/rec_aggregation/recursion.py index b0b19f90..a6d12811 100644 --- a/crates/rec_aggregation/recursion.py +++ b/crates/rec_aggregation/recursion.py @@ -42,98 +42,12 @@ ENDING_PC = ENDING_PC_PLACEHOLDER BYTECODE_POINT_N_VARS = LOG_GUEST_BYTECODE_LEN + log2_ceil(N_INSTRUCTION_COLUMNS) BYTECODE_ZERO_EVAL = BYTECODE_ZERO_EVAL_PLACEHOLDER -CLAIM_DATA_SIZE = (BYTECODE_POINT_N_VARS + 1) * DIM -CLAIM_DATA_SIZE_PADDED = next_multiple_of(CLAIM_DATA_SIZE, DIGEST_LEN) - - -def main(): - pub_mem = NONRESERVED_PROGRAM_INPUT_START - bytecode_claim_output = pub_mem - - priv_start: Imu - hint_private_input_start(priv_start) - inner_public_memory_log_size = priv_start[0] - inner_public_memory_size = powers_of_two(inner_public_memory_log_size) - n_recursions = priv_start[1] - - n_claims = n_recursions * 2 - claim_datas = Array(n_claims) # Store pointers to bytecode evaluation claims ([point | value | zero padding] per claim) - - entry: Mut = priv_start + 2 # Each entry: [proof_size | inner_public_memory | bytecode_value_hint (DIM) | proof_transcript (proof_size)] - for i in range(0, n_recursions): - proof_size = entry[0] - inner_public_memory = entry + 1 - bytecode_value_hint = inner_public_memory + inner_public_memory_size - proof_transcript = bytecode_value_hint + DIM - - claim_datas[2 * i] = inner_public_memory + NONRESERVED_PROGRAM_INPUT_START # Inner-public-memory bytecode claim - - # Verify recursive proof - returns inner-proof bytecode claim - claim_datas[2 * i + 1] = recursion( - inner_public_memory_log_size, inner_public_memory, - proof_transcript, bytecode_value_hint) - - entry += 1 + inner_public_memory_size + DIM + proof_size - - # Bytecode claims reduction: 2n -> 1 via sumcheck - - if n_recursions == 0: - # Case A: no recursions, so no claims to reduce. Convention: output ((0, 0, ..., 0), bytecode((0, 0, ..., 0))) as the bytecode claim. - for k in unroll(0, BYTECODE_POINT_N_VARS): - set_to_5_zeros(bytecode_claim_output + k * DIM) - bytecode_claim_output[BYTECODE_POINT_N_VARS * DIM] = BYTECODE_ZERO_EVAL - for k in unroll(1, DIGEST_LEN): - bytecode_claim_output[BYTECODE_POINT_N_VARS * DIM + k] = 0 - return - - bytecode_sumcheck_proof = entry - - # Hash all claims (to feed Fiat-Shamir) - bytecode_claims_hash: Mut = ZERO_VEC_PTR - for i in range(0, n_claims): - claim_ptr = claim_datas[i] - for k in unroll(CLAIM_DATA_SIZE, CLAIM_DATA_SIZE_PADDED): - assert claim_ptr[k] == 0 - claim_hash = slice_hash(claim_ptr, CLAIM_DATA_SIZE_PADDED / DIGEST_LEN) - new_hash = Array(DIGEST_LEN) - poseidon16(bytecode_claims_hash, claim_hash, new_hash) - bytecode_claims_hash = new_hash - - reduction_fs: Mut = fs_new(bytecode_sumcheck_proof) - reduction_fs, received_claims_hash = fs_receive_chunks(reduction_fs, 1) - copy_8(bytecode_claims_hash, received_claims_hash) # meaning fiat shamir has absorbed all the bytecode claims (point + value) - - reduction_fs, alpha = fs_sample_ef(reduction_fs) - alpha_powers = powers(alpha, n_claims) - - all_values = Array(n_claims * DIM) - for i in range(0, n_claims): - claim_ptr = claim_datas[i] - copy_5(claim_ptr + BYTECODE_POINT_N_VARS * DIM, all_values + i * DIM) - - claimed_sum = Array(DIM) - dot_product_ee_dynamic(all_values, alpha_powers, claimed_sum, n_claims) - - reduction_fs, challenges, final_eval = sumcheck_verify(reduction_fs, BYTECODE_POINT_N_VARS, claimed_sum, 2) # The number of rounds iis compile-time known -> we could inline + unroll (TODO?) - - # Verify: final_eval == bytecode(r) * w(r) with w(r) = sum_i alpha^i * eq(r, point_i) - eq_evals = Array(n_claims * DIM) - for i in range(0, n_claims): - claim_ptr = claim_datas[i] - eq_val = eq_mle_extension(claim_ptr, challenges, BYTECODE_POINT_N_VARS) - copy_5(eq_val, eq_evals + i * DIM) - g_r = Array(DIM) - dot_product_ee_dynamic(eq_evals, alpha_powers, g_r, n_claims) - - bytecode_value_at_r = div_extension_ret(final_eval, g_r) - - copy_many_ef(challenges, bytecode_claim_output, BYTECODE_POINT_N_VARS) - copy_5(bytecode_value_at_r, - bytecode_claim_output + BYTECODE_POINT_N_VARS * DIM) - return +BYTECODE_CLAIM_SIZE = (BYTECODE_POINT_N_VARS + 1) * DIM +BYTECODE_CLAIM_SIZE_PADDED = next_multiple_of(BYTECODE_CLAIM_SIZE, DIGEST_LEN) +INNER_PUBLIC_MEMORY_LOG_SIZE = INNER_PUBLIC_MEMORY_LOG_SIZE_PLACEHOLDER -def recursion(inner_public_memory_log_size, inner_public_memory, proof_transcript, bytecode_value_hint): +def recursion(inner_public_memory, proof_transcript, bytecode_value_hint): fs: Mut = fs_new(proof_transcript) # table dims @@ -177,7 +91,7 @@ def recursion(inner_public_memory_log_size, inner_public_memory, proof_transcrip logup_alphas_eq_poly = poly_eq_extension(logup_alphas, log2_ceil(MAX_BUS_WIDTH)) - # GENRIC LOGUP + # GENERIC LOGUP n_vars_logup_gkr = compute_total_gkr_n_vars(log_memory, log_bytecode_padded, table_heights) @@ -207,17 +121,17 @@ def recursion(inner_public_memory_log_size, inner_public_memory, proof_transcrip offset / powers_of_two(log_bytecode_padded), n_vars_logup_gkr - log_bytecode_padded, point_gkr ) # Build padded claim data: [point | value | zero padding] - claim_data = Array(CLAIM_DATA_SIZE_PADDED) - copy_many_ef(bytecode_and_acc_point, claim_data, LOG_GUEST_BYTECODE_LEN) + bytecode_claim = Array(BYTECODE_CLAIM_SIZE_PADDED) + copy_many_ef(bytecode_and_acc_point, bytecode_claim, LOG_GUEST_BYTECODE_LEN) copy_many_ef( logup_alphas + (log2_ceil(MAX_BUS_WIDTH) - log2_ceil(N_INSTRUCTION_COLUMNS)) * DIM, - claim_data + LOG_GUEST_BYTECODE_LEN * DIM, + bytecode_claim + LOG_GUEST_BYTECODE_LEN * DIM, log2_ceil(N_INSTRUCTION_COLUMNS), ) - copy_5(bytecode_value_hint, claim_data + BYTECODE_POINT_N_VARS * DIM) - for k in unroll(CLAIM_DATA_SIZE, CLAIM_DATA_SIZE_PADDED): - claim_data[k] = 0 - bytecode_value = claim_data + BYTECODE_POINT_N_VARS * DIM + copy_5(bytecode_value_hint, bytecode_claim + BYTECODE_POINT_N_VARS * DIM) + for k in unroll(BYTECODE_CLAIM_SIZE, BYTECODE_CLAIM_SIZE_PADDED): + bytecode_claim[k] = 0 + bytecode_value = bytecode_claim + BYTECODE_POINT_N_VARS * DIM bytecode_value_corrected: Mut = bytecode_value for i in unroll(0, log2_ceil(MAX_BUS_WIDTH) - log2_ceil(N_INSTRUCTION_COLUMNS)): bytecode_value_corrected = mul_extension_ret( @@ -263,15 +177,15 @@ def recursion(inner_public_memory_log_size, inner_public_memory, proof_transcrip # Dispatch based on table height ordering (sorted by descending height) if maximum(table_log_heights[1], table_log_heights[2]) == table_log_heights[1]: - continue_recursion_ordered(1, 2, fs, offset, retrieved_numerators_value, retrieved_denominators_value, table_heights, table_log_heights, point_gkr, n_vars_logup_gkr, logup_alphas_eq_poly, logup_c, numerators_value, denominators_value, log_memory, inner_public_memory, inner_public_memory_log_size, stacked_n_vars, whir_log_inv_rate, whir_base_root, whir_base_ood_points, whir_base_ood_evals, num_ood_at_commitment, log_n_cycles, log_bytecode_padded, bytecode_and_acc_point, value_memory, value_acc, value_bytecode_acc) + continue_recursion_ordered(1, 2, fs, offset, retrieved_numerators_value, retrieved_denominators_value, table_heights, table_log_heights, point_gkr, n_vars_logup_gkr, logup_alphas_eq_poly, logup_c, numerators_value, denominators_value, log_memory, inner_public_memory, stacked_n_vars, whir_log_inv_rate, whir_base_root, whir_base_ood_points, whir_base_ood_evals, num_ood_at_commitment, log_n_cycles, log_bytecode_padded, bytecode_and_acc_point, value_memory, value_acc, value_bytecode_acc) else: - continue_recursion_ordered(2, 1, fs, offset, retrieved_numerators_value, retrieved_denominators_value, table_heights, table_log_heights, point_gkr, n_vars_logup_gkr, logup_alphas_eq_poly, logup_c, numerators_value, denominators_value, log_memory, inner_public_memory, inner_public_memory_log_size, stacked_n_vars, whir_log_inv_rate, whir_base_root, whir_base_ood_points, whir_base_ood_evals, num_ood_at_commitment, log_n_cycles, log_bytecode_padded, bytecode_and_acc_point, value_memory, value_acc, value_bytecode_acc) + continue_recursion_ordered(2, 1, fs, offset, retrieved_numerators_value, retrieved_denominators_value, table_heights, table_log_heights, point_gkr, n_vars_logup_gkr, logup_alphas_eq_poly, logup_c, numerators_value, denominators_value, log_memory, inner_public_memory, stacked_n_vars, whir_log_inv_rate, whir_base_root, whir_base_ood_points, whir_base_ood_evals, num_ood_at_commitment, log_n_cycles, log_bytecode_padded, bytecode_and_acc_point, value_memory, value_acc, value_bytecode_acc) - return claim_data + return bytecode_claim @inline -def continue_recursion_ordered(second_table, third_table, fs, offset, retrieved_numerators_value, retrieved_denominators_value, table_heights, table_log_heights, point_gkr, n_vars_logup_gkr, logup_alphas_eq_poly, logup_c, numerators_value, denominators_value, log_memory, inner_public_memory, inner_public_memory_log_size, stacked_n_vars, whir_log_inv_rate, whir_base_root, whir_base_ood_points, whir_base_ood_evals, num_ood_at_commitment, log_n_cycles, log_bytecode_padded, bytecode_and_acc_point, value_memory, value_acc, value_bytecode_acc): +def continue_recursion_ordered(second_table, third_table, fs, offset, retrieved_numerators_value, retrieved_denominators_value, table_heights, table_log_heights, point_gkr, n_vars_logup_gkr, logup_alphas_eq_poly, logup_c, numerators_value, denominators_value, log_memory, inner_public_memory, stacked_n_vars, whir_log_inv_rate, whir_base_root, whir_base_ood_points, whir_base_ood_evals, num_ood_at_commitment, log_n_cycles, log_bytecode_padded, bytecode_and_acc_point, value_memory, value_acc, value_bytecode_acc): bus_numerators_values = DynArray([]) bus_denominators_values = DynArray([]) pcs_points = DynArray([]) # [[_; N]; N_TABLES] @@ -539,20 +453,17 @@ def continue_recursion_ordered(second_table, third_table, fs, offset, retrieved_ ) for j in unroll(0, DIM): virtual_col_index = n_up_columns_f + i * DIM + j - pcs_values[table_index][last_index_2][virtual_col_index].push(transposed + j * DIM) - - # verify the inner public memory is well constructed (with the conventions) (NONRESERVED_PROGRAM_INPUT_START is a multiple of DIM) - for i in unroll(0, NONRESERVED_PROGRAM_INPUT_START / DIM): - copy_5(i * DIM, inner_public_memory + i * DIM) + pcs_values[table_index][last_index_2][virtual_col_index].push(transposed + j * DIM) - fs, public_memory_random_point = fs_sample_many_ef(fs, inner_public_memory_log_size) - poly_eq_public_mem = poly_eq_extension_dynamic(public_memory_random_point, inner_public_memory_log_size) + fs, public_memory_random_point = fs_sample_many_ef(fs, INNER_PUBLIC_MEMORY_LOG_SIZE) + poly_eq_public_mem = poly_eq_extension(public_memory_random_point, INNER_PUBLIC_MEMORY_LOG_SIZE) public_memory_eval = Array(DIM) - dot_product_be_dynamic( + dot_product( inner_public_memory, poly_eq_public_mem, public_memory_eval, - powers_of_two(inner_public_memory_log_size), + 2**INNER_PUBLIC_MEMORY_LOG_SIZE, + BE ) # WHIR BASE @@ -634,12 +545,12 @@ def continue_recursion_ordered(second_table, third_table, fs, offset, retrieved_ curr_randomness += DIM eq_pub_mem = eq_mle_extension( - folding_randomness_global + (stacked_n_vars - inner_public_memory_log_size) * DIM, + folding_randomness_global + (stacked_n_vars - INNER_PUBLIC_MEMORY_LOG_SIZE) * DIM, public_memory_random_point, - inner_public_memory_log_size, + INNER_PUBLIC_MEMORY_LOG_SIZE, ) prefix_pub_mem = multilinear_location_prefix( - 0, stacked_n_vars - inner_public_memory_log_size, folding_randomness_global + 0, stacked_n_vars - INNER_PUBLIC_MEMORY_LOG_SIZE, folding_randomness_global ) s = add_extension_ret( s, diff --git a/crates/rec_aggregation/src/compilation.rs b/crates/rec_aggregation/src/compilation.rs index 2a4762ca..8a35be39 100644 --- a/crates/rec_aggregation/src/compilation.rs +++ b/crates/rec_aggregation/src/compilation.rs @@ -12,18 +12,56 @@ use std::collections::{BTreeMap, HashMap}; use std::path::Path; use std::rc::Rc; use sub_protocols::{min_stacked_n_vars, total_whir_statements}; +use tracing::instrument; use utils::{BYTECODE_TABLE_INDEX, Counter, MEMORY_TABLE_INDEX}; +use xmss::{LOG_LIFETIME, MESSAGE_LEN_FE, RANDOMNESS_LEN_FE, TARGET_SUM, V, V_GRINDING, W}; -pub(crate) fn get_recursion_bytecode_helper( - prox_gaps_conjecture: bool, +use crate::{LOG_SIZE_PUBKEY_REGISTRY, MERKLE_LEVELS_PER_CHUNK_FOR_SLOT, N_MERKLE_CHUNKS_FOR_SLOT}; + +fn compile_main_program(inner_program_log_size: usize, prox_gaps_conjecture: bool, bytecode_zero_eval: F) -> Bytecode { + let bytecode_point_n_vars = inner_program_log_size + log2_ceil_usize(N_INSTRUCTION_COLUMNS); + let claim_data_size = (bytecode_point_n_vars + 1) * DIMENSION; + // pub_input layout: n_sigs(1) + n_recursions(1) + pubkey_registry_root(8) + signers_hash(8) + slot_low(1) + slot_high(1) + // + message + merkle_chunks_fr_slot + bytecode_claim + let pub_input_size = 2 + 2 * DIGEST_LEN + 2 + MESSAGE_LEN_FE + N_MERKLE_CHUNKS_FOR_SLOT + claim_data_size; + let inner_public_memory_log_size = log2_ceil_usize(NONRESERVED_PROGRAM_INPUT_START + pub_input_size); + let replacements = build_replacements( + inner_program_log_size, + inner_public_memory_log_size, + prox_gaps_conjecture, + bytecode_zero_eval, + ); + + let filepath = Path::new(env!("CARGO_MANIFEST_DIR")) + .join("main.py") + .to_str() + .unwrap() + .to_string(); + compile_program_with_flags(&ProgramSource::Filepath(filepath), CompilationFlags { replacements }) +} + +#[instrument(skip_all)] +pub(crate) fn compile_main_program_self_referential(prox_gaps_conjecture: bool) -> Bytecode { + let mut log_size_guess = 20; + loop { + let bytecode = compile_main_program(log_size_guess, prox_gaps_conjecture, F::ZERO); + let actual_log_size = bytecode.log_size(); + if actual_log_size == log_size_guess { + // Now recompile with the correct bytecode_zero_eval + let bytecode_zero_eval = bytecode.instructions_multilinear[0]; + return compile_main_program(actual_log_size, prox_gaps_conjecture, bytecode_zero_eval); + } + log_size_guess = actual_log_size; + } +} + +fn build_replacements( inner_program_log_size: usize, + inner_public_memory_log_size: usize, + prox_gaps_conjecture: bool, bytecode_zero_eval: F, -) -> Bytecode { +) -> BTreeMap { let mut replacements = BTreeMap::new(); - replacements.insert( - "BYTECODE_ZERO_EVAL_PLACEHOLDER".to_string(), - bytecode_zero_eval.as_canonical_u64().to_string(), - ); let log_inner_bytecode = inner_program_log_size; let min_stacked = min_stacked_n_vars(log_inner_bytecode); @@ -156,6 +194,10 @@ pub(crate) fn get_recursion_bytecode_helper( "NONRESERVED_PROGRAM_INPUT_START_PLACEHOLDER".to_string(), NONRESERVED_PROGRAM_INPUT_START.to_string(), ); + replacements.insert( + "INNER_PUBLIC_MEMORY_LOG_SIZE_PLACEHOLDER".to_string(), + inner_public_memory_log_size.to_string(), + ); let mut lookup_f_indexes_str = vec![]; let mut lookup_f_values_str = vec![]; @@ -304,13 +346,32 @@ pub(crate) fn get_recursion_bytecode_helper( replacements.insert("STARTING_PC_PLACEHOLDER".to_string(), STARTING_PC.to_string()); replacements.insert("ENDING_PC_PLACEHOLDER".to_string(), ENDING_PC.to_string()); - let filepath = Path::new(env!("CARGO_MANIFEST_DIR")) - .join("recursion.py") - .to_str() - .unwrap() - .to_string(); + // XMSS-specific replacements + replacements.insert("V_PLACEHOLDER".to_string(), V.to_string()); + replacements.insert("V_GRINDING_PLACEHOLDER".to_string(), V_GRINDING.to_string()); + replacements.insert("W_PLACEHOLDER".to_string(), W.to_string()); + replacements.insert("TARGET_SUM_PLACEHOLDER".to_string(), TARGET_SUM.to_string()); + replacements.insert("LOG_LIFETIME_PLACEHOLDER".to_string(), LOG_LIFETIME.to_string()); + replacements.insert("MESSAGE_LEN_PLACEHOLDER".to_string(), MESSAGE_LEN_FE.to_string()); + replacements.insert("RANDOMNESS_LEN_PLACEHOLDER".to_string(), RANDOMNESS_LEN_FE.to_string()); + replacements.insert( + "MERKLE_LEVELS_PER_CHUNK_PLACEHOLDER".to_string(), + MERKLE_LEVELS_PER_CHUNK_FOR_SLOT.to_string(), + ); - compile_program_with_flags(&ProgramSource::Filepath(filepath), CompilationFlags { replacements }) + // Registry + replacements.insert( + "LOG_SIZE_PUBKEY_REGISTRY_PLACEHOLDER".to_string(), + LOG_SIZE_PUBKEY_REGISTRY.to_string(), + ); + + // Bytecode zero eval + replacements.insert( + "BYTECODE_ZERO_EVAL_PLACEHOLDER".to_string(), + bytecode_zero_eval.as_canonical_u64().to_string(), + ); + + replacements } fn all_air_evals_in_zk_dsl() -> String { diff --git a/crates/rec_aggregation/src/lib.rs b/crates/rec_aggregation/src/lib.rs index b697876a..548e2884 100644 --- a/crates/rec_aggregation/src/lib.rs +++ b/crates/rec_aggregation/src/lib.rs @@ -1,5 +1,538 @@ #![cfg_attr(not(test), allow(unused_crate_dependencies))] +use std::time::Instant; + +use lean_prover::default_whir_config; +use lean_prover::prove_execution::prove_execution; +use lean_prover::verify_execution::verify_execution; +use lean_vm::*; +use multilinear_toolkit::prelude::*; +use rand::rngs::StdRng; +use rand::{Rng, SeedableRng}; +use tracing::instrument; +use utils::{bit_reverse, build_prover_state, poseidon_compress_slice, poseidon16_compress_pair}; +use xmss::{LOG_LIFETIME, MESSAGE_LEN_FE, SIG_SIZE_FE, XmssPublicKey, XmssSignature, slot_to_field_elements}; + +use crate::compilation::compile_main_program_self_referential; pub(crate) mod compilation; -pub mod recursion; -pub mod xmss_aggregate; + +pub const LOG_SIZE_PUBKEY_REGISTRY: usize = 14; +const MERKLE_LEVELS_PER_CHUNK_FOR_SLOT: usize = 4; +const N_MERKLE_CHUNKS_FOR_SLOT: usize = LOG_LIFETIME / MERKLE_LEVELS_PER_CHUNK_FOR_SLOT; + +#[derive(Debug, Clone)] +pub struct AggregationTopology { + pub raw: usize, + pub profile: bool, + pub children: Vec, +} + +fn count_signers(topology: &AggregationTopology, overlap: usize) -> usize { + let child_count: usize = topology.children.iter().map(|c| count_signers(c, overlap)).sum(); + let n_overlaps = topology.children.len().saturating_sub(1); + topology.raw + child_count - overlap * n_overlaps +} + +/// layers[0] = leaves, layers[height] = [root]. +fn build_registry_merkle_tree(signers: &[(usize, [F; DIGEST_LEN])]) -> Vec> { + let height = LOG_SIZE_PUBKEY_REGISTRY; + let n_leaves = 1 << height; + + // Initialize all leaves as zero hash + let mut leaves = vec![[F::ZERO; DIGEST_LEN]; n_leaves]; + + // Place each signer at the bit-reversed position + for &(index, ref digest) in signers { + let pos = bit_reverse(index, height); + leaves[pos] = *digest; + } + + // Build tree bottom-up + let mut layers = vec![leaves]; + for level in 0..height { + let prev = &layers[level]; + let n_nodes = prev.len() / 2; + let mut current = Vec::with_capacity(n_nodes); + for i in 0..n_nodes { + current.push(poseidon16_compress_pair(prev[2 * i], prev[2 * i + 1])); + } + layers.push(current); + } + layers +} + +fn get_merkle_proof(layers: &[Vec<[F; DIGEST_LEN]>], signer_index: usize) -> Vec<[F; DIGEST_LEN]> { + let height = layers.len() - 1; + let mut pos = bit_reverse(signer_index, height); + let mut proof = Vec::with_capacity(height); + for layer in layers.iter().take(height) { + let sibling_pos = pos ^ 1; + proof.push(layer[sibling_pos]); + pos >>= 1; + } + proof +} + +fn compute_merkle_chunks_for_slot(slot: u32) -> Vec { + let mut chunks = Vec::with_capacity(N_MERKLE_CHUNKS_FOR_SLOT); + for chunk_idx in 0..N_MERKLE_CHUNKS_FOR_SLOT { + let mut nibble_val: usize = 0; + for bit in 0..4 { + let level = chunk_idx * 4 + bit; + let is_left = (((slot as u64) >> level) & 1) == 0; + if is_left { + nibble_val |= 1 << bit; + } + } + chunks.push(F::from_usize(nibble_val)); + } + chunks +} + +fn build_non_reserved_public_input( + n_sigs: usize, + n_recursions: usize, + registry_root: &[F; DIGEST_LEN], + signer_indexes_hash: &[F; DIGEST_LEN], + message: &[F; MESSAGE_LEN_FE], + slot: u32, + bytecode_claim_output: &[F], +) -> Vec { + let mut pi = vec![]; + pi.push(F::from_usize(n_sigs)); + pi.push(F::from_usize(n_recursions)); + pi.extend_from_slice(registry_root); + pi.extend_from_slice(signer_indexes_hash); + pi.extend_from_slice(message); + let [slot_lo, slot_hi] = slot_to_field_elements(slot); + pi.push(slot_lo); + pi.push(slot_hi); + pi.extend(compute_merkle_chunks_for_slot(slot)); + pi.extend_from_slice(bytecode_claim_output); + pi +} + +fn encode_xmss_signature(sig: &XmssSignature) -> Vec { + let mut data = vec![]; + data.extend(sig.wots_signature.randomness.to_vec()); + data.extend(sig.wots_signature.chain_tips.iter().flat_map(|digest| digest.to_vec())); + for neighbor in &sig.merkle_proof { + data.extend(neighbor.to_vec()); + } + assert_eq!(data.len(), SIG_SIZE_FE); + data +} + +struct ChildProofData { + proof: Vec, + public_input: Vec, + bytecode_evaluation: Evaluation, +} + +#[allow(clippy::too_many_arguments)] +#[instrument(skip_all)] +fn prove_aggregation_node( + topology: &AggregationTopology, + bytecode: &Bytecode, + message: &[F; MESSAGE_LEN_FE], + slot: u32, + registry_merkle_tree: &[Vec<[F; DIGEST_LEN]>], + signer_indices: &[usize], + pub_keys: &[XmssPublicKey], + signatures: &[XmssSignature], + log_inv_rate: usize, + prox_gaps_conjecture: bool, + overlap: usize, +) -> (Vec, Vec) { + let n_sigs = signer_indices.len(); + let n_recursions = topology.children.len(); + let raw_count = topology.raw; + let whir_config = default_whir_config(log_inv_rate, prox_gaps_conjecture); + + let bytecode_point_n_vars = bytecode.log_size() + log2_ceil_usize(N_INSTRUCTION_COLUMNS); + let bytecode_claim_size = (bytecode_point_n_vars + 1) * DIMENSION; + + // Source 0 (raw XMSS) + let raw_signer_indices = &signer_indices[..raw_count]; + let raw_pub_keys = &pub_keys[..raw_count]; + let raw_signatures = &signatures[..raw_count]; + + // source >= 1 (recursions) + let mut child_proofs: Vec = vec![]; + let mut child_start = raw_count; + for (child_idx, child) in topology.children.iter().enumerate() { + let child_count = count_signers(child, overlap); + let child_signer_indices = &signer_indices[child_start..child_start + child_count]; + let child_pub_keys = &pub_keys[child_start..child_start + child_count]; + let child_signatures = &signatures[child_start..child_start + child_count]; + + let (child_proof, inner_pub_input) = prove_aggregation_node( + child, + bytecode, + message, + slot, + registry_merkle_tree, + child_signer_indices, + child_pub_keys, + child_signatures, + log_inv_rate, + prox_gaps_conjecture, + overlap, + ); + + let inner_verif_details = + verify_execution(bytecode, &inner_pub_input, child_proof.clone(), whir_config.clone()).unwrap(); + + child_proofs.push(ChildProofData { + proof: child_proof, + public_input: inner_pub_input, + bytecode_evaluation: inner_verif_details.bytecode_evaluation, + }); + + child_start += child_count; + if child_idx < topology.children.len() - 1 { + child_start -= overlap; + } + } + + // Compute global signer indexes hash + let global_indices_fe: Vec = signer_indices.iter().map(|&i| F::from_usize(i)).collect(); + let signer_indexes_hash = poseidon_compress_slice(&global_indices_fe); + + //Compute per-source sub-index lists and duplicate indices + let mut all_sub_indices = vec![raw_signer_indices.to_vec()]; + let mut dup_indices = Vec::new(); + let mut sub_start = raw_count; + for (child_idx, child) in topology.children.iter().enumerate() { + let child_count = count_signers(child, overlap); + all_sub_indices.push(signer_indices[sub_start..sub_start + child_count].to_vec()); + if child_idx > 0 && overlap > 0 { + dup_indices.extend_from_slice(&signer_indices[sub_start..sub_start + overlap]); + } + sub_start += child_count; + if child_idx < topology.children.len() - 1 { + sub_start -= overlap; + } + } + dup_indices.sort(); + + // Bytecode sumcheck reduction + let (bytecode_claim_output, final_sumcheck_transcript) = if n_recursions > 0 { + // Collect 2*n_recursions bytecode claims + let bytecode_claim_offset = 2 + 2 * DIGEST_LEN + 2 + MESSAGE_LEN_FE + N_MERKLE_CHUNKS_FOR_SLOT; + let mut claims = vec![]; + for child_data in &child_proofs { + // Claim from child's public input + let first_claim = extract_bytecode_claim_from_public_input( + &child_data.public_input[bytecode_claim_offset..], + bytecode_point_n_vars, + ); + claims.push(first_claim); + + // Claim from verify_execution + claims.push(child_data.bytecode_evaluation.clone()); + } + + let claims_hash = hash_bytecode_claims(&claims); + + let mut reduction_prover = build_prover_state(); + reduction_prover.add_base_scalars(&claims_hash); + let alpha: EF = reduction_prover.sample(); + + let n_claims = claims.len(); + let alpha_powers: Vec = alpha.powers().take(n_claims).collect(); + + // Build weights: w(x) = sum_i alpha^i * eq(x, point_i) + let weights_packed = claims + .par_iter() + .zip(&alpha_powers) + .map(|(eval, &alpha_i)| eval_eq_packed_scaled(&eval.point.0, alpha_i)) + .reduce_with(|mut acc, eq_i| { + acc.par_iter_mut().zip(&eq_i).for_each(|(w, e)| *w += *e); + acc + }) + .unwrap(); + + let claimed_sum: EF = dot_product(claims.iter().map(|c| c.value), alpha_powers.iter().copied()); + + let witness = + MleGroupOwned::ExtensionPacked(vec![bytecode.instructions_multilinear_packed.clone(), weights_packed]); + + let (challenges, final_evals, _) = sumcheck_prove::( + 1, + witness, + None, + &ProductComputation {}, + &vec![], + None, + false, + &mut reduction_prover, + claimed_sum, + false, + ); + + let reduced_point = challenges; + let reduced_value = final_evals[0]; + + let mut ef_claim: Vec = reduced_point.0; + ef_claim.push(reduced_value); + let claim_output = flatten_scalars_to_base::(&ef_claim); + assert_eq!(claim_output.len(), bytecode_claim_size); + + (claim_output, reduction_prover.raw_proof()) + } else { + // n_recursions=0: output ((0,...,0), bytecode((0,...,0))) + let mut claim_output = vec![F::ZERO; bytecode_claim_size]; + claim_output[bytecode_point_n_vars * DIMENSION] = bytecode.instructions_multilinear[0]; + (claim_output, vec![]) + }; + + // Build public input + let registry_root = ®istry_merkle_tree.last().unwrap()[0]; + let non_reserved_public_input = build_non_reserved_public_input( + n_sigs, + n_recursions, + registry_root, + &signer_indexes_hash, + message, + slot, + &bytecode_claim_output, + ); + let public_memory = build_public_memory(&non_reserved_public_input); + + // header size: (n_recursions+1) pointers + 1 sumcheck_proof_ptr + 1 n_dup + n_sigs + n_dup + let header_size = (n_recursions + 1) + 1 + 1 + n_sigs + dup_indices.len(); + + let mut source_blocks: Vec> = vec![]; + + // Source 0: raw XMSS + { + let mut block = vec![]; + block.push(F::from_usize(raw_count)); + // raw_indices + for &idx in raw_signer_indices { + block.push(F::from_usize(idx)); + } + // raw signer data: pubkey + registry_merkle_path + xmss_sig + for i in 0..raw_count { + block.extend_from_slice(&raw_pub_keys[i].merkle_root); + let proof = get_merkle_proof(registry_merkle_tree, raw_signer_indices[i]); + for sibling in &proof { + block.extend_from_slice(sibling); + } + block.extend(encode_xmss_signature(&raw_signatures[i])); + } + source_blocks.push(block); + } + + // Sources 1..n_recursions: recursive children + for (s_idx, child_data) in child_proofs.iter().enumerate() { + let mut block = vec![]; + let child_sub_indices = &all_sub_indices[s_idx + 1]; + let n_sub_sigs = child_sub_indices.len(); + + block.push(F::from_usize(n_sub_sigs)); + // sub_indices + for &idx in child_sub_indices { + block.push(F::from_usize(idx)); + } + // bytecode_value_hint (DIM elements) + block.extend_from_slice( + &child_data + .bytecode_evaluation + .value + .as_basis_coefficients_slice() + .to_vec(), + ); + // inner_pub_mem + let child_pub_mem = build_public_memory(&child_data.public_input); + block.extend_from_slice(&child_pub_mem); + // proof_transcript + block.extend_from_slice(&child_data.proof); + + source_blocks.push(block); + } + + // Compute absolute memory addresses for each source block + let mut offset_in_priv = header_size; + let mut source_ptrs: Vec = vec![]; + for block in &source_blocks { + source_ptrs.push(public_memory.len() + offset_in_priv); + offset_in_priv += block.len(); + } + let bytecode_sumcheck_proof_ptr = public_memory.len() + offset_in_priv; + + let mut private_input = vec![]; + for &ptr in &source_ptrs { + private_input.push(F::from_usize(ptr)); + } + private_input.push(F::from_usize(bytecode_sumcheck_proof_ptr)); + private_input.push(F::from_usize(dup_indices.len())); + for &idx in signer_indices { + private_input.push(F::from_usize(idx)); + } + for &idx in &dup_indices { + private_input.push(F::from_usize(idx)); + } + assert_eq!(private_input.len(), header_size); + + for block in &source_blocks { + private_input.extend_from_slice(block); + } + + private_input.extend_from_slice(&final_sumcheck_transcript); + + let time = Instant::now(); + let execution_proof = prove_execution( + bytecode, + (&non_reserved_public_input, &private_input), + &vec![], // TODO precompute poseidons + &whir_config, + topology.profile, + ); + let node_elapsed = time.elapsed(); + + println!("{}", execution_proof.exec_summary); + println!( + "Node ({} sigs, {} raw, {} children, {} overlap): {:.3}s, proof {} KiB", + n_sigs, + raw_count, + n_recursions, + overlap, + node_elapsed.as_secs_f64(), + execution_proof.proof_size_fe * F::bits() / (8 * 1024), + ); + + (execution_proof.proof, non_reserved_public_input) +} + +pub fn extract_bytecode_claim_from_public_input(public_input: &[F], bytecode_point_n_vars: usize) -> Evaluation { + let claim_size = (bytecode_point_n_vars + 1) * DIMENSION; + let packed = pack_scalars_to_extension(&public_input[..claim_size]); + let point = MultilinearPoint(packed[..bytecode_point_n_vars].to_vec()); + let value = packed[bytecode_point_n_vars]; + Evaluation::new(point, value) +} + +pub fn hash_bytecode_claims(claims: &[Evaluation]) -> [F; DIGEST_LEN] { + let mut running_hash = [F::ZERO; DIGEST_LEN]; + for eval in claims { + let mut ef_data: Vec = eval.point.0.clone(); + ef_data.push(eval.value); + let mut data = flatten_scalars_to_base::(&ef_data); + data.resize(data.len().next_multiple_of(DIGEST_LEN), F::ZERO); + + let claim_hash = poseidon_compress_slice(&data); + running_hash = poseidon16_compress_pair(running_hash, claim_hash); + } + running_hash +} + +pub fn run_aggregation_benchmark( + topology: &AggregationTopology, + overlap: usize, + log_inv_rate: usize, + prox_gaps_conjecture: bool, + tracing: bool, +) { + if tracing { + utils::init_tracing(); + } + precompute_dft_twiddles::(1 << 24); + + let n_sigs = count_signers(topology, overlap); + let message: [F; MESSAGE_LEN_FE] = (0..MESSAGE_LEN_FE) + .map(F::from_usize) + .collect::>() + .try_into() + .unwrap(); + let slot: u32 = 1111; + + let n_unique = 10.min(n_sigs).max(1); + let pub_keys_and_sigs: Vec<_> = (0..n_unique) + .into_par_iter() + .map(|i| { + let mut rng = StdRng::seed_from_u64(i as u64); + let start = slot - rng.random_range(0..3); + let end = slot + rng.random_range(1..3); + let (sk, pk) = xmss::xmss_key_gen(rng.random(), start, end).unwrap(); + let sig = xmss::xmss_sign(&mut rng, &sk, &message, slot).unwrap(); + xmss::xmss_verify(&pk, &message, &sig).unwrap(); + (pk, sig) + }) + .collect(); + + let signer_indices: Vec = (0..n_sigs).collect(); + let pub_keys: Vec = signer_indices + .iter() + .map(|&i| pub_keys_and_sigs[i % n_unique].0.clone()) + .collect(); + let signatures: Vec = signer_indices + .iter() + .map(|&i| pub_keys_and_sigs[i % n_unique].1.clone()) + .collect(); + + // Build registry merkle tree + let signers_for_tree: Vec<(usize, [F; DIGEST_LEN])> = signer_indices + .iter() + .zip(&pub_keys) + .map(|(&idx, pk)| (idx, pk.merkle_root)) + .collect(); + let registry_layers = build_registry_merkle_tree(&signers_for_tree); + + let bytecode = compile_main_program_self_referential(prox_gaps_conjecture); + println!("Compiled bytecode: {} instructions", bytecode.instructions.len()); + + let (proof, public_input) = prove_aggregation_node( + topology, + &bytecode, + &message, + slot, + ®istry_layers, + &signer_indices, + &pub_keys, + &signatures, + log_inv_rate, + prox_gaps_conjecture, + overlap, + ); + + // Verify root proof + verify_execution( + &bytecode, + &public_input, + proof, + default_whir_config(log_inv_rate, prox_gaps_conjecture), + ) + .unwrap(); +} + +#[test] +fn test_recursive_aggregation() { + let topology = AggregationTopology { + raw: 10, + profile: false, + children: vec![ + AggregationTopology { + raw: 60, + profile: false, + children: vec![], + }, + AggregationTopology { + raw: 40, + profile: false, + children: vec![], + }, + AggregationTopology { + raw: 0, + profile: false, + children: vec![AggregationTopology { + raw: 50, + profile: false, + children: vec![], + }], + }, + ], + }; + run_aggregation_benchmark(&topology, 10, 2, false, false); +} diff --git a/crates/rec_aggregation/src/recursion.rs b/crates/rec_aggregation/src/recursion.rs deleted file mode 100644 index 8ac98ca4..00000000 --- a/crates/rec_aggregation/src/recursion.rs +++ /dev/null @@ -1,268 +0,0 @@ -use std::time::Instant; - -use lean_compiler::{ProgramSource, compile_program}; -use lean_prover::default_whir_config; -use lean_prover::prove_execution::prove_execution; -use lean_prover::verify_execution::verify_execution; -use lean_vm::*; -use multilinear_toolkit::prelude::*; -use utils::{build_prover_state, poseidon_compress_slice, poseidon16_compress_pair}; - -use crate::compilation::get_recursion_bytecode_helper; - -pub fn run_recursion_benchmark(count: usize, log_inv_rate: usize, prox_gaps_conjecture: bool, tracing: bool) { - let program_to_prove = r#" -DIM = 5 -POSEIDON_OF_ZERO = POSEIDON_OF_ZERO_PLACEHOLDER -# Dot product precompile: -BE = 1 # base-extension -EE = 0 # extension-extension - -def main(): - for i in range(0, 1000): - null_ptr = ZERO_VEC_PTR # pointer to zero vector - poseidon_of_zero = POSEIDON_OF_ZERO - poseidon16(null_ptr, null_ptr, poseidon_of_zero) - a = Array(DIM) - b = Array(DIM) - after_null_ptr = 16 - dot_product(after_null_ptr, after_null_ptr, a, 3, BE) - dot_product(after_null_ptr, after_null_ptr, b, 2, EE) - x: Mut = 0 - n = 10 - for j in range(0, n): - x += j - assert x == n * (n - 1) / 2 - n = 100000 - x = 0 - sum: Mut = x[0] - for i in unroll(0, n): - sum += i - assert sum == n * (n - 1) / 2 - return -"# - .replace("POSEIDON_OF_ZERO_PLACEHOLDER", &POSEIDON_16_NULL_HASH_PTR.to_string()); - run_recursion_benchmark_with_program(count, log_inv_rate, prox_gaps_conjecture, tracing, &program_to_prove); -} - -#[test] -fn test_end2end_recursion_poseidon_heavy() { - // Poseidon table larger than dot_product table (reversed ordering) - let program_to_prove = r#" -DIM = 5 -POSEIDON_OF_ZERO = POSEIDON_OF_ZERO_PLACEHOLDER -BE = 1 - -def main(): - for i in range(0, 1000): - null_ptr = ZERO_VEC_PTR - poseidon_of_zero = POSEIDON_OF_ZERO - poseidon16(null_ptr, null_ptr, poseidon_of_zero) - poseidon16(null_ptr, null_ptr, poseidon_of_zero) - poseidon16(null_ptr, null_ptr, poseidon_of_zero) - dot_product(ZERO_VEC_PTR, ZERO_VEC_PTR, ZERO_VEC_PTR, 2, BE) - return -"# - .replace("POSEIDON_OF_ZERO_PLACEHOLDER", &POSEIDON_16_NULL_HASH_PTR.to_string()); - run_recursion_benchmark_with_program(1, 2, false, false, &program_to_prove); -} - -/// Extract bytecode claim (point, value) from a public input that starts with the claim. -fn extract_bytecode_claim_from_public_input( - public_input: &[F], - bytecode_point_n_vars: usize, -) -> (MultilinearPoint, EF) { - let claim_size = (bytecode_point_n_vars + 1) * DIMENSION; - let packed = pack_scalars_to_extension(&public_input[..claim_size]); - let point = MultilinearPoint(packed[..bytecode_point_n_vars].to_vec()); - let value = packed[bytecode_point_n_vars]; - (point, value) -} - -/// Hash all bytecode claims into a single digest -fn hash_bytecode_claims(claims: &[(MultilinearPoint, EF)]) -> [F; DIGEST_LEN] { - let mut running_hash = [F::ZERO; DIGEST_LEN]; - for (point, value) in claims { - let mut ef_data: Vec = point.0.clone(); - ef_data.push(*value); - let mut data = flatten_scalars_to_base::(&ef_data); - data.resize(data.len().next_multiple_of(DIGEST_LEN), F::ZERO); - - let claim_hash = poseidon_compress_slice(&data); - running_hash = poseidon16_compress_pair(running_hash, claim_hash); - } - running_hash -} - -fn run_recursion_benchmark_with_program( - count: usize, - log_inv_rate: usize, - prox_gaps_conjecture: bool, - tracing: bool, - inner_program: &str, -) { - let whir_config = default_whir_config(log_inv_rate, prox_gaps_conjecture); - let inner_bytecode = compile_program(&ProgramSource::Raw(inner_program.to_string())); - precompute_dft_twiddles::(1 << 24); - - let bytecode_point_n_vars = inner_bytecode.log_size() + log2_ceil_usize(N_INSTRUCTION_COLUMNS); - let bytecode_claim_size = (bytecode_point_n_vars + 1) * DIMENSION; - - // Inner public input: bytecode claim = (zero_point, bytecode(0)), padded to multiple of DIGEST_LEN. - let bytecode_claim_size_padded = bytecode_claim_size.next_multiple_of(DIGEST_LEN); - let mut inner_public_input = vec![F::ZERO; bytecode_claim_size_padded]; - inner_public_input[bytecode_point_n_vars * DIMENSION] = inner_bytecode.instructions_multilinear[0]; - - let inner_private_input = vec![]; - let inner_proof = prove_execution( - &inner_bytecode, - (&inner_public_input, &inner_private_input), - &vec![], - &whir_config, - false, - ); - - let verif_details = verify_execution( - &inner_bytecode, - &inner_public_input, - inner_proof.proof.clone(), - whir_config.clone(), - ) - .unwrap(); - - let recursion_bytecode = get_recursion_bytecode_helper( - prox_gaps_conjecture, - inner_bytecode.log_size(), - inner_bytecode.instructions_multilinear[0], - ); - - if tracing { - utils::init_tracing(); - } - let time = Instant::now(); - - // Collect 2*num_recursions bytecode claims - let mut claims = vec![]; - for _ in 0..count { - // from inner proof's public input - let first_claim = extract_bytecode_claim_from_public_input(&inner_public_input, bytecode_point_n_vars); - claims.push(first_claim); - - // from verify_execution - let second = &verif_details.bytecode_evaluation; - claims.push((second.point.clone(), second.value)); - } - - // Sumcheck reduction: 2n claims -> 1 - let (bytecode_claim_output, final_sumcheck_transcript) = if count > 0 { - let claims_hash = hash_bytecode_claims(&claims); - - let mut reduction_prover = build_prover_state(); - reduction_prover.add_base_scalars(&claims_hash); - let alpha: EF = reduction_prover.sample(); - - let n_claims = claims.len(); - let alpha_powers: Vec = alpha.powers().take(n_claims).collect(); - - // Build weights: w(x) = sum_i alpha^i * eq(x, point_i) - let weights_packed = claims - .par_iter() - .zip(&alpha_powers) - .map(|((point_i, _), &alpha_i)| eval_eq_packed_scaled(&point_i.0, alpha_i)) - .reduce_with(|mut acc, eq_i| { - acc.par_iter_mut().zip(&eq_i).for_each(|(w, e)| *w += *e); - acc - }) - .unwrap(); - - let claimed_sum: EF = dot_product(claims.iter().map(|(_, v)| *v), alpha_powers.iter().copied()); - - let witness = MleGroupOwned::ExtensionPacked(vec![ - inner_bytecode.instructions_multilinear_packed.clone(), - weights_packed, - ]); - - let (challenges, final_evals, _) = sumcheck_prove::( - 1, - witness, - None, - &ProductComputation {}, - &vec![], - None, - false, - &mut reduction_prover, - claimed_sum, - false, - ); - - let reduced_point = challenges; - let reduced_value = final_evals[0]; // bytecode polynomial evaluated at `reduced_point` - - let mut ef_claim: Vec = reduced_point.0; - ef_claim.push(reduced_value); - let claim_output = flatten_scalars_to_base::(&ef_claim); - assert_eq!(claim_output.len(), bytecode_claim_size); - - (claim_output, reduction_prover.raw_proof()) - } else { - // n_recursions=0: output ((0,0,...,0), bytecode((0,0,...,0))) - let mut claim_output = vec![F::ZERO; bytecode_claim_size]; - claim_output[bytecode_point_n_vars * DIMENSION] = inner_bytecode.instructions_multilinear[0]; - (claim_output, vec![]) - }; - - // Outer public input: the reduced bytecode claim - let outer_public_input = bytecode_claim_output; - - // Outer private input - let inner_public_memory = build_public_memory(&inner_public_input); - let mut outer_private_input = vec![ - F::from_usize(log2_strict_usize(inner_public_memory.len())), - F::from_usize(count), - ]; - // For each recursion: proof_size + inner_public_memory + bytecode_value_hint (DIM) + proof transcript - for _ in 0..count { - outer_private_input.push(F::from_usize(inner_proof.proof.len())); - outer_private_input.extend(&inner_public_memory); - outer_private_input.extend(verif_details.bytecode_evaluation.value.as_basis_coefficients_slice()); - outer_private_input.extend(inner_proof.proof.to_vec()); - } - // Sumcheck transcript for bytecode 2n->1 reduction - outer_private_input.extend(&final_sumcheck_transcript); - - let recursion_proof = prove_execution( - &recursion_bytecode, - (&outer_public_input, &outer_private_input), - &vec![], // TODO precompute poseidons - &default_whir_config(log_inv_rate, prox_gaps_conjecture), - false, - ); - let proving_time = time.elapsed(); - verify_execution( - &recursion_bytecode, - &outer_public_input, - recursion_proof.proof, - default_whir_config(log_inv_rate, prox_gaps_conjecture), - ) - .unwrap(); - println!( - "(Outer proof: 2**{} memory, 2**{} cycles, 2**{} dot_product_rows, 2**{} poseidons)", - verif_details.log_memory, - verif_details.table_n_vars[&Table::execution()], - verif_details.table_n_vars[&Table::dot_product()], - verif_details.table_n_vars[&Table::poseidon16()], - ); - println!("{}", recursion_proof.exec_summary); - println!( - "{}->1 recursion proving time: {} ms (1->1: {} ms), proof size: {} KiB", - count, - proving_time.as_millis(), - proving_time.as_millis() / count as u128, - recursion_proof.proof_size_fe * F::bits() / (8 * 1024) - ); -} - -#[test] -fn test_end2end_recursion() { - run_recursion_benchmark(1, 2, false, false); -} diff --git a/crates/rec_aggregation/src/xmss_aggregate.rs b/crates/rec_aggregation/src/xmss_aggregate.rs deleted file mode 100644 index cf6ab833..00000000 --- a/crates/rec_aggregation/src/xmss_aggregate.rs +++ /dev/null @@ -1,255 +0,0 @@ -use lean_compiler::*; -use lean_prover::{default_whir_config, prove_execution::prove_execution, verify_execution::verify_execution}; -use lean_vm::*; -use multilinear_toolkit::prelude::*; -use rand::{Rng, SeedableRng, rngs::StdRng}; -use std::sync::OnceLock; -use std::time::Instant; -use std::{collections::BTreeMap, path::Path}; -use tracing::{info_span, instrument}; -use xmss::{ - LOG_LIFETIME, MESSAGE_LEN_FE, Poseidon16History, RANDOMNESS_LEN_FE, SIG_SIZE_FE, TARGET_SUM, V, V_GRINDING, W, - XmssPublicKey, XmssSignature, slot_to_field_elements, xmss_verify_with_poseidon_trace, -}; - -static XMSS_AGGREGATION_PROGRAM: OnceLock = OnceLock::new(); - -fn get_xmss_aggregation_program() -> &'static Bytecode { - XMSS_AGGREGATION_PROGRAM.get_or_init(compile_xmss_aggregation_program) -} - -pub fn xmss_setup_aggregation_program() { - let _ = get_xmss_aggregation_program(); -} - -fn build_public_input(xmss_pub_keys: &[XmssPublicKey], message: [F; MESSAGE_LEN_FE], slot: u32) -> Vec { - let mut public_input = vec![]; - public_input.push(F::from_usize(xmss_pub_keys.len())); - public_input.extend(message.to_vec()); - let [slot_lo, slot_hi] = slot_to_field_elements(slot); - public_input.push(slot_lo); - public_input.push(slot_hi); - // Pack merkle position bits into 4-bit chunks (nibbles) - for chunk_idx in 0..LOG_LIFETIME / 4 { - let mut nibble_val: usize = 0; - for bit in 0..4 { - let level = chunk_idx * 4 + bit; - let is_left = (((slot as u64) >> level) & 1) == 0; - if is_left { - nibble_val |= 1 << bit; - } - } - public_input.push(F::from_usize(nibble_val)); - } - public_input.extend(xmss_pub_keys.iter().flat_map(|pk| pk.merkle_root)); - public_input -} - -fn build_private_input(all_signatures: &[XmssSignature]) -> Vec { - let mut private_input = vec![]; - for signature in all_signatures { - let initial_private_input_len = private_input.len(); - private_input.extend(signature.wots_signature.randomness.to_vec()); - private_input.extend( - signature - .wots_signature - .chain_tips - .iter() - .flat_map(|digest| digest.to_vec()), - ); - for neighbor in &signature.merkle_proof { - private_input.extend(neighbor.to_vec()); - } - - let sig_size = private_input.len() - initial_private_input_len; - assert_eq!(sig_size, SIG_SIZE_FE); - } - private_input -} - -#[instrument(skip_all)] -fn compile_xmss_aggregation_program() -> Bytecode { - let filepath = Path::new(env!("CARGO_MANIFEST_DIR")) - .join("xmss_aggregate.py") - .to_str() - .unwrap() - .to_string(); - let mut replacements = BTreeMap::new(); - replacements.insert("V_PLACEHOLDER".to_string(), V.to_string()); - replacements.insert("V_GRINDING_PLACEHOLDER".to_string(), V_GRINDING.to_string()); - replacements.insert("W_PLACEHOLDER".to_string(), W.to_string()); - replacements.insert("TARGET_SUM_PLACEHOLDER".to_string(), TARGET_SUM.to_string()); - replacements.insert("LOG_LIFETIME_PLACEHOLDER".to_string(), LOG_LIFETIME.to_string()); - replacements.insert("MESSAGE_LEN_PLACEHOLDER".to_string(), MESSAGE_LEN_FE.to_string()); - replacements.insert("RANDOMNESS_LEN_PLACEHOLDER".to_string(), RANDOMNESS_LEN_FE.to_string()); - compile_program_with_flags(&ProgramSource::Filepath(filepath), CompilationFlags { replacements }) -} - -pub fn run_xmss_benchmark(n_signatures: usize, log_inv_rate: usize, prox_gaps_conjecture: bool, tracing: bool) { - if tracing { - utils::init_tracing(); - } - xmss_setup_aggregation_program(); - precompute_dft_twiddles::(1 << 24); - - let message = (0..MESSAGE_LEN_FE) - .map(F::from_usize) - .collect::>() - .try_into() - .unwrap(); - let slot = 1111; - - let n_reps = 10; - let pub_keys_and_sigs = (0..n_signatures.div_ceil(n_reps)) - .into_par_iter() - .map(|i| { - let mut rng = StdRng::seed_from_u64(i as u64); - let start = slot - rng.random_range(0..3); - let end = slot + rng.random_range(1..3); - let (sk, pk) = xmss::xmss_key_gen(rng.random(), start, end).unwrap(); - let sig = xmss::xmss_sign(&mut rng, &sk, &message, slot).unwrap(); - xmss::xmss_verify(&pk, &message, &sig).unwrap(); // sanity check - (pk, sig) - }) - .collect::>(); - - let (mut xmss_pub_keys, mut all_signatures) = (vec![], vec![]); - for i in 0..n_signatures { - let (pk, sig) = &pub_keys_and_sigs[i % (n_signatures.div_ceil(n_reps))]; - xmss_pub_keys.push(pk.clone()); - all_signatures.push(sig.clone()); - } - let time = Instant::now(); - let (proof_data, n_field_elements_in_proof, summary) = xmss_aggregate_signatures_helper( - &xmss_pub_keys, - &all_signatures, - message, - slot, - log_inv_rate, - prox_gaps_conjecture, - ) - .unwrap(); - let proving_time = time.elapsed(); - - xmss_verify_aggregated_signatures( - &xmss_pub_keys, - message, - &proof_data, - slot, - log_inv_rate, - prox_gaps_conjecture, - ) - .unwrap(); - - println!("{summary}"); - println!( - "XMSS aggregation, proving time: {:.3} s ({:.1} XMSS/s), proof size: {} KiB", - proving_time.as_secs_f64(), - n_signatures as f64 / proving_time.as_secs_f64(), - n_field_elements_in_proof * F::bits() / (8 * 1024) - ); -} - -#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] -pub enum XmssAggregateError { - WrongSignatureCount, - InvalidSigature, -} - -pub fn xmss_aggregate_signatures( - xmss_pub_keys: &[XmssPublicKey], - all_signatures: &[XmssSignature], - message: [F; MESSAGE_LEN_FE], - slot: u32, - log_inv_rate: usize, - prox_gaps_conjecture: bool, -) -> Result, XmssAggregateError> { - Ok(xmss_aggregate_signatures_helper( - xmss_pub_keys, - all_signatures, - message, - slot, - log_inv_rate, - prox_gaps_conjecture, - )? - .0) -} - -fn xmss_aggregate_signatures_helper( - xmss_pub_keys: &[XmssPublicKey], - all_signatures: &[XmssSignature], - message: [F; MESSAGE_LEN_FE], - slot: u32, - log_inv_rate: usize, - prox_gaps_conjecture: bool, -) -> Result<(Vec, usize, String), XmssAggregateError> { - if xmss_pub_keys.len() != all_signatures.len() { - return Err(XmssAggregateError::WrongSignatureCount); - } - - let program = get_xmss_aggregation_program(); - - let poseidons_16_precomputed = - precompute_poseidons(xmss_pub_keys, all_signatures, &message).ok_or(XmssAggregateError::InvalidSigature)?; - - let public_input = build_public_input(xmss_pub_keys, message, slot); - let private_input = build_private_input(all_signatures); - - let proof = prove_execution( - program, - (&public_input, &private_input), - &poseidons_16_precomputed, - &default_whir_config(log_inv_rate, prox_gaps_conjecture), - false, - ); - - let proof_bytes = info_span!("Proof serialization").in_scope(|| bincode::serialize(&proof.proof).unwrap()); - - Ok((proof_bytes, proof.proof_size_fe, proof.exec_summary)) -} - -pub fn xmss_verify_aggregated_signatures( - xmss_pub_keys: &[XmssPublicKey], - message: [F; MESSAGE_LEN_FE], - proof_bytes: &[u8], - slot: u32, - log_inv_rate: usize, - prox_gaps_conjecture: bool, -) -> Result<(), ProofError> { - let program = get_xmss_aggregation_program(); - - let proof = info_span!("Proof deserialization") - .in_scope(|| bincode::deserialize(proof_bytes)) - .map_err(|_| ProofError::InvalidProof)?; - - let public_input = build_public_input(xmss_pub_keys, message, slot); - - verify_execution( - program, - &public_input, - proof, - default_whir_config(log_inv_rate, prox_gaps_conjecture), - ) - .map(|_| ()) -} - -#[instrument(skip_all)] -fn precompute_poseidons( - xmss_pub_keys: &[XmssPublicKey], - all_signatures: &[XmssSignature], - message: &[F; MESSAGE_LEN_FE], -) -> Option { - assert_eq!(xmss_pub_keys.len(), all_signatures.len()); - let traces = xmss_pub_keys - .par_iter() - .zip(all_signatures.par_iter()) - .map(|(pub_key, sig)| xmss_verify_with_poseidon_trace(pub_key, message, sig)) - .collect::, _>>() - .ok()?; - Some(traces.into_par_iter().flatten().collect()) -} - -#[test] -fn test_xmss_aggregate() { - run_xmss_benchmark(5, 1, false, false); -} diff --git a/crates/rec_aggregation/utils.py b/crates/rec_aggregation/utils.py index 934af3e0..0ef31503 100644 --- a/crates/rec_aggregation/utils.py +++ b/crates/rec_aggregation/utils.py @@ -479,21 +479,18 @@ def checked_decompose_bits(a): for i in unroll(0, F_BITS): assert bits[i] * (1 - bits[i]) == 0 partial_sums_24 = Array(24) - sum_24: Mut = bits[0] - partial_sums_24[0] = sum_24 + partial_sums_24[0] = bits[0] for i in unroll(1, 24): - sum_24 += bits[i] * 2**i - partial_sums_24[i] = sum_24 + partial_sums_24[i] = partial_sums_24[i - 1] + bits[i] * 2**i sum_7: Mut = bits[24] for i in unroll(1, 7): sum_7 += bits[24 + i] * 2**i if sum_7 == 127: - assert sum_24 == 0 + assert partial_sums_24[23] == 0 - assert a == sum_24 + sum_7 * 2**24 + assert a == partial_sums_24[23] + sum_7 * 2**24 return bits, partial_sums_24 - def checked_decompose_bits_small_value_const(to_decompose, n_bits: Const): bits = Array(n_bits) hint_decompose_bits(to_decompose, bits, n_bits, BIG_ENDIAN) diff --git a/crates/rec_aggregation/xmss_aggregate.py b/crates/rec_aggregation/xmss_aggregate.py index 31c98342..858a0785 100644 --- a/crates/rec_aggregation/xmss_aggregate.py +++ b/crates/rec_aggregation/xmss_aggregate.py @@ -1,4 +1,5 @@ from snark_lib import * +from utils import * V = V_PLACEHOLDER V_GRINDING = V_GRINDING_PLACEHOLDER @@ -7,38 +8,14 @@ TARGET_SUM = TARGET_SUM_PLACEHOLDER LOG_LIFETIME = LOG_LIFETIME_PLACEHOLDER MESSAGE_LEN = MESSAGE_LEN_PLACEHOLDER -DIGEST_LEN = 8 RANDOMNESS_LEN = RANDOMNESS_LEN_PLACEHOLDER SIG_SIZE = RANDOMNESS_LEN + (V + LOG_LIFETIME) * DIGEST_LEN NUM_ENCODING_FE = div_ceil((V + V_GRINDING), (24 / W)) # 24 should be divisible by W (works for W=2,3,4) -LEVELS_PER_CHUNK = 4 -N_MERKLE_CHUNKS = LOG_LIFETIME / LEVELS_PER_CHUNK - -# Dot product precompile: -DIM = 5 -BE = 1 # base-extension (unused for XMSS) -EE = 0 # extension-extension - - -def main(): - pub_mem = NONRESERVED_PROGRAM_INPUT_START - signatures_start: Imu - hint_private_input_start(signatures_start) - n_signatures = pub_mem[0] - message = pub_mem + 1 - slot_ptr = message + MESSAGE_LEN - slot_lo = slot_ptr[0] - slot_hi = slot_ptr[1] - merkle_chunks = slot_ptr + 2 - all_public_keys = merkle_chunks + N_MERKLE_CHUNKS - - for i in range(0, n_signatures): - merkle_root = all_public_keys + i * DIGEST_LEN - signature = signatures_start + SIG_SIZE * i - xmss_verify(merkle_root, message, signature, slot_lo, slot_hi, merkle_chunks) - return +MERKLE_LEVELS_PER_CHUNK = MERKLE_LEVELS_PER_CHUNK_PLACEHOLDER +N_MERKLE_CHUNKS = LOG_LIFETIME / MERKLE_LEVELS_PER_CHUNK +@inline def xmss_verify(merkle_root, message, signature, slot_lo, slot_hi, merkle_chunks): # signature: randomness | chain_tips | merkle_path # return the hashed xmss public key @@ -50,12 +27,12 @@ def xmss_verify(merkle_root, message, signature, slot_lo, slot_hi, merkle_chunks a_input_right = Array(DIGEST_LEN) b_input = Array(DIGEST_LEN * 2) - a_input_right[0] = message[8] + a_input_right[0] = message[DIGEST_LEN] copy_7(randomness, a_input_right + 1) poseidon16(message, a_input_right, b_input) - b_input[8] = slot_lo - b_input[9] = slot_hi - copy_6(merkle_root, b_input + 10) + b_input[DIGEST_LEN] = slot_lo + b_input[DIGEST_LEN + 1] = slot_hi + copy_6(merkle_root, b_input + DIGEST_LEN + 2) encoding_fe = Array(DIGEST_LEN) poseidon16(b_input, b_input + DIGEST_LEN, encoding_fe) @@ -103,9 +80,9 @@ def xmss_verify(merkle_root, message, signature, slot_lo, slot_hi, merkle_chunks range(0, 1), lambda _: copy_8(chain_start, chain_end), range(1, 2), lambda _: poseidon16(chain_start, ZERO_VEC_PTR, chain_end), range(2, CHAIN_LENGTH), lambda num_hashes_const: chain_hash(chain_start, num_hashes_const, chain_end)) - + wots_pubkey_hashed = slice_hash(wots_public_key, V) - merkle_verify(wots_pubkey_hashed, merkle_path, merkle_chunks, LOG_LIFETIME, merkle_root) + xmss_merkle_verify(wots_pubkey_hashed, merkle_path, merkle_chunks, LOG_LIFETIME, merkle_root) return @@ -167,7 +144,7 @@ def do_4_merkle_levels(b, state_in, path_chunk, state_out): @inline -def merkle_verify(leaf_digest, merkle_path, merkle_chunks, height, expected_root): +def xmss_merkle_verify(leaf_digest, merkle_path, merkle_chunks, height, expected_root): states = Array((N_MERKLE_CHUNKS - 1) * DIGEST_LEN) # First chunk: leaf_digest -> states @@ -178,29 +155,10 @@ def merkle_verify(leaf_digest, merkle_path, merkle_chunks, height, expected_root state_indexes[0] = states for j in unroll(1, N_MERKLE_CHUNKS - 1): state_indexes[j] = state_indexes[j - 1] + DIGEST_LEN - match_range(merkle_chunks[j], range(0, 16), lambda b: do_4_merkle_levels(b, state_indexes[j - 1], merkle_path + j * LEVELS_PER_CHUNK * DIGEST_LEN, state_indexes[j])) + match_range(merkle_chunks[j], range(0, 16), lambda b: do_4_merkle_levels(b, state_indexes[j - 1], merkle_path + j * MERKLE_LEVELS_PER_CHUNK * DIGEST_LEN, state_indexes[j])) # Last chunk: -> expected_root - match_range(merkle_chunks[N_MERKLE_CHUNKS - 1], range(0, 16), lambda b: do_4_merkle_levels(b, state_indexes[N_MERKLE_CHUNKS - 2], merkle_path + (N_MERKLE_CHUNKS - 1) * LEVELS_PER_CHUNK * DIGEST_LEN, expected_root)) - return - - -@inline -def slice_hash(data, len): - states = Array((len-1) * DIGEST_LEN) - poseidon16(data, data + DIGEST_LEN, states) - state_indexes = Array(len - 1) - state_indexes[0] = states - for i in unroll(1, len-1): - state_indexes[i] = state_indexes[i - 1] + DIGEST_LEN - poseidon16(state_indexes[i - 1], data + DIGEST_LEN * (i + 1), state_indexes[i]) - return state_indexes[len - 2] - - -@inline -def copy_8(x, y): - dot_product(x, ONE_VEC_PTR, y, 1, EE) - dot_product(x + (8 - DIM), ONE_VEC_PTR, y + (8 - DIM), 1, EE) + match_range(merkle_chunks[N_MERKLE_CHUNKS - 1], range(0, 16), lambda b: do_4_merkle_levels(b, state_indexes[N_MERKLE_CHUNKS - 2], merkle_path + (N_MERKLE_CHUNKS - 1) * MERKLE_LEVELS_PER_CHUNK * DIGEST_LEN, expected_root)) return @@ -214,11 +172,5 @@ def copy_7(x, y): @inline def copy_6(x, y): dot_product(x, ONE_VEC_PTR, y, 1, EE) - y[5] = x[5] + y[DIM] = x[DIM] return - - -def print_digest(digest): - for i in unroll(0, DIGEST_LEN): - print(digest[i]) - return \ No newline at end of file diff --git a/crates/utils/src/misc.rs b/crates/utils/src/misc.rs index 12d33dc8..9416616d 100644 --- a/crates/utils/src/misc.rs +++ b/crates/utils/src/misc.rs @@ -1,14 +1,6 @@ use std::sync::atomic::{AtomicPtr, Ordering}; use multilinear_toolkit::prelude::*; -use tracing::instrument; - -pub fn transmute_slice(slice: &[Before]) -> &[After] { - let new_len = std::mem::size_of_val(slice) / std::mem::size_of::(); - assert_eq!(std::mem::size_of_val(slice), new_len * std::mem::size_of::()); - assert_eq!(slice.as_ptr() as usize % std::mem::align_of::(), 0); - unsafe { std::slice::from_raw_parts(slice.as_ptr() as *const After, new_len) } -} pub fn from_end(slice: &[A], n: usize) -> &[A] { assert!(n <= slice.len()); @@ -59,44 +51,13 @@ pub fn to_little_endian_in_field(value: usize, bit_count: usize) -> Ve res } -#[macro_export] -macro_rules! assert_eq_many { - ($first:expr, $($rest:expr),+ $(,)?) => { - { - let first_val = $first; - $( - assert_eq!(first_val, $rest, - "assertion failed: `(left == right)`\n left: `{:?}`,\n right: `{:?}`", - first_val, $rest); - )+ - } - }; -} - -#[instrument(skip_all)] -pub fn transpose(matrix: &[F], width: usize, column_extra_capacity: usize) -> Vec> { - assert!((matrix.len().is_multiple_of(width))); - let height = matrix.len() / width; - let res = vec![ - { - let mut vec = Vec::::with_capacity(height + column_extra_capacity); - #[allow(clippy::uninit_vec)] - unsafe { - vec.set_len(height); - } - vec - }; - width - ]; - matrix.par_chunks_exact(width).enumerate().for_each(|(row, chunk)| { - for (&value, col) in chunk.iter().zip(&res) { - unsafe { - let ptr = col.as_ptr() as *mut F; - ptr.add(row).write(value); - } - } - }); - res +/// Reverses the order of the lowest `n_bits` bits of `x`. +pub fn bit_reverse(x: usize, n_bits: usize) -> usize { + let mut result = 0; + for i in 0..n_bits { + result |= ((x >> i) & 1) << (n_bits - 1 - i); + } + result } pub fn transposed_par_iter_mut( @@ -125,18 +86,10 @@ impl<'a, T> VecOrSlice<'a, T> { } } -pub fn encapsulate_vec(v: Vec) -> Vec> { - v.into_iter().map(|x| vec![x]).collect() -} - pub fn collect_refs(vecs: &[Vec]) -> Vec<&[T]> { vecs.iter().map(Vec::as_slice).collect() } -pub fn collect_inner_refs(vecs: &[Vec>]) -> Vec> { - vecs.iter().map(|v| collect_refs(v)).collect() -} - #[derive(Debug, Clone, Default)] pub struct Counter(usize); diff --git a/minimal_zkVM.pdf b/minimal_zkVM.pdf index 1eaa9bef5fee2989f07a24b280deab1d1a8f34a6..c7e1843bee0d59eca7ace7e7e031a8c4d4da954e 100644 GIT binary patch delta 154703 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 delta 145162 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%0ADi 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

`u&j{*Bohn=8{C^I8fFgY1qJd#0O`I*qg1mRf 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 +7qmTRF3nKOXaaP6L`yTa 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 diff --git a/misc/minimal_zkVM.tex b/misc/minimal_zkVM.tex index b9cb7a51..136355fc 100644 --- a/misc/minimal_zkVM.tex +++ b/misc/minimal_zkVM.tex @@ -795,17 +795,13 @@ \subsection{Simple stacking of multilinear polynomials} \section{Recursive Aggregation}\label{sec:recursive-aggregation} -All XMSS public keys are stored in a Merkle tree (the \emph{public-key registry}). Signers are identified by their \emph{index} in this registry (rather than using a bitfield). - -The recursive aggregation program (see Figure~\ref{fig:recursive-aggregation}) takes $n_{\text{sigs}}$ signers and partitions them into $n_{\text{rec}} + 1$ sources: one \textbf{direct source} whose XMSS signatures are verified explicitly, and $n_{\text{rec}}$ \textbf{recursive sources}, each accompanied by a sub-proof that is verified via the leanVM verifier. - -For the direct source, the program checks each signer's XMSS signature and verifies a Merkle inclusion proof that their public key belongs to the registry. +The recursive aggregation program (see Figure~\ref{fig:recursive-aggregation}) takes $n_{\text{sigs}}$ signers and partitions them into $n_{\text{rec}} + 1$ sources: one \textbf{direct source} whose signatures are verified explicitly, and $n_{\text{rec}}$ \textbf{recursive sources}, each accompanied by a sub-proof that is recursively verified. For each recursive source, the program runs the leanVM verifier on the provided sub-proof, confirming that the sub-proof itself is a valid recursive aggregation proof covering the source's signers. \subsection{Bytecode evaluation claims}\label{sec:bytecode-reduction} -A key subtlety arises from recursion. Every leanVM proof is tied to a specific \emph{bytecode} --- the program that was executed, represented as a multilinear polynomial. In our case, there is a single program (that both contain XMSS verification and recursion algorithms). The leanVM verification algorithm requires evaluating the bytecode polynomial at a random point. +A key subtlety arises from recursion. Every leanVM proof is tied to a specific \emph{bytecode} --- the program that was executed, represented as a multilinear polynomial. In our case, there is a single program (that both contain signature verification and recursion algorithms). The leanVM verification algorithm requires evaluating the bytecode polynomial at a random point. When the recursive aggregation program verifies a sub-proof, it runs the leanVM verifier \emph{inside} the program. This verification produces a bytecode evaluation claim. For efficiency, rather than checking it inside the program (with a PCS), the claim is forwarded to the public input, to be checked externally. @@ -821,6 +817,63 @@ \subsection{Bytecode evaluation claims}\label{sec:bytecode-reduction} When $n_{\text{rec}} = 0$ (no recursion), the bytecode claim in the public input is set to zero. + +\subsection{Signer partitioning}\label{sec:signer-partitioning} + +\subsubsection{Trivial partitioning} + +In the most straightforward approach, the aggregation program takes as input a list of public keys, and a mesage. In a loop, each public key is either directly verified (direct source) or assigned to one of the $n_{\text{rec}}$ recursive sources. Then, the program verifies each recursive source accordingly (with the same message). + +\begin{itemize} + \item Pros: simplicity + \item Cons: performance bottleneck in the final steps of aggregation when there are a lot of signers (think more than $2^{14}$) +\end{itemize} + +If performance allows, this approach should be preferred. + +\subsubsection{Using a registry of signers} + +\emph{When the set of signers is large, but is known in advance (specifically: Ethereum's consensus layer), a potentially more efficient approach is possible, yet more complex.} +\vspace{5mm} + + +All public keys are stored in a Merkle tree (the \emph{public-key registry}). Signers are identified by their \emph{index} in this registry (rather than using a bitfield). + +For the direct source, the program checks each signature and verifies a Merkle inclusion proof that their public key belongs to the registry. + +Each aggregated signature attests to a set of $n_{\text{sigs}}$ signer indices from the public-key registry. The $n_{\text{rec}} + 1$ sources (one direct source and $n_{\text{rec}}$ recursive sources) may \emph{overlap}: a signer can appear in multiple sources. The program must verify that the claimed global set included in the union of all sources. + +\vspace{2mm} + +The (untrusted) prover hints three kinds of index lists: +\begin{itemize} + \item \textbf{Global indices} $G$: the deduplicated list of all signer indices attested by this proof. + \item \textbf{Duplicate indices} $D$: each index appearing in $k > 1$ sources contributes $k - 1$ copies to $D$. + \item \textbf{Source indices} $S_s$ for each source $s \in \{0, \dots, n_{\text{rec}}\}$. +\end{itemize} + +A constraint asserts $|G| + |D| = \sum_{s=0}^{n_{\text{rec}}} |S_s|$. + +The multiset identity to enforce is: +$$G \cup D \;=\; \bigcup_{s=0}^{n_{\text{rec}}} S_s$$ + +\textbf{Index hashing.} All these $2 + n_{\text{rec}}$ lists are hashed: $H(G)$, $H(D)$, and $(H(S_s))_{s=0}^{n_{\text{rec}}}$. +$H(G)$ is written to the public input (outer proof), and each $H(S_s)$ is written to the public input of the corresponding inner proof. + + +\textbf{Challenge derivation.} By hashing together $H(G)$, $H(D)$, and $(H(S_s))_{s=0}^{n_{\text{rec}}}$, a Fiat--Shamir challenge $\alpha \in \Fq$ is derived. + +\vspace{2mm} + +\textbf{Consistency checks.} For any index list $I = (i_0, \dots, i_{k-1})$ with $i_j \in \Fp$, define the product polynomial $P_I(\alpha) = \prod_{j=0}^{k-1}(\alpha - i_j) \in \Fq$. The program evaluates both sides and asserts: +$$P_G(\alpha) \cdot P_D(\alpha) = \prod_{s=0}^{n_{\text{rec}}} P_{S_s}(\alpha)$$ + +Soundness of this argument is $(|G| + |D|)/q$, by the Schwartz--Zippel lemma. + +\vspace{5mm} + +\emph{The current implementation uses this signature registry, TODO can we use the trivial partioning instead (without too much performance overhead)?} + \clearpage \bibliographystyle{IEEEtran} \bibliography{bibliography} diff --git a/src/lib.rs b/src/lib.rs index bf72038b..8161356e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,88 +1,88 @@ -use multilinear_toolkit::prelude::*; -pub use multilinear_toolkit::prelude::{ - PrimeCharacteristicRing, // to allow `F::from_usize` - ProofError, -}; -pub use rec_aggregation::xmss_aggregate::{xmss_aggregate_signatures, xmss_verify_aggregated_signatures}; -pub use xmss::{XmssPublicKey, XmssSecretKey, XmssSignature, xmss_key_gen, xmss_sign, xmss_verify}; +// use multilinear_toolkit::prelude::*; +// pub use multilinear_toolkit::prelude::{ +// PrimeCharacteristicRing, // to allow `F::from_usize` +// ProofError, +// }; +// pub use rec_aggregation::xmss_aggregate::{xmss_aggregate_signatures, xmss_verify_aggregated_signatures}; +// pub use xmss::{XmssPublicKey, XmssSecretKey, XmssSignature, xmss_key_gen, xmss_sign, xmss_verify}; -pub fn xmss_aggregation_setup_prover() { - rec_aggregation::xmss_aggregate::xmss_setup_aggregation_program(); - precompute_dft_twiddles::(1 << 24); -} +// pub fn xmss_aggregation_setup_prover() { +// rec_aggregation::xmss_aggregate::xmss_setup_aggregation_program(); +// precompute_dft_twiddles::(1 << 24); +// } -pub fn xmss_aggregation_setup_verifier() { - rec_aggregation::xmss_aggregate::xmss_setup_aggregation_program(); -} +// pub fn xmss_aggregation_setup_verifier() { +// rec_aggregation::xmss_aggregate::xmss_setup_aggregation_program(); +// } -pub type F = p3_koala_bear::KoalaBear; +// pub type F = p3_koala_bear::KoalaBear; -#[cfg(test)] -mod tests { - use super::*; - use rand::{Rng, SeedableRng, rngs::StdRng}; - use xmss::MESSAGE_LEN_FE; +// #[cfg(test)] +// mod tests { +// use super::*; +// use rand::{Rng, SeedableRng, rngs::StdRng}; +// use xmss::MESSAGE_LEN_FE; - #[test] - fn test_xmss_signature() { - let start = 555; - let end = 565; - let slot = 560; - let key_gen_seed: [u8; 32] = std::array::from_fn(|i| i as u8); - let message_hash: [F; MESSAGE_LEN_FE] = std::array::from_fn(|i| F::from_usize(i * 3)); +// #[test] +// fn test_xmss_signature() { +// let start = 555; +// let end = 565; +// let slot = 560; +// let key_gen_seed: [u8; 32] = std::array::from_fn(|i| i as u8); +// let message_hash: [F; MESSAGE_LEN_FE] = std::array::from_fn(|i| F::from_usize(i * 3)); - let (secret_key, pub_key) = xmss_key_gen(key_gen_seed, start, end).unwrap(); - let mut rng = StdRng::from_seed(std::array::from_fn(|i| (i * 2) as u8)); - let signature = xmss_sign(&mut rng, &secret_key, &message_hash, slot).unwrap(); - xmss_verify(&pub_key, &message_hash, &signature).unwrap(); - } +// let (secret_key, pub_key) = xmss_key_gen(key_gen_seed, start, end).unwrap(); +// let mut rng = StdRng::from_seed(std::array::from_fn(|i| (i * 2) as u8)); +// let signature = xmss_sign(&mut rng, &secret_key, &message_hash, slot).unwrap(); +// xmss_verify(&pub_key, &message_hash, &signature).unwrap(); +// } - #[test] - fn test_aggregate_xmss_signature() { - // Not mandatory, but avoid to slow down the first aggregation proof - xmss_aggregation_setup_prover(); +// #[test] +// fn test_aggregate_xmss_signature() { +// // Not mandatory, but avoid to slow down the first aggregation proof +// xmss_aggregation_setup_prover(); - // Not mandatory, but avoid to slow down the first aggregation verification - // (Actually, no need to call it if `xmss_aggregation_setup_prover` was already called) - xmss_aggregation_setup_verifier(); +// // Not mandatory, but avoid to slow down the first aggregation verification +// // (Actually, no need to call it if `xmss_aggregation_setup_prover` was already called) +// xmss_aggregation_setup_verifier(); - let n_signatures = 3; - let message_hash: [F; MESSAGE_LEN_FE] = std::array::from_fn(|i| F::from_usize(i * 7)); - let slot = 77777; +// let n_signatures = 3; +// let message_hash: [F; MESSAGE_LEN_FE] = std::array::from_fn(|i| F::from_usize(i * 7)); +// let slot = 77777; - let pub_keys_and_sigs: Vec<_> = (0..n_signatures) - .into_par_iter() - .map(|i| { - let mut rng = StdRng::seed_from_u64(i as u64); - let start = slot - 5; - let end = slot + 5; - let (sk, pk) = xmss_key_gen(rng.random(), start, end).unwrap(); - let sig = xmss_sign(&mut rng, &sk, &message_hash, slot).unwrap(); - xmss_verify(&pk, &message_hash, &sig).unwrap(); - (pk, sig) - }) - .collect(); - let (xmss_pub_keys, all_signatures): (Vec<_>, Vec<_>) = pub_keys_and_sigs.into_iter().unzip(); +// let pub_keys_and_sigs: Vec<_> = (0..n_signatures) +// .into_par_iter() +// .map(|i| { +// let mut rng = StdRng::seed_from_u64(i as u64); +// let start = slot - 5; +// let end = slot + 5; +// let (sk, pk) = xmss_key_gen(rng.random(), start, end).unwrap(); +// let sig = xmss_sign(&mut rng, &sk, &message_hash, slot).unwrap(); +// xmss_verify(&pk, &message_hash, &sig).unwrap(); +// (pk, sig) +// }) +// .collect(); +// let (xmss_pub_keys, all_signatures): (Vec<_>, Vec<_>) = pub_keys_and_sigs.into_iter().unzip(); - let log_inv_rate = 1; - let prox_gaps_conjecture = false; - let proof = xmss_aggregate_signatures( - &xmss_pub_keys, - &all_signatures, - message_hash, - slot, - log_inv_rate, - prox_gaps_conjecture, - ) - .unwrap(); - xmss_verify_aggregated_signatures( - &xmss_pub_keys, - message_hash, - &proof, - slot, - log_inv_rate, - prox_gaps_conjecture, - ) - .unwrap(); - } -} +// let log_inv_rate = 1; +// let prox_gaps_conjecture = false; +// let proof = xmss_aggregate_signatures( +// &xmss_pub_keys, +// &all_signatures, +// message_hash, +// slot, +// log_inv_rate, +// prox_gaps_conjecture, +// ) +// .unwrap(); +// xmss_verify_aggregated_signatures( +// &xmss_pub_keys, +// message_hash, +// &proof, +// slot, +// log_inv_rate, +// prox_gaps_conjecture, +// ) +// .unwrap(); +// } +// } diff --git a/src/main.rs b/src/main.rs index 09ae81f9..64a09795 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,35 +1,10 @@ use clap::Parser; mod prove_poseidons; -use rec_aggregation::{recursion::run_recursion_benchmark, xmss_aggregate::run_xmss_benchmark}; use crate::prove_poseidons::benchmark_prove_poseidon_16; #[derive(Parser)] enum Cli { - #[command(about = "Aggregate XMSS signature")] - Xmss { - #[arg(long)] - n_signatures: usize, - #[arg(long, help = "log(1/rate) in WHIR", default_value = "1", short = 'r')] - log_inv_rate: usize, - // TODO use the latest results (i.e. update the conjecture) - #[arg(long, help = "Uses Conjecture 4.12 from WHIR (up to capacity)")] - prox_gaps_conjecture: bool, - #[arg(long, help = "Enable tracing")] - tracing: bool, - }, - #[command(about = "Run n->1 recursion")] - Recursion { - #[arg(long, default_value = "1", help = "Number of recursive proofs to aggregate")] - n: usize, - #[arg(long, help = "log(1/rate) in WHIR", default_value = "2", short = 'r')] - log_inv_rate: usize, - // TODO use the latest results (i.e. update the conjecture) - #[arg(long, help = "Uses Conjecture 4.12 from WHIR (up to capacity)")] - prox_gaps_conjecture: bool, - #[arg(long, help = "Enable tracing")] - tracing: bool, - }, #[command(about = "Prove validity of Poseidon2 permutations over 16 field elements")] Poseidon { #[arg(long, help = "log2(number of Poseidons)")] @@ -43,22 +18,6 @@ fn main() { let cli = Cli::parse(); match cli { - Cli::Xmss { - n_signatures, - log_inv_rate, - prox_gaps_conjecture, - tracing, - } => { - run_xmss_benchmark(n_signatures, log_inv_rate, prox_gaps_conjecture, tracing); - } - Cli::Recursion { - n, - log_inv_rate, - prox_gaps_conjecture, - tracing, - } => { - run_recursion_benchmark(n, log_inv_rate, prox_gaps_conjecture, tracing); - } Cli::Poseidon { log_n_perms: log_count, tracing, From 356a6137f17d97473748e9247a77c1b8f51cffae Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 01:16:02 +0400 Subject: [PATCH 02/17] AggregatedSigs --- crates/rec_aggregation/main.py | 17 +- crates/rec_aggregation/src/compilation.rs | 6 +- crates/rec_aggregation/src/lib.rs | 314 +++++++++++++--------- 3 files changed, 193 insertions(+), 144 deletions(-) diff --git a/crates/rec_aggregation/main.py b/crates/rec_aggregation/main.py index b23490a2..9946aff9 100644 --- a/crates/rec_aggregation/main.py +++ b/crates/rec_aggregation/main.py @@ -5,16 +5,14 @@ LOG_SIZE_PUBKEY_REGISTRY = LOG_SIZE_PUBKEY_REGISTRY_PLACEHOLDER DATA_PER_RAW_SIGNER = DIGEST_LEN + LOG_SIZE_PUBKEY_REGISTRY * DIGEST_LEN + SIG_SIZE INNER_PUB_MEM_SIZE = 2 ** INNER_PUBLIC_MEMORY_LOG_SIZE -BYTECODE_CLAIM_OFFSET = 2 + 2 * DIGEST_LEN + 2 + MESSAGE_LEN + N_MERKLE_CHUNKS +BYTECODE_CLAIM_OFFSET = 1 + 2 * DIGEST_LEN + 2 + MESSAGE_LEN + N_MERKLE_CHUNKS def main(): pub_mem = NONRESERVED_PROGRAM_INPUT_START n_sigs = pub_mem[0] assert n_sigs <= 2**LOG_SIZE_PUBKEY_REGISTRY - n_recursions = pub_mem[1] - assert n_recursions <= MAX_RECURSIONS - registry_root = pub_mem + 2 + registry_root = pub_mem + 1 signer_indexes_hash_expected = registry_root + DIGEST_LEN message = signer_indexes_hash_expected + DIGEST_LEN slot_ptr = message + MESSAGE_LEN @@ -26,7 +24,10 @@ def main(): priv_start: Imu hint_private_input_start(priv_start) - signer_indexes_hash, sub_slice_starts, bytecode_sumcheck_proof, source_hashes = verify_signer_index_partitioning(n_sigs, n_recursions, priv_start) + n_recursions = priv_start[0] + assert n_recursions <= MAX_RECURSIONS + + signer_indexes_hash, sub_slice_starts, bytecode_sumcheck_proof, source_hashes = verify_signer_index_partitioning(n_sigs, n_recursions, priv_start + 1) copy_8(signer_indexes_hash, signer_indexes_hash_expected) @@ -166,9 +167,9 @@ def verify_recursive_sources_and_reduce_bytecode_claims( copy_5(i * DIM, inner_pub_mem + i * DIM) non_reserserved_inner_pub_mem = inner_pub_mem + NONRESERVED_PROGRAM_INPUT_START assert non_reserserved_inner_pub_mem[0] == n_sub_sigs - copy_8(registry_root, non_reserserved_inner_pub_mem + 2) - copy_8(sub_indexes_hash, non_reserserved_inner_pub_mem + 2 + DIGEST_LEN) - inner_msg = non_reserserved_inner_pub_mem + 2 + 2 * DIGEST_LEN + copy_8(registry_root, non_reserserved_inner_pub_mem + 1) + copy_8(sub_indexes_hash, non_reserserved_inner_pub_mem + 1 + DIGEST_LEN) + inner_msg = non_reserserved_inner_pub_mem + 1 + 2 * DIGEST_LEN debug_assert(MESSAGE_LEN <= 2*DIM) copy_5(message, inner_msg) copy_5(message + (MESSAGE_LEN - DIM), inner_msg + (MESSAGE_LEN - DIM) ) diff --git a/crates/rec_aggregation/src/compilation.rs b/crates/rec_aggregation/src/compilation.rs index 8a35be39..710d8685 100644 --- a/crates/rec_aggregation/src/compilation.rs +++ b/crates/rec_aggregation/src/compilation.rs @@ -21,9 +21,9 @@ use crate::{LOG_SIZE_PUBKEY_REGISTRY, MERKLE_LEVELS_PER_CHUNK_FOR_SLOT, N_MERKLE fn compile_main_program(inner_program_log_size: usize, prox_gaps_conjecture: bool, bytecode_zero_eval: F) -> Bytecode { let bytecode_point_n_vars = inner_program_log_size + log2_ceil_usize(N_INSTRUCTION_COLUMNS); let claim_data_size = (bytecode_point_n_vars + 1) * DIMENSION; - // pub_input layout: n_sigs(1) + n_recursions(1) + pubkey_registry_root(8) + signers_hash(8) + slot_low(1) + slot_high(1) - // + message + merkle_chunks_fr_slot + bytecode_claim - let pub_input_size = 2 + 2 * DIGEST_LEN + 2 + MESSAGE_LEN_FE + N_MERKLE_CHUNKS_FOR_SLOT + claim_data_size; + // pub_input layout: n_sigs(1) + pubkey_registry_root(8) + signers_hash(8) + slot_low(1) + slot_high(1) + // + message + merkle_chunks_for_slot + bytecode_claim + let pub_input_size = 1 + 2 * DIGEST_LEN + 2 + MESSAGE_LEN_FE + N_MERKLE_CHUNKS_FOR_SLOT + claim_data_size; let inner_public_memory_log_size = log2_ceil_usize(NONRESERVED_PROGRAM_INPUT_START + pub_input_size); let replacements = build_replacements( inner_program_log_size, diff --git a/crates/rec_aggregation/src/lib.rs b/crates/rec_aggregation/src/lib.rs index 548e2884..d44f0a13 100644 --- a/crates/rec_aggregation/src/lib.rs +++ b/crates/rec_aggregation/src/lib.rs @@ -22,15 +22,14 @@ const N_MERKLE_CHUNKS_FOR_SLOT: usize = LOG_LIFETIME / MERKLE_LEVELS_PER_CHUNK_F #[derive(Debug, Clone)] pub struct AggregationTopology { - pub raw: usize, - pub profile: bool, + pub raw_xmss: usize, pub children: Vec, } fn count_signers(topology: &AggregationTopology, overlap: usize) -> usize { let child_count: usize = topology.children.iter().map(|c| count_signers(c, overlap)).sum(); let n_overlaps = topology.children.len().saturating_sub(1); - topology.raw + child_count - overlap * n_overlaps + topology.raw_xmss + child_count - overlap * n_overlaps } /// layers[0] = leaves, layers[height] = [root]. @@ -91,7 +90,6 @@ fn compute_merkle_chunks_for_slot(slot: u32) -> Vec { fn build_non_reserved_public_input( n_sigs: usize, - n_recursions: usize, registry_root: &[F; DIGEST_LEN], signer_indexes_hash: &[F; DIGEST_LEN], message: &[F; MESSAGE_LEN_FE], @@ -100,7 +98,6 @@ fn build_non_reserved_public_input( ) -> Vec { let mut pi = vec![]; pi.push(F::from_usize(n_sigs)); - pi.push(F::from_usize(n_recursions)); pi.extend_from_slice(registry_root); pi.extend_from_slice(signer_indexes_hash); pi.extend_from_slice(message); @@ -123,114 +120,118 @@ fn encode_xmss_signature(sig: &XmssSignature) -> Vec { data } -struct ChildProofData { - proof: Vec, - public_input: Vec, - bytecode_evaluation: Evaluation, +#[derive(Debug)] +pub struct AggregatedSigs { + pub signer_indices: Vec, + pub proof: Vec, + pub bytecode_point: Option>, +} + +impl AggregatedSigs { + pub fn public_input( + &self, + registry_root: &[F; DIGEST_LEN], + message: &[F; MESSAGE_LEN_FE], + slot: u32, + bytecode: &Bytecode, + ) -> Vec { + let bytecode_point_n_vars = bytecode.log_size() + log2_ceil_usize(N_INSTRUCTION_COLUMNS); + let bytecode_claim_size = (bytecode_point_n_vars + 1) * DIMENSION; + + let bytecode_claim_output = match &self.bytecode_point { + Some(point) => { + let value = bytecode.instructions_multilinear.evaluate(point); + let mut ef_claim: Vec = point.0.clone(); + ef_claim.push(value); + flatten_scalars_to_base::(&ef_claim) + } + None => { + let mut claim = vec![F::ZERO; bytecode_claim_size]; + claim[bytecode_point_n_vars * DIMENSION] = bytecode.instructions_multilinear[0]; + claim + } + }; + assert_eq!(bytecode_claim_output.len(), bytecode_claim_size); + + let indices_fe: Vec = self.signer_indices.iter().map(|&i| F::from_usize(i)).collect(); + let signer_indexes_hash = poseidon_compress_slice(&indices_fe); + + build_non_reserved_public_input( + self.signer_indices.len(), + registry_root, + &signer_indexes_hash, + message, + slot, + &bytecode_claim_output, + ) + } } #[allow(clippy::too_many_arguments)] #[instrument(skip_all)] -fn prove_aggregation_node( - topology: &AggregationTopology, - bytecode: &Bytecode, +pub fn merge( + children: &[AggregatedSigs], + raw_signers: &[(usize, XmssPublicKey, XmssSignature)], message: &[F; MESSAGE_LEN_FE], slot: u32, registry_merkle_tree: &[Vec<[F; DIGEST_LEN]>], - signer_indices: &[usize], - pub_keys: &[XmssPublicKey], - signatures: &[XmssSignature], + bytecode: &Bytecode, + overlap: usize, log_inv_rate: usize, prox_gaps_conjecture: bool, - overlap: usize, -) -> (Vec, Vec) { - let n_sigs = signer_indices.len(); - let n_recursions = topology.children.len(); - let raw_count = topology.raw; +) -> AggregatedSigs { + let n_recursions = children.len(); + let raw_count = raw_signers.len(); let whir_config = default_whir_config(log_inv_rate, prox_gaps_conjecture); + let registry_root = ®istry_merkle_tree.last().unwrap()[0]; let bytecode_point_n_vars = bytecode.log_size() + log2_ceil_usize(N_INSTRUCTION_COLUMNS); let bytecode_claim_size = (bytecode_point_n_vars + 1) * DIMENSION; - // Source 0 (raw XMSS) - let raw_signer_indices = &signer_indices[..raw_count]; - let raw_pub_keys = &pub_keys[..raw_count]; - let raw_signatures = &signatures[..raw_count]; - - // source >= 1 (recursions) - let mut child_proofs: Vec = vec![]; - let mut child_start = raw_count; - for (child_idx, child) in topology.children.iter().enumerate() { - let child_count = count_signers(child, overlap); - let child_signer_indices = &signer_indices[child_start..child_start + child_count]; - let child_pub_keys = &pub_keys[child_start..child_start + child_count]; - let child_signatures = &signatures[child_start..child_start + child_count]; - - let (child_proof, inner_pub_input) = prove_aggregation_node( - child, - bytecode, - message, - slot, - registry_merkle_tree, - child_signer_indices, - child_pub_keys, - child_signatures, - log_inv_rate, - prox_gaps_conjecture, - overlap, - ); - - let inner_verif_details = - verify_execution(bytecode, &inner_pub_input, child_proof.clone(), whir_config.clone()).unwrap(); - - child_proofs.push(ChildProofData { - proof: child_proof, - public_input: inner_pub_input, - bytecode_evaluation: inner_verif_details.bytecode_evaluation, - }); - - child_start += child_count; - if child_idx < topology.children.len() - 1 { - child_start -= overlap; + // Build merged signer_indices: raw ++ children with overlap + let raw_indices: Vec = raw_signers.iter().map(|(idx, _, _)| *idx).collect(); + let mut signer_indices = raw_indices.clone(); + for (i, child) in children.iter().enumerate() { + if i == 0 { + signer_indices.extend_from_slice(&child.signer_indices); + } else { + signer_indices.extend_from_slice(&child.signer_indices[overlap..]); } } + let n_sigs = signer_indices.len(); - // Compute global signer indexes hash - let global_indices_fe: Vec = signer_indices.iter().map(|&i| F::from_usize(i)).collect(); - let signer_indexes_hash = poseidon_compress_slice(&global_indices_fe); + // Verify child proofs + let mut child_pub_inputs: Vec> = vec![]; + let mut child_bytecode_evals: Vec> = vec![]; + for child in children { + let child_pub_input = child.public_input(registry_root, message, slot, bytecode); + let verif = verify_execution(bytecode, &child_pub_input, child.proof.clone(), whir_config.clone()).unwrap(); + child_bytecode_evals.push(verif.bytecode_evaluation); + child_pub_inputs.push(child_pub_input); + } - //Compute per-source sub-index lists and duplicate indices - let mut all_sub_indices = vec![raw_signer_indices.to_vec()]; + // Sub-index lists and dup indices + let mut all_sub_indices: Vec<&[usize]> = vec![&raw_indices]; let mut dup_indices = Vec::new(); - let mut sub_start = raw_count; - for (child_idx, child) in topology.children.iter().enumerate() { - let child_count = count_signers(child, overlap); - all_sub_indices.push(signer_indices[sub_start..sub_start + child_count].to_vec()); - if child_idx > 0 && overlap > 0 { - dup_indices.extend_from_slice(&signer_indices[sub_start..sub_start + overlap]); - } - sub_start += child_count; - if child_idx < topology.children.len() - 1 { - sub_start -= overlap; + for (i, child) in children.iter().enumerate() { + all_sub_indices.push(&child.signer_indices); + if i > 0 && overlap > 0 { + dup_indices.extend_from_slice(&child.signer_indices[..overlap]); } } dup_indices.sort(); // Bytecode sumcheck reduction - let (bytecode_claim_output, final_sumcheck_transcript) = if n_recursions > 0 { - // Collect 2*n_recursions bytecode claims - let bytecode_claim_offset = 2 + 2 * DIGEST_LEN + 2 + MESSAGE_LEN_FE + N_MERKLE_CHUNKS_FOR_SLOT; + let (bytecode_claim_output, bytecode_point, final_sumcheck_transcript) = if n_recursions > 0 { + let bytecode_claim_offset = 1 + 2 * DIGEST_LEN + 2 + MESSAGE_LEN_FE + N_MERKLE_CHUNKS_FOR_SLOT; let mut claims = vec![]; - for child_data in &child_proofs { - // Claim from child's public input + for (i, _child) in children.iter().enumerate() { let first_claim = extract_bytecode_claim_from_public_input( - &child_data.public_input[bytecode_claim_offset..], + &child_pub_inputs[i][bytecode_claim_offset..], bytecode_point_n_vars, ); claims.push(first_claim); - - // Claim from verify_execution - claims.push(child_data.bytecode_evaluation.clone()); + claims.push(child_bytecode_evals[i].clone()); } let claims_hash = hash_bytecode_claims(&claims); @@ -242,7 +243,6 @@ fn prove_aggregation_node( let n_claims = claims.len(); let alpha_powers: Vec = alpha.powers().take(n_claims).collect(); - // Build weights: w(x) = sum_i alpha^i * eq(x, point_i) let weights_packed = claims .par_iter() .zip(&alpha_powers) @@ -274,24 +274,23 @@ fn prove_aggregation_node( let reduced_point = challenges; let reduced_value = final_evals[0]; - let mut ef_claim: Vec = reduced_point.0; + let mut ef_claim: Vec = reduced_point.0.clone(); ef_claim.push(reduced_value); let claim_output = flatten_scalars_to_base::(&ef_claim); assert_eq!(claim_output.len(), bytecode_claim_size); - (claim_output, reduction_prover.raw_proof()) + (claim_output, Some(reduced_point), reduction_prover.raw_proof()) } else { - // n_recursions=0: output ((0,...,0), bytecode((0,...,0))) let mut claim_output = vec![F::ZERO; bytecode_claim_size]; claim_output[bytecode_point_n_vars * DIMENSION] = bytecode.instructions_multilinear[0]; - (claim_output, vec![]) + (claim_output, None, vec![]) }; // Build public input - let registry_root = ®istry_merkle_tree.last().unwrap()[0]; + let global_indices_fe: Vec = signer_indices.iter().map(|&i| F::from_usize(i)).collect(); + let signer_indexes_hash = poseidon_compress_slice(&global_indices_fe); let non_reserved_public_input = build_non_reserved_public_input( n_sigs, - n_recursions, registry_root, &signer_indexes_hash, message, @@ -300,8 +299,8 @@ fn prove_aggregation_node( ); let public_memory = build_public_memory(&non_reserved_public_input); - // header size: (n_recursions+1) pointers + 1 sumcheck_proof_ptr + 1 n_dup + n_sigs + n_dup - let header_size = (n_recursions + 1) + 1 + 1 + n_sigs + dup_indices.len(); + // header: 1 n_recursions + (n_recursions+1) pointers + 1 sumcheck_proof_ptr + 1 n_dup + n_sigs + n_dup + let header_size = 1 + (n_recursions + 1) + 1 + 1 + n_sigs + dup_indices.len(); let mut source_blocks: Vec> = vec![]; @@ -309,46 +308,36 @@ fn prove_aggregation_node( { let mut block = vec![]; block.push(F::from_usize(raw_count)); - // raw_indices - for &idx in raw_signer_indices { + for &(idx, _, _) in raw_signers { block.push(F::from_usize(idx)); } - // raw signer data: pubkey + registry_merkle_path + xmss_sig - for i in 0..raw_count { - block.extend_from_slice(&raw_pub_keys[i].merkle_root); - let proof = get_merkle_proof(registry_merkle_tree, raw_signer_indices[i]); + for (idx, pk, sig) in raw_signers { + block.extend_from_slice(&pk.merkle_root); + let proof = get_merkle_proof(registry_merkle_tree, *idx); for sibling in &proof { block.extend_from_slice(sibling); } - block.extend(encode_xmss_signature(&raw_signatures[i])); + block.extend(encode_xmss_signature(sig)); } source_blocks.push(block); } // Sources 1..n_recursions: recursive children - for (s_idx, child_data) in child_proofs.iter().enumerate() { + for (i, child) in children.iter().enumerate() { let mut block = vec![]; - let child_sub_indices = &all_sub_indices[s_idx + 1]; - let n_sub_sigs = child_sub_indices.len(); + let sub_indices = all_sub_indices[i + 1]; - block.push(F::from_usize(n_sub_sigs)); - // sub_indices - for &idx in child_sub_indices { + block.push(F::from_usize(sub_indices.len())); + for &idx in sub_indices { block.push(F::from_usize(idx)); } // bytecode_value_hint (DIM elements) - block.extend_from_slice( - &child_data - .bytecode_evaluation - .value - .as_basis_coefficients_slice() - .to_vec(), - ); + block.extend_from_slice(child_bytecode_evals[i].value.as_basis_coefficients_slice()); // inner_pub_mem - let child_pub_mem = build_public_memory(&child_data.public_input); + let child_pub_mem = build_public_memory(&child_pub_inputs[i]); block.extend_from_slice(&child_pub_mem); // proof_transcript - block.extend_from_slice(&child_data.proof); + block.extend_from_slice(&child.proof); source_blocks.push(block); } @@ -363,12 +352,13 @@ fn prove_aggregation_node( let bytecode_sumcheck_proof_ptr = public_memory.len() + offset_in_priv; let mut private_input = vec![]; + private_input.push(F::from_usize(n_recursions)); for &ptr in &source_ptrs { private_input.push(F::from_usize(ptr)); } private_input.push(F::from_usize(bytecode_sumcheck_proof_ptr)); private_input.push(F::from_usize(dup_indices.len())); - for &idx in signer_indices { + for &idx in &signer_indices { private_input.push(F::from_usize(idx)); } for &idx in &dup_indices { @@ -379,16 +369,15 @@ fn prove_aggregation_node( for block in &source_blocks { private_input.extend_from_slice(block); } - private_input.extend_from_slice(&final_sumcheck_transcript); let time = Instant::now(); let execution_proof = prove_execution( bytecode, (&non_reserved_public_input, &private_input), - &vec![], // TODO precompute poseidons + &vec![], &whir_config, - topology.profile, + false, ); let node_elapsed = time.elapsed(); @@ -403,7 +392,11 @@ fn prove_aggregation_node( execution_proof.proof_size_fe * F::bits() / (8 * 1024), ); - (execution_proof.proof, non_reserved_public_input) + AggregatedSigs { + signer_indices, + proof: execution_proof.proof, + bytecode_point, + } } pub fn extract_bytecode_claim_from_public_input(public_input: &[F], bytecode_point_n_vars: usize) -> Evaluation { @@ -428,6 +421,64 @@ pub fn hash_bytecode_claims(claims: &[Evaluation]) -> [F; DIGEST_LEN] { running_hash } +// --- Benchmark --- + +#[allow(clippy::too_many_arguments)] +fn build_aggregation( + topology: &AggregationTopology, + bytecode: &Bytecode, + message: &[F; MESSAGE_LEN_FE], + slot: u32, + registry_merkle_tree: &[Vec<[F; DIGEST_LEN]>], + signer_indices: &[usize], + pub_keys: &[XmssPublicKey], + signatures: &[XmssSignature], + overlap: usize, + log_inv_rate: usize, + prox_gaps_conjecture: bool, +) -> AggregatedSigs { + let raw_count = topology.raw_xmss; + let raw_signers: Vec<(usize, XmssPublicKey, XmssSignature)> = (0..raw_count) + .map(|i| (signer_indices[i], pub_keys[i].clone(), signatures[i].clone())) + .collect(); + + let mut child_results = vec![]; + let mut child_start = raw_count; + for (child_idx, child) in topology.children.iter().enumerate() { + let child_count = count_signers(child, overlap); + let child_agg = build_aggregation( + child, + bytecode, + message, + slot, + registry_merkle_tree, + &signer_indices[child_start..child_start + child_count], + &pub_keys[child_start..child_start + child_count], + &signatures[child_start..child_start + child_count], + overlap, + log_inv_rate, + prox_gaps_conjecture, + ); + child_results.push(child_agg); + child_start += child_count; + if child_idx < topology.children.len() - 1 { + child_start -= overlap; + } + } + + merge( + &child_results, + &raw_signers, + message, + slot, + registry_merkle_tree, + bytecode, + overlap, + log_inv_rate, + prox_gaps_conjecture, + ) +} + pub fn run_aggregation_benchmark( topology: &AggregationTopology, overlap: usize, @@ -483,7 +534,7 @@ pub fn run_aggregation_benchmark( let bytecode = compile_main_program_self_referential(prox_gaps_conjecture); println!("Compiled bytecode: {} instructions", bytecode.instructions.len()); - let (proof, public_input) = prove_aggregation_node( + let result = build_aggregation( topology, &bytecode, &message, @@ -492,16 +543,18 @@ pub fn run_aggregation_benchmark( &signer_indices, &pub_keys, &signatures, + overlap, log_inv_rate, prox_gaps_conjecture, - overlap, ); // Verify root proof + let registry_root = ®istry_layers.last().unwrap()[0]; + let public_input = result.public_input(registry_root, &message, slot, &bytecode); verify_execution( &bytecode, &public_input, - proof, + result.proof, default_whir_config(log_inv_rate, prox_gaps_conjecture), ) .unwrap(); @@ -510,25 +563,20 @@ pub fn run_aggregation_benchmark( #[test] fn test_recursive_aggregation() { let topology = AggregationTopology { - raw: 10, - profile: false, + raw_xmss: 10, children: vec![ AggregationTopology { - raw: 60, - profile: false, + raw_xmss: 60, children: vec![], }, AggregationTopology { - raw: 40, - profile: false, + raw_xmss: 40, children: vec![], }, AggregationTopology { - raw: 0, - profile: false, + raw_xmss: 0, children: vec![AggregationTopology { - raw: 50, - profile: false, + raw_xmss: 50, children: vec![], }], }, From 1ca8a86219f0344c91b9361959c6c3c49b2fe11b Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 01:16:51 +0400 Subject: [PATCH 03/17] benchmark file --- crates/rec_aggregation/src/benchmark.rs | 172 +++++++++++++++++++++++ crates/rec_aggregation/src/lib.rs | 175 +----------------------- 2 files changed, 176 insertions(+), 171 deletions(-) create mode 100644 crates/rec_aggregation/src/benchmark.rs diff --git a/crates/rec_aggregation/src/benchmark.rs b/crates/rec_aggregation/src/benchmark.rs new file mode 100644 index 00000000..32a8e87f --- /dev/null +++ b/crates/rec_aggregation/src/benchmark.rs @@ -0,0 +1,172 @@ +use lean_prover::default_whir_config; +use lean_prover::verify_execution::verify_execution; +use lean_vm::*; +use multilinear_toolkit::prelude::*; +use rand::rngs::StdRng; +use rand::{Rng, SeedableRng}; +use xmss::{MESSAGE_LEN_FE, XmssPublicKey, XmssSignature}; + +use crate::compilation::compile_main_program_self_referential; +use crate::{AggregatedSigs, AggregationTopology, build_registry_merkle_tree, count_signers, aggregate_merge}; + +#[allow(clippy::too_many_arguments)] +fn build_aggregation( + topology: &AggregationTopology, + bytecode: &Bytecode, + message: &[F; MESSAGE_LEN_FE], + slot: u32, + registry_merkle_tree: &[Vec<[F; DIGEST_LEN]>], + signer_indices: &[usize], + pub_keys: &[XmssPublicKey], + signatures: &[XmssSignature], + overlap: usize, + log_inv_rate: usize, + prox_gaps_conjecture: bool, +) -> AggregatedSigs { + let raw_count = topology.raw_xmss; + let raw_signers: Vec<(usize, XmssPublicKey, XmssSignature)> = (0..raw_count) + .map(|i| (signer_indices[i], pub_keys[i].clone(), signatures[i].clone())) + .collect(); + + let mut child_results = vec![]; + let mut child_start = raw_count; + for (child_idx, child) in topology.children.iter().enumerate() { + let child_count = count_signers(child, overlap); + let child_agg = build_aggregation( + child, + bytecode, + message, + slot, + registry_merkle_tree, + &signer_indices[child_start..child_start + child_count], + &pub_keys[child_start..child_start + child_count], + &signatures[child_start..child_start + child_count], + overlap, + log_inv_rate, + prox_gaps_conjecture, + ); + child_results.push(child_agg); + child_start += child_count; + if child_idx < topology.children.len() - 1 { + child_start -= overlap; + } + } + + aggregate_merge( + &child_results, + &raw_signers, + message, + slot, + registry_merkle_tree, + bytecode, + overlap, + log_inv_rate, + prox_gaps_conjecture, + ) +} + +pub fn run_aggregation_benchmark( + topology: &AggregationTopology, + overlap: usize, + log_inv_rate: usize, + prox_gaps_conjecture: bool, + tracing: bool, +) { + if tracing { + utils::init_tracing(); + } + precompute_dft_twiddles::(1 << 24); + + let n_sigs = count_signers(topology, overlap); + let message: [F; MESSAGE_LEN_FE] = (0..MESSAGE_LEN_FE) + .map(F::from_usize) + .collect::>() + .try_into() + .unwrap(); + let slot: u32 = 1111; + + let n_unique = 10.min(n_sigs).max(1); + let pub_keys_and_sigs: Vec<_> = (0..n_unique) + .into_par_iter() + .map(|i| { + let mut rng = StdRng::seed_from_u64(i as u64); + let start = slot - rng.random_range(0..3); + let end = slot + rng.random_range(1..3); + let (sk, pk) = xmss::xmss_key_gen(rng.random(), start, end).unwrap(); + let sig = xmss::xmss_sign(&mut rng, &sk, &message, slot).unwrap(); + xmss::xmss_verify(&pk, &message, &sig).unwrap(); + (pk, sig) + }) + .collect(); + + let signer_indices: Vec = (0..n_sigs).collect(); + let pub_keys: Vec = signer_indices + .iter() + .map(|&i| pub_keys_and_sigs[i % n_unique].0.clone()) + .collect(); + let signatures: Vec = signer_indices + .iter() + .map(|&i| pub_keys_and_sigs[i % n_unique].1.clone()) + .collect(); + + // Build registry merkle tree + let signers_for_tree: Vec<(usize, [F; DIGEST_LEN])> = signer_indices + .iter() + .zip(&pub_keys) + .map(|(&idx, pk)| (idx, pk.merkle_root)) + .collect(); + let registry_layers = build_registry_merkle_tree(&signers_for_tree); + + let bytecode = compile_main_program_self_referential(prox_gaps_conjecture); + println!("Compiled bytecode: {} instructions", bytecode.instructions.len()); + + let result = build_aggregation( + topology, + &bytecode, + &message, + slot, + ®istry_layers, + &signer_indices, + &pub_keys, + &signatures, + overlap, + log_inv_rate, + prox_gaps_conjecture, + ); + + // Verify root proof + let registry_root = ®istry_layers.last().unwrap()[0]; + let public_input = result.public_input(registry_root, &message, slot, &bytecode); + verify_execution( + &bytecode, + &public_input, + result.proof, + default_whir_config(log_inv_rate, prox_gaps_conjecture), + ) + .unwrap(); +} + +#[test] +fn test_recursive_aggregation() { + let topology = AggregationTopology { + raw_xmss: 10, + children: vec![ + AggregationTopology { + raw_xmss: 60, + children: vec![], + }, + AggregationTopology { + raw_xmss: 40, + children: vec![], + }, + AggregationTopology { + raw_xmss: 0, + children: vec![AggregationTopology { + raw_xmss: 50, + children: vec![], + }], + }, + ], + }; + run_aggregation_benchmark(&topology, 10, 2, false, false); +} diff --git a/crates/rec_aggregation/src/lib.rs b/crates/rec_aggregation/src/lib.rs index d44f0a13..cf21b26b 100644 --- a/crates/rec_aggregation/src/lib.rs +++ b/crates/rec_aggregation/src/lib.rs @@ -6,14 +6,11 @@ use lean_prover::prove_execution::prove_execution; use lean_prover::verify_execution::verify_execution; use lean_vm::*; use multilinear_toolkit::prelude::*; -use rand::rngs::StdRng; -use rand::{Rng, SeedableRng}; use tracing::instrument; use utils::{bit_reverse, build_prover_state, poseidon_compress_slice, poseidon16_compress_pair}; use xmss::{LOG_LIFETIME, MESSAGE_LEN_FE, SIG_SIZE_FE, XmssPublicKey, XmssSignature, slot_to_field_elements}; -use crate::compilation::compile_main_program_self_referential; - +pub mod benchmark; pub(crate) mod compilation; pub const LOG_SIZE_PUBKEY_REGISTRY: usize = 14; @@ -26,14 +23,14 @@ pub struct AggregationTopology { pub children: Vec, } -fn count_signers(topology: &AggregationTopology, overlap: usize) -> usize { +pub(crate) fn count_signers(topology: &AggregationTopology, overlap: usize) -> usize { let child_count: usize = topology.children.iter().map(|c| count_signers(c, overlap)).sum(); let n_overlaps = topology.children.len().saturating_sub(1); topology.raw_xmss + child_count - overlap * n_overlaps } /// layers[0] = leaves, layers[height] = [root]. -fn build_registry_merkle_tree(signers: &[(usize, [F; DIGEST_LEN])]) -> Vec> { +pub(crate) fn build_registry_merkle_tree(signers: &[(usize, [F; DIGEST_LEN])]) -> Vec> { let height = LOG_SIZE_PUBKEY_REGISTRY; let n_leaves = 1 << height; @@ -169,7 +166,7 @@ impl AggregatedSigs { #[allow(clippy::too_many_arguments)] #[instrument(skip_all)] -pub fn merge( +pub fn aggregate_merge( children: &[AggregatedSigs], raw_signers: &[(usize, XmssPublicKey, XmssSignature)], message: &[F; MESSAGE_LEN_FE], @@ -420,167 +417,3 @@ pub fn hash_bytecode_claims(claims: &[Evaluation]) -> [F; DIGEST_LEN] { } running_hash } - -// --- Benchmark --- - -#[allow(clippy::too_many_arguments)] -fn build_aggregation( - topology: &AggregationTopology, - bytecode: &Bytecode, - message: &[F; MESSAGE_LEN_FE], - slot: u32, - registry_merkle_tree: &[Vec<[F; DIGEST_LEN]>], - signer_indices: &[usize], - pub_keys: &[XmssPublicKey], - signatures: &[XmssSignature], - overlap: usize, - log_inv_rate: usize, - prox_gaps_conjecture: bool, -) -> AggregatedSigs { - let raw_count = topology.raw_xmss; - let raw_signers: Vec<(usize, XmssPublicKey, XmssSignature)> = (0..raw_count) - .map(|i| (signer_indices[i], pub_keys[i].clone(), signatures[i].clone())) - .collect(); - - let mut child_results = vec![]; - let mut child_start = raw_count; - for (child_idx, child) in topology.children.iter().enumerate() { - let child_count = count_signers(child, overlap); - let child_agg = build_aggregation( - child, - bytecode, - message, - slot, - registry_merkle_tree, - &signer_indices[child_start..child_start + child_count], - &pub_keys[child_start..child_start + child_count], - &signatures[child_start..child_start + child_count], - overlap, - log_inv_rate, - prox_gaps_conjecture, - ); - child_results.push(child_agg); - child_start += child_count; - if child_idx < topology.children.len() - 1 { - child_start -= overlap; - } - } - - merge( - &child_results, - &raw_signers, - message, - slot, - registry_merkle_tree, - bytecode, - overlap, - log_inv_rate, - prox_gaps_conjecture, - ) -} - -pub fn run_aggregation_benchmark( - topology: &AggregationTopology, - overlap: usize, - log_inv_rate: usize, - prox_gaps_conjecture: bool, - tracing: bool, -) { - if tracing { - utils::init_tracing(); - } - precompute_dft_twiddles::(1 << 24); - - let n_sigs = count_signers(topology, overlap); - let message: [F; MESSAGE_LEN_FE] = (0..MESSAGE_LEN_FE) - .map(F::from_usize) - .collect::>() - .try_into() - .unwrap(); - let slot: u32 = 1111; - - let n_unique = 10.min(n_sigs).max(1); - let pub_keys_and_sigs: Vec<_> = (0..n_unique) - .into_par_iter() - .map(|i| { - let mut rng = StdRng::seed_from_u64(i as u64); - let start = slot - rng.random_range(0..3); - let end = slot + rng.random_range(1..3); - let (sk, pk) = xmss::xmss_key_gen(rng.random(), start, end).unwrap(); - let sig = xmss::xmss_sign(&mut rng, &sk, &message, slot).unwrap(); - xmss::xmss_verify(&pk, &message, &sig).unwrap(); - (pk, sig) - }) - .collect(); - - let signer_indices: Vec = (0..n_sigs).collect(); - let pub_keys: Vec = signer_indices - .iter() - .map(|&i| pub_keys_and_sigs[i % n_unique].0.clone()) - .collect(); - let signatures: Vec = signer_indices - .iter() - .map(|&i| pub_keys_and_sigs[i % n_unique].1.clone()) - .collect(); - - // Build registry merkle tree - let signers_for_tree: Vec<(usize, [F; DIGEST_LEN])> = signer_indices - .iter() - .zip(&pub_keys) - .map(|(&idx, pk)| (idx, pk.merkle_root)) - .collect(); - let registry_layers = build_registry_merkle_tree(&signers_for_tree); - - let bytecode = compile_main_program_self_referential(prox_gaps_conjecture); - println!("Compiled bytecode: {} instructions", bytecode.instructions.len()); - - let result = build_aggregation( - topology, - &bytecode, - &message, - slot, - ®istry_layers, - &signer_indices, - &pub_keys, - &signatures, - overlap, - log_inv_rate, - prox_gaps_conjecture, - ); - - // Verify root proof - let registry_root = ®istry_layers.last().unwrap()[0]; - let public_input = result.public_input(registry_root, &message, slot, &bytecode); - verify_execution( - &bytecode, - &public_input, - result.proof, - default_whir_config(log_inv_rate, prox_gaps_conjecture), - ) - .unwrap(); -} - -#[test] -fn test_recursive_aggregation() { - let topology = AggregationTopology { - raw_xmss: 10, - children: vec![ - AggregationTopology { - raw_xmss: 60, - children: vec![], - }, - AggregationTopology { - raw_xmss: 40, - children: vec![], - }, - AggregationTopology { - raw_xmss: 0, - children: vec![AggregationTopology { - raw_xmss: 50, - children: vec![], - }], - }, - ], - }; - run_aggregation_benchmark(&topology, 10, 2, false, false); -} From 9b7169bcc270ab3ab99ca76319f25f226f33fcee Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 03:21:49 +0400 Subject: [PATCH 04/17] live display (wip) --- crates/rec_aggregation/src/benchmark.rs | 244 ++++++++++++++++++++++-- crates/rec_aggregation/src/lib.rs | 18 +- 2 files changed, 231 insertions(+), 31 deletions(-) diff --git a/crates/rec_aggregation/src/benchmark.rs b/crates/rec_aggregation/src/benchmark.rs index 32a8e87f..e0427b68 100644 --- a/crates/rec_aggregation/src/benchmark.rs +++ b/crates/rec_aggregation/src/benchmark.rs @@ -1,3 +1,6 @@ +use std::io::{self, Write}; +use std::time::Instant; + use lean_prover::default_whir_config; use lean_prover::verify_execution::verify_execution; use lean_vm::*; @@ -7,11 +10,173 @@ use rand::{Rng, SeedableRng}; use xmss::{MESSAGE_LEN_FE, XmssPublicKey, XmssSignature}; use crate::compilation::compile_main_program_self_referential; -use crate::{AggregatedSigs, AggregationTopology, build_registry_merkle_tree, count_signers, aggregate_merge}; +use crate::{AggregatedSigs, AggregationTopology, aggregate_merge, build_registry_merkle_tree, count_signers}; + +fn count_nodes(topology: &AggregationTopology) -> usize { + 1 + topology.children.iter().map(count_nodes).sum::() +} + +mod s { + pub const R: &str = "\x1b[0m"; + pub const B: &str = "\x1b[1m"; + pub const D: &str = "\x1b[2m"; + pub const GRN: &str = "\x1b[38;5;114m"; + pub const RED: &str = "\x1b[38;5;167m"; + pub const ORG: &str = "\x1b[38;5;215m"; + pub const CYN: &str = "\x1b[38;5;117m"; + pub const PUR: &str = "\x1b[38;5;141m"; + pub const GRY: &str = "\x1b[38;5;242m"; + pub const WHT: &str = "\x1b[38;5;252m"; + pub const DRK: &str = "\x1b[38;5;238m"; +} + +struct LiveTree { + descs: Vec, + plain_lens: Vec, + max_plain_len: usize, + statuses: Vec>, + n_nodes: usize, +} + +impl LiveTree { + fn new(descs: Vec, plain_lens: Vec) -> Self { + let max_plain_len = plain_lens.iter().copied().max().unwrap_or(0); + let n_nodes = descs.len(); + Self { + descs, + plain_lens, + max_plain_len, + statuses: vec![None; n_nodes], + n_nodes, + } + } + + fn format_line(&self, i: usize) -> String { + let desc = &self.descs[i]; + let gap = self.max_plain_len + 2 - self.plain_lens[i]; + let dots = format!("{}{}{}", s::DRK, "·".repeat(gap), s::R); + match self.statuses[i] { + None => format!("{} {} {}· · ·{}", desc, dots, s::DRK, s::R), + Some((t, kib)) => format!( + "{} {} {}▸{} {}{}{:.3}s{} {}{}{:>4} KiB{}", + desc, + dots, + s::DRK, + s::R, + s::ORG, + s::B, + t, + s::R, + s::CYN, + s::B, + kib, + s::R, + ), + } + } + + fn print_initial(&self) { + for i in 0..self.n_nodes { + println!("{}", self.format_line(i)); + } + println!(); + io::stdout().flush().unwrap(); + } + + fn update_node(&mut self, index: usize, time_secs: f64, proof_kib: usize) { + self.statuses[index] = Some((time_secs, proof_kib)); + let line = self.format_line(index); + let up = self.n_nodes + 1 - index; + print!("\x1b[{}A\r\x1b[2K{}\x1b[{}B\r", up, line, up); + io::stdout().flush().unwrap(); + } + + fn total_time(&self) -> f64 { + self.statuses.iter().filter_map(|s| s.as_ref()).map(|(t, _)| t).sum() + } +} + +fn build_tree_descs( + topology: &AggregationTopology, + overlap: usize, + prefix: &str, + child_prefix: &str, + plain_prefix: &str, + plain_child_prefix: &str, + descs: &mut Vec, + plain_lens: &mut Vec, +) { + let n_sigs = count_signers(topology, overlap); + let n_children = topology.children.len(); + let is_leaf = n_children == 0; + + let (icon, icon_color) = if is_leaf { ("◇", s::ORG) } else { ("◆", s::PUR) }; + let reduced = if n_children > 1 { overlap * (n_children - 1) } else { 0 }; + let children_sum: usize = topology.children.iter().map(|c| count_signers(c, overlap)).sum(); + let detail = if is_leaf { + format!("{}{}{}", s::GRN, n_sigs, s::R) + } else { + let mut parts: Vec = vec![]; + if children_sum > 0 { + parts.push(format!("{}{}{}", s::GRN, children_sum, s::R)); + } + if topology.raw_xmss > 0 { + parts.push(format!("{}+ {}{}", s::GRN, topology.raw_xmss, s::R)); + } + if reduced > 0 { + parts.push(format!("{}- {}{}", s::RED, reduced, s::R)); + } + parts.join(" ") + }; + let plain_detail = if is_leaf { + format!("{}", n_sigs) + } else { + let mut parts: Vec = vec![]; + if children_sum > 0 { + parts.push(format!("{}", children_sum)); + } + if topology.raw_xmss > 0 { + parts.push(format!("+ {}", topology.raw_xmss)); + } + if reduced > 0 { + parts.push(format!("- {}", reduced)); + } + parts.join(" ") + }; + + // Children first (above), so leaves print at the top and proving flows top → bottom. + for (i, child) in topology.children.iter().enumerate() { + let is_first = i == 0; + let (p, cp, pp, pcp) = if is_first { + ( + format!("{}{}┌──▸ {}", child_prefix, s::DRK, s::R), + format!("{}{}│ {}", child_prefix, s::DRK, s::R), + format!("{}┌──▸ ", plain_child_prefix), + format!("{}│ ", plain_child_prefix), + ) + } else { + ( + format!("{}{}├──▸ {}", child_prefix, s::DRK, s::R), + format!("{}{}│ {}", child_prefix, s::DRK, s::R), + format!("{}├──▸ ", plain_child_prefix), + format!("{}│ ", plain_child_prefix), + ) + }; + build_tree_descs(child, overlap, &p, &cp, &pp, &pcp, descs, plain_lens); + } + + // Then the node itself (below its children). + let desc = format!("{}{}{}{} {}", prefix, icon_color, icon, s::R, detail,); + let plain = format!("{}{} {}", plain_prefix, icon, plain_detail); + plain_lens.push(plain.chars().count()); + descs.push(desc); +} #[allow(clippy::too_many_arguments)] fn build_aggregation( topology: &AggregationTopology, + display_index: usize, + display: &mut LiveTree, bytecode: &Bytecode, message: &[F; MESSAGE_LEN_FE], slot: u32, @@ -22,6 +187,7 @@ fn build_aggregation( overlap: usize, log_inv_rate: usize, prox_gaps_conjecture: bool, + tracing: bool, ) -> AggregatedSigs { let raw_count = topology.raw_xmss; let raw_signers: Vec<(usize, XmssPublicKey, XmssSignature)> = (0..raw_count) @@ -30,10 +196,13 @@ fn build_aggregation( let mut child_results = vec![]; let mut child_start = raw_count; + let mut child_display_index = display_index; for (child_idx, child) in topology.children.iter().enumerate() { let child_count = count_signers(child, overlap); let child_agg = build_aggregation( child, + child_display_index, + display, bytecode, message, slot, @@ -44,15 +213,18 @@ fn build_aggregation( overlap, log_inv_rate, prox_gaps_conjecture, + tracing, ); child_results.push(child_agg); + child_display_index += count_nodes(child); child_start += child_count; if child_idx < topology.children.len() - 1 { child_start -= overlap; } } - aggregate_merge( + let time = Instant::now(); + let result = aggregate_merge( &child_results, &raw_signers, message, @@ -62,7 +234,17 @@ fn build_aggregation( overlap, log_inv_rate, prox_gaps_conjecture, - ) + tracing, + ); + let elapsed = time.elapsed(); + + if !tracing { + let own_display_index = display_index + count_nodes(topology) - 1; + let proof_kib = result.proof.len() * F::bits() / (8 * 1024); + display.update_node(own_display_index, elapsed.as_secs_f64(), proof_kib); + } + + result } pub fn run_aggregation_benchmark( @@ -109,7 +291,6 @@ pub fn run_aggregation_benchmark( .map(|&i| pub_keys_and_sigs[i % n_unique].1.clone()) .collect(); - // Build registry merkle tree let signers_for_tree: Vec<(usize, [F; DIGEST_LEN])> = signer_indices .iter() .zip(&pub_keys) @@ -118,10 +299,21 @@ pub fn run_aggregation_benchmark( let registry_layers = build_registry_merkle_tree(&signers_for_tree); let bytecode = compile_main_program_self_referential(prox_gaps_conjecture); - println!("Compiled bytecode: {} instructions", bytecode.instructions.len()); + + // Build display + let mut descs = vec![]; + let mut plain_lens = vec![]; + build_tree_descs(topology, overlap, " ", " ", " ", " ", &mut descs, &mut plain_lens); + let mut display = LiveTree::new(descs, plain_lens); + + if !tracing { + display.print_initial(); + } let result = build_aggregation( topology, + 0, + &mut display, &bytecode, &message, slot, @@ -132,6 +324,7 @@ pub fn run_aggregation_benchmark( overlap, log_inv_rate, prox_gaps_conjecture, + tracing, ); // Verify root proof @@ -149,24 +342,41 @@ pub fn run_aggregation_benchmark( #[test] fn test_recursive_aggregation() { let topology = AggregationTopology { - raw_xmss: 10, + raw_xmss: 5, children: vec![ AggregationTopology { - raw_xmss: 60, - children: vec![], - }, - AggregationTopology { - raw_xmss: 40, - children: vec![], + raw_xmss: 2, + children: vec![AggregationTopology { + raw_xmss: 3, + children: vec![ + AggregationTopology { + raw_xmss: 333, + children: vec![], + }, + AggregationTopology { + raw_xmss: 555, + children: vec![], + }, + ], + }], }, AggregationTopology { - raw_xmss: 0, + raw_xmss: 3, children: vec![AggregationTopology { - raw_xmss: 50, - children: vec![], + raw_xmss: 3, + children: vec![ + AggregationTopology { + raw_xmss: 777, + children: vec![], + }, + AggregationTopology { + raw_xmss: 666, + children: vec![], + }, + ], }], }, ], }; - run_aggregation_benchmark(&topology, 10, 2, false, false); -} + run_aggregation_benchmark(&topology, 5, 2, false, false); +} \ No newline at end of file diff --git a/crates/rec_aggregation/src/lib.rs b/crates/rec_aggregation/src/lib.rs index cf21b26b..21649d38 100644 --- a/crates/rec_aggregation/src/lib.rs +++ b/crates/rec_aggregation/src/lib.rs @@ -1,6 +1,4 @@ #![cfg_attr(not(test), allow(unused_crate_dependencies))] -use std::time::Instant; - use lean_prover::default_whir_config; use lean_prover::prove_execution::prove_execution; use lean_prover::verify_execution::verify_execution; @@ -176,6 +174,7 @@ pub fn aggregate_merge( overlap: usize, log_inv_rate: usize, prox_gaps_conjecture: bool, + tracing: bool, ) -> AggregatedSigs { let n_recursions = children.len(); let raw_count = raw_signers.len(); @@ -368,7 +367,6 @@ pub fn aggregate_merge( } private_input.extend_from_slice(&final_sumcheck_transcript); - let time = Instant::now(); let execution_proof = prove_execution( bytecode, (&non_reserved_public_input, &private_input), @@ -376,18 +374,10 @@ pub fn aggregate_merge( &whir_config, false, ); - let node_elapsed = time.elapsed(); - println!("{}", execution_proof.exec_summary); - println!( - "Node ({} sigs, {} raw, {} children, {} overlap): {:.3}s, proof {} KiB", - n_sigs, - raw_count, - n_recursions, - overlap, - node_elapsed.as_secs_f64(), - execution_proof.proof_size_fe * F::bits() / (8 * 1024), - ); + if tracing { + println!("{}", execution_proof.exec_summary); + } AggregatedSigs { signer_indices, From 6ee42e6e8f2504d2d30c8ed49a8e5cab2dd21408 Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 13:39:57 +0400 Subject: [PATCH 05/17] better benchmark display --- crates/lean_compiler/src/lib.rs | 3 +- .../src/parser/parsers/literal.rs | 8 +- crates/lean_prover/src/prove_execution.rs | 13 +- crates/lean_prover/src/test_zkvm.rs | 2 +- crates/lean_prover/src/trace_gen.rs | 2 + crates/lean_vm/src/diagnostics/exec_result.rs | 77 +++++++- crates/lean_vm/src/diagnostics/profiler.rs | 4 + crates/lean_vm/src/execution/runner.rs | 179 +++++------------- crates/rec_aggregation/src/benchmark.rs | 93 +++++++-- crates/rec_aggregation/src/lib.rs | 4 +- 10 files changed, 216 insertions(+), 169 deletions(-) diff --git a/crates/lean_compiler/src/lib.rs b/crates/lean_compiler/src/lib.rs index 6728e6b4..c429c5af 100644 --- a/crates/lean_compiler/src/lib.rs +++ b/crates/lean_compiler/src/lib.rs @@ -153,7 +153,8 @@ pub fn try_compile_and_run( ) -> Result { let bytecode = try_compile_program(input)?; let result = try_execute_bytecode(&bytecode, (public_input, private_input), profiler, &vec![])?; - Ok(result.summary) + println!("{}", result.metadata.display()); + Ok(result.metadata.display()) } pub fn compile_and_run(input: &ProgramSource, (public_input, private_input): (&[F], &[F]), profiler: bool) { diff --git a/crates/lean_compiler/src/parser/parsers/literal.rs b/crates/lean_compiler/src/parser/parsers/literal.rs index 605ff6ee..77b997ca 100644 --- a/crates/lean_compiler/src/parser/parsers/literal.rs +++ b/crates/lean_compiler/src/parser/parsers/literal.rs @@ -1,6 +1,6 @@ use lean_vm::{ - NONRESERVED_PROGRAM_INPUT_START, NUM_REPEATED_ONES_IN_RESERVED_MEMORY, ONE_VEC_PTR, - POSEIDON_16_NULL_HASH_PTR, REPEATED_ONES_PTR, SAMPLING_DOMAIN_SEPARATOR_PTR, ZERO_VEC_PTR, + NONRESERVED_PROGRAM_INPUT_START, NUM_REPEATED_ONES_IN_RESERVED_MEMORY, ONE_VEC_PTR, POSEIDON_16_NULL_HASH_PTR, + REPEATED_ONES_PTR, SAMPLING_DOMAIN_SEPARATOR_PTR, ZERO_VEC_PTR, }; use multilinear_toolkit::prelude::*; @@ -138,7 +138,9 @@ impl VarOrConstantParser { "POSEIDON_16_NULL_HASH_PTR" => Ok(SimpleExpr::Constant(ConstExpression::from(POSEIDON_16_NULL_HASH_PTR))), "ONE_VEC_PTR" => Ok(SimpleExpr::Constant(ConstExpression::from(ONE_VEC_PTR))), "REPEATED_ONES_PTR" => Ok(SimpleExpr::Constant(ConstExpression::from(REPEATED_ONES_PTR))), - "NUM_REPEATED_ONES_IN_RESERVED_MEMORY" => Ok(SimpleExpr::Constant(ConstExpression::from(NUM_REPEATED_ONES_IN_RESERVED_MEMORY))), + "NUM_REPEATED_ONES_IN_RESERVED_MEMORY" => Ok(SimpleExpr::Constant(ConstExpression::from( + NUM_REPEATED_ONES_IN_RESERVED_MEMORY, + ))), "SAMPLING_DOMAIN_SEPARATOR_PTR" => Ok(SimpleExpr::Constant(ConstExpression::from( SAMPLING_DOMAIN_SEPARATOR_PTR, ))), diff --git a/crates/lean_prover/src/prove_execution.rs b/crates/lean_prover/src/prove_execution.rs index b51470fd..e0155d1d 100644 --- a/crates/lean_prover/src/prove_execution.rs +++ b/crates/lean_prover/src/prove_execution.rs @@ -14,8 +14,7 @@ use xmss::Poseidon16History; pub struct ExecutionProof { pub proof: Vec, pub proof_size_fe: usize, - pub exec_summary: String, - pub whir_n_vars: usize, + pub metadata: ExecutionMetadata, } pub fn prove_execution( @@ -25,14 +24,14 @@ pub fn prove_execution( whir_config: &WhirConfigBuilder, vm_profiler: bool, ) -> ExecutionProof { - let mut exec_summary = String::new(); let ExecutionTrace { traces, public_memory_size, non_zero_memory_size: _, // TODO use the information of the ending zeros for speedup mut memory, // padded with zeros to next power of two + metadata, } = info_span!("Witness generation").in_scope(|| { - let mut execution_result = info_span!("Executing bytecode").in_scope(|| { + let execution_result = info_span!("Executing bytecode").in_scope(|| { execute_bytecode( bytecode, (public_input, private_input), @@ -40,7 +39,6 @@ pub fn prove_execution( poseidons_16_precomputed, ) }); - exec_summary = std::mem::take(&mut execution_result.summary); info_span!("Building execution trace").in_scope(|| get_execution_trace(bytecode, execution_result)) }); @@ -50,7 +48,6 @@ pub fn prove_execution( if memory.len() < min_memory_size { memory.resize(min_memory_size, F::ZERO); } - let mut prover_state = build_prover_state(); prover_state.add_base_scalars( &[ @@ -113,7 +110,6 @@ pub fn prove_execution( &bytecode_acc, &traces, ); - let whir_n_vars = stacked_pcs_witness.global_polynomial.by_ref().n_vars(); // logup (GKR) let logup_c = prover_state.sample(); @@ -212,8 +208,7 @@ pub fn prove_execution( ExecutionProof { proof: prover_state.raw_proof(), proof_size_fe, - exec_summary, - whir_n_vars, + metadata, } } diff --git a/crates/lean_prover/src/test_zkvm.rs b/crates/lean_prover/src/test_zkvm.rs index 14950b72..d78b3f7f 100644 --- a/crates/lean_prover/src/test_zkvm.rs +++ b/crates/lean_prover/src/test_zkvm.rs @@ -165,7 +165,7 @@ fn test_zk_vm_helper(program_str: &str, (public_input, private_input): (&[F], &[ default_whir_config(starting_log_inv_rate, false), ) .unwrap(); - println!("{}", proof.exec_summary); + println!("{}", proof.metadata.display()); println!("Proof time: {:.3} s", proof_time.as_secs_f32()); if fuzzing { diff --git a/crates/lean_prover/src/trace_gen.rs b/crates/lean_prover/src/trace_gen.rs index dcf6a1b2..9e48ac92 100644 --- a/crates/lean_prover/src/trace_gen.rs +++ b/crates/lean_prover/src/trace_gen.rs @@ -9,6 +9,7 @@ pub struct ExecutionTrace { pub public_memory_size: usize, pub non_zero_memory_size: usize, pub memory: Vec, // of length a multiple of public_memory_size + pub metadata: ExecutionMetadata } pub fn get_execution_trace(bytecode: &Bytecode, execution_result: ExecutionResult) -> ExecutionTrace { @@ -114,6 +115,7 @@ pub fn get_execution_trace(bytecode: &Bytecode, execution_result: ExecutionResul public_memory_size: execution_result.public_memory_size, non_zero_memory_size: memory.0.len(), memory: memory_padded, + metadata: execution_result.metadata } } diff --git a/crates/lean_vm/src/diagnostics/exec_result.rs b/crates/lean_vm/src/diagnostics/exec_result.rs index 822119d7..50a969c3 100644 --- a/crates/lean_vm/src/diagnostics/exec_result.rs +++ b/crates/lean_vm/src/diagnostics/exec_result.rs @@ -5,6 +5,80 @@ use crate::diagnostics::profiler::MemoryProfile; use crate::execution::Memory; use crate::{N_TABLES, Table, TableTrace}; use thiserror::Error; +use utils::pretty_integer; + +#[derive(Debug, Default)] +pub struct ExecutionMetadata { + pub cycles: usize, + pub memory: usize, + pub n_poseidons: usize, + pub n_dot_products: usize, + pub bytecode_size: usize, + pub public_input_size: usize, + pub private_input_size: usize, + pub runtime_memory: usize, + pub memory_usage_percent: f64, + pub n_poseidon_precomputed_used: usize, + pub n_poseidons_precomputed_total: usize, + pub stdout: String, + pub profiling_report: Option, +} + +impl ExecutionMetadata { + pub fn display(&self) -> String { + let mut out = String::new(); + + if let Some(ref report) = self.profiling_report { + out.push_str(report); + } + + if !self.stdout.is_empty() { + out.push_str("╔═════════════════════════════════════════════════════════════════════════╗\n"); + out.push_str("║ STD-OUT ║\n"); + out.push_str("╚═════════════════════════════════════════════════════════════════════════╝\n"); + out.push_str(&format!("\n{}", self.stdout)); + out.push_str("──────────────────────────────────────────────────────────────────────────\n\n"); + } + + out.push_str("╔═════════════════════════════════════════════════════════════════════════╗\n"); + out.push_str("║ STATS ║\n"); + out.push_str("╚═════════════════════════════════════════════════════════════════════════╝\n\n"); + + out.push_str(&format!("CYCLES: {}\n", pretty_integer(self.cycles))); + out.push_str(&format!("MEMORY: {}\n", pretty_integer(self.memory))); + out.push('\n'); + out.push_str(&format!("Bytecode size: {}\n", pretty_integer(self.bytecode_size))); + out.push_str(&format!( + "Public input size: {}\n", + pretty_integer(self.public_input_size) + )); + out.push_str(&format!( + "Private input size: {}\n", + pretty_integer(self.private_input_size) + )); + out.push_str(&format!("Runtime memory: {}\n", pretty_integer(self.runtime_memory))); + out.push_str(&format!("Memory usage: {:.1}%\n", self.memory_usage_percent)); + out.push_str(&format!( + "Poseidon2_16 precomputed used: {}/{}\n", + pretty_integer(self.n_poseidon_precomputed_used), + pretty_integer(self.n_poseidons_precomputed_total) + )); + out.push('\n'); + if self.n_poseidons > 0 { + out.push_str(&format!( + "Poseidon2_16 calls: {} (1 poseidon per {} instructions)\n", + pretty_integer(self.n_poseidons), + self.cycles / self.n_poseidons + )); + } + if self.n_dot_products > 0 { + out.push_str(&format!("DotProduct calls: {}\n", pretty_integer(self.n_dot_products))); + } + out.push_str("──────────────────────────────────────────────────────────────────────────\n"); + + out + } +} #[derive(Debug)] pub struct ExecutionResult { @@ -14,6 +88,5 @@ pub struct ExecutionResult { pub pcs: Vec, pub fps: Vec, pub traces: BTreeMap, - pub summary: String, - pub memory_profile: Option, + pub metadata: ExecutionMetadata, } diff --git a/crates/lean_vm/src/diagnostics/profiler.rs b/crates/lean_vm/src/diagnostics/profiler.rs index e7312cac..39f93e21 100644 --- a/crates/lean_vm/src/diagnostics/profiler.rs +++ b/crates/lean_vm/src/diagnostics/profiler.rs @@ -10,6 +10,7 @@ use crate::{ExecutionHistory, NONRESERVED_PROGRAM_INPUT_START}; pub(crate) fn profiling_report( instructions: &ExecutionHistory, function_locations: &BTreeMap, + mem_profile: &MemoryProfile, ) -> String { #[derive(Default, Clone)] struct FunctionStats { @@ -56,6 +57,9 @@ pub(crate) fn profiling_report( let mut report = String::new(); + // memory profiling report + report += &memory_profiling_report(mem_profile); + report.push_str("\n╔═════════════════════════════════════════════════════════════════════════╗\n"); report.push_str("║ PROFILING REPORT ║\n"); report.push_str("╚═════════════════════════════════════════════════════════════════════════╝\n\n"); diff --git a/crates/lean_vm/src/execution/runner.rs b/crates/lean_vm/src/execution/runner.rs index 025c5fb1..53cb799a 100644 --- a/crates/lean_vm/src/execution/runner.rs +++ b/crates/lean_vm/src/execution/runner.rs @@ -1,18 +1,18 @@ //! VM execution runner -use crate::core::{ - DIGEST_LEN, DIMENSION, F, FileId, NONRESERVED_PROGRAM_INPUT_START, POSEIDON_16_NULL_HASH_PTR, ZERO_VEC_PTR, -}; -use crate::diagnostics::{ExecutionResult, MemoryProfile, RunnerError, memory_profiling_report}; +use crate::core::{DIGEST_LEN, DIMENSION, F, NONRESERVED_PROGRAM_INPUT_START, POSEIDON_16_NULL_HASH_PTR, ZERO_VEC_PTR}; +use crate::diagnostics::{ExecutionMetadata, ExecutionResult, MemoryProfile, RunnerError}; use crate::execution::{ExecutionHistory, Memory}; use crate::isa::Bytecode; use crate::isa::instruction::InstructionContext; use crate::{ - ALL_TABLES, CodeAddress, ENDING_PC, EXTENSION_BASIS_PTR, HintExecutionContext, N_TABLES, NUM_REPEATED_ONES_IN_RESERVED_MEMORY, REPEATED_ONES_PTR, SAMPLING_DOMAIN_SEPARATOR_PTR, STARTING_PC, SourceLocation, Table, TableTrace + ALL_TABLES, CodeAddress, ENDING_PC, EXTENSION_BASIS_PTR, HintExecutionContext, N_TABLES, + NUM_REPEATED_ONES_IN_RESERVED_MEMORY, REPEATED_ONES_PTR, SAMPLING_DOMAIN_SEPARATOR_PTR, STARTING_PC, Table, + TableTrace, }; use multilinear_toolkit::prelude::*; use std::collections::{BTreeMap, BTreeSet}; -use utils::{ToUsize, get_poseidon_16_of_zero, pretty_integer}; +use utils::{ToUsize, get_poseidon_16_of_zero}; use xmss::Poseidon16History; /// Build public memory with standard initialization @@ -77,13 +77,6 @@ pub fn try_execute_bytecode( } err })?; - if profiling { - print_line_cycle_counts(instruction_history, &bytecode.filepaths); - print_instruction_cycle_counts(bytecode, result.pcs.clone()); - if let Some(ref mem_profile) = result.memory_profile { - print!("{}", memory_profiling_report(mem_profile)); - } - } Ok(result) } @@ -105,44 +98,6 @@ pub fn execute_bytecode( .unwrap_or_else(|err| panic!("Error during bytecode execution: {err}")) } -fn print_line_cycle_counts(history: ExecutionHistory, filepaths: &BTreeMap) { - println!("Line by line cycle counts"); - println!("=========================\n"); - - let mut gross_cycle_counts: BTreeMap = BTreeMap::new(); - for (line, cycle_count) in history.lines.iter().zip(history.lines_cycles.iter()) { - let prev_count = gross_cycle_counts.get(line).unwrap_or(&0); - gross_cycle_counts.insert(*line, *prev_count + cycle_count); - } - for (location, cycle_count) in gross_cycle_counts.iter() { - let filepath = filepaths.get(&location.file_id).expect("Unmapped FileId"); - println!("{filepath}:{}: {cycle_count} cycles", location.line_number); - } - println!(); -} - -fn print_instruction_cycle_counts(bytecode: &Bytecode, pcs: Vec) { - println!("Instruction level cycle counts"); - println!("=============================="); - - let mut gross_cycle_counts: BTreeMap = BTreeMap::new(); - for pc in pcs.iter() { - let prev_count = gross_cycle_counts.get(pc).unwrap_or(&0); - gross_cycle_counts.insert(*pc, *prev_count + 1); - } - for (pc, cycle_count) in gross_cycle_counts.iter() { - let instruction = &bytecode.instructions[*pc]; - let hints = bytecode.hints.get(pc); - if let Some(hints) = hints { - for hint in hints { - println!("hint: {hint}"); - } - } - println!("pc {pc}: {cycle_count} cycles: {instruction}"); - } - println!(); -} - /// Resolve pending deref hints in correct order /// /// Each constraint has form: memory[target_addr] = memory[memory[src_addr]] @@ -190,7 +145,7 @@ fn execute_bytecode_helper( std_out: &mut String, instruction_history: &mut ExecutionHistory, profiling: bool, - poseidons_16_precomputed: &Poseidon16History, + poseidons_precomputed: &Poseidon16History, ) -> Result { // set public memory let mut memory = Memory::new(build_public_memory(public_input)); @@ -217,7 +172,7 @@ fn execute_bytecode_helper( let mut pc = STARTING_PC; let mut ap = initial_ap; - let mut cpu_cycles = 0; + let mut cycles = 0; let mut last_checkpoint_cpu_cycles = 0; let mut checkpoint_ap = initial_ap; @@ -225,7 +180,7 @@ fn execute_bytecode_helper( let mut pcs = Vec::new(); let mut fps = Vec::new(); - let mut n_poseidon16_precomputed_used = 0; + let mut n_poseidon_precomputed_used = 0; let mut traces = BTreeMap::from_iter((0..N_TABLES).map(|i| (ALL_TABLES[i], TableTrace::new(&ALL_TABLES[i])))); @@ -248,7 +203,7 @@ fn execute_bytecode_helper( pcs.push(pc); fps.push(fp); - cpu_cycles += 1; + cycles += 1; cpu_cycles_before_new_line += 1; for hint in bytecode.hints.get(&pc).unwrap_or(&vec![]) { @@ -260,7 +215,7 @@ fn execute_bytecode_helper( std_out, instruction_history, cpu_cycles_before_new_line: &mut cpu_cycles_before_new_line, - cpu_cycles, + cpu_cycles: cycles, last_checkpoint_cpu_cycles: &mut last_checkpoint_cpu_cycles, checkpoint_ap: &mut checkpoint_ap, profiling, @@ -282,8 +237,8 @@ fn execute_bytecode_helper( mul_counts: &mut mul_counts, deref_counts: &mut deref_counts, jump_counts: &mut jump_counts, - poseidon16_precomputed: poseidons_16_precomputed, - n_poseidon16_precomputed_used: &mut n_poseidon16_precomputed_used, + poseidon16_precomputed: poseidons_precomputed, + n_poseidon16_precomputed_used: &mut n_poseidon_precomputed_used, }; instruction .execute_instruction(&mut instruction_ctx) @@ -296,8 +251,8 @@ fn execute_bytecode_helper( resolve_deref_hints(&mut memory, &pending_deref_hints); assert_eq!( - n_poseidon16_precomputed_used, - poseidons_16_precomputed.len(), + n_poseidon_precomputed_used, + poseidons_precomputed.len(), "Warning: not all precomputed Poseidon16 were used" ); @@ -307,87 +262,40 @@ fn execute_bytecode_helper( let no_vec_runtime_memory = ap - initial_ap; - let mut summary = String::new(); - - if profiling { - let report = crate::diagnostics::profiling_report(instruction_history, &bytecode.function_locations); - summary.push_str(&report); - } - - if !std_out.is_empty() { - summary.push_str("╔═════════════════════════════════════════════════════════════════════════╗\n"); - summary.push_str("║ STD-OUT ║\n"); - summary.push_str("╚═════════════════════════════════════════════════════════════════════════╝\n"); - summary.push_str(&format!("\n{std_out}")); - summary.push_str("──────────────────────────────────────────────────────────────────────────\n\n"); - } + let profiling_report = if profiling { + Some(crate::diagnostics::profiling_report( + instruction_history, + &bytecode.function_locations, + &mem_profile, + )) + } else { + None + }; - summary.push_str("╔═════════════════════════════════════════════════════════════════════════╗\n"); - summary.push_str("║ STATS ║\n"); - summary.push_str("╚═════════════════════════════════════════════════════════════════════════╝\n\n"); - - summary.push_str(&format!("CYCLES: {}\n", pretty_integer(cpu_cycles))); - summary.push_str(&format!("MEMORY: {}\n", pretty_integer(memory.0.len()))); - summary.push('\n'); - - let runtime_memory_size = memory.0.len() - (NONRESERVED_PROGRAM_INPUT_START + public_input.len()); - summary.push_str(&format!( - "Bytecode size: {}\n", - pretty_integer(bytecode.instructions.len()) - )); - summary.push_str(&format!("Public input size: {}\n", pretty_integer(public_input.len()))); - summary.push_str(&format!( - "Private input size: {}\n", - pretty_integer(private_input.len()) - )); - summary.push_str(&format!("Runtime memory: {}\n", pretty_integer(runtime_memory_size),)); + let runtime_memory_size = + memory.0.len() - (NONRESERVED_PROGRAM_INPUT_START + public_input.len()) - private_input.len(); let used_memory_cells = memory .0 - .iter() + .par_iter() .skip(NONRESERVED_PROGRAM_INPUT_START + public_input.len()) .filter(|&&x| x.is_some()) .count(); - summary.push_str(&format!( - "Memory usage: {:.1}%\n", - used_memory_cells as f64 / runtime_memory_size as f64 * 100.0 - )); - - // precomputed poseidons - summary.push_str(&format!( - "Poseidon2_16 precomputed used: {}/{}\n", - pretty_integer(n_poseidon16_precomputed_used), - pretty_integer(poseidons_16_precomputed.len()) - )); - - summary.push('\n'); - - if !traces[&Table::poseidon16()].base[0].is_empty() { - summary.push_str(&format!( - "Poseidon2_16 calls: {} (1 poseidon per {} instructions)\n", - pretty_integer(traces[&Table::poseidon16()].base[0].len()), - cpu_cycles / traces[&Table::poseidon16()].base[0].len() - )); - } - // if !dot_products.is_empty() { - // summary.push_str(&format!( - // "DotProduct calls: {}\n", - // pretty_integer(dot_products.len()) - // )); - // } - - if false { - summary.push_str("Low level instruction counts:\n"); - summary.push_str(&format!( - "COMPUTE: {} ({} ADD, {} MUL)\n", - add_counts + mul_counts, - add_counts, - mul_counts - )); - summary.push_str(&format!("DEREF: {deref_counts}\n")); - summary.push_str(&format!("JUMP: {jump_counts}\n")); - } - summary.push_str("──────────────────────────────────────────────────────────────────────────\n"); + let metadata = ExecutionMetadata { + cycles, + memory: memory.0.len(), + n_poseidons: traces[&Table::poseidon16()].base[0].len(), + n_dot_products: traces[&Table::dot_product()].base[0].len(), + bytecode_size: bytecode.instructions.len(), + public_input_size: public_input.len(), + private_input_size: private_input.len(), + runtime_memory: runtime_memory_size, + memory_usage_percent: used_memory_cells as f64 / runtime_memory_size as f64 * 100.0, + n_poseidon_precomputed_used, + n_poseidons_precomputed_total: poseidons_precomputed.len(), + stdout: std::mem::take(std_out), + profiling_report, + }; if profiling { for (addr, val) in (0..).zip(memory.0.iter()) { @@ -404,7 +312,6 @@ fn execute_bytecode_helper( pcs, fps, traces, - summary, - memory_profile: if profiling { Some(mem_profile) } else { None }, + metadata, }) } diff --git a/crates/rec_aggregation/src/benchmark.rs b/crates/rec_aggregation/src/benchmark.rs index e0427b68..958d14ea 100644 --- a/crates/rec_aggregation/src/benchmark.rs +++ b/crates/rec_aggregation/src/benchmark.rs @@ -7,6 +7,7 @@ use lean_vm::*; use multilinear_toolkit::prelude::*; use rand::rngs::StdRng; use rand::{Rng, SeedableRng}; +use utils::pretty_integer; use xmss::{MESSAGE_LEN_FE, XmssPublicKey, XmssSignature}; use crate::compilation::compile_main_program_self_referential; @@ -30,11 +31,21 @@ mod s { pub const DRK: &str = "\x1b[38;5;238m"; } +#[derive(Clone)] +struct NodeStats { + time_secs: f64, + proof_kib: usize, + cycles: usize, + memory: usize, + poseidons: usize, + dots: usize, +} + struct LiveTree { descs: Vec, plain_lens: Vec, max_plain_len: usize, - statuses: Vec>, + statuses: Vec>, n_nodes: usize, } @@ -51,31 +62,61 @@ impl LiveTree { } } + fn header(&self) -> String { + let pad = self.max_plain_len + 6; // desc + dots + " ▸ " + let spacer = " ".repeat(pad); + format!( + "{}{}{:>8} {:>8} {:>10} {:>10} {:>10} {:>10}{}", + s::D, + spacer, + "time", + "size", + "cycles", + "memory", + "poseidons", + "dots", + s::R, + ) + } + fn format_line(&self, i: usize) -> String { let desc = &self.descs[i]; let gap = self.max_plain_len + 2 - self.plain_lens[i]; let dots = format!("{}{}{}", s::DRK, "·".repeat(gap), s::R); - match self.statuses[i] { - None => format!("{} {} {}· · ·{}", desc, dots, s::DRK, s::R), - Some((t, kib)) => format!( - "{} {} {}▸{} {}{}{:.3}s{} {}{}{:>4} KiB{}", + match &self.statuses[i] { + None => desc.to_string(), + Some(st) => format!( + "{} {} {}▸{} {}{}{:>7.3}s{} {}{}{:>4} KiB{} {}{:>10}{} {}{:>10}{} {}{:>10}{} {}{:>10}{}", desc, dots, s::DRK, s::R, s::ORG, s::B, - t, + st.time_secs, s::R, s::CYN, s::B, - kib, + st.proof_kib, + s::R, + s::WHT, + pretty_integer(st.cycles), + s::R, + s::WHT, + pretty_integer(st.memory), + s::R, + s::WHT, + pretty_integer(st.poseidons), + s::R, + s::WHT, + pretty_integer(st.dots), s::R, ), } } fn print_initial(&self) { + println!("{}", self.header()); for i in 0..self.n_nodes { println!("{}", self.format_line(i)); } @@ -83,8 +124,8 @@ impl LiveTree { io::stdout().flush().unwrap(); } - fn update_node(&mut self, index: usize, time_secs: f64, proof_kib: usize) { - self.statuses[index] = Some((time_secs, proof_kib)); + fn update_node(&mut self, index: usize, stats: NodeStats) { + self.statuses[index] = Some(stats); let line = self.format_line(index); let up = self.n_nodes + 1 - index; print!("\x1b[{}A\r\x1b[2K{}\x1b[{}B\r", up, line, up); @@ -92,7 +133,11 @@ impl LiveTree { } fn total_time(&self) -> f64 { - self.statuses.iter().filter_map(|s| s.as_ref()).map(|(t, _)| t).sum() + self.statuses + .iter() + .filter_map(|s| s.as_ref()) + .map(|st| st.time_secs) + .sum() } } @@ -150,9 +195,9 @@ fn build_tree_descs( let (p, cp, pp, pcp) = if is_first { ( format!("{}{}┌──▸ {}", child_prefix, s::DRK, s::R), - format!("{}{}│ {}", child_prefix, s::DRK, s::R), + format!("{} ", child_prefix), format!("{}┌──▸ ", plain_child_prefix), - format!("{}│ ", plain_child_prefix), + format!("{} ", plain_child_prefix), ) } else { ( @@ -241,7 +286,17 @@ fn build_aggregation( if !tracing { let own_display_index = display_index + count_nodes(topology) - 1; let proof_kib = result.proof.len() * F::bits() / (8 * 1024); - display.update_node(own_display_index, elapsed.as_secs_f64(), proof_kib); + display.update_node( + own_display_index, + NodeStats { + time_secs: elapsed.as_secs_f64(), + proof_kib, + cycles: result.metadata.cycles, + memory: result.metadata.memory, + poseidons: result.metadata.n_poseidons, + dots: result.metadata.n_dot_products, + }, + ); } result @@ -370,8 +425,14 @@ fn test_recursive_aggregation() { children: vec![], }, AggregationTopology { - raw_xmss: 666, - children: vec![], + raw_xmss: 234, + children: vec![AggregationTopology { + raw_xmss: 234, + children: vec![AggregationTopology { + raw_xmss: 234, + children: vec![], + }], + }], }, ], }], @@ -379,4 +440,4 @@ fn test_recursive_aggregation() { ], }; run_aggregation_benchmark(&topology, 5, 2, false, false); -} \ No newline at end of file +} diff --git a/crates/rec_aggregation/src/lib.rs b/crates/rec_aggregation/src/lib.rs index 21649d38..cd241441 100644 --- a/crates/rec_aggregation/src/lib.rs +++ b/crates/rec_aggregation/src/lib.rs @@ -120,6 +120,7 @@ pub struct AggregatedSigs { pub signer_indices: Vec, pub proof: Vec, pub bytecode_point: Option>, + pub metadata: ExecutionMetadata, } impl AggregatedSigs { @@ -376,13 +377,14 @@ pub fn aggregate_merge( ); if tracing { - println!("{}", execution_proof.exec_summary); + println!("{}", execution_proof.metadata.display()); } AggregatedSigs { signer_indices, proof: execution_proof.proof, bytecode_point, + metadata: execution_proof.metadata, } } From 9ab17790e6917616c7c35529556422ac104ce712 Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 18:33:30 +0400 Subject: [PATCH 06/17] much cleaner aggregation --- crates/lean_prover/src/trace_gen.rs | 4 +- crates/lean_vm/src/execution/runner.rs | 2 +- crates/rec_aggregation/main.py | 292 +++++++++------------- crates/rec_aggregation/src/benchmark.rs | 121 +++------ crates/rec_aggregation/src/compilation.rs | 33 ++- crates/rec_aggregation/src/lib.rs | 218 +++++++--------- minimal_zkVM.pdf | Bin 349867 -> 342127 bytes misc/minimal_zkVM.tex | 60 +---- 8 files changed, 291 insertions(+), 439 deletions(-) diff --git a/crates/lean_prover/src/trace_gen.rs b/crates/lean_prover/src/trace_gen.rs index 9e48ac92..16f03773 100644 --- a/crates/lean_prover/src/trace_gen.rs +++ b/crates/lean_prover/src/trace_gen.rs @@ -9,7 +9,7 @@ pub struct ExecutionTrace { pub public_memory_size: usize, pub non_zero_memory_size: usize, pub memory: Vec, // of length a multiple of public_memory_size - pub metadata: ExecutionMetadata + pub metadata: ExecutionMetadata, } pub fn get_execution_trace(bytecode: &Bytecode, execution_result: ExecutionResult) -> ExecutionTrace { @@ -115,7 +115,7 @@ pub fn get_execution_trace(bytecode: &Bytecode, execution_result: ExecutionResul public_memory_size: execution_result.public_memory_size, non_zero_memory_size: memory.0.len(), memory: memory_padded, - metadata: execution_result.metadata + metadata: execution_result.metadata, } } diff --git a/crates/lean_vm/src/execution/runner.rs b/crates/lean_vm/src/execution/runner.rs index 53cb799a..8e1ff8c8 100644 --- a/crates/lean_vm/src/execution/runner.rs +++ b/crates/lean_vm/src/execution/runner.rs @@ -290,7 +290,7 @@ fn execute_bytecode_helper( public_input_size: public_input.len(), private_input_size: private_input.len(), runtime_memory: runtime_memory_size, - memory_usage_percent: used_memory_cells as f64 / runtime_memory_size as f64 * 100.0, + memory_usage_percent: used_memory_cells as f64 / memory.0.len() as f64 * 100.0, n_poseidon_precomputed_used, n_poseidons_precomputed_total: poseidons_precomputed.len(), stdout: std::mem::take(std_out), diff --git a/crates/rec_aggregation/main.py b/crates/rec_aggregation/main.py index 9946aff9..fd27d7bf 100644 --- a/crates/rec_aggregation/main.py +++ b/crates/rec_aggregation/main.py @@ -2,19 +2,18 @@ from xmss_aggregate import * MAX_RECURSIONS = 16 -LOG_SIZE_PUBKEY_REGISTRY = LOG_SIZE_PUBKEY_REGISTRY_PLACEHOLDER -DATA_PER_RAW_SIGNER = DIGEST_LEN + LOG_SIZE_PUBKEY_REGISTRY * DIGEST_LEN + SIG_SIZE +MAX_N_SIGS = 2**16 # TODO increase INNER_PUB_MEM_SIZE = 2 ** INNER_PUBLIC_MEMORY_LOG_SIZE -BYTECODE_CLAIM_OFFSET = 1 + 2 * DIGEST_LEN + 2 + MESSAGE_LEN + N_MERKLE_CHUNKS +BYTECODE_CLAIM_OFFSET = 1 + DIGEST_LEN + 2 + MESSAGE_LEN + N_MERKLE_CHUNKS def main(): pub_mem = NONRESERVED_PROGRAM_INPUT_START n_sigs = pub_mem[0] - assert n_sigs <= 2**LOG_SIZE_PUBKEY_REGISTRY - registry_root = pub_mem + 1 - signer_indexes_hash_expected = registry_root + DIGEST_LEN - message = signer_indexes_hash_expected + DIGEST_LEN + assert 1 < n_sigs + assert n_sigs - 1 < MAX_N_SIGS + pubkeys_hash_expected = pub_mem + 1 + message = pubkeys_hash_expected + DIGEST_LEN slot_ptr = message + MESSAGE_LEN slot_lo = slot_ptr[0] slot_hi = slot_ptr[1] @@ -27,202 +26,149 @@ def main(): n_recursions = priv_start[0] assert n_recursions <= MAX_RECURSIONS - signer_indexes_hash, sub_slice_starts, bytecode_sumcheck_proof, source_hashes = verify_signer_index_partitioning(n_sigs, n_recursions, priv_start + 1) + n_dup = priv_start[1] + assert n_dup < MAX_N_SIGS # TODO increase + all_pubkeys = priv_start[2] + sub_slice_starts = priv_start + 3 + bytecode_sumcheck_proof = sub_slice_starts[n_recursions + 1] - copy_8(signer_indexes_hash, signer_indexes_hash_expected) + computed_pubkeys_hash = slice_hash_dynamic_unroll(all_pubkeys, n_sigs * DIGEST_LEN, MAX_LOG_MEMORY_SIZE) + copy_8(computed_pubkeys_hash, pubkeys_hash_expected) - verify_raw_xmss(sub_slice_starts[0], registry_root, message, slot_lo, slot_hi, merkle_chunks_for_slot) + # Buffer for partition verification + n_total = n_sigs + n_dup + buffer = Array(n_total) + counter: Mut = 0 - verify_recursive_sources_and_reduce_bytecode_claims( - n_recursions, sub_slice_starts, source_hashes, bytecode_sumcheck_proof, - registry_root, message, slot_lo, slot_hi, merkle_chunks_for_slot, - bytecode_claim_output) - return - - -def verify_signer_index_partitioning(n_sigs, n_recursions, priv_mem): - sub_slice_starts = priv_mem - bytecode_sumcheck_proof = priv_mem[n_recursions + 1] - n_duplicates = priv_mem[n_recursions + 2] - assert n_duplicates < 2**16 # TODO should we tolerate even more duplicates? - global_indices = priv_mem + n_recursions + 3 - duplicate_indices = global_indices + n_sigs - - # Hash global indices - global_hash = slice_hash_dynamic_unroll(global_indices, n_sigs, LOG_SIZE_PUBKEY_REGISTRY) - - # Hash duplicate indices - duplicate_hash: Imu - if n_duplicates == 0: - duplicate_hash = ZERO_VEC_PTR - else: - duplicate_hash = slice_hash_dynamic_unroll(duplicate_indices, n_duplicates, LOG_SIZE_PUBKEY_REGISTRY) - - # Combine hashes: global, duplicate, and sub-indices, everything hashed together (for Fiat-Shamir challenge derivation) - combined_hash: Mut = Array(DIGEST_LEN) - poseidon16(global_hash, duplicate_hash, combined_hash) - - source_hashes = Array(n_recursions + 1) - for s in range(0, n_recursions + 1): - source_data = sub_slice_starts[s] - n_sub = source_data[0] - sub_indices_s = source_data + 1 - source_hash: Imu - if n_sub == 0: - source_hash = ZERO_VEC_PTR - else: - source_hash = slice_hash_dynamic_unroll(sub_indices_s, n_sub, LOG_SIZE_PUBKEY_REGISTRY) - source_hashes[s] = source_hash - new_combined = Array(DIGEST_LEN) - poseidon16(combined_hash, source_hash, new_combined) - combined_hash = new_combined - - # Derive challenge alpha from combined hash - alpha = combined_hash - - # Polynomial identity check: P_global(alpha) * P_duplicate(alpha) == prod_s P_s(alpha) - p_global = compute_product_polynomial(alpha, global_indices, n_sigs) - p_dup = compute_product_polynomial(alpha, duplicate_indices, n_duplicates) - lhs = mul_extension_ret(p_global, p_dup) - - rhs: Mut = Array(DIM) - set_to_one(rhs) - for s in range(0, n_recursions + 1): - source_data = sub_slice_starts[s] - n_sub = source_data[0] - sub_indices_s = source_data + 1 - p_s = compute_product_polynomial(alpha, sub_indices_s, n_sub) - rhs = mul_extension_ret(rhs, p_s) - - copy_5(lhs, rhs) - - return global_hash, sub_slice_starts, bytecode_sumcheck_proof, source_hashes - - -def compute_product_polynomial(alpha, indices, n): - result: Mut = Array(DIM) - alpha_0 = alpha[0] - alpha_tail = alpha + 1 - set_to_one(result) - for i in dynamic_unroll(0, n, LOG_SIZE_PUBKEY_REGISTRY): - factor = Array(DIM + 1) - factor[0] = alpha_0 - indices[i] - copy_5(alpha_tail, factor + 1) - result = mul_extension_ret(result, factor) - return result - - -def verify_raw_xmss(data_block, registry_root, message, slot_lo, slot_hi, merkle_chunks_for_slot): - n_raw_xmss = data_block[0] - raw_indices = data_block + 1 - raw_data = raw_indices + n_raw_xmss + # Raw XMSS source (source 0) + source_0 = sub_slice_starts[0] + n_raw_xmss = source_0[0] + raw_indices = source_0 + 1 + raw_sigs = raw_indices + n_raw_xmss for i in range(0, n_raw_xmss): - signer_index = raw_indices[i] - signer_data = raw_data + i * DATA_PER_RAW_SIGNER - pubkey = signer_data - registry_proof = signer_data + DIGEST_LEN - xmss_sig = signer_data + DIGEST_LEN + LOG_SIZE_PUBKEY_REGISTRY * DIGEST_LEN - - # Decompose signer_index to bits for registry merkle proof - signer_index_bits = checked_decompose_bits_small_value(signer_index, LOG_SIZE_PUBKEY_REGISTRY) - - # Verify pubkey is in registry merkle tree - merkle_verify(pubkey, registry_proof, signer_index_bits, registry_root, LOG_SIZE_PUBKEY_REGISTRY) - - # Verify XMSS signature - xmss_verify(pubkey, message, xmss_sig, slot_lo, slot_hi, merkle_chunks_for_slot) - return - - -def verify_recursive_sources_and_reduce_bytecode_claims( - n_recursions, sub_slice_starts, source_hashes, bytecode_sumcheck_proof, - registry_root, message, slot_lo, slot_hi, merkle_chunks_for_slot, - bytecode_claim_output): + idx = raw_indices[i] + assert idx < n_total + buffer[idx] = counter + counter += 1 - if n_recursions == 0: - for k in unroll(0, BYTECODE_POINT_N_VARS): - set_to_5_zeros(bytecode_claim_output + k * DIM) - bytecode_claim_output[BYTECODE_POINT_N_VARS * DIM] = BYTECODE_ZERO_EVAL - for k in unroll(1, DIM): - bytecode_claim_output[BYTECODE_POINT_N_VARS * DIM + k] = 0 - return + # Verify raw XMSS signatures + for i in range(0, n_raw_xmss): + idx = raw_indices[i] + pk = all_pubkeys + idx * DIGEST_LEN + sig = raw_sigs + i * SIG_SIZE + xmss_verify(pk, message, sig, slot_lo, slot_hi, merkle_chunks_for_slot) + # Recursive sources n_bytecode_claims = n_recursions * 2 bytecode_claims = Array(n_bytecode_claims) for rec_idx in range(0, n_recursions): source_data = sub_slice_starts[rec_idx + 1] - n_sub_sigs = source_data[0] + n_sub = source_data[0] sub_indices = source_data + 1 - bytecode_value_hint = sub_indices + n_sub_sigs # hinted evaluation of bytecode, used to verify the recursive proof, and verified at the end (2n->1 sumcheck reduction) + bytecode_value_hint = sub_indices + n_sub inner_pub_mem = bytecode_value_hint + DIM proof_transcript = inner_pub_mem + INNER_PUB_MEM_SIZE - sub_indexes_hash = source_hashes[rec_idx + 1] + # First two pubkeys initialize the hash + idx0 = sub_indices[0] + assert idx0 < n_total + buffer[idx0] = counter + counter += 1 + idx1 = sub_indices[1] + assert idx1 < n_total + buffer[idx1] = counter + counter += 1 + pk0 = all_pubkeys + idx0 * DIGEST_LEN + pk1 = all_pubkeys + idx1 * DIGEST_LEN + running_hash: Mut = Array(DIGEST_LEN) + poseidon16(pk0, pk1, running_hash) + + # Remaining pubkeys + for j_shift in dynamic_unroll(0, n_sub-2, log2_ceil(MAX_N_SIGS)): + j = j_shift + 2 # TODO allow dynamic_unroll to start from nonzero + idx = sub_indices[j] + assert idx < n_total + buffer[idx] = counter + counter += 1 + pk = all_pubkeys + idx * DIGEST_LEN + new_hash = Array(DIGEST_LEN) + poseidon16(running_hash, pk, new_hash) + running_hash = new_hash # Verify inner public memory matches expected structure - debug_assert(NONRESERVED_PROGRAM_INPUT_START % DIM == 0) # NONRESERVED_PROGRAM_INPUT_START should be a multiple of DIM + debug_assert(NONRESERVED_PROGRAM_INPUT_START % DIM == 0) for i in unroll(0, NONRESERVED_PROGRAM_INPUT_START / DIM): copy_5(i * DIM, inner_pub_mem + i * DIM) - non_reserserved_inner_pub_mem = inner_pub_mem + NONRESERVED_PROGRAM_INPUT_START - assert non_reserserved_inner_pub_mem[0] == n_sub_sigs - copy_8(registry_root, non_reserserved_inner_pub_mem + 1) - copy_8(sub_indexes_hash, non_reserserved_inner_pub_mem + 1 + DIGEST_LEN) - inner_msg = non_reserserved_inner_pub_mem + 1 + 2 * DIGEST_LEN + non_reserved_inner = inner_pub_mem + NONRESERVED_PROGRAM_INPUT_START + assert non_reserved_inner[0] == n_sub + copy_8(running_hash, non_reserved_inner + 1) + inner_msg = non_reserved_inner + 1 + DIGEST_LEN debug_assert(MESSAGE_LEN <= 2*DIM) copy_5(message, inner_msg) - copy_5(message + (MESSAGE_LEN - DIM), inner_msg + (MESSAGE_LEN - DIM) ) + copy_5(message + (MESSAGE_LEN - DIM), inner_msg + (MESSAGE_LEN - DIM)) inner_msg[MESSAGE_LEN] = slot_lo inner_msg[MESSAGE_LEN + 1] = slot_hi for k in unroll(0, N_MERKLE_CHUNKS): inner_msg[MESSAGE_LEN + 2 + k] = merkle_chunks_for_slot[k] # Collect inner bytecode claim from inner pub mem - bytecode_claims[2 * rec_idx] = non_reserserved_inner_pub_mem + BYTECODE_CLAIM_OFFSET + bytecode_claims[2 * rec_idx] = non_reserved_inner + BYTECODE_CLAIM_OFFSET # Verify recursive proof - returns the second bytecode claim bytecode_claims[2 * rec_idx + 1] = recursion(inner_pub_mem, proof_transcript, bytecode_value_hint) - # Bytecode claims reduction: 2n -> 1 via sumcheck - bytecode_claims_hash: Mut = ZERO_VEC_PTR - for i in range(0, n_bytecode_claims): - claim_ptr = bytecode_claims[i] - for k in unroll(BYTECODE_CLAIM_SIZE, BYTECODE_CLAIM_SIZE_PADDED): - assert claim_ptr[k] == 0 - claim_hash = slice_hash(claim_ptr, BYTECODE_CLAIM_SIZE_PADDED / DIGEST_LEN) - new_hash = Array(DIGEST_LEN) - poseidon16(bytecode_claims_hash, claim_hash, new_hash) - bytecode_claims_hash = new_hash - - reduction_fs: Mut = fs_new(bytecode_sumcheck_proof) - reduction_fs, received_claims_hash = fs_receive_chunks(reduction_fs, 1) - copy_8(bytecode_claims_hash, received_claims_hash) - - reduction_fs, alpha = fs_sample_ef(reduction_fs) - alpha_powers = powers(alpha, n_bytecode_claims) - - all_values = Array(n_bytecode_claims * DIM) - for i in range(0, n_bytecode_claims): - claim_ptr = bytecode_claims[i] - copy_5(claim_ptr + BYTECODE_POINT_N_VARS * DIM, all_values + i * DIM) - - claimed_sum = Array(DIM) - dot_product_ee_dynamic(all_values, alpha_powers, claimed_sum, n_bytecode_claims) - - reduction_fs, challenges, final_eval = sumcheck_verify(reduction_fs, BYTECODE_POINT_N_VARS, claimed_sum, 2) - - # Verify: final_eval == bytecode(r) * w(r) - eq_evals = Array(n_bytecode_claims * DIM) - for i in range(0, n_bytecode_claims): - claim_ptr = bytecode_claims[i] - eq_val = eq_mle_extension(claim_ptr, challenges, BYTECODE_POINT_N_VARS) - copy_5(eq_val, eq_evals + i * DIM) - w_r = Array(DIM) - dot_product_ee_dynamic(eq_evals, alpha_powers, w_r, n_bytecode_claims) - - bytecode_value_at_r = div_extension_ret(final_eval, w_r) - - copy_many_ef(challenges, bytecode_claim_output, BYTECODE_POINT_N_VARS) - copy_5(bytecode_value_at_r, bytecode_claim_output + BYTECODE_POINT_N_VARS * DIM) + # Ensure partition validity + assert counter == n_total + + # Bytecode claims + if n_recursions == 0: + for k in unroll(0, BYTECODE_POINT_N_VARS): + set_to_5_zeros(bytecode_claim_output + k * DIM) + bytecode_claim_output[BYTECODE_POINT_N_VARS * DIM] = BYTECODE_ZERO_EVAL + for k in unroll(1, DIM): + bytecode_claim_output[BYTECODE_POINT_N_VARS * DIM + k] = 0 + else: + # Bytecode claims reduction: 2n -> 1 via sumcheck + bytecode_claims_hash: Mut = ZERO_VEC_PTR + for i in range(0, n_bytecode_claims): + claim_ptr = bytecode_claims[i] + for k in unroll(BYTECODE_CLAIM_SIZE, BYTECODE_CLAIM_SIZE_PADDED): + assert claim_ptr[k] == 0 + claim_hash = slice_hash(claim_ptr, BYTECODE_CLAIM_SIZE_PADDED / DIGEST_LEN) + new_hash = Array(DIGEST_LEN) + poseidon16(bytecode_claims_hash, claim_hash, new_hash) + bytecode_claims_hash = new_hash + + reduction_fs: Mut = fs_new(bytecode_sumcheck_proof) + reduction_fs, received_claims_hash = fs_receive_chunks(reduction_fs, 1) + copy_8(bytecode_claims_hash, received_claims_hash) + + reduction_fs, alpha = fs_sample_ef(reduction_fs) + alpha_powers = powers(alpha, n_bytecode_claims) + + all_values = Array(n_bytecode_claims * DIM) + for i in range(0, n_bytecode_claims): + claim_ptr = bytecode_claims[i] + copy_5(claim_ptr + BYTECODE_POINT_N_VARS * DIM, all_values + i * DIM) + + claimed_sum = Array(DIM) + dot_product_ee_dynamic(all_values, alpha_powers, claimed_sum, n_bytecode_claims) + + reduction_fs, challenges, final_eval = sumcheck_verify(reduction_fs, BYTECODE_POINT_N_VARS, claimed_sum, 2) + + # Verify: final_eval == bytecode(r) * w(r) + eq_evals = Array(n_bytecode_claims * DIM) + for i in range(0, n_bytecode_claims): + claim_ptr = bytecode_claims[i] + eq_val = eq_mle_extension(claim_ptr, challenges, BYTECODE_POINT_N_VARS) + copy_5(eq_val, eq_evals + i * DIM) + w_r = Array(DIM) + dot_product_ee_dynamic(eq_evals, alpha_powers, w_r, n_bytecode_claims) + + bytecode_value_at_r = div_extension_ret(final_eval, w_r) + + copy_many_ef(challenges, bytecode_claim_output, BYTECODE_POINT_N_VARS) + copy_5(bytecode_value_at_r, bytecode_claim_output + BYTECODE_POINT_N_VARS * DIM) return diff --git a/crates/rec_aggregation/src/benchmark.rs b/crates/rec_aggregation/src/benchmark.rs index 958d14ea..c8c50168 100644 --- a/crates/rec_aggregation/src/benchmark.rs +++ b/crates/rec_aggregation/src/benchmark.rs @@ -1,8 +1,6 @@ use std::io::{self, Write}; use std::time::Instant; -use lean_prover::default_whir_config; -use lean_prover::verify_execution::verify_execution; use lean_vm::*; use multilinear_toolkit::prelude::*; use rand::rngs::StdRng; @@ -10,8 +8,8 @@ use rand::{Rng, SeedableRng}; use utils::pretty_integer; use xmss::{MESSAGE_LEN_FE, XmssPublicKey, XmssSignature}; -use crate::compilation::compile_main_program_self_referential; -use crate::{AggregatedSigs, AggregationTopology, aggregate_merge, build_registry_merkle_tree, count_signers}; +use crate::compilation::{get_aggregation_bytecode, init_aggregation_bytecode}; +use crate::{AggregatedSigs, AggregationTopology, aggregate, count_signers, verify_aggregation}; fn count_nodes(topology: &AggregationTopology) -> usize { 1 + topology.children.iter().map(count_nodes).sum::() @@ -222,11 +220,8 @@ fn build_aggregation( topology: &AggregationTopology, display_index: usize, display: &mut LiveTree, - bytecode: &Bytecode, message: &[F; MESSAGE_LEN_FE], slot: u32, - registry_merkle_tree: &[Vec<[F; DIGEST_LEN]>], - signer_indices: &[usize], pub_keys: &[XmssPublicKey], signatures: &[XmssSignature], overlap: usize, @@ -235,8 +230,8 @@ fn build_aggregation( tracing: bool, ) -> AggregatedSigs { let raw_count = topology.raw_xmss; - let raw_signers: Vec<(usize, XmssPublicKey, XmssSignature)> = (0..raw_count) - .map(|i| (signer_indices[i], pub_keys[i].clone(), signatures[i].clone())) + let raw_signers: Vec<(XmssPublicKey, XmssSignature)> = (0..raw_count) + .map(|i| (pub_keys[i].clone(), signatures[i].clone())) .collect(); let mut child_results = vec![]; @@ -248,11 +243,8 @@ fn build_aggregation( child, child_display_index, display, - bytecode, message, slot, - registry_merkle_tree, - &signer_indices[child_start..child_start + child_count], &pub_keys[child_start..child_start + child_count], &signatures[child_start..child_start + child_count], overlap, @@ -269,13 +261,11 @@ fn build_aggregation( } let time = Instant::now(); - let result = aggregate_merge( + let result = aggregate( &child_results, &raw_signers, message, slot, - registry_merkle_tree, - bytecode, overlap, log_inv_rate, prox_gaps_conjecture, @@ -283,6 +273,10 @@ fn build_aggregation( ); let elapsed = time.elapsed(); + if tracing { + println!("{}", result.metadata.display()); + } + if !tracing { let own_display_index = display_index + count_nodes(topology) - 1; let proof_kib = result.proof.len() * F::bits() / (8 * 1024); @@ -336,24 +330,14 @@ pub fn run_aggregation_benchmark( }) .collect(); - let signer_indices: Vec = (0..n_sigs).collect(); - let pub_keys: Vec = signer_indices - .iter() - .map(|&i| pub_keys_and_sigs[i % n_unique].0.clone()) - .collect(); - let signatures: Vec = signer_indices - .iter() - .map(|&i| pub_keys_and_sigs[i % n_unique].1.clone()) - .collect(); - - let signers_for_tree: Vec<(usize, [F; DIGEST_LEN])> = signer_indices - .iter() - .zip(&pub_keys) - .map(|(&idx, pk)| (idx, pk.merkle_root)) - .collect(); - let registry_layers = build_registry_merkle_tree(&signers_for_tree); + let pub_keys: Vec = (0..n_sigs).map(|i| pub_keys_and_sigs[i % n_unique].0.clone()).collect(); + let signatures: Vec = (0..n_sigs).map(|i| pub_keys_and_sigs[i % n_unique].1.clone()).collect(); - let bytecode = compile_main_program_self_referential(prox_gaps_conjecture); + init_aggregation_bytecode(); + println!( + "Aggregation program: {} instructions\n", + pretty_integer(get_aggregation_bytecode(prox_gaps_conjecture).instructions.len()) + ); // Build display let mut descs = vec![]; @@ -365,15 +349,12 @@ pub fn run_aggregation_benchmark( display.print_initial(); } - let result = build_aggregation( + let aggregated_sigs = build_aggregation( topology, 0, &mut display, - &bytecode, &message, slot, - ®istry_layers, - &signer_indices, &pub_keys, &signatures, overlap, @@ -383,59 +364,39 @@ pub fn run_aggregation_benchmark( ); // Verify root proof - let registry_root = ®istry_layers.last().unwrap()[0]; - let public_input = result.public_input(registry_root, &message, slot, &bytecode); - verify_execution( - &bytecode, - &public_input, - result.proof, - default_whir_config(log_inv_rate, prox_gaps_conjecture), - ) - .unwrap(); + verify_aggregation(&aggregated_sigs, &message, slot, log_inv_rate, prox_gaps_conjecture).unwrap(); } #[test] fn test_recursive_aggregation() { let topology = AggregationTopology { - raw_xmss: 5, + raw_xmss: 0, children: vec![ AggregationTopology { - raw_xmss: 2, - children: vec![AggregationTopology { - raw_xmss: 3, - children: vec![ - AggregationTopology { - raw_xmss: 333, - children: vec![], - }, - AggregationTopology { - raw_xmss: 555, - children: vec![], - }, - ], - }], + raw_xmss: 0, + children: vec![ + AggregationTopology { + raw_xmss: 1350, + children: vec![], + }, + AggregationTopology { + raw_xmss: 1350, + children: vec![], + }, + ], }, AggregationTopology { - raw_xmss: 3, - children: vec![AggregationTopology { - raw_xmss: 3, - children: vec![ - AggregationTopology { - raw_xmss: 777, - children: vec![], - }, - AggregationTopology { - raw_xmss: 234, - children: vec![AggregationTopology { - raw_xmss: 234, - children: vec![AggregationTopology { - raw_xmss: 234, - children: vec![], - }], - }], - }, - ], - }], + raw_xmss: 0, + children: vec![ + AggregationTopology { + raw_xmss: 1350, + children: vec![], + }, + AggregationTopology { + raw_xmss: 1350, + children: vec![], + }, + ], }, ], }; diff --git a/crates/rec_aggregation/src/compilation.rs b/crates/rec_aggregation/src/compilation.rs index 710d8685..ec687850 100644 --- a/crates/rec_aggregation/src/compilation.rs +++ b/crates/rec_aggregation/src/compilation.rs @@ -11,19 +11,38 @@ use multilinear_toolkit::prelude::*; use std::collections::{BTreeMap, HashMap}; use std::path::Path; use std::rc::Rc; +use std::sync::OnceLock; use sub_protocols::{min_stacked_n_vars, total_whir_statements}; use tracing::instrument; use utils::{BYTECODE_TABLE_INDEX, Counter, MEMORY_TABLE_INDEX}; use xmss::{LOG_LIFETIME, MESSAGE_LEN_FE, RANDOMNESS_LEN_FE, TARGET_SUM, V, V_GRINDING, W}; -use crate::{LOG_SIZE_PUBKEY_REGISTRY, MERKLE_LEVELS_PER_CHUNK_FOR_SLOT, N_MERKLE_CHUNKS_FOR_SLOT}; +use crate::{MERKLE_LEVELS_PER_CHUNK_FOR_SLOT, N_MERKLE_CHUNKS_FOR_SLOT}; + +static BYTECODE_DEFAULT: OnceLock = OnceLock::new(); +static BYTECODE_CONJECTURE: OnceLock = OnceLock::new(); + +pub(crate) fn get_aggregation_bytecode(prox_gaps_conjecture: bool) -> &'static Bytecode { + if prox_gaps_conjecture { + &BYTECODE_CONJECTURE + } else { + &BYTECODE_DEFAULT + } + .get() + .unwrap_or_else(|| panic!("call init_aggregation_bytecode() first")) +} + +pub(crate) fn init_aggregation_bytecode() { + BYTECODE_DEFAULT.get_or_init(|| compile_main_program_self_referential(false)); + BYTECODE_CONJECTURE.get_or_init(|| compile_main_program_self_referential(true)); +} fn compile_main_program(inner_program_log_size: usize, prox_gaps_conjecture: bool, bytecode_zero_eval: F) -> Bytecode { let bytecode_point_n_vars = inner_program_log_size + log2_ceil_usize(N_INSTRUCTION_COLUMNS); let claim_data_size = (bytecode_point_n_vars + 1) * DIMENSION; - // pub_input layout: n_sigs(1) + pubkey_registry_root(8) + signers_hash(8) + slot_low(1) + slot_high(1) + // pub_input layout: n_sigs(1) + slice_hash(8) + slot_low(1) + slot_high(1) // + message + merkle_chunks_for_slot + bytecode_claim - let pub_input_size = 1 + 2 * DIGEST_LEN + 2 + MESSAGE_LEN_FE + N_MERKLE_CHUNKS_FOR_SLOT + claim_data_size; + let pub_input_size = 1 + DIGEST_LEN + 2 + MESSAGE_LEN_FE + N_MERKLE_CHUNKS_FOR_SLOT + claim_data_size; let inner_public_memory_log_size = log2_ceil_usize(NONRESERVED_PROGRAM_INPUT_START + pub_input_size); let replacements = build_replacements( inner_program_log_size, @@ -41,7 +60,7 @@ fn compile_main_program(inner_program_log_size: usize, prox_gaps_conjecture: boo } #[instrument(skip_all)] -pub(crate) fn compile_main_program_self_referential(prox_gaps_conjecture: bool) -> Bytecode { +fn compile_main_program_self_referential(prox_gaps_conjecture: bool) -> Bytecode { let mut log_size_guess = 20; loop { let bytecode = compile_main_program(log_size_guess, prox_gaps_conjecture, F::ZERO); @@ -359,12 +378,6 @@ fn build_replacements( MERKLE_LEVELS_PER_CHUNK_FOR_SLOT.to_string(), ); - // Registry - replacements.insert( - "LOG_SIZE_PUBKEY_REGISTRY_PLACEHOLDER".to_string(), - LOG_SIZE_PUBKEY_REGISTRY.to_string(), - ); - // Bytecode zero eval replacements.insert( "BYTECODE_ZERO_EVAL_PLACEHOLDER".to_string(), diff --git a/crates/rec_aggregation/src/lib.rs b/crates/rec_aggregation/src/lib.rs index cd241441..8c04b25a 100644 --- a/crates/rec_aggregation/src/lib.rs +++ b/crates/rec_aggregation/src/lib.rs @@ -1,17 +1,18 @@ #![cfg_attr(not(test), allow(unused_crate_dependencies))] -use lean_prover::default_whir_config; +use lean_prover::{default_whir_config, verify_execution::ProofVerificationDetails}; use lean_prover::prove_execution::prove_execution; use lean_prover::verify_execution::verify_execution; use lean_vm::*; use multilinear_toolkit::prelude::*; use tracing::instrument; -use utils::{bit_reverse, build_prover_state, poseidon_compress_slice, poseidon16_compress_pair}; +use utils::{build_prover_state, poseidon_compress_slice, poseidon16_compress_pair}; use xmss::{LOG_LIFETIME, MESSAGE_LEN_FE, SIG_SIZE_FE, XmssPublicKey, XmssSignature, slot_to_field_elements}; +use crate::compilation::get_aggregation_bytecode; + pub mod benchmark; pub(crate) mod compilation; -pub const LOG_SIZE_PUBKEY_REGISTRY: usize = 14; const MERKLE_LEVELS_PER_CHUNK_FOR_SLOT: usize = 4; const N_MERKLE_CHUNKS_FOR_SLOT: usize = LOG_LIFETIME / MERKLE_LEVELS_PER_CHUNK_FOR_SLOT; @@ -27,44 +28,9 @@ pub(crate) fn count_signers(topology: &AggregationTopology, overlap: usize) -> u topology.raw_xmss + child_count - overlap * n_overlaps } -/// layers[0] = leaves, layers[height] = [root]. -pub(crate) fn build_registry_merkle_tree(signers: &[(usize, [F; DIGEST_LEN])]) -> Vec> { - let height = LOG_SIZE_PUBKEY_REGISTRY; - let n_leaves = 1 << height; - - // Initialize all leaves as zero hash - let mut leaves = vec![[F::ZERO; DIGEST_LEN]; n_leaves]; - - // Place each signer at the bit-reversed position - for &(index, ref digest) in signers { - let pos = bit_reverse(index, height); - leaves[pos] = *digest; - } - - // Build tree bottom-up - let mut layers = vec![leaves]; - for level in 0..height { - let prev = &layers[level]; - let n_nodes = prev.len() / 2; - let mut current = Vec::with_capacity(n_nodes); - for i in 0..n_nodes { - current.push(poseidon16_compress_pair(prev[2 * i], prev[2 * i + 1])); - } - layers.push(current); - } - layers -} - -fn get_merkle_proof(layers: &[Vec<[F; DIGEST_LEN]>], signer_index: usize) -> Vec<[F; DIGEST_LEN]> { - let height = layers.len() - 1; - let mut pos = bit_reverse(signer_index, height); - let mut proof = Vec::with_capacity(height); - for layer in layers.iter().take(height) { - let sibling_pos = pos ^ 1; - proof.push(layer[sibling_pos]); - pos >>= 1; - } - proof +pub fn slice_hash_pubkeys(pub_keys: &[[F; DIGEST_LEN]]) -> [F; DIGEST_LEN] { + let flat: Vec = pub_keys.iter().flat_map(|pk| pk.iter().copied()).collect(); + poseidon_compress_slice(&flat) } fn compute_merkle_chunks_for_slot(slot: u32) -> Vec { @@ -85,16 +51,14 @@ fn compute_merkle_chunks_for_slot(slot: u32) -> Vec { fn build_non_reserved_public_input( n_sigs: usize, - registry_root: &[F; DIGEST_LEN], - signer_indexes_hash: &[F; DIGEST_LEN], + slice_hash: &[F; DIGEST_LEN], message: &[F; MESSAGE_LEN_FE], slot: u32, bytecode_claim_output: &[F], ) -> Vec { let mut pi = vec![]; pi.push(F::from_usize(n_sigs)); - pi.extend_from_slice(registry_root); - pi.extend_from_slice(signer_indexes_hash); + pi.extend_from_slice(slice_hash); pi.extend_from_slice(message); let [slot_lo, slot_hi] = slot_to_field_elements(slot); pi.push(slot_lo); @@ -117,20 +81,15 @@ fn encode_xmss_signature(sig: &XmssSignature) -> Vec { #[derive(Debug)] pub struct AggregatedSigs { - pub signer_indices: Vec, + pub pub_keys: Vec<[F; DIGEST_LEN]>, pub proof: Vec, pub bytecode_point: Option>, pub metadata: ExecutionMetadata, } impl AggregatedSigs { - pub fn public_input( - &self, - registry_root: &[F; DIGEST_LEN], - message: &[F; MESSAGE_LEN_FE], - slot: u32, - bytecode: &Bytecode, - ) -> Vec { + pub fn public_input(&self, message: &[F; MESSAGE_LEN_FE], slot: u32, proximity_gaps_conjecture: bool) -> Vec { + let bytecode = get_aggregation_bytecode(proximity_gaps_conjecture); let bytecode_point_n_vars = bytecode.log_size() + log2_ceil_usize(N_INSTRUCTION_COLUMNS); let bytecode_claim_size = (bytecode_point_n_vars + 1) * DIMENSION; @@ -149,29 +108,36 @@ impl AggregatedSigs { }; assert_eq!(bytecode_claim_output.len(), bytecode_claim_size); - let indices_fe: Vec = self.signer_indices.iter().map(|&i| F::from_usize(i)).collect(); - let signer_indexes_hash = poseidon_compress_slice(&indices_fe); - - build_non_reserved_public_input( - self.signer_indices.len(), - registry_root, - &signer_indexes_hash, - message, - slot, - &bytecode_claim_output, - ) + let slice_hash = slice_hash_pubkeys(&self.pub_keys); + + build_non_reserved_public_input(self.pub_keys.len(), &slice_hash, message, slot, &bytecode_claim_output) } } +pub fn verify_aggregation( + sigs: &AggregatedSigs, + message: &[F; MESSAGE_LEN_FE], + slot: u32, + log_inv_rate: usize, + prox_gaps_conjecture: bool, +) -> Result { + let public_input = sigs.public_input(&message, slot, prox_gaps_conjecture); + let bytecode = get_aggregation_bytecode(prox_gaps_conjecture); + verify_execution( + bytecode, + &public_input, + sigs.proof.clone(), + default_whir_config(log_inv_rate, prox_gaps_conjecture), + ) +} + #[allow(clippy::too_many_arguments)] #[instrument(skip_all)] -pub fn aggregate_merge( +pub fn aggregate( children: &[AggregatedSigs], - raw_signers: &[(usize, XmssPublicKey, XmssSignature)], + raw_signers: &[(XmssPublicKey, XmssSignature)], message: &[F; MESSAGE_LEN_FE], slot: u32, - registry_merkle_tree: &[Vec<[F; DIGEST_LEN]>], - bytecode: &Bytecode, overlap: usize, log_inv_rate: usize, prox_gaps_conjecture: bool, @@ -180,47 +146,45 @@ pub fn aggregate_merge( let n_recursions = children.len(); let raw_count = raw_signers.len(); let whir_config = default_whir_config(log_inv_rate, prox_gaps_conjecture); - let registry_root = ®istry_merkle_tree.last().unwrap()[0]; + let bytecode = get_aggregation_bytecode(prox_gaps_conjecture); let bytecode_point_n_vars = bytecode.log_size() + log2_ceil_usize(N_INSTRUCTION_COLUMNS); let bytecode_claim_size = (bytecode_point_n_vars + 1) * DIMENSION; - // Build merged signer_indices: raw ++ children with overlap - let raw_indices: Vec = raw_signers.iter().map(|(idx, _, _)| *idx).collect(); - let mut signer_indices = raw_indices.clone(); + // Build global pub_keys: raw ++ children (with overlap dedup) + let raw_pub_keys: Vec<[F; DIGEST_LEN]> = raw_signers.iter().map(|(pk, _)| pk.merkle_root).collect(); + let mut global_pub_keys = raw_pub_keys; for (i, child) in children.iter().enumerate() { if i == 0 { - signer_indices.extend_from_slice(&child.signer_indices); + global_pub_keys.extend_from_slice(&child.pub_keys); } else { - signer_indices.extend_from_slice(&child.signer_indices[overlap..]); + global_pub_keys.extend_from_slice(&child.pub_keys[overlap..]); + } + } + let n_sigs = global_pub_keys.len(); + + // Build dup pub_keys (overlap portions of children 1+) + let mut dup_pub_keys: Vec<[F; DIGEST_LEN]> = Vec::new(); + for (i, child) in children.iter().enumerate() { + if i > 0 && overlap > 0 { + dup_pub_keys.extend_from_slice(&child.pub_keys[..overlap]); } } - let n_sigs = signer_indices.len(); + let n_dup = dup_pub_keys.len(); // Verify child proofs let mut child_pub_inputs: Vec> = vec![]; let mut child_bytecode_evals: Vec> = vec![]; for child in children { - let child_pub_input = child.public_input(registry_root, message, slot, bytecode); + let child_pub_input = child.public_input(message, slot, prox_gaps_conjecture); let verif = verify_execution(bytecode, &child_pub_input, child.proof.clone(), whir_config.clone()).unwrap(); child_bytecode_evals.push(verif.bytecode_evaluation); child_pub_inputs.push(child_pub_input); } - // Sub-index lists and dup indices - let mut all_sub_indices: Vec<&[usize]> = vec![&raw_indices]; - let mut dup_indices = Vec::new(); - for (i, child) in children.iter().enumerate() { - all_sub_indices.push(&child.signer_indices); - if i > 0 && overlap > 0 { - dup_indices.extend_from_slice(&child.signer_indices[..overlap]); - } - } - dup_indices.sort(); - // Bytecode sumcheck reduction let (bytecode_claim_output, bytecode_point, final_sumcheck_transcript) = if n_recursions > 0 { - let bytecode_claim_offset = 1 + 2 * DIGEST_LEN + 2 + MESSAGE_LEN_FE + N_MERKLE_CHUNKS_FOR_SLOT; + let bytecode_claim_offset = 1 + DIGEST_LEN + 2 + MESSAGE_LEN_FE + N_MERKLE_CHUNKS_FOR_SLOT; let mut claims = vec![]; for (i, _child) in children.iter().enumerate() { let first_claim = extract_bytecode_claim_from_public_input( @@ -284,50 +248,53 @@ pub fn aggregate_merge( }; // Build public input - let global_indices_fe: Vec = signer_indices.iter().map(|&i| F::from_usize(i)).collect(); - let signer_indexes_hash = poseidon_compress_slice(&global_indices_fe); - let non_reserved_public_input = build_non_reserved_public_input( - n_sigs, - registry_root, - &signer_indexes_hash, - message, - slot, - &bytecode_claim_output, - ); + let slice_hash = slice_hash_pubkeys(&global_pub_keys); + let non_reserved_public_input = + build_non_reserved_public_input(n_sigs, &slice_hash, message, slot, &bytecode_claim_output); let public_memory = build_public_memory(&non_reserved_public_input); - // header: 1 n_recursions + (n_recursions+1) pointers + 1 sumcheck_proof_ptr + 1 n_dup + n_sigs + n_dup - let header_size = 1 + (n_recursions + 1) + 1 + 1 + n_sigs + dup_indices.len(); + // Build private input + // Layout: [n_recursions, n_dup, ptr_pubkeys, ptr_source_0..n_recursions, ptr_bytecode_sumcheck, + // global_pubkeys, dup_pubkeys, source_blocks..., bytecode_sumcheck_proof] + let header_size = n_recursions + 5; + let pubkeys_start = public_memory.len() + header_size; + let pubkeys_block_size = n_sigs * DIGEST_LEN + n_dup * DIGEST_LEN; + // Build source blocks let mut source_blocks: Vec> = vec![]; // Source 0: raw XMSS { let mut block = vec![]; block.push(F::from_usize(raw_count)); - for &(idx, _, _) in raw_signers { - block.push(F::from_usize(idx)); + for i in 0..raw_count { + block.push(F::from_usize(i)); } - for (idx, pk, sig) in raw_signers { - block.extend_from_slice(&pk.merkle_root); - let proof = get_merkle_proof(registry_merkle_tree, *idx); - for sibling in &proof { - block.extend_from_slice(sibling); - } + for (_, sig) in raw_signers { block.extend(encode_xmss_signature(sig)); } source_blocks.push(block); } // Sources 1..n_recursions: recursive children + let mut child_global_start = raw_count; for (i, child) in children.iter().enumerate() { let mut block = vec![]; - let sub_indices = all_sub_indices[i + 1]; + let child_count = child.pub_keys.len(); - block.push(F::from_usize(sub_indices.len())); - for &idx in sub_indices { - block.push(F::from_usize(idx)); + block.push(F::from_usize(child_count)); + // For children after the first, the overlap portion uses dup indices + if i > 0 && overlap > 0 { + let dup_offset = n_sigs + (i - 1) * overlap; + for j in 0..overlap { + block.push(F::from_usize(dup_offset + j)); + } } + let non_overlap_count = if i > 0 { child_count - overlap } else { child_count }; + for j in 0..non_overlap_count { + block.push(F::from_usize(child_global_start + j)); + } + // bytecode_value_hint (DIM elements) block.extend_from_slice(child_bytecode_evals[i].value.as_basis_coefficients_slice()); // inner_pub_mem @@ -337,32 +304,35 @@ pub fn aggregate_merge( block.extend_from_slice(&child.proof); source_blocks.push(block); + child_global_start += non_overlap_count; } // Compute absolute memory addresses for each source block - let mut offset_in_priv = header_size; + let sources_start = pubkeys_start + pubkeys_block_size; + let mut offset = sources_start; let mut source_ptrs: Vec = vec![]; for block in &source_blocks { - source_ptrs.push(public_memory.len() + offset_in_priv); - offset_in_priv += block.len(); + source_ptrs.push(offset); + offset += block.len(); } - let bytecode_sumcheck_proof_ptr = public_memory.len() + offset_in_priv; + let bytecode_sumcheck_proof_ptr = offset; let mut private_input = vec![]; private_input.push(F::from_usize(n_recursions)); + private_input.push(F::from_usize(n_dup)); + private_input.push(F::from_usize(pubkeys_start)); for &ptr in &source_ptrs { private_input.push(F::from_usize(ptr)); } private_input.push(F::from_usize(bytecode_sumcheck_proof_ptr)); - private_input.push(F::from_usize(dup_indices.len())); - for &idx in &signer_indices { - private_input.push(F::from_usize(idx)); - } - for &idx in &dup_indices { - private_input.push(F::from_usize(idx)); - } assert_eq!(private_input.len(), header_size); + for pk in &global_pub_keys { + private_input.extend_from_slice(pk); + } + for pk in &dup_pub_keys { + private_input.extend_from_slice(pk); + } for block in &source_blocks { private_input.extend_from_slice(block); } @@ -381,7 +351,7 @@ pub fn aggregate_merge( } AggregatedSigs { - signer_indices, + pub_keys: global_pub_keys, proof: execution_proof.proof, bytecode_point, metadata: execution_proof.metadata, diff --git a/minimal_zkVM.pdf b/minimal_zkVM.pdf index c7e1843bee0d59eca7ace7e7e031a8c4d4da954e..802c677dfca41649f9c2abfbbb25cc6022ba321d 100644 GIT binary patch delta 158469 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 z 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 delta 166128 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

h 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 diff --git a/misc/minimal_zkVM.tex b/misc/minimal_zkVM.tex index 136355fc..8ee83940 100644 --- a/misc/minimal_zkVM.tex +++ b/misc/minimal_zkVM.tex @@ -795,9 +795,9 @@ \subsection{Simple stacking of multilinear polynomials} \section{Recursive Aggregation}\label{sec:recursive-aggregation} -The recursive aggregation program (see Figure~\ref{fig:recursive-aggregation}) takes $n_{\text{sigs}}$ signers and partitions them into $n_{\text{rec}} + 1$ sources: one \textbf{direct source} whose signatures are verified explicitly, and $n_{\text{rec}}$ \textbf{recursive sources}, each accompanied by a sub-proof that is recursively verified. +The recursive aggregation program (see Figure~\ref{fig:recursive-aggregation}) attests that a set of public keys have valid signatures for a given message. It partitions the signers into $n_{\text{rec}} + 1$ sources: one \textbf{direct source} whose XMSS signatures are verified explicitly, and $n_{\text{rec}} \geq 0$ \textbf{recursive sources}, each accompanied by a sub-proof that is recursively verified. -For each recursive source, the program runs the leanVM verifier on the provided sub-proof, confirming that the sub-proof itself is a valid recursive aggregation proof covering the source's signers. +For each recursive source, the program runs the leanVM verifier on the provided sub-proof, confirming that the sub-proof itself is a valid recursive aggregation proof covering the source's signers. When $n_{\text{rec}} = 0$, the program simply verifies all signatures directly. \subsection{Bytecode evaluation claims}\label{sec:bytecode-reduction} @@ -820,60 +820,22 @@ \subsection{Bytecode evaluation claims}\label{sec:bytecode-reduction} \subsection{Signer partitioning}\label{sec:signer-partitioning} -\subsubsection{Trivial partitioning} +\emph{ +In the following, we assume the message being signed is common to all signers (typically the case at Ethereum's consensus layer), but the scheme can be naturally adapted to distinct messages.} -In the most straightforward approach, the aggregation program takes as input a list of public keys, and a mesage. In a loop, each public key is either directly verified (direct source) or assigned to one of the $n_{\text{rec}}$ recursive sources. Then, the program verifies each recursive source accordingly (with the same message). - -\begin{itemize} - \item Pros: simplicity - \item Cons: performance bottleneck in the final steps of aggregation when there are a lot of signers (think more than $2^{14}$) -\end{itemize} - -If performance allows, this approach should be preferred. - -\subsubsection{Using a registry of signers} - -\emph{When the set of signers is large, but is known in advance (specifically: Ethereum's consensus layer), a potentially more efficient approach is possible, yet more complex.} -\vspace{5mm} - - -All public keys are stored in a Merkle tree (the \emph{public-key registry}). Signers are identified by their \emph{index} in this registry (rather than using a bitfield). - -For the direct source, the program checks each signature and verifies a Merkle inclusion proof that their public key belongs to the registry. +\vspace{3mm} -Each aggregated signature attests to a set of $n_{\text{sigs}}$ signer indices from the public-key registry. The $n_{\text{rec}} + 1$ sources (one direct source and $n_{\text{rec}}$ recursive sources) may \emph{overlap}: a signer can appear in multiple sources. The program must verify that the claimed global set included in the union of all sources. +Consider an aggregation of $n_{\text{sigs}}$ (distinct) signatures. The $n_{\text{sigs}}$ (distinct) public keys are part of the "public input" in memory. The aggregation program must ensure that each public key is verified by at least one of the $1 + n_{\text{rec}}$ sources (duplications allowed: some public keys may be verified by multiple sources). -\vspace{2mm} +Let $n_{\text{dup}}$ be the total number of duplicated public keys across sources, counted with multiplicity. To ensure ensure valid partionning, we use the following algorithm: -The (untrusted) prover hints three kinds of index lists: \begin{itemize} - \item \textbf{Global indices} $G$: the deduplicated list of all signer indices attested by this proof. - \item \textbf{Duplicate indices} $D$: each index appearing in $k > 1$ sources contributes $k - 1$ copies to $D$. - \item \textbf{Source indices} $S_s$ for each source $s \in \{0, \dots, n_{\text{rec}}\}$. + \item Initialize a counter $c \gets 0$. + \item Initialize a (write-once) array $B$ of size $n_{\text{total}} = n_{\text{sigs}} + n_{\text{dup}}$. + \item For each source $s$, for each signature index $i \in [0, n_{\text{total}})$ verified by $s$, write $B[i] \gets c$ and increment $c$. + \item At the end, assert $c = n_{\text{total}}$. \end{itemize} -A constraint asserts $|G| + |D| = \sum_{s=0}^{n_{\text{rec}}} |S_s|$. - -The multiset identity to enforce is: -$$G \cup D \;=\; \bigcup_{s=0}^{n_{\text{rec}}} S_s$$ - -\textbf{Index hashing.} All these $2 + n_{\text{rec}}$ lists are hashed: $H(G)$, $H(D)$, and $(H(S_s))_{s=0}^{n_{\text{rec}}}$. -$H(G)$ is written to the public input (outer proof), and each $H(S_s)$ is written to the public input of the corresponding inner proof. - - -\textbf{Challenge derivation.} By hashing together $H(G)$, $H(D)$, and $(H(S_s))_{s=0}^{n_{\text{rec}}}$, a Fiat--Shamir challenge $\alpha \in \Fq$ is derived. - -\vspace{2mm} - -\textbf{Consistency checks.} For any index list $I = (i_0, \dots, i_{k-1})$ with $i_j \in \Fp$, define the product polynomial $P_I(\alpha) = \prod_{j=0}^{k-1}(\alpha - i_j) \in \Fq$. The program evaluates both sides and asserts: -$$P_G(\alpha) \cdot P_D(\alpha) = \prod_{s=0}^{n_{\text{rec}}} P_{S_s}(\alpha)$$ - -Soundness of this argument is $(|G| + |D|)/q$, by the Schwartz--Zippel lemma. - -\vspace{5mm} - -\emph{The current implementation uses this signature registry, TODO can we use the trivial partioning instead (without too much performance overhead)?} - \clearpage \bibliographystyle{IEEEtran} \bibliography{bibliography} From 4cc4acfb10e00e96f51b721c5a91b26a5e9db36d Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 18:51:42 +0400 Subject: [PATCH 07/17] rate --- crates/rec_aggregation/src/benchmark.rs | 46 +++++++++++++++++-------- crates/rec_aggregation/src/lib.rs | 5 ++- 2 files changed, 36 insertions(+), 15 deletions(-) diff --git a/crates/rec_aggregation/src/benchmark.rs b/crates/rec_aggregation/src/benchmark.rs index c8c50168..5e6e9f66 100644 --- a/crates/rec_aggregation/src/benchmark.rs +++ b/crates/rec_aggregation/src/benchmark.rs @@ -192,15 +192,15 @@ fn build_tree_descs( let is_first = i == 0; let (p, cp, pp, pcp) = if is_first { ( - format!("{}{}┌──▸ {}", child_prefix, s::DRK, s::R), + format!("{}{}┌──▸{} ", child_prefix, s::PUR, s::R), format!("{} ", child_prefix), format!("{}┌──▸ ", plain_child_prefix), format!("{} ", plain_child_prefix), ) } else { ( - format!("{}{}├──▸ {}", child_prefix, s::DRK, s::R), - format!("{}{}│ {}", child_prefix, s::DRK, s::R), + format!("{}{}├──▸{} ", child_prefix, s::PUR, s::R), + format!("{}{}│ {} ", child_prefix, s::PUR, s::R), format!("{}├──▸ ", plain_child_prefix), format!("{}│ ", plain_child_prefix), ) @@ -209,8 +209,11 @@ fn build_tree_descs( } // Then the node itself (below its children). - let desc = format!("{}{}{}{} {}", prefix, icon_color, icon, s::R, detail,); - let plain = format!("{}{} {}", plain_prefix, icon, plain_detail); + let inv_rate = 1 << topology.log_inv_rate; + let rate_tag = format!(" {}R=1/{}{}", s::D, inv_rate, s::R); + let plain_rate_tag = format!(" R=1/{}", inv_rate); + let desc = format!("{}{}{}{} {}{}", prefix, icon_color, icon, s::R, detail, rate_tag,); + let plain = format!("{}{} {}{}", plain_prefix, icon, plain_detail, plain_rate_tag); plain_lens.push(plain.chars().count()); descs.push(desc); } @@ -225,7 +228,6 @@ fn build_aggregation( pub_keys: &[XmssPublicKey], signatures: &[XmssSignature], overlap: usize, - log_inv_rate: usize, prox_gaps_conjecture: bool, tracing: bool, ) -> AggregatedSigs { @@ -248,7 +250,6 @@ fn build_aggregation( &pub_keys[child_start..child_start + child_count], &signatures[child_start..child_start + child_count], overlap, - log_inv_rate, prox_gaps_conjecture, tracing, ); @@ -267,7 +268,7 @@ fn build_aggregation( message, slot, overlap, - log_inv_rate, + topology.log_inv_rate, prox_gaps_conjecture, tracing, ); @@ -279,7 +280,7 @@ fn build_aggregation( if !tracing { let own_display_index = display_index + count_nodes(topology) - 1; - let proof_kib = result.proof.len() * F::bits() / (8 * 1024); + let proof_kib = result.compressed_proof_len_fe * F::bits() / (8 * 1024); display.update_node( own_display_index, NodeStats { @@ -299,7 +300,6 @@ fn build_aggregation( pub fn run_aggregation_benchmark( topology: &AggregationTopology, overlap: usize, - log_inv_rate: usize, prox_gaps_conjecture: bool, tracing: bool, ) { @@ -358,13 +358,19 @@ pub fn run_aggregation_benchmark( &pub_keys, &signatures, overlap, - log_inv_rate, prox_gaps_conjecture, tracing, ); // Verify root proof - verify_aggregation(&aggregated_sigs, &message, slot, log_inv_rate, prox_gaps_conjecture).unwrap(); + verify_aggregation( + &aggregated_sigs, + &message, + slot, + topology.log_inv_rate, + prox_gaps_conjecture, + ) + .unwrap(); } #[test] @@ -373,17 +379,25 @@ fn test_recursive_aggregation() { raw_xmss: 0, children: vec![ AggregationTopology { - raw_xmss: 0, + raw_xmss: 50, children: vec![ AggregationTopology { raw_xmss: 1350, children: vec![], + log_inv_rate: 1, + }, + AggregationTopology { + raw_xmss: 1350, + children: vec![], + log_inv_rate: 1, }, AggregationTopology { raw_xmss: 1350, children: vec![], + log_inv_rate: 1, }, ], + log_inv_rate: 2, }, AggregationTopology { raw_xmss: 0, @@ -391,14 +405,18 @@ fn test_recursive_aggregation() { AggregationTopology { raw_xmss: 1350, children: vec![], + log_inv_rate: 2, }, AggregationTopology { raw_xmss: 1350, children: vec![], + log_inv_rate: 2, }, ], + log_inv_rate: 2, }, ], + log_inv_rate: 2, }; - run_aggregation_benchmark(&topology, 5, 2, false, false); + run_aggregation_benchmark(&topology, 5, false, false); } diff --git a/crates/rec_aggregation/src/lib.rs b/crates/rec_aggregation/src/lib.rs index 8c04b25a..c9ffa8ae 100644 --- a/crates/rec_aggregation/src/lib.rs +++ b/crates/rec_aggregation/src/lib.rs @@ -1,7 +1,7 @@ #![cfg_attr(not(test), allow(unused_crate_dependencies))] -use lean_prover::{default_whir_config, verify_execution::ProofVerificationDetails}; use lean_prover::prove_execution::prove_execution; use lean_prover::verify_execution::verify_execution; +use lean_prover::{default_whir_config, verify_execution::ProofVerificationDetails}; use lean_vm::*; use multilinear_toolkit::prelude::*; use tracing::instrument; @@ -20,6 +20,7 @@ const N_MERKLE_CHUNKS_FOR_SLOT: usize = LOG_LIFETIME / MERKLE_LEVELS_PER_CHUNK_F pub struct AggregationTopology { pub raw_xmss: usize, pub children: Vec, + pub log_inv_rate: usize, } pub(crate) fn count_signers(topology: &AggregationTopology, overlap: usize) -> usize { @@ -83,6 +84,7 @@ fn encode_xmss_signature(sig: &XmssSignature) -> Vec { pub struct AggregatedSigs { pub pub_keys: Vec<[F; DIGEST_LEN]>, pub proof: Vec, + pub compressed_proof_len_fe: usize, pub bytecode_point: Option>, pub metadata: ExecutionMetadata, } @@ -353,6 +355,7 @@ pub fn aggregate( AggregatedSigs { pub_keys: global_pub_keys, proof: execution_proof.proof, + compressed_proof_len_fe: execution_proof.proof_size_fe, bytecode_point, metadata: execution_proof.metadata, } From 399e848620d06680548a37b5cb41ecd7b3fb278a Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 19:11:35 +0400 Subject: [PATCH 08/17] .... use opti --- crates/rec_aggregation/main.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/crates/rec_aggregation/main.py b/crates/rec_aggregation/main.py index fd27d7bf..159d3a4a 100644 --- a/crates/rec_aggregation/main.py +++ b/crates/rec_aggregation/main.py @@ -86,8 +86,7 @@ def main(): poseidon16(pk0, pk1, running_hash) # Remaining pubkeys - for j_shift in dynamic_unroll(0, n_sub-2, log2_ceil(MAX_N_SIGS)): - j = j_shift + 2 # TODO allow dynamic_unroll to start from nonzero + for j in dynamic_unroll(2, n_sub, log2_ceil(MAX_N_SIGS)): idx = sub_indices[j] assert idx < n_total buffer[idx] = counter From 3c00c8f40d430c8fac99ae3b77df5eef05def733 Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 19:23:34 +0400 Subject: [PATCH 09/17] xmss_poseidons_16_precomputed --- crates/rec_aggregation/src/lib.rs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/crates/rec_aggregation/src/lib.rs b/crates/rec_aggregation/src/lib.rs index c9ffa8ae..1b258e66 100644 --- a/crates/rec_aggregation/src/lib.rs +++ b/crates/rec_aggregation/src/lib.rs @@ -6,7 +6,10 @@ use lean_vm::*; use multilinear_toolkit::prelude::*; use tracing::instrument; use utils::{build_prover_state, poseidon_compress_slice, poseidon16_compress_pair}; -use xmss::{LOG_LIFETIME, MESSAGE_LEN_FE, SIG_SIZE_FE, XmssPublicKey, XmssSignature, slot_to_field_elements}; +use xmss::{ + LOG_LIFETIME, MESSAGE_LEN_FE, Poseidon16History, SIG_SIZE_FE, XmssPublicKey, XmssSignature, slot_to_field_elements, + xmss_verify_with_poseidon_trace, +}; use crate::compilation::get_aggregation_bytecode; @@ -340,10 +343,13 @@ pub fn aggregate( } private_input.extend_from_slice(&final_sumcheck_transcript); + // TODO precompute all the other poseidons + let xmss_poseidons_16_precomputed = precompute_poseidons(raw_signers, message); + let execution_proof = prove_execution( bytecode, (&non_reserved_public_input, &private_input), - &vec![], + &xmss_poseidons_16_precomputed, &whir_config, false, ); @@ -382,3 +388,15 @@ pub fn hash_bytecode_claims(claims: &[Evaluation]) -> [F; DIGEST_LEN] { } running_hash } + +#[instrument(skip_all)] +fn precompute_poseidons( + raw_signers: &[(XmssPublicKey, XmssSignature)], + message: &[F; MESSAGE_LEN_FE], +) -> Poseidon16History { + let traces: Vec<_> = raw_signers + .par_iter() + .map(|(pub_key, sig)| xmss_verify_with_poseidon_trace(pub_key, message, sig).unwrap()) + .collect(); + traces.into_par_iter().flatten().collect() +} From fd1d8462ac10bf14be9590587754418d5a1412db Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 19:24:14 +0400 Subject: [PATCH 10/17] wip --- crates/rec_aggregation/main.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/crates/rec_aggregation/main.py b/crates/rec_aggregation/main.py index 159d3a4a..704f56fc 100644 --- a/crates/rec_aggregation/main.py +++ b/crates/rec_aggregation/main.py @@ -46,15 +46,13 @@ def main(): raw_indices = source_0 + 1 raw_sigs = raw_indices + n_raw_xmss - for i in range(0, n_raw_xmss): + for i in range(0, n_raw_xmss): # TODO dynamic unroll ? + # mark buffer for partition verification idx = raw_indices[i] assert idx < n_total buffer[idx] = counter counter += 1 - - # Verify raw XMSS signatures - for i in range(0, n_raw_xmss): - idx = raw_indices[i] + # Verify raw XMSS signatures pk = all_pubkeys + idx * DIGEST_LEN sig = raw_sigs + i * SIG_SIZE xmss_verify(pk, message, sig, slot_lo, slot_hi, merkle_chunks_for_slot) From 3a885ae4cc4d1839db808e3ba49f01ecf996e226 Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 19:28:35 +0400 Subject: [PATCH 11/17] sanity check --- crates/rec_aggregation/main.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/rec_aggregation/main.py b/crates/rec_aggregation/main.py index 704f56fc..4cc3c291 100644 --- a/crates/rec_aggregation/main.py +++ b/crates/rec_aggregation/main.py @@ -2,12 +2,17 @@ from xmss_aggregate import * MAX_RECURSIONS = 16 -MAX_N_SIGS = 2**16 # TODO increase + +# TODO increase (we would need a bigger minimal memory size, totally doable) +MAX_N_SIGS = 2**15 +MAX_N_DUPS = 2**15 + INNER_PUB_MEM_SIZE = 2 ** INNER_PUBLIC_MEMORY_LOG_SIZE BYTECODE_CLAIM_OFFSET = 1 + DIGEST_LEN + 2 + MESSAGE_LEN + N_MERKLE_CHUNKS def main(): + debug_assert(MAX_N_SIGS + MAX_N_DUPS <= 2**16) # because of range checking, TODO increase pub_mem = NONRESERVED_PROGRAM_INPUT_START n_sigs = pub_mem[0] assert 1 < n_sigs From a539869d63d6600f67ca60649c1a814498d0532d Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 19:43:26 +0400 Subject: [PATCH 12/17] better bench --- crates/rec_aggregation/src/benchmark.rs | 75 ++++++++++++------------- 1 file changed, 35 insertions(+), 40 deletions(-) diff --git a/crates/rec_aggregation/src/benchmark.rs b/crates/rec_aggregation/src/benchmark.rs index 5e6e9f66..668da587 100644 --- a/crates/rec_aggregation/src/benchmark.rs +++ b/crates/rec_aggregation/src/benchmark.rs @@ -376,47 +376,42 @@ pub fn run_aggregation_benchmark( #[test] fn test_recursive_aggregation() { let topology = AggregationTopology { - raw_xmss: 0, - children: vec![ - AggregationTopology { - raw_xmss: 50, - children: vec![ - AggregationTopology { - raw_xmss: 1350, - children: vec![], + raw_xmss: 10, + children: vec![AggregationTopology { + raw_xmss: 0, + children: vec![ + AggregationTopology { + raw_xmss: 10, + children: vec![AggregationTopology { + raw_xmss: 25, + children: vec![ + AggregationTopology { + raw_xmss: 1350, + children: vec![], + log_inv_rate: 1, + }; + 3 + ], log_inv_rate: 1, - }, - AggregationTopology { - raw_xmss: 1350, - children: vec![], - log_inv_rate: 1, - }, - AggregationTopology { - raw_xmss: 1350, - children: vec![], - log_inv_rate: 1, - }, - ], - log_inv_rate: 2, - }, - AggregationTopology { - raw_xmss: 0, - children: vec![ - AggregationTopology { - raw_xmss: 1350, - children: vec![], - log_inv_rate: 2, - }, - AggregationTopology { - raw_xmss: 1350, - children: vec![], - log_inv_rate: 2, - }, - ], - log_inv_rate: 2, - }, - ], - log_inv_rate: 2, + }], + log_inv_rate: 3, + }, + AggregationTopology { + raw_xmss: 0, + children: vec![ + AggregationTopology { + raw_xmss: 1350, + children: vec![], + log_inv_rate: 2, + }; + 2 + ], + log_inv_rate: 2, + }, + ], + log_inv_rate: 1, + }], + log_inv_rate: 4, }; run_aggregation_benchmark(&topology, 5, false, false); } From 03c06e84968c4366a533743d8f44a3ea2aed6afa Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 20:04:14 +0400 Subject: [PATCH 13/17] main.rs --- crates/rec_aggregation/src/benchmark.rs | 96 +++++++++++++++++-------- src/main.rs | 58 +++++++++++++++ 2 files changed, 125 insertions(+), 29 deletions(-) diff --git a/crates/rec_aggregation/src/benchmark.rs b/crates/rec_aggregation/src/benchmark.rs index 668da587..ab74e91f 100644 --- a/crates/rec_aggregation/src/benchmark.rs +++ b/crates/rec_aggregation/src/benchmark.rs @@ -37,6 +37,7 @@ struct NodeStats { memory: usize, poseidons: usize, dots: usize, + n_xmss: Option, } struct LiveTree { @@ -64,7 +65,7 @@ impl LiveTree { let pad = self.max_plain_len + 6; // desc + dots + " ▸ " let spacer = " ".repeat(pad); format!( - "{}{}{:>8} {:>8} {:>10} {:>10} {:>10} {:>10}{}", + "{}{}{:>10} {:>8} {:>10} {:>10} {:>10} {:>10}{}", s::D, spacer, "time", @@ -83,33 +84,42 @@ impl LiveTree { let dots = format!("{}{}{}", s::DRK, "·".repeat(gap), s::R); match &self.statuses[i] { None => desc.to_string(), - Some(st) => format!( - "{} {} {}▸{} {}{}{:>7.3}s{} {}{}{:>4} KiB{} {}{:>10}{} {}{:>10}{} {}{:>10}{} {}{:>10}{}", - desc, - dots, - s::DRK, - s::R, - s::ORG, - s::B, - st.time_secs, - s::R, - s::CYN, - s::B, - st.proof_kib, - s::R, - s::WHT, - pretty_integer(st.cycles), - s::R, - s::WHT, - pretty_integer(st.memory), - s::R, - s::WHT, - pretty_integer(st.poseidons), - s::R, - s::WHT, - pretty_integer(st.dots), - s::R, - ), + Some(st) => { + // Both branches produce exactly 10 visible characters. + let time_col = match st.n_xmss { + Some(n) => { + let throughput = n as f64 / st.time_secs; + // " 536 sig/s" = 10 chars + format!("{}{}{:>4.0} sig/s{}", s::ORG, s::B, throughput, s::R) + } + // " 1.815s" = 10 chars + None => format!("{}{}{:>9.3}s{}", s::ORG, s::B, st.time_secs, s::R), + }; + format!( + "{} {} {}▸{} {} {}{}{:>4} KiB{} {}{:>10}{} {}{:>10}{} {}{:>10}{} {}{:>10}{}", + desc, + dots, + s::DRK, + s::R, + time_col, + s::CYN, + s::B, + st.proof_kib, + s::R, + s::WHT, + pretty_integer(st.cycles), + s::R, + s::WHT, + pretty_integer(st.memory), + s::R, + s::WHT, + pretty_integer(st.poseidons), + s::R, + s::WHT, + pretty_integer(st.dots), + s::R, + ) + } } } @@ -281,6 +291,7 @@ fn build_aggregation( if !tracing { let own_display_index = display_index + count_nodes(topology) - 1; let proof_kib = result.compressed_proof_len_fe * F::bits() / (8 * 1024); + let is_leaf = topology.children.is_empty(); display.update_node( own_display_index, NodeStats { @@ -290,6 +301,7 @@ fn build_aggregation( memory: result.metadata.memory, poseidons: result.metadata.n_poseidons, dots: result.metadata.n_dot_products, + n_xmss: if is_leaf { Some(topology.raw_xmss) } else { None }, }, ); } @@ -374,7 +386,8 @@ pub fn run_aggregation_benchmark( } #[test] -fn test_recursive_aggregation() { +#[ignore] +fn test_complex_recursive_aggregation() { let topology = AggregationTopology { raw_xmss: 10, children: vec![AggregationTopology { @@ -415,3 +428,28 @@ fn test_recursive_aggregation() { }; run_aggregation_benchmark(&topology, 5, false, false); } + +#[test] +fn test_recursive_aggregation() { + let topology = AggregationTopology { + raw_xmss: 10, + children: vec![AggregationTopology { + raw_xmss: 25, + children: vec![ + AggregationTopology { + raw_xmss: 100, + children: vec![], + log_inv_rate: 2, + }, + AggregationTopology { + raw_xmss: 40, + children: vec![], + log_inv_rate: 2, + }, + ], + log_inv_rate: 1, + }], + log_inv_rate: 1, + }; + run_aggregation_benchmark(&topology, 5, false, false); +} diff --git a/src/main.rs b/src/main.rs index 64a09795..fe082fef 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,35 @@ use clap::Parser; +use rec_aggregation::{AggregationTopology, benchmark::run_aggregation_benchmark}; mod prove_poseidons; use crate::prove_poseidons::benchmark_prove_poseidon_16; #[derive(Parser)] enum Cli { + #[command(about = "Aggregate XMSS")] + Xmss { + #[arg(long)] + n_signatures: usize, + #[arg(long, help = "log(1/rate) in WHIR", default_value = "1", short = 'r')] + log_inv_rate: usize, + // TODO use the latest results (i.e. update the conjecture) + #[arg(long, help = "Uses Conjecture 4.12 from WHIR (up to capacity)")] + prox_gaps_conjecture: bool, + #[arg(long, help = "Enable tracing")] + tracing: bool, + }, + #[command(about = "Run n->1 recursion")] + Recursion { + #[arg(long, default_value = "1", help = "Number of recursive proofs to aggregate")] + n: usize, + #[arg(long, help = "log(1/rate) in WHIR", default_value = "2", short = 'r')] + log_inv_rate: usize, + // TODO use the latest results (i.e. update the conjecture) + #[arg(long, help = "Uses Conjecture 4.12 from WHIR (up to capacity)")] + prox_gaps_conjecture: bool, + #[arg(long, help = "Enable tracing")] + tracing: bool, + }, #[command(about = "Prove validity of Poseidon2 permutations over 16 field elements")] Poseidon { #[arg(long, help = "log2(number of Poseidons)")] @@ -18,6 +43,39 @@ fn main() { let cli = Cli::parse(); match cli { + Cli::Xmss { + n_signatures, + log_inv_rate, + prox_gaps_conjecture, + tracing, + } => { + let topology = AggregationTopology { + raw_xmss: n_signatures, + children: vec![], + log_inv_rate, + }; + run_aggregation_benchmark(&topology, 0, prox_gaps_conjecture, tracing); + } + Cli::Recursion { + n, + log_inv_rate, + prox_gaps_conjecture, + tracing, + } => { + let topology = AggregationTopology { + raw_xmss: 0, + children: vec![ + AggregationTopology { + raw_xmss: 675, + children: vec![], + log_inv_rate, + }; + n + ], + log_inv_rate, + }; + run_aggregation_benchmark(&topology, 0, prox_gaps_conjecture, tracing); + } Cli::Poseidon { log_n_perms: log_count, tracing, From b2d5701422ce2a6179f116a2c7ffde48241b41ce Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sat, 14 Feb 2026 23:13:54 +0400 Subject: [PATCH 14/17] global cleaning --- crates/lean_prover/src/test_zkvm.rs | 15 +- crates/lean_prover/src/trace_gen.rs | 6 +- crates/lean_prover/src/verify_execution.rs | 4 +- crates/rec_aggregation/src/benchmark.rs | 218 +++++++++--------- crates/rec_aggregation/src/compilation.rs | 12 +- crates/rec_aggregation/src/lib.rs | 127 +++++----- .../test_data/benchmark_signers.json | 1 + crates/xmss/src/wots.rs | 10 +- crates/xmss/src/xmss.rs | 16 +- src/lib.rs | 162 ++++++------- src/main.rs | 47 ++++ 11 files changed, 346 insertions(+), 272 deletions(-) create mode 100644 crates/rec_aggregation/test_data/benchmark_signers.json diff --git a/crates/lean_prover/src/test_zkvm.rs b/crates/lean_prover/src/test_zkvm.rs index d78b3f7f..6e2048ca 100644 --- a/crates/lean_prover/src/test_zkvm.rs +++ b/crates/lean_prover/src/test_zkvm.rs @@ -158,13 +158,7 @@ fn test_zk_vm_helper(program_str: &str, (public_input, private_input): (&[F], &[ false, ); let proof_time = time.elapsed(); - verify_execution( - &bytecode, - public_input, - proof.proof.clone(), - default_whir_config(starting_log_inv_rate, false), - ) - .unwrap(); + verify_execution(&bytecode, public_input, proof.proof.clone(), false).unwrap(); println!("{}", proof.metadata.display()); println!("Proof time: {:.3} s", proof_time.as_secs_f32()); @@ -179,12 +173,7 @@ fn test_zk_vm_helper(program_str: &str, (public_input, private_input): (&[F], &[ } let mut fuzzed_proof = proof.proof.clone(); fuzzed_proof[i] += F::ONE; - let verify_result = verify_execution( - &bytecode, - public_input, - fuzzed_proof, - default_whir_config(starting_log_inv_rate, false), - ); + let verify_result = verify_execution(&bytecode, public_input, fuzzed_proof, false); assert!(verify_result.is_err(), "Fuzzing failed at index {}", i); } } diff --git a/crates/lean_prover/src/trace_gen.rs b/crates/lean_prover/src/trace_gen.rs index 16f03773..9427e178 100644 --- a/crates/lean_prover/src/trace_gen.rs +++ b/crates/lean_prover/src/trace_gen.rs @@ -38,13 +38,13 @@ pub fn get_execution_trace(bytecode: &Bytecode, execution_result: ExecutionResul // flag_a == 0 addr_a = F::from_usize(fp) + field_repr[instr_idx(COL_OPERAND_A)]; // fp + operand_a } - let value_a = memory.0[addr_a.to_usize()].unwrap_or_default(); + let value_a = memory.0.get(addr_a.to_usize()).copied().flatten().unwrap_or_default(); let mut addr_b = F::ZERO; if field_repr[instr_idx(COL_FLAG_B)].is_zero() { // flag_b == 0 addr_b = F::from_usize(fp) + field_repr[instr_idx(COL_OPERAND_B)]; // fp + operand_b } - let value_b = memory.0[addr_b.to_usize()].unwrap_or_default(); + let value_b = memory.0.get(addr_b.to_usize()).copied().flatten().unwrap_or_default(); let mut addr_c = F::ZERO; if field_repr[instr_idx(COL_FLAG_C)].is_zero() { @@ -55,7 +55,7 @@ pub fn get_execution_trace(bytecode: &Bytecode, execution_result: ExecutionResul assert_eq!(field_repr[instr_idx(COL_OPERAND_C)], operand_c); // debug purpose addr_c = value_a + operand_c; } - let value_c = memory.0[addr_c.to_usize()].unwrap_or_default(); + let value_c = memory.0.get(addr_c.to_usize()).copied().flatten().unwrap_or_default(); for (j, field) in field_repr.iter().enumerate() { *trace_row[j + N_RUNTIME_COLUMNS] = *field; diff --git a/crates/lean_prover/src/verify_execution.rs b/crates/lean_prover/src/verify_execution.rs index 5da589ea..79472142 100644 --- a/crates/lean_prover/src/verify_execution.rs +++ b/crates/lean_prover/src/verify_execution.rs @@ -16,7 +16,7 @@ pub fn verify_execution( bytecode: &Bytecode, public_input: &[F], proof: Vec, - mut whir_config: WhirConfigBuilder, + prox_gaps_conjecture: bool, ) -> Result { let mut verifier_state = VerifierState::::new(proof, get_poseidon16().clone()); @@ -31,7 +31,7 @@ pub fn verify_execution( if !(MIN_WHIR_LOG_INV_RATE..=MAX_WHIR_LOG_INV_RATE).contains(&log_inv_rate) { return Err(ProofError::InvalidProof); } - whir_config.starting_log_inv_rate = log_inv_rate; + let whir_config = default_whir_config(log_inv_rate, prox_gaps_conjecture); for (table, &n_vars) in &table_n_vars { if n_vars < MIN_LOG_N_ROWS_PER_TABLE { return Err(ProofError::InvalidProof); diff --git a/crates/rec_aggregation/src/benchmark.rs b/crates/rec_aggregation/src/benchmark.rs index ab74e91f..4a40842d 100644 --- a/crates/rec_aggregation/src/benchmark.rs +++ b/crates/rec_aggregation/src/benchmark.rs @@ -1,4 +1,5 @@ use std::io::{self, Write}; +use std::path::PathBuf; use std::time::Instant; use lean_vm::*; @@ -6,15 +7,95 @@ use multilinear_toolkit::prelude::*; use rand::rngs::StdRng; use rand::{Rng, SeedableRng}; use utils::pretty_integer; -use xmss::{MESSAGE_LEN_FE, XmssPublicKey, XmssSignature}; +use xmss::{ + MESSAGE_LEN_FE, RANDOMNESS_LEN_FE, TRUNCATED_MERKLE_ROOT_LEN_FE, XmssPublicKey, XmssSecretKey, XmssSignature, + find_randomness_for_wots_encoding, xmss_sign_with_randomness, +}; use crate::compilation::{get_aggregation_bytecode, init_aggregation_bytecode}; use crate::{AggregatedSigs, AggregationTopology, aggregate, count_signers, verify_aggregation}; +pub const BENCHMARK_SLOT: u32 = 1111; + +pub fn message_for_benchmark() -> [F; MESSAGE_LEN_FE] { + std::array::from_fn(F::from_usize) +} + fn count_nodes(topology: &AggregationTopology) -> usize { 1 + topology.children.iter().map(count_nodes).sum::() } +// --- Signature cache --- +// +// Stores the WOTS randomness per signer as a flat JSON array. +// Everything else is deterministic from StdRng::seed_from_u64(index). + +fn cache_file_path() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("test_data/benchmark_signers.json") +} + +fn benchmark_keygen(rng: &mut R) -> (XmssSecretKey, XmssPublicKey) { + let key_start = BENCHMARK_SLOT - rng.random_range(0..3); + let key_end = BENCHMARK_SLOT + rng.random_range(1..3); + xmss::xmss_key_gen(rng.random(), key_start, key_end).unwrap() +} + +pub fn find_randomness_for_benchmark(index: usize) -> [F; RANDOMNESS_LEN_FE] { + let message = message_for_benchmark(); + let mut rng = StdRng::seed_from_u64(index as u64); + let (_sk, pk) = benchmark_keygen(&mut rng); + let truncated: [F; TRUNCATED_MERKLE_ROOT_LEN_FE] = + pk.merkle_root[..TRUNCATED_MERKLE_ROOT_LEN_FE].try_into().unwrap(); + let (randomness, _, _) = find_randomness_for_wots_encoding(&message, BENCHMARK_SLOT, &truncated, &mut rng); + randomness +} + +pub fn reconstruct_signer_for_benchmark( + index: usize, + randomness: [F; RANDOMNESS_LEN_FE], +) -> (XmssPublicKey, XmssSignature) { + let message = message_for_benchmark(); + let slot = BENCHMARK_SLOT; + let mut rng = StdRng::seed_from_u64(index as u64); + let (sk, pk) = benchmark_keygen(&mut rng); + let sig = xmss_sign_with_randomness(&sk, &message, slot, randomness).unwrap(); + (pk, sig) +} + +fn write_cache(randomnesses: &[[F; RANDOMNESS_LEN_FE]]) { + let path = cache_file_path(); + if let Some(parent) = path.parent() { + std::fs::create_dir_all(parent).unwrap(); + } + let json = format!( + "[{}]", + randomnesses + .iter() + .flat_map(|r| r.iter().map(|f| f.to_string())) + .collect::>() + .join(",") + ); + std::fs::write(&path, json).unwrap(); + println!("Wrote {} entries to {}", randomnesses.len(), path.display()); +} + +fn read_cache() -> Vec<[F; RANDOMNESS_LEN_FE]> { + let path = cache_file_path(); + let text = std::fs::read_to_string(&path) + .unwrap_or_else(|_| panic!("cache not found, run generate_benchmark_signers_cache")); + let text = text.trim(); + let inner = text.strip_prefix('[').unwrap().strip_suffix(']').unwrap(); + let values: Vec = inner + .split(',') + .map(|s| s.trim().parse().expect("invalid value in cache")) + .collect(); + assert!(values.len().is_multiple_of(RANDOMNESS_LEN_FE),); + values + .chunks_exact(RANDOMNESS_LEN_FE) + .map(|chunk| std::array::from_fn(|i| F::from_u32(chunk[i]))) + .collect() +} + mod s { pub const R: &str = "\x1b[0m"; pub const B: &str = "\x1b[1m"; @@ -149,6 +230,7 @@ impl LiveTree { } } +#[allow(clippy::too_many_arguments)] fn build_tree_descs( topology: &AggregationTopology, overlap: usize, @@ -233,16 +315,16 @@ fn build_aggregation( topology: &AggregationTopology, display_index: usize, display: &mut LiveTree, - message: &[F; MESSAGE_LEN_FE], - slot: u32, pub_keys: &[XmssPublicKey], signatures: &[XmssSignature], overlap: usize, prox_gaps_conjecture: bool, tracing: bool, ) -> AggregatedSigs { + let message = message_for_benchmark(); + let slot = BENCHMARK_SLOT; let raw_count = topology.raw_xmss; - let raw_signers: Vec<(XmssPublicKey, XmssSignature)> = (0..raw_count) + let raw_xmss: Vec<(XmssPublicKey, XmssSignature)> = (0..raw_count) .map(|i| (pub_keys[i].clone(), signatures[i].clone())) .collect(); @@ -255,8 +337,6 @@ fn build_aggregation( child, child_display_index, display, - message, - slot, &pub_keys[child_start..child_start + child_count], &signatures[child_start..child_start + child_count], overlap, @@ -274,10 +354,9 @@ fn build_aggregation( let time = Instant::now(); let result = aggregate( &child_results, - &raw_signers, - message, + raw_xmss, + &message, slot, - overlap, topology.log_inv_rate, prox_gaps_conjecture, tracing, @@ -321,29 +400,14 @@ pub fn run_aggregation_benchmark( precompute_dft_twiddles::(1 << 24); let n_sigs = count_signers(topology, overlap); - let message: [F; MESSAGE_LEN_FE] = (0..MESSAGE_LEN_FE) - .map(F::from_usize) - .collect::>() - .try_into() - .unwrap(); - let slot: u32 = 1111; - - let n_unique = 10.min(n_sigs).max(1); - let pub_keys_and_sigs: Vec<_> = (0..n_unique) + + let cache = read_cache(); + assert!(cache.len() >= n_sigs,); + let paired: Vec<_> = (0..n_sigs) .into_par_iter() - .map(|i| { - let mut rng = StdRng::seed_from_u64(i as u64); - let start = slot - rng.random_range(0..3); - let end = slot + rng.random_range(1..3); - let (sk, pk) = xmss::xmss_key_gen(rng.random(), start, end).unwrap(); - let sig = xmss::xmss_sign(&mut rng, &sk, &message, slot).unwrap(); - xmss::xmss_verify(&pk, &message, &sig).unwrap(); - (pk, sig) - }) + .map(|i| reconstruct_signer_for_benchmark(i, cache[i])) .collect(); - - let pub_keys: Vec = (0..n_sigs).map(|i| pub_keys_and_sigs[i % n_unique].0.clone()).collect(); - let signatures: Vec = (0..n_sigs).map(|i| pub_keys_and_sigs[i % n_unique].1.clone()).collect(); + let (pub_keys, signatures): (Vec<_>, Vec<_>) = paired.into_iter().unzip(); init_aggregation_bytecode(); println!( @@ -365,8 +429,6 @@ pub fn run_aggregation_benchmark( topology, 0, &mut display, - &message, - slot, &pub_keys, &signatures, overlap, @@ -375,81 +437,29 @@ pub fn run_aggregation_benchmark( ); // Verify root proof - verify_aggregation( - &aggregated_sigs, - &message, - slot, - topology.log_inv_rate, - prox_gaps_conjecture, - ) - .unwrap(); + let message = message_for_benchmark(); + verify_aggregation(&aggregated_sigs, &message, BENCHMARK_SLOT, prox_gaps_conjecture).unwrap(); } #[test] #[ignore] -fn test_complex_recursive_aggregation() { - let topology = AggregationTopology { - raw_xmss: 10, - children: vec![AggregationTopology { - raw_xmss: 0, - children: vec![ - AggregationTopology { - raw_xmss: 10, - children: vec![AggregationTopology { - raw_xmss: 25, - children: vec![ - AggregationTopology { - raw_xmss: 1350, - children: vec![], - log_inv_rate: 1, - }; - 3 - ], - log_inv_rate: 1, - }], - log_inv_rate: 3, - }, - AggregationTopology { - raw_xmss: 0, - children: vec![ - AggregationTopology { - raw_xmss: 1350, - children: vec![], - log_inv_rate: 2, - }; - 2 - ], - log_inv_rate: 2, - }, - ], - log_inv_rate: 1, - }], - log_inv_rate: 4, - }; - run_aggregation_benchmark(&topology, 5, false, false); -} +fn generate_benchmark_signers_cache() { + let n_signers = 10_000; -#[test] -fn test_recursive_aggregation() { - let topology = AggregationTopology { - raw_xmss: 10, - children: vec![AggregationTopology { - raw_xmss: 25, - children: vec![ - AggregationTopology { - raw_xmss: 100, - children: vec![], - log_inv_rate: 2, - }, - AggregationTopology { - raw_xmss: 40, - children: vec![], - log_inv_rate: 2, - }, - ], - log_inv_rate: 1, - }], - log_inv_rate: 1, - }; - run_aggregation_benchmark(&topology, 5, false, false); + println!("Finding WOTS randomness for {} signers...", n_signers); + let start = Instant::now(); + let randomnesses: Vec<[F; RANDOMNESS_LEN_FE]> = (0..n_signers) + .into_par_iter() + .map(find_randomness_for_benchmark) + .collect(); + println!("Done in {:.1}s", start.elapsed().as_secs_f64()); + + write_cache(&randomnesses); + + // sanity check: + let message = message_for_benchmark(); + for &i in &[0, 1, n_signers / 2, n_signers - 1] { + let (pk, sig) = reconstruct_signer_for_benchmark(i, randomnesses[i]); + xmss::xmss_verify(&pk, &message, &sig).unwrap(); + } } diff --git a/crates/rec_aggregation/src/compilation.rs b/crates/rec_aggregation/src/compilation.rs index ec687850..3ee68327 100644 --- a/crates/rec_aggregation/src/compilation.rs +++ b/crates/rec_aggregation/src/compilation.rs @@ -32,9 +32,15 @@ pub(crate) fn get_aggregation_bytecode(prox_gaps_conjecture: bool) -> &'static B .unwrap_or_else(|| panic!("call init_aggregation_bytecode() first")) } -pub(crate) fn init_aggregation_bytecode() { - BYTECODE_DEFAULT.get_or_init(|| compile_main_program_self_referential(false)); - BYTECODE_CONJECTURE.get_or_init(|| compile_main_program_self_referential(true)); +pub fn init_aggregation_bytecode() { + rayon::join( + || { + BYTECODE_DEFAULT.get_or_init(|| compile_main_program_self_referential(false)); + }, + || { + BYTECODE_CONJECTURE.get_or_init(|| compile_main_program_self_referential(true)); + }, + ); } fn compile_main_program(inner_program_log_size: usize, prox_gaps_conjecture: bool, bytecode_zero_eval: F) -> Bytecode { diff --git a/crates/rec_aggregation/src/lib.rs b/crates/rec_aggregation/src/lib.rs index 1b258e66..4d0998c9 100644 --- a/crates/rec_aggregation/src/lib.rs +++ b/crates/rec_aggregation/src/lib.rs @@ -11,14 +11,19 @@ use xmss::{ xmss_verify_with_poseidon_trace, }; +use std::collections::HashSet; + use crate::compilation::get_aggregation_bytecode; pub mod benchmark; -pub(crate) mod compilation; +pub mod compilation; const MERKLE_LEVELS_PER_CHUNK_FOR_SLOT: usize = 4; const N_MERKLE_CHUNKS_FOR_SLOT: usize = LOG_LIFETIME / MERKLE_LEVELS_PER_CHUNK_FOR_SLOT; +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct Digest(pub [F; DIGEST_LEN]); + #[derive(Debug, Clone)] pub struct AggregationTopology { pub raw_xmss: usize, @@ -32,9 +37,9 @@ pub(crate) fn count_signers(topology: &AggregationTopology, overlap: usize) -> u topology.raw_xmss + child_count - overlap * n_overlaps } -pub fn slice_hash_pubkeys(pub_keys: &[[F; DIGEST_LEN]]) -> [F; DIGEST_LEN] { - let flat: Vec = pub_keys.iter().flat_map(|pk| pk.iter().copied()).collect(); - poseidon_compress_slice(&flat) +pub fn hash_pubkeys(pub_keys: &[Digest]) -> Digest { + let flat: Vec = pub_keys.iter().flat_map(|pk| pk.0.iter().copied()).collect(); + Digest(poseidon_compress_slice(&flat)) } fn compute_merkle_chunks_for_slot(slot: u32) -> Vec { @@ -85,7 +90,7 @@ fn encode_xmss_signature(sig: &XmssSignature) -> Vec { #[derive(Debug)] pub struct AggregatedSigs { - pub pub_keys: Vec<[F; DIGEST_LEN]>, + pub pub_keys: Vec, pub proof: Vec, pub compressed_proof_len_fe: usize, pub bytecode_point: Option>, @@ -113,9 +118,15 @@ impl AggregatedSigs { }; assert_eq!(bytecode_claim_output.len(), bytecode_claim_size); - let slice_hash = slice_hash_pubkeys(&self.pub_keys); + let slice_hash = hash_pubkeys(&self.pub_keys); - build_non_reserved_public_input(self.pub_keys.len(), &slice_hash, message, slot, &bytecode_claim_output) + build_non_reserved_public_input( + self.pub_keys.len(), + &slice_hash.0, + message, + slot, + &bytecode_claim_output, + ) } } @@ -123,66 +134,53 @@ pub fn verify_aggregation( sigs: &AggregatedSigs, message: &[F; MESSAGE_LEN_FE], slot: u32, - log_inv_rate: usize, prox_gaps_conjecture: bool, ) -> Result { - let public_input = sigs.public_input(&message, slot, prox_gaps_conjecture); + if !sigs.pub_keys.is_sorted() { + return Err(ProofError::InvalidProof); + } + let public_input = sigs.public_input(message, slot, prox_gaps_conjecture); let bytecode = get_aggregation_bytecode(prox_gaps_conjecture); - verify_execution( - bytecode, - &public_input, - sigs.proof.clone(), - default_whir_config(log_inv_rate, prox_gaps_conjecture), - ) + verify_execution(bytecode, &public_input, sigs.proof.clone(), prox_gaps_conjecture) } -#[allow(clippy::too_many_arguments)] #[instrument(skip_all)] pub fn aggregate( children: &[AggregatedSigs], - raw_signers: &[(XmssPublicKey, XmssSignature)], + mut raw_xmss: Vec<(XmssPublicKey, XmssSignature)>, message: &[F; MESSAGE_LEN_FE], slot: u32, - overlap: usize, log_inv_rate: usize, prox_gaps_conjecture: bool, tracing: bool, ) -> AggregatedSigs { + raw_xmss.sort_by(|(a, _), (b, _)| Digest(a.merkle_root).cmp(&Digest(b.merkle_root))); + raw_xmss.dedup_by(|(a, _), (b, _)| a.merkle_root == b.merkle_root); + let n_recursions = children.len(); - let raw_count = raw_signers.len(); + let raw_count = raw_xmss.len(); let whir_config = default_whir_config(log_inv_rate, prox_gaps_conjecture); let bytecode = get_aggregation_bytecode(prox_gaps_conjecture); let bytecode_point_n_vars = bytecode.log_size() + log2_ceil_usize(N_INSTRUCTION_COLUMNS); let bytecode_claim_size = (bytecode_point_n_vars + 1) * DIMENSION; - // Build global pub_keys: raw ++ children (with overlap dedup) - let raw_pub_keys: Vec<[F; DIGEST_LEN]> = raw_signers.iter().map(|(pk, _)| pk.merkle_root).collect(); - let mut global_pub_keys = raw_pub_keys; - for (i, child) in children.iter().enumerate() { - if i == 0 { - global_pub_keys.extend_from_slice(&child.pub_keys); - } else { - global_pub_keys.extend_from_slice(&child.pub_keys[overlap..]); - } + // Build global_pub_keys as sorted deduplicated union + let mut global_pub_keys: Vec = raw_xmss.iter().map(|(pk, _)| Digest(pk.merkle_root)).collect(); + for child in children.iter() { + assert!(child.pub_keys.is_sorted(), "child pub_keys must be sorted"); + global_pub_keys.extend_from_slice(&child.pub_keys); } + global_pub_keys.sort(); + global_pub_keys.dedup(); let n_sigs = global_pub_keys.len(); - // Build dup pub_keys (overlap portions of children 1+) - let mut dup_pub_keys: Vec<[F; DIGEST_LEN]> = Vec::new(); - for (i, child) in children.iter().enumerate() { - if i > 0 && overlap > 0 { - dup_pub_keys.extend_from_slice(&child.pub_keys[..overlap]); - } - } - let n_dup = dup_pub_keys.len(); - // Verify child proofs let mut child_pub_inputs: Vec> = vec![]; let mut child_bytecode_evals: Vec> = vec![]; for child in children { let child_pub_input = child.public_input(message, slot, prox_gaps_conjecture); - let verif = verify_execution(bytecode, &child_pub_input, child.proof.clone(), whir_config.clone()).unwrap(); + let verif = verify_execution(bytecode, &child_pub_input, child.proof.clone(), prox_gaps_conjecture).unwrap(); child_bytecode_evals.push(verif.bytecode_evaluation); child_pub_inputs.push(child_pub_input); } @@ -253,9 +251,9 @@ pub fn aggregate( }; // Build public input - let slice_hash = slice_hash_pubkeys(&global_pub_keys); + let slice_hash = hash_pubkeys(&global_pub_keys); let non_reserved_public_input = - build_non_reserved_public_input(n_sigs, &slice_hash, message, slot, &bytecode_claim_output); + build_non_reserved_public_input(n_sigs, &slice_hash.0, message, slot, &bytecode_claim_output); let public_memory = build_public_memory(&non_reserved_public_input); // Build private input @@ -263,42 +261,39 @@ pub fn aggregate( // global_pubkeys, dup_pubkeys, source_blocks..., bytecode_sumcheck_proof] let header_size = n_recursions + 5; let pubkeys_start = public_memory.len() + header_size; - let pubkeys_block_size = n_sigs * DIGEST_LEN + n_dup * DIGEST_LEN; - // Build source blocks + // Build source blocks (also discovers duplicate pub_keys) + let mut claimed: HashSet = HashSet::new(); + let mut dup_pub_keys: Vec = Vec::new(); let mut source_blocks: Vec> = vec![]; // Source 0: raw XMSS { - let mut block = vec![]; - block.push(F::from_usize(raw_count)); - for i in 0..raw_count { - block.push(F::from_usize(i)); + let mut block = vec![F::from_usize(raw_count)]; + for (pk, _) in &raw_xmss { + let key = Digest(pk.merkle_root); + let pos = global_pub_keys.binary_search(&key).unwrap(); + block.push(F::from_usize(pos)); + claimed.insert(key); } - for (_, sig) in raw_signers { + for (_, sig) in &raw_xmss { block.extend(encode_xmss_signature(sig)); } source_blocks.push(block); } // Sources 1..n_recursions: recursive children - let mut child_global_start = raw_count; for (i, child) in children.iter().enumerate() { - let mut block = vec![]; - let child_count = child.pub_keys.len(); - - block.push(F::from_usize(child_count)); - // For children after the first, the overlap portion uses dup indices - if i > 0 && overlap > 0 { - let dup_offset = n_sigs + (i - 1) * overlap; - for j in 0..overlap { - block.push(F::from_usize(dup_offset + j)); + let mut block = vec![F::from_usize(child.pub_keys.len())]; + for key in &child.pub_keys { + if claimed.insert(*key) { + let pos = global_pub_keys.binary_search(key).unwrap(); + block.push(F::from_usize(pos)); + } else { + block.push(F::from_usize(n_sigs + dup_pub_keys.len())); + dup_pub_keys.push(*key); } } - let non_overlap_count = if i > 0 { child_count - overlap } else { child_count }; - for j in 0..non_overlap_count { - block.push(F::from_usize(child_global_start + j)); - } // bytecode_value_hint (DIM elements) block.extend_from_slice(child_bytecode_evals[i].value.as_basis_coefficients_slice()); @@ -309,9 +304,11 @@ pub fn aggregate( block.extend_from_slice(&child.proof); source_blocks.push(block); - child_global_start += non_overlap_count; } + let n_dup = dup_pub_keys.len(); + let pubkeys_block_size = n_sigs * DIGEST_LEN + n_dup * DIGEST_LEN; + // Compute absolute memory addresses for each source block let sources_start = pubkeys_start + pubkeys_block_size; let mut offset = sources_start; @@ -333,10 +330,10 @@ pub fn aggregate( assert_eq!(private_input.len(), header_size); for pk in &global_pub_keys { - private_input.extend_from_slice(pk); + private_input.extend_from_slice(&pk.0); } for pk in &dup_pub_keys { - private_input.extend_from_slice(pk); + private_input.extend_from_slice(&pk.0); } for block in &source_blocks { private_input.extend_from_slice(block); @@ -344,7 +341,7 @@ pub fn aggregate( private_input.extend_from_slice(&final_sumcheck_transcript); // TODO precompute all the other poseidons - let xmss_poseidons_16_precomputed = precompute_poseidons(raw_signers, message); + let xmss_poseidons_16_precomputed = precompute_poseidons(&raw_xmss, message); let execution_proof = prove_execution( bytecode, diff --git a/crates/rec_aggregation/test_data/benchmark_signers.json b/crates/rec_aggregation/test_data/benchmark_signers.json new file mode 100644 index 00000000..e4dae8cb --- /dev/null +++ b/crates/rec_aggregation/test_data/benchmark_signers.json @@ -0,0 +1 @@ +[1598837286,689324470,30205533,78057134,541848389,1141065921,551566691,1245255967,672175526,866233411,1155173841,1045467917,574901232,1107831921,987786731,1154846093,448356082,1818152826,607252533,2083026390,833056592,971574086,838292075,1359978344,324444074,1706365013,1496591988,1090838037,630979311,1687182419,1049986742,725034567,738413080,1708612101,689651817,313582282,454914557,1766131497,677739960,110896616,541561803,1027407088,329844752,1895971137,2013081646,1617242584,1757131393,1601179234,948238556,345786307,606245616,1545643150,2020231652,976466260,1060679738,126771551,462667383,1518802088,891958718,550723025,1717133181,2032855224,1423013596,672110826,1770113664,10616156,819649410,1325703794,1816599003,147912950,319130318,785767181,1093440771,1886125319,1155035818,1359550325,1964007882,647465968,1466717814,1476498113,126954741,1513041311,1763387591,1942656600,989269992,1005974191,1089094574,174223720,125262845,1965037028,2095880806,525267463,493318463,728956798,986112756,2113267580,1663163179,1450085975,1428365006,1254259763,997538481,815182536,327490947,901727667,1813813212,1822296005,432015016,365382833,116191637,1046560651,2068353686,1334368949,678886156,1219394886,742367776,1759047096,1152698790,1445880552,510951917,229565988,55705279,705078833,1394702818,290698953,2027997652,1239759091,2111366801,204287406,114468479,73351525,1224611084,482312223,1603032244,432608728,766084884,1882755499,1809225197,1098015914,1911656135,827253043,1621399435,788690289,1670772641,813340773,1572190871,1657257005,663988181,1076374482,1111402688,145233763,808761172,748563258,1228068263,169396112,324937724,368102713,1929098011,1359739676,482290173,568678728,1385129768,1033790434,1300826854,68269814,148684771,2046148150,1317453120,917605946,229121438,1594499107,1220237111,26191257,1055982966,1141023186,1200703926,2101745968,2030317629,502838108,1171428048,1832677838,1861457881,964498632,1885487029,1017451415,1813847484,1205570409,1469623989,2118721951,207115034,668011571,1273752659,380891771,829766678,1091807326,1890361993,2034051008,1060236077,105445654,1907340317,1990178690,670003489,925511510,1192207256,948064018,1765508141,2028319922,1504973132,1467100068,1165271172,1617353176,653458726,328841218,1713372125,1617124670,572377120,1099405879,1976787303,1125547951,250637924,1466614419,465241722,13678412,2061942104,633171498,299405433,249429851,1199831465,1332042556,2103914125,1438570864,1313627483,1667035831,463427195,873557742,163594187,1890852689,504211184,1536965507,1462069156,2098661376,1113215756,560859776,1736687008,1088263139,1829917749,554397720,1004322467,102528745,1365666179,607735291,673919012,289486031,1061699809,74885658,295166920,817138513,580270428,1955997000,1349064838,2000773328,1710122587,1532105111,1567667126,857389588,1314567314,575562196,1573200258,580514856,448340661,816119359,1681651851,514485715,962284614,1171178598,1334703908,404700603,1034634305,523475455,1056728623,224761351,1046107891,983351151,1750487769,1407654970,874297997,1371559519,1554789958,59592128,172520645,1007241401,885946763,1425489108,1097572718,2103679450,941266458,208501249,958502458,1089881172,1776146001,29793877,71080626,2035163405,1702009796,840994284,1699748029,261902063,990060142,1084387120,1462338240,1382537328,366420113,584182584,341632802,292563393,1616763862,1038367151,2104679062,2065268251,1921585239,175176627,735856412,290394830,1195351858,1473138647,1649313558,253993298,1302930524,1258120978,2048261715,1231047993,125801104,1766077594,822530430,1253406087,167146792,735003730,1030096946,1414143840,294923238,935958420,491401223,139380842,1104148802,198130810,372973097,1522061987,128541148,305408210,980222094,1525898735,1089699129,837164975,1598560077,1952981397,783147740,1562633283,672456971,1296676606,1315852915,1970093250,490001346,1932695713,267288895,1340248912,43874250,926873858,176929823,465188511,620657440,16228922,580962815,1091169646,2102582917,2086399900,378619637,1542279426,1055215977,1454951922,1341344138,1994972414,1991793907,529038784,1854089661,73501691,2036352314,1650760109,1198812789,842932554,1454799010,2120504381,1418431900,399097786,1996370460,441429744,1815706214,1468697387,815246771,1474260413,422814913,290988373,1269320097,1690777863,456325601,1078396311,142057113,1376934812,1306343976,1427269281,452713413,936265212,1870294754,186569730,1073447268,988183536,207225242,1911162409,454920730,1162207971,625758937,2001617819,201102632,1366173262,509822899,655987933,1759162572,7213769,1553474991,976835178,433870686,20669851,1512672445,1099170416,582097645,782959527,2084734360,1433499930,417215373,329278895,936591338,429465445,1291642859,166686948,1909949396,588770924,1857457083,278367912,1315393946,21684477,300016239,1254505236,920635147,492223250,2025315381,845871137,942397218,379042304,511711659,1670173644,2012124051,1596180499,1160632847,273360864,457462631,108666161,42810288,383640075,1092210401,933327453,120534597,653129350,1622907717,677125944,511750467,1949363837,1633330480,1490875102,716070632,1816055431,1554224742,1334757016,1905689651,1278779413,2017527095,209234332,2111146641,354974721,107571356,2070406664,1798095364,868782977,809328122,1076682854,1332634830,129126503,1162749304,418270668,1978067759,957794518,1317165115,1144942988,1704184575,645493483,1597001385,1003734579,461062061,421940373,594530882,934975448,1137372241,1293804905,1353198251,698858384,1314056192,812449123,1423892030,1315110434,685285378,1959024156,1212640344,1048688118,1005559417,1758906256,911233598,1398783156,92077830,1956400583,7143379,288745387,1024800701,306416760,1066348321,1215641935,1995481283,279918716,743396516,622869362,424817263,1328458883,611831806,1836082900,469253010,123337638,868532933,1091499957,101368624,413270859,623383422,1947874451,366959919,1916297549,1784466782,1491331496,1843328275,1482146449,1064378125,100327593,1900327571,398882961,2098448934,380069025,859508096,2012038128,2070060268,948092593,198700472,42370757,1063044543,101819363,168268544,1207087983,1768608862,1706470195,1717481850,124876760,108786235,470266567,1581089779,302259308,1512469071,1883851925,1681312365,791758193,1508454780,134175384,348714828,1932390997,1101601882,1049328571,1902299875,292667389,247617140,1322670460,388338654,1048307586,765246862,1788556128,609944800,612257167,150808815,760627980,337280686,1746422342,1539663085,1945572519,1363088896,744695343,1969660100,1528685922,2057991041,844470609,191798409,2011113581,2072502739,1831136349,1484423958,114775448,464128766,1160732103,1382070138,542961293,2070298149,675792227,2029235325,1503205087,269304815,1773644723,806049957,1950697287,245203799,1310906695,762341101,1888301347,1399117248,1930686830,871598559,1284882110,744525072,2038659854,1927711206,1379335154,529530332,405542549,1442563063,1990463359,232823714,29618523,1699510568,284526633,344883598,1960986331,1019763465,1073196164,1493001876,716629245,1742832388,1595610419,1837696697,1725172575,696449262,618959835,1630266876,825638482,2058150075,1124392822,9335866,2053700251,863900079,1853532160,1273420299,653936270,349598424,1490703531,1949114052,276235554,1488397333,1991929584,1913743209,1537958636,242763159,1707382432,906198918,1592833207,1341300095,1076116954,957759775,120060316,652787446,866633668,1643129697,583348567,1054256250,1064476700,1141348929,1873598486,364329730,1777291633,1082098981,36662110,1669691213,137427398,1199536993,925278227,155356797,1768631404,166133491,1928178226,356443141,1260637366,1199292738,27917447,866899368,571942464,2118851648,1171336314,762227282,1718595268,952730058,754805036,780513471,486801212,1765358909,767086994,1329432475,1215477899,749480490,874860185,809945619,2125543046,1986962981,1927040601,1757721854,1857315558,1204058526,110679471,287866219,1265320344,1259850293,1073826798,860063380,87236103,243666041,342717304,1881421317,1485840522,154176680,584026398,606432295,1271818022,1835981197,1030496697,1127743449,970059126,1874407592,1663127398,595250502,1025192346,1348677106,1301716233,1786036229,414166352,766590207,1392728028,189062933,1499488351,1875883017,693866602,1208123338,1875624237,238385090,346515964,724673725,3434774,1916718164,231982476,603380889,688628559,1120594888,641285092,934637143,275765954,1751034900,1849201578,305603144,1616449385,261236442,1414852748,568229925,758740112,436776349,1830228296,347099226,719555676,1727237021,1199799346,1658793425,1516589899,187622120,2119443166,1568354718,596979999,1877705632,787540074,2496429,1696945384,2129499395,1936015964,996340105,1924340800,1860859417,1128414840,2030022062,10701047,1828265839,45368620,200086857,829597180,369989221,247731429,918347821,1752384802,81632461,821201032,1379348905,1757101708,347804848,168164047,645596057,554919302,954346651,628367397,1214625765,1977148492,1933081304,677637993,1157985796,711538012,445507204,2019967350,1677687566,1498988924,900225169,1441431317,1844352163,1424980915,1814673800,2022701903,1642032664,1632227587,2022873649,1209184831,871118780,1525510886,284580433,1599523561,1860932531,518471108,704581053,129196746,761022082,1168183753,533804501,1236677601,604060250,1876443349,1477975304,801161731,386695936,1931897173,1145379059,436201950,83951171,1334415961,590872282,56814701,1475746430,1220316023,1276576820,547721469,1606240732,5892954,888608581,781018659,205201391,113802274,519004360,956672503,1388330498,2007556795,545890069,1233865412,1871033824,2121219623,660144047,230808685,845496942,120026143,1948089328,2084873481,1499452801,429138683,2115311376,1789875290,1671664302,189314872,2094562316,1239066298,712006234,1282364653,1852932417,854944244,845310609,506092900,1901557890,1009459905,2076851440,519611296,36256556,502531542,1445250080,890634811,1639845857,327801914,910976940,1358315823,1450437330,1144348764,1493341769,1050503428,1353457383,796262459,234236617,240143775,1628030650,2082946415,1428485172,1191542477,1203876372,1804822018,1041351868,1062885738,665767542,1643614297,1661439967,840825088,255791545,384353607,251650627,189419168,2117022799,330401707,908465018,695676630,269830273,960923921,1751397258,168654527,831251231,1292328433,398280999,1629510774,1275410870,1658422165,842046174,1128564603,493902384,328803197,1820426777,1640221973,233697337,1450199897,1253347717,1275084043,547466466,2128647728,67100138,1703161132,575377108,254036041,1121246150,212334439,698794201,104055393,201465322,588515673,266823280,1938951046,1094301016,171082289,652146930,1198988001,416958416,627110618,789245392,446032015,1742197419,69383902,656505978,673414541,771739388,1549831624,186209625,1113151455,1553008085,1584645691,1547077912,986670261,1800072048,1546897138,1581541905,1235385774,1265366660,952142604,1350067311,2028097762,2082530891,1573611663,1280248036,2084820148,783450650,1521179862,2003166499,1024411087,89767590,1283251033,322973750,773501447,591927799,1998040426,679128355,1225009826,1662648901,147785884,1844158524,159463795,1133334804,372866209,1646662678,731220277,125707730,150803428,1054476152,1736787868,1346753046,1497386130,1259756370,1581608776,534077598,1651940412,1884004342,744502452,394551312,350002599,1554232699,299767853,2087674255,263410702,1050761621,1780724697,1345501054,1969689406,1874391886,1360728219,432604869,1881517896,612769449,380098550,1807287822,1301053033,419828363,636069170,721747565,1442654643,1617641783,1286926134,708580081,1658656300,428733271,1473657947,636032610,1517706584,889152910,1142833649,375148453,392824288,729264007,800973832,1366157566,532200292,1113708344,300456527,679176536,1159216168,1171579617,172894183,1340615354,716897656,778546360,733083722,338491037,653546712,1965614901,484936646,1081187707,315736849,2102040722,1452318247,468769327,1738965639,838267132,1021283238,1950391780,1449630817,462588143,1709831469,1002073661,2041572027,1774176134,879550508,716471002,1520668345,561872270,1890572143,1842887518,1091916779,1326633749,1064688757,197692085,1945161812,78363022,993835303,1442579275,1058998051,1712891293,1106642633,2083620706,1541649977,2095085721,1647249209,367474237,627450355,10746868,1001202694,530245572,2037941600,835642933,1955155866,1776353875,353851013,1906176125,984118090,943653530,327809505,1722689625,235387591,1323431928,282157762,88787118,391946208,1715140140,1921092984,1951931385,30083484,1651372397,455743212,955186781,998474941,2093812637,2051345387,2127105107,1116498335,982181829,1699834657,1806234656,943035167,1819969856,1324147040,2045809071,1637423543,497618580,918549236,945218469,2094790373,1092880109,696131456,835399557,268555591,1718739754,50258357,1473084257,175334471,1859622105,1998304477,878508835,617739596,642910276,1425779404,1967841353,1982497039,517950639,649315434,1829210149,1398546835,875159126,2038714689,972572230,691865959,247974392,604710203,527512554,1091819327,1391488984,329842132,67578940,2120311835,1335518993,1693936928,1705200456,1682509444,730493434,268287329,841482120,1831678780,697769598,1774314862,132947994,772476477,909451210,1025641159,1446668604,1618882122,1040004908,220185606,1364989183,980035653,1591004207,1364214758,1924706044,378664895,1521221406,1601507017,181133980,616955778,766673917,1004258138,292871925,1284455602,1561171328,1475910336,197897422,88311345,515359765,203877382,492351173,1340197982,1491692401,355405932,1856886859,380133662,2120629195,1490631769,1351797562,1249581162,496295305,711668774,344570716,1175306179,1633633856,188161467,832769325,444527267,1632251991,1863020855,2059820551,30267441,1494865407,1704140736,817547457,1931402580,1388705476,1996339138,794672985,2073800934,1419179623,1879541508,1162167922,402595379,613476289,407297336,1913368393,1380729549,1907222765,1743413797,1554070585,971922325,1110088260,1365837965,1917550001,157942001,962168217,1728897024,731203922,1989505790,1624713220,1124393886,209091706,78068862,1363563013,1079241472,602110182,1701120351,339412428,724725612,1587127625,639101930,65769915,1432544866,1796228664,176326264,259424126,289701225,1904771872,939092782,905141177,79340538,2018509907,537793516,1354926451,1318207350,354228207,1645363882,977356811,475753978,402503438,559723383,466941728,738283196,578089868,702847772,968631970,1109484710,1941176636,977674689,1966156625,1514180412,711647926,382456058,2006741752,1419878447,203573522,1367842461,172106007,795073159,1875523187,276582022,1751440636,1294830989,1445235793,156836622,1889866559,743924715,1716846496,70048621,297755784,1148987085,17736310,1285899721,348988684,1722923559,1651412666,632222510,1269513009,1111614601,1391928578,1147548262,390483317,488826747,1514076504,56135341,1728659357,1163098613,974772719,184590439,296689977,388916437,1373950762,1111972294,1708712738,346761137,2082023487,222393437,505233789,1132005113,801410632,2085169326,807277603,1225454187,716080804,940014281,888690642,226827662,734421568,857799754,1473669889,1754456156,2036247390,832970442,149705185,1578850796,2083371157,2084797410,1782886862,90981818,1651360705,852702420,1197441009,571375867,2043725108,1928934936,1192975177,678323873,596069921,701682060,606329653,1573669218,1216703259,1606326657,50636812,942190020,1699769932,996973671,1678008657,1864986638,1428936001,1383681811,414520326,934753913,1178142622,1493566890,2020194943,1079211296,798045585,1604349778,1421934643,396811691,722451966,707635506,470558522,2058613244,278818470,1018960540,587155651,1349316097,1410994488,122594920,85838770,23629844,1347969833,799485461,291929531,224160592,981849293,356993654,998215565,1614430166,1803344331,1180881564,481863268,1774886728,985994601,932751589,1565380999,1869487835,1951577463,1675298789,1368025612,910234036,931942057,114792449,613254939,300466576,2078360622,1922171395,1587200839,1231715633,407139313,374796629,1644848446,1323443313,1802137928,877424048,244603342,1056649500,1635307432,2008882443,1948981854,1070300428,2125309372,81536235,308902396,810259761,1059454437,1410169717,714423123,840468823,199396624,591223853,2090402364,1698920138,292823165,1842753318,642401396,734565590,707740801,1043231466,2026056057,1345301741,1477023669,1355036460,607202549,1004218903,844207404,517050825,1855134153,1821025706,1318742989,642083947,1200138709,678594719,678086250,768289324,179178749,1069266578,1523607431,58582004,985938423,354947421,1476704570,1078091002,668715734,1854629327,1259094003,1662446407,26881648,557097629,1508215262,1128433911,1268207303,220046621,759770886,215085134,2128564483,1900522403,1038299448,1300708874,795577117,1327454188,1048348645,853894765,1273974159,767541023,765271520,1156169689,374452822,663674387,287965769,155827807,2091686365,2039949180,1300108743,772164656,871831882,753691369,838301123,1084943868,724099891,101186185,1913810657,976960,1000943230,966769847,282334665,353159309,461326667,257648067,389110671,2011173838,920729317,1627599901,1287009796,1937877267,525541463,772153799,1704950298,1386675947,1951462983,1628609058,484223198,1204141129,17887716,1929818581,235602819,1592031867,2019321850,1761862544,325335628,1645303944,1225354345,2016713642,371431562,494811059,1192332554,1606502674,1489562524,1601543056,1907448632,572799624,1787546368,150268212,1575926691,436007970,1425788636,1194860234,1440522485,1609069366,1324207091,1402956832,646065312,214455499,2094933071,281209939,36661422,464202870,296671517,1303239641,531129770,2023115369,388813950,1326439411,1173735020,1215648524,688774102,1190871816,8705180,567917855,1765302801,1593439267,1482654002,124412288,1446638891,682325634,1107042963,202932156,891328475,782736585,1357024221,205255143,1823622852,975678234,1988841385,1262026407,1342308389,893599155,1692573187,299087157,1659619722,2013697494,1616363673,144474258,1775118283,1982709667,811178556,1775980417,1677450097,966993405,441836833,1456127868,1830003045,811232743,2052698555,1929929748,1045880828,563293956,280173487,1730592929,611523856,1549554240,301414792,1895325278,1916294045,1537773227,142227146,326455564,1362801462,1124782655,903772086,1267762008,2090339064,916011559,558664084,2120436645,233465575,2040502251,1730016348,2100701512,1421668612,519029082,475686505,1779364123,1059595467,1421313370,1156754716,493700531,1467632754,1188364827,1517111868,1482658914,411627334,976220610,847293562,653890104,511526281,1953055490,2112575806,380256107,645675843,849227812,754122146,831168341,1262933510,841948501,1602291730,189617818,825522009,1656277841,740899296,352260771,1692954630,152566098,572027675,475454854,1495162416,1846122270,1516661158,1616636565,1285014857,1263595958,408565617,1974261683,1092826879,1256584031,153260894,128860883,1818673535,1730414646,161404886,1921824803,1805000022,403808299,1257819509,2044280896,1341179274,1345684249,1938280994,62749132,769132570,295456396,946920405,593624713,685398043,1624134214,1272415742,724910749,269286047,1726955393,393212102,662758777,808366032,957663279,1878693213,916153805,1664939998,2094602882,444987943,1410725468,123594400,167991033,811699945,1389195264,871314616,1759585794,2105829196,1123594985,1263474766,1507745194,943298361,1173801803,1164597852,757424487,1607898015,1058674939,1839875166,1360832718,744923114,1219149083,792129235,1538790260,1734726764,2101227501,896756410,561230473,85473452,991539961,979239971,1259931654,2043444927,264838565,2009063033,70995211,196605124,1997079867,1282130846,1874519856,1795162611,960918576,917094365,1668129618,355328732,753986327,997824253,1847859819,992852840,648349789,556842516,1912670740,1048413851,504261595,302817792,1814455033,1162365904,437904301,5327799,1021083885,1711933780,233943758,1137154512,1842736073,733897431,1591040270,531953891,486422608,370980382,796707691,1746389348,121444920,1054763708,341496646,1378651098,1321240417,1321805540,1501716987,1212940427,116460125,1661566553,1439993781,1413025279,1416518582,813026714,1160483018,27565711,1542720687,1085370959,764263170,1431225786,266605618,485209270,591836809,828082079,802262381,1311426544,2032184145,978141421,911235059,1003346510,2007592707,1582908803,310034983,482052465,574616495,2097438203,1988056505,777962737,647572423,876677286,646919477,578927126,354527438,123052056,1801110831,1175762322,1619071381,1306023057,467787221,242502453,1808707628,1182600703,1509730557,1011093559,1768535937,296871840,1169818558,2046053472,282375181,1943102781,472423814,1594538748,633030472,33775209,1179356700,547102154,1328844718,1852022569,465855817,1859803906,174778092,1685989956,1958756625,588007548,1867658585,1920141830,1829949970,931871610,872177119,2076810419,1730507124,446298356,1448029931,112225335,2027298860,1414806916,1878750974,1410833705,439694583,1542360339,2057441988,1624215327,1176350313,481564356,1533331243,852405931,1064561209,527769909,1839252514,1881343493,636887858,1471464749,374450029,1829181370,479882264,762229664,1692877307,498082400,2057774377,1507323176,929734776,1466847690,5218609,331009861,1200796083,1004076586,932578709,985503113,1102778971,1850677696,1275489224,1981473251,351679173,1729686528,1651673496,774780120,258897923,1610406518,499512473,1764280146,289442721,1606549081,1074332077,488406067,1198140192,267623869,1871772682,958888888,1667788843,1492984340,816281127,1822681294,1957067433,2082274211,2041468998,1883325459,135621437,743699413,1046836680,405635192,2054878082,1217137255,515931668,1656975195,2035778025,2032255565,1677374985,83822618,1237451796,409080139,2060258139,407710083,780000831,698012967,1055827774,382460194,573194435,369541248,1347343436,618903838,1657442396,1388317129,700286346,1642278221,1845256298,1697703385,107866323,1600106524,1179836830,397040977,365874466,2082648308,311350695,1019506306,348942021,17336543,771448119,43357536,165691688,5924751,123696557,1476229312,1440448892,482667254,1957088186,992930261,893017920,539043934,794590588,784293482,1611978659,1895629455,303057396,816989048,1130477207,408476946,92399548,1594125749,467267005,1763214764,30513477,505028520,7285026,1294094981,180996861,1927897426,370358302,1385017105,947550457,267909888,849969253,1172432890,1931518224,524973682,885875787,1632043938,1870878348,833308320,642328546,1884695330,1346566794,1088854772,1221786487,593759424,1503440959,777461144,1816537438,499407797,909630046,208916800,1219344222,434805211,998052819,528987794,1935685939,1735288689,1991156415,544803154,181666349,1543425934,913272841,1257718620,227365771,156737424,423835303,102562299,651258991,1642283570,909918540,671947098,1328953971,187210741,878605585,2002235375,1582951740,440735883,397348994,35950611,1879601942,1734249791,1520013769,933411963,483704343,586234099,1277281860,1993241715,472704559,1759992483,244675218,672508142,382677214,857116545,1219579779,448429236,1939551572,1682829690,1616069825,111121869,1972236047,214046201,540658697,1401670147,1850915381,1535198506,799408580,151716543,154121733,1618411517,1552222156,419723382,1936964608,1868089277,1149414742,400819871,357790164,28061895,1600574865,437882884,943094680,1605281020,497142388,1178297369,1587244587,2008515139,1506876491,2009103116,271434279,1727078286,899806498,78670188,1466303015,965353131,891148047,518432769,525159531,1188223319,760442122,518478652,2068419119,1313743282,998447678,229575577,297260359,1626555401,1807190603,1961042609,786687551,103955403,1109819633,95083469,1652697948,1295668928,1845242662,621487806,1616436004,1009723166,355853983,1292043895,879621648,1712097876,278276998,2066545586,105070988,401963435,50998936,1950315434,211577095,757899962,1419608734,57122013,1139433695,1010415424,338162640,432491462,219082544,1991302648,1457549866,1668439254,368861988,421721443,1327914161,97945395,252361777,492893042,1517488012,519681316,296114593,1468156993,576033190,900334809,1030309233,591780193,979551200,237658240,1972625246,1967587323,1024811016,2062680929,1387020787,463420899,78403447,797994030,165051081,1337845313,726720402,1472993796,1807395350,1450649561,1940540370,356301695,26184312,2006864126,1266332671,1368531642,1766585867,1550412355,655829137,1040550086,1132948122,2031417805,1408312407,443876220,1099802538,1703142265,389363080,391511985,858904168,710548042,296742968,550740667,1190476719,1742379856,68908530,999847198,1144020091,1835679437,1615618891,215351411,350160403,991373049,1883652046,125567537,39601189,1924511684,1114337524,707561910,455495796,534199629,832068067,1029131399,1850713274,1591947108,257535314,85073284,842397917,1133605984,239846293,116711284,475380498,1696113383,321913526,1704948767,1635866688,2097278226,347858407,47325542,1434531476,1044044515,1172193843,576716782,339274879,813391840,1971255364,1989357001,1589994705,455202483,576757774,991396929,1035909580,748311771,700241378,2118958261,628922468,1150721544,838245178,1994409442,748334988,800474411,780942571,2086327887,1780668232,661144738,1408874539,1885873699,1389109271,1778399636,1708120189,1877158658,1373720881,1550635879,422285296,64757408,1157644206,21256666,1860063350,203248114,1622881914,1891610234,2066429746,947200078,702905278,774463367,1801787086,1847890884,1316532458,457751153,1717356202,1709857166,490208936,1354790813,60590329,429556993,1901537674,439368374,1707724801,1684325373,1281095944,1015821850,1714684621,1785109220,1775659846,810016892,998972917,544355739,443219717,1128695608,502494746,147924651,1895058006,172068872,119310671,1975678776,1182449990,252151260,1296718706,1201225573,1078028169,40016670,1908003020,1733600798,1217166405,281962886,200952927,1090588058,876866892,1618119723,1706027863,171114369,27161550,303480037,811519219,1217153250,392302911,276590140,1553743960,1126057153,1215408805,2044069494,1993042161,2033355030,474554850,228133494,1076941888,639705405,1234381092,126975340,905354041,1516794902,1116790386,1347678248,542925931,291469843,953563102,919215954,51587910,1742728142,1811646510,466779059,843659028,1429272810,535393576,1177923818,1679654232,908384472,1657332739,1373333181,1191013353,1819261229,592135455,1158778421,830577627,1974733216,1695995275,347168077,1805182764,1638926779,341322101,1623704772,1970920275,287301045,391904457,1657342115,1181152470,1458345890,500559278,1425211722,1548729296,1644295902,863606913,1067816651,1529323684,210256936,1254170512,1020784526,238662910,845324623,58133431,1201726458,1519285035,139110212,2089724857,612331153,376837443,1652029932,1267804092,1047823187,1797813038,1770415844,246680266,337545496,1039837598,330386095,1656298241,308481595,1457330913,50644378,627377878,256637168,394415745,2064422713,65663466,1060160115,843324637,2043098862,2087620000,1275158240,1032693678,603807536,509452057,268679429,241418870,2042355307,572939752,1132266534,592121908,226636589,1783888379,1208447900,619605990,1013566297,1084267146,754084304,817591323,990689181,810349621,480780884,1290545291,1357457605,640258240,1596864696,1329873128,172383023,1144026033,1723520232,441307255,115577236,651072250,297099872,1569249251,1844277621,74207089,1747212404,727076066,838404595,179576366,429247,101886779,1723298600,917114392,1606966013,1305525536,1367434119,1769416120,1268142855,591374721,2007212361,2112133651,1995370613,1606865876,433187552,2048420781,1020351686,669158521,1853144766,982021097,1646612497,251452391,1330400954,1971643857,1205138221,1460951333,1423589044,1873735462,1892320678,370895005,994989274,658116195,1698741914,2072617589,1453570585,992531422,1544474567,199287317,1429450031,1112635527,1915337632,763851388,2000623918,245054467,585997978,303798969,1909288541,1144271255,2103534165,2046327458,155680238,1420848097,945194806,1178988456,431505524,1556632028,298437846,386382060,593813494,1452074553,796997460,603003898,23623042,1673856962,309967939,1034582318,914391781,1901546624,432571211,1123398655,380678712,825565646,1093859741,1751312328,1043866138,1399742636,27103717,2104556408,1641160042,440048368,910912396,1067139229,114437315,1044094026,1091099429,1339724767,1271494500,386473690,517955229,220485681,1741887185,1650276677,2048170904,1476488729,612991013,19853477,1777266436,1507803048,150170197,1010522575,1585305614,931574920,186705328,613615963,371195404,1393944718,1549993587,305087608,477342971,1963366997,183613827,521530297,114123408,133201348,871022148,933091303,1535368574,383766046,1741331886,2044734876,728648058,1703807445,561428174,509110241,1846811978,1305798994,706046414,1972095752,350826738,1163228790,1438436447,269810623,1584839733,1845111650,948662686,1075982220,1383444704,1203274788,605063610,590416639,621574417,1298682319,1391846284,1121979935,613021379,799825538,1704241099,1370407910,1962153534,954681112,687039500,25759768,1199476711,2071032690,1927495630,653377468,2122675870,1739491786,1276784131,1699126826,1601972165,1034170428,297847086,871470568,1022862143,285425759,496078770,1809102199,493729982,988155315,105452604,1525459563,916298940,227715240,1605641190,1168420962,1266002998,1733735182,1480699930,568035568,1768063599,833252658,159396388,2089456747,1900567810,298931363,1806944613,431185203,1822284953,1956906762,1284710745,1448735346,139273774,1464607315,32553469,1190186009,1652098732,1715281218,759955058,1994854404,825691411,413220091,777901293,298739436,397576244,443297076,197722181,1455803036,399659258,1179096958,1862493964,1755788280,31501352,1214272755,727282630,1251880409,2047489300,463533765,1550535884,276850948,1146905873,1992886157,716236260,1769961856,287234859,759838707,836353108,1762890889,1256637898,2081433778,712610960,1704404606,409825149,1092151184,1048744332,660745323,923447896,399052562,1717203921,593017555,1047911464,1490573104,1092351515,71304451,691312110,820479339,50087952,512319388,2029684456,1722692819,1081429877,480960794,1101169290,1929850565,931210804,1748274210,1284663729,798150434,564897317,2014241832,1495558807,1843879042,1804562267,2005766394,259961836,860247665,811223935,1027071080,1132457379,1326022096,1474071435,1820620457,1495982984,1622379660,1529701385,456956134,499618499,1989589746,1982529423,493176932,983421961,1926572729,1795776740,468950208,1723326839,1426122194,384381932,365777028,436292078,1580894913,2001332881,14384797,1799065226,36703375,851394147,238629096,16815300,973303382,1119212784,851945763,1727586041,2016674869,2010553421,285136068,186335528,1962705826,632472680,1115505775,999206125,848599100,1673637171,673891557,588873910,795698194,631127676,1094735164,957968288,959336731,1750053721,338393807,737353446,1388170758,582508106,765577130,1768709879,185187817,21806606,1500155661,1015148170,137213663,1997877064,1768988847,825281017,1179504819,156782231,840162269,11705269,1678416703,696577794,602537797,1996062613,1486819556,824057229,1106741300,1817642007,624753786,369519362,1772929068,468104581,1458651910,1363308720,1823736616,1805571013,1721459128,958627316,1864959216,2068695691,1648443510,1828946011,2023792418,1137894961,1881097058,357028720,919835978,2121752849,1000945358,502120702,194910436,833655874,1502909523,1487809822,2038270199,217993105,1433143265,293411463,1111567499,1431025309,632934961,1059002884,547634267,1693166644,890418791,134310887,233483849,2036910077,1572570871,1601150927,275443471,11086233,285150385,218320765,1051534824,685119889,1519755516,1944508105,179337495,388649616,1139733725,1244709192,511175716,700246350,929176290,1502936483,1382379828,1699210152,1630148423,1995387532,1747045443,1461123671,1793700293,79447094,1781244329,1087871063,1999344523,390665471,1533493866,1296165477,1314617743,452089629,321245691,1723017950,165351404,340950828,565767157,722138753,669760326,240690092,1432431546,269564783,2083021023,434935206,2127599421,753231524,448979535,1839934851,580202736,1701831021,1830544910,1280489386,474666854,709930747,2102559544,15548674,920879371,1508450946,278408744,1393886368,384776367,1816422048,587936005,685677972,56931567,639978704,329431817,409225910,2075642672,1622601903,174834051,555343064,151042454,1574007633,1740742174,666930741,1132496817,1543210939,642221211,1770180142,1698506219,1907760755,487434318,846816422,1780965686,1300541133,1772411468,1439746673,724575319,817413950,1844792322,39539361,1629584642,1744397210,620462904,1867524117,1108419172,1538910761,633672756,1476614862,1098179684,1323635929,791260381,297079558,685070395,52309467,698996506,1847863277,1570698788,991308452,1653908374,832816332,68402406,385750486,1708222774,2002885259,1439259223,1005874969,104091500,1054929569,1216908442,1219497713,472831871,406751940,1251407525,1641919599,397282003,1397382327,512630057,1549574355,1015168812,2061691753,70487860,856543345,2003088870,1548044944,941466146,1863906709,1506814959,944029582,560983057,1684508989,1819632387,69764313,1061346975,1523418726,1968754542,73490329,1318805556,43213525,952866886,929015241,974162488,1132653289,1193570312,1820952792,2042029908,527032522,1340200103,115264753,820028882,77785948,510246967,715087778,1561466651,215059196,591915405,1829030482,1215083394,1657573149,338298112,975763931,1676320848,343077491,716890408,939088198,624782596,497028285,1489894189,1760908466,882435404,110846075,1027594903,557858658,730315522,893884916,202521197,1444268368,1723691068,1911271699,877551498,883960995,216005423,1030810723,1675438553,1655394067,282576062,2064902167,1799251363,1109685023,1729361509,1644160918,1599131296,1507010655,944545163,1474913222,420563675,1175053356,656141500,1110876300,632082613,127234298,112321534,1314741933,729114957,125325201,886150217,1785112820,652946168,1802187065,1401710019,126941585,297317174,2040825093,1938746580,1782537497,1449734392,1245753648,778056990,217152147,1245126088,1479514645,1916247221,895280919,790316945,844818799,240588535,1246333372,1131645551,260117706,392548322,205021855,582903082,773219944,1112593262,752400072,845467820,1523290661,1325706630,20545655,1641010412,1729576622,1274653829,214087543,664002991,1150652396,635789786,2042083872,1999192806,1833137121,493067302,469363539,701333924,430150638,1560038653,690374567,1651031744,693866817,1487562501,2088740930,1000290774,1373437443,235061002,1071505468,317007468,1977752531,1053068659,491497118,915660037,1421808601,917020596,1063221157,1577376041,1615479755,142318206,52994535,2065269235,1604375420,1272023233,2025402984,747873898,747928002,182666780,222751300,947883369,1072473528,838136800,1848834942,1246321713,73141978,1254809889,1360145764,1806354143,2068279361,1167348656,1901120807,987399599,2046042686,1820966835,372296981,1907231683,1088279672,7261836,1678721818,1548466548,620212114,1446964523,1130481120,208932093,1942944778,141897412,1905831597,469300099,1573814824,1914203122,1062161458,577074361,499458317,472615239,937151726,1583505514,627638923,155117288,1368207196,1868686150,1402353592,1578900849,1028185871,504189799,799109294,2116946239,702111416,1583568506,73107064,931137909,846547648,1031706540,2046073811,464973990,1249247681,569665328,1786422711,1391539156,583138163,1288383614,1749254185,884625784,183409974,932852009,1891198043,1699813226,1509890161,537051559,286816264,1039119644,1820357785,1075618996,490364861,1664902839,1498159550,1146045577,105952757,256973327,1143419640,130763711,568731487,236440271,1293135969,654679417,1447486977,2098733553,2080739861,327228562,338412174,873454295,1794494820,988261177,1356417796,1399788952,791802710,142291042,1004891174,1503068918,1486735506,1075214429,1242085923,761474966,1466108992,1791361187,1058802502,1487672037,579546910,1102885991,1881641885,1610682667,1351509604,2062135337,1762742985,1219822646,842875464,709528933,1256180129,1704626205,242336059,1611425966,614395806,617905282,133795737,281129604,538524900,220595560,82988120,203895543,290003663,1247827544,758634983,1654281771,1838195233,1854132388,699343747,2092144591,1759609320,2003028369,1114043993,1693053495,926284578,1893909601,1930510572,615426322,366902342,1667411894,845370999,777658282,835294534,2016168473,61239159,515191987,911413209,1734778428,135843638,2037306175,1345663805,199728789,2096415090,346712018,573965870,637211527,984814708,71885482,734642449,294580649,34438421,37590581,1278128565,980611849,1833816698,606990592,2024221638,1580277455,1533558312,763920645,982246282,1611957761,1805115724,264489035,1533619201,1227854653,1092710946,2079293495,1745076127,85446380,782192098,1186235537,1341363961,1895041057,308193849,1188932362,1286973379,1780103394,434028783,234914636,1709572234,364348311,753636473,1211900125,851417625,1267837645,2000993412,1009653614,1562807660,1300152357,444131979,1194134741,13183927,737213169,92824311,257547625,1511223025,698537670,312238792,1114047611,1297400849,1913169754,736046167,65081805,2053416119,1285178693,557044017,259120901,1943710290,1995839888,854083918,147654967,276044336,1050105989,95595795,337164955,633929471,571105965,1641413026,898123229,2114889202,1685175963,625789570,968942451,285513432,1098946780,1573707278,1465033308,533400214,513077727,1196297658,1096487165,1713134848,220487558,1333789033,1696486179,1470611945,573294614,799460666,670056530,1510718075,1493033367,290038264,1852843163,1678953685,935830801,1646084208,93563985,1898302480,1968785381,1294200083,1200896780,594848803,2000853103,1082110500,1925991688,84680923,994682223,942579909,957242283,1246435558,585340191,2022504155,1618117358,1858441566,2097835531,1360010150,1251745280,1046117545,905373938,1069413070,1679579595,719166,1556600306,1029499831,1485425493,1522533232,363141107,21566436,318927084,1950930268,858815606,1378552860,1557939183,77804086,791888274,1863475661,1780877642,932909953,928402491,2055948627,881266486,988123611,98421873,481213892,1433097334,926497567,1985179399,925670382,201984041,942551178,187627377,799428520,1538241531,1800850078,1931944617,534484834,1355855248,687460327,2105859144,998487758,1007874067,985084879,1499888050,1361625758,1789176104,480369893,718096948,2035222844,149691673,512999156,1062935745,235792819,115391242,811597951,1112654710,1544869362,1408796996,53807550,1666586277,1104369329,1524335660,1463841736,932970382,683610765,229570859,905277763,1045052018,1063636863,1624734606,1214841773,77538492,1926613911,1635617704,1660498219,237639003,428774088,458015117,758598115,1228727121,191433620,1881234846,319584302,283539017,415356708,1492233830,1550115747,1968507897,72317180,1008077211,742787805,877553440,369868163,423898982,363382201,1548751863,827405025,824374635,1988748332,128276734,859393750,1015648133,1611023786,689225212,534975132,1843390245,1572546564,598566791,1174253206,1379910178,1773542802,938995120,1760620920,1442008660,724841827,531146823,2040895897,1270682733,1927742048,917177558,1612500051,140805231,1455967305,1319435519,860537067,2052719679,545684538,1467094081,1362127396,1106309420,456747637,377963296,479386369,1505769186,1233232983,1757133910,1275437761,1347382504,476899788,1049811976,262211055,356683829,1382504442,1770430816,118857431,699296281,360142741,865048427,968420740,1703260830,1267776451,810295070,1662497121,722426809,572335104,465545400,1720289175,35411630,1324762212,278206572,568990172,1110367629,1120296073,2051556539,1009981003,73132576,954434459,1997415357,1595575338,1138342756,914289525,436710162,1165797728,749588731,317819424,1246051730,979936689,1524073063,796925508,521765072,251017510,385360199,1224558190,8100063,666359428,1991898698,489270965,1557354005,2074499500,1843688830,1945132710,1647440873,2028672794,943664795,1817027606,2035479472,1805658682,1682080634,1914955989,1572612993,1102737884,865180686,1029069847,438797813,260860322,2057508705,1009222841,261790824,1545083170,1895512247,472708092,1702962011,1800120974,743015604,367940848,385975141,1878410383,227143453,1505129728,2100186760,1396286373,3862891,2059916042,86340666,1841061499,1547864943,588274363,1732838915,635893612,1190659585,146775286,1990891211,203105905,1919284743,785246326,11118932,1964657000,1263112769,1965466365,1450768118,1973782012,1800907764,522734644,184010566,313429283,426670353,1532461628,892302404,1097644302,629487071,39369048,872425600,1285134822,1956141710,1340042617,1749524412,1208641265,2001588355,212958136,384856088,2124357366,317770651,2002653431,1401472224,959684539,2038888893,298062151,904514660,4631900,196524198,151039106,108071002,313978102,1057718368,1701562541,1465793396,1076754342,538120555,1596973311,493495686,1802389434,2075261,1593643763,778299382,1859380903,1479600818,755510152,544717322,239596470,1761548359,1753608229,667061090,763156368,529624413,591173056,280565095,260453455,868263460,686498689,1845925127,1788953803,1113693729,477862137,1348469798,1476314361,1088845210,174029172,1616366331,107434238,1271680399,981174576,1494198861,1126081663,1921041700,842213134,2087459584,90605445,927407941,1476654738,1550279905,1832073586,1279604112,1077008369,1006048274,2019644907,868191728,41129875,1230458792,1820124334,1426755103,1675457928,973877021,1351772355,2125863519,1611092443,1471058530,1608236248,1046260630,1189116936,1825888791,493075669,222673729,1582156567,1208231172,1629341404,1566628365,59877112,1587447656,1142897955,1432277329,1469202013,487493693,1912276187,1636555498,522207393,426242048,604710380,34715340,2098896215,1072413169,338203818,1852898492,949320134,302326835,1788635675,48088899,530653725,1308074576,84963847,1410914015,512520162,955097659,2087605772,600547780,661600557,416727011,597831797,707202465,769947607,493885134,354497378,542907133,1066875253,1748101005,934290494,75363287,1809224326,72038246,362917887,1912715881,292306914,1607709953,1929873788,168700830,1232109639,137974204,1750189606,1203610056,89861422,1643590755,1599944119,699855606,2097069352,66760198,654060906,2021753537,766585280,1209804917,1647598737,1155331729,792235850,1600899450,271754122,1105410268,1070021880,416092362,118183407,2081432593,1053427646,275906094,258851862,1621574472,144065483,539467388,445880597,127369173,459166071,564994810,1602307709,2063937417,255397529,1292128285,319096556,1730659516,878765031,1193982686,913881132,606934097,673952873,1876497780,1899028522,1115349700,219663917,456071591,570731786,2116535115,2000392495,1962800252,1880017239,1402803256,819796422,11006119,1357621361,1554026633,877849876,1221106491,260094786,361101960,2030897148,2108598946,1120149585,57235656,1349910111,974676292,1559975482,784084151,1384019832,1505148803,956595553,430742707,2012540245,824261988,1465724679,1632980584,1450818912,1614117145,479075825,363718036,1063777238,1643251211,322585308,1061228683,2099801671,1055904282,282874223,1937272869,1559071587,1820941420,1816510760,346243037,2025657346,1672339084,650375885,1832303386,1804043069,579038712,1714649745,1313018620,2100138592,1368801104,2117553264,1401348938,2064154135,927662210,739131775,2052939329,1227124665,1529459803,1564294663,164023161,551634196,603255261,251157722,1874845991,1362451957,1442026343,2048399469,1753978234,1054540300,325015479,877433051,272208706,1574785913,467394004,1287367587,810900063,1313883926,276355613,1525057681,1289490904,1895135775,2099078172,690446654,790597334,1217048740,153335408,149186596,1031209600,977147967,1025314292,512290574,155534794,2033256839,2072485191,1803707488,1982288919,1970292620,1812261520,1000726066,30782153,1570923188,159858853,140459496,1732872614,1800337573,458475994,1712972533,1877302114,1673096139,341679439,1574822738,417019117,1060073773,1371216267,1046699193,1548227276,591036195,1628633542,412839096,1544147056,1537099782,222160491,1754787373,173269627,1565413210,572685619,1730209437,1372023607,397691878,806359885,1563441877,703700573,91754596,1680053501,1446528156,137066711,109648328,1487376156,282522443,582046115,96018268,884615168,531201256,1526475990,997802542,1224633236,1339259166,330247767,1652499560,287077554,549859796,601650342,582188705,1139933023,582767982,749092567,1457898017,873563009,1395040969,1934032302,593464362,1639266763,1878782541,1840609106,263649915,707068297,1423574212,744443189,193409658,612952049,343514673,1139542751,1417231935,1212301318,88377354,1118384788,1469305294,881965082,121872355,2053185008,916173563,906995066,121802527,1350625753,592884872,1628740962,349386338,446826708,827076973,860927003,738381910,2055709628,1824441369,2025911169,1045021704,530402057,881528681,1949125818,1966471159,1832053748,661652579,315694220,1870728228,391487620,1683331187,1407850017,1243373180,1152173621,752250451,942761422,1816168180,990307501,1800873966,2062163536,1182832569,118131424,413330722,1105688487,1770646568,1315058243,1001157367,601475814,103220264,1402439177,941658664,197879864,1215370120,1568904973,1189795663,1145111322,1454135006,738671720,800012161,415923716,1281212260,1992452652,1435827619,1018542755,414623960,574600468,1777211579,1541314304,1720984077,110010515,2075347252,865003060,302332491,802050955,1072134158,266592722,957411782,1511206631,1985915542,451333228,1347561089,715614958,423038296,429019785,1463525514,1099125048,876301825,968918702,1621922838,700736476,966662886,318336413,845938434,1829149999,1522138443,13356124,169003066,52807027,939767714,1887093659,1087078824,482008937,1606481576,311508359,680067570,427164927,776269574,1278434054,93276948,354651499,1840598297,872734667,2042195741,2061009300,216017223,1201473327,969998819,719493194,1943600074,901386976,1437697061,1947821072,1406551856,1452546307,1533149616,1803410515,1920203646,1768686158,470684976,639787593,1630843462,1077915089,865906444,1016647828,1203184698,2130044930,551866336,1848706875,523104743,1120934239,2117707003,679653685,1843792747,2007118022,403792711,55206413,891853816,1441436927,1539220366,404467410,1193935402,473831378,1703616926,1879423544,637652359,208055815,992632696,1947146116,779976770,1933684271,1942261674,172838406,1220049993,560183363,436055985,1337541747,611325928,2102162230,1935678124,799171483,622091977,1862616525,529688005,387380250,1748264818,2058539111,1765484630,280414667,62668601,1682928616,34974927,1306102374,1048311236,1048080141,1788565971,1195104238,966556606,1617907694,1903137108,357505500,307438382,355724282,1673934458,1839545831,1426888752,821204782,297371364,2071248481,1284032374,456919708,1358883932,575719844,498028201,472776624,303825107,792708206,1285875091,1691740666,2040047201,1136230771,714400931,1228742065,1969255088,1847817662,895353156,396966220,1400794286,282633763,1068170636,1140033532,373649768,1223432590,1372495241,2090926058,2047548912,1302924383,510978485,599548744,1092199649,1177685410,1692171951,346700689,201716805,247344063,969590973,1813882003,1345364186,1798650128,1751975584,1852633004,716097990,80614978,1582959802,209537650,2086520916,1750846140,1818368323,1663580344,1988351477,145649877,1488334063,663629078,1574908930,1680086093,638856417,2050599152,2033177640,1327556057,1392403536,1542111818,1552131406,2047731041,1099373242,1009560567,1392258512,748192198,1499335919,449492279,1828642912,1764198896,1535511997,742890411,1006803221,1815347000,1212976983,1771917287,713376339,1170774771,1721802404,1196064723,1410984122,1659180838,526661690,1943101514,529185238,1414165654,475006640,1784159677,1835555661,826574217,1702511646,138337018,559508101,1147227570,663314991,1758035609,948443368,1537821384,742543515,1494816140,891857499,10875435,1411180138,120275473,1155948146,1920617990,1871918610,381405582,362659507,624457622,570987913,909817453,756709338,321063401,447805194,406725212,669388848,203373984,563641051,1105653980,475581662,2025590310,435567152,1107030412,134727794,335799340,852124894,642718434,1284601699,1795884194,1535404822,962641784,574320491,74347456,1980934065,119492565,1617024205,751968276,1974656363,1872259590,1718994753,1672797418,949155271,211316832,994113878,804481197,138620246,18779195,1389061793,184597684,1859147233,1423060100,1883980105,1747604320,554401411,805860514,2051052096,1423967388,99877006,68973260,1225171956,368674935,1122651754,2016321793,970748237,1519885247,1388882998,794550155,1595729942,1383224898,1999917303,1602684097,1001282601,481790183,1072161945,1245078436,473565784,1054069601,2117871429,561287528,1895525343,1151705191,1145394983,2075684058,1223627888,832527310,805163588,2120563441,2076278392,649491602,1179909612,1142487098,54030188,1647223298,431599785,1000878048,374530035,1750933315,274293029,550461145,691707267,1204234027,798352035,392925185,1951988840,1108599734,554883422,759372639,1440297929,1454626270,425471441,1827562102,2000739970,269355553,190218960,695031177,1289156097,1777202303,554042678,834279852,6385523,1057463912,638001154,884874146,1870636302,821857561,1926998249,154618480,1110597282,1666121439,315751376,955258688,507078166,61145463,1306629882,1827050121,1740283273,1915019271,996300077,774811241,1226164634,1533631452,62603384,131838007,1095192438,755892154,642302098,361490292,631523033,1164994452,428203485,626270860,1225838741,195487059,92600078,353409961,1593581619,165012452,760582209,1344973576,1418132540,781724822,1316623859,1952807057,441787089,994343064,1271464429,353778003,872881373,1029013703,424954096,547563666,849514840,650129188,932798442,440007940,4777741,653736648,2049026895,715339145,179387707,343454502,563551532,1193042535,1378787495,1002632610,1335419463,350207387,520047859,1745527075,785011162,1220807036,1270095549,829429315,2028151267,1904362468,1488510374,2087067470,2050615528,436224550,1086455088,1816978642,690213497,1520292507,1192779309,302133429,1861263407,2081049772,16793002,1107989077,479591523,2072431746,1861032616,36264319,934535199,797620918,1002645090,1089244400,540172263,138436324,1819021190,1861477314,1747267704,1325335941,1341932193,1715808081,499230070,1089393494,1752888867,469117972,994449691,730820806,865095482,729356702,1807301678,862440903,1857478765,1083659385,1571652275,1818668091,1927575687,1964207900,1483217600,806714565,1348816817,1498236507,1954736282,1631613595,1830270510,1264965255,341631192,1673402885,1003759043,680381237,635266491,1660737711,115859392,709629155,1550217731,698904117,1203897606,1199707781,1802272006,371139682,706387205,1203014831,1637407025,75733970,122758203,1328010595,1913172093,1449457155,96404733,963468851,1117070353,316601450,612308990,74976705,750869110,860560602,1645799868,415672312,68761812,669857418,954526596,402483175,1721326917,343023903,364979369,1633543871,590125496,1927232462,335032992,444160245,123536542,1327831753,1428569628,107002464,1032853802,639608381,1996695997,737861061,1876074614,293600194,1326951642,17961949,1999035655,729578694,1371440952,1508147409,589504096,1948600753,2118890344,217688485,462202629,1993002064,655540374,737476600,527495829,479679572,308605779,1478829693,1518283822,1901289275,345818375,703362918,834286309,545650050,1183199998,1745585753,220904387,78745190,1232372836,1517699790,561738033,128037151,1838554729,176848938,1403680042,1603360599,1635181129,852678200,2059945601,1303652102,517002985,1307252310,1699898640,792176914,1835135092,166461101,768110959,1395192507,113798725,1134874698,1351444409,372173568,756566444,916196108,1924863992,1197091508,2066440148,703383223,1831605647,179645686,901421252,390125092,1618041104,103781024,406736489,635184399,2128457931,1408315390,1463644634,2102495918,1266737717,1421572300,578717816,1347737078,1453248558,1313793912,1270187410,1159935118,1082759279,1521555154,139550215,1886109495,513815536,1921439062,52672841,561313457,123757256,1405425816,140238829,654413499,1543960034,339428698,277915479,1959625625,630168736,1779015619,247688083,1688090547,2030290124,95315434,453556032,544696433,1611934633,1163006739,1032560767,1354136646,913364657,288286650,1814886455,1740821685,1519839792,158473618,1327411741,1905955943,305446225,438094871,55142563,948669356,721980300,2035423268,1047839269,81614795,720071260,190948083,447263100,276584504,450678318,159357485,41139909,1855832328,787928396,924306635,1811995533,564689370,780412104,1791773565,509283480,116459170,1907834160,1664045656,1668960699,2074101478,868550926,410581657,556957191,403018579,629463436,1950704400,1993517950,216867227,1577294977,104881166,787445582,452930792,618804029,605951048,1494140943,2118185589,2077652675,46054678,291301157,1439554261,1009944539,960463434,725940974,1407974787,7005170,1563502605,1170487576,442207738,36786677,2030140383,1396041386,933015464,222063518,911019587,967441658,213905855,1981295114,936915156,1636508459,1442679170,1148058002,1440028382,1674592502,1489067058,815038598,1204953714,273319211,127346661,307126382,2112685345,1148154632,698950217,1075483076,909619936,286067066,230538991,1449096207,34187619,831507998,344360959,1846017675,1679163180,1978284853,1385505767,1697946559,1176039033,1761402322,265066773,480988379,661650955,562531789,866541400,55395536,1114655873,2078098101,1891464972,235183076,136877091,753123680,926963472,929976273,877895982,633221802,1916284257,558545232,1853464231,1938781639,864013368,1276553321,747076925,1966981090,1935238735,1953673092,1946153488,1094995547,267039800,1526423611,826522917,1207289434,1204101387,1089908840,831160783,1413912341,446561631,602523659,889181649,102300082,920483151,1558548425,429530213,1870002126,1578434609,1220935828,867143864,619074346,1567551219,867897455,1122005223,465252020,1724109722,4081684,1777560505,474009531,1076819564,34434173,1524944486,245913632,1619010188,1689966916,1916567693,1226617152,1153225609,1910765830,920501265,1300843007,1976165375,1155852242,34877407,1407636869,1230677526,1944251222,1851690302,709198762,1198150407,1973476019,1619286733,1135019557,742302284,578520466,1603346182,1103179895,430137609,821446343,1006591979,1802227530,1866265274,802184588,197399975,77273810,923789132,267952125,508984384,1716586041,1243870543,1990321305,821232716,1932463191,2050888480,319264371,1811463104,1137368019,976613824,1840811311,18899501,1629130014,12683086,143644893,1716023133,1968912047,276359970,371779940,1501147636,962815129,646675540,675268038,2027153139,558478865,1164793757,163571426,562767844,1996098235,1141840677,941959084,1617876764,557918384,160647330,151269687,337679785,870693408,1039405335,1033264129,819042705,598284430,1174031013,1862123409,801447016,1736021204,918509918,922199470,1157482305,1908108815,1727865219,658097216,2046353404,1310079399,1869920903,512023617,619354294,5115386,783984179,1938939131,138603744,157280192,804559168,1758572076,1959283937,1054227387,1319595620,1206390467,116050000,249718980,1684400200,291166097,1744634603,1186854218,322455993,2036788875,365620989,2057934351,705603270,1586046627,1528591810,2007202404,2002209220,159325270,1293981259,121894117,1475961794,363666019,837919838,328130497,475378534,1484370378,1897822261,330108182,63776980,634317948,1531521437,1497032550,1475048736,946959293,1081682862,381129648,459937688,1713627867,1230424257,385694981,144125628,1324456171,803272825,80955943,1084724783,1012805326,1247450763,2068362377,912628467,1015142323,1864348038,671611503,1929713550,202378312,1289070863,998517310,1889503547,1371291492,553844147,1439150534,1814589218,555195941,227344971,964004569,1438779662,1599126428,150642100,1279399467,439003027,1726093210,1607750900,1707510805,1119393791,847972748,1843081300,1136693199,1998607317,1511104816,193552790,211487694,162751805,1319218015,1765084312,767364968,859736047,821836243,75667822,233665769,184336306,1394096110,1379230920,672690930,1134883267,339578835,302849068,1058783082,1837410769,1628564519,1933251903,1005136941,432644136,214048643,585521662,1482900037,1487607664,810165117,1569341733,627503334,2008465154,1092279373,1218035447,1059475163,1255242816,2000128461,1628546344,1733118335,361406498,351002351,1625091327,2101966664,1996928305,653898865,1142431192,781006499,871274381,390914148,1178742732,1430160528,414812539,1143910720,1210492646,1790405901,737744898,1033702637,1851257250,796145167,396423810,870646125,1919800216,93422271,1220932776,1721596922,436710848,2055661301,1124372693,697446541,998096506,1024274368,805010721,1901737203,1128588779,803613571,301028548,1181043127,2034709816,211753455,137821219,1507914046,2043526779,1282929499,696701970,1160833978,1771124046,2014291567,385949295,1441296006,663902366,1697701326,36706980,287081358,187170154,1551919134,1626149732,861678065,202576427,455934785,205468998,1979285068,797550823,472858433,318399513,454975287,864257244,680380733,1953752416,1643369671,1710149773,1476125964,34174771,1786364927,1992709795,1556019808,259069582,446753094,1655897307,994729520,1899346374,318732723,1053800942,851745891,158899353,9557525,1389251254,1496864414,812188818,658392239,2064282233,177007311,1489493512,1582070571,390142955,143913503,1383718239,685883278,1370498826,116961090,1126758238,428410893,1175051940,1930226226,218299219,1259143050,1554642161,1861761630,1366332031,1560411369,803990619,2029063348,828450261,1450327549,1814811954,1482053034,1501148957,333695862,1489746651,1572759953,1582671271,416379578,1111073329,1269467175,39917377,1172416849,1663361419,1411153765,42582458,1670593677,819281927,1307974609,460290709,304168837,1491174006,1864152826,1595634341,238024215,1765898096,896307255,977164358,1036795086,1078164347,2086434991,303289815,1937753512,1847688060,366157947,532390928,1335705656,2065915802,2029918777,1005703092,21749155,220370574,607616346,1600224119,1282564715,461560264,168648005,1861460414,342451920,1411967071,255122371,1339011168,151940284,1960120421,190149359,1052529727,1802087297,1003926803,224712440,1036609856,734016217,1230339513,2107169051,864911955,462379074,1684302053,583288137,678819362,835570286,1500570456,881031421,2125667655,649728240,1135058478,328793423,333465352,537164893,105038401,100050638,1610742563,393011807,203695392,342458408,1190796845,1377584168,1330301822,1033566763,1002912757,1595993371,1994002765,1839618330,776265850,347644268,906744447,1666144620,1537636449,654663859,1369428478,651405793,2052575282,61149236,1560147244,741821827,1679955284,1883885560,2066706219,50290373,76756727,86685953,525974055,841397765,505970096,111896910,2128963455,972372451,619351099,277828536,736823505,1112052181,1249477227,1249891318,223230801,1416036762,589412595,319850783,1183663748,1579648630,162353984,656345967,1004388594,1739738493,119869407,223233224,1353781988,1993315710,1849655691,259130078,1670009235,1811237474,479180810,674210989,571268749,293008698,78375066,2067319691,419217646,134011279,874888183,1106497434,1602044279,1536189550,634264593,921314603,1225174585,678624262,915359829,1037297282,1580454222,450163782,2064734030,707541299,1204104189,1180417238,1424540799,1965834810,616524993,1936957024,1437072366,1132103606,238823117,1664617178,1197881883,1749087626,966570413,954453819,1600992818,369498025,1509421546,456608504,1916545931,1896259606,1122248413,1262217839,1830830308,148344464,610473257,732723669,1828016166,663147884,77596790,1891036905,490834960,485008573,185014991,1890861306,1218143475,1663594159,1516624155,104017751,259693944,3470999,879103525,1298697497,1903476275,893802974,1238089261,746060875,301143039,1146936119,1660850507,1165381089,1927769342,1220559919,66617568,1931599423,940070212,132168117,726793774,579131184,1465638760,367184071,416183493,1280037419,1597187385,1135715886,1718051744,816547870,1519510264,85954358,324670369,447279771,1513341326,902571651,225973777,621301000,337330175,1242362516,1740509738,905865377,1984105752,847573081,777618596,468182547,1491701524,1274144090,2023264417,1438744041,199398518,1721197304,550114533,1940809115,1592450566,199886333,775003100,236389121,2116084917,592444367,244950571,383355823,129850597,488230760,875179172,478010509,1310495609,546107261,1102283440,301525751,1413087326,402905858,1686724881,534290204,693101016,932886579,1723892253,1706729648,208264311,546949625,402918341,721776257,1559192042,524316432,1735024527,845351091,1704297076,609694440,780824239,1531121487,789191406,797154675,1671424668,1814749276,1710259764,749791097,626065271,461158124,212795716,1631369128,79340521,445445211,1723414085,898249065,1218835959,148560684,355492455,1739707533,1624284408,450511148,1747106860,1546317664,1192037241,71562427,295400703,1163124176,118311517,302206992,2072372401,1953773635,1636167236,2069294577,194037041,620879874,509004643,413802271,1842455243,1248385899,1625631093,761332945,391125308,1656841094,1336375663,1487233904,1071384592,745271929,734596824,1426000949,1599601018,659591311,624045463,984135137,562949810,571195486,577028403,1613010416,317245635,1730547719,1758412008,31944435,1610913767,1600698891,1157272,1059017766,1755478800,471475924,1607331208,163819508,1181662021,514651889,269545458,1524283297,1456081215,778277496,774873080,1794504975,646681800,301028632,1419382206,1587385633,1096310646,262776279,986912598,1379552643,1371114478,64658604,586851500,1237429057,1147920318,93918697,1908355892,613846986,489173121,1336311742,122992781,1232352356,818145202,1742139282,99904984,113093128,17090924,262801737,967857750,1791070065,392851502,1791428779,1678915082,143126752,1193652562,1669423647,1347240809,1598409176,1213785082,1517448681,1510624216,1898065101,1563557176,35589208,1919072093,1644628152,1248115272,586062377,1707568819,133158868,160815163,1788485171,829156915,1533303363,358126969,1487842146,621304893,689468528,541931157,1660721693,952503146,794632682,481679288,1041535132,1963463838,1756695058,1436597355,2021108276,1870959037,1106080272,662077916,985107588,535249334,1448111968,1255142003,554230640,835263770,1879580235,1180645809,819109782,1921418150,57607270,1526906168,276347344,172274044,424950035,1108063381,1857358523,730706535,1127747801,386514060,77647980,1538835141,601085362,217627565,1316187794,332487734,1396821318,893827414,529068476,718712965,1667365406,2010184586,361698424,1080919140,179438754,976517181,446004966,1083646731,116518226,431320991,724964890,919407881,1415869877,1762626996,1626341549,1666507516,1685153254,2001616776,1096364306,619101154,1053172304,348253079,779714502,97924597,1745450115,1643084360,2078731301,1121277505,1267677269,1161506637,779939716,753548600,1322719638,968473027,1871611488,1298427180,800873107,1065099090,730221566,1721352592,2027368782,143409113,804930176,1081480821,982265033,285973384,1502349094,309391783,1443326181,1211353972,238163265,1332560788,557057603,1267806435,1212479331,200427845,488807675,657377731,2091929133,582340270,582666128,320312413,1755349598,1987616717,949552105,1826604019,31807485,984441213,421047518,413473930,458698202,682816338,1465376578,1852837553,2079000240,595788791,1929444190,614485317,1196608012,720768195,248348844,466145172,1901317005,482564921,2080277324,75049969,1525626985,34616817,1160483390,1860222396,945036950,1221751367,2093050975,2057146975,347547310,843074289,2109978312,677271263,132939211,90884770,560046953,1636089898,1475590966,1769288266,31894125,698107637,531829274,473809038,753730226,527078658,771120230,292439647,1199706946,1877996098,1195979573,81528175,456806373,1787875953,434697286,1175198121,1198581933,1039751316,1056527477,891011938,1817862669,1187299303,355253039,1011948702,1655037127,580822817,1719786485,915867070,826440448,1038810150,549674726,763819679,599803197,256143650,1730863162,1474303415,1617287627,2116342591,109329681,170011486,1214668293,2046445892,1351446847,1911478027,1397620698,447083451,865711569,1509061579,1099169215,732313279,1799661501,902080637,612120723,1655160175,454063020,38302864,1788367852,1392133343,1773444471,990957997,1376222474,330464535,1055990791,1356357869,26720500,1915049233,1971558809,121042923,1177890921,288313137,995599626,1170685194,1371844264,271745777,898039362,1326127625,694614615,85420734,473435855,871698627,406929752,1364530133,1941108126,939242441,711125325,1209502672,672242417,63862107,1833293993,1002203804,1211788493,470652948,1593373986,925445355,399107510,1868289093,1714466624,1228298436,1288258390,1453308740,1904733680,2083097836,683382728,544374050,2049098108,1967812433,984657728,550069525,1387302680,2010567304,310788652,1946677051,1244128691,1008577955,1272134066,465514005,1127947588,25609159,1741138021,1726002672,101818378,452081363,1339141468,559545297,813746802,1065552646,531674626,49588370,534930483,1599749591,24871383,1946491537,33018153,1274500699,1209863842,575810312,901562067,1389316424,1669215214,1261380657,1005920286,2019411411,575468678,671546348,1119096682,254897998,2017891983,1282676886,327273096,1961058643,1627904893,1851217218,830342717,692039717,723282743,1336246456,1867261057,536146559,2027308689,138452190,658433011,2128775407,143088830,1315098910,1536780603,502414809,750803518,111867403,602377746,709975116,1490254689,558067448,847849076,1962704664,1000823839,241555768,1489956654,482207591,246525791,57275491,1003381272,238879963,873374076,1592321012,957543768,1256901578,1167535649,742169105,377571714,478387032,320734986,1082590855,363125859,111411891,361279627,1261256020,849424288,1644514865,1137574196,1370395091,299741418,1146916799,288335040,1279459118,1368014836,646635020,1248488007,1990060849,1409694039,2093623734,1068665013,1922795117,961368491,2011510971,171696735,125670138,1343507821,946471396,1823855943,324182828,1032206896,411146791,472411921,1439980660,91257555,1971610496,679176272,532907119,1937574110,1219102606,2097637771,1257654384,988597290,459633448,98912557,1029444692,1832431525,1301706920,1343596510,1141312650,484952615,93786758,784420518,1267313768,1318389246,43430939,1335418696,861857808,1551785728,2033320644,1565136476,256739790,795480578,810514343,183723494,1598046786,1815418902,1966636548,365593558,23240087,729631222,1479980894,1705013304,1509053823,1132176685,1834704976,1543209631,1545697971,1052537012,1563124123,1419203046,1602396043,303310572,1873461557,1876609707,1259397619,1412289583,1231259164,966940569,736862873,840595731,1077558447,795684792,2015150266,602255383,1273000346,755986664,1805882413,661138100,144265837,823712532,583360919,1068712598,169945190,1428221516,676755283,2095693436,1381072004,2083968118,786928627,1131763727,532242293,526010030,246430495,2121975656,785266809,1082386701,1647916589,1921141860,1336396674,1874040804,455094365,2022124359,1215363271,276086307,125670009,90719136,1863092389,1425346013,1631001829,1190590074,603289435,1244014852,1673383740,1422033051,1207226248,14037614,642750081,1728378308,1119746556,708521942,268400446,1055867498,134533884,596354317,1681957595,1948450738,1431213325,35113300,147683453,1225684739,1229918838,1865985768,259251211,844252744,293695873,2011298292,230532755,429890098,871014467,1660786666,2106294221,22001467,1251965107,808287185,668952419,903149863,1884509792,1860216055,1086100358,734779475,1659563064,1125624945,1792758751,719294910,18439611,91811884,1246395405,1788654429,499175568,718112255,816463777,891016779,365351013,29921011,1557926287,527266343,1989117800,1055257378,1056526085,1438509517,856689360,1684633499,409263195,529132049,466083474,565524201,1641128886,861960296,137161032,1186339411,990529434,938479900,1373959243,1922751698,1326904132,1801392998,1959375441,281769722,283387931,1135333944,329187961,1068504345,1518525882,1257236049,1743509394,33375311,2045114866,1618597867,1918980218,223887331,1345258000,1532612039,1489728611,1921105598,291180107,2038934822,571273069,1018359445,598619368,281467604,1523440419,1167221712,1481657734,1634889235,1753720483,75530948,1477028560,1001599035,726273548,1129967295,698368880,1846813159,597308514,1803751098,2018504937,693857685,1628766704,598440244,924989705,1532649944,1405967288,1319978264,236466032,783173768,1946424271,1002391130,691204642,122198947,1399162845,2120679306,1098326417,1623024696,1224160888,1277705277,1909364890,529365835,245425328,562475768,1369023568,1331569268,921442205,1971682358,715638545,22765317,443893560,1096917024,479510963,2028779024,745599422,222468572,1595522780,492586461,1712958597,1301658349,1808405262,1053725124,1176446809,813976869,679908618,208817363,480575145,1363477604,1359440228,1967717791,1555013688,1796234860,1195302931,1589347775,88475397,888467782,336901951,347490833,52667824,1124939433,970155300,1506444301,1019051667,1992387372,1637244313,1496141230,1437091322,1995425528,1922907086,1640395708,1729976606,1863907876,1810351240,2074692751,979843174,791299135,1587699989,1093605614,159833257,1448472020,840648054,73481599,633481425,654373893,690670081,869265923,507373663,768578808,341455635,1384717968,12877170,1889130382,445842132,325370124,394853789,1934333967,965063953,2108363350,1185925961,1545308973,1336245560,1200005591,220624724,614000488,1138387365,52456854,947943291,36778469,321908945,445406537,338852603,1012602511,1503263058,687491628,1877665631,296431652,1522766586,1710415807,153491379,1570755938,281414582,969256485,176608625,1327846871,794159688,354382321,778316056,2050143806,1485291848,1641547519,11094093,2034142123,463303295,1331062296,1125887178,1287154640,449195717,1735980186,1436011859,757206877,755983323,1889801576,1857436575,651981061,1425706182,736566997,1176500726,1741061015,769695613,1035946761,2047148178,2060122500,585685051,1160277468,1685507170,350919740,616062880,1132789676,667987643,1038809097,1042510256,1040222779,345589622,769237814,1614225789,1363413192,881724831,811667159,204765844,1402874681,268942672,1279731455,1928412608,1548620344,99987333,1433876735,1632935635,1384547144,1412517095,203633960,1453358579,889045612,1278142479,1913086820,1167212989,440584032,1234754598,1528260784,1973434642,1477512366,1894024980,1594642013,1571746028,631600200,1460744038,578942308,2058037731,1937346378,1550950091,1919122270,869222070,1691618453,307298802,1873478046,1381352849,918697154,733022425,1510991852,1144687791,838133148,87775645,585017848,741423562,798861836,1556588662,68509337,807643714,833170147,1008931462,356620568,2093175829,1158926687,2020007275,2007485766,1114440805,578231693,538918549,1672916088,828708915,645239530,186368991,1661943461,2003576096,398756861,1539829139,1017191842,2119335065,1504787336,1280713644,2092371654,775129058,1851859382,1734759073,1978286656,2073084396,736431794,1419541089,1829341904,1519976175,640195462,1315965588,229151205,1300396909,993932912,720117465,742016404,64084792,1581331507,1833966408,1888594058,1276590308,1579948032,1139625461,1249827494,435574717,2088918624,1449217749,153169684,1247039854,1704449468,1854788607,531663730,1731701684,1144237815,1075822891,1938661679,1750324982,682953544,773624116,487069395,44859831,2015530182,2031192096,1408594538,1503239580,2029502005,1189519150,1166969726,2033324421,1986800121,1738045586,342247951,1125186435,1893712593,1944607064,1275527929,149790226,1048789302,74571868,1174436260,2015522338,449112560,1427872055,1730627591,17880023,1394097555,1034630215,223093617,1245385029,475910488,223759808,2043528567,578854983,270066004,967808793,1191493200,312906229,1886186459,683560259,488092470,1278830132,995738717,656722660,1856725989,1111541935,1892307532,1943242448,1560601345,927318474,1721001454,1915237728,425790727,508216193,1951113230,897952356,1539802264,1897655352,655665184,1229674691,264001703,1334907533,346280112,1920072598,1594412911,1429180262,223790737,2083190539,330694623,1493720019,806873798,1148284685,1196683366,1373386449,1653264914,1911569907,1235364109,528468906,1447544828,262582522,1903033563,676358681,398819988,1125920780,2044933809,975678493,403164683,1290646747,1915697707,634246994,2106812575,1283727171,655198600,1590702244,1741938090,1453551997,714021461,1883999184,1488189956,1752616887,1175334613,1110931261,134769295,848249539,742509738,1504286851,360325660,1377958669,130348892,1204073529,163465834,1396752466,1182748209,217892475,679960396,1108350699,2108327008,1759105232,533395300,798420826,478008458,1446011256,218817860,1297025906,1473084422,1821298790,1481841034,1541860368,537685461,283598836,549606671,516361213,2127799606,117763837,1831775037,692118106,1038666751,1246915697,299469183,359422992,664143718,2072608551,1467992510,968754904,1730321458,1645428037,36893778,1542562852,178015655,716720233,203768774,1969684210,1526708662,349948209,1233668547,1959194054,660127806,1693883817,1024703500,915313837,991615106,497709287,590038476,865851826,1222462799,439861672,1797909560,1088063919,1870353392,154025561,1211344581,1331139669,1481087569,1247626033,773699172,267998268,177616003,1545258044,225213101,1538488056,1802785041,188997637,364894578,1868085325,1114509629,1044421471,815805773,354055412,1147330760,291332927,339548112,227103104,1130464068,294234174,1277683027,2044520176,630794205,1535368689,1113237054,945983186,27553079,364097422,1559669783,1129049621,2105403088,1101416450,1268844708,663259586,671824597,368679390,937252230,1745663093,633294556,556038216,1593666023,1979660079,1694907215,2049693745,174274541,189241319,235213586,1842024566,1881475018,785743422,1939005263,2025569710,1978209110,1641610532,1416468081,2116554994,938948548,204380695,998929740,548838998,1851460430,659765992,554346224,1599183382,96744057,715907028,1941129615,831562795,601105281,1230855576,1066181073,1365448180,78902406,1603446196,1658943492,1404408606,42337319,824522675,1622049745,1772602947,220812512,1879873653,1857262729,757898206,986080492,1750071449,1111612943,341907661,1880192312,1985436023,386741618,705260591,1886101088,740785770,327224229,1495312966,3301237,1752852102,1327426704,359645717,788098012,1013453587,950526453,102287530,22050152,1280146833,408953631,1980734652,79533559,985666498,627586616,1294607810,1003063045,1623853648,573720720,409148578,1549724574,1953933985,596851531,1059449455,847919266,675461784,578156911,735097226,739842871,2038326454,313826828,1311281208,2083137979,1903901838,817881236,509620426,1882838992,762100295,686663229,12030491,218405378,378752313,247521790,1759004944,68979391,797609451,1157374987,1387411486,884778861,728472041,1867866377,1414581632,73675118,831536829,1148533902,288220164,1516412704,1163508808,1217279932,450085724,1722560018,1756620467,990849274,916770689,1613364476,2096315700,1556401518,1827256789,786406447,1128604144,1049396074,89528985,2072727167,2028116904,221964759,1623839542,545246869,1409077877,1819198523,1973257164,670546247,941006505,1103505809,515109121,1642055047,1637156419,1483311473,519526226,1711523959,61992229,1016441262,694549227,750734833,145715728,1011467290,1886201371,1231122551,318726380,1602656502,719091972,122025354,1952743913,630745448,1330116979,1858108902,1991222717,512602831,1083549132,57756126,1706270716,1522165533,1134442719,1504882227,1264580412,2124587314,1614809558,1062624525,886429635,810346586,1476810738,825619615,1917791973,2130213753,774070566,1221522302,26666628,2079336479,712113762,1283450864,154612991,1214759793,853364610,1264186914,1312671940,816794140,1003081903,1971219245,288487639,1824535809,1528921818,66165408,1662870993,705735084,1722025936,2130076453,1692581214,273981406,709914199,1479451957,1451645730,508799014,366147700,1607024266,809668218,143725678,1760972906,375212951,1265989629,1200401895,2032197139,496950071,1456350577,2026286099,884696023,153674075,1554777103,830487926,1031549477,858134883,1986952611,537384332,123259730,1425694300,2016022986,860624809,367834610,1252591287,976001125,330791519,1497970786,2047392169,992494923,926038303,1324858217,967703029,1463748137,1878838760,1364989111,1685622149,1190112802,729908685,808880508,216860860,839573627,287392473,1878542222,1964450229,140429920,1148236745,1923816764,528383123,953779626,530728074,228060018,602629442,1820256363,162445093,420299589,990617699,370790607,397297813,63793585,278558238,616565883,616395972,97846298,94732139,2015269263,972735500,1428527458,1180110271,1491315339,1843704297,6293544,1379592722,1180116827,173322183,492324393,1010847753,1674006714,1526586856,166223629,1762213858,859338202,1952678666,355783348,481014960,1569487751,1881346892,1543662785,1732001936,1716380258,2043492612,2104050211,1269060327,349209851,757997793,139704890,1076706566,1279724819,579712661,1030702995,1100895130,2074572927,97844154,616589419,1338127976,2088743864,1507413845,1703835717,107152393,1626803665,563656701,2915994,646019550,31267987,1278558237,536244892,1166057319,1451855908,285645320,1735826026,42216684,832695214,1255883089,1324277782,956704272,775787842,1232712934,2130261954,386341240,132961328,446792871,1838491491,732232225,1237663980,1434553838,132530832,2111436680,943444144,1029905789,1726704744,1615674317,1176077509,302983487,948643697,589675451,919237289,1293607352,1592075787,198052047,1360026666,1012304778,341009247,1842384057,836628340,632911646,1462325345,26446753,546017055,174902629,981044823,227519053,1169653923,1331355228,2011014569,1807066335,1436464252,2039502013,1112546647,1790720584,1520795526,314838159,2089778636,535261080,24386470,2127545285,1742971459,1183223949,791203395,1996163780,469781394,1088299826,1180779532,930186791,892440069,1937317690,1072315204,774076343,1863684697,1087658640,1899282576,1757316858,1484852191,467361324,2076704705,1642586613,121197503,408869799,1792477665,278093513,107718308,913232961,1996417735,1098840031,1573630245,1190640884,908829783,1407695604,843410809,932141283,920674570,860498458,664721211,169706827,700568486,760850886,1329554282,1363706968,1882056830,1488957908,1184573959,669428542,1043610408,206137268,1386811199,436574691,202317555,2081574979,1579233700,1066888798,126522105,91407382,1844620971,1432272438,1866047744,432000833,226334413,172737539,1231608778,580365652,249178392,242325009,940613659,1278708988,1396919872,1189692549,1563659788,1796277234,862107055,1452439371,569017273,832945506,1270969326,255032060,1150668543,682672496,960949046,820620348,558826576,1995854962,636715069,1196731920,1985096350,723809052,1249753642,1149154507,1652094930,803234763,740931967,662853616,663900396,2065845316,1475771109,1482714617,1944710831,1364658784,2122288085,886305105,390610467,234913959,969078695,1768764555,182455318,993332156,1098679700,1953006188,1227613992,1703736117,386204183,833385589,1463733020,1966977559,963136917,164309240,182432499,1802602622,1052640679,1919607994,887952270,634406365,550545734,667767438,1265866574,2093078250,511007888,2088014889,766501587,2117436855,1892106220,1215707934,1593139169,81208690,1823763286,318396253,1078508416,2036394393,461726911,1843182116,168841925,861016723,670932161,1665467700,868602055,946354132,1239496500,816885201,759968295,133103882,1010302831,450706187,1593919292,1697711910,1344381707,696666344,1816881769,1544162104,654470003,583081080,1273463435,1672954484,1023211283,822904365,1658999339,216643802,2007559646,257391423,121193115,125923358,904340298,124923800,221488289,1453859025,172072920,1697171909,1992959838,776592160,1255806195,649144778,444916098,486218041,219811667,689563766,419771883,1921449721,759169824,1619835280,959249063,288982887,583461040,1682175092,7952922,1562877943,1815139637,1591632893,894521897,598670505,65992247,1118189706,270710687,535431440,1865444485,1674526685,823652921,1086518657,1933044849,1722327424,2070028759,936208088,336668877,1218357212,1063897299,469805056,446840322,2009930695,1234417502,231999180,1541850146,1964426497,535421582,1797534847,791616766,1742625490,1241646007,1662628926,1297183200,803690179,1447891,432935068,1815223497,1886296064,1839207548,675214952,819163150,1161186029,1586821178,1766034973,1973870194,1764191969,319496447,1462808797,616418876,676270753,2124111014,1716953475,512580130,766452136,1860578208,957063712,1743924168,1921992798,1629791698,581190364,1408469918,1393136953,1795352213,1519027658,1723678647,612467962,145178595,77475333,558750589,1326361788,1557475378,21860504,1830741994,662384785,196435567,1687057870,299449050,1467061667,320471858,1541846182,1997757398,914095039,700001597,1287593873,145466325,762464730,122217839,2005664704,309943426,1421495639,2123853352,957987513,1698626949,1833809315,2057625073,1444970849,1054300953,1419187962,1556151206,592852361,1856867388,1311201947,2052365340,1726841963,1868952633,1685970307,704477321,1024089530,629383006,841314998,1224162170,927990274,1594955393,76851198,899710789,435047241,1858835731,326205624,610470163,1679185206,1864806019,773250667,1326687544,792251907,1350416642,1630498720,887019876,988739481,533913875,287448358,336780305,2012807343,401482002,1099635739,351570141,1724124905,864960579,1622494402,1125177238,943161412,1317025497,1974463046,1504886120,1461503577,1372294011,1502431856,1354638462,1343039023,1577344592,258586897,629769058,888081665,1202006743,1023764006,354359933,1903577643,712013287,877151440,1254668915,720882063,39280368,1437595092,224816178,1781325,616924696,605589675,215816406,430879634,876559882,960430580,367113207,759890909,1905426487,940646555,1766754381,1544468606,16222252,482958026,1687748124,1675470833,514543116,858971491,1102383500,1335627201,2068587900,493133179,1744801042,156190028,1484190253,76092431,1450782536,2029945384,1843872233,793514830,579058665,853642933,1562070836,1764177488,2103235157,696388145,27102972,994496348,1137440128,1708530590,341491277,1034911212,1205779001,1556102033,415085979,1434536693,722654395,1698927732,582195272,1014141817,1016481397,1205148242,341959064,515062529,1508200036,2065007307,739986064,710978956,575789288,1667306436,1071232893,1438875792,836434075,716153513,403778917,925319184,379227030,2020635691,301791624,530232218,1961004052,703041677,2007411698,1997512586,362154204,276748864,844146218,1789721296,727176602,488302337,1073306980,1387263999,927961210,385126892,54775986,219391219,285375295,1858038200,1802739524,952337667,71422838,1249886060,1527454743,984861629,1489952039,899787917,1892641265,1535963293,296166255,1241584714,447101372,1545998813,2065260568,1566508997,1404040511,1705747262,1957247137,669573550,351573582,158862750,231774211,228517270,1920587209,1461677196,749776685,82877724,1395647261,870681995,1218875654,1924877302,580675631,1644567517,1816500542,607241329,579880467,1343981102,761378015,286165939,731648493,1629042129,572481019,834370688,43440077,1912307345,2002701410,328950383,2068127101,738271175,1313589826,1677250445,2019098351,1741930930,1669447891,815744330,933250211,1506622645,857062338,77922635,775110514,275952642,8988079,883631877,1482755134,157958290,1216134115,576158586,251987175,813893495,1890779069,888897786,1998196627,514501923,1860892274,751423240,1963824028,1701509134,727315812,960738132,1094691987,956760172,2034179293,483875666,445943613,1878661803,424750041,171575770,234442671,1392023694,288670144,1088612521,1106876019,1401776974,1040567473,175235036,781964975,658824262,1826123865,1050573695,731562367,1903154101,942172086,1833728580,1306178712,1318817030,44393118,1234363840,130115843,693115626,1255507574,1726171263,897980912,1784715222,1178861368,468707944,538686082,800004238,625420861,548334991,423103079,1242595605,2020685622,1467025546,1910348480,211301496,1388616178,293495129,316039929,1644206114,1039597491,1670560034,1525912401,637427370,1002025123,210071645,1032144280,1168835546,1097998585,2009467315,379068289,433421723,1757708677,418809462,637947524,946807362,2049214397,78045137,924074821,328711816,94484067,1575318144,1325791540,1835494211,296026708,1769041976,957401963,1674545740,242476389,512969362,1519696648,643362675,456976260,1443419103,2050772267,2108175044,1032760466,1552082064,254584191,1549550012,930992243,862806026,492316521,893766742,499750252,1193380754,2071642402,1054184427,49562636,1918255993,253160293,938114920,1905628387,656309276,1594601876,1442502878,1478655731,1163785101,562807559,1623706730,277416436,1527449373,1903485645,562525508,698189964,352125717,655643568,1384661394,1007660283,707503979,1154010869,968062602,177932056,2074186785,1698002982,308266809,112564799,458777254,1092767685,1788779799,1953806998,636246382,1912374334,45308591,497244613,1421784170,1321968471,1349914342,669131721,1249309037,900115106,1414400555,1243590596,1041719198,1763905169,317393603,1488089442,362099860,1884579727,1617471624,2095393964,1516872799,1863645507,1158399423,854587852,1813692688,2039070942,1228557502,318962532,1208110485,1725161841,13608983,1492470217,1376059314,1039164527,434927667,766333074,2028082747,438723579,552187065,1874238235,10824837,1823299814,1018842465,1669187529,1697603221,1820884508,191268087,1208597807,1559861379,434534392,2038657767,65141504,1679986170,2018010753,2026697415,1460466174,554039155,1482269705,1055191828,1097293010,469477491,2130503007,1765231260,1086189734,950608211,1034284546,75278621,1388233660,812430065,1913467348,1024430963,1520080841,10305103,1160956459,1378171985,395378742,613295326,941936784,1836903165,247972492,541685941,2060232380,1259430140,1095499776,1032620798,1958661333,438675191,126547808,2109950567,68355009,1950964663,1149438749,225746038,639746942,1045610956,1667661178,570776259,2066939271,2047554154,1933104205,970911763,1488801158,374043887,860463900,2017455213,1519711090,2055624077,1920716718,1675110271,149358650,1830225145,1302528114,672106075,1618084835,660722740,1245647946,1234883582,1442716585,2075065398,1181785358,992427930,160079951,720249042,1439637772,1823113933,1441721188,164878601,420185834,153624240,887836802,525534791,1650171521,1681604905,181880303,236840557,933453310,585460911,868366100,968442643,1623675745,373420949,133329765,2068511735,1618032695,1293155015,1694681664,1298776717,1067330101,570610677,1106608407,1156868740,592672928,1341222629,16383033,277967345,168170431,838880771,690772911,1629547222,1197176726,1268981464,847976964,1874284649,95430204,560495192,1447491116,953740553,1428224976,1720321348,628396702,1356267582,788596992,1945288701,564792165,1806678533,845272045,1739654729,725470695,1004932270,2095197453,1725645989,1057584126,2000309503,1933573360,1908659566,84198804,471340591,267390114,1194141345,1005995479,1673141569,1077054564,2029046994,746807321,1344628930,1758528621,1231907005,1504395447,149434583,1091273573,882076742,1122416938,1139675306,92809826,1285014355,386169403,2046852179,345526326,567645032,538672949,1189444539,837474513,1699279273,1343936262,1205650354,417003407,176005221,1599610967,2045468183,1763110040,1405137183,1240649702,1642107497,428540340,2080142315,1663967013,1396556043,717847307,1860126495,1270651523,719321641,40247771,551082452,466961726,1862930816,1006528622,140446428,1190002896,686333164,1481180028,1792137230,139376187,399700741,1422016104,1819751936,152042773,1277474233,1798642642,2108243644,1015476515,1853326116,131281217,167798942,951926778,1947713159,1167950584,72323758,1167875082,1290432972,2050241188,1870517254,737168469,541397056,500079181,1792469288,807281648,36377790,111989154,169116651,1844782215,1090397297,1735655510,225184305,2113848271,1413300376,1419800484,1042944236,637535735,51562333,1944708311,1870299930,239808139,1252614126,33330006,395766661,1544210831,782182702,934153354,1639768213,1123924871,1015371430,984436385,1884380740,388394151,1833805520,1713367924,743684385,1774862415,1360041896,1560675397,1778363696,974083481,1905626930,1853274848,403754487,1298127030,980200363,1958449272,708575132,566914855,1629493905,320891919,269269735,151011041,987153927,847439823,1547794607,108802242,2115101906,1809053438,232975775,377566074,2025284255,809423550,398935787,685357344,807444874,1177194235,1540232333,80579096,6812199,1894120887,1648295927,1446148156,1817243122,964035033,2047633985,1328219019,1478923249,731252625,881165211,1554408528,196094876,49858603,1091352992,1706762188,273920226,931779279,1217172010,1565175706,381171437,1220909417,558657209,1404474183,35575319,1096699664,1556123871,642694706,941687796,967571209,1961356854,1041642038,346969274,243168927,1506769016,344035756,976241946,903772082,661044974,743017823,683855361,913412957,385709664,1862351319,917750628,1726020300,1022748184,1074465193,1009790899,423060909,27210800,1162976859,1564531204,801597466,1403993722,1265577477,982809190,102719090,1000171613,690243129,1505040681,1099564529,804155136,149926429,1272147139,45422211,883341444,817143267,280356336,1703624588,8255243,1784941118,1683029797,1928582800,2033741893,1983523092,736167951,1450079713,1648815690,854977095,234917448,689300235,498624091,1874766614,717960446,1186635512,1806073595,319019018,128703879,1027085883,1058564771,736181400,1000720240,1854078011,96352413,953118337,1656331000,727301897,543294325,2084708625,475512217,307327238,141907563,2049485056,2095651470,14835426,1721263335,424254130,149083937,1732436411,1739485393,51600782,1708776886,367435997,1193100514,230689760,718425009,330929639,1749479864,1604774498,1409994840,1126810852,147441571,1798164938,1944801226,884928115,1852087233,1757520757,397178968,1769222347,1604144652,2111341856,2123124754,1030076844,505751963,1823532429,53219753,2103015390,1830225702,222125115,957140493,147746659,1624544505,365464861,913319731,1120515543,1258786441,13844617,1243519359,761755840,497368495,1234632978,2074799588,1572774201,290284383,296532760,1570601927,1969195515,431813418,643392079,981718686,899878826,832059448,1963553376,2012267483,472912354,259667314,949579830,1678598783,452244012,1058367428,1694036445,1552986864,1652226040,1955858433,1355169896,874618637,1228809929,1899324033,1158453676,205304777,211795500,1009105283,183361154,241276371,2129695107,1007694844,1158618603,2115926766,1492156390,719300203,1823090556,1644846160,493380065,492734632,539363168,835863127,835641405,777439851,1097072926,1452825136,479696106,1352557069,981996288,87887692,660894691,775917589,458026503,619342430,1206094904,1557875929,1399374526,1777736032,999298242,1276519073,189262526,240792558,970512549,1188469651,1344805473,1027324199,263732174,827262834,1106936754,75193624,1907950452,1633163730,13958082,809823004,805287481,1467163181,943195004,1797128131,785449445,1616034518,1125673881,822363895,76306270,515782259,2042832017,1284415814,836161423,1694156905,327137612,1707355343,920866896,964515333,461049735,788344636,1190838286,765165490,540738961,1183220150,370896556,366453253,65980330,1964046975,832682739,713535870,186317894,1947527199,147948556,660383544,1658443630,1391964333,760018434,728982504,916280300,1642130663,1904081945,223054202,100836080,359576858,1842640971,1939874739,1551431413,719458296,2078119107,339626337,2030120036,618776580,1428612563,1505283196,1716775386,1801538601,1587069684,1035272886,940145674,1061871393,1584440793,2084712695,227038761,949784546,723628105,1888596129,947967854,1865394593,1370636380,502672640,648210588,810662144,497292465,1891400996,1751162923,2049971786,786588347,1796545488,1941152602,1658031702,1526237917,1780486734,1214015727,461553725,123111692,1649138942,198782889,872587181,1743609043,1641543474,59463709,767988797,469106451,1452450387,591665144,1435600215,841817632,611333775,342394359,1065842468,1156713747,385665748,183570416,1365567448,580342598,583840363,290599701,506270645,1186150430,755500942,396027183,1109529086,1159322565,8617052,867835107,39184271,1700849780,133560665,2078022284,378260211,180524718,483784090,474681409,1761280099,1453354074,1761209677,1690544291,258407336,367917805,1589704739,2099937654,365770218,1092423736,29892720,1621725726,1923452570,37485365,131677359,1625364186,1382584883,597318670,1268270977,1306755559,1516405408,475187633,886086071,199863861,1446830186,23037038,330644576,1105708969,1645717786,1095679212,492540046,305100100,702104464,1845287554,1430526453,340707894,403588114,291237810,1551782155,1475325965,1652874606,1635898890,377301102,346624660,1182894249,488092290,1328940713,145943863,1298273810,1328347901,575732936,456111992,323677760,1791816112,1558642454,660629442,1606283283,1726188559,958468458,999824225,156774528,333112199,80342548,1612117171,1076116965,1999513926,421592134,501031760,1742914906,197312005,1445009762,659553581,1561113357,1578216142,333069843,658685326,1452874834,1469848842,1062700334,1928127362,978791952,1356087629,312269130,652622144,1492749603,1613574498,242975521,1613942915,375037696,92705272,1685138429,1528546282,1715195989,566066436,1220393730,440920585,586249445,1716221816,613822089,926919210,981224628,1332541394,639637828,916178716,1623630329,1071158664,372839189,1647757490,465661651,410387320,498118512,394132643,1328334278,1462463115,577383912,1773474832,1513230224,145148681,320296600,1436984048,363784652,515585056,638101264,259118126,1249935323,644788403,2002644998,1128819412,951868036,915080300,1125037950,2012482369,1474272212,504916437,399073005,1792852913,824783658,1247055678,442302621,2118782382,1526206607,2014050003,1912326975,378088806,344603004,1808298410,1402645985,486172541,1419862653,255545977,791198355,110274100,1438938659,563215477,1030593622,983566288,734689657,1831787189,804119648,584425955,501915889,583550351,751120580,1144158453,783117445,1450198451,970169483,349370247,1708039529,1238576862,1565561139,1463353571,1747460399,127219019,927898853,1267977251,106019237,508001810,1001935082,1331581892,1298408189,1371962535,1001509427,760679381,2016260851,1700714722,2090856850,914793870,969579248,1216971891,45108447,62418046,1716859253,415262508,1805946334,408761732,339321513,976603322,1219491021,2130452465,760826677,2007031602,2033269778,1592768076,829786205,1826619352,187639478,1940366291,986832751,370081512,1787474029,292196713,522709513,282877912,921768147,704391543,630962131,2027584089,1433204807,116753115,441719454,1208150493,1853015236,290804229,659035761,956648880,619455763,1372220019,689656025,738745619,99015109,484824017,209707898,391653909,855931278,577062671,144172943,1441952815,340047455,2014152340,732961959,1574102036,229104174,1608549197,1596630699,1545151169,1491016398,333317861,1258940956,1446184996,1819578146,1049193942,1289311122,824450143,1632534972,1010844206,1621305856,1484595897,1912720317,1724097996,537476492,1890797636,344853367,310909472,1878090994,1952914570,1073942718,1988156836,1274416615,839033488,794739086,73269200,1747407387,199332103,193103358,182448096,1691513656,1291303217,1779660997,1688262286,1922930675,1317784888,1041454598,56209123,1088740348,1581171606,260929521,1985251838,1264137491,1447062564,1260883996,588038310,1999748140,850522667,1734143832,1749755901,1355787662,1172093582,588369497,1755193381,1400012000,222102036,790783351,1286652196,1901388330,1007489650,421498315,500244319,1605824287,1105098129,497656947,1896356839,1711107325,1729781833,1499950396,1497805843,1521999165,1296412649,950581242,1170509852,1143897755,1593249385,136957418,304137816,24437199,640750650,226612672,441708994,955299800,511357006,2092564431,1981725663,61508106,2059995458,1380113602,982675286,643386434,1032660583,1094538713,96060906,1965642042,1685202641,1386231966,1351273606,1636260154,425331379,1311534361,1252316147,1267876723,444667797,1501282487,1813426391,288391454,563763113,531002975,1681731178,1748396481,1122539920,1267966884,1034748777,1198432663,1598541975,1514402956,19337504,244600282,972432836,338774220,1962394047,1130570990,464474381,630079773,53664727,1067358643,1995384480,1735849046,361905692,1096330541,1581738590,1557944458,1016564023,1687292215,738707389,18024968,1644778041,1403102138,1109454606,1631305763,2017676628,1559498631,1879926592,30950860,1188933172,1785196694,768414709,1386696211,58646397,1563417029,510994759,428482202,1350739508,1091933861,1357292042,322785045,1467880955,694740750,644361019,1171444600,174657566,1478023458,1195290842,1798806950,1967179175,665395466,145890432,1217808570,457213194,1039487561,2122369393,1089451001,1922468053,2010294489,1008797502,1246574848,658908021,2113066589,1420822305,1118625248,1553842803,1690436425,801495056,1300928098,221718580,1826207838,1447983124,1883012265,1283067919,213869446,1203956126,1676683579,378476972,1779814710,1715618664,1776619011,2053167286,1001869436,201686423,621530389,1379110246,540770710,56895317,1318653875,21937871,1598951255,1538004018,1069811115,782522522,1947474900,93015662,587173658,611681427,76235384,853627777,325492191,1674378214,218621515,1857338837,1252653702,1449251946,243451646,248322869,418735420,653796269,601912344,1726944476,1070148739,2014670175,808895444,972667757,727879284,571948337,528607034,1854636086,1125505957,184193227,788737673,1439393198,1762260753,1098076766,391254736,1919903018,1641751405,630799347,779565743,1233837408,1144460327,1655904964,73019357,102097113,1011134832,576142007,367097112,83938531,2032717112,1605796753,2110596121,666400387,1671435591,448911085,947640822,2038806918,148170112,1997118164,1359046583,364011928,1357708775,763741201,974065695,1278925113,418170327,2057375969,1474443474,1983770785,1950691101,1907698213,601070302,1212530597,1759492268,1473772175,1348313987,738529516,1507874757,1951777640,1323523719,103430601,709350999,1169717646,1257033300,515739546,50279708,1259543199,780760449,750396257,1715206762,1020904633,1017880343,1242597506,1590503345,900906793,1138523907,1321392053,1585425554,911142392,870949549,1323492508,1491621629,309879845,90831608,1501244507,126880209,504410613,1682770676,155827289,180475026,239237783,1060420211,326100336,402147835,198365162,491012060,876919299,67380905,321094993,541069911,1702476306,1303763529,1208855481,1993602888,1556108602,1052954682,66728434,1668066588,1770073330,356432276,648791656,2078652975,970443071,622611093,2033923927,297731012,1337126501,1147732395,1650359431,1979216279,1026125380,156253171,1122328957,687710412,2078936870,1877458833,2125925066,1557276709,568561423,1982485740,1751799757,268857955,1681378545,191826341,1444445447,397910523,1316753634,288772608,162651887,1819123233,501271989,595089967,1041790482,1166285782,815198670,1589098982,1175361283,1452682494,2066021186,1957641,912677675,48737068,1570900379,44992090,1148527595,905657838,292755541,1792844389,1718311587,519491351,1881377526,1826817509,986865423,1692815445,2101390589,391222790,1455307768,871749245,930371259,1467067009,814452791,2115062163,713492300,1700366037,1466641198,2074902328,51873147,776296419,1582693288,446316363,1814089100,2028179715,1629738617,661025647,435906211,1796170599,1098062807,426506108,348062495,609967060,392910184,1731268536,1233255452,1414842349,71432197,1974422606,360719668,1314199957,1536156336,1617787565,1744322751,1722331711,1927186081,681902036,618404849,2121559632,1570502474,1115886968,421566853,2059904132,908238773,1885484261,1893424499,1303347093,1434415200,1070205161,1793702682,547627148,1173306758,531056315,954093036,1090763667,960878870,124140384,1625540536,1798574522,205480589,761432879,560822993,792330902,1256823079,914912515,1918696188,996450535,1247401169,1513169974,1060599542,844845317,457826132,2110757279,272371860,1230041717,414033816,1797821308,1495219113,1568448237,398152865,2091353960,803166910,981558947,1211926857,103502746,644773523,1304714866,234411004,763874410,12593243,308155821,936774188,388629433,1368324863,2006406591,1665406319,1206325704,328589418,723608145,622784085,545860872,593355523,1220695534,797912085,339557946,153396415,1046253941,643350996,42212561,678605242,1390985169,1209351896,1877521709,1007179086,170740082,544076617,599757628,534052320,1268306535,1258034987,831848544,1663545861,1779360397,227347553,1015556526,113279903,963608541,245324148,506317397,1286307934,1796354190,1634710929,180875562,102696346,1182828403,579544891,1582034397,504824866,104706750,111875358,1511715561,876001849,1669152450,12132540,416261374,997409898,64959227,624346994,576270231,697894921,1596919495,1572909244,960473808,111955728,645127151,639636052,1411582636,1816996449,607993008,543820672,1274639806,1753541301,931641028,195258486,2018402522,286172994,1100330437,1684298001,1185506783,50956483,486587027,1930538518,194414452,65611955,203221714,818846474,574412567,1616743668,729576050,1352656829,379511351,2079306953,1498705227,1437829025,1838406712,1321408133,217583338,830670666,705318705,1682705878,1869721530,1298783263,1483565299,956041505,1574421094,613332944,2104377281,1749627346,257510064,986207281,828758617,974731702,916982438,1920240814,1429805666,1010122579,206794970,1933192122,1432214896,653970921,8177127,1142220120,1166312276,1596218391,1343661962,1324406747,155976098,1835312923,330405045,1303091111,1474791061,70061907,1787956964,1950690005,619833990,198413231,2078545178,1790601300,1170697949,155640175,175981782,31292499,2005406847,1837577345,257493621,310202710,800525004,1423856605,539347505,1926804949,361884491,705287032,957743913,20589099,1190452875,1924749513,369596544,1950465850,1938471575,1453481820,1553994323,880680890,1444279690,1886793473,1511064926,416002616,1285122617,886362339,1133315625,685864041,412813542,211467581,1275117884,1910352786,2114243323,1194236232,615317259,1837596472,1674029057,290876608,1536985596,1392722542,1675409310,815939184,798565904,972708727,646675976,1921183176,697787593,893509542,552237015,1232795120,60360676,41549045,2059060480,14919957,680985945,1764488807,1094328695,1645734846,1548166093,1384856864,1942366228,305020016,1857774085,589336327,1032542428,338596467,796293321,1916875739,1847819986,1279943350,299565624,1646737458,1106322354,1317526128,513061067,374153915,1333394285,1717281651,1665445409,1687257643,1789971803,884982505,887213944,1014777319,1796408822,1600093867,2074429702,1206231372,1109369366,1072252206,1639375238,272419085,557184483,491939417,743427618,1921661147,1856413285,139872791,1272325821,164930099,1762086490,115594112,1880819133,1177269132,1552492595,244774797,706513906,1483040935,2127898924,47927732,1074627375,1617327613,1651550067,1898945212,1887142183,1045250692,769875838,450870888,663031716,842949182,52674199,652806646,571087839,2009740700,429312173,27265834,137475108,2010680697,1861923285,930664509,570575794,2017456061,668588944,1736354070,1035148615,2121795381,844505081,373940198,997430634,942321983,2049143670,518060007,163156689,1301962113,75715366,182887330,655759635,1199799324,1547042637,808040687,1944189976,1908002674,162191686,221476626,1269309784,1805479457,778538248,685205167,375528360,452454528,1412259749,1071838821,20230378,2012259109,1992359051,879266622,163249442,1038398571,776357305,904757191,684171134,1360941494,670048379,873290612,1698253333,1960778498,1322173041,349325409,2031571435,695384244,2095603583,1102828630,480422379,551740042,1684723358,1375167724,1567604340,1513576757,347638051,1276822594,1655711735,1843116771,878265618,1928704993,1928197325,300142165,1094235991,1066170455,1846981394,175359201,183247974,1322743395,92370363,180824282,1549804828,867993826,1979634603,975733783,1249565621,1514958556,1344224230,1416150616,41511849,1364011180,1733230610,1824685676,1049088612,737974299,1948641791,1482778558,515362299,1671748683,1395858220,1794039271,2077868398,1141736326,300486729,301118235,1041552825,562315034,1812570621,1976522951,1648572283,1448307701,211111516,619356050,2100812250,1267515102,1642542505,1800428595,536106047,439289974,103634795,1466713340,166098388,1918558590,1801761726,167208626,705783383,240316775,1894711586,522767637,367713279,747956254,521355421,1060433405,1557609971,820442227,1634059872,421684462,918539883,1155637554,1502386617,1939287877,659058882,1339141041,1150865174,93246946,102908874,1693792174,1173979468,1297734105,628384433,1644310595,847708101,703608333,22163567,1416867939,982284369,1022899166,1051010169,1414654796,1282400159,310628891,458373423,1351677146,593172486,626287500,232077171,578223518,1772016854,159510472,127526989,1951599978,1479894737,1324014472,862757473,1490241468,1862827960,591543105,1923186974,1257090858,1467096406,405301674,1156456239,1019570037,1966289945,1448175610,859348821,811541083,1754402734,747642620,86353736,1948897716,68645758,1054117353,1607388482,688631130,1493994929,1598628846,840305310,1018401539,1798834193,901992268,1886882085,2047741255,1094160745,82610380,1923290249,1477237527,348960844,216459631,1551111788,1825887145,1489705357,1527109503,1283129268,997623257,1099989257,1292136639,1106464112,1538340275,623984465,533311642,1712697850,782660375,1179502797,1309991587,1366998712,394339085,186588585,571431451,1156625485,592113746,315101223,1882399334,1077428914,250988053,1669757727,13773186,920569917,357238521,832966448,1579886098,753264985,2024835205,1654728297,566390410,501365079,1809517353,935496604,48177973,809382135,1665278164,796446436,1075411817,1579757221,1464771726,1976611398,1260432933,2067626808,828933061,571152114,1581622234,417568000,1001149560,923426395,1361105952,524647686,206082796,2077348955,1300259624,1561085080,1875167743,86499853,1388900400,1738303341,953935101,222082397,857662175,1137512074,1350307561,788761012,2104581484,1786948106,77261363,1243366972,1289360656,1286231507,1638076705,1533861308,1454554725,2079802844,1747468935,1271839518,1283193306,1680573411,1329681158,1194025010,1435322640,2092038754,1195679719,1637120034,1796718148,722527651,1926624398,1881677190,261476302,1527965852,879337878,835720784,386296458,2113601907,2126670506,1324094453,2090375335,1459565965,838517760,2011757846,1254341018,1915633459,1682503630,1686438404,1269249017,1303566687,1149746812,2056166471,2009012198,1804256434,197612551,2064895031,606150578,1249535847,316457572,889649513,764913082,1751410070,1195988403,218651374,654233052,1981545758,802485528,725528214,1606865142,928389064,1361791016,1570928234,908951451,1547247377,1368069851,2067177193,1960128257,1814865037,688163909,1532761433,307857580,1536723938,57486461,1527315439,311672552,1053037498,1160416187,1134517464,1951618142,869636373,992225128,1252431518,906606388,983844510,1765359782,1374204301,704014398,844248247,950253939,1319410742,1300629653,349437078,358065602,2084406061,521693530,1332293855,1844273833,998213341,1262521580,914463928,200500458,1311023616,429576459,341767434,1695813633,1072949643,741243649,1736867432,412713925,1141731689,1566360739,1835766995,361951730,1103184385,1257437835,648001439,1313053324,53550025,1408815377,1242829872,1324189621,406511871,527788764,772262799,933661615,597739412,917316023,1162370999,232160075,1877057279,565072478,771204839,1249172254,1439301199,2047233575,1633402788,1769066291,1561902624,690065687,196229538,211154918,786325309,1033964791,421676714,989307368,1922366601,507286224,2121001397,912650086,403719505,948139473,1325510411,1053074837,2004499579,532238787,192269609,1934710431,1091149859,1234785485,1645681611,977812791,561301955,1254278482,966187131,880568404,576799762,1831252963,1741234240,1899995044,1189121135,1436572140,1123271804,1395141980,1633191072,78651298,1639551568,410035635,1387802843,1539248668,1404087846,693936929,420166896,1872781448,31587582,1820152371,1281493723,1713574153,272305422,171487293,1117185920,1554727907,6480224,1431077525,990429778,2125915482,558315729,2021091141,413485813,124534744,1099077779,1360182704,248851386,1972542588,966936945,434291966,57376902,951637932,704948175,342293764,1135133696,933956819,1694446049,1412301286,89264335,2044081074,494436873,613022374,1745094998,1610597479,1526474354,67241678,1841045237,2114161710,1577900411,1208151942,281868792,1382436774,241141527,1621970635,1928029564,974323263,585553438,2084232750,579229129,572224190,1857053520,809841304,1865475571,986591146,2047735496,68746396,1182405093,426913655,1107547712,1276765727,1012094308,465138172,1635408166,899196016,1636508806,374174239,2121700312,653205454,1635623196,1117693453,1139485518,1274072219,378327158,1870064027,1150984140,409369283,1909156731,446829688,1903080518,432818351,2106670164,1523463531,115829249,1081239563,290879740,1381860022,756793866,1290049733,116771252,1784067695,1305251259,1540103557,1497847936,962803317,975016108,1317961750,1593668181,1078766928,795400930,664490773,1265636965,1712020676,635449354,864782254,2026669809,1171387948,419220901,831917369,1468932116,1947620284,1284211284,1295010432,2013993658,367882044,26475118,1928284316,1811347697,1701498504,1752560907,2071570165,505049722,157466094,2128179767,90791033,443336499,1099642115,1525913335,568616028,473465896,509931044,422950699,506634022,1519971015,1937675333,62388895,827389097,52502714,249448988,945030617,1963168998,1938815352,1725869117,544267001,1880090066,2074167556,590644438,787582612,1994845986,1689935845,1579197853,1622646773,272768553,650989187,2045391662,463054513,1057650896,1783477173,2095254823,1828757810,1028535860,2100810377,1654409589,1894851306,81042521,1207202397,1524515600,1436652403,2117912072,492049473,1189205947,1832539984,1751184946,1029736334,574563292,1652577708,1724543873,1264365490,1014783368,422177654,1531425213,1160215026,848414887,1524009968,1735293982,176630664,697007955,248363288,921906324,632251377,366964627,1571878934,1856321152,29934636,2110390173,861593548,1067815871,1987957519,1882185084,35067401,1740292482,151463913,1440343562,367174364,250402769,741562484,1571431133,51366796,1299736804,1076634015,1195760680,464987821,1450787841,2042441974,3712646,2079626447,1995284236,1527454747,1212287345,876116823,849203008,298704129,2091002506,1025070992,1842616746,561302207,382712713,415482783,717065205,154169360,1929438753,414596124,1286957969,59016276,434990557,1544734272,417881913,251891529,648878440,1318875043,2083490345,1219867529,265202702,843920224,1601606024,1720632334,1725822140,1159254617,1049077585,629208483,105063769,1028675619,906310031,716938461,68608359,2128822438,1909501103,2099161797,1877593548,1318946899,1120904623,1514651642,68452385,1261253354,1241474648,1538483985,1959885577,689384510,1462122767,1748617860,354055014,1651859905,382156633,527883912,516137456,1656123342,1647121528,97742700,918814755,1776350343,1738801362,2123002178,383818956,322832260,2071211574,290381529,1773751031,1301223721,1538592526,1722160259,1894445864,1825084363,167713513,183833327,1044169969,1040483327,218426014,876835257,1203295754,128595111,1358569308,1995718209,417868933,1623862078,2101747130,1413377589,604760892,701808081,1420719363,88613647,730411527,1314533765,346588094,465156698,475300928,241070363,1665951206,1556016948,408311767,2117926791,1758049174,2112492059,806210665,922772132,1101869833,1707831658,1012206398,919847002,1028993293,1777583089,1935970759,1972824533,753795444,206236518,98586869,826451410,493592794,1190921878,1595172913,1937299581,1459187290,1992126056,1349803242,1281873189,1575396662,898457963,1122572936,920435407,1978525284,766905245,981552026,891217369,1972621699,1821978373,832221966,1828400330,745623847,259133352,1972687621,1000498512,246542268,1031517701,1891731182,1759831898,2056150855,783316840,149659096,2076094877,1039586029,1358519661,1856599466,1713536117,281475263,853589407,193884961,683639180,860467837,1516178860,108869239,1960498741,1412664925,959321348,1482849428,2106065219,1097514122,1616112484,13872827,8470998,479100605,769100938,203371200,844989712,1122021922,1220471161,1263439038,1890062670,1075472007,1764388492,82152053,158272595,1503535350,1360305398,1719090926,1143724798,1475194127,1080438478,2102626204,1687227479,1567252605,711980875,1831967202,1788084923,27780507,1456872754,1641718238,1226603517,1795919350,622964325,523292652,6127628,1760071667,1607743484,385056496,673775227,614812869,1247680283,57826251,555014792,2107935983,206081395,869835098,430681576,809721220,1706811936,764949431,174587802,611134856,1614523622,1456452946,1613446254,1706655395,97294230,719066147,1999418993,854164189,1586373958,814049107,1299538703,435232737,977286887,356251687,1652539199,698912040,1024943238,856995110,1448722449,770885224,2023979964,1519493750,876398864,1361624877,1235531000,1979119602,63475576,1559090198,734933777,1849602211,1095060814,948313257,948197150,854193532,2111395400,1961443194,1431621141,1262692242,658284777,1370733636,1241135560,1168666440,324764651,1160244050,320862794,684353147,434626013,1184655757,1304632355,1786605890,664523555,1752419242,37699795,1235273385,214085328,894602418,354496411,1556274928,911243427,231260868,182925311,1528534830,431657468,51652256,697895580,1533377740,2092119853,1416398885,38715761,1166305367,1685913433,1954465895,954233687,705332271,1244758684,1988186382,1037447919,1020488331,844119153,728575514,9672478,550618383,2072635610,1119908233,1937174446,739850467,1103751642,1739613520,503681156,1157990330,932547508,1298863141,553880946,952905585,1969663942,663124643,1325432892,1879955297,1743585839,286812265,585459758,262411606,199878607,12351337,2018119667,624397330,2067537959,116934560,1757423392,1109284032,233101592,1365251568,333191205,628668972,2047678198,1206129733,2024883024,1972508678,740940012,339839238,1236206994,842455756,1285301757,800248606,548553485,1828604511,764629990,1463289479,476371048,688839438,1512490479,389155177,1126861996,1009353580,1371109982,1185903819,891661541,342923071,217615754,872422704,206964081,2120594037,1674502466,1628884344,1921528550,119083936,272589946,255245848,1458989216,911223642,598462149,523824483,1283671265,646393293,1419459674,45735423,1248579246,512561008,526495638,1985108812,1438625426,1397717622,1459723078,1647021503,1122169960,719337143,1870938549,4281377,1387285618,185295096,839856010,2023469536,144998358,1504330170,1183525773,520034171,880867784,1127878725,1107695034,1987620225,808749574,307801626,293409312,584554624,432730420,1518193769,1002174579,1413037778,837092424,1734511233,2125946040,545176373,1134142619,532008644,177028810,1800046772,1312106707,1515186674,831570064,181885214,833332318,1637087456,282948628,1224656978,1236338637,259162263,436019857,234066881,875621723,1309099419,1103473624,2086261349,389186390,367707089,1777458057,15497293,413833372,1219457350,1093733093,257612234,198977565,1031022972,391837409,889119174,260322424,1651432855,687141226,2012694941,302662063,1059140561,570898018,1472261193,1136545521,2092035194,2087991913,1406985129,885192395,93734266,710045136,1326660901,1371632496,1475672642,2029607561,1561571446,955379632,675966322,1112742880,2019059784,1777980750,214579759,611865123,1624086394,567384332,51884167,570121982,517714553,596463467,717249242,1854720621,929749316,1365928178,306813897,542460158,168537213,1039948161,828982756,1471113114,1156496341,449932114,1854509609,848261145,257175464,57102503,810050044,80462155,1048542840,1203185949,1272082018,1117834349,864379524,436550280,705257932,1678053928,1723226639,1679873241,137380367,1894087608,1253252957,366733005,1043788166,1291811969,322003563,225261512,421332236,160935742,228140016,47640278,1152469874,531568737,1130735977,127161813,1526970123,975665956,1279295714,1968785479,722102815,330656933,491254472,1405091369,756347282,794379507,1928118789,2089903559,700879318,1694112036,906749024,10182486,1261847136,926736160,403694399,1191150807,1624009405,170081594,1259182412,7185052,878409521,1110246685,1957032103,944968091,1176561466,1418062430,1916443142,1616817462,743924543,1955262833,105291958,290530706,645397509,789800066,1202218366,123476250,1070220472,1702126733,286305950,1399564195,1439063984,1296842924,1772992068,139297257,1018499192,430354257,1405467385,1874732318,1103484204,1522412908,2102096866,122491374,1242519078,1298076220,2082579653,12787782,1241075219,1680697292,2122728826,665823549,2003982388,1677909663,1124690036,1836020222,959957244,1544176589,1430724288,1402128641,1281288138,445308682,1784550268,439856957,168760287,992862109,21742030,1867649914,1982361658,748573928,65766673,979002404,1101296169,1010437769,1005255433,1349975266,903650026,479534039,444204222,1781974963,1148561814,856580827,666397984,28109016,1476955656,1210085634,587562638,1731127081,800286124,33307803,348396563,60780634,1551120897,1977278161,599313407,1936752787,2026126351,918635931,161401702,86239010,880519989,741376295,1852128799,2016450213,2013764062,627396932,1612391396,1051543252,2063433972,1525646592,1263522690,1850820737,13210712,1057678191,1908772331,468588716,767139187,2046493111,62849262,86285237,1163533898,993551889,1461247043,1800783834,840493575,605339068,2038697834,1868183859,2040892852,672300743,965232143,1770738592,746838183,1006807126,892892231,2012218382,1571141978,1320267080,607187107,1004246646,380339719,782023380,423604855,647486346,465578523,708675439,1824620702,2022873045,829467645,1418549261,2047384014,1685191434,790772055,1835791948,501166445,1497079480,1187741089,625103644,375796624,1579447575,5054749,2013832125,1900982080,51967754,854679885,1527498111,108289460,220724857,1348820429,463388807,109039381,847142372,1495502528,1346468604,823283674,1323480717,197777021,1355687997,910168187,12697656,1869410101,1069270606,1109337703,167084734,1739167936,348042776,2041697071,574790539,2018733218,1225607799,712698977,2002658830,667280681,1432267331,661430484,244777669,30574313,94777078,1275418341,843929436,62745886,2118783479,988053738,817989643,167572425,267171273,347763259,1489283102,985063663,8551165,1772946770,1134198873,1785972131,1127402403,797770062,804666983,2064526618,1464198381,294466270,1104340970,1310501202,47372044,808121298,94067146,35479100,1794810154,1449544272,667150825,1708164675,1059086247,533620097,1336994325,2097830400,1846831823,93450522,1448531877,1630303119,1759946717,1456928388,382657524,306437124,897917017,627205746,2025723265,1225512170,2049642809,172566315,335790254,666824567,785309638,482096408,1912203655,1291997424,1289011540,368202662,812455018,1014409904,273305364,450418105,1333599178,1487639885,1006135530,2044953053,648396652,1623636039,1743256994,344043199,846855612,578350741,1568991137,498097048,1076324313,719258889,958495162,1990148600,1400851720,950502836,451803259,2068723661,380010604,1709498616,420448525,465205833,1487685142,1683140202,1997319497,720916256,1993575460,524851181,630673323,1268983083,1749856821,1556440887,60019908,1366743166,929947610,1060061965,1974074785,1559384207,969381631,2094268664,2058443005,672665444,2057607075,920675493,1873439540,1179866286,159205290,2116586598,2088999475,819608725,770772797,2114739206,1311755377,723977067,855654591,696586402,1400722596,384605141,2124123498,1504793149,410659427,705146230,2111884743,1852786370,1505948520,937185595,293259618,1618455529,1473626145,1971099202,862081642,1300080756,1142097706,816830766,1683852048,1072913783,1727235763,874302389,687300366,1344026820,153976850,606614471,2078089297,1239644868,1389360995,943798688,83822035,442990774,252614498,1081220859,399560847,1216175071,1038013308,2035276481,511690953,411979961,25052268,318264391,1924243444,1370397605,425338955,263612930,415572218,1537776929,770366848,645145783,388579734,1978882563,270482087,791675555,2097562554,1776268654,977439827,656428311,2080966803,2017447712,935172538,614188261,394596997,1627493115,22365855,1570220042,531856519,539947352,1890100735,1102263402,81633812,1269903752,423509909,658766804,1630565945,5243229,822375606,153721958,1877689630,1447112434,1656962046,1692695416,739553356,1913413473,751739555,1544693037,1477361076,551602653,472535485,658101967,675454093,1944148,107059413,715675126,859180145,92505998,21165970,249155304,759470884,1113396564,1342927871,1937581397,1502730359,1785386412,2022300090,1853235167,1635395560,866801942,1744045112,1958794358,1548158209,1983880164,1806569743,1400139630,111440477,883591306,274811239,1690036458,1787948006,514298852,1470614074,434785056,1584049819,1754051403,764096663,1372840804,1825633105,265149683,1148587894,1660645088,1478528950,862473081,1354842279,2075035234,1532961699,1726701148,976467193,1721071464,1347772704,1818789331,2046189567,1504261083,782657512,1431327365,1792017895,1587829669,120112232,1508934081,834868933,940785835,1795390995,2047936558,1994209146,2040708546,1131157798,703205812,954819036,1393986543,2114158681,1042337508,1878535522,996182786,676155430,785067362,963922067,695982802,1909671750,2087979885,58856709,360181472,952633998,1771381462,1044483752,2034237708,1564493868,1387899998,777606,411219787,1087411418,388077397,1185311527,1360559123,347682898,811987493,735437075,1415845704,2109772123,870851219,1930697720,853899997,1289522804,1960622271,1901569770,839336009,1584494861,1291311959,173260500,1906444605,526609669,1010419759,460521374,213982677,57301998,1335145783,711016079,990698351,44472460,276272398,1370524228,427453787,1583550492,1527245250,1946735660,1215261307,1236347845,1049002742,1255025287,147814848,652253136,1028275872,1036048175,878032821,1312220287,566690606,994201624,1116893645,701787968,236978214,644855430,77327674,947286618,864002990,295717921,1371478495,1591570236,1537331052,1082016507,1661341846,430998686,482875226,1594224273,1429484073,806552111,1550048833,1216848520,904437904,738948111,245713447,1607975300,592449471,1237028853,924043901,755843058,1608923439,513630672,765312454,1397022474,2012503883,698813232,2072361364,528026888,719008587,1623312866,2043801501,867729293,161347569,130828851,192644742,525395171,1881649419,1470400576,514406270,1640517396,985902846,1325068425,1544612877,766935580,843919886,1254899984,262890732,1288753646,501137506,1121847534,601268169,1069953014,605939692,592897494,227531029,617201691,2052988144,359476030,532109746,32547245,1882745777,1560947473,1511957326,2014726141,917673279,344112655,980822532,527054225,434202390,264008129,111361306,1290517864,850650737,1881529358,835452199,548731670,121987337,1339973688,1535151169,1192882530,1258649206,2002033008,1409549784,2113177620,122967826,797917892,42642524,1210617848,432985785,646709817,1899393555,2022425579,1099399379,863746217,1862176612,51119018,1673982683,1995086077,1824002026,904957604,461788718,1153186397,1300758908,1217421282,1162539716,2036169493,1879882886,850807676,1038477275,1887994399,380082676,772997796,47176208,416135985,88365117,272488533,378267168,1550911972,1956241827,1729224150,1475610781,133094271,1946782193,1471966114,425339012,621545478,1960542787,1205202084,1544290717,979561250,546678858,228759587,999113975,1303778249,2000956289,1594111978,99685663,1944927784,1283142773,2096557125,1476957544,2020298342,1913909876,25700289,1363060838,315935653,1308864243,1139965875,1118958941,230949281,1033604312,1862296355,1968573812,889438579,8361120,587573677,2011419923,1441501688,1743014896,376434084,1897484542,1877614852,516323306,193354280,1306009407,1643051615,1812442706,1487903352,434577939,124341743,1109119575,557875363,518268441,39566836,1616920580,170364142,69512320,386018780,1946417335,2073044146,415603083,703895117,1489031739,10190871,2000934532,695273760,1765476507,1228833555,1580974623,1376342662,518662646,133323363,320041559,600123081,1832486457,1197518038,1874497150,395703649,904172817,1368969781,1794018456,691726365,165604088,624223344,1531435594,756639384,907199633,1487804265,2106403111,39342522,1092842719,1786795733,1846208818,479298798,1259238055,369099299,926293828,376999023,1265060655,451403595,1723758895,1531560657,624470404,2042435863,396525591,1390888244,995571984,910269994,856239864,1117355606,267614046,1221065268,1034882744,115423205,1909159242,969016500,1225630254,187021730,713520212,575252614,651357412,2086686509,1469281717,1527328905,1175049657,158444023,23203559,428070328,1752434599,990191416,962447943,1576359126,1101973358,1587045797,1152848566,929638537,1561216837,1313955831,698903656,1873090115,284024792,1721218562,61073025,992588145,2087352999,348091315,50295068,838502137,1987085907,260335363,1289236492,770226480,626433197,788561951,2088230894,1448925882,1171632894,2107017136,548404146,1018146500,658458105,967066627,1678699586,170770070,1569959332,969379014,854497689,704617228,1247661565,2001389198,1221935285,1261387413,1501675683,1842330992,1995992788,1136535059,872422537,1258239685,515914602,1996416932,1633623789,1098605850,1069638102,363228676,1847595779,1831977274,330758340,1976653351,634826854,2087383267,842360299,1052533197,1024760548,884036097,2112103357,718090597,1126588764,1221951962,2047520132,624408225,1133657022,1914412870,1112888657,1969354338,672271331,1623744125,91841440,2039507750,628456002,108306014,121237363,15847562,1363643922,1315085987,602588368,625659934,269680401,318819412,1618281583,700236208,1335446024,652412075,2098137018,195098136,684451486,823587444,1274358256,1924205357,368820453,63618853,1082272946,1433685717,1671388442,387578689,1271917547,215771809,434315563,899260188,1724357237,326554163,1081450752,1112054601,1379166414,1220997028,1803897495,2042965674,431244049,42550297,1176090949,1038625229,1995766102,974229001,1207861087,644868914,1230290541,2122082210,1082886285,848006554,1934926228,1556331019,150969876,453809790,633817481,1722009332,1095943354,1430925274,604582370,1932924441,1271168395,108402160,1016032554,2006016351,412002286,1127605728,581224891,427935018,377256241,240527317,817784833,814816357,787880069,828853123,1309063556,303078035,1326996201,469884230,1878741000,1885084295,928903281,1731867943,2022287257,1638804023,1847381698,369935315,311155287,1850492756,1669369994,376396678,1040960321,1650178749,1031348423,580788844,1877874371,1096387464,1679089393,1567467130,601707296,210334681,2117708508,1365065396,974765593,421901593,713394235,1318681503,1538711386,747089438,167641447,1400676613,76588177,1074556898,26862658,1490569805,90738173,1889208326,750106414,2016060629,661907240,2062184131,1098547583,313605525,1388190218,1670412904,537347060,1277384185,1011513368,156163908,1747296841,1919913899,1172764132,1395151451,118162424,489163039,1989523791,432568540,245793141,686169026,1985738329,1750235489,1768683359,1591202075,1767789471,531009848,864199612,1714611505,592134075,760338880,1510265731,575100856,472490850,21875743,1231415102,180242258,1766296031,2086762237,2006141147,1835175441,507792809,1450487006,1497006135,505193412,188532631,1359851297,189764341,1959779896,1397959358,2006414696,1849334116,1104607906,588164510,163850715,626021215,1927643528,1886332763,237257445,1491830193,828978766,862116345,73524154,1893678284,294262139,1803187224,1668299214,650274303,1577927872,259316022,960085716,2073749005,2002706146,1258690883,2120231545,813323212,2017621596,881623030,270572616,1229317576,491934628,380714770,32368984,217215154,215515454,1292438716,574606140,1927470299,154184133,1720691399,1400998098,2118677401,1472210605,1687362942,746249511,1252253502,55855961,577911741,1822557393,669259102,1392273815,1053614291,847691040,1637196702,289680004,1630290103,841484999,1933917012,276500322,1326079651,1590033869,1922313555,1844274001,2119677086,18746221,738161017,1511952157,379576592,1824771514,294588006,2053062971,700879795,1439602396,983354881,599767013,1150423907,132406401,1419102090,1612472194,779383729,392193501,1473614305,1970969188,31061916,694894794,16619073,1066289154,638633302,555836124,440226484,248229497,549668028,1312799848,166713604,1396179566,663241883,675655753,1631958837,753496311,617000547,1702816090,633951872,1703122217,1735902652,286590426,1824002587,469776449,2014823636,1083630993,2011678886,1837904172,758167650,1263661523,130851410,1259352960,1887753511,228707816,1854582577,206623788,1562939111,2087690171,1085659767,521664433,33251327,958192411,865955624,1871718346,1538748269,1691563217,164000297,181666298,1465162146,875138162,91648561,595026158,70467379,621965202,159834774,1528875868,840058337,2102915862,341503409,45832061,1924764046,1085745700,342070006,1747078150,1746061215,795262813,883101143,1388308818,819636319,977989331,1125001650,1567883681,682802367,1393270122,1510943678,489296389,627531615,1838601481,1250142332,1803896967,679755323,860353367,2064228628,453797738,800695211,1569246924,661535123,2070783416,1424064192,738193070,521069013,1765295254,580991746,186152718,40749812,1366469329,551799944,1368845304,1576711450,1531692524,111309617,684136479,895585227,1468108852,224088403,977931901,670013055,1702363714,498892152,770385664,1184482376,448552906,1714252469,433076808,1200284366,870258627,1627471579,944329877,1830824648,268293631,1097597023,787278330,1833359746,575257963,887903800,1253799519,205634350,1311397760,1807052176,839979667,791722239,751567659,606123173,112785405,1421873002,214996647,551185687,184169453,1627804628,1467899179,1804997590,692841856,2097157405,957776730,369586736,1748515461,1262043826,1370527543,1361814711,632560672,1532779347,1419244092,299930491,1284552465,692551902,94007974,190208705,155942208,359768417,215096417,508922144,1975700078,311811063,443404013,762782806,2056523954,1244604706,357084899,1396125995,2031818696,1707696957,352069307,1562793599,1476288303,2030830316,1925115917,372728613,1880664458,1186115090,345037955,444043377,741040902,1320317208,624255802,1263496010,2092802698,1153455603,1088613342,985006074,929520451,635638465,528926962,1153372571,484304570,131052021,1068751388,1026903842,464541723,319886974,866848077,1564496026,1581451596,1780065098,1045284537,1022741746,1404610758,2042108995,1829620786,2072251720,1461008489,703120580,1776869679,640929520,893699444,1971609972,1034530526,1389391898,1277174697,1977983600,847517408,625586074,1390668544,726920,1971259711,897213255,924333144,717924307,1773275359,1630124826,1109416681,1127791400,299582124,1936948901,1194714975,1668810753,2095038297,1944067550,224625388,1335538898,428199773,327217412,209387068,1889696100,593100190,216951748,617654771,1463876547,520910681,753087995,397980135,198968037,656621199,474810714,1584394936,2066163205,740069676,1851708648,1876859633,564815187,935190059,282135116,1437394129,1016698317,902478158,829659947,1150686793,1244650080,1783593973,1669439111,1145310940,2091637031,1857574519,1415501497,1441485129,1774291952,389901208,1976463630,411949573,2079345105,1417516905,1238340391,1840564121,1847418788,464108010,460761812,190846467,1365726542,1823403889,647333581,2072285729,1120870999,1113961041,212043501,762503586,917889506,1951977300,1794778555,496831799,263709354,1776002858,2040233026,1897244323,434521500,983291831,1359218664,1809066425,1096753753,1869463352,705520616,1793457568,236368021,287571150,1310909246,99841541,844526080,598279921,7695358,807383432,778055140,1567226374,767554273,1404878134,704611661,1674469580,2008155048,132522925,497744654,1055616576,1193012022,614315563,846763584,1827054387,1473830960,592790366,1563096976,891815160,1813038723,1974446129,1750777792,1811255416,630682117,1800860507,368097388,1028594107,1177837627,1529353672,899848290,1176013467,996359390,1328032846,1346561994,866977503,131094683,48917916,1858810324,2117004841,1408507829,68661307,583733663,898815563,1546368356,1484334268,1677659974,1445734801,1147230587,1727288414,1411130765,1063119324,1979779763,1297094842,20493805,1050974067,340844464,21499697,1417341271,26175772,1430907497,1540104726,179500931,1076983279,1207161257,763024075,1594340075,987051073,179584292,422226764,834672734,876834899,637056527,2098955347,951112314,2098875277,374185087,884968307,1638092986,2130167470,2075880363,243261866,1059419609,1472371096,1722709553,1828837931,473591307,458356896,1198869542,1469810418,56822386,1002710976,2045691917,2059721667,1900677443,1874323579,506763370,1251336595,157616927,1017650276,1480120131,2010287628,266410925,1658930643,1334895001,1899745855,978444021,746610237,1572152581,1309776656,1755734148,1674303817,1512684059,1638632720,1375678238,868979838,134203932,1262368991,306797035,70239061,981501559,1702349179,832529002,1048739331,2122597570,1420571151,516323536,704403189,1951366309,1300162317,532188071,65306599,1827655543,461260500,191553565,1089054283,43839116,1508475559,231188342,307148278,913556748,1865070348,1971360864,1525841143,1842601377,1812339687,849877865,1528972922,1694059721,1612220051,830677306,979346544,390378094,396184221,984201677,1640453338,452121548,311795662,1284308139,319705981,304103328,1917759512,310037156,171370461,1764293793,363110037,603213455,2108491831,1105242036,182001563,1919780932,2047500794,1226506530,2105444822,862695235,508403144,830629280,764574118,1015856462,695942029,1592804615,1600851262,982438602,1720804568,2058476692,1380493530,1018118789,1989881601,2181286,816443985,120161999,40414296,1931290949,895856733,1508146868,888087157,950448595,1742043591,1893369657,1858590030,1685584068,786137386,912152573,728371159,549271514,819173499,2057086936,1938850284,821050526,121112532,1353933498,1331023899,466537934,1311839914,407988848,1036416262,268614337,2092778719,628515169,357669277,19557367,1443059546,598826979,764867693,1936549856,429516039,396438381,1625788025,730385543,960027157,296459368,299953861,1703194348,735377577,396667155,2087724849,386744432,1089183577,424012363,1588261575,1095894014,528707121,263368344,1303118300,91474975,1897929423,570626425,1637529354,1233884520,1582331170,661220081,1920150560,875515136,1202513952,974097942,1771470371,1610469629,1999203415,689996418,2094392623,76926581,557470433,1159786553,905858742,2032931894,1724151988,1448095149,1384089161,1702958458,1440225414,636792053,1859184503,488536094,1933305532,1566361249,929045595,330212774,1251262285,1178110709,875499816,1580081694,698231835,628009135,716666986,1477301693,212271074,519681209,1146767804,911141523,1972249181,1976203428,1668361388,1052675887,494857306,108260909,1736464001,2125390634,1596388599,470810756,1345810772,1926875094,972457163,182518602,545939446,1329457053,1738071009,1020858968,412023534,679888508,1722694124,853302132,965418834,1038135275,514970385,1426229073,353671146,1401692809,1926690439,1792964372,2025763983,1316039822,1311372723,2013327470,639987233,854262198,1420621968,386587365,472175579,1415268414,941382935,778983718,1411048541,917199556,535751242,1778440699,1680842683,422906785,1995881254,919499070,1259140025,926688300,1326530948,833304532,1707894977,1562802285,928312223,1013082177,1706009789,1561949039,525820139,1355429880,1661585591,1473188664,1642454585,380435914,2098805270,1794348090,364856165,1679214181,258020053,1651707134,2063236694,2026918785,321474106,1604047262,477654280,291978047,1755394797,2049847586,1682523231,1361144364,790363563,551998348,165129154,1401286760,2062966566,1818689090,1666062307,977173456,2104432860,1361737964,1896118731,1672771463,255463102,184463395,1653681870,1386421503,1398720127,1039772454,642536179,118951264,2083052609,1931062494,846138982,1784105808,1839866521,1925253827,300795553,1933094039,1297677083,2028940483,221640939,1376866284,1607095535,2068224115,798837444,920282554,443872026,563786869,1243104692,1087537223,1006026342,403567820,363715997,160777143,1737334104,1365986844,2112226545,1614518008,1885300994,1928869529,1717196589,63798717,1673340215,2035926882,547298999,393668595,210953229,1547018116,1051172246,522269182,33721441,1872743566,256754461,1429371864,1358457745,3204851,1076833832,1896454366,1627269421,1284494522,1654381966,848786759,32199155,1092248239,749857876,930245140,356749488,1164311891,1015066443,470316733,565383747,1828200673,1079094024,1492510822,2095078157,1237171939,1709977716,686574028,464076030,137676628,1693067549,1554551623,1635780893,341401147,1504409384,672366842,1888977307,1284062767,1577573736,526031924,2006672339,14319553,1705696676,1683611025,542061793,1758576996,903512281,1214219485,1366160997,1773002414,888101561,1587587903,818421156,1405615604,563687145,1975003348,2079387551,770522899,866230352,951302416,1406622909,1653857088,98715349,2074741086,1130846840,1065907447,657658117,322552786,2076510280,196462297,2008996387,1551493998,1637640277,2016478443,1232783621,1393528905,1773128363,126892649,624316993,203563344,2129467341,142606770,176217145,1561823431,1540231188,1646027120,373621518,1708239788,1487257920,1945768371,845992995,11021931,262567716,1904867709,890136343,1243293456,1558566342,1302991463,897567545,336550206,609617435,1522560822,1793931372,1337667241,906357485,582004756,413195538,1250868128,2129641115,311568873,1595173638,2012877421,982672029,1520829258,1836337096,76514169,1190344010,1775542148,1737083060,426049363,1527249541,611515719,852777528,623605892,1728579489,874966534,1531978417,231142898,1162450698,1071166980,2065318380,635620273,1966182086,1235724669,1955456810,1184006176,1257078916,1781225465,1992473613,1523661041,1532934386,521423894,88870440,2035582987,885669053,618806585,269597189,1077267541,92306814,432944218,1644342102,1765506841,1138869597,1188477934,967572814,1809364952,1382985168,1096674780,1687162191,7196058,1148081556,1379636664,1115523455,395806702,822524727,1273040780,34759735,816483219,677255573,109527697,857630488,29805488,1705835291,1449812742,1979863901,574491427,1735617652,1788496844,1667058126,1297781682,245568793,284648038,1221585563,969494542,1770583729,1842809514,1074041106,528104084,1019544042,1442982286,412703479,1656318391,1130052005,933190091,549949901,634776752,1883596785,1469056172,604113382,1356216656,226305646,664090324,364665713,1527056426,183856403,706956140,1962105620,995361526,1930371063,47743306,1181228658,601749921,31315295,1672162382,487454252,2037802179,892724843,364691488,731132563,586464024,1660634090,129345719,1090843786,1939707479,895402350,594944144,590887222,221595148,472105610,1321406450,645586706,2020363060,1798333730,2069397668,1684046485,629769026,958306367,931964926,946738856,1925584905,838708908,2050432738,1847840891,456484780,1019206365,957416713,1400434120,798161072,545038979,637000041,1287267534,404229002,1457131376,276834698,1515844375,693594872,1473675850,1855333280,1805338357,1220150427,2040845649,1527271087,45919558,63285011,1240386767,1048537444,100000994,1479475370,1446512050,287636629,944770767,977514298,2049168881,1468656162,1211537235,1638543952,1101126474,453980631,618375847,1093337441,717586983,809469795,380411472,1902596368,1597124227,299575745,1603208822,1703940399,1924127402,554832466,148267215,1059498194,664503544,1653210693,1174655353,1506705746,1335164079,602346529,664638780,175476151,1293557285,1979362790,29949923,1472660334,1399939962,1319516008,169714978,681375721,1322082848,297111176,2063236321,574734677,240031981,462712730,16917632,337973708,1638458529,1936834674,619227955,818651432,1482358645,1081845815,3340783,666444047,1536131124,63886604,42879770,1990786484,2124508118,1751043551,2118301009,404892168,1571384010,1839977709,1469669572,209098769,1532561974,118958256,225895554,602671275,1814255223,1324297766,1056170413,1393322609,1118528619,793416292,124595016,412579424,1882187950,1794471712,1544719982,1483189767,472467495,5786385,1356142217,154073495,1922403153,962426567,2015567287,229149337,474591776,1646566126,1785031554,767393243,1616598579,301423462,1229227394,1510798458,2113366748,2063899655,46591283,1182060958,329953828,2023965062,1029714390,2048137657,732938226,763138791,790370048,60835235,1023986591,721968395,359738221,1170438112,1562764855,1584618155,1497679776,1682460579,1632386722,589809189,1525536890,1161977417,1517951775,747139936,1955792554,1316910479,799482589,1411016364,270402191,509834349,2048617744,1205055240,341689823,2045107332,1209136721,1240498260,1153811032,264773120,840705504,277478968,487887145,1255491761,250964362,1084153870,682492634,1058196294,836734347,12115800,1964752395,1341227852,2040844623,1981837171,1520399127,2094386719,1564049297,759008846,1317846983,1158006489,415102660,705202051,715470560,1575129338,1180313413,278862067,1541982133,2025936150,1105245666,1985154935,793248154,1461913902,22679274,81624711,376837845,1354825931,1080265419,52187506,1462901245,1169558427,999990097,546900688,1036907598,1454467818,2026349788,70087086,1417248524,1607408234,361525510,1546030512,261702727,697783160,140201999,2104777445,661470462,1317158059,477132726,224777892,1875686429,2023939750,2073940944,41727526,1396438186,1543446280,1194225347,1875714816,433968721,585831921,2042385734,1198535306,305343559,860198824,1186112248,10090675,515394190,1823897837,18115499,1206096312,1821248398,1750328288,1426510254,383176193,1486134363,894133820,1307764451,1315843200,612778130,1362368441,2108171178,1036580938,1825856998,438356097,1463522794,781613301,1026976323,1077848531,137942443,1221962007,1347810155,1482909763,1771325667,270166590,551963530,264189996,2108457129,2066752457,1059727761,708784418,1279431974,1059518000,534689616,443824552,1045541270,1499550081,1805797518,702849047,1751926011,722583285,782744015,834668424,2011757630,676480101,1351045156,803605278,770377242,1523498176,1439749558,1005960170,951879042,1704221524,643291273,804245461,2078140167,1967604351,144444862,2048536461,1896687141,2004704738,1394347316,724582310,1978576763,839757476,1010929076,1496605170,486399660,204341462,1133672159,2071955891,1289251614,995301795,75944615,1080990039,741382696,1245545051,533981732,1398742996,1007625617,1141354184,806924710,1988462956,1519045644,147195816,1126230079,508867597,914161354,1435918678,349364495,963716014,1677760074,465587524,538626362,1877605969,1380979243,98140734,1342210502,50808270,10638143,1585436307,100069832,1600215083,2088898521,1429649032,603413493,1554434091,1068515252,1126302862,1456468256,991861827,363357386,355878830,1915347107,1386308654,859434889,1121627618,1458441408,2046466197,1010289855,503476602,1682487656,935034779,1863333708,1953341241,843130887,262932121,868373158,230312017,648485961,219283240,713228993,463291038,1977425048,1433907791,2089844966,2066514240,1927224201,1219316220,200749174,1064613669,593464392,1444446287,661511433,1245651154,1539566129,1678852885,1341328628,606848426,5423122,1220624974,824599439,2044475599,1442177668,1809353,695421887,105076334,1902623558,707759900,854894791,1642765890,782739117,1528256614,457591477,2011620597,1721090511,1002104831,1663860716,985550709,1813241499,152805225,164492430,2114475697,619851431,1923838231,538340981,619285827,977452220,1481288388,1744965907,278943862,1214208477,1493730865,1832781436,1408489387,152140297,314362714,1072075743,1036825185,228509376,261790456,156970841,769233622,1220587736,438205944,415906839,1712431569,1926119051,1072749818,1512094793,1859615633,1925755002,145236551,1413645615,1658149194,2056690102,1397220163,1941585097,1859521673,2007743887,1584866334,401209803,786818373,1022142341,2096539261,574505206,910747216,1324073958,786320069,80909715,1153812832,464543259,1377804300,1174162588,713258498,127963636,1237004096,1998157016,1294680860,1274384191,1203973583,1423921520,66868626,625697297,676577595,266642192,1197554178,291562169,1290431009,325493477,866703669,1706277677,1282379196,1728743011,1925267710,566881211,257763349,163383986,1344689799,2105879582,1922176481,666902198,813609119,982363504,1255255088,158928577,189932568,303876125,622883748,1131933342,1097516554,616280670,185489279,2006743452,1270088905,388315762,1138834172,152108423,1917050536,138969982,1342964833,851324084,898117372,1614099641,1005836741,1717773662,1500273370,988189333,626566784,1723553432,630547953,1946511800,1559279818,1102893380,1798803874,1683594422,420356550,630123673,947962943,1227158093,1175774756,321610692,797286857,1605299710,1743679687,1066047330,1096735381,448278845,1960144524,1606617912,1762423518,1237401949,177109281,1132457789,1517213053,1638774717,742175699,1729804555,950840613,1772516879,1749182018,771594757,2001724043,105638026,1462695230,846458118,850336103,367426449,604880721,1072871273,739250608,567172596,1560040264,236093224,1056867510,1645776210,2069199309,975708347,1148271201,1504346460,1920461012,1935093917,239505155,193414977,1508562897,1273237914,1539448891,1507806099,1752885577,1548168837,1049420350,501948856,1426837378,1209039630,1259882513,1668332208,299663880,487852910,690976304,1176940259,961375920,302054053,1609740024,77173879,426547500,85640096,1376339624,1125741820,1670033874,676882003,211679453,24864901,1490219708,1588032184,1425082967,1703049215,1777951731,552997108,2104351674,2106796929,960890147,694472256,1719726520,392911254,1477776609,105392393,197433253,1622746163,978906910,1508870154,788933976,177849753,808698648,1680899334,1715324018,1464645919,1906443392,369368801,172012194,270984848,1070944596,1629216753,1546547805,2019547393,1063682561,1779950283,753730459,1045952600,234124229,1182961440,694879070,24562289,705031267,586452442,709001847,1394982422,543483527,678584141,1967254083,1562548021,1760093727,1000261233,1119149584,19408897,100728897,330414277,1011397758,59296351,1301344791,139418150,1170457600,1729477670,1191131725,219948621,1210181261,91022376,650282876,1546495047,683328403,161973773,610859818,312559523,131994440,1597754349,898438087,124856398,1773916273,1192963232,1344189799,1165501943,1371184934,940797853,813923193,1570006231,1333549176,40384125,873452657,1740091351,301448037,224111184,1267294434,780452153,1972374264,1564581174,1818681654,936172249,226331147,1771152802,1577711866,776233805,170262127,783729059,165912416,1730806461,35012108,1516769677,1900177436,2127904033,601072627,841529596,84525207,1039416975,479691717,329738466,309402989,390746786,1070904661,77529967,854920749,1506616057,777209331,1280303802,1115973253,1532526900,548758325,1289015738,1346543148,1298962559,862903888,1055703146,902076250,1220185122,1374910274,1218413485,685026644,810888507,1586132457,239569710,600058859,1857913510,411555655,1204138180,1054545225,1653094792,2091872981,1393698915,1376724619,473157710,333233596,474066428,110163085,1130200870,989162838,791524661,1698642049,1907501311,396816126,1447678092,1091718204,2124408433,1392029893,611763376,405151197,327617778,1997109988,202943495,1427518960,777709422,1374426443,1218717751,84167331,557491191,1509824904,1601832527,1719295763,1613584030,729250464,84030603,551988667,1136065898,1539927400,87385535,935297955,1527182935,594221957,913845271,997951785,2062976516,1614964774,1961904108,1188491683,1091942154,572074875,1377752225,2089492921,71040147,1452241785,1032956508,665397333,1004594361,1022413901,1906952744,73328655,1965124575,636774210,826657617,917215795,956538850,1364116625,1417370637,1867292296,351885483,341554736,140226523,618384274,2032702274,915994699,1489436520,2065325231,1915629554,380604489,1012277604,752657145,1541131931,312130419,1195012120,1691506048,625740315,760738249,1941872328,1793537641,1985992753,1923067931,190887773,1783210140,1615848975,1859478052,1986180208,958876008,2002740434,822139453,1535540197,1407703620,473581015,2012369822,781871185,1436754854,1693475668,1569130599,610505518,1523309097,909639187,844709569,336985859,993701643,1799145140,1148947259,1686253962,1549796018,156160744,54108377,1541776808,2058614708,1575824801,1530234114,339698549,784028187,535120808,1113220152,2077481027,437828864,1654987544,1848319008,1044386271,61758770,1983426809,1363495950,1152932416,1881195292,1431253049,341677897,49355124,1417943864,173514419,969643903,2064165972,1148846719,344833795,1980996525,396363186,105533095,1876348866,1902991199,425266990,1575331858,1294568282,138081828,1535017668,1170960963,1562756134,126968009,667507738,1112200320,1045725657,1098876941,2115602606,2084843138,613004139,1641840442,1249858140,1726548298,1438659084,1299118746,1780631154,1808491663,1197027446,1719573449,180653163,2019508829,412560535,340799647,618959919,1498632692,617905160,468807642,1481511747,1269494975,2042255029,437468910,1653760349,712576143,170470055,1175600195,2593028,1641388857,207242392,1368782642,1837358296,1705815153,499454305,1656003157,1288673384,329714761,184830465,1388101941,837030862,1311124708,2032178873,2080948664,1636875018,1670940386,722062005,1479043842,1014055789,461725032,1946405683,2121923666,176133306,2014992953,1474676495,517394239,286282638,1025411600,205359767,238449762,2112756216,95395813,886019042,2070173299,1542968202,1326966682,1655049448,949520322,1843189258,39235527,119631434,550059325,1246680721,1420435287,783961870,720714182,2031333719,806040220,665104135,344673268,1976456327,1657879890,761402310,316659655,1348399644,725751310,345796017,1126849469,1113473438,1269423782,823229360,1211074421,117313554,1460844090,192659455,573009383,335248642,1321102708,304358875,1858244470,219828854,762605079,2118344254,343048281,1581234925,1308907198,1079322284,1665189840,1715567034,1216186896,340768225,1921197046,797569131,1126081993,1783202873,1429662541,1688352155,2076568119,792201759,144903950,463511932,1811369855,1054758991,820655558,1142843578,1105235511,1429745182,346581150,641032696,1323812711,946419081,304044137,1821076390,860897312,1043631735,979725161,76616823,980692455,1335193032,791903655,2005639940,1144064107,380562950,1518679287,135801247,1400516192,1286062945,123108298,514090864,308084770,1071547157,1350369438,1066360902,401576354,757188302,298792831,368485518,1463021281,689453124,323190667,1972303570,1207954973,1870027121,1037728632,636063690,472009155,1233299669,506817552,1059207774,2110573421,715532111,2021800595,685188087,279979553,27338831,1649390683,1098461992,371622726,1094642023,1515636267,1812790314,3915782,1094010346,1961271143,176145698,599355567,595902937,989343020,1459836709,371676349,1053061400,572995431,1312531496,1914279679,1851585694,2043422750,366030011,51317096,306198100,711153791,140733282,1108206035,1673895724,387684502,1976288118,837245505,2127588359,913739405,305848974,1312189027,902711764,2059262915,477002574,1428977281,200220650,921015207,853185093,608142282,302632895,1962145236,174611085,691285306,1245050071,1137609150,951031027,428169699,125272353,1382111666,1366778763,1438292874,1385192541,258178504,964245072,1611255701,1467345919,680612931,1983793853,596977520,608589673,1815641216,305989259,1262073707,1021341851,766087501,292133659,103613025,297136119,1735471662,1475779934,887200296,494940310,439028683,1056342371,820135171,703400166,1087119201,1063456124,1181825603,124461184,1187704297,1274594884,1537430173,1651107475,365261207,1170988093,726310393,2099140578,1018857839,2105468116,1134800275,1012004904,1156681622,1778532968,142252274,1844587953,590917432,228924885,354348304,1096351491,235020889,1269198929,1821374673,2088036702,2050614515,1907701741,1550527698,1654978812,1909292555,223958091,774602461,1527510568,726047123,1808384890,529772954,1024826393,794065434,1719760139,1703987688,491121023,1655627624,397883459,488988701,28614754,222844901,2046223832,158105066,1756122071,366535351,1637490977,328008577,1613556514,1514387574,410209074,1484579204,1342425370,243646297,1465453679,168227943,1587712156,46653343,1928112529,1424819419,947887993,636568194,1086061618,1000268756,1222677211,212204009,1022056460,2023793699,1187733008,250510582,95112915,112723,1358969765,1776738241,171870721,541253770,1823405980,601816634,314929534,1212900468,1966698701,730670688,327813078,1969560521,1917924754,2037311332,1559809275,385432723,1832502014,391140815,989376588,796125369,1470120666,1759286463,1105034714,321628522,638076888,87576566,534157113,2011378514,683516302,754591140,84990368,1966591910,376821843,231612628,366306866,1990509029,142518763,342239790,1132183354,153881540,717639469,61817083,678838742,155603433,1468762326,1814036568,584549327,2047345923,686091233,120083864,509091881,471249038,1028068162,1020399358,380051490,1160125392,1471818498,1267279089,1798646361,1611850951,691323169,759642712,430060789,707746532,564105154,918164540,1920612190,1169614949,692307952,1850993426,779861470,1974059671,769995909,1185490533,548167335,2010460404,1049372649,1392555835,1591221340,704953984,1629693504,43588775,934100262,2043759102,1881520206,1199411039,1203456650,1713428017,1987881892,69285219,410780030,1086478581,910517586,1868504294,735138252,65054575,1901150226,35725857,1071608279,905226571,289284625,2111106305,2006669308,52582977,1383749885,1464313420,2117635263,1688795303,477789073,1671340019,1738301185,2041404959,2019700086,1120667202,1896946274,1920302558,1001822904,240259123,974061374,1906467123,447880185,1871790110,1569767009,416437793,1495564451,1721543016,1223832961,13787937,2117561531,1614185756,1053613523,1250737297,1450086087,972005147,1646857,1154607220,1869480681,850033658,109066519,412724823,574729893,2020921540,1161608637,789107767,1770119996,1128968268,890632576,418071539,1303306419,520543128,1568432124,1335672582,620168714,1312896909,1605383585,1672269569,1879942916,1369564404,569342600,1902558788,1812950283,2059206717,9633367,501980202,507859269,384764074,1271601956,289901176,1879997679,847278923,1148503286,1282541826,1301500173,119323340,566528608,582002469,376425742,1638728104,464912905,1677798490,1939438531,1245604571,1152331376,338771812,1970438748,1998978217,1217141072,1370048690,1911676113,1041000841,1344476113,1698044482,1883932428,1860973228,44105188,110346355,98774126,1046369142,776455894,2078869590,511017735,576062412,887089897,1494853689,1658698504,383716241,1113278531,1366857437,1701396415,382663709,156981019,1232024381,1619485765,1217529121,1369316844,1634705960,1984780963,1810930140,92422412,133830788,512095209,1401484486,1374883905,1589879201,1678840027,16987642,1777639885,1772845960,1393097131,740793450,697462956,171482594,766092212,237946891,421509794,286834435,85461571,94325609,1117074383,1780880837,1181214160,707759072,929573084,1484658203,1459234272,1163964566,717442151,1193165545,1259137280,1454104721,2095271690,469902371,1766648501,121530926,421541689,1413590560,321955392,660161329,1743605740,613752134,1213390233,1219591987,1083295682,1059522053,1980676844,1115206147,342303773,1319464981,254430339,876230326,965267799,2061001168,437027170,336668892,370891471,677909693,1550983132,1633857101,629180465,996430689,348722451,772703643,1514659456,1092670448,1136498554,597245066,83320292,336027011,1975519916,1284893739,2013858069,609924165,386803876,417943742,1282706637,409804777,1183851809,1428094450,318152385,807569241,1758790277,2099487817,537166206,2121393080,304851370,845669142,2086834486,1837347862,948104885,1579261369,1561981263,246516510,870567477,1539503209,577693630,1980740677,497844884,1310676872,854855740,1576107892,102215458,1082199946,1193813594,1895310454,863941220,776447176,77895517,1377595695,1447826829,144678400,698696756,2017213042,519700648,1109380713,428137005,1097695542,132587102,1152911249,1456986176,553677261,2022163733,1677743862,1083713335,999682780,605751226,1761059571,1530828203,113471638,696920202,547724823,1346087325,224179708,1983464940,549806609,2127496918,911271260,210656848,632984106,499971560,649714191,1123774223,544991123,1488159989,1690363380,41771920,523228553,913676359,2050373416,1364660285,1600710376,1092789088,1552003735,251840301,2125286401,1244648146,1580966537,1747621357,404473883,1886181037,1359492479,1115210795,1985721314,668325597,1698808013,382269111,751111248,1296837315,499372661,304419530,521217062,1503215184,623222743,2096594562,1061107255,1196923769,812254637,103650792,1109861562,938541102,564369067,959598924,2050721404,35921511,576763170,652500978,1334040057,514204085,807374834,1680763088,362309892,1629164264,1533678962,1469827479,431123201,801896266,223124908,1655252093,1879061542,1237004306,1226631963,1335611464,1163516893,1996826653,790716953,145681544,1665109462,767629541,733800104,1709083041,1943891856,1518881224,545762140,1710273168,680977325,1309997003,1866951788,351921398,1471095723,781359382,542561147,328972778,644291218,1070323944,1181035294,497509565,1888636067,1215497591,1072336583,236788262,591364372,211684090,612658523,171316851,991683301,1507349030,998728649,1158199209,1264311787,591903366,1180311503,1422564094,2052849331,92536657,963814692,1464263479,1197480773,1515795181,1660214398,926942353,388229440,1288307951,1056326703,1471929046,1709431988,2058535606,1478101174,2024870912,397486865,676664382,960459229,359730665,1433094085,929673399,181550169,1688870443,747937960,857584312,1027516037,1901636041,1734899255,391228953,109436468,774546040,1747437572,1575021987,962309489,1657333775,1890795790,1614847160,321989411,612453113,702306435,1334276265,571556267,1187264769,1316373821,917873492,110522043,1596225168,1355678475,603645454,1356832909,384243512,950176802,1888713803,1458851905,351100975,1661817071,1520596052,1583052676,650588934,617471677,121751220,533884280,1529338604,557917591,1234489879,1586895032,736910178,945889791,896565891,1428930857,1084910643,1549443419,468760285,277804490,787147145,977297768,1671208136,564660021,1776666168,1007371086,1976173999,2029604473,42541983,1014538361,392417088,1490653577,827584498,128800245,503955935,466874856,502063169,750118388,309217759,150627684,1794030543,649575562,1970898379,995878796,1248408395,1532284584,289926915,1579233579,748942971,1817206936,953927665,156362411,1237836828,10327089,1706631901,1768693661,765838368,1608022324,2034231837,1054428212,1733067374,514490613,2066578772,1881408705,953785999,2128098802,2059663861,281602348,29313555,672986927,1374748440,2124882303,1508917376,1574176837,492062200,1601683193,1801047843,932849194,1121021096,638130975,408068250,1262100527,219591099,47435028,51539147,526641688,1012800485,1930514033,2007024934,141166831,1782480732,12321731,545363327,1844852141,2096222986,2058651043,1435781216,130183147,1375124002,741348388,1692849477,1245764553,1794420472,1663362354,829805651,1707760401,248410440,338874763,843916836,555001252,869682062,620950334,1177761498,110688926,2111306311,70045519,1924538002,804002107,2074446024,1438282956,1941689839,1926909487,444036344,1210214449,399836930,1168285208,161084655,1705583658,528845617,76760576,1216521045,1217038526,1999805200,778139299,1182425211,2122251315,521723982,1037455531,1111909183,505171809,1334673182,1745028319,693701106,1140585920,358120597,287562875,513512492,1909439316,754562310,1720645838,1786371305,1872298952,1959625972,234433796,975406742,1992783500,1807302572,1567832297,377362368,1891614420,1082440376,1326506963,928724448,1699462369,1224688752,1744043206,1642395278,1723518005,1192610173,1491205523,1079486292,1160622140,846121238,1315881671,1206497040,620560080,230271955,178462286,769187670,240907820,1357927111,2112281568,1713636324,1503496740,274418028,1195894116,430584825,776265190,1752864263,1096742033,1406135114,1684414121,1248467405,509385785,1588540672,2028106638,964801799,511405231,887809572,1512604518,80434884,224556763,792279150,1898833303,1790022139,1152433843,350393325,1209563623,924110644,1243273808,2036590811,1721960833,1753773730,709703549,445090081,1405248,715789679,1253005179,294713770,1003680374,1525861787,2103692537,1385357029,121700909,324888286,1574498476,901097467,1732471988,1638053273,167462133,160226187,1465322127,672433189,568579567,1884753478,703623426,1704808215,1571769609,1720299330,914987083,1779133558,368121278,1177847905,637768659,1896245632,251899232,1914610904,481200059,1201243275,633149786,104618832,219278280,1112246937,667339338,645449543,1839308710,1160854628,421556934,916548182,2029828421,1105373740,1401992081,1973730761,1287730241,1769576605,105810928,524425416,1209025157,704469596,364148098,601448033,645485442,410840932,1385151601,852249952,604324006,1511091176,1079525574,356721918,1948362749,1241544780,1061183795,1237018676,1892325814,43893363,1511814305,637432624,454679630,1297934327,702286637,253749512,507411286,1334277291,258122314,833873633,1525090470,1398923171,529499863,758280474,3259971,18920327,610731067,729177027,1643800565,681406910,522369592,834361263,224372892,1309979620,69747286,1095312578,1400935209,1812769071,1812958365,828758921,1902923923,680570171,2106260152,432886947,1622387957,684451731,1392162142,859129430,1099947158,675809309,424581441,1179460589,476058241,1508956577,1138369822,1598150180,249054633,1776670755,385175214,187854509,2130556446,943477950,2112233554,307413849,772091788,1361046775,1456864115,1823320977,1619284806,518080947,1145389511,1575285252,180363657,128190168,1900570882,1358951021,365429403,1480775107,1826148180,1715485883,442150,1519530333,1641439649,979353082,377415521,1160235146,964743059,1701927484,244657014,379154023,2047906759,2081463758,280842176,1783387198,1285214551,1411308301,1904326099,1001041263,1287336441,1649709642,1830089303,924014177,2036567982,413001878,532073178,1597871809,523317931,623403913,839509129,42808587,393101736,1639208079,367984191,1316506304,1419029033,651735950,1404544452,390749106,193376371,1981087240,1767867685,1705086265,2018505323,302160904,1902173419,878134945,1663928309,744216142,1297568597,535155013,109745626,1147527226,989628772,1361581267,1467903852,777773257,442195905,611615145,1043950824,1704012020,1690641075,156526953,1363854051,106060198,714600131,85078585,1423758074,208555805,1379541083,641442873,132742441,1556735145,1250181184,1962054361,694677243,1369302517,849221136,326692108,351211924,100040750,1676666991,33744597,419950124,1375013118,2075554166,676039358,906841000,962277148,1965903930,2052789305,1145874659,549202724,125275713,1628936650,924094400,563646630,340313281,1754535898,1784574638,814692266,736121989,577806997,1519232059,1273143425,468792743,1645938059,524503849,2042017864,1102244078,234819907,945105348,1529072727,829943025,1421537192,1057600103,1680406569,804609174,284486359,409864326,800126675,54671167,1235448305,504501447,1696165514,1634464115,14500254,1319953150,1582454484,235648889,617115012,1212788012,481776589,776669868,971124505,2085091555,1948229527,1745159833,915887341,1591140558,969627441,1304688452,591983242,1161055313,2108638123,1205138811,1360668394,1427031335,529694284,1869484090,331635999,1673450808,137538284,1085119843,1469330492,1269440156,1851228895,1501756442,49285537,1018664071,721057448,1170289469,985419787,1191017547,1977680240,196051582,423261312,155977176,1519031460,1689736169,2115351389,1874564657,670535231,1882865328,261256316,136656425,994527729,1700559305,610037137,1346435764,306704283,842011334,2559800,1999341875,135852166,1402145830,1806633312,910046452,181460180,712992802,1890125212,1243893985,2011787422,522067974,1838610971,942174358,585940025,187356977,47908444,1139672910,1048030937,257423858,1963590148,1110419792,306405365,1936738207,539065929,2008700444,1468970333,302464905,223666637,833417716,112328530,650026259,507946972,1500403041,981947692,2101570877,1788322706,626378646,1052231436,560113371,142603939,1548764849,2055723119,1349187147,1897389315,728185450,809431739,567421115,432988379,145931703,457339170,1120509111,1598130976,6663816,1677101616,1961876017,1350637140,1204390012,61144501,456124377,1292114454,1687674431,1839242413,1744300195,1370249851,840514426,678636642,623247509,1171552220,1932502520,777000479,1975341584,265632650,883850047,1248872684,18849186,1565455726,613078031,1566855123,1049224690,1649045307,903549770,120243631,1144337145,1135508341,245351936,1178411884,1322593266,1589244867,1312612774,415699699,644458220,321303194,1332230998,810590500,1449711955,708282286,1854035107,1698663603,109331698,606058549,2018086456,1081422688,164851920,1784002127,2086286476,753509386,1072839845,1665291283,442763844,1165459057,2002872611,1808980485,1203784605,471031964,1372089865,1960185068,829677086,263213960,1980530015,134088289,1213549309,521610977,1021089862,2107752152,1426782831,1422626073,684194275,1308023882,1881157011,1567262399,256235261,1082007301,237822481,617913416,2043014542,1263764400,1388727087,889656546,607732969,1676762227,1485302014,640055706,1721910971,1631624816,1470605373,1926580530,2107316583,391160443,1127369010,1048596514,987567662,1926356691,837139301,1126625262,303471177,7630458,268333082,1590292904,1449202384,662105170,423548088,1454000146,1837228802,1352883097,660781431,1442042053,1069009360,1306613546,1038519413,534389541,1770543617,634820520,1435890277,945127747,111259188,1927827344,1678071572,1535931071,1784356635,647477423,754984472,1026124624,1734656758,808278904,1241077908,480543680,117119170,2001789709,1294781828,1464714715,768265623,78084016,679069367,1401227084,757641950,127452841,1198814468,178391965,606481369,1964336624,644614020,605665730,640734625,1633680840,448305584,1213174220,759954390,915792318,1303892510,1079140545,1113405139,1944884099,1033864349,372907776,972860530,1924544238,1689759149,1737382172,144564277,51793409,2007383475,1978414415,2107398013,1179082089,1026668742,895911416,1919823951,551330947,577678034,1483365737,2065507140,1224439281,1111798999,1559274219,2097154377,1989580146,773467185,1544170679,1507115514,1581480353,1347493032,761851680,1864074461,870586838,195781613,393567516,1133954307,4256307,2035239953,1499779174,248196270,1984676385,64074181,654274678,1560761612,1606614491,1259795805,884558117,1780884482,1662489565,593168564,265208808,305839502,608292569,1654562653,1788977960,58836055,316706883,1908246177,2022797230,957061489,1871433879,590702586,1629124968,1096137677,502567941,1285803659,50850130,2007005642,3401618,1145171019,49715245,650882850,1909494081,2130030951,22015836,502427221,1980981246,1672953133,691764360,1481790494,1637832213,155957191,1228416319,1011534204,183563504,918868052,1966313088,619436860,257951,965303992,2122258172,1093040892,1241575123,736148660,281118103,754994055,1650871452,1765007931,828802137,699949338,615378819,1238004584,1369674540,1741204253,181369166,607188979,1178609669,187794414,1315708535,1170930042,364830423,2051410211,1753085474,1097610474,2003987440,1184019642,1944703579,449556657,589311888,796004677,1393430544,1799086758,1615284517,1774720320,2076520582,1110636253,1394145593,1515560572,1655054190,1822413111,218472103,2054818826,676492397,2100999833,1672290272,176068713,1761680184,2123510453,135719989,767232378,1282224177,196816293,1487688720,905094119,1015612237,950366713,494504139,631145584,1406566888,1839634336,997006036,1155053531,1851217906,1040381408,1148959989,1714293097,363226635,165157352,1972603735,936229807,2086591687,1964537650,970111815,1934460541,1042157305,1080656453,1421263378,1355066378,287941976,929115481,1298831161,1367156539,1263108633,1399070785,168184824,2099170068,1818212903,1701803707,882525788,1336899440,258619295,732422550,941900306,21377956,1754176646,857949403,719692606,1747853665,2062067633,574061678,309224501,41341176,1666652886,812482482,343830345,112906971,707916971,904315858,261138201,2112603017,142257419,1369129022,1759816480,1229393490,711539243,1708563403,2081790072,448842053,475053643,571583348,1972842392,1222134546,319652518,806209017,1414602932,1265120341,1209941492,1163382156,1603577905,2070360041,1779517884,263335377,595257591,1428849023,477235119,1557508436,1862419688,154929547,564896143,1161692754,1082826874,1512238999,1391734691,911076098,1165261290,792276622,1744812672,546273211,1801820307,1929061271,159505909,41166726,1594835079,286300216,998243945,411983788,1677108827,18629365,1411101019,532190126,1865165424,1660196864,1796135312,192218433,791435862,74439148,442598885,1966449512,601865038,113807539,1889625938,1950932860,1629821446,229338553,1709502803,1993167846,320715538,2007435677,253618663,1965203825,1922565011,1740534533,1977380822,1042241777,318457974,172165991,1155978209,805770617,1282452135,500453786,1766328948,90871232,2099494963,2019914008,1252823165,515195536,1541589671,2050642661,1771466301,1945838324,978204125,903995853,586113843,439806216,213675787,1882326984,1152507671,795893443,1879762726,2118399176,1556389855,503633488,1170757792,2082140668,253389444,741336278,1655464014,1475144745,676987259,936252518,1684122367,2038169653,878720614,1882085861,603046153,1067207428,1439336279,567354111,1532157006,1106297559,2023992070,1348037516,1737566030,976545630,1227534621,1917691509,714860839,391436238,268515464,64607129,2059920766,1526456769,1527426106,1633164930,132746503,481416110,23804684,740750651,392828848,1709309587,655413243,2090757494,268816160,261589289,1823559549,508455017,564483708,1697118883,621137927,657777804,1095674373,314001808,679796206,598776030,1230504203,276552765,1886495413,603909841,470518681,1892810322,1614816821,732945306,739746271,1491277705,251711932,333094599,420088478,342616865,1057061350,786063481,1522494575,71818681,1503322562,1187516116,1616567667,578740673,1424268096,245183971,697068640,413386938,1774066046,797200144,2058226637,1816598286,1529670066,213352206,523358345,1103999390,664294916,1907811722,675011294,1114173525,1070721664,401208462,1346111735,1309042125,353823436,102087335,654971871,534876356,330751570,1062040604,2033912242,1791606366,1266129577,653554080,526900469,538686867,1871510848,316842264,1057554323,2021249009,1720819811,2104268944,2038605317,1528733848,1915122016,373764692,314676838,731360579,305903364,642247514,577679187,1445268396,1803885420,428456656,317740077,794523036,331054042,1780837464,815482040,356981360,184603272,2007895768,450723175,1940966304,1951833833,156185533,980941615,1414820375,2101038348,405762845,795764627,1654365552,1473470919,1036930804,13662643,1144790847,930467349,306052708,1322814992,1830695129,1801063219,1378900052,790094844,249433956,336038947,2123049898,588953868,2027152121,446395999,577197185,366913396,1409996854,529754381,893911611,158605960,1538720715,721650377,569999395,209584283,1846130880,1997228888,984388885,933734790,114613715,1740638998,969343626,2037718401,1177131265,873391547,1014893467,1195775230,1650837378,509125550,610533234,1978833713,784288797,1364931550,1296499510,1765467475,1321449590,825976785,1293103439,2023050488,2084368562,1552889031,673925349,1408635835,1922065622,916055751,1886275795,2060739212,1483173537,267423825,121328988,1976222439,85504986,755130640,595173570,1871820963,259401217,2066513860,720188624,330634628,439782832,1191874310,252852018,1427377956,618097050,1875780976,1784343005,1784148084,546368647,1202447564,1834557708,1417620982,334773305,1497660010,1290832523,377379103,1002437276,1511505482,1219099203,1674339986,1999198217,1519447581,1678649762,265265179,1454350763,1386280767,32231051,822953738,1289210148,284899895,1108616331,985707571,1733881408,884791067,1922265315,912239340,1169811806,308688522,1071589735,1750726927,728839563,265936073,3419295,167890919,1651255594,840964053,236064557,1572558510,97065699,1684485275,1864354348,395552596,899643037,244903091,1465959637,728424953,450631271,950204709,682703105,131206342,2119043682,1923352500,18092941,1528324474,41622386,1374415807,936970307,148480663,216641682,884569030,1298054357,17223927,1324715769,971059442,1656998329,1398049660,1749464475,148203438,1014302142,544782019,1795517011,1747886784,1368637063,1477128311,202240397,713141064,149243772,669942734,2031442866,1702481569,1984329151,256472137,404989274,606094922,839209367,1285420825,831154218,790280608,1164037145,1693813060,199029625,1750688810,472975387,1979915061,970856834,1369594060,1445881949,2122824113,1502558101,1427493339,77588683,1986914506,582671700,668511241,191854283,1598003354,893446846,953341502,1854918694,1435235141,1467603859,808991228,1212503396,1893118694,1865883680,683633014,1581004571,687898735,305563763,1778474382,335446854,406655697,1408247970,1004098456,2074824564,1731703366,2010548108,1227451417,1402298144,163118066,818505096,1077640041,1041725063,859801845,532503126,1651395890,312432836,267494716,852909947,1141801891,1289985811,447534550,1638135295,58618665,645127328,2052327380,1409384439,636520804,551574619,1726122593,372958407,703611976,558895679,1211818597,1912663874,856320466,1877370125,2059319945,45938772,1658646904,1123800452,2103016786,1723932939,1894068556,1627307079,89656755,1044857994,1257968182,1211105101,420325112,283424528,2073613043,1884910794,591694552,343817359,1269083435,858417440,1961335678,668544067,1022075351,667844838,2025843612,2116005273,737677596,117602209,435964602,909787680,238070272,352671465,1152235075,1598257096,34301052,1605893167,708216476,1007895155,923054855,21430637,190793784,1571191608,1372875888,1409513868,362485182,2101535249,1777316574,1289513253,1745358027,639725014,486357646,1174948033,603364104,930780376,86751223,1918379997,802203006,8173990,344671238,1108740217,943454031,1042011893,336192576,1483090673,242339158,865282401,1292488350,799829935,244251070,583141139,331541627,478707160,851343682,346193895,2114989344,1766339732,1467938723,490158545,2051642667,1854610175,201217720,189365954,3366927,576648741,334965863,2073585087,760845761,2070061663,896699784,47232446,1293524383,1442715226,764729049,1622574241,1280402087,1584753959,1837792560,1097423560,236145738,726182780,1523717287,345802389,376629036,118027395,169612635,1802068490,1955071814,1324943424,1869123582,1299551634,1507900835,1522202671,764095888,1281456399,1847841366,1066423422,551608174,835514749,2077263226,2108547412,1401025014,882511599,888750187,333195202,2112925508,552333454,1835490552,859323638,792937746,1028095331,1410232784,1939431531,1952492226,1233902695,1034661460,1396098119,231680792,1349293984,1990683784,1283157569,394742792,812760260,1108599684,1044910473,1695464217,1878133014,2084240276,1928542153,328241590,1810194658,1257529614,753407319,994487641,1351965796,1773884056,338817714,856431390,334160661,363887754,739243094,1223962384,1061652876,1047473854,1261883843,1481083286,1265552791,10635138,183910392,1081875600,1555329640,763216042,1197482484,747605008,1360068469,1268197023,657853006,1230455942,154543952,9117316,49102982,832846911,2051863549,1407775273,538253229,1446813874,1293394995,1968484485,1465985912,1184684449,1994057355,1567712848,1846846464,1331417140,1613663228,385257697,1882784354,2038053056,1134573197,421781603,517270824,408541535,669888343,67162370,647504858,1392563987,50494865,1431213897,96249950,450920515,1049858839,1165253071,549735175,445492587,2053901436,8781354,1068834991,1448156622,1623675287,1284052451,84455640,1937473676,1955548721,299040549,1231087768,1334439488,84011209,1361242338,1465797366,26889114,1529449278,888527228,1511127705,1302949252,6898565,1681333772,842612418,1239833527,326145017,1190779093,825577554,1741098979,232464353,1419629444,41474750,1187527191,1356799064,511651383,1454627826,1421616444,1365598763,726496019,500853622,1782417061,776739811,1378295238,1026621237,1061820534,183862872,288892994,2114727447,2069031255,461554167,1232538286,1222936295,352622109,1918617540,1419995139,1443491871,1015059279,962046516,1217888763,164944106,768754271,1497786037,157967280,1973820546,420623990,1541160891,935948078,1509788191,185672663,1523040024,1874509146,1887390259,1109545384,2019505166,1412047256,599549670,2032592385,1043852644,1507409860,1030639313,1806473416,1291401966,1996698639,1662027131,1193936756,599339570,67120549,372975030,130337300,1178612902,1379355531,1288373414,273993283,879434126,1427717082,728226661,1169448428,251780681,559893259,770457355,94821091,205994271,869774088,965772282,454570934,926824636,2037737517,1661650448,526457874,936465719,1323559677,1790104514,589065391,885278033,116406990,1629867934,1651745277,533508952,62125365,917282485,1102466615,1076329893,110674027,361415604,459223485,1529733244,228957532,710972056,1210315034,645814915,410702316,2097522516,1125875823,1575820441,1622616389,848779797,1309194610,2120348304,797315229,524433933,1803101453,18564873,670436636,1973010164,1391385068,773429000,1770557193,1224349432,1138658948,1397784525,158513408,464822871,1055809241,413574291,1955681724,852121262,959219162,1862625423,1906133937,196934547,240281650,457546959,1400691450,1787140203,369360662,1169459772,192501062,405761517,1701472642,1871172514,223735126,1962842078,828610843,1588801038,1199225821,696775901,547759646,831262399,984498098,1068429216,154595570,1760284164,387066401,1663161417,655221999,130972003,724359738,370020966,1119735148,1758895093,639425681,1653662874,1300508296,819924379,894048381,498883554,1207527094,1736499076,89881237,1470893582,526439151,706315774,998812951,104921489,496357553,1969905169,2110456657,861641030,570922342,1814018523,1701511522,818108617,1103854812,1168113100,283920357,1312037224,1556545304,947124526,1168933890,1644363628,903692182,2085348683,1841053382,2030908949,1550588621,1630998801,1737744761,1432271258,818974872,534655247,262722482,290623218,2029806740,1163244079,272480265,1094624536,696300681,42594916,1443928349,1234009860,439802676,928005349,1151578552,236585865,1898942725,323027656,878370177,1245714275,396191587,1726828366,1459469518,1814746077,78252069,838658775,1955783104,1891969002,667920974,713211950,445238518,1477908191,1042824060,405365250,624674130,1817133606,1270014066,653385110,730187191,669436932,1934374641,812443934,160467929,654247496,1268440274,1297496458,2047939759,660877370,418717340,873838164,1508261595,1276822762,237383211,538532625,832415885,1164087016,1463271172,1489390858,1781150383,1296150020,1099526837,974382260,643216699,73591448,1989229573,1975249248,407577222,306732018,1578136037,1962634896,618459874,1860644756,287712410,38704027,225536117,623612300,627869387,1141033768,1143397365,632032301,2062622542,530242824,797583249,1929254722,122262038,126934974,889635995,1855608803,1237755988,2072309512,1204340444,48243251,1589455622,1319772593,1407141823,495594609,664502493,1031699389,542779571,1670275206,361458546,118719038,1004394699,1888134980,1716544412,1479131785,2032883670,680227214,1957782000,1933036487,414462057,1504577500,1785186677,1911674093,777959430,1762283131,1282698639,1532537475,1932890063,1711700236,2076323948,987097604,1455174478,1952856348,1323239796,1059216667,1705960017,704301660,1584120447,1339964107,2015326016,1722243056,1180001084,530475893,616611983,1966518457,851930035,974628327,389856715,1122769549,1510007041,205869883,1318463105,2059162208,354289682,50778730,1522990010,256455119,2128589789,2048238148,1155214079,33539540,1614207308,1890428383,1737603287,342553843,989860441,2082513576,1321624464,1160526095,1819235465,426825003,2097706453,2102838878,939524141,277530275,1664943218,1730182539,243898911,1040769984,970246445,1736268929,497874698,825207235,74076534,2056177246,1107947267,1219218274,683129480,1395846238,1463529770,2114141903,1976633682,2048721699,1971114051,985819573,98447403,1101249514,1253667959,572413801,1349194511,216961182,1873655826,1008022174,519290360,1298686727,1977717458,1245320620,1397705771,1195709631,468876111,1336742965,1959505564,648457348,1311027193,1974098,1508213621,1940149625,573884650,1118574103,1795712710,1215522365,1550504912,1408707189,358160955,565190170,501153898,1665090568,151093791,382922670,1395352740,554658437,1043543067,430526505,1487938345,1202118939,259791072,1903094330,540647744,2017731198,537960449,269001915,1427445959,1547430342,1592457437,965180033,1019458480,1161079559,607030309,465117895,1314578255,677327664,1194110158,1563513085,255359728,378755911,1209378544,234101057,1747810587,1063990892,1027622491,1222996291,121681889,1762738428,416876711,1117758915,850366135,1371285773,19760740,3521232,548258589,1064888726,606034951,139521072,1230517498,669986096,930193318,89101519,1715108318,718488917,136286647,202840663,1252403125,878575337,58544142,1220882354,1614569193,150257286,1880443440,1843842340,769778580,1319184461,1757767658,2035712899,137157310,489902679,1818948988,132326654,1192526088,182376538,396824418,1852670549,334055019,1060694785,1979393976,1180414407,1589385512,1584955168,1612475185,1493998907,1047181946,403335756,666102464,1603866042,523185391,1082902173,1620109381,232723027,1329737839,725764579,1981066073,178211398,1650548070,403408898,750568489,1769305657,1641777117,1168810934,163583747,1826929522,226797883,632992681,188406887,459583427,983568123,1832003678,1779956354,499508282,1570469446,1919941935,198645715,657618253,1547475757,1025150574,864890196,478524305,891853316,786469157,933832672,1941607007,1762840905,1457857491,1621614589,38838874,1876916825,1784689017,969182013,453739799,473071038,1024361249,1074049736,593652431,1660182034,505099243,1698776078,1998625110,225986032,1490362922,975862131,563711708,1510685453,657997681,1246176051,15979223,1385733755,1698880502,905896056,647641630,1342306230,1664196586,179197981,1827026602,1245002049,1874491214,98813742,865114088,1826587483,1424090514,2026552253,1003767376,436706778,1161443400,1554218289,1628306652,2021296667,992109881,724586037,961750131,283598167,1298476721,2106959295,1511044828,491604067,1421075502,586087702,1812813689,1617388990,1598988402,190521422,903396156,1902828319,665085779,1536098471,1238682739,1249885479,1977504648,454737734,1193945568,1408884723,363200304,976270088,816024014,1086056120,2029679823,1213353321,1467335789,652846059,1317712753,2020121802,1087287854,1643592796,102275463,1255832104,1593917829,772437975,894365093,781591979,469349384,559277278,1246425049,1593168068,927841095,1892801298,545635097,1077757861,928957101,1898417294,508294494,1513802098,1041405814,1180064895,1913292715,504726712,36164990,1826880768,151003180,655017387,988625516,106580310,1673978076,1698618504,1281532780,206277849,575437381,1899477493,1820129878,1848364818,789362174,1862889359,2054848979,480170296,2099007299,790274988,1586453353,1589005923,1545143668,1084098691,873898641,428476522,385804199,2049647877,416487394,1491387842,1708706120,658875592,1112654477,623798818,1620504194,918238769,516560311,352697922,504802770,1618596340,1411616086,1997170178,759077220,944309733,1557143523,696916053,274453208,2023007550,213561944,1402659507,113805293,269626715,919415215,1525192572,1819122788,949030915,1715096600,451157326,1871322554,1435216161,2004478092,410845754,2046527918,687608209,1227476775,1364496050,1739499775,378342479,577953617,2047391201,1058632440,1606084497,1553875236,1700058621,1084456292,1115593802,1023144096,643907754,191635820,1199456169,1240901310,1142204092,831924950,1331432732,1661771978,928670272,1115270024,1503041806,1205295904,985038150,1304422462,1695205466,43866373,1388760036,1996956172,926799934,234202999,943735106,1399591508,546631127,755347083,768415344,487027214,1065854824,418940775,663636853,1788355161,1881654175,1205956306,87271246,1273731957,1474860342,269896467,892960247,2066754469,336429679,1533191034,1086244157,1274217440,1018581687,354053229,829337495,133577450,533868570,1244090522,866183223,967348285,490437057,1616632531,1546225432,1227962040,1175652588,1992698648,1033260740,1554265764,569465615,1595921151,659273744,1519205812,213274949,697483935,2117786369,1465940540,33206988,2011266958,1782128622,1289281978,1778294529,834703845,1743223468,489114180,868335700,464981883,690236834,1287498906,954063941,176130398,326544263,1414355733,133412012,927423354,581491853,83074456,470159413,1900662731,760428833,294170249,1764301217,755444483,456797636,281796447,1703737299,547619087,55387179,29893637,2028115233,312065096,1678147387,735699535,1413150402,1912150683,935313752,837008207,1641796345,2070899705,1280375584,1711777243,116954412,1717216421,917802377,2120897698,921474732,1276231783,1981554524,1453874234,1022695327,731267351,376396459,1517030885,1826603777,1325185935,1577057454,1188401121,402572416,1164039251,1522474771,1336758889,1053819056,961524767,1657148508,1301254949,1001301772,1369501246,228973433,477568989,492182816,1738727408,1115309932,615299067,2080250846,1648143352,497485800,2079457801,1729646125,1272227286,2893447,1760358645,700674934,1386343746,1283861959,229227497,1646371443,1976620953,504186807,903927211,1334762001,439018643,1393899885,260109384,510016951,313368463,1065645591,507008303,634276585,1194415131,416964924,1421280250,1704467399,1734009221,1686326687,311270103,39020938,513552712,1126158024,95079887,625625200,1127331822,553323024,1227414214,877580426,226851928,562406328,1567129121,494527747,816684677,1356731906,78307796,143908389,820221167,664433375,1789579988,217232933,1299339967,944515110,1701557066,2071799458,1915413680,573152833,1012215557,237701114,1995744642,244081169,1146110856,983044225,227925792,775705433,1683595830,1771526521,704203515,121910697,178587229,1294262518,401175938,683146099,1190879421,1224231945,159024737,712342680,1026456716,1825600595,26759152,854529271,234172980,6195728,1534123300,1736769183,1869469044,635969534,1643632943,1306784813,1610013383,481224297,127938947,664670527,1566276878,1805038039,581939548,1966519617,1371651815,1316888054,1287703306,977239306,330874203,600382542,472503882,405698338,1293300781,1968951846,1434236418,362256041,2045598375,1863038445,1938248021,112008743,1343329216,806004952,962252954,2172916,1214729673,2123671687,525409725,1520479374,413373643,124855018,110280142,681547080,523505214,1744229506,810770819,402870852,1119274465,414334498,1816207441,1305571039,1397175659,2125463224,778723271,353091554,1044489863,197178225,1986500160,1738977264,1790689194,1217458381,13958134,997080839,680630352,915281179,1163211334,2022071492,1153040996,484333853,1332924801,1930812295,269409974,789435870,995595177,20581191,1703163377,525652869,517735111,923903200,1976848105,1410467462,442815108,594555307,1915944392,151542660,111999668,2033720661,448994948,312345213,1986603011,313347036,1310478132,1120174800,1399778435,583672900,726875257,1998616503,1632368909,1825182177,1229117976,39173774,1065771554,1520405072,437226316,1365946573,2083294652,411226748,1280917738,954861768,1079902743,361028968,1786012066,909716752,1847245425,312464236,343795981,1508767106,487379859,586393765,81830684,1002417908,1612261918,888241259,1256664744,80406403,225355373,630654772,495495074,964879253,1466309525,1490150848,181659247,743495237,469432810,1254103495,360158901,485598027,118249214,1354139952,754693011,1881564591,918263929,1122915181,44907774,1114041661,1250360868,1866030275,1311100712,836187367,397098847,1149192237,353512968,1608168294,1768984548,1570295516,234415158,18843621,996607396,1742928328,840770872,868840168,572473751,1887531119,1780095235,1649682218,1834283545,1214315865,1308434069,137585919,383078491,306109776,824027930,1109656923,1458218314,78512087,521117726,1021586518,1915848692,2003945228,267461449,1334954814,123511844,429639943,58639195,1541888502,228407487,767182586,1969764282,2122583186,979482690,1991609241,1327556925,920749622,1559598304,181146964,657310006,1693967273,793186441,1849330614,1486397994,509047947,1579965999,671173553,1117233404,363960005,898343935,593461981,278847331,411216148,623376217,1395996847,260181376,1250967147,1798543186,1999732970,1510988360,1823591519,17410681,1129100900,1135916604,2030679192,1530865329,1428266174,2100754109,1098334134,1251457760,391970923,498509016,100599743,84956030,1741619662,272893287,1069214383,1907127463,977612637,54406485,2019801194,1711417883,2054634152,1862975386,279626901,528499867,878512478,445281144,1443770861,261582460,1682993340,1772921087,73863538,759119019,1344334485,606419298,1168161537,963051180,1488448644,663838275,429638078,825857726,556117498,911031413,1517105813,422468251,1075902186,409329723,1011250519,1807353308,215347253,367927196,1859732116,687462969,1101272246,214909421,1542890155,1098926761,946596719,1493956603,1234971546,996589895,112665772,75264773,1930479229,1150260621,1141816316,752982145,242013845,1111141903,2036051974,524741763,1980489873,1126786365,1209923716,1279397315,1217826232,1203282965,1513023043,764883744,1536435413,1624216756,716117664,1538864728,1630479612,1890119641,236672744,1293329069,1842996598,1521722857,997028223,1840514581,626565021,26232977,619950801,884914718,832360801,1915344168,754678435,1635830362,2083901031,483066003,1152583402,1822403547,1145429949,1019775914,1527901949,421779359,528139872,1482037004,1725315735,1907672863,1912735616,1686638990,1520482811,368334013,1708294863,2016144424,26320885,505670437,2075106319,1799381418,1591661878,77181651,130205821,1729172266,1747318459,137851652,1248808267,966332504,68042386,1059738050,1386172865,1693835862,1898269599,515943566,1529818862,332580057,1982242130,1504458707,1470506742,427522596,2010152109,1378205919,636270161,906064762,648452710,282670797,295304243,1048905402,255029265,1124358062,996692134,1976743833,939969157,1354897118,1929892902,1296926318,263845757,502719226,1114964564,841894213,688812080,1853318090,1561450520,1641860470,743491540,234865891,1723210196,1412453715,558462327,188036932,1089558586,2048131651,2096498813,1518242103,1095436623,73284228,376835264,1162537562,1879470147,566760282,1403259075,1329473979,759903787,1110709553,1337792343,847314740,2085859530,386516844,1975599955,1801204381,1081395852,92864429,1141047342,1847817114,915220161,1430733362,1803136634,921262573,765413677,351280911,1286589543,668146210,2106874705,1468853827,42984144,1789392374,444652507,473275060,1117124177,919148395,1375851135,1846007484,541671586,1138421354,1450629338,375620545,207009447,372946103,171108412,959595799,615553322,2085807344,771744681,1035223260,1024641709,1068739513,185817405,1006699255,230572909,1567894415,71331655,1700006787,231710283,739641968,1090600566,795603857,78648912,2066934536,504643396,1241908476,719247209,42614449,272787791,1446772310,548543327,1263265887,755537174,1983423917,1991185214,181939328,568598427,1107627420,1497684174,2120303631,492231445,1961704244,1553497017,869263609,588917320,638706597,800041828,1939545306,210078449,1481165023,273398867,1404348076,1471962767,319045481,310767304,869226005,1288123610,1281960241,29190876,1318549755,903747170,478123198,2129150556,1785285224,1570263985,1539645814,1720532540,1237585958,1881679353,1270114069,1921357267,102211163,180362545,681552333,621745823,1929111330,1132647076,1026531244,564718491,721466760,1386669112,304361043,1831616671,255091423,713904388,2019938726,1917461719,850365436,1402579109,1745011753,730038200,1273195550,1784995274,95006921,67051751,250477316,606318677,1992706999,1459646544,1657112993,1736874035,1518812559,1942046325,1791886632,1227155734,750634641,1934567848,1725907409,1002617790,1737926115,220236001,29491825,1573081918,551755855,1161021149,996621626,753190656,1622296287,1713058985,1288267126,1728172827,649426217,2106790589,722857294,1238782405,989181555,1160653054,439809585,251098184,909728972,1017016689,1782477129,1152819587,1878932513,906603993,287733310,2028328907,410003870,1338676252,1345849074,728366452,614646585,1786730098,2050505612,242114873,1000796131,890661643,1587090387,1452588009,974522002,1303350270,1239727159,1767038384,611185301,2060283433,1672015481,1681765972,1743893549,1258972438,1881545615,1441113115,381144202,1150488250,1831038252,1287782069,2022054170,267556866,344870100,1959014754,1723656043,1126808775,1327470362,209272240,1744691504,1847970306,856135653,1646920592,1575062366,1837203773,1232571193,663318596,1210923681,359656412,1699150918,1459691067,663572960,1068415642,1495509499,1006095715,520958752,870252188,1837097221,1462280917,1394252961,1990397252,369020895,1840921297,1351267838,1332331624,1416556923,592776679,1170334888,1143124803,2066875325,2111655013,2071461736,866085742,1986843678,2002090675,1713367723,564776338,2117219473,1528226775,787592036,1545620028,620801774,1776548503,1208741453,507954984,392859801,879328434,552804101,1328651741,290020120,928543425,773395449,1194483194,90409561,968657274,1583611396,728906910,1180507320,318857622,141309164,505380313,937819591,877563984,1924424766,501786412,1318397576,972078944,1624000219,157670918,1415548055,58885227,957492892,394432095,2098185994,685624562,738372927,1039476589,92568654,2064501513,337932053,2052640127,219607335,1932625099,1381285251,1726473768,1307898114,1681841456,1890392094,1461640065,1264233438,1274895305,1336927859,1511161501,1199065486,1963304729,1269745892,259620173,550771973,271325767,216646655,556214119,912870831,1565626772,553400318,342581413,463366986,1323907829,893444303,1962588497,46736811,402496895,1046473742,629379985,1012869042,333603064,1098092055,1117768205,491671022,891778001,33257604,974770699,49731486,1201619897,2008970529,1434897217,1449720757,309729638,2070169603,1451680868,1160682330,1868967690,433038503,1267340623,1853380868,1811145582,1434782629,735880095,1409485434,1071427918,356362170,1163763530,1241908953,1158181899,1743411102,2072630829,1548540962,367366910,1820709760,1122509347,520519361,1898905636,1431306682,594509584,8518383,627534348,1886883147,54526900,631998406,1947478811,627136090,364319531,450648693,750871041,1362305553,152988069,485667859,2118878719,216507753,672739357,646235962,1948557445,485871540,1935923956,1484370220,2035011809,1927116479,1051316972,1401212058,900072287,1479269825,1645111817,846615105,44020455,1320051664,1312329950,845070764,1720002506,1823027558,875024231,2052584049,1018428236,240874206,619634112,1284737457,1607450992,1828351545,1924480688,1920600445,144097171,164019476,1775767047,1992817003,1874481525,1892480504,1346918655,747534934,267954471,839204502,497438942,916083557,1225517867,788754417,192100111,6185989,1076867283,633201417,2094978088,1647563405,935603016,1911783880,464622196,566671402,678622268,668553772,1605033060,2114300338,1433092634,751195220,2127488070,1525093331,1575052620,1548054755,2029669274,1295928720,932620935,482871876,62662184,1921245476,869358240,227144056,487693734,770631420,320962438,1945539260,1453358877,1419720876,779037586,1021978643,1731066095,158684201,1837232380,666991276,381350384,177912267,256765510,183966845,1916448935,1389562717,1118794077,1096263634,291268574,1085859915,1800072849,1292456777,1154936929,660000848,607717279,956404649,1897723730,1846469058,1231833750,1779851135,1129772411,2103187015,824585453,1155315313,8557372,878475284,176781720,1133947044,1260282881,791064954,1008647104,1531774707,1029159751,328361702,1403120201,1985321618,254467455,827480337,2038681699,1796602146,917536663,547018628,1398057414,127139569,2114650566,1251388336,565838555,1851875750,223427714,933157015,1465655390,2128279509,333500085,933095837,1925436789,1153665937,1970790691,1442994501,2053146003,525691767,1757215147,861011383,717296331,1227663386,178408024,1823053320,1527694273,1189592964,258145958,173573986,1024171018,369237409,550365118,107539282,1892318145,1618814901,305858480,582371874,811890554,918923275,987808144,833913727,1399901603,944508604,1350268647,2070940829,722034765,262464552,1548622186,850214634,402963086,883766344,2093559417,1649799199,60702488,677243200,1910255901,848086435,1285463039,442972376,516650252,977178226,1808738821,523760609,985083718,786778375,803829684,1959703392,726190046,1026672944,1080031642,34068489,1320112953,1723525192,595754563,833536353,1527281749,1346476380,1849186319,503405521,1911426944,474126358,558952362,2079277145,222286859,865101161,2046310649,1602458586,648807171,973286946,1156800555,2009817994,485260361,769968904,714650121,1473221442,1793989535,387553918,1929276819,162102380,1209663484,854163733,1008029857,1650507356,1631707564,1054227573,440861263,913921951,745656262,984479478,2124253815,2002139338,1979248863,1157587031,2027522621,1936166099,1887313972,1248838921,2045390657,1619140389,1621711319,1886003190,873054731,198655187,778932106,477641476,297138092,1452441682,1475358880,1245330570,328690795,1042648268,1143191900,998292668,1922771990,1097107738,1839808515,1627283167,711250918,1569751493,1177353861,221345362,1793605625,576066761,997848936,1184823662,888843841,1371695142,46321841,673160300,704102991,1048064992,861735814,299082249,1737672084,502613041,1557693870,158144687,808242086,1238022511,100490337,919855770,343285235,2022310437,1549647932,1178517048,1246158098,2039470671,637136136,2014914116,576720802,1676932013,1683221500,988219508,1559967546,2095195732,2079621789,536827339,1503217694,313859410,367456873,511986979,1224666263,548489332,96702466,1341293214,985296511,821437351,248822596,1949608489,120221319,1955991406,760009093,547903736,1740717444,952302276,1544847465,1872176908,1840877116,1414800646,1256045694,152297235,2066410059,1368263913,1135769203,1816373809,1937732904,1109106198,554001659,125931977,1783586412,1129625369,1569299380,331963457,595033500,2057990036,1680827145,602849003,45898885,346672399,1581323134,698542201,159878498,1930306811,1930835594,2044468784,661521095,1872334699,307839907,2089726138,1815767468,532091836,1181453977,673753784,1273357851,78755836,843212937,1710755534,706220885,1649716221,373614714,742103753,491904686,918632229,828758652,1229216173,1760468908,673691816,1273696435,112399127,382754316,121402815,571389013,1607109299,1391426556,1243123169,503806571,1141983516,1887989939,64032192,1275644024,2122951587,622614581,528760354,541128434,411136499,310623651,2101661155,124148736,1525476082,1264852170,1746083820,1968602909,1232386253,1886012829,2097209386,1978491237,1634077330,578637052,76746880,211338032,852578920,1666931043,1021840226,1517391204,187675131,1430126243,573911694,2086897865,1394145338,855480095,732407513,430209277,1865234399,19675258,1075114175,1361244427,1016406053,665608021,568267929,1998887121,1774539361,632727571,759862071,936866159,1504885964,189872228,1988336353,1656515123,245691150,1996801198,1754812385,657960846,193714284,1848888832,824247286,8018114,1463712629,553517880,2126186475,1572649465,657263556,169019046,195370695,551261216,1513140367,1995101762,19684637,425907455,97476070,825284797,376071028,2071839391,186425886,700172419,1503986354,222231918,1122223981,769230649,372146987,171586731,795257460,929885418,215210508,2108620403,1055454194,2059655363,1877680066,983534536,1644882642,2080041313,1269022714,1162914898,390832520,1399959315,826173547,1454213688,2053629761,1574776334,155227727,588420029,145375425,346147079,1026498446,1746018222,652746871,459329964,1161468010,1877843333,1636006911,578784570,92381636,654064660,654137088,1203124853,1485869692,1974293607,1573540797,724228892,1624822216,2021438140,1272198845,363412223,1302009274,1067654207,1329495070,1476187446,337117386,692979035,1117063482,1455194569,131943023,473245152,1407611609,415722695,1354037251,664174021,222455311,888609612,252267290,1952957723,860300421,129917462,627907959,372133882,1119883398,194018830,2096182044,1868354331,1819054075,612654712,133792096,51966485,1855153905,1684097339,1740753828,1307903598,1185308551,851822996,1712240348,1792641998,1310992335,441257937,1896890944,2073809130,1522607102,117654953,1804899113,396914605,1388769259,1283501327,1747015978,1923466654,212622822,8456600,743932921,672925576,681865654,913905580,1160417520,1087085822,1984043039,30651380,1858211281,220326066,1043319223,731659484,1858783319,1816859819,809621481,295729748,773223492,944417795,1730713448,205731051,2042094547,492700869,2038938217,1154299942,1700056929,449631082,1740307074,881631249,1945781842,241308318,1317434665,516318738,1845047760,224637787,327571726,63437004,591155631,512519235,2013881286,1349346194,411200386,137496625,1421346498,1552762762,1182428354,1244159790,321725779,1361661612,997058871,812132269,447176721,2074052651,1373713075,1115022458,1314250524,1745275201,1127628629,709205357,822190468,1759338020,239416934,387347027,371430792,185415942,412283700,2092419344,2083734823,1449911112,950247114,1945797518,1579708875,2043990768,1112355039,944126360,199575665,1439108307,1058667619,264042682,741086168,1634870837,516781593,83574028,1570021994,1455100378,58319665,159562591,1274485435,531085033,637901921,1415080857,1715646374,85012581,1603022267,1122103249,363288785,1612951382,1951999158,1604467211,1543409034,903933845,947141097,2024911759,4134337,363344687,824260105,1173531362,1441010643,1424627845,1927115781,971086786,356188951,1572693686,130255889,765728439,2058848735,678550583,1188191816,1869112146,1081779315,2089486871,1330265999,1501944872,798138658,1274236369,2083069673,491916876,1130419163,671697886,1090639247,494596529,1606911704,329793467,1254270882,696886635,2011391688,1189463839,2018025047,272371376,788388354,775770795,1382201308,925966476,529803665,1221489467,1753641663,2109121498,1515298928,744628892,310878916,717818999,1765756713,1878315524,2102848417,852244746,240607237,1128227156,1368498905,969981445,633070857,830600876,1266124376,1802527616,1275817857,209361019,1004800195,1275266078,1527782623,343483086,203814894,29818605,1413029986,978231468,1230940675,50283615,62734497,1846813110,1147656241,729898799,1744410212,1390495250,2031879037,714560348,2017778174,1377354794,1681542714,1636733967,1013553409,515192387,1982037662,461045105,804771287,25942300,925157904,263781430,195419502,997078940,1351703035,1715734932,1483363927,1709554059,490742888,46685066,1398926675,61361365,304163924,1655133493,787139648,608529154,345943008,1926252880,298950925,1085900371,1332665178,1688367805,1306003094,1179738038,321090319,455876233,1763972324,1680318263,954425000,1479527821,403411976,1163943851,268317917,1862547201,1331837151,63223437,1803221627,1949088310,1590833093,1102809277,391900209,1439416125,244523343,453204669,107409340,1374336378,770439408,574611675,1789912147,1889020530,244208487,156760669,1764664806,231946863,1356659224,2069455520,775132422,1710858396,454219171,1583186246,1366983386,33771775,341538407,1352839860,1423531433,193267135,1940358667,494198478,2000690770,1211178914,1403314346,1301856978,486037070,1553088574,1431367629,804644539,2071208152,751095358,639110713,494282194,838624500,165937551,370748481,152852144,229801254,1495795854,626427447,924086738,1693136178,1454738949,1430656095,46815655,2006670563,611936,372305280,1214558945,873783201,16586326,414401561,1451169354,1509110734,507682818,600549621,25048766,1903585466,1543332944,1332497933,59426587,1241725562,1677564541,1597055885,2083914689,884986240,1280861990,933634217,2097196852,1334578937,191839070,1980332889,846492547,170317230,321245398,1422329043,175084688,23244488,1199311299,88392407,47237357,1844964963,1772425976,1734480069,1780349159,71574595,1362108844,1451778601,1001411372,1313654403,1163058246,923972108,1133034541,268010923,2034305583,1030697888,1549659526,700236075,763836583,1637349496,1400384886,1285748887,1635684560,2119994495,1807516069,49009352,234605544,909235423,772614100,1490915741,710065777,2030365938,1161947313,2025989198,493465331,2042268771,1969006239,303032851,1315784714,1465787459,1653333839,255787729,1673007559,813816244,575918925,1822588521,263993514,1779392671,2009643297,855644797,803459284,1470242089,1825321043,1096428140,1965902031,2093668502,1481119165,357707725,809978605,698735400,1569859568,253131866,2111050293,1975973834,1870011020,175214896,2079107313,285944371,1598862700,798537893,1970129181,1862430513,1012484573,451759786,518939309,1571009406,1439842642,459603170,1388262602,897481382,2032723059,906989683,2002386561,106911525,404958006,2045331172,91302170,579013011,1630824226,800954922,1769369496,1349624814,1760831956,1116444733,1456910473,56229653,615378955,1982138226,913933758,824271176,1730699266,1607281537,418563766,886718175,1303393455,501863712,620184063,213201722,914633639,244624197,773833765,568749755,1188236912,623846181,1506513288,1688175240,106326816,1984405040,619521079,264653718,1925143355,938688058,690503205,877134525,77366716,589204602,438276190,143472848,251710958,718571858,1108300108,1062034138,688530293,312232782,789404504,115201023,128920018,1851702303,1827581591,426563655,1476287295,1627404972,135469332,857397498,167675638,317215191,1209834428,974095229,1416087378,1907494612,1370194041,1397435822,1797096815,946520040,175984082,1915816867,1413399803,1940207959,1514682163,1241142104,69347027,1325740800,1466460386,1051397662,1253516515,711705227,789268046,825421647,336786453,1782493066,1635752592,2022452774,867630848,333885879,1103538842,1238303604,1944204313,2070783122,1173381965,1830179426,1758526135,1482728767,1952995325,1782949820,1677459027,1761828527,647874759,407178112,740356021,729510519,1503568223,771813039,1573307255,838178889,1432825399,586603071,458932674,554125583,2093599779,38050189,1894690809,304281013,843739279,944088845,2114400730,1202863606,1874630347,65262370,916727177,1594486788,2045122498,1325071373,2034218923,914589166,496616443,111089463,1213019443,240793260,984573276,1723744954,972580970,1172383742,532684069,2088032091,656362170,666583564,1055782676,1950317206,121671906,71164763,1386196982,1705006092,1653588142,74737501,1383167446,1032023451,658531456,1936287671,1831996649,253260022,1146923050,17294568,1414273550,866619846,1850272299,1228134522,118331945,628189591,466717040,1777124566,353066284,1352172377,511269705,1178875942,991316442,1730698551,705973719,2000761330,597021170,76282233,377310042,1726895402,313312356,1081560926,1831626921,78812668,1665730523,560855471,1436074358,1076112220,1984952175,1783265177,1337357985,124082797,1137095481,265080531,191425872,337126124,477902035,2080420569,915822123,652787143,1647355775,781704488,207120763,2058316473,278628267,1595197565,538566013,56172579,880203898,1938043664,1148853476,1815144291,1407375169,357429726,659158036,608932706,1348906056,1341619628,1519502747,480065220,134626340,1296553715,1523100800,614600663,12024422,871476789,1860644304,1860288975,282437438,2065193852,389516106,1538048329,1032107007,1682715415,594526414,2114657161,994583851,801412495,625321382,1934186250,24627232,1748274166,1366493223,1126890049,1504786332,605932843,705454782,29345660,894981799,897881122,1959663085,1146304931,1008307751,268767375,2057243667,782634685,1614912902,388637269,612791118,13378718,217924925,201741991,32259173,1729634746,1620010867,1485858292,1186051796,496808972,569432219,605306768,1351210940,272191263,983963121,1396023789,1533830052,1324748996,1113265642,1456835729,667973723,1044556542,116534174,1559448973,14475249,503766233,293542286,1057509560,994603324,1116304930,1007778106,1686412509,815876619,138623236,370446528,1244326979,977338565,1925659835,1663240560,498494665,1702170803,1206804019,780221731,922201306,517721962,275729796,929790142,1996676704,353875775,242092640,1004088832,808312601,1222765577,663049108,1010334211,24982027,624344619,476617068,56704246,1384779226,1268755763,474560135,942843627,1997808712,653044901,799580697,2074824624,448902379,1830583501,921388289,1392526843,689379063,1759055655,1307608808,1814593155,102292006,301873223,1058133031,1593345385,358898389,1026536157,636746437,48556076,1312256741,1617487634,504380379,1240994542,1359330965,1714880129,1831704527,334863575,1506131786,36162702,387014522,872513628,270829453,242729762,340082446,268119261,88871295,556421421,1003178373,139293686,1213769000,642251763,1991118404,431997754,1260269943,575810093,972805152,1867445943,264918316,1511311147,1479680698,570605269,1500987755,1739601106,1019603200,710161203,2080117236,1100357628,14093634,345835080,1942051783,858486083,209026838,391532283,934671339,113879219,807237211,1323054531,1756961987,730180248,311774071,1568146378,1311735309,245349803,1996864551,1488057141,830921854,684567557,1703232915,843373309,1323056105,1532916662,1970776313,692295584,925219418,601034971,681541528,1827476558,87121540,1301641303,632020976,1223006148,563944291,1141274860,2054308409,848427179,1277298092,1486800039,1549315910,1953323723,1242743303,2026809130,1504929475,865830086,910948406,897736457,904503168,2054470767,1070336035,1391945544,1481007853,701988708,1914107135,767103787,2085075323,1742616344,869508114,1734880184,637721828,73380337,88142248,766857848,1656851105,1156183204,104864721,1979707783,9095334,542119155,1529959144,792691522,598291900,1155785904,2072039741,1556348192,55430123,840593241,1045308571,449330996,822364010,74849947,7039283,279000204,1226070098,1998767540,603247788,1109074088,1762733121,843347292,1513856715,347492258,21545336,609503814,1835494170,334357016,244885130,1676254258,1306181095,724105557,1727711281,1158656022,978844097,824986020,1355386106,153267216,281800912,426016543,1925745748,2088105191,1828931054,1232085769,428930082,1341100749,894403780,1025540684,554180590,1757151598,1028031002,1624863276,1722487528,1775376969,102305915,987203724,2112109792,1075214064,40632924,594728668,920041256,2105477246,1138297209,495770137,1238408747,404839578,574471177,214120955,928384507,696586106,36785507,180524367,499793109,1448205839,438610145,1936073860,1604778334,77124941,929925890,417095770,342007506,1818989975,253837222,1998967237,1742497569,1099215296,638736963,1410927314,1552025719,1380066315,481897807,1402167141,1812325803,175860971,2110488045,676536884,587806452,271178927,667708562,806281641,55866834,2016302241,864946694,711985127,329292819,72523803,723812178,312794321,1117766782,1448443009,1898201813,1612341746,1745622857,1993234870,854668051,215497755,337523543,761242485,1835898305,762946765,730323956,1916053032,454013893,251752875,653689083,710300854,626546708,1603172827,673982174,976701251,1752220525,72390079,2052390247,14051966,758490812,320465761,1155897213,698025587,1378111041,985705107,1629917344,1776991207,1084669740,1539133452,1495532254,485347958,2057266806,1407045267,1113254444,1413101710,1811582228,1901640046,805991429,1862528244,1852123894,1329728940,642388505,2092982905,465128045,523679877,203663,606301274,861494127,1008145925,1706837471,823630058,962521904,1181445190,1667993272,1686966218,35859377,1531313237,445498865,2105438290,33168842,294743900,1914826448,629348407,950314206,830114211,1182711387,66752783,1624586590,1045267175,1943947548,1739903145,1807586449,1567360271,1879400433,1282851503,439204472,1436472530,1786009902,435767453,1806082926,692273973,1587683979,724262047,1447616640,398887029,223389390,1653950754,957857430,1679052719,1013520490,2057667159,1372799089,1868565452,1657544362,251107964,773238655,544602104,444408653,847871514,4036788,449235836,1160231266,1156490298,2092077601,617337884,650960720,162636495,813066351,1616525186,650169990,1754996001,969659189,2006024828,658850963,307605759,1841968173,783431747,966838725,2082784577,174694051,1023339386,1731927056,13813782,1305204086,1274151158,773517041,1251712539,1205128375,177065189,1641522923,831246355,1470885875,1928990914,2096523428,652701819,1402459394,480423066,352012635,1426688119,1190787605,1794895746,1276044143,1854465087,1157021888,866205232,723050151,1887952789,2082810332,1129062235,119437434,180295258,949007660,952234022,1420763385,2041999846,1542865851,832145989,985285090,1825115750,1526996107,167744114,1068663899,1175535251,1940910738,33258070,1726585482,1063636520,2111804882,691429198,185198473,1750594193,14559637,1825997668,230639218,948172683,562740685,2085099051,558857797,1448338880,1417676687,1687796227,500889961,514492041,1574939084,1301545393,1013447864,1578493779,168467745,1999249154,1884806991,934641942,519748086,1007849545,1111407012,634124605,381725008,1398315802,710665774,81531880,1312601104,1827980403,2127059359,2021801435,840063954,1166726874,1550150817,1107464210,201796885,25362033,1099829550,1499980100,1270809572,619922748,352138946,1535276421,1270212907,376958562,706341556,413314876,418784209,483720031,1429980655,2024107472,546570378,1896488139,1574769825,1914911978,50004778,1768032626,92547699,903221344,791425487,952935205,1368702521,1647667318,46773797,468118439,216566534,605387757,656065525,603421385,2049998685,53047819,1100514880,1790771087,152739672,1165552888,1158510920,849081140,1275203399,1816862754,1716296095,365911272,984449293,1263166907,340863170,846391481,1159537964,1355008747,190598952,303287398,719491932,1083151042,2051764158,284858694,1410294847,704796845,225466820,461279292,1739362549,217354427,1387684742,1320688885,74735612,1794038943,485439109,661885384,2083196880,996767309,10028125,2071562477,281075688,417721564,141973513,1367835335,1998563626,1468923566,978309017,1104556021,430139372,744654089,1144382277,1919718226,1555833381,2065343956,118575929,1923725530,359731314,1213232694,1489189036,1513880800,499858467,946546135,731597381,1453315298,793117531,681733267,608156162,835870651,1279135364,477990216,814132833,368447442,1202818828,100936819,1802762905,1021867651,1338114789,806357681,989816318,337578464,933196135,206704093,720542653,1891615601,1082030629,632578674,1943168795,1975978193,1245078928,960725462,596715222,316688394,612859476,1221963758,1020500674,1452504908,560785147,918219118,1079971986,25429477,1344677014,424269377,811947196,284618707,1330830536,558372935,1355078132,1465254968,2055976369,288092629,2128767170,937025892,1071980989,1638691194,1585763665,1562421779,1613840704,265896244,909168508,2121323388,1785267974,1083144502,1551464694,809404691,576922505,1889285748,1841671431,724699756,248583033,539931542,1913389888,390362796,432389880,1807288309,991952356,1323061804,331835591,1025230684,994481152,438830673,1000225342,107077725,1731687105,1362300862,476985683,48980718,1303227522,1979363271,1145173349,722890395,668181598,1871699992,1273426774,1814726351,879775808,265261275,957786453,892630746,1023950451,256015598,642607203,1436823603,496712513,1316159169,1905176655,20101468,1521437742,1522220787,1486221103,84092296,1495285817,1135291999,1690829481,1477907171,1411523163,1860817137,457716698,661010462,1162319895,1818425362,278782288,1615111146,551295251,1751632807,429924093,1990373854,1923923142,1076930130,1059547216,714820720,1632985211,521016303,847615543,1703217056,642218135,1844203678,904527483,1668491516,534105494,2084675027,1319059919,397004183,1569370549,1587867724,18493046,1637495595,80971794,1505826035,294154487,2003917413,1331656602,227790865,1617726314,1503862076,1989786889,1289551502,328616542,1320396380,89721738,1520813875,1207658718,118191293,680480501,293348872,2012049160,444570077,1736707886,167530485,1632790363,715365095,560607598,678184518,70096738,991594753,1656684200,1554398812,643862462,1623881197,1525587094,2002003455,1453153568,1696774035,1953123321,1331926372,1734687933,544472002,339416870,1832765686,1477489691,844756142,180742613,1946248153,582331141,1067471389,376376241,808938871,894926117,274371471,1753636197,932561558,219225771,620024260,1345755055,604768853,1455273761,562824148,1488958980,48245068,1965059614,184095053,2000076740,518505636,2032204568,1258610079,1336255371,1922942654,955639579,1861921961,571193530,992912709,1987761100,568212891,1065349808,295546716,1911685378,1019098875,1167593699,314450611,160534901,520931103,1681655360,142324351,1617540038,431955603,238880140,1073903384,1176723441,356680081,532510103,1297128274,2049827725,1617318132,611845344,1464070612,1703864556,295021034,1353022685,421736641,2044391834,1402902366,1996872712,1193270123,1846425071,149720937,1978121503,1464684805,1784167596,279063714,1182811389,1614775142,250498042,537645720,1647662449,1097910920,790839500,1993520993,127422020,622972464,1120417517,864293979,141359630,1438493292,1411634436,88276844,184916267,1356676600,491251780,1265500282,230777697,601947082,1768868516,920950658,186876378,363578509,2053316041,1410421694,1744053009,96727548,239249912,112608994,162088009,1261713813,1839211621,650694290,982865046,1407662636,72139886,403271319,1542830801,353404453,6102507,1645880789,1955228167,149708373,777429725,568786559,843457280,1438382350,1899936217,1590491898,1383163953,563386437,370875177,231663173,749970393,1628694503,1288370224,1304915251,136863773,2008477300,1728425852,970187017,1657164339,1921952430,1918512131,219649366,2024264817,69329392,1846592241,1894561107,520330035,1146550239,893572108,533206382,1559026682,106855855,501905691,899082472,8067287,1421247373,1655162976,1410530077,435943861,908937245,620772824,821783133,1905767682,1834393864,288221925,699845814,1194620789,947350464,1402301838,2020560929,391608358,1819018393,1362425907,1290609518,1626368094,1933368418,1271666457,1291828198,1231568555,1617040203,778567124,968264556,1218651066,124806061,453995321,1904269392,2025348976,483327707,772503262,940765691,1606599937,147620677,828143933,1455831045,415106687,330717362,628046666,409098445,666555053,648589672,2000673653,50833639,1564141047,1786686698,1514031144,937972312,997969337,408119497,1078512774,1667436170,1107175600,1436297807,896026216,465629399,1699136090,72285405,1902700704,118522055,758365492,1829001988,677338901,622355383,1675661340,995164283,1543188669,1700000710,1377106023,1295819251,1784232601,1858324405,1551135195,101039385,880607647,372343020,2068284048,1869774880,2035142818,371686538,157370864,1636891159,1825309552,1000748935,568520869,305701605,1798737004,974735122,788516408,1222069033,1507728447,1982542742,1390773809,478177925,2112294265,1382838228,2102833137,1833660655,612660755,1390992031,450868625,1443359064,865608527,738935293,1378595633,1302681953,1786284013,1495545798,1019627576,321412587,773389940,1411773669,692169389,1405720406,213914145,1499869971,927737145,349668008,595523291,1179777835,438233336,351454892,1081821354,1673355199,1628429033,1540990575,1120617777,1797941593,1227214082,1806475633,1794526516,1199001349,137046635,139432278,440282448,1708137898,1426232630,1566996517,541009729,890545442,1655381558,681719510,134831726,1135725423,540281420,1887611322,1751020625,1849939712,1071818701,1338956509,1799194385,650297677,1192537318,11458546,857445270,2046586481,1761323157,973887241,147866829,116342458,1418850577,2064450937,144824554,1292530368,1075729926,329841352,1189444603,751467492,657033194,82450039,1691341977,1187700841,2061798980,518843076,1492065054,1145261622,1526005543,1953509425,454965493,157305167,1512757198,1508173696,674696075,1452798629,8181934,205650666,4109850,1436515948,1516262632,890594760,1336332573,1939976963,1577532726,610599316,1432026085,348375657,1785219117,2010507468,363147694,896352128,17462091,1343848798,259159908,1954985372,935814957,407252128,626832528,97523213,1148351566,1051929922,894533574,888414611,1100800812,604700430,722106613,175455371,1613533248,737909378,1668636038,880115935,514645086,887842284,1588173002,1243530272,1821609832,295625340,1284594390,1945158079,1100803421,984416071,1838736243,1497146008,649330186,768068373,1067885733,30720541,1715460794,912503569,491757143,1088195250,910872637,438576574,1715192616,1023884144,215296301,407309728,1565544140,1785631225,1903488638,1591111463,620557776,1990349239,1621882289,1003023739,557322310,887847475,383455620,1659133600,1438110185,1815262670,396084505,1657942741,1244503471,310572058,1434404404,842486432,368570481,74765821,1496331506,155070877,1858735405,68682450,1926714034,1549477959,449858036,1658782399,1888540545,35755336,770937446,519827391,107956280,474978134,237896545,485666469,1726403775,1854381995,212837299,607775731,979972001,1161306448,414911797,424793624,2090470229,1431386701,708710026,1346307677,940120585,1821428843,2119935933,1765342840,697588628,1389945566,110497310,698725825,452917532,1602800412,614761154,1612311154,546909977,1511483893,603313320,967761407,1795169120,879970553,1604429311,1235232260,1174405721,1993899308,1918285274,37444716,976829575,1631124251,719114072,1281910276,592696581,1084204232,1516738385,1024236364,471544311,969340916,1654876441,968522470,1176220911,1521658882,420176677,733756845,2101522397,1669013861,1264262530,1549686012,1610478357,1622457723,1800361017,784348937,1005512447,1745990029,971689804,1676210351,1016240137,1978105039,1609921157,1650290634,535163698,1087356701,155002966,174073754,813770236,759063547,613926313,778500665,371622520,640805286,1212122573,1291346719,889731524,228055541,1978612299,1554793948,1748571642,2056616249,97836678,100070391,1880695274,20996378,287341797,628689655,754676700,994189880,137039424,295772745,149470685,1796714746,141849480,679887296,1246439488,995329643,139033192,1866395655,1123822171,1662386349,153391496,1386087257,1246211713,1551060184,739216812,1260656784,1680541378,1196851252,1595266428,2111904171,284053506,1610613816,1260528080,2101285158,775741676,1785543807,68591187,548332439,119540047,569004010,267731884,2029971422,1463420891,209757852,1318022115,1547512093,1801283690,1460545517,1672562286,1948422730,1459265308,1033316243,244042131,310996039,917524368,1820429857,358698649,658229539,899895747,1850506718,171079717,1447762982,447771568,462195410,173893910,665551305,1161764303,1466500015,520855006,1617699140,1190625760,358471155,2026989901,944862372,408804962,227429336,1293129167,562916096,1465641874,1814172159,1985503079,793959432,375571949,25092590,1388951948,156805669,1053385815,301594519,1290799972,1708027389,2077725880,90782088,580290789,1766615751,1376037866,1710740131,1257722603,1518969269,1484197070,961885225,679204901,413431092,584633961,1529317693,488334532,98292927,2087723952,746537756,489640135,1722998526,1071883633,864048398,57282399,1242010663,1059076074,202819691,1261532122,571012937,800617804,1040393345,2061264605,82654803,853624976,204034715,2077954106,1329085879,1899622019,1149533748,1911616057,1864940655,638463547,1608229961,614480112,1568962361,164623757,1452792309,1814930375,908626582,94965240,622808424,641576887,85424233,1786735838,1268332423,362160978,560763020,1350793529,1693151901,985133477,1286550233,1589025255,1852818111,464135395,591355717,1029465031,2071088978,2063852471,1919726753,2094026197,1619373070,195525108,1173325688,2071039882,1517846424,522750215,126214342,1661184537,1920165819,1120710120,676966293,404859223,649682983,1077986926,1782319308,343203590,497582764,186448934,1703500243,565074335,1460862804,1480848118,1784045753,201915195,940626927,1167527779,138066858,1318329596,2022403867,798638747,1968876761,723825358,1379098446,234639363,289681084,583940896,1253559045,1950931503,367121920,755436170,1029392926,614865845,394339118,343307149,1509097179,530659035,1719217675,1042327207,1103196625,1863168424,1770522935,3128319,1306107865,1418919804,970612788,1009257531,935107998,481717023,927828954,1159218915,1495526215,2069756990,1186867038,731723555,1851098547,1634702831,300200171,160555900,834353927,1695882922,1127000772,911323042,1644511237,7059268,1674142907,1403731632,270972121,2011317335,169556023,939478848,1076084105,1693667984,1445358294,29085158,119803610,1616944307,241213833,1811825635,1970086547,1347509819,1768554412,542634235,1866083025,1043202281,530868044,758171237,1993497124,1828062801,1613756916,1751758748,1342096347,460553473,2061306962,921045531,351949443,1452402326,500842314,282098115,1341505359,954510793,1406213480,250839530,596856723,739288316,866192674,1503592590,3665051,1043328282,1921133922,2001250709,681478320,1542470763,1038774876,1570815739,721621607,486945876,518802681,814082019,697497571,1070708215,1901283516,901106598,468861772,1887921509,1054913373,155234937,1546933489,1614843986,613227889,768768325,1169616243,1620914909,1313134587,1459917814,1147819410,128410617,835413290,509971919,321968688,1375379074,1192533327,1168898283,939405557,699807802,334371177,1503064420,87951267,1316569500,1584825070,1223523234,311433855,402775458,442166187,81218786,1483304823,2054330877,404638897,455361020,1645780642,1186988428,1110350147,1516353951,408131555,1780166819,577069847,643715664,1484915942,150688144,1493834423,1941090001,2157459,1255758220,376747038,2009584502,1339217616,1068003113,417513219,1235972940,411635539,52937048,126696914,298644485,1894102095,1356020246,125321069,963585720,1031515768,637857981,1743601353,64213290,482761355,701126579,1118263808,1486048792,213920579,1264283736,352696774,467073883,1620709559,1679979057,1042576266,1600533379,661533922,1942699977,1790754491,93285326,1868226220,1608788738,435734674,255374081,1058804437,786860843,556238362,942339616,631246218,1891370558,1321888210,1920232948,1281955223,672609751,1854407713,1140783775,960495523,529989112,1788559244,1761757215,1115479293,402850271,1769225929,29132030,602263581,672584857,1600916456,150105831,1878996527,31487984,1727699376,1996279504,70464127,2041650293,685478577,1922063207,42359174,1571189770,728509748,652402072,1425735495,421051910,284456018,806169863,1862810829,1949692966,648607123,1353801362,1612307491,1367623416,815985654,686627552,1525673922,169702303,793953519,553346244,470512144,909497483,2103444913,942152809,989671937,1246487952,131945237,1589574683,1239096489,1666971718,1657618015,919140339,456203906,965785620,849341372,2004332689,696052177,879441147,2101202070,1580041060,955110731,2064144130,579787424,1140714484,281891078,1058517575,1075033469,524381283,925628072,846535489,1801237933,458066600,2023067623,993956801,1071718062,1338648845,646322043,2035707055,181532932,2044628588,1066265364,1246015022,305876769,1424902044,1805643721,1240822910,1949555310,1419210088,32118548,2064067859,876411581,1912836843,1781667582,775653693,754749109,1028402534,802873091,1693377961,1537284022,598456198,638105914,1524584815,1866092017,1906077414,84228179,1017658156,1648864013,1235770493,1361834337,1517013815,2050447565,1527375581,862466761,940885070,1134980669,785769222,1194733082,1585091991,577466678,19306839,294000198,484304748,1515833302,193519854,1193547925,1005006779,1628805364,2080798614,239003867,84402714,161824881,1009029766,983247925,1648953206,1077997788,1101134030,114102417,797565657,1178012544,480804915,248336909,1589238084,37069465,968627369,486070433,2128493259,1505468090,165584084,80456594,1187093950,1842442659,501066247,1603148242,1483212182,901802516,1211130418,1259122794,1182838995,1005888971,1210091370,1883778303,223532918,2059764360,45098589,795239153,430011141,1696189530,335453344,749050784,1856491962,1463248495,1670311169,252317200,915539884,14899894,2049253881,2007626192,466518110,1573421431,1396484371,526012294,1822703290,1814847828,966876123,242692667,1203669766,494139248,1766979417,439190643,1087563630,994082789,475531850,1324290352,1285113221,160548630,694598955,115874696,464620002,1026521639,754329414,1348413550,853734833,1825889631,1256118396,1931556225,1993891683,1136493542,300132913,2090400057,20068854,34362507,236889472,338330190,1863873648,269801401,1945533153,954196256,2033032225,534474336,1500927818,1229908015,1342856876,1497428087,1153741150,547875549,998253062,1177383540,1170997771,1931361968,496156793,739067343,1825429566,1398547934,1138075465,1241537535,1656786338,2096558011,2124102353,1494711357,461720625,356458889,742253004,975393667,458036320,908042075,1559277493,176547191,251362646,711764893,1593683526,420366110,428771466,497460574,433303502,2106291338,1497339084,2078732772,1749692529,754438732,979617101,719702738,1182967953,495375411,267825474,1825250316,1166829219,1677138449,1528369102,93343522,2118462666,34109387,893835747,2096149407,619064009,939496156,1651145811,636937650,518020959,1666803093,935308744,1810111924,2080901319,2026174471,687756082,1863966428,2098866576,1935448354,2061577113,2043675676,896042401,1633300524,2022563780,2048481863,1184466746,2041449019,1825248117,920606770,1893621545,920197062,888567342,431339828,1600379929,221908168,1635113267,2059005628,1527082225,1023424219,445786298,806994201,965670528,1421444941,1724055448,764088054,171162350,2028348772,621384598,1034932662,1535642710,274070908,105480167,2083386356,231991811,1983028761,1398126718,1872372525,513968844,1747626012,1243307954,254499185,1410687077,690948868,492593211,123027653,716939860,1341056939,1362787813,86548464,1002404073,1924304107,1076345104,1110110777,52545187,1485982831,912308965,1667948815,1591075243,142845542,57240365,1787197440,849333294,1605931088,255347495,1958543136,288446762,1697881226,438136215,490093743,527592373,2010124996,1041252720,1704032514,1960306320,1986434288,1254918420,208812051,1284311394,1702145866,981520017,1435435917,206164216,1380826762,4597025,343666529,1303581593,917731661,208230702,1182759519,46090863,301198156,260338184,1712682329,1807703470,1201517284,477706781,634505383,602513465,318555425,64125578,523079795,1616476514,1309234717,626538511,602288516,944065865,1895034741,1891742430,2057235030,723869919,535558313,1643740320,129569512,1689664586,211455634,1456751715,1309528244,2045996696,993140142,1938783727,378386082,1387827788,759579301,1207002665,1363138687,2063612900,632608840,517198366,1904391897,832181527,1602035959,1136427256,1584199837,606623519,528119622,362289432,1391421192,1081601937,614060201,220481401,1069119472,662558772,656374187,1597521279,636848146,316076976,383780146,530584661,907303862,1633920544,919952378,942721298,1380115908,1689353798,1236173635,1676068353,938172320,1617296478,1093323011,1276632645,1343438262,1200368347,1821100065,1465170483,680817323,2059639572,1182318702,980894855,1613488768,182973979,462306006,19209603,2051758972,1486762235,208281819,941560140,1139768759,932702291,1303956036,4679979,1301961721,1466647507,141386138,1883232758,1651857979,1540023699,1782502859,631460720,1898015058,1334149945,2006127979,1185129,275311112,2119967692,1132996222,2119630952,1209228132,392517497,1571120517,2018817043,1566047317,484331188,1942291916,836068174,1171390420,691837530,1035338854,610634965,2063247518,675460039,587900051,546621127,1521417711,207102382,591593511,902522045,483911995,609997873,1831979450,103277191,524367927,90222787,1161066255,109197856,1566480372,378740331,1177571189,619328080,1976429450,1921413539,1290898221,265787706,1161819956,775497224,1645246697,694737681,9281365,186520285,1768706467,741722450,1717621298,667001459,259429769,1971236432,1443449466,1389668929,90046214,1430735984,2096595160,516048147,1672320845,27668834,144182114,824039812,1392421302,1225572565,1331377198,295605979,1171100699,46827710,2075959612,392490027,1173996873,963090484,1543077147,621862993,1383794845,1607295862,2056077713,1241069617,663854710,551084941,587042768,1388869910,1167207353,87847021,1032866330,1561883991,1298652722,321639389,546219042,980983899,444304514,991722332,1038517254,144976575,1088708182,1387174457,68292634,602968692,1161270233,1583167299,1031315042,858866890,3607418,1846906067,1541204108,1745936279,765205882,284887368,1872287110,1755373055,952384992,254946652,237109789,1017819179,234954429,1787428095,1387147371,191076097,1042290658,2130529073,1593960010,417583288,364058595,894270570,506953689,432338994,809332597,1547508913,605477765,464364317,1617737043,415923844,575639719,1967202305,1842022448,1414751070,533572058,1322995570,614123635,643243771,1809244760,951106506,1382944408,79178661,1528214691,1235478153,487444388,1849133305,400837279,1096743502,2078421374,104543160,353305767,1285337028,879084665,1222321490,1069293928,1722625444,1121709098,429817764,467310553,1410386189,931680789,2124061823,677056865,215592078,794096465,2064268070,1822914958,1364884437,1940141422,313441092,723943912,872738960,978769444,1197496503,67632692,99800216,765190063,494479478,1216837707,261358361,674568014,564600276,1526875588,2021081355,1067700478,453968682,1226213827,1783886992,1091579670,1493518127,835095420,774266939,1715311759,1364229055,1205106788,1819026558,112199650,1997744318,2091790265,1934780673,666235193,1205690467,257740626,255551882,827794229,328711814,543377347,66932304,262624115,1747168973,1075864521,765106289,2116858526,1267028697,2071831616,281571907,734598126,114332731,602119767,236801471,287428975,624159586,1732686244,1721155506,1809137529,1304645592,193909287,941946119,330205030,1260787465,680072623,107096876,1572846649,87898335,524759113,1114453620,1320020374,409483083,428301074,86554452,1343204723,1863266070,65907953,1113956053,2064097955,1281324372,1562175482,1959675627,2124543410,540411634,1959405734,1494413899,281460690,184765803,81401601,162550123,490518051,453378393,321276452,1214508254,563305922,939566874,1615583936,1147125161,168396201,351835234,1865954143,1284523284,313635783,1603724304,1555027837,511031428,470784462,778728334,410935247,178464549,143850727,1694663229,1412256685,1804984354,1754576302,2125374051,2100961664,1378189340,315463625,1860836267,1866868905,2079095707,2026122029,535649773,838800576,1930929254,1014149533,1748233095,1797005040,126309993,679055093,1537771358,788067643,1003649790,800864048,1785874943,1435751869,1474532267,1148468156,573133952,1742835524,1932027572,330800200,1622784857,1528424185,954814187,891637368,1125100959,416422536,247995801,1544791573,2115806997,825869174,360871887,51717584,709231938,1949962038,147349498,577076827,1110651280,1755913200,468537962,1494997320,1185204843,602011336,1599258437,1435533654,1509574140,778863458,1409215817,762547864,1746925780,1416365347,1466884820,541925296,808324764,1004147785,1493950590,2083412789,1890025745,336950787,171854750,266359682,1396602576,739958185,1291524537,939241840,1174949182,796305009,1734408032,1187289408,1024510330,101645460,162858866,594087772,1505666162,735337582,1375514394,513140210,122597402,271592511,905872729,568906095,170427362,537826772,1036057752,1844508002,1899126260,2079256193,1901641082,1564349583,166629681,87368359,417059632,2112546685,778797857,122503415,2004409702,1234559135,1309795687,325822905,1118726410,2069390748,1133342899,556276000,1704435347,1632335850,589957123,1221973966,1386915439,1550194030,1079131983,1047243573,627417363,131628542,1441151327,683220031,1677089610,931953712,1139868921,911484874,520423155,1343822019,1510989736,1086992275,1493723892,405308996,1892135998,963324717,371892935,93441055,475223726,1532582548,197014769,1423289420,2112356256,945987667,1107017532,256187267,1634986524,1543319043,1060553616,590970417,1914524217,1348386945,873558536,2052952951,1042393166,1376978119,286904374,2080610481,1390600730,1390684088,362157023,419405053,1828853312,52922051,1698259678,1333286782,269335459,1552951883,101585918,1705642269,1843466404,1792994397,1317392487,588123927,765970305,1516470766,809132146,861809786,1710592606,733788039,668685642,1206974275,1076796667,1013591858,1530637794,1106983270,1061337649,375248194,1911048634,1542003404,1146121837,1012367559,1884189870,1118484576,2120183819,1260942017,1476280285,1405591930,1989993743,31430328,677616374,1454505098,404536515,1101517699,386612221,603713801,522212722,2087301305,1967756798,181131599,1862434055,21632555,297670276,1624114182,1860330662,1771304650,1026724315,1570569717,1835774381,127416422,1053528153,224694606,1929155902,907917783,1867592065,924722522,488462669,704335760,1476120659,1912872165,989444777,1301362327,1877700512,945742061,2088525021,1490631956,951269128,762045083,2034750438,391525459,1123953286,673307741,1095211846,755813931,1883505488,1252366977,1147502409,524749861,493653359,1163715357,1344703000,584503885,1824445264,1299932870,1149530900,403421318,1646881451,1031557724,24949392,2111677797,532110246,1596815697,1874925496,585766384,296344085,771900614,1349455489,367235800,1112933687,1293896003,1802213969,46382648,128435818,1460937787,80044065,34075825,312107486,1646416810,920145320,1780353018,1128755081,1241061448,1031110221,977149332,1581308311,2082853845,420631409,1362479990,1759093837,1532217575,591802392,698649734,1896496013,432438759,1696081636,767310258,1879395611,1128909756,1829836379,807878131,540602956,660369247,309843534,1484703734,1057844266,704142307,1938394111,1051890164,525574151,1816373213,660343060,1746862175,1041715577,530885722,997844301,1330778499,1786817118,1896110601,286008101,1194517499,1122843681,623440100,1094492920,1679156344,1872723154,1041774443,443538380,165492377,629166415,781857930,192053084,1991136603,183493225,1539896326,805083131,367344678,1655800524,732070858,818640569,1225365879,1306129954,1807588935,1161187506,714409415,189980006,1095799531,2106908658,2062009069,305146696,1007828052,538222894,79764816,1471178434,1354861381,833410540,41520017,39376960,1725021558,958762039,1222962184,431155603,1573456106,1985289785,737689514,165763160,1131661684,1459474448,1116925916,328542423,908519611,1566786518,1894837433,452889662,1641115442,1166689353,803701438,633316399,474709913,1496744614,880732717,1303252802,1116512598,1526727330,1186428379,1310666714,1581626719,1662004457,594800735,804379397,1131657542,2033940506,1541569302,1686879830,1182944258,347182357,1993671787,658813866,2074284450,2085946546,612705589,1619701325,851558648,238728912,1550552892,647985171,703562734,1382379256,495610494,1554436441,801631689,1743591951,1271937121,1295724869,270052648,376602805,1029239633,1639161783,217871584,643909982,546873668,446294033,1248123946,1303805678,1765255078,495854410,969543337,1572077151,262421132,1651515928,123724711,1378664829,265390662,421880652,1262627010,898991552,1774693311,2022655906,601187081,1758663906,334529626,1785023729,1789233260,1044072569,333027469,1861142177,1014143106,2085019614,755214773,2126727726,1242018533,1265749047,815183847,353327840,1925378433,1958956702,1473161185,1748569163,140075811,544549049,2094110493,1055977099,1100011789,1597223289,353703629,894855576,1624979064,417372420,880677078,1110522435,570937911,326792559,1165272751,473463252,2041662819,293150227,1420541773,1855303399,1506801772,744259041,1813937949,510231023,236074204,1019613783,1506503122,1406733232,680890339,879532369,595614771,1265872806,1447399760,2007534298,750618142,990800714,888095576,1337805668,872454586,805917525,353932518,125367564,1689887443,684758696,848337000,2044473496,1734509286,731621423,1951185021,1826167234,203405803,1462620925,236065873,663355588,1387400399,2027387624,255234203,1433914191,97654082,1153970415,462305496,900751670,2113085497,258642558,408031118,2021747604,1605395193,210477115,190541995,716944764,1916465602,1230769842,289837816,1522908061,1903985823,114721282,660359364,513534363,304841236,431947141,1963069254,285935800,1271016414,1717389504,1966296925,1479348462,2117565342,1438130329,1768963632,612090445,595162351,1160902184,84836651,442687397,2026287925,1427731899,123062956,572966645,223864842,309169789,1854356550,808485746,881579529,1495678164,300841803,1618886811,1730998760,172591440,1125559468,1208969886,110051925,2011916374,1373050733,934248535,2090580241,344067023,1976778685,1965841726,517290889,285713839,1072726643,1856998789,1122684648,71580020,1478740049,649146993,1138128550,964752882,811324435,2114227532,968641498,153345264,381992231,117088103,1298028004,978502732,1866736879,1082794144,49231939,176221821,2069525441,1877641389,1391039092,501249010,172725923,580739590,1542466709,2006165647,1018682406,284246821,1835607995,1033532719,1681355699,428551789,1278179118,1311736955,1073385280,1361439217,1797398132,572472890,77434958,1857792918,58425254,1748937111,1092947177,1144588150,67156022,1087197412,461932772,735142636,1799881598,456537129,1725159159,1593239956,1028140767,2129487590,221056290,99455952,667502750,397064059,1180685542,1757986750,1112413328,1870157629,312745252,2103254651,1201313040,1035667704,414492127,1364675924,1214414423,1783239900,1710896236,1525217242,1411651580,1230233490,1270152122,1060934481,539243773,1168657563,773048627,582809126,244821520,553931952,1033715446,1456044693,690097930,1516960401,1985790875,415864088,1481265040,1775211109,1079292636,1409783628,972971742,896044941,636025471,1487614025,1790268684,767234633,1848978953,1301074328,496502413,701098254,60355604,1734826015,2118600581,1007048370,1453383860,212427767,1704804404,1358141069,583928856,948708585,146106805,2045862031,693385856,1279242477,486052979,1751718975,2009156919,410396169,399995428,797751235,1053775418,436685625,683965328,1679150648,1358739437,419964532,1685048779,130897703,476519817,1867332117,1817075231,2023350766,2070303366,2042065198,2030336479,757259388,1680410253,1028028186,1876971898,1577371206,978901582,1732627326,1319202705,842320831,593675,1431019103,1345813509,1254777748,1493178433,915826937,28857715,902898346,284956643,295389477,636916972,743159560,2124328925,1407066461,1394528602,332220737,1569739071,1250584014,273034671,1851207414,2056503234,1433958593,1505057626,1174321355,1460218147,2022778958,830475074,1854104278,348807863,1446749160,246595382,1390089988,1448175377,586932284,2098295127,2010644323,1287215760,257634695,92356734,1437193890,1078334295,1429452348,442060521,475385869,466713341,1644348032,273626407,1719951150,492373500,636529943,1289862539,778926202,65582856,908697349,590267906,1839617129,416533691,1164971106,1813523899,1569191129,1854614143,1481296280,1541895877,1706112001,978801307,916128469,2108013743,297169987,1099403646,1229699827,1465919728,1754405647,1004660086,1040234079,970292974,2049466811,1678994715,61694001,1265022497,120255041,962570071,1900220061,1203382120,762077102,515508933,1428550447,820532509,244051784,1043244993,1709321184,278268489,679437783,1869940735,282170542,10496843,1944987049,1649972,498238555,257107002,1415538235,1057409370,2062543068,415389785,309434581,1215946691,745367261,545956721,1670352360,197352641,668661010,721036255,331328531,1174240894,702926003,1530883472,532144160,515690103,363958327,1388291298,1133908219,1888768071,1349144829,2080124720,1541579618,1172221074,350433810,99290937,2125186394,915760396,1764580449,347901491,1370334451,647822987,161292639,982267867,1911667336,874060512,1400322329,298751070,1989100664,1942962544,991893823,1198428509,795906801,782019942,420746180,516347210,1975996350,1985442025,956952475,1505338768,674815841,1405876510,1408924126,437316652,595257072,59527548,1294244740,1117971511,346504957,207043312,843131307,1866085342,531901720,1725543259,1891268211,1035344181,684564554,367527651,1984584822,1637027316,50463456,1113866687,797437314,1548968448,1901483425,1790855780,290092572,132642114,77209275,151852084,1053286695,948225122,1635610177,1637448691,825880665,928117061,881540341,658725768,2004720366,1735211040,290240436,1160475550,2038660059,872196824,1558846834,1592947522,1864765632,231236365,1046408101,1270938631,1046217669,1618200772,1958711728,636463437,1056759022,1974986968,288355229,1394721156,1583954477,87356288,1439959449,246016988,700265808,1365097991,297479526,1563331156,1211445724,175149634,354758521,864459698,39070599,566010302,1242067266,1160792400,1235594769,158804053,949088109,2022431188,1140712128,209422004,6476707,492835232,67366311,1894948179,14397901,2104925003,1891515338,962238604,784738751,341285315,1658218708,220176838,432300199,1743018232,1637504028,2007393565,757983227,1545696305,91577227,1270648339,2011405233,281727213,1272827734,1814100732,1851797927,672514896,2034577335,948242024,1356129601,1791566639,1903698414,273231191,1805572016,1491367603,916852111,1165460993,1666156379,477195265,606936004,1020738440,1408360060,588170660,1391164954,2088748113,702777623,652625439,472941911,684791824,774168897,434356643,1550983160,1237492805,192627432,493150098,966354801,1504217233,1366334893,184440679,1857617110,666846278,80880442,1591904450,355081840,1181029253,1931790054,1129908327,225433667,637876763,1897191011,1103478830,1667812307,1158072508,1301343381,980500434,1907843013,617354363,818671472,1459503190,628457119,505148431,1259894950,932531981,614830168,1806338599,610214535,92695732,2002322418,41160997,280590554,1418293555,705208064,1415589190,1266879476,1738195207,2071534099,1654740036,169869730,853548528,407538433,1394892894,319579442,2048448863,590659321,1407510547,750975798,944752943,1763589699,745204496,579542149,1716891014,5811915,735355706,483567198,1006757809,1579486387,1018607929,1040509459,800471424,1496955941,262412817,296092274,307669709,1430398120,508207808,518974172,1865530130,1659420144,1967033689,1822664,2028232957,1584631338,101985519,396854228,1932361688,1335403157,563382750,1448408536,1825976133,434366248,2038149583,1772890664,1061310835,1714748298,955811412,639468225,1248507358,432506027,1695882105,1624787109,274735180,1828876853,1808606392,571268240,1910369422,1912258438,1663931297,53329274,129912850,983667642,1379292027,918350021,605585250,1393206020,1760620826,1031553321,1449300690,703877824,1044731049,1111209496,582310085,1761586047,1843936888,12454607,1664865857,1245327414,667778373,1798526107,1948502500,518523637,1648617536,779120162,1040145100,484761758,1181608502,973978542,1905452771,1207392402,1103823847,1184453900,1802325439,1513746026,210459562,849007408,1101245333,151783151,1438610688,659709411,601079260,1387968295,654166886,117304240,2120345509,1454386452,1083619036,1281545395,11252277,559002783,884979131,443491704,1861086364,1264497487,1286807934,92119065,1214245275,1661803874,1120091731,105349236,483718206,1465769047,145402305,215119240,665672033,1896924960,1102290478,1243568316,1118700130,1477320939,626239679,482441324,2018947752,179973737,741231306,1287786654,1801498931,106353390,1235857487,1945634541,782530030,1064266556,525569061,1521197050,994920216,575550406,1387571132,1920239552,1734462993,1506590917,2091711356,1487526726,443002916,574786911,1548522360,707768487,245212164,1378276642,420021620,407754603,463767616,633258824,174959994,2099372697,1920068882,2094144571,457150968,1947762510,1284289721,1185898782,701857996,499475448,217973799,1043286239,2028668233,1089762131,547799971,536376374,1421532264,523922338,2085534516,631835174,1370590592,1416286410,1639237351,1042374192,1882466699,250506361,1045810190,1423973740,996136968,761952037,1458696300,1856793041,948798417,1945391352,897325888,1444175975,2110176927,972119228,1550482407,889464087,1516412843,1400736046,94316586,1992777014,907046272,518467523,1236301911,143851465,484497291,914250965,415761909,904948942,295135406,375165235,270798334,2123322502,694752208,1192893677,1981648275,230927661,805974723,364904014,2018740945,1166487604,833209572,208012037,1847053899,1399137821,1238979813,1467997219,94257064,1085686979,1269206708,1902875643,885270801,1148113773,17652735,1492090174,412708532,362277859,318960929,1526857146,560258729,142012429,1569153969,741454646,324520935,948641261,1646860356,1352220860,1514936645,2114768656,208003099,703383337,2026734450,647733895,164818605,3791817,1038731900,1458859814,112901627,1011758056,1353809064,1334318937,655086303,1164905934,366650705,134322495,534529733,1615813640,765884512,1101445029,1632269956,811269452,1123057653,787549949,1438679754,663500232,728302637,448929405,1526382054,1367405723,1786323126,48958139,1190561955,1594717302,1358027280,1320878462,258725272,2089544055,542710470,792608112,815481159,796490457,698953896,589030198,1069802850,2021989626,152765614,844247035,881206776,1131620706,383055026,1941297258,1199936393,1035513464,412840642,646526673,75172328,1970218467,1117242799,99769566,1517599077,1696228758,1171724351,2016227791,73999259,1492626353,1025157986,2085977341,516557760,366974670,648515919,1880727571,912893548,1009345095,1856143259,419493326,2127544953,1119130718,1259718447,929213819,1922109090,398459424,956595705,132398252,1549398033,420201007,1411428798,28597242,783704303,446056667,1093301747,38224489,745444967,1087092495,263381560,1747749825,1325595834,1258444565,379094750,601635097,1109729946,460762878,1406302966,212636761,623967895,881046642,2072234075,1860411664,1838244626,1991719088,596296709,257821445,282993934,1348845100,1156645011,1301188505,2033415013,579070367,1015249286,1500178979,1427600948,386239982,1007626906,1246977843,186148438,1237730644,1664718849,2104366297,1322972555,338096805,837269544,1672242979,561793419,461311660,829499779,765071304,955589912,410188844,261156215,1997391507,1891919489,407986085,1931747084,478773809,1449616284,224626152,404525297,1596450799,56866075,154847270,1293745502,385239496,842189496,1546093743,973718289,487163175,1900821461,1027672882,74655091,651303790,1252696855,1283550139,445952398,1832645375,559550090,1768435360,1496104631,1859785589,807822643,1203266597,1779087394,1026313267,1305223182,1534442790,1525390630,1398507999,939130700,793407837,1975089262,1789119623,21211058,1419231233,290553212,1107244573,774432383,300196189,181487058,806808588,683215974,582420888,901542041,1065356892,679554496,1581097313,568465352,1651774240,797585730,1280511174,1940051151,2090438472,470296930,356447598,1511371956,1138102766,2046282348,1091798764,1483076774,1976023804,1678776309,1665506592,37424745,1046391564,460027758,920785494,117857801,946015822,719354011,1505747869,264076000,1316903025,1938964480,236731065,421172481,1169460059,77128343,1556930916,523794522,1037764996,128018368,342333121,762282061,1155228427,947988790,1355805413,1918155429,893339432,307577552,101674764,555149342,1497186790,335896644,1518429768,2077482366,1767723774,1220281401,1661510454,1713079146,1788640676,1204437374,353655346,1024840049,1082355306,1592903675,837126522,2113598986,549844029,156744725,1863583268,755480211,271509505,2043018061,814283941,303739157,2031662985,1278303524,998823413,1259546123,641755971,537233096,136745311,126051880,2002674012,1155417615,1086347149,1814612293,683629327,1215916368,1794715768,1514123233,76101392,220272405,226411579,586136020,1046719970,751628972,489227095,1696514537,794051152,651470615,2039622515,965273148,445974648,699566452,1655496645,256387111,100960404,1192564681,33327262,489471370,1543217474,647967618,1771376173,614586069,2098042214,711797526,1157998349,713101961,1504048000,1229295878,1927216710,822820078,501906939,349409091,537048791,521149295,1647268092,188789265,1115286422,1774063763,1465557214,1981596345,106238486,791125015,754976399,1123983676,697551745,1192186289,1333497422,1336697877,1279037692,2113074886,238543408,1389603029,438883385,156548070,1330033445,1341964330,798384230,2011243693,1129115330,998574491,1227369205,1784323092,407940087,924816281,548578818,2091142150,2018470529,1046339942,354410975,908512399,1540092717,114615039,1966092371,655970532,1552937260,654414598,1345939961,1490725545,2120263698,823331873,960227266,210217611,874923283,1295342195,402765983,799538138,1844673103,1927347898,1792595854,1625098637,1539499725,1934471472,729722366,560601734,1799813987,1152092677,769296306,171324474,1558547336,828394496,1517872531,810819653,1863368380,614609740,1369638113,1910932490,1145040851,1527112972,698720740,1463995823,1900131629,1024380761,1340317411,1881377419,2046413605,1484033392,2067588773,1738016141,1068103252,367069009,2096409494,1484681623,2001359621,1149289038,1034809233,1345436074,263399495,1319797811,1500396925,1352536092,301014549,1553585677,574359625,940063117,1592486238,1930810299,1239562257,1495197742,1854928561,623814938,1707472386,275984467,683241568,561008090,1686717476,1323123176,975304685,1450029341,1766822383,1434781434,728249082,1247848430,205447691,1877961141,532823555,741521049,101204863,1976486743,1580622083,1827896592,1736772768,1511475419,1039774633,57136408,1475783352,95886499,1128033829,1207585028,604349458,1489660467,1963544632,581945785,992622444,1206922920,517933889,25362154,364592332,1633805935,237591053,508005421,99549179,2053568107,1662923697,345330816,31308540,1651920480,2046827022,424436187,594185161,97014849,1487469792,128500009,1741128852,1624015632,1801207502,1640384671,465521168,892232869,680842317,87766344,1066545725,2119313999,742030858,1757274404,642037124,1151849904,1423427635,1701352032,127818787,1347231872,1430130281,1635081212,1954313585,1965992953,882145951,186139326,299729244,1081211560,707635572,1597563649,56795786,762366629,1404918795,2005846293,266515711,1727552434,784999157,1918332038,1168562007,1595310621,143826387,1764783233,1499060783,737210461,171011152,1269815718,1356541423,2110354152,420562226,453107647,680215000,1323220782,339525550,1489367171,905140119,1114092964,1979031011,1118900926,181405220,1382574598,1094988129,845653094,765754827,728772896,1116122640,564263915,462051356,91586065,874695398,796089512,345710582,1330421919,1014170458,1309511366,1984919513,276569076,314812228,1062786463,1172054974,565665847,333592128,452835872,1521501960,1333393238,847067761,757575583,325139647,1500089894,1285684599,352324892,1997212615,1346908755,2067348888,1446332778,2028752,1144020469,385928793,593438236,1627355817,247078321,1024311219,1159396489,1408321557,1551040482,108437799,817958291,1150783549,142210782,126269145,1399107596,1332508012,1736898046,1962653329,848858357,41283182,1731307306,1522388145,1719735568,739206002,675337035,1667077500,240970564,914310571,598913036,683850637,325797622,1178066552,1305534652,1980833819,1048812225,85669885,494308606,1946324006,94496873,1024997681,45774378,1550487603,796377884,420233186,1699881463,415346799,986343795,376022454,1314088855,534416945,1306450982,2300156,2088409481,683045565,1860329054,1288820643,1409251765,1827663349,793702255,1876854975,1493866568,100364391,1610804983,2090463379,30061181,797383208,1387643447,1134995808,649161299,527842408,525177319,1035009521,826030602,917969592,1547584990,258451527,385540937,465837700,1378640630,1063657171,766706546,832264442,1833685233,536158638,317899766,787736729,1799796494,1306996851,147865201,130945812,1664738637,1883917346,615073291,505123906,373187679,1323836549,1152997960,841007992,1420819759,1826476501,138404096,1268719692,657696335,535696999,1246937441,1238009198,592245929,349381647,1525203973,23804612,144806553,537186309,1344207370,1720665014,238258906,1668591377,1887319103,209195399,1387707757,1187762675,1123662395,1225054953,1325100772,617305310,1452068061,915902047,1808188409,1126091048,747473871,745996116,191057667,2086627312,1678035044,24835962,1867184927,1042429608,1532488602,1981254389,344112925,646479108,282588139,1662748412,45885602,1338852347,249408310,609172374,480765720,753767973,1946675389,438513065,1509518317,178793679,5616151,223222526,186481458,1352140105,910669613,782188075,256469318,1103037867,844356938,2035072468,742191114,64860099,1855270821,1688958843,1453048262,475044294,1981794683,1729322530,773105854,747892852,1071402448,1304777771,280400254,965611625,947609241,1745715549,377078428,1144670968,1525720899,1864199431,2105082030,578479909,2032453434,1034545032,1215123680,768140944,431770143,988805503,1580400177,1472243385,400900317,1268865599,1298992134,1306526659,1331997751,1219349401,1055850583,814652792,1843410997,212280646,1986324300,1585196482,1437440914,1422663336,2094580117,1303894705,1896604965,1293104051,840153128,1940553500,1257911479,599265168,1324913287,1789272078,618190156,545084955,816727193,1340109144,1172024508,1430833464,1671496352,730555551,925673240,1589997736,1823316193,952636894,530606511,247504284,882521437,1040387094,2076511628,147756067,1172188171,1062610174,1754057613,867671594,1297907430,982842677,2043762725,1775841150,1892880535,1094800787,207921808,1033567089,1107679530,1647168193,312744863,314031227,1514343837,1423355581,711373687,1189150675,838023214,753839930,1843524936,548190725,1165729795,1725258842,1598158420,1347861743,1981475848,733384741,1108033968,1139634642,1314502647,1024707937,360524867,1099026883,1040636203,287019600,1122789079,1194537170,27120408,711147643,957189986,1316762947,643067925,1295870367,890246219,919717699,1724065201,821622102,520797437,1181485594,557205551,218700418,1776800925,2047765227,404703811,568480396,1706025538,652468816,932187782,1458511574,844744277,742478956,31537466,1407787271,1808790933,221598577,1104994336,292306080,1679933255,835327092,35947828,928202528,1937752628,1794544122,1273072508,2130576960,944289959,335031051,1713614322,313140722,1409131047,633000441,87758150,1260352334,559598230,1235169731,889761057,1921415180,50520514,804574852,1837231927,134912168,1366870710,922727746,1155112583,1750377582,135653801,1528665821,193522682,564387961,888304308,2120000655,566266911,766856236,1194099389,1443723495,646835755,1686903629,1736045525,1286932404,52313076,1264949408,1819916119,1366909115,1616546140,72462064,1615028398,602709109,96164714,459408992,1272786079,208054436,1229556123,1719962957,584759049,356351982,1278395182,1571379291,135584836,592078278,1048030183,1272316513,384041981,1014265739,211953574,308313834,1561699684,1918493700,2048110289,54730822,1369593674,1867805640,1621175594,1515503821,1840736907,964222207,938645893,621404830,1698108472,1321977730,5760121,675980765,1912532853,681247883,180112108,840034706,975772998,1773869232,1617099687,2080015999,2058930909,1636707802,644834471,1867036238,719419907,990696191,1306328465,525076883,463513141,1330464117,787139126,42407712,608927868,237449437,1431833480,906900664,1580305996,826502672,1912889917,922276131,675847085,55894443,888168409,1423847892,740496910,1334409788,2087641602,1570610950,10578959,1739772234,134725820,2063852443,582705713,596540246,392489779,614442462,586130286,114078277,1244588743,748615252,668794371,424195201,94942853,1431733308,1651334403,1456722007,2016192682,1116987720,438308406,81061317,502880147,658297208,1166337546,683852173,1480888516,664599770,92193741,687624394,1037302946,407891417,851318024,1403930869,931088658,1493591768,1290910146,292408445,1509149108,594102396,715983175,350517034,343083020,1548061352,796152302,1972661372,231467676,406241906,1219338277,143271230,1704357162,1465439662,1370634341,609210021,1732296868,573811654,1343559548,557066318,1422796158,1222607485,953884630,1964481365,304513756,212918623,932777784,1367467652,39177714,1387082804,1338563001,2057078701,578108329,1893544590,1413896940,601601312,1008495399,1850268329,296800592,851850719,1388305574,2128343492,643374039,1270125010,173756634,1669588462,497587093,380018998,1115943353,1853857729,710982467,733317456,504639718,941134606,1048003272,343484027,836588171,1509554128,2074437296,1999458015,1382522836,1228205946,373261076,965366551,973631552,825794858,1362875889,696495421,94963305,231253324,971377220,897575003,1771324790,1387805944,2041914481,663819106,816485985,1625080215,13885875,1849778462,1104948464,473134257,1168557529,100513691,2091525566,675639972,1443437671,774653071,994462514,843353817,139089738,1071066922,1258881910,284961247,2098715981,1610823773,165899505,1912686641,1357015789,413105320,519084101,599232663,1579658291,2040553404,1073085489,1073339038,119502226,56712556,237659858,112304788,999813836,2021474499,1831809086,1103483173,550727370,1978565293,1025306258,2040600607,5133916,396948987,742555684,1775438112,1856601398,481987134,1994808204,235973237,61096081,609027335,242756210,940434990,1455174664,1640983986,1617684581,822065950,1582984681,1527342028,1390460516,1281899600,832184650,1930124111,1476108943,1048333305,291473908,178093827,1661681962,656070987,1976789408,293751886,1513728632,1468338279,26887921,199773708,1508281404,670914574,22892140,681516961,601900722,76316053,1977102697,1367575388,105708517,1494581571,2029187142,1281141891,1433464804,1315177829,1012497946,1169622003,1096251570,2058168447,1998506576,357621878,68510616,1648012873,1876633050,162515873,874605236,1179347409,1445138221,553294992,479216899,15704229,1888700380,1762532037,981392057,1248678278,1934269059,776166559,1562662634,345364561,1776427145,810726436,359539495,1938206657,2016427280,937547044,1547898802,1978021504,487712024,281626554,187301373,260829631,245233463,1744472616,1496120210,1515023683,2089770039,686163386,1725126709,1733483192,1735352033,504306774,225973561,1616800838,1133851910,588451710,1303520720,1336786485,1685463620,254568387,1087125016,1612369609,1824439071,960947486,1844014239,1732084713,1607273272,1663703704,85554841,1947187272,237788196,359546049,1152715221,641593201,1949160524,12219310,227012785,1418537738,1032817051,278716068,170569726,1898420924,67982613,983676905,266935797,1951667073,769622916,229983470,1013460243,1298226694,1089194329,820060772,726520363,1229020856,141256053,2105168341,355480155,732364421,1661491984,271350965,691173254,1494627410,1156131674,2052130546,881194163,1844781686,1939342784,1551332910,851075692,433131222,1879071681,2060521251,1360012404,1778968525,428940781,465868806,2108526800,1401806704,1758639299,425532056,1226091507,909104058,233718760,352381732,19527080,1446778559,101723911,412097596,705265518,242798360,1363137210,946539062,1487770473,221823152,1599337521,183024272,1027596011,812079055,1028431946,1235783873,921523604,2640561,2116858298,1588557530,1631844037,1177354683,1087173316,676130868,190560977,1425701746,1935101603,1047458215,741554005,382240298,18746100,1171689521,627695591,253422115,1676906137,848827970,306535864,64387422,104677672,1536966155,1907518158,1304916178,366438312,1911508821,1346658049,904316778,1155757322,1542076515,451339334,813629165,1450616757,651887665,44378833,1412468164,895025417,1852211603,1001437716,826029250,251216731,1769713416,414351288,1739581968,1238244862,355473769,1440412800,409703588,1228608689,210127850,494800433,1181697801,1106151903,210115662,804122197,188273475,1955590196,1396718781,1452413819,1718968389,965220837,647881429,1416793872,597845828,48578646,1755276830,1388531475,1944317727,798779759,521437054,33401628,1765441728,933498362,51878742,1405131154,1797340331,410838793,877308103,1552484852,1448866994,1842189601,278643756,818726285,29760952,2015475863,2040528735,352325908,1538573059,482669477,1065151800,218955386,1335062298,1000126349,1047166603,1004584776,1239106557,996278718,1017051042,1140815034,1693924130,1581139379,374960659,1256808179,634182456,1161777768,246794401,1174377895,1285915191,1321689261,1340515482,251453074,146026415,1718464982,364523708,122010217,96240002,1603578801,1334596742,2075883693,451837347,1395195677,6645701,681990112,888316906,1453198954,391383207,1233193085,59239496,1917923173,1741383743,1304495088,1257544126,1619411144,1975434018,1866391769,572112093,1600532623,1946599708,361847325,120956635,1948494677,1881205421,1913968344,759609124,818760477,649765306,288741925,1004276570,966143762,1586019088,386219560,1546471745,1585804234,2012850709,163806074,1845102668,313960234,422392099,2013846246,1331368723,1872575080,1577094111,797205235,2011917651,246931498,398993639,476006234,376126848,210373261,285773512,1487108831,1723758901,2075599070,73396584,133546539,1633104863,1497259924,2060614613,1662361796,458584187,842845304,327854181,832043367,904750361,1361229854,925025528,361741174,1723284531,937809543,282707264,151562245,1981292647,76461652,636566721,1661475361,1629893681,454516990,570464406,1594518103,571109520,82686177,383811754,827659924,922843583,27998526,1481172092,156894484,644082700,446858135,2013268325,915648107,1521775767,338935821,1876178649,1595493522,1992720329,694689300,1845044344,1721684145,2012434599,119838086,783449174,29876570,2112461931,1143742383,2022833522,1510700722,1529603601,1219893762,1375836518,1565043726,1194425988,1606273578,1305871076,1787062077,1903107406,769956067,1847327891,1396311387,106845404,1907935105,251802310,1350081728,1636088573,732835842,1735396902,163094225,1173735223,822337009,584542713,2015471762,1471960191,2012010695,1798067305,1765424507,914855035,1250578717,309759565,1104127247,307089029,1412637900,1962365090,1348733842,760754632,343488671,1911751108,246709552,1695948108,411421116,1751288977,1196946593,114805755,30785162,616086876,1487600233,2040187451,1574200669,1134347594,255311096,426784604,1387511557,611534713,100899925,1938884079,366149246,756580826,448944801,2112703419,893883574,1208552910,758494954,547643769,933311114,1083032784,1550429077,30895329,1756478971,406567320,1490463584,786672638,1795040031,1914507352,104213803,1728080693,898177910,236330153,749891750,2022757712,618324598,282799990,708479873,1320590053,1942647822,1802877586,1014542359,700919386,1683310507,710793884,1064320524,868296738,1951020312,1450446631,1055864978,1841282398,2120638027,66950469,1839408436,873060588,2016134031,1906462190,242565427,1204121177,1886649471,1141891943,1394211891,685539378,445817417,349599545,1063249952,789646499,1708400331,97830003,258456326,1255719672,556667515,781633694,334829960,717626710,1123684910,1958549991,1634937371,1345896872,468559492,1396407741,361660905,1000184653,756911880,1759059,968832405,23391489,544014667,1429405796,596674544,1840869294,1291643370,840277075,861046862,1524549633,88281944,1750423513,890378624,1436904865,687512795,2093559655,883603751,2052302748,1340682972,2046795501,930237827,1060845410,1530502352,1927662181,1124118286,740657872,998015277,594460324,944609698,1399535951,2125216586,2080366090,617800636,1381353554,1640990166,1267798030,343197217,1188696395,535139597,1133253006,550076377,980843291,1829039237,1961108503,644633203,1205199790,794615870,995546158,2008649500,1973954664,325559544,61102779,535416761,1057775774,110989497,1038034459,430135677,939288720,209037631,1685205453,1200973900,612815599,968896387,799684718,2023753875,1692673645,1211733505,2002326646,1429189170,1415092787,25471959,1000241775,301941226,1667068571,1532589655,74935398,1333784253,723617639,854725450,1597487909,1867217425,106140418,663111955,1776970064,1941887235,502919967,583657554,1963382622,1270661556,750712821,806915141,1484062341,1786408623,1420370153,898397605,1897662602,899323539,1015260320,1957264247,1388116654,2049041133,2127656610,188459167,1164774931,1349334156,1135798690,1229840064,965423096,234140499,324644817,409298877,2098785940,230246641,782908936,643698765,600084081,795300219,1036773392,2090529914,548323772,930761260,1369043932,2098751949,1560939479,2099152919,705675106,576490234,1565857483,1654400164,754744049,1217354140,562574000,1764182035,442299308,1095661857,1692577059,2037937608,1324644485,1743239353,2097488400,1836664244,2037293814,1266909067,65909532,542033380,841610837,445684224,743443301,1836450395,901591130,110289116,624007042,1312972087,726201480,1477460958,669901669,875623864,305000659,1754471527,501703102,1777943391,1489021660,1263728653,82089595,454670078,1523505035,997745141,506045962,1950441923,1000614827,1098525469,249285573,1574575328,1141985281,836052744,293920617,1282515681,1342955943,45985171,790147390,2091725934,1784454616,1821553708,1111221028,431472061,1645146318,1874144424,982917658,1691812865,1662005763,1766070495,559044269,1499908708,678634205,1003922904,1680899778,1178048056,832014296,1034372675,2125649758,689312347,1442297808,433001367,1402065052,1160743576,299111054,1784582859,31450377,1145866716,986432014,516400126,1460614291,423772144,169288095,303147737,1793148218,1089759606,1117582093,176589612,1066378269,337013202,992621595,2105425760,771133751,1260202855,487702916,1981667466,954418868,273096561,1984008080,1994843827,15679467,1761056352,1739724550,1906469596,1845881820,1672603622,1779364802,758418411,1242084822,1552171461,856605731,1340957012,995733115,2010624140,1686737953,51687545,507989161,1978056281,1610756793,244641961,159379516,531999457,1884498139,1069057836,1233338241,582086609,661817864,1845318620,1484795990,983254673,1504773658,958798215,1635822475,1464109380,136812603,331643838,1072880663,1120757558,1989119488,448467493,1825580109,1896933910,367250828,454632118,844499181,696691783,1568441496,328426067,1613615711,743839755,107719006,1448214510,457591825,1139514227,1924521860,143045903,1201719931,1600219130,1577572974,1758210316,991345921,1680833189,65508572,1434152127,1994796892,709767649,1199272408,673605796,1097072426,1279748439,370899642,1920169083,1743680645,1820108654,1918365402,1707357091,941895445,1562735230,1661029019,558500284,1178047870,2023419844,481577693,246336714,1745722649,1513791317,1149390993,589112669,2119443141,59012502,331165150,267508956,1905771381,660761929,1614713427,1102626542,95365497,557033395,676910979,1708638189,2021898398,1991614299,155861908,1593852323,193788799,1782030948,1057352377,123649379,296873201,986919753,330950834,881499645,2012350019,960970110,334418761,641452218,1503768724,1514065009,1885020477,824621192,1372592927,1706472823,939285500,1878902397,426492716,1615465452,1578268845,664392676,1359132182,945561352,1245704809,1171601950,1269099454,694798308,1222249698,1274023949,427289424,2001387186,1788739016,1891536528,147269933,1930019462,1236750698,64630738,1384823236,1879231933,460887090,1861156763,1977127281,864676154,768163477,295821105,1652538623,1260931844,1218122586,805367468,1255079409,2053267923,140048611,1014884343,392753324,152124773,881103635,1237132253,2098735189,264150586,851784779,782648477,1240066112,101990512,1322609066,61864242,550783340,194309037,609735435,1016180453,265272809,1815060683,761969479,1715431534,1568172387,1509937126,1605461472,947425016,1771468615,743059268,1993599571,599400030,348602309,454710953,149570512,631631694,1462530972,334661033,1321512787,522020797,41568517,840988085,737386592,1050939467,475693196,1291023066,1895493164,1796037109,2023735990,1621735222,1043983881,404003837,924403574,194293115,117257873,136060391,1555256218,1384942382,125745795,1217813672,1015810780,160685542,739209214,890525526,812161923,980904340,944405034,2050378364,1505120988,155755244,1292110363,75883116,740551489,181037166,1492146928,1630330981,949264683,1178346595,1735911235,1218948077,830091472,1341024208,1953969886,997349701,1893233133,215722622,929783747,1446595258,1740500481,29573312,975666817,824597736,849500029,1710399375,1604082011,402375090,1047537601,1386899296,843376589,2052036265,982514163,794915701,1896808393,259449049,586932652,997019270,573527561,1525323790,162917456,1918649514,758950246,423248438,946110338,1796149735,506629079,1195262089,508549165,2130652028,1629255052,1425418670,1342033500,1695321664,6290569,196451666,1398158465,1620133705,1136874053,1602663058,1651501913,1630091297,740430320,1212098411,330819304,271253279,1950109910,1014694676,1100828197,1320857124,1894692437,1015031826,464969369,1166594610,86396790,4493480,109515946,2024892240,1511356583,752554572,963813333,2057835132,691037440,1380670746,1585922714,254499068,1314502408,1004395493,324918174,1129361378,2066234773,649502337,1363475774,13393064,1127055236,1128701273,103583891,1017977136,24789024,1886834236,588592461,1560932411,991650776,544163378,2000572060,1141993326,133161833,1680475088,942658644,1554981351,1190371115,1589157629,1347901305,376537986,2022083499,916953874,1819872254,1747855471,366007635,285502304,590761346,265121627,1874295607,674159048,384673602,589833517,1321627737,138916920,1961509260,1783030018,894884208,1127274114,1913981415,533814248,1416188125,151692593,879711172,1275057284,740006101,420167659,719471818,1791004509,232778213,1698372690,1138729670,1580130829,92714049,1016716112,886514778,1848992188,1502637845,1386447680,1047559493,154306030,1887724561,1337763101,1404982353,902818333,1915967398,1142134021,489611127,1914091162,448105413,1759960793,777978422,1074083028,1369018246,1187799639,472553911,1147963916,2033955400,1697582170,1088056612,499407155,532386343,447771300,222933602,1705563073,462101122,1652759572,2001975731,1641255991,476156642,1648490616,436563814,1735345022,1993937653,852843572,672044187,1246240683,1674543575,406434031,1564891032,997079095,2062509813,1190635313,1902853252,490652520,1058667202,42355857,625611117,1730677278,2031561330,1038699363,84873427,182994285,2035810879,1499492399,827974032,614580034,1627401315,1845257154,49278543,933599183,1102888109,813881677,1751534714,2116964834,1330186016,996735357,168061288,400078761,685575554,741760982,804178186,1684217877,146596166,305466117,1173491352,1382868831,1594046335,977273684,646855872,1936451528,839830894,1396405457,582955945,1955629220,159912023,1241661930,1537258302,244321419,2047088665,171761195,2036699339,303095526,1813434297,897812297,857717003,1350516066,299403618,1150692536,1266108638,1952220408,819337296,820124747,437252956,552279260,1042864863,1071318234,430257219,2129882410,2087599623,837714793,129702131,32823325,1007217700,887822904,1195738299,370941508,299851411,107828523,1602986640,491889886,1609730163,1280181980,86087357,1700987808,271490563,160804729,785812507,1566595732,626334570,216191024,577165326,617712692,498787324,1748025076,1355640344,762352757,201798606,323537039,2110219843,1865366851,1749303096,643772176,2068803350,1718941163,1322732296,33913929,729842374,1607397093,959959550,887227842,1109899299,383580570,363933633,842824613,900596464,1629360175,848843225,2106606950,250600410,339826470,1207391570,1746502225,751228202,1290592223,2130121086,2067207308,2064118218,1374364474,1687953527,284086770,1636067752,1644084862,505479428,1947336562,968658081,1975845798,1284974722,1872934942,577439126,195809656,227398401,920606551,1346411841,31895220,941465451,1422345985,1217255196,675114645,1863110425,724539865,378232370,1529094560,1681864806,572605516,580762291,198954436,1768289738,1787542942,1224074893,1373845397,1724384519,917748073,491301035,141568234,1548449604,944151569,317344310,1898191080,534444114,841942023,1833560694,608437632,1499009364,1692775249,1932667650,455872638,1558309951,1143435883,1931828913,174050670,2100646054,991093797,1811081966,1419288376,1160036247,1208931632,247856281,2098318264,280677848,1228027236,1928227124,997789704,84420007,660901717,70815195,127920442,809137538,1904109679,1546098364,2077236967,2062359955,973394854,223070332,1312073889,2004342793,710612396,1510604810,1526820533,1286037500,1582887663,1197951217,563343210,1507889020,676990442,1837415360,985375518,523912932,385296497,839854510,1623495232,170270880,551617809,1576574184,481559823,2024102461,891843856,726970631,1416795885,9424128,21372743,1224851000,1559305973,2038036937,220183617,650984256,1570559464,1353450207,964913797,815668469,1243736669,1511219440,1289987993,2084024947,1170115112,1490436295,1420272900,891873792,2114055017,1976278452,435961588,1112550487,1085229576,147660796,878435008,1013654781,995241792,1452954206,380220607,1835121950,173745871,890780118,1554719445,811338851,1418934467,249255775,1171473742,1322924824,1254134438,357777779,26046164,651664473,1658804819,1574835023,1215787905,813524185,605056399,1148804039,370786238,1710924691,1490797205,1646980215,687715534,1451654021,996016164,275666144,1972243606,83142435,426713345,2116890895,346558565,1119517340,1702055397,1375783151,1101404875,1834853618,338237315,1362697011,46939551,1625669311,83496846,1094424441,1045440142,1705703122,1421479442,525086597,772482702,404652386,7537437,1476551657,1876802276,245287029,1460786023,1858374223,37734648,375686580,426363916,1537760643,1302797594,2128998377,2013547491,703856055,646365595,512019068,560805710,199227609,1560437884,674735097,261119052,1586201894,1894984480,695673439,743000280,1705325896,1683961076,590440898,715825097,926801391,769189466,73641275,1978821832,469502614,1945726324,1922403625,5445167,890379328,1254034796,1436081342,449219145,301633162,161615641,1221216611,1776627771,1223759765,1430905223,1227136276,835601295,2071904631,1142609213,1231813855,1918869444,678616795,2125589872,665294713,1704178857,758001251,1805404701,429059974,1410802241,1067684916,2098422635,648805271,1810888313,156986994,125704261,1557420676,1709065772,1683333440,156009486,2129939315,1795791318,649959304,111911003,513048002,2115611953,79594109,1687057524,975083833,12698435,1408155881,43461289,520374293,1868247028,1282712131,819138118,54322110,498470797,1531178236,672753062,388284445,1347447487,951282324,181435739,349661197,1834019362,1454949993,520831133,344592155,1364618166,1715309509,1738357964,594068737,1277891226,1143790525,1829852853,423059413,655115227,1777064694,1698104399,1842938530,1738416245,1357414109,1495380225,74126836,1268634128,1681083343,1011163298,1872975451,79787065,1859774918,1980874718,616514389,1458810353,236022916,877316621,1588727800,1076342678,1001905575,1412463534,1764259023,220937346,451270375,2044161062,429107633,175006080,380517401,839120006,1829678745,1098408044,1737647401,749031525,1685175147,1982968027,2088280221,13934612,151215746,1900797882,1433967118,10828413,1890302482,816520899,1093165838,230217554,879508866,95154392,641249372,997419451,937695562,1470213360,1437823646,1491683073,699005021,212908178,79199229,641056635,998727508,682691747,1936531867,1373930807,1940372042,576003892,309461040,99383189,1185939752,1474765068,1206515696,619074422,1078314581,1981467245,540725117,2067490716,797741978,1030814759,390998617,126000255,1760890162,1906579672,2009349950,1924414096,399747490,2060886683,893262705,1563584378,1918426412,747513367,1247076180,107450859,756367953,787991126,1933814683,549009689,29435893,1814165143,31887850,958618461,1920696094,742246433,1714459455,1837166424,601874106,1511464661,234358137,1375124155,1234131959,1255571612,2083383464,1744801481,1251620406,1526352698,409085036,1917462583,33966209,147487156,1390262477,1066653645,754952346,1571827814,336883396,1417218635,1394464808,781744351,566346904,2120886501,1350980402,809715359,1745447810,1060683563,688670324,465811058,1644602091,526297426,1840606153,1841496798,481239373,1078284862,1939080213,569739856,579774486,1253423988,1439539843,1547437553,2017566831,965149484,473928902,1534677753,163989043,2110505083,609810562,1200138432,291985003,1872858297,218156841,426620149,2122484771,1345829065,694392748,1241978041,843479274,875658832,1613179214,606565057,1744073042,1161211450,352093449,1180643663,2027037427,1958013568,1713899357,2122013713,825884745,300921196,313397745,10512985,1748292528,1959172431,1084502443,1107394472,1174340978,1504547686,1255162389,532698491,1233482330,786439287,665259857,482742493,1739479990,411784551,178880440,1539409981,1188713804,389379994,1817084878,387287928,1609564745,518807221,190340377,24975745,1466607186,807544129,1954128036,41418030,1386151635,1527788805,1240676111,1393127117,569633465,1140936817,1416482180,1652929901,427246183,34088488,300136233,348765011,496396744,1837341082,1090306065,1065362234,1982779577,1456221200,2095005705,2017891547,216210074,1005076796,892918710,278526856,2045169429,325947946,1610660129,1743208384,964356893,542344305,1147396514,318487473,551645946,1666030302,1747812344,1934623252,794725606,2010404648,739055312,1121450246,2049086806,1797632695,511943531,105191254,1415756695,397749459,506910886,1814733302,1970623605,975654672,952894363,1722549430,540814252,911047137,72575803,1329885061,1089260620,1169502642,1304452091,1011996120,1210206287,1344209649,76555520,1844087349,162797349,627993967,1583078493,166238846,1972139543,3734360,1503318682,986351912,656182987,650725489,127845244,247665064,425072617,1002682747,1271226462,376146030,2127649504,448656467,200664294,1297738770,1540948372,15466808,78152774,1351759813,1468162639,658495954,90972049,1547602890,1744953667,363268279,1261083250,676775157,57506523,982158959,1095041909,616618844,110843012,1280704915,1946109583,600059451,1092723515,517964689,376281324,325972919,665830752,118720788,2019145067,1508140144,513421686,796666915,296072777,1982955850,237526803,1243589103,979306888,144005199,572652750,1910419472,1220487123,1169057246,1764749795,1601369208,120766754,2120183296,1373171643,700975536,888005514,354304553,369208733,1804413216,1579709515,1822204476,1310734716,828877405,673545646,1120171401,1902306435,713156892,503520779,1524607137,219775513,1500850384,181937396,642216959,251518172,1914134746,181963657,1233608690,290791184,1873620779,1519875034,1548577228,704600616,712609153,764005197,857993276,115817618,1977894183,800886407,150742241,397461165,471648991,1665997506,404272691,1399884805,1353934068,2128349416,564063329,1756899475,591739032,1636547224,585327074,1323020136,1767571183,1096926040,1365281639,1313598691,1462442406,1309954125,1538212165,1361659161,779484452,1989670176,2103750800,684605119,1398885586,1248916540,2030515118,697434722,2024633609,1861588510,31992663,978994829,2036233854,443883462,1870261314,1626109207,1469797815,1373049610,2052937577,462703458,67107097,641065051,1216264751,999835747,221483955,1682016249,1171187006,1422908953,1578811566,918061730,913655035,2094678538,1156848408,681540371,925573857,1676280431,1365219761,576887767,983672572,442281795,1887871461,1507580678,1093522825,883682640,1034826230,376017802,1637404173,633980165,419051175,1885233900,1172998913,1312275431,513375093,2010168326,960395977,546303092,556349221,1312774587,624247463,517705022,741443220,170879821,2118604514,924167391,647131044,1720138160,678779383,1983152431,322360381,1901462522,1909575263,739064503,462392,2115706453,335463708,795281815,1550096202,1285313396,583968737,242315498,1601290323,268392520,1644886745,228982839,159681922,1430568535,1238640451,470885176,1890938516,1159821936,2033706718,209119774,1601925984,1731377936,388801144,1342334056,907493071,596082938,378910828,1146276615,818377731,1972875393,464186433,1109210418,23095926,246988281,1271495173,161217507,1736491618,1749411156,1924231175,844152380,315599402,2093698980,2074352059,2022837987,941408737,1461752605,1917359399,129698188,1671304034,479524575,1687950059,1597381585,1972501284,1626577304,717463811,252880748,908809239,1273395338,142197665,1562984076,1812400866,573220080,1513460401,687674499,1838080166,1342387948,847289345,1157661749,1180874106,967436137,404972890,1249979707,2027783419,770883092,966105448,87755097,706526666,283635320,1352227492,1308190457,264907087,805556479,402196741,1816959534,2079119046,1226531285,1597223130,1382061290,399389572,171419738,780300566,1588216363,18240541,34918432,36937983,1878714209,910679598,1481417845,540591897,697663421,1445751862,431580944,1624461960,1550087816,449956383,812463320,1192438465,269513197,1691682823,1576625668,1225346536,728424330,119042376,1403548152,1078488208,1876644646,1320466542,261863780,1235562456,1856508788,353203514,2105658675,1595531378,130279613,1610125648,1224176508,73068252,1585904619,1811260817,1391765921,18629537,1829439484,1925930953,467679400,1008620540,1480640084,1565281567,1198696055,1656283326,613879321,1099296358,4294894,1479274572,594740414,2070194579,1823313545,2064079164,329843539,88511047,1090468486,926255323,1574436660,1304142325,367168289,1745212478,600150301,1893836972,909072077,66528621,1119226388,238255878,1236451985,1571399653,1202894816,1328670928,83496261,2116870333,1260513765,1953073804,1526777232,1836136787,556955606,1386970888,1958132113,1504616229,1495522940,790590422,609816508,1318432300,1468221183,1821588778,1670628170,878704857,2108791623,929462866,1741963721,956009993,1063439717,13604842,1302691252,1290931776,682993792,1946972859,1597168023,1909793835,371743450,1982017406,1062427831,1872840262,2064546981,1039845814,1951367677,585773865,2069150027,764938999,880232872,2083665678,1133316861,925813553,1902499774,1199358727,1204771917,497391135,398996889,1280351177,1481609049,1904497284,736630269,1568765022,1424311236,939910413,2007082712,1668159380,930187327,1468423689,759273481,150039417,213574356,88556442,683935104,226431180,960093380,1061862932,560686625,708090816,1032230700,608157197,1651922214,334885935,1116751517,521765350,1043379663,120161251,611316466,1466255486,891547041,2058687908,1691402049,2129082754,1430400108,563179471,1360998596,2129261988,1141772572,247312059,1747926934,1824922598,1668670528,418077626,275122025,1963065681,1883761938,380072336,1227592504,1851089066,1036092445,792916366,762384443,514637492,385238248,653216330,1636175959,527023705,164859357,252383644,1414868154,1992250584,508574549,1573174691,381038481,949599022,116692899,1807208859,1696491085,1653901303,501183477,147998376,728671150,1376083642,1079363744,1784678744,1475830905,207381342,45208234,1623579026,1476278766,1961362832,2112250031,1781000762,1183561988,409253406,1662559937,200839908,211247452,84763535,346539667,1281176884,285383378,2100757918,1723585210,274566465,1816213438,682303898,181648831,958061501,1140860655,1965952418,272935829,1014718999,691917803,1874418078,80071203,1685204129,1049178333,1999664313,480234877,1390338935,871495966,500876390,995186243,61540699,153098908,504293941,109720291,1404911544,1526079176,634820682,104474290,1309846099,360807389,81098783,43278501,877202715,291727642,1873600023,481297659,1510777161,1908731244,432210487,1847090807,187319639,1904799283,1058005951,1617634526,1249145981,751045567,1638945213,1350491013,1673125128,1831505343,255984522,1473334757,580384399,1379013582,2130231910,168156380,60389696,1089045010,736016590,207826267,884677004,1024903438,1959239298,921605696,2129058836,467324939,1853426345,420257006,1060954245,1179185998,1073833340,2020385865,2067249681,1964589695,915686554,240791959,194360318,407676286,1745953677,1822631405,1085347736,33012631,1897717987,957187002,1297810068,1163527994,1092550947,202953968,910181041,1121333322,561806868,1334948003,2074468556,394258271,1273968265,989412239,103385665,498394688,480861431,1980836024,642888947,742394904,1099524214,1834884498,2121665792,724388267,1890223101,604941313,11577570,852814220,1786586370,118059461,834445808,768156656,1067200189,1741291419,2081431904,813089132,576439129,1439923646,1200105333,2072612128,151812420,1159513433,1058178967,427456038,1280552067,1306519517,1113801161,98949996,2038344221,378771740,1263930095,1453367969,795086473,1074549349,1242419264,33017974,1985301336,130361473,832081384,2062524236,1250123566,691060157,621684197,2097739631,198862001,1520510358,1479159150,1438325706,24760844,1808035814,873335762,1243159180,781095894,1847255205,565575232,1243067467,1765143199,520659590,571022602,1873086363,1394691741,2068701201,2020347922,1945752232,405980736,530167461,1712821033,463338854,1004717168,617856367,79499390,212956457,545169380,1138852713,521036572,1107413547,922961943,1185472337,568100487,1863269676,259041553,440523008,1330765175,544240278,895811644,159652724,394899176,567252559,928465238,903005622,268692574,1508027547,1277741625,816273463,1567475378,245223935,1604216696,1556082940,1684542364,253243990,1008869389,1466220910,1375844246,1646536502,1539334140,1087438189,1696138340,397635034,377529100,640409468,683129757,650055862,1565052964,645368226,960723662,1858390807,1189920530,833028924,1300083551,1324412958,831113151,1492538050,607772407,438500206,1134261323,1011885846,1190850106,172198430,962360565,547047200,1132781737,175977459,1861497329,1312681046,986349849,761420547,1767221028,1319409727,1849267764,50806121,1336633016,1181954958,1186112466,1069017712,2052558296,306444932,906942340,592588580,1231346624,857833177,1177080087,1764480759,470371316,1961387893,2022527702,202672832,1180954909,106618393,406407717,1243136973,780157207,1446796150,1978389343,1267200094,707174816,1266741887,1083230463,1225117956,1735415109,208654738,1604412782,1397981144,1740045086,445328122,967807507,1097998928,333224605,151010703,2064050660,306611668,336461255,636041066,1847702686,89937134,424608296,384073447,1455996101,1970700977,1645989715,411738844,2047400312,7326664,1010895610,606592212,2056186962,1891486942,1844934336,1276110946,1580298760,427350751,1746789091,1221075727,1400485698,1215766192,1636787515,1099582442,991596184,1846930608,1684419904,1516930052,907928109,1338803257,1960644797,302863443,373544632,380771659,274376344,1303895738,1810337066,1320634196,1300107138,743821643,1097989430,1666959740,1441765545,1368634988,1230885164,1405145315,552686698,180863531,232815183,1761921921,1788386319,163470876,941752123,1041470231,897051265,88244368,159077264,1486375734,192275465,569742076,224621708,50420040,594829348,2052650357,732134929,1564608749,1121755947,75396760,245426300,1943897854,1594661626,657423340,1896200221,1087820325,640001454,1369970629,1003078281,2093306629,1862154741,334081373,905716902,1078086906,974179992,1980959848,280475338,1556972519,1343168042,40496855,1857954709,1580073462,841251086,2092948103,326788138,1826259255,821377217,919519380,1640596631,2057527341,554339042,207049598,286617286,69343881,1301631872,941923216,1265058552,746551527,237337279,1538177986,760782037,1494328488,2116872058,1584548989,1376029957,1579481922,1723704878,1693115147,697925627,1888721402,49167186,760411546,2028490609,916546008,999814254,361267566,218602097,472795024,1175300922,1979395083,240099199,724515632,1663792266,379640709,140352247,1783860667,981264762,1604197727,190593900,594749025,1543478519,1966555254,1615071556,428099532,2023772814,1099620121,1267385907,1765938021,1765276945,96308769,1742631756,728491714,721103738,1590699081,1180289680,615414236,1098977846,969454985,262347136,1949782205,14968642,2106490923,577371928,1520284220,1876593482,563938745,651469607,936869505,1187778133,448210144,705210751,133117529,1874130213,1749434659,524708674,1019921128,436309544,1844073036,1639886254,2048799752,1421721607,968090253,2020321727,217272122,1879762602,1231262728,596738636,509094927,216369477,945928879,8821637,1337453727,1541672573,1860341413,1594607632,1081551855,1765772890,1443148107,1429451425,1294255216,79741409,1147111728,434689242,1549292261,94979026,1756759971,1627162536,375664000,376995491,1466359077,1338226134,2096558253,1822777438,276393866,1912685538,643121102,2048353477,936914704,1768590351,647848457,1368548703,1722265250,1607796378,842945151,2034811268,1233296603,522977619,1696830189,1526386891,956146862,75778794,650490615,1960441331,1338608457,1972334556,755812669,279099094,2071388868,891869410,1128695675,1860516924,262243872,1910508211,1971491672,2035676447,1512552472,1130900728,1309743205,1288787873,438880633,1796216121,1407722455,2002482411,1360727755,924394147,294591268,1687829460,160713928,2112760173,1484565145,621500789,2028263157,1218136386,897033984,221411833,30712078,2119527723,1494227983,1957536509,646003167,1597262605,780799247,1399810343,1379533638,231349632,21498130,1690819732,302809395,975094470,656246746,314327652,1115519857,2092061380,599147649,610601289,2005715602,506485916,1060604576,1460394930,1510575988,1317925800,1965024715,1505762443,1487675705,974605868,1002914895,2083500861,2098902599,1235003846,1970312644,1532927560,33732887,1762428532,1324325585,2076330839,2017241690,370932756,1730835003,246634684,1647645928,1035206262,438824055,1070139804,557468216,1083468829,519174458,1136750261,1505495025,1858823619,1627557947,795432272,1644044178,2075036377,27403657,616051064,1114290039,1790405200,150044680,1361048969,1376089825,1358798018,140925137,2021651795,1332781334,2104702214,1337157771,651887083,1056017676,1950156524,900565863,723563252,1333525763,986535147,1140628531,361950294,209821345,731379536,1514673823,1695715374,2016916234,2016632223,851223480,134438184,1402138295,943110835,1411170130,1669931907,949457992,555853240,633931232,1816039567,1454823257,1952539007,85148678,53820624,756105511,726983850,1259941583,1195786841,1859676428,1720757558,218422928,1834656141,978916541,908061689,983167799,1270195397,1399927231,510741350,209518243,296860747,120137960,1668549334,672351160,1439528909,558432130,1079046832,2091628929,212723521,647594540,1211330084,369777569,110451148,975797171,289868315,751100291,278721129,411183302,1595989982,777331141,1099114983,2038484069,325613806,454645119,1391778410,649600636,492838661,576442090,1758929595,534659155,1189726779,1260845910,1727995801,798242741,607692908,1824148970,1283622177,1678029494,398726562,1764728824,143728348,1781297248,1705986867,1690715779,191567117,2018791124,995832635,2023198295,124316209,885405402,1668437397,1422455321,1260840167,2068797403,1192814114,1961302485,2113026382,1303786572,2105701749,1564194795,1905030506,1152589108,795659122,2028830509,2063046030,264953026,1125933271,2098056927,1236760463,1895934905,353126225,914379128,1630733882,198709406,1755288973,1430651621,374178024,1044184187,2019905357,1806725802,835233442,290543984,886832583,1281638133,560478003,1663106560,1243759099,1024682756,861742230,1480786945,1637730369,1307477728,361036225,1592042729,826075800,2089151064,1944790312,781488472,598158621,1910025823,112968274,1528928459,94719105,859877362,1336128695,762477435,2056342247,2083117912,2070581785,51223779,417747544,1775955507,880791465,522767580,1358009988,628243875,728223003,1869848189,386176769,1544503752,751646609,2069004050,1428144681,601754401,1569078472,1687133220,427241383,1084942055,755895244,386969013,1156456502,1593766089,900533337,1297354265,1831839335,694188732,411435614,1319530857,711451853,68856947,1712929864,1920844728,1667278864,1480830076,1259559959,1583354488,1254558857,1173116033,497359500,1641863758,684187054,821271846,709438984,1019985061,1810351048,115070956,2027361301,1568298489,1972293353,642123613,701332263,58069770,209352016,898292799,2000401852,1025893678,1245327899,809965990,2010554967,1431880212,1072856955,360858802,400777249,1156176296,1298723188,914423923,28295464,386440310,480314442,1870329694,163946859,1689023920,1386185224,1452726826,1215657339,1500125660,487481808,407372427,459549475,1176404647,1022066540,892498491,984886902,822787305,1637600316,1726884989,514156589,1597764188,922347203,1987517395,688976345,438973775,1429648015,2076001956,687863248,1474771164,1959949027,1139274791,1385606102,119582490,1388656101,149971824,160360042,1545089871,980136574,465782854,1118140714,1421798807,1247772578,2017947279,1077605751,677553736,582778128,1424720645,893280154,1592134968,1528289629,2087768098,2100139924,847242338,203076585,621822602,1065976928,700129399,412420316,138684358,740998806,1710836299,1368135276,279275812,1353242744,367404170,1442578800,1963723361,165209904,1612923717,2086703682,974116337,1892964820,2058400347,541696239,528301860,631501342,2046524456,738053463,1498254842,617503174,270351047,1567527265,531857735,1666531799,1903747917,1412892389,39416899,670768304,445181949,1720173003,1304035174,1351059065,1443016071,1347684184,767514739,73507737,1241878514,1979226955,1733975338,23503283,2113050067,1413180697,1730641006,259134477,394666015,1172519265,1052399259,310217352,1852903827,1504825514,1026543530,1629561566,214301999,926656104,1948507650,152913087,16271251,894396943,459746369,771175795,1547755871,69502300,1019447473,1980985065,158099963,1261967363,748321167,964676036,1966992989,472663814,1070869730,1089609170,1487377912,2001363432,1454754154,360594006,402539828,596825760,1411310798,973894162,167474797,822016947,1955019330,850933145,284500638,1985004216,1320271341,556258315,2074964010,1847673909,1941572820,647892874,1115349629,1506007547,914371149,1193919766,257791553,1894422522,295986018,1994491575,150582296,1943527853,1346545891,336256301,404454369,1502945628,1667108772,1138415887,2081156131,430449351,1970957255,622083552,1274908069,1335483412,787851455,1947715296,475804036,1716495820,250064041,322227729,656344990,262496649,343728647,1658436753,810761181,86685468,163964055,1112210354,886654041,1217426792,361839023,809893815,1842333659,1905703398,1578107946,1958330621,80417390,1291151371,641931142,1123453029,1168250586,1057321142,1704437631,1561929028,1475070414,817872042,1599667231,1006470288,809014872,642569735,1813102295,576983616,1069347755,1891378588,38163834,215928086,2040948402,703058494,796148426,929245986,2022569232,1579344447,1800765798,516998308,1427142700,1954052653,328972390,865355967,1356577531,1458573794,658000196,1440194436,1940383043,756975816,1936943902,1908789515,1310517718,1094301075,280902488,489639723,92384690,1624095040,729961702,7017468,1144976410,1783005580,808181919,677808797,1133915271,1825546426,1420455196,1519878479,459788735,1801698095,1918202831,1700298565,777600793,27802748,909499507,1362487226,479347753,40127216,1654505713,955581684,1560916565,824160833,1338095830,747087633,1442790833,984980572,2003856545,1700758889,375145462,1962863946,2025472915,446351943,2093042298,352997045,1867373958,2040008138,1871894506,2004180177,251985156,315062942,298949624,2079295140,1050779328,1252483589,873749151,1944469582,1763356043,1043605448,928362771,1795564877,117688973,1854128647,1151270949,381697273,1704658831,8444529,932816061,1246632040,1025584483,557239383,1191376363,312951809,107845732,643477265,1178470307,1981788578,1102686931,1626396424,496140400,1296594064,1884367495,1486455665,862298886,1276350665,528333992,1180002167,680903377,609853529,261687124,1067945716,1108839033,354873129,832467699,848114088,319976117,882390163,1808871114,1526264553,1875565259,989153386,1007524353,498340250,1888246408,879855999,157835023,1947819045,19307815,1836358052,281483850,860463546,1103670051,1778550777,102338152,230484789,180469922,1267868405,1774066782,1831203687,1375413514,149209585,1320116750,1969512193,1795852343,12035729,12654002,918021926,1885886521,993081654,231774428,1443490578,417458756,294482136,1616894536,2111575468,1797115808,1535888290,1405614569,504993650,46273847,1091335078,1674251107,1572705015,2010718873,644417868,1532456560,1486010381,1153860879,1467914949,1072989066,1114496591,1990641041,1484285416,1826049591,1582716921,1437306407,646888740,938785020,1072084271,340871091,165898685,1895219776,2090202243,1436361319,2072426723,784407893,807468663,921382495,192665414,637957886,323278678,984899976,503022148,1052789616,167234585,53931111,1891338322,844896207,451455140,689732214,1295493522,1858187126,1510336150,331648671,989401666,1792032781,600262945,1214571669,2069694308,1641273496,16277304,700956959,986690953,470425297,417219717,796509393,296285289,968106835,959074111,499669939,1779802261,712392795,766466653,1543594504,2036543910,1817500006,740031005,270550229,1332740525,43283427,1363825382,1667239840,1144238790,1330719955,801015213,1584420690,294912265,1774837231,163630370,555350875,1728041767,388392198,1920662625,1016423516,1179326500,704674454,643637665,869409030,1704865546,162520917,1206790735,730556575,974079653,1056003313,1929178323,1367388245,1397538305,1557298462,1068891635,2033281320,446396911,127402353,1343605582,1868780444,320084422,1327766879,236609954,1900661899,1363318180,413529619,409622865,1218877528,94889906,658471076,489941899,1207212743,1786649538,1926639221,173857170,427096259,571958404,1458692618,2042132261,2044486501,2057735343,1693219546,1983346389,1721996500,1653185744,487517959,2098366662,1995016856,1416569098,1228378314,661011291,1184727367,231137421,377844747,1478420690,192858041,1285299752,243220769,1793995218,1967808683,988249788,617039278,268591847,1828803307,1869475085,803719190,2125442069,1852412219,2030386467,1359029207,863218919,764576861,1102583252,208439193,1618990060,482042201,889241296,773210880,1152380670,1707938039,1311994188,1855368156,701222333,674830184,269819231,1046436111,1850428820,1272335712,1513447504,289635696,610585675,1046800095,1120701545,471260824,1704772063,1962300125,2061134519,1421632945,1251968596,1190351113,791845787,777790210,946556766,1851360293,1126581422,1763033382,181881430,86824967,1862226321,952222054,1772656130,584637155,554213747,1353402043,1789004015,628989425,1538166921,1907267095,279687515,901778987,1376154605,846305229,27273137,1063412902,2002634814,926804555,2028957747,1509619750,2008138954,1483188599,172417236,286435180,1734551836,1248065235,565645725,822504843,1110678171,707388870,987321799,1188823138,684952684,1169896515,377439750,231131223,545702987,1881687782,1125221075,941526610,329434129,2126516351,592171336,1770649874,120764066,1628594846,1129000624,1028375192,409598102,1675890390,915980622,364405222,1398376481,1966662602,1139589420,968329393,248430852,981909513,1553333428,1499440557,1517870593,98912631,1202297309,1456508217,913625944,1901179524,574315382,464611435,727450052,1005261758,761256983,1767678672,1668564896,1598827185,902166218,1046476610,400685798,68072265,382837883,358872806,2038478797,1472969576,367054200,1701212322,1697526131,2123689728,330249500,319129289,558218809,812580043,487153438,1667887578,1421472027,657355271,138129348,323646115,725170463,1763678693,139649765,2078688802,700234010,2088186161,366888151,1112747810,33476506,2001038663,939831610,207434852,200461154,2033912266,252403828,800883114,1381183495,436820478,409422925,1445230972,451981810,1376793677,1195783302,1973262767,845139004,1274529272,1015463721,2003919906,707096922,1869113477,242091268,2036405423,1879153839,773736727,102558917,313766536,2069663085,209360463,1685783927,2100093328,1401326630,710272638,1892030732,1666051738,158411360,1958042917,1293502462,1146447306,1776552272,1490925097,545619229,628887127,1725118843,1760775411,2124811111,610923030,1976958274,513753667,1788286336,2095040358,853455539,784413576,1199060681,1693903498,1883804064,38376365,1434526546,2032023154,247550374,1152310018,853323973,489052659,1465186354,1112200744,1669623876,2116265841,874316332,329142147,53358809,809875940,187954896,480690191,1650701970,987290256,2023620155,468773977,1237373867,256039119,1694292459,55279641,190125468,107573313,84339373,1208662021,1167652179,1914064592,1729081126,1589353958,901461397,144291458,256215755,2114867296,1337959013,1938362475,113891379,572786830,935120959,1780066465,1574838532,1109050144,72656850,689040276,1980587049,1911020680,1826159231,1782334025,1438859715,277410004,1463258567,75727399,1283551602,109532639,2010267690,491543005,634670527,988005936,1111848759,596618652,1153599426,497320987,1173221421,1704928383,1478524655,1742608990,639462732,1623902564,453458769,383550952,2087810866,2003332887,1103002939,1121144499,669569603,2023547680,155609954,214704084,649936870,1198315857,68055791,1274569580,2060394969,778827349,1226505042,1450603079,1067657972,1824149962,168637237,1320022697,155029854,1840331151,100141652,1317785006,1423203232,1519348692,3451744,1737739703,1290315035,1490896571,1279052632,192508588,1228489192,780638401,1055881183,1000517832,653232270,1219896140,1716720015,1352919218,1951766318,1871966464,128329654,618486809,1360276326,1282868134,1517687453,1862159281,222924058,134281463,117533076,1466143352,1057784803,1000004964,1559735442,397643071,381698837,1609962141,1496455825,1825348315,362181468,1823323241,1029808612,219170452,1585199780,1300242454,110859669,1938394559,750607920,736485944,603455222,1087756861,1914065038,1450852569,1706923520,689996792,1376000584,154302446,2054289936,1304458197,553401982,1804040146,1379120460,226109897,1325067251,2055300223,1066547520,110200590,459811066,500752458,431027227,578627969,550626421,156601369,1619254364,830286938,1178060952,1107971554,1088411516,1154117626,597423450,1884516707,2115811153,62704081,1331704808,37918339,1685838826,1097228562,313688094,1177062861,638646101,1950652735,170838369,1086239214,259920739,21231217,785861383,1159749369,1885358094,364793694,1392018768,2047529753,1531615581,1950303495,193880470,1126600899,363727065,1553259110,1912784534,1302868133,2033039312,475749215,1757211351,1102618282,2079634294,1435755235,1436841977,979588178,482475505,1885753087,1038663385,1699918723,130277215,548700015,1724455129,1925422636,1119647250,2117902518,163678155,430833449,1314714206,315538705,92135191,453443535,1990209690,1497525466,634790522,1486888074,1391752775,328028786,2015749565,149336995,604452366,580583828,669598059,972949645,620287272,448684548,1538647605,1080122813,2015440847,1501699220,354095886,63421805,270035822,268466293,198471713,1728156526,494869695,1748389816,1235730480,982169839,744896600,759924907,489767280,310668171,1178353723,341111415,2047005889,1332480555,1203824285,1237112650,1050122221,1878755237,1318538540,1303395721,1734661976,1730154506,660086296,1332456365,623908021,152829628,1586411651,779288012,1912996892,1281579032,396238707,886829723,737207279,151944046,1359799861,142715210,2121705696,1683287208,1545212208,1117616820,113857213,843004809,763986466,526812603,489228395,1959887988,106557567,2057829204,1475035149,828664800,1999369478,359491840,705826345,1358835646,916867672,1538483390,674903217,744674594,308641586,1597016447,1574501831,102822837,1232526953,1519287691,1375312371,441802857,1092116541,478355801,383427568,1562549714,940007716,2051628080,2063633238,1690196221,1291887739,283225269,579727503,848116302,532030718,677953292,400952054,565208687,1979601697,1299662863,1250820521,1119187656,341097543,1541632202,1718447230,608476125,1950728195,1932582872,1445023915,361657398,206857567,1443280914,1644424902,1941139291,1729823357,1141458104,1627049432,1042873687,821300891,1234942932,665149753,1427188989,1607540093,219027481,746582345,810790176,1702727755,1430437536,1653147887,781674039,2084141299,600937068,292714795,1929197732,1311595610,588648841,838255823,1516689714,752751482,1328721355,1228287404,177402038,1401897800,392972342,438185051,1913992409,1090390042,555954314,1478069433,103300609,983889778,1171132667,388057019,70145269,2030857051,441985113,852933952,1880192578,1067543099,1184154497,1751181429,1293500424,301037311,236838571,2075651646,600331573,606462879,806101199,1157205006,808684819,1927428016,2009159935,231628937,1527996424,1046553912,374645560,690065532,1194949767,1875170637,1262075808,784757400,500614740,1940358065,981378771,356578582,138124062,291191373,2041389777,1276647571,29163678,979628037,201618719,338333014,1348851296,481879333,1563523283,1781075693,1268535805,566624009,733371792,914555684,878745651,1124012165,1725395069,1271842189,1884566416,776756348,44934537,789147723,212998029,2097549422,155055523,158636449,17799710,1364679170,757827399,1928133358,1218345516,620700930,863432876,1656961895,956570362,1028318344,1285023008,2004387901,447380904,1268517234,1980177998,2028026404,2014052638,2017741410,1054672783,169230067,1049535445,903730311,364726228,1256691038,1838005890,1975561501,1146311478,1714041937,1582283496,904216579,769131932,949839987,666614153,638065432,916697083,1564377359,357714488,38970788,1954011238,2040481188,1507895157,861897452,1619583867,942971632,1495507882,1752318351,1209669859,1589625664,1866211286,1006352228,1100383040,127580596,522787065,1081770473,79444138,955212733,380053599,652564553,1293270701,1366371885,371471992,1696202115,2055880111,1249751594,374542430,1607885070,476777749,1350463599,600469149,1841498372,900743397,1565405535,371402456,1870158415,1837549016,866115963,1117373960,1518323697,1786469334,238894910,881112150,1121477346,144137550,1956063516,430676545,718549229,11012422,267065698,2094185498,1419389527,1927107387,1317609910,1733158329,830439488,1555079558,206447316,115727763,1209006662,1393113344,1195589625,1186128330,1021846191,564921963,613276268,502936160,1877695449,419535894,1582408602,727355198,1305489192,808802584,1440417734,404191539,96729402,835110385,1456683817,300814774,1458985184,1287054571,1058563287,1974773766,1096828557,1146881915,512582506,2035729653,392889627,724341960,785575592,13706969,1271672181,407287706,1642491729,685064777,273713222,1528295375,591151957,1446897501,716467140,1564176051,1254053019,1106304756,744779739,1928351043,634128275,1710990174,1677395927,1416422026,209255359,1901119353,2036048429,42610063,1399837028,788160844,1901579714,792718978,349505155,552440867,239832450,828233147,859664285,1117985450,922282108,670358893,728007194,571941737,167517636,167511037,711443170,1610334163,146092327,1761802244,609146464,1093164218,565149506,576994277,1819332841,330156852,1881961672,864360410,2108265664,1858442921,1573797351,1335910884,1218391251,269687073,516843,44741782,125177549,1868568751,1591109412,1013343374,225112965,774746849,796045024,515027347,1784414019,1386571269,884011144,244221395,1426135528,458494123,1751837962,1532677208,1955447652,1803927412,2104558170,1321059843,141791532,666349863,550059226,1390237259,243901226,885701347,452224097,1912742957,178351463,899325453,223780928,1842689284,141200373,34561646,1412097806,150369442,1655095919,1913188960,829189214,911804892,24357997,1040308050,864712628,2105458362,517430235,231263422,406507136,1836562755,813021989,667136313,668302565,1908604303,577720931,497886338,1539142346,1274763758,2004190493,329065184,356888515,610514731,460938853,2106620173,1200638845,80257609,1646220904,305563243,108555685,304109307,1301457863,22960507,1623945517,2073989164,489030577,1448536837,775982813,1534651224,179093020,406075071,279924476,1536227126,551781431,1132824446,1488890362,1513089652,1011607663,1676853296,1396418228,216850006,4599542,1208072582,934053775,665700260,1915397552,1460484746,1582675531,999644704,1344971228,614752051,819043417,1627726780,85307467,829640903,1014560845,1794151662,1154144825,1446609377,1499056557,1864182734,176331341,795821805,694001071,341641697,1975018643,1815535652,902934381,5101563,1068165841,177874218,1597361619,1524801955,1371597016,132978265,1199790305,1815469229,694449536,2114012315,1172135105,2068099572,1925475064,608769081,1084612628,1824740010,314682836,747444804,1895002522,360239333,2049869651,458751038,403386659,202477953,185962891,1751640184,1130624400,1661984951,991893899,290477548,938760817,1835684946,1653399261,177640658,649181720,357720208,1906585166,383230714,1388265882,347891260,168713753,2009129477,1352608433,1276088245,1451998490,1807902203,1089963759,567441486,310024283,1115318606,679389219,1184586455,1706029662,932377882,1836094020,948939254,343515324,979335059,637948196,1924648251,1813557157,1267745256,1917295747,2122371569,1517211424,1873963193,790210493,1312178061,487009527,1922021761,1645957274,1691275084,496365506,1339137496,1335349926,1536741243,105146597,876330958,2025160615,335212433,728215170,883133029,755338527,794895332,357362199,373939053,344153072,413927925,201008750,1019085727,247257291,889509438,382457625,1617667735,316264775,1036199010,512453711,1106225099,327316050,360231058,1969664026,1929728341,1273617492,571639364,2100851014,519523529,1922371943,1908469480,1063639811,205210876,603667778,1402943946,195636061,451190635,500096785,708395523,530232159,1985908499,1928433532,292318257,1315440703,196116081,691182617,923367890,291392464,49956064,889509925,688849130,1811974303,96699311,1144713852,1229521794,2040985432,2110418893,1289208610,66230668,148427234,1180332209,803117037,816018136,1815227374,5755537,254305653,1519952032,1162043025,1425136566,81008231,1613534047,1841009422,64011686,1124123247,1160841129,59146176,562093968,1680837569,1994856569,2078600116,1152617065,2074448803,1004208873,1402816432,523497785,1991556135,987068525,1166422446,201982175,4444663,1318564349,1535661522,173593287,1981814707,2030464974,917622418,634509927,938852241,1305123811,617618366,1974847110,808034662,1423330284,946567375,419389620,1170944815,1412022960,139216380,1017079952,1386312632,466548726,453022165,1865028184,144682866,733245345,730449489,826698519,1045969790,460259166,462252164,160253966,1118969568,2082805469,76161368,155442683,751616021,1234366630,1699694866,1377778793,1285485389,1223012907,1478099121,225845015,111622485,491487578,196575211,301459717,1671207618,1379393445,404537546,864497773,950340207,20269371,1736826910,1305125262,978513267,1081305691,886793324,2083524388,1687716864,1808611646,1527606811,1660477584,99188087,837714663,36065089,762052614,1408704898,713664375,1112354507,752534608,1954102727,2028757257,1027055920,707667068,157660227,1136865741,981301241,1175216258,1733510363,1525262873,1692215972,616741090,2126266700,1017310217,1781772508,279691037,1238083693,995601449,327486374,1006751481,1876216675,1463704233,1289313680,247000399,1187621930,973919230,444531773,760121217,1452193249,373214774,313146905,1576052572,1287978288,1084005406,881284336,1514106124,1336057164,729904693,1500533609,2071930070,2055824120,1317804002,244276978,1529088809,1241816857,1639582810,746806063,1568001551,1357675911,326320408,453405834,579310826,836221624,1197204866,74003541,1296324716,747126409,223116042,1166292463,958759885,865279989,881013194,1593080031,1968844361,1043394776,1410081878,1565384384,1405389253,7417130,907223288,1957700080,207649185,1895388670,376883283,860719213,1723525082,1157355598,886880439,693195629,920167933,967616502,1893047575,426293081,308584723,2029208106,1400216856,1693859355,1894135254,1104114146,1878216100,1521662478,535586090,1266485343,117065953,1333086542,833193236,1420704770,1871935588,2064635432,331187345,793927043,1526681799,583989405,697841547,714804925,1252131901,1166091302,1145025523,1699500061,1513895433,1263525094,594086811,1626514344,1744589787,1087851507,2118875700,2109822649,2041224640,1157218245,1109190441,528391860,2098564214,1321165078,493214395,1241542100,699635724,1090831034,1512346870,1567392918,550730347,372998040,855524780,1712676171,1365902610,791696458,1019764670,768480357,1932219689,702789122,823040563,1423579315,1319850515,1103281704,1353094860,1084740835,311768441,177312394,1381741921,1074552020,2083625412,1257953565,458673894,1790378854,1761880753,682390252,493935553,603424968,1004182876,191699425,1987604237,435998469,221434884,58328534,383921987,2023752092,403462342,1481477882,878235753,123526298,244640301,1289957330,1273696221,1048961419,1907521857,692687470,675077397,1433637525,158593215,854356912,1644050997,884717591,1919749908,271961912,1049045742,113774775,210412655,658362201,1972575153,346931887,1491745858,589149722,333197119,196325170,1797969022,988918121,1427578435,1203259420,1369679376,196010207,390748014,1846758669,303026799,965125756,1890273472,842703107,1978021,951279321,1697245080,1118049402,281945332,1309376129,1923838341,907335681,1199307774,1145764804,496655767,2057738148,1402499821,1854365208,1177175265,356935618,1340111060,768839660,1568624186,933318831,2003500694,1069395848,867169020,2005291019,685659902,1203754359,618461275,232096868,1824720781,199598780,1964079948,562780256,357304150,471426872,738133383,1065720083,791314992,1353268281,392763720,740269385,868587915,2057083435,2123265116,1325296990,998662183,529564072,871077518,1468941691,365822132,266873784,1494133128,1145767005,963564728,1663241659,151896745,2064568366,619762917,1472387055,1775852114,435283116,308966182,1234798349,256574545,408043834,485939620,2122957650,127229625,1327370605,948695524,1936640647,1104007598,440917164,888767817,1891623168,1819796751,1427622141,1430740096,1397259108,315753766,629483890,2011133380,1767398139,820639616,1180174505,1154551956,1426459325,1745070601,1425059046,2080213618,1896450130,913434635,1263288449,1534084695,796133803,419320999,844266746,575013075,253393155,351827235,258614256,830471919,106296672,948887840,456646730,603860317,866269133,1818968155,434152691,793572491,1080427797,1842196644,1934688040,923495593,1413222086,77589492,32626084,1811931584,1091449094,324108972,1594662373,671644273,165339656,1806703535,1754536093,1545436320,38321755,361924945,1621735240,991210217,1117130525,452206638,1489919999,1759120549,973956827,686858220,1976861103,1361389165,1745335107,48188948,1364305833,205086854,1827050727,216055436,1813724635,963373188,1553472663,904738934,1506668093,532822729,1866160977,685248060,1902872662,655898265,699298604,1790572552,1002567541,1413349187,19470610,1883959231,1750589101,726508223,447257491,1449850515,1972621372,1489931584,1565392351,5572962,1682111894,1598427354,1167614018,715864894,1871765316,370949569,967049449,770275757,1606308480,931022501,157696776,1451662003,1217365331,51755683,783936344,185412717,659884626,385968255,1864873064,928939706,2053857071,1757061567,42007119,1400556924,523705695,1731037752,1924124522,1580396694,1210028338,523116882,870040053,748197411,1428927955,58044402,2036385870,1609426172,1847449173,2018963032,480552700,536347545,252403879,1135693900,1987137726,1504915727,543627942,239147228,1084980956,467680168,1022809194,133706282,1630417215,640224483,1916657135,2062371149,1405249811,89724257,718390549,1671223137,1914207763,1905936036,1445147651,1985467204,667939131,866299516,1952100510,537959235,811319155,1607476572,627960160,142547166,236196603,1281589596,908019213,439014477,842648224,354751493,1693145555,1648890501,1495941343,2126733861,1950989193,103846419,1624911641,204568899,921111621,433711758,1161451054,1207465319,1170867038,1933662896,901977465,1596694965,322980333,1994668007,918849499,1773527750,1383101988,1897978871,689944931,1461884068,876384069,224097484,520015307,238640186,94539551,1338002962,1563407033,766162039,236399756,1834721223,1710879376,1627194570,90818190,1801707549,80329320,428981677,1817637150,2114904802,1833466094,1274107916,1671709781,1723601548,1246584586,889118440,1351112441,812278782,433815537,2093543127,836312618,1160646623,754653410,1846470508,1050975586,669752728,1769487007,914856985,1680066815,999606548,100215312,299162378,2089641317,202224694,446587050,587031152,990193282,1095046910,236180662,1842780267,1918984277,1542461115,1966713022,1467377381,133751711,1137733555,1123045777,581442573,1908459523,961958262,1185484744,2018588400,504286736,1668092758,1733273283,2003562852,2059720330,1476534536,888867858,1398903271,211013855,1355596815,1922858833,2007453861,310763981,926053649,781738446,565872254,1686925185,210852688,1515625956,151234380,619405065,1036711046,1485565082,1876873473,1924027772,1879546250,26491821,1874638480,529524353,550843799,1584435151,790089226,533406289,223834950,1620251937,1754730247,361103211,1941923030,1476141931,1875122834,438054904,1062699052,608392569,567420980,1585788033,664577152,1916820199,840138387,1230406544,2016380366,1226673420,1172243273,770383878,23360754,406130656,467989840,1074053434,1656570511,726497650,484117545,1735858175,328852644,1448571307,1356349624,509608942,1302689442,326180730,1466142861,2056865905,195446151,2091437839,466839445,631603410,1130849476,1863094414,742807711,56081647,1234064791,1370789309,1826222611,1066177728,476932372,395847746,2110947857,447453887,1195673068,1201528424,1424788661,112470504,1456094019,1219049371,722672233,171617494,693135957,604913192,746176936,236682026,1587329226,1573828708,407878914,1658683834,2005788516,410829744,260490020,58817937,2116089298,1537979734,933855390,1494585531,1151366081,64914319,1718398241,1951088354,523797395,171803257,1802551428,711705960,1627003502,1059731990,1657458140,919731844,1716219119,2110181505,906470647,28519598,943497786,454066006,3692034,2006156326,598132972,1055903180,1530996629,1418738968,1572072853,1680280219,462730928,712028950,2076116781,1330615858,1773303067,588285761,1284366929,1871114392,1423853529,1604054408,1155528375,1017345592,526209762,1379932867,1500606812,1604279700,14953936,1660591253,2013523233,1001248198,1243114798,1156877746,356287687,1267690106,1849597013,1104328882,146004343,384978012,1409569542,1052579130,1406339475,607948680,469309531,561565765,2001795382,1158416475,257865030,1741178576,1956501612,602508251,960794145,155584698,123028440,1163394983,1891462262,1127544729,1873576414,1219785235,460606984,1363598578,1389711356,485926734,379090401,153525516,953338625,952228883,1876266826,1322888253,758182805,1519690956,818769367,513291850,623735334,250507173,1216876107,123546256,214269888,795277717,30347907,721992300,1848168713,239419818,1210572471,753765930,542613575,1779248988,565590749,775963890,1089599711,838761157,1260073955,1659267821,1579902024,1370639185,1498728655,1463283699,1880662125,334657927,1030776139,401904126,1242808961,1259439371,590145663,1664390896,232667625,1360284125,1459951513,772952598,166206186,1930574278,653953884,1025355064,1060914352,560101820,1217075785,181205975,997596206,1643499524,40256369,1369841369,13336355,1834287615,633029508,353890665,1589200169,414628095,381510463,1681497445,1916588054,206954285,1430448395,1270934021,1494017332,1151933595,1031006706,1016721906,2045961064,1630109852,809492089,376418810,544251707,1856827575,71240419,991351100,2040036582,789956859,143424482,923104285,941010377,1454662080,628419915,271850378,2129610210,1697684754,1388236270,677112577,919794096,946286408,1683813226,324285841,1215874705,1309339763,442812310,704424796,1565268811,1580837712,1724529842,1045020868,1914435276,1409377537,86119460,246271451,461558717,1737425121,1811670524,411862077,1916362518,1702995002,794807735,43654935,1626070673,57426924,1662258605,1254077345,1628196429,861718000,885899420,462393485,1798680041,1039379065,1806189617,84574748,330153620,11427496,699529438,125638913,287710536,475053927,220561282,2037697077,1762988343,1922358229,868127905,1843355095,249928231,407810808,1270346258,1327246629,2124588911,1192586625,1932911881,170719038,1540643851,813249274,820077784,1347482419,2014004962,1304539089,466581779,61463989,288836387,100518124,1165694972,955145735,1374375244,27557179,2000109428,112241806,923341077,869519141,877924592,1075829453,126089679,1473449693,1859026410,674973047,2018458828,1815276662,427171716,1080927714,1337098333,1818831564,1851358465,1741000518,988522154,1369983207,406430348,783130557,474359125,1252207866,1224212324,415025259,1164980751,645921431,576715691,1033806992,1334354286,92403782,125825209,118838953,32579994,457542311,1033766143,1082048083,602848069,1799011614,117731356,1819734368,478431874,644270940,303204997,126508496,499075847,477273888,1234728013,2116963802,164027700,124374064,357878484,1687254424,48746619,1327815421,1863584885,376346751,1853722704,1377345435,2046812383,988009231,1194555106,849740996,751824989,392642714,684953059,1764873893,47823575,741074530,1226718769,576526024,760929577,1765377292,85662127,1352553258,2068541023,416223745,1372331242,1931209082,260198965,469446850,382962475,681355718,703398554,2071359902,587748042,704180559,607924251,463655348,1955788312,484618311,974322165,1700336566,19293905,497815113,174752016,795412708,136010029,1273470519,456706603,26471763,1036457529,167627183,1348722170,507386781,2074546934,1240704936,1466771973,422913532,308952207,1117143537,849616511,1010265197,492479221,913418886,796379964,963834789,992280376,1523357448,330466050,1578621986,1933245136,1958041549,468869526,797280369,1347504221,1157490792,413870759,26187217,603759621,1922616306,577386009,521056684,1929151679,1561934677,569771695,1314686948,1349116602,1248022876,728976418,580365967,2042329042,1972173986,1256707184,1859665570,1582506987,1580405020,1372552319,2055948010,932777566,305836975,769726774,1677518101,1853498470,442116795,1502611643,1121147610,1689597107,441514198,491561267,641278307,1763846202,21330839,621543865,1895345549,838900280,439220040,161292515,1715077261,1284857545,1187928169,2121200486,1218079914,1143459373,958883439,1644372617,93791995,895957850,1038457954,802282623,1253417096,624303337,1696938848,1753612473,395271191,1501776963,928209408,180613056,1900361395,1013520108,445643368,73936635,1616982110,359476446,292756536,213438373,803256418,2062434572,1618017636,769905564,658918862,1967641301,40670357,630849325,1173069412,334000535,961136492,1105783530,854060248,75191265,1123305631,1352669483,11355308,1806087723,1312651525,231290260,1310780322,1199053268,810976669,1439994526,663310253,615440378,844428686,533943578,591366704,1694647822,1433947827,1255073853,364988367,2096232839,427299009,521617556,467824140,940487593,779161765,2121196989,1942158912,814643438,664383958,1255338471,1746943515,1212962062,505365290,597619431,693152905,1126190615,2127605443,864133975,947861948,118809729,1658076124,39249904,941792845,1437208693,1083694070,1531015274,1473860054,1232663558,117305082,1380957604,1619679471,1228182864,1375410763,1411372864,786481862,1983282163,190148701,2073471641,1737448513,815700015,112781096,51846346,415641921,1077527300,1607910644,855959060,1566744702,1193443387,300294634,995105933,127278369,1301367429,1741271782,1535759350,1160639854,113483275,907750394,1874161026,495184750,1950419488,1162062968,1558289964,745036087,1955955950,839462472,728266246,1963254826,911040135,1315979289,175295249,920340265,1246756483,350476897,165319226,1375060573,2090049468,1389937418,73423758,1380241630,71654140,714741957,1564499794,248816767,1959583212,464950511,1947398260,1873305666,669392583,1138588058,1658700355,787463905,136781462,1613331612,1057443406,737102501,1625200525,474690467,1663382646,1690918976,545992922,1640743906,72836796,371187785,1720348216,909571317,502918311,395767671,684591280,1145362503,1995279817,263931750,1083049381,1666009210,1990261559,1511518497,1830562993,763019119,1778646016,70274567,1302360622,300245692,1354889006,649557527,695442569,304229848,1214245894,1939730718,2122521980,185666264,26062106,1121854523,100196959,1730517334,536152601,1238090145,419908758,1446906626,38700906,669402054,295440305,875857279,1740433153,1724534033,93395508,387413345,698686767,953453465,1698747889,953553756,2101288872,2007187343,742650473,282431362,606614124,1656186978,1696728956,263559169,1292953343,1887153270,256252746,1068403114,1583548400,1990526146,290454562,1923460900,2105945809,1222268552,244799993,313763301,969142395,1500034265,340652646,640743448,999547609,1716075691,311867104,1510527233,366842040,1962624427,2009517542,74928513,2004531660,1172692613,1376936031,80505951,373455096,1335660414,917919221,2111400422,1694007282,1641058714,1091534358,59942812,61750839,598411356,871606766,2077247460,1562227755,879612758,1820273716,1483475239,1934239002,1583933291,343782816,648668239,793168132,1489671587,126333612,1747002817,2038434580,1131719146,535059964,463887804,2025294493,1786999257,1389512080,1527581026,715336446,990736702,1251625023,772202553,1049050291,44078634,881098811,640557457,1094736128,941252605,1999010728,95040897,666274284,384253020,1113997137,1340386307,1302065578,1767917109,1805997858,1432843071,924381354,1395467764,1755408499,393151806,1013229456,84196559,60589333,599266635,235166743,2096589033,95219364,1055245726,833496332,164100502,1531799427,489106228,1216957900,1619197383,921220170,714106411,1314923061,356399440,917890736,1531003170,107483931,1989162340,312568781,922337500,1783501794,2033334627,1349972226,1390047817,1336858200,7550840,886558028,730680494,899232046,2089858721,729917477,1802297964,212274399,234001713,2089264766,26363423,1192271762,276063711,1517686573,405143048,2121173821,2089434464,959909199,617806429,27738739,1786089521,58274746,159175098,1247702509,1036448113,1662485283,1074427314,198416521,1581855701,1662838288,371402206,430301443,1128729180,1082032712,2031347262,1169573045,1231027638,518954497,1482633026,433892539,600709383,1045267318,425253055,1979024213,1485657426,2092689824,1709599516,1225780720,474205054,1780747152,1612790214,1538676276,495061894,545869687,1111557859,924310952,941308033,1187079645,2065846455,1932309062,1371261365,1181985769,235955332,690992641,1426780052,1613892586,720407055,283313792,1427599722,1452688237,255394159,1080264886,51115950,46372627,158315859,1192619530,811959492,570647436,66490071,540911050,1356179976,1193813889,99426080,1672802361,1163103307,813655691,2113649177,1678392725,1469398955,1164928483,1737743063,1189700565,24906274,1904785372,880302789,1266159933,2006740370,1619485578,788476536,1994369023,252049452,1248404000,807314571,309648292,17578002,680792937,1794728493,1639594635,388548686,203366651,1495378967,2031060709,305047953,1362514280,1413496014,314719299,1228825773,1331841077,652741153,1947862717,1113336393,1826388331,1153556150,354846399,987111042,1875899238,1941515178,1024382828,280626599,1974324498,248922508,76167138,1085648436,447004607,572565954,1943561055,1424186890,987806127,1775990075,1064082970,941195149,572848465,686930803,169833387,755565040,1177913419,318264690,630974556,320464082,849694627,749940819,849932642,1906564475,188132582,1426579853,733964904,1358882251,443145653,2031735275,1682232116,914216554,1849702621,1757528438,852575382,1303394072,2006738745,352141712,484888760,704404204,754448014,1111534686,998998457,2005715192,1189929472,1133652592,1352443511,199975089,1964089926,830087791,1788153430,292439752,1680101078,1083200941,1403415396,2037974492,628500394,1801861533,187871621,205655385,844145943,2065956246,663779223,5041145,1884340857,2094498964,1766094988,186199628,1038622303,1916818041,321051415,691403584,34250108,1918408338,1417194322,1988583398,344625934,967493259,1420461752,1039858472,1078599634,2088054159,596998346,1363435710,1388563642,551422798,2014456239,1128155478,517723329,535734419,804618315,1040812818,991854493,1549922456,885989802,1411402852,2020164713,1182983430,535799256,1557439657,1426230405,1383300713,954605460,1487155657,573519883,1047201018,385139481,154411661,1914417004,627370445,1485262709,1194348256,667400760,1586027153,1120489418,1569999378,1197827480,1360314321,1226968572,1004444625,204987623,1202509632,1057492307,611148904,676885823,1661653108,527953237,1171720721,363605937,451649626,1707941139,729943927,1339969722,1250782743,2017390582,225052680,884259385,1956852728,1949360992,705736950,1870079851,1110850135,743434604,827409703,1148385951,321929604,757115478,1802286774,1154561577,2121215066,1375373471,854994230,1559369924,1018630716,132228841,307334590,390246271,275464674,1723293793,2003088059,1718266211,267594154,1706593239,1927401191,1337846490,348820970,1635772019,1081507479,2050836870,1262619173,1489120568,1658577634,177373939,1739250048,2000798769,1385973287,1469597340,587160926,1163158632,1750176797,1762640906,1322440349,1086867542,1848412896,878918553,1261182136,535462803,1512370828,1091957802,593700412,898244909,677742434,1119819362,782580905,1671479828,1073009160,965105881,1810297217,43111752,1644810716,214533290,1637643191,740162849,956652272,1704142715,350118625,1123574764,1515682413,886017168,1202568247,2048445233,452947204,1873558966,1646364429,2013826393,189329062,55733109,1932675485,1353291733,857636083,1190637969,1003570831,69684778,508538145,1432207232,281710238,1766060649,664535289,988611615,1757720429,1761149583,1688057459,1605296407,794987998,1951812708,1763184736,666931018,1264953475,2065586665,2101360400,2725121,2126386965,436418838,1865168119,1480652461,2005575927,771421077,413258314,246062531,1851643227,2049350191,1752786452,840692393,247873430,1891083579,979564680,2056473965,1094174471,1120789818,2127228128,513285098,47935397,1035640774,786018829,2123407416,255394570,134831889,1123023897,1599023712,542076517,688338946,1696070954,645576195,384231304,1084145067,2074367298,68350139,1739929306,1086560275,435863194,385151894,715853321,518747719,1811868789,1421110022,586501439,755222355,1131040705,1148964412,190244089,1456815720,1427404870,352462414,1556699341,262046754,1697640346,194164027,1294828717,968710846,1491444980,943398675,1029888028,1593604247,107729783,453961496,871159735,576535866,981029663,1172341446,261987656,1950205606,1827552298,698802334,477342490,305897330,1987643669,15917920,1570792688,433861991,767024303,865322147,387257784,1960223497,159859453,534384115,1071158851,738746801,376014225,951700667,973930283,1021325585,776208257,1936606510,1470362478,965445893,442004960,29372856,1289919372,86447342,1625136274,33844559,1829820262,2090418762,2107646025,1379085969,600929743,524667027,682727573,2044726355,1235068492,259997722,2099979944,1753607513,1001422484,705623453,1836862733,456363214,454351601,1823193759,1184188820,874912993,1453250757,1190572165,1303746675,1997996567,1236808129,991078164,219483788,1590900977,440692568,748943387,1721954993,1747526443,476959905,327911256,1203430146,480936297,1828024773,1412728314,608278680,1859562956,511133504,1060269256,2007381072,1745964661,142371588,442234112,284714848,2048473244,1635014123,2014447335,2022908259,1035972176,1776768272,121560138,632504914,1263059054,1870613123,121446237,408909663,871085688,176850282,625117822,597594476,1002688146,1603231133,1276496896,575165693,1202359652,1848889236,241209718,194480794,1556767207,169008352,736562845,686628924,1694249499,584316692,725825582,1471145574,373675124,1142046724,2112901593,1555996973,634111767,1904633334,1861475882,633589930,1323667686,644578188,1047507403,321320138,1498114341,842128178,1792251298,1608446495,853461786,454990163,1562001429,610348494,1224321517,1473646912,984909953,346341613,951227819,1198658148,1373533501,701618669,1590734625,1459597725,2088542467,1241565252,2112917514,1230190539,1769045099,1326610628,2061394433,979475967,1909212967,1051041326,1306527049,82744770,1399908062,186963294,947180564,159492490,666632150,320946713,605289027,1610699781,1710693347,1489890272,765292835,1524681489,1060922779,1606221546,651780094,1978052925,682605608,750888012,912295687,607910207,67686770,1641861061,1819265823,1113122428,843077347,1889720453,1414854491,1769791543,679332239,595202189,629934620,1822774889,1403794655,41505523,619675389,166632092,1113775390,2063624635,305003149,766217293,1786882402,591568820,1069787421,2129755080,280718745,235367349,964402597,694352300,1538058656,97119067,1690314259,149897130,926810016,853218208,1280030758,1162207340,1658800487,839717162,950557072,570316968,1773956536,1125231221,921686923,964015614,1969670196,1962949664,547150243,1178005861,2104597663,707569604,1463721207,1338109673,1452768779,1049861426,910394115,233339091,1100486205,1219925083,2015453532,497342814,1092112890,296780983,552561726,596203749,89882400,127061332,1043986208,1581024327,506958283,164364367,1169013669,366780680,883647641,274334533,625881593,696685964,121346305,746375420,563483558,1996628432,104834506,365826887,1099937897,1975525115,1973731261,1777012358,1581712996,994476842,453749164,1931230059,2058341524,1343333496,2107335884,437968455,2005988503,522376334,1686143631,48358898,1570609562,369190875,781767167,859878946,1789831118,1678076676,121675600,1839092435,1000931518,1750148125,456219749,1214328796,1453903393,1172052357,1174104071,609504320,1725684315,792513316,1896169895,1338984893,519637153,1347650367,1324425896,1781980726,333854021,686243412,1928429782,1489142482,159586696,1147782476,124551889,894458699,2107430045,1093601894,1692505650,2042115435,1151698483,498451969,150972798,1902937000,200254335,167490028,643370610,127011118,1371286161,902481846,846700378,312644906,524405752,1306336005,935087366,1104823235,1484328884,1803728086,2093087617,419512350,605850384,1825598146,1222305199,757734231,440820019,800885830,523564908,2112431402,141896842,716362059,1635711760,1176238880,1249429081,1824845925,638859722,1815870395,2003552996,517329553,1079593507,262858880,1542496002,1776961695,1437091260,1769834547,2077040405,776378092,192485159,1716294360,1393703058,633278813,1228090747,796542967,1567621345,1867604229,2104731280,505868489,169073283,1715571243,248314920,1407779066,1043804643,2128268810,321286707,726995508,1711767087,1146534598,1727043295,722936435,331694967,491834186,1025514665,1688376741,1946679786,829219340,2052845673,590884258,455923151,1559248816,1769764262,2049295778,1049324912,407193514,1967005902,1106208765,1204537719,1057796927,1791693180,389740585,386464417,7699039,253367615,379396998,1220273187,1130322936,896054447,1283888688,1955798715,2035149298,1215975322,1128145156,260549155,1168146611,1135486271,91573149,1076299944,1855778190,1674645259,1791846347,409710210,1495385136,1000126883,79095400,666121073,652502315,1058376752,510810619,689128286,1787039020,1571875870,1628650001,283943794,1144566252,155001694,1468401316,1791889003,1148344687,735890636,1057944088,638702909,695248495,1638680303,1973246516,37411765,1889601959,1596227417,1129564679,47461158,298782557,1677711156,1608276044,1095148107,2105151938,1330915229,1987288158,1672221680,915726270,911231846,536484717,907477145,854505536,1601704944,1547493025,1591438108,1670036998,515647577,1027438587,348018491,1723022051,1529638629,1838788034,886873214,1591018682,1512294540,2086227955,2015349057,1870618713,1140108370,441391828,425964662,1214427473,1807845403,595462320,1096097859,779902876,165702026,874676803,1866041301,1462488849,1958033765,650733596,1650926113,1500551685,1114865716,1833451944,593910973,628214417,509291968,1810323162,939406125,725021162,981963514,1668637901,538669219,188092419,452284780,1103429429,208061771,608589245,1178146977,1689344505,25731933,591990446,2025912741,1392081479,811454874,361997240,1948447194,1052711075,1278967599,211738967,740719393,1591724919,899383237,1731151907,1709448884,91752618,2074882541,7111461,1438053165,1535286057,1009881485,1795618364,41283990,1766138860,2056739879,1450499962,113262156,1290277505,1445426621,720905748,682967693,2004982945,1196847348,573152480,230788803,1320066900,457230273,922996810,2058447503,1672470038,1705548443,1202553762,1818356186,81160193,555742048,74538681,1862937130,801055234,803632879,706749696,1339848727,200619479,919812385,66263986,1309084104,143068055,122993351,1802659845,700927919,2106957795,1278945960,1692993729,2086990786,174378297,1315948682,1367517722,1748121276,1712841847,1525639261,1131116898,369469380,1743831158,1923989131,462642133,729307371,760587214,1088590730,652105420,516178044,1464956719,363037673,1753855432,737533058,314496490,530364524,307674214,1512798260,61014949,2029671409,1534509120,901046208,822059924,727679982,930343095,1782117359,1662000094,179643085,1361348930,2111385927,940133121,337225162,1522513208,1017866256,1105680317,787095375,1430766150,2053006431,769581954,542070332,1465263894,1933826615,2038447978,1553045844,1510499673,249611984,1164499675,1700168457,1993595060,2110683881,2055569767,272835089,1245193083,1830167395,919470254,56182555,1542285831,1058382442,104133300,607227842,242841185,1043532146,1872535137,1839527798,525715030,534235765,932767929,62200391,1019326448,1321797356,1248186631,63991313,200134787,1693683487,1474862344,234894499,650656564,1163916183,42801876,1477067046,1536727800,1396809927,871348252,591694119,1026220635,1860952834,1843977631,798683749,1766241243,1343840138,1133734337,1233996426,1274169190,1585260601,619778825,1655673036,772512942,1932555660,1165980202,259412422,374998302,1371831050,42940200,39830592,1796532536,383767890,824755141,1704430902,761363051,1583690817,1761971337,1754347053,831243238,523471794,1526792523,449593779,1398045041,1947750283,995978355,1592009828,1905145586,2040711219,785862764,1573271746,1709465227,2100715070,829606098,626417951,501413048,962826984,694772364,635771517,1098271372,1174868354,916159369,116250484,971682711,1147423790,2124759168,1844205578,545461368,1161878229,840152095,1638227898,1172020718,1076318798,70556335,564048459,757747793,1095440973,49336708,758537950,475845339,951139321,375403806,946730614,388412859,914233570,1481060198,52319862,1293440963,1529919413,331228434,1776062228,1324349876,1278145229,167499873,764911587,1233552303,131655807,932191316,103059760,1818720385,1262396379,277516287,1578405252,195450983,1185752219,1712718810,1257578638,1081125904,584254360,553115954,843575584,2038104565,247019934,1908648217,1271088765,2013893925,1630194657,406090338,1783190829,908653516,1229962267,1765676120,72470277,1767420883,119645538,911306338,1972455111,605344675,746046407,109434514,1104852933,104058423,1785099643,1238662897,676477495,1794177443,1817962370,639580319,1984897112,1064040382,1948171989,849570970,915266805,438582509,895773656,273963073,46861301,729058268,1067674967,1013593355,340030918,946452846,760011019,155692903,898407803,429425110,386859931,480834035,1416139009,1765719042,1076275331,1289184687,1912882289,197999811,391045319,1821349656,1670850257,1484281154,1013949880,1444391155,1506176255,269050836,1810059514,339445390,678587929,150169450,799887866,956979900,767053088,883283102,2122102692,160039475,1953120922,1278325846,598094277,1296321314,1414550937,2000444071,2058926504,1028544974,1600779385,1902002626,827775185,1631437990,107699151,71489460,1797006053,1551933096,1509416815,1966485386,173318572,156242791,760298840,674677509,530841359,536199806,291572250,747346990,1728858588,1371450712,277019570,2013287746,44888468,198169269,60977602,1665781381,348643030,1154317341,1129304060,901732856,432229676,1387230026,1653271109,1495658822,325288755,1905250163,1492968825,350897681,552312998,2070707924,208850865,429359805,659053295,411796801,1025400529,618970497,1592503690,590748962,1103843853,944913703,563649450,1010876355,1118583793,928792390,1105991310,537237372,1793147147,1141490059,1243632023,1061838394,3452726,556450256,1731534488,303260536,1026182263,339929338,186909167,2084188412,1084769119,424599650,181031163,548358314,1984096454,1500687163,926343405,1609962954,1947761417,1177220250,683849774,408497903,1432822679,1847300423,1610163257,994354298,483702895,600908101,117650880,1170752227,867995271,1332667829,1590426466,89381291,1500426236,1380178875,341665822,874803602,1172653358,333813122,1957285540,1782788586,1302990475,1976903601,156832038,1070853126,312883336,807208927,1007465397,1520004111,1304889997,1608835190,2048772729,1125557288,616744629,1933831843,83760646,103779096,368012916,59992506,1715929014,52816516,1956144563,1523779350,480393343,48040533,1465157271,959172454,1212949518,1492954546,1934017292,19285914,211064955,218726803,1468170538,1769610800,1864535443,1234031924,1870270269,500675109,392623781,1993545749,1260947784,471637500,42909887,1667240132,476925689,2097459390,1389146231,762987185,1569270054,1749470750,1959721360,747868894,1332869639,75594814,204957844,1732309018,1037765290,1994308357,1149464806,855618277,2041113191,1222801002,356745741,157141241,683864538,1404971570,1860012432,698484402,315386438,9966757,1418715508,1118007598,1590071747,756079822,1550248528,748710221,598135622,389121942,969984649,899187967,1698752116,1137378321,73375289,286735186,499340852,1380764420,1935697189,1711923013,1256878705,1180831718,36218899,17508988,1582990704,1690091877,42572704,2082496903,260103218,1302711672,1148442256,991447492,1645148285,1473665290,1856548835,1569459419,1820870773,1287987318,414775330,1071229198,1525377963,539401763,244999189,474155586,19907174,1069658006,2011092535,782674869,1208451112,563979639,1438283984,1437894589,240969662,991006766,570680327,1074707157,615764564,1886305047,1829381949,1607527146,1680486066,652462765,2052197789,2047569890,1310954124,59928498,1883393568,642708933,1717482319,1189516446,1640648699,1017736245,1999613057,28916231,295002722,1804628877,1155112984,1761451091,1931453508,265543460,1678580486,1669236250,1506440852,464529158,526429257,419302692,963721527,2118501142,1259223747,1463254844,679287104,1669116879,1695933916,1048083678,1506737609,2060738514,1753436052,636013093,1058635161,1529891296,1606423576,2047487554,73830995,1623586775,1832683224,1090268339,280031509,1126911498,560082757,1445096048,487509038,348948634,2045291049,343219301,1753071263,1658643406,1399496698,814112318,1981815570,195097813,1252557187,598725014,973763448,1381569811,982548567,2018020950,1416980288,1646886333,609601627,548854392,1421596224,799017217,1692157714,766632950,237183745,114206152,2007306074,1586725590,982996808,1968696941,1679826560,2077782748,1033511516,666949523,100797841,558158920,768163739,17449758,1028388925,1964299237,1092899147,2100746704,708281925,65916142,2092240007,2044143067,752129312,216251070,2102221842,759685698,826986717,993564757,1428244959,1264483862,1923589645,893139785,930386761,1655254389,746737700,1120652754,667092241,1078227979,1827534595,682242958,1670141051,916939240,828148740,1603130057,891171572,879111533,778288417,1591575514,573069488,311641565,1694234148,7095630,1869114757,1652271156,1043067239,1201631439,1245879793,1908585547,1455043665,69337636,838602053,1516191432,1546493428,1367134746,631851056,1225215631,1018316702,362946808,1062160644,255135363,1235619990,66450063,569624515,1647838103,1518975341,201238449,730206350,450067891,1750686493,733668911,474904304,416914741,698431453,1308318759,364704641,117692519,1521295759,1865442896,1547608847,239627586,1887399202,1604680178,97102043,1410618999,1225486457,543909787,1635224208,1019838814,1212821010,1991652909,2052320093,734066386,1487287803,1454130126,574418336,647476120,169489929,372315706,1309572393,440137464,64395259,1585988067,703864405,590379400,213368409,521087757,2091972346,1788749312,859464743,281304030,610765302,1826769844,2065274369,275473367,511134512,1389022303,1635548011,1677393748,1335306678,816940343,200372674,340466471,1347810511,1624729301,363091628,1238253614,1680617017,2097234587,1040852763,1401689874,523586636,1179197165,1336723872,2051895854,90401966,596229729,985997014,1782903004,863796393,199032837,1030014976,1661482384,1761421496,793579424,1796656956,1221874896,1321165742,1217862718,1067848986,892067754,367862406,631451479,1750432645,450174307,130011364,133062570,231116165,1352642095,1050395694,1837696833,1954080680,863088918,2125308936,1458259037,2073769015,47638933,1079533664,926212227,95896875,2091713507,494681325,331508499,172738892,1655250976,1830418881,1472811165,122511436,485195089,4581497,359550953,402593612,1889924644,1546962045,1778389823,295604328,1271210940,398792957,1350778257,1904932109,320129778,1223544535,1188058620,292382342,25531991,1621604510,2024148441,1069100767,1558210236,825681857,320645006,1533744005,95022166,1867208475,951374700,1145847750,1841299904,1655097478,2049598655,1260222796,432468202,2099089601,2012245288,650730076,125512998,152657246,2061703867,772095223,1774479725,681487299,1473149065,708500978,1567680226,1458033117,1942961204,1095033728,1098835245,402236022,373193132,1420881077,1876993182,461843859,885938530,424304189,1202800808,58757420,293079056,1580421385,1365480747,182554917,718739097,1916250039,1284881698,923935755,1149032311,913174210,1650456794,680708133,2087942691,641020497,1673271751,1735168008,1958193729,1316589307,2108348970,1241536063,1935800675,230786904,877935431,284251098,1335060439,1314568698,1247086491,1082272030,1239514966,417768276,943199287,271006073,132000436,1832232474,449117695,836295415,1026391817,380083238,1335256565,112651252,721891893,1284182692,1182050679,1948188629,2017974959,1530646701,1152719118,2040105971,1080871640,622173659,748366315,727253644,528737491,1042831953,679878361,697487965,309397271,327967248,789539922,2058504255,599779563,1099234469,245312894,91421473,1455175032,1831919144,1507446940,1018025656,549823285,960443172,724372167,706268447,1314170394,1798421754,427689472,1280880499,918722578,1849655046,2121228325,24339892,1658442662,174645783,1978645333,398159629,1182899114,650430097,30915076,154622500,399832137,174211022,2027313657,1404279482,456578158,1103754609,949210909,1147098888,1956454358,1582884618,1102469539,44907837,776747548,1926663699,300480871,1483013776,699878392,56830366,763366757,351624621,415638092,2116230381,2050265897,759014461,1721370886,1682031462,80842954,2093764278,22494637,1590528343,1596692864,1163828214,944027372,378670924,1418308788,818449649,895708327,1124923752,957277749,1781111639,6219922,612465505,361522041,751151215,1559631545,1298629935,1302080639,1806776942,416818576,1076509637,1587159130,651894200,1370366588,2095419245,199281673,1774286795,4100983,1210238459,1022320754,1173504932,94776332,680372393,236495670,388628228,178673403,638466418,736987473,84742516,483737656,317880074,43959630,2061094262,1553968557,1492598711,1463860927,1875024900,631931888,291388,1986480182,410364676,1784557,452900029,1443535634,692568092,1211738576,1849830316,628435640,388838716,386252346,1283811962,1111751532,59939181,332965728,656899690,62354550,370804030,2080686394,134603201,688583755,482738730,1605261354,101525771,665153824,1904476903,2058540946,1294575059,1783537930,161099188,2040370262,38709982,663457982,379384666,331773623,894247178,1577172988,709902852,1437709980,691198410,1953221226,275362219,746863130,556742679,1082866965,484069508,2114757482,1638082795,1762010436,226370894,1469978266,60700055,1068235424,1430945676,1252605292,1607896141,240030638,1431928338,879887988,766293220,1812254091,1325561149,643353520,466438609,338139089,931687469,1345012404,534292687,1693577396,1408309895,1501491342,1242879698,783524694,1533157443,1865631661,1731330296,1166536743,576373230,323777929,154788838,700428093,773776707,813201108,768440680,2028894699,1591495477,2045753135,263854433,1222435828,327125935,994666952,1057153660,801880950,1421564610,595615313,1497699712,290845383,1894377485,1272397859,1379157435,1899939075,1606710821,2109211345,337048462,394507945,2010079081,358040199,679644709,574657480,1945182147,91060164,1085352997,1093194115,1135629528,2013017794,865580765,1100618616,2012305917,590683911,2126967110,975065151,60226357,45618014,1542633527,1236009681,1999705440,1297782407,1605045815,2067616339,782016466,148768419,464810446,1019322300,861204713,1735220924,395409226,293668748,1041203106,893167677,470758562,482712280,2053781853,467291848,1449096348,1231115893,1452587899,607251170,728165005,315927072,452400328,2092408600,1754308931,975899112,1214920263,156877442,978443020,1982959034,114193740,288347387,1403166564,1724999106,1769190207,19369721,1703515892,759137473,1712167189,404518369,1268117183,1515888974,1861544604,1698733795,83582115,215038832,842073607,401653318,368495415,1419407554,201739355,1263844440,1072517972,1967659159,75824413,108237512,692410171,652849034,85506475,1521960301,1655408255,88792194,1895433746,1343825260,1914683633,131422293,1573074893,1171706865,331453972,1237293092,1592228592,719414384,570015568,563380206,1503031851,1471411949,252273994,394838880,927378753,529488206,39597607,1844263372,867826722,915303125,795992320,485420662,1319584080,330789733,353188029,543149739,145806914,1648745963,53662218,434071043,179622627,473256293,729282991,1592614979,1417798003,1365421749,420289448,1506042235,2004076375,701798015,393205746,518622066,1492328060,560155907,1188420634,1528729394,729535028,203462417,646466259,98155618,1449110537,1024639296,116236303,52933605,340107836,162207508,1545689814,1302451407,974466191,557590859,486584933,918537436,1926195857,160734964,1241325164,1326715749,392076494,1961758198,1779942477,1291333290,1393431465,60184377,1349826348,1831653819,341216419,1213186686,351905013,1502874175,1079425266,1997735695,904925905,425877033,1371044875,1231869058,676690588,857918369,1080877054,417098485,1253777196,424060083,1618827129,965481532,883296926,481482541,33357456,905114100,120866986,809529971,1077312811,897607675,688120725,1561113538,1254952419,1134777415,412854991,603947010,1241087404,99557712,1889721233,1071862138,334763112,1407142947,1104814503,1286179310,1273691582,1416648526,718714656,1736992524,582039343,1514675174,1296567125,1804426440,1844946423,14233344,1174404612,897819200,1594841526,67487835,1371606999,461559387,347687889,1873382569,628228313,670236385,317945443,1644059261,1427064459,1032558936,540522281,448455004,480705531,658871877,82929280,2016568728,2116155626,618298408,1007076722,934499579,1030200872,654323313,1980354203,805401078,1377432469,91625997,284934533,1351956128,138334313,1006598685,356592400,491553274,92475291,514752750,238342896,2095645068,1849678157,760683330,285415799,1726352626,754805911,1980503815,106801494,1352793392,775006064,902207546,1702735463,189922042,1289418687,934619095,60077453,947728619,2008413502,1452836424,422699026,1549927204,1234195465,419404516,811295409,1804153357,71968908,323983269,1293463846,711197323,1379314594,545664646,310051452,230824769,235987897,490026606,2097915047,561942465,1923828761,639433922,1968928139,754172578,1214600029,1530446706,1654590083,1799383812,1576549627,1541733989,336881024,687878738,1930210772,1543015518,877614808,501502162,2043356859,54753274,1850509631,14279068,602443153,1022463237,2053893016,429470170,1039210276,2047874700,1689995125,1137225924,547074190,443879519,1192740449,897887075,1892762552,275834753,1224749005,1642372063,899430085,1538588174,684380702,83091835,869027741,1766376460,62092091,998251144,581204387,1605067862,2015409428,974264616,964835440,1369055904,1387174304,124048632,1527947768,1976712012,464630478,579991186,1680684792,1414253589,669422736,2098224213,33246896,710331758,665757073,283798877,695336168,1698672803,605050238,1320448398,468482967,1242722333,1486795366,1252869067,469545091,475081074,248070165,211166212,746980523,1188980020,56940829,658238352,878979359,142536061,1506604011,1923065229,909649426,230404171,1490753947,482713431,2120731829,1965783917,267488547,1639169261,1684140542,380196689,1067106146,374500090,404125615,1989993041,720363286,626006935,110840936,191867380,998443463,1481539505,1244617793,1976148802,741743973,2102676141,824918035,190131104,1266137548,49608310,1871787305,506921229,1365498815,237906404,464295551,1762190657,1650193617,698274763,893781535,824873105,1341849650,758467848,94820446,52833453,1209305922,1418887571,304172073,1109752420,91603192,29393046,1500508469,768151764,884997877,138552852,1650669770,566085305,983913857,2093602069,148083045,2094161496,117252938,411623891,468621564,13841298,362261897,1853860628,1338573886,2069389882,714750712,1858453268,1156489941,686512490,754246518,838218505,1978921741,1470670150,2015094059,2050058854,1948092065,79546504,423048715,1919961535,26549110,697896674,1326948653,1100208778,1887099590,183411703,614217982,555572896,1757425040,576779657,1975533569,1524445381,30657340,504658964,304601172,862323598,686136609,417700728,2055722003,454484307,432630772,1773945715,2072334639,107112318,874335642,1662180007,1197790329,1020137086,1909380908,1514112504,1741044813,83428258,935174371,526595087,1439700187,2121943037,1703816447,1144426499,1644103205,1474788132,2036991423,1904580347,959900110,1253337872,1997761199,1409239554,1796363133,1167242637,389490957,862118129,1693350851,166976521,1984526221,567921506,140487798,2030280030,16812778,266200265,90911190,708279798,76614813,1637009130,206604682,615584634,257332919,1687346786,1306911448,138750929,1977554040,981935661,1467857070,732092724,1870777336,613080591,737629604,838291988,982930226,1248414536,2129874892,1280129167,149864781,1914354765,1327072401,1990111884,1122189056,1933311517,6755917,1685733687,1730685055,754417947,1470348719,1696902248,1168175034,2041017370,666900260,1236783584,2092158977,1820791464,695265611,1501786545,396282216,1128612830,1469539436,1218495065,1978694023,761284269,1940145378,99525095,196194561,540179469,1116785186,1553879638,1595578876,79448036,571130152,1487299405,779917877,1048204191,1637811546,1806124766,669360060,1266686715,1704555040,170919069,357494941,1285723107,63325686,230842081,1624412328,332253406,1565313399,546543288,2056113992,1358849728,321672645,704757505,1344824354,203931709,341296413,1819140705,1371856598,1808923317,2051931138,1223819483,967067235,2124678518,249536816,156008490,28836967,1230911404,1031177542,1893725573,659657123,556742779,1546986803,1708399493,1010753536,1717816766,2032242764,338594287,1912651946,1617397206,1657992017,431124773,1131077032,501401204,716686767,1659391006,763986221,484721743,1467825144,1611939762,251167158,1374393489,1578301367,1027917976,1841783399,803209503,1963556448,1807192726,720107394,1321989916,1317425696,1890861912,1643860745,1527103855,1327976315,264989303,2087147240,2123608407,589241384,1749400607,1605323950,2086487252,709771065,861161003,1239543207,1957686764,937469573,147513729,302877993,992640480,1447406349,1708595491,511267556,1604544000,1840986288,408506893,164477210,1407720713,835894279,2114880631,883038744,507846933,1873107088,1384090729,910034961,1613516657,506370194,1837658976,1500840969,733971149,823065487,1310976326,2121558280,625544502,1584083370,1831058809,290154732,1186532101,1858662890,660007363,19699769,1040544441,311979159,1638647207,158482408,1353235227,843133121,267537014,2096130084,1722789586,1864219365,525527272,887860825,2059756365,1904682847,774532748,1475730406,1018917019,1326142677,1183567556,1307483085,927457224,115749591,1191207176,438577015,339133779,101745550,1877492106,699684027,1950365179,1978567296,1880021584,310909856,1306368396,603884434,999227539,1775397693,1604632767,1518864718,766927990,2011772631,2061302380,286063451,344018745,489658462,567512801,1314461773,1139057642,2009923371,66992485,107828773,748484434,1555308861,2028534374,953451726,1023815961,1435835200,2077543899,954885559,1588497645,170187874,1286610539,1184460509,68352304,1998926552,158500313,577566984,1528269871,1553125262,2065006895,1986467507,892430966,574387352,305323788,804841207,765757433,997290538,1903329670,281061049,1591230287,1570687661,600200380,623528259,613808371,2074425518,1579317329,1439163337,2033911621,1200126967,1598509383,747398119,917008031,1044614794,421146156,1623895490,938055334,1528691154,67900717,1162293277,2093656768,475847747,247348090,1364802465,161886306,1319192834,1091316733,1926282969,1125097120,1006735137,1720520516,756672977,1608968130,2020069451,1990910542,260385703,2002097818,1752473323,1473150138,885154208,509226809,1324430244,1850073810,1065991650,812009131,620623343,597039823,741637487,271606619,350782919,673828654,1743758556,2100847518,1052189522,1162601686,1736401146,1865825680,91915384,1682339199,2122522100,373192354,1653856226,1124367617,532155779,1257612888,1024428418,311993728,1588462383,1570459056,328981741,2073307164,1126978571,151368816,1829195172,1165887661,818054991,1554211831,1764266192,549579733,1014841834,614921529,2086735081,911883528,1844220899,1025362327,1303862709,748956520,1649790484,1985131452,1620380462,1952431150,1317269294,136957391,176527045,1133002528,713267774,1553982576,376067239,1309535596,80084008,1258029646,1412610854,1872449406,620672901,41666128,1261589724,1967052197,945921716,971306434,1995654712,281003968,46221404,1014130691,1294567953,1520617508,414708039,192819936,810594076,116129516,1445800937,559934325,1488791548,516748727,926342730,1642456573,2075541616,1683725205,1954681791,1537896829,1562231812,64231589,1949559833,1552793157,381445445,46161995,1059735580,1966638016,327711191,1115306746,710253420,1494915930,2050484049,460380083,609927831,186455252,1936239198,1193272547,209144172,1301282954,1686734803,358000243,187943451,1860678769,1684048998,1428519382,1987551492,1467934466,359067579,415690036,649912584,1853042853,1893966838,1852875315,1169372098,1257102486,743547628,384099542,1249378158,1759157086,1244248872,581110524,1736961922,551961212,700272813,1355320456,1283141317,1689840952,177029292,1234816509,1611185130,1528314773,545933771,494969954,1680731403,1091255337,1013856027,1108665034,591903604,1726571957,1676044334,1116376894,1668468007,1911115611,1562932919,1204861812,249121214,1038938556,1905634607,1087466434,780019653,1554875386,1421890443,1404318488,2088009763,680178975,858601504,714480698,2033225055,282102884,1826864834,2114460420,1267276385,1926855799,838957570,926919934,664118806,1535355585,1130259110,2076699695,1136324993,1373813676,852268041,1687464058,810551054,478785586,1389711449,804827892,177320202,1981344918,1636985092,662885460,1853969811,1070537019,778360717,1476738727,1120511078,936166962,1461337632,1887010579,1580878370,204531396,1316448945,1139255948,207406163,1609980199,869723913,1523108274,573731183,665172622,1987455096,98439471,487538988,1418814259,168269814,1792859530,114420387,1180138205,12479104,756274598,1527332932,1884343684,1702444736,929019987,1510830001,67651428,742800857,1893550642,835044553,358530893,59122939,1330243936,98786768,97895665,858093688,361832911,1809106006,1081975201,1221941039,1385424631,1989281358,1213926255,820077366,967711796,1549170776,558267365,1138324618,442801234,1212545203,1280311308,1467407968,909339358,1786466453,815256987,1429410215,1121348700,1063599796,1489911242,1535642892,1534091806,1936841724,188139762,1242851266,575150132,995494444,514521422,457870947,134677735,270957736,1532440326,115572787,1441861701,1341605182,1718546232,510622825,1273441509,1417908183,1526959081,2123541640,2120953984,601185197,944592807,1036009004,810647893,1248392357,468230273,960095908,2022079547,662107108,340156710,1749282236,12054084,1799189978,1427885291,186083987,1623493619,409935581,1125916485,2109051844,1976472406,405464722,1489648162,947587151,1802884908,1670914544,213640122,754724559,960600543,1339823240,1719525876,376581643,1542860402,631215657,1019394839,1916763774,177424005,1820241343,887881688,1686193565,264465262,822229083,1147039186,424199652,1367076365,1927112030,2127374606,16315035,1387186920,200486124,2011567617,504987141,628072371,1203479963,872896328,1354222366,1447357191,1661287734,1746485210,1346053316,1416678425,2065557501,1680206917,1395020650,1676118550,967431427,661288367,1677883760,2101652016,345729071,996861428,676096829,2010472885,1464650424,1676398360,1095211368,1859735905,160811972,847414722,664218938,448358800,1113981312,990372311,610807791,1357894953,433886795,1101849128,1196157208,950848891,1672054051,1298047424,1789433612,1170000721,1746266772,1487132307,992905364,1577846785,1909881675,1545910454,198738751,1099698316,1529370034,1504105506,1457039114,351554884,135888461,330573507,433886955,498412271,288599183,272982344,991211475,114531334,418745169,357812007,1473041632,1445856324,672358399,1718967258,400841275,1880526607,988916089,61102468,1812443895,976033918,428418403,371686957,1371749447,165719048,1754151974,1004958172,66240030,1204142864,1384533265,1101666413,126913392,266235111,1978973249,725076231,160845309,1275240463,1659616334,559929603,637974371,1399037127,459156359,1044763651,1654756599,1897602573,63038565,1669008179,1630802411,961220636,1559462699,1538539542,16165869,21483552,245694852,1371660022,1384621361,180830925,1229555510,190364963,553501788,792955027,486105670,1453628149,295282464,1894943639,1316577462,1435684820,634203702,158261299,5367349,2106123379,941805964,974414362,1210365458,1386956535,1182317374,683150150,1569693269,2052471066,166865235,166561411,113466799,2005690698,1509677227,1784814461,234394937,1583799922,497269354,913628177,1979324818,1992804091,1202216538,457320349,1779637930,1480367864,955649031,1037237715,1056904374,884044388,1851797625,155947732,748997709,231669721,1185615792,993552460,1441552084,1964272796,1309420370,1700132241,575364596,206718128,345462008,105834185,1627239520,213056917,1406198177,765494224,1184361413,1141641844,531858101,1069570173,40227908,1441881029,1062914422,1782730890,2111197832,2115521023,1870580635,746022405,1238922518,885260191,645617871,1199934889,572096817,765657347,1718101338,1655217255,1418746037,132385366,1038424210,1465079660,1420728121,1657429904,105040065,355289766,372055458,41088286,1718703897,547479041,768017167,650234601,173476275,2016309846,81280013,1584472101,1279800420,2040025466,1675803234,1514628925,311780955,1001737453,181237914,1872947811,1156917195,529548986,1202920072,1075174827,1227136354,1521646315,409285640,1094434669,937869855,444865244,2125471863,911387603,1447495970,950275005,560055768,1137658573,1204610679,83319199,1598074127,247772670,829957472,2076911628,1677125124,296738915,1969559793,1902001554,1752754662,257899111,605335529,2099744502,320214641,522967392,79994859,114100613,957428578,518450268,892608311,1433061154,1013446557,1325927636,1116451812,1448207328,2123930112,1410929676,1695974502,1288618560,520455735,1212750863,1438413948,893653991,1276740720,843694963,1529911920,997230678,1205898758,665766906,483511864,21581016,2028070242,2071587998,1422286866,203190445,963252399,2125399258,1342761136,608918474,1251460778,87910640,1015440862,337401650,881196208,1580758035,1745874466,1329447322,1065025793,1894862945,795503279,989466435,1279146297,1490631627,1953551692,710247471,2000468991,2028664940,899506377,563056626,904578001,1308675493,2073140857,1788697931,12069878,1705197594,660635254,1894947756,1373868967,791702462,2016297688,1600493064,358148767,2066661465,1094716900,1704362792,1279542335,1823120411,485611323,590796620,959390551,1085579565,1345234843,159296753,1188009511,1839110059,186989319,831983407,2081543929,768620561,654091449,1447203465,1761448605,1365833703,385120722,579075880,192197770,91897524,1150782583,1470806219,33293291,1691177702,867070181,593694922,1115411808,1695177962,871067091,94411587,659213662,907798557,1236050077,152902254,1553285318,179749598,333386353,1741835391,1254750440,1979787690,1704819511,365098831,1726726965,62104302,1650919251,1496336949,535499346,1325961163,579683064,1719717282,760560496,226985257,888317107,1855243005,550124900,411865432,2025922598,299458469,1940034965,719770944,1511402534,17295653,2059657977,810917248,1485880587,1262505347,260196632,818727077,1053096093,621173290,1730539152,924606081,1197344545,426985972,1793443714,183059066,24232982,1714289651,595991296,320938601,431212294,543313748,1314014570,222482217,1923952336,157663393,1042474758,1248913512,265472644,561880930,1200460728,769685693,1543509867,209096824,1316978722,567555442,1591659103,404299252,46574936,1404563866,289408796,1752848390,1099863950,377061434,626481834,1516425551,1626654506,63569719,575449686,1850587363,815780862,1216276407,1805603211,1802118856,317968087,1936770891,1210807220,1607937732,298798776,874751928,1545714534,746412520,1443037722,1524616866,514396138,1686257593,2064024220,1029966375,456957788,1122721703,460990773,973672737,444228570,992015307,1325200502,1318690851,1584308734,628607617,806969077,461408963,273428780,263437862,1748176325,1988805614,449835845,1693425188,1656513459,1959948846,1868690052,2101305155,1757452574,1642285094,1160729464,696325112,910883992,1631324808,577157499,1541025871,1087996368,942631102,266681916,1370855869,1136969871,63074865,697570153,1465905461,1905382,1146282743,90190296,1495849791,779227467,1547884171,1465470583,1580188508,1138253798,391456923,23124174,2086163553,1973344747,218182311,2075284291,1915431984,1459893877,1249772898,1815002605,355892672,113742505,1288957781,2107970163,182874288,1481292020,616618944,84860622,31934909,1028855871,1523301855,593641358,381834818,2101663191,258245837,1904438415,544323113,228347548,1934711503,231218967,963240062,1798300027,382989912,1343991597,197963615,338748699,1947952920,1480651712,1315759364,1623936628,1673075266,884710594,427513377,1495750809,2059325339,1644095885,850926353,246514582,165194676,736397966,1674831318,461287542,1666990600,220147446,630494693,1259616255,1492420591,1823617065,2105251145,870881976,289782656,369166676,1485909551,239534174,1924870562,1531298377,2039497837,1137818196,802832638,1812832041,1796492061,768175778,1786367418,1699536489,1060223880,376404216,335978047,1125583399,1267271339,1603620629,1155735406,108886509,321708643,148753798,343888904,1462011181,712023809,798191474,846733027,830024483,957228593,811045123,151644125,266817550,1222431345,874214251,900872445,1511156936,391059792,419004358,828432047,91913004,1785770254,1847624309,1762822593,936397001,433172780,1959115413,889324572,1432582924,796769850,415377361,37909651,1830250991,775886669,447117410,960014795,211510527,1629686432,1733702265,850542566,20261928,1713225160,1956335890,1587951540,309749599,1787046166,1938937098,1404883381,4897384,730253066,1488477509,588326683,1305183492,896071070,1286388464,1360523553,1042843202,1685471790,1116276045,174878411,1453199562,95088358,400559569,1968371030,1046166847,891747462,316555209,1882871499,2053473241,1743867868,1453330828,1469995461,443190282,1808974735,1857529309,532193272,1780011653,30244331,1710669526,802955339,1571849672,2121850968,119624954,1657234873,1551120531,1383906910,1622402768,1130984745,1333811345,2103901211,1768594154,549058088,1825747526,556846536,569548311,218888545,187416832,986197588,718904843,1426413424,166852565,1976412552,1875621502,1024434798,400903466,892581005,258420254,137852801,163926959,1057390570,1199193680,1496609335,176595751,1875961410,361648464,1865213453,38197826,466869753,1350610251,1562712610,1550936850,969198589,595263228,1149130763,56512922,906932792,566361765,2015285086,1175045194,1547850154,1933599586,597175875,499133335,1817756664,1364858554,2029438375,1964514978,255312490,1668316909,841794921,1280386018,1304616288,946859833,496306405,1944584187,1520330059,1714292149,1923024186,520255679,1538277444,2054872525,1400747647,1645196240,1764891309,1043319587,369237687,1412869275,1902829420,518634198,1544823601,1320760601,1128571222,2086285124,894299004,1684145190,354529023,518536434,1143721577,1961149446,1159699783,907485065,224777456,1048534508,33637887,1145687042,122384443,833613013,171660252,1616261415,483802162,1176676900,1952461246,19564057,1937999343,319848170,562560734,1297322099,1018553637,326545594,2101885498,1136120965,1039154596,1756812690,2082318916,363224089,1023876120,366374303,467465597,1914244241,306251663,1662910867,448857183,762969297,1888052325,1162548751,1901603231,425364606,543402966,751170805,1522377249,130830616,1133967149,959504868,355864465,1896608423,1605870985,530923315,180079899,1666757265,754879312,777849153,1236084240,2121887320,1122591926,192396066,1842332840,1922669062,658109969,1273727846,1516483867,493675853,486701951,764813466,937481345,749188544,846887099,1507443313,388802698,1220455595,1015055251,1088312571,357707691,863977670,205679371,1416588857,1874575861,1368118390,1685772480,128932151,1515190196,853797707,547797034,1523531784,1139365132,16401732,1220119853,1351837392,606737217,549881646,173606040,1817987593,131641953,231528748,253478357,159569019,254618080,1239537451,1233522412,1376245672,1122511972,671015170,1536272246,731355557,450786620,1249416165,1681963709,598843667,1935180963,346430667,443732908,1799419757,669265475,1121353458,118280199,689488289,1935791574,742952131,1006666636,1731531534,463398799,284827657,983188936,499381576,2088638797,1325221766,57091884,716431096,1089425017,1668623114,1856899117,1079758314,1051524935,1281169150,1727692150,834429140,44808827,1136510959,1642427821,1383475185,1105324070,845678829,927800932,478136336,2120873486,523617940,1674088190,1671104354,1549091624,451579891,1977968537,884914155,1951063019,1633218468,2053403028,1406979269,1149338461,423153725,751617783,1563656538,906515401,104332045,11817601,275555812,1914674253,2021964480,272327286,282471277,671136631,1671844500,1836922830,848444681,898589855,240524706,987011155,1971729681,2111702108,526843383,11982360,467969311,1265738120,423793538,711488281,580197605,1878561064,1013234008,1192969241,496707401,651430168,284397431,524459265,1451224630,622689576,712603221,674067337,1965373583,433569968,1181507098,194412408,736463761,568045768,1118985515,1251359009,1512736460,982560375,1411587529,936019214,507038203,1062637745,1674297074,875912714,509180094,1554289878,1944053021,920062711,1763893427,1080238447,809062992,433161624,1286265658,298165955,2091596281,1297678132,1734166342,1439048910,698267337,1928374011,1488792688,629496884,626357825,484461028,956185695,1481068958,1940319018,769329493,1324794541,518389942,1369687098,1124911984,911361718,433766240,1297545322,1704591986,1973295519,1938505394,331145111,945889355,1807161585,798572554,46274859,2040346854,1628573790,710342575,1385904173,1359681158,1014229891,2061906106,429614002,1900694912,1809220450,639260228,1526888597,2033391921,484286056,1103580768,1851952215,416661161,660921809,955587558,1182781926,739156869,220226813,1639154460,57287383,435249478,1956508797,1608164881,241876439,1212803178,1378927582,2042132046,2047569037,1866075954,623219317,1107386822,576055269,1368814097,1462097067,2098108182,1930111290,757062453,1043175624,862155350,455299497,1358571004,509404678,1703607933,1309471067,1585590059,1302995694,1194953393,54933554,895909468,1915492278,1375766833,122327203,1029269994,57702040,1727974748,554678502,1141664853,1732901730,837108625,477528971,296956389,1219258934,1061399244,174237628,410439665,1340444283,54824844,240195713,221602399,1049507953,287505447,1690614484,1380638098,352760095,296571810,1954013765,616545035,1046274242,1261349173,1829590051,2018138683,603939886,124855435,303091946,238048984,153630223,1763288206,1179666002,860343702,1218271278,722542006,774212462,91891883,136197791,1746430874,2002263393,1186842037,1148185848,1109688285,1368579774,963071961,1432615494,1424549652,1587162049,1905964372,1032943989,344061328,1898405788,1565542227,1615155328,1164322079,2025813294,1736711775,1878321065,1188321277,265701847,462983860,1207114658,180702479,476420500,814687710,287923033,1327180215,622290255,621212488,2046666281,704781173,583440082,1265672897,552991236,29326355,1987073932,567349207,1847134960,1730274791,888217371,1432630366,1185123598,276678027,1313590847,559308553,1987786669,378067443,1404291992,2099962879,2128216588,1842331309,1189276181,1084102665,1180089695,684901014,1388671678,816250153,1155910871,1659198826,491820241,1889526976,1415684581,1690108490,1458149487,81153367,1669718467,869682034,1240133104,1806160486,522440013,1881568744,1337996684,1143019628,1130706139,1496243625,216727877,751447058,1177650964,1412421283,165293667,990444179,1883955150,1031077468,1191497013,518796086,1714908954,2125049298,1427675982,602548922,19050352,216024247,718777253,488500861,430991145,1630567395,1180284709,1106706694,1791086714,1704377150,571180191,1375049552,542158786,2079267027,1224128636,1458085923,1623558068,842283507,330003229,1569867570,1659938749,1516185357,542619373,420988924,797075347,1235603866,262254120,1725534738,172570633,823813153,2045372040,515834249,1297643211,413953183,1805504623,1474967945,1108405041,1020282522,788519462,1492617971,1220279774,1399649199,568651189,1664158609,1729902791,674775719,1388704002,908774490,1625330450,1200435001,1638242365,976792059,1288571334,1788710276,1517830592,1906050702,1534665141,1188382519,1611694486,1049140854,648241615,76440236,2041038394,1967534300,940975400,512142694,284068865,1782748223,1987136532,1561048089,1413273194,1170737844,180433497,404840146,837332377,351552187,1403645979,1573284955,455248847,247942897,1216733797,1148870165,2099375857,855131931,1320151589,856352089,572674752,1181118121,2031658474,1810395035,2012834401,1513195515,271167369,872310585,1424941584,277074380,706477892,1187253537,1994633909,1553395383,1283168394,251073754,781012217,961374490,1119150540,1852749069,182071259,1204200458,1545520684,1263402931,1099694002,1580309223,265154318,197241555,837715788,174079096,7220060,176297167,384058028,1294567723,184202924,167022047,905337451,631040680,817511273,63045076,722049299,1361041762,283459546,370714881,406846093,107514907,708795860,2094445754,1530585808,1172803151,1576720867,274383172,1363291448,1820383539,1520049619,1508691821,1128607461,1652110274,1869092034,1327692959,1626111794,432946569,1368498171,1482845211,828052334,1250272320,1234258335,1920914530,1656235536,895007038,897216734,1179854296,1837226866,1634738367,630986454,568735038,186681283,1422582132,1022185070,1265809242,264438836,562988709,1155267330,1021954076,382452980,659240659,1088955054,800387829,1654178627,808570155,745583966,906520385,894136373,477364756,2114012836,1626949806,1375284277,1940204915,478198165,1058320918,2032157157,1620817748,692092136,378305434,1849127021,1926298691,1389208049,206792108,286205483,954133796,14097834,1402387422,252243227,1849259969,281947954,81013724,478751035,830913342,2130307223,1646033417,375841300,321341278,239585950,1790541634,698580179,1985852821,618049552,1852571221,2021111252,169513795,1478315953,1908436246,1402340572,195722603,123366006,1296801582,160810239,1544967263,1100618764,2022499386,161487209,1989429984,1022001325,2097329638,1785885650,791338606,1172269879,723134772,870394521,1067387328,1634064227,1430471690,1649024311,1535538783,1775243689,1605891309,130408504,1763394298,990641183,1660068894,1700306934,1730508011,1453208542,26571027,61270898,1796161196,1828654465,222206389,892041019,1145886594,444297789,1805361397,1244649547,1349472524,681626773,1721835839,1260501708,1411460895,1245131784,2059624257,368780412,1737609403,756210951,1674217545,227511315,710686269,623842203,202961059,636881191,1267313208,700193875,358785962,1357101501,81243,243933633,1247092175,1409586102,237124388,1342968753,892795907,279034282,1886806111,1544057594,1430368637,51155821,927986673,1106717987,1294183854,1227684292,795142185,74294299,207868205,1751024906,2060329756,1895991132,382237369,1847557812,709278417,1354820058,763299600,361854745,2121557762,826578044,219188294,1666312420,966694856,377658570,107718357,421980843,1620123185,558992853,1669379454,1190752102,452239902,2085131225,1831121761,1971527811,1504828338,213856771,1863167542,2120997147,1703526666,404413304,464510233,933850544,1224955227,564099022,357527723,2014548504,415424232,2112550282,1121099433,874899088,1045454992,1152943676,1338414891,770702363,4296678,1370778672,225090729,774030582,2013945261,1384552518,1776797679,728465834,872913668,916739902,2099769660,1624475181,1214319722,273411341,576815597,52482683,2059697515,2073694948,60546063,1088020654,2069725121,1533256900,1698484238,1055902557,1110523927,432720855,1554597526,900700378,2092847340,747334707,1335958884,1117218423,894150260,939296650,1197188309,159052162,1610617442,1597696408,1502404245,1696847954,1436329568,1600649659,213437929,1649970278,656117453,359633283,1983348773,798799332,891699950,757578959,1013582985,1476468463,1657323639,578026811,1486143702,260056855,1363329427,693141669,1367317512,1562266520,1899174337,1041809536,369931554,290454619,1154469930,633583745,1533692979,1279475531,1156728902,265682806,2013446639,1075272903,618460932,1365347586,2019313653,1413412199,2076198476,1387094786,1460689413,1735053685,2120901134,1813108785,142490164,649377724,1631646395,685150350,1081138360,1760092628,1760341006,2013563930,288589277,2011016865,1432285269,299610077,625014583,1492270287,254579689,232011276,1952088462,276926864,729190185,125150648,166748363,2041992826,876321524,1140359500,1088144493,2100452851,1129465142,375146431,1325172995,510439080,598607521,334263664,1766013762,145881598,1164288601,965348347,1075156738,1378489726,707014509,1353204456,664293952,1100091776,1363999443,414986537,1111735238,2092459063,1643735845,1775371766,534528390,1886911453,294890559,1755925986,215984768,135007726,629288391,247637607,2085011150,1142969215,955781195,827938253,1989649784,1975377013,614386331,1228635889,282628194,210165438,203339513,354962774,711491641,1020726236,2092036121,243018383,985663962,1121100770,2033718177,414034434,33707338,128118317,269551871,1366819054,682112625,899924010,1784670157,420597619,1576707609,1116530473,207656636,854224477,20230124,630427018,216335813,1736726766,928082933,1370561973,160221822,2112602384,1468210815,1507022420,1018283721,3237138,1922884896,1429360357,1904249676,448818068,31171348,635630613,15260786,191872708,1592673668,694558909,1057418244,372765230,2010397583,1098436407,2026847917,2128887380,624979503,1063001747,223872128,282009830,582562039,1734666620,728248343,1924635232,329254088,659328686,1217363642,1157502011,522571814,978506304,616934176,837562234,524655333,1968328082,2119860871,850030373,1612126750,1181366788,331407126,1462124398,554007609,612561443,1732399994,363975338,984996997,250438868,256125075,225878579,1772696896,99958690,1691054054,1203571000,326980760,902939442,417886618,1182977588,1055176164,250627283,1380633437,614584311,1802278821,1352400637,851383811,1530322700,1415572353,779347715,830452477,1803605491,916572721,1784313500,81965651,364010791,1909259562,530126798,189216816,780827209,704253987,106172248,1010786052,1671646661,1540512439,2009419440,1850128587,1075275251,1909544231,889632484,1599283089,984119157,820099451,1201542242,755298818,1595710326,1123603205,12475185,109046281,1962937434,1794136463,1505402836,347895022,1934116028,101117606,1933766328,1307181475,1172583630,2130178785,525650438,448565731,1405253686,418697673,318204188,592022653,2023162440,656442324,303735319,641875917,189466591,1456021867,1023176099,1127922702,153534849,1871869604,279100018,665657743,557642073,624331243,1462201442,1453019921,1830229546,1377887548,377153708,1302667729,436207096,846473613,1189815175,245944678,1882514064,1222156939,488557354,1870737664,2035713207,1143360832,1515842617,296864134,2038655408,1514308236,1846892655,908909219,1747152896,2099268361,1975881108,1321365822,1583224875,244517293,491431856,698853225,1973591921,282731968,697798947,881651929,492576106,1897227901,1533421502,137051595,500180464,739508511,498949067,926476561,1764916090,2054964000,282733064,583855747,1240191937,1624744644,1345275151,904680455,498511832,325901690,1721790960,1989421701,282980571,2052463416,554806718,1026999307,1097744471,983315112,818022010,1425342352,2084142833,2022071489,1317901202,470040671,923908227,1047575951,202638185,323614639,1166104951,1539234646,751556896,625791962,358849860,61885412,1501574929,140371628,1874065481,1295197691,346757020,223806669,1719056267,1144117680,615442728,1395275556,1423705560,2006148907,1700555639,1643616569,720658537,1425883921,790773934,1672431129,2071569803,926115035,1130542196,46658955,1015865858,2077307422,222893123,1378527717,597318308,1489847270,2042354974,242354416,828804752,538672439,719673458,1462343511,1291556702,78070345,1080360707,918229040,1343041604,107885410,76899483,1702078688,1311538711,1336187156,1335653532,897806779,320243585,507294907,36551135,1364115639,627922184,880406989,1108641328,1692748471,351912217,2123407578,1536092847,246165982,909885652,413715230,2045535886,254830599,1803845962,1661554573,1200558161,1510545038,34255989,144998365,2075097767,1903317253,1031124503,1796955044,780499174,1856207787,411801161,193025489,796105663,174420235,961697260,570553866,1180432771,242233453,963048644,1557511806,897663780,1084464355,595223712,1806120592,555573582,259775395,1775308945,94753244,1601176769,1582619336,898476551,1831474844,1842533775,1334826814,542527765,1562615025,357955570,763447850,2027129813,1512077378,236498100,1203292198,1476361606,2020942588,1832616871,1696235117,404584327,1417000393,523003907,3586246,118551213,2116488631,1453278339,1384173182,1261324700,2121282265,1741873122,1584998141,2094782601,850740620,410925165,423322427,1085613270,308383896,899156681,581072615,741525026,112213936,237338361,900109141,820254991,2010714269,964679068,950561973,1975401292,2034713803,868253611,488962443,362304869,810172699,2019731270,343800559,176162522,967089441,1944946917,1797323838,2051244178,610863065,1382598195,1818498546,1581901131,1115088083,1696533331,1820589247,227571214,423355558,362825939,133914997,1821156642,66546076,751975834,342755867,1113797471,1464761891,1302642242,1982389962,1492225145,1574296100,586373309,793883305,1795289924,133001185,89151573,274150213,1218768646,1361957822,937289934,1003532835,523431944,441306535,1757978900,1227330289,198597298,981578691,788602762,766666800,613103300,121792532,291978479,1214410685,505278327,358402876,1529475951,217073025,487429658,1354594052,199506543,553412439,1775011699,173299335,2022632646,794544526,1330765371,705334454,43888027,1135054175,1047786905,1571626752,2033671300,1032269883,1063695067,1122146100,1735652117,604092614,890092017,1528910261,505232829,742475483,1225784186,1600570472,1575182028,54774132,526268507,1912061115,1012550183,994950464,53124360,939054309,1453212526,1601316342,998187707,490002501,648503926,2057115161,1364592004,468801313,1607040544,2042306322,768093959,1380004224,1333656921,748435066,15203781,469466513,663136421,1164013178,590322225,1722627061,1934740102,1117573774,2069007990,1048512752,1651480552,591298347,1291725802,581770758,1503295,313753385,1162805025,1622584655,129937439,800405608,1154602930,807042497,2112658092,339860196,62785591,1617682684,1524425370,72558362,412212783,1986921246,1214995152,272039289,727579441,1699195536,1893418715,2025467412,1164978221,1174607824,1402998619,972818311,82402355,442207478,369428235,1700549000,891500553,541776071,1840510659,1459401327,324700467,304494101,279954174,304476007,1230724104,649852194,2080076840,2051098938,1114638929,1581580354,2014305574,1445484798,1922660818,1555511452,1345387472,494310423,1346673609,862669724,1101691753,78475808,669166381,604764506,907522890,1911347146,1753220487,1405472413,670353613,1533576249,566925126,621856551,2126292781,1052983804,285494615,1015632987,1014631732,1425574826,1092250530,792193469,175036148,1492336167,959917200,1721087817,2120034973,849335702,1891962950,1230138670,372105551,2122261640,875991125,416382326,1097036002,1548738267,2108227220,1821857467,912969504,2054090908,370258199,2033686531,1001926954,922712486,686791461,265373148,1856637997,921871539,1993512567,2054913043,2012317037,953870831,38288738,1266994786,709411347,1440696868,939758295,1262550538,1887868548,1971613552,919780777,846125610,1659390232,1194520601,1958663833,122757473,184733274,761288108,166299244,930592070,1070619100,1415696563,882266024,129844682,284022450,884335084,1315466182,479628663,675989874,42777799,161491421,530287188,1145700775,155593907,603323055,2006874859,595954766,1420018984,660405971,1953697959,814883973,177668921,139779918,1444935796,650085510,782866760,1097424923,1759114251,1138999089,1680370047,833900953,354405738,815118210,1607874590,422312550,557308097,2002586197,1771535401,899337470,988609660,301286140,595173763,818680227,291467594,1288906033,676121485,1377295621,632899301,194386198,1937712459,800387323,94703526,335681680,1985125336,475244278,1319939743,551703755,923260595,1873536197,792720971,1520398742,123683215,1056797267,1278463524,104440247,1889631384,917406051,1248155297,400576649,26397966,1497766204,1805440919,1134783092,245079204,191506656,1078800545,978432871,1482297518,1375044500,899897699,1896456494,696726027,395020687,749928165,790296437,1146381577,371049229,1300019473,849275169,1854386151,757226460,2104591444,1110725031,1475472687,456062486,586503608,1061179292,778287023,1572081591,1308171767,814254743,1233945241,31653640,835437738,1891196073,74237386,984109512,1538418178,855247609,651102336,1162399760,34117912,440443159,1375871649,1259725299,812115079,1395711418,1030590760,104880588,831297846,570738720,558451699,580695431,1627244399,1099293368,1553920378,95479470,1568668774,642026162,1220684772,133925049,1814411331,1373628137,1583037668,920740324,668040978,511944307,415070848,749605600,1686668270,503754648,762261432,451545085,1507370122,1711155950,381783352,1808880844,1728774189,2066553423,1411872904,147906194,1561768472,2033253358,1973785696,232104483,330838400,1223528276,1908387762,133172881,764697917,39093818,73060555,1640407300,632465139,2028352302,1390788200,1383929163,1437046207,1133238125,1611582934,1036269609,297394230,2078611281,2081499769,717941574,1221473700,993677016,713107130,127006822,8849381,536881958,186811989,1786845910,1593886954,607547664,559111393,1363905482,2107638742,1422114098,242364446,1442017534,1969803926,982488850,930809197,722573564,584243250,1918497462,16969837,1333050353,2123375804,41230390,1595474785,1268428246,502793803,1564410325,176227798,754727497,2117144743,717752579,590126399,1988571352,1920515607,1113633371,670879972,338998388,532824312,539388036,800668486,2042392975,219025991,1645178532,89821230,1587266758,361419769,1052145074,1453207515,1997848459,1239323268,224219603,542102850,232533726,1700464400,886294418,2108784797,2052819676,285173648,1634720474,1939290414,1372999484,291985944,378454272,1043638738,1878639026,2062065307,536514483,368819442,78833736,1144290945,1374644710,1720996224,1400461164,115851569,1617292099,1308154985,1627815865,646230682,1128799394,1162350444,1474228865,1658617515,1402622328,402234576,1513108466,541274184,2088603658,1210520197,420929592,1473521592,503374226,350438886,1658853962,1006229443,944520175,1462997512,1878885330,431063501,1767083437,1697000735,1790842471,606341813,1873122543,258239090,1807740811,1386275315,1955743837,1367562576,1693525690,1151254177,1874147727,1133933596,2113159011,21719396,1516012156,405318855,1903670509,1322001971,1143821950,583923069,1811694998,95483228,1682248818,567019446,1370644648,906518681,1955167267,969463869,1182596160,467607837,1218405458,1815534214,1392602658,849420399,29230843,342952542,1176063634,1582163695,396976960,1407528365,1961483934,1478790098,1857145152,31150358,1980742232,374360215,1083525316,2001837681,816988510,49979062,1659784899,1019674257,1210170608,217185003,2089614656,1833337749,764160013,919768888,568287354,1010706559,772631548,1502229727,1919214971,1568326345,313639297,1541760945,1859186433,1233211772,188884391,2105957895,1608594875,1528662839,795380471,1968236437,376816362,11342339,1268270512,1406790459,2039858921,1398388766,2123652505,1677914700,1984296055,444667905,894655824,848508733,399883566,814539695,1014106641,681340615,787333446,1525712528,351592653,549883351,15703408,1592728606,382252035,1532074016,1337313625,200472889,336079407,968182143,768516283,644016290,1966587114,839557528,1077405637,894514937,20619142,1204011841,2047920843,1495833149,1976471057,478364592,2076933182,1365014392,2022611387,380357594,673555063,1483288310,1104323406,31441669,590344893,1599815789,640904451,1233488538,1635406775,1469568962,699181898,1756480845,1048116537,844574869,866454925,502278821,1114024657,599383811,2378583,251272545,1399171084,1306412849,828554473,1898875227,83961453,666131824,1573867680,1242291986,1461441350,1651970535,1289709023,1400223776,1791015613,1072936867,884825692,1957907302,463446841,1523778762,608499103,1467141079,820700633,1266877771,1140979531,952113057,573301790,642410072,743241286,1083217345,988077870,767572360,1675087335,1999332453,1765926201,1683891040,355524821,1472771235,1874560662,13571514,1884652963,506924830,1128238039,407236496,1665861783,2036955757,1250777238,1089058700,1223149459,1788018150,1450431196,161110,1225971825,539980929,777129207,1494562047,689338941,1943591491,1379573322,189116839,494021914,180542282,693659201,833425432,29755565,16805250,1602202985,1916072468,1415540137,1337936341,1165237225,1530252359,271774554,1959521357,1551554468,1374089746,1448428631,1769868437,715469057,1073572965,1531916440,1712133968,1794772146,1513638253,1545351363,2014746873,237613601,336023940,22838635,785821493,74560345,942712466,1237815336,1097512458,1765170805,1671776850,448695576,1734844384,97582731,264420821,324185226,711166493,1070948873,874535490,1810177186,2075087384,1738012201,1688299858,83210880,882941550,228652075,795501056,681389395,1203550146,1033618421,717070860,1579315600,452236982,189743068,618767985,647864482,731948844,574530201,1279252713,620912786,1964635300,1521326776,1930201284,997003565,991114118,89055476,685175674,1937409405,1976830845,778682178,925735297,1134356914,1655042435,179286838,1865394262,1440558078,1328741354,572773612,657664762,1576271712,1623469344,1581903355,1458888251,1836705526,1524857419,2094084244,82220956,1977203504,542413502,1295824823,409857767,450683821,524500763,1068679678,366783815,1325342517,201473926,694398600,613038240,928134012,1241669496,4599948,1885638364,1276625659,280673139,1651794496,828493848,1725511016,1522928519,2125393674,343650543,1432389043,1814644211,860586070,213411034,1783350159,239988703,598908323,1668496924,741236250,679187894,1056948032,64401539,807131405,1029148892,1824685738,317310392,1776560805,462274814,601114513,1493343953,421316124,1316435966,283399229,1659795890,891430590,1309799634,1849660133,1945594868,400437890,249880039,1920351053,1062410400,1145528848,803108998,826783544,426680551,1866950571,2035302093,1761051529,1439076794,595893170,188662457,246240773,109872111,2005853487,1638708995,1108024619,1113512898,784829153,837196851,1787701811,267927673,26851683,1966077538,2069587944,2029776220,488416321,1145339354,1335015180,754431209,1716834716,997215043,535531074,295920384,1222905109,665013647,344971004,1362004218,409383793,2068345234,40477337,1113051180,952262449,1181100887,1386878820,970218207,1909952798,616480626,650191790,748953203,314404410,1710424330,1816227214,649956210,1679970427,1018665347,674834215,251732895,131535885,1074619486,1763846501,1199178833,1934811347,1794833435,525301878,2031734258,1785398642,2097132636,1136832877,1404449345,1805742939,904494812,2029156388,654279330,1458990005,1566679889,429344152,2066802706,1483687234,1982816915,1103365811,1830644135,798261466,2053172188,815723624,295185596,1161441024,1753819296,337090797,513425213,1651592606,1418860278,479070915,30367355,1497248106,63912138,297462932,1949337636,1935952166,1466019297,343589575,1137069462,1503803345,1217146873,1646700744,176334941,311006468,141456162,1818295712,233011171,84278453,824257388,38571896,1454767000,537322140,980516053,1922469958,378966119,911926465,529204629,80382753,902847022,1246370899,1638250703,167245267,1148104598,653349758,413515004,321875188,1057332215,881461103,1109907639,743405909,97305268,737845988,1853420345,760132477,1312395491,2116732034,420150520,1784811560,632747626,2077662593,1549075840,780564345,2090813883,1878946954,682339952,1687218588,312548571,392187120,184997386,1450073944,2040205906,2090368879,294740475,1861298332,254497403,263415782,2020086715,456394383,37124804,1934540471,684153670,1964392376,1763776563,105365172,2087181002,434771709,1150793209,597305013,460395052,765032385,1768287221,1453871685,1135050892,1567598899,2112845967,1666100343,1340913784,790032257,876853711,2041281028,745858375,1273134951,825668536,1334101278,1563936399,1527321258,346484518,877028261,437509274,203771222,2118240351,1913406389,1440743236,1150867797,1459076685,237980051,1419877855,1673225372,1492451738,1792319619,176569311,2104295024,654213233,320339136,1300406079,1110281638,122057610,33206270,11039262,324594580,812404070,11332218,2036330781,1508527250,1965895938,411495768,675275145,1538171933,939753026,842952836,290435481,1899005760,1003967896,637069347,126568101,1658352982,1923477910,1230866904,76750784,1285841632,1325209624,120968477,1465386378,221841022,1398651718,1372259432,379577354,1672750112,312336998,1804960828,897913426,1332212320,549393880,504851753,1364663683,1155374267,1489293685,1376604953,1235227129,1561239027,240132016,1793189443,848410095,579906901,1739401131,1529302886,2070733799,2086082011,726890101,1848582625,2069332917,1072055501,1770959772,777971125,1740146973,724739954,550472736,1678874968,1108692215,457577753,1331236,118271063,1277961001,1911393065,1959195985,1356271347,440535386,1382119136,816039685,1540986487,713048804,366885179,147071175,508167578,1886821920,1968961096,1511897442,1259023388,368872597,1382024515,1838377631,1496014687,1463726900,19000023,1789522458,2034423163,387227098,1732852227,1706993794,1831353245,1466949455,181686868,1662502287,929687169,397656872,647224487,1545541551,64050336,2093109627,480317507,261253748,162264968,503517826,407255902,1840986149,167616231,604302769,1343632949,816891164,1427717844,1763552344,712425341,2066660394,1687349740,381402721,892135843,45894211,979756314,1002106608,798444303,1503017820,1135063951,144214983,1837935443,1926548785,1766317897,864425951,1412776068,1257218995,1349118536,1385855128,1441883261,104432903,2053103461,521105046,1889467520,151025679,520434950,1891100910,523526106,1864461556,376052101,1479925553,1770845775,1027252290,105186869,1989095319,1909939354,607116591,1092669067,1544170436,1852809781,458642886,1216425710,1588245223,1849087454,1062874277,84390388,798681481,1406259406,675311809,1490363596,87936164,1697026539,78818723,2128306423,457577226,165609251,1547694164,1297703935,800023118,563993289,1813180781,253185257,1021404872,935118837,1619564328,2006264202,1568684200,178581860,1917242454,451941658,1065708959,799801250,1586768357,2014501835,680113270,1546201716,2085085248,540493611,142617038,1455553357,1691468343,363716312,922922411,1525474260,1887619973,1824684629,981282274,1464983610,429375686,1832887878,1365070714,197014332,1412774317,1015256692,1902059232,1075242225,761097626,1865556531,840877016,2124511718,320845404,1151418390,1961798889,1594698470,213013313,1780072350,30783525,963986030,567883154,989489958,228628361,429342475,1049530452,2068394093,894625823,1240033775,1402695921,743713195,1094991517,258410972,1983446103,1657988705,294717082,18045129,2050416065,1838202798,581726682,1950802413,1601561504,627525451,367156804,648835689,91313445,493224726,1369572978,1881795491,1170113584,1402711758,1334964423,31817118,1317882823,1599226744,1584897543,1848605889,479624979,1824377037,1633266168,1758084757,128155226,1720291390,1426171711,2066737925,1706423153,1186816829,642701687,1972183715,425414886,1101300077,1654910151,371536540,867576554,2116820492,397551933,1891926887,1814182172,749758972,1089415812,205252662,1180884053,1395517164,967258423,587523200,1394014499,807614810,1272069863,743710236,7632794,272013274,66277682,2063656770,1883765378,1574850362,537169686,75837792,995273922,1073245340,196676171,1058954382,243943321,1125821480,1354391504,185752859,1666838245,330914667,1056089930,1049027417,1060811380,381124521,1794176239,1547317951,1113491154,1686875208,311598698,270388301,889096234,105513148,1962755408,1866096042,813490293,1776102424,848423164,1470334093,1740936344,1934263919,223851958,2020350641,25950369,1368681950,620838722,653457331,1815220833,34686888,1939956358,525502134,684968259,468259072,1285902637,551771519,1179710627,450821677,1202731403,1766902324,1751038792,783730890,1569945873,2036699728,1394380803,2076044986,1098280784,224037686,1300174042,612214647,1673491216,678177762,314188019,1946038270,540280170,427101990,1341929762,511424126,1600028806,1214741290,1001901654,614251781,414877471,1348998570,130388029,174444512,45168532,1722226412,422930506,87903864,2104306522,1367036724,552528176,762333354,1948160104,1457817499,1032385812,174021372,414914547,2109407210,512448465,830025852,711226800,1533887742,1358184011,1490665321,2003842990,1923940375,2045825320,64352013,1828260838,466524063,117173653,1227563198,1327845193,104883380,1197996752,1479990580,1039182449,389359751,1230219983,1835530299,312467169,1945759068,1924938830,1005873204,400280902,1037683232,1201085662,1498622357,136274312,462680158,1061466498,1720917950,1111874186,13745166,617555360,1308153848,741135519,960549862,327728027,1154744919,1523634699,1998465415,948418188,759766556,1551705191,1788580035,1587344985,1694346376,936339101,1487587345,1401537004,251699361,1623407546,1195751818,92025698,1579504940,884108704,905453485,850628093,1776911898,1273492942,1696146255,979338252,348992079,1935975841,144095702,1563067125,194526131,1040213118,1759643497,809111690,170576382,1783806064,1356097549,35723265,1231217679,1624996174,2047564395,288859126,1313865871,1818481904,813879086,1535335530,555326013,433514962,1434539326,2107081527,1778799629,1112713054,791420039,355678834,2129804952,427113753,1024909181,864550861,1035185223,1623002527,27682108,1866634194,1548100761,398864089,1517057135,435922760,625999471,434843045,1655450322,1216024253,172616366,2079552248,2115713594,1493781603,512266321,483480593,2093035922,1721901388,1956921602,1284859137,588653469,1505965366,600530113,32010186,150341234,847546182,1797210384,1290115734,1326299558,1209385994,1784390457,1195703882,1958031338,1602847602,47848026,1096069494,1265944537,1973258139,1568125501,577644322,288944158,325605326,601048657,1723843153,883895774,1005852279,22285093,603861268,1136470078,36132587,44454042,2085260857,617175904,207794853,1613323358,16808839,882874670,1210406371,290687464,610287889,699646084,1240836411,408479974,333036138,355285697,1353995920,1670432139,1099717175,871661125,1476541758,1404629994,2002274088,1801227650,943605472,1291097723,277987231,129152785,985158956,2128249503,502339156,550903139,1064750,1872934576,90192115,1218286137,1136479667,942763918,45956867,856443133,1198869725,2047200069,656963893,673566285,1378307186,1916863113,744129025,527447544,184263752,474240875,524830516,618673090,1107984168,581191174,88400232,902899086,1878041666,427584014,1133113677,1844072060,18717775,2099507366,1798952016,991623587,2016023160,732726727,1367266000,316454283,869607556,2024957835,1196520670,955363901,746045550,812370819,1880095234,1718320405,1269598542,1602989599,739431200,1006887383,1678789916,946109910,1819644603,941108174,634051250,1910259840,64450807,1347484514,52735865,1209177007,1914113212,1680357427,670484569,634509914,1347224065,1441015449,1130056165,838464310,1152612680,20241309,1191933186,819218828,246472757,532211331,185478179,2116951557,704407045,18892934,431893482,34189368,229691538,1471134752,6194656,235908236,812473771,1574985238,1444375394,1545761630,1763363090,1738561302,539062197,1404326105,884481536,1419503623,992651724,1294291389,471147943,2062157333,108010461,505374852,1723309258,411321151,1519433949,1606149799,464878665,375355267,1456701249,817821707,1371905118,1588612019,829734775,1140055160,1951803924,1065779814,982695094,571990652,731950948,1005947077,1437154325,1786600697,1753074993,145152511,639117330,1845640735,469388265,293870268,1435729785,1383219749,1245834585,2090064273,728993499,1619913477,1945206520,611974828,594194683,1327355206,846304610,1423327175,2099230339,118876686,100216682,1541468900,827474193,820482691,777431854,701858079,360382736,923639710,194752784,26396190,168487457,1193833780,40375163,1276843957,248631970,1101796981,538930529,202973270,1341922349,1081558118,368352269,1589841530,598045747,841108787,789846251,1786466297,924935798,1007151468,1469080897,1777723296,1560970585,275926547,1345437397,1555185454,397357693,311261340,110113790,797832675,1188046403,1971960790,69634386,1827401342,475858559,1708047761,10032674,2018366474,1322967678,1171574439,1905688671,1153923570,1998595526,1778984528,1226430067,250988461,1195329761,892612203,1037616940,2028194132,1216636388,873148217,115953736,578605217,1446256576,844259047,591024036,573246209,1270174797,550246530,861698736,1848863755,1055299929,682493814,591617000,901629385,2124994989,134865090,207663942,2013603477,1911992311,132657189,1697040580,1741767219,831544169,26768539,291826622,332593546,227369627,398085069,1257092344,1658363806,1435456231,662480474,752426185,297666742,1428915909,424566307,592879244,722141476,510831086,1283135577,1187271423,1377193024,773904151,1588323169,1552030077,1331142469,1854217794,2037218151,1987916126,291577791,1056792353,222425783,1496903633,193536169,184053371,1619126118,1859048865,34757170,998706578,1024399211,1637408912,447637036,975792779,659275722,848783835,1118502477,1308942767,1663244845,451722434,376254063,1464919117,2067030218,158762236,1792111003,921560009,2017341370,2019209971,514500601,1175570748,1029158688,244099310,621385589,1926050985,1393594615,25767140,60040858,223691077,813399271,1813008498,1187250871,1383991757,1177337865,597738131,693181804,1619386346,1072393318,38852681,281779960,26810338,1916092699,814516618,1243372076,169395652,1887855891,1439118986,20761473,844964138,1440489903,2044883504,1235618306,775454641,2088254884,1159095692,1609343727,337510831,128188115,2057566089,1666542517,331224991,1267305420,122617013,355403838,667127613,1230593918,2031625148,552459023,1197048714,1579712662,21697319,927697512,1176575562,977061126,429418628,688831431,363400048,1126677327,1541790751,2098674849,2009805326,660872234,1217571473,782061439,564377614,247686943,1076157091,1985167718,1728468753,320007511,853707303,1757645426,1835910855,304370483,83467375,820989974,30365648,1873794072,1405043902,1490087321,1333752828,1244270930,1187125750,160707370,763004225,585491626,1205371560,1838151412,752101502,993006946,1106922544,755406652,648265253,919643387,1190102950,556623641,1912433101,18144100,75311527,754090786,1475954146,180952465,244581948,908437212,1900570830,739052987,1536392599,1301792800,532166181,131939339,1689655190,999285096,154559746,1239377879,1609207577,1922087294,1641010957,2068304345,1450441256,1777316117,227074148,647451252,704018107,1143263998,747796365,1452268307,648325234,1617005313,504267046,1506579399,1488090270,1288071003,12054375,217578709,237522361,1480530379,569591875,2010084034,460167807,1897076273,436242070,329840844,966038518,534381865,266319923,53688014,1672028341,486885546,867434185,1706689434,144312747,1296974155,1845150614,770019207,1554054897,194374787,500262365,1597494540,245281921,1471150648,1832898316,1000020697,625540864,998240416,1296823986,552300698,1966624902,1975280231,1469979623,280069568,1654857901,1288805111,862515530,191403822,546680111,1282140161,1604371842,586276148,1808173815,637858946,985209422,2095698913,473687506,1596161785,2046171722,146170123,1652791331,18696049,1832952133,1594476133,557827090,486237422,1492694007,1177337137,1100553698,1383665827,1563988133,626957833,2066090130,1143342627,1210515843,408124139,390758792,1973336518,1641749879,127807444,1355015423,2103107028,1723637685,1555041773,205775973,1926243970,1675837474,379158350,1170931601,372119461,1130408234,708393951,1963822752,231961081,2125887699,104109931,1274693039,949652308,1087232212,708322747,43230633,1724783635,926053543,943473762,1785272876,1821671874,664552600,1856586636,1483572128,1628434634,2062253056,1632516712,959442462,2127317506,179804312,521673396,2079435585,1961394273,537669324,1869560971,1660503768,612321362,214620936,6331029,1178024535,103810560,365609972,25392161,1565884990,357202287,345362935,1120024002,864693242,157021603,1061161049,1998505588,1784948972,1441667617,1025120182,849312113,432027237,1019457563,442327290,927623772,2130537816,1760823986,236720412,1105227743,411845000,714538023,3219816,813376720,1238499110,564939855,1019701579,1327266426,62920494,1485019876,1522941123,1104099143,1964920602,1191973846,1157469808,1037062831,1659510738,336841650,693896500,811948661,1710109306,641225157,767206954,952455433,1573971604,1400637962,1101734874,1988828880,1804586285,94130017,1376439435,162722377,582632763,1587409253,525169437,1174912520,2098177713,806854242,1566131363,485969958,1736793644,662419430,690564859,1605601926,1557725984,2090562470,1883134411,1984374009,1589724822,1108532022,61207879,519539599,1819988862,844662871,1195563146,1817683773,659428330,338597486,220501360,1361777615,258109678,539175534,1621420606,1697434306,864695008,1564907399,445017095,2091614065,1826337604,654920812,1291371782,1178989880,1968994526,100586384,1587511101,1637912463,1838516367,689025453,1231975418,1997033442,843564521,1222113627,1374718813,117272443,41668179,1386331545,333087056,526867120,1478740478,1463728258,722134391,765937651,643253370,1497520414,719675813,1850311268,1340398913,653322468,792776529,1312663230,1893662348,1751978790,1992916761,1438196431,740507712,55560475,432935875,1654211210,1495993354,1105717146,838396036,505668921,1108886883,853319019,1868425848,1370165271,2111032401,1993616945,1657138154,1303113755,700670064,1346196901,1303181182,808021097,364514441,1378430406,1460336326,482780322,603502325,327982440,1796610883,1137319597,1985957714,1928011873,1894466400,1109210731,691807071,556607558,873957400,871724676,550422843,888097290,770545620,1871705258,1765649789,1945044838,563396908,558593322,1080620859,853585630,2027467626,1777701622,1919614352,1696721406,1905606563,1825007821,1632363705,2092572106,1590535561,1506271310,1957634941,840545495,1343751877,1365074616,1561904598,19345435,1113371142,2045357762,572713293,1854051666,1034323578,233766419,1238880257,2025376683,1535985667,309250393,1776987120,1982433075,584632530,1235554221,2033042811,649591473,1569881591,1764314229,98619018,1537000403,1965727631,1179840058,527306675,1932021557,2088560601,1899910161,1612591345,1530445687,1434630893,109573269,1216777023,1588243131,476315410,276374588,577368459,1050493304,1795868114,268883953,1411615110,2125838104,244981979,1203096260,1222661869,2001035766,678322112,1298502905,1080775874,508717266,632927671,1187846313,1175107469,20276274,585514442,1459034083,306353619,615185652,499874963,211169277,1848032362,1155150736,239866641,687123028,731215621,2103018817,1486258872,1695641219,1421062731,354160499,839099024,1712593403,1158295656,1232101789,1807091427,1573809876,736182289,1473716183,218147739,1218904300,1948810163,325974294,1297539058,1099029552,185277349,574792205,1550627232,1764110603,436482600,1304661191,1173322572,1531809518,38015159,2075717876,1288634300,1847987337,327356233,1367377846,1262956177,213680814,1997623330,905151676,2115189432,1265025901,1212241643,1264845975,1655982332,303445050,1019255677,1665831541,1642730743,1264302963,1598377318,463628974,732387423,1060613159,1269113744,740817849,781918487,858462627,1159430238,1605752256,1308192054,1940004408,1730091532,1128720952,1334333847,494836642,1935686797,178608774,38992630,1489089921,1936774107,501437577,1777459948,1066965324,1451848769,1236959885,1891076912,1710000522,1126872940,1147256717,1432763813,993089048,537484625,282738084,1005756537,1537809126,203964232,461674336,1274946934,1777222652,1329720653,132943243,914692379,709498375,838805441,1531615360,585889668,1412324990,2082474294,909159182,136236793,726593502,361558089,1947064226,1759913203,1009349400,1526935619,1820536014,1090552163,1997923544,2036573682,1635909098,1440624742,663263181,1819771543,689666246,627391724,432957304,1050376763,345767166,1522327200,1964776774,669251534,1825040322,267107227,1301477347,1865961796,547502205,1793819893,1005794958,860645339,638508801,198262089,1344613243,1097057324,1121064113,249041001,271301564,1724377658,1444353338,1049164698,1346865215,865333326,1580957540,798911431,747495951,1752099225,248462440,1185314680,918880304,1351805412,2078555437,1693612947,1074607582,42338802,995251080,1047824491,797322404,1808409824,782645949,1906394002,198080781,2102864208,66371154,1655393191,1578687134,1350041957,330433789,906067859,591072924,1980269673,1822185155,1147036363,1135809099,444780515,825898536,2043094210,549949195,32057982,788436982,50765008,808198925,387238491,1594634745,142106618,162631147,1148099956,796020288,572785829,245198318,1553432764,346666659,1238051855,1390617601,794759825,703020428,2038694023,1696981027,592864033,103931879,29365182,776939671,372618093,2022969114,1820818161,480357193,1149661035,1736594487,1081712231,44041087,1929555082,1250653946,1952659174,1969508096,419093142,389335491,390307313,128306336,656791020,1341615174,1236557121,1388525019,1565749843,1696416117,1937340324,1770404307,231786669,1161427482,160859846,2065276007,554519796,1037736822,450087977,932446458,83188225,419739550,403581400,1148313632,1098966843,1383601860,1791793644,748182565,2008605837,310647761,1608445234,1330599177,336813845,528132243,1777142107,1185180284,1727450827,1010322404,1894923903,755997852,906126167,429874831,171868946,510690089,548508268,1287489820,920314923,1745427660,1506115635,1604914155,1028215024,1124864612,1924289088,686008081,1473293114,705739014,1119072725,556772647,785004424,1323689826,1321963004,570691104,906424475,439723182,417792915,1855855257,644711326,794286723,103508500,828189093,1056334452,543912873,1709358699,1922576277,550391756,422732667,1206258812,1349834880,1286200392,1381494899,1338998942,2062304679,1200128920,120463286,2104395177,123960407,1629095474,1475901091,1440217296,646097680,701627884,1838688962,1796881192,408330028,1951584414,913550315,186402008,845810855,1163835172,921266814,977220236,1933396146,1429999582,490730583,1241259124,1012365608,1210409764,742763414,369057384,177786133,193285424,1063005090,1037957643,2079629220,1727650439,1855173401,871332436,646287394,1561849963,1728164227,759375545,609491399,2128906572,1355727719,1569758022,125266456,1589798137,1639809998,725353210,2111466241,1230859341,1567053143,1618769492,1686110711,1763996470,922765800,438685452,1575477318,655873160,651717127,1087839590,1363030896,1997202766,1588955165,1184024768,1147902142,1349671161,372772254,1968754458,1223898415,318121063,623069089,2122841219,1306468460,2043173590,1552245268,1515147184,248743602,840835699,1957165664,1635741765,1372566547,925741601,1214363663,1610216870,784591153,1591572290,360541014,843311847,863762462,2037743322,1901738656,61216576,1279229812,458936846,299936721,266424890,746726399,545459660,1512069519,710525525,844354517,888884851,1228544705,391545445,427826320,1137021301,40420251,2056139507,51121901,387906131,294779113,638216088,835102099,1034254947,1009371669,2098382606,546421732,1274234226,1424536884,1052584254,1873653128,581336211,1680370909,1032152475,1692648473,203005998,241174420,812577337,65520731,539753620,1553030966,1268898187,1941476204,826082819,587548228,1835710752,1461101706,1631192509,1159081079,141232922,1017806960,314587695,198159874,2064925030,1293599551,1852843765,1207922148,120441955,894228027,1169398253,650802601,1885400678,1645169229,1249087405,528087346,1548836040,1861273897,106108255,1757302074,183147859,616503985,714722013,1479247521,1241436427,679010954,28877410,1800772889,919150009,1875687113,341490480,1087338917,1879235987,381723230,1317194567,1144866153,448257449,1125519837,1905664920,763106179,381452712,1429757472,60607992,1755220452,755186428,267937849,1604441411,1825787071,1954661493,215159159,2125912450,246144393,1639665583,54575114,471218261,1742302908,1636997835,699374686,809256346,1318722770,1957789536,1162994537,1009562167,1266668937,1720585407,1924500795,1689274982,431113819,337968893,212909351,778695926,186330012,930963587,657855431,1721485918,2007453658,775273034,701540353,603204711,1816896560,383072064,868327568,2103949136,679724262,1307383744,249154764,567046004,208120608,2093746124,1108539358,1865539708,1091822628,919029454,18760043,32261562,957696513,176596195,1399853872,1368188434,2122143994,407751771,841780743,1437546481,1783032665,669119658,42584684,212377751,1072385949,941510491,1165664596,1528181495,583169653,2009605627,216807676,1363086862,1591853243,1215199939,1361934394,70463701,500864772,304305934,443237774,1025305253,559785313,747909424,1020668017,2111795237,92732684,852539051,842096913,172925444,1514372810,229649779,848673908,977323444,815551265,220552833,1419559519,173128423,649517497,772447689,421454050,671653494,1755446796,1668712433,1430536456,142045177,2007785293,1346112298,2127479043,881086230,836196136,2084769950,2102033224,1283987589,2081562858,136189278,1214813909,1063792058,1583535408,670730522,1988717298,1151375690,1728008865,548692859,334059953,1237674180,1453025301,616380167,37624651,889355054,443759184,744137592,1633556436,936709531,291639570,320358693,1437498630,741427164,499896897,714630688,1540854712,923310585,2005661530,197671190,254705943,2071849640,60537286,1872231051,827091145,1270037952,1023859848,629228621,123830008,1452986357,1658024532,665841744,887149660,1043952402,1318280700,740473050,1754645481,137767008,1158444876,1445614576,1158440713,1683357483,1570777473,628668789,1728156112,1812665587,238397997,1863922618,830628533,392697114,1156492815,973316481,1242825528,286412938,1391079231,107101823,1400680634,673592610,1019595320,2102179523,1363877197,1914255204,1369163420,2076694060,1956273889,1053415831,435340692,1664746512,754269319,2050975974,846849291,1697030114,104463500,1723175680,1012795211,1600108743,659439757,414865244,492624152,1436050014,121911883,1085575498,970453652,1213143091,21900302,1995807913,1824999374,917847449,214245536,2097267857,1017717842,2046364158,713479748,1918923392,1527716324,1706501687,2069876610,1439404465,545245675,397294381,1727259610,1486905956,449345414,1238706223,1059202113,215460743,614213530,237497343,52828452,414216117,2005562279,1801849627,935374064,584689339,1691265734,606600330,1957363979,1056578022,578530183,837239661,944353674,2026244126,1670903642,856343987,743576918,1751859355,322891267,2016030461,844532593,1681517605,825518639,506981429,130262523,429442274,784180366,1810463513,1660998384,2016974150,2027433541,524505865,1962759460,1659129466,24666691,1095758500,555927061,1964125432,1412361725,664093442,622235802,615996524,666341094,275105358,389851232,1947701286,868245922,1682420073,1161131568,1140353865,1350838600,59785963,814762959,235172160,1650468325,721443425,1988459091,1935432066,1417513315,987491274,1076419947,261507695,1696513197,273486602,1880724602,598369347,24732843,1571628477,39180192,293913988,1209677588,1674151845,735844413,570441837,2012023015,389023143,1295808974,1204764,547444015,404038291,1670438967,1486468788,579940904,1061335726,122507096,1607019296,767704079,1890748139,1761255730,1130528555,834754318,1929857050,402736024,613752511,1465406745,2039340023,2125439332,1084449656,404679491,1283519145,678954005,56357174,1942391628,653238279,514217901,1316079282,1112189929,1982323361,120836448,649565339,2054723721,1140052085,852333341,27509687,1149840186,1339579752,208635408,1134212710,407452043,1136931660,702370256,63134641,1827119307,1918695006,550466027,1488601063,2078853396,1382484330,612664729,907510506,114220227,1606566658,908139119,585943813,884551390,2127922334,486855284,1294740616,645524657,1087603522,1358733694,742361074,1565970046,1037590575,181962415,951507879,105177544,198806697,1492951174,1161859078,1316801095,1393217826,405748941,1425052683,1022293862,2117213553,1938999613,867093825,563984934,867051524,373562491,268550592,189367949,1666065097,1754070721,761139666,1421239380,1446377757,2049664781,2061467410,1307224958,1594295933,1385447444,1895158168,1488479337,919225847,185614986,1349428902,2041612081,7079114,1301479901,1065379653,605084020,291039790,803600690,360093686,171598315,736873537,1985563009,779407579,585598014,258732518,949002942,668152631,758495302,162772369,1754904401,45014378,1168806856,892962006,315591423,487083296,1213917756,149092506,391868994,1748097156,149806105,183046247,1073686637,1794645333,659794475,1700520814,2045745352,690683129,1998792548,1993448470,2124068528,1206166903,1127081997,1536196605,1067548730,260680367,1594826041,161528206,1277397056,1941214338,1130178796,1674380425,2035275790,2033894149,1160114967,638080183,1400166476,1120718424,1790714956,1071394105,1592225413,1428480937,1919760313,83940748,1909638198,1873066360,226166924,2115599359,275239218,1879228818,1733413586,1524528078,1262425053,1587689533,1139890456,1756325762,1489373563,149179632,1379875793,627341514,1014422214,309109779,1907183387,2000057124,1083516745,273104453,202195961,47136588,1191411251,1928126057,2124809573,237549679,504233197,720175913,1744587132,1901151136,1243506761,746596426,451135070,1672501038,2102601581,408772858,1430787241,139405102,2043181887,1302731311,774370560,923941954,1557517743,616156989,176906542,1723823907,692450121,1639351594,968072297,1658973095,1807381246,1070490411,1171751586,627334357,2069072165,525088256,1133853495,855132970,2093453550,1108068257,476475054,1808187381,1811557777,2104434146,1245129278,587543128,1958704280,1640099353,1362027046,1876857391,1977819172,477543728,969716340,417894219,1965544993,586751026,1557269107,669353626,1981129903,1838983205,1103970945,433660483,858378123,213288794,1369615458,701059820,1448735503,261154127,1075421502,704384738,1745435550,128849814,493950479,1996771220,68073993,1159241749,1587012459,497908532,1710263380,633985143,725652576,963190246,1326391904,450862186,1123949025,1117360781,287859863,601755676,1533337170,239092032,747097300,902020132,1478286592,1548646,1867037752,786188684,679399182,1841610333,1271360018,413004868,1145456496,881970531,2082024712,1920240764,1335063791,1719520940,949213432,1240876253,2057564094,1229481033,1378321688,1364025867,1925083252,231628031,1286937506,2014152146,492283290,1219027122,280161852,1652529955,504426485,291867018,2014391159,47713781,773489412,74113000,1169350883,559345599,312069205,1931144257,276060495,248881807,572234064,276648030,1642200036,837524210,1480608759,1046254945,1416672387,1678543520,1783968108,1999718428,1323428272,1324144106,573358677,1711421323,379138567,1422174508,648645418,207023122,615638317,1062841497,2060282522,1904035253,1754731285,1428547700,1834631042,1770935851,632736441,221685548,700826431,195941704,800534176,1452124385,1635445224,2089108324,186256746,2051383810,665335667,136159962,2121196545,112295533,705461457,1166367998,1793085207,1178767847,1205349431,1275289557,1652557260,290488644,1061584476,1756708826,750550613,1884577302,1863013932,1678148313,816630438,1945377235,1596796495,449997273,907808025,1847987910,2092790891,1208479093,1155153924,1773844791,1732020302,572892909,924429882,722438809,974683154,1688696779,1790709664,1589198054,1902176915,655407409,1144404807,1799819345,445136133,372482272,443914186,496026750,1023307604,2068920258,1264033856,1411060394,870552180,1111786229,2119613344,655963300,2048843410,355474735,1846377950,1579439063,877042754,1878788388,1108128302,1904217537,772454449,1614298064,515826723,1245526388,115266368,1136083874,102472739,1175399006,2066374149,344620375,374896767,1668076292,678996928,1331231862,1847616733,278742600,1261651083,16073838,1866554032,1263695838,1031002237,1396228830,1249887460,1154918241,1288567068,908629307,1644475669,366274944,160033303,936189820,1118159602,374844375,1914022979,1120221599,542595343,607853537,1350858168,1952434605,1969516812,641562807,399257145,1141152276,753576619,170509064,309646205,619870240,107642934,1467463306,1170739951,337345752,1317149467,1924973871,511462438,856026890,1647065462,2126418904,575201107,806272577,1801647293,740288548,866603729,519478076,1875396483,936775322,1114434735,978064955,1063890501,260447039,392991335,881366085,1014350811,833338218,1701841801,845297585,1377810070,1812052364,305150014,1175036936,1541117352,1858023068,671468755,1952529577,606359572,1429126275,286875550,427948849,1104741698,855769891,1047249707,215273024,2010482443,1249316844,429092349,729265656,627651397,537729349,1460728813,1640303172,1490320000,580540974,982814279,1401486545,844668849,938562512,470858303,1677178390,480412339,963743192,884205867,786133754,594543592,1511552436,966592611,1339300697,1806285145,1185166247,625981020,827426517,881110344,838584323,1947369309,1731680835,1470276759,1761145794,1164226731,604043971,339976314,17168701,1640990136,1597286937,394533006,1123877887,1350711636,1884439697,303440743,1225156,242965304,696189120,1322626532,597861469,524906442,83918577,428830192,1340387116,255085726,1662293811,646661743,2092535943,530969840,2012906643,217386088,1721302118,924581469,45059803,102756366,366606330,2071430985,1674147957,260372293,282031196,125473586,923653254,867169999,1917708969,1894551179,411560517,2009003627,1486179138,1437021291,1618884921,1040492299,249791735,1569392177,1081637349,131768285,1595718228,1677959500,681390187,1794384010,2119105787,1891118174,40060531,2098802300,2063742825,1155726981,1882028154,1464869331,1074540160,462508264,2123105893,578983575,282168887,71053434,1663328700,582552851,249168995,623016764,976903351,773229623,91859021,1895470153,3142792,1168268788,1753135571,328372549,1691206293,1058471979,980905902,1357834664,968417128,1730390232,926416498,219293487,487926073,354744758,1708917663,694352809,1321487407,548674343,638880113,530428757,111773137,1300679578,1001157705,1388313865,1052696605,450093305,1794173133,323471467,1276764363,724450907,1412292966,37156345,423063848,1664298247,476277557,1041750228,2057195900,1224606573,823683646,999059114,18603497,868238456,594203021,422218727,966060977,954290786,1045088820,1916012,2031833117,1851615289,343011156,312959582,344128592,391713668,263635704,598432053,717942430,1471804868,1518082384,933680712,1505779310,1531325317,388547461,1949392502,773959885,805656225,1269804633,942588904,175346037,892676687,1016544806,1691985365,1865755613,173705227,1536259065,228822207,1829260404,1017567042,808560443,1421782754,1115388002,818015022,2030451919,580885791,1585579045,969136700,1515119263,786992565,2098549516,489027613,431883841,1785081433,1510769984,588324664,150324205,1762692885,1227847002,1372496113,679431621,1897782278,226319705,1995745904,1713281967,1116968647,1262706836,1100607387,250683093,907776902,1620179184,426657159,1998474386,1538335478,1949632973,1360755128,92927218,250265527,462270352,244743768,877765620,1607483270,134445877,1568924961,1198347874,605136545,974752565,245042521,1863524826,931082072,291734089,147272591,826275460,432325487,661717564,1517191016,937559748,925458013,925805890,1032137297,1500184710,1992775670,755410387,850574386,1494260451,2078579865,962158389,313807813,218780965,344946547,2062586464,285651784,1103087114,43186276,1209161378,854264615,740871407,130697175,842488349,1651486096,1651516666,182295112,993059844,867446650,1747237979,253653587,976609693,820402767,1709396109,1976190355,1710340291,157450228,438347268,405885816,202461900,405576006,46812266,1172186701,31366575,1807089259,560979047,1192944140,21051863,1735182429,815172455,1401075177,1910028694,1780908965,367063868,1001921895,202515043,51938692,1338126360,815220001,584990290,1076461866,841652834,325160997,541590348,733464612,58764246,339954791,800787173,1309615519,1467817200,248925117,337950502,421259888,185330563,296468204,900551411,2015886016,1319160273,243692147,1811754535,1468985341,374893353,487819968,136534094,1500141766,455618286,733131155,631657286,48674686,2057460966,1532287652,68792711,1781910223,2014754328,1196716520,1155301503,1320144049,2108060852,234758893,1756713451,301357038,1496422231,2125935173,946697451,563949722,250309071,1830251477,691520464,1145957513,232438460,1622238400,6268962,686331745,1674463248,636199365,1612978897,1915579348,350026328,1984328525,704506052,1481601224,493998052,2091718345,686613829,2062364685,2089950623,1005087346,240365126,1995461165,667561833,675887151,248994055,1649918320,1188182536,963530876,1316376720,219067303,1525315874,1891642751,7732964,205320462,698918642,565845511,170552419,227166387,393929875,1145205820,520082120,1252790991,1707339254,1045201024,1396995504,1699877685,2026003337,1719228696,1776393425,1279597286,2066166064,1154026102,1363687466,1356194549,43852833,1219717578,1192634621,1026587077,2122635597,62918515,2007763710,1272575994,81513611,22381517,709826400,1733506248,1078432265,85141737,580010179,90476641,861430744,1347138063,368107924,1496970335,537585229,1282660701,1503408181,1407390697,422826900,1578154152,1786248578,146544351,2024966207,591062757,321265556,2110874190,1345891992,1985894779,147300295,508377931,967669767,1003422658,2042029303,1584899006,1689000872,617843380,1174287330,744799598,234781313,1517541401,948585128,1511912910,803939571,1605408691,701764073,1572133810,2107257508,2001573936,1650683891,97216242,236207070,487511074,1932406931,1007567243,163930400,1119469732,725139251,852754894,555863016,1653738994,2123294013,943001245,614204572,1918608218,1502434530,1319863783,1205294016,2001890559,412419018,719567953,314908389,924083989,426242397,1525622684,158874927,387310617,618752332,1620706036,10082706,899790194,1110557021,153696898,1884291001,1736596448,1863354573,2084019785,300039851,970159074,424985401,937595309,761155643,191737193,442614241,694971997,1995973769,1050182295,1563028962,2128552055,912197714,2066974678,378294875,339754576,1361854755,1223019139,577287068,366689695,1558143043,724350732,1514081562,1924641325,1977703056,332085463,591379072,750359955,996182066,1290215420,765099421,497304258,1112137754,640102769,1640103813,998658627,1691515490,1073714585,512387046,266556660,223593007,1280042716,1455969122,1707928338,814843540,674028310,1158646253,498221058,2118316785,646765303,1872383592,1615234206,1138468054,1038927277,1507188628,1010690522,1650703349,245171143,704759557,1025155426,1815044171,716247980,548944417,895748646,1817854983,794491851,184263313,597372117,93228446,1732659188,996633635,728405822,2092624637,806408295,1060886512,1971592579,196535346,614290073,1605087369,522796530,34382515,1244211994,1548537026,1993984040,1136829051,1405759860,1280938690,366871379,1301130553,1737947873,1606108480,1292827402,288032440,1011919455,962925694,989322869,1538604879,1466248722,1742160919,1437129251,1328094285,1458629788,1309468590,555860218,1516401419,449281436,401750613,432157774,993881892,808771946,683353192,1684271374,1294590661,1193210452,914398567,880431765,2069115294,791701076,87531966,27231475,1206759133,481845404,815360432,1014562366,1459060905,680720270,1622706002,1830375890,1754097470,1696806950,2062997427,1811999424,775213643,1582105988,265475106,279512706,934288439,1256853850,597000082,596272438,351872937,855544332,1012071469,997403344,53627697,1939567445,1087168308,1958977612,1070335751,1690895913,257066380,1531682583,460403540,1364736822,1968703549,295117351,501470330,1804546608,44970599,529595230,1967149028,1604808287,1215755695,1586115436,1304797329,559650168,2024573113,866253319,2018503127,432354282,1310524964,1769126085,1050341932,213394109,1553375290,1446351686,2048379336,799554392,14429551,707587255,2003046987,1753172393,143179405,1114502521,1970698517,1438598328,1961998133,1048731767,643995186,431203131,11998309,260959661,1792034084,1259059509,905406980,1036107913,220417474,483682377,2062288374,1025639760,1415550136,244005490,117698584,728199538,446386928,785118922,28959338,1967472912,1985138849,1421042506,1895370563,1860942768,816652388,491169313,267719416,1052756559,733040406,66478064,750151873,320710538,1916649055,57419572,1385693154,363478191,1993232748,920355920,895668810,328116948,1555117588,868447975,1191812864,836949205,1732728361,1491515679,786767967,353432787,989695869,1097207366,1980600769,811575784,542607362,10280512,1159627922,708637328,418011261,343445320,994734972,1244652753,224455574,571596155,599524344,293592013,323646675,1765003367,1209538193,808465619,53462222,1142153796,1318077866,1410703686,1410764027,2079025096,170467947,1173197626,196556545,969538326,96626587,410853639,2033312891,970518726,17744513,1580211303,1201985879,2042406567,472469391,2019883225,1702139558,388033124,273098562,35332517,1580157266,1376511139,1478212581,475913795,817004073,1713603569,1849364915,505702688,2072555416,1321207961,399960575,7109079,186192938,608060617,276185748,1658211212,1388942908,1483174393,1409964199,95245183,128929750,335977360,903226189,2012821219,1723095387,721122309,1256550614,1302993165,619687014,1130686750,1109630423,1853837227,1325774455,144499405,1427797829,1138669407,1563915076,828118064,2046656924,771330209,398642120,1299822817,1501822786,333119284,2062827032,1323413326,1702247366,189354711,1898103201,1088775752,1330665666,432364595,1792006367,1627913606,586827718,1463803271,1966069572,1071179905,139651016,1028315947,1301665977,1843367549,1074589185,728774592,367515753,1882530311,1468356514,1292194120,808793004,395693322,1553235048,1159540634,1418495056,418822792,9074885,1813796228,2030249664,1885841265,79869355,273249856,1940985743,2057927182,534116938,1541812414,22104459,1974350687,1684787436,1928120386,596908231,769894208,72472130,1843830197,1420072843,2018894966,515943620,1315255387,580354194,1731034171,2052548438,1338684030,731177214,791348328,331953252,642952321,1313906869,668921650,1486320103,331991369,1231305529,1456637510,1437753817,754537079,269240107,283012241,1179796059,2030436711,100483087,750071086,1810087792,1007720128,2129550668,50086961,633391803,1367878834,780240131,470997425,803273606,2087187632,320528871,862898160,911412424,1680976831,1038741928,1391915018,743371343,753090474,2119275299,16063372,1623871225,1514455678,963385342,1413264632,1234062391,311744173,826714351,1363529653,1588361506,300788860,1363127750,1587658396,36831978,456779019,877622479,1275445960,234108016,545199033,323350372,1819166315,1712987764,1725729068,203568060,924345830,1367470108,659441502,40881220,36109504,407978547,335459971,1041838536,555634594,626183309,1503078573,1115619609,1296427070,1195705636,921322867,866883821,684308939,1259513247,38595839,1547835565,1468342799,1618053462,435656486,2115366628,97832606,855041879,1214111370,1374426937,1475987342,1851960110,1852473124,218388203,965933500,770286041,162348596,1236695717,1265769908,323733779,993216385,833332683,1546173345,1448536615,1385027893,1368340979,1369646696,1838048895,408470509,2059811741,193562068,726816053,1503443070,1764207091,196739431,1734966006,791924059,538115790,1801540391,1857858251,391974915,654775263,423772927,743198646,9395872,1558657287,1962314946,1501921962,1552116592,1463106915,1278452550,577795142,127821895,1423483337,206321361,985498836,126382797,1918990963,88023506,1441132403,58898017,588083513,168838990,1553972151,291715301,1540163783,1903851674,724965578,2022654829,347454518,952865877,1010024694,90813382,1655530363,1983167757,1322074486,125255223,530195483,262479261,136874913,1429259006,2038388049,1807737734,895306912,970729886,946196169,361843385,413868712,1221530806,2082369371,2076265259,421994460,76714592,1813980740,2075347404,559598265,669208954,1619618719,833158412,2115827879,1976665110,1356326807,1716287477,914606022,236235316,131545990,1670552526,126201821,1025943777,2065860676,1515400841,1616266554,461857317,1673897116,274184550,1814536035,1238711098,569798171,806752125,24277550,1047166790,1904228731,1044568311,858519633,1397160652,205560015,48823228,991573937,1097999132,395115764,17914930,987817769,843073586,679704614,1408963671,1940857489,1275805652,507251310,1444561238,636266835,621513916,1276484642,1509448644,833301237,103755752,1318487394,236440158,474579409,1664000532,1217429140,1291267489,1955948575,835786027,1579435704,1553027945,180639422,1497792597,734043467,1222743755,1877162250,1719706209,1740676827,623528422,358406310,1978875593,1392807580,750819847,95566713,1314290901,2054794014,1701502019,1308236020,2110478004,784916600,876032397,1067193460,319407445,767490697,548208663,1092924073,1637774597,594411949,1309485382,1069845066,238607766,882923804,640790518,1557137015,768371833,638286408,1548287658,825019541,1142767173,2129056322,232952221,238027207,708752521,154067594,2042246385,50763794,1106975185,597994044,2026386183,1608049039,551963081,1573776896,879705337,442692309,285504809,1529034443,1332597510,1407183378,727256335,315871919,1121512902,1604771947,1401846094,2026750250,1991512596,2100791557,1285761458,469165069,1093574048,89257802,1213114009,485327396,1311507439,1682094808,1041284559,788055427,1598408627,590438146,964426706,2121425703,1144120326,1001989035,1164108349,809634881,1807538198,740955363,1797796981,672327798,1632609339,1274855380,1065440774,361258817,1801121277,564408989,295930992,1190526071,1576412961,1567308802,41077785,1908260778,1797949589,1944937055,1294587061,495722381,836561626,1609653434,1813505185,2060377293,1556569461,2082169462,9634497,63840350,348526410,512307461,1089674683,891875361,222618102,668403580,1230949708,1229541152,891351056,1686399721,2012542792,1214181951,300062709,120974456,1877280142,724188957,1038272299,858578636,1038024785,1373340815,1486061933,1317713089,1262868976,1951298249,236627336,921174150,1129781757,1366441006,1473898614,1466791015,1630775159,1400640302,60738739,1257661506,1619384393,1750092542,566750859,26271383,1058607558,1456476591,461678778,1550743876,150473660,2112795374,723506909,937180355,1765722374,524837859,81935170,137552630,1732072844,597672474,1689841463,1431634419,651761817,926079582,1409738719,413054991,88872511,1942398258,554769946,167607898,1471625340,229869635,899356655,1504824109,1523970081,384215205,806971265,1592084896,90474096,1093819349,512769285,1882727552,1282310981,346247113,1595417631,2033286961,254342372,321879231,121017970,505016046,176664285,1533019010,1775173047,1421449758,357215355,193762713,2068651666,1789094774,1150438799,1225429774,447696959,1411973447,122938053,127579657,1655997723,1300104460,2024776083,1086632941,482759753,1586880932,1135115571,1037542401,984605384,1428980240,1321570017,782294867,488330363,1216689684,747688465,1520617527,1866950136,1235218018,1928951327,1865138318,949440672,372226928,1309052697,52701973,36245125,595417101,286201445,1248830559,963747460,704432736,1250856479,557184198,2024952494,647259821,1447544517,1266412586,1521649624,79341191,1386332676,233116323,1404435799,22019128,2030042205,388178414,1813036858,719522699,1557553978,1671709593,374115671,919495713,84479888,1881015112,1563758303,497143373,1078828580,1605374104,754751684,1125276596,895145208,128008420,1740467901,344612652,805302784,1501820047,189658530,65305679,793931210,1474651214,556842990,1531888659,982300197,1693403221,1239388919,128051013,1489685535,1809660452,1540452499,1897169448,762867978,611569210,973360294,119787225,426681538,270313329,1410998572,2121063301,1984975099,465770501,205923648,609752452,15326293,239122825,1751385184,1838764672,1668066743,1404943207,2085189812,507607112,671942954,245429447,32499550,1295798757,1912165052,499426110,1280927256,2024589584,572054059,177497667,557696480,967985967,490491411,2054623712,107859914,123446366,877671419,880523128,955338686,370648872,555880633,172026920,1661253080,563050263,355198825,1897525159,694618372,1702518605,1532050564,850038716,1255578026,619240670,1108864334,406719993,1191839349,13140273,1197292105,124854697,1796290660,1505024470,1450623312,285187482,295225016,1404767501,1964621955,683617823,1989901000,1214632856,1586652873,1822378462,837940932,790491196,1777082325,1418589165,1494120722,2115408200,1028158449,184132986,81020615,1180536803,1462772476,510991249,583522476,1911553612,1227263294,1556225023,98837377,1344941159,1637730744,1473902715,901571620,696854234,1611251413,426703559,1366153720,156537275,1097609941,791443755,58677842,1145647177,1237579265,706198381,803151491,900505987,1560415194,440563488,285761563,610634126,505950452,1774606181,612036961,138807156,376767806,1219718929,499147477,747095153,973446516,1966561228,1037935940,2038355321,2016978814,1251100671,13238833,1575482396,2044374706,218439006,1332208781,623466674,1568562520,1983697422,285812219,93594221,450846005,1032848837,1114853352,27402172,102344576,743112171,687849533,1578794681,1227584085,133377845,1833312926,362344018,312171027,97018310,1262939693,1161533374,1191970081,538488068,1936214484,1956224206,888294431,936128037,182556118,888341368,1028278070,1796464377,1049410963,1124176390,2012580610,1716396522,493582135,721484652,1637321893,2023547039,32611202,1157027916,1145158591,638075512,680331620,534535722,77735467,1131477994,1959676004,1494222494,1003785250,990591672,19874324,206911,1597858662,1373300698,646417373,2005818494,345319533,1726644737,282209160,1574847786,608132222,966627320,488848130,1694830244,641449711,2102245270,269716224,720718066,2068782904,968670913,888598409,148828930,1406304759,127346922,1481919793,2085478130,548222049,496374783,159871771,389956367,244185893,955647250,665020026,1456693561,180028483,1283854483,423456486,1117285208,1281970267,1541744026,626664771,180600191,186525487,789746542,2028804992,997178946,20487133,139807113,1434947250,1907935669,2128313056,1399069651,1708169877,1510075956,936716203,418074877,82940752,898240873,1591406531,484783457,601766564,56018597,1420360413,92735654,522748167,311857377,567561776,719839600,584283559,1519280211,1529133906,1140082432,1789591016,266401233,205156356,2129852988,1335808889,432356403,1368970800,244631320,2019543202,1887180681,1749514892,1343557412,1706633613,107216012,2054937274,1815319311,63463861,1087733678,1037029956,1481484581,1636099085,69985782,1116234905,289587567,28294535,1956620070,1892143421,1116237879,617693198,1956679831,1705924165,1940111772,1468525590,127858672,83480175,1479102204,1355766099,144530472,1554204036,1856579212,48650660,681706616,31028707,1175537087,452202420,1938301099,209654136,1685653022,2015535966,1394088958,1021641049,1572237780,1255757850,982315039,417770196,439119744,1465951713,1091003161,1868765771,400873859,346301433,455114095,969901087,1625983696,403662964,2063258999,1180073240,1881340213,825212207,1436084826,603282815,1882467988,7931238,336860213,1809557566,1170550447,862924000,1832390454,975792911,485077130,1307471109,995726753,2066649563,602615912,1824475910,1333423007,1988755201,100653397,1543652040,2126174112,1782743455,356556574,1020552188,228757895,1641139904,1303841894,693464003,1044087548,1119801874,845898023,704212279,803705840,1557848306,1606175169,1587656817,1990628016,100420735,199748346,207918282,516596929,1309463911,649429728,248847340,348382261,1190683506,897468211,1883711172,775083604,1203419998,1136436876,407347471,163798962,1001978437,633565848,1217059359,718910776,1548796157,1259627500,1943983556,1258092829,488046231,654360860,484516949,1293317747,1284140637,1480679027,1774534607,387125749,1204706696,949872841,1909343444,1612152198,1582164485,590469790,2116355679,632067766,497455059,739780710,1625991603,213425280,1868103420,300650349,2098253465,1096542721,966247760,585532249,1515306086,1046179892,1737193757,427489671,1250198514,1753241044,1386805898,1051583607,25327672,381711949,495354213,551044429,322404760,496486343,1309583921,959679502,442746283,604852258,1361265458,1595369700,1647458057,384862951,910604431,932383727,1405057390,448179482,81420891,1715592238,1831757273,623396939,322683108,255510544,347118634,1891086532,46822714,2051954132,831419345,843221052,202081069,523465265,1415632575,514480872,430949551,1787733832,1608442911,1124631487,732629471,824537325,835840917,2086762144,1565022307,1971508007,729073894,1324210709,83825829,764903317,336994545,1695687190,2103449954,1089540735,446970714,140267400,1076594680,1274582126,561159090,1268701897,653914068,1745423873,1908159977,609081824,634769522,741356058,27141075,631691629,428608388,788773389,326425656,197896025,1403298234,1206784156,802901692,1073805899,226620263,1183015297,7683779,1425129336,1297811310,1415335534,1031901566,931213690,988828460,1922039474,1018613414,1582344743,1573459495,1460424020,754055127,1105803733,1442761113,1174976649,10194762,1648092878,266889159,748694378,1115896493,1749118351,1046521258,193782656,60439729,1956476978,536874755,421266413,189407367,1273347462,535860004,1468424492,1436894566,90762761,1537892519,1817845363,640840460,1103565756,129588545,1568656269,407910041,684977641,1899694092,1707469891,1030043983,448666649,1057151846,791338899,1173130838,1344098830,211879645,1532510795,2028273453,439789889,1051390941,570806316,519038567,1046228125,301874927,1527105756,1703073411,597177619,420537586,1810361499,1442739483,1980023451,1292332874,1750412186,1822107680,1709843866,1563747029,1740402585,1937581536,669594276,1839048633,1072185443,457784188,2093011087,1595874560,698808653,1785097741,1011907606,1627964936,134076397,1403938459,450528622,1031547346,811533991,1442598180,346154362,1007506866,1383960057,63290401,175261450,723543736,1421962614,996521375,1974485935,402365739,896949314,189049029,280484165,907761636,712228423,1795513989,2080602692,951284597,1513751506,1120054959,762149732,1046254443,631809695,1079516605,724231344,1323242897,520204826,312819329,75995765,2103822574,1544832601,1788598304,450040919,1071913954,340789219,765365068,126510357,1335660984,2913766,1432849398,1013855360,1651581872,647521332,204701888,1059500108,271929593,1799697801,1925056294,16967125,1788267403,527586731,2003933976,2095113015,179185038,1685392818,804325748,1528951076,1316852376,366904791,1829992294,161737889,470929800,1646585317,979250981,320817334,5181654,1165957123,609806589,502354676,1105067172,1049478199,1632393208,1494628397,1904493118,1709682284,881468500,1929438814,1156041161,170316586,204163321,920622603,1199907922,430511592,1641881978,1222183126,292046469,784937404,140998584,1622591223,1560238947,1834468014,1281326470,656698012,566747655,1430830798,313469002,132402060,264481145,458925800,508749025,1549565833,1389981787,234185341,1742802345,1495410185,1806074684,822565278,1020798439,1711029558,605010690,1742298479,993511781,1834755677,849404644,1775192942,2012345068,1056832230,1626415034,1455757176,492228614,1711593829,1738979449,1709426256,1355639516,1945112042,1309038988,1597924182,106854425,725284712,1469537554,659063331,890566472,1742033515,2047767289,641248289,1727603300,636355071,1547856119,1625724362,618410664,868727642,1717886818,1826343288,1640077939,563775482,1324268484,1710797885,320810222,890203893,73480974,2076477199,12261963,1326581469,1144872144,1543169836,416038957,1923308705,42549119,985563546,389996088,791023602,44408296,395258113,1580677320,1907889141,610849742,1982441344,1094064706,781275008,925556769,307540075,698540048,797898303,14542974,767180317,1381270394,893804789,506948354,606752529,1531897491,1825405676,107628294,298673337,1046853532,1551307446,87126411,1240069626,562958595,1335867526,677916394,916408165,1514805290,302344488,1709825196,335802232,1947346712,785364894,1413160839,1084660275,106468505,689436672,1424901538,1209220168,1970196085,1309504158,1727691155,1521605600,2122600390,621250611,1209377493,907407337,518759718,1450082315,410307968,241255695,991527719,228699234,1700482877,839801544,281009294,1122925214,2066177360,1189539389,1032259656,544539582,1189270105,236605767,647488916,913507168,2121680882,363719311,460498195,1781717033,125047224,1578040518,921983722,1667071652,1791620947,451339893,1541704113,1164288753,644259840,1643330726,12176784,504607278,413483842,687287777,581011327,1623089842,838122250,1407184694,1118963338,795332240,859043229,601071166,892213913,1351810706,1295090033,155970149,1314759082,526553758,5833386,678953153,353781057,1721241220,1051620917,1311364278,1845322058,777459243,155345784,1373123602,2013499214,1600844688,1463319875,193953504,1893337408,1584256219,202910057,1608522396,1347952361,915520116,472524921,1416786511,1521921723,1023344550,1155712395,1032845562,1143183084,1251610428,851026920,1747351691,1637882481,1899369437,1687700962,1147291903,90139721,297051294,1175597799,1340181567,1606498400,1192312565,1990105216,5816924,1754371353,90706644,402388807,1163077839,23373783,1249137784,1455743358,809456928,1276306664,1314223682,1791787374,303382040,947373419,1926674999,933866996,411698567,1902145233,925884254,749086334,561105514,139180305,1172497128,1190881990,1008466851,1815501819,875397642,1142419814,869093107,671805721,1811442916,1945709012,564593083,1402451126,1804610048,1643041183,1656936818,495538455,1100484412,1664641523,989157803,531870026,1583586669,1931380929,1923991475,489602397,1735075184,2096957071,1072429597,125441356,994284516,1820776656,628600779,499199680,175105106,263953619,325877493,2085080074,802200495,480598967,2097150835,1889040487,1453922673,777191008,1050503008,591428914,479729915,885810595,651399253,1769080760,1057003778,1476649388,891992395,410793245,146418545,2014787168,561708055,110153058,1483025858,1516091394,1621878287,1505528811,1381532841,368810455,1453252453,2062705261,1617026708,1806114223,1776421921,251288001,394835552,577860407,503488405,1234176758,1972055986,1530933815,1943979748,835432600,1167777062,1930731929,1483982734,1847250396,134030054,425955044,1162005974,1888172999,1274973244,2023842963,281564562,1723929574,1271758266,104222908,754738151,1484944201,1035919903,1176558556,1352113904,1914841400,255556179,1352652423,1456366429,1826901870,245201120,658343576,1870166548,1970635494,1488179444,144062981,137190246,1768764325,880076892,1492622269,1602252779,860899540,2115646635,1732917858,1392168369,296344557,1174449542,802124142,904219653,1122798449,1044169314,1014328163,982576438,383134167,1878992652,1398363106,2067184359,886976201,93559345,216927443,1746573801,1466949375,912618453,1492679749,1909157090,411326263,11033370,2118401791,765648144,1547444643,1627693654,1224460906,227314232,311202028,508192512,784432618,1612791538,1323091745,246952726,147827453,419542938,1903261655,219755401,169928541,899460047,437716775,1390779057,888618808,554495547,899101442,1530612737,1168291970,1128750381,1257538511,1010186384,1534095984,128475645,2010480388,1666376291,299859631,87920997,643559608,1446947050,1109552819,1269432816,1268271994,456627539,1242248079,67396848,1787455117,1818591797,1496602548,446782340,1635184369,2064413339,1801446397,1298763846,1794635333,1982518715,245881857,1315888380,1884360451,1608255397,1070998498,1594756693,2061764981,505582075,1276529517,1733943530,1487721283,459553209,1327770399,2122414432,1255544587,845351389,251505012,852016769,1024229467,360666607,1179245156,1190958338,2032123528,1957148471,1685956747,1017715970,813361606,1558464915,1862605416,1084631016,419859920,1147343281,1949758833,340091210,774880675,1432532808,1161368739,426226510,1216427775,427826713,1329515513,61922261,618181276,1542309199,1189681434,1274283977,1741200986,2108403041,886708097,484211045,516510716,1441684162,1571228900,376748234,674542717,846153846,1539545471,1133724493,1053655984,1201923126,1694090005,1929717457,345052289,241802376,1139895128,1405925452,1389865456,1887934253,807003917,1233170417,2043227027,1601344354,1373477039,523566094,672100603,736871738,1067632202,1846887956,1505513990,1887700209,1154881434,1434595563,1961861111,626904953,572595953,667973368,2007042712,747401262,1220214583,336611871,1727497486,1716851298,749686637,597742065,730555657,2054516417,1037020114,1454503652,584668605,883353233,1097090485,464438593,544756431,1382894734,256386760,1281091793,1092681596,1554650858,925655962,1728775272,473997267,2070828843,196118725,596378802,1209571460,1773954275,2128797267,2057304481,1161490732,1156508149,1085811963,616660648,1150705410,922863356,1375357097,507805766,1177011106,2098053283,1228453173,1718078927,524794084,1949261369,1793307136,1550998991,1999812644,362605553,884127812,304998122,670665372,496769537,2091060850,277005365,1184550600,100925540,696666643,1429863508,322755728,363493223,43480411,1706848808,1885280554,1540859526,496516299,2074499198,1838475752,638793978,1240320132,787511230,1056033650,61930617,456555281,1550259991,269605563,44798306,1318283564,1376653575,1824278376,1131346496,838460451,864696863,1948873158,1597481294,2048629168,580217537,181475241,6502625,859539348,205045921,872358539,665404722,1991994096,1241195097,298741089,1499808633,1885608178,1219385768,103792639,1234143596,1259289686,985416088,720034785,194369549,588378562,1880889688,823091419,479561686,262097553,1247975096,856905421,1276372434,653862124,182889342,1830699740,85907666,197431911,1210946957,1068037118,1699968360,1541585209,2057636717,1615439013,342135150,1634419430,1371146424,1080841116,218992477,80243919,52757963,1880079902,1129929530,2021653374,1997140671,1217547502,909160806,127802712,1278851768,797509127,719660269,1885832547,1647720783,1878986442,2106181930,1219907631,2059667469,710902229,677383421,639168030,1289940389,1241951940,708032052,1787725136,1569614560,1892480692,556384649,348153031,1544282533,339531914,1147695135,971886763,2027025576,888672093,1557398103,1358715234,447049137,706225274,837520591,545384846,2023774071,780030830,1828756567,401359823,340086169,984818143,521026547,1956007760,1116629657,494913014,1215704890,1306793749,1153397468,793474309,1606137609,1143890769,1564099562,1406367039,2104652988,1863539029,152212174,1899547260,1415621871,590652957,1979238903,1530399313,605781482,1907538536,826405852,2069281022,2122218128,104341430,1058887146,460733425,1054266544,941639027,490123702,590138998,1567007682,633138883,495058912,1942575043,1368524739,534746601,1879206961,1707119079,81943112,695484470,1037069424,1195691480,291203748,483382440,92603206,1818198287,1192818141,1902259499,1885285863,679500489,734033476,1310561346,182861250,1063532111,1252211743,832216702,1954999227,1095405514,1765997545,1094228781,1829889214,2118364063,970155197,1344873798,1383779016,262979503,1394964176,1237188488,1742672512,625503958,1895499414,461246150,1987711496,1339072130,133735923,806932181,761413350,288770293,449801219,28990984,2032140521,1272587455,44870859,1173121139,1914048373,1018757239,1092621150,131283262,1256033057,197175079,357349770,140392890,1902397352,248297268,780014785,1740428084,217915261,582186685,565796125,556046844,1235936713,1859324225,1100027560,946636606,769461472,392810822,792660704,1884544836,100680750,1732905889,1328563521,1834869034,27413714,334622978,1381465287,979176762,585413672,992737007,558239562,1333800666,538278748,702421870,1292046741,714992556,51854374,2032654869,482741822,548295169,271980905,1368549447,282323371,1644639244,677046520,1136544214,1767478481,1870851471,1154604399,681151484,812547371,656828336,2125118551,1734196377,334202023,1790492110,1152022583,2047196397,812844671,1092355265,205583568,1530873734,385873761,2052488422,1461945991,1854863480,963978350,791678658,1552317106,1306097425,1222904984,883657753,511519163,744472858,571387405,1803028171,1730912269,1224907961,728453422,1013913415,1992762537,1183638819,1448123256,1543396654,1956605286,1950508086,1691071843,1533063099,1447511666,227817317,451069519,1975783818,1275428603,520399573,1118457708,1394953906,1580168810,1015699823,1284141193,350050462,1456921327,621329038,604263531,1716345255,92352742,1965374031,1752910424,277701729,1141929092,368541780,92926136,559455903,1603962617,1047272248,2086272655,1066119896,1926049986,1263340480,1263964372,595886400,842679585,1140400294,51031233,499559350,2079959188,1616882913,1259803417,1029556945,249102965,952274113,2108582647,1058932432,2088140305,32859199,999286403,50361349,616113372,764510378,926784789,966715489,681032750,889356241,185508888,1422225549,1278607849,954178847,680139402,611906335,1981512912,360884380,767677604,1580014986,1803619800,1051327414,1508265018,1305404342,903736061,1960809083,1178284992,1404047890,1341340484,135463118,969548299,414304450,2006197729,1082884255,24591872,229859973,1054586453,1932210022,162494523,767128949,1874019666,517439852,501729435,138942041,261614047,703499264,1025506742,1764766788,1028201614,300738559,1429320838,1125627080,1884072353,683493512,1441158725,228499013,643886776,1251568718,62006448,1816701584,1034190169,429918280,1826185930,635313065,1171319054,728053006,1360993831,2107852781,1168309928,1453385339,88368228,14435109,1273220653,1967631368,42212176,1895106724,334246418,1731292197,770403501,700573202,960667659,1908812857,1795110750,1063698548,482086253,1013636046,1189743311,266530425,1592014176,772652233,1902867079,476036033,1313588668,1693432954,1710610215,1271925552,412434710,1341257847,65496730,1514222591,1722507342,849090946,248051348,1938896968,2073782734,1409112331,237957607,1569567083,435920950,1426994422,276446779,1218152211,1663308623,276462682,666636645,492757538,1804623313,212166314,23585883,1371445649,1523604752,667613167,1875591611,185299815,407148525,1253262612,1035076117,216127659,706900108,1309923342,1561784280,661700189,1657356371,317579952,551893761,342326606,1931894107,1477666700,1122002311,1799836491,123298106,367292342,1440001015,1005137959,1125315681,1829732376,3502641,1414927611,627998960,724407869,1406546689,503272839,68299196,1264250654,1874861697,1586799895,1905132072,727450735,165781977,1029689852,1051127243,399390155,1890249151,706926327,2094652583,1191408530,1352439990,458368703,674818317,1893337956,1243661143,1183599614,1423425032,1102114320,486769758,1465111011,1735964099,360402485,440349436,1730645156,34527194,380161931,1609249704,2030129383,1505114481,1053262992,421377107,1091982371,1007647250,295247507,724083573,1760036555,1369781245,786551007,1352952478,1749087827,1790686856,832366639,2088622391,2006797604,945851813,1380847243,664192668,1772852917,1342232992,1548100586,1663102200,406575823,334060444,658482894,110429046,1787198480,804168452,1256039240,1846809159,1779911240,371605921,1148329292,334265719,1594345696,2114049075,471281662,561289714,1420479302,1495029831,1588870221,483149671,1856855818,979452379,1751579128,1283242,1774380396,1556743950,682609437,52330969,111724988,197472483,879751730,1119253989,949745658,2042782433,31669562,1828778491,1676586365,1424388094,13411324,730754271,505012230,2109743626,1247665980,718219279,1029560571,2096163189,1500940308,201949939,848059814,1385836984,1915340003,538095593,985246068,343026793,732019230,1787939812,504382716,1171651437,974256639,754213151,1596357575,2059416487,1117436494,147511317,528378550,740205909,469694024,858894306,1927155075,704439020,1918353188,1162610255,547172605,1075605899,2069489067,1293106501,1721176798,373095733,1129558783,365006406,1751318688,1386931480,2036942333,936359369,888455981,931923547,1746384325,460958890,1433078858,1960529750,228210160,229190238,13587110,905034092,419081993,1423657432,514397916,1718654780,1331471143,425152257,1457876455,1710887178,1187814855,1467314442,1119601453,1989373679,1893670290,1575661969,405373101,1884059648,25587620,1173707339,1387163442,1007617579,1859902411,163929205,592337249,2024579419,1491350113,983456655,752287537,2015131844,1445887512,1576756738,1230882462,426944494,250020425,445590410,838596031,457205418,1921797848,1609107861,498211909,1830185674,1803285421,1978701236,1707836683,660375914,897574526,936968235,908411684,286478646,1026088965,1808610571,1903123740,1550778470,1637386123,1935427286,1481942669,112792601,1809642577,90799383,1614132965,168629930,1138658280,1480070303,829637039,273511585,1196649108,47214990,8867341,62492905,1055423876,1436866035,1044566561,121652919,1314016132,570980217,388169326,1143223238,1459429811,1366234067,1452471991,163316702,686274665,1799057964,2080335164,1495275638,689872675,1252506986,412454417,1078895148,145361342,186032376,507076195,1165839758,279536145,1970145023,1819369486,549187785,588135448,931182076,1410443294,2089138400,1233527092,891651,274063319,445968186,1533235377,876088894,626796767,136007365,1989720214,1266088422,1259080629,1221337789,1249824680,1085954072,1696928093,23263698,1990401834,1595017081,234119874,1532422330,1741118180,1342765740,566426585,1801721095,1318749304,477980750,1903656272,1475288738,769086541,1154477048,2075672702,1546295440,1863333005,1781577304,1252800678,1598399294,1858853847,416543223,1605409618,2029381128,783467308,1545042307,95608320,202112831,1052044468,1382572626,557816818,693535635,1841227098,623817345,249169444,911533557,526890819,865932553,1610190268,741937934,952527279,1948129243,70809346,58125527,526101860,922228639,3416601,310061473,1478159649,1019921186,1688224048,1708758765,2125113077,1156916203,217702062,1558009125,553637772,987006354,84690966,1176123814,394775431,939160554,924908607,1124270516,225678827,1406913444,1801713802,377332799,597493437,1166084513,965708886,1502657381,538859618,1039556583,1096495659,254726678,2047419478,767437088,48033789,1340815464,1371178383,370239736,818446318,1609098745,928502759,2031705644,1127225831,939194425,1035517082,1660048724,1534571064,459135779,1042859857,298364576,1164470463,644292875,1810443610,1188370122,1008576202,244058187,1772689961,1261366610,1192881319,29568498,1598813168,1684417900,52677776,1995732027,67410754,1631173359,1973238332,749214701,1541631802,1471509457,1930331254,91960821,1575508135,179978034,1788971303,1530065428,44285217,2126292398,854040751,782690764,1495134537,691545296,620741675,1813253356,1090968681,1180183069,210861781,1332257054,1968689244,408712494,1698949660,763655576,1088526805,593544029,1859277712,738290858,2066821367,1302977303,105784658,794521078,972884898,866213366,1947921134,1820189920,422102118,1527549760,546243870,1770369712,1037969406,1964848972,573154415,1326541376,399830897,1907804109,2041342328,241321595,1816498775,1868161184,180202307,664825883,487511387,1232806904,1759640365,1846046175,763746634,378238367,493275355,1688989630,437723781,1107483733,1069232015,982946916,1178890280,270097076,316990602,1864606031,1468813800,1146945530,1090392413,1230859927,1873285545,659920225,776246061,1269009997,1737744785,1194402036,1966254293,75378131,648339151,1807712320,1590337816,1159214063,1181155614,2020099036,1821338688,2018030889,1894278018,297367854,1598858215,353539834,1165288595,2075121728,969816153,27881851,748479603,691817507,922897155,1146180752,290398120,1691363386,516868334,2057675120,1783863869,399762833,2061564472,306551050,1647649317,1444846226,544480978,1452587872,713596274,936529150,919457676,401469394,1556374983,2063046979,1365527885,1534231449,136152046,326383568,654813472,286350582,905693001,1863860208,766159031,1279497727,118350560,396034292,497622984,1516572994,175559476,1081125445,1923634991,979229455,995135569,1355844441,2801279,365306325,1282720338,166920852,580326253,280113816,1827803812,1747113960,1590035538,1615439199,681841979,1413416111,780750441,1201665595,1951400345,232072651,1220821852,88523881,1168519064,1569221623,1560398581,162666079,1745913414,421177218,641417556,1439236998,1887854333,1380911996,726854140,1108219318,1854784589,657947531,625790614,865007964,104705909,982246355,367025910,1017633704,573945409,482667471,2087955457,50563923,1202438914,1383498076,2067420428,1926603808,843412943,442391217,174659388,637680072,1099671084,75171698,1241909742,1930267284,608823936,598915621,699327862,1265882100,358711347,630120014,1038835919,1282518110,2127218158,670317555,1609753408,783367365,630385499,1023758826,903300059,334518307,637526427,275599456,197529511,353716804,1914735474,1701605258,748243656,630805197,1498107046,1860172374,1258949073,1354404882,313522184,88783294,195853214,1837894544,723922135,142225912,909073563,1755434715,1448490487,1125223824,424280899,1944069323,1077672384,72765373,1670805787,1793320498,1503052811,823653484,1545822679,451632840,718247235,1119321463,874966592,351825650,876143770,1078666264,1307170065,1490934675,4521484,929418987,823250765,1133636868,704175714,121626291,231456229,1061001863,96531723,1061498623,1770837544,1318012298,469739964,610001892,1247526067,104231079,48359345,759621095,665173445,1576293297,370727167,76065465,1838086542,1788425127,952479053,715639624,1047750038,1056142772,1463019481,463495355,517730234,301135093,1286254976,1297734514,1533049785,428841649,207021416,420224675,2083282388,1399980092,1647164605,1419807151,391642048,1656713990,1914400453,149890608,337077041,556189349,1925029536,2115939708,1307638660,1875577936,6559705,637052226,806009433,1421994773,1919052027,1988336203,1720876742,1787496183,1557421371,507243426,203353818,10953075,1323096135,1556849886,997417792,1696620163,813457014,174671276,1455764734,869217765,1020929996,980342100,257954535,596851140,1764388940,1527662363,1685981391,2028364520,1185463481,660447109,1055399472,2071905031,1340387691,1504883409,1204233007,637126987,1000836104,637018618,1391936547,524211861,1514367243,1437931665,1930707605,303170089,2008741398,1426149897,462539439,182791223,77535865,1801735948,813331045,246716762,715389865,541308044,1695656355,2094503731,1098255992,438994582,1885551312,723305739,1992018776,947124390,684696851,1747105948,913622205,1612879434,729276333,1998727240,1948970250,171147319,96350874,1139114404,1553072253,213120241,904348061,1829400101,204547943,1322924308,875223420,367636468,1121890598,47294770,396785958,1329434715,736686974,1771078941,1763730804,1052440210,5795758,295425850,690758500,1312566742,1352525469,646626035,1985755485,1140225996,46915434,830305079,1156591104,506269575,1690173541,994615222,718766274,2112222913,1945334532,166413012,1615372761,541833824,1264195956,50168184,911778810,523725336,1880589657,92913500,545004498,322741715,1150974111,210273546,431157213,1981907668,1615991913,828628713,1104421700,1524666603,1652122930,961032399,1666337270,765755688,937191436,1747197905,333636867,1469231691,603744538,1937259342,1798242580,228231470,702256976,1517469525,1404717365,1529394474,1145732480,334997951,120784149,1222200410,1475473235,51329903,1925436683,2074637601,122062024,1437021259,1979829180,1734820196,660163292,1630709972,21418695,625448968,689740367,1817801436,480059614,1888763518,137316896,1447126689,722504261,1519603895,486074070,872251075,1389740730,533513456,1061940233,1480502475,1388464904,430463923,654404040,473748525,1444937385,96654123,1990634907,2120549148,1112183094,741130539,1470744571,818433591,631016924,556425336,1326010318,1232678863,1860338267,1356187695,1794452630,451942750,1466557073,802935612,1606917879,1133543803,474854758,1719279523,703726350,2077693264,1183716188,120724510,821624297,1821480346,8819104,1877762853,356022672,781526475,1847274535,543614282,721423709,498303469,185722050,74339167,1418933589,2031182284,2033860015,2101247098,774940662,869715239,725097642,943388082,1249342266,1889816123,52493484,1011627949,1528597107,594592954,1008016648,954701343,584772819,342557253,1922628860,2015178532,856959395,1149008137,1738812528,956255778,84616875,1490799825,1982480142,8982959,1619266140,1921267910,748966646,250728261,300233591,720742683,1206313204,125483842,780448347,516617360,69226487,295391379,1366619479,731518156,1789654165,1980979382,471707263,1077442705,1552318983,1811983878,1499149413,661266037,726165300,193951537,1637166895,787679353,1863778197,733687102,660808785,161488111,1070753310,1322369998,1749361119,633274332,1729724457,577067077,833300729,214089994,897919549,336912475,1346707548,270806631,750630594,132495349,564821102,678098289,1257535535,1512149096,1568482127,1348032916,81347059,1950351508,33646126,1127808502,520315371,406983989,2061845099,1514894692,1203386387,1939748394,1127205889,192373578,1571401665,693216940,856468055,840369820,1238908913,1777491799,1605710112,1025737502,1956218193,580718696,1347025151,821610417,1059053503,1833902745,1088695314,662990065,1281433198,1878721986,928101068,1716549220,754594735,1666883293,765794843,1031792121,341026167,879511624,566508543,1806500149,603467899,1873011739,1650736166,386618593,1818741469,1427291701,2057759529,2054577718,106707273,1869266549,575772103,1503141308,2019815467,2004114447,1105380418,1824083621,2033880936,2091470075,1930722056,1960188020,693274827,1925863809,1636308018,1741701199,1922602988,854183036,156297768,573694077,219051681,2042240351,1683512597,1562006379,942727730,920260127,1537077594,1083793988,1039586059,952787056,1473014479,256066518,1334396146,1571414690,2061255737,21418373,1240788262,618998193,1694577055,2050698166,262706637,276929760,617810595,443245246,420321824,1072545469,458513850,1476116033,637873858,1030229991,1683495429,1035004035,23399107,568511341,416511852,276016389,1351551272,1911718343,1933324250,775150529,836093436,1234328932,2117053618,723602268,1563047293,122570870,1729520097,64245266,1557139695,950163593,383447176,1095514825,473262168,691203974,327875130,679806206,890483847,699089828,134378257,1824738743,74700233,1198346753,843294255,1837310651,349423453,1657441166,1349850452,209666616,563245658,2040953364,883825737,1622586031,1359107383,689367426,818216571,297463933,1021530257,1242134592,1524986988,1131086764,2003902409,1202616354,1848720462,1737893319,712284883,2024539613,409091636,1831441764,78769731,1451897189,107968454,590494024,1104242597,1428002571,342484440,1282268428,1342063938,1295153580,503091847,1525668162,2092753368,712599895,1643583350,798229340,372228936,1877835602,1990149940,361409233,511914611,1743088085,430074224,470698131,133949757,975469138,1337939170,1051231511,117489010,1890612687,59409863,1562736112,651227047,916597713,1054995566,1644816807,22447382,1126934125,1262539074,1358613649,78721229,1193515543,199121832,1091035665,1193516597,1491256289,851145977,1245227796,1657636914,251399109,1719101683,2111116635,728288166,1692053333,360020966,1110633575,1929859146,548974020,393654447,1057515564,1507082312,2065431094,320585098,817368602,1632507617,1622376780,2120247131,801835713,1826304678,1127218808,91639152,1840191028,261470138,60150092,1772739796,837421827,1198457615,1585342350,1116080517,1328283061,975319971,695289078,211101061,2128023351,764124256,647563527,451726776,1346980440,117741991,1533700045,298393058,1777960709,88329844,2011224948,750437080,1498704576,797105006,1453216904,1040374766,669729324,798067155,1596375373,1401577786,1339843705,339994785,1472586535,1106254859,1786927119,1706156061,611688725,222811309,1482269595,1493478015,1116691819,1536902422,107924303,1091315324,1329397547,976593430,777023236,1246297681,1898116819,1511516518,773794654,793795738,657052436,1870739717,1709105443,1157219906,2108967068,1459436251,1293997011,1743098034,979098106,1729720392,2012016189,444166995,1935373001,1852314537,1875825461,1817307719,129708451,1832584889,2057639372,382282328,69465488,280071578,49150821,2070681475,426768642,1454522394,1240989096,1406927052,161472187,2111445831,1184495812,1787065045,1892726631,802810554,1695520762,909208634,1911478190,1172798514,1566847252,1416348075,481330011,220562607,157962351,1084345148,113422417,950487799,232031638,1477633083,1276796309,674861889,1246518742,323550155,1008112318,66636326,1190694457,1640576202,414217063,1996810995,534094355,979248602,1797424196,1171993968,623360108,947881831,1105440940,315214492,1367774674,2069669197,1029034462,411230417,810539566,1911544182,1752931893,1967094592,1034867199,1766567663,1931513004,1937232321,759960208,102758981,1330333571,753363128,479796323,1716287336,2007531897,198875419,187889628,1740561840,2047897548,1328031705,290216027,2050301491,1473531530,297341601,1744224932,1042060403,441338764,1482030938,2077291072,1809597180,224220714,1779890780,412748422,1448557382,858134183,166085174,2052334809,1906497210,995187942,329165205,1113778632,1962753829,216402737,745202681,869236400,180195374,1428760486,2122639197,1791421888,1240548366,844057901,1520829459,441360908,1812985553,1146090947,1777876227,1055670471,1922755281,905298474,1391436299,558944325,447321675,236564899,730673464,367924331,1303015026,1394421222,1817808726,932150682,1197253794,236418252,1321639670,1576334264,1476894232,1504900933,1317761301,471280929,2114904644,1806637005,248714364,1029519936,356212237,724379236,2017308417,1674784214,897029632,1162548791,125839945,487595683,1611812864,566518452,1679899055,549490189,1691859852,2052374400,2012376696,1924988776,250149137,773868288,1305762375,436012392,992055286,388318855,116411207,397637447,1146882882,1879772765,925484889,1268499180,1982993600,424712888,1721307944,1486914260,1617015209,41326775,862833858,1299982340,900090477,496752282,316807397,73968445,92338987,1716157139,1465324412,1519596995,1838274585,792280904,672241060,850628790,956772657,496136423,80854217,90054574,917872958,549032743,718844891,1233728885,1606147201,1615912476,1640389354,476637580,2047415485,739931333,1136319847,1203586946,1720065871,1098299957,850985706,2001900401,108548716,1917343497,910792706,1873611751,180832326,1419025424,1359033199,1215794120,957655233,2076087919,953564760,732367851,1402185811,164169251,206867398,1367119357,973559320,1684631621,178313560,1894483842,1894155335,1435875169,1547781179,122486133,1230232896,209261035,1113737815,1307254581,109587057,380453926,1029750372,1757401134,2054080016,1641599494,459590960,852041593,1270229898,1273974539,1306959692,1870248204,1207547037,1498012755,2064377420,1494552830,817282457,1010026391,1770459880,1111234572,437434952,1009914620,486946919,1817633685,1483780503,1459552097,1572958366,1622873231,538122507,1086285118,1837475078,1726620897,1420837470,1568588700,1595336722,1404346724,2118032824,1647271303,1767611798,475501884,1262321299,2071144245,1905438070,289712269,929204925,1998491249,797805013,18541703,1308178076,811039415,13827772,52207352,354230205,7538727,70454006,195679699,451396794,911349857,613431528,1510387963,704040383,946083696,663577302,1408308123,630567165,705408807,727669782,2106136308,2007223105,1048692015,1180021435,999739280,1263445915,468896801,2083441131,717298495,1593383993,15666985,503683990,529983571,1171731313,1871346688,1668948685,637308085,1072576006,1893198594,768470278,744379541,1811015297,1227152622,512516541,450489883,1720123062,1143399884,617679305,785289957,2104453022,1232432453,1870122352,277622244,1337306836,1096185924,844874076,1694407666,1085835174,1090242839,1138013145,551941036,1840937695,1756878950,2065300211,2101718967,189588853,1480939706,573900439,1919689511,685061096,979463246,264963856,2039469102,1894740775,554499560,1419089392,1512138596,808486484,432452835,1159499927,865125254,203734247,746785666,1537926790,601344252,1272056300,1061113759,585404370,645082124,411657853,256118415,411079288,1018326889,527207410,1372427357,1513592354,582219780,1062294260,950573070,2043201982,988902197,590459904,170477304,1297644901,234300293,985648327,38578914,427471792,980745237,978925342,531340999,1738248146,72992513,289795745,1703243928,399172668,421787180,1071876308,1922623355,424272682,161330311,33195596,21466465,983481274,1615970508,1931600959,1028292315,1457348861,805605185,1450714887,133157389,468995898,1879504746,1715459789,2091036662,1987506437,1672750017,1106224975,263714151,277228035,1842740004,593127767,471605195,905222820,7706317,292105426,461997110,392494980,714854813,378271366,456580257,478404825,128522358,733882358,412044493,1302260266,1233088981,523279100,849097625,695394519,24236473,805526859,964546179,1740376746,975855151,2049020314,19692526,820908914,1828901288,1410562905,822618105,1496423198,990613926,346007695,1593818795,111484027,327202860,1577165341,1440188448,146732235,790666804,1764614290,1299561849,735756975,888770794,797267628,1497104169,1075241751,1114713408,96277112,1268928554,1548554580,579403545,1028289346,17993982,1845991973,1113492207,777684738,1712923150,1822882049,291672045,1068621294,805661648,1148014938,376480392,1177482702,973013463,2113945037,1823007179,1100093790,1328585453,1211993960,1849998124,1813168252,69039824,678874208,1697591883,918681333,697639149,1798122596,137869407,1390201543,1708151751,96436613,254485979,1296894970,979645547,2016471434,122765101,623403838,1988399293,452136173,1074054860,1827498871,1597303155,538718203,73746755,1188912439,459330692,1994962951,492114211,236305156,871451665,1998026327,972130087,805959919,23093281,803598890,176384504,1594023654,1909251838,1142758569,1293665249,1012425601,1409403817,427240477,824355864,967884217,1520446752,1251058765,1755838427,759037390,369186401,390400035,16202581,71099037,881679386,1934885162,556845232,1306086666,867047945,1699443459,1535459741,1451732734,577895277,1366959259,202690789,233054178,457233914,970220862,2086268322,408702701,753083748,438578898,876850535,19171899,791054500,138763830,963352541,905510515,1012229461,1486127707,2089597072,903155874,711894081,155622383,452684363,834653239,1747062539,559490336,780777035,1982838195,1292311173,1367106693,706723649,1612801993,330741608,107387803,509483739,205569339,1635225482,511111475,1130544151,1681480625,1026672511,418209667,1660320831,1447898509,2093893005,1562829719,514819336,1623276125,170423888,1994506891,2038808931,117336626,1919443263,498886396,644056146,1975596514,620845361,1085618260,1588422699,302083433,1915322132,236835710,127096892,1182177060,563699607,811271028,1086697674,1075021705,1483008742,1478626766,256176365,580806631,187439417,1340457669,1357833822,1276185629,227048506,454661266,904699383,1156351238,1849147120,522041883,1532587015,1383183415,1964097021,1032944900,1765338729,1780906371,892096488,538239306,450708995,663393115,29235655,2123698088,1239747033,959531367,1034525412,1056778755,889634201,96390878,1732719496,1507446027,540140113,2130101169,506288601,454859635,1337863671,884236135,2011450434,1837300369,1178563276,1911586180,299547960,284542279,1167040816,150601055,1063172162,2112376115,1668469654,1468619210,244357533,192816184,1989178300,1445138515,56522859,1758642785,1902618694,215803507,47889779,818939821,135449410,475572611,259293125,1313937781,863512344,852240712,1829460,1009734917,774214578,651327190,47350479,1819581589,1832207132,29676636,1479215457,1570518345,2010084162,2002421985,1888509724,274222504,1489711190,1122432020,511510027,310317359,1755353181,1542569776,355044780,129462902,83453114,1045249858,1981091126,544304268,1559101458,695212821,376584388,2076438311,1642281107,37859077,1235839900,9759346,282486684,766015161,1641915624,323866818,818313595,1739994068,821594603,1260935384,801690801,1845979536,1699353521,247645322,1783879297,1394356973,1638042938,1930497144,472250054,1957951412,1261432934,1947401451,668181080,1253594779,881816940,2090594773,1492777085,16900886,1501440217,110541409,297000762,2112594107,1549097274,323153820,2109561918,1312976569,91274156,1781413938,12523441,1566993391,1853147741,955306114,1903139461,328304109,1904558603,75110120,1464380037,2031458396,1588080491,741197914,152113494,2102310450,108058169,789528928,416179054,798849676,558944715,654287190,2005756871,639328826,163949387,991449168,1236312159,1610828372,888394729,1296756101,1729669821,1115451248,1322569537,40310557,1823604106,98951347,1986769591,1812309920,1406714852,233126241,86975987,1185669567,1239958077,1949628106,2022816079,2102798543,613068833,157940575,19700644,1546805991,1799363512,493151136,110525084,1040170808,579094574,714291013,188916276,1980374552,1013968065,738367263,2114080854,919465946,674561328,2077808656,341926517,1689735172,681455473,1683722197,2013226820,545543844,276925967,1040329827,2049098109,73780546,207204314,759185841,255518285,2036491700,1268962211,693685450,1937434745,583712050,1893451226,1942821024,633237333,1937316466,690935149,162852894,1377620104,1409419546,1602863571,1167634977,220997948,1991534123,1942465455,233717396,792422071,658319943,1222577975,88161622,867333027,1935612227,1660117053,153051235,1064037382,1556936161,516901277,804269749,1413488255,371362030,417255995,1848943463,1151381793,1627711749,343583674,799126669,1576257282,1306346886,587087003,1867465814,1463874055,1995472666,406967165,1869694491,1285308301,1935719701,254853813,640959131,2066918820,1479350306,2103171766,2126105899,1933717047,1794107935,315412610,1691485351,378922295,1317610034,2046761398,1440236555,1568075880,781210743,1590234951,682927531,293323927,284502705,1964368500,1420255164,849790107,906069460,1031558020,1737196337,2075425973,1013915544,95268640,1108560486,1919721166,2007617272,257968972,1289735674,1089521735,1409576576,471955209,534473546,329371798,1739964334,1478372362,1212521477,384876563,2050295231,1812533396,2016691188,346393711,110621876,1902153596,690733145,1140254306,179686776,1313721323,5139234,1744087374,11286206,1517745834,1887560659,1274879853,1663175188,137983201,201509782,997121345,1429101706,854602555,42890316,946128842,339417320,1944520710,1529101547,201239312,1350819654,1400829976,1231778998,1002830019,1332793810,431116407,906699635,1358961554,254013901,89751160,1166076469,488635608,106707967,242809769,1964344391,203718771,268341018,332365709,629614922,345445556,479838023,1344231584,1782689007,1166453200,799754801,1598731869,1982250089,1938917343,2122090677,1867617392,1957405936,749711177,1917914111,1816229838,1540322165,474756159,849798316,1482849337,1026463439,955187574,32581073,781178927,1396491549,949422155,614346701,122329621,2093442580,1971600238,2064810602,350190044,1522009241,1816749644,392170057,1071114679,495561828,605438997,637479568,439278307,1392363774,532735717,1528746847,1876519419,398194045,704849425,2035520334,451281938,1879833739,776211015,1221470233,241386629,2076288906,1786682984,1678706661,521362706,841823032,889457276,1031731429,608429479,613014412,2117552453,311803842,2055569560,1186700330,158048303,703178801,925242704,1517268276,1567962822,1638904930,976723579,511153259,831967570,1786155034,638229799,898531981,538806348,1831482361,945740775,1413358905,541783703,1173218729,598437138,869696562,1730617020,706240563,1379378450,1191899627,471701652,814377039,174156250,507789850,644641596,1241964238,2007872784,418966514,2014349116,982424379,908264179,1060488357,1537968951,683156783,809905441,915214667,622116669,1238566679,2130369897,1986908712,1257807093,604294509,1129741903,1722202247,1816655119,311174203,1957595812,2064167673,1469619612,1429972185,1514800251,70424492,1247934122,2077588954,1495644561,1541080777,1778740424,166317774,167142814,532808491,628891799,1229704212,667510004,609616625,1729569689,1557107274,873681143,1311726499,1551785187,1656440717,1773715510,411514459,779322893,853056984,384305537,132014510,1695058408,1722506346,1392099557,596312324,813847519,1047026589,2074603012,398705499,2129002830,1821609754,1337004891,692772395,1785626182,304242665,2009620064,448333132,1644775170,1478395857,976624422,1071202365,394880127,2075224453,254279874,1053267095,2049819365,474119984,1475376864,861487303,1560127906,611031854,1840071623,1724981390,2044592531,356307531,1032241139,1629820318,1868541014,433361918,1583321898,1745913693,1334164521,1141859672,1070986487,61379633,386233769,167331484,1555846580,199045589,12532238,1022005228,1907710839,1106755016,1302372198,697079084,1636764485,1832953479,790810309,522907592,1907598530,2000554047,990941674,921248775,1674482507,1904923238,1956334825,388683997,20902538,1161115857,310050004,1734980946,21506893,1318594148,232250832,592649611,1665787935,1230372655,635196404,25548356,1892845980,1695141860,1021713381,134594551,1103404757,1864661642,1658398799,1109650667,1398167675,1689980243,596136279,1577298081,1250492517,1424950926,1069235757,1242856841,620825839,1452329301,831390428,362778166,1249068430,66699859,1614024707,1215178497,776624655,1466612888,1618430605,1781481399,1009890973,165613625,286846384,939306967,1916212526,193313744,206035774,956259571,65483614,1656698476,301511966,432572777,339698265,1637915510,1776305706,1543950529,1449067724,1039317683,419260369,1130690985,1736637132,299442009,1884797652,1639678300,620906058,857625810,1565521762,81686631,70671222,1513378029,1848881935,1043295863,1897881365,1494035656,1228866282,1711196948,612221301,831321249,1307259912,1687275556,81342025,455394336,1507253619,2073055350,2080251274,836423773,1706859481,475047515,348900974,672647313,2048069420,1245933436,1167369789,411044170,428693454,1962959207,298912346,911455919,1413155336,1424563480,601199946,1688107279,2071397356,2014501808,178537924,1814798575,1106858423,988521295,695214919,968684069,909611829,428270900,1695496818,726612149,978633936,1385623924,234412956,1306756733,1528652753,1494736348,191681913,2083120074,1076347659,13797773,1098903248,673905098,1582237510,1327218554,554513893,1921147526,1831794610,1574375809,389512883,1792628464,382962323,2086700438,809932864,775083701,367155116,646962894,901616790,1400077411,1479520664,315520946,87397262,807595612,1854541018,1093211049,1963601770,929910764,2025550406,456051033,2055351794,23903296,803307915,2039753192,1210989845,1217832188,1297084190,1065431933,126215258,629280682,2057085465,1681475121,1459913628,920320365,486589558,1384712387,970652417,1327135169,704935794,1126411636,1337554540,601534310,442273445,1496954206,718518836,76887544,1345164257,1069941459,1321780120,1229258202,603932288,627802250,1280647507,1928312795,652097362,24327243,1108289744,158257833,1868443936,16656412,551402636,133985213,181270171,1185831664,1181692161,1759167721,2105282880,900763410,226339001,176363558,1657853070,893386736,1760588976,858180785,165351014,773262481,484557496,81732641,497967568,1162877585,482126946,1704960165,915288424,1244674012,1507111548,1328815353,819797083,535634685,580271422,415138471,2106268677,1530723404,1618096019,517075518,1072093950,1306866243,84765342,1671980727,211924687,230024285,1485865275,1640175782,296247111,1355115752,23415738,1745691973,4859730,1704517557,734295679,999709247,1714474866,400001237,1008687557,870288581,239450044,868261523,1626761138,2086003501,1732258390,886083272,1516980901,929673425,1113350986,1429188401,2110132224,347952113,415115722,145490621,1938839202,847256391,1216180180,1991021438,286735127,1003566108,1266256596,1370004461,437274428,1217194642,204102810,271660732,1375357162,678191509,2037632731,1493052612,840390841,743501437,1227707386,1555826132,608906572,1263325543,2116231712,626250122,472962692,485764663,532114348,1313003391,1395217854,1590419071,1500800812,819468082,547579243,1695971435,1068500116,428574367,529181974,1868649745,1414356882,866653598,1114085229,1914692833,534768248,1288443416,1137233614,982361811,2748271,1272765758,917428216,55137242,1997585546,1745562138,526721136,762671147,751227090,2085484708,1843414865,1703069056,1568918181,973736371,1336083449,830450631,998830344,162066750,622653578,1530151700,774546214,1232020818,587543679,257819870,498477041,281322857,1333572338,1229051462,1725754094,1476724763,466359551,149102653,323045879,1423635731,347748296,1984391615,1573337704,2016908554,466228065,1352333600,2067095795,1419696101,704794906,699837237,1519591222,189178253,1311962108,1560665927,405562346,110965116,1394120589,1265578596,167449855,866516847,1783373160,10305134,630757042,1219244431,254521636,566453376,1960372752,692849868,1670432624,654045063,1698197776,1695249832,108104497,6199627,160165274,1962360396,1441543620,651431336,1760549038,271913063,1014565968,1964404471,1791791687,1633205182,1988607949,1047922022,631284882,1051967077,641555971,677417986,297250032,53942615,1056122269,1503946270,1833981869,1433677181,1787334954,796353653,1351006810,185610935,304103779,469139619,1055527870,554309896,1472630391,1457434408,28580786,134429757,412218671,421451591,1144642788,2031709203,1669546302,1282093337,759812780,342377968,1731205093,204271328,832013115,1866187047,899798356,853123245,848706978,1371609540,1696820705,447246603,265529674,1846558479,1416675919,1094164912,309671355,1599544429,982172756,127618976,1868595039,739343964,1924214703,1445397652,1916322952,185501960,1331988553,342221476,1375448549,1951429159,1998733261,878481457,645417956,1874720577,1620322779,440677201,811005577,1763970712,1227379738,691164596,1377302411,1105429207,1464222584,746854575,1566529037,1165939433,838494110,1513278765,1893114605,317870049,73127879,307298588,181408093,1497360897,750362225,710457151,1795841319,1945539788,640244514,1088973353,1563812041,1825070362,1256934586,356453101,280958910,2003147127,1584200450,766323026,1380218154,2129340790,1962968139,355831292,569790434,260882645,1877532698,834007682,1276104399,847361249,547984042,567351231,641434375,814030437,225057085,886795412,2106438746,1197275852,1002180743,1061410054,1558472439,65719913,1726768981,1660609926,1637368007,855892767,1079985790,190108567,149555304,453513743,291507261,1036563486,131892282,710925633,834332308,1641157694,992645508,1908544809,103440597,1065188765,525743210,2059941461,1022097977,691403618,195226527,9263215,848391837,1119660023,5497603,98286009,1430148768,766488064,170909881,571787007,1057271870,442835818,1645615230,297789123,763046308,2127126131,920480312,916049226,1285707894,1340934180,63019183,1286879245,699095155,1791072147,1833146676,2007927660,1089921407,1734717046,1023691491,695302076,819280591,225529331,498932676,43692810,1858468948,734151629,724233541,1852995476,2040537529,1051412522,2079959117,1252751442,238262937,1221161533,804900841,895394356,1861179475,184867143,1302549959,1059429702,1877946175,1027203438,27384582,1936319897,193229808,345521602,139272912,1570569676,431257088,1754342470,1182317557,608856839,205436265,1433213622,1702054426,1664244770,1122332693,1844224975,1444389917,353512967,1748566186,113354255,849552957,1719287186,1506396831,1360762017,81431611,697329669,1641695113,336070311,1786564605,1300518022,1371686985,215318666,829078983,291838556,1172741848,450963812,106868574,678913760,1574832485,1032330128,91631625,249960393,460747403,1689326386,1549288548,526824337,921065463,164657656,160499647,261042526,1633542021,284943922,1285470521,1822486493,1408094403,435417729,352191107,972077350,171236650,2096424667,65373529,1121441369,1165850926,663772031,2113482359,308946036,1789211707,557309426,1423283639,2027015903,521804651,1876229773,63276498,1068842371,1481233112,154875673,2037548560,200612573,1225685806,1851143829,1499409478,2019626126,1626165492,2113376394,1290170230,862844709,1674670274,1069928396,770145981,661973652,53523678,1584706545,1600410684,1386688568,192823361,1352723731,1001230798,500000463,1037055061,2087616300,190053918,484503065,1951282026,1606943540,71766302,2083643260,1107825143,2038902332,815865358,115781215,1296937574,1898130227,1352543384,2110588227,830995442,1327756266,42174795,1929749066,2119995605,1126160994,318211944,1471658161,1932111631,580555884,670950557,419741328,2077668786,554094393,337339445,1655969626,2000515623,1937914490,983428472,1202994736,475967293,953528733,596168351,183405392,187427420,108151469,853868819,73308137,889440855,389795071,71745826,929074243,1012033319,2124230306,1641827623,326442815,1693730009,462718067,432517473,583461919,1486441172,652853579,1459512037,24387033,456684887,1580993671,1694066934,158769225,1488169220,82329508,2089076503,1864415744,1526229647,182289968,1743618505,567802536,601460780,1343716440,913146450,621122915,1954547054,1645461738,785492337,877495888,1737463697,2082268007,26219683,681145865,577683181,162395836,1278063896,1664034171,1044289373,6178960,1909991320,1749185960,251529167,835154743,1954905662,1105344630,202574050,732485865,110279258,1059944514,1075531660,150756376,797635229,1754480073,1437729200,906939070,532010852,1856152608,4189713,394469877,261963339,1203567894,1726699101,1338525139,2108293351,1922244691,1370285058,617788944,740373455,720867503,428014735,1228110147,306887473,1377779733,169925986,50354994,761238853,2021389686,8588673,78902,228068859,210057543,944734479,1056698021,348427514,2043731395,1331353146,1202205153,1689979867,657901642,1088490664,866628300,817222112,2045142998,233945885,416393177,1991779106,406727439,908620830,1389302649,355779127,318115023,1191964628,1606990286,1036716599,1411075544,1883713996,1392708548,537584359,571321501,1782325199,806313073,281586394,652314655,611298385,1030767202,609006941,2005083713,559499156,1240201969,871056570,1261555806,1801305889,807797149,1884962943,518232142,542342722,59146550,1030647817,1846026014,1546630886,1729605828,1348207432,194430455,481032211,923302769,1637438969,1097840234,1030541326,2092176799,155758306,1232458082,1828328597,600909275,205498282,240739410,330248689,766451013,1776355996,228560115,1535162988,1784154385,508255434,1425821364,989581241,2043272156,1126131158,2101302350,1826807274,2001098718,407915248,393487049,1138731713,885047075,1733708652,2117750593,1612931075,973126817,1958215615,877675398,1685317095,1740946070,1881760283,1503751281,515188827,1426183819,1070700238,1979458804,1105588928,1321000487,1293547523,2097584820,61165295,1783086190,1213969429,1913657297,712001819,1161475927,1290281473,383126058,192765928,102990516,976921991,510978938,274004307,658206478,1117141108,173009022,2130535864,1639823744,1320348602,1457489307,193503467,563592133,2008439773,530967584,2120806820,1482702849,1088404388,347000294,1314417996,894437275,457196061,1784867894,1507120518,348197972,1990313816,61963444,1629500885,2036270091,960726697,2122598270,84848196,1730669619,595736540,1220726828,837947632,96639086,1890926638,1190969266,506833357,712496584,322594990,1204269715,1473458515,906090869,632526140,1286294292,1045129514,1150925796,1222254366,1092375225,1943702204,1482213280,217420056,1588724059,1516356899,1268594595,1660122261,26424883,409507176,1631058224,1675704440,248013298,1344327431,1934714911,1654325831,1774260880,2124985869,1911825280,1919739555,1342977213,724342324,106778922,2035939462,978019883,1136380082,379346602,1832934541,593229755,943986315,29759994,112788115,600647134,359687238,535906824,2101922716,50568108,632935311,509157267,491740800,1785302487,1102162039,1878373121,1419684646,1307195516,524760813,381252754,204342013,2079838294,455828431,1000906937,1557096334,768289898,680976004,253870588,859190241,1012681137,1668840518,828431606,1010095380,2026680377,1534247242,1721100851,1510667222,846851590,702747775,1481569833,1677457361,1730594991,1603483107,1412825767,608751610,72961402,2126486614,665988539,1495644730,1315930827,520622977,673264080,846660845,941070341,560462795,416756703,1665157838,2003436592,1668600037,1749811882,447668712,255834119,1505030772,1531521976,1622087955,1370842775,299341294,1283894313,376758506,1216499592,1292712305,43264929,294712153,1432213483,2113045382,436587458,1303840089,137685235,1412568137,130210150,1336573136,1195171254,801907667,995839202,921979038,701423118,1736015600,1594280684,989487904,1295146715,104442854,892977305,696647155,1762928135,1715020816,933449243,357690730,1822627965,98837736,1032554213,83382812,1657540023,1028447891,141070272,2105037146,1252433776,2097953215,1789309345,352384549,1918382006,382215361,1413682661,2070570844,1849659125,1232064828,1848847884,501501789,1732766723,936159130,987493406,1779979652,324449662,1424804840,1720820020,359485888,1722695480,1506314797,664652963,1443476957,1945854900,842372338,1744479705,2092541478,1858270762,790543282,200660048,943721021,415476525,313673217,773927395,1308348825,1017324983,1136976841,730768588,1026849506,2111921050,401791681,1513905405,137546448,1862390814,1303161950,1813397072,1139843362,1421325773,548671553,108025607,9532646,1950322493,1169587758,458823485,248090836,1118575148,516074674,1941662943,970999732,1926408795,1337043385,1503890657,1765461353,444315556,385806536,1385704749,1551301448,376642811,308576980,942698035,625783309,1913189367,48311964,985871765,1403847089,1080051598,794415400,445843960,1139730124,14615311,1606389195,1265384952,1114870710,803219021,243451449,1619252993,1320296527,589436124,1990511138,930383033,1871563823,1867607205,531739224,392422462,2437046,1412897360,585393271,1602055156,586445466,1839601924,156346367,65469344,1472619734,1601441316,350968200,1487911029,115624790,628830578,343395859,1220997157,1209666446,1291353750,1730992713,247129029,1861495215,235654257,1425922463,554437037,172334472,1562094653,1807625938,1920361723,1690907228,5577426,1651985583,2094137512,1791179463,1463510724,2026426766,1274453931,1454872396,182867489,1616220683,1351883180,510352114,2062721975,1331987765,468059732,333392870,822899309,1060317282,193828835,625570090,1050935092,1536341265,1641854703,697976155,1032864811,1766118901,1657310190,513430362,152084649,924532979,1534693911,19391194,848243612,1058725710,861263302,1484881421,1125136874,1345096224,630817788,696638649,846366204,1848692281,334598175,1267253302,517027778,1865590976,955471498,2110160073,577376578,1419996555,1195624425,683626396,880532640,1588782252,226259870,788999390,213651669,717255458,954389001,2061177919,1811778454,1109692780,1212648452,473574288,1824686149,812292577,1490325055,62307206,1481734004,1660659209,1579575508,1788764503,1768143417,1448459097,1142913931,631271021,788358190,1269786717,381259498,1639095187,636594695,1905355099,474353064,460884196,701665348,1399655455,71387182,432910893,48763163,2048867527,1413963973,1554125922,849999363,566507879,1703221791,1264774867,684593858,94982518,37620735,893339206,1332806733,2108977967,29557010,2124559531,1212845081,1346427218,1171686651,989634783,1496815497,170514756,24348578,1355554695,178084858,964110261,635753553,138120315,1519141550,1741820286,260244922,887044395,2015873478,1166460554,1251773900,232714332,88565678,1870159182,1630724507,1920491607,1380215397,1301503719,40496285,1387680619,1378598059,889879260,32193499,210041634,1717557115,792515993,119016108,1178957897,1376200223,1574455977,631521894,192571821,1297781158,1112652545,1851104416,1470524070,919696564,702530993,2114859573,2035175041,566317298,1465940531,1807455455,31356783,1631613879,1006093549,280734249,530206329,1522090006,763946403,19986439,1584056698,682250032,1269317992,977584776,2094607301,99158868,1444189448,634747790,1547453736,547613513,1527899299,1338297373,2084185825,408759077,1002508399,326183410,360551605,1327686758,1993607829,715304858,2003588501,890192315,1219361352,495144006,1092692934,484106880,1714488214,1905294414,1723255769,762224313,1993881665,1279748316,1043849337,1274861720,910301017,1185694106,1185438321,821923645,1265441847,1537785275,1956799572,403057975,1423235976,1725495618,1511717160,40078870,458785036,432729774,972937113,1742419528,1785362240,2081109222,944349290,759963015,886045428,2010502862,364925873,184744623,1771341831,525150819,934000560,465553448,1049298198,2091474254,402417481,889270602,1567853615,1394801862,1187105013,1340196404,990554982,1233344617,1731620503,640490569,1004093023,841491216,947284568,912552979,302747632,2106514080,706813491,1534228491,1395683646,907472428,659347358,923224940,1447146447,1431059088,746957604,475338026,1316398832,273489268,295267334,1907900728,316831581,1086387856,1760499144,315639245,546043722,1781129874,1850975933,1658679349,1559835831,1969780946,1609125389,267371398,205829665,1059766218,473962055,887854208,807552573,1928671862,2105150027,847995387,753428334,2030832826,1771028589,263184554,918307518,25546258,1602696011,1272019477,1966761185,1258336231,858329167,1002230965,420398780,303908818,1724470697,649894629,434110370,314458241,1322699495,1013739576,1796558708,1972637335,2118713719,225815909,1765217535,319021616,298773014,748524729,2112077353,1862766122,118257374,1813493623,1950149955,1708579089,520402878,266058413,1943273206,667295691,590471369,896934451,448259890,1010428546,121171177,1426823222,373732540,37386169,1235354803,1447675208,600073240,5404696,241736048,796830434,488124231,1123358130,541403042,348333300,1199556010,431746589,866244343,312615442,2072605059,1824390799,2099720031,512709311,1410196722,1429785729,237618349,732620872,1799679487,430572874,1506366827,529752350,1854294010,1788349722,1644899320,1824379069,1495254375,177415974,1482008901,206438526,67536704,617474033,1699418896,772287780,1066924679,1085803933,1622419856,345350623,921852311,1579603118,1923870075,989652057,395087179,833545519,1950002053,536071424,807101137,210829475,747457226,2058725118,146486705,207731762,1695509710,639127496,492578403,915918712,1826045316,73244533,1450626808,1583197816,672738361,1935483137,928329926,1481208447,1652070541,1508934493,725373833,815753419,1240241035,2118060734,447461774,1663254690,891553595,583096376,2103336396,1990266334,73611794,1104788430,1271887968,370625555,671568111,1430563588,1444515243,1127284320,1411825389,190336774,1358266360,592337770,1937032499,166071024,107555599,1285114500,132894214,266068037,1091971078,2021841317,732217732,865247322,2127702564,2022337222,1963234986,2073637960,1285903573,1698307273,1624158224,1797491884,2117119895,1182135213,4427972,1789113801,796388799,1034014706,1557084232,102839750,1133158806,221041006,1696060824,1502193480,1890843416,1510183544,1779374079,110732690,527439595,1139881679,796019752,699764939,1120006659,550154330,1180514635,1730718650,1599826145,1553218069,2118895098,1473303440,1481580496,1620665911,829337376,70466960,1333978123,1883994834,231697014,925109815,576411814,1886791015,1649722301,1300648890,839388989,362055990,2002550523,583481383,1254737905,1554292058,2097133470,44704504,354325656,1166009582,1099779765,598741055,343938711,654521438,25285146,374104976,2128012031,471145948,601613043,1019850456,1837903441,471513488,1456214958,489881537,44202768,1075409261,1931681839,1452962574,1571087956,1722243864,2094628170,278828507,63972111,58217298,690471561,580879085,1918860462,1619130144,463887981,2044022311,1072711899,1720818891,361519181,1692829381,261917736,61432972,1551705628,685804067,373847534,253761407,126196818,1270512998,1063515026,609118313,2072990571,1944931181,789918642,1517131982,1952050210,470413284,1957053240,1210074675,1552616608,1900639964,1141415709,443840360,1666859923,832571442,1922476060,1541471899,1257639415,1807781669,570751874,268509023,856118399,1212084153,1772966523,1060735755,791471574,1619244329,811668024,2023605940,1144940235,1815205410,1606045564,234445247,1133787543,1316189295,630799994,534167234,700918255,27546862,981379208,1800279812,694615732,203366001,1660921903,1766355160,797998139,1846320931,704698195,1018438455,1341397844,315644858,1969020374,1854808868,574915984,200989256,1564297273,1003217400,1235609807,2086294750,1600218772,356035575,197745200,227487614,1738723007,1832243552,2072137285,1529270226,1109641886,1758736372,992806219,145835018,225922567,678552744,597135494,144956482,1185887717,2106233856,735596857,970551369,591942005,1293417300,1986992600,1633165174,845316281,673957952,578118152,1259617369,1457661419,793684040,632762971,1931409217,1828632268,1335237501,13100290,280021511,1622157664,2063538799,1875349704,1892194976,1384329227,1074841670,111662453,2071375517,1946474898,799994976,1918247111,1795525744,632546533,283720390,585342438,490521851,758959838,135561359,659147817,1362816046,2130159016,580225800,369613444,971403081,816591146,784561271,1508923633,1881464125,1396911198,1419787670,587288447,975079108,1179292920,802177844,1100346312,111616075,1383499757,14982342,1291922552,1659217507,1627223945,1055665399,1937876048,413347049,940318914,1129444907,641188923,471178254,459158748,1644851382,343321180,558190417,1243434442,1526979780,680152939,62069548,688313736,1177972986,1512294928,1320929011,1540659263,261045584,1053429945,585506037,1122185607,84856920,94705873,935609464,1999932096,2009754086,1348313801,195644196,2091430419,1318712035,79788722,1425622180,1430366566,2002800305,252801725,265689851,1352116571,1558942160,401107627,718588079,894861271,1192855686,1369486255,1524229787,401491201,1623277995,604892706,2108396661,119288153,1922109570,847512270,724146066,1106640464,849266903,1160339310,2122210983,872766422,1168159857,1318055829,1582711550,1724789966,124856226,325335808,1565682654,795376382,454844544,941370727,1452439697,1905283242,1975964153,389197510,1283764061,274531835,141492472,631667563,1126627361,358480055,1770936896,618613954,265673857,1233715002,505994500,454982188,676920718,873861935,1691598234,1597602991,1230914253,711827085,385948681,102611096,578323769,1870786081,1171071415,1371369810,674490461,283881697,351097127,1047579284,2110704384,375146058,493747913,662243087,454527252,338137825,1739641563,1262985957,492822860,1678213767,403620402,975170682,845127824,775646159,1622097587,1634186900,1381417402,662206539,1193226960,1970441981,526483306,69269844,1948052247,374221841,918725548,1175800714,1035891856,147443607,1159446737,1759577566,625553968,1389414676,1401858028,1794884328,1487420287,1704452363,951550130,1472135123,1878121668,757796668,1229616128,298298543,163998966,1380386350,1965683331,848446212,678367435,574241892,46570843,847030370,6114520,387904856,1462282747,642339080,1223507336,2008896078,1215079339,322775964,1332679996,293124641,1298643376,1908101379,745607327,542629366,1544416875,213009924,1385331923,867700752,1576380111,1770086034,684986090,1133974788,1995639714,1050527652,1346715602,1576416743,1148294520,157515868,766423391,1010267045,508168002,1716672433,1436634315,1954887900,517878881,1878766691,324706575,584573985,1972543507,1393975740,806050465,378087372,153444173,211214220,2016988052,661727209,1844787733,552541016,1656730822,1142981521,761930924,1991626524,326105348,1319919112,1284771433,1681464771,1204845775,1364872624,442361219,1976514945,1462767722,97646930,1769819617,1719766240,317724249,1226121034,1943968422,1471130519,523155999,473952593,1430095645,468008766,1568897065,341903722,696557683,1417028127,1968754206,1224230982,187471528,1474781636,209318540,337916189,985467227,1484734872,215413801,113203607,798008183,1970835379,748164021,930301128,1487400209,1536048965,1971057183,1969319526,555464341,645093389,939660320,1146343949,674080542,2090768190,1414038003,710926356,791411126,838479527,1001420524,313690167,1723478218,1338160055,2097326868,1926573566,1798229953,1181114754,470765596,1845525100,1101848009,968866429,1262312059,38673531,489743811,1190845651,503059902,1617183470,206937202,377165368,121594315,1127028476,1559861748,1947872391,1604089434,1524482792,1317712286,105658929,28741377,1358078706,1758433977,1126097547,430706478,2054467947,507668719,1355858911,1363706539,1502819787,614204537,970952182,1376757772,966530406,1136199432,2047599130,2074018985,1198730854,320283023,283089216,514667601,631297161,1387958353,2054504957,122289944,449267476,523309489,1833949212,571311605,443683321,522068187,535675398,1333596412,1835502800,19129954,1490163922,1531646793,1456929130,2054868016,1540132622,774521465,174586995,132647273,996224388,508384614,1120106409,2074501914,1326192901,1010895618,1774050273,1709499072,132069581,312989769,528302905,30154352,1457508882,426696424,1404333939,1453612130,1319752018,2094470990,1072347152,379441828,257043173,1205593713,2070359381,1126693132,332098153,1321703128,1497519332,930180045,1098839897,352862031,923909660,76225310,894529337,554100647,615905292,248730350,267353838,1963717554,61335964,1082799296,918356625,1538979508,551864422,187870615,794457024,724873217,592053485,85931830,779591941,1456627056,1097660167,223477641,1399629625,106300279,325856896,948000242,685442816,146042479,1424602776,1378858403,169697808,2045232512,1140210491,1690464706,1064199730,2074053953,1661640302,819078220,792645180,915601825,1890921223,1113256844,506501242,787047086,1026941540,653344538,2009886155,871776609,1850455943,1268021719,1594447867,1974239338,1382118079,1218992559,844612798,381765722,1610074970,1466135434,384066809,215893012,852029317,1055455565,603948489,1368652113,1504713553,1915808796,426581479,1629661951,154758861,1409292129,859884462,757727565,2080692793,1636554146,1876781915,1881727857,1827193369,595043302,20644991,1834573782,312284286,567086454,1037198394,101542258,460304804,1021725530,1244219940,1477361996,1029503433,1040390574,1917797716,967881505,93625891,1085077731,1512891817,1418091976,660892558,821004672,1392147662,1829641560,1645971543,1827949788,14611516,1397508638,2107877948,566738437,644813948,1835732075,1428527723,845519138,956863444,893282583,1927301279,460554938,316852955,735505235,1219361254,529952163,92042881,1744892434,181876251,960272756,1271829775,2017381965,1849506527,884987449,334658399,43658625,1992180478,1515576450,489552344,1998385171,491892538,1599815575,1287029359,1168130072,773146826,1941158478,606023495,1826380675,1103507334,1012690303,756643533,1836680534,1496467164,1289393756,293944575,87400408,346906665,1522737714,574917784,457446854,2106257817,1033093001,1854966284,1374369264,1055949156,1404055117,293382418,654207461,1380363684,609378508,1899911655,1665832746,1287438833,701086831,1022451487,352317890,1798636484,114894137,1762991474,709206891,609187774,328611030,1516354758,645174352,2128708270,463041079,1601966280,1942618072,69210281,447314358,989689315,332993652,263649475,1633536959,2098670141,72678585,758094418,538366983,742547914,1424928619,1666040926,234657491,1218154103,1166889457,466005286,1886862368,1093744578,114578984,1731263236,1930680476,1203485892,118909107,307492556,259490649,954535193,1353114189,1636599558,984122890,729249949,975193070,1121554013,1049009178,1737204298,1786480384,1158168040,601777147,1716954164,333560949,1356200575,941376565,2192738,1293003097,179768095,1267723346,640042487,583726313,364687145,229424058,284572182,2036275583,743886506,1348543911,765874236,514944677,1392503077,693465612,1630463410,1096015547,2023342828,286212130,736068257,1113901605,226727643,1003475519,1521192768,1527489652,1262428524,677865447,1566676966,241068820,43409995,536786540,986933453,352634137,6646697,2071230575,1855124771,933191939,1784858398,53717287,1135334744,1820389487,1755143272,1453461797,666387706,502953804,1470496725,1021446169,1579639861,195366402,2108370669,1225909628,1524346736,324259331,1892773250,1696981006,1927444821,1379560886,852362270,1432357200,714833690,1150422246,54403577,1634535134,1674122391,1452160520,1533566663,1140203887,1152365235,227044922,1345848293,1889309981,285173379,1116668252,1638153494,1942008710,1913619472,1565820048,817755375,1226879000,290770551,19038351,1004031353,219337499,563692801,1837185639,1979353594,191271091,2007056760,1540559536,2090800365,1825031860,412509370,1788488713,1227173803,92758981,930630948,779503606,1440235540,107236130,322884189,1810038203,1766044458,1916660187,1000437112,398680918,1268928573,1577412714,1700236742,1958753256,646921139,909275683,1883384914,724475604,34775357,149123859,375395663,200674543,76451513,1601158666,1940765944,1809915065,836902739,105062078,1599636385,932468848,1484939941,293939909,427252841,811812945,1834505108,434301077,612987082,277628998,1087434783,1840731937,868020861,146485973,99633371,1258894413,2051311088,642144205,1960803729,724555045,1332457548,32979732,1535830924,561792347,1592712299,1232333729,646475426,735565388,526969774,1376339622,263117996,195166833,1751780075,827300263,1504112604,1128657447,1803109119,924235481,1973848084,260289604,1451535522,282472894,1625084460,317363337,2069531296,1588011139,726882942,595527550,806503139,163044486,1228741050,181400297,853819707,1526818885,206202644,2014069602,628746859,271526609,1752374469,750811966,549681311,1511752086,824552164,1287957992,1883604918,678521207,1321867018,2105520613,499855445,1617564090,1249377209,1181497313,1309745842,638110213,1222168798,746355962,1011525549,820461714,515211413,1449027377,1580908564,275289210,989805695,445350824,1949548724,465583520,1621902921,1919556294,631107121,1551378272,2092302055,2092531082,1218649767,689176301,1437747362,777356760,835951187,117425828,1044587132,614070570,1349102702,958529133,277083911,1047115577,329219593,1632572904,1784153407,221807275,1867398326,545194566,1567639374,294030543,1271927871,1143501634,698675217,1693770286,128114945,2116247677,898415390,1460815273,1507862969,1777773695,47687481,10637888,435387391,1033488179,1244687250,1267524414,1286899743,1568791458,1041066004,1556773788,1077659492,641967774,1129674878,514151485,808798057,1391433307,1226413793,1195143607,837482283,1736129175,1261204768,1301520627,258864549,1365051620,974687966,415668261,476761831,1610365413,1694434133,1981306310,1582803270,1595092495,1434753482,2003254240,1447776585,17250843,1528825649,268795048,1036480271,1399515012,1583871422,1745261520,1086474488,255860615,1391126395,572754188,73601443,1479537972,123009178,1668987523,1386005585,1892108633,1456574084,2077128066,1100619647,1023934546,243704926,1732028213,623019305,427591718,1939086264,516564047,75701617,2037918377,676229875,661865175,1834790372,2032272074,1847788817,273355878,1227493676,2046295459,160181211,640103383,1752687813,1652878269,83669747,94732011,1340156987,1404132323,732446408,495590993,1557318011,674895417,289476962,950761968,729644355,1087597312,2030242532,1912835742,2009627134,1747353815,736358233,792849375,1167254958,703111954,914536878,615732780,160970879,304777494,120709637,1729832268,843031771,1513564155,306696533,1359179487,1454701245,943431500,1768631378,1005725938,453489472,1423348371,1225922400,1900501984,1674149811,2035476485,639058802,1520768578,1718724925,409497390,641642567,1998819962,1895674842,1516842858,756706294,759125602,1216166704,559085216,544987061,1463192077,1418728702,1015950449,1395200896,1008974877,1433049405,1328287353,1089230894,184270740,191605952,209474849,2105251996,76608098,1716870427,1412337103,475414206,493138534,1139125783,984919311,461995644,1297898580,1793905358,1676912412,1570760937,1211929375,1940034630,418593867,1080246258,1140255484,1567416292,1436185252,966661774,757851466,299087347,894988593,943214279,1578116836,2051712166,961874370,732086625,1468523857,1254369745,1008286857,1489165450,424874230,350483920,1015293517,1691803608,293298067,2040350795,117640986,231720894,540093344,2019569651,1753523858,810179956,1190358839,2042554301,554423192,416176609,1579302844,1894957111,892607741,763133593,1409793450,427933380,1510751440,112467837,1676014128,1779229848,2055809398,361347096,2083652719,141840905,1756848669,488159971,1020668679,890600649,810927274,1609618754,769720199,1451359039,1310414074,232877123,1776957136,1882615362,403264772,544677123,520001329,39122865,73547965,336512819,1548009292,291134383,1564806973,1782147724,1647061063,645659094,1143156494,257973147,1327840722,224192532,1434830573,632284175,1620177367,1685088202,588153834,658695753,2018078761,1055106952,1674760736,741005607,1402857247,484601478,520492361,179591252,866936013,1610130714,1502330665,994729316,2005354244,34405753,2024762067,216890126,221855624,1584027230,1844556303,2028553288,1655007970,926725337,1440877931,323160776,1619290907,1960633273,252848431,1654080417,1084241269,1409338727,1986257918,1543631752,588021607,1264355905,360259027,1758454515,234137014,2022459704,1720231377,1748946031,2049668573,995644129,1906161804,1152574354,836420429,1245063593,1107884087,545394180,652516730,1296933851,1144430600,383447702,1315065426,1368654750,662569197,1721642630,368962158,1511984079,1635759427,476918391,44714641,1436763222,1327595646,1778542525,984946084,161881899,1809931616,136789807,91678467,1178612854,194121806,1154629766,2120133626,1688533975,1540306203,533188234,628333701,757578526,866693850,905061749,364806074,1717666931,1191382162,1351652741,1060124439,681052963,2040402586,1089467485,93133299,1528058740,1373590773,729251232,1203885273,1213660845,650998798,353790438,1537368094,1789707636,572704999,1897221714,896093070,1112431114,583117493,1551776906,893364218,1197954880,727007532,1674915360,170901894,1820387275,348512939,372028197,633843222,1421829143,375633090,1648781057,578542506,175864080,271364406,803137638,1872155732,1960767598,904394967,724234136,1803480396,1484908914,1657963138,2010621967,2128334240,1512848175,1538871577,460964490,161604126,628007271,2067184952,1975666004,1473035340,1139134241,1338859674,1409368568,1702854205,1786828702,252402929,1871541825,19019086,2017700927,1949597345,400472854,521546857,769272877,7419399,587207844,1847579373,633359602,1497608256,2020698948,988217566,1214967560,1481012810,24524161,266436945,1676529120,1974834033,1590573370,376410789,304308424,373442939,716963772,423050387,445434362,706379442,1307664742,130208662,94238733,870803112,443325707,1965107133,1781479757,1277178627,1805427858,1508929579,1891898860,1645157673,183432635,618893184,1722039441,2067456643,186261463,829384425,268596266,1667522728,1518492761,109673075,1145442287,111833052,849614311,303833064,916649588,536466968,1249962070,2129646857,1757244873,1004546529,67568559,996604234,1606123593,1602261545,1660245768,1287634784,463246607,994702523,1354545883,776617249,1014684817,662925008,2076511686,1539956364,394444105,465986258,1394269255,1610591603,436738438,924857684,227005281,1455242489,2076494632,424900462,966351345,750300613,1719887277,258972922,1268866682,1820321528,1785097098,1675624656,1548370351,269002818,616391167,1451983363,1414519322,357829054,1318533130,288271897,766701254,30932120,1220668288,887748135,31530065,1942108581,1014673243,1793936542,1042892115,155399310,657424462,1790862726,1036865148,895971901,1544692009,131273460,1372514919,1091441982,2081604856,115038012,973025767,24103657,990119257,1036124368,263426373,1293758391,960591836,1330238967,1981348104,513588334,1247780602,299527954,668892816,1593852058,1764733705,1368133366,1210239875,465459997,367218548,1141816549,606336525,456238211,532730192,728904465,310079250,1838874194,1775292988,382917913,2050853309,376958515,274954628,1574351697,1647962374,138437828,20580053,998368618,556134949,1124134351,775328315,1652464165,883449689,1888274002,621194926,54315394,483964232,219748146,1399057639,1446870507,166766028,1815610848,1523425018,1279064055,1914406391,320810918,1802987779,1337002233,1112236363,342611121,2048483418,775095108,1532236800,256445890,901777659,1975251283,537349403,322985649,1644978136,313825387,2114274289,677053309,926771175,286836081,835409070,770745313,1979051070,1505917193,421497389,2051502914,1795768880,912779863,169175140,1006476810,965472895,122744970,338767427,1243237174,1694140544,1181903063,1430692263,1412832673,900770100,1662264933,757910779,663177183,111617805,1526621730,1749115466,1223244306,2092040242,2094894221,1004087483,576527673,471518059,1229036096,74912474,453074963,611756401,1821217050,1178153026,1513300710,508001207,300706285,124181121,584356746,185383754,1214924669,569706694,1226728701,899822651,1887872595,1578725509,1899812599,934976490,143030385,281825605,1278140414,1041364709,478768438,1080600726,582786627,661055021,698124015,1129007779,1048329967,2077383162,607591728,705650809,1459369892,515087219,1744471496,1253421140,2043740826,481488810,1879847255,817816234,883127529,1005248591,1505995852,599799825,1395658421,494610782,557235085,789720375,13317849,542555060,1741080240,406906819,1327452202,1333435834,912899712,900576910,638080689,722930628,1642877291,442962742,291923874,1506753157,2029301768,1635600808,1680422107,946217089,804474924,580633452,603700918,1650346574,1656941139,391160974,1961971381,1576633015,543817265,135206673,2129976856,685290506,418135698,1177218525,2059845880,433378282,711799870,2079758436,1493204282,1954581509,1829548259,779925462,668656112,1554569390,81309400,654697625,663504594,2027308087,146445319,1194789461,757539534,515512352,1513526212,128867981,1146613643,1604238367,213815671,222925527,1731399695,710802159,693533041,1600310801,1899521975,1585655521,579705325,805148948,350580084,1376738246,395788883,1385457008,1380533360,795345926,1168127263,542583659,1431023173,1688727264,445589458,1946590538,308490992,1562997489,1625804045,596872778,1348407387,1501165467,1411039719,1699732132,766434282,40155882,691849923,1917789558,1620753350,235644208,1253992326,1122611657,1177039935,483904568,1381234519,2085976146,1105078784,1035128590,951093385,1006288477,1225709030,1561292162,309859213,1235398976,1610886864,2021734063,1686349465,1408202271,1076971065,1605287507,949124204,550055773,1762277454,1519905471,2099301513,1114701880,748039083,380064470,296540564,1390444768,423239921,1874203814,2103599968,888853972,1144849855,1883306031,1985218531,1745115442,790024078,531466041,701141533,1430720339,1382416544,544103063,1862166246,952964174,1851191302,1456356652,1050001450,1046793208,1994359028,755617925,1830101728,1872472937,1366870156,1302579534,535129168,206123659,385768011,783271482,973422732,1841401578,149980165,208625879,604312035,612471789,850685775,844360188,928107929,1732785646,153057786,1009780546,1989872755,1317458422,1624867168,1708015983,258538635,2094131819,330275274,1581401069,1113247340,806215386,1856548776,2048301288,498293010,1755663739,158936551,1225446175,304192628,260535252,703792864,1406414091,950895356,1545637983,777538971,977318826,747465124,635258532,312187056,2055953311,271411806,2123972932,1098579877,1913775383,2062311283,1357964509,1922943452,2122257665,1514457837,1167244117,149320506,352850349,1648694553,705368033,2110076727,574644482,1551582397,1672385032,1755423925,1834549842,1246744026,988218201,528004224,342290735,1586591763,1809722828,1248706763,1226620808,860104062,1134069800,1277433095,925546347,419585965,1562227323,1308198889,1960515122,2121643216,547697652,1991003540,1217162525,2099283834,1924464860,809679238,187699108,814108556,1304875193,755970563,319457021,1668463704,1477806271,390711456,1444297831,2014113189,1925725244,929401605,1057272866,1305700530,1911648258,699328942,1935930305,215036662,1070869198,1433219528,2115962078,175114333,1260906990,1135673453,1774067108,1379308468,658602308,1817966075,196476398,342917361,1084583011,1970408281,1737201610,2090286586,243636110,250679124,1464234142,1369645016,1814499361,1488938301,267483319,1201537801,1793748040,44292604,2008378105,20142133,902483732,325130827,1266492273,657740754,296133417,606006913,237783217,1813111173,922636708,1268003530,1196620577,183201861,1196721927,1824645198,397436048,1475224643,18029599,305732091,982574731,1337680453,910692125,1707916524,1474170456,690118192,1490130760,512093110,1268751635,1962915089,647111726,551262809,1350669027,1630875458,211317276,2041597471,933469197,324881021,327284436,392690586,1615232241,1805192354,1787722824,1058060301,1770237435,1447923917,1400533524,1478096592,277683295,423732425,1143017185,620075485,758482465,277165109,1679739880,1152172064,688544871,1375562335,1222801840,472463316,1775311148,1798440506,1998703314,1587396767,507604768,348203948,1096019391,349385188,1873890928,593381006,1153025406,1858952950,1212225941,1140634360,963775563,57560161,753104528,523424134,1226162021,383656647,2127999276,1802659575,121641123,1042100967,1544484445,260659040,1760611306,740933325,126959135,28627773,1355474126,930665042,106998608,1089098766,2031610984,552298506,1700600049,1467995434,2032048665,2087053737,2106142315,1408263575,776790916,322232251,1644415554,1198052527,2119301863,374527848,160415217,235065685,1767316114,1304225357,1061886733,1348684874,926267269,1922954875,1782195009,1545249424,585197571,1301217008,1012786776,1809444553,1511218385,1986653681,306382302,1509570735,1751739078,1395921079,132065106,2072342144,1363798966,1008487188,1057624037,1400214632,1459953362,1083370895,1352158716,1037519482,929558714,276962618,473628146,1548708470,754409712,72651990,2114319343,672862825,1941605859,765750544,1128625776,1599800169,624430922,1978482930,732480820,78524222,1109729645,1787152745,1486889485,294282164,1055532762,1690584294,661079116,611075451,95898097,989223034,1342395629,1621661143,981123771,958754901,816075083,389009400,1243409590,1017116096,1381111991,928243182,943113182,1714565850,1287888050,2100640797,535529086,2005462365,1842253322,132690071,1136518207,1692296483,101062253,1728589186,222468735,1845069580,1252809543,63087664,93593013,1546994015,1047545705,376549047,360664026,548286306,338703242,553820339,1609041061,1318946434,242271711,1611551612,1829221023,549280795,1116502497,1329618391,1048940675,2006096761,413743868,1847924888,1621454441,1257877059,1132082181,601275952,1987693116,810963674,265400504,2110738282,7254922,1684564184,1267108073,132473623,1501511172,22160630,1874165696,1919005648,1948644198,1630542671,1971371661,1895672501,400656338,776958572,1970493889,226258375,1488295636,1330597578,36915718,374466738,948793762,1885175612,1571342712,33903695,615554890,1774693199,633542685,1689473944,1551852627,307218991,539962419,1413385311,1003932464,1196711662,1779649390,21155717,582227245,785252794,380016833,2082578062,1789451758,1827283513,120288903,1625737495,1206928663,1531790056,1859966608,1051837349,1663736634,244750071,1603630496,1290244071,916999448,1815223415,1372512317,1530906002,1424868393,2041539296,1893071573,1389650424,1032778703,1276267656,1214408214,368619617,795055483,2123822744,670612095,2042626704,785805393,1501591952,999761706,1355394832,210906845,287706137,1193465658,481934576,2063194024,759329903,753904058,524663401,42766346,204013020,1418558433,826947217,656941525,20025170,1527767121,743333452,1570700408,1497441729,571148393,27680420,2061730177,265359974,1774011835,1433284648,513303196,669610710,229255472,1462227634,962426512,651065308,1541766705,1314496372,1124119758,1098131745,42975581,748379738,286462923,306339835,725147427,17393553,1733272697,1685041695,684212730,861590653,1527499121,1587543392,403952007,447505611,1752628873,1358131218,1668425155,1410805828,1477630031,97957028,1146615363,906355903,1341549867,652924395,1691082695,984263783,1161621782,808624705,607527629,334124119,915739329,689318471,1925220697,947084968,1781870789,1813656116,383403941,1660328071,1076494070,964480298,342503232,869979958,1943250269,1527789468,272262558,1052461258,1422731763,2037223039,170730122,278566778,190727793,23216448,271368270,1372959225,1073796885,502314470,1054441466,1432429509,1037697113,2037028957,235714022,1702782089,1714712975,82219568,544166882,1879719674,2005192060,1220485644,1293381086,110045883,1044587666,314056195,1479422057,1218798356,1806410654,1618249752,1331819639,1810687608,1655440986,20221874,1837823738,351443986,713632765,1999187756,1530509948,1562233273,502250161,1045403627,1011782253,1390523763,746601218,1839812351,553041297,1115491396,1244426210,1515721831,1102427012,929262210,1754206598,458146154,1133504835,467779857,1788283705,2061328629,1371654518,877959829,478684279,357217588,932964599,872939459,73850081,1750604250,407111912,2110185570,1836880420,1538108126,1949686962,2013498163,1149489666,877949067,1927465262,1690347233,535478796,1475247176,1969918218,1606078842,1793804307,2073653240,783959289,196460874,1698440619,318009888,1831857016,1782644810,1856718970,206656315,588996672,39976615,874014211,272815448,2053359083,1246979487,1565706463,1871653435,327599328,679151279,1032513150,1479189721,32394565,314709698,1499738520,456988657,661890304,427687975,1820630190,285831574,270445939,388894041,798702208,1224197648,56392006,823235256,852763354,1195490301,1513406454,1991562737,1010200176,1030102713,1441426078,731732963,2052808951,885215556,1493385282,1363208152,1320761207,245345770,2040179122,167365974,2099402139,1549699842,712429787,1603520627,1387240603,332130643,317773255,339551447,642144658,614347932,131707860,1755285278,1042554533,620643998,529107803,1623834978,205687806,941162643,1755978505,543617360,1868455031,922208795,281816514,1389547493,1760716939,1929607644,17378167,1016948726,1363459010,440138607,42489173,5148980,1917391203,1982086267,1496715145,1894715796,130313101,986030863,1399383555,214147914,640227631,1758566964,1695314944,1997913843,1815640950,1602135506,1876845323,1007880158,1175219212,378083586,1894125248,349231264,1695235417,1733768470,1169155878,62532985,2068291690,387283153,823953931,150801101,212517176,896839459,1100659312,104299529,1456760375,628614810,719630437,1638268956,311321388,1485236131,222789513,751184155,819274253,1138019290,268203339,2057540940,885299699,819262491,589280994,674846032,1199973266,1673653853,1947837152,444832487,1699530211,2042078332,132238057,1765158676,1786188714,864231251,1861857924,1779706182,1476183463,1127877706,672897781,838405567,1973286076,1040235654,728506847,682568093,360486446,567472745,560697286,1880008975,1636358869,1273267774,809239755,2017501023,915527913,767452376,256407055,1872671282,1612436227,512215630,1503240186,1541028939,671158771,1469402931,2020632112,536229676,1465970729,648775628,1482588888,1541631358,27296056,858040534,976338627,1785621211,1695225002,1922655298,1331471651,1117688292,1608276329,1663738011,2094895040,1576674056,257635718,1731150231,653318132,1959266117,157504918,98597878,1744977137,276023767,252274191,1372522119,327604581,877351873,1165500216,1666650182,226359821,1680329939,1966206103,564471100,1006069972,1965444256,1655846785,652105971,1125975219,1065363453,137294917,1027120848,951426707,2102333643,1265461790,1260121062,2031249256,1083045152,266805645,2128696661,1750922097,1525664628,558534923,113657195,760212399,562897713,1777840848,743045777,748280664,502931816,2044708215,1448959524,237729409,1426192359,190603671,1776352416,466704011,684427806,1993698324,169911323,1466044673,1843836016,1294151682,1118070186,1563486637,1735497453,650714382,317953113,1515680999,1288067498,1072692892,459077515,1023850316,888126891,162259070,1742729311,734920222,1355708284,1730413163,139101995,1629735518,1487245767,1461513341,1923532405,901304669,417951944,892128830,9201467,1063414484,794277657,443340197,626949469,1998034082,1771173945,1223402203,1827346157,1154073628,1390926172,109564204,1379515585,30041093,161860744,217634644,1209737318,172480747,183056729,383924660,997015216,159631290,1789891221,696417566,63718698,1936368729,54704689,1993690088,1314661557,120719207,1841121949,699632034,1658054571,1557054568,303055327,1602487736,1290258569,1277265376,862530771,273606081,194876974,1640249615,370121503,248349683,2111147094,1610530800,919602541,2005717188,530733396,975975222,1814445191,1320805079,579406666,1668510393,2115240228,299742650,917753549,9385865,753453147,6638509,92156240,1553423029,378340904,599608669,1967060686,956925188,278607487,447026041,277053350,773009344,1214796102,859025854,465680375,870241648,781572010,463141243,771683215,80118502,1026042774,907938322,177632998,237660329,785582997,1224860783,388592376,1473441302,1669900791,460330907,905972058,859455063,1072866388,618162928,683617902,1258506876,967919267,860714083,679976657,895904800,607205384,468159763,1672423365,1377346340,688147408,2092157205,1818793637,1720818158,1124026917,1952914909,1443445344,198546420,461323420,1148180234,730185597,615072056,126419390,1835040709,1092405330,350710666,1216920182,851995025,190130060,155655913,2047603762,1345199617,1668411633,553372407,627383821,92312703,1946608202,100468760,274225136,86844665,1511793945,984868303,1786671672,332752712,758514240,1881168935,235948976,2046733047,796558145,1044354110,1899818092,1648275682,262594851,1223063211,531827554,1055285516,1567065508,145908529,661652999,342953044,1566081124,319826201,763094079,597918987,1427470636,1316855472,1489344617,727945509,1442303120,906796173,969362206,1670788607,945017636,751139576,1285002223,425797140,374115,717726882,2058629522,560760191,1981408962,1864627878,2068771454,1089801655,746445514,222158847,1917145409,826562071,2076038784,1337105408,1768933361,283409981,1393775675,716197683,1899227443,663027078,1593215946,798317943,1041893472,887500709,1823502394,2077868678,540193689,1837761524,583289172,611694935,1095871911,1186662141,1089537456,928878270,1156766643,630485926,778375574,1143919135,293758362,139357181,1896213885,130719224,1535819815,1493588112,382360964,1317554241,315432227,810003771,789527892,1290816301,906149971,1680235982,1338421660,2048563954,663255555,1711312617,1419682302,657765628,1842276230,1601169855,1341196145,1231030816,1116960586,1035146580,1657360892,1880589061,1703480773,985495587,1124940417,1746976927,1820652639,460463197,360164155,1949855120,2100560939,930263904,1600336151,2024244693,1520403255,2042122126,672540770,288459367,1810655203,1079492830,242823340,174242510,1790417003,297783710,2005835851,513405877,1580266499,774255959,2091647281,836240080,665990859,1629021163,2086831150,1856696362,1082229809,1559395320,1293019496,202924798,880973879,1546153057,1847909194,967686477,499101252,379298823,1788098359,723160104,1966516443,132967723,1107127928,595658305,333168522,1729985743,538837215,1885610657,1338261998,491454945,1832330576,932497431,840404054,717485874,1919611904,987304325,863475679,1583881040,1453689805,1514425561,1586464531,1247317577,519361495,1934514448,1928633289,1011465432,1254972029,2103630713,446284157,925479130,96700644,1869766699,1504701868,604626572,674913525,1320197045,1655327197,1507540588,1873412073,1635775988,1001882485,1953654182,1603387034,900014034,1591222786,1338814634,1445572731,2120097491,1006678205,1465773759,507616404,1797578754,970526986,1079443870,1855440784,1228489710,2116894123,959204153,1762170698,1598019486,1383148507,1991472183,718346972,82481224,470350414,1214688772,497255535,1444428740,1022014115,2120712493,1465310913,836898906,697168738,2117831220,20567349,740095286,1378292916,1669822878,1321963633,250087825,426852329,954882007,1102813532,523471637,1085385156,2056704402,1632271283,664104136,611977232,1441914936,348647808,1865343208,1219473535,1209469739,1561386676,866195752,39858079,374846549,119430190,1345653124,1948900944,1434067807,1264255662,2097414869,184052188,348488170,1335011960,547893307,1819874125,1865650703,1608039385,930624434,1313592738,1416232369,1790066853,493987147,1629917376,385336166,730712039,1422859624,865907236,565150723,448174257,1671659486,948181627,2116805449,737693069,250220171,991604154,2002626957,1193180542,1296053514,1311471522,153344030,151364661,62465507,1927007064,1790820523,1672574993,2002530937,1906173018,1853766796,2071010033,1942736493,2045485110,1810108197,1553468701,1839728002,1731139150,102136777,262785850,1425122723,294208868,719758746,1617257373,1525482977,44137771,1050450657,493039813,1203303006,431891349,422379785,1332497217,823865823,1466854187,1370713165,1573163755,942290258,1319938338,1059826487,1964991027,981096090,829600024,1890633819,171790809,416345544,932018877,2076293163,1599425000,1109156396,1841578997,881901672,1424750230,272392467,1521522730,231288679,1423433696,571425059,342832929,1025561036,481204336,1108711450,1834244557,750864256,1362113577,295580218,1918465183,634556736,1573557095,824890950,1767290662,545175330,1076548676,1325221619,352115072,1263692137,1608947292,272970886,1625425256,383859404,960626320,1888958123,1625120082,1455706960,130634145,336482999,597437459,235811363,200860622,1369165570,877815638,1387071612,2109609637,1322848681,1041359189,1995902525,1699672337,1526695327,887359707,1672631433,1046621390,37083632,1379342868,1698243982,2034501968,1750903439,911890561,1198292022,270050385,783221680,1896752714,197631090,1571217932,875954652,195591007,1243024328,2036923948,1634971447,290619849,1840746723,2079582192,306186718,974925647,367132390,987184524,911540678,111806765,749229458,141922959,375344394,1271722843,160932366,839899108,548729860,217293501,40615953,1178168154,1024769857,266939042,475778277,1753103175,964710595,1167670749,870911980,1426621582,228188533,1935577812,282734953,1371020038,1142414373,202836360,1770013652,1071764059,649653037,631063460,1600473436,74951828,1873594554,156874950,2061002505,1251731607,1639554820,1162774937,1018806561,75593352,1094560890,1062414998,1608210756,1241339155,495164430,1497046919,196287172,211335539,1212444554,662991214,1036375537,981438196,557331250,1920459505,611935840,839213027,2066813873,804812336,1498579408,754827576,1929949215,1588841085,1233016073,937690206,343959924,722083571,1995392008,1660396884,1423107124,1420438182,659717355,2068329655,612110939,1777730889,1509903600,873408000,2007242359,1238161586,1228375461,1547629031,493589121,1962574816,745126277,1415932392,790326427,1119826717,979626616,269810385,692535931,1809706419,2129347527,1598793249,1364154489,50724447,1517178844,722631184,1566976102,1218296529,1985567155,934846874,143452850,1297221482,681409142,301858503,1106553189,1517135337,1501687103,1804115062,1015304613,953058068,985791602,1239812242,932171549,1449796772,553968198,459582909,1040793547,894994737,73950040,1623434368,472185788,1588422371,922914860,1311904845,1953980717,636938111,666758159,669818807,1126333615,1897226731,51834039,814923751,177340917,1112903719,376439028,1631869879,679454444,814251228,176066798,115479878,632984363,939239411,299973302,1753498268,246471960,834581598,140772976,895050742,1972900531,1967308958,1655673841,1965160306,1149919640,633197572,787493069,1538047280,153717708,579598379,627423135,1658058610,1371308794,87308069,1483942378,231363730,1210795333,1497294213,1974348136,1884281631,1447837858,1287672516,1005204330,1666851930,1655860636,669954161,152067639,886130958,61361441,1907045601,1355874823,642939490,2078577423,1713049386,823838005,831808659,626395926,679165832,2101493530,565931150,1110878523,89108513,1886183445,1190291207,1249716846,2001314604,1687568868,1917159243,57632983,163161524,633282537,1713259046,763266730,1027146786,459501075,1433343534,1460786707,1015017059,722230837,187743796,580046180,1664993977,1497246802,2087515698,1001646784,1109568616,1553702184,1859811560,953829503,728916372,1558609515,247878175,1166731745,245586929,983709595,382281588,1503710839,1925898414,75832836,1537397740,1678911010,568893169,436899703,1221105552,930967231,976241147,969814164,1788202440,622756880,1058056968,1977166149,688526086,1965138396,1169263516,867978615,624565918,650654784,705268333,1666568901,1015051643,146591385,1198051843,1893670582,769879406,888462905,1374883312,623846157,481135566,1454808913,1707428902,104218603,698807539,1778858047,982165886,1273789552,2101253706,592755445,948284153,1164893232,317949229,1433579267,1453699707,479438585,283857542,1918127332,1357424208,1866335897,125880212,572724033,1168567892,162934231,436699466,1430942294,202066422,1300218366,794647770,1738804529,650000288,1728572271,1812659342,662935555,219676433,1129283949,1929626946,90068916,892248219,964896832,1782837934,1275805607,329833182,399206002,765164223,1035209504,1840800753,256175463,562698640,607687643,1244739927,872248740,764558217,708095197,1970453227,1070786831,346372223,425960582,1762704007,997454201,188503475,338326314,579121738,2067990476,46685944,1534793269,993480485,1958427387,1325584426,1754865850,2087474090,1195319971,1274521637,1987301043,653431053,347450271,1603838883,542537071,1820294873,1749088821,278032912,1257189136,405705052,266198132,247769120,2112011352,2022966953,86173288,428027059,1011790423,682261548,215924690,1290540079,621169039,1920426737,1066775869,144715033,109116012,1144285617,166373719,66625222,1961417319,1540396877,1653774113,353536844,1577806506,154657622,1926058471,243949387,411407076,991202155,2101417477,274327871,1071595734,1775915706,73083093,1687605100,1843365445,496361925,1602050540,1152831338,1729641128,188408330,879246654,202677883,1055763819,127415841,1955534762,2043130738,881062502,1211585840,474984975,823744463,132515497,83777205,1841541072,159596757,1513162400,233146243,616426184,1795164767,1954035586,560735463,488809900,418075293,353635674,551729163,1565764663,1802053725,392611486,1873929436,37678614,982473782,194741303,1397221221,1882910471,982946117,1984198619,525544002,324341640,212597300,1861455250,924649187,983445258,1670605362,191791992,966085642,2009171909,1539976177,464168084,1919812620,52957216,1440699722,1045353728,1583549405,515044256,1758217025,1102374290,722116535,363590588,905096152,884375413,1801958028,2040673480,2106397254,1568325432,2031953572,870548246,2125544274,554401459,971651002,745203633,1293055815,859962118,1935363434,2015488704,896655695,971965887,1178812495,911852630,1811060706,1509556252,495138957,525815393,602207702,1163968268,779701412,797732808,1447502968,326535350,279095073,1915408818,1884416407,33487207,757765928,809247450,831462962,494684495,1909473979,1453035529,2063688003,102339059,1223360015,1155389990,1430593392,1268242984,428688246,1355280140,346467634,1153578671,232737269,1843044900,349969206,272689801,280307516,856926105,290309808,1132066233,1764590846,1353028787,337417610,1486842297,1400716061,264699611,54062567,586354136,2088757472,1365459390,2054530248,1103123833,84624945,1956959201,1138050661,2022865988,2113323168,968389340,592689304,1373503216,1758032077,734820972,479567516,343483072,2029318559,445558384,249287967,1550840247,1785349937,657476008,639396174,1380485979,1724857812,902486185,1775142325,347285576,182081353,2016844221,1066043406,720249059,1741293467,1197548320,1037566696,161271722,1377055498,1313373784,820712282,532424159,1020297384,1346818244,578030663,2126473164,569407379,60079208,1294605312,1732746536,735985268,939257159,1480960416,1645353489,261062253,696595762,822496881,2087435656,536287229,1222214282,644351489,76761126,697250407,1990297663,1503408337,986434294,1384668142,2048477241,1615697585,635726934,933519661,509818326,1078914182,457632473,1620751976,440512100,709824825,1106629270,1914889205,1363510357,856159019,1596122204,663483278,2099086827,1184957311,1750792163,582266837,1456640804,546668711,1138406434,1054136936,1892643101,369505980,314824969,2014076787,798084016,429557961,1048377466,703427138,401407333,167922793,1954099558,1077222450,1890540920,2067460652,1324228830,263586514,1384949238,1237422204,1089227072,1348996320,922082883,819054108,1700758136,1056635919,911877412,559007230,288451476,1990068865,336687358,1989960132,1611703624,1447364153,1749413249,687168492,857920409,279506420,1563996609,1354311909,452570924,602283204,588810637,512235785,1057873609,1131599137,747644793,1345071118,792848254,1992323977,702427048,1572364715,853013462,2078762523,1304496662,322606394,696191376,347860843,210999154,1164361012,917149481,429663887,408449033,1490227828,167456520,111918305,1106675106,1274407904,1464769700,885028376,256170038,219049353,345209914,887626186,1788909187,1827252373,2004756636,844295176,1497224185,1547357695,1956668406,778467267,376090329,2007701829,1776594404,1477368004,1139782301,2117480919,1179317274,755787862,14024386,1194714645,649475896,1302504718,1416702595,1236761373,1669437506,463555318,1206197287,1922900783,1730177648,1637867703,856201637,1520968950,232041683,170558905,634971708,820502331,563391738,853803226,1490626945,174038226,2095034428,526720765,2077073975,270133649,2083311107,433769115,621282141,776802803,1962117223,1004743352,435093557,1767218727,1225953775,2012583770,1182267674,237100094,476178804,1988309620,218764190,2065344833,60052142,1387698345,1965585957,1183091564,207449184,805487998,1100467347,1896660467,613973466,1797517241,737997740,1965514333,1662785710,621272183,826150026,2062098488,1157088394,603112117,615334148,1005737799,662220791,1335025874,11539814,1142603581,574348544,478399715,2022801211,580757870,919552900,526752876,202218624,54980969,939431620,748998443,1905846439,322758799,792135009,1805751295,1661194161,1631487641,590019677,766462106,1892215233,163001130,991101493,87925304,981065662,801502616,1667130379,1096883961,1326971794,175473078,1924046835,1792399313,1655065075,1198830414,1128515134,2045239670,649578319,481655507,15271411,544407565,1638136533,550689715,1441303631,1371966206,516801243,434212933,1008836525,869570726,1738182145,486706296,1797849916,83716727,1811467076,1225971778,955615622,118529488,1601409041,102036217,2029309808,291010317,520896458,724916163,715270003,1612301838,1914587963,1325501254,1236245555,1235423790,916808609,1274229817,657948372,704503925,670467598,514217391,691087255,1505775999,1589721364,1198902901,345613087,1391572923,30176406,1957364521,1055636650,470600961,1586884566,473711483,1536072127,477888310,1570697445,2050158696,1129617264,1650747637,304309366,791215780,902353379,1909547673,873949254,568168208,1845128190,456311654,1852823050,1855636096,372204806,527033947,1098611864,116715790,1636156487,1370158879,1621805754,305079705,1732496615,898857504,825293726,469056439,265056839,735922522,244039100,1084866600,208391113,61950904,603907436,1106253306,16111548,1865182221,702164409,444240805,1317060882,1748021671,1944721077,1366526198,1206077779,1149771029,277085719,1175073312,1363291463,881655186,841119407,423612923,233756738,774484786,1351007090,501169977,1944956516,900302062,1642365122,1240275205,1280816057,1854418557,572189706,1112777109,460914912,228918660,551093457,1899650505,1000512381,810289820,1037758459,299079292,23653720,1188716134,692698263,741329898,254771835,455518209,1509883816,1447617248,964717745,492228084,202637127,1981294304,1236622145,669340487,1211975569,1749843133,76514347,765133862,940961946,333309074,550951515,920058696,1786696366,541158222,284808872,769910030,854055102,391914653,1985037168,526804684,944120511,1187484598,1700688757,539332596,1176529735,808779746,2087285635,530111615,2033609162,584154181,2079330685,127802044,1482107379,1993123743,36876002,1645295530,1299950440,1813587828,375505659,1137723844,511210904,436725431,675332975,1154172433,1804392546,990414776,262872018,107551378,582769553,675537497,216540329,944334132,96710076,1985430915,415314210,1448754973,113850310,160175675,1732361563,1822325877,1602631132,1321655016,1724923993,1595982901,722721816,1630523323,2116141861,1347318067,677883113,147267820,1790901860,1374713903,213092703,1608116001,1452669942,505906935,1251144664,1247152788,273263613,543031859,71215041,36636900,583588668,1305112677,20574026,1873224684,240889981,724903314,1181871111,1383347106,1134742521,927667646,1018964828,1378337815,476238191,66007714,511294238,1639954154,1856868710,1418584948,1300266681,480483040,551643222,1154564409,1450307298,378045393,1307724667,1998577974,1773073532,1255886259,1466017303,1327603797,699111899,1310676708,1134580030,483259808,540150125,971352939,1549852341,993637417,549581100,930408903,1577198148,212379101,656799746,374641426,576058194,1325307082,1612569433,641091419,588111736,1398716781,1586600243,237882473,752696944,1222286452,2109434005,340702162,1586849109,780523170,250922902,1674450496,821341976,1704071034,443650213,257811990,1507161887,4213428,1841677352,1722994004,1161823201,466355808,418475181,1547363597,1692279731,1020865293,1756930487,1406464225,655048951,1075558162,1763693344,101653165,1053006501,2117203631,1135441611,1614339477,1453486261,1937841213,620080482,221624127,1565348596,1081016846,1809134255,829058785,1755767503,262024226,751678432,1086541955,69848002,1818194124,99645386,2035062583,1545411018,425192540,922148362,116681845,1886206692,734325560,379670290,1345232987,810562916,1906697452,973255088,555424033,747037945,1153358809,1420342724,610138551,1032059032,1686816378,2005413778,1119618909,527978281,2070464332,1427990281,1659769471,407333625,628545254,624874409,80862152,95736501,1695689076,1556241880,54091434,1815016841,2012573285,613479340,676089556,1124442303,1549999400,1036822163,1142559998,1744543662,171807985,428980915,1116227707,547847337,2076768141,209974768,83655078,430688264,241190203,236974860,1045763888,926733244,147856375,587986041,1854609457,1466315148,2103217048,1069442369,305695196,1868369619,1687713967,1555517339,680058833,1743504232,404521862,1585913960,140070634,538944942,564144733,665443314,1565287189,201859661,1742543696,748346833,1111629855,2084123977,592478145,604394231,1017064799,1066441673,1221397192,1184383258,1943353138,1680532381,758753689,1564423545,1011889844,1379664974,718266254,1546217903,1595828520,2082387310,273730284,203012378,913561944,839023825,2058292651,515172816,1955759984,1719391100,614584330,1366238778,1917372739,905783005,1169654087,1899841151,1472098921,992734343,1830140061,1231212607,1200945263,1795320230,1016523472,527180152,1268846571,841722495,1149958216,585332477,286011495,2110049802,638619301,215369561,1440512886,779481740,1228841068,651519346,620804998,326333480,143246833,1161209566,1709159494,680345675,167853603,1968851179,1032995660,146670856,1066067137,1477521969,1706438430,763190574,2085917625,1021025694,1834940405,797927366,1077815211,1253403985,744825574,1004055291,1073491573,1076761351,1272481035,435983944,1177846060,800591941,168988907,2123230565,1433485491,646241058,523535067,1032238886,1004370372,1111290923,1286175788,1444670067,1526234285,397397587,71934489,1008035162,1475523763,1924002745,1882859730,758478388,1764755305,1734830520,1386105342,1390421014,1072705882,1502333526,401303884,382096770,871628531,493460619,585695872,1030524048,1645223027,1966220949,648085494,404857138,1597354088,462815990,1636125551,272660358,1086673120,1675650933,586192793,180201195,612167532,476629879,1080144726,1807066293,1874042370,367305253,1595252082,1575580816,1493458519,1519525318,46496297,1155155961,2014888843,1811335750,1389156322,703852224,686820863,639240389,996042789,1658975309,162749301,1240929080,2030367394,2087517007,1245772135,413487694,838816815,1938754049,1677626836,1078584160,560539844,1486653227,336759635,435917945,182917439,882102283,705495579,627369842,230070163,811274287,2006096353,184051200,1253404209,1600754917,1073729391,1598481450,1811136951,671155317,896681063,39083446,794075521,774564057,1843174897,1902867043,408890030,1899349389,2120788714,1983795582,1934445361,108185827,840524510,1967637389,346017259,994043538,801096452,1151012906,2067226521,2051068396,177419832,2109954057,98104073,1442136892,1633355264,1578448352,1709811759,1317424753,1104540596,136137844,544781562,380147642,1120240989,473738731,1578669158,1522741975,1464691864,1783691895,1239858772,2053734784,688042165,471551199,220323615,228500365,2084690239,219273580,824913994,1933750000,502896402,767885921,606445328,938730724,969004243,1250552246,471855713,191456207,122413552,1343241568,828541031,290400214,1810009230,167946925,1951134712,196733867,1129034012,1922044396,681131684,818267599,966136594,2078732274,499294963,1437294208,2107240259,574014898,1211749940,56470139,2122860178,837581225,452825519,986373177,1521882915,1944236724,809358220,1642961652,1071287007,739664338,1435931387,384147286,1495977815,2098801872,1126771404,1626807844,505707553,1858741069,186653664,6033986,1422742362,244992076,1203184459,679630339,300761572,733435723,2095293644,1180917399,1511775079,425591159,1199419051,947046160,2057932266,1619116389,772661555,1651337918,956380111,809270995,1478485797,503623595,781308597,707680047,973071355,1709820351,645625537,759766676,1446395987,750604742,281153105,807328316,113205033,42908871,1582699230,608664323,1423834035,1974826215,818693018,446295852,597072107,1593953014,203472007,1275561544,887867076,993585528,766176032,1122528161,450610631,419546762,331275841,1456816733,1791056076,477661760,993360249,1731239619,1844284568,1303762801,1895484313,2005568127,315143092,1908572711,1273324863,1843900185,1764131437,990823461,759490829,973209131,848675496,1426239593,1610597173,486486259,437927549,1953473564,98140428,1197840681,99543385,284264996,872765098,159523691,1968775749,526670755,1448436025,1344193357,1422912947,874234273,290607311,355555731,368182865,1695699818,1126780348,1543787469,2029026028,426741738,547334606,632645776,389842049,1310292273,761799158,1885898979,2033370265,1923333991,979429409,1877956927,841456375,504655559,1920801099,313570975,1367475773,2114126447,436206350,2096376791,1385081513,968845102,737278138,151144658,1091149426,896770725,27188787,1901999019,985636815,84790711,2011041084,1141375401,1088862169,151803049,1092196564,1242136333,176437978,1099113853,682204497,162107279,1300418864,1618341488,1396710207,809341202,1883785198,549791116,257996529,1965814687,1677895457,444290846,2107539015,107976609,1592249727,1185051052,1493117616,2063937066,1623980951,127787444,1053153531,673269365,1209317933,1143820330,966292852,2057929041,1394583385,1686570297,832411829,328553976,1969284500,933967737,1601428942,316518071,892487795,1061001795,1449574524,706516377,1619209601,766533704,148651518,84232103,1588928208,507757437,368330680,179740732,1752889669,579951582,1127789991,1175299520,1003447592,551548943,697097974,605973296,509149919,213683024,1233955356,850444721,1132008265,883402181,1291815584,2088373859,1454663700,1728291509,875487735,783605191,1791365081,91332254,548283592,1139202532,1743981561,1107978686,945942956,830688341,617200634,1266850765,998149910,1619358877,143185781,733944445,794757422,293509389,697801382,2034501430,1347707291,1420900933,1556140743,1462800303,1714684959,719476469,615334440,1426568963,1967755529,90269531,1464916599,69308707,352744843,800618773,1850531339,350195558,1495727757,1947238823,436210664,1357437244,2105285876,1336728070,1563928053,1796202024,1292603068,209096920,1085070811,252409284,763214885,1133080742,920515990,1563211536,1147642225,2099123479,516042657,33571767,1734166201,195959936,1123746530,937532656,209921899,2022897651,992357558,949699639,1435053400,1305660074,354455070,316535780,188414427,856720387,1752403323,417335579,1772694406,1199030353,2007499147,1532435091,593333426,300904176,1873115620,1331078857,783859235,45771147,1123793837,1724254998,354653872,510132616,1025927916,1130523909,1018765811,218779978,1599296025,2115185255,1778422176,1717110603,71713893,1834276799,1892802669,195131134,102532189,1714724165,1434607507,1484517131,1386091871,2095919733,747423093,990124776,514546476,111181434,1638996329,716113641,496536599,135397894,495659298,1813774988,1690740101,1148794165,415192023,1093818721,1486613193,882607195,907069799,759199387,1318280632,558958334,143830803,1359736479,1537253973,1919849961,1160438676,314987318,294323362,1039860848,795322062,1178013503,1833672006,1281757958,1005249754,1053015276,547292211,1578095700,971654231,2091149029,310763241,800741336,293032405,1850955377,1480390887,641474316,253356970,950544595,599402587,1034323177,41539676,1454468751,2097427118,1334547450,648109111,1189153813,538382120,699915874,1206103696,1346962561,115206776,1389346555,1919551107,146339484,1767501302,1638349145,1666397039,1904248797,1373613521,1997764163,1843765802,963440950,1916394568,170736082,627048321,571862363,292070068,334720500,2127287103,1710197043,212172738,2068160663,2009671258,808584374,1823427931,1211711221,805895270,974075196,1741439554,954983873,1491834668,625796293,943750602,880110912,488386664,639750113,1708476079,166074972,1716997939,1451953822,1157068291,1382783506,1754711663,1147065076,1447689760,1914352719,244945463,58817342,2094910864,797138569,907144561,377223643,832796203,1203255474,192814681,1788504686,1262362125,506959647,1123831621,1544928159,1225866943,226502293,681834299,181818552,652905080,337532721,1460903343,1956969748,717905293,761067487,1661012679,1534897683,973953810,1099819081,804003331,467922729,1197601971,216714836,1974487347,1426600719,1718488593,1547510557,2089033032,1006581586,1730237688,43960480,777789017,1337265632,2030673350,372347189,1371333383,953966234,1775095553,598333276,1650840585,442080261,1657504968,1846324948,23790694,1892861433,392560286,1324165846,1430850091,533130255,2095680446,1826451416,1255535397,1519845770,2087127108,1346106047,931551569,641815999,1277633956,128770440,1349775343,1140902273,651522795,585469090,117095596,1933294848,984962453,987093593,1637408562,1853558931,978270893,2126233266,30058803,1755326255,209172423,1314163451,663785228,1209092381,1107680132,739343195,1872464021,860146062,80187381,1801126240,495729758,810160125,834909081,260747518,622833404,1612593466,1680526719,480455904,719975177,1189709637,133053303,354034082,1909400629,33858714,1080893958,1035718010,772289077,272345411,1263617459,241831601,682796554,18290744,312711634,2004070297,113583645,65906364,1657118116,896004429,957087691,1276938234,684926185,634592676,997052202,1895496672,146553022,658407021,407853548,1337981156,1838475240,374573528,1317297691,838245277,770128355,1176510155,367705851,1527645685,1982878275,1909119468,278524338,2080999820,1279271931,156123415,24507110,2449223,1608088136,123251060,1890026849,1925731444,526194617,1250604920,1577795857,6077398,1663602511,1565804818,1611067098,46733244,1682912529,2113894472,1903330081,1466514399,552959000,2093290375,526926635,1430305950,459707497,1768715345,1866373771,1844086618,1676428010,1582330749,323563659,312109148,111721519,649478503,1697138209,1134897411,1224013211,1079982568,7900719,2092191204,942225420,431047610,656015549,1528618462,1519332171,2048615193,978469368,2094124167,544785321,1196397439,1498141567,1268799649,719160846,784091268,655774865,373027178,1106737452,249027113,1030103949,1466980416,913467091,1314543935,1357390785,565796710,638646932,1398812931,130995558,199792965,372352006,1406637844,1166238460,931286788,944594551,1320148709,1869017103,541024807,1604622307,1567701781,712073486,345553714,29412481,159051584,792324767,1072716721,1431810797,1740797623,1935398570,477611495,914104251,817617268,687116284,1308168385,2115696375,1425734486,1730759675,1299533782,699841755,2066976296,237503775,1289808989,1208424340,1375348399,1849650933,1029323355,864424297,1421525438,289817919,1325597519,1158153415,281426884,1477624808,1787702394,117262250,127064195,1701551609,1840829363,517228183,1801859986,613727911,376006797,1332210895,1336364047,1054889028,1212260050,22519270,819573762,2009868574,1892263857,237978588,699503650,255191408,77468788,901631374,442795325,266100725,1144231027,1626670195,115831625,1111812997,315415568,978669591,625788115,1507390669,275297972,720838531,1907692114,96003997,450441411,997845538,1542050814,1421436374,2079743984,1133304165,2060047762,780606357,1580577777,1815335967,1448732859,325418280,193869543,771202182,809215988,451085715,1184307879,1428613780,1215984620,614461579,472119071,1008951848,1310672051,1571787085,19913963,2010880368,24281038,1022336137,1526456699,808253412,1233858243,373776359,751145962,446343167,507431365,516905094,479223366,1624984628,460831525,1497557100,1961652937,1825059903,1218669573,470569003,1303358292,630145176,1503853434,1864281326,509682153,778239114,433541009,1614780382,492185956,1212774533,803970867,857015702,43638691,238872582,137579371,1886315595,1821174938,999896466,1225202801,381447780,2108536489,1121504989,240745738,791472585,1358509883,1465293277,961142971,787297588,1002962603,825381487,1983932558,1646507399,1091851526,168571596,493786564,989025819,529207836,1749378195,152435620,1008715816,1279280561,948446973,648628609,824719496,417403485,1979538729,830393999,227538109,1799991440,1022410560,1924155356,1147212449,1428136180,1026122058,459804024,749621081,47479791,482726307,111201548,140069633,1260351543,126614067,1951217201,1658308830,121354601,213599043,1130955576,1584908828,515218560,1554188560,1896690795,1051403625,511929968,780742890,750724346,2121749273,2101343697,815619661,763477710,90819431,875698973,1537348556,496895020,989544295,2032290295,1237411927,2046832385,1432403521,908661093,1149075808,1711579405,304693798,900266742,1822372289,206002451,557228471,568032538,2033494635,1238205758,1397742874,790482288,1796492796,594954340,868125774,1777256020,616471468,1777956390,1050119802,60073547,277013736,1630317029,1804367478,1442311690,1754900660,909901277,1330877746,1050640436,1541518522,1568878274,250006152,109257201,943438111,627525780,166731360,365604101,1382096255,167975864,1114869859,1980196209,465041230,477011299,1353814482,1920789106,1116548646,1366139489,764050954,1882201103,1960478972,1590646185,267695251,141488334,1182768449,197744785,1150585434,1538611072,2022744245,1853603188,801443357,1710632589,1598095956,553025477,752242005,742128683,1108725574,1561715758,2024896792,2034255625,1221618127,1507694380,1574026727,77485167,1764654757,356726612,1028281251,1118928866,609169680,1116936076,182321333,1411273773,447264742,57158843,95880344,1522238307,1582212563,1370859151,141828394,1753904413,1358037697,1237009018,1097190906,657647787,1100228083,516843878,2100186273,1838611756,122670691,491223691,548567542,1202214065,504062879,1054797414,1897257770,750171249,2062479063,1601395595,1870404498,300671646,54982787,1496086687,1619416898,125199053,13790997,1410264259,1778686153,1785028799,132321492,11339139,1506849236,1869253969,422582354,1668144818,1609891296,1360235148,1064187452,1374346013,1988484734,1273275948,1502286274,1971800914,631283142,509189721,2042590558,103944983,146507980,907944307,1201700217,573059112,148057470,1167094738,1149016830,1125618279,694835570,1584138437,157843584,1134601263,1851880298,926558326,1267812393,1468431262,1144252299,245840748,1182181025,1105959443,642762672,23439295,595950150,2108331089,491633722,2018425490,1067988180,1041617341,1859340255,140647571,574219829,245302970,739959115,96454087,188744180,941531818,892128868,1416559440,772341495,677155030,1406326485,669203106,501931799,152895304,1866480057,1480538592,977852225,412754952,1161023948,149946621,1568548499,1439229141,89825917,830361860,1586096234,1931686630,1163239177,1327655811,446418659,1240680960,2279131,526145900,1094917693,1252326600,71568663,1829126358,1924512784,820865618,945877011,1328850964,1372340210,739105888,1969485167,1515110415,540070070,1579452722,489834472,154684455,824487108,1947346691,1462351397,818853628,742526177,772739925,1209543024,401331957,463228904,396094517,1379165453,1065416573,2008231459,29159845,974765023,1975590316,813537167,643371424,1058580732,1460153405,697822429,804934412,270943542,1804388580,128195575,1839025950,512245656,1360586493,106892187,1413130466,936840987,1276740669,309957785,534868869,224556432,852884006,517337364,373037257,1616813716,1039938746,1360900245,2107454274,683656802,1657175171,1415389507,962375469,962356530,626820715,1183196446,1558320308,361578456,455700820,792466065,301588705,1324629132,1899734720,874075904,1412623269,489574771,147849309,1220769233,1505914376,932731568,374961213,345374824,58299434,1222238368,25697652,74941113,353916997,229397277,1932350796,1751673365,1014869422,1777174893,1473246147,1483773652,1169821592,738743264,1800514353,37942106,1616254895,630093485,1185117062,1124955740,1080757820,1140323838,1925701301,811866320,1351692300,589489975,1643795305,1329716575,252524151,2124879380,56172001,1901859375,1958451428,442871639,561409848,569203769,650983911,156476057,1539339083,499664668,1054431119,858145703,1724381720,1662663702,976847399,901505649,891835120,1369227547,1385273141,1127257344,818273275,909461531,669162900,1110272697,670233464,118665194,1569583260,1593528069,396783870,613774423,1691270200,1662207122,535663530,54294070,261036050,583878987,217277926,1015826608,637863337,1412937079,479505419,1318198397,2055520024,442034862,388848745,1866878539,2117462530,686530864,350818541,870060912,524939130,2091259506,928383280,1991152137,390424224,1158433079,1377320664,925780188,214578815,1181367590,666058409,1001181301,1105545665,672103594,2043802129,148033988,1717897470,489589919,327985235,2113691102,583200985,1208752152,448390326,1949874903,225132975,65319457,1594575558,784254203,503390046,998940486,396849575,949285260,2120240474,1717158462,949513686,313801259,1787670524,1357505403,701578197,1428281324,608990502,1980554607,2072447297,1182918411,2023956478,1735741203,561973207,1495533919,522223740,1321014250,2015860484,1840246440,1169600804,834803849,1471852132,648440883,1613188056,1665166131,1562174245,1539732000,2046642661,550358265,2040606033,957689359,1124041970,85341213,1730905886,555675082,598459834,1342683654,1698535432,1140497624,1424833589,992455846,738473671,2062833023,683002291,1587218365,441182535,702534103,1861053849,208089992,1647211182,939608955,1703242198,451975988,1700582912,861710661,476026055,645865941,1648921664,157027220,502656158,1041731103,499120434,1648189411,2038789237,564005342,1980963935,1349484086,1817702996,440590522,515162890,1367048386,318344463,1378574822,2119231047,155767571,882120712,858953438,163149932,1272412378,605239660,1513812454,1669030607,2117923428,1906795985,679269442,2036194167,1209939531,844671835,612240565,499625141,1364451493,1500964234,600873050,1112596241,1827021856,1471954536,1812673722,885811606,1370287204,185024445,417079937,1372287342,1761168283,415715387,1447540267,891599884,290641612,924761471,1494845813,516979043,2065152249,2117181391,221520789,1341279267,1824375616,761157865,485831732,1258918270,510347474,1510029455,321838578,992561735,173665000,1438871822,535082451,704163269,1438761717,579939052,279094897,399069795,231483123,359125267,1315560259,2039124678,166965893,1945997342,788199026,15159901,1803977398,1683233488,1849081088,2031391073,234096254,705997399,992667413,936715819,1529630853,1899982772,412918884,972780429,102185220,2118056288,800224285,35811935,793687369,690723046,1000254714,1972117508,1342518987,1895207243,567273338,1580018898,1881282984,1186434808,420270903,2069994571,1225074651,1077155517,1938633202,1833205891,824521829,1667258033,1738966638,442203434,1971215117,2086430546,459737655,474843818,259740674,1738980023,1555986921,947252213,1981768373,873537257,1437605752,601128135,1643294826,673392836,940138723,1231170130,726991632,1964609168,1940701225,1028784173,178368672,2107919316,723092744,1301205919,414298334,598440084,1272065861,1405374534,610317803,1890726584,1559016693,1548053884,573577217,938253799,924057293,1045266722,1622821765,569582635,1577211030,1901719143,1205043140,1713586239,331579565,1689086645,1204371275,979001697,947275682,1786212454,1341279607,780502692,190854268,31624716,1628536407,1089689942,1306961712,1146060468,1781257294,28490283,875366396,154977017,1753131012,1237069909,411773398,471944390,119181765,510696113,1561634917,289936032,601672306,65636687,1607977242,1977638038,1095241176,725407672,1542573230,1595135699,25403041,1634002632,634138890,1889864315,1154012867,1782938771,598011002,1877390828,464622469,2034052630,1949435824,512671290,236766175,998084346,75744753,1203214246,1387225244,1986671122,393580373,1425377195,1113139634,1170661692,1570974008,1885402677,48685845,1190970875,1203663879,876835974,193809740,430978770,1775138818,113046009,1349761972,1382271713,81573784,1057511750,7221676,1087676503,1594794511,138657723,1744677965,1240659567,1515088606,1364056391,862538066,680762090,719211160,975916203,1912987083,2091948363,1046070287,1900597196,2095914945,1765058496,1032222233,748799339,652610260,560461018,2125361217,654918138,810554533,2066509578,58762958,1171743497,1585880732,486810624,2098894955,2103935329,164911807,698826184,380560858,35884181,483499352,1933696131,1974747641,62760085,1444127986,388233838,1158110673,1710032603,147885369,900684513,79402898,1724501867,59354603,617957211,247306617,354398108,19343734,674103214,454706335,1525195080,520376651,1100495209,188781170,1916664626,478030573,235274832,614802790,728608281,196742333,74353293,705668587,1364004847,593316496,1646760905,924353243,1720734423,2024806742,322445785,1276408256,1340157137,1717222274,1379543227,285672424,1348061571,1467719384,422699289,2115307105,1268470271,1692873285,309516037,2091308463,550630855,375074074,1412464880,934438337,2051125204,881354556,506937238,1350438217,986073144,461772817,650452862,1128352172,1593821198,748965107,1520606129,1082943657,1876680786,531212126,1144420126,1686217712,411414144,824823739,1447926115,1828525994,899339376,299372727,24329706,1419408977,1452039960,876665188,886372252,1059357879,2121839539,415428469,1486502246,528248378,956510952,1492230148,1642622233,564163730,2062076809,1639586985,406860067,1132171624,437554686,1197919699,1418021000,323171476,1301392957,1865419904,384309360,163635186,1434125720,486633887,2077049646,1878998713,1175374058,1758848009,800164866,1393397565,1383425458,404117021,1963077085,741414755,2055210060,809042074,287936223,1147971312,603249313,1623464819,146312549,1927420604,1476752213,1886229007,1747097007,1675936217,1077679008,1551957870,1003823807,950343496,1239155770,1670493239,940941467,1235226165,1495242180,159443404,284077558,987063697,471580490,1787472889,1138489307,494163782,975414075,1135113286,1668376237,1011145410,132153047,1062631513,392923471,1418161031,718056410,144379619,643754044,1769961539,309762823,114130215,8349871,432357507,512100218,1917668614,317129208,1172601353,1455319759,1022792815,270050203,1816283585,733886448,1144391772,391480249,534293033,1150252190,2049523957,1638027098,338458979,1597773507,1473912287,79626029,1321596324,692086649,1967417252,457639751,106171597,2056062835,1462057215,779676947,834509078,1315430544,1375786762,287607067,1965031944,1431808495,1304077924,189918444,2084886912,1348617844,1719823866,347197706,1228634490,2112714204,253323598,1224040786,1805826395,722117553,2020461899,1361935850,1623502461,1292230710,1500253987,2090025113,1463390875,197070768,368422451,497098232,575696195,334297032,665791855,1703311799,250883253,1430014385,171102016,2058740075,1211616192,681165679,171929249,58656743,746212238,1301381940,1532727322,1324759199,234671940,85584493,870959780,129628173,843186760,358847542,1368819985,1405535984,1641385203,427729628,1736369424,533920075,1959544053,733129684,682786264,659655532,546145794,90308855,96681484,728858975,1196177137,1503406010,594018625,1501891511,1324042717,12296912,1498722756,804909215,2091470476,1251109626,482261482,9038997,1619540470,50356750,883820569,728439991,2016077415,918210236,1236542347,1287020187,1189093175,183297644,1292414874,66519471,568063555,1302332536,219698422,1483397092,1227392575,1241089530,2083045573,468072624,1632691056,1219182150,1873733155,901532874,378554144,1557098303,1010977605,1986254752,1996193231,193650059,2049537681,1334569987,1165348184,220562662,1610045165,1238001102,1084960248,1246258643,2039712307,1212711673,1312123983,1208999513,1369103008,1060296598,1215382935,879781904,1152506851,1434287480,646946194,1216680196,875852664,1047693994,1232789489,1482981083,1568979496,1054964246,106600403,856497721,218663193,1675366007,2033292169,258132825,468622940,943821058,1830408270,1602360131,1105110719,1301323579,1963132959,1350523720,688859836,1459589893,1310681322,2048810243,1939795601,1505373441,236726701,1760207128,500998336,731393223,144701072,214960958,846372486,2067355718,852010960,1950066169,687332788,294909689,1212595027,1281683413,1870125940,664935589,1688247817,484126852,1044906173,1947980057,144894232,1792824876,577928513,1265088088,1377170020,1493340172,1144604880,252042810,1239413478,111303162,342376702,886110126,1028153056,248756923,1150173003,1132323910,1362146716,1418109021,1385211033,896061433,2101601734,674617313,537426818,1935534681,1725969842,1048556994,1086055624,717291113,1080197166,736141496,2060990024,55561106,2014496049,911037729,755732528,2026127042,568927264,1896188389,1440334162,2102883756,259293125,1486500840,2023623117,1530980559,702361298,1760509132,294184521,1975957267,894464224,1738858520,971387813,986788788,401453065,1070118967,1688607879,1848902120,1922468445,1054774543,859716558,741240300,2018618922,1862452510,1057250854,806669153,1266393116,1820326578,967932414,871444053,771970811,1688870448,1321433439,1163931657,788673539,1280621161,202656375,1819843441,45506559,1047332067,769984041,486498398,684033181,2036508514,340288720,887030313,561623072,534161868,92776577,2071485326,988368312,1518779681,1920986279,1311977059,390886471,288920971,1729224891,1619462060,735382623,815582402,878795353,824670461,305064519,1674672695,1054356903,1545827197,2006369075,384922572,149521245,972473297,523986438,1300077393,1011542551,1529327405,1735470454,1374985437,153165023,858398619,832942362,1509475923,450721989,1991450741,586572061,1803744279,1470314124,1197620313,1204001006,1649617903,1883599839,894835377,12990129,133099923,846404522,957595358,2041604112,267484870,417708286,1609773796,1247303813,737957069,160246598,458771946,516880936,1726428602,1466994560,2046620596,863259920,1293904071,512661568,860567021,1659721958,881522398,737966816,707242782,1081242516,115698434,801594957,1014887680,1642588844,37486751,564052480,653115379,286095962,970765305,297561703,1716537508,1777962334,2024838975,280688651,267157494,1201877808,10430656,1230349406,1945765154,1341851755,1687683004,126027412,1929312133,76251304,628510492,243928423,1758691465,406645022,642919372,192674280,1728557872,887140866,599824038,1836742895,593339870,121469259,1550457167,329972320,1347648426,936440881,1895251862,1187200213,2127693004,2024940184,833198837,304406026,1166364146,1183507091,1775167603,1799753430,820179095,1999413544,1969751349,398333277,1260850877,1946493277,977667765,1212590451,410886112,236710353,676172204,1078362701,747570797,1837263895,109309454,1930193926,666552088,738941860,1335628759,1224073388,1170715899,1203436572,453948701,1739923780,705238829,1679908220,2067992302,9708334,560280616,1619834961,1530376398,1184444642,770428644,1679653440,1557685862,992212946,1081658590,440546186,777693286,1072492646,974090037,1542911259,137543346,1653713729,2042223860,274917218,1977609532,1754656083,796267916,255178502,136824205,336626853,1586789749,165711810,89811221,347446973,130265034,523293406,1075457295,796528124,229577431,916842051,575774577,650696549,538154222,845645861,1505228944,1860536878,673786277,1302244972,87143628,329282270,1390653195,340361375,338150849,187856615,1385069669,426533168,502870483,2128620772,90607897,1908885967,2030482088,1023372505,2043364559,2077306053,1917338729,497622889,1718661402,894979125,1150827315,1910961724,2062919425,126467555,1935986241,351342470,587254216,1857455985,1352593388,774282676,1475444773,280762492,895596571,1886748967,1130401705,1898752266,965910904,1615227037,1801698285,69302751,214049981,715512910,1817832595,1227082255,1608251595,297013373,1997008051,1283156612,1759296478,2125483604,1431145659,580155014,452668012,269029270,1715373628,1368330554,483341785,1051339918,1394734848,1547769073,1567707412,684410819,157620507,1288831456,1800635566,2120348115,881925587,564958006,381300898,1574802570,1197926587,1900681809,2033506142,1925356736,826198796,1129853396,1113613703,359592066,1542887216,341814465,1283495077,848419110,1729913251,1020918169,957089441,1490948699,1034121492,117120765,360777391,1529827402,1129347103,690170814,109296023,588534909,337919765,1820606845,474337819,1372077728,344886653,17290025,1790157340,1845222896,57848581,846491180,1112449816,683178288,975720948,2114900112,596934494,1486445881,1107630589,986457294,1992038638,1569942561,1164835266,1145885730,1169794126,1790428145,376480048,239007170,1502182517,816624197,1456756001,331025609,926280045,319529670,825816804,622676711,1455094544,399841459,362758773,1801560843,1102213201,502351579,233299983,1380305371,1183840315,391758015,1521273497,1607642797,386322772,538293969,1197956912,1757379662,2084835961,2070670111,531008322,744476739,1092660642,1645664619,1701127608,1093441788,708232862,1169739702,667708225,406442605,1138971685,1953774794,310627676,1182648723,1444063576,598540493,1803722737,1251849325,210151272,113353322,177385284,312631228,763578005,76314268,1921579201,674521368,161165792,14482997,1032854915,890055832,96152657,318427274,162248394,56392598,1349413336,315045309,1479632841,239981503,1129350060,1021514658,1330520343,1194576798,1513286517,1798864960,58760603,6787073,265755634,1584851934,1914992133,293581429,1238111403,372725049,1716689880,2130623356,678862642,2068228352,648260413,989536508,1712448252,1433275459,1028949097,225059865,2075675393,1209902447,1520343739,666392501,1208133583,932705490,192887991,262400226,1080738209,443544902,294963018,1354778431,1056881884,1813631198,869111901,1934222113,1208159210,284606345,83862550,30944699,878583854,848445147,930488410,1415555140,1316773156,518153738,1219111715,887926555,1648884533,1382469596,106053216,1251281018,58658382,1815898444,357432494,1236949261,940140081,1361580986,1539225330,235781847,300437108,1386626408,552098242,1603709922,364335948,133955158,1991759099,1196961631,1789409430,330554654,635998272,1096326385,241711612,829873352,757947746,932474884,1175878381,2022521858,1805717007,1796663016,752351223,194624236,368590859,1264885815,725804671,1712032157,958057787,356469643,105798776,1759657102,1841477434,1331680134,590436039,1973027022,1674091141,1484361967,103175086,1299139394,140421436,1602507520,1849486502,1557455292,1731586081,1041045189,1512181098,1579416574,283502499,1420327678,521673767,799805246,589569852,583585923,74703249,1348068813,1933162577,861021404,674531319,1554492361,13833434,616410368,609029719,259912604,480887648,1197334133,775796203,662632752,292296444,814674133,910711139,1596915583,143453469,1602073731,1827295601,825051106,1490528813,1848282933,868521891,1087811313,421788467,712640707,1021747850,1046635688,1545250663,1596318911,1871545096,611933597,1418797001,1244089798,1464579923,1167857940,1645186919,1311632012,451453994,791183633,1911634197,83738613,985432751,308111342,3274042,1010658018,439224802,823294923,105209610,1259126604,1173510536,971807007,604950391,1009156372,740412737,1356314813,909343686,2013720400,1404412324,1109062091,496605604,1665753392,1192184298,636362292,1909794734,785033541,1685413502,710390022,55772723,1624783691,373970790,437393600,158352754,806513428,2079448254,1113473778,645389353,1519364265,768866989,1263055608,889882876,16156346,1056703056,394657523,96900027,1736602324,1401625094,851954979,1363639373,1588025867,457656231,1344229435,406989235,633131034,620968007,474858330,1458459092,1178779936,386565227,1156083323,1589218281,2119275545,87698411,1544697094,1450486298,1935440198,787257154,1441922906,2053664971,866252813,181544860,1369487457,1770473077,537152131,1497049620,892605148,797405049,1423159843,985352098,209591037,828180077,911137072,1867681946,361821059,305709622,461888547,1309102058,44086329,230244915,1702082473,1182083588,1354996854,2078897009,964098180,468982000,1835162293,1069629089,2045582910,201102769,1585310529,2073523946,12216942,1081854054,800935846,2043677699,344656329,2107946071,138404707,75249981,305551833,1536783481,2013191092,1875358636,1647828348,785872988,971776487,479494073,315941258,1042669921,1359775967,890213721,757527697,13408062,978495502,742608917,2123843309,1351010307,1067556635,205262347,1636106869,1487728238,288968330,313054782,357891898,1978807111,1361581551,1032662106,109648637,1344192840,1687500000,175982249,352170129,311834637,366936227,354230733,330845577,1491656366,794352805,1880762437,1684695127,1887575628,1572918091,1588453254,1467883749,1517800735,253335023,753087697,1728414674,1297313498,1305411067,1407303733,114131346,835967334,978288944,1243599424,512596421,1007478189,1319278270,581281126,1263876828,1963674313,596595015,547777931,1398215280,122190538,936062549,1335155719,1289601825,1915021976,964889339,233178778,232356039,622084551,21098269,586865231,253520367,633016250,1274461356,390415037,57611963,747677472,1360183705,1160745619,503440568,1233413469,1405637595,937337734,937702132,618782728,1621402366,1120805374,1833361407,1357946586,1382340923,1011605664,1444008383,1433259457,1930567138,907633857,1355544451,1502314502,1214537094,1014938301,695230206,1391866170,208931919,1965207039,1242707726,636640205,1561642883,505559383,991982227,1680289897,352761303,1592546270,675815168,874560008,874356353,378809732,1374191758,11184598,533731146,702484518,1977179903,1315484133,863444689,1787418297,1826569439,714661036,1063889510,1369491593,1083213411,1171625282,1950242454,1572679994,934759902,1603194648,697084948,2102418722,2119709088,859897791,248667600,2090875058,1372271518,659856852,1954953774,1676880547,1884826490,1092693099,167022997,1102910200,1264654832,653125541,1136474188,845201161,1588689921,1604680878,1814229182,1802641456,1883920230,1326550057,630891998,2081924704,390901346,255411139,783182980,1225134532,1114618893,923312722,2062700154,994926,1394796067,258711607,1525534512,965817940,1916947215,225555424,85982264,1241883576,1632018443,1101788405,711366,1842277153,720871053,988699250,2072685306,871251808,604678258,412103229,1808967040,1157775320,430864628,1456596637,1286654277,409145448,453479741,905630929,920666408,940195742,235014924,82984517,741199510,893370802,1991922215,593759725,1437803415,2046661543,931691576,1321542820,174195704,1604969227,1420680776,500883512,1517292569,1704013468,2095454311,1750456759,391299900,926476160,728254777,1413382730,1173783460,1764534769,108095715,1426539556,477184826,1634396029,662699464,1556667750,663632852,1509994545,1219733779,2048138767,1324873447,1360151353,624407512,919191329,1521620900,1188662033,1779326083,157447828,1807750842,960548603,1474031559,1055690365,1624753874,771362273,1859654104,1998340423,985270174,385604649,530430017,1985815912,1299339589,397445127,1820882820,2127745254,1430970990,387111300,1018862480,851441818,1647539473,70136286,164742854,1154238795,1947266870,526255110,1475578896,1966516711,1102120357,479077589,354993669,713921252,598711380,1099944051,965386646,1440236772,518480985,1569312402,1089376154,1687903423,1969339743,1118598095,154773113,1955901105,337945992,1609771490,2069124794,1398685891,844834230,1126381734,77715197,1399395855,1261762270,1503544346,2023339610,1116068328,996135946,386660521,1001487665,935833729,2060215830,1221168336,730405355,1347915312,1913321257,1153078301,405624900,861765098,53721253,1187006437,1646510133,1731382403,1401802033,1810293898,1662578495,1892887423,1287615072,1349081511,1102937444,457318887,1379322998,192843717,1846277493,1968237359,1229913994,162020553,1139987537,1492185852,2125261019,1544628818,2031681374,28317183,840026492,1065483300,985648134,2121298431,1721654906,1570410635,1205820402,367256473,1997530716,1038074402,1502484645,222667113,1011907884,550045135,211786595,1254020216,1247329754,1344457233,12183700,855865431,1893518324,1532262683,308683481,2063144142,358725094,516986133,1448328607,605534187,1403583919,87879228,631854042,2025277110,1275228902,792881952,72316000,1218249586,709719637,1572342017,1241185270,533444869,615949241,497504385,412251846,1569260735,473923908,1687644123,191860059,1098513237,1591206519,1535234886,774192029,1838593725,1472660248,1878855505,1376226458,1094594632,1184068058,1622829732,574940198,1162043588,1463095924,67661457,1069227816,1342926696,56783211,369799041,1250405191,243676699,753914248,1102155074,1007760613,1037923955,1247650102,1173591361,38009272,1172698315,1591514866,524900836,461902331,765180923,1730230137,229807145,2070193239,1401696190,1802564548,771966424,932620542,1295960888,1882889475,1773189386,1428230046,2071419347,51056430,1889127134,355515207,1568210244,877475492,838351860,1333434164,1452870310,14418083,2115860139,723757875,1036096978,1846663591,1747379830,712051942,1139519971,1687186675,790630983,94877128,2122674821,1723887218,1302975914,1334614880,252390274,167107932,1952308649,855610528,1489156722,169654157,1055639214,782360031,254243199,327086790,1617622197,886748269,149093552,1065386961,886025783,1234675939,1680770518,323875014,2033295140,1175725059,756126351,2113445509,1312766061,1808780727,194551543,494668862,142774603,853691961,2051423095,18614809,1822154770,426782885,724820115,580582115,1632795569,714907727,2125353591,1377184013,1656521861,5791500,303103460,1648110793,575853719,597206370,135606369,1244299134,1577425573,2069419218,564741204,365888196,1585868182,1517006322,673061017,944039623,196948746,489701868,1858621790,1774278243,845834826,673849202,1940178280,1367981400,864720532,1613409870,1298552811,1407602395,21528487,134828642,1254447302,1925967301,1354372583,492262451,1781614619,1845341401,862068454,303711344,2054606288,2013537153,471029487,1338734804,251247845,1077627575,1646370431,2107480978,837634141,1736509735,84976579,753852229,1776279227,181516443,212217331,1921572354,1043188409,1217327081,63592183,188307669,1126871458,1524525857,1858388499,1453391815,1772612624,503505501,580081966,1804444241,1220341526,998854517,1983063798,1681554680,692989127,272420353,1959625540,1697880406,341566763,316362704,1510295239,1177294761,59954446,951459139,2082988435,1979942061,1901466999,1616981354,126801052,352227504,892567611,360221243,1099770097,1843472364,1108938609,1600083654,947195971,948847081,1525060894,2084499206,1867605795,975523664,2064182335,1728857386,1796416345,1588865001,1894055763,285402424,132881125,490957511,1258063120,2077594564,796481462,1734820016,576404305,1118449995,524163176,1354437198,1392153882,5726271,530287276,979402804,120284372,2065248198,9687774,2016623934,538111476,1082595166,819246012,1466241704,2123199714,633324193,1182447162,620019260,1596296072,1056837135,1646467624,1412940374,1392380046,1017400081,735059799,1967901474,992222507,2010491109,1695782614,1591370448,1281629156,1995704029,388966713,1891487311,187538847,1742316517,2119711615,680583615,1585213239,683871191,782926016,909666464,261619456,247973285,1360613968,234899095,404331547,540811179,1397484987,2021821248,980147186,1393285526,147088248,349015189,2100883377,1471566678,1055205931,1544897472,1889712490,154203838,185471669,749865239,640754196,1132734961,885124594,306839353,2098561777,1529053722,1569458961,112653687,507378620,2010522093,1801847325,1663753617,878155140,1603026458,1551727974,240265894,1678391481,365129067,758591098,293739930,1315807117,2072479944,207231197,1116359730,282196371,1361253631,1935148198,557161905,980100968,645407689,505401547,2024811846,1116634570,1972731601,1735865526,327635570,1954503776,531619270,1533755361,1312748711,1990799358,837748903,1233292001,1357984067,292005075,433617924,1447420931,44102388,16475750,341767946,1065448044,2034273746,1854467223,1446030962,1614508605,1247716274,1538541221,1705956638,2033241491,803610534,1379697894,1937162676,289556004,355469680,1745889235,467319752,1246871995,960794080,908302920,1108896322,1660047208,1865933120,1335570813,2098331757,2093759113,1646006637,470051211,1374453646,805916922,1457148084,611278897,1957629005,356811143,1549230534,1538820889,1898068744,1923304747,662054654,430013339,944153079,80703591,835040009,2104545633,667443604,869309645,1690682158,91144361,407159773,53943247,371957541,1851114879,591836526,683133031,1011953318,1946678878,1114701631,325695517,640259549,1730590254,1221038304,523948285,1379676458,1024079650,1947215208,737989455,393262623,1173921866,1388923288,250617863,1162598952,1901600945,2042098487,1061714740,1835586615,890122838,635972725,56731313,1400481235,1823127174,48989068,1074699777,890096587,1753516962,183340624,1510636876,1275678401,379834282,1106999050,852282385,1341608291,1547556832,517345798,558418484,1339344954,818324947,1877508984,1438655207,990386299,1675711396,739658946,337240446,54391757,960007510,1699657207,2018330617,1294353318,336238097,1199423540,967755213,1373683894,349332980,1265094281,284711654,1485788206,45823759,1400463210,770428501,2005567517,1059008442,381835670,2124256826,403687994,709199015,53285181,1251809574,2006968542,822194659,765247150,409474492,1062155309,1281672397,1246230456,1221736099,1452753218,617742805,657648373,325374027,392065603,1996529216,1323051197,877365753,1636224627,66668264,2020522090,602368201,593174972,1314086086,1520569637,51505959,491892476,126807771,1003549219,1609546405,865592620,1404379438,362998446,2075001088,1635039329,1266028587,650461898,921506015,15971878,2018561645,2056407624,1486532511,1561499053,1199537973,257608445,1874223380,1811871458,1663063265,64797198,1004158037,2057241257,31288387,334268178,1244880117,1634349232,261265580,1449156398,271727498,690793559,1752291680,2115802005,755960606,273435389,97071981,734407313,1938136920,262749200,1834843114,992687645,1767853793,1866642404,674495791,430832807,1946041332,1440645808,1552970700,1326013036,2060183668,1749521003,1908092240,1735425563,1034298615,489029809,1675041698,1869461512,237878573,723072527,1798884541,11479129,1183855939,1681117943,217063947,771110035,1438186000,197592913,2126609664,1152081476,1921689353,1363192891,1596673718,1031665674,2031925472,947391733,363895811,1381753677,527113271,690305928,688664785,1591583751,837989304,74986124,2026675241,2123793504,1785198430,789148682,544116859,89681943,1668369588,975010081,1843750607,482643508,1399956214,956256287,1030229320,342881796,418203296,1690544969,989106854,648400957,1311128232,1304111959,75362564,1522711933,136653140,188274043,1257619664,1804461055,454768949,1709924986,1201852803,2001198457,968140056,1226165121,651548545,272265912,1095802456,1977088560,570986777,1437127781,818167764,1858337448,39836414,80765561,799415750,1586103015,1601922665,1074884683,633070840,1530520214,2113120485,608808899,770322743,1513043034,616449199,429686895,210321957,521527245,630461623,1982971474,2016223935,422469534,1769486532,1547307841,133621854,150748300,1464749743,1973198679,1667389166,962394888,1007928633,1908887530,1282581077,1253297464,636911018,555403303,522947442,1766386088,762077618,1166887611,1523852366,1493330630,922087290,55506397,222368950,1135727360,1021666062,1451640123,413671866,385145721,542729179,1780410566,1104032672,1315350646,241924084,1723766676,1147418803,1329038613,1345798430,549447545,2087352592,1554322584,1178444273,1854632885,298760524,1089913770,617930644,768456609,531705223,1348795247,222813547,2076537024,891929773,983312436,602406511,937814749,939095412,2060344571,528266920,569156301,1531632872,1641681425,997158696,2034776883,778175635,1621224815,117821634,1513514355,1517662552,1880897060,1156349828,1189086976,524172709,1400925390,49695121,67415163,789154038,125489002,1812949368,709154643,1893632893,2081792313,553596331,1138985579,37430851,1155956437,726934186,1017124778,1279894558,1950784016,1004546514,1903883306,341738763,1992763162,953190929,399473150,1698597049,319341030,1449408793,1521062816,379774437,417874690,179932422,507795664,1869780995,1805566217,1805020093,588665607,1304482236,1905653133,354865176,722388666,291625321,2102253907,907045915,1652632495,1463475272,151322580,812636022,1425240109,203144556,1571130680,697410245,1413077982,1819829716,1282005745,572253689,2102545342,93150158,943252855,765049331,563402320,868203468,2123731112,1802245699,1906199036,602924578,559599812,355743215,465547771,797928984,502401312,1968867593,435591197,907258123,408454819,1793875191,130933071,1533994070,1943422267,532995618,1811294392,868072207,980349363,650103944,1621162987,961796416,349958967,792306489,17698548,675716494,2091026390,162047908,85737296,862599006,1688249034,377768542,1204836112,580694368,1809097909,1973841146,424511309,796504189,403720279,340836136,10107595,2108708106,545677865,332083770,1672967325,597083689,899783891,615440289,534542162,254299313,1457794096,1426328525,2011361504,313846540,1821897980,1774896150,1033468606,842206730,1908443551,456235474,1988299822,184173217,160197094,725779322,644758451,710636591,144983235,2079040243,1836288606,1094549718,1756892993,1776800636,316794232,1389680212,276429836,317444961,846703558,777498140,1234942010,2044820253,1899830479,1422424647,1360759773,1622420213,1945243930,2096257594,195437658,1443904203,588712346,1923918745,1308262776,1991919812,1073417718,1415592024,1843612179,2109456991,1222335451,1971397983,895439807,943858231,1999393824,1143090974,1801138047,2123233529,697241485,1157793026,1816503263,727104980,459132674,886480983,1896936393,1913025375,465196360,1007677353,23967475,756862584,424136552,438448951,1243459579,1229569400,1707412990,347729606,536058409,854293515,311149418,1803542583,1534610383,1090727970,1916533760,724214595,536158857,1464345632,1200097671,1739530676,247406316,2121513857,277161693,1322200399,900299765,1668802736,1467667603,1091324812,313260710,180310350,1174776593,1588205703,1465969238,1193265309,1429271683,952475771,741478610,1054594991,617002461,1732124246,2064647814,979283154,412047665,153029095,961264163,135488578,487170730,1287772504,111989904,1909307500,833660177,1934802898,623676952,1611942895,547858436,1235594773,519583316,180512995,1942278373,2022055782,1593647774,2124868754,1438251774,1786692991,423736540,322830393,44561089,1951921478,1001905216,1190038249,1076001259,1722354924,776149927,384099370,1424054986,358210334,1266560808,770411428,1968970843,863218564,1689326442,694472858,1613807842,651530821,669489842,256220283,269581462,1115037381,1303393119,1427384844,709358667,1259094369,834608674,1915436081,736553502,822001510,865235572,1596223808,23759124,164415660,1695954397,575773971,742602047,605803650,1710886557,1638982583,1081345857,1790681554,1393611222,299995244,2076389126,2124889818,1478386444,1281211139,1202896300,1376884301,18880250,2022600250,736770464,306218434,1869090848,941951205,1098393812,1299740833,1887746331,996499346,353707777,826549383,1139976208,1746136405,987699800,496575928,740899091,1352117644,807162965,254885165,642319252,1785065724,180685450,1514207407,1443416360,585253463,1648816356,261635239,1438712538,1990673561,1562774298,189691768,1914267279,1081858437,1185968023,1586169106,369067005,539877613,1078683,663868671,1508937381,884730849,737653408,520153064,1169023663,993427661,919667464,48310994,2068240820,1590373054,381859947,1353526453,1352188375,1564457597,940805154,1977363826,1359140908,297095360,820538692,599304657,434696185,693709000,2013688400,1867459310,628597330,769209921,1059520283,1218499884,945106029,1399687623,1346809695,15899398,870082140,82779129,1617923785,135937852,684681193,1824242596,106747684,667290649,89783732,1327004770,619507617,39719371,576194631,987364078,864306508,334391864,1315216748,633283446,604795513,850964637,1517952914,1652301054,955975409,1130196476,723031952,839718407,1165466564,2034722966,464605656,2090447638,798495393,1106977537,513712763,773320067,1838988298,1429892810,1166484313,795373906,131136631,123074782,1437430970,2072088257,1423973168,661145988,869174493,1579123903,229461883,470972638,20537250,339506921,1836399984,662606856,196568898,283256350,1968389880,255944292,706044477,1472760918,806619211,88572317,1626309159,771061786,1230901978,181256129,1357498120,2015104160,1736011740,1544546975,1393777572,1462932768,1496438298,612281827,1680699025,2119782918,598980416,203945758,69431495,81755515,521026278,2005701595,1427606926,13343082,598359283,1746810648,1264395995,395158553,928005836,1404934369,2001792791,379500829,771751654,690460900,1575814922,591937654,1946268911,9263165,16814930,1112205533,884263521,464085076,1550397762,1373393738,416506524,1379753868,305389260,679569937,1060292674,2064468180,1673718792,1672364563,705703596,886200053,1949264968,118170156,1218136637,1881048502,1157260479,453990589,56141497,660395365,1312528699,278115208,1446717385,873236267,1274465158,526201702,748359866,1437653651,1578865046,1188056875,1323722537,1127553972,854375910,1768371408,54112291,1220637839,1724218553,1739181143,1475778654,1219807018,2100593812,96884477,93227958,1181281150,335394266,132001170,454336872,642493237,245020999,1427198907,1756397446,1630723356,507550441,1218041812,1096478699,79831133,131043985,1008444994,1534595309,2037442657,107441889,1484141780,1688468695,1611121792,158405471,1247433497,1987594262,1977898360,434057922,1336652084,614145282,473170726,727707459,996261464,1965897277,595519707,43750680,949239758,657304802,1572201081,1531710992,1978491739,949744559,2037160810,688133138,1519097154,787005549,800018478,1629253112,119148222,1270107796,1232194392,1424779836,1605427013,504120975,774957638,1419494442,693229722,1221928541,1591534135,823962623,1226367697,296006027,615193686,1842790917,968410181,1395696341,370874990,264741508,2102231880,1205278725,1097168173,1902966528,115461613,398072458,1080936930,563736843,132670143,1887110027,2066959363,213779568,251812856,391659975,1236917735,1165464220,1624423949,306817412,449834458,969937939,453574113,1166213246,1725316946,1088161743,272284229,1150077976,77991303,1461032018,1020400127,1324486512,685737252,2034196815,1778369088,1177984190,320936063,178013889,139621850,1982534341,1588073835,1836365474,1946022030,984624567,478518320,1882126098,2021202849,454592293,994001926,521895410,1553596978,1330609678,1336697965,1289984374,1321935950,1716890699,7498152,23240022,389957915,1037904335,1395328640,939526677,453373920,1652142538,675662947,1373673997,746741684,930598226,1843858084,1865054056,2073560747,22520001,951365353,679674529,226379153,974453358,368655330,1854070570,1274868701,390970726,1945384780,1175766710,265580159,1311619973,1917438932,2069929561,527527682,389579275,436725734,1784336500,850161392,1758964454,789499492,187053271,2061950224,486367317,259692518,1604413273,838267817,923020790,1706584043,1158516648,1665874049,109091220,571121607,1093508828,8475667,1688015525,303450962,1245590633,107441116,205702299,358590058,1583764530,1057348051,149332038,312942344,1847869094,228646650,1984372927,377254285,1658886510,1007884060,1439954652,442628664,1093645087,762779249,1835997748,98810306,1445446273,530036103,1755484306,1434651049,1148777404,1964259085,1730876978,923685406,1917871922,1123239109,780566648,234084635,377075282,402587110,2101142141,1281781814,784535897,473071277,730141981,1006850170,207385475,1565049449,1546550328,1687555965,617669596,676841688,1598253306,224977341,1675531385,1065760939,541302709,1653623258,1596674901,450774253,1835081384,549885222,1985784990,1944315177,418385476,1104726046,1692595905,1915950485,105838763,92260885,376599730,1889336889,608443446,1159770985,1075034477,1641477889,1530156346,222254959,216220622,1822728936,1075635178,516075475,2023992036,1219582749,756831648,1045813192,347794542,1990847745,1271180298,1659248596,1806234818,1565449921,1362962346,1331968084,162413147,212968604,645191508,961902946,1526480330,2068614383,366347662,357282399,1545775777,495666979,1385213433,98195846,1658714436,1412725119,2050737589,678856096,1375711068,117892146,1527045938,124630068,1474615276,227989486,978857744,930388098,2002014158,1494687441,1689713893,932967450,963953558,754518458,980128244,532727198,1256287784,659256251,716002917,1586843059,1595078461,821179524,1799139294,1884639201,1897302891,137214533,498827322,1022433912,464576342,46279623,1442452697,94368107,1032414234,1416454588,1363730424,575303008,1205996673,169357274,2115842391,243054858,734906739,305347348,1057243558,794113447,943644362,1407646391,1686535189,1779576767,325989349,750485888,1631398200,1837311867,1598868558,967531293,1011878051,240148738,1467780242,204977313,1671080090,1237683355,1284282639,580420886,1923729065,1483255543,668215157,537714733,273078267,291413245,463753939,1674504094,2013650356,202484095,1048271464,1147290063,1478617397,524563106,1470873410,1036015662,2002830457,2072853716,1605609880,1058120613,1491044632,1970971164,1549562230,1889864445,1274320540,1846787724,1632080126,1367064998,1317228009,1507769992,621788689,1565256857,1854257770,1032090704,696782562,350737823,1412833756,1919564557,1037850148,29922500,1538320877,1053643012,934683925,136698119,1056721093,1376965211,282213813,554994076,428738866,208127536,1629380666,1046443062,1312486510,691780762,1450297975,696760758,1507450246,402964992,999113589,742845845,1482489203,2066190492,2071867889,1378672924,1742459513,192601216,1579949538,1186942778,995681265,2087852540,202018024,301904355,1025653757,138451196,1553870780,878073079,1260699400,853017631,713453680,1626745686,1311571373,1422023613,174836477,1638546711,270343898,478187865,235829043,1414418993,595573075,786158585,805699959,73470761,212786045,1874970794,371606493,1341838937,1456651577,599745576,1170670240,1097580463,757377829,612323976,617492638,1913307910,1860576495,1242640843,1344365165,1191018937,2054647080,2002637006,1058332098,17199285,604074646,710193715,1243595029,365702073,333691733,1761552427,1499679108,1352397454,1012508855,1223198842,654020487,701806328,2122802164,851668905,616054142,517934872,249031193,555269765,1428160012,1531726230,1730915711,1278408212,761841364,1990640839,1212422943,84196147,313207473,313591534,454578446,1461888316,1032721264,1753362393,624578264,1109714022,675940896,1226936099,1216012187,364118628,508179915,1226711173,855672543,148415950,1628174941,822065909,1925789367,943754582,1837039280,1035476894,1251889202,1611689189,1230319075,1116411119,1834008243,1195471796,1018741427,1462090972,896981908,1150128089,2127943491,1904444772,657680041,1316121991,321536573,1296851791,1837288978,158206106,21295707,1442360970,1816465020,1716494696,1851811878,1175948235,2052475180,536783230,686943169,727945916,2062729124,375869191,1567873268,1804802409,1730972830,794125082,103507021,1254984549,588866176,1635378626,1175498365,1950445581,1830070098,98362932,451144673,1109968813,212621155,1216509485,5892682,341967797,451528310,2608426,1672086142,1113167430,1586410911,51270496,762578714,215957335,1658234714,1524270857,470154861,827582583,756017119,540882890,1001911021,1065457802,1414051812,538944478,1402400320,964105358,1598797421,1533652399,1570814927,1299114811,701709196,1697166860,1262159020,675720867,1258310134,547792958,1688932217,365223461,1145034707,383369000,194735795,770585924,1882922103,1281209201,218778517,1521984059,698314489,643538245,1813566679,324956788,1702441401,1793896140,95827086,894572805,838381748,1175261294,910292691,105878852,724490935,489307920,501120140,1249036888,160739436,2101760026,146238030,621477336,1034482021,848191222,669338046,1120176634,232126314,828150593,517871773,451688733,1841395032,730538748,1918212770,308780448,1841208613,514840249,297426598,100037163,634032362,1933222833,1649216098,1623426708,903639513,731410392,1770921693,305296210,1897605501,438711951,1791401188,992987733,1759955772,558646227,393977708,144317737,325419557,1362259933,2000787133,1696970836,952077031,1556116156,1198080417,1955041086,308170345,1490825909,872173023,568400683,1263523723,1643903345,1956659315,1551147795,1371354881,1380677647,2065928171,439422397,506045026,1421602855,2088626909,248310504,965855553,1850202753,54196930,1293863884,1876139045,1459100951,1707265559,900713325,675407736,1550742130,142785124,1519242353,61772802,1794542594,1575451947,1583857658,1534329443,1302420749,33954426,452981293,531152167,470481290,434618395,736647582,1903574595,406660967,2097967360,1583183325,594864256,17863096,1265204017,573680041,662510644,58909189,1015308525,1632957763,897607427,1562651741,1826769110,611527022,1526637486,1087832057,1025389291,256341704,274811913,1764224210,754127425,848424471,1545601749,676107465,1062969711,1817253169,95422473,1278044192,791382368,1325334464,1072450389,958782111,467285159,1012367252,1753266106,1315275963,1388946024,1460726613,1195542704,617306406,1872377180,309293104,1188278316,1799459795,1509235360,1463135545,1977437177,1932556542,977583791,104913111,1282222182,862551729,567100306,897058338,1842915839,1078546937,90560402,808065838,1497971901,139297796,639394751,1698905648,1143831281,1234938634,76295536,556437436,393271542,889349994,979817198,869095175,1360112917,448216630,133327940,955758096,421411633,87224821,1139559127,573702103,1381983739,1823687512,769397879,1000625148,37139164,2115243943,920927269,124482468,1987146585,218484618,1242905621,1575534524,570679538,405374381,1278336604,133213643,1376722434,92908388,67584647,2011649999,6716061,607912948,1351563502,1463357879,1311504742,698973052,251728277,1041246511,72541922,110361580,101099799,1943049073,923081524,589928903,499879613,156689689,419828688,865635094,1263709528,1208190714,1362931264,95121803,353986149,815095197,1586011147,551119866,1371586631,1194255772,766337884,965010360,885531611,80066220,90464164,1386146422,1192941914,353001000,1658462139,305253925,1328471147,837918048,290390618,1949910431,152176226,1969299404,785747753,1884010833,42925027,2075599603,1122742872,1556538410,1893590243,1237187224,1392399879,441439331,1901900633,41314533,79634491,496967316,1001119836,524467263,207842762,637774189,1838088694,1790454552,713474379,1818502637,1300504476,1798562585,2017059031,2045269931,1322574483,1222424481,791840847,235106827,1943900262,1812629709,1046028259,185399408,513829382,1203752398,2096631431,643393552,232022107,1626750845,48793530,351907579,1875413760,1014699224,227437670,1488445041,2088699178,1268933285,574494377,869928005,193020767,1092030340,625617971,2054244339,1165065777,414862358,305558719,512130559,351525242,1061608569,1062441961,1273375565,2109336541,1475477943,1781874093,1160511246,1114392042,702160110,1475671299,1165975714,754604989,172462168,918198152,49603576,1035277917,1382669269,181916504,1867568858,1681213207,1995762107,1065133091,1666740927,1941392624,1401990786,244473312,695857412,565711341,1553434992,1491918760,1774887992,1601127688,823704426,536862820,979724813,91455451,152238875,1413535785,780325369,1533345591,1501465873,67490165,652044509,1615698478,1823894091,111813417,766103047,1837131212,1976654276,1668242360,2064944994,1187011982,140241231,1477504612,278135463,1184442439,918781693,18660521,457298658,1413522347,898022938,484883290,439698769,1866977105,1759819880,1943918739,1739187151,626594273,874556110,1859649327,1875885337,1999398700,738445915,1618637105,646538185,1085225667,108285204,58110166,1658096843,1642387660,1264146206,903467284,1281872995,1263126017,917739262,1818792168,807724198,2107233942,291184735,1480405792,1350042056,1014718692,742381958,954661362,1469523565,1687197312,1011711292,431026429,1955195185,1059609356,881056342,479199485,645722764,554537504,1023218890,1235189710,1824514575,452862155,793146567,82434598,975701413,2074343927,621335596,743304736,892431961,232625631,1442823590,497537807,810120725,1965030895,1323098696,456530225,1030906002,129309755,731217304,682122272,1164112517,1438492087,1523898275,1491696895,480031047,850625739,417476066,361509754,1919984496,289109136,802282986,396415016,639875059,372958178,652263124,1934266382,1649271336,490188054,275946067,1117530305,981242689,106986319,1508730492,1229863591,851009752,473365699,522020457,578734757,138361988,190568687,1229746171,1131661095,1364590932,1737431509,1117897807,733071943,1492586519,720863868,210440068,1691782184,209712405,1130973212,1865625501,1513641514,1751497321,120524736,169723552,513929133,844104177,1096602716,1562611796,962967211,1504792323,783176163,1622780525,643920470,284611845,1293026422,114812280,1392274872,288747375,829735282,545878407,2032612547,1392318709,1586112826,1097484208,177505476,586820521,1990591430,276314530,1445366558,998308114,225689879,522991669,98097968,623230844,1578303980,849477866,2065567550,440283050,679779078,1459133810,2060446180,1835282950,2046578583,9874319,287054479,1389209097,211638034,1498003634,1173490819,1800115629,581401877,866486728,1905792234,282704068,1652797780,2044413349,552710118,1602611763,302269699,1591931834,564347842,1151062629,1508862264,561408549,1690523830,1657772074,1216046665,1092582040,1226824804,345670640,558336075,1004629420,1631585808,1815093493,231354123,291779517,2130489328,297928827,18401641,580702515,518501857,461481427,1804682908,1656232421,944236558,971051220,1384089922,836342313,174658323,1209518339,734986544,1068028692,551587380,1658366581,1841044668,1269961977,231774367,2016301301,1052296853,1813175068,802329917,486876260,1062648502,1233223846,6228529,1962969713,1809036863,194691856,393079853,826103639,1321487438,1461868206,1663035309,839702383,1194367253,471568286,1551864370,1609300760,1882889974,14588606,695190633,689498231,1430455678,568036147,1933688583,176333437,30440747,636015674,1644188450,1605392030,1735144659,729366822,1866058243,1221846774,482566109,1055068746,184766802,242631738,937910248,150959595,1129458929,1881494008,240070222,371381412,1180048680,1302339981,1909799584,1435682760,1154969810,797433439,1680271214,361875979,799451249,1759883319,214492599,2121444886,625978362,1581729435,1229810019,1162878864,620451059,313365154,699610704,1651677082,993386796,744003643,1986125237,378911924,958941532,1661733157,1842236451,307617904,63855397,1269430354,1891020855,9965180,988468763,1870652161,944488969,12984123,1638015011,1412578644,578639938,318467188,381776771,1745930532,291305228,1262573762,1085838879,802762008,1528094821,685146163,1215205502,242138791,512104207,1055525391,1937502345,1545064172,1509718068,1831586948,1283938560,622919920,964392524,476543336,1811143027,513287828,417330217,626615725,1835949231,1349359862,1725281559,2103208519,424957726,757141722,2078830478,1187167298,2087301237,1597658503,476060353,1136994203,628482722,757964267,358928259,988889141,100939568,37523972,591731546,2098855808,829546204,887408034,178216232,66157246,876187522,1191499230,640050027,1193203132,1135325672,321398913,1551587312,1481797448,1531169863,729146518,2094490518,582033739,1751753749,507517865,2097873689,547838367,1261884477,1905592703,2119440995,777799112,793536490,734652911,1961745923,500628559,1648517590,626723701,1928436111,2096472650,372738758,1780826315,327547227,146288285,856276851,822427490,1139482909,1997434538,1131548934,757164248,886682205,1222140362,1194070391,1731243369,743038993,824373432,1433294149,1222915543,552013087,1609194944,504212512,310231676,917011187,829072238,1273044048,269167797,767340380,521257806,1852953121,182023474,1102256552,1417250397,1848807183,922394455,1915572919,1020702298,1169749730,828475023,1597389182,1881763511,2053563278,517256428,1145450565,1048983807,627042760,868868849,2107032175,1155930607,447131607,1746383348,353796025,1749894910,485095391,1740683153,261354784,1920475817,1742358818,1957429905,165375775,2108022895,890779356,603238382,742686409,498968558,1562573291,1324692212,713964453,1233492245,830660816,335975908,1906483469,199176435,122248742,1407067374,2075968727,1914955616,915277371,599319742,1007103028,990543921,234554830,980816224,1908252899,1505570350,785585243,1800151809,1485369109,601617203,752449814,484184070,1280467436,1360968941,598999864,797237405,495015523,1324574733,1061239540,540133750,916227486,1914266157,752165393,634881562,1275830182,1828563597,1703169369,1381599297,1833221586,368893506,138130548,1111733029,1889937142,1007464505,308678551,558926927,120257182,1403881445,2018578961,1138931811,2094575238,1011094888,1160356123,1746789228,165893510,1743471977,1680351635,1519188050,762903596,1276407742,2002429247,744233265,297951933,1468959458,1596647625,596170968,1327935668,1703525684,136796432,1412214393,1298398470,268727161,1217267804,103725440,424033791,765064064,1778610741,683405974,888442709,1386322034,1184059348,318625019,1554439500,1728915936,766582469,1509348315,1510011765,749733559,1357686091,1442521656,608123067,1100542074,1664205706,1613179327,1729705602,1831455230,246316456,441871339,1770030993,1151661002,1887030478,1553405995,756418173,323755987,1379458963,2043803504,1184095872,53810411,831759148,736262034,1920940030,1162826943,1535695238,1851508120,1156832300,1530507848,1840170960,1664862934,1340840897,1197244054,398955061,169316043,362715247,1142862576,155306638,289793489,718700224,75194431,921121612,429440732,1373071466,1273643510,442363304,1833985339,634214707,270965062,1174886816,166768964,1445626149,148242240,1571112465,1659225702,1436124617,978592393,65112621,335291428,1192264175,1832540266,997449548,1246107232,1353521804,1671816218,1083535674,1559217046,1054949978,1569804077,2011818726,318769254,1514946156,749845305,762362059,1720910235,2088820569,544194883,114616176,643944604,1913237019,1288440749,25088597,1520594211,510288015,106255833,1208629763,1960133322,1972999937,737843788,1627841366,757754025,537369169,618213288,832140115,2099700005,1339000160,1730173657,711147228,859131138,1660842210,639676255,2005367927,1123721863,298402354,277282383,831801115,180420789,1084763075,1136371300,1786796810,770940312,1908865252,966824278,734884528,1526486716,48694382,1415186869,412963551,1633053400,1922660645,1204232278,1841693732,2037971237,1497198619,424376949,599849304,1814495549,797142816,1586887205,654393616,243472223,835578693,1534878542,1939788037,1493239156,1064035053,1139156714,914555142,1375149425,1046240670,60690191,1612733630,840918524,1412936822,1346131681,753792896,84176184,1706748361,1638830114,504367300,1389955506,716717071,1450380745,549977024,413906195,2070496274,1531854092,821872241,1290996308,985311983,2038052167,1743484979,1785588945,295437871,2130281013,1120469422,2042639250,55275208,448317682,1533356190,1817286533,483070462,1933813563,881623620,1695830841,1677107279,511795040,1514815534,1805818989,1356274999,995934342,1685474206,736884792,1476577630,60907371,1216391559,328426313,1209762846,399427913,399035850,283202109,2036098070,681274361,1887515008,1520629975,1569366333,1466802966,944668912,184616169,1370901157,1113100839,1647314181,443479511,398018008,237353733,158668017,1018448968,2067381033,635038555,2101046084,561256044,474242370,1371838720,819999165,1726325715,2054799931,95371661,2078506154,95558681,2101827823,1066361121,2096227936,379547246,1584044399,5810547,1297104009,1766891385,1250235416,1051360004,160999653,260407322,774119557,88378860,746980891,1846318734,1256167407,1850509925,1090994093,1330341450,948718391,783910661,660340778,766565287,92218864,1108443388,2071338644,1511325079,102575866,1177022181,1903604438,1808219431,669081502,887575946,1954164975,719820080,59998323,426484176,2058461071,116616549,430437617,771310313,1650738553,434435958,290693173,1662689388,341775070,1345001865,863497842,1070479121,1476844877,2067003257,1727227273,1030040165,533433236,1422847338,667557041,1770160310,888789901,1266640572,687002273,1073320951,454996319,1627375499,1839115770,222694142,525068096,2030018549,1182594571,357858835,1660266337,487771003,400963932,1463675167,1248088804,811851459,429235254,807410590,1974843350,517475973,348319223,1681311781,1219966344,627175199,1013473494,1021223355,852741487,1985417227,1670788017,1962363366,1202972303,1071702694,310929634,62569401,464225720,776090095,2118655381,1649450524,1943793487,1033147146,1754302202,102493169,1439232458,78445934,594463933,842163257,301047504,1891366895,130448337,248424588,1567681535,2126763280,1915082866,1648660602,1044500479,315096357,1738739365,828522076,1509992291,1462293726,1937521771,1546822460,666561832,609633335,1734154513,1326416170,659154551,1526729870,306005380,2063510031,394131127,463106397,100571511,972475602,1007218981,152090099,2036558788,1400158023,2040885230,1151068584,88191474,468348091,127205373,158319340,698189970,376290711,1330462988,1978960362,200655656,1493731989,1205018717,1877464657,1826313540,916604504,1628789255,931749882,1604879096,940587497,1232177042,1737794621,1377160166,395922013,1232888041,1382750323,2087650311,87066427,1579229144,1984994973,982925433,870441923,1046230844,790818373,1556702809,145932327,1688834516,125863563,1596708607,551091503,130775251,2067010567,1617748754,1134983291,1072279720,154549789,676106913,642284637,572618006,71881930,897391476,1588129496,550274370,715161126,2105332661,1288134391,1227476297,727097350,654821180,1384217498,373653381,397782166,1635601925,984585674,1593014587,1974722204,1784379935,1627498315,2112329588,1817671897,17680908,1496223626,1854515184,2002946600,1831792782,1341345490,1849776922,686393341,1588827147,1462176445,149500193,652384825,175720752,457995735,1683587849,993072905,23322422,2088830407,1430909415,1111239717,482641234,1623458230,1692029121,67148232,740235434,443551135,406005930,435679919,1155099540,818277737,1518138132,697373709,767908516,1287878081,408981347,31214723,1641489363,514149336,1176507842,20709743,2045907996,184274312,993745852,1161253533,858320895,1141100332,960924886,151390372,2011022988,1519279696,1230936944,1392222508,1177314930,1954555482,1066726061,149637060,855489517,816539147,932028542,1277613263,984142212,1597842549,549780962,2001305483,855910355,506876065,1553651392,1725778803,30693260,710685922,1918876885,1517252919,1630745446,824846876,53176525,100106413,1620692647,562221668,1421603604,695222400,431553261,2044868517,678129771,83843627,494157483,638199475,869425437,868521682,167580494,47667030,1355419772,899209523,1022144611,9424656,1448109474,238990424,1753197646,1856928015,826120492,437100893,1395593157,2065914624,595395286,1632901135,2000988940,320157374,341219642,1957571036,975316072,968403740,395084989,379522429,901922794,1984381433,310102302,1948803516,1154930527,242419603,1011493478,1971736903,1563346516,1202852103,1947305973,1290054173,902478204,2015335806,1533626527,745777580,1522036196,876821931,1501994285,268993883,1378078821,1071457349,1192358038,681733884,481562004,1462138780,1266177671,1046510744,2078255286,1315718422,41829909,270880523,1715932139,623641932,1218309705,1997873468,963636002,351176864,1384843711,1550728950,1838946100,698054936,1187915134,287058569,976942724,228767327,1220053919,1456795803,194289843,1449587440,610231054,1327346276,1384267338,1703777183,1660406093,1660435898,1903594943,2047981079,267785069,847256363,203393408,841988577,1235014541,1124419679,1716062291,1091537800,1156878466,86305789,1141743464,869570641,622517453,28363673,1382902199,1073496457,1739308395,137740834,396522571,1607978672,2047884697,1309646960,1942470697,1829483943,1610517737,1669266531,135412461,609967506,1544250456,1631863341,1186679903,459596313,1278264321,660779677,894199677,1037140039,291756166,1220491570,1582395752,158397429,28854407,1925026440,334395204,1613659515,462464792,1351795978,1955325131,1828680392,685410766,272073619,1016251400,1369329872,427285037,1832557674,1263107798,970655487,1035497840,864826932,2110763887,542916085,890823842,1453676402,909837074,1551637673,1672569670,789152693,1710692091,1955797945,1018917908,2028689550,1430871916,1838841714,1402436825,201008633,26372607,687402613,614145809,1913764206,1531971153,431874845,973870132,499392932,853743233,1042090113,356692529,1580488862,430596086,1247561093,480408406,877690485,741798607,599838740,1041481011,1266488593,366488854,1015887841,1498581827,1716408179,395670217,1767465238,25658424,1208749914,1360649085,1007026249,1782247543,1216854408,332626257,708913948,1538151179,1904659508,1027543162,1566671500,1712111303,1670266323,2019602563,638427703,1745901347,131352193,437535386,2066548644,2101252094,1825361466,817499054,803286865,598926789,1017198616,2011384244,1645727480,1070326099,1733112657,631281611,1760398343,309757618,1541099068,466232637,1768996345,165147154,1926249825,411195533,163402581,1237250678,1491329173,2120503710,1659120432,813037267,1229612261,1951038991,1728384444,1401335648,585003514,1295996444,850346422,1885092695,1569455652,181337791,78845308,659097472,939361656,1331173844,2049748343,536644391,2109299678,379995134,1840303353,1969429687,829874006,634929175,1454327966,490696480,1662550569,92172500,848702250,316431311,779963342,964613306,685290237,259132999,2001041877,2101097160,604596934,656055958,1005054098,1224385999,1753474276,1979833058,633544827,98383305,1013189519,1573086648,323145816,1655725334,884739236,1028463613,1294511440,174777804,2107793429,1311959661,859707792,542218187,1020464868,1229685964,1100420610,1454163857,733218828,566339137,2001935743,39116029,1260722028,304807187,781028372,1354258959,1175116092,1744197196,1077624670,1631284412,1067872515,1379383468,101735381,1914912876,811324159,101147809,1463234034,191912892,1260372130,1373611186,1759788056,825218511,1165846423,839053054,29631906,1846844644,1112396918,1591708391,569554865,990351249,1076706360,1692882888,1592967893,1603028580,1051391451,1237813731,923105304,800842302,1242402177,1939449906,207702923,2046530539,251844667,1934452132,386041028,277135131,1094400111,1927203406,1484700862,2126513192,1813612375,971875213,1438581716,1115343471,788093216,1876012070,1042953406,254479446,1424914835,2111760708,896178538,471938479,1299140720,1490155118,1778037954,1240522164,1259820383,603966923,1097226417,2125334315,1987202369,1179352068,1719072255,565382759,1314533670,1910258944,40295686,941103220,377689404,1360969421,1611792007,5956972,249155660,2091699332,1725528437,154484830,184323435,123723648,1150476149,127200017,1988249998,122301998,1830214157,89868987,1467346353,1177551727,1500724351,594132476,374367291,94924954,1994327037,388370064,2065951743,1689616941,1077893106,1832972966,301707531,296713017,864949035,677728355,1387414509,1608167824,2019853521,1692552166,300561198,656969971,1085334387,53922778,1108298840,122053299,1729404179,1021660188,424819950,2097812887,169414440,1491852846,496195258,651171752,347117483,278365946,1138789123,878536223,1584875665,1663167049,1416325418,1750260029,2087859406,1776264898,692324998,999519286,1018957782,490010770,580810833,2052104137,1622658286,194074017,1258742398,1398594162,715711436,960657038,1959415665,182757644,503115895,97397831,870568452,340784459,1726061108,2028037430,2069296220,425314295,100302344,267310674,1305596320,969676102,537580226,68916069,1652409477,2045542424,1826584579,932701053,72245521,74852933,841394758,403003904,174082412,1711461097,1305844778,753178269,1289110914,1283320192,214087450,876166325,1377388022,580267965,1776865366,923296786,1888258438,1621185862,47015744,1038900114,1727566689,1590268064,1274603623,771834416,981878579,626322437,1983653465,877234757,411019250,1389133524,794852924,152446285,1005051923,601227627,122815546,1077563426,1624747563,638249042,1498915742,2034596659,1332204317,1270416016,1657990473,1756214315,1408866752,1865242061,2268441,1029091389,127028985,2086954037,1257439296,978409616,216138183,1896363652,261902441,237517324,1377380406,1035762130,107089425,1824810318,1050463175,416588332,895711508,462301177,777223912,1314052463,1542314021,1524027333,1162954032,1115980753,913801187,2043705237,1624204872,197127884,1216008294,771111055,1081366864,719584287,848156327,1310417226,369225647,201217895,1589623472,1575634265,588131381,1542154663,105274392,302584001,1271953471,2079337615,1551754712,587791948,1263236455,830769987,2026467305,522568515,1508401130,401425565,1578013302,1866756097,553922612,1108390403,910350063,702721949,1661781544,2034396508,162846156,239715033,1735901944,142908116,970520085,1314717997,1386067341,1097654347,1202854125,510134238,1639252704,1192247452,642934543,928015618,726554306,1895665314,927024215,349761507,279653101,1096002408,303654567,417150073,1379002134,517228005,1903854429,1626903277,388937632,1688832927,1915658330,1961362766,640872496,873874422,1396650679,1489486617,1445898562,504312061,759492952,390205626,1726526774,1341991219,123712720,1413247918,1637252019,829261312,268619549,1085979455,2129012992,290881888,66270463,2003850363,184563923,314655755,1220569834,626391965,1068908032,14685755,1847498859,870344995,2101092711,1661138652,2056823547,1672329581,554341273,1770421709,1983363901,849942528,1690302977,707002979,782964435,638887574,1340187136,1858089329,1168227383,947447686,1408432609,230915349,888555093,1837008591,1334609741,1217735675,624353534,773903023,391542621,1636488534,1248454845,1009577799,1726875126,2054423447,1335290432,1067447952,213763533,1054116206,551944414,114701727,1061979345,1589186466,175582253,1953103690,793269186,1411406365,1136884717,1580550089,1532547448,1499463274,426189038,1523676719,24868533,1804314694,297241047,336638851,347633510,36043005,797163173,1998642899,564029078,737570735,1172648037,949884750,1978476883,554886345,750661915,123964026,808695586,1567775018,1555983618,1921050271,585600569,1183378086,234963637,1835734212,2059415122,890189247,1592605010,1863470696,1789244737,1526259642,1116503722,309652334,245774720,1990383893,966475094,708710247,712170533,173800011,745625534,27540498,1349452780,628538476,142743386,501838708,2064771470,860081509,95968898,724792277,877883684,935364976,1846426966,409890770,763570261,1612967919,1631616519,1828223078,683650701,1666865493,1458163398,987097621,1702385731,473898986,1456812196,426613754,878036772,144687496,295723307,1860024926,2002255520,711696700,2041084008,1665631268,1804026166,399744893,1355480975,1543606042,2032736385,1335225433,740065298,110631267,1837254994,2112693275,632144481,324152533,2099843945,1140686621,899732075,652252630,787278002,1410966055,627534235,840479686,957711454,1208025797,24159597,690243052,1092193501,821879815,680622740,1905025877,869866766,775692567,609668294,355069195,1659884200,83995300,1729840446,50778945,1958472812,1945052559,800984003,1176195671,1773559938,538331072,779528894,1498967899,311295539,1424605803,1697179395,1008516820,360502975,736009674,1395252693,830949394,895402808,718936756,1250160923,1691152017,1867580617,1974881603,1296959475,1913904266,1043578565,1122124599,1537972376,429108110,1055880156,822995349,1180603511,1679370688,249671630,2035750347,1028425884,373145583,1694492246,1798165067,322452066,1508814501,18303137,1138842015,366540632,1663535643,433602942,2040608296,1820895239,2025251592,377976056,1520606941,906074156,1430927055,2079996690,399572636,518985360,429228225,2066416509,412677240,750543528,154288180,392237405,866579010,2058708033,1002286031,1217226489,1160960771,1314802157,798866015,517989350,1130915586,846479648,631917049,459167102,1051190793,780095479,719771025,2123105141,633506313,784047224,1419703787,1706381648,1536760396,1939434612,1281591196,208836518,869655636,679749757,599060040,444157304,575751472,1683154492,913673282,1135362206,2121080580,1966794356,2036691807,231063867,1313815784,1818601963,1071120254,1785669627,1157607941,197604517,962891511,1448579266,360625006,410478909,1969847111,1847425590,1502124332,642354840,270955547,784530789,1526050634,1095398120,1337045858,1670791739,2025926921,1965323664,357800101,1992159810,541442149,333796865,54095815,218517630,1687296509,1787721755,2055205934,219184679,1594836069,106011658,1917816626,1703244739,1879182597,1007920627,1106555942,689995832,332257930,1344573214,1063798688,424306784,1723580349,732278315,897317714,1337509059,1921578287,1971119642,755107591,251089833,616884824,873798178,1858612106,1521604416,444791387,860537477,1497184665,2073442274,697116537,1033813247,2107725542,1871716353,710628678,1913482696,2034844952,379806251,1685316744,1813837897,1858846369,1902269186,1076906113,1908640293,1137846349,20599250,995196102,1037311578,1351267445,346357077,2110923754,354856216,1772782788,258905838,341611100,565481199,1791828497,136100454,45456117,716329689,1435072082,1977228619,546877097,1249757344,253573971,172000956,421847184,737810025,617012075,708590001,844467399,1032828546,786686674,1905631665,1628048830,471299569,788656336,2097559167,1089390769,984722124,1273480985,704031469,1897272854,1268994778,710064792,274819394,521879379,1360802830,953091968,126784775,834764728,536875918,1917319030,646992550,1465486882,1738579877,1599861181,1852350497,1852761501,772389264,728290323,1003257312,64978177,1048761988,1940654580,774481328,348902147,1679513423,1096504679,2069367151,469278426,650313979,2080618076,1433326715,1865158443,1939604187,1210158838,1260788595,1416870438,1833502066,2076140377,866764901,1740836119,334327077,1135716476,112569646,1209489464,406909412,1981910309,1088977042,1259116106,621797879,1340481233,1136241797,285528253,2114076060,2002081181,766161853,1628926990,890231868,1183706078,1642398774,1115464593,932226406,1013631421,1302773890,2067823779,344756412,430354636,828199957,1811443473,947121293,2033265105,1409559925,1180655366,566702316,1981344562,1238809061,1681949572,178890924,609597384,795895200,1559814041,1266350730,1416479456,1177277078,1484351394,241159756,1835750615,1886965801,383934145,1254709379,607961303,1496874236,307381138,1855079271,1552788459,505986373,897477246,797105688,1931836781,1301125516,1152985953,1972107104,1316233801,767411558,3012063,1335351192,1966943591,907135548,179691991,922663193,1089781178,931375071,969549961,929558324,138235390,1861566643,1884838992,75730072,1520245081,507499405,1842331652,1437442576,964840099,1187578419,1362534207,1944930377,1894518754,1830690749,742793227,1512441093,804763685,1707046742,2047328315,668181848,1367295936,262722132,679020417,1644854899,1887093826,1488173124,1567163067,366332087,639857318,239386456,583849228,518423861,332792219,766152616,717558036,1936639224,1298127365,900065392,1422203847,113448558,1447125911,182364516,126509555,1240992131,1227963421,924159471,1026507269,1814549749,924624317,1252886575,345445319,1432036648,1574719706,353450566,1707163847,514611037,321321327,1451724565,792273542,1894308442,880230234,1189199571,1390884332,2080682248,816598681,1940013757,1779594460,635911410,618086776,1822142716,1332840674,2047295576,1794637364,475859839,1669369356,1989919918,1595257745,433894426,978866852,1112216215,1306142018,2034465008,416056081,840831774,1994342897,163052556,1750602341,478150363,614174745,1583122642,1889924985,477599804,1832198142,294647099,701503157,900582428,1461680029,174145855,975147740,1888316172,1384829731,1260580446,789161433,1537087148,993200931,1198221433,1504402738,1319018679,1900820448,1862922027,638283966,962331056,20874493,218989145,1087700017,1193993874,345407036,1320320355,1400116541,1097848821,338440657,113390340,88599466,1545608560,690107723,1978099717,376884689,114602218,1764860196,1525845474,114104564,652710564,2031829650,1637299089,1394721176,311583073,66312992,1012056307,1049018315,734397684,604593232,1856468694,1822896466,653301060,1786504071,593790258,1901320328,1654931405,1553183345,235967279,410652327,288836036,1958547792,847959577,565161639,1974193214,1942632194,1650215162,876874969,1283995364,895021807,617020979,715900799,2068948746,1027059963,978146260,235866596,886555031,811491827,2048623855,205729786,276723060,810025381,1318625454,919377820,967316837,1370954116,884823253,1677543589,1670300343,1808607275,1734549602,1137702528,1590512982,892916455,246358565,393541622,1489904233,602057175,1579022375,1709064213,317162876,2052528494,1725845871,83788234,2032423260,1256591265,878156285,1708466407,684890140,1591690222,1230173077,1115882694,1562112304,2025421058,1716750466,1791588080,1780255463,1937100457,1466203761,1706975792,178327263,753256256,1505042217,788338796,1378122453,2040108903,879032409,1755354968,399759243,1301547065,108861345,2102542065,926850671,930005288,1854858311,1515802258,1083581342,679481959,540401705,1742060970,248168682,1517007847,1136572190,1109165446,602028673,592920570,1839436926,1612987660,51756908,2039464291,1013970186,1529595824,83045563,1103839147,1070371682,872176930,195557704,380819998,1362965550,166930869,2074028739,735800437,1297599494,554719830,169571737,919158949,173611805,787885258,1144978521,1834312296,458697796,1109025525,343669847,1408033020,33810170,1101737484,874338016,529181949,1409679880,1438755147,1204239118,1026048655,2064603064,1625167056,1101280745,308594319,165577721,878842798,580017061,1241819959,180700338,207864975,1666766651,424397727,2003679190,82120472,1327850278,1266650075,471161130,1195287768,410319068,1652017447,37468400,745728747,893031549,118209785,662155959,513955862,1225008576,35170343,1120203982,1224414260,106492301,1087455670,870960971,839478214,692393853,1049886455,1686373452,780141629,846171020,980293627,1715563681,1301344233,1599587716,817404832,2010021202,901602746,261131152,1701549175,1836142175,1036819868,1592031309,2130092996,1366411165,308777467,425137407,802862983,1735058982,1932069555,935650701,1585805766,1143279085,1208712780,1731798039,1077429691,1994113092,820218082,1788547987,139146859,452422066,71449831,1227207382,1361343912,1268380425,1412463648,1319019188,579133553,337947425,389348400,584102624,129534551,988075538,2096293612,689632796,374070770,737532150,747620942,1704278521,2075328098,783091986,700626541,1992980048,1468903363,1239397400,1061311127,1736176727,639525349,1451124834,1347904785,208992096,1582779972,100665733,634273860,1125677660,188057438,1025780437,2079093288,1027649425,936774007,446226589,762085377,189264155,906492560,565067947,1579227483,1998741953,700373946,376877887,754146202,1604774618,154261333,890986806,785772279,1276164963,1795659161,1640124103,746665701,1557202169,632417284,422002082,141671816,1952485948,408936887,1853184523,702019904,1609579630,1021972294,418369133,1912347164,43673200,2015540562,775022102,1263236674,21784886,1484282527,1211808016,846393536,1181280648,449157099,1389050850,1694600363,181962769,1302126319,1641013729,395137041,1929606930,1626154959,1969849301,631954441,1643079303,154282950,885964621,440713107,523113019,1360357646,679152059,1466722026,1826381152,2123533956,890438546,956880089,508457589,551059073,1410538798,740798390,1410434807,1501241895,674198804,635584286,1233831652,227105582,782349056,1268979771,17774373,1596956479,1544958717,598270861,1447729847,1057428074,660239028,235326723,586155791,1427543061,1974898479,1654162898,1413749584,809706070,575523116,243850525,844384587,1425560231,1754489706,451722593,396004468,1681607251,649042565,907905742,1010812588,809723780,1067651281,1509901349,878840474,247041455,1272018184,1643559746,410937900,1789799624,412807405,1854786775,1011522357,19462526,2099152367,1833624478,1856692473,169381338,486841736,1711472546,1315527050,631463354,1940165621,791982040,218984085,2082385392,71062240,150362329,1614692255,1010613384,512771827,1928297086,757309775,1361764661,12560376,69126967,1739892366,1840044680,929785999,475802435,672316980,168489316,336306282,1746156806,1819388080,405072415,1905379882,1746231221,1463461493,1931962242,602959607,1837081450,1262726096,967493086,1921197818,1729456192,222421740,817130681,519345334,1630736469,1956986682,878586661,1985789839,1353266813,697873942,129958481,221894255,66163256,2016598455,665356908,904614073,804170059,613608398,427762774,254940555,885126242,1228765863,597533399,1702660705,2084004490,222182203,1291546716,82728278,726400921,784050421,1531457483,1122452118,1263795449,1116168483,2045976672,505818346,763453319,973841636,13001878,1426585030,599440037,451314016,1499187353,1197195596,2042812618,1799124134,1596757369,2127873221,1823146539,794605926,1051015997,388596572,236253216,179957389,2051048480,1502907750,234468295,2010966269,1992812519,1988538247,1142357167,1825493963,1935304579,1074660102,603135275,547739174,1207432075,48422022,416834078,1548015556,1855045119,1958905279,953742369,341029671,2042057184,1946041419,1771318482,35116489,1980876101,2044441860,1902976841,377358476,13464948,654431969,911938651,822033472,1461026215,1465517247,1430411055,1110388869,1279665965,1672682423,1431459868,1609511878,61016158,857239414,1536841708,460744346,1128749025,2094819607,904322547,1451086971,1754734973,254803173,1527369208,320519578,946432839,1506538370,275165528,67339499,709154569,1538070609,87726524,171894338,116396225,1661032962,1597976900,1190876138,660466762,1355144976,1769115874,125061290,474612038,204464067,14500973,1565605209,110647440,2089579395,127189415,857869371,682633885,1523682922,1557442560,35572870,273629532,1732419563,1557353060,797883443,903632619,2124234491,1557041069,956477371,1312828278,778875627,868850506,1565488655,449460858,1676209537,1634255158,2067149727,269060207,1038331476,479763290,2077439527,643327248,637000988,166103838,1275996324,677843999,1574488274,1209174616,1375403908,2069691695,1878834669,874506885,1442568849,1605247168,494485215,915421864,156235334,178500460,1702690597,1363886914,511039116,1414312085,807224958,1675234149,1298790128,847211050,1429573491,1480235362,558451419,822884790,2128159792,481064440,1893436416,956963722,645875711,792626914,147012735,1949875478,293892337,63822725,1296932001,1178102933,551301173,1351064667,1973514528,246559076,759424332,5590670,184335769,952855718,1162704190,665522394,500974916,885417924,611108709,1852221407,2112699321,1735912039,824376857,800939926,353075997,1948599696,1619779451,1281988813,1814299282,1253248858,1744618109,1772614178,1921421440,150240972,1481130276,910239423,605103752,817964955,349225663,1625452294,1478503591,2020043449,241785615,376720271,1693885568,770785949,600419569,1578043383,597534987,720796265,1915639113,12574954,1228755071,1337288193,617321347,906833861,323911879,457020534,1399604846,249034716,1084336985,973950255,50300430,993498208,1239879647,1802583997,719498534,1296809016,1696773680,1200325857,1241015972,746672079,731231890,1033499490,2059648863,1034266168,1515495126,692126097,143346333,1636133635,1623077751,1615500675,1825591801,608907390,50717412,1741716899,364316251,1528615352,1026753385,575245588,1390950498,239662017,633420056,85981937,1194086759,544083622,715783115,634220608,1345799011,1815410971,1610331173,273711261,1964710281,1421429055,2001093469,1055945370,2123859985,1886687685,1506232795,1053351119,1776799245,652850254,1872654670,2044587565,1545878549,673041736,2006070100,1762657088,82257922,58100557,1121454193,1585900927,1380473813,727094489,1501325617,787016711,586342963,1915749322,1297832869,704301620,74108739,128202428,1611827202,304775085,1428841997,1943442073,2119562724,1219555937,755904245,885770349,206217316,1666920974,1933567634,1615126177,1122950918,1802984039,1987687822,561267982,921513362,1630628225,1921608972,1840731038,943360758,81288706,457812135,1708432361,700429022,1703562419,176254878,539480545,893686748,1856547187,905917142,720575165,1016243248,494236066,1453874921,1249316331,1444758067,334879818,1774943320,1484685832,1334790578,1580141157,1691351267,807864099,366537320,773022880,135634739,620858877,1509098913,1710606632,645504963,1174677283,903133114,616197837,622432475,1703919816,1392471460,1854528581,1494781468,1663486293,702761123,817926678,1965789319,564308269,1309676341,1588448531,1446994147,1822691650,799981144,782366901,2061765284,389361249,426428001,1482105104,1792942070,1152109041,1919140517,15325041,1816101271,2076905058,234422680,733060399,288134775,1885624655,1037124277,133488428,1465542652,376948962,627417429,1685442526,829753344,638657519,13318842,335650859,192957481,70034901,1851501691,1073236657,1776331620,692850387,800106654,699921629,783131885,991947397,1273813372,681271697,1477244966,1435925789,1143023423,256380864,2100648935,1897944118,1825316773,1056556370,852053814,913724465,985051502,886334444,1798714204,513719888,904337168,563084833,631638771,1757917884,1394312405,422257571,1056443573,883391793,400034069,867646699,1115961560,856850771,979660985,734784765,1179869565,44472418,975026638,394604850,1727559271,132740179,452509801,1258880375,524245732,1896163319,1864974895,1855762673,1847726763,150660723,1137005954,1486640349,735026167,1106585799,780326916,2040101282,1073275300,2063903420,19338733,1551193567,476030400,68176006,154878715,1554296039,1770084969,560518752,649350440,856616277,795610164,485300198,52387471,316828570,246895459,2000308092,884292705,1500742026,1494305367,1447952262,1044028669,162156928,1234406892,1802533316,896330309,386457717,1709684484,1007478446,919846091,220790885,925619915,2019457246,265939564,1824071286,1644632173,1297253821,282151259,1505824504,242657799,1413446299,583231419,474650936,850182658,1788022260,1955060630,197751043,1626891294,72513087,1889886857,938370798,151956075,819800947,1308474213,1287201494,1483376078,720697975,1098275036,1875627251,1220306344,338758932,1212379209,2087159758,1200491978,142963323,284227246,786262543,152445246,786578220,39278127,689664942,2128707906,1916154798,1610912950,1783050774,242254147,935911062,1614616564,1545759592,534686773,1673001782,888122136,1563225010,1994649144,202308207,1938340539,1284354647,777000655,154815629,1882155055,1789499955,17403644,923434754,1915069762,720924405,1441902275,475205193,1797556353,440355556,427759948,2101870561,1154876301,179312002,805896487,1338177640,669894964,1621261267,1158482786,137779272,91555703,856036863,1020766441,492419648,1529974250,1692405665,921594770,192814445,1068300621,1380612082,394895962,567459408,1895923142,1403769803,18341102,370212868,483778620,857196688,1710977415,1254439768,1936360335,445296408,1297886876,1825222633,579604231,164391277,1601049934,263167661,2113353128,499185541,476608179,1854193732,1922638623,1353832551,602504124,1957970983,1068241794,2062386126,788933772,1459158669,1479977450,1747052802,1521084369,1856619242,1363091476,2123039471,1072724678,1949941832,126185884,972350136,840205814,1568910110,328633025,991345780,973785920,722648039,42539253,916706873,478555612,632988164,447789453,431614401,1786131157,1766762342,489242829,1047073326,1567276368,1663805593,970026064,370888044,216508141,929240414,1235751885,1468436562,1794393888,959935051,535327323,1494385041,1488164022,1830908721,224874665,983367886,1756356653,1116839039,285614757,649011651,1902049205,1349730523,879607835,643140955,1536372386,230852646,66897613,1884019260,2070518639,2027362956,1367309946,499955048,2124460935,51023508,280775790,1471126097,1662767384,1367931247,1752157009,1831562365,659173978,1268790224,905207709,1428853925,2001270733,965782302,652042428,844571208,739668607,1064511248,1254118058,485237169,1286581486,2075738326,158108876,2025075620,181331967,1198372524,764488672,876561817,1016699324,188175788,284181588,1080199343,716493943,1238472658,1667914107,1636660626,31718868,1578681593,1972675882,514580405,1036603876,1591107763,156454541,1687715505,1565491837,1955751633,1624016761,137852106,959715176,1116557067,1283417202,358285136,621073593,920472737,2034507051,1069557281,1974392326,945262513,1127218864,1898205207,101218862,1208950585,267207312,259674686,1548938802,1406975456,1145380468,1902907553,1012576218,224241246,1829314691,578146519,477431285,2053540890,1770992395,1937550314,1828604107,2129063574,1359416512,1652954411,1960120535,1203122979,570457946,337092898,1365593938,1824600782,1888681857,732265765,513060312,2028314331,1611292927,1710717874,935912728,2032637159,265481059,506655704,846786648,992946433,1533659092,16139722,755577949,1906754234,1772506853,1330227380,329486792,799641813,1140321424,2016981877,517847418,301375249,972547774,190916713,1575202927,2098245327,320531990,1919004231,572236428,1711545493,447858,1627005011,824680243,108890265,854312848,115275102,144403801,371964420,827570646,65303464,1187710924,47259071,489970832,468149134,1279755153,298119371,643848571,1327307929,6866873,940442994,373480010,107693929,1998894922,425682231,762689689,1234080623,916719011,2058916304,105416242,1096264708,1856069175,404779067,249344559,92504507,1226812091,1072795003,1623449518,300188084,41470291,1644697507,1220793898,1327333546,109393779,573720298,737195211,289124996,749281403,1456600670,487964652,1516313773,423168466,739015042,1586835420,217331311,1864608223,658312274,1734816086,254763392,1004873595,1873422955,1360628294,2030260893,627819894,708764986,1448550466,50414313,1838780194,63424248,1041560118,4419419,1727699307,1062245214,1725975218,792277408,882090354,256498159,549778756,2101513878,942231864,1945181430,951182007,69914146,158502912,1446558407,956052771,1608700614,1434221610,769262894,337878536,227057879,1950872429,1286892453,418282935,54275606,96709779,1063015370,1567557624,1372666169,1490273464,604103636,1625438306,1627989754,172048726,321518317,784164778,1748305747,1682465104,1749636116,1416921625,1519061106,312452895,1029466798,924703225,1585141538,1866373328,760640136,1024852269,231821976,423366391,1352423768,557075747,2054987144,1247940302,101615336,183614130,1436067746,736686406,811348786,1822148045,1366345149,1774309185,1881013218,1373801324,1742002992,1227394891,871578705,1233608769,278876586,1977120406,1249874424,1288865785,598111256,1432000487,1970828645,930642800,372085446,1333520061,64419159,1214344561,905252474,831039918,260244604,2035772504,1692465790,1306151129,707933358,1570683675,1027143199,2029201355,603555330,10227698,1074122246,1664507658,599917920,863203954,780915710,1912168999,1071480569,930343903,335756201,1636554933,440712963,982643277,16680846,1277361860,1812717690,613735600,1854112814,713334184,570834843,614283704,868033583,1545810732,502394059,664335090,689650027,2062295144,472666221,1287384693,1337697064,2071168974,786985152,1725342135,1347156589,474817791,1346679218,993454445,1051552280,1923456135,1146780145,1189545431,1116135193,1059075699,879728800,1394297663,2046703389,386494686,298599436,1106610574,1486083618,1512337014,1291356669,513128643,67191151,1502763825,1452753206,547741460,1536242887,52882028,832261708,145173420,1744895067,611318800,2065245308,1668304521,281496218,1181299713,394725699,907166942,414036046,1357830955,201076008,2046455593,98869803,1847730232,152470972,277173355,2016206783,65443007,340586158,1238453094,1505449917,637752843,1520417675,1218634416,1561054199,1558121958,1533365262,1835007990,106250543,1627861253,1526013208,1235689924,1857615435,1351648099,24040874,1727517471,126587518,1601511809,1633552977,602088146,970726020,932568212,356561341,203380308,992861983,1462902137,937561775,1482257834,611486399,1440308258,1620572525,1048778635,1372098035,774065376,275447809,692294758,1174230192,419916984,1142518692,1260512045,1400489796,610556097,560058992,1878123604,1144354361,1144068815,1979668380,1607084963,533190223,1055139251,714339021,250577295,1915523040,2102559252,684941447,717493611,182710412,503545816,154286039,294943874,1318140894,939531126,2004076227,320500996,1271212126,926519883,464301438,31341408,15393884,1113769863,1950955759,38911949,175527886,157549416,921398437,1306185280,717470336,1583657048,528230721,2096219944,1201418161,396520137,983346000,104720298,387079490,845500588,2003586416,1666433042,609348766,2069994794,1640007109,304464588,1332158951,159682282,987287278,1600219038,1413996392,713694846,131590067,697637814,860420858,766604874,1359002070,263179998,1974768643,1481905337,1112278862,873722810,1591752776,1791465482,1723942669,243192913,1136995116,224048484,1572626834,1575870955,2067069471,781531563,1465237125,1005943206,210265681,197491645,891901336,1803441691,1671792394,478623673,726811803,1586850302,1426576344,1186318413,1039202530,172180966,408125305,1774681757,185217285,1100884406,1971938971,639408900,1444967755,1422342700,1703282647,140518240,794438952,1883639113,1807833671,1128403145,924984118,1491399010,2061489386,1239251556,2064765795,1423128517,1974932184,1211968759,1871738201,406997176,542561566,64209823,474399342,979096707,1180193331,945961418,980995712,1907082551,2108011893,931951510,346022033,1814709931,1072401713,827057277,1049818356,224510620,1754005418,479041454,486598360,637937836,983799958,1836316921,876630219,374158363,743503472,336468827,405340760,608997582,1560356375,31775521,1460738722,1238462413,178219693,234449848,754437478,1542128048,1093607255,1322611003,1201735873,1203879697,581692486,288957465,168774932,959621233,1978725780,770000945,2023438593,316469728,982924923,1547011908,421116152,3201680,1846236410,1774384735,1951104133,414928993,831903052,1137075274,1360879874,803773693,1403335503,2107245513,1532587960,815702829,1082059962,775724228,710505103,2036882551,1598323120,1795151423,1921551472,1045692738,211465986,677098428,875247731,460841456,119285171,382196143,1773977798,662827081,1524021980,1305417544,987997617,666253692,254368171,665525502,1929894445,1745270038,1943494492,991185485,857916765,537728748,307163638,94140469,173924730,537820388,1401765071,1280575947,1245180793,1287583370,536170155,447024721,877313064,1566861819,859503293,483676441,2015093351,424742195,1184513699,1696467580,561562134,1542696747,535384016,382723611,785477860,1188037868,660152545,1846153858,1299299795,194887770,1271494027,1630559355,1635755059,1595491405,917005686,1763901938,359804320,2078020269,1868173429,941093993,748960831,806293121,1385848179,1991789425,874065916,1902985950,1054781111,1925339557,112890822,1520927864,44563668,43029824,1126808815,1754730484,94974715,1859989910,889560773,721902086,1229027945,1905267171,662174448,1138069224,252791338,232029468,2082760418,1937653035,2101039888,1790360700,669693317,430684899,1533208491,1970642999,1335193043,139560655,891089439,216242974,187774857,594669348,731609074,1017219533,1800569634,687596068,1588411448,1871245931,1188179660,2122382537,126042168,1935461349,949915017,1315151505,692936272,428463934,1442347385,1987472445,396809528,34564504,1367443667,18293275,2064867341,259598540,900782192,680763335,1589471485,505620721,797452080,1472607215,1642552702,1699510150,1223595529,1194254034,60300985,1873424976,584014653,201728521,1136415023,1655240254,670932356,1189519116,813492898,406532020,174078546,646700445,1244584209,1117671783,404462850,1632431052,2098204553,857315777,1023388647,1270737620,230893982,1429285819,1664417203,1937760620,361361674,1897631521,731258300,4376083,1290530716,1850805652,869422922,1108664742,75319574,1891579940,1222629031,410672821,1891542695,1257777387,389044906,43849042,1909055156,232365324,287080992,605320109,2114369364,1497439805,1108005763,361676577,961806551,1411487827,1390125561,1425119537,1720636215,474036389,1970240882,2012484287,881640595,1184091756,1289091235,2059770992,1339489897,1143210378,389194909,1254077178,252843978,2042237044,1916874498,2076145723,644345839,569899537,1606452867,219847697,1537701710,1080187578,1361552642,1691558863,435978087,58660358,2008173273,3424740,1742855155,476367444,766907229,664591888,1304356641,1004642585,588699755,1388340100,587573377,810603852,609684371,812580126,1681580877,1809429578,459406872,1281942318,1780605316,1516685720,639496800,1500001191,1083286696,1548731640,143140089,654869884,664688383,1590162157,495249215,271848348,1654266038,2014482679,331073851,1591591457,864288375,1623798873,426711093,406818139,746346552,1381123320,253755760,645179227,458301627,1263664058,1823708719,802062515,986051210,1376685746,1562798046,179667628,1904470512,1014562450,1801421026,1790715559,468961953,989249188,2114481579,480345919,1509722002,989501690,1714369407,348872708,1569664252,844260953,1189514551,616838305,2103435432,1436325479,113361529,600128917,610772648,1277029784,520163825,112012341,389591899,1832839732,80643185,1114412380,278642118,1092211348,1742254882,520946574,1170513656,1074580805,452343098,491087579,609120518,485615370,526798983,1988487005,1841449677,1365278201,1505256635,111750205,1192836803,1518367967,1612835479,1781166890,62975056,1286971427,1590284991,23557659,68429217,1521988921,1906852078,1140371503,1408239916,595563102,1397471011,180131930,1539087275,433944034,565422698,1386983460,1327822851,1833190529,138028522,2127371840,1508581017,1444679989,1158033869,369586537,906182891,1663422846,1925612963,826792730,188988962,925161907,536374190,1567793833,1743959333,1233378020,585824794,1243648891,1648228858,2130509034,1802296221,1326184744,849324203,145862871,522497358,114765601,2065502024,1732346399,951866215,1459950784,1265171362,1097641095,530263737,182596250,1969401921,1617618676,2041744493,569107632,627260179,779714319,1500358377,248993157,581089681,672089533,1439351895,2098432210,299116067,190635405,221128493,641506931,397867649,2093181805,167591212,1976383029,326552211,1958430385,870966887,189586544,55790790,823870912,1943978082,221373883,1105054678,1035723229,1028471590,1193432347,1433991498,1662745750,195366053,435153476,243019873,615545251,1070599834,880634728,765087029,1674185467,130606242,889346468,1348583769,116079983,849879150,306997833,1992040788,476572896,1672877084,551317628,9029483,1324403837,1316801310,804892887,664805212,506979679,825385026,608186989,1905349047,2043229871,1007846353,1817852560,97849986,1353683260,728337634,1524409504,100842007,705683634,612524181,961440055,1648774104,1113590975,1152669775,460461889,1119341466,947495569,2039854671,1660759873,1175896752,1736321343,1283186471,1900613096,171132250,191086116,1708273317,472958688,820072213,1498320799,1425933132,1154484857,27480787,1854153106,288294709,2099948058,204255327,460827429,1834920683,1821060133,1005918593,330623537,720824013,36208571,1607379288,679359842,871383871,460687416,823708349,1663779245,42647558,1646567929,941300707,1732916060,111469363,947281496,1961739026,499493693,1667766364,1418022083,753556100,1128328805,1330786220,452607011,864974541,646123517,1830764651,1201238717,1821091245,1107033549,2002388200,46523132,569258204,1681814053,2020803412,181295727,315667964,1245443542,1896502200,384518159,190387224,147802098,181435780,1789266936,590505651,420149644,747450774,565647785,1601785890,1447546020,411938794,1268335804,2122515100,1062632510,1001396595,721624019,98957651,1593160365,796523721,1491880561,472775930,1602510749,121341663,503815242,1121410794,1396222344,455727573,165043601,85222324,875196776,956406522,1526331489,1130587341,1965829073,715859399,111605378,416231195,1703640847,1853328479,2117035334,651085415,145019220,1638029318,614536447,2007805750,1872435536,2037054583,2050854071,940657776,86634410,1804443861,352083856,1009920634,217798572,1281148972,69024891,1905778925,1838777781,294107728,1613711121,704059213,930313124,2035038129,59403445,1862487288,1343240381,1036686552,679180267,1406763428,770084175,1964949206,2115151766,602552134,355935361,1789370885,2044173421,676466896,1340047015,1863073937,428664171,1088895605,1538647672,704761912,1319333475,1427686146,662044930,255947,1465830349,1881770259,1871311567,1312993769,51134224,710715185,412749863,1487005141,1450199063,1550495054,1395302810,1169745357,1621799646,1144099923,1810418250,244957240,1864230768,159517969,2033887303,27958551,18292396,794279503,1270970400,364710224,1536200,1066097283,1170489593,88213726,1495379310,300649258,1681273606,615943498,447964796,17796604,747071743,1005342057,1729831803,1009387100,1851895068,1252731897,1003042724,2051037914,1069241416,1854568439,1896168683,581648856,481379720,1538166043,224527864,1807810860,567476685,984209807,2082140076,287847180,934720349,2084175705,1427474770,791093875,52678650,237356697,466995991,1344200038,1509584415,294525349,401896512,2015149337,1418836198,1824300104,1326642396,1214634760,420429140,1848358863,572691092,1769472788,1956491595,1975823153,1738450993,887712698,1609020487,1824476769,1932105838,556189731,304436087,2093252795,1389031671,270998337,550026324,1961901152,1101438706,1368119311,2010467581,296965448,750349660,1688352488,1139028796,767635215,1057228196,606064090,191410516,741747008,229718084,2023646726,1620706606,1299826709,2009360263,1515374187,1909367136,1523649489,1431342164,2051106502,829516596,2085540826,908196749,1027308913,2130007825,774875066,471821460,1303580416,942415105,1924327612,70548814,1425420038,1856612335,1384160212,1645425081,1588914993,1466252484,1500727387,15853071,1572043037,1439198531,1556454468,1252016856,1661885817,78820632,1613692364,652811049,1618111516,584343386,1718864124,1769684028,737400965,872423224,873839389,963601924,1226579878,950025247,1746562702,1745070352,750775776,1902755363,1525756797,854004110,1392402660,1742878525,452658753,1122101265,1872140734,1018043775,29366324,1536490277,1015335639,970689947,1457230452,130724986,326381617,1225588374,1627121012,1122727976,1102306967,1884169643,1938550566,1544629899,1070721887,1775372047,757886605,1805259281,1657798659,2020171494,1413304619,1389752780,819071227,1627001312,1681154940,2004154276,1540298793,1844711315,1422780698,653743329,954191992,417823383,1248054727,1589625351,89305186,1789193398,1697987333,2104244130,1536610879,1444324227,1512945174,758274593,1370166511,178262497,27054215,1523797824,1723348173,1244716193,1478752945,825571753,1952142637,162325703,224890074,1899997065,728585314,917745935,240679301,14111138,1519239775,315698546,1678616336,60103618,1746943539,744173875,694807575,1805632527,79208635,208353855,376291626,683207826,868939138,1022260765,220043548,1791120253,1508877466,411483705,776077766,1830528547,812631666,1849042710,135237092,1678412553,402781847,838722988,938195786,1987678006,1881252810,778632068,1884142364,2064192585,818682834,1835299979,338598196,1279053381,81386043,720304111,29000697,1005703979,478725587,630622286,1960523792,1016147277,1332119973,602196365,1169420921,10594401,1695832004,1058081758,795645383,701286111,1201562613,884282463,1754785477,2065642295,135804068,2093134273,1877928203,1781176172,952940906,789854524,676626382,952271292,532261596,1038058593,1032425963,147163247,1760789248,655604329,300201476,826149038,1389713805,594023218,2025979964,1774017032,1989874300,988576770,1511189856,378307450,751237778,1932410558,2063412477,2088896442,1611215545,1234561163,1920259560,473421661,2093344535,818969146,2047308286,1305435625,718282514,2077301049,2123073416,1563867027,1260969745,2099794706,835460414,1200031605,1876495114,1426010955,201386818,133768645,46372388,1403434650,2032617661,551414413,1904244334,2062566272,1529112928,492686163,910627500,1948231158,524218756,2099306958,558444573,37275631,286215403,1518808252,771768365,10379113,1806241488,1699966381,720310388,618417726,824765331,66024559,1677245583,1982135382,295469085,1431448222,80697526,390529085,264336274,276065891,1780388583,154510602,1344294698,2031286715,895044129,1056594228,1130103440,269231047,1456470658,1970511717,1234823665,1136806211,849337732,254043535,333508812,1065389893,1158960502,74103807,1585311857,268676653,1462107775,1478571659,210982397,2012932503,1015231309,543277415,1453896124,598460746,562251827,784067036,754473510,319872449,32898837,1860083273,174670096,1113195657,758445006,842818924,514696884,360736968,850526487,1458413109,786670608,1412415763,53425474,1649010987,2123115714,911697395,1538827141,1874848719,1690110061,1988636264,1254256615,1346309185,24420783,1877680339,152920333,858423816,1767922813,2098081777,2129502043,1782187279,382562718,599420936,1658815735,2037102519,531625308,1784192077,1201310840,1554924503,1351941942,1973208314,1961520001,1550167226,1274908577,1048780355,756506964,1736078150,1021376238,586512559,332104833,1554900447,1427427036,2008180681,1141594066,123348706,1305861469,1892854646,923092045,1815232903,1892105033,1635465273,301826718,1627304471,578162532,705266101,1592537741,1192570294,614005880,373340926,594914088,171166906,993464388,258211392,238022805,1780156814,227812582,712598667,672969360,857550457,396325406,49252660,1167834819,380328770,710968216,1887354065,1299976540,1492789444,491578434,1078500703,1016401578,1158273083,792201007,1784131075,1921800253,509383901,1883361047,532671060,1769897202,1479441257,1103849878,26343515,391256098,1061747838,457790766,1401337700,115104749,1309922781,370753096,1396610736,1060607983,1893763816,282672690,828094447,1921764795,1620948563,38939492,44906698,703153692,189067182,1551119570,391219717,466772147,1006340309,1429421464,1934287821,1616308948,1081156340,131424815,268645110,1200729539,246239148,264980971,1061798619,436429378,1968151647,1304114942,2078896821,2125171282,1129416062,156359490,1608897316,440565455,730060524,982492658,284086823,1576793092,105223861,522442642,1314225038,1729088188,543939067,635768401,73860347,1081777410,1705532697,707328868,1147996974,1375399035,1882311393,266558025,1019832437,1718570885,289935337,558532293,233806351,1785167358,1241621864,1747301194,37068039,1353272686,995289315,1512163931,1004905440,754358921,842298163,1834003005,824756869,58060783,1004325704,1234047560,892533063,1171525788,413797546,1854223539,806988310,2037524047,674731894,321806144,1225608911,793255404,179943998,2060035736,1526124855,32632466,1241062257,1876157887,1603941594,868681798,1755107314,167855816,779431140,497044671,1126076926,701087033,491096897,30942363,1117975394,1092222259,976075159,630778692,463107117,291372791,1901146434,25085252,1481349486,1300006803,312852950,175557151,1613480329,1270289209,73797931,165869662,2066357326,767513517,166849322,726554923,1773258788,1503985406,790741746,1080787522,1746835934,948371319,1319164129,240694440,1472417279,550353622,1747199992,1176360107,564758645,2040881102,2053991202,1618905980,520048162,873904309,1566884983,1709913724,1813109572,705668830,1687579950,2127286193,392750559,1545308231,2093241156,472007029,1641028349,1465291640,704087645,467546748,862158021,1150262938,1418303728,210948089,1842481426,366257525,907243034,172192423,633990768,1221871953,1743759933,1688987854,971182825,724999772,816111348,1794489301,269833478,486363899,235422839,1250427029,1188330768,374457399,530560570,788684573,1000686694,1418734141,2094059528,557954477,693341281,2006933652,1758078310,1882745244,313395230,2023475932,152521266,313129395,2079979715,1404148434,319958730,937956368,578887454,783241561,1595045275,236969279,1483533179,1303558836,1638762987,1059612792,1590033477,57793658,1061177300,175925636,1959412119,1308828262,1040789642,280089288,1035021338,1232335223,68283506,100392244,1984800581,703875133,787564309,1976290786,1097756669,997927209,243147617,460302372,1721036007,1997743030,173758436,2069958087,952605846,806050076,1156471255,1548362132,602594849,1313834215,1348573885,775231916,1046884087,2010019292,579175842,267738937,349615330,800792333,993414061,336390813,168265741,758069057,375751119,798708894,1089481538,1074805357,660248460,1124140772,76092130,616309724,1793717137,470217659,123474177,1162096531,862185566,957302937,23705247,1528217676,1030724892,1912097576,1780010906,902409634,538176156,1656204931,1184697644,1827457512,2028446946,608829993,1451914475,1955260539,1032509678,691478813,751142068,1041595054,1456628657,2069965366,866292606,761618888,1230991555,1764064896,1755026617,118446070,1141641575,107275887,2032139298,804408543,548972458,842727963,53185849,809736081,1629789592,152552386,1942366554,1075485469,1526971442,1925322071,999343700,1425856707,196630898,1253966069,1534410626,864240616,1598807367,110861381,1306785344,181192686,87538702,1710613275,1329738769,687948329,1437629249,1262960987,841814936,1750109487,1694664443,625580446,1971021936,884425450,1746575489,487821417,420607509,2057274608,772843283,1348618885,1902062021,415176859,1485035892,546845159,1547956291,1155097959,48766281,618644371,740452081,2123914730,1161895108,206167765,15962038,1494405747,782371048,452102409,842851485,486035262,205321653,1874442103,1955575824,1449702729,1481145240,699747414,164579618,1943426315,1259566140,154438050,1861960536,691075174,2092078296,282609049,334226601,223153839,1341799869,1192638572,1337566476,1596967483,1584283314,492695497,245915755,381066210,1800227474,363318117,1756891084,1313919583,558153925,1515387365,187595554,1410614529,1244341981,755000388,614386554,2088998761,1882399302,1904696231,1683264638,1262073236,1005008440,948787546,1188722948,609936551,1138527612,1087174975,495481769,1798139188,1670460641,356842071,1958984983,1760670534,161945648,523093893,1938735695,1500025030,1586173152,242560578,49140261,164039210,1504877755,1619530810,1269624905,495182603,1122906351,347719852,734289100,1809830611,1319979077,690093670,179897129,477770325,552471057,178681655,1371758877,140713202,133156728,309330964,1602551839,1198337201,1600728118,1447617929,38630678,1666973381,1346783881,611755613,269951869,1241132374,1863164838,378559952,63433191,293736166,1573670062,1345328119,1298401208,938258834,1931557978,1117875924,1644986730,538243785,1752703362,104981523,1077431830,1877451007,938362657,283624092,1819361754,1745539261,442040632,127814444,760326838,443433613,1845618944,1655521346,1815610598,1787146787,839324495,1571391625,1827739835,730617484,37420051,464412819,1860803163,2094688832,542413984,1979508444,1074340430,1805815608,1802433596,884970025,1346154104,1277205712,616663754,1839310869,817683680,122577889,1670254634,270979799,1786997042,384128808,1839307731,1806746968,764179071,877008409,1343945815,1321695487,151966528,98023456,1530602294,1823024914,1917765367,1142741487,1996127109,1907415895,637236105,947782319,1155144127,1304588401,1472503107,1446454995,2125368868,56778654,1861061082,1222524531,1773217003,1206069664,793855706,1083414758,1304925350,333501904,515211910,1315067803,924471736,934270841,1966257232,1258294521,1529971945,1198399380,726254313,1762588722,1223352016,1518366764,163994314,2075519697,1971914688,1880829050,2030202296,1421772728,1628422192,1621308936,1551966919,1431555506,387735357,1166197909,2089884953,1262155894,2109424911,17275775,1245447075,2059691705,969410651,1235270906,1855457580,626928222,570757824,1469312380,835620546,989223144,666037585,1212841434,667518865,2055558979,618957707,887286345,1689720105,1131105785,76679110,422478848,58752195,214506300,760723092,479150978,2035892434,1319129427,1397243985,379340471,94794203,1266738354,493017699,249453969,1343122444,1287975496,884939675,118959992,1130209072,1797701604,1376868310,2071134683,912324295,1289277031,456478927,173361583,1889915808,919204262,1745434932,407387817,1759474692,1286255778,1961226058,1039429363,100345989,589522191,1693843716,1151355002,175642895,1663746099,2087652771,1856173224,1391723595,549667485,1798243855,229925761,1873522383,1097165430,2065505466,1402862177,68182660,395860559,1472777836,1487320702,1837336103,1784224581,1567338317,833284754,1802041684,1179653396,724161230,311109650,1805620765,497445843,89566808,1345962812,293676192,1544399410,1732955182,1150612738,2034689136,293182507,292868755,407474686,1785335666,1433925801,1175402262,1311435251,13752971,72393072,174035308,1462854909,1159786331,1052848492,1771547028,1369238551,1887806278,2001296115,1177666577,1889037178,1067013347,475820899,1432820776,630225509,2007751925,1237354944,1158274814,847526143,2112150128,1989668735,882246255,1212070299,168361707,367179328,368780437,129976371,267922717,607386929,1956093361,293293859,110415395,2065699362,1993945487,167312715,272486438,1808486627,212345288,1405168292,499874484,214593101,242190374,1011935208,1481494266,1743003665,2058089176,1613011700,1811033145,411760640,1860171123,29434985,1705694710,1672969992,1668692308,768183320,1044032752,206020755,2093557850,238411128,801020444,303647743,1585772676,1386376500,1213080920,561010664,859667473,712137767,704572643,1719780961,421177372,231868683,1206764844,1553485535,219515935,1055337638,1491853044,1799213307,744277525,1645439222,125438939,404582751,1007659975,21569480,288832028,332518285,128295305,1125256158,1268788751,1031200381,1919180052,591101749,1521001464,924278840,658176679,566197728,910222254,1731826786,1138312417,1950506013,414200960,1240797253,989113678,1722854892,1609276935,1844917337,1052470625,408468995,1842183421,499156281,391905647,597542553,1489116834,802149436,732359631,46074765,33234080,1353888089,1823165436,1971586305,690204165,182521076,1426386045,571162286,996973580,2023915167,269109048,191561292,2071611333,116757414,887043216,1781791299,1535677123,141235234,1620113090,1600416863,1415693180,1934232000,2092255130,912040293,147704915,384295583,768173751,1929045746,1613971564,1975493413,190957630,452311031,1105501078,1373368912,140541677,1117226891,1471496808,2053143353,1729016623,1556324912,1002259682,1318228662,1707660215,1857035070,447155274,1263714197,2074088061,1387911309,321902975,27505159,2024656577,1732726396,1986766682,846546518,575499011,2127265899,1680803420,1900268752,818254746,144180928,2022559428,1654523089,854688785,957603071,1514485354,122103324,1910800115,1914432749,274854141,1923815598,685213305,1056356779,742228749,1565206445,711315500,1366982391,1446542496,2065430494,1613712711,1751657167,1548383495,1805590318,1180098756,738951460,422417629,108829720,476515872,946554253,1574937743,1161265172,2013491555,182324828,302049321,390852820,488887785,1477638088,520225994,399204895,924638258,817619470,1160332068,2123134207,1284678092,1167990455,1561330105,963277859,393900439,1161890876,792347021,268497971,943421768,1991880584,940304339,1988184556,2035177679,1202264358,1234869617,75351594,1160795082,1354464135,2031467595,1141950142,26474519,1575971687,1523481273,1560474636,516503415,1609539494,871726092,1074156540,810261688,554852503,1224183281,1620154828,1728670582,430239307,278296880,187332374,1643778362,1965617713,1670272859,15880023,648759152,970590142,1022751789,635789530,1090989342,1042896172,1002511334,777704310,894433350,997775646,1385428069,1726813417,728050090,740777600,1235263336,655280376,1083657024,2006167967,360641680,1860104273,610942283,1917848478,88314135,1380685020,2072308099,969713417,1917064571,664829571,1995970298,776237852,1466741799,1099611765,642840232,521484780,36997578,1822851378,1971667044,500754007,1635430766,1577156350,1853246883,1503458262,1521189048,754971813,424010054,518600973,1288981157,1028533479,434464371,1925516341,1183960714,714974028,517229496,1996038262,856334246,2021712552,1294794297,1756516139,267546881,467754025,2007500359,971863619,374110750,1184264475,225745179,1661335702,110960153,2099246343,844930407,1421200382,1060496793,2043594171,479410215,808368152,193489815,1344233619,1034561732,1264456825,1126360473,2125843160,1084923861,1367653373,390371602,509777300,1291203868,506824372,258850108,507565585,671824483,131531841,370739871,321133103,86003136,2088860694,1666997144,2046092498,1110731838,58226031,876903793,2057755194,131826083,120030772,2028565315,1276697383,243279543,1568547989,2071820991,1517706129,1525963765,1640288164,1364212956,1238728167,38218503,1691266463,1751801712,53060918,183796493,1620546507,669956151,1155745927,626786258,1242538998,560079502,553628777,251839775,400729910,1294771673,766671117,122893878,997704534,1058227689,60941397,609148216,723281634,1630817237,1119445471,416597400,387018141,1579785487,1916856607,1226405483,693128208,226857390,1372399653,1777536012,1335128489,496908203,2116022339,1897016385,744492063,1215971244,1852613330,908322606,156305658,587806075,1885950882,936701735,569043661,1478372035,629133340,1006537810,525024244,1641265315,701052923,1870981851,1793468721,1330296615,776788378,1017020349,493052070,39586631,1909580551,2015244151,984635836,273707600,493345089,1091439440,1739023254,1337379802,918493506,222470715,810129653,898001988,245873099,1949197269,76014546,1993447065,1378154112,1633514014,827495226,1317292544,1250888668,1435657957,979980016,726772572,746872276,1542707213,1503173879,398005208,1704222118,2105999372,1373555463,2086581115,1255711584,583515616,283268789,1966391305,1611594253,1996856272,1666132699,1587341512,2009627298,1788818924,493366536,377318740,1701151668,1594540734,1037321380,1943135903,1109309865,1077024969,1812525426,2045185564,977216444,15317706,1933192693,1941705404,1844092575,1119868775,206937784,583003856,89269841,1016955768,1464255561,180687984,1741801577,385354278,1910039677,785382084,183252035,1072726851,712445086,1127024805,698565971,1198265426,1233771230,23206560,1060763039,1892960067,1211346574,1607784576,1131258735,266180893,833266525,1822867468,882462450,814242291,1636719823,2070319096,231396901,1381151435,821215008,492441832,2125350410,1351268505,51257563,79952234,285084859,46819902,1500231053,475748515,1379048346,697710785,588342650,1415165922,1455530822,563750175,1370647601,497022949,1228209613,1236538479,1720339951,960393540,830306469,334898138,806962517,1738518818,1257164075,1855540914,1049720680,1413498962,915879679,949700662,1229896248,160606793,492287008,2013398918,1791360811,373726737,284645504,1184705162,990318588,1482129718,2116131296,123948299,442615064,196203732,61307099,1890374346,1927106520,931782447,486273794,1835962143,1116764311,1443475842,946360066,2051887835,1797310320,2010950916,1170331799,692305390,259547415,758019149,1731443983,2105199621,1525563274,554882234,794470036,1282330417,423813358,344816698,1373876812,1603976388,1509001724,869828652,1321407139,1107379837,1471720518,101174513,916858691,483465843,991824020,1833654433,1420990317,2012885277,1089678255,821622788,1999387493,1812857698,2046577619,1738716227,1211451666,1075957971,2054104063,1898070461,464099437,471034027,965929495,1014688835,2048619332,1441484863,917714238,1035033739,1886724932,370954822,233874484,1686016176,372233969,1496387300,2027467900,442671913,761202524,1830942756,171493691,2011561625,230666725,255948101,1549959359,2040248220,1661232413,746248491,1359806516,1845778502,1752883878,1845070805,456371128,1384500411,376052362,1955935171,2112919418,1727832107,1170942927,1390583489,132279456,656067471,1713025444,1573904294,247425071,1836709656,141918201,1177870040,1372886897,299130246,1316538025,1421086911,1017857639,21346392,1133336596,313338999,192467111,1934144375,1094004567,1272726453,1288790031,1748247023,1129722792,50145779,1028901171,1929651482,344820328,806581507,1111406328,75378808,874649767,1332834063,197145841,864307048,1220834803,18360070,161716802,1068898622,1905598912,1207830105,255005197,1712049992,178985443,131771479,1665903022,181475977,601114597,493594012,2031030537,336540810,1780625019,412065985,214426462,1124017064,74467481,1690249607,1442005604,1334147728,573594158,478708294,2108794902,49135823,820724764,1741045514,1470492922,1661327533,1902043009,1577473326,562293583,1609972192,431919431,46274118,361348454,2024636924,299043854,802056472,1841831559,1059871268,1274058021,1601951236,1189323250,2023291325,1202453846,662869485,1487558141,2075781031,1239987147,24592139,250273105,1456202722,1876330153,207417482,1759267170,51592252,1676388831,1004128532,1650441247,68784976,345003734,2112980161,224575334,957973586,596767523,1690670205,1081024554,1721237927,1633417959,1953396945,1566099765,1407249324,1952175619,1729061598,645554529,659722711,1551838713,1460044836,1999847177,919603040,1640531592,129709172,536080612,2053383032,1485918947,1268920417,348685203,1931522566,198234685,175264265,1973717951,1061143195,1512991772,168165958,1661542152,1982119169,1350749679,893652191,1544453354,1306928199,2124442321,2060112413,975823494,772893180,839357319,450975051,1181830553,990634695,588554830,761082388,242009271,855537890,1689370957,906164114,1964719430,2123413557,2096083798,813001545,44006438,220221290,915325659,632890602,79564711,904202212,1518244882,1828968908,287120275,636308463,1717225871,1394158567,1788815519,1489325610,1821172480,661283283,1785850939,1439370083,1223329893,908800711,208678225,145451785,849283783,1085649626,1347288607,13600862,1468969718,1920971191,2030029964,671988892,364076129,977165696,1452310777,186802644,856267517,932826318,940433587,677034610,1476187722,1780992095,1207072695,1542318301,1079851944,1284318149,1254013536,1277682373,410825122,524087859,1459377288,1377637704,2091796337,882021737,690616082,743066068,2075574114,946226442,1176275031,905057991,2002133196,377718095,387934666,1727603331,1611466760,1098544882,1910483489,2075484761,1672513349,1199025961,62417370,783535909,183103699,355282870,1963954523,446184037,769013082,750229366,1112177963,1596399383,67836269,932826901,279472017,466712524,989689642,1293242743,690747260,928477770,504905207,1914149625,1742442132,932803149,2039974433,40616635,853983662,1175794576,540638879,1080632006,1788486384,41130227,698156156,436572954,903785159,1137163995,2120760134,853744609,1218649353,26461213,815290915,1329713593,1831389746,1626878342,859425685,257232533,1612913002,815405854,599899939,1153228247,807139042,283183785,1381999787,2012910602,31898163,1622634101,574847644,963634988,1444427464,597377274,1014588206,12454663,850800032,1158576945,827521967,1385069033,175350500,688146038,901811823,824848444,1553639363,1663451689,2128278648,1881199030,1760581943,1293207655,1224674897,894182750,252880128,409179206,578424669,2043123074,1585213985,1618290297,1889265499,1775934876,1577284944,1593301440,848286566,1172751339,2047346464,1528925948,1158302368,900398810,21921112,414023128,1951732480,748842459,1022095624,1250821679,1522824182,747642273,1857126864,2368653,1978967696,1346019330,983101461,110190891,1998971893,629467711,1721581067,974247515,2066544783,1544342261,1400175228,391047512,900228065,1539748155,1994917812,551005176,637294172,112305994,1244023538,1487462798,90303312,343144809,1578624149,598972308,6478411,1910765235,482758916,1486442263,1610553667,1941447993,132345703,156565085,1752864788,2126684986,254108545,407326339,187912881,2014048383,1320000,1833463669,1202542077,198767188,639277325,481116180,342462795,1797142856,1716221279,1451260451,1533719301,1152548851,2068116466,754389615,1687712244,1671408996,1319882838,1821861654,8648817,451096035,308515927,130117461,758026424,995973542,39674382,662263357,411922378,57527731,1227385720,909795692,1073513957,1224334253,132966545,398507013,848058140,1054475789,649237597,1759841419,2047604122,1803606606,659981004,1704889647,1115205051,965415655,1630011933,876222572,1602497212,621871195,6369082,1965980863,587025514,256765917,1321770042,1315301234,514521268,2063832197,1184324356,254006762,1742924105,312237793,1758171377,2120921131,1840075898,113177792,431883555,935192068,894644437,499554683,800800701,1935610199,2077581075,1335056040,2129924513,586206669,1933016191,1757972235,2087949127,567147286,1800532701,1009194201,1730702544,676896113,588916579,1349790108,1509660136,1952197568,1327171069,987514353,505135409,870496049,162439181,62059412,1896123004,1632013588,1267340578,325960150,2016393918,1260569642,1702627385,1974571892,764229384,575800633,1147103618,1293096642,967194205,858491574,604750041,213710727,1408968228,1058494334,327759201,1794952866,2046930535,756408975,547838360,993642316,1907656886,1329061093,1488835220,1914332049,1978234803,72621413,1311548175,90466830,662012417,800708555,745006714,351712309,2073761343,1424091603,669714816,907244745,200166053,1506622331,1443348784,2023634295,2046453010,1071653124,896674816,732032021,1982593373,2059287098,1086445507,871243394,107243224,1799453629,817588076,1064587537,1129405819,402044018,129870579,930572295,693693630,1465372929,935476134,68581800,15908278,326462176,1533131337,1109436010,1027723496,2108564838,490510979,1657472807,1093891421,2005274954,29699988,1623508486,1481544485,1184146084,1884668311,1885519617,1893874080,442495854,1199200376,916540686,1691793723,1089972367,446085686,929131898,2000706131,1925859624,906914466,1110139746,1332912637,178164310,2018316859,2045063365,1803365362,133853723,1460088629,1875674806,437715732,590208096,514351454,1519700297,1190461648,1887894773,731054250,372642036,1544690549,961972728,1569232811,1993257945,2072240951,105218080,287158878,374176821,689005813,585891945,1018947611,1822091407,378885014,970984360,1835415040,1186602472,1961655534,451229525,1107363962,1618354758,1702726120,1957276371,1239507502,805591247,72322329,1661967780,13520073,1314586975,1985131207,431158411,727886477,499638964,402543911,1091738967,963955629,1601437393,226851563,424782479,1340650566,123380001,1212000584,1053351984,121572493,980209264,1223739178,490442648,2052786558,1573388056,1804198545,821814768,201549380,241523083,1645943007,368997486,1156950463,1646358818,1536694244,413515366,213172721,169056920,1902828979,1326200658,1802720418,2087695186,60904766,1525682962,527992395,2024778256,1937661789,2127724139,642376198,1413577463,1649187505,860636220,854414499,2110452191,756580016,779417810,726202219,1677605674,2033383494,298170908,1865911893,1858775781,1335674626,906475530,1900106987,1204751236,1623250464,2064617357,858102680,802345924,996088032,425157472,39021679,1712115196,1718089803,1855235238,2066135637,1580162724,1046659802,442328272,1088822741,497132210,811701118,1308645517,361880790,2015291942,1044721215,1701460642,1582389783,33775450,1721861653,1198354140,990653049,1371940836,372290872,615492267,1123000313,424378363,1762719859,1533044770,2007517153,1969439530,1876802636,165704371,220689414,2094416665,1194184714,1675902773,748931905,1065734850,1069341518,29703397,621622636,2088664866,1684693431,457631351,378030047,1237323575,1729964962,789357129,546625841,1546416170,1725196162,1262882045,308055147,730087218,1180353493,300578030,1501645001,1273119910,421344702,1979673672,1101971084,1899627804,1946216491,39419872,739631542,814604925,782229733,1928219525,1891588685,1042456212,483361654,160255157,1045765300,15383701,255036334,648239355,1319275532,955403725,1791862790,1139809050,922563034,791667091,402379414,1693073439,329721508,701656743,1121651832,754178961,113644463,189219324,330644985,1048583203,1204293902,427450847,1143368290,1149085322,539762627,870162804,69062236,107309798,501707150,21698188,318350402,664097620,1387034368,2068866125,1917730273,810719955,749582272,2122763785,1927020408,722542076,304712780,1458818106,1502653581,1253234795,872430408,320244813,1087794981,1657649894,1171350947,1270993533,1377228126,513641457,943649634,470636014,350423491,1134485458,234748562,1118627326,974502780,963836225,1309908739,442856674,642505918,1630684061,1898294146,366884498,1430818059,864532957,1338844715,1182723671,1044093668,1149884314,481290970,824329683,1312452653,162271500,798112567,459876087,214001543,487642645,1587540,68913522,624284632,556809642,21538605,1807656266,801970797,105187554,2012384744,720064222,1340165400,311924402,1850867619,154186828,683045330,34441412,1361432862,1043803680,1517369760,305841059,895572098,1175513925,766591303,60232178,2130316793,495163101,1635857303,1040119038,695428418,1683401221,222866304,1626358975,1148687626,725794640,691396832,1508463473,469911370,1027429980,1291733306,521493841,318327922,2021592312,1997131799,371385573,547465687,1855946012,1099432884,1758681586,1643932025,1019244042,1878103446,131909330,1507571407,160501115,2099775370,1909708239,1656751992,860976127,1520306687,824787262,1509870635,842276745,854100056,183278414,1203510406,422462144,495310865,687642584,751624810,362821759,615230664,130026857,241009099,925178095,512476778,1635491635,449111926,113013696,403179218,938071749,554209720,113527798,2125877090,241283791,1107027713,1602646355,1561459180,1409767166,2062123063,616017159,461530856,1288846223,221904927,745287403,472078573,1977785145,469247841,979935679,1529039232,1529910573,21714858,1162047748,663719303,2021543430,438984035,1516946494,165092849,1876762431,1946643583,456500556,2089139686,1644902501,91267629,818101420,915235658,301948518,395534526,1000206909,1036177530,244891253,371082205,65092770,1987860559,591816140,1414680848,130201150,449501815,230155720,2002781308,309007596,233602318,364343267,250719967,1192966567,79682679,735807148,799885283,253741288,1836151931,480772084,2089380803,1850151677,157113671,1017219369,1534419022,436317448,2024655310,56916959,502207811,723231703,1047239271,978611970,795291011,275781108,5946781,1374846673,98156250,833987119,946078260,527137093,125613907,566955957,388321476,410795436,1357138074,699974873,1603808530,1474136608,1571533680,1725795848,557454828,1991717730,1354109968,1962027927,848010089,1609478132,252882229,900856049,366834915,562944418,1152660206,615328719,2010154310,810052135,1169552652,384637488,1145915687,1649641077,1995277561,1907818510,731315332,918335427,1870273919,1233261463,1157262929,1849531957,1718389009,813075931,752929012,1652457789,1867206834,1540681363,652335954,2072357828,1478212483,1239629294,2101886376,541220531,2102715353,951611196,287327832,1970424862,849543889,448883399,479767258,25799456,1469055723,1346541593,153106766,1094409812,1667489469,620888790,374890423,139534598,717813779,832521866,751766899,1483132113,118898501,369764124,505800828,20209494,472033159,1876712053,159275399,519178586,1721474902,1588237644,199816991,19097802,922189788,1168151204,268159431,1550038885,941884464,1608605363,36049953,1775500732,356924376,1421004896,636485417,1097568337,708233849,1974412846,689425138,278080495,404839621,920951054,485395196,1016566607,1987055300,77813403,700567224,2058599089,900629452,1430209853,916908656,1059600113,1042850372,753562841,1113691286,1362623723,1929864061,2090987185,963949355,1432979898,265025803,451748680,1329553776,181147561,167718337,708841848,1558099129,270419724,80698021,250384783,1421393657,1715909981,1283026604,237466204,1893144529,1871466618,48054763,2058936634,808084887,1915139773,1677923920,1224895438,1082915996,965040316,1755053784,539922136,1310005591,1502205766,899868737,1604882491,216570071,125198728,852250926,1737621008,2027328331,1374478545,933336265,2007540984,714179538,1404847850,1380704056,708030869,710389022,927518492,2084033753,1085445421,1952174685,1891530666,1646123399,1789114380,1053372025,652848964,1867220980,1679433072,593708434,1937290927,772125893,606364768,1421710884,39150906,363957013,1469701161,1240227540,859348208,650609442,151172422,1649834974,429025194,1077097621,1993692264,1586463982,790796659,1502436364,484715363,1099347663,54033487,401319336,409652844,1304134500,585115980,714226004,598624132,1473369372,359756146,714343031,1671373481,1460344077,1720688164,750124879,1349485033,356927179,1541067571,1585933995,754371650,352844656,958008321,162196401,1052720298,757853947,726779951,1862475308,581127044,1598029065,1453604696,1556136451,669769440,1741821936,1265778971,730950686,567157000,931028591,353890603,765716519,1792791172,89951490,1171880465,361650585,802276529,1284755805,1084780155,1715232205,134318576,497081964,402785843,1219387652,641183475,101120428,1415753584,2012931869,1773613790,1514620712,558524154,1945115618,1043221962,2101367932,384850245,1763981908,1879924456,847281013,310483898,299308289,989403238,1614626825,1428517492,1409605549,2041116984,1309726804,1468836148,764162263,1667140632,966068898,148423071,101320659,386356836,1532948491,1786727371,392274794,1964475442,1193424345,135885207,1048385486,167603502,1455974777,1630256287,206570403,1784301195,87996602,210834163,1149631087,2003679629,1914930987,481433023,1662288942,236850049,1000316893,1230158953,1184333610,348214893,1324298068,407755789,1109168100,1013962892,998164840,1778848799,1816157247,677867703,737134096,549481586,409456934,349731182,1269664680,1495349838,172578098,300592093,84974779,389100777,1833542607,195478984,548613980,1266515123,1870397797,614672187,1387530241,491475471,914005642,1388251339,1869985080,905927645,1540051534,1610976522,68782315,814822059,2095556338,1831696686,767579325,500107442,92418727,413006523,186383966,197907228,1783444906,488507452,585789744,799224847,14858365,359703823,1579983527,1964018069,1586703511,1880701540,1374065660,1047031978,1896160238,920518483,1325120467,1825330127,61195884,1886796491,31533711,94799553,74861124,1813500171,240757407,68023831,1581418355,1188180251,513317473,237982719,464802329,163860711,158131656,1234107469,680933476,1035572772,1040292139,681495724,1922025973,39793118,693130634,879653444,174137153,762737857,146148437,601907437,2062916145,1872355051,511277280,1978017654,1032911551,1742373994,255189419,1353718686,1957826282,604731624,1723835382,981480522,1600704528,1502387963,295962679,1974706179,1981324727,316993668,1251793616,529166054,1154731506,473945227,1426427016,2000188438,143911863,430211369,1596007566,1462899341,1413151845,1109357059,763213238,1844178898,1436465919,1194244623,1794276158,703650653,1063440843,96723141,469329982,706090349,440364388,286869199,766268801,1735195975,675962474,652001818,374477710,12688974,1831427615,98924094,279327110,1548816008,581150787,1984596949,1833056058,1638773521,1663799201,371235065,1867837296,830159886,600795747,887852027,816856823,1658651803,1059793709,1973229976,1825588972,900291238,1488755118,852887071,393582302,110369016,1111686539,1214554976,1899816999,656039717,214836358,491801225,158695707,1608256055,1883878363,409371985,943964869,1318622344,1768611911,1983035522,724098565,242043598,1727302433,67742395,637185971,1356744823,562485331,1652028600,1830865661,1186788303,1090841258,543264250,1144732415,1927654719,182251629,232267950,358336828,1526917726,875003588,1127930781,1298819512,1626415895,1895337125,1374796714,456660086,1634037525,1006445335,1331607510,1109649729,321223492,1880942037,59451087,639397702,55726508,1567909770,816033569,670564811,146425499,1851800637,943118964,1219377796,942084317,1816651000,1662526954,1908084689,1224141183,1902173405,562817128,1793631520,35058730,2011292958,152226410,67755203,1559982274,773862818,788151368,36925107,1846693029,184953643,2026177570,1352249993,832037593,860209786,1489905264,1711340700,2060521954,560247920,34935987,196100708,1614642162,698532870,636640775,612328465,1444706152,112994281,2064789598,599371897,394832796,1797758740,454567150,511892355,416977000,1351236317,797211921,959218813,2045051767,1651449543,332434460,1181497714,1736564830,136549929,559118822,1451734921,959206787,1468153289,1952413123,1719850614,47339078,1596750489,121881204,1902882017,303632857,304718875,1730265020,1017153834,271204389,1631213719,1087285128,1949290110,676692831,1155970204,448997830,994505458,330340418,1951795313,2003821016,229192912,67396048,99157699,51135530,1997161535,906120100,1367677707,1176781488,1891851677,505058213,427068203,604709590,595655033,1877428762,60683376,85925225,996605761,1020945739,803435232,2072614182,570048588,1526364832,1997873308,957502686,2079435750,1384159396,1522424051,260378138,1578983923,461412980,1180328565,798468300,593888696,954818656,584438772,1866268336,425864075,1183603229,1242802613,1110716891,1213582604,1316609195,996272393,1382320256,2123954359,1019774544,727471523,874002932,1227297254,2032905287,780272129,1217131559,1858769860,847446774,89210595,2058611770,426350918,558625490,1612997478,758032547,1907243146,2046180339,1931182643,2015462533,34497836,1754676766,1273059417,560965339,940372918,2010141829,1744970230,396015486,595998968,550485439,2070809544,1306288452,259389901,1923702865,1392926249,3928811,481337344,605259183,1561705723,206691957,1188943997,1213174467,1185135210,461592863,230433431,1546891552,1314802521,1168018647,594437240,1901251262,814154108,1854539611,1572650624,1175782807,1284696456,890379038,1364787080,480225261,201617872,410475076,748292729,1541445589,1405588988,2096142572,773187370,71896073,1888226938,1419881814,98199899,1633781576,1514471833,1953878323,426121035,1681874128,257600874,916001373,1463047099,787834856,2039481574,1183959509,132886098,400957628,2026549377,1163073352,297575199,2062108130,1039085503,704343380,546684562,1962870230,1588063129,62842668,1320551135,472000946,531202015,1683687955,1055753115,569347034,369042529,2092237623,1406206385,1273691690,1880941633,379430426,1357935887,1637734654,1524237230,1370925109,1698564422,933519061,1124046663,1431634933,514694909,1000864470,1348859324,8717927,1221853794,1959090543,1690510795,866675643,872764691,506783365,223705988,231559670,376145311,1901153486,701586637,1657432081,1831681223,427970136,1179365197,413516284,958409796,1522879878,1798014984,888623000,1401768468,591097731,1991685354,1913160908,1231444878,1383180520,1115436721,957226419,236896863,1944325712,1807168221,1750511119,1173744165,431996748,313086929,1141976103,1774459307,320268712,1997924499,850263970,1397294168,2056795810,1125355763,1504383920,1134747084,1510730035,366602978,1339877738,253949276,1868213191,218081833,1110756302,553562137,2070450065,1756252538,398168769,1340557221,90898857,724230192,1009916935,1180155110,229126656,1137037400,48228523,1561940716,249733217,480878082,718971533,293600548,1783441255,774142955,1546217079,1671093016,126871033,586969118,675818628,1027340122,1625767626,1997536182,1576266521,257571416,1494560342,897112631,1481951791,851682405,868437960,1492569075,1291833575,1375420552,1003713262,1240854567,1661989393,1244915701,670473469,1072814502,1286183947,1765277438,1878003577,776309098,606696823,1058531360,1269956765,763865236,1896173592,1825987266,1710256278,1513422341,2091070865,2079126635,1130012634,1176773719,1307513284,298392226,716797811,1117334521,1822342750,90510177,964025774,791265040,294064943,1624842380,1739998472,462350255,1183043566,801518507,98362710,1951723263,1252771876,227948836,975633996,1224811692,1843263656,621106619,1599160895,849813657,50926967,1365452026,1870204843,1982535177,1114853006,982631765,1832330110,2123984216,385592488,2027765220,1946876654,927968863,1469667965,438294706,837185131,1838414168,338292966,900879586,1593419305,497715822,199871809,614147270,202406892,1227147495,327924295,1078944003,1566130836,1292373428,1990612581,661984177,716869805,1145607463,2124381923,249682037,1598911426,1036131211,4676668,1095562498,1604241502,1011713582,399724338,1258822207,1373859887,1044322828,931558873,1113271475,1443305904,1254252641,171096651,747059772,548947333,610537445,1017972615,991456884,1176873680,1626063207,2011693039,125775947,1351591366,532114612,248993167,108847492,267903662,194122110,1641791552,1435122769,127669056,1462868368,836225781,1371193721,874521989,90419707,761734033,527404017,584777020,344403595,156708204,1578391593,569062320,518110709,322650469,1671739805,1601850868,1874515886,1564741179,2028872829,205769780,858328707,1276817080,707501487,484458079,1901469197,936278654,1719110695,8480351,2032878858,227166648,2002576335,633498581,534829871,648781189,264280627,522830211,383293750,684408494,323103314,761404896,629406559,1000131848,670909288,1097329552,910394326,1523795727,1961744390,1482380453,314832255,1584983797,1256075666,932616572,157815756,1262064725,1455677152,386894789,1035595289,386207706,1331916036,914597826,575751958,630394804,135999000,462961376,1780250810,1857267527,1378933309,1126879451,920534237,628935185,116389561,1857568815,613041322,280620268,449360304,1212033558,934751807,981141559,384874067,1626867535,1463632125,2115089982,260436756,1556934346,1750416476,1905060473,1760302211,705936827,1820443577,512953601,368168407,1145661432,512964968,554903819,1358058055,1302245589,939090157,1546285376,366006382,1245759639,1284944317,1050379954,616453780,1189670433,1932125847,313654550,65290114,14386378,1696853426,237511930,373360839,1730311511,890277934,1217191946,1572290188,1683301635,1809676293,1949773875,1257726900,923242051,1547290890,545821347,663597318,639941585,1639540921,1162511864,1932912434,618753231,724771978,1067224388,1604812110,913071198,2053121298,1540675000,344527505,1057572633,1146145266,1972746420,636051588,30684129,1721492947,1469894341,166163003,991104351,235311911,2005698540,1059421855,1341462968,208772789,1616010827,993859292,754741577,1870792762,309769623,910095149,2124913601,192298905,1451095887,469755335,1648498897,16466301,2044243217,453600684,1353170711,1672978604,223660296,2116886506,592856596,573281035,1293335593,1168751663,907103923,897367292,2055992626,1184061227,303877778,342764239,263520695,1044198581,2028417714,635159120,1016825653,815640503,2066543657,53697256,1570953936,393704119,2099509220,704996956,1744839240,345272584,1830110450,1587542917,492664152,1063361567,469027931,2105647516,65299884,1235943097,1257125421,2054616482,417989000,1537462297,1758833371,1027909644,2045366795,192619505,235825126,267655182,731476470,1737260459,480611596,968680617,2002144888,1903942756,1044505938,255864690,975945179,815901494,380862935,321257025,850816653,1705096406,1401256885,44489812,877142981,952094558,1353596670,1687986631,1309293407,412889208,1950314690,515597867,1062242383,1274980166,1056217969,519743964,1353041365,1601253496,1685891917,1799408300,156536721,1448046344,1062934230,607946559,1851872263,1266174302,711688451,938055411,272915765,18324466,1751598503,1657586648,1114789499,1511698626,1011845606,2083791323,2095892463,466273996,1764992444,2099805317,615169033,1338685191,1480233134,124148716,1472389780,1299733849,663876430,1299837067,1290274346,460465466,718518486,1685688697,167690624,825231107,1538253822,1502482316,2111929637,2074011245,825333919,1195565671,843698314,1900145336,1254095698,1569629042,721747127,750265196,435926966,1207226163,1525599666,1928221354,410116787,845477523,2011766783,888300343,1611465710,1365618037,907564309,186165256,692462162,1022006209,1488864032,1491016642,1920514212,1192890696,665217204,1198137114,1709854783,1680795642,801490454,61202084,1623354373,912357836,1936079359,100676959,207603073,1252352747,771915980,739311528,1278666071,1789438888,537914317,495775152,1462484595,681067929,1595997362,1363971432,827750235,1847463917,1824078549,1657210824,203261317,823378026,926596972,575765697,1210754349,1661491086,1646369464,1370292632,1821665647,1168749590,1537595302,1340362663,2111477577,2069442256,160269587,1882499346,539048825,1342411020,253270488,1456064385,2079716659,122999793,1154128387,1613954206,1083352445,1778888494,315963588,1902745068,1168204561,1580456039,1647779743,1539741542,657119931,1055312144,1426066531,1433042539,1131700355,110597558,124622135,49226546,1203594555,1637078458,184814445,1653325186,1295385044,547536056,1654692244,1586350462,1751128154,467196006,1752529579,1577212801,1470888978,477214062,1468890241,681311666,266478290,338189944,2086776811,1550342131,1289708760,1822605723,32430699,406332985,1306540249,1755357690,1032724802,1406864553,292766325,808520662,1555575493,2090538353,1044772626,186664485,1048552348,1361056664,825387804,896326344,1712848616,1499013156,453204272,1832584889,845681002,759985303,24382137,1506537642,101486797,2006156913,1807739028,91181735,187372714,1902416575,991434119,55711915,317607744,44018919,6047326,81861396,738844033,791002284,336008490,1126982371,465083464,1371636195,1600853104,1597204919,1861826792,198506795,1974246636,1401691769,891859951,939088060,666147940,2087026235,860197758,1883835642,255936167,994518753,479893402,1976137353,2118644697,1588814525,2012492621,1724267030,911962767,705091768,585273897,891211662,890614970,806530027,1166935580,1537296119,1375315934,1761808096,190485967,1090504017,1915173300,1206338481,926840378,1261273301,1352776284,1350277612,568450244,640200044,245656480,759613602,2008598130,1324301820,1500250003,1830355111,284657758,765137918,1277592051,1319967226,1588089042,601001487,1790291780,1410257606,881362167,839069511,433362505,345807991,1630192592,1518282370,695275787,209704004,864795059,706807228,801041113,1752341830,18321970,265611305,70541581,1619670902,1127592412,586650809,2129189499,134804445,695511860,1801254461,1260582754,1140992576,1262567232,1426831576,145475886,713662087,1033296026,1471336786,2028902994,904335746,180285268,186584738,1249468766,575653841,1181185049,2043667105,603642225,1491524684,1015787903,1633382286,207122380,834943550,338886564,1772942982,1580573633,1939538847,1488569648,1687778077,1184478210,565327587,970698690,1142443155,736722875,1059728598,2048881052,304276237,1416803966,1208369130,310372393,1724656035,1939066356,523121239,838404251,1233710917,1460562163,122009752,474859833,526775679,1018097859,513984889,475802517,175548900,738767640,313209772,1315906774,12506358,506311837,147401462,1047380146,1685855074,1486487501,318637973,1964313158,995580605,254577665,472011677,1663033853,2021091804,70057508,279575513,1218379901,1299805385,1768498663,112838696,2091619116,824054589,1493076728,1865249618,663062915,1077290526,337421496,1865861657,530105556,905072481,2006910880,1324034599,1391326898,531094502,1580593759,1393580838,1748688747,1010936036,2115737899,1767797686,55920407,363471817,1505763813,108653968,1556267076,262858136,583645323,258825088,1123932995,1323915365,99807830,1605302558,3508799,1090092241,1351010154,101001247,2087532774,1963738787,451974409,333878561,1866052589,1139808388,269045614,694484409,1676232165,1444096989,604991223,552589408,230050008,1773017458,1176635172,1926323138,420431813,1784559019,1481246661,1234415151,348011506,613410168,1504759998,212286036,249565235,1589072966,300068881,329955103,1241743478,648963406,458850925,388273654,1445006263,1259199045,1895437077,1047968929,974710414,1576416072,544386418,750502086,1807370727,2032293182,346483528,2070607994,242606496,803039761,1883349434,1244816855,1336626549,125992257,2127952512,75746773,1139862718,1067394642,857439894,2697267,535314970,624811356,2120994986,714225434,2062448489,1531007177,1104383431,398474969,1478782032,1654422315,1867612427,621515212,81091807,379920316,1711159793,1402025062,729935782,908574729,1108891984,1605370957,1777773810,390745503,349235114,1825723798,296030682,1330297968,1434047364,1858904656,907500660,1282605230,411141513,1261335980,1590868111,306642176,1576675652,2119300871,1095574267,1776053320,7986153,750224602,433010960,2053515806,983683555,1495833647,1598978738,684699882,1434067941,1639965415,288808427,1346555636,112660645,434337221,2010199580,30691277,348327449,1678693033,1095368707,2002154528,1630036197,1983005274,1532426040,298570736,1878992678,1006850554,1136137685,38683314,124215854,714247901,8479134,7858110,651413556,1864837968,781642207,924568930,1725795442,1809494352,1991018203,1040882818,2060160396,63261649,1885099470,1445581273,1753999595,1868530985,14522067,1821169047,1600345935,1883748725,239783169,1751534196,1585833774,1723090791,806891490,407179748,952074390,795875091,895476193,602351371,39037736,894571800,1146226215,726559210,936662710,575864767,569687085,1514698345,869627817,1644370753,2072296023,134029704,1459825749,1630955573,1955181204,434146922,840891677,1323161665,1810125957,573185963,428074054,319380349,1576915467,98188436,1680003675,1973794754,1421810652,1659015415,349116223,1599857551,1704105201,1910756384,597990391,402452866,702978057,1428270162,116368000,1416033889,872677571,182945114,550868194,244607908,1220709805,1090366317,601886366,1317583819,674216860,1901815728,1198000781,857914309,1792323848,1243657883,2085503474,186891837,1441181722,1226520452,1749163195,1572069815,455356718,1028829328,1967260994,566976090,1920804234,876112339,464847810,2082274944,782703066,402625647,527874629,1418338286,21170539,286880856,1557241058,1307407361,836281345,2029268329,2050893812,1544562517,97541440,1346197576,687944078,1434630713,18800378,315454972,1652583698,1134583423,1606692720,2000261150,1663626316,403379328,633946018,1860840705,406451039,1802402793,326881144,574006242,1687623222,121303800,1725718595,1559953328,748533215,499894168,738863040,1640515620,37600049,1175438804,510677093,1119685860,758136662,143551530,246250905,1195756428,1587929504,2117596377,1720048275,1194298033,755443313,604274932,821911457,1893395482,312811950,917283579,1648654527,2113813621,1264615662,1403877703,1014176713,2098387501,622250411,391890837,2002812884,1928947671,2117560615,1448766439,214500873,2126119860,871437934,1735357023,1891578050,1443309769,1678007057,1616944319,595881942,2086903977,1656067005,885098722,1256607447,1847238425,1098261989,1919516949,667415639,112532185,1657396480,1880493888,832697939,1142428052,1313962609,2040932158,1120590928,498880533,916077819,1638510701,1281345600,989883892,1268353515,481295245,574562410,174594221,1628618409,1927728334,1708946208,1692230296,1383721396,347397272,216344578,706138975,1224697800,1855341787,524246858,2091067058,957226164,193931583,872171718,262005910,1215062401,1828723769,972162519,1948462935,964199316,2093314054,1995801143,1321188266,461644229,1914890458,2116020236,1152022055,57304120,352400302,1546179349,1258010892,1873483369,2006743800,1654572746,1585397651,326056567,2058384005,1311455085,1186544687,1173068356,743828064,687927021,741576532,2059618858,1478324240,1649476253,1129410210,1390964012,1067944704,1521948333,1703994816,230474794,1040965889,587469582,491820182,651438108,591790453,1208599287,501555629,1212211454,1515477489,2013921849,381621953,915116233,233602574,820862520,854627460,59632823,148848985,1910559841,2027328417,940803518,1355045763,2064170456,1438797388,1263756706,981457412,951602172,1106810456,1296628386,148191589,1006179989,122840025,1300904948,1167684895,1728737417,1452598191,572383716,1653944328,278843385,1664565954,1838206945,1294250518,690498330,552623735,1555883818,1939039990,1337904900,1690726574,1622430625,1073217548,436158832,674147000,1962835224,1213733543,1602996284,98847481,944024908,594595281,241030853,1156688379,2071437917,1898606637,121819321,1360572423,595614075,1549654291,401623051,181535683,1049123238,995141611,891327370,1807012949,1794371715,1351293416,271930611,768232582,341201124,1697651638,818886144,487069581,987000112,1841898812,23891994,260078661,1011962173,1202566627,516481491,128721670,1607625698,899304148,2073854263,483533586,237404091,1343898570,864699216,787911932,1705555747,1170221290,774638204,2071940146,1678390806,635895740,480710697,1037190057,523611964,1574364154,1545889246,1568169523,1646800565,580309263,539824236,849316861,1860917705,702489152,1314740429,656326650,1397136338,1325247141,973761866,482113121,644407480,928732190,143970160,982360682,1825834438,1777044063,644106004,971512743,150373181,147563837,1079714191,689853849,2130604819,861433865,118214033,1764494878,423232049,376799721,530365468,993132342,1399127507,760207676,763670711,1240989911,998055597,1135440461,1184005459,1606506960,70151743,52387663,2090386547,351479598,94944899,1787811487,996545280,391950669,2058488017,1353709950,807141626,1910542976,1578415929,1264003634,855400371,1557162770,1197883184,1392892388,188136148,1368306975,1372071695,339597287,1110224744,871757770,1579735685,2014998259,1671242748,161383849,2025018326,1130006630,293875691,1876732492,170185630,757637436,2038169251,1099982724,463612481,753903987,1995181533,934222740,2120652366,2115921850,1592827791,2030239381,964952239,660586618,1983929589,125870662,988194733,579993386,797983241,1582753734,122220573,1617137533,1035077965,708740408,396748761,1074091698,26377100,2035643984,1086495366,1343350741,350425776,705888394,1810995987,1186069864,613061578,498436899,839051401,113906420,1557947357,238355766,556768904,611476883,1518050484,303379879,2025795545,401136528,1449655339,1127430728,317125554,1754711548,413727663,157013138,967384919,980897013,1605955895,1842842945,317157069,1107516545,1128317600,1588052770,1645154233,872833222,2122798404,1544723127,91247784,899851893,701459348,337034489,560745967,1009458481,1183113539,399286555,1250079939,1030796797,390391177,1558447564,97484948,863091005,1355799681,466985545,264044388,120750595,115935305,2046352748,1981407004,986495119,2013597084,1196129895,1869347549,787520988,1066666349,1868679783,1932259234,147890761,1239405290,1984416042,924629977,345217741,1313899782,1130606974,99630307,1294202140,953911764,1069562189,1564839500,1381908831,1743823236,983950105,686002958,190660290,1047124205,1194287235,965953910,2007464727,1551683751,1748209827,1061040660,862907930,1942693653,1121860326,1156467809,1332136029,64644772,658414778,633506614,1604107197,914530131,1387461352,330074999,1840350222,1264895640,17090472,186113975,1386853548,1026766607,866048021,1340227405,1362276934,768449216,760805441,642924307,1450496129,651579483,1101389329,1003377240,1698171982,1389884595,814512144,1613593345,324348879,563305744,28407727,1612548974,1318937928,1763745578,1168079418,1235501325,60334945,1540042850,1295430884,379824256,856707246,906988193,1878181535,1845057944,518107355,1903433666,666484005,955446498,1086008002,1524077773,1836277021,1676918443,2105407756,962987204,1528921583,541776302,1378249003,565314332,1078265770,405668989,1205654655,1610800907,1694553153,857731898,422008631,1930284371,154082874,1265525597,1901559850,1841925357,1632930014,284434290,1047721445,1971592373,683206687,1097868106,2104976556,1113790086,292527854,846023574,1323502299,2006414301,1707041099,4343298,1150044210,405783402,1264112925,1652885694,798236510,455520999,578218204,309017176,1298430108,60212984,290630854,234363272,105352694,8067564,108977110,359293867,1573098480,1275531082,1241243698,399934849,1993671953,369801438,845456740,534153011,243590251,265921136,624725304,731205291,710885466,2117275436,65759082,474407033,1478165338,197783231,1191185049,680798811,539902750,211384534,1012588980,909121973,350750182,1899876536,377872401,1146957436,2061872592,583359728,1978955670,79183859,41352307,305582421,475224156,1523417941,2003025825,919402340,561854378,354853948,1491963763,2045195488,2013248569,943492678,382623331,956674501,192475447,1984524633,724877437,2019537842,202931390,524092596,613697185,1234383284,1547154157,58716674,303971069,510814685,490381718,901988727,1281444860,508659001,84597812,845260888,1205341139,522111919,1715124180,208631769,1946090314,2027248102,1026459596,1070343588,325518785,1986224310,1403445172,746517932,1751681446,1705974951,1324968036,852060015,825235515,764623465,767206978,269582149,1859281627,822419246,930286453,2010481877,844481816,1463892081,632636418,705153975,1034065841,1485260579,1390074416,1310304893,1440523836,702474409,1859738889,841125118,1662176958,1118021407,284356050,334347749,1809442270,1479631273,2091672492,1072933312,949804728,40679675,469203759,1042587078,56768501,1252823393,810146011,2042110961,527557084,785256557,1550483871,362242972,677515782,1832225792,1611403944,1776200351,2064319048,1931194894,993160668,818681787,604156176,1815282647,1027074227,456203418,57711586,894404837,1861652452,881871322,872321275,111686067,315438137,402454914,835432036,1510185365,561305404,1857377644,1764850860,1446481479,388109864,101406307,1828271520,1960468105,530327260,2058546623,1277305871,64004604,33075733,2015016197,1164080994,745969431,1585439927,703511056,1819005786,459848125,804178794,955618952,1585443543,6676321,1817487782,1440256109,49765120,1330766779,1911527862,800461976,274699433,1892690973,1086381399,566958280,923230653,1656823543,2048798236,76993189,3286476,1652791040,263134964,424406405,2116869951,1232646946,458181522,859137657,80370040,451975991,1556984385,788674498,1764866273,877589295,14237344,232137327,242356404,2021165935,1322250938,784573577,1844525709,1255226954,1589553620,1482378573,1118023870,1607346471,298303822,1886920008,16080384,1088096620,1083949192,1711055629,281019738,1617307455,1778192233,1313234816,135125680,634377252,1416196239,69207381,1977194211,1124127133,142163833,2079742549,854723612,396228888,1728767475,1643404947,2056356267,1196002486,1157468868,1519382282,1592312035,1640568351,270296454,734966257,1468752718,1290043455,1999801966,1577288741,515354475,1674399603,1562668509,1749491988,1065729857,1497761255,651249361,881227724,1601626727,444192788,1780253659,865998646,293215361,1889424733,1240941056,1459713731,1091228678,1419350800,1597202330,120254217,1336059447,41467188,457481337,541356621,1457387391,1866064273,1562885251,767970670,395753434,1521364244,1064445261,861331795,1315458161,443876397,1489993858,498780109,948900689,1603586281,671663409,39364352,1818425475,1830843387,1440185172,2053451673,1203203173,1681557395,1881935330,611541557,1583102811,1109143842,667484488,149963408,1943096728,1835274620,483150351,1999552265,375111829,676849535,1967954237,2028556320,483890839,1204373587,615838343,1937117448,1441961153,1773015201,1506413391,744546728,1044823320,1935971469,1323565828,1807245152,400530651,628086678,610229510,2053652445,1020642661,1864743994,1227403152,1199477050,1957634717,508223600,398940999,71567893,998727861,1825274135,679002850,2015941081,913215415,1728483368,90083543,1078176394,1496841453,938894299,771534873,1931233882,513646194,739246317,936981688,48518200,664704802,477395871,2089846193,1850775324,900278986,817668246,1154845017,744549319,456584814,795924164,1977685883,1895074610,158649648,1064720499,1831687196,1062376294,314265844,1146523271,1001258580,147173685,409293479,1351392273,1828862485,930632685,111903092,177305425,1023532626,670359304,767458798,955999952,1465228605,1485555251,406382335,727425484,1244757321,989818863,783536330,1058187344,1860432365,952928398,1515937132,1554011852,595650017,407544456,79481915,1656100558,348153503,337589018,386243647,1587365730,193103741,132655445,1994120426,1565535787,946742626,1339900215,1022334124,942468704,256553464,504771669,753527387,608390157,992825942,1539068866,2102992495,1931228142,703382794,132520416,310594103,601945287,558761556,68702077,1199132237,168588775,1458452658,1922815699,1202105740,1039663021,1304742768,1686095537,545184583,435482795,309038671,758762243,1025333502,505319586,291239120,1957394666,960758407,154914447,2067231647,1750286636,2073436682,1909653515,1756375047,2085130180,1854088685,433784865,73362033,1362769998,1753295407,1685229070,1513388678,1205966649,180150449,1917557897,901471464,1518927180,1507226917,24498388,2089921648,1463391414,976800492,1627731568,1726047301,326651275,2022904652,428520937,436064378,312506899,1358158123,317630768,262545474,1432469673,386746502,1013885327,1942678089,1140020872,1882557941,1527572434,183276081,1334846489,1887326585,283612067,260348456,232273314,1250173608,1223260573,15637091,2109119821,1931958915,509448191,2059839396,612075638,225057601,1711241416,2101917747,1311379597,541293158,1543224065,1516046928,159331157,1976607238,1184631173,2064929756,830734538,716021443,1713057862,522663507,168366159,1076194170,2011340484,1184794963,1710357175,1986191759,789047092,1195856136,1569841062,997544331,198046434,350089539,320162067,1654036307,1493543138,1032386487,436276519,321409652,84344031,373732925,1404273400,1464776839,1149526139,1794127047,878938761,905861584,1582329952,414248114,750338103,1746198122,1555441333,808314570,1355937817,474984914,2057031733,136581586,1256199369,1779063941,681973108,1737066841,1687770293,2112704674,14838193,174236583,1361133967,1901834384,610561119,1873979989,2007887604,375436034,588019037,426613273,173281903,2044156039,730321963,1726704099,383548275,500179055,713382302,1667931470,22440240,301003414,369565840,1679256367,684823662,1529963015,1873245249,1083999541,754758032,1349886074,229018953,557517748,845136573,38774859,1504807547,758668784,1136644636,379613821,793572259,1834502499,1159082659,2054319815,1773760293,1259621432,343376594,523818842,595134603,1498908474,1403708422,449808942,1619759989,1019024120,2027883323,466001074,1426075550,2030177059,1710222428,591617069,176740798,1067233257,1348179937,1658657507,1176335650,1299420929,13099191,374071622,1437053672,407360416,308618556,1107627428,634174905,45666057,2075696183,249058708,2048016370,1163061989,1158625943,1846964101,1489861435,1740813633,1152418189,1886066083,1774068483,1959036265,675682885,1760734710,1347096878,1062685655,309788077,1069789113,1673407284,421550047,547695901,1389357367,1054386706,675647367,270143067,1104710354,21733065,28871330,650590546,1081975345,1561315951,630429007,2127930596,331820968,514270941,871528364,665716719,2056989837,2035743816,918867402,1450983475,895556672,68730416,428104210,745083462,147425090,987531644,1302851979,191613221,2114159420,779521615,1215607204,811301248,1287294413,2063457742,198133842,1798196646,113286818,559814897,1725290520,481214187,1091773225,1280527902,155453734,1602351254,1242980479,791469531,106485394,794667524,1646703077,2116044926,1971492006,262189586,238721742,986729286,769750261,763465242,429183083,1320601627,1840083525,1472555399,1576432461,1387391500,1339670691,188132325,1807085914,367521841,676952989,488830862,1793821047,654222997,688755836,779550079,444769798,221698352,1543986833,1591112812,2114288810,1798154781,270397194,1282365080,70054409,1395420104,1989742460,675543646,2080289387,736107661,1773113848,132193318,1992085086,1696483140,57421632,1952190916,576286078,1575660100,231297973,1954157295,1803254039,933935772,1100719831,436995626,1318551269,19142944,230166119,335828542,775045985,511728719,475253331,1012274785,1395032419,465667849,1891901412,339463260,271286778,375332909,1266136905,1285089489,1254931658,504594481,427056107,1669886990,1861036234,1404102400,163891565,1292188651,1969274004,1987550709,329228074,659897914,1873545846,362932364,106306774,201195491,1133020620,8590145,499463701,1428030880,1853353056,412488932,464393085,1924382946,1298932457,1713458787,1439475744,1697639008,1569822792,1043566805,820584012,593011270,557818910,74309455,1345685534,1262979519,744546147,1180410907,417620695,386273515,1637873125,1744968936,1347668427,281609232,731819553,829484753,1326998820,1882699975,1121731215,576192168,1332801342,1682613316,1023283908,1691389049,1374144479,909301597,1536763750,1851712386,686985010,1591810191,1810120279,1994637407,1258808453,868268400,1056984782,1170524407,1798126675,218519456,1420663914,1597152752,1678674651,321215081,945173318,1249775690,1608105123,36131383,1070456513,983898476,2045095056,1110504462,630348628,418040439,459105181,70910257,1416600355,1101254396,685824182,1105828468,635816459,831039089,869610136,1062843982,1042230531,1638781604,1808249449,820712236,1320217035,143404290,1284687763,2123983577,1980765562,781429545,2026658723,892446001,95153433,1578292662,1191446697,1614928577,2090935943,1427817607,1253336686,2022493919,161893819,469977188,1554159714,318889765,1246208139,1747294326,340880943,983115483,104892412,28329070,425855956,1891851626,1770755373,187012457,296143211,1972288555,1479127623,1826945799,455923062,1953244758,1170751571,981301914,1185983383,1399315912,1835815298,604576111,1698506135,1835638378,1442681959,1735269692,889167419,228590749,874285642,1830844514,1571747269,1082373183,560572233,130738411,547100764,1389216414,1993620443,334843155,947212491,2091634475,1114007052,885557249,601729109,31520165,1687614950,392191201,1454298526,1480792999,760121954,2060903891,584507730,1537801060,1385863879,1222659045,1880703144,423135267,834580054,1751615534,1932636996,1193254240,1338220775,1384898906,972734779,1185245962,2108684258,449934191,569334386,1956946190,1619321017,1240510545,2100559136,889404420,1993655028,1277206292,1693694844,1864058908,1196316940,629840716,184972119,1532276775,1670131729,1200418689,1419067949,1791205241,1029504715,659739775,565814031,1544521877,155397292,1300384720,1815404963,1614416343,331660910,1708287352,573598000,502990537,939926765,1420644622,589751565,909766454,1621286420,265209488,1332516186,359402713,128809606,1001860481,1603870437,1977130491,1598828142,1557148122,1542861072,1875275960,1817598127,1423914547,1708117214,370470256,2048298609,404804132,847055852,1945180058,1830650444,1860026736,2100386475,560115889,1167420384,826781566,692968852,665610877,553277003,1028660728,1555430844,484461846,509510113,681724293,920874664,964805189,729458955,2080834035,1606039241,1250427132,1205949485,1752360895,1530294921,878727651,594154891,1146752254,1153855642,893333836,1620175172,443292265,571175281,711867215,1236375426,1818942659,1845951904,2016420918,232351000,253462444,748836115,1674576891,59033113,1101260158,1727116981,309613137,2096197049,2073070300,190110078,375090328,1564576725,389945296,1279406198,518603300,1955575491,305527638,2065980718,568913197,1104592626,89818540,407079432,535216026,47318346,272427806,1977304066,189845631,721564912,295781445,510638419,1987903699,138695772,1451101217,938268503,882261852,1455554346,601985059,1733097222,316308190,1799697021,10615624,269894293,1439542805,442650556,561281253,1837333681,1368224124,801254728,1266452634,1046726536,239543564,1408721098,953139815,1652015899,213345419,132015672,904166090,1543276635,1787845110,1747539143,1954253269,1899113833,989467277,379450268,1667915775,1871005755,1559937650,682461739,431539503,1842150279,1630022266,931094034,541554525,547410687,945464660,346524490,1881668651,347485745,1003706744,1763031283,1304816905,546776612,1161461343,1518589756,771792106,885868035,22118228,241762762,1578787137,1795732244,1526141222,752781627,1483927506,1928159778,2006139927,1502848898,671537850,319566726,1868738129,1745092244,1824926686,171189410,1314940851,1017855796,485892661,1214067688,1414199464,1182788454,385965720,92139548,253731480,872957566,1290897623,1415122260,1578625364,1037511955,233705917,343898775,544117503,2062233356,1281491602,772907517,1275512999,71683796,119528107,1576465968,1588871187,1132510456,243167847,350473430,1656716991,1226426974,992250603,1152979613,1406043552,1072391818,24599250,748504414,1537619531,1924419429,9117011,959582223,1449496792,843892413,1721776322,7481958,657008036,1430103786,1041447973,2083591515,306994018,1496521878,1518539285,1537445843,1093287277,1698448404,1646059682,660409839,162072225,140762330,665343941,507986908,1820267461,50187213,755804681,1968154129,1218481043,1646160028,1795737910,1724869594,373180148,2082320901,1775335520,719908611,177668098,407142614,699368064,1809491485,1650471547,100952767,1465332122,2090762397,280522919,2049561983,1866506603,1732215303,1342468214,2059211113,1437466155,505186815,1000118757,1861369139,1143578969,1914872861,445243968,516870376,505136063,83487877,1851589845,1036895080,2118187674,1292607230,263716381,374309527,1951654357,1819421937,1116602740,1826590313,2129196878,302908396,1858351966,795570977,951297851,1040653063,207050579,719286468,1514200655,202116147,429014524,1257208457,334790529,900069315,2105522853,1534679900,2065949394,627079963,2012633050,2084031335,1485542668,1787771103,421013990,1405879815,1344217880,1600045976,581892814,1835322920,81114364,299803912,1337637440,1826703850,63113706,1178246689,503733870,2101214713,893405752,1675033098,1545475871,597752405,1570302671,771213434,1513192592,307000548,645836972,753757281,862931650,89277885,952439725,609153883,1729203852,179228617,1317651656,1267613822,151152976,1493089435,1085293759,2023033626,405484768,508083245,84020043,405640312,1963029841,474806005,322194390,896509181,1026371065,1424868838,1085196040,808318283,358781347,1328342294,1049673410,206815920,503283743,2061853248,1457980331,642162777,1929994714,50180277,344735531,1123008097,1137060601,1694321985,119525449,1165947647,817520948,339966068,568607495,44089691,702174195,1787792306,1987222162,1245098403,951716735,616303783,2040578619,1184951678,1490482754,1797204868,640585711,774283240,1963643329,1750899486,1666494208,1843080224,1331233139,989170599,450532283,1023650288,845301010,1714603927,1942114770,1571236431,95031175,1455266020,1487704195,131364653,380344771,949439752,137265699,1414251350,1388968329,462519424,1368689277,624472020,1257416947,1480263389,1090092546,409092940,1708349783,1238094181,1204001520,1483161827,1063095059,436684873,1365857767,1250945216,1358699093,467288028,2006187599,2060363959,811410117,32576418,2219034,2129493953,1851763665,1547968041,288025010,1510343491,556659820,716242031,1064860600,2125925782,1587068407,2024973294,641138174,155870188,1830856978,849190906,208312647,288303667,1653188190,538644716,1914863174,224713600,1429358398,949476459,1149963562,408360042,812807516,2084660558,1910963683,427965668,625973846,1082175210,990486668,436377603,403804064,1003288994,2011545744,1585603607,371776418,194699494,192452798,1662460697,278521744,668361481,892403676,1325581606,1371196207,440213862,1301464229,1362542016,867735427,219615662,37355074,1329760108,240235813,54891841,1771966784,436948478,1632312773,1978429121,467110844,1485658535,1541533484,964298713,667165991,1172612094,217869161,1689961171,922913154,1871771893,1119259987,1401553243,704704435,171262338,1641463851,1941118240,394734110,1834416541,1856004759,1267172132,923063039,792190217,1174060003,1984875286,305393984,674719370,1680591515,1626393360,682345123,1346398963,877966046,1091851783,1235983006,1597233265,610825405,364732811,1521833149,1408119105,659007082,830483535,805316940,517689342,1954190353,2005620601,1137604705,780167339,589595919,928550238,1305686670,1961135232,1239294395,545384953,1985657065,1663518352,295513723,2060578234,1901539180,1793688390,665921805,1840088563,577573014,1674987494,111623099,1260387979,497774171,1745977894,914339575,1432746520,1085123345,24902793,1073026632,1408112695,1901770713,208971406,594888474,2125423659,12238286,1083188214,2119639028,1842042375,863215528,1979459549,1523463260,1264989865,1703296026,279200671,112820956,1684367377,1809917070,74639054,24978606,1725399687,1747573040,747410898,1372997253,1506136506,307124514,1346694481,1723599269,2061324892,1708969472,1121807545,897345461,636114180,534996547,868353447,1177218412,2063499237,1205616649,1342932407,314671309,636690181,1632453525,2048711159,72878301,1244169910,1149944708,1343273762,1523258040,1920052566,344151055,310833176,81394214,292836042,61706165,1404723206,839627243,1410469392,627713107,306428335,1800045835,1590225255,935267781,510299121,1138515057,2116374715,1592552886,244754973,1181046039,584876782,1721717188,1424729554,2068906435,827391802,1761574839,519702000,1131815658,1352517328,644382442,900681112,391450734,1220620254,833076912,780716623,1617754709,326290650,524578417,1742377497,487680746,1073667047,599127959,153411460,1564027160,475133892,1522327848,1039756319,55336674,151846262,1826397877,1988870741,1138737688,1484047989,1018388188,1308385038,702924933,1673986519,1277720939,1993029483,424965135,52812977,764949456,202817127,2117271618,1213239801,654335777,929391991,1980235501,279082452,1843329238,880370028,1541647971,181222181,913418998,1191781556,1376167184,1061995455,2046243083,1631403562,41234528,1798955128,284428202,2113850062,478360005,2090748517,396150393,1260579758,1475289844,1235073486,981894130,672417294,1335326259,1623436278,1381079881,1211207229,1276613755,1310851910,362102033,502784245,1916461442,1526982357,1695176913,140605433,1029111563,1316460292,748605410,2075134443,1469900703,668915673,562172989,1993794250,1351364885,79499600,154906904,1151657768,1645095656,485129004,284696630,1876479268,1183982597,1348829765,1522723345,497364977,1471978073,194788600,105393003,1180311671,206224555,1379136938,671072127,884716064,1502538694,1787391251,1056499715,1146736717,1758991267,1523076995,587690301,1664012224,1137736975,1263436680,1482851923,699334108,2053640228,1132729219,1259339162,807208666,2108762065,1815056849,1505148173,303802730,816300657,373809017,111324904,2035383114,2038866895,296383629,874073258,1170149301,1615899676,490053511,301611892,300707499,136544044,1713141807,1670452347,2020128307,1604938575,1825768794,273669787,1304590422,994887913,1375330824,212447615,1346834892,1606476766,132020734,2009535634,1357121450,935373535,265773093,197871027,196220346,1943333449,839397032,1766690376,1155705734,1158098925,372320397,975457647,23163058,998713615,4083898,83275898,1521442464,1793160822,684288835,2031085341,1366324013,397340333,1111166617,1094675851,231058585,234404344,586750829,44412295,63961662,2115635309,2032415590,432351491,1141034533,1502208975,1082757163,1875802412,178433910,11993301,622901621,2061614233,608883089,1639775446,827499327,2075957752,1277468153,1233122105,935881326,698296221,26768958,197210381,1662823906,1339347766,3958366,391776676,205364850,2107002638,507213149,146599693,1470467772,1544803391,1315771984,373575263,1814797272,398979222,697423659,178120688,397111570,1596591834,80114669,350896307,1821759782,1035905197,1512754431,1666783120,577303085,1332664522,1343493997,1728985553,1217419221,2010248851,58799065,1136835150,241163564,1045957857,1217401548,107513215,1270131914,2085588690,265852360,1361061100,1264839452,1727969335,206100072,169526602,1588180961,1417401478,1397002087,181496584,1438344912,1752718133,404701782,1582564329,48510084,303046788,1914490460,872822927,451348453,1208705890,168409251,256601654,1281752055,1230091804,270775851,693052759,1496177973,140779530,483363425,1228736698,186001217,444634742,2034727676,1263899810,1378293834,543377887,1767224433,184570472,727630930,1480471831,1693072688,422416715,586289766,406653140,1287727864,513532617,1461017841,1692796055,1412717361,203577126,116919525,1032375750,1078746440,603617737,1693007650,1399699216,231648509,130814156,930384710,632971617,822821460,545515893,1488936832,912466585,935876550,1450819446,1764068416,789794521,746643903,1610955376,1496286457,295717471,1897040490,1424442004,805351420,1617310881,713452273,1892020311,1119051264,41310892,345225364,927695978,1147729471,1581951315,331383799,1071229062,826750407,195142055,2065931946,514445180,1523871752,334353974,1749544053,1958738195,598103280,1691615973,1812585201,1865887107,1303915685,1472119702,1613123945,1604060050,611234740,145555864,1270570974,448923737,1940509791,121947543,945867933,1128352872,110627091,525176996,132169920,1371425311,334490259,1494191436,1895833269,1677995913,1665693775,421981145,1834181577,1484864797,1000176494,1013229858,1605482536,1042038170,974105342,2117082634,1586024137,1399667198,879642846,1072700839,533332408,1679783600,857080604,363528705,1015297254,1971027339,258095229,1484225853,646427086,626271366,510784493,2001015704,344468042,1900963458,1460527102,123141114,93868100,2011280233,1425251746,1485339317,1007069005,1284360769,883125485,1210034199,1139180266,899073418,696256063,1084888301,803996942,1789148829,1394818480,1235910332,221760328,118510314,784031700,1261059428,606741225,1522618263,322138117,308180173,1764257028,369929559,1479300851,1308219396,913730793,1825399430,303877027,476629647,1262923159,385624570,213102981,1482110837,811882046,1058186924,1531774910,670781240,1077688886,1317942161,554182821,1581869881,831300960,683741989,155573410,95032235,532780639,697999094,759539882,898008426,362737957,547830519,408880087,1928226674,1843885626,910172296,1433788030,795795989,1693692321,1629899333,268198567,1626752167,880094595,3513385,1908952954,1457174001,1115496775,474371899,1547422708,752257592,1844106375,1050726266,397918551,868221331,1203281485,408970278,152834426,917062474,119517695,1739735350,494939167,797379524,377771712,960343974,314094163,2002584749,1037584812,447138160,190478965,815627331,1865659196,1701499563,808190709,1859119104,2019560679,435806907,1382224358,131861618,242501483,1319555538,2117518332,1062501013,578592894,1783675094,52988126,760221354,1759989159,181680919,980005252,527438584,650985078,1168045321,1507951517,1665028081,905274043,114340914,752354671,1915169704,1587317738,260672261,889531355,1790502278,329065214,1693328992,849024212,94459337,1765998062,127588231,2002424974,1213433065,2104384997,2082888298,1889883548,1319740162,1131730682,381107101,231095882,746047309,212421246,405495302,601231086,1520816811,284730416,1479886791,1278808126,1569197559,1071296969,292983826,236842300,1719451241,208695138,1760626899,2111519739,1558396300,1000369155,1033406425,338977839,1737931487,1994392881,1961916845,1342480078,1675208135,1215732178,1054572628,1395917813,1019012981,144823795,1667381519,787976950,22857731,1965299685,139786778,661728235,1450413609,703531479,1152064225,1335449233,2002182726,354679062,1169218317,1145896731,2085345163,39798076,1277670082,1308020320,1197092425,2001780379,722353618,1939337020,1378204408,926570033,1518327323,1532208864,1032541493,542396672,610794922,1592948961,1248641911,1678479932,1324089163,1950372853,777947201,1804993411,468239226,865000056,1366262601,648468921,1899374541,378234372,1902877123,1269195463,197859410,1046747114,2022757708,1205884344,1853700096,813709882,831280261,1380179477,1500449567,822679877,627788288,1268922940,1342923893,1483184349,1517788688,707391890,790162452,1627491694,1793533819,2048353751,664036865,1057101173,2034287430,482370301,409031018,643768988,603131651,58613805,1657434065,1375078056,84012224,492675263,727134443,1197903406,1027360588,1359846795,1083409707,2022446759,1411011438,982083812,1007069106,1555949038,1652734810,1709886182,1922759854,1869757370,271850000,684937745,112721902,1595202302,1745250132,1953711389,366691223,1715201340,788844362,277385542,1047132774,1931117003,34715970,1628430847,2056623650,1223736641,927118394,1513443404,397646574,1624531977,1773891019,1135127812,175990139,1662963628,273416074,194662344,987341842,1328026978,1275676773,141470513,84331404,589618644,806946411,470368045,710613930,666425503,1929794257,2001393651,422528700,448407037,641278243,1222218818,1865495073,1902908586,75819930,1778901291,48471226,845692732,1908865567,718918844,2102684279,756298711,573395979,2126806614,2035450500,118592925,88877417,723719652,159283503,1502868866,858327571,175888402,539145206,192507493,770033304,619047225,1732565145,1426600786,1068653636,2076870037,1336720393,924661726,1479406611,1720300645,637247413,1639583513,1711076878,705564170,242013830,1314869212,1887968643,415931975,372056187,1226546752,1960407357,910559364,926519955,1035294983,229727089,983179491,1654897321,1129124442,521886955,1975883359,1427081864,1725079695,307629779,1229324127,117444667,311724743,1027965000,165037034,53911657,1629091000,144518416,1652950838,713735299,1416760329,459919917,1797625448,1051052919,1787552548,1525710020,1407778388,748826214,1399817363,2062342256,565265516,30017548,249128758,1104650179,1668019241,1382305137,378465607,746981199,1159207594,662986274,1640830085,1907388502,1938128254,326185617,666544294,837773787,317910544,1081032648,796910273,144057857,1478026345,1814170301,1620481051,276682193,1191616936,2121038460,1146948979,809356370,110432518,47780614,940896033,356328826,807283172,2124497993,251822632,165539405,1411298313,898350965,1231532350,97123405,1273759172,1977258463,210937497,1347977813,2012299292,1077443632,102332942,387906105,1624409163,130154738,1638618606,1465434754,1101231928,1303831752,1021090587,665624516,319380704,141044469,793823831,1133667537,823016582,2075283510,1426826533,468934911,1009387426,239039486,938117073,898047301,1099102225,649359978,1513851572,1287378829,1433396927,1630191036,1277617817,1784441632,1456223020,882868689,85246753,1650003730,390106633,1671800629,1889044376,1541758264,1603722370,1072982925,397705175,1584030201,987861393,1269116619,1169123205,625439059,557243578,1025132972,111098548,1269980655,2109143392,341562992,1940687064,563621979,186856061,1924111784,770372357,1527241750,1417769278,345113448,1829170489,992324722,893274201,7071599,739502904,1543904152,1384714282,475555332,854643664,1514707289,1511772880,1899748788,1777792008,1876210726,1857146714,224566857,220543145,560489525,1051337649,934343542,1391388047,1580746011,99690631,1162577118,635638163,963346373,1400841228,1516134955,386678389,753723914,339935396,2111320719,1956124759,98189976,1674934930,888534968,1605823020,2015933408,1987841276,1628585584,49404796,782482687,874142846,1713442802,366599637,1618358054,1513074903,2059567373,1209936994,813944471,1803422957,1357873145,1090149396,276899094,1548528986,1354504476,1476478223,1786818377,803484306,1733400566,650349338,1112418718,429846197,776962322,1871407955,1151269812,1340814300,2041430660,856805338,1797185082,1971701071,1585905697,1556714190,63019222,315425404,2040750322,1252943071,657474429,29280739,1735974432,1797737399,442362714,829246365,586878151,52358855,952597029,917479665,1152289954,597709750,1846315817,1629841179,1093162360,1223687224,556703741,713276103,254544733,240387748,661366612,503892933,346917614,1937307744,1921063040,1554377462,991327959,357452960,1968137802,287405653,2108652573,1009606095,1371659210,1605861055,943637832,174438299,1282492191,433790518,24833664,1928891885,713741536,562617213,973805106,404627056,189294360,1781663827,1321639581,905766691,414014694,1908525785,1773013130,1506776880,86101870,1511855601,1879536596,1397854168,1779105433,1287592358,1617823738,1064448958,247308131,888882794,1066816930,282320879,1652222603,1482704421,2013143546,1689474799,587104786,232159744,597835437,2003428798,1581299924,746761299,449013783,2103859414,562596511,2042294295,651455153,2010024838,1441994214,224692593,1270134726,1734154658,1141344969,805148674,232099871,1004023938,248027395,1543635063,1757625491,1673468426,1087378318,1963942283,633924123,1779841015,1886859436,1898774812,1838958920,1709344221,1441921556,536007324,408293197,146354657,117538020,1988509008,942215498,1045374035,611372807,1295054514,1280246949,618225576,2025466466,1600717723,995062394,1970510709,111567294,1374930728,916587176,1447875927,1049088461,1471149530,315448603,743626097,1353586880,637303814,1041901137,1059556607,325703790,549209696,472807516,1450158892,1005356109,918538799,823937547,1999804065,559534069,567463,370525595,1974031769,979161693,1520825438,1692840274,1781524334,1477236649,1726057123,125880544,1286672301,1249022044,2047355626,1530363797,474836110,1323600338,1291209543,1723645705,1039396733,652220259,2003025123,874298394,1703696750,817076351,1190416320,1866602808,931003320,1518905764,698675227,1394156253,207009675,942908200,208768988,2018002266,2024145960,1447324192,951163581,1728033950,1210006476,1867439431,990668512,1380954152,1081003004,1520062943,2085696346,411743191,2035097652,2098208062,199227162,1355532013,752059272,1137320224,1490969985,1737126255,1320083893,526452905,1849861960,353609957,1965184795,1339557765,934854890,295834692,1125459750,185381542,811410480,409969153,110352058,766580477,1278257855,1467482276,2064509188,1408161619,175796624,746083111,1783393456,1027826352,779513063,1598650146,100528282,2085075448,1555353482,131275239,489279355,1255576225,1646335467,324364716,1739991126,426188430,35540353,132795000,874593252,746098202,600705449,853698076,940549459,1578199488,1097554449,544761976,248636081,1242029355,473240338,1548506109,1983720129,40421926,977114573,1761801713,875702866,1308909865,2110874342,935872402,1582072613,200946919,699865527,1346095484,626948106,2081597728,1901568595,934217227,1697714396,77227151,1992780490,1320084334,1587779169,944644270,1989566615,991059343,1369125264,1386926646,1442384944,689652730,27466583,130657942,1666954142,1742831576,138109441,333475979,129807084,1442204689,1618628194,411166017,2029546614,974430899,919962538,1846628978,1588161297,490368580,561413669,710699080,1582669011,1171945175,611214144,285035795,364458551,541969150,1323537948,46584186,327936950,362488486,1077248593,1559916117,793582874,1442835628,1058764238,1792520072,651908112,1672633912,306038521,27505570,1293804911,695374720,1251902339,1062555563,1072074897,1729190090,1913382975,83026218,43272888,188990172,1730305488,762189295,463954391,733540419,291700504,1095293609,2123085418,341596647,1409879648,1730960495,1768925557,997437251,347155873,680705172,1047149062,1144289040,1618795705,1440642318,1051537740,1589189155,480816191,785185316,837105815,765645706,2033975483,1297913405,1360794543,197523958,446736557,2053087727,2007162709,738608321,896646254,15032815,1752207523,502061666,604865911,1093631706,305949478,1489048249,1841067563,1220192576,1114865196,121673243,555116379,1366321155,1714494963,145406379,898827092,969041874,532331790,935353092,634407187,900802953,241194219,1695911246,415115954,888650556,603377265,2081934895,472492373,757186749,1517183023,1197671075,554133555,576908528,704585013,984298345,1737987834,123880078,1535831537,1981210222,56420653,581955080,2047911160,521816429,749875488,1163964786,1947463530,575803774,1132860910,1724113814,1700701609,857873033,1363578458,1306421237,906473579,446800901,249170754,177762285,140100963,492608025,1274921549,1750703395,1741659707,123475206,975937581,1089202247,902401970,1870941725,297396994,1013122772,896173134,1332524675,365968231,783112792,1894741584,924984434,1929214558,582548071,689204594,109815988,670339042,1394701088,1864645620,534758183,492179800,1504394577,1371839913,2084627063,940337084,687256483,387885915,1537171733,948676253,1439346094,294885665,597901298,753497466,127404887,1005053092,89654326,828838339,407575409,2019466538,1111128334,892087738,1053289856,1587372701,413346679,623875777,1770078653,2007335945,459167732,1636183395,182355181,1397973704,1227628857,987387188,560343453,873380217,15615925,1337424516,379471252,167919967,1036568668,734234207,673193414,1497982098,186318186,1631026369,493657601,398014101,1696376165,1892250361,429970515,1253701032,1295124956,1747401896,533313552,251947094,603077444,1363074368,785230629,853281120,464698536,550730435,303022677,873211459,1232165120,1778641808,395776871,1761265559,1010707352,1882479524,1191771685,896527952,1366349482,576345519,201964013,259765719,1790704533,1582649057,1215417741,2071975289,676545658,2066500800,759652748,726570269,1878521313,1415072038,773758140,787481697,1777406826,1180130977,668361620,853190964,970863732,265583781,1412274327,1932244672,1348112783,822212446,585203145,1948473505,1605204078,1503949744,190089097,1200058871,1267290929,1592530192,611007559,1790182691,1806749358,2115950393,1584194668,2002832482,1804065245,1729354460,196547679,1108667967,1576527848,1263134120,86893085,1313813994,1474422629,26897383,659024812,1750260439,672683108,1160001013,870817507,1778663744,1864431914,648645530,772946386,1640943244,2097912212,1603245102,71758981,582768527,1751339572,1238633505,1277012227,1565033487,933096701,1773556745,741437259,326757630,1835196582,1154289114,1351704608,1455830727,403013220,195739640,1302108039,601291201,971698092,1928164907,1677795905,1598236433,1485780867,310650576,1042286179,71231629,1320730372,850051943,13771711,1392699356,997825560,1957727557,2065944681,777556673,938278802,700048885,52775345,1456364245,2062677725,1705123435,1437486215,1641310134,578512482,275872426,154552137,1226256962,922176822,496176900,399756548,655652120,1521921403,864404604,1587723367,1298463263,1083611129,1665016014,215569510,1381238273,1706749762,654801019,1151500970,878933235,791146437,542682547,1352840073,1016764091,1967233043,1592933272,1012309407,1964554401,1647032390,1593391897,1655325136,713627795,1436030979,176137716,1510510456,1066947136,1113617925,1453913938,250410082,725993064,2118276738,794463747,512498887,451218494,866919515,542180470,604724268,769394054,1418882877,1133922463,1494175924,1954138515,229563545,1291565911,1867059824,644040371,2010785466,508932798,917752099,559195568,854448041,1861135568,547882481,19075389,1049459536,1698797339,606792272,1172633287,1911233454,1303681425,1475644166,545485947,707933820,825864247,620902910,1309953984,221323268,45835858,1414003382,1306279377,969520962,595589115,1149835828,1096428374,579375145,695696547,1746557050,1490678557,246105900,765968567,395211446,1406691338,1302211139,1997310587,434214078,537579773,1696336516,324872829,181493468,429670242,1750523507,917410490,1537428986,1959952459,756450219,433843675,523416273,1954640692,1074657300,1150705818,802599413,1084397304,86807921,467345124,688546127,1886757836,457979068,1060186218,1400230449,529946427,1953173498,407117266,681976339,1302936686,313981198,1464330327,116468749,1761279280,164042567,1683984147,1526621050,1219550790,129246894,497022711,571330731,1979399156,1683739547,1890101137,1115556806,920813365,1264170817,1891685054,1503607462,713469953,574216542,1112665639,1879467673,1974398265,1288409653,170804040,1889742411,1683864961,1274617233,129613823,1793146902,930272533,1105037233,1386609236,127547109,1608902023,488496740,1190378440,81056900,1544178907,1232104384,370412470,200531446,891100370,808505002,1934525907,715792777,485521081,778427203,2031487069,1814388306,1725589012,301673031,1351503416,498126903,100993483,983389144,1044386342,1438628314,293128945,1313670633,923273880,1446721466,262490591,1881794212,653283742,1339970889,757868012,1430839640,1688486174,861981130,1123845077,1684478395,604217830,327179310,115403049,620657497,1210751366,334729812,1182219944,1596639627,306975031,1647366249,608207941,1812316558,964700049,2053991515,1050495711,1143141482,2066823960,637796604,286257912,1677867933,796240852,1402084401,16511937,257593625,455789418,435111485,425418170,1153886653,623532936,1155532478,1619903665,243621945,617215494,486557163,662498134,986124287,692059489,1579950789,2115791412,100304430,355098752,154525261,1838368058,537837100,213816259,1157695243,42503173,907420466,1225428335,1202199240,1879719453,891599103,1542326785,33060718,995772962,1218586725,2092129478,1436281340,1386795648,1695258602,1781699235,1323939968,1189590673,662038105,1947544118,987409691,1486770016,196389974,1542517710,1317995458,1283856351,1592121500,30270724,128721852,1480517047,1548457200,1443417616,2061800030,613795782,1498403662,523553128,1370872429,1378927368,1128927366,1607618544,1582793961,1574637732,1282838305,465849187,1392825457,1908571634,1520034335,857908618,122036526,454348008,1301630841,2065139931,1247809274,2042088829,2069178200,1115074500,1585008964,900145729,1849006064,763512555,368755385,801863452,1463362734,1429339847,1531071718,2028823076,1774350256,1212062725,1429706518,1540848311,804799664,1515190948,1247113994,1437123145,614526597,1160645597,680041192,292534419,808772092,448599157,740582188,1059996264,1240124672,189612955,745844387,577676097,665564070,1977083794,1334673774,1334537600,2034256034,1542972356,1356731804,1248817555,473380374,804045464,1841787662,1583385447,1082559832,2122260941,2010764798,1578429553,258844146,60215658,1598890924,580572386,98315417,1740522983,1088456545,79104324,418045347,591879792,1985237129,1457413318,1063690702,730257872,1972651393,93149667,1622998205,839223955,346292582,379866208,1517885856,1628878665,1869697435,1920651857,1846331302,1659486353,480718045,517209666,337552429,1331475976,495026001,1519868154,1150302629,249834010,393417691,1720071950,900812212,911811022,1428103904,1455128907,844133029,552887402,1082438016,1643535854,808976449,1577182098,1912401129,875818291,644269321,525859228,266520721,1660420594,1939530238,596335966,99453022,1723651529,1409504804,1066989151,2023108863,1461170803,1890771608,426525961,922995649,1399836924,651070807,2124015108,2003060168,1173883567,267022336,1003538817,1170513137,361311734,1008358834,540390032,1916402679,1256041465,638553873,1604794372,830251911,1611328946,1570100399,2095487048,930248130,1724191241,839197911,619524096,1705554714,279898800,934274123,1665686377,817794698,270018909,1325982220,397042413,1014494139,1902838204,1349470346,447278031,668809160,568498371,1349984832,692326867,892863114,1378276581,1410154987,1232832569,1268380704,1514272433,1059253705,1702268589,1863365878,231940851,1912410744,1937491988,100357908,1204532089,581091709,2062285351,687820601,1602409601,1362772620,1962573923,1028194476,1445828353,1283686946,1850844853,1456088432,1796459933,1038715690,709916599,553043612,1659236343,136307803,1389347123,470591431,665997563,328202874,1954627321,1885743184,453809862,1944771591,1386371865,1634140763,1317516342,1996025587,1175238773,577319809,2006212838,1687213810,1177536468,1578840472,59985630,1255396046,629155489,736415377,1843750532,218019802,1478823116,428970697,1307757642,1890378403,726615627,1027520074,46247510,346196856,1880733710,1380887404,302939549,1451975730,1961892337,443445452,1097078039,1707555091,777054630,1822325135,1357669498,1235495491,1639263817,586882039,1508847340,645268964,252201789,541636943,722001756,1497885511,169164807,170354234,1525343574,1509335978,1712591995,1547302925,1089571983,2015024891,1527113248,767169304,1357525936,1882867579,454709436,272971221,1060480432,782592259,1796054114,497641458,1524380277,1205295820,1134949131,1822113208,700714194,767407907,1210939664,221293921,1000961973,1173856323,196022759,1068817077,1361365731,1276071101,1324379879,1752367731,818621943,1766369658,2025754558,1732767631,403292264,1238462272,1290230555,167638435,1125947474,810135688,1617429050,784895425,409659301,518891094,2071460949,1285093714,1833237325,1842220231,1635999401,1344818972,1907317663,624395013,152197627,1266134331,889621398,1770428436,784306039,1368756737,1145599368,1628963836,1327834,835775351,1359916018,1366380852,1329568493,968898736,1347430311,2008104782,1362093687,696601712,648628875,417908011,1569679878,613668275,13791965,469955530,1610823239,1956559800,148007579,432104849,288122454,1395646260,325170247,1560894876,1954290735,1923096514,1182578447,1365522648,747855539,28809178,1310943799,987250036,1383911297,187062364,974221935,1046822879,1692531765,22703601,955227758,1837958840,2053652859,1301713599,646547779,1088765008,1227097194,315774479,176023253,698240187,1052371442,1886963830,2050252993,2119391129,1138877339,584231953,1621031274,720067895,1696884449,415561131,1424194716,1563551077,1079277312,730080157,692304739,911750001,1844213644,835639156,2093564428,1935986589,927549319,63822639,76538173,93405220,308799311,1050006367,228116340,1818322029,371525122,1570683514,2009324011,580463480,1154589735,1563511934,1807851253,36280330,1726393032,891975524,1239118909,1497411558,1562478973,251760130,1977295459,63443687,991583809,1792944302,44244363,1857757527,1680422623,1492968964,1129793008,1560912179,2095492435,989853148,1031005892,523141728,878801647,1348496380,886532136,767249818,1144916216,577358141,1013115254,1558508129,584293567,608956301,549975586,1445443840,153132820,468629522,2017539840,329516718,2060381809,1494438049,735133115,1501807793,958187393,1995798590,1774238010,998469429,12111586,275965578,599923841,1651039245,464082051,732648093,713681786,1938048150,215049597,1872444426,622032553,333741026,1733596716,1278473873,778403914,510431962,639978298,811070998,1181910574,1386490785,1765136580,775185058,1989705627,1616424929,1342707418,1013665383,26331405,529623173,792751707,1699771448,1214171960,1454013870,323948372,1712777495,1265178405] \ No newline at end of file diff --git a/crates/xmss/src/wots.rs b/crates/xmss/src/wots.rs index 2a0926f5..53b39703 100644 --- a/crates/xmss/src/wots.rs +++ b/crates/xmss/src/wots.rs @@ -35,14 +35,18 @@ impl WotsSecretKey { &self.public_key } - pub fn sign( + pub fn sign_with_randomness( &self, message: &[F; MESSAGE_LEN_FE], slot: u32, truncated_merkle_root: &[F; TRUNCATED_MERKLE_ROOT_LEN_FE], - rng: &mut impl CryptoRng, + randomness: [F; RANDOMNESS_LEN_FE], ) -> WotsSignature { - let (randomness, encoding, _) = find_randomness_for_wots_encoding(message, slot, truncated_merkle_root, rng); + let encoding = wots_encode(message, slot, truncated_merkle_root, &randomness).unwrap(); + self.sign_with_encoding(randomness, &encoding) + } + + fn sign_with_encoding(&self, randomness: [F; RANDOMNESS_LEN_FE], encoding: &[u8; V]) -> WotsSignature { WotsSignature { chain_tips: std::array::from_fn(|i| iterate_hash(&self.pre_images[i], encoding[i] as usize)), randomness, diff --git a/crates/xmss/src/xmss.rs b/crates/xmss/src/xmss.rs index aca342a3..a7a9953d 100644 --- a/crates/xmss/src/xmss.rs +++ b/crates/xmss/src/xmss.rs @@ -116,8 +116,20 @@ pub enum XmssSignatureError { pub fn xmss_sign( rng: &mut R, secret_key: &XmssSecretKey, - message_hash: &[F; MESSAGE_LEN_FE], + message: &[F; MESSAGE_LEN_FE], + slot: u32, +) -> Result { + let merkle_root = secret_key.public_key().merkle_root; + let truncated_merkle_root = merkle_root[0..TRUNCATED_MERKLE_ROOT_LEN_FE].try_into().unwrap(); + let (randomness, _, _) = find_randomness_for_wots_encoding(message, slot, truncated_merkle_root, rng); + xmss_sign_with_randomness(secret_key, message, slot, randomness) +} + +pub fn xmss_sign_with_randomness( + secret_key: &XmssSecretKey, + message: &[F; MESSAGE_LEN_FE], slot: u32, + randomness: [F; RANDOMNESS_LEN_FE], ) -> Result { if slot < secret_key.start || slot > secret_key.end { return Err(XmssSignatureError::SlotOutOfRange); @@ -125,7 +137,7 @@ pub fn xmss_sign( let wots_secret_key = gen_wots_secret_key(&secret_key.seed, slot as u64); let merkle_root = secret_key.public_key().merkle_root; let truncated_merkle_root = merkle_root[0..TRUNCATED_MERKLE_ROOT_LEN_FE].try_into().unwrap(); - let wots_signature = wots_secret_key.sign(message_hash, slot, &truncated_merkle_root, rng); + let wots_signature = wots_secret_key.sign_with_randomness(message, slot, &truncated_merkle_root, randomness); let merkle_proof = (0..LOG_LIFETIME) .map(|level| { let neighbour_index = ((slot as u64) >> level) ^ 1; diff --git a/src/lib.rs b/src/lib.rs index 8161356e..83e11c72 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,88 +1,96 @@ -// use multilinear_toolkit::prelude::*; -// pub use multilinear_toolkit::prelude::{ -// PrimeCharacteristicRing, // to allow `F::from_usize` -// ProofError, -// }; -// pub use rec_aggregation::xmss_aggregate::{xmss_aggregate_signatures, xmss_verify_aggregated_signatures}; -// pub use xmss::{XmssPublicKey, XmssSecretKey, XmssSignature, xmss_key_gen, xmss_sign, xmss_verify}; +use multilinear_toolkit::prelude::*; -// pub fn xmss_aggregation_setup_prover() { -// rec_aggregation::xmss_aggregate::xmss_setup_aggregation_program(); -// precompute_dft_twiddles::(1 << 24); -// } +pub use multilinear_toolkit::prelude::ProofError; +pub use rec_aggregation::{AggregatedSigs, AggregationTopology, Digest, aggregate, verify_aggregation}; +pub use xmss::{MESSAGE_LEN_FE, XmssPublicKey, XmssSecretKey, XmssSignature, xmss_key_gen, xmss_sign, xmss_verify}; -// pub fn xmss_aggregation_setup_verifier() { -// rec_aggregation::xmss_aggregate::xmss_setup_aggregation_program(); -// } +pub type F = p3_koala_bear::KoalaBear; -// pub type F = p3_koala_bear::KoalaBear; +/// Call once before proving. Compiles the aggregation program and precomputes DFT twiddles. +pub fn setup_prover() { + rec_aggregation::compilation::init_aggregation_bytecode(); + precompute_dft_twiddles::(1 << 24); +} -// #[cfg(test)] -// mod tests { -// use super::*; -// use rand::{Rng, SeedableRng, rngs::StdRng}; -// use xmss::MESSAGE_LEN_FE; +/// Call once before verifying (not needed if `setup_prover` was already called). +pub fn setup_verifier() { + rec_aggregation::compilation::init_aggregation_bytecode(); +} -// #[test] -// fn test_xmss_signature() { -// let start = 555; -// let end = 565; -// let slot = 560; -// let key_gen_seed: [u8; 32] = std::array::from_fn(|i| i as u8); -// let message_hash: [F; MESSAGE_LEN_FE] = std::array::from_fn(|i| F::from_usize(i * 3)); +#[cfg(test)] +mod tests { + use super::*; + use rand::{SeedableRng, rngs::StdRng}; + use rec_aggregation::benchmark::{ + BENCHMARK_SLOT, find_randomness_for_benchmark, message_for_benchmark, reconstruct_signer_for_benchmark, + }; -// let (secret_key, pub_key) = xmss_key_gen(key_gen_seed, start, end).unwrap(); -// let mut rng = StdRng::from_seed(std::array::from_fn(|i| (i * 2) as u8)); -// let signature = xmss_sign(&mut rng, &secret_key, &message_hash, slot).unwrap(); -// xmss_verify(&pub_key, &message_hash, &signature).unwrap(); -// } + #[test] + fn test_xmss_signature() { + let start = 555; + let end = 565; + let slot = 560; + let key_gen_seed: [u8; 32] = std::array::from_fn(|i| i as u8); + let message_hash: [F; MESSAGE_LEN_FE] = std::array::from_fn(|i| F::from_usize(i * 3)); -// #[test] -// fn test_aggregate_xmss_signature() { -// // Not mandatory, but avoid to slow down the first aggregation proof -// xmss_aggregation_setup_prover(); + let (secret_key, pub_key) = xmss_key_gen(key_gen_seed, start, end).unwrap(); + let mut rng = StdRng::from_seed(std::array::from_fn(|i| (i * 2) as u8)); + let signature = xmss_sign(&mut rng, &secret_key, &message_hash, slot).unwrap(); + xmss_verify(&pub_key, &message_hash, &signature).unwrap(); + } -// // Not mandatory, but avoid to slow down the first aggregation verification -// // (Actually, no need to call it if `xmss_aggregation_setup_prover` was already called) -// xmss_aggregation_setup_verifier(); + #[test] + fn test_recursive_aggregation() { + setup_prover(); -// let n_signatures = 3; -// let message_hash: [F; MESSAGE_LEN_FE] = std::array::from_fn(|i| F::from_usize(i * 7)); -// let slot = 77777; + let log_inv_rate = 1; + let prox_gaps_conjecture = false; + let message: [F; MESSAGE_LEN_FE] = message_for_benchmark(); + let slot: u32 = BENCHMARK_SLOT; -// let pub_keys_and_sigs: Vec<_> = (0..n_signatures) -// .into_par_iter() -// .map(|i| { -// let mut rng = StdRng::seed_from_u64(i as u64); -// let start = slot - 5; -// let end = slot + 5; -// let (sk, pk) = xmss_key_gen(rng.random(), start, end).unwrap(); -// let sig = xmss_sign(&mut rng, &sk, &message_hash, slot).unwrap(); -// xmss_verify(&pk, &message_hash, &sig).unwrap(); -// (pk, sig) -// }) -// .collect(); -// let (xmss_pub_keys, all_signatures): (Vec<_>, Vec<_>) = pub_keys_and_sigs.into_iter().unzip(); + let pub_keys_and_sigs_a: Vec<_> = (0..3) + .into_par_iter() + .map(|i| reconstruct_signer_for_benchmark(i, find_randomness_for_benchmark(i))) + .collect(); + let aggregated_a = aggregate( + &[], + pub_keys_and_sigs_a, + &message, + slot, + log_inv_rate, + prox_gaps_conjecture, + false, + ); -// let log_inv_rate = 1; -// let prox_gaps_conjecture = false; -// let proof = xmss_aggregate_signatures( -// &xmss_pub_keys, -// &all_signatures, -// message_hash, -// slot, -// log_inv_rate, -// prox_gaps_conjecture, -// ) -// .unwrap(); -// xmss_verify_aggregated_signatures( -// &xmss_pub_keys, -// message_hash, -// &proof, -// slot, -// log_inv_rate, -// prox_gaps_conjecture, -// ) -// .unwrap(); -// } -// } + let pub_keys_and_sigs_b: Vec<_> = (3..5) + .into_par_iter() + .map(|i| reconstruct_signer_for_benchmark(i, find_randomness_for_benchmark(i))) + .collect(); + let aggregated_b = aggregate( + &[], + pub_keys_and_sigs_b, + &message, + slot, + log_inv_rate, + prox_gaps_conjecture, + false, + ); + + let pub_keys_and_sigs_c: Vec<_> = (5..6) + .into_par_iter() + .map(|i| reconstruct_signer_for_benchmark(i, find_randomness_for_benchmark(i))) + .collect(); + + let aggregated_final = aggregate( + &[aggregated_a, aggregated_b], + pub_keys_and_sigs_c, + &message, + slot, + log_inv_rate, + prox_gaps_conjecture, + false, + ); + + verify_aggregation(&aggregated_final, &message, slot, prox_gaps_conjecture).unwrap(); + } +} diff --git a/src/main.rs b/src/main.rs index fe082fef..3cad6b2f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -37,6 +37,12 @@ enum Cli { #[arg(long, help = "Enable tracing")] tracing: bool, }, + #[command(about = "Run a fancy aggregation topology")] + FancyAggregation { + // TODO use the latest results (i.e. update the conjecture) + #[arg(long, help = "Uses Conjecture 4.12 from WHIR (up to capacity)")] + prox_gaps_conjecture: bool, + }, } fn main() { @@ -82,5 +88,46 @@ fn main() { } => { benchmark_prove_poseidon_16(log_count, tracing); } + Cli::FancyAggregation { prox_gaps_conjecture } => { + let topology = AggregationTopology { + raw_xmss: 10, + children: vec![AggregationTopology { + raw_xmss: 0, + children: vec![ + AggregationTopology { + raw_xmss: 10, + children: vec![AggregationTopology { + raw_xmss: 25, + children: vec![ + AggregationTopology { + raw_xmss: 1350, + children: vec![], + log_inv_rate: 1, + }; + 3 + ], + log_inv_rate: 1, + }], + log_inv_rate: 3, + }, + AggregationTopology { + raw_xmss: 0, + children: vec![ + AggregationTopology { + raw_xmss: 1350, + children: vec![], + log_inv_rate: 2, + }; + 2 + ], + log_inv_rate: 2, + }, + ], + log_inv_rate: 1, + }], + log_inv_rate: 4, + }; + run_aggregation_benchmark(&topology, 5, prox_gaps_conjecture, false); + } } } From 87cb071adbf1d37127b850a61ac59903d09307f3 Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sun, 15 Feb 2026 01:12:27 +0400 Subject: [PATCH 15/17] readme --- README.md | 15 +++++++++++++-- misc/images/rec-agg.png | Bin 0 -> 221534 bytes 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 misc/images/rec-agg.png diff --git a/README.md b/README.md index 68cc6cd3..4bae149b 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Machine: M4 Max 48GB (CPU only) ### XMSS aggregation -``` +```bash cargo run --release -- xmss --n-signatures 1350 ``` @@ -43,7 +43,7 @@ cargo run --release -- xmss --n-signatures 1350 ### Recursion -``` +```bash cargo run --release -- recursion --n 2 ``` @@ -53,6 +53,17 @@ cargo run --release -- recursion --n 2 | --------------- | --------------- | | 1.10s - 223 KiB | 1.05s - 134 KiB | + +### Bonus: unbounded recursive aggregation + +```bash +cargo run --release -- fancy-aggregation +``` + +![Recursive aggregation](./misc/images/rec-agg.png) + +(Proven regime) + ## Credits - [Plonky3](https://github.com/Plonky3/Plonky3) for its various performant crates diff --git a/misc/images/rec-agg.png b/misc/images/rec-agg.png new file mode 100644 index 0000000000000000000000000000000000000000..acdbedffceb7fa7027c4fa2d22898121860e9ead GIT binary patch literal 221534 zcmeFZcQ{<%+BdERi71JPL>EC2M2}8HbP|GymPD_kGc#(M6us9$h!SO@moX%fL^t}V zqZER?Kq*_jDYWKC&)VS_@f$W`J?MO&�JHD)xM*8>9ulq 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

      3FE#xncHjC$Qy@-25{?5=n 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 literal 0 HcmV?d00001 From 8df2a277fed1a61f41adad3422673cddbab9096e Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sun, 15 Feb 2026 01:51:37 +0400 Subject: [PATCH 16/17] wip --- crates/sub_protocols/src/stacked_pcs.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/sub_protocols/src/stacked_pcs.rs b/crates/sub_protocols/src/stacked_pcs.rs index edaeb7de..1700a82c 100644 --- a/crates/sub_protocols/src/stacked_pcs.rs +++ b/crates/sub_protocols/src/stacked_pcs.rs @@ -38,7 +38,6 @@ pub struct StackedPcsWitness { pub global_polynomial: MleOwned, } -#[instrument(skip_all)] pub fn stacked_pcs_global_statements( stacked_n_vars: VarCount, memory_n_vars: VarCount, From 2fafc8861dd122c4dce8ce1b12327873b0137ac4 Mon Sep 17 00:00:00 2001 From: Tom Wambsgans Date: Sun, 15 Feb 2026 01:54:57 +0400 Subject: [PATCH 17/17] clippy --- crates/rec_aggregation/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/rec_aggregation/src/lib.rs b/crates/rec_aggregation/src/lib.rs index 4d0998c9..68e578d8 100644 --- a/crates/rec_aggregation/src/lib.rs +++ b/crates/rec_aggregation/src/lib.rs @@ -154,7 +154,7 @@ pub fn aggregate( prox_gaps_conjecture: bool, tracing: bool, ) -> AggregatedSigs { - raw_xmss.sort_by(|(a, _), (b, _)| Digest(a.merkle_root).cmp(&Digest(b.merkle_root))); + raw_xmss.sort_by_key(|(a, _)| Digest(a.merkle_root)); raw_xmss.dedup_by(|(a, _), (b, _)| a.merkle_root == b.merkle_root); let n_recursions = children.len();