From 3ae439c46bb1ca423ab59d32f927abd06686ab83 Mon Sep 17 00:00:00 2001 From: Bartosz Nowak Date: Thu, 12 Sep 2024 16:20:36 +0200 Subject: [PATCH] split monolith missing layouts --- src/air/layouts/starknet.cairo | 95 +- src/air/layouts/starknet/autogenerated.cairo | 1694 +- src/air/layouts/starknet/contract.cairo | 122 +- src/air/layouts/starknet_with_keccak.cairo | 101 +- .../starknet_with_keccak/autogenerated.cairo | 16563 +++++++++++++++- .../starknet_with_keccak/contract.cairo | 591 +- 6 files changed, 17884 insertions(+), 1282 deletions(-) diff --git a/src/air/layouts/starknet.cairo b/src/air/layouts/starknet.cairo index 4a479bc3a..6a30e09a9 100644 --- a/src/air/layouts/starknet.cairo +++ b/src/air/layouts/starknet.cairo @@ -36,6 +36,78 @@ use cairo_verifier::{ }; use starknet::ContractAddress; +#[cfg(feature: 'monolith')] +use cairo_verifier::air::layouts::starknet::autogenerated::{ + eval_composition_polynomial_inner as eval_composition_polynomial_inner_, + eval_oods_polynomial_inner as eval_oods_polynomial_inner_, +}; + +#[cfg(feature: 'monolith')] +fn eval_composition_polynomial_inner( + mask_values: Span, + constraint_coefficients: Span, + point: felt252, + trace_generator: felt252, + global_values: GlobalValues, + contract_address: ContractAddress, +) -> felt252 { + eval_composition_polynomial_inner_( + mask_values, constraint_coefficients, point, trace_generator, global_values + ) +} + +#[cfg(feature: 'monolith')] +fn eval_oods_polynomial_inner( + column_values: Span, + oods_values: Span, + constraint_coefficients: Span, + point: felt252, + oods_point: felt252, + trace_generator: felt252, + contract_address: ContractAddress, +) -> felt252 { + eval_oods_polynomial_inner_( + column_values, oods_values, constraint_coefficients, point, oods_point, trace_generator, + ) +} + +#[cfg(feature: 'split')] +use cairo_verifier::air::layouts::starknet::contract::{ + ILayoutCompositionContractDispatcher, ILayoutCompositionContractDispatcherTrait, + ILayoutOodsContractDispatcher, ILayoutOodsContractDispatcherTrait, +}; + +#[cfg(feature: 'split')] +fn eval_composition_polynomial_inner( + mask_values: Span, + constraint_coefficients: Span, + point: felt252, + trace_generator: felt252, + global_values: GlobalValues, + contract_address: ContractAddress, +) -> felt252 { + ILayoutCompositionContractDispatcher { contract_address } + .eval_composition_polynomial_inner( + mask_values, constraint_coefficients, point, trace_generator, global_values + ) +} + +#[cfg(feature: 'split')] +fn eval_oods_polynomial_inner( + column_values: Span, + oods_values: Span, + constraint_coefficients: Span, + point: felt252, + oods_point: felt252, + trace_generator: felt252, + contract_address: ContractAddress, +) -> felt252 { + ILayoutOodsContractDispatcher { contract_address } + .eval_oods_polynomial_inner( + column_values, oods_values, constraint_coefficients, point, oods_point, trace_generator, + ) +} + impl StarknetAIRCompositionImpl of AIRComposition { fn eval_composition_polynomial( interaction_elements: InteractionElements, @@ -145,10 +217,13 @@ impl StarknetAIRCompositionImpl of AIRComposition felt252 { - IStarknetLayoutContract2Dispatcher { - contract_address: contract_address_2 - }.eval_oods_polynomial_inner( - column_values, oods_values, constraint_coefficients, point, oods_point, trace_generator, + eval_oods_polynomial_inner( + column_values, + oods_values, + constraint_coefficients, + point, + oods_point, + trace_generator, + contract_address, ) } } diff --git a/src/air/layouts/starknet/autogenerated.cairo b/src/air/layouts/starknet/autogenerated.cairo index 38059dd51..1ac0c4b03 100644 --- a/src/air/layouts/starknet/autogenerated.cairo +++ b/src/air/layouts/starknet/autogenerated.cairo @@ -6,8 +6,1700 @@ use cairo_verifier::{ common::math::{Felt252Div, pow}, }; +#[cfg(feature: 'monolith')] +fn eval_composition_polynomial_inner( + mut mask_values: Span, + mut constraint_coefficients: Span, + point: felt252, + trace_generator: felt252, + global_values: GlobalValues +) -> felt252 { + // Compute powers. + let pow0 = pow(point, global_values.trace_length / 32768); + let pow1 = pow0 * pow0; // pow(point, (safe_div(global_values.trace_length, 16384))). + let pow2 = pow(point, global_values.trace_length / 1024); + let pow3 = pow2 * pow2; // pow(point, (safe_div(global_values.trace_length, 512))). + let pow4 = pow3 * pow3; // pow(point, (safe_div(global_values.trace_length, 256))). + let pow5 = pow4 * pow4; // pow(point, (safe_div(global_values.trace_length, 128))). + let pow6 = pow5 * pow5; // pow(point, (safe_div(global_values.trace_length, 64))). + let pow7 = pow(point, global_values.trace_length / 16); + let pow8 = pow7 * pow7; // pow(point, (safe_div(global_values.trace_length, 8))). + let pow9 = pow8 * pow8; // pow(point, (safe_div(global_values.trace_length, 4))). + let pow10 = pow9 * pow9; // pow(point, (safe_div(global_values.trace_length, 2))). + let pow11 = pow10 * pow10; // pow(point, global_values.trace_length). + let pow12 = pow(trace_generator, global_values.trace_length - 16384); + let pow13 = pow(trace_generator, global_values.trace_length - 1024); + let pow14 = pow(trace_generator, global_values.trace_length - 32768); + let pow15 = pow(trace_generator, global_values.trace_length - 256); + let pow16 = pow(trace_generator, global_values.trace_length - 512); + let pow17 = pow(trace_generator, global_values.trace_length - 8); + let pow18 = pow(trace_generator, global_values.trace_length - 4); + let pow19 = pow(trace_generator, global_values.trace_length - 2); + let pow20 = pow(trace_generator, global_values.trace_length - 16); + let pow21 = pow(trace_generator, 251 * global_values.trace_length / 256); + let pow22 = pow(trace_generator, global_values.trace_length / 64); + let pow23 = pow22 * pow22; // pow(trace_generator, (safe_div(global_values.trace_length, 32))). + let pow24 = pow22 + * pow23; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 64))). + let pow25 = pow22 * pow24; // pow(trace_generator, (safe_div(global_values.trace_length, 16))). + let pow26 = pow22 + * pow25; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 64))). + let pow27 = pow22 + * pow26; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 32))). + let pow28 = pow22 + * pow27; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 64))). + let pow29 = pow22 * pow28; // pow(trace_generator, (safe_div(global_values.trace_length, 8))). + let pow30 = pow22 + * pow29; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 64))). + let pow31 = pow22 + * pow30; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 32))). + let pow32 = pow22 + * pow31; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 64))). + let pow33 = pow22 + * pow32; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 16))). + let pow34 = pow22 + * pow33; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 64))). + let pow35 = pow22 + * pow34; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 32))). + let pow36 = pow22 + * pow35; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 64))). + let pow37 = pow(trace_generator, global_values.trace_length / 2); + let pow38 = pow27 + * pow37; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 32))). + let pow39 = pow23 + * pow38; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 8))). + let pow40 = pow23 + * pow39; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 32))). + let pow41 = pow23 + * pow40; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 16))). + let pow42 = pow23 + * pow41; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 32))). + let pow43 = pow23 + * pow42; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 4))). + let pow44 = pow23 + * pow43; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 32))). + let pow45 = pow23 + * pow44; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 16))). + let pow46 = pow23 + * pow45; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 32))). + let pow47 = pow23 + * pow46; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 8))). + let pow48 = pow23 + * pow47; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 32))). + let pow49 = pow21 + * pow22; // pow(trace_generator, (safe_div((safe_mult(255, global_values.trace_length)), 256))). + let pow50 = pow23 + * pow48; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 16))). + let pow51 = pow22 + * pow50; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 64))). + let pow52 = pow22 + * pow51; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 32))). + let pow53 = pow22 + * pow52; // pow(trace_generator, (safe_div((safe_mult(63, global_values.trace_length)), 64))). + + // Compute domains. + let domain0 = pow11 - 1; + let domain1 = pow10 - 1; + let domain2 = pow9 - 1; + let domain3 = pow8 - 1; + let domain4 = pow7 - pow50; + let domain5 = pow7 - 1; + let domain6 = pow6 - 1; + let domain7 = pow5 - 1; + let domain8 = pow4 - 1; + let domain9 = pow4 - pow49; + let domain10 = pow4 - pow53; + let domain11 = pow4 - pow43; + let domain12 = pow3 - pow37; + let domain13 = pow3 - 1; + let domain14 = pow3 - pow52; + let temp = pow3 - pow41; + let temp = temp * (pow3 - pow42); + let temp = temp * (pow3 - pow43); + let temp = temp * (pow3 - pow44); + let temp = temp * (pow3 - pow45); + let temp = temp * (pow3 - pow46); + let temp = temp * (pow3 - pow47); + let temp = temp * (pow3 - pow48); + let temp = temp * (pow3 - pow50); + let domain15 = temp * (domain14); + let temp = pow3 - pow51; + let temp = temp * (pow3 - pow53); + let domain16 = temp * (domain14); + let temp = pow3 - pow38; + let temp = temp * (pow3 - pow39); + let temp = temp * (pow3 - pow40); + let domain17 = temp * (domain15); + let domain18 = pow2 - pow43; + let domain19 = pow2 - 1; + let temp = pow2 - pow22; + let temp = temp * (pow2 - pow23); + let temp = temp * (pow2 - pow24); + let temp = temp * (pow2 - pow25); + let temp = temp * (pow2 - pow26); + let temp = temp * (pow2 - pow27); + let temp = temp * (pow2 - pow28); + let temp = temp * (pow2 - pow29); + let temp = temp * (pow2 - pow30); + let temp = temp * (pow2 - pow31); + let temp = temp * (pow2 - pow32); + let temp = temp * (pow2 - pow33); + let temp = temp * (pow2 - pow34); + let temp = temp * (pow2 - pow35); + let temp = temp * (pow2 - pow36); + let domain20 = temp * (domain19); + let domain21 = pow1 - pow49; + let domain22 = pow1 - pow21; + let domain23 = pow1 - 1; + let domain24 = pow1 - pow53; + let domain25 = pow0 - pow49; + let domain26 = pow0 - pow21; + let domain27 = pow0 - 1; + let domain28 = point - pow20; + let domain29 = point - 1; + let domain30 = point - pow19; + let domain31 = point - pow18; + let domain32 = point - pow17; + let domain33 = point - pow16; + let domain34 = point - pow15; + let domain35 = point - pow14; + let domain36 = point - pow13; + let domain37 = point - pow12; + + // Fetch mask variables. + let column0_row0 = *mask_values.pop_front().unwrap(); + let column0_row1 = *mask_values.pop_front().unwrap(); + let column0_row2 = *mask_values.pop_front().unwrap(); + let column0_row3 = *mask_values.pop_front().unwrap(); + let column0_row4 = *mask_values.pop_front().unwrap(); + let column0_row5 = *mask_values.pop_front().unwrap(); + let column0_row6 = *mask_values.pop_front().unwrap(); + let column0_row7 = *mask_values.pop_front().unwrap(); + let column0_row8 = *mask_values.pop_front().unwrap(); + let column0_row9 = *mask_values.pop_front().unwrap(); + let column0_row10 = *mask_values.pop_front().unwrap(); + let column0_row11 = *mask_values.pop_front().unwrap(); + let column0_row12 = *mask_values.pop_front().unwrap(); + let column0_row13 = *mask_values.pop_front().unwrap(); + let column0_row14 = *mask_values.pop_front().unwrap(); + let column0_row15 = *mask_values.pop_front().unwrap(); + let column1_row0 = *mask_values.pop_front().unwrap(); + let column1_row1 = *mask_values.pop_front().unwrap(); + let column1_row255 = *mask_values.pop_front().unwrap(); + let column1_row256 = *mask_values.pop_front().unwrap(); + let column1_row511 = *mask_values.pop_front().unwrap(); + let column2_row0 = *mask_values.pop_front().unwrap(); + let column2_row1 = *mask_values.pop_front().unwrap(); + let column2_row255 = *mask_values.pop_front().unwrap(); + let column2_row256 = *mask_values.pop_front().unwrap(); + let column3_row0 = *mask_values.pop_front().unwrap(); + let column3_row1 = *mask_values.pop_front().unwrap(); + let column3_row192 = *mask_values.pop_front().unwrap(); + let column3_row193 = *mask_values.pop_front().unwrap(); + let column3_row196 = *mask_values.pop_front().unwrap(); + let column3_row197 = *mask_values.pop_front().unwrap(); + let column3_row251 = *mask_values.pop_front().unwrap(); + let column3_row252 = *mask_values.pop_front().unwrap(); + let column3_row256 = *mask_values.pop_front().unwrap(); + let column4_row0 = *mask_values.pop_front().unwrap(); + let column4_row255 = *mask_values.pop_front().unwrap(); + let column5_row0 = *mask_values.pop_front().unwrap(); + let column5_row1 = *mask_values.pop_front().unwrap(); + let column5_row2 = *mask_values.pop_front().unwrap(); + let column5_row3 = *mask_values.pop_front().unwrap(); + let column5_row4 = *mask_values.pop_front().unwrap(); + let column5_row5 = *mask_values.pop_front().unwrap(); + let column5_row6 = *mask_values.pop_front().unwrap(); + let column5_row7 = *mask_values.pop_front().unwrap(); + let column5_row8 = *mask_values.pop_front().unwrap(); + let column5_row9 = *mask_values.pop_front().unwrap(); + let column5_row12 = *mask_values.pop_front().unwrap(); + let column5_row13 = *mask_values.pop_front().unwrap(); + let column5_row16 = *mask_values.pop_front().unwrap(); + let column5_row38 = *mask_values.pop_front().unwrap(); + let column5_row39 = *mask_values.pop_front().unwrap(); + let column5_row70 = *mask_values.pop_front().unwrap(); + let column5_row71 = *mask_values.pop_front().unwrap(); + let column5_row102 = *mask_values.pop_front().unwrap(); + let column5_row103 = *mask_values.pop_front().unwrap(); + let column5_row134 = *mask_values.pop_front().unwrap(); + let column5_row135 = *mask_values.pop_front().unwrap(); + let column5_row166 = *mask_values.pop_front().unwrap(); + let column5_row167 = *mask_values.pop_front().unwrap(); + let column5_row198 = *mask_values.pop_front().unwrap(); + let column5_row199 = *mask_values.pop_front().unwrap(); + let column5_row262 = *mask_values.pop_front().unwrap(); + let column5_row263 = *mask_values.pop_front().unwrap(); + let column5_row294 = *mask_values.pop_front().unwrap(); + let column5_row295 = *mask_values.pop_front().unwrap(); + let column5_row326 = *mask_values.pop_front().unwrap(); + let column5_row358 = *mask_values.pop_front().unwrap(); + let column5_row359 = *mask_values.pop_front().unwrap(); + let column5_row390 = *mask_values.pop_front().unwrap(); + let column5_row391 = *mask_values.pop_front().unwrap(); + let column5_row422 = *mask_values.pop_front().unwrap(); + let column5_row423 = *mask_values.pop_front().unwrap(); + let column5_row454 = *mask_values.pop_front().unwrap(); + let column5_row518 = *mask_values.pop_front().unwrap(); + let column5_row711 = *mask_values.pop_front().unwrap(); + let column5_row902 = *mask_values.pop_front().unwrap(); + let column5_row903 = *mask_values.pop_front().unwrap(); + let column5_row966 = *mask_values.pop_front().unwrap(); + let column5_row967 = *mask_values.pop_front().unwrap(); + let column5_row1222 = *mask_values.pop_front().unwrap(); + let column5_row2438 = *mask_values.pop_front().unwrap(); + let column5_row2439 = *mask_values.pop_front().unwrap(); + let column5_row4486 = *mask_values.pop_front().unwrap(); + let column5_row4487 = *mask_values.pop_front().unwrap(); + let column5_row6534 = *mask_values.pop_front().unwrap(); + let column5_row6535 = *mask_values.pop_front().unwrap(); + let column5_row8582 = *mask_values.pop_front().unwrap(); + let column5_row8583 = *mask_values.pop_front().unwrap(); + let column5_row10630 = *mask_values.pop_front().unwrap(); + let column5_row10631 = *mask_values.pop_front().unwrap(); + let column5_row12678 = *mask_values.pop_front().unwrap(); + let column5_row12679 = *mask_values.pop_front().unwrap(); + let column5_row14726 = *mask_values.pop_front().unwrap(); + let column5_row14727 = *mask_values.pop_front().unwrap(); + let column5_row16774 = *mask_values.pop_front().unwrap(); + let column5_row16775 = *mask_values.pop_front().unwrap(); + let column5_row24966 = *mask_values.pop_front().unwrap(); + let column5_row33158 = *mask_values.pop_front().unwrap(); + let column6_row0 = *mask_values.pop_front().unwrap(); + let column6_row1 = *mask_values.pop_front().unwrap(); + let column6_row2 = *mask_values.pop_front().unwrap(); + let column6_row3 = *mask_values.pop_front().unwrap(); + let column7_row0 = *mask_values.pop_front().unwrap(); + let column7_row1 = *mask_values.pop_front().unwrap(); + let column7_row2 = *mask_values.pop_front().unwrap(); + let column7_row3 = *mask_values.pop_front().unwrap(); + let column7_row4 = *mask_values.pop_front().unwrap(); + let column7_row5 = *mask_values.pop_front().unwrap(); + let column7_row6 = *mask_values.pop_front().unwrap(); + let column7_row7 = *mask_values.pop_front().unwrap(); + let column7_row8 = *mask_values.pop_front().unwrap(); + let column7_row9 = *mask_values.pop_front().unwrap(); + let column7_row11 = *mask_values.pop_front().unwrap(); + let column7_row12 = *mask_values.pop_front().unwrap(); + let column7_row13 = *mask_values.pop_front().unwrap(); + let column7_row15 = *mask_values.pop_front().unwrap(); + let column7_row17 = *mask_values.pop_front().unwrap(); + let column7_row19 = *mask_values.pop_front().unwrap(); + let column7_row23 = *mask_values.pop_front().unwrap(); + let column7_row27 = *mask_values.pop_front().unwrap(); + let column7_row33 = *mask_values.pop_front().unwrap(); + let column7_row44 = *mask_values.pop_front().unwrap(); + let column7_row49 = *mask_values.pop_front().unwrap(); + let column7_row65 = *mask_values.pop_front().unwrap(); + let column7_row76 = *mask_values.pop_front().unwrap(); + let column7_row81 = *mask_values.pop_front().unwrap(); + let column7_row97 = *mask_values.pop_front().unwrap(); + let column7_row108 = *mask_values.pop_front().unwrap(); + let column7_row113 = *mask_values.pop_front().unwrap(); + let column7_row129 = *mask_values.pop_front().unwrap(); + let column7_row140 = *mask_values.pop_front().unwrap(); + let column7_row145 = *mask_values.pop_front().unwrap(); + let column7_row161 = *mask_values.pop_front().unwrap(); + let column7_row172 = *mask_values.pop_front().unwrap(); + let column7_row177 = *mask_values.pop_front().unwrap(); + let column7_row193 = *mask_values.pop_front().unwrap(); + let column7_row204 = *mask_values.pop_front().unwrap(); + let column7_row209 = *mask_values.pop_front().unwrap(); + let column7_row225 = *mask_values.pop_front().unwrap(); + let column7_row236 = *mask_values.pop_front().unwrap(); + let column7_row241 = *mask_values.pop_front().unwrap(); + let column7_row257 = *mask_values.pop_front().unwrap(); + let column7_row265 = *mask_values.pop_front().unwrap(); + let column7_row491 = *mask_values.pop_front().unwrap(); + let column7_row499 = *mask_values.pop_front().unwrap(); + let column7_row507 = *mask_values.pop_front().unwrap(); + let column7_row513 = *mask_values.pop_front().unwrap(); + let column7_row521 = *mask_values.pop_front().unwrap(); + let column7_row705 = *mask_values.pop_front().unwrap(); + let column7_row721 = *mask_values.pop_front().unwrap(); + let column7_row737 = *mask_values.pop_front().unwrap(); + let column7_row753 = *mask_values.pop_front().unwrap(); + let column7_row769 = *mask_values.pop_front().unwrap(); + let column7_row777 = *mask_values.pop_front().unwrap(); + let column7_row961 = *mask_values.pop_front().unwrap(); + let column7_row977 = *mask_values.pop_front().unwrap(); + let column7_row993 = *mask_values.pop_front().unwrap(); + let column7_row1009 = *mask_values.pop_front().unwrap(); + let column8_row0 = *mask_values.pop_front().unwrap(); + let column8_row1 = *mask_values.pop_front().unwrap(); + let column8_row2 = *mask_values.pop_front().unwrap(); + let column8_row3 = *mask_values.pop_front().unwrap(); + let column8_row4 = *mask_values.pop_front().unwrap(); + let column8_row5 = *mask_values.pop_front().unwrap(); + let column8_row6 = *mask_values.pop_front().unwrap(); + let column8_row7 = *mask_values.pop_front().unwrap(); + let column8_row8 = *mask_values.pop_front().unwrap(); + let column8_row9 = *mask_values.pop_front().unwrap(); + let column8_row10 = *mask_values.pop_front().unwrap(); + let column8_row11 = *mask_values.pop_front().unwrap(); + let column8_row12 = *mask_values.pop_front().unwrap(); + let column8_row13 = *mask_values.pop_front().unwrap(); + let column8_row14 = *mask_values.pop_front().unwrap(); + let column8_row16 = *mask_values.pop_front().unwrap(); + let column8_row17 = *mask_values.pop_front().unwrap(); + let column8_row19 = *mask_values.pop_front().unwrap(); + let column8_row21 = *mask_values.pop_front().unwrap(); + let column8_row22 = *mask_values.pop_front().unwrap(); + let column8_row24 = *mask_values.pop_front().unwrap(); + let column8_row25 = *mask_values.pop_front().unwrap(); + let column8_row27 = *mask_values.pop_front().unwrap(); + let column8_row29 = *mask_values.pop_front().unwrap(); + let column8_row30 = *mask_values.pop_front().unwrap(); + let column8_row33 = *mask_values.pop_front().unwrap(); + let column8_row35 = *mask_values.pop_front().unwrap(); + let column8_row37 = *mask_values.pop_front().unwrap(); + let column8_row38 = *mask_values.pop_front().unwrap(); + let column8_row41 = *mask_values.pop_front().unwrap(); + let column8_row43 = *mask_values.pop_front().unwrap(); + let column8_row45 = *mask_values.pop_front().unwrap(); + let column8_row46 = *mask_values.pop_front().unwrap(); + let column8_row49 = *mask_values.pop_front().unwrap(); + let column8_row51 = *mask_values.pop_front().unwrap(); + let column8_row53 = *mask_values.pop_front().unwrap(); + let column8_row54 = *mask_values.pop_front().unwrap(); + let column8_row57 = *mask_values.pop_front().unwrap(); + let column8_row59 = *mask_values.pop_front().unwrap(); + let column8_row61 = *mask_values.pop_front().unwrap(); + let column8_row65 = *mask_values.pop_front().unwrap(); + let column8_row69 = *mask_values.pop_front().unwrap(); + let column8_row71 = *mask_values.pop_front().unwrap(); + let column8_row73 = *mask_values.pop_front().unwrap(); + let column8_row77 = *mask_values.pop_front().unwrap(); + let column8_row81 = *mask_values.pop_front().unwrap(); + let column8_row85 = *mask_values.pop_front().unwrap(); + let column8_row89 = *mask_values.pop_front().unwrap(); + let column8_row91 = *mask_values.pop_front().unwrap(); + let column8_row97 = *mask_values.pop_front().unwrap(); + let column8_row101 = *mask_values.pop_front().unwrap(); + let column8_row105 = *mask_values.pop_front().unwrap(); + let column8_row109 = *mask_values.pop_front().unwrap(); + let column8_row113 = *mask_values.pop_front().unwrap(); + let column8_row117 = *mask_values.pop_front().unwrap(); + let column8_row123 = *mask_values.pop_front().unwrap(); + let column8_row155 = *mask_values.pop_front().unwrap(); + let column8_row187 = *mask_values.pop_front().unwrap(); + let column8_row195 = *mask_values.pop_front().unwrap(); + let column8_row205 = *mask_values.pop_front().unwrap(); + let column8_row219 = *mask_values.pop_front().unwrap(); + let column8_row221 = *mask_values.pop_front().unwrap(); + let column8_row237 = *mask_values.pop_front().unwrap(); + let column8_row245 = *mask_values.pop_front().unwrap(); + let column8_row253 = *mask_values.pop_front().unwrap(); + let column8_row269 = *mask_values.pop_front().unwrap(); + let column8_row301 = *mask_values.pop_front().unwrap(); + let column8_row309 = *mask_values.pop_front().unwrap(); + let column8_row310 = *mask_values.pop_front().unwrap(); + let column8_row318 = *mask_values.pop_front().unwrap(); + let column8_row326 = *mask_values.pop_front().unwrap(); + let column8_row334 = *mask_values.pop_front().unwrap(); + let column8_row342 = *mask_values.pop_front().unwrap(); + let column8_row350 = *mask_values.pop_front().unwrap(); + let column8_row451 = *mask_values.pop_front().unwrap(); + let column8_row461 = *mask_values.pop_front().unwrap(); + let column8_row477 = *mask_values.pop_front().unwrap(); + let column8_row493 = *mask_values.pop_front().unwrap(); + let column8_row501 = *mask_values.pop_front().unwrap(); + let column8_row509 = *mask_values.pop_front().unwrap(); + let column8_row12309 = *mask_values.pop_front().unwrap(); + let column8_row12373 = *mask_values.pop_front().unwrap(); + let column8_row12565 = *mask_values.pop_front().unwrap(); + let column8_row12629 = *mask_values.pop_front().unwrap(); + let column8_row16085 = *mask_values.pop_front().unwrap(); + let column8_row16149 = *mask_values.pop_front().unwrap(); + let column8_row16325 = *mask_values.pop_front().unwrap(); + let column8_row16331 = *mask_values.pop_front().unwrap(); + let column8_row16337 = *mask_values.pop_front().unwrap(); + let column8_row16339 = *mask_values.pop_front().unwrap(); + let column8_row16355 = *mask_values.pop_front().unwrap(); + let column8_row16357 = *mask_values.pop_front().unwrap(); + let column8_row16363 = *mask_values.pop_front().unwrap(); + let column8_row16369 = *mask_values.pop_front().unwrap(); + let column8_row16371 = *mask_values.pop_front().unwrap(); + let column8_row16385 = *mask_values.pop_front().unwrap(); + let column8_row16417 = *mask_values.pop_front().unwrap(); + let column8_row32647 = *mask_values.pop_front().unwrap(); + let column8_row32667 = *mask_values.pop_front().unwrap(); + let column8_row32715 = *mask_values.pop_front().unwrap(); + let column8_row32721 = *mask_values.pop_front().unwrap(); + let column8_row32731 = *mask_values.pop_front().unwrap(); + let column8_row32747 = *mask_values.pop_front().unwrap(); + let column8_row32753 = *mask_values.pop_front().unwrap(); + let column8_row32763 = *mask_values.pop_front().unwrap(); + let column9_inter1_row0 = *mask_values.pop_front().unwrap(); + let column9_inter1_row1 = *mask_values.pop_front().unwrap(); + let column9_inter1_row2 = *mask_values.pop_front().unwrap(); + let column9_inter1_row3 = *mask_values.pop_front().unwrap(); + let column9_inter1_row5 = *mask_values.pop_front().unwrap(); + let column9_inter1_row7 = *mask_values.pop_front().unwrap(); + let column9_inter1_row11 = *mask_values.pop_front().unwrap(); + let column9_inter1_row15 = *mask_values.pop_front().unwrap(); + + // Compute intermediate values. + let cpu_decode_opcode_range_check_bit_0 = column0_row0 - (column0_row1 + column0_row1); + let cpu_decode_opcode_range_check_bit_2 = column0_row2 - (column0_row3 + column0_row3); + let cpu_decode_opcode_range_check_bit_4 = column0_row4 - (column0_row5 + column0_row5); + let cpu_decode_opcode_range_check_bit_3 = column0_row3 - (column0_row4 + column0_row4); + let cpu_decode_flag_op1_base_op0_0 = 1 + - (cpu_decode_opcode_range_check_bit_2 + + cpu_decode_opcode_range_check_bit_4 + + cpu_decode_opcode_range_check_bit_3); + let cpu_decode_opcode_range_check_bit_5 = column0_row5 - (column0_row6 + column0_row6); + let cpu_decode_opcode_range_check_bit_6 = column0_row6 - (column0_row7 + column0_row7); + let cpu_decode_opcode_range_check_bit_9 = column0_row9 - (column0_row10 + column0_row10); + let cpu_decode_flag_res_op1_0 = 1 + - (cpu_decode_opcode_range_check_bit_5 + + cpu_decode_opcode_range_check_bit_6 + + cpu_decode_opcode_range_check_bit_9); + let cpu_decode_opcode_range_check_bit_7 = column0_row7 - (column0_row8 + column0_row8); + let cpu_decode_opcode_range_check_bit_8 = column0_row8 - (column0_row9 + column0_row9); + let cpu_decode_flag_pc_update_regular_0 = 1 + - (cpu_decode_opcode_range_check_bit_7 + + cpu_decode_opcode_range_check_bit_8 + + cpu_decode_opcode_range_check_bit_9); + let cpu_decode_opcode_range_check_bit_12 = column0_row12 - (column0_row13 + column0_row13); + let cpu_decode_opcode_range_check_bit_13 = column0_row13 - (column0_row14 + column0_row14); + let cpu_decode_fp_update_regular_0 = 1 + - (cpu_decode_opcode_range_check_bit_12 + cpu_decode_opcode_range_check_bit_13); + let cpu_decode_opcode_range_check_bit_1 = column0_row1 - (column0_row2 + column0_row2); + let npc_reg_0 = column5_row0 + cpu_decode_opcode_range_check_bit_2 + 1; + let cpu_decode_opcode_range_check_bit_10 = column0_row10 - (column0_row11 + column0_row11); + let cpu_decode_opcode_range_check_bit_11 = column0_row11 - (column0_row12 + column0_row12); + let cpu_decode_opcode_range_check_bit_14 = column0_row14 - (column0_row15 + column0_row15); + let memory_address_diff_0 = column6_row2 - column6_row0; + let range_check16_diff_0 = column7_row6 - column7_row2; + let pedersen_hash0_ec_subset_sum_bit_0 = column3_row0 - (column3_row1 + column3_row1); + let pedersen_hash0_ec_subset_sum_bit_neg_0 = 1 - pedersen_hash0_ec_subset_sum_bit_0; + let range_check_builtin_value0_0 = column7_row12; + let range_check_builtin_value1_0 = range_check_builtin_value0_0 * global_values.offset_size + + column7_row44; + let range_check_builtin_value2_0 = range_check_builtin_value1_0 * global_values.offset_size + + column7_row76; + let range_check_builtin_value3_0 = range_check_builtin_value2_0 * global_values.offset_size + + column7_row108; + let range_check_builtin_value4_0 = range_check_builtin_value3_0 * global_values.offset_size + + column7_row140; + let range_check_builtin_value5_0 = range_check_builtin_value4_0 * global_values.offset_size + + column7_row172; + let range_check_builtin_value6_0 = range_check_builtin_value5_0 * global_values.offset_size + + column7_row204; + let range_check_builtin_value7_0 = range_check_builtin_value6_0 * global_values.offset_size + + column7_row236; + let ecdsa_signature0_doubling_key_x_squared = column8_row1 * column8_row1; + let ecdsa_signature0_exponentiate_generator_bit_0 = column8_row59 + - (column8_row187 + column8_row187); + let ecdsa_signature0_exponentiate_generator_bit_neg_0 = 1 + - ecdsa_signature0_exponentiate_generator_bit_0; + let ecdsa_signature0_exponentiate_key_bit_0 = column8_row9 - (column8_row73 + column8_row73); + let ecdsa_signature0_exponentiate_key_bit_neg_0 = 1 - ecdsa_signature0_exponentiate_key_bit_0; + let bitwise_sum_var_0_0 = column7_row1 + + column7_row17 * 2 + + column7_row33 * 4 + + column7_row49 * 8 + + column7_row65 * 18446744073709551616 + + column7_row81 * 36893488147419103232 + + column7_row97 * 73786976294838206464 + + column7_row113 * 147573952589676412928; + let bitwise_sum_var_8_0 = column7_row129 * 340282366920938463463374607431768211456 + + column7_row145 * 680564733841876926926749214863536422912 + + column7_row161 * 1361129467683753853853498429727072845824 + + column7_row177 * 2722258935367507707706996859454145691648 + + column7_row193 * 6277101735386680763835789423207666416102355444464034512896 + + column7_row209 * 12554203470773361527671578846415332832204710888928069025792 + + column7_row225 * 25108406941546723055343157692830665664409421777856138051584 + + column7_row241 * 50216813883093446110686315385661331328818843555712276103168; + let ec_op_doubling_q_x_squared_0 = column8_row41 * column8_row41; + let ec_op_ec_subset_sum_bit_0 = column8_row21 - (column8_row85 + column8_row85); + let ec_op_ec_subset_sum_bit_neg_0 = 1 - ec_op_ec_subset_sum_bit_0; + let poseidon_poseidon_full_rounds_state0_cubed_0 = column8_row53 * column8_row29; + let poseidon_poseidon_full_rounds_state1_cubed_0 = column8_row13 * column8_row61; + let poseidon_poseidon_full_rounds_state2_cubed_0 = column8_row45 * column8_row3; + let poseidon_poseidon_full_rounds_state0_cubed_7 = column8_row501 * column8_row477; + let poseidon_poseidon_full_rounds_state1_cubed_7 = column8_row461 * column8_row509; + let poseidon_poseidon_full_rounds_state2_cubed_7 = column8_row493 * column8_row451; + let poseidon_poseidon_full_rounds_state0_cubed_3 = column8_row245 * column8_row221; + let poseidon_poseidon_full_rounds_state1_cubed_3 = column8_row205 * column8_row253; + let poseidon_poseidon_full_rounds_state2_cubed_3 = column8_row237 * column8_row195; + let poseidon_poseidon_partial_rounds_state0_cubed_0 = column7_row3 * column7_row7; + let poseidon_poseidon_partial_rounds_state0_cubed_1 = column7_row11 * column7_row15; + let poseidon_poseidon_partial_rounds_state0_cubed_2 = column7_row19 * column7_row23; + let poseidon_poseidon_partial_rounds_state1_cubed_0 = column8_row6 * column8_row14; + let poseidon_poseidon_partial_rounds_state1_cubed_1 = column8_row22 * column8_row30; + let poseidon_poseidon_partial_rounds_state1_cubed_2 = column8_row38 * column8_row46; + let poseidon_poseidon_partial_rounds_state1_cubed_19 = column8_row310 * column8_row318; + let poseidon_poseidon_partial_rounds_state1_cubed_20 = column8_row326 * column8_row334; + let poseidon_poseidon_partial_rounds_state1_cubed_21 = column8_row342 * column8_row350; + + // Sum constraints. + let total_sum = 0; + + // Constraint: cpu/decode/opcode_range_check/bit. + let value = (cpu_decode_opcode_range_check_bit_0 * cpu_decode_opcode_range_check_bit_0 + - cpu_decode_opcode_range_check_bit_0) + * domain4 + / domain0; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/decode/opcode_range_check/zero. + let value = (column0_row0) / domain4; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/decode/opcode_range_check_input. + let value = (column5_row1 + - (((column0_row0 * global_values.offset_size + column7_row4) * global_values.offset_size + + column7_row8) + * global_values.offset_size + + column7_row0)) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/decode/flag_op1_base_op0_bit. + let value = (cpu_decode_flag_op1_base_op0_0 * cpu_decode_flag_op1_base_op0_0 + - cpu_decode_flag_op1_base_op0_0) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/decode/flag_res_op1_bit. + let value = (cpu_decode_flag_res_op1_0 * cpu_decode_flag_res_op1_0 - cpu_decode_flag_res_op1_0) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/decode/flag_pc_update_regular_bit. + let value = (cpu_decode_flag_pc_update_regular_0 * cpu_decode_flag_pc_update_regular_0 + - cpu_decode_flag_pc_update_regular_0) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/decode/fp_update_regular_bit. + let value = (cpu_decode_fp_update_regular_0 * cpu_decode_fp_update_regular_0 + - cpu_decode_fp_update_regular_0) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/operands/mem_dst_addr. + let value = (column5_row8 + + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_0 * column8_row8 + + (1 - cpu_decode_opcode_range_check_bit_0) * column8_row0 + + column7_row0)) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/operands/mem0_addr. + let value = (column5_row4 + + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_1 * column8_row8 + + (1 - cpu_decode_opcode_range_check_bit_1) * column8_row0 + + column7_row8)) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/operands/mem1_addr. + let value = (column5_row12 + + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_2 * column5_row0 + + cpu_decode_opcode_range_check_bit_4 * column8_row0 + + cpu_decode_opcode_range_check_bit_3 * column8_row8 + + cpu_decode_flag_op1_base_op0_0 * column5_row5 + + column7_row4)) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/operands/ops_mul. + let value = (column8_row4 - column5_row5 * column5_row13) / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/operands/res. + let value = ((1 - cpu_decode_opcode_range_check_bit_9) * column8_row12 + - (cpu_decode_opcode_range_check_bit_5 * (column5_row5 + column5_row13) + + cpu_decode_opcode_range_check_bit_6 * column8_row4 + + cpu_decode_flag_res_op1_0 * column5_row13)) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/update_registers/update_pc/tmp0. + let value = (column8_row2 - cpu_decode_opcode_range_check_bit_9 * column5_row9) + * domain28 + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/update_registers/update_pc/tmp1. + let value = (column8_row10 - column8_row2 * column8_row12) * domain28 / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/update_registers/update_pc/pc_cond_negative. + let value = ((1 - cpu_decode_opcode_range_check_bit_9) * column5_row16 + + column8_row2 * (column5_row16 - (column5_row0 + column5_row13)) + - (cpu_decode_flag_pc_update_regular_0 * npc_reg_0 + + cpu_decode_opcode_range_check_bit_7 * column8_row12 + + cpu_decode_opcode_range_check_bit_8 * (column5_row0 + column8_row12))) + * domain28 + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/update_registers/update_pc/pc_cond_positive. + let value = ((column8_row10 - cpu_decode_opcode_range_check_bit_9) + * (column5_row16 - npc_reg_0)) + * domain28 + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/update_registers/update_ap/ap_update. + let value = (column8_row16 + - (column8_row0 + + cpu_decode_opcode_range_check_bit_10 * column8_row12 + + cpu_decode_opcode_range_check_bit_11 + + cpu_decode_opcode_range_check_bit_12 * 2)) + * domain28 + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/update_registers/update_fp/fp_update. + let value = (column8_row24 + - (cpu_decode_fp_update_regular_0 * column8_row8 + + cpu_decode_opcode_range_check_bit_13 * column5_row9 + + cpu_decode_opcode_range_check_bit_12 * (column8_row0 + 2))) + * domain28 + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/call/push_fp. + let value = (cpu_decode_opcode_range_check_bit_12 * (column5_row9 - column8_row8)) / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/call/push_pc. + let value = (cpu_decode_opcode_range_check_bit_12 + * (column5_row5 - (column5_row0 + cpu_decode_opcode_range_check_bit_2 + 1))) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/call/off0. + let value = (cpu_decode_opcode_range_check_bit_12 + * (column7_row0 - global_values.half_offset_size)) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/call/off1. + let value = (cpu_decode_opcode_range_check_bit_12 + * (column7_row8 - (global_values.half_offset_size + 1))) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/call/flags. + let value = (cpu_decode_opcode_range_check_bit_12 + * (cpu_decode_opcode_range_check_bit_12 + + cpu_decode_opcode_range_check_bit_12 + + 1 + + 1 + - (cpu_decode_opcode_range_check_bit_0 + cpu_decode_opcode_range_check_bit_1 + 4))) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/ret/off0. + let value = (cpu_decode_opcode_range_check_bit_13 + * (column7_row0 + 2 - global_values.half_offset_size)) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/ret/off2. + let value = (cpu_decode_opcode_range_check_bit_13 + * (column7_row4 + 1 - global_values.half_offset_size)) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/ret/flags. + let value = (cpu_decode_opcode_range_check_bit_13 + * (cpu_decode_opcode_range_check_bit_7 + + cpu_decode_opcode_range_check_bit_0 + + cpu_decode_opcode_range_check_bit_3 + + cpu_decode_flag_res_op1_0 + - 4)) + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/assert_eq/assert_eq. + let value = (cpu_decode_opcode_range_check_bit_14 * (column5_row9 - column8_row12)) / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: initial_ap. + let value = (column8_row0 - global_values.initial_ap) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: initial_fp. + let value = (column8_row8 - global_values.initial_ap) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: initial_pc. + let value = (column5_row0 - global_values.initial_pc) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: final_ap. + let value = (column8_row0 - global_values.final_ap) / domain28; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: final_fp. + let value = (column8_row8 - global_values.initial_ap) / domain28; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: final_pc. + let value = (column5_row0 - global_values.final_pc) / domain28; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: memory/multi_column_perm/perm/init0. + let value = ((global_values.memory_multi_column_perm_perm_interaction_elm + - (column6_row0 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column6_row1)) + * column9_inter1_row0 + + column5_row0 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column5_row1 + - global_values.memory_multi_column_perm_perm_interaction_elm) + / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: memory/multi_column_perm/perm/step0. + let value = ((global_values.memory_multi_column_perm_perm_interaction_elm + - (column6_row2 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column6_row3)) + * column9_inter1_row2 + - (global_values.memory_multi_column_perm_perm_interaction_elm + - (column5_row2 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column5_row3)) + * column9_inter1_row0) + * domain30 + / domain1; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: memory/multi_column_perm/perm/last. + let value = (column9_inter1_row0 + - global_values.memory_multi_column_perm_perm_public_memory_prod) + / domain30; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: memory/diff_is_bit. + let value = (memory_address_diff_0 * memory_address_diff_0 - memory_address_diff_0) + * domain30 + / domain1; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: memory/is_func. + let value = ((memory_address_diff_0 - 1) * (column6_row1 - column6_row3)) * domain30 / domain1; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: memory/initial_addr. + let value = (column6_row0 - 1) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: public_memory_addr_zero. + let value = (column5_row2) / domain3; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: public_memory_value_zero. + let value = (column5_row3) / domain3; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check16/perm/init0. + let value = ((global_values.range_check16_perm_interaction_elm - column7_row2) + * column9_inter1_row1 + + column7_row0 + - global_values.range_check16_perm_interaction_elm) + / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check16/perm/step0. + let value = ((global_values.range_check16_perm_interaction_elm - column7_row6) + * column9_inter1_row5 + - (global_values.range_check16_perm_interaction_elm - column7_row4) * column9_inter1_row1) + * domain31 + / domain2; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check16/perm/last. + let value = (column9_inter1_row1 - global_values.range_check16_perm_public_memory_prod) + / domain31; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check16/diff_is_bit. + let value = (range_check16_diff_0 * range_check16_diff_0 - range_check16_diff_0) + * domain31 + / domain2; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check16/minimum. + let value = (column7_row2 - global_values.range_check_min) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check16/maximum. + let value = (column7_row2 - global_values.range_check_max) / domain31; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/permutation/init0. + let value = ((global_values.diluted_check_permutation_interaction_elm - column7_row5) + * column9_inter1_row7 + + column7_row1 + - global_values.diluted_check_permutation_interaction_elm) + / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/permutation/step0. + let value = ((global_values.diluted_check_permutation_interaction_elm - column7_row13) + * column9_inter1_row15 + - (global_values.diluted_check_permutation_interaction_elm - column7_row9) + * column9_inter1_row7) + * domain32 + / domain3; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/permutation/last. + let value = (column9_inter1_row7 - global_values.diluted_check_permutation_public_memory_prod) + / domain32; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/init. + let value = (column9_inter1_row3 - 1) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/first_element. + let value = (column7_row5 - global_values.diluted_check_first_elm) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/step. + let value = (column9_inter1_row11 + - (column9_inter1_row3 + * (1 + global_values.diluted_check_interaction_z * (column7_row13 - column7_row5)) + + global_values.diluted_check_interaction_alpha + * (column7_row13 - column7_row5) + * (column7_row13 - column7_row5))) + * domain32 + / domain3; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/last. + let value = (column9_inter1_row3 - global_values.diluted_check_final_cum_val) / domain32; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/last_one_is_zero. + let value = (column8_row71 * (column3_row0 - (column3_row1 + column3_row1))) / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones0. + let value = (column8_row71 + * (column3_row1 + - 3138550867693340381917894711603833208051177722232017256448 * column3_row192)) + / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit192. + let value = (column8_row71 + - column4_row255 * (column3_row192 - (column3_row193 + column3_row193))) + / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones192. + let value = (column4_row255 * (column3_row193 - 8 * column3_row196)) / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit196. + let value = (column4_row255 + - (column3_row251 - (column3_row252 + column3_row252)) + * (column3_row196 - (column3_row197 + column3_row197))) + / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones196. + let value = ((column3_row251 - (column3_row252 + column3_row252)) + * (column3_row197 - 18014398509481984 * column3_row251)) + / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/booleanity_test. + let value = (pedersen_hash0_ec_subset_sum_bit_0 * (pedersen_hash0_ec_subset_sum_bit_0 - 1)) + * domain9 + / domain0; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_extraction_end. + let value = (column3_row0) / domain10; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/zeros_tail. + let value = (column3_row0) / domain9; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/slope. + let value = (pedersen_hash0_ec_subset_sum_bit_0 + * (column2_row0 - global_values.pedersen_points_y) + - column4_row0 * (column1_row0 - global_values.pedersen_points_x)) + * domain9 + / domain0; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/x. + let value = (column4_row0 * column4_row0 + - pedersen_hash0_ec_subset_sum_bit_0 + * (column1_row0 + global_values.pedersen_points_x + column1_row1)) + * domain9 + / domain0; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/y. + let value = (pedersen_hash0_ec_subset_sum_bit_0 * (column2_row0 + column2_row1) + - column4_row0 * (column1_row0 - column1_row1)) + * domain9 + / domain0; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/copy_point/x. + let value = (pedersen_hash0_ec_subset_sum_bit_neg_0 * (column1_row1 - column1_row0)) + * domain9 + / domain0; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/copy_point/y. + let value = (pedersen_hash0_ec_subset_sum_bit_neg_0 * (column2_row1 - column2_row0)) + * domain9 + / domain0; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/copy_point/x. + let value = (column1_row256 - column1_row255) * domain12 / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/copy_point/y. + let value = (column2_row256 - column2_row255) * domain12 / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/init/x. + let value = (column1_row0 - global_values.pedersen_shift_point.x) / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/init/y. + let value = (column2_row0 - global_values.pedersen_shift_point.y) / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/input0_value0. + let value = (column5_row7 - column3_row0) / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/input0_addr. + let value = (column5_row518 - (column5_row134 + 1)) * domain33 / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/init_addr. + let value = (column5_row6 - global_values.initial_pedersen_addr) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/input1_value0. + let value = (column5_row263 - column3_row256) / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/input1_addr. + let value = (column5_row262 - (column5_row6 + 1)) / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/output_value0. + let value = (column5_row135 - column1_row511) / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/output_addr. + let value = (column5_row134 - (column5_row262 + 1)) / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check_builtin/value. + let value = (range_check_builtin_value7_0 - column5_row71) / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check_builtin/addr_step. + let value = (column5_row326 - (column5_row70 + 1)) * domain34 / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check_builtin/init_addr. + let value = (column5_row70 - global_values.initial_range_check_addr) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/doubling_key/slope. + let value = (ecdsa_signature0_doubling_key_x_squared + + ecdsa_signature0_doubling_key_x_squared + + ecdsa_signature0_doubling_key_x_squared + + global_values.ecdsa_sig_config.alpha + - (column8_row33 + column8_row33) * column8_row35) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/doubling_key/x. + let value = (column8_row35 * column8_row35 - (column8_row1 + column8_row1 + column8_row65)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/doubling_key/y. + let value = (column8_row33 + column8_row97 - column8_row35 * (column8_row1 - column8_row65)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/booleanity_test. + let value = (ecdsa_signature0_exponentiate_generator_bit_0 + * (ecdsa_signature0_exponentiate_generator_bit_0 - 1)) + * domain25 + / domain7; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/bit_extraction_end. + let value = (column8_row59) / domain26; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/zeros_tail. + let value = (column8_row59) / domain25; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/slope. + let value = (ecdsa_signature0_exponentiate_generator_bit_0 + * (column8_row91 - global_values.ecdsa_generator_points_y) + - column8_row123 * (column8_row27 - global_values.ecdsa_generator_points_x)) + * domain25 + / domain7; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x. + let value = (column8_row123 * column8_row123 + - ecdsa_signature0_exponentiate_generator_bit_0 + * (column8_row27 + global_values.ecdsa_generator_points_x + column8_row155)) + * domain25 + / domain7; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/y. + let value = (ecdsa_signature0_exponentiate_generator_bit_0 * (column8_row91 + column8_row219) + - column8_row123 * (column8_row27 - column8_row155)) + * domain25 + / domain7; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x_diff_inv. + let value = (column8_row7 * (column8_row27 - global_values.ecdsa_generator_points_x) - 1) + * domain25 + / domain7; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/x. + let value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 + * (column8_row155 - column8_row27)) + * domain25 + / domain7; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/y. + let value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 + * (column8_row219 - column8_row91)) + * domain25 + / domain7; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/booleanity_test. + let value = (ecdsa_signature0_exponentiate_key_bit_0 + * (ecdsa_signature0_exponentiate_key_bit_0 - 1)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/bit_extraction_end. + let value = (column8_row9) / domain22; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/zeros_tail. + let value = (column8_row9) / domain21; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/slope. + let value = (ecdsa_signature0_exponentiate_key_bit_0 * (column8_row49 - column8_row33) + - column8_row19 * (column8_row17 - column8_row1)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/x. + let value = (column8_row19 * column8_row19 + - ecdsa_signature0_exponentiate_key_bit_0 * (column8_row17 + column8_row1 + column8_row81)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/y. + let value = (ecdsa_signature0_exponentiate_key_bit_0 * (column8_row49 + column8_row113) + - column8_row19 * (column8_row17 - column8_row81)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/x_diff_inv. + let value = (column8_row51 * (column8_row17 - column8_row1) - 1) * domain21 / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/copy_point/x. + let value = (ecdsa_signature0_exponentiate_key_bit_neg_0 * (column8_row81 - column8_row17)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/copy_point/y. + let value = (ecdsa_signature0_exponentiate_key_bit_neg_0 * (column8_row113 - column8_row49)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/init_gen/x. + let value = (column8_row27 - global_values.ecdsa_sig_config.shift_point.x) / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/init_gen/y. + let value = (column8_row91 + global_values.ecdsa_sig_config.shift_point.y) / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/init_key/x. + let value = (column8_row17 - global_values.ecdsa_sig_config.shift_point.x) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/init_key/y. + let value = (column8_row49 - global_values.ecdsa_sig_config.shift_point.y) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/add_results/slope. + let value = (column8_row32731 + - (column8_row16369 + column8_row32763 * (column8_row32667 - column8_row16337))) + / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/add_results/x. + let value = (column8_row32763 * column8_row32763 + - (column8_row32667 + column8_row16337 + column8_row16385)) + / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/add_results/y. + let value = (column8_row32731 + + column8_row16417 + - column8_row32763 * (column8_row32667 - column8_row16385)) + / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/add_results/x_diff_inv. + let value = (column8_row32647 * (column8_row32667 - column8_row16337) - 1) / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/extract_r/slope. + let value = (column8_row32753 + + global_values.ecdsa_sig_config.shift_point.y + - column8_row16331 * (column8_row32721 - global_values.ecdsa_sig_config.shift_point.x)) + / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/extract_r/x. + let value = (column8_row16331 * column8_row16331 + - (column8_row32721 + global_values.ecdsa_sig_config.shift_point.x + column8_row9)) + / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/extract_r/x_diff_inv. + let value = (column8_row32715 + * (column8_row32721 - global_values.ecdsa_sig_config.shift_point.x) + - 1) + / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/z_nonzero. + let value = (column8_row59 * column8_row16363 - 1) / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/r_and_w_nonzero. + let value = (column8_row9 * column8_row16355 - 1) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/q_on_curve/x_squared. + let value = (column8_row32747 - column8_row1 * column8_row1) / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/q_on_curve/on_curve. + let value = (column8_row33 * column8_row33 + - (column8_row1 * column8_row32747 + + global_values.ecdsa_sig_config.alpha * column8_row1 + + global_values.ecdsa_sig_config.beta)) + / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/init_addr. + let value = (column5_row390 - global_values.initial_ecdsa_addr) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/message_addr. + let value = (column5_row16774 - (column5_row390 + 1)) / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/pubkey_addr. + let value = (column5_row33158 - (column5_row16774 + 1)) * domain35 / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/message_value0. + let value = (column5_row16775 - column8_row59) / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/pubkey_value0. + let value = (column5_row391 - column8_row1) / domain27; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/init_var_pool_addr. + let value = (column5_row198 - global_values.initial_bitwise_addr) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/step_var_pool_addr. + let value = (column5_row454 - (column5_row198 + 1)) * domain18 / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/x_or_y_addr. + let value = (column5_row902 - (column5_row966 + 1)) / domain19; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/next_var_pool_addr. + let value = (column5_row1222 - (column5_row902 + 1)) * domain36 / domain19; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/partition. + let value = (bitwise_sum_var_0_0 + bitwise_sum_var_8_0 - column5_row199) / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/or_is_and_plus_xor. + let value = (column5_row903 - (column5_row711 + column5_row967)) / domain19; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/addition_is_xor_with_and. + let value = (column7_row1 + column7_row257 - (column7_row769 + column7_row513 + column7_row513)) + / domain20; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/unique_unpacking192. + let value = ((column7_row705 + column7_row961) * 16 - column7_row9) / domain19; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/unique_unpacking193. + let value = ((column7_row721 + column7_row977) * 16 - column7_row521) / domain19; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/unique_unpacking194. + let value = ((column7_row737 + column7_row993) * 16 - column7_row265) / domain19; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/unique_unpacking195. + let value = ((column7_row753 + column7_row1009) * 256 - column7_row777) / domain19; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/init_addr. + let value = (column5_row8582 - global_values.initial_ec_op_addr) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/p_x_addr. + let value = (column5_row24966 - (column5_row8582 + 7)) * domain37 / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/p_y_addr. + let value = (column5_row4486 - (column5_row8582 + 1)) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/q_x_addr. + let value = (column5_row12678 - (column5_row4486 + 1)) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/q_y_addr. + let value = (column5_row2438 - (column5_row12678 + 1)) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/m_addr. + let value = (column5_row10630 - (column5_row2438 + 1)) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/r_x_addr. + let value = (column5_row6534 - (column5_row10630 + 1)) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/r_y_addr. + let value = (column5_row14726 - (column5_row6534 + 1)) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/doubling_q/slope. + let value = (ec_op_doubling_q_x_squared_0 + + ec_op_doubling_q_x_squared_0 + + ec_op_doubling_q_x_squared_0 + + global_values.ec_op_curve_config.alpha + - (column8_row25 + column8_row25) * column8_row57) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/doubling_q/x. + let value = (column8_row57 * column8_row57 - (column8_row41 + column8_row41 + column8_row105)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/doubling_q/y. + let value = (column8_row25 + column8_row89 - column8_row57 * (column8_row41 - column8_row105)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/get_q_x. + let value = (column5_row12679 - column8_row41) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/get_q_y. + let value = (column5_row2439 - column8_row25) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/last_one_is_zero. + let value = (column8_row16371 * (column8_row21 - (column8_row85 + column8_row85))) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones0. + let value = (column8_row16371 + * (column8_row85 + - 3138550867693340381917894711603833208051177722232017256448 * column8_row12309)) + / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/cumulative_bit192. + let value = (column8_row16371 + - column8_row16339 * (column8_row12309 - (column8_row12373 + column8_row12373))) + / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones192. + let value = (column8_row16339 * (column8_row12373 - 8 * column8_row12565)) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/cumulative_bit196. + let value = (column8_row16339 + - (column8_row16085 - (column8_row16149 + column8_row16149)) + * (column8_row12565 - (column8_row12629 + column8_row12629))) + / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones196. + let value = ((column8_row16085 - (column8_row16149 + column8_row16149)) + * (column8_row12629 - 18014398509481984 * column8_row16085)) + / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/booleanity_test. + let value = (ec_op_ec_subset_sum_bit_0 * (ec_op_ec_subset_sum_bit_0 - 1)) * domain21 / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_extraction_end. + let value = (column8_row21) / domain24; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/zeros_tail. + let value = (column8_row21) / domain21; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/add_points/slope. + let value = (ec_op_ec_subset_sum_bit_0 * (column8_row37 - column8_row25) + - column8_row11 * (column8_row5 - column8_row41)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/add_points/x. + let value = (column8_row11 * column8_row11 + - ec_op_ec_subset_sum_bit_0 * (column8_row5 + column8_row41 + column8_row69)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/add_points/y. + let value = (ec_op_ec_subset_sum_bit_0 * (column8_row37 + column8_row101) + - column8_row11 * (column8_row5 - column8_row69)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/add_points/x_diff_inv. + let value = (column8_row43 * (column8_row5 - column8_row41) - 1) * domain21 / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/copy_point/x. + let value = (ec_op_ec_subset_sum_bit_neg_0 * (column8_row69 - column8_row5)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/copy_point/y. + let value = (ec_op_ec_subset_sum_bit_neg_0 * (column8_row101 - column8_row37)) + * domain21 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/get_m. + let value = (column8_row21 - column5_row10631) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/get_p_x. + let value = (column5_row8583 - column8_row5) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/get_p_y. + let value = (column5_row4487 - column8_row37) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/set_r_x. + let value = (column5_row6535 - column8_row16325) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/set_r_y. + let value = (column5_row14727 - column8_row16357) / domain23; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/param_0/init_input_output_addr. + let value = (column5_row38 - global_values.initial_poseidon_addr) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/param_0/addr_input_output_step. + let value = (column5_row294 - (column5_row38 + 3)) * domain34 / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/param_1/init_input_output_addr. + let value = (column5_row166 - (global_values.initial_poseidon_addr + 1)) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/param_1/addr_input_output_step. + let value = (column5_row422 - (column5_row166 + 3)) * domain34 / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/param_2/init_input_output_addr. + let value = (column5_row102 - (global_values.initial_poseidon_addr + 2)) / domain29; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/param_2/addr_input_output_step. + let value = (column5_row358 - (column5_row102 + 3)) * domain34 / domain8; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/full_rounds_state0_squaring. + let value = (column8_row53 * column8_row53 - column8_row29) / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/full_rounds_state1_squaring. + let value = (column8_row13 * column8_row13 - column8_row61) / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/full_rounds_state2_squaring. + let value = (column8_row45 * column8_row45 - column8_row3) / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/partial_rounds_state0_squaring. + let value = (column7_row3 * column7_row3 - column7_row7) / domain3; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/partial_rounds_state1_squaring. + let value = (column8_row6 * column8_row6 - column8_row14) * domain15 / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/add_first_round_key0. + let value = (column5_row39 + + 2950795762459345168613727575620414179244544320470208355568817838579231751791 + - column8_row53) + / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/add_first_round_key1. + let value = (column5_row167 + + 1587446564224215276866294500450702039420286416111469274423465069420553242820 + - column8_row13) + / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/add_first_round_key2. + let value = (column5_row103 + + 1645965921169490687904413452218868659025437693527479459426157555728339600137 + - column8_row45) + / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/full_round0. + let value = (column8_row117 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state1_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + global_values.poseidon_poseidon_full_round_key0)) + * domain11 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/full_round1. + let value = (column8_row77 + + poseidon_poseidon_full_rounds_state1_cubed_0 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + global_values.poseidon_poseidon_full_round_key1)) + * domain11 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/full_round2. + let value = (column8_row109 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state1_cubed_0 + + global_values.poseidon_poseidon_full_round_key2)) + * domain11 + / domain6; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/last_full_round0. + let value = (column5_row295 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state1_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7)) + / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/last_full_round1. + let value = (column5_row423 + + poseidon_poseidon_full_rounds_state1_cubed_7 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7)) + / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/last_full_round2. + let value = (column5_row359 + + poseidon_poseidon_full_rounds_state2_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state1_cubed_7)) + / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/copy_partial_rounds0_i0. + let value = (column7_row491 - column8_row6) / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/copy_partial_rounds0_i1. + let value = (column7_row499 - column8_row22) / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/copy_partial_rounds0_i2. + let value = (column7_row507 - column8_row38) / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/margin_full_to_partial0. + let value = (column7_row3 + + poseidon_poseidon_full_rounds_state2_cubed_3 + + poseidon_poseidon_full_rounds_state2_cubed_3 + - (poseidon_poseidon_full_rounds_state0_cubed_3 + + poseidon_poseidon_full_rounds_state1_cubed_3 + + 2121140748740143694053732746913428481442990369183417228688865837805149503386)) + / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/margin_full_to_partial1. + let value = (column7_row11 + - (3618502788666131213697322783095070105623107215331596699973092056135872020477 + * poseidon_poseidon_full_rounds_state1_cubed_3 + + 10 * poseidon_poseidon_full_rounds_state2_cubed_3 + + 4 * column7_row3 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state0_cubed_0 + + 2006642341318481906727563724340978325665491359415674592697055778067937914672)) + / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/margin_full_to_partial2. + let value = (column7_row19 + - (8 * poseidon_poseidon_full_rounds_state2_cubed_3 + + 4 * column7_row3 + + 6 * poseidon_poseidon_partial_rounds_state0_cubed_0 + + column7_row11 + + column7_row11 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state0_cubed_1 + + 427751140904099001132521606468025610873158555767197326325930641757709538586)) + / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/partial_round0. + let value = (column7_row27 + - (8 * poseidon_poseidon_partial_rounds_state0_cubed_0 + + 4 * column7_row11 + + 6 * poseidon_poseidon_partial_rounds_state0_cubed_1 + + column7_row19 + + column7_row19 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state0_cubed_2 + + global_values.poseidon_poseidon_partial_round_key0)) + * domain16 + / domain3; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/partial_round1. + let value = (column8_row54 + - (8 * poseidon_poseidon_partial_rounds_state1_cubed_0 + + 4 * column8_row22 + + 6 * poseidon_poseidon_partial_rounds_state1_cubed_1 + + column8_row38 + + column8_row38 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state1_cubed_2 + + global_values.poseidon_poseidon_partial_round_key1)) + * domain17 + / domain5; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/margin_partial_to_full0. + let value = (column8_row309 + - (16 * poseidon_poseidon_partial_rounds_state1_cubed_19 + + 8 * column8_row326 + + 16 * poseidon_poseidon_partial_rounds_state1_cubed_20 + + 6 * column8_row342 + + poseidon_poseidon_partial_rounds_state1_cubed_21 + + 560279373700919169769089400651532183647886248799764942664266404650165812023)) + / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/margin_partial_to_full1. + let value = (column8_row269 + - (4 * poseidon_poseidon_partial_rounds_state1_cubed_20 + + column8_row342 + + column8_row342 + + poseidon_poseidon_partial_rounds_state1_cubed_21 + + 1401754474293352309994371631695783042590401941592571735921592823982231996415)) + / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/margin_partial_to_full2. + let value = (column8_row301 + - (8 * poseidon_poseidon_partial_rounds_state1_cubed_19 + + 4 * column8_row326 + + 6 * poseidon_poseidon_partial_rounds_state1_cubed_20 + + column8_row342 + + column8_row342 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state1_cubed_21 + + 1246177936547655338400308396717835700699368047388302793172818304164989556526)) + / domain13; + let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + total_sum +} + +#[cfg(feature: 'split')] fn eval_composition_polynomial_inner_part_1( mut mask_values: Span, mut constraint_coefficients: Span, @@ -1042,7 +2734,6 @@ fn eval_composition_polynomial_inner_part_1( / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; - // Constraint: ecdsa/signature0/exponentiate_key/add_points/x. let value = (column8_row19 * column8_row19 - ecdsa_signature0_exponentiate_key_bit_0 * (column8_row17 + column8_row1 + column8_row81)) @@ -1054,6 +2745,7 @@ fn eval_composition_polynomial_inner_part_1( } +#[cfg(feature: 'split')] fn eval_composition_polynomial_inner_part_2( mut mask_values: Span, mut constraint_coefficients: Span, diff --git a/src/air/layouts/starknet/contract.cairo b/src/air/layouts/starknet/contract.cairo index a12ec9517..709dee117 100644 --- a/src/air/layouts/starknet/contract.cairo +++ b/src/air/layouts/starknet/contract.cairo @@ -1,7 +1,7 @@ use cairo_verifier::air::layouts::starknet::global_values::GlobalValues; #[starknet::interface] -trait IStarknetLayoutContract1 { +trait ILayoutCompositionContract { fn eval_composition_polynomial_inner( self: @ContractState, mask_values: Span, @@ -13,19 +13,7 @@ trait IStarknetLayoutContract1 { } #[starknet::interface] -trait IStarknetLayoutContract1part2 { - fn eval_composition_polynomial_inner( - self: @ContractState, - mask_values: Span, - constraint_coefficients: Span, - point: felt252, - trace_generator: felt252, - global_values: GlobalValues - ) -> felt252; -} - -#[starknet::interface] -trait IStarknetLayoutContract2 { +trait ILayoutOodsContract { fn eval_oods_polynomial_inner( self: @ContractState, column_values: Span, @@ -38,26 +26,66 @@ trait IStarknetLayoutContract2 { } #[starknet::contract] -mod StarknetLayoutContract1 { - use super::{IStarknetLayoutContract1, IStarknetLayoutContract1part2Dispatcher, IStarknetLayoutContract1part2DispatcherTrait}; +mod LayoutCompositionContract { + use super::ILayoutCompositionContract; use cairo_verifier::air::layouts::starknet::{ - global_values::GlobalValues, - autogenerated::eval_composition_polynomial_inner_part_1, + global_values::GlobalValues, autogenerated::eval_composition_polynomial_inner_part_1, }; use starknet::ContractAddress; #[storage] struct Storage { - part_2_address: ContractAddress, + continuation_contracts: Array, } - #[constructor] - fn constructor(ref self: ContractState, part_2_address: ContractAddress) { - self.part_2_address.write(part_2_address); + #[abi(embed_v0)] + impl LayoutCompositionContract of ILayoutCompositionContract { + fn eval_composition_polynomial_inner( + self: @ContractState, + mask_values: Span, + constraint_coefficients: Span, + point: felt252, + trace_generator: felt252, + global_values: GlobalValues + ) -> felt252 { + let mut total_sum = ILayoutCompositionContractDispatcher { + contract_address: continuation_contracts[0] + } + .eval_composition_polynomial_inner( + mask_values, + constraint_coefficients.slice(0, 99), + point, + trace_generator, + global_values + ); + + total_sum += + ILayoutCompositionContractDispatcher { contract_address: continuation_contracts[1] } + .eval_composition_polynomial_inner( + mask_values, + constraint_coefficients.slice(99, 99), + point, + trace_generator, + global_values + ); + + total_sum + } } +} + +#[starknet::contract] +mod LayoutCompositionContract1 { + use super::ILayoutCompositionContract; + use cairo_verifier::air::layouts::starknet::{ + global_values::GlobalValues, autogenerated::eval_composition_polynomial_inner_part_1, + }; + + #[storage] + struct Storage {} #[abi(embed_v0)] - impl StarknetLayoutContract1 of IStarknetLayoutContract1 { + impl LayoutCompositionContract of ILayoutCompositionContract { fn eval_composition_polynomial_inner( self: @ContractState, mask_values: Span, @@ -66,41 +94,25 @@ mod StarknetLayoutContract1 { trace_generator: felt252, global_values: GlobalValues ) -> felt252 { - let part_1_res = eval_composition_polynomial_inner_part_1( - mask_values, - constraint_coefficients.slice(0,99), - point, - trace_generator, - global_values - ); - let part_2_res = IStarknetLayoutContract1part2Dispatcher { - contract_address: self.part_2_address.read(), - }.eval_composition_polynomial_inner( - mask_values, - constraint_coefficients.slice(99, 99), - point, - trace_generator, - global_values - ); - - part_1_res + part_2_res + eval_composition_polynomial_inner_part_1( + mask_values, constraint_coefficients, point, trace_generator, global_values + ) } } } #[starknet::contract] -mod StarknetLayoutContract1part2 { - use super::IStarknetLayoutContract1part2; +mod LayoutCompositionContract2 { + use super::ILayoutCompositionContract; use cairo_verifier::air::layouts::starknet::{ - global_values::GlobalValues, - autogenerated::eval_composition_polynomial_inner_part_2, + global_values::GlobalValues, autogenerated::eval_composition_polynomial_inner_part_2, }; #[storage] struct Storage {} #[abi(embed_v0)] - impl StarknetLayoutContract1part2 of IStarknetLayoutContract1part2 { + impl LayoutCompositionContract of ILayoutCompositionContract { fn eval_composition_polynomial_inner( self: @ContractState, mask_values: Span, @@ -110,30 +122,24 @@ mod StarknetLayoutContract1part2 { global_values: GlobalValues ) -> felt252 { eval_composition_polynomial_inner_part_2( - mask_values, - constraint_coefficients, - point, - trace_generator, - global_values + mask_values, constraint_coefficients, point, trace_generator, global_values ) } } } - #[starknet::contract] -mod StarknetLayoutContract2 { - use super::IStarknetLayoutContract2; +mod LayoutOodsContract { + use super::ILayoutOodsContract; use cairo_verifier::air::layouts::starknet::{ - global_values::GlobalValues, - autogenerated::eval_oods_polynomial_inner, + global_values::GlobalValues, autogenerated::eval_oods_polynomial_inner, }; #[storage] struct Storage {} #[abi(embed_v0)] - impl StarknetLayoutContract2 of IStarknetLayoutContract2 { + impl LayoutOodsContract of ILayoutOodsContract { fn eval_oods_polynomial_inner( self: @ContractState, column_values: Span, @@ -153,4 +159,4 @@ mod StarknetLayoutContract2 { ) } } -} \ No newline at end of file +} diff --git a/src/air/layouts/starknet_with_keccak.cairo b/src/air/layouts/starknet_with_keccak.cairo index 3142bec47..bd6301cc5 100644 --- a/src/air/layouts/starknet_with_keccak.cairo +++ b/src/air/layouts/starknet_with_keccak.cairo @@ -10,8 +10,10 @@ use cairo_verifier::{ constants::{SHIFT_POINT_X, SHIFT_POINT_Y, StarkCurve}, layouts::starknet_with_keccak::{ contract::{ - IStarknetWithKeccakLayoutContract1Dispatcher, IStarknetWithKeccakLayoutContract1DispatcherTrait, - IStarknetWithKeccakLayoutContract2Dispatcher, IStarknetWithKeccakLayoutContract2DispatcherTrait, + IStarknetWithKeccakLayoutContract1Dispatcher, + IStarknetWithKeccakLayoutContract1DispatcherTrait, + IStarknetWithKeccakLayoutContract2Dispatcher, + IStarknetWithKeccakLayoutContract2DispatcherTrait, }, global_values::{ GlobalValues, InteractionElements, EcPoint, EcdsaSigConfig, CurveConfig @@ -38,6 +40,78 @@ use cairo_verifier::{ }; use starknet::ContractAddress; +#[cfg(feature: 'monolith')] +use cairo_verifier::air::layouts::starknet::autogenerated::{ + eval_composition_polynomial_inner as eval_composition_polynomial_inner_, + eval_oods_polynomial_inner as eval_oods_polynomial_inner_, +}; + +#[cfg(feature: 'monolith')] +fn eval_composition_polynomial_inner( + mask_values: Span, + constraint_coefficients: Span, + point: felt252, + trace_generator: felt252, + global_values: GlobalValues, + contract_address: ContractAddress, +) -> felt252 { + eval_composition_polynomial_inner_( + mask_values, constraint_coefficients, point, trace_generator, global_values + ) +} + +#[cfg(feature: 'monolith')] +fn eval_oods_polynomial_inner( + column_values: Span, + oods_values: Span, + constraint_coefficients: Span, + point: felt252, + oods_point: felt252, + trace_generator: felt252, + contract_address: ContractAddress, +) -> felt252 { + eval_oods_polynomial_inner_( + column_values, oods_values, constraint_coefficients, point, oods_point, trace_generator, + ) +} + +#[cfg(feature: 'split')] +use cairo_verifier::air::layouts::starknet::contract::{ + ILayoutCompositionContractDispatcher, ILayoutCompositionContractDispatcherTrait, + ILayoutOodsContractDispatcher, ILayoutOodsContractDispatcherTrait, +}; + +#[cfg(feature: 'split')] +fn eval_composition_polynomial_inner( + mask_values: Span, + constraint_coefficients: Span, + point: felt252, + trace_generator: felt252, + global_values: GlobalValues, + contract_address: ContractAddress, +) -> felt252 { + ILayoutCompositionContractDispatcher { contract_address } + .eval_composition_polynomial_inner( + mask_values, constraint_coefficients, point, trace_generator, global_values + ) +} + +#[cfg(feature: 'split')] +fn eval_oods_polynomial_inner( + column_values: Span, + oods_values: Span, + constraint_coefficients: Span, + point: felt252, + oods_point: felt252, + trace_generator: felt252, + contract_address: ContractAddress, +) -> felt252 { + ILayoutOodsContractDispatcher { contract_address } + .eval_oods_polynomial_inner( + column_values, oods_values, constraint_coefficients, point, oods_point, trace_generator, + ) +} + impl StarknetWithKeccakAIRCompositionImpl of AIRComposition { fn eval_composition_polynomial( interaction_elements: InteractionElements, @@ -167,10 +241,13 @@ impl StarknetWithKeccakAIRCompositionImpl of AIRComposition felt252 { - IStarknetWithKeccakLayoutContract2Dispatcher { - contract_address: contract_address_2 - }.eval_oods_polynomial_inner( - column_values, oods_values, constraint_coefficients, point, oods_point, trace_generator, + eval_oods_polynomial_inner( + column_values, + oods_values, + constraint_coefficients, + point, + oods_point, + trace_generator, + contract_address, ) } } diff --git a/src/air/layouts/starknet_with_keccak/autogenerated.cairo b/src/air/layouts/starknet_with_keccak/autogenerated.cairo index f2497f99e..aa9f267e9 100644 --- a/src/air/layouts/starknet_with_keccak/autogenerated.cairo +++ b/src/air/layouts/starknet_with_keccak/autogenerated.cairo @@ -6,7 +6,15136 @@ use cairo_verifier::{ common::math::{Felt252Div, pow}, }; -fn eval_composition_polynomial_inner_part1( +#[cfg(feature: 'monolith')] +fn eval_composition_polynomial_inner( + mut mask_values: Span, + mut constraint_coefficients: Span, + point: felt252, + trace_generator: felt252, + global_values: GlobalValues +) -> felt252 { + // Compute powers. + let pow0 = pow(point, global_values.trace_length / 524288); + let pow1 = pow(point, global_values.trace_length / 32768); + let pow2 = pow1 * pow1; // pow(point, (safe_div(global_values.trace_length, 16384))). + let pow3 = pow2 * pow2; // pow(point, (safe_div(global_values.trace_length, 8192))). + let pow4 = pow(point, global_values.trace_length / 2048); + let pow5 = pow4 * pow4; // pow(point, (safe_div(global_values.trace_length, 1024))). + let pow6 = pow5 * pow5; // pow(point, (safe_div(global_values.trace_length, 512))). + let pow7 = pow6 * pow6; // pow(point, (safe_div(global_values.trace_length, 256))). + let pow8 = pow7 * pow7; // pow(point, (safe_div(global_values.trace_length, 128))). + let pow9 = pow8 * pow8; // pow(point, (safe_div(global_values.trace_length, 64))). + let pow10 = pow(point, global_values.trace_length / 16); + let pow11 = pow10 * pow10; // pow(point, (safe_div(global_values.trace_length, 8))). + let pow12 = pow11 * pow11; // pow(point, (safe_div(global_values.trace_length, 4))). + let pow13 = pow12 * pow12; // pow(point, (safe_div(global_values.trace_length, 2))). + let pow14 = pow13 * pow13; // pow(point, global_values.trace_length). + let pow15 = pow(trace_generator, global_values.trace_length - 2048); + let pow16 = pow(trace_generator, global_values.trace_length - 16384); + let pow17 = pow(trace_generator, global_values.trace_length - 1024); + let pow18 = pow(trace_generator, global_values.trace_length - 32768); + let pow19 = pow(trace_generator, global_values.trace_length - 256); + let pow20 = pow(trace_generator, global_values.trace_length - 512); + let pow21 = pow(trace_generator, global_values.trace_length - 1); + let pow22 = pow(trace_generator, global_values.trace_length - 4); + let pow23 = pow(trace_generator, global_values.trace_length - 2); + let pow24 = pow(trace_generator, global_values.trace_length - 16); + let pow25 = pow(trace_generator, global_values.trace_length / 524288); + let pow26 = pow25 + * pow25; // pow(trace_generator, (safe_div(global_values.trace_length, 262144))). + let pow27 = pow25 + * pow26; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 524288))). + let pow28 = pow25 + * pow27; // pow(trace_generator, (safe_div(global_values.trace_length, 131072))). + let pow29 = pow25 + * pow28; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 524288))). + let pow30 = pow25 + * pow29; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 262144))). + let pow31 = pow25 + * pow30; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 524288))). + let pow32 = pow25 + * pow31; // pow(trace_generator, (safe_div(global_values.trace_length, 65536))). + let pow33 = pow25 + * pow32; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 524288))). + let pow34 = pow25 + * pow33; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 262144))). + let pow35 = pow25 + * pow34; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 524288))). + let pow36 = pow25 + * pow35; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 131072))). + let pow37 = pow25 + * pow36; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 524288))). + let pow38 = pow25 + * pow37; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 262144))). + let pow39 = pow25 + * pow38; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 524288))). + let pow40 = pow25 + * pow39; // pow(trace_generator, (safe_div(global_values.trace_length, 32768))). + let pow41 = pow32 + * pow40; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 65536))). + let pow42 = pow32 + * pow41; // pow(trace_generator, (safe_div(global_values.trace_length, 16384))). + let pow43 = pow32 + * pow42; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 65536))). + let pow44 = pow32 + * pow43; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 32768))). + let pow45 = pow32 + * pow44; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 65536))). + let pow46 = pow32 + * pow45; // pow(trace_generator, (safe_div(global_values.trace_length, 8192))). + let pow47 = pow32 + * pow46; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 65536))). + let pow48 = pow32 + * pow47; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 32768))). + let pow49 = pow32 + * pow48; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 65536))). + let pow50 = pow32 + * pow49; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 16384))). + let pow51 = pow32 + * pow50; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 65536))). + let pow52 = pow32 + * pow51; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 32768))). + let pow53 = pow32 + * pow52; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 65536))). + let pow54 = pow32 + * pow53; // pow(trace_generator, (safe_div(global_values.trace_length, 4096))). + let pow55 = pow32 + * pow54; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 65536))). + let pow56 = pow32 + * pow55; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 32768))). + let pow57 = pow32 + * pow56; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 65536))). + let pow58 = pow32 + * pow57; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 16384))). + let pow59 = pow32 + * pow58; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 65536))). + let pow60 = pow32 + * pow59; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 32768))). + let pow61 = pow32 + * pow60; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 65536))). + let pow62 = pow32 + * pow61; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 8192))). + let pow63 = pow32 + * pow62; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 65536))). + let pow64 = pow32 + * pow63; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 32768))). + let pow65 = pow32 + * pow64; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 65536))). + let pow66 = pow32 + * pow65; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 16384))). + let pow67 = pow32 + * pow66; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 65536))). + let pow68 = pow32 + * pow67; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 32768))). + let pow69 = pow32 + * pow68; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 65536))). + let pow70 = pow32 + * pow69; // pow(trace_generator, (safe_div(global_values.trace_length, 2048))). + let pow71 = pow32 + * pow70; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 65536))). + let pow72 = pow32 + * pow71; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 32768))). + let pow73 = pow32 + * pow72; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 65536))). + let pow74 = pow32 + * pow73; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 16384))). + let pow75 = pow32 + * pow74; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 65536))). + let pow76 = pow32 + * pow75; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 32768))). + let pow77 = pow32 + * pow76; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 65536))). + let pow78 = pow32 + * pow77; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 8192))). + let pow79 = pow32 + * pow78; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 65536))). + let pow80 = pow32 + * pow79; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 32768))). + let pow81 = pow32 + * pow80; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 65536))). + let pow82 = pow32 + * pow81; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 16384))). + let pow83 = pow32 + * pow82; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 65536))). + let pow84 = pow32 + * pow83; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 32768))). + let pow85 = pow32 + * pow84; // pow(trace_generator, (safe_div((safe_mult(47, global_values.trace_length)), 65536))). + let pow86 = pow32 + * pow85; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 4096))). + let pow87 = pow32 + * pow86; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 65536))). + let pow88 = pow32 + * pow87; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 32768))). + let pow89 = pow32 + * pow88; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 65536))). + let pow90 = pow32 + * pow89; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 16384))). + let pow91 = pow32 + * pow90; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 65536))). + let pow92 = pow32 + * pow91; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 32768))). + let pow93 = pow32 + * pow92; // pow(trace_generator, (safe_div((safe_mult(55, global_values.trace_length)), 65536))). + let pow94 = pow32 + * pow93; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 8192))). + let pow95 = pow32 + * pow94; // pow(trace_generator, (safe_div((safe_mult(57, global_values.trace_length)), 65536))). + let pow96 = pow32 + * pow95; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 32768))). + let pow97 = pow32 + * pow96; // pow(trace_generator, (safe_div((safe_mult(59, global_values.trace_length)), 65536))). + let pow98 = pow32 + * pow97; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 16384))). + let pow99 = pow32 + * pow98; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 65536))). + let pow100 = pow41 + * pow99; // pow(trace_generator, (safe_div(global_values.trace_length, 1024))). + let pow101 = pow32 + * pow100; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 65536))). + let pow102 = pow32 + * pow101; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 32768))). + let pow103 = pow32 + * pow102; // pow(trace_generator, (safe_div((safe_mult(67, global_values.trace_length)), 65536))). + let pow104 = pow32 + * pow103; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 16384))). + let pow105 = pow32 + * pow104; // pow(trace_generator, (safe_div((safe_mult(69, global_values.trace_length)), 65536))). + let pow106 = pow32 + * pow105; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 32768))). + let pow107 = pow32 + * pow106; // pow(trace_generator, (safe_div((safe_mult(71, global_values.trace_length)), 65536))). + let pow108 = pow32 + * pow107; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 8192))). + let pow109 = pow32 + * pow108; // pow(trace_generator, (safe_div((safe_mult(73, global_values.trace_length)), 65536))). + let pow110 = pow32 + * pow109; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 32768))). + let pow111 = pow32 + * pow110; // pow(trace_generator, (safe_div((safe_mult(75, global_values.trace_length)), 65536))). + let pow112 = pow32 + * pow111; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 16384))). + let pow113 = pow32 + * pow112; // pow(trace_generator, (safe_div((safe_mult(77, global_values.trace_length)), 65536))). + let pow114 = pow32 + * pow113; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 32768))). + let pow115 = pow32 + * pow114; // pow(trace_generator, (safe_div((safe_mult(79, global_values.trace_length)), 65536))). + let pow116 = pow32 + * pow115; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 4096))). + let pow117 = pow32 + * pow116; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 65536))). + let pow118 = pow32 + * pow117; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 32768))). + let pow119 = pow32 + * pow118; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 65536))). + let pow120 = pow32 + * pow119; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 16384))). + let pow121 = pow32 + * pow120; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 65536))). + let pow122 = pow32 + * pow121; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 32768))). + let pow123 = pow32 + * pow122; // pow(trace_generator, (safe_div((safe_mult(87, global_values.trace_length)), 65536))). + let pow124 = pow32 + * pow123; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 8192))). + let pow125 = pow32 + * pow124; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 65536))). + let pow126 = pow32 + * pow125; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 32768))). + let pow127 = pow32 + * pow126; // pow(trace_generator, (safe_div((safe_mult(91, global_values.trace_length)), 65536))). + let pow128 = pow32 + * pow127; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 16384))). + let pow129 = pow32 + * pow128; // pow(trace_generator, (safe_div((safe_mult(93, global_values.trace_length)), 65536))). + let pow130 = pow41 + * pow129; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 2048))). + let pow131 = pow32 + * pow130; // pow(trace_generator, (safe_div((safe_mult(97, global_values.trace_length)), 65536))). + let pow132 = pow32 + * pow131; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 32768))). + let pow133 = pow32 + * pow132; // pow(trace_generator, (safe_div((safe_mult(99, global_values.trace_length)), 65536))). + let pow134 = pow32 + * pow133; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 16384))). + let pow135 = pow32 + * pow134; // pow(trace_generator, (safe_div((safe_mult(101, global_values.trace_length)), 65536))). + let pow136 = pow32 + * pow135; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 32768))). + let pow137 = pow32 + * pow136; // pow(trace_generator, (safe_div((safe_mult(103, global_values.trace_length)), 65536))). + let pow138 = pow32 + * pow137; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 8192))). + let pow139 = pow32 + * pow138; // pow(trace_generator, (safe_div((safe_mult(105, global_values.trace_length)), 65536))). + let pow140 = pow32 + * pow139; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 32768))). + let pow141 = pow32 + * pow140; // pow(trace_generator, (safe_div((safe_mult(107, global_values.trace_length)), 65536))). + let pow142 = pow32 + * pow141; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 16384))). + let pow143 = pow32 + * pow142; // pow(trace_generator, (safe_div((safe_mult(109, global_values.trace_length)), 65536))). + let pow144 = pow32 + * pow143; // pow(trace_generator, (safe_div((safe_mult(55, global_values.trace_length)), 32768))). + let pow145 = pow32 + * pow144; // pow(trace_generator, (safe_div((safe_mult(111, global_values.trace_length)), 65536))). + let pow146 = pow32 + * pow145; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 4096))). + let pow147 = pow32 + * pow146; // pow(trace_generator, (safe_div((safe_mult(113, global_values.trace_length)), 65536))). + let pow148 = pow32 + * pow147; // pow(trace_generator, (safe_div((safe_mult(57, global_values.trace_length)), 32768))). + let pow149 = pow32 + * pow148; // pow(trace_generator, (safe_div((safe_mult(115, global_values.trace_length)), 65536))). + let pow150 = pow32 + * pow149; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 16384))). + let pow151 = pow32 + * pow150; // pow(trace_generator, (safe_div((safe_mult(117, global_values.trace_length)), 65536))). + let pow152 = pow32 + * pow151; // pow(trace_generator, (safe_div((safe_mult(59, global_values.trace_length)), 32768))). + let pow153 = pow32 + * pow152; // pow(trace_generator, (safe_div((safe_mult(119, global_values.trace_length)), 65536))). + let pow154 = pow32 + * pow153; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 8192))). + let pow155 = pow32 + * pow154; // pow(trace_generator, (safe_div((safe_mult(121, global_values.trace_length)), 65536))). + let pow156 = pow32 + * pow155; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 32768))). + let pow157 = pow32 + * pow156; // pow(trace_generator, (safe_div((safe_mult(123, global_values.trace_length)), 65536))). + let pow158 = pow32 + * pow157; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 16384))). + let pow159 = pow32 + * pow158; // pow(trace_generator, (safe_div((safe_mult(125, global_values.trace_length)), 65536))). + let pow160 = pow41 + * pow159; // pow(trace_generator, (safe_div(global_values.trace_length, 512))). + let pow161 = pow32 + * pow160; // pow(trace_generator, (safe_div((safe_mult(129, global_values.trace_length)), 65536))). + let pow162 = pow32 + * pow161; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 32768))). + let pow163 = pow32 + * pow162; // pow(trace_generator, (safe_div((safe_mult(131, global_values.trace_length)), 65536))). + let pow164 = pow32 + * pow163; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 16384))). + let pow165 = pow32 + * pow164; // pow(trace_generator, (safe_div((safe_mult(133, global_values.trace_length)), 65536))). + let pow166 = pow32 + * pow165; // pow(trace_generator, (safe_div((safe_mult(67, global_values.trace_length)), 32768))). + let pow167 = pow32 + * pow166; // pow(trace_generator, (safe_div((safe_mult(135, global_values.trace_length)), 65536))). + let pow168 = pow32 + * pow167; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 8192))). + let pow169 = pow32 + * pow168; // pow(trace_generator, (safe_div((safe_mult(137, global_values.trace_length)), 65536))). + let pow170 = pow32 + * pow169; // pow(trace_generator, (safe_div((safe_mult(69, global_values.trace_length)), 32768))). + let pow171 = pow32 + * pow170; // pow(trace_generator, (safe_div((safe_mult(139, global_values.trace_length)), 65536))). + let pow172 = pow32 + * pow171; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 16384))). + let pow173 = pow32 + * pow172; // pow(trace_generator, (safe_div((safe_mult(141, global_values.trace_length)), 65536))). + let pow174 = pow32 + * pow173; // pow(trace_generator, (safe_div((safe_mult(71, global_values.trace_length)), 32768))). + let pow175 = pow32 + * pow174; // pow(trace_generator, (safe_div((safe_mult(143, global_values.trace_length)), 65536))). + let pow176 = pow32 + * pow175; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 4096))). + let pow177 = pow32 + * pow176; // pow(trace_generator, (safe_div((safe_mult(145, global_values.trace_length)), 65536))). + let pow178 = pow32 + * pow177; // pow(trace_generator, (safe_div((safe_mult(73, global_values.trace_length)), 32768))). + let pow179 = pow32 + * pow178; // pow(trace_generator, (safe_div((safe_mult(147, global_values.trace_length)), 65536))). + let pow180 = pow32 + * pow179; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 16384))). + let pow181 = pow32 + * pow180; // pow(trace_generator, (safe_div((safe_mult(149, global_values.trace_length)), 65536))). + let pow182 = pow32 + * pow181; // pow(trace_generator, (safe_div((safe_mult(75, global_values.trace_length)), 32768))). + let pow183 = pow32 + * pow182; // pow(trace_generator, (safe_div((safe_mult(151, global_values.trace_length)), 65536))). + let pow184 = pow32 + * pow183; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 8192))). + let pow185 = pow32 + * pow184; // pow(trace_generator, (safe_div((safe_mult(153, global_values.trace_length)), 65536))). + let pow186 = pow32 + * pow185; // pow(trace_generator, (safe_div((safe_mult(77, global_values.trace_length)), 32768))). + let pow187 = pow32 + * pow186; // pow(trace_generator, (safe_div((safe_mult(155, global_values.trace_length)), 65536))). + let pow188 = pow32 + * pow187; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 16384))). + let pow189 = pow32 + * pow188; // pow(trace_generator, (safe_div((safe_mult(157, global_values.trace_length)), 65536))). + let pow190 = pow41 + * pow189; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 2048))). + let pow191 = pow32 + * pow190; // pow(trace_generator, (safe_div((safe_mult(161, global_values.trace_length)), 65536))). + let pow192 = pow32 + * pow191; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 32768))). + let pow193 = pow32 + * pow192; // pow(trace_generator, (safe_div((safe_mult(163, global_values.trace_length)), 65536))). + let pow194 = pow32 + * pow193; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 16384))). + let pow195 = pow32 + * pow194; // pow(trace_generator, (safe_div((safe_mult(165, global_values.trace_length)), 65536))). + let pow196 = pow32 + * pow195; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 32768))). + let pow197 = pow32 + * pow196; // pow(trace_generator, (safe_div((safe_mult(167, global_values.trace_length)), 65536))). + let pow198 = pow32 + * pow197; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 8192))). + let pow199 = pow32 + * pow198; // pow(trace_generator, (safe_div((safe_mult(169, global_values.trace_length)), 65536))). + let pow200 = pow32 + * pow199; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 32768))). + let pow201 = pow32 + * pow200; // pow(trace_generator, (safe_div((safe_mult(171, global_values.trace_length)), 65536))). + let pow202 = pow32 + * pow201; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 16384))). + let pow203 = pow32 + * pow202; // pow(trace_generator, (safe_div((safe_mult(173, global_values.trace_length)), 65536))). + let pow204 = pow32 + * pow203; // pow(trace_generator, (safe_div((safe_mult(87, global_values.trace_length)), 32768))). + let pow205 = pow32 + * pow204; // pow(trace_generator, (safe_div((safe_mult(175, global_values.trace_length)), 65536))). + let pow206 = pow32 + * pow205; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 4096))). + let pow207 = pow32 + * pow206; // pow(trace_generator, (safe_div((safe_mult(177, global_values.trace_length)), 65536))). + let pow208 = pow32 + * pow207; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 32768))). + let pow209 = pow32 + * pow208; // pow(trace_generator, (safe_div((safe_mult(179, global_values.trace_length)), 65536))). + let pow210 = pow32 + * pow209; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 16384))). + let pow211 = pow32 + * pow210; // pow(trace_generator, (safe_div((safe_mult(181, global_values.trace_length)), 65536))). + let pow212 = pow32 + * pow211; // pow(trace_generator, (safe_div((safe_mult(91, global_values.trace_length)), 32768))). + let pow213 = pow32 + * pow212; // pow(trace_generator, (safe_div((safe_mult(183, global_values.trace_length)), 65536))). + let pow214 = pow32 + * pow213; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 8192))). + let pow215 = pow32 + * pow214; // pow(trace_generator, (safe_div((safe_mult(185, global_values.trace_length)), 65536))). + let pow216 = pow32 + * pow215; // pow(trace_generator, (safe_div((safe_mult(93, global_values.trace_length)), 32768))). + let pow217 = pow32 + * pow216; // pow(trace_generator, (safe_div((safe_mult(187, global_values.trace_length)), 65536))). + let pow218 = pow32 + * pow217; // pow(trace_generator, (safe_div((safe_mult(47, global_values.trace_length)), 16384))). + let pow219 = pow32 + * pow218; // pow(trace_generator, (safe_div((safe_mult(189, global_values.trace_length)), 65536))). + let pow220 = pow41 + * pow219; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 1024))). + let pow221 = pow32 + * pow220; // pow(trace_generator, (safe_div((safe_mult(193, global_values.trace_length)), 65536))). + let pow222 = pow32 + * pow221; // pow(trace_generator, (safe_div((safe_mult(97, global_values.trace_length)), 32768))). + let pow223 = pow32 + * pow222; // pow(trace_generator, (safe_div((safe_mult(195, global_values.trace_length)), 65536))). + let pow224 = pow32 + * pow223; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 16384))). + let pow225 = pow32 + * pow224; // pow(trace_generator, (safe_div((safe_mult(197, global_values.trace_length)), 65536))). + let pow226 = pow32 + * pow225; // pow(trace_generator, (safe_div((safe_mult(99, global_values.trace_length)), 32768))). + let pow227 = pow32 + * pow226; // pow(trace_generator, (safe_div((safe_mult(199, global_values.trace_length)), 65536))). + let pow228 = pow32 + * pow227; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 8192))). + let pow229 = pow32 + * pow228; // pow(trace_generator, (safe_div((safe_mult(201, global_values.trace_length)), 65536))). + let pow230 = pow32 + * pow229; // pow(trace_generator, (safe_div((safe_mult(101, global_values.trace_length)), 32768))). + let pow231 = pow32 + * pow230; // pow(trace_generator, (safe_div((safe_mult(203, global_values.trace_length)), 65536))). + let pow232 = pow32 + * pow231; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 16384))). + let pow233 = pow32 + * pow232; // pow(trace_generator, (safe_div((safe_mult(205, global_values.trace_length)), 65536))). + let pow234 = pow32 + * pow233; // pow(trace_generator, (safe_div((safe_mult(103, global_values.trace_length)), 32768))). + let pow235 = pow32 + * pow234; // pow(trace_generator, (safe_div((safe_mult(207, global_values.trace_length)), 65536))). + let pow236 = pow32 + * pow235; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 4096))). + let pow237 = pow32 + * pow236; // pow(trace_generator, (safe_div((safe_mult(209, global_values.trace_length)), 65536))). + let pow238 = pow32 + * pow237; // pow(trace_generator, (safe_div((safe_mult(105, global_values.trace_length)), 32768))). + let pow239 = pow32 + * pow238; // pow(trace_generator, (safe_div((safe_mult(211, global_values.trace_length)), 65536))). + let pow240 = pow32 + * pow239; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 16384))). + let pow241 = pow32 + * pow240; // pow(trace_generator, (safe_div((safe_mult(213, global_values.trace_length)), 65536))). + let pow242 = pow32 + * pow241; // pow(trace_generator, (safe_div((safe_mult(107, global_values.trace_length)), 32768))). + let pow243 = pow32 + * pow242; // pow(trace_generator, (safe_div((safe_mult(215, global_values.trace_length)), 65536))). + let pow244 = pow32 + * pow243; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 8192))). + let pow245 = pow32 + * pow244; // pow(trace_generator, (safe_div((safe_mult(217, global_values.trace_length)), 65536))). + let pow246 = pow32 + * pow245; // pow(trace_generator, (safe_div((safe_mult(109, global_values.trace_length)), 32768))). + let pow247 = pow32 + * pow246; // pow(trace_generator, (safe_div((safe_mult(219, global_values.trace_length)), 65536))). + let pow248 = pow32 + * pow247; // pow(trace_generator, (safe_div((safe_mult(55, global_values.trace_length)), 16384))). + let pow249 = pow32 + * pow248; // pow(trace_generator, (safe_div((safe_mult(221, global_values.trace_length)), 65536))). + let pow250 = pow41 + * pow249; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 2048))). + let pow251 = pow32 + * pow250; // pow(trace_generator, (safe_div((safe_mult(225, global_values.trace_length)), 65536))). + let pow252 = pow32 + * pow251; // pow(trace_generator, (safe_div((safe_mult(113, global_values.trace_length)), 32768))). + let pow253 = pow32 + * pow252; // pow(trace_generator, (safe_div((safe_mult(227, global_values.trace_length)), 65536))). + let pow254 = pow32 + * pow253; // pow(trace_generator, (safe_div((safe_mult(57, global_values.trace_length)), 16384))). + let pow255 = pow32 + * pow254; // pow(trace_generator, (safe_div((safe_mult(229, global_values.trace_length)), 65536))). + let pow256 = pow32 + * pow255; // pow(trace_generator, (safe_div((safe_mult(115, global_values.trace_length)), 32768))). + let pow257 = pow32 + * pow256; // pow(trace_generator, (safe_div((safe_mult(231, global_values.trace_length)), 65536))). + let pow258 = pow32 + * pow257; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 8192))). + let pow259 = pow32 + * pow258; // pow(trace_generator, (safe_div((safe_mult(233, global_values.trace_length)), 65536))). + let pow260 = pow32 + * pow259; // pow(trace_generator, (safe_div((safe_mult(117, global_values.trace_length)), 32768))). + let pow261 = pow32 + * pow260; // pow(trace_generator, (safe_div((safe_mult(235, global_values.trace_length)), 65536))). + let pow262 = pow32 + * pow261; // pow(trace_generator, (safe_div((safe_mult(59, global_values.trace_length)), 16384))). + let pow263 = pow32 + * pow262; // pow(trace_generator, (safe_div((safe_mult(237, global_values.trace_length)), 65536))). + let pow264 = pow32 + * pow263; // pow(trace_generator, (safe_div((safe_mult(119, global_values.trace_length)), 32768))). + let pow265 = pow32 + * pow264; // pow(trace_generator, (safe_div((safe_mult(239, global_values.trace_length)), 65536))). + let pow266 = pow32 + * pow265; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 4096))). + let pow267 = pow32 + * pow266; // pow(trace_generator, (safe_div((safe_mult(241, global_values.trace_length)), 65536))). + let pow268 = pow32 + * pow267; // pow(trace_generator, (safe_div((safe_mult(121, global_values.trace_length)), 32768))). + let pow269 = pow32 + * pow268; // pow(trace_generator, (safe_div((safe_mult(243, global_values.trace_length)), 65536))). + let pow270 = pow32 + * pow269; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 16384))). + let pow271 = pow32 + * pow270; // pow(trace_generator, (safe_div((safe_mult(245, global_values.trace_length)), 65536))). + let pow272 = pow32 + * pow271; // pow(trace_generator, (safe_div((safe_mult(123, global_values.trace_length)), 32768))). + let pow273 = pow32 + * pow272; // pow(trace_generator, (safe_div((safe_mult(247, global_values.trace_length)), 65536))). + let pow274 = pow32 + * pow273; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 8192))). + let pow275 = pow32 + * pow274; // pow(trace_generator, (safe_div((safe_mult(249, global_values.trace_length)), 65536))). + let pow276 = pow32 + * pow275; // pow(trace_generator, (safe_div((safe_mult(125, global_values.trace_length)), 32768))). + let pow277 = pow32 + * pow276; // pow(trace_generator, (safe_div((safe_mult(251, global_values.trace_length)), 65536))). + let pow278 = pow32 + * pow277; // pow(trace_generator, (safe_div((safe_mult(63, global_values.trace_length)), 16384))). + let pow279 = pow32 + * pow278; // pow(trace_generator, (safe_div((safe_mult(253, global_values.trace_length)), 65536))). + let pow280 = pow41 + * pow279; // pow(trace_generator, (safe_div(global_values.trace_length, 256))). + let pow281 = pow32 + * pow280; // pow(trace_generator, (safe_div((safe_mult(257, global_values.trace_length)), 65536))). + let pow282 = pow32 + * pow281; // pow(trace_generator, (safe_div((safe_mult(129, global_values.trace_length)), 32768))). + let pow283 = pow32 + * pow282; // pow(trace_generator, (safe_div((safe_mult(259, global_values.trace_length)), 65536))). + let pow284 = pow32 + * pow283; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 16384))). + let pow285 = pow32 + * pow284; // pow(trace_generator, (safe_div((safe_mult(261, global_values.trace_length)), 65536))). + let pow286 = pow32 + * pow285; // pow(trace_generator, (safe_div((safe_mult(131, global_values.trace_length)), 32768))). + let pow287 = pow32 + * pow286; // pow(trace_generator, (safe_div((safe_mult(263, global_values.trace_length)), 65536))). + let pow288 = pow32 + * pow287; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 8192))). + let pow289 = pow32 + * pow288; // pow(trace_generator, (safe_div((safe_mult(265, global_values.trace_length)), 65536))). + let pow290 = pow32 + * pow289; // pow(trace_generator, (safe_div((safe_mult(133, global_values.trace_length)), 32768))). + let pow291 = pow32 + * pow290; // pow(trace_generator, (safe_div((safe_mult(267, global_values.trace_length)), 65536))). + let pow292 = pow32 + * pow291; // pow(trace_generator, (safe_div((safe_mult(67, global_values.trace_length)), 16384))). + let pow293 = pow32 + * pow292; // pow(trace_generator, (safe_div((safe_mult(269, global_values.trace_length)), 65536))). + let pow294 = pow32 + * pow293; // pow(trace_generator, (safe_div((safe_mult(135, global_values.trace_length)), 32768))). + let pow295 = pow32 + * pow294; // pow(trace_generator, (safe_div((safe_mult(271, global_values.trace_length)), 65536))). + let pow296 = pow32 + * pow295; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 4096))). + let pow297 = pow32 + * pow296; // pow(trace_generator, (safe_div((safe_mult(273, global_values.trace_length)), 65536))). + let pow298 = pow32 + * pow297; // pow(trace_generator, (safe_div((safe_mult(137, global_values.trace_length)), 32768))). + let pow299 = pow32 + * pow298; // pow(trace_generator, (safe_div((safe_mult(275, global_values.trace_length)), 65536))). + let pow300 = pow32 + * pow299; // pow(trace_generator, (safe_div((safe_mult(69, global_values.trace_length)), 16384))). + let pow301 = pow32 + * pow300; // pow(trace_generator, (safe_div((safe_mult(277, global_values.trace_length)), 65536))). + let pow302 = pow32 + * pow301; // pow(trace_generator, (safe_div((safe_mult(139, global_values.trace_length)), 32768))). + let pow303 = pow32 + * pow302; // pow(trace_generator, (safe_div((safe_mult(279, global_values.trace_length)), 65536))). + let pow304 = pow32 + * pow303; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 8192))). + let pow305 = pow32 + * pow304; // pow(trace_generator, (safe_div((safe_mult(281, global_values.trace_length)), 65536))). + let pow306 = pow32 + * pow305; // pow(trace_generator, (safe_div((safe_mult(141, global_values.trace_length)), 32768))). + let pow307 = pow32 + * pow306; // pow(trace_generator, (safe_div((safe_mult(283, global_values.trace_length)), 65536))). + let pow308 = pow32 + * pow307; // pow(trace_generator, (safe_div((safe_mult(71, global_values.trace_length)), 16384))). + let pow309 = pow32 + * pow308; // pow(trace_generator, (safe_div((safe_mult(285, global_values.trace_length)), 65536))). + let pow310 = pow41 + * pow309; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 2048))). + let pow311 = pow32 + * pow310; // pow(trace_generator, (safe_div((safe_mult(289, global_values.trace_length)), 65536))). + let pow312 = pow32 + * pow311; // pow(trace_generator, (safe_div((safe_mult(145, global_values.trace_length)), 32768))). + let pow313 = pow32 + * pow312; // pow(trace_generator, (safe_div((safe_mult(291, global_values.trace_length)), 65536))). + let pow314 = pow32 + * pow313; // pow(trace_generator, (safe_div((safe_mult(73, global_values.trace_length)), 16384))). + let pow315 = pow32 + * pow314; // pow(trace_generator, (safe_div((safe_mult(293, global_values.trace_length)), 65536))). + let pow316 = pow32 + * pow315; // pow(trace_generator, (safe_div((safe_mult(147, global_values.trace_length)), 32768))). + let pow317 = pow32 + * pow316; // pow(trace_generator, (safe_div((safe_mult(295, global_values.trace_length)), 65536))). + let pow318 = pow32 + * pow317; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 8192))). + let pow319 = pow32 + * pow318; // pow(trace_generator, (safe_div((safe_mult(297, global_values.trace_length)), 65536))). + let pow320 = pow32 + * pow319; // pow(trace_generator, (safe_div((safe_mult(149, global_values.trace_length)), 32768))). + let pow321 = pow32 + * pow320; // pow(trace_generator, (safe_div((safe_mult(299, global_values.trace_length)), 65536))). + let pow322 = pow32 + * pow321; // pow(trace_generator, (safe_div((safe_mult(75, global_values.trace_length)), 16384))). + let pow323 = pow32 + * pow322; // pow(trace_generator, (safe_div((safe_mult(301, global_values.trace_length)), 65536))). + let pow324 = pow32 + * pow323; // pow(trace_generator, (safe_div((safe_mult(151, global_values.trace_length)), 32768))). + let pow325 = pow32 + * pow324; // pow(trace_generator, (safe_div((safe_mult(303, global_values.trace_length)), 65536))). + let pow326 = pow32 + * pow325; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 4096))). + let pow327 = pow32 + * pow326; // pow(trace_generator, (safe_div((safe_mult(305, global_values.trace_length)), 65536))). + let pow328 = pow32 + * pow327; // pow(trace_generator, (safe_div((safe_mult(153, global_values.trace_length)), 32768))). + let pow329 = pow32 + * pow328; // pow(trace_generator, (safe_div((safe_mult(307, global_values.trace_length)), 65536))). + let pow330 = pow32 + * pow329; // pow(trace_generator, (safe_div((safe_mult(77, global_values.trace_length)), 16384))). + let pow331 = pow32 + * pow330; // pow(trace_generator, (safe_div((safe_mult(309, global_values.trace_length)), 65536))). + let pow332 = pow32 + * pow331; // pow(trace_generator, (safe_div((safe_mult(155, global_values.trace_length)), 32768))). + let pow333 = pow32 + * pow332; // pow(trace_generator, (safe_div((safe_mult(311, global_values.trace_length)), 65536))). + let pow334 = pow32 + * pow333; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 8192))). + let pow335 = pow32 + * pow334; // pow(trace_generator, (safe_div((safe_mult(313, global_values.trace_length)), 65536))). + let pow336 = pow32 + * pow335; // pow(trace_generator, (safe_div((safe_mult(157, global_values.trace_length)), 32768))). + let pow337 = pow32 + * pow336; // pow(trace_generator, (safe_div((safe_mult(315, global_values.trace_length)), 65536))). + let pow338 = pow32 + * pow337; // pow(trace_generator, (safe_div((safe_mult(79, global_values.trace_length)), 16384))). + let pow339 = pow32 + * pow338; // pow(trace_generator, (safe_div((safe_mult(317, global_values.trace_length)), 65536))). + let pow340 = pow41 + * pow339; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 1024))). + let pow341 = pow32 + * pow340; // pow(trace_generator, (safe_div((safe_mult(321, global_values.trace_length)), 65536))). + let pow342 = pow32 + * pow341; // pow(trace_generator, (safe_div((safe_mult(161, global_values.trace_length)), 32768))). + let pow343 = pow32 + * pow342; // pow(trace_generator, (safe_div((safe_mult(323, global_values.trace_length)), 65536))). + let pow344 = pow32 + * pow343; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 16384))). + let pow345 = pow32 + * pow344; // pow(trace_generator, (safe_div((safe_mult(325, global_values.trace_length)), 65536))). + let pow346 = pow32 + * pow345; // pow(trace_generator, (safe_div((safe_mult(163, global_values.trace_length)), 32768))). + let pow347 = pow32 + * pow346; // pow(trace_generator, (safe_div((safe_mult(327, global_values.trace_length)), 65536))). + let pow348 = pow32 + * pow347; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 8192))). + let pow349 = pow32 + * pow348; // pow(trace_generator, (safe_div((safe_mult(329, global_values.trace_length)), 65536))). + let pow350 = pow32 + * pow349; // pow(trace_generator, (safe_div((safe_mult(165, global_values.trace_length)), 32768))). + let pow351 = pow32 + * pow350; // pow(trace_generator, (safe_div((safe_mult(331, global_values.trace_length)), 65536))). + let pow352 = pow32 + * pow351; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 16384))). + let pow353 = pow32 + * pow352; // pow(trace_generator, (safe_div((safe_mult(333, global_values.trace_length)), 65536))). + let pow354 = pow32 + * pow353; // pow(trace_generator, (safe_div((safe_mult(167, global_values.trace_length)), 32768))). + let pow355 = pow32 + * pow354; // pow(trace_generator, (safe_div((safe_mult(335, global_values.trace_length)), 65536))). + let pow356 = pow32 + * pow355; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 4096))). + let pow357 = pow32 + * pow356; // pow(trace_generator, (safe_div((safe_mult(337, global_values.trace_length)), 65536))). + let pow358 = pow32 + * pow357; // pow(trace_generator, (safe_div((safe_mult(169, global_values.trace_length)), 32768))). + let pow359 = pow32 + * pow358; // pow(trace_generator, (safe_div((safe_mult(339, global_values.trace_length)), 65536))). + let pow360 = pow32 + * pow359; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 16384))). + let pow361 = pow32 + * pow360; // pow(trace_generator, (safe_div((safe_mult(341, global_values.trace_length)), 65536))). + let pow362 = pow32 + * pow361; // pow(trace_generator, (safe_div((safe_mult(171, global_values.trace_length)), 32768))). + let pow363 = pow32 + * pow362; // pow(trace_generator, (safe_div((safe_mult(343, global_values.trace_length)), 65536))). + let pow364 = pow32 + * pow363; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 8192))). + let pow365 = pow32 + * pow364; // pow(trace_generator, (safe_div((safe_mult(345, global_values.trace_length)), 65536))). + let pow366 = pow32 + * pow365; // pow(trace_generator, (safe_div((safe_mult(173, global_values.trace_length)), 32768))). + let pow367 = pow32 + * pow366; // pow(trace_generator, (safe_div((safe_mult(347, global_values.trace_length)), 65536))). + let pow368 = pow32 + * pow367; // pow(trace_generator, (safe_div((safe_mult(87, global_values.trace_length)), 16384))). + let pow369 = pow32 + * pow368; // pow(trace_generator, (safe_div((safe_mult(349, global_values.trace_length)), 65536))). + let pow370 = pow41 + * pow369; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 2048))). + let pow371 = pow32 + * pow370; // pow(trace_generator, (safe_div((safe_mult(353, global_values.trace_length)), 65536))). + let pow372 = pow32 + * pow371; // pow(trace_generator, (safe_div((safe_mult(177, global_values.trace_length)), 32768))). + let pow373 = pow32 + * pow372; // pow(trace_generator, (safe_div((safe_mult(355, global_values.trace_length)), 65536))). + let pow374 = pow32 + * pow373; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 16384))). + let pow375 = pow32 + * pow374; // pow(trace_generator, (safe_div((safe_mult(357, global_values.trace_length)), 65536))). + let pow376 = pow32 + * pow375; // pow(trace_generator, (safe_div((safe_mult(179, global_values.trace_length)), 32768))). + let pow377 = pow32 + * pow376; // pow(trace_generator, (safe_div((safe_mult(359, global_values.trace_length)), 65536))). + let pow378 = pow32 + * pow377; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 8192))). + let pow379 = pow32 + * pow378; // pow(trace_generator, (safe_div((safe_mult(361, global_values.trace_length)), 65536))). + let pow380 = pow32 + * pow379; // pow(trace_generator, (safe_div((safe_mult(181, global_values.trace_length)), 32768))). + let pow381 = pow32 + * pow380; // pow(trace_generator, (safe_div((safe_mult(363, global_values.trace_length)), 65536))). + let pow382 = pow32 + * pow381; // pow(trace_generator, (safe_div((safe_mult(91, global_values.trace_length)), 16384))). + let pow383 = pow32 + * pow382; // pow(trace_generator, (safe_div((safe_mult(365, global_values.trace_length)), 65536))). + let pow384 = pow32 + * pow383; // pow(trace_generator, (safe_div((safe_mult(183, global_values.trace_length)), 32768))). + let pow385 = pow32 + * pow384; // pow(trace_generator, (safe_div((safe_mult(367, global_values.trace_length)), 65536))). + let pow386 = pow32 + * pow385; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 4096))). + let pow387 = pow32 + * pow386; // pow(trace_generator, (safe_div((safe_mult(369, global_values.trace_length)), 65536))). + let pow388 = pow32 + * pow387; // pow(trace_generator, (safe_div((safe_mult(185, global_values.trace_length)), 32768))). + let pow389 = pow32 + * pow388; // pow(trace_generator, (safe_div((safe_mult(371, global_values.trace_length)), 65536))). + let pow390 = pow32 + * pow389; // pow(trace_generator, (safe_div((safe_mult(93, global_values.trace_length)), 16384))). + let pow391 = pow32 + * pow390; // pow(trace_generator, (safe_div((safe_mult(373, global_values.trace_length)), 65536))). + let pow392 = pow32 + * pow391; // pow(trace_generator, (safe_div((safe_mult(187, global_values.trace_length)), 32768))). + let pow393 = pow32 + * pow392; // pow(trace_generator, (safe_div((safe_mult(375, global_values.trace_length)), 65536))). + let pow394 = pow32 + * pow393; // pow(trace_generator, (safe_div((safe_mult(47, global_values.trace_length)), 8192))). + let pow395 = pow32 + * pow394; // pow(trace_generator, (safe_div((safe_mult(377, global_values.trace_length)), 65536))). + let pow396 = pow32 + * pow395; // pow(trace_generator, (safe_div((safe_mult(189, global_values.trace_length)), 32768))). + let pow397 = pow32 + * pow396; // pow(trace_generator, (safe_div((safe_mult(379, global_values.trace_length)), 65536))). + let pow398 = pow32 + * pow397; // pow(trace_generator, (safe_div((safe_mult(95, global_values.trace_length)), 16384))). + let pow399 = pow32 + * pow398; // pow(trace_generator, (safe_div((safe_mult(381, global_values.trace_length)), 65536))). + let pow400 = pow41 + * pow399; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 512))). + let pow401 = pow32 + * pow400; // pow(trace_generator, (safe_div((safe_mult(385, global_values.trace_length)), 65536))). + let pow402 = pow32 + * pow401; // pow(trace_generator, (safe_div((safe_mult(193, global_values.trace_length)), 32768))). + let pow403 = pow32 + * pow402; // pow(trace_generator, (safe_div((safe_mult(387, global_values.trace_length)), 65536))). + let pow404 = pow32 + * pow403; // pow(trace_generator, (safe_div((safe_mult(97, global_values.trace_length)), 16384))). + let pow405 = pow32 + * pow404; // pow(trace_generator, (safe_div((safe_mult(389, global_values.trace_length)), 65536))). + let pow406 = pow32 + * pow405; // pow(trace_generator, (safe_div((safe_mult(195, global_values.trace_length)), 32768))). + let pow407 = pow32 + * pow406; // pow(trace_generator, (safe_div((safe_mult(391, global_values.trace_length)), 65536))). + let pow408 = pow32 + * pow407; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 8192))). + let pow409 = pow32 + * pow408; // pow(trace_generator, (safe_div((safe_mult(393, global_values.trace_length)), 65536))). + let pow410 = pow32 + * pow409; // pow(trace_generator, (safe_div((safe_mult(197, global_values.trace_length)), 32768))). + let pow411 = pow32 + * pow410; // pow(trace_generator, (safe_div((safe_mult(395, global_values.trace_length)), 65536))). + let pow412 = pow32 + * pow411; // pow(trace_generator, (safe_div((safe_mult(99, global_values.trace_length)), 16384))). + let pow413 = pow32 + * pow412; // pow(trace_generator, (safe_div((safe_mult(397, global_values.trace_length)), 65536))). + let pow414 = pow32 + * pow413; // pow(trace_generator, (safe_div((safe_mult(199, global_values.trace_length)), 32768))). + let pow415 = pow32 + * pow414; // pow(trace_generator, (safe_div((safe_mult(399, global_values.trace_length)), 65536))). + let pow416 = pow32 + * pow415; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 4096))). + let pow417 = pow32 + * pow416; // pow(trace_generator, (safe_div((safe_mult(401, global_values.trace_length)), 65536))). + let pow418 = pow32 + * pow417; // pow(trace_generator, (safe_div((safe_mult(201, global_values.trace_length)), 32768))). + let pow419 = pow32 + * pow418; // pow(trace_generator, (safe_div((safe_mult(403, global_values.trace_length)), 65536))). + let pow420 = pow32 + * pow419; // pow(trace_generator, (safe_div((safe_mult(101, global_values.trace_length)), 16384))). + let pow421 = pow32 + * pow420; // pow(trace_generator, (safe_div((safe_mult(405, global_values.trace_length)), 65536))). + let pow422 = pow32 + * pow421; // pow(trace_generator, (safe_div((safe_mult(203, global_values.trace_length)), 32768))). + let pow423 = pow32 + * pow422; // pow(trace_generator, (safe_div((safe_mult(407, global_values.trace_length)), 65536))). + let pow424 = pow32 + * pow423; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 8192))). + let pow425 = pow32 + * pow424; // pow(trace_generator, (safe_div((safe_mult(409, global_values.trace_length)), 65536))). + let pow426 = pow32 + * pow425; // pow(trace_generator, (safe_div((safe_mult(205, global_values.trace_length)), 32768))). + let pow427 = pow32 + * pow426; // pow(trace_generator, (safe_div((safe_mult(411, global_values.trace_length)), 65536))). + let pow428 = pow32 + * pow427; // pow(trace_generator, (safe_div((safe_mult(103, global_values.trace_length)), 16384))). + let pow429 = pow32 + * pow428; // pow(trace_generator, (safe_div((safe_mult(413, global_values.trace_length)), 65536))). + let pow430 = pow41 + * pow429; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 2048))). + let pow431 = pow32 + * pow430; // pow(trace_generator, (safe_div((safe_mult(417, global_values.trace_length)), 65536))). + let pow432 = pow32 + * pow431; // pow(trace_generator, (safe_div((safe_mult(209, global_values.trace_length)), 32768))). + let pow433 = pow32 + * pow432; // pow(trace_generator, (safe_div((safe_mult(419, global_values.trace_length)), 65536))). + let pow434 = pow32 + * pow433; // pow(trace_generator, (safe_div((safe_mult(105, global_values.trace_length)), 16384))). + let pow435 = pow32 + * pow434; // pow(trace_generator, (safe_div((safe_mult(421, global_values.trace_length)), 65536))). + let pow436 = pow32 + * pow435; // pow(trace_generator, (safe_div((safe_mult(211, global_values.trace_length)), 32768))). + let pow437 = pow32 + * pow436; // pow(trace_generator, (safe_div((safe_mult(423, global_values.trace_length)), 65536))). + let pow438 = pow32 + * pow437; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 8192))). + let pow439 = pow32 + * pow438; // pow(trace_generator, (safe_div((safe_mult(425, global_values.trace_length)), 65536))). + let pow440 = pow32 + * pow439; // pow(trace_generator, (safe_div((safe_mult(213, global_values.trace_length)), 32768))). + let pow441 = pow32 + * pow440; // pow(trace_generator, (safe_div((safe_mult(427, global_values.trace_length)), 65536))). + let pow442 = pow32 + * pow441; // pow(trace_generator, (safe_div((safe_mult(107, global_values.trace_length)), 16384))). + let pow443 = pow32 + * pow442; // pow(trace_generator, (safe_div((safe_mult(429, global_values.trace_length)), 65536))). + let pow444 = pow32 + * pow443; // pow(trace_generator, (safe_div((safe_mult(215, global_values.trace_length)), 32768))). + let pow445 = pow32 + * pow444; // pow(trace_generator, (safe_div((safe_mult(431, global_values.trace_length)), 65536))). + let pow446 = pow32 + * pow445; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 4096))). + let pow447 = pow32 + * pow446; // pow(trace_generator, (safe_div((safe_mult(433, global_values.trace_length)), 65536))). + let pow448 = pow32 + * pow447; // pow(trace_generator, (safe_div((safe_mult(217, global_values.trace_length)), 32768))). + let pow449 = pow32 + * pow448; // pow(trace_generator, (safe_div((safe_mult(435, global_values.trace_length)), 65536))). + let pow450 = pow32 + * pow449; // pow(trace_generator, (safe_div((safe_mult(109, global_values.trace_length)), 16384))). + let pow451 = pow32 + * pow450; // pow(trace_generator, (safe_div((safe_mult(437, global_values.trace_length)), 65536))). + let pow452 = pow32 + * pow451; // pow(trace_generator, (safe_div((safe_mult(219, global_values.trace_length)), 32768))). + let pow453 = pow32 + * pow452; // pow(trace_generator, (safe_div((safe_mult(439, global_values.trace_length)), 65536))). + let pow454 = pow32 + * pow453; // pow(trace_generator, (safe_div((safe_mult(55, global_values.trace_length)), 8192))). + let pow455 = pow32 + * pow454; // pow(trace_generator, (safe_div((safe_mult(441, global_values.trace_length)), 65536))). + let pow456 = pow32 + * pow455; // pow(trace_generator, (safe_div((safe_mult(221, global_values.trace_length)), 32768))). + let pow457 = pow32 + * pow456; // pow(trace_generator, (safe_div((safe_mult(443, global_values.trace_length)), 65536))). + let pow458 = pow32 + * pow457; // pow(trace_generator, (safe_div((safe_mult(111, global_values.trace_length)), 16384))). + let pow459 = pow32 + * pow458; // pow(trace_generator, (safe_div((safe_mult(445, global_values.trace_length)), 65536))). + let pow460 = pow41 + * pow459; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 1024))). + let pow461 = pow32 + * pow460; // pow(trace_generator, (safe_div((safe_mult(449, global_values.trace_length)), 65536))). + let pow462 = pow32 + * pow461; // pow(trace_generator, (safe_div((safe_mult(225, global_values.trace_length)), 32768))). + let pow463 = pow32 + * pow462; // pow(trace_generator, (safe_div((safe_mult(451, global_values.trace_length)), 65536))). + let pow464 = pow32 + * pow463; // pow(trace_generator, (safe_div((safe_mult(113, global_values.trace_length)), 16384))). + let pow465 = pow32 + * pow464; // pow(trace_generator, (safe_div((safe_mult(453, global_values.trace_length)), 65536))). + let pow466 = pow32 + * pow465; // pow(trace_generator, (safe_div((safe_mult(227, global_values.trace_length)), 32768))). + let pow467 = pow32 + * pow466; // pow(trace_generator, (safe_div((safe_mult(455, global_values.trace_length)), 65536))). + let pow468 = pow32 + * pow467; // pow(trace_generator, (safe_div((safe_mult(57, global_values.trace_length)), 8192))). + let pow469 = pow32 + * pow468; // pow(trace_generator, (safe_div((safe_mult(457, global_values.trace_length)), 65536))). + let pow470 = pow32 + * pow469; // pow(trace_generator, (safe_div((safe_mult(229, global_values.trace_length)), 32768))). + let pow471 = pow32 + * pow470; // pow(trace_generator, (safe_div((safe_mult(459, global_values.trace_length)), 65536))). + let pow472 = pow32 + * pow471; // pow(trace_generator, (safe_div((safe_mult(115, global_values.trace_length)), 16384))). + let pow473 = pow32 + * pow472; // pow(trace_generator, (safe_div((safe_mult(461, global_values.trace_length)), 65536))). + let pow474 = pow32 + * pow473; // pow(trace_generator, (safe_div((safe_mult(231, global_values.trace_length)), 32768))). + let pow475 = pow32 + * pow474; // pow(trace_generator, (safe_div((safe_mult(463, global_values.trace_length)), 65536))). + let pow476 = pow32 + * pow475; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 4096))). + let pow477 = pow32 + * pow476; // pow(trace_generator, (safe_div((safe_mult(465, global_values.trace_length)), 65536))). + let pow478 = pow32 + * pow477; // pow(trace_generator, (safe_div((safe_mult(233, global_values.trace_length)), 32768))). + let pow479 = pow32 + * pow478; // pow(trace_generator, (safe_div((safe_mult(467, global_values.trace_length)), 65536))). + let pow480 = pow32 + * pow479; // pow(trace_generator, (safe_div((safe_mult(117, global_values.trace_length)), 16384))). + let pow481 = pow32 + * pow480; // pow(trace_generator, (safe_div((safe_mult(469, global_values.trace_length)), 65536))). + let pow482 = pow32 + * pow481; // pow(trace_generator, (safe_div((safe_mult(235, global_values.trace_length)), 32768))). + let pow483 = pow32 + * pow482; // pow(trace_generator, (safe_div((safe_mult(471, global_values.trace_length)), 65536))). + let pow484 = pow32 + * pow483; // pow(trace_generator, (safe_div((safe_mult(59, global_values.trace_length)), 8192))). + let pow485 = pow32 + * pow484; // pow(trace_generator, (safe_div((safe_mult(473, global_values.trace_length)), 65536))). + let pow486 = pow32 + * pow485; // pow(trace_generator, (safe_div((safe_mult(237, global_values.trace_length)), 32768))). + let pow487 = pow32 + * pow486; // pow(trace_generator, (safe_div((safe_mult(475, global_values.trace_length)), 65536))). + let pow488 = pow32 + * pow487; // pow(trace_generator, (safe_div((safe_mult(119, global_values.trace_length)), 16384))). + let pow489 = pow32 + * pow488; // pow(trace_generator, (safe_div((safe_mult(477, global_values.trace_length)), 65536))). + let pow490 = pow41 + * pow489; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 2048))). + let pow491 = pow32 + * pow490; // pow(trace_generator, (safe_div((safe_mult(481, global_values.trace_length)), 65536))). + let pow492 = pow32 + * pow491; // pow(trace_generator, (safe_div((safe_mult(241, global_values.trace_length)), 32768))). + let pow493 = pow32 + * pow492; // pow(trace_generator, (safe_div((safe_mult(483, global_values.trace_length)), 65536))). + let pow494 = pow32 + * pow493; // pow(trace_generator, (safe_div((safe_mult(121, global_values.trace_length)), 16384))). + let pow495 = pow32 + * pow494; // pow(trace_generator, (safe_div((safe_mult(485, global_values.trace_length)), 65536))). + let pow496 = pow32 + * pow495; // pow(trace_generator, (safe_div((safe_mult(243, global_values.trace_length)), 32768))). + let pow497 = pow32 + * pow496; // pow(trace_generator, (safe_div((safe_mult(487, global_values.trace_length)), 65536))). + let pow498 = pow32 + * pow497; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 8192))). + let pow499 = pow32 + * pow498; // pow(trace_generator, (safe_div((safe_mult(489, global_values.trace_length)), 65536))). + let pow500 = pow32 + * pow499; // pow(trace_generator, (safe_div((safe_mult(245, global_values.trace_length)), 32768))). + let pow501 = pow32 + * pow500; // pow(trace_generator, (safe_div((safe_mult(491, global_values.trace_length)), 65536))). + let pow502 = pow32 + * pow501; // pow(trace_generator, (safe_div((safe_mult(123, global_values.trace_length)), 16384))). + let pow503 = pow32 + * pow502; // pow(trace_generator, (safe_div((safe_mult(493, global_values.trace_length)), 65536))). + let pow504 = pow32 + * pow503; // pow(trace_generator, (safe_div((safe_mult(247, global_values.trace_length)), 32768))). + let pow505 = pow32 + * pow504; // pow(trace_generator, (safe_div((safe_mult(495, global_values.trace_length)), 65536))). + let pow506 = pow32 + * pow505; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 4096))). + let pow507 = pow32 + * pow506; // pow(trace_generator, (safe_div((safe_mult(497, global_values.trace_length)), 65536))). + let pow508 = pow32 + * pow507; // pow(trace_generator, (safe_div((safe_mult(249, global_values.trace_length)), 32768))). + let pow509 = pow32 + * pow508; // pow(trace_generator, (safe_div((safe_mult(499, global_values.trace_length)), 65536))). + let pow510 = pow32 + * pow509; // pow(trace_generator, (safe_div((safe_mult(125, global_values.trace_length)), 16384))). + let pow511 = pow32 + * pow510; // pow(trace_generator, (safe_div((safe_mult(501, global_values.trace_length)), 65536))). + let pow512 = pow32 + * pow511; // pow(trace_generator, (safe_div((safe_mult(251, global_values.trace_length)), 32768))). + let pow513 = pow32 + * pow512; // pow(trace_generator, (safe_div((safe_mult(503, global_values.trace_length)), 65536))). + let pow514 = pow32 + * pow513; // pow(trace_generator, (safe_div((safe_mult(63, global_values.trace_length)), 8192))). + let pow515 = pow32 + * pow514; // pow(trace_generator, (safe_div((safe_mult(505, global_values.trace_length)), 65536))). + let pow516 = pow32 + * pow515; // pow(trace_generator, (safe_div((safe_mult(253, global_values.trace_length)), 32768))). + let pow517 = pow32 + * pow516; // pow(trace_generator, (safe_div((safe_mult(507, global_values.trace_length)), 65536))). + let pow518 = pow32 + * pow517; // pow(trace_generator, (safe_div((safe_mult(127, global_values.trace_length)), 16384))). + let pow519 = pow32 + * pow518; // pow(trace_generator, (safe_div((safe_mult(509, global_values.trace_length)), 65536))). + let pow520 = pow41 + * pow519; // pow(trace_generator, (safe_div(global_values.trace_length, 128))). + let pow521 = pow32 + * pow520; // pow(trace_generator, (safe_div((safe_mult(513, global_values.trace_length)), 65536))). + let pow522 = pow32 + * pow521; // pow(trace_generator, (safe_div((safe_mult(257, global_values.trace_length)), 32768))). + let pow523 = pow32 + * pow522; // pow(trace_generator, (safe_div((safe_mult(515, global_values.trace_length)), 65536))). + let pow524 = pow32 + * pow523; // pow(trace_generator, (safe_div((safe_mult(129, global_values.trace_length)), 16384))). + let pow525 = pow32 + * pow524; // pow(trace_generator, (safe_div((safe_mult(517, global_values.trace_length)), 65536))). + let pow526 = pow32 + * pow525; // pow(trace_generator, (safe_div((safe_mult(259, global_values.trace_length)), 32768))). + let pow527 = pow32 + * pow526; // pow(trace_generator, (safe_div((safe_mult(519, global_values.trace_length)), 65536))). + let pow528 = pow32 + * pow527; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 8192))). + let pow529 = pow32 + * pow528; // pow(trace_generator, (safe_div((safe_mult(521, global_values.trace_length)), 65536))). + let pow530 = pow32 + * pow529; // pow(trace_generator, (safe_div((safe_mult(261, global_values.trace_length)), 32768))). + let pow531 = pow32 + * pow530; // pow(trace_generator, (safe_div((safe_mult(523, global_values.trace_length)), 65536))). + let pow532 = pow32 + * pow531; // pow(trace_generator, (safe_div((safe_mult(131, global_values.trace_length)), 16384))). + let pow533 = pow32 + * pow532; // pow(trace_generator, (safe_div((safe_mult(525, global_values.trace_length)), 65536))). + let pow534 = pow32 + * pow533; // pow(trace_generator, (safe_div((safe_mult(263, global_values.trace_length)), 32768))). + let pow535 = pow32 + * pow534; // pow(trace_generator, (safe_div((safe_mult(527, global_values.trace_length)), 65536))). + let pow536 = pow32 + * pow535; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 4096))). + let pow537 = pow32 + * pow536; // pow(trace_generator, (safe_div((safe_mult(529, global_values.trace_length)), 65536))). + let pow538 = pow32 + * pow537; // pow(trace_generator, (safe_div((safe_mult(265, global_values.trace_length)), 32768))). + let pow539 = pow32 + * pow538; // pow(trace_generator, (safe_div((safe_mult(531, global_values.trace_length)), 65536))). + let pow540 = pow32 + * pow539; // pow(trace_generator, (safe_div((safe_mult(133, global_values.trace_length)), 16384))). + let pow541 = pow32 + * pow540; // pow(trace_generator, (safe_div((safe_mult(533, global_values.trace_length)), 65536))). + let pow542 = pow32 + * pow541; // pow(trace_generator, (safe_div((safe_mult(267, global_values.trace_length)), 32768))). + let pow543 = pow32 + * pow542; // pow(trace_generator, (safe_div((safe_mult(535, global_values.trace_length)), 65536))). + let pow544 = pow32 + * pow543; // pow(trace_generator, (safe_div((safe_mult(67, global_values.trace_length)), 8192))). + let pow545 = pow32 + * pow544; // pow(trace_generator, (safe_div((safe_mult(537, global_values.trace_length)), 65536))). + let pow546 = pow32 + * pow545; // pow(trace_generator, (safe_div((safe_mult(269, global_values.trace_length)), 32768))). + let pow547 = pow32 + * pow546; // pow(trace_generator, (safe_div((safe_mult(539, global_values.trace_length)), 65536))). + let pow548 = pow32 + * pow547; // pow(trace_generator, (safe_div((safe_mult(135, global_values.trace_length)), 16384))). + let pow549 = pow32 + * pow548; // pow(trace_generator, (safe_div((safe_mult(541, global_values.trace_length)), 65536))). + let pow550 = pow41 + * pow549; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 2048))). + let pow551 = pow32 + * pow550; // pow(trace_generator, (safe_div((safe_mult(545, global_values.trace_length)), 65536))). + let pow552 = pow32 + * pow551; // pow(trace_generator, (safe_div((safe_mult(273, global_values.trace_length)), 32768))). + let pow553 = pow32 + * pow552; // pow(trace_generator, (safe_div((safe_mult(547, global_values.trace_length)), 65536))). + let pow554 = pow32 + * pow553; // pow(trace_generator, (safe_div((safe_mult(137, global_values.trace_length)), 16384))). + let pow555 = pow32 + * pow554; // pow(trace_generator, (safe_div((safe_mult(549, global_values.trace_length)), 65536))). + let pow556 = pow32 + * pow555; // pow(trace_generator, (safe_div((safe_mult(275, global_values.trace_length)), 32768))). + let pow557 = pow32 + * pow556; // pow(trace_generator, (safe_div((safe_mult(551, global_values.trace_length)), 65536))). + let pow558 = pow32 + * pow557; // pow(trace_generator, (safe_div((safe_mult(69, global_values.trace_length)), 8192))). + let pow559 = pow32 + * pow558; // pow(trace_generator, (safe_div((safe_mult(553, global_values.trace_length)), 65536))). + let pow560 = pow32 + * pow559; // pow(trace_generator, (safe_div((safe_mult(277, global_values.trace_length)), 32768))). + let pow561 = pow32 + * pow560; // pow(trace_generator, (safe_div((safe_mult(555, global_values.trace_length)), 65536))). + let pow562 = pow32 + * pow561; // pow(trace_generator, (safe_div((safe_mult(139, global_values.trace_length)), 16384))). + let pow563 = pow32 + * pow562; // pow(trace_generator, (safe_div((safe_mult(557, global_values.trace_length)), 65536))). + let pow564 = pow32 + * pow563; // pow(trace_generator, (safe_div((safe_mult(279, global_values.trace_length)), 32768))). + let pow565 = pow32 + * pow564; // pow(trace_generator, (safe_div((safe_mult(559, global_values.trace_length)), 65536))). + let pow566 = pow32 + * pow565; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 4096))). + let pow567 = pow32 + * pow566; // pow(trace_generator, (safe_div((safe_mult(561, global_values.trace_length)), 65536))). + let pow568 = pow32 + * pow567; // pow(trace_generator, (safe_div((safe_mult(281, global_values.trace_length)), 32768))). + let pow569 = pow32 + * pow568; // pow(trace_generator, (safe_div((safe_mult(563, global_values.trace_length)), 65536))). + let pow570 = pow32 + * pow569; // pow(trace_generator, (safe_div((safe_mult(141, global_values.trace_length)), 16384))). + let pow571 = pow32 + * pow570; // pow(trace_generator, (safe_div((safe_mult(565, global_values.trace_length)), 65536))). + let pow572 = pow32 + * pow571; // pow(trace_generator, (safe_div((safe_mult(283, global_values.trace_length)), 32768))). + let pow573 = pow32 + * pow572; // pow(trace_generator, (safe_div((safe_mult(567, global_values.trace_length)), 65536))). + let pow574 = pow32 + * pow573; // pow(trace_generator, (safe_div((safe_mult(71, global_values.trace_length)), 8192))). + let pow575 = pow32 + * pow574; // pow(trace_generator, (safe_div((safe_mult(569, global_values.trace_length)), 65536))). + let pow576 = pow32 + * pow575; // pow(trace_generator, (safe_div((safe_mult(285, global_values.trace_length)), 32768))). + let pow577 = pow32 + * pow576; // pow(trace_generator, (safe_div((safe_mult(571, global_values.trace_length)), 65536))). + let pow578 = pow32 + * pow577; // pow(trace_generator, (safe_div((safe_mult(143, global_values.trace_length)), 16384))). + let pow579 = pow32 + * pow578; // pow(trace_generator, (safe_div((safe_mult(573, global_values.trace_length)), 65536))). + let pow580 = pow41 + * pow579; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 1024))). + let pow581 = pow32 + * pow580; // pow(trace_generator, (safe_div((safe_mult(577, global_values.trace_length)), 65536))). + let pow582 = pow32 + * pow581; // pow(trace_generator, (safe_div((safe_mult(289, global_values.trace_length)), 32768))). + let pow583 = pow32 + * pow582; // pow(trace_generator, (safe_div((safe_mult(579, global_values.trace_length)), 65536))). + let pow584 = pow32 + * pow583; // pow(trace_generator, (safe_div((safe_mult(145, global_values.trace_length)), 16384))). + let pow585 = pow32 + * pow584; // pow(trace_generator, (safe_div((safe_mult(581, global_values.trace_length)), 65536))). + let pow586 = pow32 + * pow585; // pow(trace_generator, (safe_div((safe_mult(291, global_values.trace_length)), 32768))). + let pow587 = pow32 + * pow586; // pow(trace_generator, (safe_div((safe_mult(583, global_values.trace_length)), 65536))). + let pow588 = pow32 + * pow587; // pow(trace_generator, (safe_div((safe_mult(73, global_values.trace_length)), 8192))). + let pow589 = pow32 + * pow588; // pow(trace_generator, (safe_div((safe_mult(585, global_values.trace_length)), 65536))). + let pow590 = pow32 + * pow589; // pow(trace_generator, (safe_div((safe_mult(293, global_values.trace_length)), 32768))). + let pow591 = pow32 + * pow590; // pow(trace_generator, (safe_div((safe_mult(587, global_values.trace_length)), 65536))). + let pow592 = pow32 + * pow591; // pow(trace_generator, (safe_div((safe_mult(147, global_values.trace_length)), 16384))). + let pow593 = pow32 + * pow592; // pow(trace_generator, (safe_div((safe_mult(589, global_values.trace_length)), 65536))). + let pow594 = pow32 + * pow593; // pow(trace_generator, (safe_div((safe_mult(295, global_values.trace_length)), 32768))). + let pow595 = pow32 + * pow594; // pow(trace_generator, (safe_div((safe_mult(591, global_values.trace_length)), 65536))). + let pow596 = pow32 + * pow595; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 4096))). + let pow597 = pow32 + * pow596; // pow(trace_generator, (safe_div((safe_mult(593, global_values.trace_length)), 65536))). + let pow598 = pow32 + * pow597; // pow(trace_generator, (safe_div((safe_mult(297, global_values.trace_length)), 32768))). + let pow599 = pow32 + * pow598; // pow(trace_generator, (safe_div((safe_mult(595, global_values.trace_length)), 65536))). + let pow600 = pow32 + * pow599; // pow(trace_generator, (safe_div((safe_mult(149, global_values.trace_length)), 16384))). + let pow601 = pow32 + * pow600; // pow(trace_generator, (safe_div((safe_mult(597, global_values.trace_length)), 65536))). + let pow602 = pow32 + * pow601; // pow(trace_generator, (safe_div((safe_mult(299, global_values.trace_length)), 32768))). + let pow603 = pow32 + * pow602; // pow(trace_generator, (safe_div((safe_mult(599, global_values.trace_length)), 65536))). + let pow604 = pow32 + * pow603; // pow(trace_generator, (safe_div((safe_mult(75, global_values.trace_length)), 8192))). + let pow605 = pow32 + * pow604; // pow(trace_generator, (safe_div((safe_mult(601, global_values.trace_length)), 65536))). + let pow606 = pow32 + * pow605; // pow(trace_generator, (safe_div((safe_mult(301, global_values.trace_length)), 32768))). + let pow607 = pow32 + * pow606; // pow(trace_generator, (safe_div((safe_mult(603, global_values.trace_length)), 65536))). + let pow608 = pow32 + * pow607; // pow(trace_generator, (safe_div((safe_mult(151, global_values.trace_length)), 16384))). + let pow609 = pow32 + * pow608; // pow(trace_generator, (safe_div((safe_mult(605, global_values.trace_length)), 65536))). + let pow610 = pow41 + * pow609; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 2048))). + let pow611 = pow32 + * pow610; // pow(trace_generator, (safe_div((safe_mult(609, global_values.trace_length)), 65536))). + let pow612 = pow32 + * pow611; // pow(trace_generator, (safe_div((safe_mult(305, global_values.trace_length)), 32768))). + let pow613 = pow32 + * pow612; // pow(trace_generator, (safe_div((safe_mult(611, global_values.trace_length)), 65536))). + let pow614 = pow32 + * pow613; // pow(trace_generator, (safe_div((safe_mult(153, global_values.trace_length)), 16384))). + let pow615 = pow32 + * pow614; // pow(trace_generator, (safe_div((safe_mult(613, global_values.trace_length)), 65536))). + let pow616 = pow32 + * pow615; // pow(trace_generator, (safe_div((safe_mult(307, global_values.trace_length)), 32768))). + let pow617 = pow32 + * pow616; // pow(trace_generator, (safe_div((safe_mult(615, global_values.trace_length)), 65536))). + let pow618 = pow32 + * pow617; // pow(trace_generator, (safe_div((safe_mult(77, global_values.trace_length)), 8192))). + let pow619 = pow32 + * pow618; // pow(trace_generator, (safe_div((safe_mult(617, global_values.trace_length)), 65536))). + let pow620 = pow32 + * pow619; // pow(trace_generator, (safe_div((safe_mult(309, global_values.trace_length)), 32768))). + let pow621 = pow32 + * pow620; // pow(trace_generator, (safe_div((safe_mult(619, global_values.trace_length)), 65536))). + let pow622 = pow32 + * pow621; // pow(trace_generator, (safe_div((safe_mult(155, global_values.trace_length)), 16384))). + let pow623 = pow32 + * pow622; // pow(trace_generator, (safe_div((safe_mult(621, global_values.trace_length)), 65536))). + let pow624 = pow32 + * pow623; // pow(trace_generator, (safe_div((safe_mult(311, global_values.trace_length)), 32768))). + let pow625 = pow32 + * pow624; // pow(trace_generator, (safe_div((safe_mult(623, global_values.trace_length)), 65536))). + let pow626 = pow32 + * pow625; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 4096))). + let pow627 = pow32 + * pow626; // pow(trace_generator, (safe_div((safe_mult(625, global_values.trace_length)), 65536))). + let pow628 = pow32 + * pow627; // pow(trace_generator, (safe_div((safe_mult(313, global_values.trace_length)), 32768))). + let pow629 = pow32 + * pow628; // pow(trace_generator, (safe_div((safe_mult(627, global_values.trace_length)), 65536))). + let pow630 = pow32 + * pow629; // pow(trace_generator, (safe_div((safe_mult(157, global_values.trace_length)), 16384))). + let pow631 = pow32 + * pow630; // pow(trace_generator, (safe_div((safe_mult(629, global_values.trace_length)), 65536))). + let pow632 = pow32 + * pow631; // pow(trace_generator, (safe_div((safe_mult(315, global_values.trace_length)), 32768))). + let pow633 = pow32 + * pow632; // pow(trace_generator, (safe_div((safe_mult(631, global_values.trace_length)), 65536))). + let pow634 = pow32 + * pow633; // pow(trace_generator, (safe_div((safe_mult(79, global_values.trace_length)), 8192))). + let pow635 = pow32 + * pow634; // pow(trace_generator, (safe_div((safe_mult(633, global_values.trace_length)), 65536))). + let pow636 = pow32 + * pow635; // pow(trace_generator, (safe_div((safe_mult(317, global_values.trace_length)), 32768))). + let pow637 = pow32 + * pow636; // pow(trace_generator, (safe_div((safe_mult(635, global_values.trace_length)), 65536))). + let pow638 = pow32 + * pow637; // pow(trace_generator, (safe_div((safe_mult(159, global_values.trace_length)), 16384))). + let pow639 = pow32 + * pow638; // pow(trace_generator, (safe_div((safe_mult(637, global_values.trace_length)), 65536))). + let pow640 = pow41 + * pow639; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 512))). + let pow641 = pow32 + * pow640; // pow(trace_generator, (safe_div((safe_mult(641, global_values.trace_length)), 65536))). + let pow642 = pow32 + * pow641; // pow(trace_generator, (safe_div((safe_mult(321, global_values.trace_length)), 32768))). + let pow643 = pow32 + * pow642; // pow(trace_generator, (safe_div((safe_mult(643, global_values.trace_length)), 65536))). + let pow644 = pow32 + * pow643; // pow(trace_generator, (safe_div((safe_mult(161, global_values.trace_length)), 16384))). + let pow645 = pow32 + * pow644; // pow(trace_generator, (safe_div((safe_mult(645, global_values.trace_length)), 65536))). + let pow646 = pow32 + * pow645; // pow(trace_generator, (safe_div((safe_mult(323, global_values.trace_length)), 32768))). + let pow647 = pow32 + * pow646; // pow(trace_generator, (safe_div((safe_mult(647, global_values.trace_length)), 65536))). + let pow648 = pow32 + * pow647; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 8192))). + let pow649 = pow32 + * pow648; // pow(trace_generator, (safe_div((safe_mult(649, global_values.trace_length)), 65536))). + let pow650 = pow32 + * pow649; // pow(trace_generator, (safe_div((safe_mult(325, global_values.trace_length)), 32768))). + let pow651 = pow32 + * pow650; // pow(trace_generator, (safe_div((safe_mult(651, global_values.trace_length)), 65536))). + let pow652 = pow32 + * pow651; // pow(trace_generator, (safe_div((safe_mult(163, global_values.trace_length)), 16384))). + let pow653 = pow32 + * pow652; // pow(trace_generator, (safe_div((safe_mult(653, global_values.trace_length)), 65536))). + let pow654 = pow32 + * pow653; // pow(trace_generator, (safe_div((safe_mult(327, global_values.trace_length)), 32768))). + let pow655 = pow32 + * pow654; // pow(trace_generator, (safe_div((safe_mult(655, global_values.trace_length)), 65536))). + let pow656 = pow32 + * pow655; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 4096))). + let pow657 = pow32 + * pow656; // pow(trace_generator, (safe_div((safe_mult(657, global_values.trace_length)), 65536))). + let pow658 = pow32 + * pow657; // pow(trace_generator, (safe_div((safe_mult(329, global_values.trace_length)), 32768))). + let pow659 = pow32 + * pow658; // pow(trace_generator, (safe_div((safe_mult(659, global_values.trace_length)), 65536))). + let pow660 = pow32 + * pow659; // pow(trace_generator, (safe_div((safe_mult(165, global_values.trace_length)), 16384))). + let pow661 = pow32 + * pow660; // pow(trace_generator, (safe_div((safe_mult(661, global_values.trace_length)), 65536))). + let pow662 = pow32 + * pow661; // pow(trace_generator, (safe_div((safe_mult(331, global_values.trace_length)), 32768))). + let pow663 = pow32 + * pow662; // pow(trace_generator, (safe_div((safe_mult(663, global_values.trace_length)), 65536))). + let pow664 = pow32 + * pow663; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 8192))). + let pow665 = pow32 + * pow664; // pow(trace_generator, (safe_div((safe_mult(665, global_values.trace_length)), 65536))). + let pow666 = pow32 + * pow665; // pow(trace_generator, (safe_div((safe_mult(333, global_values.trace_length)), 32768))). + let pow667 = pow32 + * pow666; // pow(trace_generator, (safe_div((safe_mult(667, global_values.trace_length)), 65536))). + let pow668 = pow32 + * pow667; // pow(trace_generator, (safe_div((safe_mult(167, global_values.trace_length)), 16384))). + let pow669 = pow32 + * pow668; // pow(trace_generator, (safe_div((safe_mult(669, global_values.trace_length)), 65536))). + let pow670 = pow41 + * pow669; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 2048))). + let pow671 = pow32 + * pow670; // pow(trace_generator, (safe_div((safe_mult(673, global_values.trace_length)), 65536))). + let pow672 = pow32 + * pow671; // pow(trace_generator, (safe_div((safe_mult(337, global_values.trace_length)), 32768))). + let pow673 = pow32 + * pow672; // pow(trace_generator, (safe_div((safe_mult(675, global_values.trace_length)), 65536))). + let pow674 = pow32 + * pow673; // pow(trace_generator, (safe_div((safe_mult(169, global_values.trace_length)), 16384))). + let pow675 = pow32 + * pow674; // pow(trace_generator, (safe_div((safe_mult(677, global_values.trace_length)), 65536))). + let pow676 = pow32 + * pow675; // pow(trace_generator, (safe_div((safe_mult(339, global_values.trace_length)), 32768))). + let pow677 = pow32 + * pow676; // pow(trace_generator, (safe_div((safe_mult(679, global_values.trace_length)), 65536))). + let pow678 = pow32 + * pow677; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 8192))). + let pow679 = pow32 + * pow678; // pow(trace_generator, (safe_div((safe_mult(681, global_values.trace_length)), 65536))). + let pow680 = pow32 + * pow679; // pow(trace_generator, (safe_div((safe_mult(341, global_values.trace_length)), 32768))). + let pow681 = pow32 + * pow680; // pow(trace_generator, (safe_div((safe_mult(683, global_values.trace_length)), 65536))). + let pow682 = pow32 + * pow681; // pow(trace_generator, (safe_div((safe_mult(171, global_values.trace_length)), 16384))). + let pow683 = pow32 + * pow682; // pow(trace_generator, (safe_div((safe_mult(685, global_values.trace_length)), 65536))). + let pow684 = pow32 + * pow683; // pow(trace_generator, (safe_div((safe_mult(343, global_values.trace_length)), 32768))). + let pow685 = pow32 + * pow684; // pow(trace_generator, (safe_div((safe_mult(687, global_values.trace_length)), 65536))). + let pow686 = pow32 + * pow685; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 4096))). + let pow687 = pow32 + * pow686; // pow(trace_generator, (safe_div((safe_mult(689, global_values.trace_length)), 65536))). + let pow688 = pow32 + * pow687; // pow(trace_generator, (safe_div((safe_mult(345, global_values.trace_length)), 32768))). + let pow689 = pow32 + * pow688; // pow(trace_generator, (safe_div((safe_mult(691, global_values.trace_length)), 65536))). + let pow690 = pow32 + * pow689; // pow(trace_generator, (safe_div((safe_mult(173, global_values.trace_length)), 16384))). + let pow691 = pow32 + * pow690; // pow(trace_generator, (safe_div((safe_mult(693, global_values.trace_length)), 65536))). + let pow692 = pow32 + * pow691; // pow(trace_generator, (safe_div((safe_mult(347, global_values.trace_length)), 32768))). + let pow693 = pow32 + * pow692; // pow(trace_generator, (safe_div((safe_mult(695, global_values.trace_length)), 65536))). + let pow694 = pow32 + * pow693; // pow(trace_generator, (safe_div((safe_mult(87, global_values.trace_length)), 8192))). + let pow695 = pow32 + * pow694; // pow(trace_generator, (safe_div((safe_mult(697, global_values.trace_length)), 65536))). + let pow696 = pow32 + * pow695; // pow(trace_generator, (safe_div((safe_mult(349, global_values.trace_length)), 32768))). + let pow697 = pow32 + * pow696; // pow(trace_generator, (safe_div((safe_mult(699, global_values.trace_length)), 65536))). + let pow698 = pow32 + * pow697; // pow(trace_generator, (safe_div((safe_mult(175, global_values.trace_length)), 16384))). + let pow699 = pow32 + * pow698; // pow(trace_generator, (safe_div((safe_mult(701, global_values.trace_length)), 65536))). + let pow700 = pow41 + * pow699; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 1024))). + let pow701 = pow32 + * pow700; // pow(trace_generator, (safe_div((safe_mult(705, global_values.trace_length)), 65536))). + let pow702 = pow32 + * pow701; // pow(trace_generator, (safe_div((safe_mult(353, global_values.trace_length)), 32768))). + let pow703 = pow32 + * pow702; // pow(trace_generator, (safe_div((safe_mult(707, global_values.trace_length)), 65536))). + let pow704 = pow32 + * pow703; // pow(trace_generator, (safe_div((safe_mult(177, global_values.trace_length)), 16384))). + let pow705 = pow32 + * pow704; // pow(trace_generator, (safe_div((safe_mult(709, global_values.trace_length)), 65536))). + let pow706 = pow32 + * pow705; // pow(trace_generator, (safe_div((safe_mult(355, global_values.trace_length)), 32768))). + let pow707 = pow32 + * pow706; // pow(trace_generator, (safe_div((safe_mult(711, global_values.trace_length)), 65536))). + let pow708 = pow32 + * pow707; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 8192))). + let pow709 = pow32 + * pow708; // pow(trace_generator, (safe_div((safe_mult(713, global_values.trace_length)), 65536))). + let pow710 = pow32 + * pow709; // pow(trace_generator, (safe_div((safe_mult(357, global_values.trace_length)), 32768))). + let pow711 = pow32 + * pow710; // pow(trace_generator, (safe_div((safe_mult(715, global_values.trace_length)), 65536))). + let pow712 = pow32 + * pow711; // pow(trace_generator, (safe_div((safe_mult(179, global_values.trace_length)), 16384))). + let pow713 = pow32 + * pow712; // pow(trace_generator, (safe_div((safe_mult(717, global_values.trace_length)), 65536))). + let pow714 = pow32 + * pow713; // pow(trace_generator, (safe_div((safe_mult(359, global_values.trace_length)), 32768))). + let pow715 = pow32 + * pow714; // pow(trace_generator, (safe_div((safe_mult(719, global_values.trace_length)), 65536))). + let pow716 = pow32 + * pow715; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 4096))). + let pow717 = pow32 + * pow716; // pow(trace_generator, (safe_div((safe_mult(721, global_values.trace_length)), 65536))). + let pow718 = pow32 + * pow717; // pow(trace_generator, (safe_div((safe_mult(361, global_values.trace_length)), 32768))). + let pow719 = pow32 + * pow718; // pow(trace_generator, (safe_div((safe_mult(723, global_values.trace_length)), 65536))). + let pow720 = pow32 + * pow719; // pow(trace_generator, (safe_div((safe_mult(181, global_values.trace_length)), 16384))). + let pow721 = pow32 + * pow720; // pow(trace_generator, (safe_div((safe_mult(725, global_values.trace_length)), 65536))). + let pow722 = pow32 + * pow721; // pow(trace_generator, (safe_div((safe_mult(363, global_values.trace_length)), 32768))). + let pow723 = pow32 + * pow722; // pow(trace_generator, (safe_div((safe_mult(727, global_values.trace_length)), 65536))). + let pow724 = pow32 + * pow723; // pow(trace_generator, (safe_div((safe_mult(91, global_values.trace_length)), 8192))). + let pow725 = pow32 + * pow724; // pow(trace_generator, (safe_div((safe_mult(729, global_values.trace_length)), 65536))). + let pow726 = pow32 + * pow725; // pow(trace_generator, (safe_div((safe_mult(365, global_values.trace_length)), 32768))). + let pow727 = pow32 + * pow726; // pow(trace_generator, (safe_div((safe_mult(731, global_values.trace_length)), 65536))). + let pow728 = pow32 + * pow727; // pow(trace_generator, (safe_div((safe_mult(183, global_values.trace_length)), 16384))). + let pow729 = pow32 + * pow728; // pow(trace_generator, (safe_div((safe_mult(733, global_values.trace_length)), 65536))). + let pow730 = pow41 + * pow729; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 2048))). + let pow731 = pow32 + * pow730; // pow(trace_generator, (safe_div((safe_mult(737, global_values.trace_length)), 65536))). + let pow732 = pow32 + * pow731; // pow(trace_generator, (safe_div((safe_mult(369, global_values.trace_length)), 32768))). + let pow733 = pow32 + * pow732; // pow(trace_generator, (safe_div((safe_mult(739, global_values.trace_length)), 65536))). + let pow734 = pow32 + * pow733; // pow(trace_generator, (safe_div((safe_mult(185, global_values.trace_length)), 16384))). + let pow735 = pow32 + * pow734; // pow(trace_generator, (safe_div((safe_mult(741, global_values.trace_length)), 65536))). + let pow736 = pow32 + * pow735; // pow(trace_generator, (safe_div((safe_mult(371, global_values.trace_length)), 32768))). + let pow737 = pow32 + * pow736; // pow(trace_generator, (safe_div((safe_mult(743, global_values.trace_length)), 65536))). + let pow738 = pow32 + * pow737; // pow(trace_generator, (safe_div((safe_mult(93, global_values.trace_length)), 8192))). + let pow739 = pow32 + * pow738; // pow(trace_generator, (safe_div((safe_mult(745, global_values.trace_length)), 65536))). + let pow740 = pow32 + * pow739; // pow(trace_generator, (safe_div((safe_mult(373, global_values.trace_length)), 32768))). + let pow741 = pow32 + * pow740; // pow(trace_generator, (safe_div((safe_mult(747, global_values.trace_length)), 65536))). + let pow742 = pow32 + * pow741; // pow(trace_generator, (safe_div((safe_mult(187, global_values.trace_length)), 16384))). + let pow743 = pow32 + * pow742; // pow(trace_generator, (safe_div((safe_mult(749, global_values.trace_length)), 65536))). + let pow744 = pow32 + * pow743; // pow(trace_generator, (safe_div((safe_mult(375, global_values.trace_length)), 32768))). + let pow745 = pow32 + * pow744; // pow(trace_generator, (safe_div((safe_mult(751, global_values.trace_length)), 65536))). + let pow746 = pow32 + * pow745; // pow(trace_generator, (safe_div((safe_mult(47, global_values.trace_length)), 4096))). + let pow747 = pow32 + * pow746; // pow(trace_generator, (safe_div((safe_mult(753, global_values.trace_length)), 65536))). + let pow748 = pow32 + * pow747; // pow(trace_generator, (safe_div((safe_mult(377, global_values.trace_length)), 32768))). + let pow749 = pow32 + * pow748; // pow(trace_generator, (safe_div((safe_mult(755, global_values.trace_length)), 65536))). + let pow750 = pow32 + * pow749; // pow(trace_generator, (safe_div((safe_mult(189, global_values.trace_length)), 16384))). + let pow751 = pow32 + * pow750; // pow(trace_generator, (safe_div((safe_mult(757, global_values.trace_length)), 65536))). + let pow752 = pow32 + * pow751; // pow(trace_generator, (safe_div((safe_mult(379, global_values.trace_length)), 32768))). + let pow753 = pow32 + * pow752; // pow(trace_generator, (safe_div((safe_mult(759, global_values.trace_length)), 65536))). + let pow754 = pow32 + * pow753; // pow(trace_generator, (safe_div((safe_mult(95, global_values.trace_length)), 8192))). + let pow755 = pow32 + * pow754; // pow(trace_generator, (safe_div((safe_mult(761, global_values.trace_length)), 65536))). + let pow756 = pow32 + * pow755; // pow(trace_generator, (safe_div((safe_mult(381, global_values.trace_length)), 32768))). + let pow757 = pow32 + * pow756; // pow(trace_generator, (safe_div((safe_mult(763, global_values.trace_length)), 65536))). + let pow758 = pow32 + * pow757; // pow(trace_generator, (safe_div((safe_mult(191, global_values.trace_length)), 16384))). + let pow759 = pow32 + * pow758; // pow(trace_generator, (safe_div((safe_mult(765, global_values.trace_length)), 65536))). + let pow760 = pow41 + * pow759; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 256))). + let pow761 = pow32 + * pow760; // pow(trace_generator, (safe_div((safe_mult(769, global_values.trace_length)), 65536))). + let pow762 = pow32 + * pow761; // pow(trace_generator, (safe_div((safe_mult(385, global_values.trace_length)), 32768))). + let pow763 = pow32 + * pow762; // pow(trace_generator, (safe_div((safe_mult(771, global_values.trace_length)), 65536))). + let pow764 = pow32 + * pow763; // pow(trace_generator, (safe_div((safe_mult(193, global_values.trace_length)), 16384))). + let pow765 = pow32 + * pow764; // pow(trace_generator, (safe_div((safe_mult(773, global_values.trace_length)), 65536))). + let pow766 = pow32 + * pow765; // pow(trace_generator, (safe_div((safe_mult(387, global_values.trace_length)), 32768))). + let pow767 = pow32 + * pow766; // pow(trace_generator, (safe_div((safe_mult(775, global_values.trace_length)), 65536))). + let pow768 = pow32 + * pow767; // pow(trace_generator, (safe_div((safe_mult(97, global_values.trace_length)), 8192))). + let pow769 = pow32 + * pow768; // pow(trace_generator, (safe_div((safe_mult(777, global_values.trace_length)), 65536))). + let pow770 = pow32 + * pow769; // pow(trace_generator, (safe_div((safe_mult(389, global_values.trace_length)), 32768))). + let pow771 = pow32 + * pow770; // pow(trace_generator, (safe_div((safe_mult(779, global_values.trace_length)), 65536))). + let pow772 = pow32 + * pow771; // pow(trace_generator, (safe_div((safe_mult(195, global_values.trace_length)), 16384))). + let pow773 = pow32 + * pow772; // pow(trace_generator, (safe_div((safe_mult(781, global_values.trace_length)), 65536))). + let pow774 = pow32 + * pow773; // pow(trace_generator, (safe_div((safe_mult(391, global_values.trace_length)), 32768))). + let pow775 = pow32 + * pow774; // pow(trace_generator, (safe_div((safe_mult(783, global_values.trace_length)), 65536))). + let pow776 = pow32 + * pow775; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 4096))). + let pow777 = pow32 + * pow776; // pow(trace_generator, (safe_div((safe_mult(785, global_values.trace_length)), 65536))). + let pow778 = pow32 + * pow777; // pow(trace_generator, (safe_div((safe_mult(393, global_values.trace_length)), 32768))). + let pow779 = pow32 + * pow778; // pow(trace_generator, (safe_div((safe_mult(787, global_values.trace_length)), 65536))). + let pow780 = pow32 + * pow779; // pow(trace_generator, (safe_div((safe_mult(197, global_values.trace_length)), 16384))). + let pow781 = pow32 + * pow780; // pow(trace_generator, (safe_div((safe_mult(789, global_values.trace_length)), 65536))). + let pow782 = pow32 + * pow781; // pow(trace_generator, (safe_div((safe_mult(395, global_values.trace_length)), 32768))). + let pow783 = pow32 + * pow782; // pow(trace_generator, (safe_div((safe_mult(791, global_values.trace_length)), 65536))). + let pow784 = pow32 + * pow783; // pow(trace_generator, (safe_div((safe_mult(99, global_values.trace_length)), 8192))). + let pow785 = pow32 + * pow784; // pow(trace_generator, (safe_div((safe_mult(793, global_values.trace_length)), 65536))). + let pow786 = pow32 + * pow785; // pow(trace_generator, (safe_div((safe_mult(397, global_values.trace_length)), 32768))). + let pow787 = pow32 + * pow786; // pow(trace_generator, (safe_div((safe_mult(795, global_values.trace_length)), 65536))). + let pow788 = pow32 + * pow787; // pow(trace_generator, (safe_div((safe_mult(199, global_values.trace_length)), 16384))). + let pow789 = pow32 + * pow788; // pow(trace_generator, (safe_div((safe_mult(797, global_values.trace_length)), 65536))). + let pow790 = pow73 + * pow789; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 1024))). + let pow791 = pow100 + * pow790; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 512))). + let pow792 = pow100 + * pow791; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 1024))). + let pow793 = pow100 + * pow792; // pow(trace_generator, (safe_div(global_values.trace_length, 64))). + let pow794 = pow32 + * pow793; // pow(trace_generator, (safe_div((safe_mult(1025, global_values.trace_length)), 65536))). + let pow795 = pow32 + * pow794; // pow(trace_generator, (safe_div((safe_mult(513, global_values.trace_length)), 32768))). + let pow796 = pow32 + * pow795; // pow(trace_generator, (safe_div((safe_mult(1027, global_values.trace_length)), 65536))). + let pow797 = pow32 + * pow796; // pow(trace_generator, (safe_div((safe_mult(257, global_values.trace_length)), 16384))). + let pow798 = pow32 + * pow797; // pow(trace_generator, (safe_div((safe_mult(1029, global_values.trace_length)), 65536))). + let pow799 = pow32 + * pow798; // pow(trace_generator, (safe_div((safe_mult(515, global_values.trace_length)), 32768))). + let pow800 = pow32 + * pow799; // pow(trace_generator, (safe_div((safe_mult(1031, global_values.trace_length)), 65536))). + let pow801 = pow32 + * pow800; // pow(trace_generator, (safe_div((safe_mult(129, global_values.trace_length)), 8192))). + let pow802 = pow32 + * pow801; // pow(trace_generator, (safe_div((safe_mult(1033, global_values.trace_length)), 65536))). + let pow803 = pow32 + * pow802; // pow(trace_generator, (safe_div((safe_mult(517, global_values.trace_length)), 32768))). + let pow804 = pow32 + * pow803; // pow(trace_generator, (safe_div((safe_mult(1035, global_values.trace_length)), 65536))). + let pow805 = pow32 + * pow804; // pow(trace_generator, (safe_div((safe_mult(259, global_values.trace_length)), 16384))). + let pow806 = pow32 + * pow805; // pow(trace_generator, (safe_div((safe_mult(1037, global_values.trace_length)), 65536))). + let pow807 = pow32 + * pow806; // pow(trace_generator, (safe_div((safe_mult(519, global_values.trace_length)), 32768))). + let pow808 = pow32 + * pow807; // pow(trace_generator, (safe_div((safe_mult(1039, global_values.trace_length)), 65536))). + let pow809 = pow32 + * pow808; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 4096))). + let pow810 = pow32 + * pow809; // pow(trace_generator, (safe_div((safe_mult(1041, global_values.trace_length)), 65536))). + let pow811 = pow32 + * pow810; // pow(trace_generator, (safe_div((safe_mult(521, global_values.trace_length)), 32768))). + let pow812 = pow32 + * pow811; // pow(trace_generator, (safe_div((safe_mult(1043, global_values.trace_length)), 65536))). + let pow813 = pow32 + * pow812; // pow(trace_generator, (safe_div((safe_mult(261, global_values.trace_length)), 16384))). + let pow814 = pow32 + * pow813; // pow(trace_generator, (safe_div((safe_mult(1045, global_values.trace_length)), 65536))). + let pow815 = pow32 + * pow814; // pow(trace_generator, (safe_div((safe_mult(523, global_values.trace_length)), 32768))). + let pow816 = pow32 + * pow815; // pow(trace_generator, (safe_div((safe_mult(1047, global_values.trace_length)), 65536))). + let pow817 = pow79 + * pow816; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 1024))). + let pow818 = pow100 + * pow817; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 512))). + let pow819 = pow100 + * pow818; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 1024))). + let pow820 = pow100 + * pow819; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 256))). + let pow821 = pow100 + * pow820; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 1024))). + let pow822 = pow100 + * pow821; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 512))). + let pow823 = pow100 + * pow822; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 1024))). + let pow824 = pow580 + * pow823; // pow(trace_generator, (safe_div(global_values.trace_length, 32))). + let pow825 = pow32 + * pow824; // pow(trace_generator, (safe_div((safe_mult(2049, global_values.trace_length)), 65536))). + let pow826 = pow32 + * pow825; // pow(trace_generator, (safe_div((safe_mult(1025, global_values.trace_length)), 32768))). + let pow827 = pow32 + * pow826; // pow(trace_generator, (safe_div((safe_mult(2051, global_values.trace_length)), 65536))). + let pow828 = pow32 + * pow827; // pow(trace_generator, (safe_div((safe_mult(513, global_values.trace_length)), 16384))). + let pow829 = pow32 + * pow828; // pow(trace_generator, (safe_div((safe_mult(2053, global_values.trace_length)), 65536))). + let pow830 = pow32 + * pow829; // pow(trace_generator, (safe_div((safe_mult(1027, global_values.trace_length)), 32768))). + let pow831 = pow32 + * pow830; // pow(trace_generator, (safe_div((safe_mult(2055, global_values.trace_length)), 65536))). + let pow832 = pow32 + * pow831; // pow(trace_generator, (safe_div((safe_mult(257, global_values.trace_length)), 8192))). + let pow833 = pow32 + * pow832; // pow(trace_generator, (safe_div((safe_mult(2057, global_values.trace_length)), 65536))). + let pow834 = pow32 + * pow833; // pow(trace_generator, (safe_div((safe_mult(1029, global_values.trace_length)), 32768))). + let pow835 = pow32 + * pow834; // pow(trace_generator, (safe_div((safe_mult(2059, global_values.trace_length)), 65536))). + let pow836 = pow32 + * pow835; // pow(trace_generator, (safe_div((safe_mult(515, global_values.trace_length)), 16384))). + let pow837 = pow32 + * pow836; // pow(trace_generator, (safe_div((safe_mult(2061, global_values.trace_length)), 65536))). + let pow838 = pow32 + * pow837; // pow(trace_generator, (safe_div((safe_mult(1031, global_values.trace_length)), 32768))). + let pow839 = pow32 + * pow838; // pow(trace_generator, (safe_div((safe_mult(2063, global_values.trace_length)), 65536))). + let pow840 = pow32 + * pow839; // pow(trace_generator, (safe_div((safe_mult(129, global_values.trace_length)), 4096))). + let pow841 = pow32 + * pow840; // pow(trace_generator, (safe_div((safe_mult(2065, global_values.trace_length)), 65536))). + let pow842 = pow32 + * pow841; // pow(trace_generator, (safe_div((safe_mult(1033, global_values.trace_length)), 32768))). + let pow843 = pow32 + * pow842; // pow(trace_generator, (safe_div((safe_mult(2067, global_values.trace_length)), 65536))). + let pow844 = pow32 + * pow843; // pow(trace_generator, (safe_div((safe_mult(517, global_values.trace_length)), 16384))). + let pow845 = pow32 + * pow844; // pow(trace_generator, (safe_div((safe_mult(2069, global_values.trace_length)), 65536))). + let pow846 = pow32 + * pow845; // pow(trace_generator, (safe_div((safe_mult(1035, global_values.trace_length)), 32768))). + let pow847 = pow32 + * pow846; // pow(trace_generator, (safe_div((safe_mult(2071, global_values.trace_length)), 65536))). + let pow848 = pow79 + * pow847; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 1024))). + let pow849 = pow100 + * pow848; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 512))). + let pow850 = pow100 + * pow849; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 1024))). + let pow851 = pow100 + * pow850; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 256))). + let pow852 = pow100 + * pow851; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 1024))). + let pow853 = pow100 + * pow852; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 512))). + let pow854 = pow100 + * pow853; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 1024))). + let pow855 = pow100 + * pow854; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 128))). + let pow856 = pow100 + * pow855; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 1024))). + let pow857 = pow100 + * pow856; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 512))). + let pow858 = pow100 + * pow857; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 1024))). + let pow859 = pow100 + * pow858; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 256))). + let pow860 = pow100 + * pow859; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 1024))). + let pow861 = pow100 + * pow860; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 512))). + let pow862 = pow100 + * pow861; // pow(trace_generator, (safe_div((safe_mult(47, global_values.trace_length)), 1024))). + let pow863 = pow100 + * pow862; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 64))). + let pow864 = pow32 + * pow863; // pow(trace_generator, (safe_div((safe_mult(3073, global_values.trace_length)), 65536))). + let pow865 = pow32 + * pow864; // pow(trace_generator, (safe_div((safe_mult(1537, global_values.trace_length)), 32768))). + let pow866 = pow32 + * pow865; // pow(trace_generator, (safe_div((safe_mult(3075, global_values.trace_length)), 65536))). + let pow867 = pow32 + * pow866; // pow(trace_generator, (safe_div((safe_mult(769, global_values.trace_length)), 16384))). + let pow868 = pow32 + * pow867; // pow(trace_generator, (safe_div((safe_mult(3077, global_values.trace_length)), 65536))). + let pow869 = pow32 + * pow868; // pow(trace_generator, (safe_div((safe_mult(1539, global_values.trace_length)), 32768))). + let pow870 = pow32 + * pow869; // pow(trace_generator, (safe_div((safe_mult(3079, global_values.trace_length)), 65536))). + let pow871 = pow32 + * pow870; // pow(trace_generator, (safe_div((safe_mult(385, global_values.trace_length)), 8192))). + let pow872 = pow32 + * pow871; // pow(trace_generator, (safe_div((safe_mult(3081, global_values.trace_length)), 65536))). + let pow873 = pow32 + * pow872; // pow(trace_generator, (safe_div((safe_mult(1541, global_values.trace_length)), 32768))). + let pow874 = pow32 + * pow873; // pow(trace_generator, (safe_div((safe_mult(3083, global_values.trace_length)), 65536))). + let pow875 = pow32 + * pow874; // pow(trace_generator, (safe_div((safe_mult(771, global_values.trace_length)), 16384))). + let pow876 = pow32 + * pow875; // pow(trace_generator, (safe_div((safe_mult(3085, global_values.trace_length)), 65536))). + let pow877 = pow32 + * pow876; // pow(trace_generator, (safe_div((safe_mult(1543, global_values.trace_length)), 32768))). + let pow878 = pow32 + * pow877; // pow(trace_generator, (safe_div((safe_mult(3087, global_values.trace_length)), 65536))). + let pow879 = pow32 + * pow878; // pow(trace_generator, (safe_div((safe_mult(193, global_values.trace_length)), 4096))). + let pow880 = pow32 + * pow879; // pow(trace_generator, (safe_div((safe_mult(3089, global_values.trace_length)), 65536))). + let pow881 = pow32 + * pow880; // pow(trace_generator, (safe_div((safe_mult(1545, global_values.trace_length)), 32768))). + let pow882 = pow32 + * pow881; // pow(trace_generator, (safe_div((safe_mult(3091, global_values.trace_length)), 65536))). + let pow883 = pow32 + * pow882; // pow(trace_generator, (safe_div((safe_mult(773, global_values.trace_length)), 16384))). + let pow884 = pow32 + * pow883; // pow(trace_generator, (safe_div((safe_mult(3093, global_values.trace_length)), 65536))). + let pow885 = pow32 + * pow884; // pow(trace_generator, (safe_div((safe_mult(1547, global_values.trace_length)), 32768))). + let pow886 = pow32 + * pow885; // pow(trace_generator, (safe_div((safe_mult(3095, global_values.trace_length)), 65536))). + let pow887 = pow79 + * pow886; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 1024))). + let pow888 = pow100 + * pow887; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 512))). + let pow889 = pow100 + * pow888; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 1024))). + let pow890 = pow100 + * pow889; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 256))). + let pow891 = pow100 + * pow890; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 1024))). + let pow892 = pow100 + * pow891; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 512))). + let pow893 = pow100 + * pow892; // pow(trace_generator, (safe_div((safe_mult(55, global_values.trace_length)), 1024))). + let pow894 = pow580 + * pow893; // pow(trace_generator, (safe_div(global_values.trace_length, 16))). + let pow895 = pow32 + * pow894; // pow(trace_generator, (safe_div((safe_mult(4097, global_values.trace_length)), 65536))). + let pow896 = pow32 + * pow895; // pow(trace_generator, (safe_div((safe_mult(2049, global_values.trace_length)), 32768))). + let pow897 = pow32 + * pow896; // pow(trace_generator, (safe_div((safe_mult(4099, global_values.trace_length)), 65536))). + let pow898 = pow32 + * pow897; // pow(trace_generator, (safe_div((safe_mult(1025, global_values.trace_length)), 16384))). + let pow899 = pow32 + * pow898; // pow(trace_generator, (safe_div((safe_mult(4101, global_values.trace_length)), 65536))). + let pow900 = pow32 + * pow899; // pow(trace_generator, (safe_div((safe_mult(2051, global_values.trace_length)), 32768))). + let pow901 = pow32 + * pow900; // pow(trace_generator, (safe_div((safe_mult(4103, global_values.trace_length)), 65536))). + let pow902 = pow32 + * pow901; // pow(trace_generator, (safe_div((safe_mult(513, global_values.trace_length)), 8192))). + let pow903 = pow32 + * pow902; // pow(trace_generator, (safe_div((safe_mult(4105, global_values.trace_length)), 65536))). + let pow904 = pow32 + * pow903; // pow(trace_generator, (safe_div((safe_mult(2053, global_values.trace_length)), 32768))). + let pow905 = pow32 + * pow904; // pow(trace_generator, (safe_div((safe_mult(4107, global_values.trace_length)), 65536))). + let pow906 = pow32 + * pow905; // pow(trace_generator, (safe_div((safe_mult(1027, global_values.trace_length)), 16384))). + let pow907 = pow32 + * pow906; // pow(trace_generator, (safe_div((safe_mult(4109, global_values.trace_length)), 65536))). + let pow908 = pow32 + * pow907; // pow(trace_generator, (safe_div((safe_mult(2055, global_values.trace_length)), 32768))). + let pow909 = pow32 + * pow908; // pow(trace_generator, (safe_div((safe_mult(4111, global_values.trace_length)), 65536))). + let pow910 = pow32 + * pow909; // pow(trace_generator, (safe_div((safe_mult(257, global_values.trace_length)), 4096))). + let pow911 = pow32 + * pow910; // pow(trace_generator, (safe_div((safe_mult(4113, global_values.trace_length)), 65536))). + let pow912 = pow32 + * pow911; // pow(trace_generator, (safe_div((safe_mult(2057, global_values.trace_length)), 32768))). + let pow913 = pow32 + * pow912; // pow(trace_generator, (safe_div((safe_mult(4115, global_values.trace_length)), 65536))). + let pow914 = pow32 + * pow913; // pow(trace_generator, (safe_div((safe_mult(1029, global_values.trace_length)), 16384))). + let pow915 = pow32 + * pow914; // pow(trace_generator, (safe_div((safe_mult(4117, global_values.trace_length)), 65536))). + let pow916 = pow32 + * pow915; // pow(trace_generator, (safe_div((safe_mult(2059, global_values.trace_length)), 32768))). + let pow917 = pow32 + * pow916; // pow(trace_generator, (safe_div((safe_mult(4119, global_values.trace_length)), 65536))). + let pow918 = pow79 + * pow917; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 1024))). + let pow919 = pow100 + * pow918; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 512))). + let pow920 = pow100 + * pow919; // pow(trace_generator, (safe_div((safe_mult(67, global_values.trace_length)), 1024))). + let pow921 = pow100 + * pow920; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 256))). + let pow922 = pow100 + * pow921; // pow(trace_generator, (safe_div((safe_mult(69, global_values.trace_length)), 1024))). + let pow923 = pow100 + * pow922; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 512))). + let pow924 = pow100 + * pow923; // pow(trace_generator, (safe_div((safe_mult(71, global_values.trace_length)), 1024))). + let pow925 = pow100 + * pow924; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 128))). + let pow926 = pow100 + * pow925; // pow(trace_generator, (safe_div((safe_mult(73, global_values.trace_length)), 1024))). + let pow927 = pow100 + * pow926; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 512))). + let pow928 = pow100 + * pow927; // pow(trace_generator, (safe_div((safe_mult(75, global_values.trace_length)), 1024))). + let pow929 = pow100 + * pow928; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 256))). + let pow930 = pow100 + * pow929; // pow(trace_generator, (safe_div((safe_mult(77, global_values.trace_length)), 1024))). + let pow931 = pow100 + * pow930; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 512))). + let pow932 = pow100 + * pow931; // pow(trace_generator, (safe_div((safe_mult(79, global_values.trace_length)), 1024))). + let pow933 = pow100 + * pow932; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 64))). + let pow934 = pow32 + * pow933; // pow(trace_generator, (safe_div((safe_mult(5121, global_values.trace_length)), 65536))). + let pow935 = pow32 + * pow934; // pow(trace_generator, (safe_div((safe_mult(2561, global_values.trace_length)), 32768))). + let pow936 = pow32 + * pow935; // pow(trace_generator, (safe_div((safe_mult(5123, global_values.trace_length)), 65536))). + let pow937 = pow32 + * pow936; // pow(trace_generator, (safe_div((safe_mult(1281, global_values.trace_length)), 16384))). + let pow938 = pow32 + * pow937; // pow(trace_generator, (safe_div((safe_mult(5125, global_values.trace_length)), 65536))). + let pow939 = pow32 + * pow938; // pow(trace_generator, (safe_div((safe_mult(2563, global_values.trace_length)), 32768))). + let pow940 = pow32 + * pow939; // pow(trace_generator, (safe_div((safe_mult(5127, global_values.trace_length)), 65536))). + let pow941 = pow32 + * pow940; // pow(trace_generator, (safe_div((safe_mult(641, global_values.trace_length)), 8192))). + let pow942 = pow32 + * pow941; // pow(trace_generator, (safe_div((safe_mult(5129, global_values.trace_length)), 65536))). + let pow943 = pow32 + * pow942; // pow(trace_generator, (safe_div((safe_mult(2565, global_values.trace_length)), 32768))). + let pow944 = pow32 + * pow943; // pow(trace_generator, (safe_div((safe_mult(5131, global_values.trace_length)), 65536))). + let pow945 = pow32 + * pow944; // pow(trace_generator, (safe_div((safe_mult(1283, global_values.trace_length)), 16384))). + let pow946 = pow32 + * pow945; // pow(trace_generator, (safe_div((safe_mult(5133, global_values.trace_length)), 65536))). + let pow947 = pow32 + * pow946; // pow(trace_generator, (safe_div((safe_mult(2567, global_values.trace_length)), 32768))). + let pow948 = pow32 + * pow947; // pow(trace_generator, (safe_div((safe_mult(5135, global_values.trace_length)), 65536))). + let pow949 = pow32 + * pow948; // pow(trace_generator, (safe_div((safe_mult(321, global_values.trace_length)), 4096))). + let pow950 = pow32 + * pow949; // pow(trace_generator, (safe_div((safe_mult(5137, global_values.trace_length)), 65536))). + let pow951 = pow32 + * pow950; // pow(trace_generator, (safe_div((safe_mult(2569, global_values.trace_length)), 32768))). + let pow952 = pow32 + * pow951; // pow(trace_generator, (safe_div((safe_mult(5139, global_values.trace_length)), 65536))). + let pow953 = pow32 + * pow952; // pow(trace_generator, (safe_div((safe_mult(1285, global_values.trace_length)), 16384))). + let pow954 = pow32 + * pow953; // pow(trace_generator, (safe_div((safe_mult(5141, global_values.trace_length)), 65536))). + let pow955 = pow32 + * pow954; // pow(trace_generator, (safe_div((safe_mult(2571, global_values.trace_length)), 32768))). + let pow956 = pow32 + * pow955; // pow(trace_generator, (safe_div((safe_mult(5143, global_values.trace_length)), 65536))). + let pow957 = pow79 + * pow956; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 1024))). + let pow958 = pow100 + * pow957; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 512))). + let pow959 = pow100 + * pow958; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 1024))). + let pow960 = pow100 + * pow959; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 256))). + let pow961 = pow100 + * pow960; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 1024))). + let pow962 = pow100 + * pow961; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 512))). + let pow963 = pow100 + * pow962; // pow(trace_generator, (safe_div((safe_mult(87, global_values.trace_length)), 1024))). + let pow964 = pow580 + * pow963; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 32))). + let pow965 = pow32 + * pow964; // pow(trace_generator, (safe_div((safe_mult(6145, global_values.trace_length)), 65536))). + let pow966 = pow32 + * pow965; // pow(trace_generator, (safe_div((safe_mult(3073, global_values.trace_length)), 32768))). + let pow967 = pow32 + * pow966; // pow(trace_generator, (safe_div((safe_mult(6147, global_values.trace_length)), 65536))). + let pow968 = pow32 + * pow967; // pow(trace_generator, (safe_div((safe_mult(1537, global_values.trace_length)), 16384))). + let pow969 = pow32 + * pow968; // pow(trace_generator, (safe_div((safe_mult(6149, global_values.trace_length)), 65536))). + let pow970 = pow32 + * pow969; // pow(trace_generator, (safe_div((safe_mult(3075, global_values.trace_length)), 32768))). + let pow971 = pow32 + * pow970; // pow(trace_generator, (safe_div((safe_mult(6151, global_values.trace_length)), 65536))). + let pow972 = pow32 + * pow971; // pow(trace_generator, (safe_div((safe_mult(769, global_values.trace_length)), 8192))). + let pow973 = pow32 + * pow972; // pow(trace_generator, (safe_div((safe_mult(6153, global_values.trace_length)), 65536))). + let pow974 = pow32 + * pow973; // pow(trace_generator, (safe_div((safe_mult(3077, global_values.trace_length)), 32768))). + let pow975 = pow32 + * pow974; // pow(trace_generator, (safe_div((safe_mult(6155, global_values.trace_length)), 65536))). + let pow976 = pow32 + * pow975; // pow(trace_generator, (safe_div((safe_mult(1539, global_values.trace_length)), 16384))). + let pow977 = pow32 + * pow976; // pow(trace_generator, (safe_div((safe_mult(6157, global_values.trace_length)), 65536))). + let pow978 = pow32 + * pow977; // pow(trace_generator, (safe_div((safe_mult(3079, global_values.trace_length)), 32768))). + let pow979 = pow32 + * pow978; // pow(trace_generator, (safe_div((safe_mult(6159, global_values.trace_length)), 65536))). + let pow980 = pow32 + * pow979; // pow(trace_generator, (safe_div((safe_mult(385, global_values.trace_length)), 4096))). + let pow981 = pow32 + * pow980; // pow(trace_generator, (safe_div((safe_mult(6161, global_values.trace_length)), 65536))). + let pow982 = pow32 + * pow981; // pow(trace_generator, (safe_div((safe_mult(3081, global_values.trace_length)), 32768))). + let pow983 = pow32 + * pow982; // pow(trace_generator, (safe_div((safe_mult(6163, global_values.trace_length)), 65536))). + let pow984 = pow32 + * pow983; // pow(trace_generator, (safe_div((safe_mult(1541, global_values.trace_length)), 16384))). + let pow985 = pow32 + * pow984; // pow(trace_generator, (safe_div((safe_mult(6165, global_values.trace_length)), 65536))). + let pow986 = pow32 + * pow985; // pow(trace_generator, (safe_div((safe_mult(3083, global_values.trace_length)), 32768))). + let pow987 = pow32 + * pow986; // pow(trace_generator, (safe_div((safe_mult(6167, global_values.trace_length)), 65536))). + let pow988 = pow793 + * pow964; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 64))). + let pow989 = pow32 + * pow988; // pow(trace_generator, (safe_div((safe_mult(7169, global_values.trace_length)), 65536))). + let pow990 = pow32 + * pow989; // pow(trace_generator, (safe_div((safe_mult(3585, global_values.trace_length)), 32768))). + let pow991 = pow32 + * pow990; // pow(trace_generator, (safe_div((safe_mult(7171, global_values.trace_length)), 65536))). + let pow992 = pow32 + * pow991; // pow(trace_generator, (safe_div((safe_mult(1793, global_values.trace_length)), 16384))). + let pow993 = pow32 + * pow992; // pow(trace_generator, (safe_div((safe_mult(7173, global_values.trace_length)), 65536))). + let pow994 = pow32 + * pow993; // pow(trace_generator, (safe_div((safe_mult(3587, global_values.trace_length)), 32768))). + let pow995 = pow32 + * pow994; // pow(trace_generator, (safe_div((safe_mult(7175, global_values.trace_length)), 65536))). + let pow996 = pow32 + * pow995; // pow(trace_generator, (safe_div((safe_mult(897, global_values.trace_length)), 8192))). + let pow997 = pow32 + * pow996; // pow(trace_generator, (safe_div((safe_mult(7177, global_values.trace_length)), 65536))). + let pow998 = pow32 + * pow997; // pow(trace_generator, (safe_div((safe_mult(3589, global_values.trace_length)), 32768))). + let pow999 = pow32 + * pow998; // pow(trace_generator, (safe_div((safe_mult(7179, global_values.trace_length)), 65536))). + let pow1000 = pow32 + * pow999; // pow(trace_generator, (safe_div((safe_mult(1795, global_values.trace_length)), 16384))). + let pow1001 = pow32 + * pow1000; // pow(trace_generator, (safe_div((safe_mult(7181, global_values.trace_length)), 65536))). + let pow1002 = pow32 + * pow1001; // pow(trace_generator, (safe_div((safe_mult(3591, global_values.trace_length)), 32768))). + let pow1003 = pow32 + * pow1002; // pow(trace_generator, (safe_div((safe_mult(7183, global_values.trace_length)), 65536))). + let pow1004 = pow32 + * pow1003; // pow(trace_generator, (safe_div((safe_mult(449, global_values.trace_length)), 4096))). + let pow1005 = pow32 + * pow1004; // pow(trace_generator, (safe_div((safe_mult(7185, global_values.trace_length)), 65536))). + let pow1006 = pow32 + * pow1005; // pow(trace_generator, (safe_div((safe_mult(3593, global_values.trace_length)), 32768))). + let pow1007 = pow32 + * pow1006; // pow(trace_generator, (safe_div((safe_mult(7187, global_values.trace_length)), 65536))). + let pow1008 = pow32 + * pow1007; // pow(trace_generator, (safe_div((safe_mult(1797, global_values.trace_length)), 16384))). + let pow1009 = pow32 + * pow1008; // pow(trace_generator, (safe_div((safe_mult(7189, global_values.trace_length)), 65536))). + let pow1010 = pow32 + * pow1009; // pow(trace_generator, (safe_div((safe_mult(3595, global_values.trace_length)), 32768))). + let pow1011 = pow32 + * pow1010; // pow(trace_generator, (safe_div((safe_mult(7191, global_values.trace_length)), 65536))). + let pow1012 = pow793 + * pow988; // pow(trace_generator, (safe_div(global_values.trace_length, 8))). + let pow1013 = pow32 + * pow1012; // pow(trace_generator, (safe_div((safe_mult(8193, global_values.trace_length)), 65536))). + let pow1014 = pow32 + * pow1013; // pow(trace_generator, (safe_div((safe_mult(4097, global_values.trace_length)), 32768))). + let pow1015 = pow32 + * pow1014; // pow(trace_generator, (safe_div((safe_mult(8195, global_values.trace_length)), 65536))). + let pow1016 = pow32 + * pow1015; // pow(trace_generator, (safe_div((safe_mult(2049, global_values.trace_length)), 16384))). + let pow1017 = pow32 + * pow1016; // pow(trace_generator, (safe_div((safe_mult(8197, global_values.trace_length)), 65536))). + let pow1018 = pow32 + * pow1017; // pow(trace_generator, (safe_div((safe_mult(4099, global_values.trace_length)), 32768))). + let pow1019 = pow32 + * pow1018; // pow(trace_generator, (safe_div((safe_mult(8199, global_values.trace_length)), 65536))). + let pow1020 = pow32 + * pow1019; // pow(trace_generator, (safe_div((safe_mult(1025, global_values.trace_length)), 8192))). + let pow1021 = pow32 + * pow1020; // pow(trace_generator, (safe_div((safe_mult(8201, global_values.trace_length)), 65536))). + let pow1022 = pow32 + * pow1021; // pow(trace_generator, (safe_div((safe_mult(4101, global_values.trace_length)), 32768))). + let pow1023 = pow32 + * pow1022; // pow(trace_generator, (safe_div((safe_mult(8203, global_values.trace_length)), 65536))). + let pow1024 = pow32 + * pow1023; // pow(trace_generator, (safe_div((safe_mult(2051, global_values.trace_length)), 16384))). + let pow1025 = pow32 + * pow1024; // pow(trace_generator, (safe_div((safe_mult(8205, global_values.trace_length)), 65536))). + let pow1026 = pow32 + * pow1025; // pow(trace_generator, (safe_div((safe_mult(4103, global_values.trace_length)), 32768))). + let pow1027 = pow32 + * pow1026; // pow(trace_generator, (safe_div((safe_mult(8207, global_values.trace_length)), 65536))). + let pow1028 = pow32 + * pow1027; // pow(trace_generator, (safe_div((safe_mult(513, global_values.trace_length)), 4096))). + let pow1029 = pow32 + * pow1028; // pow(trace_generator, (safe_div((safe_mult(8209, global_values.trace_length)), 65536))). + let pow1030 = pow32 + * pow1029; // pow(trace_generator, (safe_div((safe_mult(4105, global_values.trace_length)), 32768))). + let pow1031 = pow32 + * pow1030; // pow(trace_generator, (safe_div((safe_mult(8211, global_values.trace_length)), 65536))). + let pow1032 = pow32 + * pow1031; // pow(trace_generator, (safe_div((safe_mult(2053, global_values.trace_length)), 16384))). + let pow1033 = pow32 + * pow1032; // pow(trace_generator, (safe_div((safe_mult(8213, global_values.trace_length)), 65536))). + let pow1034 = pow32 + * pow1033; // pow(trace_generator, (safe_div((safe_mult(4107, global_values.trace_length)), 32768))). + let pow1035 = pow32 + * pow1034; // pow(trace_generator, (safe_div((safe_mult(8215, global_values.trace_length)), 65536))). + let pow1036 = pow793 + * pow1012; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 64))). + let pow1037 = pow32 + * pow1036; // pow(trace_generator, (safe_div((safe_mult(9217, global_values.trace_length)), 65536))). + let pow1038 = pow32 + * pow1037; // pow(trace_generator, (safe_div((safe_mult(4609, global_values.trace_length)), 32768))). + let pow1039 = pow32 + * pow1038; // pow(trace_generator, (safe_div((safe_mult(9219, global_values.trace_length)), 65536))). + let pow1040 = pow32 + * pow1039; // pow(trace_generator, (safe_div((safe_mult(2305, global_values.trace_length)), 16384))). + let pow1041 = pow32 + * pow1040; // pow(trace_generator, (safe_div((safe_mult(9221, global_values.trace_length)), 65536))). + let pow1042 = pow32 + * pow1041; // pow(trace_generator, (safe_div((safe_mult(4611, global_values.trace_length)), 32768))). + let pow1043 = pow32 + * pow1042; // pow(trace_generator, (safe_div((safe_mult(9223, global_values.trace_length)), 65536))). + let pow1044 = pow32 + * pow1043; // pow(trace_generator, (safe_div((safe_mult(1153, global_values.trace_length)), 8192))). + let pow1045 = pow32 + * pow1044; // pow(trace_generator, (safe_div((safe_mult(9225, global_values.trace_length)), 65536))). + let pow1046 = pow32 + * pow1045; // pow(trace_generator, (safe_div((safe_mult(4613, global_values.trace_length)), 32768))). + let pow1047 = pow32 + * pow1046; // pow(trace_generator, (safe_div((safe_mult(9227, global_values.trace_length)), 65536))). + let pow1048 = pow32 + * pow1047; // pow(trace_generator, (safe_div((safe_mult(2307, global_values.trace_length)), 16384))). + let pow1049 = pow32 + * pow1048; // pow(trace_generator, (safe_div((safe_mult(9229, global_values.trace_length)), 65536))). + let pow1050 = pow32 + * pow1049; // pow(trace_generator, (safe_div((safe_mult(4615, global_values.trace_length)), 32768))). + let pow1051 = pow32 + * pow1050; // pow(trace_generator, (safe_div((safe_mult(9231, global_values.trace_length)), 65536))). + let pow1052 = pow32 + * pow1051; // pow(trace_generator, (safe_div((safe_mult(577, global_values.trace_length)), 4096))). + let pow1053 = pow32 + * pow1052; // pow(trace_generator, (safe_div((safe_mult(9233, global_values.trace_length)), 65536))). + let pow1054 = pow32 + * pow1053; // pow(trace_generator, (safe_div((safe_mult(4617, global_values.trace_length)), 32768))). + let pow1055 = pow32 + * pow1054; // pow(trace_generator, (safe_div((safe_mult(9235, global_values.trace_length)), 65536))). + let pow1056 = pow32 + * pow1055; // pow(trace_generator, (safe_div((safe_mult(2309, global_values.trace_length)), 16384))). + let pow1057 = pow32 + * pow1056; // pow(trace_generator, (safe_div((safe_mult(9237, global_values.trace_length)), 65536))). + let pow1058 = pow32 + * pow1057; // pow(trace_generator, (safe_div((safe_mult(4619, global_values.trace_length)), 32768))). + let pow1059 = pow32 + * pow1058; // pow(trace_generator, (safe_div((safe_mult(9239, global_values.trace_length)), 65536))). + let pow1060 = pow793 + * pow1036; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 32))). + let pow1061 = pow32 + * pow1060; // pow(trace_generator, (safe_div((safe_mult(10241, global_values.trace_length)), 65536))). + let pow1062 = pow32 + * pow1061; // pow(trace_generator, (safe_div((safe_mult(5121, global_values.trace_length)), 32768))). + let pow1063 = pow32 + * pow1062; // pow(trace_generator, (safe_div((safe_mult(10243, global_values.trace_length)), 65536))). + let pow1064 = pow32 + * pow1063; // pow(trace_generator, (safe_div((safe_mult(2561, global_values.trace_length)), 16384))). + let pow1065 = pow32 + * pow1064; // pow(trace_generator, (safe_div((safe_mult(10245, global_values.trace_length)), 65536))). + let pow1066 = pow32 + * pow1065; // pow(trace_generator, (safe_div((safe_mult(5123, global_values.trace_length)), 32768))). + let pow1067 = pow32 + * pow1066; // pow(trace_generator, (safe_div((safe_mult(10247, global_values.trace_length)), 65536))). + let pow1068 = pow32 + * pow1067; // pow(trace_generator, (safe_div((safe_mult(1281, global_values.trace_length)), 8192))). + let pow1069 = pow32 + * pow1068; // pow(trace_generator, (safe_div((safe_mult(10249, global_values.trace_length)), 65536))). + let pow1070 = pow32 + * pow1069; // pow(trace_generator, (safe_div((safe_mult(5125, global_values.trace_length)), 32768))). + let pow1071 = pow32 + * pow1070; // pow(trace_generator, (safe_div((safe_mult(10251, global_values.trace_length)), 65536))). + let pow1072 = pow32 + * pow1071; // pow(trace_generator, (safe_div((safe_mult(2563, global_values.trace_length)), 16384))). + let pow1073 = pow32 + * pow1072; // pow(trace_generator, (safe_div((safe_mult(10253, global_values.trace_length)), 65536))). + let pow1074 = pow32 + * pow1073; // pow(trace_generator, (safe_div((safe_mult(5127, global_values.trace_length)), 32768))). + let pow1075 = pow32 + * pow1074; // pow(trace_generator, (safe_div((safe_mult(10255, global_values.trace_length)), 65536))). + let pow1076 = pow32 + * pow1075; // pow(trace_generator, (safe_div((safe_mult(641, global_values.trace_length)), 4096))). + let pow1077 = pow32 + * pow1076; // pow(trace_generator, (safe_div((safe_mult(10257, global_values.trace_length)), 65536))). + let pow1078 = pow32 + * pow1077; // pow(trace_generator, (safe_div((safe_mult(5129, global_values.trace_length)), 32768))). + let pow1079 = pow32 + * pow1078; // pow(trace_generator, (safe_div((safe_mult(10259, global_values.trace_length)), 65536))). + let pow1080 = pow32 + * pow1079; // pow(trace_generator, (safe_div((safe_mult(2565, global_values.trace_length)), 16384))). + let pow1081 = pow32 + * pow1080; // pow(trace_generator, (safe_div((safe_mult(10261, global_values.trace_length)), 65536))). + let pow1082 = pow32 + * pow1081; // pow(trace_generator, (safe_div((safe_mult(5131, global_values.trace_length)), 32768))). + let pow1083 = pow32 + * pow1082; // pow(trace_generator, (safe_div((safe_mult(10263, global_values.trace_length)), 65536))). + let pow1084 = pow79 + * pow1083; // pow(trace_generator, (safe_div((safe_mult(161, global_values.trace_length)), 1024))). + let pow1085 = pow100 + * pow1084; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 512))). + let pow1086 = pow100 + * pow1085; // pow(trace_generator, (safe_div((safe_mult(163, global_values.trace_length)), 1024))). + let pow1087 = pow100 + * pow1086; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 256))). + let pow1088 = pow100 + * pow1087; // pow(trace_generator, (safe_div((safe_mult(165, global_values.trace_length)), 1024))). + let pow1089 = pow100 + * pow1088; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 512))). + let pow1090 = pow100 + * pow1089; // pow(trace_generator, (safe_div((safe_mult(167, global_values.trace_length)), 1024))). + let pow1091 = pow100 + * pow1090; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 128))). + let pow1092 = pow100 + * pow1091; // pow(trace_generator, (safe_div((safe_mult(169, global_values.trace_length)), 1024))). + let pow1093 = pow100 + * pow1092; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 512))). + let pow1094 = pow100 + * pow1093; // pow(trace_generator, (safe_div((safe_mult(171, global_values.trace_length)), 1024))). + let pow1095 = pow100 + * pow1094; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 256))). + let pow1096 = pow100 + * pow1095; // pow(trace_generator, (safe_div((safe_mult(173, global_values.trace_length)), 1024))). + let pow1097 = pow100 + * pow1096; // pow(trace_generator, (safe_div((safe_mult(87, global_values.trace_length)), 512))). + let pow1098 = pow100 + * pow1097; // pow(trace_generator, (safe_div((safe_mult(175, global_values.trace_length)), 1024))). + let pow1099 = pow100 + * pow1098; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 64))). + let pow1100 = pow32 + * pow1099; // pow(trace_generator, (safe_div((safe_mult(11265, global_values.trace_length)), 65536))). + let pow1101 = pow32 + * pow1100; // pow(trace_generator, (safe_div((safe_mult(5633, global_values.trace_length)), 32768))). + let pow1102 = pow32 + * pow1101; // pow(trace_generator, (safe_div((safe_mult(11267, global_values.trace_length)), 65536))). + let pow1103 = pow32 + * pow1102; // pow(trace_generator, (safe_div((safe_mult(2817, global_values.trace_length)), 16384))). + let pow1104 = pow32 + * pow1103; // pow(trace_generator, (safe_div((safe_mult(11269, global_values.trace_length)), 65536))). + let pow1105 = pow32 + * pow1104; // pow(trace_generator, (safe_div((safe_mult(5635, global_values.trace_length)), 32768))). + let pow1106 = pow32 + * pow1105; // pow(trace_generator, (safe_div((safe_mult(11271, global_values.trace_length)), 65536))). + let pow1107 = pow32 + * pow1106; // pow(trace_generator, (safe_div((safe_mult(1409, global_values.trace_length)), 8192))). + let pow1108 = pow32 + * pow1107; // pow(trace_generator, (safe_div((safe_mult(11273, global_values.trace_length)), 65536))). + let pow1109 = pow32 + * pow1108; // pow(trace_generator, (safe_div((safe_mult(5637, global_values.trace_length)), 32768))). + let pow1110 = pow32 + * pow1109; // pow(trace_generator, (safe_div((safe_mult(11275, global_values.trace_length)), 65536))). + let pow1111 = pow32 + * pow1110; // pow(trace_generator, (safe_div((safe_mult(2819, global_values.trace_length)), 16384))). + let pow1112 = pow32 + * pow1111; // pow(trace_generator, (safe_div((safe_mult(11277, global_values.trace_length)), 65536))). + let pow1113 = pow32 + * pow1112; // pow(trace_generator, (safe_div((safe_mult(5639, global_values.trace_length)), 32768))). + let pow1114 = pow32 + * pow1113; // pow(trace_generator, (safe_div((safe_mult(11279, global_values.trace_length)), 65536))). + let pow1115 = pow32 + * pow1114; // pow(trace_generator, (safe_div((safe_mult(705, global_values.trace_length)), 4096))). + let pow1116 = pow32 + * pow1115; // pow(trace_generator, (safe_div((safe_mult(11281, global_values.trace_length)), 65536))). + let pow1117 = pow32 + * pow1116; // pow(trace_generator, (safe_div((safe_mult(5641, global_values.trace_length)), 32768))). + let pow1118 = pow32 + * pow1117; // pow(trace_generator, (safe_div((safe_mult(11283, global_values.trace_length)), 65536))). + let pow1119 = pow32 + * pow1118; // pow(trace_generator, (safe_div((safe_mult(2821, global_values.trace_length)), 16384))). + let pow1120 = pow32 + * pow1119; // pow(trace_generator, (safe_div((safe_mult(11285, global_values.trace_length)), 65536))). + let pow1121 = pow32 + * pow1120; // pow(trace_generator, (safe_div((safe_mult(5643, global_values.trace_length)), 32768))). + let pow1122 = pow32 + * pow1121; // pow(trace_generator, (safe_div((safe_mult(11287, global_values.trace_length)), 65536))). + let pow1123 = pow79 + * pow1122; // pow(trace_generator, (safe_div((safe_mult(177, global_values.trace_length)), 1024))). + let pow1124 = pow100 + * pow1123; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 512))). + let pow1125 = pow100 + * pow1124; // pow(trace_generator, (safe_div((safe_mult(179, global_values.trace_length)), 1024))). + let pow1126 = pow100 + * pow1125; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 256))). + let pow1127 = pow100 + * pow1126; // pow(trace_generator, (safe_div((safe_mult(181, global_values.trace_length)), 1024))). + let pow1128 = pow100 + * pow1127; // pow(trace_generator, (safe_div((safe_mult(91, global_values.trace_length)), 512))). + let pow1129 = pow100 + * pow1128; // pow(trace_generator, (safe_div((safe_mult(183, global_values.trace_length)), 1024))). + let pow1130 = pow580 + * pow1129; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 16))). + let pow1131 = pow32 + * pow1130; // pow(trace_generator, (safe_div((safe_mult(12289, global_values.trace_length)), 65536))). + let pow1132 = pow32 + * pow1131; // pow(trace_generator, (safe_div((safe_mult(6145, global_values.trace_length)), 32768))). + let pow1133 = pow32 + * pow1132; // pow(trace_generator, (safe_div((safe_mult(12291, global_values.trace_length)), 65536))). + let pow1134 = pow32 + * pow1133; // pow(trace_generator, (safe_div((safe_mult(3073, global_values.trace_length)), 16384))). + let pow1135 = pow32 + * pow1134; // pow(trace_generator, (safe_div((safe_mult(12293, global_values.trace_length)), 65536))). + let pow1136 = pow32 + * pow1135; // pow(trace_generator, (safe_div((safe_mult(6147, global_values.trace_length)), 32768))). + let pow1137 = pow32 + * pow1136; // pow(trace_generator, (safe_div((safe_mult(12295, global_values.trace_length)), 65536))). + let pow1138 = pow32 + * pow1137; // pow(trace_generator, (safe_div((safe_mult(1537, global_values.trace_length)), 8192))). + let pow1139 = pow32 + * pow1138; // pow(trace_generator, (safe_div((safe_mult(12297, global_values.trace_length)), 65536))). + let pow1140 = pow32 + * pow1139; // pow(trace_generator, (safe_div((safe_mult(6149, global_values.trace_length)), 32768))). + let pow1141 = pow32 + * pow1140; // pow(trace_generator, (safe_div((safe_mult(12299, global_values.trace_length)), 65536))). + let pow1142 = pow32 + * pow1141; // pow(trace_generator, (safe_div((safe_mult(3075, global_values.trace_length)), 16384))). + let pow1143 = pow32 + * pow1142; // pow(trace_generator, (safe_div((safe_mult(12301, global_values.trace_length)), 65536))). + let pow1144 = pow32 + * pow1143; // pow(trace_generator, (safe_div((safe_mult(6151, global_values.trace_length)), 32768))). + let pow1145 = pow32 + * pow1144; // pow(trace_generator, (safe_div((safe_mult(12303, global_values.trace_length)), 65536))). + let pow1146 = pow32 + * pow1145; // pow(trace_generator, (safe_div((safe_mult(769, global_values.trace_length)), 4096))). + let pow1147 = pow32 + * pow1146; // pow(trace_generator, (safe_div((safe_mult(12305, global_values.trace_length)), 65536))). + let pow1148 = pow32 + * pow1147; // pow(trace_generator, (safe_div((safe_mult(6153, global_values.trace_length)), 32768))). + let pow1149 = pow32 + * pow1148; // pow(trace_generator, (safe_div((safe_mult(12307, global_values.trace_length)), 65536))). + let pow1150 = pow32 + * pow1149; // pow(trace_generator, (safe_div((safe_mult(3077, global_values.trace_length)), 16384))). + let pow1151 = pow32 + * pow1150; // pow(trace_generator, (safe_div((safe_mult(12309, global_values.trace_length)), 65536))). + let pow1152 = pow32 + * pow1151; // pow(trace_generator, (safe_div((safe_mult(6155, global_values.trace_length)), 32768))). + let pow1153 = pow32 + * pow1152; // pow(trace_generator, (safe_div((safe_mult(12311, global_values.trace_length)), 65536))). + let pow1154 = pow79 + * pow1153; // pow(trace_generator, (safe_div((safe_mult(193, global_values.trace_length)), 1024))). + let pow1155 = pow100 + * pow1154; // pow(trace_generator, (safe_div((safe_mult(97, global_values.trace_length)), 512))). + let pow1156 = pow100 + * pow1155; // pow(trace_generator, (safe_div((safe_mult(195, global_values.trace_length)), 1024))). + let pow1157 = pow100 + * pow1156; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 256))). + let pow1158 = pow100 + * pow1157; // pow(trace_generator, (safe_div((safe_mult(197, global_values.trace_length)), 1024))). + let pow1159 = pow100 + * pow1158; // pow(trace_generator, (safe_div((safe_mult(99, global_values.trace_length)), 512))). + let pow1160 = pow100 + * pow1159; // pow(trace_generator, (safe_div((safe_mult(199, global_values.trace_length)), 1024))). + let pow1161 = pow100 + * pow1160; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 128))). + let pow1162 = pow100 + * pow1161; // pow(trace_generator, (safe_div((safe_mult(201, global_values.trace_length)), 1024))). + let pow1163 = pow100 + * pow1162; // pow(trace_generator, (safe_div((safe_mult(101, global_values.trace_length)), 512))). + let pow1164 = pow100 + * pow1163; // pow(trace_generator, (safe_div((safe_mult(203, global_values.trace_length)), 1024))). + let pow1165 = pow100 + * pow1164; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 256))). + let pow1166 = pow100 + * pow1165; // pow(trace_generator, (safe_div((safe_mult(205, global_values.trace_length)), 1024))). + let pow1167 = pow100 + * pow1166; // pow(trace_generator, (safe_div((safe_mult(103, global_values.trace_length)), 512))). + let pow1168 = pow100 + * pow1167; // pow(trace_generator, (safe_div((safe_mult(207, global_values.trace_length)), 1024))). + let pow1169 = pow100 + * pow1168; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 64))). + let pow1170 = pow32 + * pow1169; // pow(trace_generator, (safe_div((safe_mult(13313, global_values.trace_length)), 65536))). + let pow1171 = pow32 + * pow1170; // pow(trace_generator, (safe_div((safe_mult(6657, global_values.trace_length)), 32768))). + let pow1172 = pow32 + * pow1171; // pow(trace_generator, (safe_div((safe_mult(13315, global_values.trace_length)), 65536))). + let pow1173 = pow32 + * pow1172; // pow(trace_generator, (safe_div((safe_mult(3329, global_values.trace_length)), 16384))). + let pow1174 = pow32 + * pow1173; // pow(trace_generator, (safe_div((safe_mult(13317, global_values.trace_length)), 65536))). + let pow1175 = pow32 + * pow1174; // pow(trace_generator, (safe_div((safe_mult(6659, global_values.trace_length)), 32768))). + let pow1176 = pow32 + * pow1175; // pow(trace_generator, (safe_div((safe_mult(13319, global_values.trace_length)), 65536))). + let pow1177 = pow32 + * pow1176; // pow(trace_generator, (safe_div((safe_mult(1665, global_values.trace_length)), 8192))). + let pow1178 = pow32 + * pow1177; // pow(trace_generator, (safe_div((safe_mult(13321, global_values.trace_length)), 65536))). + let pow1179 = pow32 + * pow1178; // pow(trace_generator, (safe_div((safe_mult(6661, global_values.trace_length)), 32768))). + let pow1180 = pow32 + * pow1179; // pow(trace_generator, (safe_div((safe_mult(13323, global_values.trace_length)), 65536))). + let pow1181 = pow32 + * pow1180; // pow(trace_generator, (safe_div((safe_mult(3331, global_values.trace_length)), 16384))). + let pow1182 = pow32 + * pow1181; // pow(trace_generator, (safe_div((safe_mult(13325, global_values.trace_length)), 65536))). + let pow1183 = pow32 + * pow1182; // pow(trace_generator, (safe_div((safe_mult(6663, global_values.trace_length)), 32768))). + let pow1184 = pow32 + * pow1183; // pow(trace_generator, (safe_div((safe_mult(13327, global_values.trace_length)), 65536))). + let pow1185 = pow32 + * pow1184; // pow(trace_generator, (safe_div((safe_mult(833, global_values.trace_length)), 4096))). + let pow1186 = pow32 + * pow1185; // pow(trace_generator, (safe_div((safe_mult(13329, global_values.trace_length)), 65536))). + let pow1187 = pow32 + * pow1186; // pow(trace_generator, (safe_div((safe_mult(6665, global_values.trace_length)), 32768))). + let pow1188 = pow32 + * pow1187; // pow(trace_generator, (safe_div((safe_mult(13331, global_values.trace_length)), 65536))). + let pow1189 = pow32 + * pow1188; // pow(trace_generator, (safe_div((safe_mult(3333, global_values.trace_length)), 16384))). + let pow1190 = pow32 + * pow1189; // pow(trace_generator, (safe_div((safe_mult(13333, global_values.trace_length)), 65536))). + let pow1191 = pow32 + * pow1190; // pow(trace_generator, (safe_div((safe_mult(6667, global_values.trace_length)), 32768))). + let pow1192 = pow32 + * pow1191; // pow(trace_generator, (safe_div((safe_mult(13335, global_values.trace_length)), 65536))). + let pow1193 = pow79 + * pow1192; // pow(trace_generator, (safe_div((safe_mult(209, global_values.trace_length)), 1024))). + let pow1194 = pow100 + * pow1193; // pow(trace_generator, (safe_div((safe_mult(105, global_values.trace_length)), 512))). + let pow1195 = pow100 + * pow1194; // pow(trace_generator, (safe_div((safe_mult(211, global_values.trace_length)), 1024))). + let pow1196 = pow100 + * pow1195; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 256))). + let pow1197 = pow100 + * pow1196; // pow(trace_generator, (safe_div((safe_mult(213, global_values.trace_length)), 1024))). + let pow1198 = pow100 + * pow1197; // pow(trace_generator, (safe_div((safe_mult(107, global_values.trace_length)), 512))). + let pow1199 = pow100 + * pow1198; // pow(trace_generator, (safe_div((safe_mult(215, global_values.trace_length)), 1024))). + let pow1200 = pow580 + * pow1199; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 32))). + let pow1201 = pow32 + * pow1200; // pow(trace_generator, (safe_div((safe_mult(14337, global_values.trace_length)), 65536))). + let pow1202 = pow32 + * pow1201; // pow(trace_generator, (safe_div((safe_mult(7169, global_values.trace_length)), 32768))). + let pow1203 = pow32 + * pow1202; // pow(trace_generator, (safe_div((safe_mult(14339, global_values.trace_length)), 65536))). + let pow1204 = pow32 + * pow1203; // pow(trace_generator, (safe_div((safe_mult(3585, global_values.trace_length)), 16384))). + let pow1205 = pow32 + * pow1204; // pow(trace_generator, (safe_div((safe_mult(14341, global_values.trace_length)), 65536))). + let pow1206 = pow32 + * pow1205; // pow(trace_generator, (safe_div((safe_mult(7171, global_values.trace_length)), 32768))). + let pow1207 = pow32 + * pow1206; // pow(trace_generator, (safe_div((safe_mult(14343, global_values.trace_length)), 65536))). + let pow1208 = pow32 + * pow1207; // pow(trace_generator, (safe_div((safe_mult(1793, global_values.trace_length)), 8192))). + let pow1209 = pow32 + * pow1208; // pow(trace_generator, (safe_div((safe_mult(14345, global_values.trace_length)), 65536))). + let pow1210 = pow32 + * pow1209; // pow(trace_generator, (safe_div((safe_mult(7173, global_values.trace_length)), 32768))). + let pow1211 = pow32 + * pow1210; // pow(trace_generator, (safe_div((safe_mult(14347, global_values.trace_length)), 65536))). + let pow1212 = pow32 + * pow1211; // pow(trace_generator, (safe_div((safe_mult(3587, global_values.trace_length)), 16384))). + let pow1213 = pow32 + * pow1212; // pow(trace_generator, (safe_div((safe_mult(14349, global_values.trace_length)), 65536))). + let pow1214 = pow32 + * pow1213; // pow(trace_generator, (safe_div((safe_mult(7175, global_values.trace_length)), 32768))). + let pow1215 = pow32 + * pow1214; // pow(trace_generator, (safe_div((safe_mult(14351, global_values.trace_length)), 65536))). + let pow1216 = pow32 + * pow1215; // pow(trace_generator, (safe_div((safe_mult(897, global_values.trace_length)), 4096))). + let pow1217 = pow32 + * pow1216; // pow(trace_generator, (safe_div((safe_mult(14353, global_values.trace_length)), 65536))). + let pow1218 = pow32 + * pow1217; // pow(trace_generator, (safe_div((safe_mult(7177, global_values.trace_length)), 32768))). + let pow1219 = pow32 + * pow1218; // pow(trace_generator, (safe_div((safe_mult(14355, global_values.trace_length)), 65536))). + let pow1220 = pow32 + * pow1219; // pow(trace_generator, (safe_div((safe_mult(3589, global_values.trace_length)), 16384))). + let pow1221 = pow32 + * pow1220; // pow(trace_generator, (safe_div((safe_mult(14357, global_values.trace_length)), 65536))). + let pow1222 = pow32 + * pow1221; // pow(trace_generator, (safe_div((safe_mult(7179, global_values.trace_length)), 32768))). + let pow1223 = pow32 + * pow1222; // pow(trace_generator, (safe_div((safe_mult(14359, global_values.trace_length)), 65536))). + let pow1224 = pow79 + * pow1223; // pow(trace_generator, (safe_div((safe_mult(225, global_values.trace_length)), 1024))). + let pow1225 = pow100 + * pow1224; // pow(trace_generator, (safe_div((safe_mult(113, global_values.trace_length)), 512))). + let pow1226 = pow100 + * pow1225; // pow(trace_generator, (safe_div((safe_mult(227, global_values.trace_length)), 1024))). + let pow1227 = pow100 + * pow1226; // pow(trace_generator, (safe_div((safe_mult(57, global_values.trace_length)), 256))). + let pow1228 = pow100 + * pow1227; // pow(trace_generator, (safe_div((safe_mult(229, global_values.trace_length)), 1024))). + let pow1229 = pow100 + * pow1228; // pow(trace_generator, (safe_div((safe_mult(115, global_values.trace_length)), 512))). + let pow1230 = pow100 + * pow1229; // pow(trace_generator, (safe_div((safe_mult(231, global_values.trace_length)), 1024))). + let pow1231 = pow100 + * pow1230; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 128))). + let pow1232 = pow100 + * pow1231; // pow(trace_generator, (safe_div((safe_mult(233, global_values.trace_length)), 1024))). + let pow1233 = pow100 + * pow1232; // pow(trace_generator, (safe_div((safe_mult(117, global_values.trace_length)), 512))). + let pow1234 = pow100 + * pow1233; // pow(trace_generator, (safe_div((safe_mult(235, global_values.trace_length)), 1024))). + let pow1235 = pow100 + * pow1234; // pow(trace_generator, (safe_div((safe_mult(59, global_values.trace_length)), 256))). + let pow1236 = pow100 + * pow1235; // pow(trace_generator, (safe_div((safe_mult(237, global_values.trace_length)), 1024))). + let pow1237 = pow100 + * pow1236; // pow(trace_generator, (safe_div((safe_mult(119, global_values.trace_length)), 512))). + let pow1238 = pow100 + * pow1237; // pow(trace_generator, (safe_div((safe_mult(239, global_values.trace_length)), 1024))). + let pow1239 = pow100 + * pow1238; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 64))). + let pow1240 = pow32 + * pow1239; // pow(trace_generator, (safe_div((safe_mult(15361, global_values.trace_length)), 65536))). + let pow1241 = pow32 + * pow1240; // pow(trace_generator, (safe_div((safe_mult(7681, global_values.trace_length)), 32768))). + let pow1242 = pow32 + * pow1241; // pow(trace_generator, (safe_div((safe_mult(15363, global_values.trace_length)), 65536))). + let pow1243 = pow32 + * pow1242; // pow(trace_generator, (safe_div((safe_mult(3841, global_values.trace_length)), 16384))). + let pow1244 = pow32 + * pow1243; // pow(trace_generator, (safe_div((safe_mult(15365, global_values.trace_length)), 65536))). + let pow1245 = pow32 + * pow1244; // pow(trace_generator, (safe_div((safe_mult(7683, global_values.trace_length)), 32768))). + let pow1246 = pow32 + * pow1245; // pow(trace_generator, (safe_div((safe_mult(15367, global_values.trace_length)), 65536))). + let pow1247 = pow32 + * pow1246; // pow(trace_generator, (safe_div((safe_mult(1921, global_values.trace_length)), 8192))). + let pow1248 = pow32 + * pow1247; // pow(trace_generator, (safe_div((safe_mult(15369, global_values.trace_length)), 65536))). + let pow1249 = pow32 + * pow1248; // pow(trace_generator, (safe_div((safe_mult(7685, global_values.trace_length)), 32768))). + let pow1250 = pow32 + * pow1249; // pow(trace_generator, (safe_div((safe_mult(15371, global_values.trace_length)), 65536))). + let pow1251 = pow32 + * pow1250; // pow(trace_generator, (safe_div((safe_mult(3843, global_values.trace_length)), 16384))). + let pow1252 = pow32 + * pow1251; // pow(trace_generator, (safe_div((safe_mult(15373, global_values.trace_length)), 65536))). + let pow1253 = pow32 + * pow1252; // pow(trace_generator, (safe_div((safe_mult(7687, global_values.trace_length)), 32768))). + let pow1254 = pow32 + * pow1253; // pow(trace_generator, (safe_div((safe_mult(15375, global_values.trace_length)), 65536))). + let pow1255 = pow32 + * pow1254; // pow(trace_generator, (safe_div((safe_mult(961, global_values.trace_length)), 4096))). + let pow1256 = pow32 + * pow1255; // pow(trace_generator, (safe_div((safe_mult(15377, global_values.trace_length)), 65536))). + let pow1257 = pow32 + * pow1256; // pow(trace_generator, (safe_div((safe_mult(7689, global_values.trace_length)), 32768))). + let pow1258 = pow32 + * pow1257; // pow(trace_generator, (safe_div((safe_mult(15379, global_values.trace_length)), 65536))). + let pow1259 = pow32 + * pow1258; // pow(trace_generator, (safe_div((safe_mult(3845, global_values.trace_length)), 16384))). + let pow1260 = pow32 + * pow1259; // pow(trace_generator, (safe_div((safe_mult(15381, global_values.trace_length)), 65536))). + let pow1261 = pow32 + * pow1260; // pow(trace_generator, (safe_div((safe_mult(7691, global_values.trace_length)), 32768))). + let pow1262 = pow32 + * pow1261; // pow(trace_generator, (safe_div((safe_mult(15383, global_values.trace_length)), 65536))). + let pow1263 = pow79 + * pow1262; // pow(trace_generator, (safe_div((safe_mult(241, global_values.trace_length)), 1024))). + let pow1264 = pow100 + * pow1263; // pow(trace_generator, (safe_div((safe_mult(121, global_values.trace_length)), 512))). + let pow1265 = pow100 + * pow1264; // pow(trace_generator, (safe_div((safe_mult(243, global_values.trace_length)), 1024))). + let pow1266 = pow100 + * pow1265; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 256))). + let pow1267 = pow100 + * pow1266; // pow(trace_generator, (safe_div((safe_mult(245, global_values.trace_length)), 1024))). + let pow1268 = pow100 + * pow1267; // pow(trace_generator, (safe_div((safe_mult(123, global_values.trace_length)), 512))). + let pow1269 = pow100 + * pow1268; // pow(trace_generator, (safe_div((safe_mult(247, global_values.trace_length)), 1024))). + let pow1270 = pow580 + * pow1269; // pow(trace_generator, (safe_div(global_values.trace_length, 4))). + let pow1271 = pow793 + * pow1270; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 64))). + let pow1272 = pow793 + * pow1271; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 32))). + let pow1273 = pow793 + * pow1272; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 64))). + let pow1274 = pow32 + * pow1270; // pow(trace_generator, (safe_div((safe_mult(16385, global_values.trace_length)), 65536))). + let pow1275 = pow32 + * pow1271; // pow(trace_generator, (safe_div((safe_mult(17409, global_values.trace_length)), 65536))). + let pow1276 = pow32 + * pow1272; // pow(trace_generator, (safe_div((safe_mult(18433, global_values.trace_length)), 65536))). + let pow1277 = pow32 + * pow1273; // pow(trace_generator, (safe_div((safe_mult(19457, global_values.trace_length)), 65536))). + let pow1278 = pow32 + * pow1274; // pow(trace_generator, (safe_div((safe_mult(8193, global_values.trace_length)), 32768))). + let pow1279 = pow32 + * pow1275; // pow(trace_generator, (safe_div((safe_mult(8705, global_values.trace_length)), 32768))). + let pow1280 = pow32 + * pow1276; // pow(trace_generator, (safe_div((safe_mult(9217, global_values.trace_length)), 32768))). + let pow1281 = pow32 + * pow1277; // pow(trace_generator, (safe_div((safe_mult(9729, global_values.trace_length)), 32768))). + let pow1282 = pow32 + * pow1278; // pow(trace_generator, (safe_div((safe_mult(16387, global_values.trace_length)), 65536))). + let pow1283 = pow32 + * pow1279; // pow(trace_generator, (safe_div((safe_mult(17411, global_values.trace_length)), 65536))). + let pow1284 = pow32 + * pow1280; // pow(trace_generator, (safe_div((safe_mult(18435, global_values.trace_length)), 65536))). + let pow1285 = pow32 + * pow1281; // pow(trace_generator, (safe_div((safe_mult(19459, global_values.trace_length)), 65536))). + let pow1286 = pow32 + * pow1282; // pow(trace_generator, (safe_div((safe_mult(4097, global_values.trace_length)), 16384))). + let pow1287 = pow32 + * pow1283; // pow(trace_generator, (safe_div((safe_mult(4353, global_values.trace_length)), 16384))). + let pow1288 = pow32 + * pow1284; // pow(trace_generator, (safe_div((safe_mult(4609, global_values.trace_length)), 16384))). + let pow1289 = pow32 + * pow1285; // pow(trace_generator, (safe_div((safe_mult(4865, global_values.trace_length)), 16384))). + let pow1290 = pow32 + * pow1286; // pow(trace_generator, (safe_div((safe_mult(16389, global_values.trace_length)), 65536))). + let pow1291 = pow32 + * pow1287; // pow(trace_generator, (safe_div((safe_mult(17413, global_values.trace_length)), 65536))). + let pow1292 = pow32 + * pow1288; // pow(trace_generator, (safe_div((safe_mult(18437, global_values.trace_length)), 65536))). + let pow1293 = pow32 + * pow1289; // pow(trace_generator, (safe_div((safe_mult(19461, global_values.trace_length)), 65536))). + let pow1294 = pow32 + * pow1290; // pow(trace_generator, (safe_div((safe_mult(8195, global_values.trace_length)), 32768))). + let pow1295 = pow32 + * pow1291; // pow(trace_generator, (safe_div((safe_mult(8707, global_values.trace_length)), 32768))). + let pow1296 = pow32 + * pow1292; // pow(trace_generator, (safe_div((safe_mult(9219, global_values.trace_length)), 32768))). + let pow1297 = pow32 + * pow1293; // pow(trace_generator, (safe_div((safe_mult(9731, global_values.trace_length)), 32768))). + let pow1298 = pow32 + * pow1294; // pow(trace_generator, (safe_div((safe_mult(16391, global_values.trace_length)), 65536))). + let pow1299 = pow32 + * pow1298; // pow(trace_generator, (safe_div((safe_mult(2049, global_values.trace_length)), 8192))). + let pow1300 = pow32 + * pow1295; // pow(trace_generator, (safe_div((safe_mult(17415, global_values.trace_length)), 65536))). + let pow1301 = pow32 + * pow1300; // pow(trace_generator, (safe_div((safe_mult(2177, global_values.trace_length)), 8192))). + let pow1302 = pow32 + * pow1296; // pow(trace_generator, (safe_div((safe_mult(18439, global_values.trace_length)), 65536))). + let pow1303 = pow32 + * pow1302; // pow(trace_generator, (safe_div((safe_mult(2305, global_values.trace_length)), 8192))). + let pow1304 = pow32 + * pow1297; // pow(trace_generator, (safe_div((safe_mult(19463, global_values.trace_length)), 65536))). + let pow1305 = pow32 + * pow1304; // pow(trace_generator, (safe_div((safe_mult(2433, global_values.trace_length)), 8192))). + let pow1306 = pow32 + * pow1299; // pow(trace_generator, (safe_div((safe_mult(16393, global_values.trace_length)), 65536))). + let pow1307 = pow32 + * pow1301; // pow(trace_generator, (safe_div((safe_mult(17417, global_values.trace_length)), 65536))). + let pow1308 = pow32 + * pow1303; // pow(trace_generator, (safe_div((safe_mult(18441, global_values.trace_length)), 65536))). + let pow1309 = pow32 + * pow1305; // pow(trace_generator, (safe_div((safe_mult(19465, global_values.trace_length)), 65536))). + let pow1310 = pow32 + * pow1306; // pow(trace_generator, (safe_div((safe_mult(8197, global_values.trace_length)), 32768))). + let pow1311 = pow32 + * pow1307; // pow(trace_generator, (safe_div((safe_mult(8709, global_values.trace_length)), 32768))). + let pow1312 = pow32 + * pow1308; // pow(trace_generator, (safe_div((safe_mult(9221, global_values.trace_length)), 32768))). + let pow1313 = pow32 + * pow1309; // pow(trace_generator, (safe_div((safe_mult(9733, global_values.trace_length)), 32768))). + let pow1314 = pow32 + * pow1310; // pow(trace_generator, (safe_div((safe_mult(16395, global_values.trace_length)), 65536))). + let pow1315 = pow32 + * pow1311; // pow(trace_generator, (safe_div((safe_mult(17419, global_values.trace_length)), 65536))). + let pow1316 = pow32 + * pow1312; // pow(trace_generator, (safe_div((safe_mult(18443, global_values.trace_length)), 65536))). + let pow1317 = pow32 + * pow1313; // pow(trace_generator, (safe_div((safe_mult(19467, global_values.trace_length)), 65536))). + let pow1318 = pow32 + * pow1314; // pow(trace_generator, (safe_div((safe_mult(4099, global_values.trace_length)), 16384))). + let pow1319 = pow32 + * pow1315; // pow(trace_generator, (safe_div((safe_mult(4355, global_values.trace_length)), 16384))). + let pow1320 = pow32 + * pow1316; // pow(trace_generator, (safe_div((safe_mult(4611, global_values.trace_length)), 16384))). + let pow1321 = pow32 + * pow1317; // pow(trace_generator, (safe_div((safe_mult(4867, global_values.trace_length)), 16384))). + let pow1322 = pow32 + * pow1318; // pow(trace_generator, (safe_div((safe_mult(16397, global_values.trace_length)), 65536))). + let pow1323 = pow32 + * pow1319; // pow(trace_generator, (safe_div((safe_mult(17421, global_values.trace_length)), 65536))). + let pow1324 = pow32 + * pow1320; // pow(trace_generator, (safe_div((safe_mult(18445, global_values.trace_length)), 65536))). + let pow1325 = pow32 + * pow1321; // pow(trace_generator, (safe_div((safe_mult(19469, global_values.trace_length)), 65536))). + let pow1326 = pow32 + * pow1322; // pow(trace_generator, (safe_div((safe_mult(8199, global_values.trace_length)), 32768))). + let pow1327 = pow32 + * pow1323; // pow(trace_generator, (safe_div((safe_mult(8711, global_values.trace_length)), 32768))). + let pow1328 = pow32 + * pow1324; // pow(trace_generator, (safe_div((safe_mult(9223, global_values.trace_length)), 32768))). + let pow1329 = pow32 + * pow1325; // pow(trace_generator, (safe_div((safe_mult(9735, global_values.trace_length)), 32768))). + let pow1330 = pow32 + * pow1326; // pow(trace_generator, (safe_div((safe_mult(16399, global_values.trace_length)), 65536))). + let pow1331 = pow32 + * pow1327; // pow(trace_generator, (safe_div((safe_mult(17423, global_values.trace_length)), 65536))). + let pow1332 = pow32 + * pow1328; // pow(trace_generator, (safe_div((safe_mult(18447, global_values.trace_length)), 65536))). + let pow1333 = pow32 + * pow1329; // pow(trace_generator, (safe_div((safe_mult(19471, global_values.trace_length)), 65536))). + let pow1334 = pow32 + * pow1330; // pow(trace_generator, (safe_div((safe_mult(1025, global_values.trace_length)), 4096))). + let pow1335 = pow32 + * pow1331; // pow(trace_generator, (safe_div((safe_mult(1089, global_values.trace_length)), 4096))). + let pow1336 = pow32 + * pow1332; // pow(trace_generator, (safe_div((safe_mult(1153, global_values.trace_length)), 4096))). + let pow1337 = pow32 + * pow1333; // pow(trace_generator, (safe_div((safe_mult(1217, global_values.trace_length)), 4096))). + let pow1338 = pow32 + * pow1334; // pow(trace_generator, (safe_div((safe_mult(16401, global_values.trace_length)), 65536))). + let pow1339 = pow32 + * pow1335; // pow(trace_generator, (safe_div((safe_mult(17425, global_values.trace_length)), 65536))). + let pow1340 = pow32 + * pow1336; // pow(trace_generator, (safe_div((safe_mult(18449, global_values.trace_length)), 65536))). + let pow1341 = pow32 + * pow1337; // pow(trace_generator, (safe_div((safe_mult(19473, global_values.trace_length)), 65536))). + let pow1342 = pow32 + * pow1338; // pow(trace_generator, (safe_div((safe_mult(8201, global_values.trace_length)), 32768))). + let pow1343 = pow32 + * pow1339; // pow(trace_generator, (safe_div((safe_mult(8713, global_values.trace_length)), 32768))). + let pow1344 = pow32 + * pow1340; // pow(trace_generator, (safe_div((safe_mult(9225, global_values.trace_length)), 32768))). + let pow1345 = pow32 + * pow1341; // pow(trace_generator, (safe_div((safe_mult(9737, global_values.trace_length)), 32768))). + let pow1346 = pow32 + * pow1342; // pow(trace_generator, (safe_div((safe_mult(16403, global_values.trace_length)), 65536))). + let pow1347 = pow32 + * pow1343; // pow(trace_generator, (safe_div((safe_mult(17427, global_values.trace_length)), 65536))). + let pow1348 = pow32 + * pow1344; // pow(trace_generator, (safe_div((safe_mult(18451, global_values.trace_length)), 65536))). + let pow1349 = pow32 + * pow1345; // pow(trace_generator, (safe_div((safe_mult(19475, global_values.trace_length)), 65536))). + let pow1350 = pow32 + * pow1346; // pow(trace_generator, (safe_div((safe_mult(4101, global_values.trace_length)), 16384))). + let pow1351 = pow32 + * pow1347; // pow(trace_generator, (safe_div((safe_mult(4357, global_values.trace_length)), 16384))). + let pow1352 = pow32 + * pow1348; // pow(trace_generator, (safe_div((safe_mult(4613, global_values.trace_length)), 16384))). + let pow1353 = pow32 + * pow1349; // pow(trace_generator, (safe_div((safe_mult(4869, global_values.trace_length)), 16384))). + let pow1354 = pow32 + * pow1350; // pow(trace_generator, (safe_div((safe_mult(16405, global_values.trace_length)), 65536))). + let pow1355 = pow32 + * pow1351; // pow(trace_generator, (safe_div((safe_mult(17429, global_values.trace_length)), 65536))). + let pow1356 = pow32 + * pow1352; // pow(trace_generator, (safe_div((safe_mult(18453, global_values.trace_length)), 65536))). + let pow1357 = pow32 + * pow1353; // pow(trace_generator, (safe_div((safe_mult(19477, global_values.trace_length)), 65536))). + let pow1358 = pow32 + * pow1354; // pow(trace_generator, (safe_div((safe_mult(8203, global_values.trace_length)), 32768))). + let pow1359 = pow32 + * pow1355; // pow(trace_generator, (safe_div((safe_mult(8715, global_values.trace_length)), 32768))). + let pow1360 = pow32 + * pow1356; // pow(trace_generator, (safe_div((safe_mult(9227, global_values.trace_length)), 32768))). + let pow1361 = pow32 + * pow1357; // pow(trace_generator, (safe_div((safe_mult(9739, global_values.trace_length)), 32768))). + let pow1362 = pow32 + * pow1358; // pow(trace_generator, (safe_div((safe_mult(16407, global_values.trace_length)), 65536))). + let pow1363 = pow32 + * pow1359; // pow(trace_generator, (safe_div((safe_mult(17431, global_values.trace_length)), 65536))). + let pow1364 = pow32 + * pow1360; // pow(trace_generator, (safe_div((safe_mult(18455, global_values.trace_length)), 65536))). + let pow1365 = pow32 + * pow1361; // pow(trace_generator, (safe_div((safe_mult(19479, global_values.trace_length)), 65536))). + let pow1366 = pow793 + * pow1273; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 16))). + let pow1367 = pow32 + * pow1366; // pow(trace_generator, (safe_div((safe_mult(20481, global_values.trace_length)), 65536))). + let pow1368 = pow32 + * pow1367; // pow(trace_generator, (safe_div((safe_mult(10241, global_values.trace_length)), 32768))). + let pow1369 = pow32 + * pow1368; // pow(trace_generator, (safe_div((safe_mult(20483, global_values.trace_length)), 65536))). + let pow1370 = pow32 + * pow1369; // pow(trace_generator, (safe_div((safe_mult(5121, global_values.trace_length)), 16384))). + let pow1371 = pow32 + * pow1370; // pow(trace_generator, (safe_div((safe_mult(20485, global_values.trace_length)), 65536))). + let pow1372 = pow32 + * pow1371; // pow(trace_generator, (safe_div((safe_mult(10243, global_values.trace_length)), 32768))). + let pow1373 = pow32 + * pow1372; // pow(trace_generator, (safe_div((safe_mult(20487, global_values.trace_length)), 65536))). + let pow1374 = pow32 + * pow1373; // pow(trace_generator, (safe_div((safe_mult(2561, global_values.trace_length)), 8192))). + let pow1375 = pow32 + * pow1374; // pow(trace_generator, (safe_div((safe_mult(20489, global_values.trace_length)), 65536))). + let pow1376 = pow32 + * pow1375; // pow(trace_generator, (safe_div((safe_mult(10245, global_values.trace_length)), 32768))). + let pow1377 = pow32 + * pow1376; // pow(trace_generator, (safe_div((safe_mult(20491, global_values.trace_length)), 65536))). + let pow1378 = pow32 + * pow1377; // pow(trace_generator, (safe_div((safe_mult(5123, global_values.trace_length)), 16384))). + let pow1379 = pow32 + * pow1378; // pow(trace_generator, (safe_div((safe_mult(20493, global_values.trace_length)), 65536))). + let pow1380 = pow32 + * pow1379; // pow(trace_generator, (safe_div((safe_mult(10247, global_values.trace_length)), 32768))). + let pow1381 = pow32 + * pow1380; // pow(trace_generator, (safe_div((safe_mult(20495, global_values.trace_length)), 65536))). + let pow1382 = pow32 + * pow1381; // pow(trace_generator, (safe_div((safe_mult(1281, global_values.trace_length)), 4096))). + let pow1383 = pow32 + * pow1382; // pow(trace_generator, (safe_div((safe_mult(20497, global_values.trace_length)), 65536))). + let pow1384 = pow32 + * pow1383; // pow(trace_generator, (safe_div((safe_mult(10249, global_values.trace_length)), 32768))). + let pow1385 = pow32 + * pow1384; // pow(trace_generator, (safe_div((safe_mult(20499, global_values.trace_length)), 65536))). + let pow1386 = pow32 + * pow1385; // pow(trace_generator, (safe_div((safe_mult(5125, global_values.trace_length)), 16384))). + let pow1387 = pow32 + * pow1386; // pow(trace_generator, (safe_div((safe_mult(20501, global_values.trace_length)), 65536))). + let pow1388 = pow32 + * pow1387; // pow(trace_generator, (safe_div((safe_mult(10251, global_values.trace_length)), 32768))). + let pow1389 = pow32 + * pow1388; // pow(trace_generator, (safe_div((safe_mult(20503, global_values.trace_length)), 65536))). + let pow1390 = pow79 + * pow1389; // pow(trace_generator, (safe_div((safe_mult(321, global_values.trace_length)), 1024))). + let pow1391 = pow100 + * pow1390; // pow(trace_generator, (safe_div((safe_mult(161, global_values.trace_length)), 512))). + let pow1392 = pow100 + * pow1391; // pow(trace_generator, (safe_div((safe_mult(323, global_values.trace_length)), 1024))). + let pow1393 = pow100 + * pow1392; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 256))). + let pow1394 = pow100 + * pow1393; // pow(trace_generator, (safe_div((safe_mult(325, global_values.trace_length)), 1024))). + let pow1395 = pow100 + * pow1394; // pow(trace_generator, (safe_div((safe_mult(163, global_values.trace_length)), 512))). + let pow1396 = pow100 + * pow1395; // pow(trace_generator, (safe_div((safe_mult(327, global_values.trace_length)), 1024))). + let pow1397 = pow100 + * pow1396; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 128))). + let pow1398 = pow100 + * pow1397; // pow(trace_generator, (safe_div((safe_mult(329, global_values.trace_length)), 1024))). + let pow1399 = pow100 + * pow1398; // pow(trace_generator, (safe_div((safe_mult(165, global_values.trace_length)), 512))). + let pow1400 = pow100 + * pow1399; // pow(trace_generator, (safe_div((safe_mult(331, global_values.trace_length)), 1024))). + let pow1401 = pow100 + * pow1400; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 256))). + let pow1402 = pow100 + * pow1401; // pow(trace_generator, (safe_div((safe_mult(333, global_values.trace_length)), 1024))). + let pow1403 = pow100 + * pow1402; // pow(trace_generator, (safe_div((safe_mult(167, global_values.trace_length)), 512))). + let pow1404 = pow100 + * pow1403; // pow(trace_generator, (safe_div((safe_mult(335, global_values.trace_length)), 1024))). + let pow1405 = pow100 + * pow1404; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 64))). + let pow1406 = pow32 + * pow1405; // pow(trace_generator, (safe_div((safe_mult(21505, global_values.trace_length)), 65536))). + let pow1407 = pow32 + * pow1406; // pow(trace_generator, (safe_div((safe_mult(10753, global_values.trace_length)), 32768))). + let pow1408 = pow32 + * pow1407; // pow(trace_generator, (safe_div((safe_mult(21507, global_values.trace_length)), 65536))). + let pow1409 = pow32 + * pow1408; // pow(trace_generator, (safe_div((safe_mult(5377, global_values.trace_length)), 16384))). + let pow1410 = pow32 + * pow1409; // pow(trace_generator, (safe_div((safe_mult(21509, global_values.trace_length)), 65536))). + let pow1411 = pow32 + * pow1410; // pow(trace_generator, (safe_div((safe_mult(10755, global_values.trace_length)), 32768))). + let pow1412 = pow32 + * pow1411; // pow(trace_generator, (safe_div((safe_mult(21511, global_values.trace_length)), 65536))). + let pow1413 = pow32 + * pow1412; // pow(trace_generator, (safe_div((safe_mult(2689, global_values.trace_length)), 8192))). + let pow1414 = pow32 + * pow1413; // pow(trace_generator, (safe_div((safe_mult(21513, global_values.trace_length)), 65536))). + let pow1415 = pow32 + * pow1414; // pow(trace_generator, (safe_div((safe_mult(10757, global_values.trace_length)), 32768))). + let pow1416 = pow32 + * pow1415; // pow(trace_generator, (safe_div((safe_mult(21515, global_values.trace_length)), 65536))). + let pow1417 = pow32 + * pow1416; // pow(trace_generator, (safe_div((safe_mult(5379, global_values.trace_length)), 16384))). + let pow1418 = pow32 + * pow1417; // pow(trace_generator, (safe_div((safe_mult(21517, global_values.trace_length)), 65536))). + let pow1419 = pow32 + * pow1418; // pow(trace_generator, (safe_div((safe_mult(10759, global_values.trace_length)), 32768))). + let pow1420 = pow32 + * pow1419; // pow(trace_generator, (safe_div((safe_mult(21519, global_values.trace_length)), 65536))). + let pow1421 = pow32 + * pow1420; // pow(trace_generator, (safe_div((safe_mult(1345, global_values.trace_length)), 4096))). + let pow1422 = pow32 + * pow1421; // pow(trace_generator, (safe_div((safe_mult(21521, global_values.trace_length)), 65536))). + let pow1423 = pow32 + * pow1422; // pow(trace_generator, (safe_div((safe_mult(10761, global_values.trace_length)), 32768))). + let pow1424 = pow32 + * pow1423; // pow(trace_generator, (safe_div((safe_mult(21523, global_values.trace_length)), 65536))). + let pow1425 = pow32 + * pow1424; // pow(trace_generator, (safe_div((safe_mult(5381, global_values.trace_length)), 16384))). + let pow1426 = pow32 + * pow1425; // pow(trace_generator, (safe_div((safe_mult(21525, global_values.trace_length)), 65536))). + let pow1427 = pow32 + * pow1426; // pow(trace_generator, (safe_div((safe_mult(10763, global_values.trace_length)), 32768))). + let pow1428 = pow32 + * pow1427; // pow(trace_generator, (safe_div((safe_mult(21527, global_values.trace_length)), 65536))). + let pow1429 = pow79 + * pow1428; // pow(trace_generator, (safe_div((safe_mult(337, global_values.trace_length)), 1024))). + let pow1430 = pow100 + * pow1429; // pow(trace_generator, (safe_div((safe_mult(169, global_values.trace_length)), 512))). + let pow1431 = pow100 + * pow1430; // pow(trace_generator, (safe_div((safe_mult(339, global_values.trace_length)), 1024))). + let pow1432 = pow100 + * pow1431; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 256))). + let pow1433 = pow100 + * pow1432; // pow(trace_generator, (safe_div((safe_mult(341, global_values.trace_length)), 1024))). + let pow1434 = pow100 + * pow1433; // pow(trace_generator, (safe_div((safe_mult(171, global_values.trace_length)), 512))). + let pow1435 = pow100 + * pow1434; // pow(trace_generator, (safe_div((safe_mult(343, global_values.trace_length)), 1024))). + let pow1436 = pow580 + * pow1435; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 32))). + let pow1437 = pow32 + * pow1436; // pow(trace_generator, (safe_div((safe_mult(22529, global_values.trace_length)), 65536))). + let pow1438 = pow32 + * pow1437; // pow(trace_generator, (safe_div((safe_mult(11265, global_values.trace_length)), 32768))). + let pow1439 = pow32 + * pow1438; // pow(trace_generator, (safe_div((safe_mult(22531, global_values.trace_length)), 65536))). + let pow1440 = pow32 + * pow1439; // pow(trace_generator, (safe_div((safe_mult(5633, global_values.trace_length)), 16384))). + let pow1441 = pow32 + * pow1440; // pow(trace_generator, (safe_div((safe_mult(22533, global_values.trace_length)), 65536))). + let pow1442 = pow32 + * pow1441; // pow(trace_generator, (safe_div((safe_mult(11267, global_values.trace_length)), 32768))). + let pow1443 = pow32 + * pow1442; // pow(trace_generator, (safe_div((safe_mult(22535, global_values.trace_length)), 65536))). + let pow1444 = pow32 + * pow1443; // pow(trace_generator, (safe_div((safe_mult(2817, global_values.trace_length)), 8192))). + let pow1445 = pow32 + * pow1444; // pow(trace_generator, (safe_div((safe_mult(22537, global_values.trace_length)), 65536))). + let pow1446 = pow32 + * pow1445; // pow(trace_generator, (safe_div((safe_mult(11269, global_values.trace_length)), 32768))). + let pow1447 = pow32 + * pow1446; // pow(trace_generator, (safe_div((safe_mult(22539, global_values.trace_length)), 65536))). + let pow1448 = pow32 + * pow1447; // pow(trace_generator, (safe_div((safe_mult(5635, global_values.trace_length)), 16384))). + let pow1449 = pow32 + * pow1448; // pow(trace_generator, (safe_div((safe_mult(22541, global_values.trace_length)), 65536))). + let pow1450 = pow32 + * pow1449; // pow(trace_generator, (safe_div((safe_mult(11271, global_values.trace_length)), 32768))). + let pow1451 = pow32 + * pow1450; // pow(trace_generator, (safe_div((safe_mult(22543, global_values.trace_length)), 65536))). + let pow1452 = pow32 + * pow1451; // pow(trace_generator, (safe_div((safe_mult(1409, global_values.trace_length)), 4096))). + let pow1453 = pow32 + * pow1452; // pow(trace_generator, (safe_div((safe_mult(22545, global_values.trace_length)), 65536))). + let pow1454 = pow32 + * pow1453; // pow(trace_generator, (safe_div((safe_mult(11273, global_values.trace_length)), 32768))). + let pow1455 = pow32 + * pow1454; // pow(trace_generator, (safe_div((safe_mult(22547, global_values.trace_length)), 65536))). + let pow1456 = pow32 + * pow1455; // pow(trace_generator, (safe_div((safe_mult(5637, global_values.trace_length)), 16384))). + let pow1457 = pow32 + * pow1456; // pow(trace_generator, (safe_div((safe_mult(22549, global_values.trace_length)), 65536))). + let pow1458 = pow32 + * pow1457; // pow(trace_generator, (safe_div((safe_mult(11275, global_values.trace_length)), 32768))). + let pow1459 = pow32 + * pow1458; // pow(trace_generator, (safe_div((safe_mult(22551, global_values.trace_length)), 65536))). + let pow1460 = pow79 + * pow1459; // pow(trace_generator, (safe_div((safe_mult(353, global_values.trace_length)), 1024))). + let pow1461 = pow100 + * pow1460; // pow(trace_generator, (safe_div((safe_mult(177, global_values.trace_length)), 512))). + let pow1462 = pow100 + * pow1461; // pow(trace_generator, (safe_div((safe_mult(355, global_values.trace_length)), 1024))). + let pow1463 = pow100 + * pow1462; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 256))). + let pow1464 = pow100 + * pow1463; // pow(trace_generator, (safe_div((safe_mult(357, global_values.trace_length)), 1024))). + let pow1465 = pow100 + * pow1464; // pow(trace_generator, (safe_div((safe_mult(179, global_values.trace_length)), 512))). + let pow1466 = pow100 + * pow1465; // pow(trace_generator, (safe_div((safe_mult(359, global_values.trace_length)), 1024))). + let pow1467 = pow100 + * pow1466; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 128))). + let pow1468 = pow100 + * pow1467; // pow(trace_generator, (safe_div((safe_mult(361, global_values.trace_length)), 1024))). + let pow1469 = pow100 + * pow1468; // pow(trace_generator, (safe_div((safe_mult(181, global_values.trace_length)), 512))). + let pow1470 = pow100 + * pow1469; // pow(trace_generator, (safe_div((safe_mult(363, global_values.trace_length)), 1024))). + let pow1471 = pow100 + * pow1470; // pow(trace_generator, (safe_div((safe_mult(91, global_values.trace_length)), 256))). + let pow1472 = pow100 + * pow1471; // pow(trace_generator, (safe_div((safe_mult(365, global_values.trace_length)), 1024))). + let pow1473 = pow100 + * pow1472; // pow(trace_generator, (safe_div((safe_mult(183, global_values.trace_length)), 512))). + let pow1474 = pow100 + * pow1473; // pow(trace_generator, (safe_div((safe_mult(367, global_values.trace_length)), 1024))). + let pow1475 = pow100 + * pow1474; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 64))). + let pow1476 = pow32 + * pow1475; // pow(trace_generator, (safe_div((safe_mult(23553, global_values.trace_length)), 65536))). + let pow1477 = pow32 + * pow1476; // pow(trace_generator, (safe_div((safe_mult(11777, global_values.trace_length)), 32768))). + let pow1478 = pow32 + * pow1477; // pow(trace_generator, (safe_div((safe_mult(23555, global_values.trace_length)), 65536))). + let pow1479 = pow32 + * pow1478; // pow(trace_generator, (safe_div((safe_mult(5889, global_values.trace_length)), 16384))). + let pow1480 = pow32 + * pow1479; // pow(trace_generator, (safe_div((safe_mult(23557, global_values.trace_length)), 65536))). + let pow1481 = pow32 + * pow1480; // pow(trace_generator, (safe_div((safe_mult(11779, global_values.trace_length)), 32768))). + let pow1482 = pow32 + * pow1481; // pow(trace_generator, (safe_div((safe_mult(23559, global_values.trace_length)), 65536))). + let pow1483 = pow32 + * pow1482; // pow(trace_generator, (safe_div((safe_mult(2945, global_values.trace_length)), 8192))). + let pow1484 = pow32 + * pow1483; // pow(trace_generator, (safe_div((safe_mult(23561, global_values.trace_length)), 65536))). + let pow1485 = pow32 + * pow1484; // pow(trace_generator, (safe_div((safe_mult(11781, global_values.trace_length)), 32768))). + let pow1486 = pow32 + * pow1485; // pow(trace_generator, (safe_div((safe_mult(23563, global_values.trace_length)), 65536))). + let pow1487 = pow32 + * pow1486; // pow(trace_generator, (safe_div((safe_mult(5891, global_values.trace_length)), 16384))). + let pow1488 = pow32 + * pow1487; // pow(trace_generator, (safe_div((safe_mult(23565, global_values.trace_length)), 65536))). + let pow1489 = pow32 + * pow1488; // pow(trace_generator, (safe_div((safe_mult(11783, global_values.trace_length)), 32768))). + let pow1490 = pow32 + * pow1489; // pow(trace_generator, (safe_div((safe_mult(23567, global_values.trace_length)), 65536))). + let pow1491 = pow32 + * pow1490; // pow(trace_generator, (safe_div((safe_mult(1473, global_values.trace_length)), 4096))). + let pow1492 = pow32 + * pow1491; // pow(trace_generator, (safe_div((safe_mult(23569, global_values.trace_length)), 65536))). + let pow1493 = pow32 + * pow1492; // pow(trace_generator, (safe_div((safe_mult(11785, global_values.trace_length)), 32768))). + let pow1494 = pow32 + * pow1493; // pow(trace_generator, (safe_div((safe_mult(23571, global_values.trace_length)), 65536))). + let pow1495 = pow32 + * pow1494; // pow(trace_generator, (safe_div((safe_mult(5893, global_values.trace_length)), 16384))). + let pow1496 = pow32 + * pow1495; // pow(trace_generator, (safe_div((safe_mult(23573, global_values.trace_length)), 65536))). + let pow1497 = pow32 + * pow1496; // pow(trace_generator, (safe_div((safe_mult(11787, global_values.trace_length)), 32768))). + let pow1498 = pow32 + * pow1497; // pow(trace_generator, (safe_div((safe_mult(23575, global_values.trace_length)), 65536))). + let pow1499 = pow79 + * pow1498; // pow(trace_generator, (safe_div((safe_mult(369, global_values.trace_length)), 1024))). + let pow1500 = pow100 + * pow1499; // pow(trace_generator, (safe_div((safe_mult(185, global_values.trace_length)), 512))). + let pow1501 = pow100 + * pow1500; // pow(trace_generator, (safe_div((safe_mult(371, global_values.trace_length)), 1024))). + let pow1502 = pow100 + * pow1501; // pow(trace_generator, (safe_div((safe_mult(93, global_values.trace_length)), 256))). + let pow1503 = pow100 + * pow1502; // pow(trace_generator, (safe_div((safe_mult(373, global_values.trace_length)), 1024))). + let pow1504 = pow100 + * pow1503; // pow(trace_generator, (safe_div((safe_mult(187, global_values.trace_length)), 512))). + let pow1505 = pow100 + * pow1504; // pow(trace_generator, (safe_div((safe_mult(375, global_values.trace_length)), 1024))). + let pow1506 = pow580 + * pow1505; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 8))). + let pow1507 = pow32 + * pow1506; // pow(trace_generator, (safe_div((safe_mult(24577, global_values.trace_length)), 65536))). + let pow1508 = pow32 + * pow1507; // pow(trace_generator, (safe_div((safe_mult(12289, global_values.trace_length)), 32768))). + let pow1509 = pow32 + * pow1508; // pow(trace_generator, (safe_div((safe_mult(24579, global_values.trace_length)), 65536))). + let pow1510 = pow32 + * pow1509; // pow(trace_generator, (safe_div((safe_mult(6145, global_values.trace_length)), 16384))). + let pow1511 = pow32 + * pow1510; // pow(trace_generator, (safe_div((safe_mult(24581, global_values.trace_length)), 65536))). + let pow1512 = pow32 + * pow1511; // pow(trace_generator, (safe_div((safe_mult(12291, global_values.trace_length)), 32768))). + let pow1513 = pow32 + * pow1512; // pow(trace_generator, (safe_div((safe_mult(24583, global_values.trace_length)), 65536))). + let pow1514 = pow32 + * pow1513; // pow(trace_generator, (safe_div((safe_mult(3073, global_values.trace_length)), 8192))). + let pow1515 = pow32 + * pow1514; // pow(trace_generator, (safe_div((safe_mult(24585, global_values.trace_length)), 65536))). + let pow1516 = pow32 + * pow1515; // pow(trace_generator, (safe_div((safe_mult(12293, global_values.trace_length)), 32768))). + let pow1517 = pow32 + * pow1516; // pow(trace_generator, (safe_div((safe_mult(24587, global_values.trace_length)), 65536))). + let pow1518 = pow32 + * pow1517; // pow(trace_generator, (safe_div((safe_mult(6147, global_values.trace_length)), 16384))). + let pow1519 = pow32 + * pow1518; // pow(trace_generator, (safe_div((safe_mult(24589, global_values.trace_length)), 65536))). + let pow1520 = pow32 + * pow1519; // pow(trace_generator, (safe_div((safe_mult(12295, global_values.trace_length)), 32768))). + let pow1521 = pow32 + * pow1520; // pow(trace_generator, (safe_div((safe_mult(24591, global_values.trace_length)), 65536))). + let pow1522 = pow32 + * pow1521; // pow(trace_generator, (safe_div((safe_mult(1537, global_values.trace_length)), 4096))). + let pow1523 = pow32 + * pow1522; // pow(trace_generator, (safe_div((safe_mult(24593, global_values.trace_length)), 65536))). + let pow1524 = pow32 + * pow1523; // pow(trace_generator, (safe_div((safe_mult(12297, global_values.trace_length)), 32768))). + let pow1525 = pow32 + * pow1524; // pow(trace_generator, (safe_div((safe_mult(24595, global_values.trace_length)), 65536))). + let pow1526 = pow32 + * pow1525; // pow(trace_generator, (safe_div((safe_mult(6149, global_values.trace_length)), 16384))). + let pow1527 = pow32 + * pow1526; // pow(trace_generator, (safe_div((safe_mult(24597, global_values.trace_length)), 65536))). + let pow1528 = pow32 + * pow1527; // pow(trace_generator, (safe_div((safe_mult(12299, global_values.trace_length)), 32768))). + let pow1529 = pow32 + * pow1528; // pow(trace_generator, (safe_div((safe_mult(24599, global_values.trace_length)), 65536))). + let pow1530 = pow79 + * pow1529; // pow(trace_generator, (safe_div((safe_mult(385, global_values.trace_length)), 1024))). + let pow1531 = pow100 + * pow1530; // pow(trace_generator, (safe_div((safe_mult(193, global_values.trace_length)), 512))). + let pow1532 = pow100 + * pow1531; // pow(trace_generator, (safe_div((safe_mult(387, global_values.trace_length)), 1024))). + let pow1533 = pow100 + * pow1532; // pow(trace_generator, (safe_div((safe_mult(97, global_values.trace_length)), 256))). + let pow1534 = pow100 + * pow1533; // pow(trace_generator, (safe_div((safe_mult(389, global_values.trace_length)), 1024))). + let pow1535 = pow100 + * pow1534; // pow(trace_generator, (safe_div((safe_mult(195, global_values.trace_length)), 512))). + let pow1536 = pow100 + * pow1535; // pow(trace_generator, (safe_div((safe_mult(391, global_values.trace_length)), 1024))). + let pow1537 = pow100 + * pow1536; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 128))). + let pow1538 = pow100 + * pow1537; // pow(trace_generator, (safe_div((safe_mult(393, global_values.trace_length)), 1024))). + let pow1539 = pow100 + * pow1538; // pow(trace_generator, (safe_div((safe_mult(197, global_values.trace_length)), 512))). + let pow1540 = pow100 + * pow1539; // pow(trace_generator, (safe_div((safe_mult(395, global_values.trace_length)), 1024))). + let pow1541 = pow100 + * pow1540; // pow(trace_generator, (safe_div((safe_mult(99, global_values.trace_length)), 256))). + let pow1542 = pow100 + * pow1541; // pow(trace_generator, (safe_div((safe_mult(397, global_values.trace_length)), 1024))). + let pow1543 = pow100 + * pow1542; // pow(trace_generator, (safe_div((safe_mult(199, global_values.trace_length)), 512))). + let pow1544 = pow100 + * pow1543; // pow(trace_generator, (safe_div((safe_mult(399, global_values.trace_length)), 1024))). + let pow1545 = pow100 + * pow1544; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 64))). + let pow1546 = pow32 + * pow1545; // pow(trace_generator, (safe_div((safe_mult(25601, global_values.trace_length)), 65536))). + let pow1547 = pow32 + * pow1546; // pow(trace_generator, (safe_div((safe_mult(12801, global_values.trace_length)), 32768))). + let pow1548 = pow32 + * pow1547; // pow(trace_generator, (safe_div((safe_mult(25603, global_values.trace_length)), 65536))). + let pow1549 = pow32 + * pow1548; // pow(trace_generator, (safe_div((safe_mult(6401, global_values.trace_length)), 16384))). + let pow1550 = pow32 + * pow1549; // pow(trace_generator, (safe_div((safe_mult(25605, global_values.trace_length)), 65536))). + let pow1551 = pow32 + * pow1550; // pow(trace_generator, (safe_div((safe_mult(12803, global_values.trace_length)), 32768))). + let pow1552 = pow32 + * pow1551; // pow(trace_generator, (safe_div((safe_mult(25607, global_values.trace_length)), 65536))). + let pow1553 = pow32 + * pow1552; // pow(trace_generator, (safe_div((safe_mult(3201, global_values.trace_length)), 8192))). + let pow1554 = pow32 + * pow1553; // pow(trace_generator, (safe_div((safe_mult(25609, global_values.trace_length)), 65536))). + let pow1555 = pow32 + * pow1554; // pow(trace_generator, (safe_div((safe_mult(12805, global_values.trace_length)), 32768))). + let pow1556 = pow32 + * pow1555; // pow(trace_generator, (safe_div((safe_mult(25611, global_values.trace_length)), 65536))). + let pow1557 = pow32 + * pow1556; // pow(trace_generator, (safe_div((safe_mult(6403, global_values.trace_length)), 16384))). + let pow1558 = pow32 + * pow1557; // pow(trace_generator, (safe_div((safe_mult(25613, global_values.trace_length)), 65536))). + let pow1559 = pow32 + * pow1558; // pow(trace_generator, (safe_div((safe_mult(12807, global_values.trace_length)), 32768))). + let pow1560 = pow32 + * pow1559; // pow(trace_generator, (safe_div((safe_mult(25615, global_values.trace_length)), 65536))). + let pow1561 = pow32 + * pow1560; // pow(trace_generator, (safe_div((safe_mult(1601, global_values.trace_length)), 4096))). + let pow1562 = pow32 + * pow1561; // pow(trace_generator, (safe_div((safe_mult(25617, global_values.trace_length)), 65536))). + let pow1563 = pow32 + * pow1562; // pow(trace_generator, (safe_div((safe_mult(12809, global_values.trace_length)), 32768))). + let pow1564 = pow32 + * pow1563; // pow(trace_generator, (safe_div((safe_mult(25619, global_values.trace_length)), 65536))). + let pow1565 = pow32 + * pow1564; // pow(trace_generator, (safe_div((safe_mult(6405, global_values.trace_length)), 16384))). + let pow1566 = pow32 + * pow1565; // pow(trace_generator, (safe_div((safe_mult(25621, global_values.trace_length)), 65536))). + let pow1567 = pow32 + * pow1566; // pow(trace_generator, (safe_div((safe_mult(12811, global_values.trace_length)), 32768))). + let pow1568 = pow32 + * pow1567; // pow(trace_generator, (safe_div((safe_mult(25623, global_values.trace_length)), 65536))). + let pow1569 = pow79 + * pow1568; // pow(trace_generator, (safe_div((safe_mult(401, global_values.trace_length)), 1024))). + let pow1570 = pow100 + * pow1569; // pow(trace_generator, (safe_div((safe_mult(201, global_values.trace_length)), 512))). + let pow1571 = pow100 + * pow1570; // pow(trace_generator, (safe_div((safe_mult(403, global_values.trace_length)), 1024))). + let pow1572 = pow100 + * pow1571; // pow(trace_generator, (safe_div((safe_mult(101, global_values.trace_length)), 256))). + let pow1573 = pow100 + * pow1572; // pow(trace_generator, (safe_div((safe_mult(405, global_values.trace_length)), 1024))). + let pow1574 = pow100 + * pow1573; // pow(trace_generator, (safe_div((safe_mult(203, global_values.trace_length)), 512))). + let pow1575 = pow100 + * pow1574; // pow(trace_generator, (safe_div((safe_mult(407, global_values.trace_length)), 1024))). + let pow1576 = pow580 + * pow1575; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 32))). + let pow1577 = pow793 + * pow1576; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 64))). + let pow1578 = pow32 + * pow1576; // pow(trace_generator, (safe_div((safe_mult(26625, global_values.trace_length)), 65536))). + let pow1579 = pow32 + * pow1577; // pow(trace_generator, (safe_div((safe_mult(27649, global_values.trace_length)), 65536))). + let pow1580 = pow32 + * pow1578; // pow(trace_generator, (safe_div((safe_mult(13313, global_values.trace_length)), 32768))). + let pow1581 = pow32 + * pow1579; // pow(trace_generator, (safe_div((safe_mult(13825, global_values.trace_length)), 32768))). + let pow1582 = pow32 + * pow1580; // pow(trace_generator, (safe_div((safe_mult(26627, global_values.trace_length)), 65536))). + let pow1583 = pow32 + * pow1581; // pow(trace_generator, (safe_div((safe_mult(27651, global_values.trace_length)), 65536))). + let pow1584 = pow32 + * pow1582; // pow(trace_generator, (safe_div((safe_mult(6657, global_values.trace_length)), 16384))). + let pow1585 = pow32 + * pow1583; // pow(trace_generator, (safe_div((safe_mult(6913, global_values.trace_length)), 16384))). + let pow1586 = pow32 + * pow1584; // pow(trace_generator, (safe_div((safe_mult(26629, global_values.trace_length)), 65536))). + let pow1587 = pow32 + * pow1585; // pow(trace_generator, (safe_div((safe_mult(27653, global_values.trace_length)), 65536))). + let pow1588 = pow32 + * pow1586; // pow(trace_generator, (safe_div((safe_mult(13315, global_values.trace_length)), 32768))). + let pow1589 = pow32 + * pow1587; // pow(trace_generator, (safe_div((safe_mult(13827, global_values.trace_length)), 32768))). + let pow1590 = pow32 + * pow1588; // pow(trace_generator, (safe_div((safe_mult(26631, global_values.trace_length)), 65536))). + let pow1591 = pow32 + * pow1589; // pow(trace_generator, (safe_div((safe_mult(27655, global_values.trace_length)), 65536))). + let pow1592 = pow32 + * pow1590; // pow(trace_generator, (safe_div((safe_mult(3329, global_values.trace_length)), 8192))). + let pow1593 = pow32 + * pow1591; // pow(trace_generator, (safe_div((safe_mult(3457, global_values.trace_length)), 8192))). + let pow1594 = pow32 + * pow1592; // pow(trace_generator, (safe_div((safe_mult(26633, global_values.trace_length)), 65536))). + let pow1595 = pow32 + * pow1593; // pow(trace_generator, (safe_div((safe_mult(27657, global_values.trace_length)), 65536))). + let pow1596 = pow32 + * pow1594; // pow(trace_generator, (safe_div((safe_mult(13317, global_values.trace_length)), 32768))). + let pow1597 = pow32 + * pow1595; // pow(trace_generator, (safe_div((safe_mult(13829, global_values.trace_length)), 32768))). + let pow1598 = pow32 + * pow1596; // pow(trace_generator, (safe_div((safe_mult(26635, global_values.trace_length)), 65536))). + let pow1599 = pow32 + * pow1597; // pow(trace_generator, (safe_div((safe_mult(27659, global_values.trace_length)), 65536))). + let pow1600 = pow32 + * pow1598; // pow(trace_generator, (safe_div((safe_mult(6659, global_values.trace_length)), 16384))). + let pow1601 = pow32 + * pow1599; // pow(trace_generator, (safe_div((safe_mult(6915, global_values.trace_length)), 16384))). + let pow1602 = pow32 + * pow1600; // pow(trace_generator, (safe_div((safe_mult(26637, global_values.trace_length)), 65536))). + let pow1603 = pow32 + * pow1601; // pow(trace_generator, (safe_div((safe_mult(27661, global_values.trace_length)), 65536))). + let pow1604 = pow32 + * pow1602; // pow(trace_generator, (safe_div((safe_mult(13319, global_values.trace_length)), 32768))). + let pow1605 = pow32 + * pow1603; // pow(trace_generator, (safe_div((safe_mult(13831, global_values.trace_length)), 32768))). + let pow1606 = pow32 + * pow1604; // pow(trace_generator, (safe_div((safe_mult(26639, global_values.trace_length)), 65536))). + let pow1607 = pow32 + * pow1606; // pow(trace_generator, (safe_div((safe_mult(1665, global_values.trace_length)), 4096))). + let pow1608 = pow32 + * pow1607; // pow(trace_generator, (safe_div((safe_mult(26641, global_values.trace_length)), 65536))). + let pow1609 = pow32 + * pow1608; // pow(trace_generator, (safe_div((safe_mult(13321, global_values.trace_length)), 32768))). + let pow1610 = pow32 + * pow1609; // pow(trace_generator, (safe_div((safe_mult(26643, global_values.trace_length)), 65536))). + let pow1611 = pow32 + * pow1610; // pow(trace_generator, (safe_div((safe_mult(6661, global_values.trace_length)), 16384))). + let pow1612 = pow32 + * pow1611; // pow(trace_generator, (safe_div((safe_mult(26645, global_values.trace_length)), 65536))). + let pow1613 = pow32 + * pow1612; // pow(trace_generator, (safe_div((safe_mult(13323, global_values.trace_length)), 32768))). + let pow1614 = pow32 + * pow1613; // pow(trace_generator, (safe_div((safe_mult(26647, global_values.trace_length)), 65536))). + let pow1615 = pow32 + * pow1605; // pow(trace_generator, (safe_div((safe_mult(27663, global_values.trace_length)), 65536))). + let pow1616 = pow32 + * pow1615; // pow(trace_generator, (safe_div((safe_mult(1729, global_values.trace_length)), 4096))). + let pow1617 = pow32 + * pow1616; // pow(trace_generator, (safe_div((safe_mult(27665, global_values.trace_length)), 65536))). + let pow1618 = pow32 + * pow1617; // pow(trace_generator, (safe_div((safe_mult(13833, global_values.trace_length)), 32768))). + let pow1619 = pow32 + * pow1618; // pow(trace_generator, (safe_div((safe_mult(27667, global_values.trace_length)), 65536))). + let pow1620 = pow32 + * pow1619; // pow(trace_generator, (safe_div((safe_mult(6917, global_values.trace_length)), 16384))). + let pow1621 = pow32 + * pow1620; // pow(trace_generator, (safe_div((safe_mult(27669, global_values.trace_length)), 65536))). + let pow1622 = pow32 + * pow1621; // pow(trace_generator, (safe_div((safe_mult(13835, global_values.trace_length)), 32768))). + let pow1623 = pow32 + * pow1622; // pow(trace_generator, (safe_div((safe_mult(27671, global_values.trace_length)), 65536))). + let pow1624 = pow863 + * pow1577; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 32))). + let pow1625 = pow100 + * pow1624; // pow(trace_generator, (safe_div((safe_mult(481, global_values.trace_length)), 1024))). + let pow1626 = pow100 + * pow1625; // pow(trace_generator, (safe_div((safe_mult(241, global_values.trace_length)), 512))). + let pow1627 = pow100 + * pow1626; // pow(trace_generator, (safe_div((safe_mult(483, global_values.trace_length)), 1024))). + let pow1628 = pow100 + * pow1627; // pow(trace_generator, (safe_div((safe_mult(121, global_values.trace_length)), 256))). + let pow1629 = pow100 + * pow1628; // pow(trace_generator, (safe_div((safe_mult(485, global_values.trace_length)), 1024))). + let pow1630 = pow100 + * pow1629; // pow(trace_generator, (safe_div((safe_mult(243, global_values.trace_length)), 512))). + let pow1631 = pow100 + * pow1630; // pow(trace_generator, (safe_div((safe_mult(487, global_values.trace_length)), 1024))). + let pow1632 = pow100 + * pow1631; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 128))). + let pow1633 = pow100 + * pow1632; // pow(trace_generator, (safe_div((safe_mult(489, global_values.trace_length)), 1024))). + let pow1634 = pow100 + * pow1633; // pow(trace_generator, (safe_div((safe_mult(245, global_values.trace_length)), 512))). + let pow1635 = pow100 + * pow1634; // pow(trace_generator, (safe_div((safe_mult(491, global_values.trace_length)), 1024))). + let pow1636 = pow100 + * pow1635; // pow(trace_generator, (safe_div((safe_mult(123, global_values.trace_length)), 256))). + let pow1637 = pow100 + * pow1636; // pow(trace_generator, (safe_div((safe_mult(493, global_values.trace_length)), 1024))). + let pow1638 = pow100 + * pow1637; // pow(trace_generator, (safe_div((safe_mult(247, global_values.trace_length)), 512))). + let pow1639 = pow100 + * pow1638; // pow(trace_generator, (safe_div((safe_mult(495, global_values.trace_length)), 1024))). + let pow1640 = pow100 + * pow1639; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 64))). + let pow1641 = pow32 + * pow1640; // pow(trace_generator, (safe_div((safe_mult(31745, global_values.trace_length)), 65536))). + let pow1642 = pow32 + * pow1641; // pow(trace_generator, (safe_div((safe_mult(15873, global_values.trace_length)), 32768))). + let pow1643 = pow32 + * pow1642; // pow(trace_generator, (safe_div((safe_mult(31747, global_values.trace_length)), 65536))). + let pow1644 = pow32 + * pow1643; // pow(trace_generator, (safe_div((safe_mult(7937, global_values.trace_length)), 16384))). + let pow1645 = pow32 + * pow1644; // pow(trace_generator, (safe_div((safe_mult(31749, global_values.trace_length)), 65536))). + let pow1646 = pow32 + * pow1645; // pow(trace_generator, (safe_div((safe_mult(15875, global_values.trace_length)), 32768))). + let pow1647 = pow32 + * pow1646; // pow(trace_generator, (safe_div((safe_mult(31751, global_values.trace_length)), 65536))). + let pow1648 = pow32 + * pow1647; // pow(trace_generator, (safe_div((safe_mult(3969, global_values.trace_length)), 8192))). + let pow1649 = pow32 + * pow1648; // pow(trace_generator, (safe_div((safe_mult(31753, global_values.trace_length)), 65536))). + let pow1650 = pow32 + * pow1649; // pow(trace_generator, (safe_div((safe_mult(15877, global_values.trace_length)), 32768))). + let pow1651 = pow32 + * pow1650; // pow(trace_generator, (safe_div((safe_mult(31755, global_values.trace_length)), 65536))). + let pow1652 = pow32 + * pow1651; // pow(trace_generator, (safe_div((safe_mult(7939, global_values.trace_length)), 16384))). + let pow1653 = pow32 + * pow1652; // pow(trace_generator, (safe_div((safe_mult(31757, global_values.trace_length)), 65536))). + let pow1654 = pow32 + * pow1653; // pow(trace_generator, (safe_div((safe_mult(15879, global_values.trace_length)), 32768))). + let pow1655 = pow32 + * pow1654; // pow(trace_generator, (safe_div((safe_mult(31759, global_values.trace_length)), 65536))). + let pow1656 = pow32 + * pow1655; // pow(trace_generator, (safe_div((safe_mult(1985, global_values.trace_length)), 4096))). + let pow1657 = pow32 + * pow1656; // pow(trace_generator, (safe_div((safe_mult(31761, global_values.trace_length)), 65536))). + let pow1658 = pow32 + * pow1657; // pow(trace_generator, (safe_div((safe_mult(15881, global_values.trace_length)), 32768))). + let pow1659 = pow32 + * pow1658; // pow(trace_generator, (safe_div((safe_mult(31763, global_values.trace_length)), 65536))). + let pow1660 = pow32 + * pow1659; // pow(trace_generator, (safe_div((safe_mult(7941, global_values.trace_length)), 16384))). + let pow1661 = pow32 + * pow1660; // pow(trace_generator, (safe_div((safe_mult(31765, global_values.trace_length)), 65536))). + let pow1662 = pow32 + * pow1661; // pow(trace_generator, (safe_div((safe_mult(15883, global_values.trace_length)), 32768))). + let pow1663 = pow32 + * pow1662; // pow(trace_generator, (safe_div((safe_mult(31767, global_values.trace_length)), 65536))). + let pow1664 = pow79 + * pow1663; // pow(trace_generator, (safe_div((safe_mult(497, global_values.trace_length)), 1024))). + let pow1665 = pow100 + * pow1664; // pow(trace_generator, (safe_div((safe_mult(249, global_values.trace_length)), 512))). + let pow1666 = pow100 + * pow1665; // pow(trace_generator, (safe_div((safe_mult(499, global_values.trace_length)), 1024))). + let pow1667 = pow100 + * pow1666; // pow(trace_generator, (safe_div((safe_mult(125, global_values.trace_length)), 256))). + let pow1668 = pow100 + * pow1667; // pow(trace_generator, (safe_div((safe_mult(501, global_values.trace_length)), 1024))). + let pow1669 = pow100 + * pow1668; // pow(trace_generator, (safe_div((safe_mult(251, global_values.trace_length)), 512))). + let pow1670 = pow100 + * pow1669; // pow(trace_generator, (safe_div((safe_mult(503, global_values.trace_length)), 1024))). + let pow1671 = pow580 + * pow1670; // pow(trace_generator, (safe_div(global_values.trace_length, 2))). + let pow1672 = pow100 + * pow1671; // pow(trace_generator, (safe_div((safe_mult(513, global_values.trace_length)), 1024))). + let pow1673 = pow100 + * pow1672; // pow(trace_generator, (safe_div((safe_mult(257, global_values.trace_length)), 512))). + let pow1674 = pow100 + * pow1673; // pow(trace_generator, (safe_div((safe_mult(515, global_values.trace_length)), 1024))). + let pow1675 = pow100 + * pow1674; // pow(trace_generator, (safe_div((safe_mult(129, global_values.trace_length)), 256))). + let pow1676 = pow100 + * pow1675; // pow(trace_generator, (safe_div((safe_mult(517, global_values.trace_length)), 1024))). + let pow1677 = pow100 + * pow1676; // pow(trace_generator, (safe_div((safe_mult(259, global_values.trace_length)), 512))). + let pow1678 = pow100 + * pow1677; // pow(trace_generator, (safe_div((safe_mult(519, global_values.trace_length)), 1024))). + let pow1679 = pow100 + * pow1678; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 128))). + let pow1680 = pow100 + * pow1679; // pow(trace_generator, (safe_div((safe_mult(521, global_values.trace_length)), 1024))). + let pow1681 = pow100 + * pow1680; // pow(trace_generator, (safe_div((safe_mult(261, global_values.trace_length)), 512))). + let pow1682 = pow100 + * pow1681; // pow(trace_generator, (safe_div((safe_mult(523, global_values.trace_length)), 1024))). + let pow1683 = pow100 + * pow1682; // pow(trace_generator, (safe_div((safe_mult(131, global_values.trace_length)), 256))). + let pow1684 = pow100 + * pow1683; // pow(trace_generator, (safe_div((safe_mult(525, global_values.trace_length)), 1024))). + let pow1685 = pow100 + * pow1684; // pow(trace_generator, (safe_div((safe_mult(263, global_values.trace_length)), 512))). + let pow1686 = pow100 + * pow1685; // pow(trace_generator, (safe_div((safe_mult(527, global_values.trace_length)), 1024))). + let pow1687 = pow100 + * pow1686; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 64))). + let pow1688 = pow100 + * pow1687; // pow(trace_generator, (safe_div((safe_mult(529, global_values.trace_length)), 1024))). + let pow1689 = pow100 + * pow1688; // pow(trace_generator, (safe_div((safe_mult(265, global_values.trace_length)), 512))). + let pow1690 = pow100 + * pow1689; // pow(trace_generator, (safe_div((safe_mult(531, global_values.trace_length)), 1024))). + let pow1691 = pow100 + * pow1690; // pow(trace_generator, (safe_div((safe_mult(133, global_values.trace_length)), 256))). + let pow1692 = pow100 + * pow1691; // pow(trace_generator, (safe_div((safe_mult(533, global_values.trace_length)), 1024))). + let pow1693 = pow100 + * pow1692; // pow(trace_generator, (safe_div((safe_mult(267, global_values.trace_length)), 512))). + let pow1694 = pow100 + * pow1693; // pow(trace_generator, (safe_div((safe_mult(535, global_values.trace_length)), 1024))). + let pow1695 = pow580 + * pow1694; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 32))). + let pow1696 = pow100 + * pow1695; // pow(trace_generator, (safe_div((safe_mult(545, global_values.trace_length)), 1024))). + let pow1697 = pow100 + * pow1696; // pow(trace_generator, (safe_div((safe_mult(273, global_values.trace_length)), 512))). + let pow1698 = pow100 + * pow1697; // pow(trace_generator, (safe_div((safe_mult(547, global_values.trace_length)), 1024))). + let pow1699 = pow100 + * pow1698; // pow(trace_generator, (safe_div((safe_mult(137, global_values.trace_length)), 256))). + let pow1700 = pow100 + * pow1699; // pow(trace_generator, (safe_div((safe_mult(549, global_values.trace_length)), 1024))). + let pow1701 = pow100 + * pow1700; // pow(trace_generator, (safe_div((safe_mult(275, global_values.trace_length)), 512))). + let pow1702 = pow100 + * pow1701; // pow(trace_generator, (safe_div((safe_mult(551, global_values.trace_length)), 1024))). + let pow1703 = pow100 + * pow1702; // pow(trace_generator, (safe_div((safe_mult(69, global_values.trace_length)), 128))). + let pow1704 = pow100 + * pow1703; // pow(trace_generator, (safe_div((safe_mult(553, global_values.trace_length)), 1024))). + let pow1705 = pow100 + * pow1704; // pow(trace_generator, (safe_div((safe_mult(277, global_values.trace_length)), 512))). + let pow1706 = pow100 + * pow1705; // pow(trace_generator, (safe_div((safe_mult(555, global_values.trace_length)), 1024))). + let pow1707 = pow100 + * pow1706; // pow(trace_generator, (safe_div((safe_mult(139, global_values.trace_length)), 256))). + let pow1708 = pow100 + * pow1707; // pow(trace_generator, (safe_div((safe_mult(557, global_values.trace_length)), 1024))). + let pow1709 = pow100 + * pow1708; // pow(trace_generator, (safe_div((safe_mult(279, global_values.trace_length)), 512))). + let pow1710 = pow100 + * pow1709; // pow(trace_generator, (safe_div((safe_mult(559, global_values.trace_length)), 1024))). + let pow1711 = pow100 + * pow1710; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 64))). + let pow1712 = pow100 + * pow1711; // pow(trace_generator, (safe_div((safe_mult(561, global_values.trace_length)), 1024))). + let pow1713 = pow100 + * pow1712; // pow(trace_generator, (safe_div((safe_mult(281, global_values.trace_length)), 512))). + let pow1714 = pow100 + * pow1713; // pow(trace_generator, (safe_div((safe_mult(563, global_values.trace_length)), 1024))). + let pow1715 = pow100 + * pow1714; // pow(trace_generator, (safe_div((safe_mult(141, global_values.trace_length)), 256))). + let pow1716 = pow100 + * pow1715; // pow(trace_generator, (safe_div((safe_mult(565, global_values.trace_length)), 1024))). + let pow1717 = pow100 + * pow1716; // pow(trace_generator, (safe_div((safe_mult(283, global_values.trace_length)), 512))). + let pow1718 = pow100 + * pow1717; // pow(trace_generator, (safe_div((safe_mult(567, global_values.trace_length)), 1024))). + let pow1719 = pow580 + * pow1718; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 16))). + let pow1720 = pow32 + * pow1719; // pow(trace_generator, (safe_div((safe_mult(36865, global_values.trace_length)), 65536))). + let pow1721 = pow32 + * pow1720; // pow(trace_generator, (safe_div((safe_mult(18433, global_values.trace_length)), 32768))). + let pow1722 = pow32 + * pow1721; // pow(trace_generator, (safe_div((safe_mult(36867, global_values.trace_length)), 65536))). + let pow1723 = pow32 + * pow1722; // pow(trace_generator, (safe_div((safe_mult(9217, global_values.trace_length)), 16384))). + let pow1724 = pow32 + * pow1723; // pow(trace_generator, (safe_div((safe_mult(36869, global_values.trace_length)), 65536))). + let pow1725 = pow32 + * pow1724; // pow(trace_generator, (safe_div((safe_mult(18435, global_values.trace_length)), 32768))). + let pow1726 = pow32 + * pow1725; // pow(trace_generator, (safe_div((safe_mult(36871, global_values.trace_length)), 65536))). + let pow1727 = pow32 + * pow1726; // pow(trace_generator, (safe_div((safe_mult(4609, global_values.trace_length)), 8192))). + let pow1728 = pow32 + * pow1727; // pow(trace_generator, (safe_div((safe_mult(36873, global_values.trace_length)), 65536))). + let pow1729 = pow32 + * pow1728; // pow(trace_generator, (safe_div((safe_mult(18437, global_values.trace_length)), 32768))). + let pow1730 = pow32 + * pow1729; // pow(trace_generator, (safe_div((safe_mult(36875, global_values.trace_length)), 65536))). + let pow1731 = pow32 + * pow1730; // pow(trace_generator, (safe_div((safe_mult(9219, global_values.trace_length)), 16384))). + let pow1732 = pow32 + * pow1731; // pow(trace_generator, (safe_div((safe_mult(36877, global_values.trace_length)), 65536))). + let pow1733 = pow32 + * pow1732; // pow(trace_generator, (safe_div((safe_mult(18439, global_values.trace_length)), 32768))). + let pow1734 = pow32 + * pow1733; // pow(trace_generator, (safe_div((safe_mult(36879, global_values.trace_length)), 65536))). + let pow1735 = pow32 + * pow1734; // pow(trace_generator, (safe_div((safe_mult(2305, global_values.trace_length)), 4096))). + let pow1736 = pow32 + * pow1735; // pow(trace_generator, (safe_div((safe_mult(36881, global_values.trace_length)), 65536))). + let pow1737 = pow32 + * pow1736; // pow(trace_generator, (safe_div((safe_mult(18441, global_values.trace_length)), 32768))). + let pow1738 = pow32 + * pow1737; // pow(trace_generator, (safe_div((safe_mult(36883, global_values.trace_length)), 65536))). + let pow1739 = pow32 + * pow1738; // pow(trace_generator, (safe_div((safe_mult(9221, global_values.trace_length)), 16384))). + let pow1740 = pow32 + * pow1739; // pow(trace_generator, (safe_div((safe_mult(36885, global_values.trace_length)), 65536))). + let pow1741 = pow32 + * pow1740; // pow(trace_generator, (safe_div((safe_mult(18443, global_values.trace_length)), 32768))). + let pow1742 = pow32 + * pow1741; // pow(trace_generator, (safe_div((safe_mult(36887, global_values.trace_length)), 65536))). + let pow1743 = pow793 + * pow1719; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 64))). + let pow1744 = pow32 + * pow1743; // pow(trace_generator, (safe_div((safe_mult(37889, global_values.trace_length)), 65536))). + let pow1745 = pow32 + * pow1744; // pow(trace_generator, (safe_div((safe_mult(18945, global_values.trace_length)), 32768))). + let pow1746 = pow32 + * pow1745; // pow(trace_generator, (safe_div((safe_mult(37891, global_values.trace_length)), 65536))). + let pow1747 = pow32 + * pow1746; // pow(trace_generator, (safe_div((safe_mult(9473, global_values.trace_length)), 16384))). + let pow1748 = pow32 + * pow1747; // pow(trace_generator, (safe_div((safe_mult(37893, global_values.trace_length)), 65536))). + let pow1749 = pow32 + * pow1748; // pow(trace_generator, (safe_div((safe_mult(18947, global_values.trace_length)), 32768))). + let pow1750 = pow32 + * pow1749; // pow(trace_generator, (safe_div((safe_mult(37895, global_values.trace_length)), 65536))). + let pow1751 = pow32 + * pow1750; // pow(trace_generator, (safe_div((safe_mult(4737, global_values.trace_length)), 8192))). + let pow1752 = pow32 + * pow1751; // pow(trace_generator, (safe_div((safe_mult(37897, global_values.trace_length)), 65536))). + let pow1753 = pow32 + * pow1752; // pow(trace_generator, (safe_div((safe_mult(18949, global_values.trace_length)), 32768))). + let pow1754 = pow32 + * pow1753; // pow(trace_generator, (safe_div((safe_mult(37899, global_values.trace_length)), 65536))). + let pow1755 = pow32 + * pow1754; // pow(trace_generator, (safe_div((safe_mult(9475, global_values.trace_length)), 16384))). + let pow1756 = pow32 + * pow1755; // pow(trace_generator, (safe_div((safe_mult(37901, global_values.trace_length)), 65536))). + let pow1757 = pow32 + * pow1756; // pow(trace_generator, (safe_div((safe_mult(18951, global_values.trace_length)), 32768))). + let pow1758 = pow32 + * pow1757; // pow(trace_generator, (safe_div((safe_mult(37903, global_values.trace_length)), 65536))). + let pow1759 = pow32 + * pow1758; // pow(trace_generator, (safe_div((safe_mult(2369, global_values.trace_length)), 4096))). + let pow1760 = pow32 + * pow1759; // pow(trace_generator, (safe_div((safe_mult(37905, global_values.trace_length)), 65536))). + let pow1761 = pow32 + * pow1760; // pow(trace_generator, (safe_div((safe_mult(18953, global_values.trace_length)), 32768))). + let pow1762 = pow32 + * pow1761; // pow(trace_generator, (safe_div((safe_mult(37907, global_values.trace_length)), 65536))). + let pow1763 = pow32 + * pow1762; // pow(trace_generator, (safe_div((safe_mult(9477, global_values.trace_length)), 16384))). + let pow1764 = pow32 + * pow1763; // pow(trace_generator, (safe_div((safe_mult(37909, global_values.trace_length)), 65536))). + let pow1765 = pow32 + * pow1764; // pow(trace_generator, (safe_div((safe_mult(18955, global_values.trace_length)), 32768))). + let pow1766 = pow32 + * pow1765; // pow(trace_generator, (safe_div((safe_mult(37911, global_values.trace_length)), 65536))). + let pow1767 = pow793 + * pow1743; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 32))). + let pow1768 = pow32 + * pow1767; // pow(trace_generator, (safe_div((safe_mult(38913, global_values.trace_length)), 65536))). + let pow1769 = pow32 + * pow1768; // pow(trace_generator, (safe_div((safe_mult(19457, global_values.trace_length)), 32768))). + let pow1770 = pow32 + * pow1769; // pow(trace_generator, (safe_div((safe_mult(38915, global_values.trace_length)), 65536))). + let pow1771 = pow32 + * pow1770; // pow(trace_generator, (safe_div((safe_mult(9729, global_values.trace_length)), 16384))). + let pow1772 = pow32 + * pow1771; // pow(trace_generator, (safe_div((safe_mult(38917, global_values.trace_length)), 65536))). + let pow1773 = pow32 + * pow1772; // pow(trace_generator, (safe_div((safe_mult(19459, global_values.trace_length)), 32768))). + let pow1774 = pow32 + * pow1773; // pow(trace_generator, (safe_div((safe_mult(38919, global_values.trace_length)), 65536))). + let pow1775 = pow32 + * pow1774; // pow(trace_generator, (safe_div((safe_mult(4865, global_values.trace_length)), 8192))). + let pow1776 = pow32 + * pow1775; // pow(trace_generator, (safe_div((safe_mult(38921, global_values.trace_length)), 65536))). + let pow1777 = pow32 + * pow1776; // pow(trace_generator, (safe_div((safe_mult(19461, global_values.trace_length)), 32768))). + let pow1778 = pow32 + * pow1777; // pow(trace_generator, (safe_div((safe_mult(38923, global_values.trace_length)), 65536))). + let pow1779 = pow32 + * pow1778; // pow(trace_generator, (safe_div((safe_mult(9731, global_values.trace_length)), 16384))). + let pow1780 = pow32 + * pow1779; // pow(trace_generator, (safe_div((safe_mult(38925, global_values.trace_length)), 65536))). + let pow1781 = pow32 + * pow1780; // pow(trace_generator, (safe_div((safe_mult(19463, global_values.trace_length)), 32768))). + let pow1782 = pow32 + * pow1781; // pow(trace_generator, (safe_div((safe_mult(38927, global_values.trace_length)), 65536))). + let pow1783 = pow32 + * pow1782; // pow(trace_generator, (safe_div((safe_mult(2433, global_values.trace_length)), 4096))). + let pow1784 = pow32 + * pow1783; // pow(trace_generator, (safe_div((safe_mult(38929, global_values.trace_length)), 65536))). + let pow1785 = pow32 + * pow1784; // pow(trace_generator, (safe_div((safe_mult(19465, global_values.trace_length)), 32768))). + let pow1786 = pow32 + * pow1785; // pow(trace_generator, (safe_div((safe_mult(38931, global_values.trace_length)), 65536))). + let pow1787 = pow32 + * pow1786; // pow(trace_generator, (safe_div((safe_mult(9733, global_values.trace_length)), 16384))). + let pow1788 = pow32 + * pow1787; // pow(trace_generator, (safe_div((safe_mult(38933, global_values.trace_length)), 65536))). + let pow1789 = pow32 + * pow1788; // pow(trace_generator, (safe_div((safe_mult(19467, global_values.trace_length)), 32768))). + let pow1790 = pow32 + * pow1789; // pow(trace_generator, (safe_div((safe_mult(38935, global_values.trace_length)), 65536))). + let pow1791 = pow793 + * pow1767; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 64))). + let pow1792 = pow32 + * pow1791; // pow(trace_generator, (safe_div((safe_mult(39937, global_values.trace_length)), 65536))). + let pow1793 = pow32 + * pow1792; // pow(trace_generator, (safe_div((safe_mult(19969, global_values.trace_length)), 32768))). + let pow1794 = pow32 + * pow1793; // pow(trace_generator, (safe_div((safe_mult(39939, global_values.trace_length)), 65536))). + let pow1795 = pow32 + * pow1794; // pow(trace_generator, (safe_div((safe_mult(9985, global_values.trace_length)), 16384))). + let pow1796 = pow32 + * pow1795; // pow(trace_generator, (safe_div((safe_mult(39941, global_values.trace_length)), 65536))). + let pow1797 = pow32 + * pow1796; // pow(trace_generator, (safe_div((safe_mult(19971, global_values.trace_length)), 32768))). + let pow1798 = pow32 + * pow1797; // pow(trace_generator, (safe_div((safe_mult(39943, global_values.trace_length)), 65536))). + let pow1799 = pow32 + * pow1798; // pow(trace_generator, (safe_div((safe_mult(4993, global_values.trace_length)), 8192))). + let pow1800 = pow32 + * pow1799; // pow(trace_generator, (safe_div((safe_mult(39945, global_values.trace_length)), 65536))). + let pow1801 = pow32 + * pow1800; // pow(trace_generator, (safe_div((safe_mult(19973, global_values.trace_length)), 32768))). + let pow1802 = pow32 + * pow1801; // pow(trace_generator, (safe_div((safe_mult(39947, global_values.trace_length)), 65536))). + let pow1803 = pow32 + * pow1802; // pow(trace_generator, (safe_div((safe_mult(9987, global_values.trace_length)), 16384))). + let pow1804 = pow32 + * pow1803; // pow(trace_generator, (safe_div((safe_mult(39949, global_values.trace_length)), 65536))). + let pow1805 = pow32 + * pow1804; // pow(trace_generator, (safe_div((safe_mult(19975, global_values.trace_length)), 32768))). + let pow1806 = pow32 + * pow1805; // pow(trace_generator, (safe_div((safe_mult(39951, global_values.trace_length)), 65536))). + let pow1807 = pow32 + * pow1806; // pow(trace_generator, (safe_div((safe_mult(2497, global_values.trace_length)), 4096))). + let pow1808 = pow32 + * pow1807; // pow(trace_generator, (safe_div((safe_mult(39953, global_values.trace_length)), 65536))). + let pow1809 = pow32 + * pow1808; // pow(trace_generator, (safe_div((safe_mult(19977, global_values.trace_length)), 32768))). + let pow1810 = pow32 + * pow1809; // pow(trace_generator, (safe_div((safe_mult(39955, global_values.trace_length)), 65536))). + let pow1811 = pow32 + * pow1810; // pow(trace_generator, (safe_div((safe_mult(9989, global_values.trace_length)), 16384))). + let pow1812 = pow32 + * pow1811; // pow(trace_generator, (safe_div((safe_mult(39957, global_values.trace_length)), 65536))). + let pow1813 = pow32 + * pow1812; // pow(trace_generator, (safe_div((safe_mult(19979, global_values.trace_length)), 32768))). + let pow1814 = pow32 + * pow1813; // pow(trace_generator, (safe_div((safe_mult(39959, global_values.trace_length)), 65536))). + let pow1815 = pow793 + * pow1791; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 8))). + let pow1816 = pow32 + * pow1815; // pow(trace_generator, (safe_div((safe_mult(40961, global_values.trace_length)), 65536))). + let pow1817 = pow32 + * pow1816; // pow(trace_generator, (safe_div((safe_mult(20481, global_values.trace_length)), 32768))). + let pow1818 = pow32 + * pow1817; // pow(trace_generator, (safe_div((safe_mult(40963, global_values.trace_length)), 65536))). + let pow1819 = pow32 + * pow1818; // pow(trace_generator, (safe_div((safe_mult(10241, global_values.trace_length)), 16384))). + let pow1820 = pow32 + * pow1819; // pow(trace_generator, (safe_div((safe_mult(40965, global_values.trace_length)), 65536))). + let pow1821 = pow32 + * pow1820; // pow(trace_generator, (safe_div((safe_mult(20483, global_values.trace_length)), 32768))). + let pow1822 = pow32 + * pow1821; // pow(trace_generator, (safe_div((safe_mult(40967, global_values.trace_length)), 65536))). + let pow1823 = pow32 + * pow1822; // pow(trace_generator, (safe_div((safe_mult(5121, global_values.trace_length)), 8192))). + let pow1824 = pow32 + * pow1823; // pow(trace_generator, (safe_div((safe_mult(40969, global_values.trace_length)), 65536))). + let pow1825 = pow32 + * pow1824; // pow(trace_generator, (safe_div((safe_mult(20485, global_values.trace_length)), 32768))). + let pow1826 = pow32 + * pow1825; // pow(trace_generator, (safe_div((safe_mult(40971, global_values.trace_length)), 65536))). + let pow1827 = pow32 + * pow1826; // pow(trace_generator, (safe_div((safe_mult(10243, global_values.trace_length)), 16384))). + let pow1828 = pow32 + * pow1827; // pow(trace_generator, (safe_div((safe_mult(40973, global_values.trace_length)), 65536))). + let pow1829 = pow32 + * pow1828; // pow(trace_generator, (safe_div((safe_mult(20487, global_values.trace_length)), 32768))). + let pow1830 = pow32 + * pow1829; // pow(trace_generator, (safe_div((safe_mult(40975, global_values.trace_length)), 65536))). + let pow1831 = pow32 + * pow1830; // pow(trace_generator, (safe_div((safe_mult(2561, global_values.trace_length)), 4096))). + let pow1832 = pow32 + * pow1831; // pow(trace_generator, (safe_div((safe_mult(40977, global_values.trace_length)), 65536))). + let pow1833 = pow32 + * pow1832; // pow(trace_generator, (safe_div((safe_mult(20489, global_values.trace_length)), 32768))). + let pow1834 = pow32 + * pow1833; // pow(trace_generator, (safe_div((safe_mult(40979, global_values.trace_length)), 65536))). + let pow1835 = pow32 + * pow1834; // pow(trace_generator, (safe_div((safe_mult(10245, global_values.trace_length)), 16384))). + let pow1836 = pow32 + * pow1835; // pow(trace_generator, (safe_div((safe_mult(40981, global_values.trace_length)), 65536))). + let pow1837 = pow32 + * pow1836; // pow(trace_generator, (safe_div((safe_mult(20491, global_values.trace_length)), 32768))). + let pow1838 = pow32 + * pow1837; // pow(trace_generator, (safe_div((safe_mult(40983, global_values.trace_length)), 65536))). + let pow1839 = pow79 + * pow1838; // pow(trace_generator, (safe_div((safe_mult(641, global_values.trace_length)), 1024))). + let pow1840 = pow100 + * pow1839; // pow(trace_generator, (safe_div((safe_mult(321, global_values.trace_length)), 512))). + let pow1841 = pow100 + * pow1840; // pow(trace_generator, (safe_div((safe_mult(643, global_values.trace_length)), 1024))). + let pow1842 = pow100 + * pow1841; // pow(trace_generator, (safe_div((safe_mult(161, global_values.trace_length)), 256))). + let pow1843 = pow100 + * pow1842; // pow(trace_generator, (safe_div((safe_mult(645, global_values.trace_length)), 1024))). + let pow1844 = pow100 + * pow1843; // pow(trace_generator, (safe_div((safe_mult(323, global_values.trace_length)), 512))). + let pow1845 = pow100 + * pow1844; // pow(trace_generator, (safe_div((safe_mult(647, global_values.trace_length)), 1024))). + let pow1846 = pow100 + * pow1845; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 128))). + let pow1847 = pow100 + * pow1846; // pow(trace_generator, (safe_div((safe_mult(649, global_values.trace_length)), 1024))). + let pow1848 = pow100 + * pow1847; // pow(trace_generator, (safe_div((safe_mult(325, global_values.trace_length)), 512))). + let pow1849 = pow100 + * pow1848; // pow(trace_generator, (safe_div((safe_mult(651, global_values.trace_length)), 1024))). + let pow1850 = pow100 + * pow1849; // pow(trace_generator, (safe_div((safe_mult(163, global_values.trace_length)), 256))). + let pow1851 = pow100 + * pow1850; // pow(trace_generator, (safe_div((safe_mult(653, global_values.trace_length)), 1024))). + let pow1852 = pow100 + * pow1851; // pow(trace_generator, (safe_div((safe_mult(327, global_values.trace_length)), 512))). + let pow1853 = pow100 + * pow1852; // pow(trace_generator, (safe_div((safe_mult(655, global_values.trace_length)), 1024))). + let pow1854 = pow100 + * pow1853; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 64))). + let pow1855 = pow32 + * pow1854; // pow(trace_generator, (safe_div((safe_mult(41985, global_values.trace_length)), 65536))). + let pow1856 = pow32 + * pow1855; // pow(trace_generator, (safe_div((safe_mult(20993, global_values.trace_length)), 32768))). + let pow1857 = pow32 + * pow1856; // pow(trace_generator, (safe_div((safe_mult(41987, global_values.trace_length)), 65536))). + let pow1858 = pow32 + * pow1857; // pow(trace_generator, (safe_div((safe_mult(10497, global_values.trace_length)), 16384))). + let pow1859 = pow32 + * pow1858; // pow(trace_generator, (safe_div((safe_mult(41989, global_values.trace_length)), 65536))). + let pow1860 = pow32 + * pow1859; // pow(trace_generator, (safe_div((safe_mult(20995, global_values.trace_length)), 32768))). + let pow1861 = pow32 + * pow1860; // pow(trace_generator, (safe_div((safe_mult(41991, global_values.trace_length)), 65536))). + let pow1862 = pow32 + * pow1861; // pow(trace_generator, (safe_div((safe_mult(5249, global_values.trace_length)), 8192))). + let pow1863 = pow32 + * pow1862; // pow(trace_generator, (safe_div((safe_mult(41993, global_values.trace_length)), 65536))). + let pow1864 = pow32 + * pow1863; // pow(trace_generator, (safe_div((safe_mult(20997, global_values.trace_length)), 32768))). + let pow1865 = pow32 + * pow1864; // pow(trace_generator, (safe_div((safe_mult(41995, global_values.trace_length)), 65536))). + let pow1866 = pow32 + * pow1865; // pow(trace_generator, (safe_div((safe_mult(10499, global_values.trace_length)), 16384))). + let pow1867 = pow32 + * pow1866; // pow(trace_generator, (safe_div((safe_mult(41997, global_values.trace_length)), 65536))). + let pow1868 = pow32 + * pow1867; // pow(trace_generator, (safe_div((safe_mult(20999, global_values.trace_length)), 32768))). + let pow1869 = pow32 + * pow1868; // pow(trace_generator, (safe_div((safe_mult(41999, global_values.trace_length)), 65536))). + let pow1870 = pow32 + * pow1869; // pow(trace_generator, (safe_div((safe_mult(2625, global_values.trace_length)), 4096))). + let pow1871 = pow32 + * pow1870; // pow(trace_generator, (safe_div((safe_mult(42001, global_values.trace_length)), 65536))). + let pow1872 = pow32 + * pow1871; // pow(trace_generator, (safe_div((safe_mult(21001, global_values.trace_length)), 32768))). + let pow1873 = pow32 + * pow1872; // pow(trace_generator, (safe_div((safe_mult(42003, global_values.trace_length)), 65536))). + let pow1874 = pow32 + * pow1873; // pow(trace_generator, (safe_div((safe_mult(10501, global_values.trace_length)), 16384))). + let pow1875 = pow32 + * pow1874; // pow(trace_generator, (safe_div((safe_mult(42005, global_values.trace_length)), 65536))). + let pow1876 = pow32 + * pow1875; // pow(trace_generator, (safe_div((safe_mult(21003, global_values.trace_length)), 32768))). + let pow1877 = pow32 + * pow1876; // pow(trace_generator, (safe_div((safe_mult(42007, global_values.trace_length)), 65536))). + let pow1878 = pow79 + * pow1877; // pow(trace_generator, (safe_div((safe_mult(657, global_values.trace_length)), 1024))). + let pow1879 = pow100 + * pow1878; // pow(trace_generator, (safe_div((safe_mult(329, global_values.trace_length)), 512))). + let pow1880 = pow100 + * pow1879; // pow(trace_generator, (safe_div((safe_mult(659, global_values.trace_length)), 1024))). + let pow1881 = pow100 + * pow1880; // pow(trace_generator, (safe_div((safe_mult(165, global_values.trace_length)), 256))). + let pow1882 = pow100 + * pow1881; // pow(trace_generator, (safe_div((safe_mult(661, global_values.trace_length)), 1024))). + let pow1883 = pow100 + * pow1882; // pow(trace_generator, (safe_div((safe_mult(331, global_values.trace_length)), 512))). + let pow1884 = pow100 + * pow1883; // pow(trace_generator, (safe_div((safe_mult(663, global_values.trace_length)), 1024))). + let pow1885 = pow580 + * pow1884; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 32))). + let pow1886 = pow32 + * pow1885; // pow(trace_generator, (safe_div((safe_mult(43009, global_values.trace_length)), 65536))). + let pow1887 = pow32 + * pow1886; // pow(trace_generator, (safe_div((safe_mult(21505, global_values.trace_length)), 32768))). + let pow1888 = pow32 + * pow1887; // pow(trace_generator, (safe_div((safe_mult(43011, global_values.trace_length)), 65536))). + let pow1889 = pow32 + * pow1888; // pow(trace_generator, (safe_div((safe_mult(10753, global_values.trace_length)), 16384))). + let pow1890 = pow32 + * pow1889; // pow(trace_generator, (safe_div((safe_mult(43013, global_values.trace_length)), 65536))). + let pow1891 = pow32 + * pow1890; // pow(trace_generator, (safe_div((safe_mult(21507, global_values.trace_length)), 32768))). + let pow1892 = pow32 + * pow1891; // pow(trace_generator, (safe_div((safe_mult(43015, global_values.trace_length)), 65536))). + let pow1893 = pow32 + * pow1892; // pow(trace_generator, (safe_div((safe_mult(5377, global_values.trace_length)), 8192))). + let pow1894 = pow32 + * pow1893; // pow(trace_generator, (safe_div((safe_mult(43017, global_values.trace_length)), 65536))). + let pow1895 = pow32 + * pow1894; // pow(trace_generator, (safe_div((safe_mult(21509, global_values.trace_length)), 32768))). + let pow1896 = pow32 + * pow1895; // pow(trace_generator, (safe_div((safe_mult(43019, global_values.trace_length)), 65536))). + let pow1897 = pow32 + * pow1896; // pow(trace_generator, (safe_div((safe_mult(10755, global_values.trace_length)), 16384))). + let pow1898 = pow32 + * pow1897; // pow(trace_generator, (safe_div((safe_mult(43021, global_values.trace_length)), 65536))). + let pow1899 = pow32 + * pow1898; // pow(trace_generator, (safe_div((safe_mult(21511, global_values.trace_length)), 32768))). + let pow1900 = pow32 + * pow1899; // pow(trace_generator, (safe_div((safe_mult(43023, global_values.trace_length)), 65536))). + let pow1901 = pow32 + * pow1900; // pow(trace_generator, (safe_div((safe_mult(2689, global_values.trace_length)), 4096))). + let pow1902 = pow32 + * pow1901; // pow(trace_generator, (safe_div((safe_mult(43025, global_values.trace_length)), 65536))). + let pow1903 = pow32 + * pow1902; // pow(trace_generator, (safe_div((safe_mult(21513, global_values.trace_length)), 32768))). + let pow1904 = pow32 + * pow1903; // pow(trace_generator, (safe_div((safe_mult(43027, global_values.trace_length)), 65536))). + let pow1905 = pow32 + * pow1904; // pow(trace_generator, (safe_div((safe_mult(10757, global_values.trace_length)), 16384))). + let pow1906 = pow32 + * pow1905; // pow(trace_generator, (safe_div((safe_mult(43029, global_values.trace_length)), 65536))). + let pow1907 = pow32 + * pow1906; // pow(trace_generator, (safe_div((safe_mult(21515, global_values.trace_length)), 32768))). + let pow1908 = pow32 + * pow1907; // pow(trace_generator, (safe_div((safe_mult(43031, global_values.trace_length)), 65536))). + let pow1909 = pow79 + * pow1908; // pow(trace_generator, (safe_div((safe_mult(673, global_values.trace_length)), 1024))). + let pow1910 = pow100 + * pow1909; // pow(trace_generator, (safe_div((safe_mult(337, global_values.trace_length)), 512))). + let pow1911 = pow100 + * pow1910; // pow(trace_generator, (safe_div((safe_mult(675, global_values.trace_length)), 1024))). + let pow1912 = pow100 + * pow1911; // pow(trace_generator, (safe_div((safe_mult(169, global_values.trace_length)), 256))). + let pow1913 = pow100 + * pow1912; // pow(trace_generator, (safe_div((safe_mult(677, global_values.trace_length)), 1024))). + let pow1914 = pow100 + * pow1913; // pow(trace_generator, (safe_div((safe_mult(339, global_values.trace_length)), 512))). + let pow1915 = pow100 + * pow1914; // pow(trace_generator, (safe_div((safe_mult(679, global_values.trace_length)), 1024))). + let pow1916 = pow100 + * pow1915; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 128))). + let pow1917 = pow100 + * pow1916; // pow(trace_generator, (safe_div((safe_mult(681, global_values.trace_length)), 1024))). + let pow1918 = pow100 + * pow1917; // pow(trace_generator, (safe_div((safe_mult(341, global_values.trace_length)), 512))). + let pow1919 = pow100 + * pow1918; // pow(trace_generator, (safe_div((safe_mult(683, global_values.trace_length)), 1024))). + let pow1920 = pow100 + * pow1919; // pow(trace_generator, (safe_div((safe_mult(171, global_values.trace_length)), 256))). + let pow1921 = pow100 + * pow1920; // pow(trace_generator, (safe_div((safe_mult(685, global_values.trace_length)), 1024))). + let pow1922 = pow100 + * pow1921; // pow(trace_generator, (safe_div((safe_mult(343, global_values.trace_length)), 512))). + let pow1923 = pow100 + * pow1922; // pow(trace_generator, (safe_div((safe_mult(687, global_values.trace_length)), 1024))). + let pow1924 = pow100 + * pow1923; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 64))). + let pow1925 = pow32 + * pow1924; // pow(trace_generator, (safe_div((safe_mult(44033, global_values.trace_length)), 65536))). + let pow1926 = pow32 + * pow1925; // pow(trace_generator, (safe_div((safe_mult(22017, global_values.trace_length)), 32768))). + let pow1927 = pow32 + * pow1926; // pow(trace_generator, (safe_div((safe_mult(44035, global_values.trace_length)), 65536))). + let pow1928 = pow32 + * pow1927; // pow(trace_generator, (safe_div((safe_mult(11009, global_values.trace_length)), 16384))). + let pow1929 = pow32 + * pow1928; // pow(trace_generator, (safe_div((safe_mult(44037, global_values.trace_length)), 65536))). + let pow1930 = pow32 + * pow1929; // pow(trace_generator, (safe_div((safe_mult(22019, global_values.trace_length)), 32768))). + let pow1931 = pow32 + * pow1930; // pow(trace_generator, (safe_div((safe_mult(44039, global_values.trace_length)), 65536))). + let pow1932 = pow32 + * pow1931; // pow(trace_generator, (safe_div((safe_mult(5505, global_values.trace_length)), 8192))). + let pow1933 = pow32 + * pow1932; // pow(trace_generator, (safe_div((safe_mult(44041, global_values.trace_length)), 65536))). + let pow1934 = pow32 + * pow1933; // pow(trace_generator, (safe_div((safe_mult(22021, global_values.trace_length)), 32768))). + let pow1935 = pow32 + * pow1934; // pow(trace_generator, (safe_div((safe_mult(44043, global_values.trace_length)), 65536))). + let pow1936 = pow32 + * pow1935; // pow(trace_generator, (safe_div((safe_mult(11011, global_values.trace_length)), 16384))). + let pow1937 = pow32 + * pow1936; // pow(trace_generator, (safe_div((safe_mult(44045, global_values.trace_length)), 65536))). + let pow1938 = pow32 + * pow1937; // pow(trace_generator, (safe_div((safe_mult(22023, global_values.trace_length)), 32768))). + let pow1939 = pow32 + * pow1938; // pow(trace_generator, (safe_div((safe_mult(44047, global_values.trace_length)), 65536))). + let pow1940 = pow32 + * pow1939; // pow(trace_generator, (safe_div((safe_mult(2753, global_values.trace_length)), 4096))). + let pow1941 = pow32 + * pow1940; // pow(trace_generator, (safe_div((safe_mult(44049, global_values.trace_length)), 65536))). + let pow1942 = pow32 + * pow1941; // pow(trace_generator, (safe_div((safe_mult(22025, global_values.trace_length)), 32768))). + let pow1943 = pow32 + * pow1942; // pow(trace_generator, (safe_div((safe_mult(44051, global_values.trace_length)), 65536))). + let pow1944 = pow32 + * pow1943; // pow(trace_generator, (safe_div((safe_mult(11013, global_values.trace_length)), 16384))). + let pow1945 = pow32 + * pow1944; // pow(trace_generator, (safe_div((safe_mult(44053, global_values.trace_length)), 65536))). + let pow1946 = pow32 + * pow1945; // pow(trace_generator, (safe_div((safe_mult(22027, global_values.trace_length)), 32768))). + let pow1947 = pow32 + * pow1946; // pow(trace_generator, (safe_div((safe_mult(44055, global_values.trace_length)), 65536))). + let pow1948 = pow79 + * pow1947; // pow(trace_generator, (safe_div((safe_mult(689, global_values.trace_length)), 1024))). + let pow1949 = pow100 + * pow1948; // pow(trace_generator, (safe_div((safe_mult(345, global_values.trace_length)), 512))). + let pow1950 = pow100 + * pow1949; // pow(trace_generator, (safe_div((safe_mult(691, global_values.trace_length)), 1024))). + let pow1951 = pow100 + * pow1950; // pow(trace_generator, (safe_div((safe_mult(173, global_values.trace_length)), 256))). + let pow1952 = pow100 + * pow1951; // pow(trace_generator, (safe_div((safe_mult(693, global_values.trace_length)), 1024))). + let pow1953 = pow100 + * pow1952; // pow(trace_generator, (safe_div((safe_mult(347, global_values.trace_length)), 512))). + let pow1954 = pow100 + * pow1953; // pow(trace_generator, (safe_div((safe_mult(695, global_values.trace_length)), 1024))). + let pow1955 = pow580 + * pow1954; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 16))). + let pow1956 = pow32 + * pow1955; // pow(trace_generator, (safe_div((safe_mult(45057, global_values.trace_length)), 65536))). + let pow1957 = pow32 + * pow1956; // pow(trace_generator, (safe_div((safe_mult(22529, global_values.trace_length)), 32768))). + let pow1958 = pow32 + * pow1957; // pow(trace_generator, (safe_div((safe_mult(45059, global_values.trace_length)), 65536))). + let pow1959 = pow32 + * pow1958; // pow(trace_generator, (safe_div((safe_mult(11265, global_values.trace_length)), 16384))). + let pow1960 = pow32 + * pow1959; // pow(trace_generator, (safe_div((safe_mult(45061, global_values.trace_length)), 65536))). + let pow1961 = pow32 + * pow1960; // pow(trace_generator, (safe_div((safe_mult(22531, global_values.trace_length)), 32768))). + let pow1962 = pow32 + * pow1961; // pow(trace_generator, (safe_div((safe_mult(45063, global_values.trace_length)), 65536))). + let pow1963 = pow32 + * pow1962; // pow(trace_generator, (safe_div((safe_mult(5633, global_values.trace_length)), 8192))). + let pow1964 = pow32 + * pow1963; // pow(trace_generator, (safe_div((safe_mult(45065, global_values.trace_length)), 65536))). + let pow1965 = pow32 + * pow1964; // pow(trace_generator, (safe_div((safe_mult(22533, global_values.trace_length)), 32768))). + let pow1966 = pow32 + * pow1965; // pow(trace_generator, (safe_div((safe_mult(45067, global_values.trace_length)), 65536))). + let pow1967 = pow32 + * pow1966; // pow(trace_generator, (safe_div((safe_mult(11267, global_values.trace_length)), 16384))). + let pow1968 = pow32 + * pow1967; // pow(trace_generator, (safe_div((safe_mult(45069, global_values.trace_length)), 65536))). + let pow1969 = pow32 + * pow1968; // pow(trace_generator, (safe_div((safe_mult(22535, global_values.trace_length)), 32768))). + let pow1970 = pow32 + * pow1969; // pow(trace_generator, (safe_div((safe_mult(45071, global_values.trace_length)), 65536))). + let pow1971 = pow32 + * pow1970; // pow(trace_generator, (safe_div((safe_mult(2817, global_values.trace_length)), 4096))). + let pow1972 = pow32 + * pow1971; // pow(trace_generator, (safe_div((safe_mult(45073, global_values.trace_length)), 65536))). + let pow1973 = pow32 + * pow1972; // pow(trace_generator, (safe_div((safe_mult(22537, global_values.trace_length)), 32768))). + let pow1974 = pow32 + * pow1973; // pow(trace_generator, (safe_div((safe_mult(45075, global_values.trace_length)), 65536))). + let pow1975 = pow32 + * pow1974; // pow(trace_generator, (safe_div((safe_mult(11269, global_values.trace_length)), 16384))). + let pow1976 = pow32 + * pow1975; // pow(trace_generator, (safe_div((safe_mult(45077, global_values.trace_length)), 65536))). + let pow1977 = pow32 + * pow1976; // pow(trace_generator, (safe_div((safe_mult(22539, global_values.trace_length)), 32768))). + let pow1978 = pow32 + * pow1977; // pow(trace_generator, (safe_div((safe_mult(45079, global_values.trace_length)), 65536))). + let pow1979 = pow79 + * pow1978; // pow(trace_generator, (safe_div((safe_mult(705, global_values.trace_length)), 1024))). + let pow1980 = pow100 + * pow1979; // pow(trace_generator, (safe_div((safe_mult(353, global_values.trace_length)), 512))). + let pow1981 = pow100 + * pow1980; // pow(trace_generator, (safe_div((safe_mult(707, global_values.trace_length)), 1024))). + let pow1982 = pow100 + * pow1981; // pow(trace_generator, (safe_div((safe_mult(177, global_values.trace_length)), 256))). + let pow1983 = pow100 + * pow1982; // pow(trace_generator, (safe_div((safe_mult(709, global_values.trace_length)), 1024))). + let pow1984 = pow100 + * pow1983; // pow(trace_generator, (safe_div((safe_mult(355, global_values.trace_length)), 512))). + let pow1985 = pow100 + * pow1984; // pow(trace_generator, (safe_div((safe_mult(711, global_values.trace_length)), 1024))). + let pow1986 = pow100 + * pow1985; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 128))). + let pow1987 = pow100 + * pow1986; // pow(trace_generator, (safe_div((safe_mult(713, global_values.trace_length)), 1024))). + let pow1988 = pow100 + * pow1987; // pow(trace_generator, (safe_div((safe_mult(357, global_values.trace_length)), 512))). + let pow1989 = pow100 + * pow1988; // pow(trace_generator, (safe_div((safe_mult(715, global_values.trace_length)), 1024))). + let pow1990 = pow100 + * pow1989; // pow(trace_generator, (safe_div((safe_mult(179, global_values.trace_length)), 256))). + let pow1991 = pow100 + * pow1990; // pow(trace_generator, (safe_div((safe_mult(717, global_values.trace_length)), 1024))). + let pow1992 = pow100 + * pow1991; // pow(trace_generator, (safe_div((safe_mult(359, global_values.trace_length)), 512))). + let pow1993 = pow100 + * pow1992; // pow(trace_generator, (safe_div((safe_mult(719, global_values.trace_length)), 1024))). + let pow1994 = pow100 + * pow1993; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 64))). + let pow1995 = pow32 + * pow1994; // pow(trace_generator, (safe_div((safe_mult(46081, global_values.trace_length)), 65536))). + let pow1996 = pow32 + * pow1995; // pow(trace_generator, (safe_div((safe_mult(23041, global_values.trace_length)), 32768))). + let pow1997 = pow32 + * pow1996; // pow(trace_generator, (safe_div((safe_mult(46083, global_values.trace_length)), 65536))). + let pow1998 = pow32 + * pow1997; // pow(trace_generator, (safe_div((safe_mult(11521, global_values.trace_length)), 16384))). + let pow1999 = pow32 + * pow1998; // pow(trace_generator, (safe_div((safe_mult(46085, global_values.trace_length)), 65536))). + let pow2000 = pow32 + * pow1999; // pow(trace_generator, (safe_div((safe_mult(23043, global_values.trace_length)), 32768))). + let pow2001 = pow32 + * pow2000; // pow(trace_generator, (safe_div((safe_mult(46087, global_values.trace_length)), 65536))). + let pow2002 = pow32 + * pow2001; // pow(trace_generator, (safe_div((safe_mult(5761, global_values.trace_length)), 8192))). + let pow2003 = pow32 + * pow2002; // pow(trace_generator, (safe_div((safe_mult(46089, global_values.trace_length)), 65536))). + let pow2004 = pow32 + * pow2003; // pow(trace_generator, (safe_div((safe_mult(23045, global_values.trace_length)), 32768))). + let pow2005 = pow32 + * pow2004; // pow(trace_generator, (safe_div((safe_mult(46091, global_values.trace_length)), 65536))). + let pow2006 = pow32 + * pow2005; // pow(trace_generator, (safe_div((safe_mult(11523, global_values.trace_length)), 16384))). + let pow2007 = pow32 + * pow2006; // pow(trace_generator, (safe_div((safe_mult(46093, global_values.trace_length)), 65536))). + let pow2008 = pow32 + * pow2007; // pow(trace_generator, (safe_div((safe_mult(23047, global_values.trace_length)), 32768))). + let pow2009 = pow32 + * pow2008; // pow(trace_generator, (safe_div((safe_mult(46095, global_values.trace_length)), 65536))). + let pow2010 = pow32 + * pow2009; // pow(trace_generator, (safe_div((safe_mult(2881, global_values.trace_length)), 4096))). + let pow2011 = pow32 + * pow2010; // pow(trace_generator, (safe_div((safe_mult(46097, global_values.trace_length)), 65536))). + let pow2012 = pow32 + * pow2011; // pow(trace_generator, (safe_div((safe_mult(23049, global_values.trace_length)), 32768))). + let pow2013 = pow32 + * pow2012; // pow(trace_generator, (safe_div((safe_mult(46099, global_values.trace_length)), 65536))). + let pow2014 = pow32 + * pow2013; // pow(trace_generator, (safe_div((safe_mult(11525, global_values.trace_length)), 16384))). + let pow2015 = pow32 + * pow2014; // pow(trace_generator, (safe_div((safe_mult(46101, global_values.trace_length)), 65536))). + let pow2016 = pow32 + * pow2015; // pow(trace_generator, (safe_div((safe_mult(23051, global_values.trace_length)), 32768))). + let pow2017 = pow32 + * pow2016; // pow(trace_generator, (safe_div((safe_mult(46103, global_values.trace_length)), 65536))). + let pow2018 = pow79 + * pow2017; // pow(trace_generator, (safe_div((safe_mult(721, global_values.trace_length)), 1024))). + let pow2019 = pow100 + * pow2018; // pow(trace_generator, (safe_div((safe_mult(361, global_values.trace_length)), 512))). + let pow2020 = pow100 + * pow2019; // pow(trace_generator, (safe_div((safe_mult(723, global_values.trace_length)), 1024))). + let pow2021 = pow100 + * pow2020; // pow(trace_generator, (safe_div((safe_mult(181, global_values.trace_length)), 256))). + let pow2022 = pow100 + * pow2021; // pow(trace_generator, (safe_div((safe_mult(725, global_values.trace_length)), 1024))). + let pow2023 = pow100 + * pow2022; // pow(trace_generator, (safe_div((safe_mult(363, global_values.trace_length)), 512))). + let pow2024 = pow100 + * pow2023; // pow(trace_generator, (safe_div((safe_mult(727, global_values.trace_length)), 1024))). + let pow2025 = pow580 + * pow2024; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 32))). + let pow2026 = pow793 + * pow2025; // pow(trace_generator, (safe_div((safe_mult(47, global_values.trace_length)), 64))). + let pow2027 = pow32 + * pow2025; // pow(trace_generator, (safe_div((safe_mult(47105, global_values.trace_length)), 65536))). + let pow2028 = pow32 + * pow2026; // pow(trace_generator, (safe_div((safe_mult(48129, global_values.trace_length)), 65536))). + let pow2029 = pow32 + * pow2027; // pow(trace_generator, (safe_div((safe_mult(23553, global_values.trace_length)), 32768))). + let pow2030 = pow32 + * pow2028; // pow(trace_generator, (safe_div((safe_mult(24065, global_values.trace_length)), 32768))). + let pow2031 = pow32 + * pow2029; // pow(trace_generator, (safe_div((safe_mult(47107, global_values.trace_length)), 65536))). + let pow2032 = pow32 + * pow2030; // pow(trace_generator, (safe_div((safe_mult(48131, global_values.trace_length)), 65536))). + let pow2033 = pow32 + * pow2031; // pow(trace_generator, (safe_div((safe_mult(11777, global_values.trace_length)), 16384))). + let pow2034 = pow32 + * pow2032; // pow(trace_generator, (safe_div((safe_mult(12033, global_values.trace_length)), 16384))). + let pow2035 = pow32 + * pow2033; // pow(trace_generator, (safe_div((safe_mult(47109, global_values.trace_length)), 65536))). + let pow2036 = pow32 + * pow2034; // pow(trace_generator, (safe_div((safe_mult(48133, global_values.trace_length)), 65536))). + let pow2037 = pow32 + * pow2035; // pow(trace_generator, (safe_div((safe_mult(23555, global_values.trace_length)), 32768))). + let pow2038 = pow32 + * pow2036; // pow(trace_generator, (safe_div((safe_mult(24067, global_values.trace_length)), 32768))). + let pow2039 = pow32 + * pow2037; // pow(trace_generator, (safe_div((safe_mult(47111, global_values.trace_length)), 65536))). + let pow2040 = pow32 + * pow2039; // pow(trace_generator, (safe_div((safe_mult(5889, global_values.trace_length)), 8192))). + let pow2041 = pow32 + * pow2040; // pow(trace_generator, (safe_div((safe_mult(47113, global_values.trace_length)), 65536))). + let pow2042 = pow32 + * pow2041; // pow(trace_generator, (safe_div((safe_mult(23557, global_values.trace_length)), 32768))). + let pow2043 = pow32 + * pow2042; // pow(trace_generator, (safe_div((safe_mult(47115, global_values.trace_length)), 65536))). + let pow2044 = pow32 + * pow2043; // pow(trace_generator, (safe_div((safe_mult(11779, global_values.trace_length)), 16384))). + let pow2045 = pow32 + * pow2044; // pow(trace_generator, (safe_div((safe_mult(47117, global_values.trace_length)), 65536))). + let pow2046 = pow32 + * pow2045; // pow(trace_generator, (safe_div((safe_mult(23559, global_values.trace_length)), 32768))). + let pow2047 = pow32 + * pow2046; // pow(trace_generator, (safe_div((safe_mult(47119, global_values.trace_length)), 65536))). + let pow2048 = pow32 + * pow2047; // pow(trace_generator, (safe_div((safe_mult(2945, global_values.trace_length)), 4096))). + let pow2049 = pow32 + * pow2048; // pow(trace_generator, (safe_div((safe_mult(47121, global_values.trace_length)), 65536))). + let pow2050 = pow32 + * pow2049; // pow(trace_generator, (safe_div((safe_mult(23561, global_values.trace_length)), 32768))). + let pow2051 = pow32 + * pow2050; // pow(trace_generator, (safe_div((safe_mult(47123, global_values.trace_length)), 65536))). + let pow2052 = pow32 + * pow2051; // pow(trace_generator, (safe_div((safe_mult(11781, global_values.trace_length)), 16384))). + let pow2053 = pow32 + * pow2052; // pow(trace_generator, (safe_div((safe_mult(47125, global_values.trace_length)), 65536))). + let pow2054 = pow32 + * pow2053; // pow(trace_generator, (safe_div((safe_mult(23563, global_values.trace_length)), 32768))). + let pow2055 = pow32 + * pow2054; // pow(trace_generator, (safe_div((safe_mult(47127, global_values.trace_length)), 65536))). + let pow2056 = pow32 + * pow2038; // pow(trace_generator, (safe_div((safe_mult(48135, global_values.trace_length)), 65536))). + let pow2057 = pow32 + * pow2056; // pow(trace_generator, (safe_div((safe_mult(6017, global_values.trace_length)), 8192))). + let pow2058 = pow32 + * pow2057; // pow(trace_generator, (safe_div((safe_mult(48137, global_values.trace_length)), 65536))). + let pow2059 = pow32 + * pow2058; // pow(trace_generator, (safe_div((safe_mult(24069, global_values.trace_length)), 32768))). + let pow2060 = pow32 + * pow2059; // pow(trace_generator, (safe_div((safe_mult(48139, global_values.trace_length)), 65536))). + let pow2061 = pow32 + * pow2060; // pow(trace_generator, (safe_div((safe_mult(12035, global_values.trace_length)), 16384))). + let pow2062 = pow32 + * pow2061; // pow(trace_generator, (safe_div((safe_mult(48141, global_values.trace_length)), 65536))). + let pow2063 = pow32 + * pow2062; // pow(trace_generator, (safe_div((safe_mult(24071, global_values.trace_length)), 32768))). + let pow2064 = pow32 + * pow2063; // pow(trace_generator, (safe_div((safe_mult(48143, global_values.trace_length)), 65536))). + let pow2065 = pow32 + * pow2064; // pow(trace_generator, (safe_div((safe_mult(3009, global_values.trace_length)), 4096))). + let pow2066 = pow32 + * pow2065; // pow(trace_generator, (safe_div((safe_mult(48145, global_values.trace_length)), 65536))). + let pow2067 = pow32 + * pow2066; // pow(trace_generator, (safe_div((safe_mult(24073, global_values.trace_length)), 32768))). + let pow2068 = pow32 + * pow2067; // pow(trace_generator, (safe_div((safe_mult(48147, global_values.trace_length)), 65536))). + let pow2069 = pow32 + * pow2068; // pow(trace_generator, (safe_div((safe_mult(12037, global_values.trace_length)), 16384))). + let pow2070 = pow32 + * pow2069; // pow(trace_generator, (safe_div((safe_mult(48149, global_values.trace_length)), 65536))). + let pow2071 = pow32 + * pow2070; // pow(trace_generator, (safe_div((safe_mult(24075, global_values.trace_length)), 32768))). + let pow2072 = pow32 + * pow2071; // pow(trace_generator, (safe_div((safe_mult(48151, global_values.trace_length)), 65536))). + let pow2073 = pow793 + * pow2026; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 4))). + let pow2074 = pow32 + * pow2073; // pow(trace_generator, (safe_div((safe_mult(49153, global_values.trace_length)), 65536))). + let pow2075 = pow32 + * pow2074; // pow(trace_generator, (safe_div((safe_mult(24577, global_values.trace_length)), 32768))). + let pow2076 = pow32 + * pow2075; // pow(trace_generator, (safe_div((safe_mult(49155, global_values.trace_length)), 65536))). + let pow2077 = pow32 + * pow2076; // pow(trace_generator, (safe_div((safe_mult(12289, global_values.trace_length)), 16384))). + let pow2078 = pow32 + * pow2077; // pow(trace_generator, (safe_div((safe_mult(49157, global_values.trace_length)), 65536))). + let pow2079 = pow32 + * pow2078; // pow(trace_generator, (safe_div((safe_mult(24579, global_values.trace_length)), 32768))). + let pow2080 = pow32 + * pow2079; // pow(trace_generator, (safe_div((safe_mult(49159, global_values.trace_length)), 65536))). + let pow2081 = pow32 + * pow2080; // pow(trace_generator, (safe_div((safe_mult(6145, global_values.trace_length)), 8192))). + let pow2082 = pow32 + * pow2081; // pow(trace_generator, (safe_div((safe_mult(49161, global_values.trace_length)), 65536))). + let pow2083 = pow32 + * pow2082; // pow(trace_generator, (safe_div((safe_mult(24581, global_values.trace_length)), 32768))). + let pow2084 = pow32 + * pow2083; // pow(trace_generator, (safe_div((safe_mult(49163, global_values.trace_length)), 65536))). + let pow2085 = pow32 + * pow2084; // pow(trace_generator, (safe_div((safe_mult(12291, global_values.trace_length)), 16384))). + let pow2086 = pow32 + * pow2085; // pow(trace_generator, (safe_div((safe_mult(49165, global_values.trace_length)), 65536))). + let pow2087 = pow32 + * pow2086; // pow(trace_generator, (safe_div((safe_mult(24583, global_values.trace_length)), 32768))). + let pow2088 = pow32 + * pow2087; // pow(trace_generator, (safe_div((safe_mult(49167, global_values.trace_length)), 65536))). + let pow2089 = pow32 + * pow2088; // pow(trace_generator, (safe_div((safe_mult(3073, global_values.trace_length)), 4096))). + let pow2090 = pow32 + * pow2089; // pow(trace_generator, (safe_div((safe_mult(49169, global_values.trace_length)), 65536))). + let pow2091 = pow32 + * pow2090; // pow(trace_generator, (safe_div((safe_mult(24585, global_values.trace_length)), 32768))). + let pow2092 = pow32 + * pow2091; // pow(trace_generator, (safe_div((safe_mult(49171, global_values.trace_length)), 65536))). + let pow2093 = pow32 + * pow2092; // pow(trace_generator, (safe_div((safe_mult(12293, global_values.trace_length)), 16384))). + let pow2094 = pow32 + * pow2093; // pow(trace_generator, (safe_div((safe_mult(49173, global_values.trace_length)), 65536))). + let pow2095 = pow32 + * pow2094; // pow(trace_generator, (safe_div((safe_mult(24587, global_values.trace_length)), 32768))). + let pow2096 = pow32 + * pow2095; // pow(trace_generator, (safe_div((safe_mult(49175, global_values.trace_length)), 65536))). + let pow2097 = pow793 + * pow2073; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 64))). + let pow2098 = pow32 + * pow2097; // pow(trace_generator, (safe_div((safe_mult(50177, global_values.trace_length)), 65536))). + let pow2099 = pow32 + * pow2098; // pow(trace_generator, (safe_div((safe_mult(25089, global_values.trace_length)), 32768))). + let pow2100 = pow32 + * pow2099; // pow(trace_generator, (safe_div((safe_mult(50179, global_values.trace_length)), 65536))). + let pow2101 = pow32 + * pow2100; // pow(trace_generator, (safe_div((safe_mult(12545, global_values.trace_length)), 16384))). + let pow2102 = pow32 + * pow2101; // pow(trace_generator, (safe_div((safe_mult(50181, global_values.trace_length)), 65536))). + let pow2103 = pow32 + * pow2102; // pow(trace_generator, (safe_div((safe_mult(25091, global_values.trace_length)), 32768))). + let pow2104 = pow32 + * pow2103; // pow(trace_generator, (safe_div((safe_mult(50183, global_values.trace_length)), 65536))). + let pow2105 = pow32 + * pow2104; // pow(trace_generator, (safe_div((safe_mult(6273, global_values.trace_length)), 8192))). + let pow2106 = pow32 + * pow2105; // pow(trace_generator, (safe_div((safe_mult(50185, global_values.trace_length)), 65536))). + let pow2107 = pow32 + * pow2106; // pow(trace_generator, (safe_div((safe_mult(25093, global_values.trace_length)), 32768))). + let pow2108 = pow32 + * pow2107; // pow(trace_generator, (safe_div((safe_mult(50187, global_values.trace_length)), 65536))). + let pow2109 = pow32 + * pow2108; // pow(trace_generator, (safe_div((safe_mult(12547, global_values.trace_length)), 16384))). + let pow2110 = pow32 + * pow2109; // pow(trace_generator, (safe_div((safe_mult(50189, global_values.trace_length)), 65536))). + let pow2111 = pow32 + * pow2110; // pow(trace_generator, (safe_div((safe_mult(25095, global_values.trace_length)), 32768))). + let pow2112 = pow32 + * pow2111; // pow(trace_generator, (safe_div((safe_mult(50191, global_values.trace_length)), 65536))). + let pow2113 = pow32 + * pow2112; // pow(trace_generator, (safe_div((safe_mult(3137, global_values.trace_length)), 4096))). + let pow2114 = pow32 + * pow2113; // pow(trace_generator, (safe_div((safe_mult(50193, global_values.trace_length)), 65536))). + let pow2115 = pow32 + * pow2114; // pow(trace_generator, (safe_div((safe_mult(25097, global_values.trace_length)), 32768))). + let pow2116 = pow32 + * pow2115; // pow(trace_generator, (safe_div((safe_mult(50195, global_values.trace_length)), 65536))). + let pow2117 = pow32 + * pow2116; // pow(trace_generator, (safe_div((safe_mult(12549, global_values.trace_length)), 16384))). + let pow2118 = pow32 + * pow2117; // pow(trace_generator, (safe_div((safe_mult(50197, global_values.trace_length)), 65536))). + let pow2119 = pow32 + * pow2118; // pow(trace_generator, (safe_div((safe_mult(25099, global_values.trace_length)), 32768))). + let pow2120 = pow32 + * pow2119; // pow(trace_generator, (safe_div((safe_mult(50199, global_values.trace_length)), 65536))). + let pow2121 = pow793 + * pow2097; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 32))). + let pow2122 = pow793 + * pow2121; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 64))). + let pow2123 = pow32 + * pow2121; // pow(trace_generator, (safe_div((safe_mult(51201, global_values.trace_length)), 65536))). + let pow2124 = pow32 + * pow2122; // pow(trace_generator, (safe_div((safe_mult(52225, global_values.trace_length)), 65536))). + let pow2125 = pow32 + * pow2123; // pow(trace_generator, (safe_div((safe_mult(25601, global_values.trace_length)), 32768))). + let pow2126 = pow32 + * pow2124; // pow(trace_generator, (safe_div((safe_mult(26113, global_values.trace_length)), 32768))). + let pow2127 = pow32 + * pow2125; // pow(trace_generator, (safe_div((safe_mult(51203, global_values.trace_length)), 65536))). + let pow2128 = pow32 + * pow2126; // pow(trace_generator, (safe_div((safe_mult(52227, global_values.trace_length)), 65536))). + let pow2129 = pow32 + * pow2127; // pow(trace_generator, (safe_div((safe_mult(12801, global_values.trace_length)), 16384))). + let pow2130 = pow32 + * pow2128; // pow(trace_generator, (safe_div((safe_mult(13057, global_values.trace_length)), 16384))). + let pow2131 = pow32 + * pow2129; // pow(trace_generator, (safe_div((safe_mult(51205, global_values.trace_length)), 65536))). + let pow2132 = pow32 + * pow2130; // pow(trace_generator, (safe_div((safe_mult(52229, global_values.trace_length)), 65536))). + let pow2133 = pow32 + * pow2131; // pow(trace_generator, (safe_div((safe_mult(25603, global_values.trace_length)), 32768))). + let pow2134 = pow32 + * pow2132; // pow(trace_generator, (safe_div((safe_mult(26115, global_values.trace_length)), 32768))). + let pow2135 = pow32 + * pow2133; // pow(trace_generator, (safe_div((safe_mult(51207, global_values.trace_length)), 65536))). + let pow2136 = pow32 + * pow2135; // pow(trace_generator, (safe_div((safe_mult(6401, global_values.trace_length)), 8192))). + let pow2137 = pow32 + * pow2136; // pow(trace_generator, (safe_div((safe_mult(51209, global_values.trace_length)), 65536))). + let pow2138 = pow32 + * pow2137; // pow(trace_generator, (safe_div((safe_mult(25605, global_values.trace_length)), 32768))). + let pow2139 = pow32 + * pow2138; // pow(trace_generator, (safe_div((safe_mult(51211, global_values.trace_length)), 65536))). + let pow2140 = pow32 + * pow2139; // pow(trace_generator, (safe_div((safe_mult(12803, global_values.trace_length)), 16384))). + let pow2141 = pow32 + * pow2140; // pow(trace_generator, (safe_div((safe_mult(51213, global_values.trace_length)), 65536))). + let pow2142 = pow32 + * pow2141; // pow(trace_generator, (safe_div((safe_mult(25607, global_values.trace_length)), 32768))). + let pow2143 = pow32 + * pow2142; // pow(trace_generator, (safe_div((safe_mult(51215, global_values.trace_length)), 65536))). + let pow2144 = pow32 + * pow2143; // pow(trace_generator, (safe_div((safe_mult(3201, global_values.trace_length)), 4096))). + let pow2145 = pow32 + * pow2144; // pow(trace_generator, (safe_div((safe_mult(51217, global_values.trace_length)), 65536))). + let pow2146 = pow32 + * pow2145; // pow(trace_generator, (safe_div((safe_mult(25609, global_values.trace_length)), 32768))). + let pow2147 = pow32 + * pow2146; // pow(trace_generator, (safe_div((safe_mult(51219, global_values.trace_length)), 65536))). + let pow2148 = pow32 + * pow2147; // pow(trace_generator, (safe_div((safe_mult(12805, global_values.trace_length)), 16384))). + let pow2149 = pow32 + * pow2148; // pow(trace_generator, (safe_div((safe_mult(51221, global_values.trace_length)), 65536))). + let pow2150 = pow32 + * pow2149; // pow(trace_generator, (safe_div((safe_mult(25611, global_values.trace_length)), 32768))). + let pow2151 = pow32 + * pow2150; // pow(trace_generator, (safe_div((safe_mult(51223, global_values.trace_length)), 65536))). + let pow2152 = pow32 + * pow2134; // pow(trace_generator, (safe_div((safe_mult(52231, global_values.trace_length)), 65536))). + let pow2153 = pow32 + * pow2152; // pow(trace_generator, (safe_div((safe_mult(6529, global_values.trace_length)), 8192))). + let pow2154 = pow32 + * pow2153; // pow(trace_generator, (safe_div((safe_mult(52233, global_values.trace_length)), 65536))). + let pow2155 = pow32 + * pow2154; // pow(trace_generator, (safe_div((safe_mult(26117, global_values.trace_length)), 32768))). + let pow2156 = pow32 + * pow2155; // pow(trace_generator, (safe_div((safe_mult(52235, global_values.trace_length)), 65536))). + let pow2157 = pow32 + * pow2156; // pow(trace_generator, (safe_div((safe_mult(13059, global_values.trace_length)), 16384))). + let pow2158 = pow32 + * pow2157; // pow(trace_generator, (safe_div((safe_mult(52237, global_values.trace_length)), 65536))). + let pow2159 = pow32 + * pow2158; // pow(trace_generator, (safe_div((safe_mult(26119, global_values.trace_length)), 32768))). + let pow2160 = pow32 + * pow2159; // pow(trace_generator, (safe_div((safe_mult(52239, global_values.trace_length)), 65536))). + let pow2161 = pow32 + * pow2160; // pow(trace_generator, (safe_div((safe_mult(3265, global_values.trace_length)), 4096))). + let pow2162 = pow32 + * pow2161; // pow(trace_generator, (safe_div((safe_mult(52241, global_values.trace_length)), 65536))). + let pow2163 = pow32 + * pow2162; // pow(trace_generator, (safe_div((safe_mult(26121, global_values.trace_length)), 32768))). + let pow2164 = pow32 + * pow2163; // pow(trace_generator, (safe_div((safe_mult(52243, global_values.trace_length)), 65536))). + let pow2165 = pow32 + * pow2164; // pow(trace_generator, (safe_div((safe_mult(13061, global_values.trace_length)), 16384))). + let pow2166 = pow32 + * pow2165; // pow(trace_generator, (safe_div((safe_mult(52245, global_values.trace_length)), 65536))). + let pow2167 = pow32 + * pow2166; // pow(trace_generator, (safe_div((safe_mult(26123, global_values.trace_length)), 32768))). + let pow2168 = pow32 + * pow2167; // pow(trace_generator, (safe_div((safe_mult(52247, global_values.trace_length)), 65536))). + let pow2169 = pow793 + * pow2122; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 16))). + let pow2170 = pow32 + * pow2169; // pow(trace_generator, (safe_div((safe_mult(53249, global_values.trace_length)), 65536))). + let pow2171 = pow32 + * pow2170; // pow(trace_generator, (safe_div((safe_mult(26625, global_values.trace_length)), 32768))). + let pow2172 = pow32 + * pow2171; // pow(trace_generator, (safe_div((safe_mult(53251, global_values.trace_length)), 65536))). + let pow2173 = pow32 + * pow2172; // pow(trace_generator, (safe_div((safe_mult(13313, global_values.trace_length)), 16384))). + let pow2174 = pow32 + * pow2173; // pow(trace_generator, (safe_div((safe_mult(53253, global_values.trace_length)), 65536))). + let pow2175 = pow32 + * pow2174; // pow(trace_generator, (safe_div((safe_mult(26627, global_values.trace_length)), 32768))). + let pow2176 = pow32 + * pow2175; // pow(trace_generator, (safe_div((safe_mult(53255, global_values.trace_length)), 65536))). + let pow2177 = pow32 + * pow2176; // pow(trace_generator, (safe_div((safe_mult(6657, global_values.trace_length)), 8192))). + let pow2178 = pow32 + * pow2177; // pow(trace_generator, (safe_div((safe_mult(53257, global_values.trace_length)), 65536))). + let pow2179 = pow32 + * pow2178; // pow(trace_generator, (safe_div((safe_mult(26629, global_values.trace_length)), 32768))). + let pow2180 = pow32 + * pow2179; // pow(trace_generator, (safe_div((safe_mult(53259, global_values.trace_length)), 65536))). + let pow2181 = pow32 + * pow2180; // pow(trace_generator, (safe_div((safe_mult(13315, global_values.trace_length)), 16384))). + let pow2182 = pow32 + * pow2181; // pow(trace_generator, (safe_div((safe_mult(53261, global_values.trace_length)), 65536))). + let pow2183 = pow32 + * pow2182; // pow(trace_generator, (safe_div((safe_mult(26631, global_values.trace_length)), 32768))). + let pow2184 = pow32 + * pow2183; // pow(trace_generator, (safe_div((safe_mult(53263, global_values.trace_length)), 65536))). + let pow2185 = pow32 + * pow2184; // pow(trace_generator, (safe_div((safe_mult(3329, global_values.trace_length)), 4096))). + let pow2186 = pow32 + * pow2185; // pow(trace_generator, (safe_div((safe_mult(53265, global_values.trace_length)), 65536))). + let pow2187 = pow32 + * pow2186; // pow(trace_generator, (safe_div((safe_mult(26633, global_values.trace_length)), 32768))). + let pow2188 = pow32 + * pow2187; // pow(trace_generator, (safe_div((safe_mult(53267, global_values.trace_length)), 65536))). + let pow2189 = pow32 + * pow2188; // pow(trace_generator, (safe_div((safe_mult(13317, global_values.trace_length)), 16384))). + let pow2190 = pow32 + * pow2189; // pow(trace_generator, (safe_div((safe_mult(53269, global_values.trace_length)), 65536))). + let pow2191 = pow32 + * pow2190; // pow(trace_generator, (safe_div((safe_mult(26635, global_values.trace_length)), 32768))). + let pow2192 = pow32 + * pow2191; // pow(trace_generator, (safe_div((safe_mult(53271, global_values.trace_length)), 65536))). + let pow2193 = pow79 + * pow2192; // pow(trace_generator, (safe_div((safe_mult(833, global_values.trace_length)), 1024))). + let pow2194 = pow100 + * pow2193; // pow(trace_generator, (safe_div((safe_mult(417, global_values.trace_length)), 512))). + let pow2195 = pow100 + * pow2194; // pow(trace_generator, (safe_div((safe_mult(835, global_values.trace_length)), 1024))). + let pow2196 = pow100 + * pow2195; // pow(trace_generator, (safe_div((safe_mult(209, global_values.trace_length)), 256))). + let pow2197 = pow100 + * pow2196; // pow(trace_generator, (safe_div((safe_mult(837, global_values.trace_length)), 1024))). + let pow2198 = pow100 + * pow2197; // pow(trace_generator, (safe_div((safe_mult(419, global_values.trace_length)), 512))). + let pow2199 = pow100 + * pow2198; // pow(trace_generator, (safe_div((safe_mult(839, global_values.trace_length)), 1024))). + let pow2200 = pow100 + * pow2199; // pow(trace_generator, (safe_div((safe_mult(105, global_values.trace_length)), 128))). + let pow2201 = pow100 + * pow2200; // pow(trace_generator, (safe_div((safe_mult(841, global_values.trace_length)), 1024))). + let pow2202 = pow100 + * pow2201; // pow(trace_generator, (safe_div((safe_mult(421, global_values.trace_length)), 512))). + let pow2203 = pow100 + * pow2202; // pow(trace_generator, (safe_div((safe_mult(843, global_values.trace_length)), 1024))). + let pow2204 = pow100 + * pow2203; // pow(trace_generator, (safe_div((safe_mult(211, global_values.trace_length)), 256))). + let pow2205 = pow100 + * pow2204; // pow(trace_generator, (safe_div((safe_mult(845, global_values.trace_length)), 1024))). + let pow2206 = pow100 + * pow2205; // pow(trace_generator, (safe_div((safe_mult(423, global_values.trace_length)), 512))). + let pow2207 = pow100 + * pow2206; // pow(trace_generator, (safe_div((safe_mult(847, global_values.trace_length)), 1024))). + let pow2208 = pow100 + * pow2207; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 64))). + let pow2209 = pow32 + * pow2208; // pow(trace_generator, (safe_div((safe_mult(54273, global_values.trace_length)), 65536))). + let pow2210 = pow32 + * pow2209; // pow(trace_generator, (safe_div((safe_mult(27137, global_values.trace_length)), 32768))). + let pow2211 = pow32 + * pow2210; // pow(trace_generator, (safe_div((safe_mult(54275, global_values.trace_length)), 65536))). + let pow2212 = pow32 + * pow2211; // pow(trace_generator, (safe_div((safe_mult(13569, global_values.trace_length)), 16384))). + let pow2213 = pow32 + * pow2212; // pow(trace_generator, (safe_div((safe_mult(54277, global_values.trace_length)), 65536))). + let pow2214 = pow32 + * pow2213; // pow(trace_generator, (safe_div((safe_mult(27139, global_values.trace_length)), 32768))). + let pow2215 = pow32 + * pow2214; // pow(trace_generator, (safe_div((safe_mult(54279, global_values.trace_length)), 65536))). + let pow2216 = pow32 + * pow2215; // pow(trace_generator, (safe_div((safe_mult(6785, global_values.trace_length)), 8192))). + let pow2217 = pow32 + * pow2216; // pow(trace_generator, (safe_div((safe_mult(54281, global_values.trace_length)), 65536))). + let pow2218 = pow32 + * pow2217; // pow(trace_generator, (safe_div((safe_mult(27141, global_values.trace_length)), 32768))). + let pow2219 = pow32 + * pow2218; // pow(trace_generator, (safe_div((safe_mult(54283, global_values.trace_length)), 65536))). + let pow2220 = pow32 + * pow2219; // pow(trace_generator, (safe_div((safe_mult(13571, global_values.trace_length)), 16384))). + let pow2221 = pow32 + * pow2220; // pow(trace_generator, (safe_div((safe_mult(54285, global_values.trace_length)), 65536))). + let pow2222 = pow32 + * pow2221; // pow(trace_generator, (safe_div((safe_mult(27143, global_values.trace_length)), 32768))). + let pow2223 = pow32 + * pow2222; // pow(trace_generator, (safe_div((safe_mult(54287, global_values.trace_length)), 65536))). + let pow2224 = pow32 + * pow2223; // pow(trace_generator, (safe_div((safe_mult(3393, global_values.trace_length)), 4096))). + let pow2225 = pow32 + * pow2224; // pow(trace_generator, (safe_div((safe_mult(54289, global_values.trace_length)), 65536))). + let pow2226 = pow32 + * pow2225; // pow(trace_generator, (safe_div((safe_mult(27145, global_values.trace_length)), 32768))). + let pow2227 = pow32 + * pow2226; // pow(trace_generator, (safe_div((safe_mult(54291, global_values.trace_length)), 65536))). + let pow2228 = pow32 + * pow2227; // pow(trace_generator, (safe_div((safe_mult(13573, global_values.trace_length)), 16384))). + let pow2229 = pow32 + * pow2228; // pow(trace_generator, (safe_div((safe_mult(54293, global_values.trace_length)), 65536))). + let pow2230 = pow32 + * pow2229; // pow(trace_generator, (safe_div((safe_mult(27147, global_values.trace_length)), 32768))). + let pow2231 = pow32 + * pow2230; // pow(trace_generator, (safe_div((safe_mult(54295, global_values.trace_length)), 65536))). + let pow2232 = pow79 + * pow2231; // pow(trace_generator, (safe_div((safe_mult(849, global_values.trace_length)), 1024))). + let pow2233 = pow100 + * pow2232; // pow(trace_generator, (safe_div((safe_mult(425, global_values.trace_length)), 512))). + let pow2234 = pow100 + * pow2233; // pow(trace_generator, (safe_div((safe_mult(851, global_values.trace_length)), 1024))). + let pow2235 = pow100 + * pow2234; // pow(trace_generator, (safe_div((safe_mult(213, global_values.trace_length)), 256))). + let pow2236 = pow100 + * pow2235; // pow(trace_generator, (safe_div((safe_mult(853, global_values.trace_length)), 1024))). + let pow2237 = pow100 + * pow2236; // pow(trace_generator, (safe_div((safe_mult(427, global_values.trace_length)), 512))). + let pow2238 = pow100 + * pow2237; // pow(trace_generator, (safe_div((safe_mult(855, global_values.trace_length)), 1024))). + let pow2239 = pow100 + * pow2238; // pow(trace_generator, (safe_div((safe_mult(107, global_values.trace_length)), 128))). + let pow2240 = pow100 + * pow2239; // pow(trace_generator, (safe_div((safe_mult(857, global_values.trace_length)), 1024))). + let pow2241 = pow100 + * pow2240; // pow(trace_generator, (safe_div((safe_mult(429, global_values.trace_length)), 512))). + let pow2242 = pow100 + * pow2241; // pow(trace_generator, (safe_div((safe_mult(859, global_values.trace_length)), 1024))). + let pow2243 = pow100 + * pow2242; // pow(trace_generator, (safe_div((safe_mult(215, global_values.trace_length)), 256))). + let pow2244 = pow100 + * pow2243; // pow(trace_generator, (safe_div((safe_mult(861, global_values.trace_length)), 1024))). + let pow2245 = pow220 + * pow2244; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 32))). + let pow2246 = pow32 + * pow2245; // pow(trace_generator, (safe_div((safe_mult(55297, global_values.trace_length)), 65536))). + let pow2247 = pow32 + * pow2246; // pow(trace_generator, (safe_div((safe_mult(27649, global_values.trace_length)), 32768))). + let pow2248 = pow32 + * pow2247; // pow(trace_generator, (safe_div((safe_mult(55299, global_values.trace_length)), 65536))). + let pow2249 = pow32 + * pow2248; // pow(trace_generator, (safe_div((safe_mult(13825, global_values.trace_length)), 16384))). + let pow2250 = pow32 + * pow2249; // pow(trace_generator, (safe_div((safe_mult(55301, global_values.trace_length)), 65536))). + let pow2251 = pow32 + * pow2250; // pow(trace_generator, (safe_div((safe_mult(27651, global_values.trace_length)), 32768))). + let pow2252 = pow32 + * pow2251; // pow(trace_generator, (safe_div((safe_mult(55303, global_values.trace_length)), 65536))). + let pow2253 = pow32 + * pow2252; // pow(trace_generator, (safe_div((safe_mult(6913, global_values.trace_length)), 8192))). + let pow2254 = pow32 + * pow2253; // pow(trace_generator, (safe_div((safe_mult(55305, global_values.trace_length)), 65536))). + let pow2255 = pow32 + * pow2254; // pow(trace_generator, (safe_div((safe_mult(27653, global_values.trace_length)), 32768))). + let pow2256 = pow32 + * pow2255; // pow(trace_generator, (safe_div((safe_mult(55307, global_values.trace_length)), 65536))). + let pow2257 = pow32 + * pow2256; // pow(trace_generator, (safe_div((safe_mult(13827, global_values.trace_length)), 16384))). + let pow2258 = pow32 + * pow2257; // pow(trace_generator, (safe_div((safe_mult(55309, global_values.trace_length)), 65536))). + let pow2259 = pow32 + * pow2258; // pow(trace_generator, (safe_div((safe_mult(27655, global_values.trace_length)), 32768))). + let pow2260 = pow32 + * pow2259; // pow(trace_generator, (safe_div((safe_mult(55311, global_values.trace_length)), 65536))). + let pow2261 = pow32 + * pow2260; // pow(trace_generator, (safe_div((safe_mult(3457, global_values.trace_length)), 4096))). + let pow2262 = pow32 + * pow2261; // pow(trace_generator, (safe_div((safe_mult(55313, global_values.trace_length)), 65536))). + let pow2263 = pow32 + * pow2262; // pow(trace_generator, (safe_div((safe_mult(27657, global_values.trace_length)), 32768))). + let pow2264 = pow32 + * pow2263; // pow(trace_generator, (safe_div((safe_mult(55315, global_values.trace_length)), 65536))). + let pow2265 = pow32 + * pow2264; // pow(trace_generator, (safe_div((safe_mult(13829, global_values.trace_length)), 16384))). + let pow2266 = pow32 + * pow2265; // pow(trace_generator, (safe_div((safe_mult(55317, global_values.trace_length)), 65536))). + let pow2267 = pow32 + * pow2266; // pow(trace_generator, (safe_div((safe_mult(27659, global_values.trace_length)), 32768))). + let pow2268 = pow32 + * pow2267; // pow(trace_generator, (safe_div((safe_mult(55319, global_values.trace_length)), 65536))). + let pow2269 = pow79 + * pow2268; // pow(trace_generator, (safe_div((safe_mult(865, global_values.trace_length)), 1024))). + let pow2270 = pow100 + * pow2269; // pow(trace_generator, (safe_div((safe_mult(433, global_values.trace_length)), 512))). + let pow2271 = pow100 + * pow2270; // pow(trace_generator, (safe_div((safe_mult(867, global_values.trace_length)), 1024))). + let pow2272 = pow100 + * pow2271; // pow(trace_generator, (safe_div((safe_mult(217, global_values.trace_length)), 256))). + let pow2273 = pow100 + * pow2272; // pow(trace_generator, (safe_div((safe_mult(869, global_values.trace_length)), 1024))). + let pow2274 = pow100 + * pow2273; // pow(trace_generator, (safe_div((safe_mult(435, global_values.trace_length)), 512))). + let pow2275 = pow100 + * pow2274; // pow(trace_generator, (safe_div((safe_mult(871, global_values.trace_length)), 1024))). + let pow2276 = pow100 + * pow2275; // pow(trace_generator, (safe_div((safe_mult(109, global_values.trace_length)), 128))). + let pow2277 = pow100 + * pow2276; // pow(trace_generator, (safe_div((safe_mult(873, global_values.trace_length)), 1024))). + let pow2278 = pow100 + * pow2277; // pow(trace_generator, (safe_div((safe_mult(437, global_values.trace_length)), 512))). + let pow2279 = pow100 + * pow2278; // pow(trace_generator, (safe_div((safe_mult(875, global_values.trace_length)), 1024))). + let pow2280 = pow100 + * pow2279; // pow(trace_generator, (safe_div((safe_mult(219, global_values.trace_length)), 256))). + let pow2281 = pow100 + * pow2280; // pow(trace_generator, (safe_div((safe_mult(877, global_values.trace_length)), 1024))). + let pow2282 = pow100 + * pow2281; // pow(trace_generator, (safe_div((safe_mult(439, global_values.trace_length)), 512))). + let pow2283 = pow100 + * pow2282; // pow(trace_generator, (safe_div((safe_mult(879, global_values.trace_length)), 1024))). + let pow2284 = pow100 + * pow2283; // pow(trace_generator, (safe_div((safe_mult(55, global_values.trace_length)), 64))). + let pow2285 = pow32 + * pow2284; // pow(trace_generator, (safe_div((safe_mult(56321, global_values.trace_length)), 65536))). + let pow2286 = pow32 + * pow2285; // pow(trace_generator, (safe_div((safe_mult(28161, global_values.trace_length)), 32768))). + let pow2287 = pow32 + * pow2286; // pow(trace_generator, (safe_div((safe_mult(56323, global_values.trace_length)), 65536))). + let pow2288 = pow32 + * pow2287; // pow(trace_generator, (safe_div((safe_mult(14081, global_values.trace_length)), 16384))). + let pow2289 = pow32 + * pow2288; // pow(trace_generator, (safe_div((safe_mult(56325, global_values.trace_length)), 65536))). + let pow2290 = pow32 + * pow2289; // pow(trace_generator, (safe_div((safe_mult(28163, global_values.trace_length)), 32768))). + let pow2291 = pow32 + * pow2290; // pow(trace_generator, (safe_div((safe_mult(56327, global_values.trace_length)), 65536))). + let pow2292 = pow32 + * pow2291; // pow(trace_generator, (safe_div((safe_mult(7041, global_values.trace_length)), 8192))). + let pow2293 = pow32 + * pow2292; // pow(trace_generator, (safe_div((safe_mult(56329, global_values.trace_length)), 65536))). + let pow2294 = pow32 + * pow2293; // pow(trace_generator, (safe_div((safe_mult(28165, global_values.trace_length)), 32768))). + let pow2295 = pow32 + * pow2294; // pow(trace_generator, (safe_div((safe_mult(56331, global_values.trace_length)), 65536))). + let pow2296 = pow32 + * pow2295; // pow(trace_generator, (safe_div((safe_mult(14083, global_values.trace_length)), 16384))). + let pow2297 = pow32 + * pow2296; // pow(trace_generator, (safe_div((safe_mult(56333, global_values.trace_length)), 65536))). + let pow2298 = pow32 + * pow2297; // pow(trace_generator, (safe_div((safe_mult(28167, global_values.trace_length)), 32768))). + let pow2299 = pow32 + * pow2298; // pow(trace_generator, (safe_div((safe_mult(56335, global_values.trace_length)), 65536))). + let pow2300 = pow32 + * pow2299; // pow(trace_generator, (safe_div((safe_mult(3521, global_values.trace_length)), 4096))). + let pow2301 = pow32 + * pow2300; // pow(trace_generator, (safe_div((safe_mult(56337, global_values.trace_length)), 65536))). + let pow2302 = pow32 + * pow2301; // pow(trace_generator, (safe_div((safe_mult(28169, global_values.trace_length)), 32768))). + let pow2303 = pow32 + * pow2302; // pow(trace_generator, (safe_div((safe_mult(56339, global_values.trace_length)), 65536))). + let pow2304 = pow32 + * pow2303; // pow(trace_generator, (safe_div((safe_mult(14085, global_values.trace_length)), 16384))). + let pow2305 = pow32 + * pow2304; // pow(trace_generator, (safe_div((safe_mult(56341, global_values.trace_length)), 65536))). + let pow2306 = pow32 + * pow2305; // pow(trace_generator, (safe_div((safe_mult(28171, global_values.trace_length)), 32768))). + let pow2307 = pow32 + * pow2306; // pow(trace_generator, (safe_div((safe_mult(56343, global_values.trace_length)), 65536))). + let pow2308 = pow79 + * pow2307; // pow(trace_generator, (safe_div((safe_mult(881, global_values.trace_length)), 1024))). + let pow2309 = pow100 + * pow2308; // pow(trace_generator, (safe_div((safe_mult(441, global_values.trace_length)), 512))). + let pow2310 = pow100 + * pow2309; // pow(trace_generator, (safe_div((safe_mult(883, global_values.trace_length)), 1024))). + let pow2311 = pow100 + * pow2310; // pow(trace_generator, (safe_div((safe_mult(221, global_values.trace_length)), 256))). + let pow2312 = pow100 + * pow2311; // pow(trace_generator, (safe_div((safe_mult(885, global_values.trace_length)), 1024))). + let pow2313 = pow100 + * pow2312; // pow(trace_generator, (safe_div((safe_mult(443, global_values.trace_length)), 512))). + let pow2314 = pow100 + * pow2313; // pow(trace_generator, (safe_div((safe_mult(887, global_values.trace_length)), 1024))). + let pow2315 = pow100 + * pow2314; // pow(trace_generator, (safe_div((safe_mult(111, global_values.trace_length)), 128))). + let pow2316 = pow100 + * pow2315; // pow(trace_generator, (safe_div((safe_mult(889, global_values.trace_length)), 1024))). + let pow2317 = pow100 + * pow2316; // pow(trace_generator, (safe_div((safe_mult(445, global_values.trace_length)), 512))). + let pow2318 = pow100 + * pow2317; // pow(trace_generator, (safe_div((safe_mult(891, global_values.trace_length)), 1024))). + let pow2319 = pow100 + * pow2318; // pow(trace_generator, (safe_div((safe_mult(223, global_values.trace_length)), 256))). + let pow2320 = pow100 + * pow2319; // pow(trace_generator, (safe_div((safe_mult(893, global_values.trace_length)), 1024))). + let pow2321 = pow220 + * pow2320; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 8))). + let pow2322 = pow32 + * pow2321; // pow(trace_generator, (safe_div((safe_mult(57345, global_values.trace_length)), 65536))). + let pow2323 = pow32 + * pow2322; // pow(trace_generator, (safe_div((safe_mult(28673, global_values.trace_length)), 32768))). + let pow2324 = pow32 + * pow2323; // pow(trace_generator, (safe_div((safe_mult(57347, global_values.trace_length)), 65536))). + let pow2325 = pow32 + * pow2324; // pow(trace_generator, (safe_div((safe_mult(14337, global_values.trace_length)), 16384))). + let pow2326 = pow32 + * pow2325; // pow(trace_generator, (safe_div((safe_mult(57349, global_values.trace_length)), 65536))). + let pow2327 = pow32 + * pow2326; // pow(trace_generator, (safe_div((safe_mult(28675, global_values.trace_length)), 32768))). + let pow2328 = pow32 + * pow2327; // pow(trace_generator, (safe_div((safe_mult(57351, global_values.trace_length)), 65536))). + let pow2329 = pow32 + * pow2328; // pow(trace_generator, (safe_div((safe_mult(7169, global_values.trace_length)), 8192))). + let pow2330 = pow32 + * pow2329; // pow(trace_generator, (safe_div((safe_mult(57353, global_values.trace_length)), 65536))). + let pow2331 = pow32 + * pow2330; // pow(trace_generator, (safe_div((safe_mult(28677, global_values.trace_length)), 32768))). + let pow2332 = pow32 + * pow2331; // pow(trace_generator, (safe_div((safe_mult(57355, global_values.trace_length)), 65536))). + let pow2333 = pow32 + * pow2332; // pow(trace_generator, (safe_div((safe_mult(14339, global_values.trace_length)), 16384))). + let pow2334 = pow32 + * pow2333; // pow(trace_generator, (safe_div((safe_mult(57357, global_values.trace_length)), 65536))). + let pow2335 = pow32 + * pow2334; // pow(trace_generator, (safe_div((safe_mult(28679, global_values.trace_length)), 32768))). + let pow2336 = pow32 + * pow2335; // pow(trace_generator, (safe_div((safe_mult(57359, global_values.trace_length)), 65536))). + let pow2337 = pow32 + * pow2336; // pow(trace_generator, (safe_div((safe_mult(3585, global_values.trace_length)), 4096))). + let pow2338 = pow32 + * pow2337; // pow(trace_generator, (safe_div((safe_mult(57361, global_values.trace_length)), 65536))). + let pow2339 = pow32 + * pow2338; // pow(trace_generator, (safe_div((safe_mult(28681, global_values.trace_length)), 32768))). + let pow2340 = pow32 + * pow2339; // pow(trace_generator, (safe_div((safe_mult(57363, global_values.trace_length)), 65536))). + let pow2341 = pow32 + * pow2340; // pow(trace_generator, (safe_div((safe_mult(14341, global_values.trace_length)), 16384))). + let pow2342 = pow32 + * pow2341; // pow(trace_generator, (safe_div((safe_mult(57365, global_values.trace_length)), 65536))). + let pow2343 = pow32 + * pow2342; // pow(trace_generator, (safe_div((safe_mult(28683, global_values.trace_length)), 32768))). + let pow2344 = pow32 + * pow2343; // pow(trace_generator, (safe_div((safe_mult(57367, global_values.trace_length)), 65536))). + let pow2345 = pow79 + * pow2344; // pow(trace_generator, (safe_div((safe_mult(897, global_values.trace_length)), 1024))). + let pow2346 = pow100 + * pow2345; // pow(trace_generator, (safe_div((safe_mult(449, global_values.trace_length)), 512))). + let pow2347 = pow100 + * pow2346; // pow(trace_generator, (safe_div((safe_mult(899, global_values.trace_length)), 1024))). + let pow2348 = pow100 + * pow2347; // pow(trace_generator, (safe_div((safe_mult(225, global_values.trace_length)), 256))). + let pow2349 = pow100 + * pow2348; // pow(trace_generator, (safe_div((safe_mult(901, global_values.trace_length)), 1024))). + let pow2350 = pow100 + * pow2349; // pow(trace_generator, (safe_div((safe_mult(451, global_values.trace_length)), 512))). + let pow2351 = pow100 + * pow2350; // pow(trace_generator, (safe_div((safe_mult(903, global_values.trace_length)), 1024))). + let pow2352 = pow100 + * pow2351; // pow(trace_generator, (safe_div((safe_mult(113, global_values.trace_length)), 128))). + let pow2353 = pow100 + * pow2352; // pow(trace_generator, (safe_div((safe_mult(905, global_values.trace_length)), 1024))). + let pow2354 = pow100 + * pow2353; // pow(trace_generator, (safe_div((safe_mult(453, global_values.trace_length)), 512))). + let pow2355 = pow100 + * pow2354; // pow(trace_generator, (safe_div((safe_mult(907, global_values.trace_length)), 1024))). + let pow2356 = pow100 + * pow2355; // pow(trace_generator, (safe_div((safe_mult(227, global_values.trace_length)), 256))). + let pow2357 = pow100 + * pow2356; // pow(trace_generator, (safe_div((safe_mult(909, global_values.trace_length)), 1024))). + let pow2358 = pow100 + * pow2357; // pow(trace_generator, (safe_div((safe_mult(455, global_values.trace_length)), 512))). + let pow2359 = pow100 + * pow2358; // pow(trace_generator, (safe_div((safe_mult(911, global_values.trace_length)), 1024))). + let pow2360 = pow100 + * pow2359; // pow(trace_generator, (safe_div((safe_mult(57, global_values.trace_length)), 64))). + let pow2361 = pow32 + * pow2360; // pow(trace_generator, (safe_div((safe_mult(58369, global_values.trace_length)), 65536))). + let pow2362 = pow32 + * pow2361; // pow(trace_generator, (safe_div((safe_mult(29185, global_values.trace_length)), 32768))). + let pow2363 = pow32 + * pow2362; // pow(trace_generator, (safe_div((safe_mult(58371, global_values.trace_length)), 65536))). + let pow2364 = pow32 + * pow2363; // pow(trace_generator, (safe_div((safe_mult(14593, global_values.trace_length)), 16384))). + let pow2365 = pow32 + * pow2364; // pow(trace_generator, (safe_div((safe_mult(58373, global_values.trace_length)), 65536))). + let pow2366 = pow32 + * pow2365; // pow(trace_generator, (safe_div((safe_mult(29187, global_values.trace_length)), 32768))). + let pow2367 = pow32 + * pow2366; // pow(trace_generator, (safe_div((safe_mult(58375, global_values.trace_length)), 65536))). + let pow2368 = pow32 + * pow2367; // pow(trace_generator, (safe_div((safe_mult(7297, global_values.trace_length)), 8192))). + let pow2369 = pow32 + * pow2368; // pow(trace_generator, (safe_div((safe_mult(58377, global_values.trace_length)), 65536))). + let pow2370 = pow32 + * pow2369; // pow(trace_generator, (safe_div((safe_mult(29189, global_values.trace_length)), 32768))). + let pow2371 = pow32 + * pow2370; // pow(trace_generator, (safe_div((safe_mult(58379, global_values.trace_length)), 65536))). + let pow2372 = pow32 + * pow2371; // pow(trace_generator, (safe_div((safe_mult(14595, global_values.trace_length)), 16384))). + let pow2373 = pow32 + * pow2372; // pow(trace_generator, (safe_div((safe_mult(58381, global_values.trace_length)), 65536))). + let pow2374 = pow32 + * pow2373; // pow(trace_generator, (safe_div((safe_mult(29191, global_values.trace_length)), 32768))). + let pow2375 = pow32 + * pow2374; // pow(trace_generator, (safe_div((safe_mult(58383, global_values.trace_length)), 65536))). + let pow2376 = pow32 + * pow2375; // pow(trace_generator, (safe_div((safe_mult(3649, global_values.trace_length)), 4096))). + let pow2377 = pow32 + * pow2376; // pow(trace_generator, (safe_div((safe_mult(58385, global_values.trace_length)), 65536))). + let pow2378 = pow32 + * pow2377; // pow(trace_generator, (safe_div((safe_mult(29193, global_values.trace_length)), 32768))). + let pow2379 = pow32 + * pow2378; // pow(trace_generator, (safe_div((safe_mult(58387, global_values.trace_length)), 65536))). + let pow2380 = pow32 + * pow2379; // pow(trace_generator, (safe_div((safe_mult(14597, global_values.trace_length)), 16384))). + let pow2381 = pow32 + * pow2380; // pow(trace_generator, (safe_div((safe_mult(58389, global_values.trace_length)), 65536))). + let pow2382 = pow32 + * pow2381; // pow(trace_generator, (safe_div((safe_mult(29195, global_values.trace_length)), 32768))). + let pow2383 = pow32 + * pow2382; // pow(trace_generator, (safe_div((safe_mult(58391, global_values.trace_length)), 65536))). + let pow2384 = pow79 + * pow2383; // pow(trace_generator, (safe_div((safe_mult(913, global_values.trace_length)), 1024))). + let pow2385 = pow100 + * pow2384; // pow(trace_generator, (safe_div((safe_mult(457, global_values.trace_length)), 512))). + let pow2386 = pow100 + * pow2385; // pow(trace_generator, (safe_div((safe_mult(915, global_values.trace_length)), 1024))). + let pow2387 = pow100 + * pow2386; // pow(trace_generator, (safe_div((safe_mult(229, global_values.trace_length)), 256))). + let pow2388 = pow100 + * pow2387; // pow(trace_generator, (safe_div((safe_mult(917, global_values.trace_length)), 1024))). + let pow2389 = pow100 + * pow2388; // pow(trace_generator, (safe_div((safe_mult(459, global_values.trace_length)), 512))). + let pow2390 = pow100 + * pow2389; // pow(trace_generator, (safe_div((safe_mult(919, global_values.trace_length)), 1024))). + let pow2391 = pow100 + * pow2390; // pow(trace_generator, (safe_div((safe_mult(115, global_values.trace_length)), 128))). + let pow2392 = pow100 + * pow2391; // pow(trace_generator, (safe_div((safe_mult(921, global_values.trace_length)), 1024))). + let pow2393 = pow100 + * pow2392; // pow(trace_generator, (safe_div((safe_mult(461, global_values.trace_length)), 512))). + let pow2394 = pow100 + * pow2393; // pow(trace_generator, (safe_div((safe_mult(923, global_values.trace_length)), 1024))). + let pow2395 = pow100 + * pow2394; // pow(trace_generator, (safe_div((safe_mult(231, global_values.trace_length)), 256))). + let pow2396 = pow100 + * pow2395; // pow(trace_generator, (safe_div((safe_mult(925, global_values.trace_length)), 1024))). + let pow2397 = pow220 + * pow2396; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 32))). + let pow2398 = pow32 + * pow2397; // pow(trace_generator, (safe_div((safe_mult(59393, global_values.trace_length)), 65536))). + let pow2399 = pow32 + * pow2398; // pow(trace_generator, (safe_div((safe_mult(29697, global_values.trace_length)), 32768))). + let pow2400 = pow32 + * pow2399; // pow(trace_generator, (safe_div((safe_mult(59395, global_values.trace_length)), 65536))). + let pow2401 = pow32 + * pow2400; // pow(trace_generator, (safe_div((safe_mult(14849, global_values.trace_length)), 16384))). + let pow2402 = pow32 + * pow2401; // pow(trace_generator, (safe_div((safe_mult(59397, global_values.trace_length)), 65536))). + let pow2403 = pow32 + * pow2402; // pow(trace_generator, (safe_div((safe_mult(29699, global_values.trace_length)), 32768))). + let pow2404 = pow32 + * pow2403; // pow(trace_generator, (safe_div((safe_mult(59399, global_values.trace_length)), 65536))). + let pow2405 = pow32 + * pow2404; // pow(trace_generator, (safe_div((safe_mult(7425, global_values.trace_length)), 8192))). + let pow2406 = pow32 + * pow2405; // pow(trace_generator, (safe_div((safe_mult(59401, global_values.trace_length)), 65536))). + let pow2407 = pow32 + * pow2406; // pow(trace_generator, (safe_div((safe_mult(29701, global_values.trace_length)), 32768))). + let pow2408 = pow32 + * pow2407; // pow(trace_generator, (safe_div((safe_mult(59403, global_values.trace_length)), 65536))). + let pow2409 = pow32 + * pow2408; // pow(trace_generator, (safe_div((safe_mult(14851, global_values.trace_length)), 16384))). + let pow2410 = pow32 + * pow2409; // pow(trace_generator, (safe_div((safe_mult(59405, global_values.trace_length)), 65536))). + let pow2411 = pow32 + * pow2410; // pow(trace_generator, (safe_div((safe_mult(29703, global_values.trace_length)), 32768))). + let pow2412 = pow32 + * pow2411; // pow(trace_generator, (safe_div((safe_mult(59407, global_values.trace_length)), 65536))). + let pow2413 = pow32 + * pow2412; // pow(trace_generator, (safe_div((safe_mult(3713, global_values.trace_length)), 4096))). + let pow2414 = pow32 + * pow2413; // pow(trace_generator, (safe_div((safe_mult(59409, global_values.trace_length)), 65536))). + let pow2415 = pow32 + * pow2414; // pow(trace_generator, (safe_div((safe_mult(29705, global_values.trace_length)), 32768))). + let pow2416 = pow32 + * pow2415; // pow(trace_generator, (safe_div((safe_mult(59411, global_values.trace_length)), 65536))). + let pow2417 = pow32 + * pow2416; // pow(trace_generator, (safe_div((safe_mult(14853, global_values.trace_length)), 16384))). + let pow2418 = pow32 + * pow2417; // pow(trace_generator, (safe_div((safe_mult(59413, global_values.trace_length)), 65536))). + let pow2419 = pow32 + * pow2418; // pow(trace_generator, (safe_div((safe_mult(29707, global_values.trace_length)), 32768))). + let pow2420 = pow32 + * pow2419; // pow(trace_generator, (safe_div((safe_mult(59415, global_values.trace_length)), 65536))). + let pow2421 = pow79 + * pow2420; // pow(trace_generator, (safe_div((safe_mult(929, global_values.trace_length)), 1024))). + let pow2422 = pow100 + * pow2421; // pow(trace_generator, (safe_div((safe_mult(465, global_values.trace_length)), 512))). + let pow2423 = pow100 + * pow2422; // pow(trace_generator, (safe_div((safe_mult(931, global_values.trace_length)), 1024))). + let pow2424 = pow100 + * pow2423; // pow(trace_generator, (safe_div((safe_mult(233, global_values.trace_length)), 256))). + let pow2425 = pow100 + * pow2424; // pow(trace_generator, (safe_div((safe_mult(933, global_values.trace_length)), 1024))). + let pow2426 = pow100 + * pow2425; // pow(trace_generator, (safe_div((safe_mult(467, global_values.trace_length)), 512))). + let pow2427 = pow100 + * pow2426; // pow(trace_generator, (safe_div((safe_mult(935, global_values.trace_length)), 1024))). + let pow2428 = pow100 + * pow2427; // pow(trace_generator, (safe_div((safe_mult(117, global_values.trace_length)), 128))). + let pow2429 = pow100 + * pow2428; // pow(trace_generator, (safe_div((safe_mult(937, global_values.trace_length)), 1024))). + let pow2430 = pow100 + * pow2429; // pow(trace_generator, (safe_div((safe_mult(469, global_values.trace_length)), 512))). + let pow2431 = pow100 + * pow2430; // pow(trace_generator, (safe_div((safe_mult(939, global_values.trace_length)), 1024))). + let pow2432 = pow100 + * pow2431; // pow(trace_generator, (safe_div((safe_mult(235, global_values.trace_length)), 256))). + let pow2433 = pow100 + * pow2432; // pow(trace_generator, (safe_div((safe_mult(941, global_values.trace_length)), 1024))). + let pow2434 = pow100 + * pow2433; // pow(trace_generator, (safe_div((safe_mult(471, global_values.trace_length)), 512))). + let pow2435 = pow100 + * pow2434; // pow(trace_generator, (safe_div((safe_mult(943, global_values.trace_length)), 1024))). + let pow2436 = pow100 + * pow2435; // pow(trace_generator, (safe_div((safe_mult(59, global_values.trace_length)), 64))). + let pow2437 = pow32 + * pow2436; // pow(trace_generator, (safe_div((safe_mult(60417, global_values.trace_length)), 65536))). + let pow2438 = pow32 + * pow2437; // pow(trace_generator, (safe_div((safe_mult(30209, global_values.trace_length)), 32768))). + let pow2439 = pow32 + * pow2438; // pow(trace_generator, (safe_div((safe_mult(60419, global_values.trace_length)), 65536))). + let pow2440 = pow32 + * pow2439; // pow(trace_generator, (safe_div((safe_mult(15105, global_values.trace_length)), 16384))). + let pow2441 = pow32 + * pow2440; // pow(trace_generator, (safe_div((safe_mult(60421, global_values.trace_length)), 65536))). + let pow2442 = pow32 + * pow2441; // pow(trace_generator, (safe_div((safe_mult(30211, global_values.trace_length)), 32768))). + let pow2443 = pow32 + * pow2442; // pow(trace_generator, (safe_div((safe_mult(60423, global_values.trace_length)), 65536))). + let pow2444 = pow32 + * pow2443; // pow(trace_generator, (safe_div((safe_mult(7553, global_values.trace_length)), 8192))). + let pow2445 = pow32 + * pow2444; // pow(trace_generator, (safe_div((safe_mult(60425, global_values.trace_length)), 65536))). + let pow2446 = pow32 + * pow2445; // pow(trace_generator, (safe_div((safe_mult(30213, global_values.trace_length)), 32768))). + let pow2447 = pow32 + * pow2446; // pow(trace_generator, (safe_div((safe_mult(60427, global_values.trace_length)), 65536))). + let pow2448 = pow32 + * pow2447; // pow(trace_generator, (safe_div((safe_mult(15107, global_values.trace_length)), 16384))). + let pow2449 = pow32 + * pow2448; // pow(trace_generator, (safe_div((safe_mult(60429, global_values.trace_length)), 65536))). + let pow2450 = pow32 + * pow2449; // pow(trace_generator, (safe_div((safe_mult(30215, global_values.trace_length)), 32768))). + let pow2451 = pow32 + * pow2450; // pow(trace_generator, (safe_div((safe_mult(60431, global_values.trace_length)), 65536))). + let pow2452 = pow32 + * pow2451; // pow(trace_generator, (safe_div((safe_mult(3777, global_values.trace_length)), 4096))). + let pow2453 = pow32 + * pow2452; // pow(trace_generator, (safe_div((safe_mult(60433, global_values.trace_length)), 65536))). + let pow2454 = pow32 + * pow2453; // pow(trace_generator, (safe_div((safe_mult(30217, global_values.trace_length)), 32768))). + let pow2455 = pow32 + * pow2454; // pow(trace_generator, (safe_div((safe_mult(60435, global_values.trace_length)), 65536))). + let pow2456 = pow32 + * pow2455; // pow(trace_generator, (safe_div((safe_mult(15109, global_values.trace_length)), 16384))). + let pow2457 = pow32 + * pow2456; // pow(trace_generator, (safe_div((safe_mult(60437, global_values.trace_length)), 65536))). + let pow2458 = pow32 + * pow2457; // pow(trace_generator, (safe_div((safe_mult(30219, global_values.trace_length)), 32768))). + let pow2459 = pow32 + * pow2458; // pow(trace_generator, (safe_div((safe_mult(60439, global_values.trace_length)), 65536))). + let pow2460 = pow79 + * pow2459; // pow(trace_generator, (safe_div((safe_mult(945, global_values.trace_length)), 1024))). + let pow2461 = pow100 + * pow2460; // pow(trace_generator, (safe_div((safe_mult(473, global_values.trace_length)), 512))). + let pow2462 = pow100 + * pow2461; // pow(trace_generator, (safe_div((safe_mult(947, global_values.trace_length)), 1024))). + let pow2463 = pow100 + * pow2462; // pow(trace_generator, (safe_div((safe_mult(237, global_values.trace_length)), 256))). + let pow2464 = pow100 + * pow2463; // pow(trace_generator, (safe_div((safe_mult(949, global_values.trace_length)), 1024))). + let pow2465 = pow100 + * pow2464; // pow(trace_generator, (safe_div((safe_mult(475, global_values.trace_length)), 512))). + let pow2466 = pow100 + * pow2465; // pow(trace_generator, (safe_div((safe_mult(951, global_values.trace_length)), 1024))). + let pow2467 = pow100 + * pow2466; // pow(trace_generator, (safe_div((safe_mult(119, global_values.trace_length)), 128))). + let pow2468 = pow100 + * pow2467; // pow(trace_generator, (safe_div((safe_mult(953, global_values.trace_length)), 1024))). + let pow2469 = pow100 + * pow2468; // pow(trace_generator, (safe_div((safe_mult(477, global_values.trace_length)), 512))). + let pow2470 = pow100 + * pow2469; // pow(trace_generator, (safe_div((safe_mult(955, global_values.trace_length)), 1024))). + let pow2471 = pow100 + * pow2470; // pow(trace_generator, (safe_div((safe_mult(239, global_values.trace_length)), 256))). + let pow2472 = pow100 + * pow2471; // pow(trace_generator, (safe_div((safe_mult(957, global_values.trace_length)), 1024))). + let pow2473 = pow220 + * pow2472; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 16))). + let pow2474 = pow32 + * pow2473; // pow(trace_generator, (safe_div((safe_mult(61441, global_values.trace_length)), 65536))). + let pow2475 = pow32 + * pow2474; // pow(trace_generator, (safe_div((safe_mult(30721, global_values.trace_length)), 32768))). + let pow2476 = pow32 + * pow2475; // pow(trace_generator, (safe_div((safe_mult(61443, global_values.trace_length)), 65536))). + let pow2477 = pow32 + * pow2476; // pow(trace_generator, (safe_div((safe_mult(15361, global_values.trace_length)), 16384))). + let pow2478 = pow32 + * pow2477; // pow(trace_generator, (safe_div((safe_mult(61445, global_values.trace_length)), 65536))). + let pow2479 = pow32 + * pow2478; // pow(trace_generator, (safe_div((safe_mult(30723, global_values.trace_length)), 32768))). + let pow2480 = pow32 + * pow2479; // pow(trace_generator, (safe_div((safe_mult(61447, global_values.trace_length)), 65536))). + let pow2481 = pow32 + * pow2480; // pow(trace_generator, (safe_div((safe_mult(7681, global_values.trace_length)), 8192))). + let pow2482 = pow32 + * pow2481; // pow(trace_generator, (safe_div((safe_mult(61449, global_values.trace_length)), 65536))). + let pow2483 = pow32 + * pow2482; // pow(trace_generator, (safe_div((safe_mult(30725, global_values.trace_length)), 32768))). + let pow2484 = pow32 + * pow2483; // pow(trace_generator, (safe_div((safe_mult(61451, global_values.trace_length)), 65536))). + let pow2485 = pow32 + * pow2484; // pow(trace_generator, (safe_div((safe_mult(15363, global_values.trace_length)), 16384))). + let pow2486 = pow32 + * pow2485; // pow(trace_generator, (safe_div((safe_mult(61453, global_values.trace_length)), 65536))). + let pow2487 = pow32 + * pow2486; // pow(trace_generator, (safe_div((safe_mult(30727, global_values.trace_length)), 32768))). + let pow2488 = pow32 + * pow2487; // pow(trace_generator, (safe_div((safe_mult(61455, global_values.trace_length)), 65536))). + let pow2489 = pow32 + * pow2488; // pow(trace_generator, (safe_div((safe_mult(3841, global_values.trace_length)), 4096))). + let pow2490 = pow32 + * pow2489; // pow(trace_generator, (safe_div((safe_mult(61457, global_values.trace_length)), 65536))). + let pow2491 = pow32 + * pow2490; // pow(trace_generator, (safe_div((safe_mult(30729, global_values.trace_length)), 32768))). + let pow2492 = pow32 + * pow2491; // pow(trace_generator, (safe_div((safe_mult(61459, global_values.trace_length)), 65536))). + let pow2493 = pow32 + * pow2492; // pow(trace_generator, (safe_div((safe_mult(15365, global_values.trace_length)), 16384))). + let pow2494 = pow32 + * pow2493; // pow(trace_generator, (safe_div((safe_mult(61461, global_values.trace_length)), 65536))). + let pow2495 = pow32 + * pow2494; // pow(trace_generator, (safe_div((safe_mult(30731, global_values.trace_length)), 32768))). + let pow2496 = pow32 + * pow2495; // pow(trace_generator, (safe_div((safe_mult(61463, global_values.trace_length)), 65536))). + let pow2497 = pow79 + * pow2496; // pow(trace_generator, (safe_div((safe_mult(961, global_values.trace_length)), 1024))). + let pow2498 = pow100 + * pow2497; // pow(trace_generator, (safe_div((safe_mult(481, global_values.trace_length)), 512))). + let pow2499 = pow100 + * pow2498; // pow(trace_generator, (safe_div((safe_mult(963, global_values.trace_length)), 1024))). + let pow2500 = pow100 + * pow2499; // pow(trace_generator, (safe_div((safe_mult(241, global_values.trace_length)), 256))). + let pow2501 = pow100 + * pow2500; // pow(trace_generator, (safe_div((safe_mult(965, global_values.trace_length)), 1024))). + let pow2502 = pow100 + * pow2501; // pow(trace_generator, (safe_div((safe_mult(483, global_values.trace_length)), 512))). + let pow2503 = pow100 + * pow2502; // pow(trace_generator, (safe_div((safe_mult(967, global_values.trace_length)), 1024))). + let pow2504 = pow100 + * pow2503; // pow(trace_generator, (safe_div((safe_mult(121, global_values.trace_length)), 128))). + let pow2505 = pow100 + * pow2504; // pow(trace_generator, (safe_div((safe_mult(969, global_values.trace_length)), 1024))). + let pow2506 = pow100 + * pow2505; // pow(trace_generator, (safe_div((safe_mult(485, global_values.trace_length)), 512))). + let pow2507 = pow100 + * pow2506; // pow(trace_generator, (safe_div((safe_mult(971, global_values.trace_length)), 1024))). + let pow2508 = pow100 + * pow2507; // pow(trace_generator, (safe_div((safe_mult(243, global_values.trace_length)), 256))). + let pow2509 = pow100 + * pow2508; // pow(trace_generator, (safe_div((safe_mult(973, global_values.trace_length)), 1024))). + let pow2510 = pow100 + * pow2509; // pow(trace_generator, (safe_div((safe_mult(487, global_values.trace_length)), 512))). + let pow2511 = pow100 + * pow2510; // pow(trace_generator, (safe_div((safe_mult(975, global_values.trace_length)), 1024))). + let pow2512 = pow100 + * pow2511; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 64))). + let pow2513 = pow32 + * pow2512; // pow(trace_generator, (safe_div((safe_mult(62465, global_values.trace_length)), 65536))). + let pow2514 = pow32 + * pow2513; // pow(trace_generator, (safe_div((safe_mult(31233, global_values.trace_length)), 32768))). + let pow2515 = pow32 + * pow2514; // pow(trace_generator, (safe_div((safe_mult(62467, global_values.trace_length)), 65536))). + let pow2516 = pow32 + * pow2515; // pow(trace_generator, (safe_div((safe_mult(15617, global_values.trace_length)), 16384))). + let pow2517 = pow32 + * pow2516; // pow(trace_generator, (safe_div((safe_mult(62469, global_values.trace_length)), 65536))). + let pow2518 = pow32 + * pow2517; // pow(trace_generator, (safe_div((safe_mult(31235, global_values.trace_length)), 32768))). + let pow2519 = pow32 + * pow2518; // pow(trace_generator, (safe_div((safe_mult(62471, global_values.trace_length)), 65536))). + let pow2520 = pow32 + * pow2519; // pow(trace_generator, (safe_div((safe_mult(7809, global_values.trace_length)), 8192))). + let pow2521 = pow32 + * pow2520; // pow(trace_generator, (safe_div((safe_mult(62473, global_values.trace_length)), 65536))). + let pow2522 = pow32 + * pow2521; // pow(trace_generator, (safe_div((safe_mult(31237, global_values.trace_length)), 32768))). + let pow2523 = pow32 + * pow2522; // pow(trace_generator, (safe_div((safe_mult(62475, global_values.trace_length)), 65536))). + let pow2524 = pow32 + * pow2523; // pow(trace_generator, (safe_div((safe_mult(15619, global_values.trace_length)), 16384))). + let pow2525 = pow32 + * pow2524; // pow(trace_generator, (safe_div((safe_mult(62477, global_values.trace_length)), 65536))). + let pow2526 = pow32 + * pow2525; // pow(trace_generator, (safe_div((safe_mult(31239, global_values.trace_length)), 32768))). + let pow2527 = pow32 + * pow2526; // pow(trace_generator, (safe_div((safe_mult(62479, global_values.trace_length)), 65536))). + let pow2528 = pow32 + * pow2527; // pow(trace_generator, (safe_div((safe_mult(3905, global_values.trace_length)), 4096))). + let pow2529 = pow32 + * pow2528; // pow(trace_generator, (safe_div((safe_mult(62481, global_values.trace_length)), 65536))). + let pow2530 = pow32 + * pow2529; // pow(trace_generator, (safe_div((safe_mult(31241, global_values.trace_length)), 32768))). + let pow2531 = pow32 + * pow2530; // pow(trace_generator, (safe_div((safe_mult(62483, global_values.trace_length)), 65536))). + let pow2532 = pow32 + * pow2531; // pow(trace_generator, (safe_div((safe_mult(15621, global_values.trace_length)), 16384))). + let pow2533 = pow32 + * pow2532; // pow(trace_generator, (safe_div((safe_mult(62485, global_values.trace_length)), 65536))). + let pow2534 = pow32 + * pow2533; // pow(trace_generator, (safe_div((safe_mult(31243, global_values.trace_length)), 32768))). + let pow2535 = pow32 + * pow2534; // pow(trace_generator, (safe_div((safe_mult(62487, global_values.trace_length)), 65536))). + let pow2536 = pow79 + * pow2535; // pow(trace_generator, (safe_div((safe_mult(977, global_values.trace_length)), 1024))). + let pow2537 = pow100 + * pow2536; // pow(trace_generator, (safe_div((safe_mult(489, global_values.trace_length)), 512))). + let pow2538 = pow100 + * pow2537; // pow(trace_generator, (safe_div((safe_mult(979, global_values.trace_length)), 1024))). + let pow2539 = pow100 + * pow2538; // pow(trace_generator, (safe_div((safe_mult(245, global_values.trace_length)), 256))). + let pow2540 = pow100 + * pow2539; // pow(trace_generator, (safe_div((safe_mult(981, global_values.trace_length)), 1024))). + let pow2541 = pow100 + * pow2540; // pow(trace_generator, (safe_div((safe_mult(491, global_values.trace_length)), 512))). + let pow2542 = pow100 + * pow2541; // pow(trace_generator, (safe_div((safe_mult(983, global_values.trace_length)), 1024))). + let pow2543 = pow100 + * pow2542; // pow(trace_generator, (safe_div((safe_mult(123, global_values.trace_length)), 128))). + let pow2544 = pow100 + * pow2543; // pow(trace_generator, (safe_div((safe_mult(985, global_values.trace_length)), 1024))). + let pow2545 = pow100 + * pow2544; // pow(trace_generator, (safe_div((safe_mult(493, global_values.trace_length)), 512))). + let pow2546 = pow100 + * pow2545; // pow(trace_generator, (safe_div((safe_mult(987, global_values.trace_length)), 1024))). + let pow2547 = pow100 + * pow2546; // pow(trace_generator, (safe_div((safe_mult(247, global_values.trace_length)), 256))). + let pow2548 = pow100 + * pow2547; // pow(trace_generator, (safe_div((safe_mult(989, global_values.trace_length)), 1024))). + let pow2549 = pow220 + * pow2548; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 32))). + let pow2550 = pow32 + * pow2549; // pow(trace_generator, (safe_div((safe_mult(63489, global_values.trace_length)), 65536))). + let pow2551 = pow32 + * pow2550; // pow(trace_generator, (safe_div((safe_mult(31745, global_values.trace_length)), 32768))). + let pow2552 = pow32 + * pow2551; // pow(trace_generator, (safe_div((safe_mult(63491, global_values.trace_length)), 65536))). + let pow2553 = pow32 + * pow2552; // pow(trace_generator, (safe_div((safe_mult(15873, global_values.trace_length)), 16384))). + let pow2554 = pow32 + * pow2553; // pow(trace_generator, (safe_div((safe_mult(63493, global_values.trace_length)), 65536))). + let pow2555 = pow32 + * pow2554; // pow(trace_generator, (safe_div((safe_mult(31747, global_values.trace_length)), 32768))). + let pow2556 = pow32 + * pow2555; // pow(trace_generator, (safe_div((safe_mult(63495, global_values.trace_length)), 65536))). + let pow2557 = pow32 + * pow2556; // pow(trace_generator, (safe_div((safe_mult(7937, global_values.trace_length)), 8192))). + let pow2558 = pow32 + * pow2557; // pow(trace_generator, (safe_div((safe_mult(63497, global_values.trace_length)), 65536))). + let pow2559 = pow32 + * pow2558; // pow(trace_generator, (safe_div((safe_mult(31749, global_values.trace_length)), 32768))). + let pow2560 = pow32 + * pow2559; // pow(trace_generator, (safe_div((safe_mult(63499, global_values.trace_length)), 65536))). + let pow2561 = pow32 + * pow2560; // pow(trace_generator, (safe_div((safe_mult(15875, global_values.trace_length)), 16384))). + let pow2562 = pow32 + * pow2561; // pow(trace_generator, (safe_div((safe_mult(63501, global_values.trace_length)), 65536))). + let pow2563 = pow32 + * pow2562; // pow(trace_generator, (safe_div((safe_mult(31751, global_values.trace_length)), 32768))). + let pow2564 = pow32 + * pow2563; // pow(trace_generator, (safe_div((safe_mult(63503, global_values.trace_length)), 65536))). + let pow2565 = pow32 + * pow2564; // pow(trace_generator, (safe_div((safe_mult(3969, global_values.trace_length)), 4096))). + let pow2566 = pow32 + * pow2565; // pow(trace_generator, (safe_div((safe_mult(63505, global_values.trace_length)), 65536))). + let pow2567 = pow32 + * pow2566; // pow(trace_generator, (safe_div((safe_mult(31753, global_values.trace_length)), 32768))). + let pow2568 = pow32 + * pow2567; // pow(trace_generator, (safe_div((safe_mult(63507, global_values.trace_length)), 65536))). + let pow2569 = pow32 + * pow2568; // pow(trace_generator, (safe_div((safe_mult(15877, global_values.trace_length)), 16384))). + let pow2570 = pow32 + * pow2569; // pow(trace_generator, (safe_div((safe_mult(63509, global_values.trace_length)), 65536))). + let pow2571 = pow32 + * pow2570; // pow(trace_generator, (safe_div((safe_mult(31755, global_values.trace_length)), 32768))). + let pow2572 = pow32 + * pow2571; // pow(trace_generator, (safe_div((safe_mult(63511, global_values.trace_length)), 65536))). + let pow2573 = pow79 + * pow2572; // pow(trace_generator, (safe_div((safe_mult(993, global_values.trace_length)), 1024))). + let pow2574 = pow100 + * pow2573; // pow(trace_generator, (safe_div((safe_mult(497, global_values.trace_length)), 512))). + let pow2575 = pow100 + * pow2574; // pow(trace_generator, (safe_div((safe_mult(995, global_values.trace_length)), 1024))). + let pow2576 = pow100 + * pow2575; // pow(trace_generator, (safe_div((safe_mult(249, global_values.trace_length)), 256))). + let pow2577 = pow100 + * pow2576; // pow(trace_generator, (safe_div((safe_mult(997, global_values.trace_length)), 1024))). + let pow2578 = pow100 + * pow2577; // pow(trace_generator, (safe_div((safe_mult(499, global_values.trace_length)), 512))). + let pow2579 = pow100 + * pow2578; // pow(trace_generator, (safe_div((safe_mult(999, global_values.trace_length)), 1024))). + let pow2580 = pow100 + * pow2579; // pow(trace_generator, (safe_div((safe_mult(125, global_values.trace_length)), 128))). + let pow2581 = pow100 + * pow2580; // pow(trace_generator, (safe_div((safe_mult(1001, global_values.trace_length)), 1024))). + let pow2582 = pow100 + * pow2581; // pow(trace_generator, (safe_div((safe_mult(501, global_values.trace_length)), 512))). + let pow2583 = pow100 + * pow2582; // pow(trace_generator, (safe_div((safe_mult(1003, global_values.trace_length)), 1024))). + let pow2584 = pow100 + * pow2583; // pow(trace_generator, (safe_div((safe_mult(251, global_values.trace_length)), 256))). + let pow2585 = pow100 + * pow2584; // pow(trace_generator, (safe_div((safe_mult(1005, global_values.trace_length)), 1024))). + let pow2586 = pow100 + * pow2585; // pow(trace_generator, (safe_div((safe_mult(503, global_values.trace_length)), 512))). + let pow2587 = pow100 + * pow2586; // pow(trace_generator, (safe_div((safe_mult(1007, global_values.trace_length)), 1024))). + let pow2588 = pow100 + * pow2587; // pow(trace_generator, (safe_div((safe_mult(63, global_values.trace_length)), 64))). + let pow2589 = pow32 + * pow2588; // pow(trace_generator, (safe_div((safe_mult(64513, global_values.trace_length)), 65536))). + let pow2590 = pow32 + * pow2589; // pow(trace_generator, (safe_div((safe_mult(32257, global_values.trace_length)), 32768))). + let pow2591 = pow32 + * pow2590; // pow(trace_generator, (safe_div((safe_mult(64515, global_values.trace_length)), 65536))). + let pow2592 = pow32 + * pow2591; // pow(trace_generator, (safe_div((safe_mult(16129, global_values.trace_length)), 16384))). + let pow2593 = pow32 + * pow2592; // pow(trace_generator, (safe_div((safe_mult(64517, global_values.trace_length)), 65536))). + let pow2594 = pow32 + * pow2593; // pow(trace_generator, (safe_div((safe_mult(32259, global_values.trace_length)), 32768))). + let pow2595 = pow32 + * pow2594; // pow(trace_generator, (safe_div((safe_mult(64519, global_values.trace_length)), 65536))). + let pow2596 = pow32 + * pow2595; // pow(trace_generator, (safe_div((safe_mult(8065, global_values.trace_length)), 8192))). + let pow2597 = pow32 + * pow2596; // pow(trace_generator, (safe_div((safe_mult(64521, global_values.trace_length)), 65536))). + let pow2598 = pow32 + * pow2597; // pow(trace_generator, (safe_div((safe_mult(32261, global_values.trace_length)), 32768))). + let pow2599 = pow32 + * pow2598; // pow(trace_generator, (safe_div((safe_mult(64523, global_values.trace_length)), 65536))). + let pow2600 = pow32 + * pow2599; // pow(trace_generator, (safe_div((safe_mult(16131, global_values.trace_length)), 16384))). + let pow2601 = pow32 + * pow2600; // pow(trace_generator, (safe_div((safe_mult(64525, global_values.trace_length)), 65536))). + let pow2602 = pow32 + * pow2601; // pow(trace_generator, (safe_div((safe_mult(32263, global_values.trace_length)), 32768))). + let pow2603 = pow32 + * pow2602; // pow(trace_generator, (safe_div((safe_mult(64527, global_values.trace_length)), 65536))). + let pow2604 = pow32 + * pow2603; // pow(trace_generator, (safe_div((safe_mult(4033, global_values.trace_length)), 4096))). + let pow2605 = pow32 + * pow2604; // pow(trace_generator, (safe_div((safe_mult(64529, global_values.trace_length)), 65536))). + let pow2606 = pow32 + * pow2605; // pow(trace_generator, (safe_div((safe_mult(32265, global_values.trace_length)), 32768))). + let pow2607 = pow32 + * pow2606; // pow(trace_generator, (safe_div((safe_mult(64531, global_values.trace_length)), 65536))). + let pow2608 = pow32 + * pow2607; // pow(trace_generator, (safe_div((safe_mult(16133, global_values.trace_length)), 16384))). + let pow2609 = pow32 + * pow2608; // pow(trace_generator, (safe_div((safe_mult(64533, global_values.trace_length)), 65536))). + let pow2610 = pow32 + * pow2609; // pow(trace_generator, (safe_div((safe_mult(32267, global_values.trace_length)), 32768))). + let pow2611 = pow32 + * pow2610; // pow(trace_generator, (safe_div((safe_mult(64535, global_values.trace_length)), 65536))). + let pow2612 = pow32 + * pow2611; // pow(trace_generator, (safe_div((safe_mult(8067, global_values.trace_length)), 8192))). + let pow2613 = pow32 + * pow2612; // pow(trace_generator, (safe_div((safe_mult(64537, global_values.trace_length)), 65536))). + let pow2614 = pow32 + * pow2613; // pow(trace_generator, (safe_div((safe_mult(32269, global_values.trace_length)), 32768))). + let pow2615 = pow32 + * pow2614; // pow(trace_generator, (safe_div((safe_mult(64539, global_values.trace_length)), 65536))). + let pow2616 = pow32 + * pow2615; // pow(trace_generator, (safe_div((safe_mult(16135, global_values.trace_length)), 16384))). + let pow2617 = pow32 + * pow2616; // pow(trace_generator, (safe_div((safe_mult(64541, global_values.trace_length)), 65536))). + let pow2618 = pow41 + * pow2617; // pow(trace_generator, (safe_div((safe_mult(2017, global_values.trace_length)), 2048))). + let pow2619 = pow32 + * pow2618; // pow(trace_generator, (safe_div((safe_mult(64545, global_values.trace_length)), 65536))). + let pow2620 = pow32 + * pow2619; // pow(trace_generator, (safe_div((safe_mult(32273, global_values.trace_length)), 32768))). + let pow2621 = pow32 + * pow2620; // pow(trace_generator, (safe_div((safe_mult(64547, global_values.trace_length)), 65536))). + let pow2622 = pow32 + * pow2621; // pow(trace_generator, (safe_div((safe_mult(16137, global_values.trace_length)), 16384))). + let pow2623 = pow32 + * pow2622; // pow(trace_generator, (safe_div((safe_mult(64549, global_values.trace_length)), 65536))). + let pow2624 = pow32 + * pow2623; // pow(trace_generator, (safe_div((safe_mult(32275, global_values.trace_length)), 32768))). + let pow2625 = pow32 + * pow2624; // pow(trace_generator, (safe_div((safe_mult(64551, global_values.trace_length)), 65536))). + let pow2626 = pow32 + * pow2625; // pow(trace_generator, (safe_div((safe_mult(8069, global_values.trace_length)), 8192))). + let pow2627 = pow32 + * pow2626; // pow(trace_generator, (safe_div((safe_mult(64553, global_values.trace_length)), 65536))). + let pow2628 = pow32 + * pow2627; // pow(trace_generator, (safe_div((safe_mult(32277, global_values.trace_length)), 32768))). + let pow2629 = pow32 + * pow2628; // pow(trace_generator, (safe_div((safe_mult(64555, global_values.trace_length)), 65536))). + let pow2630 = pow32 + * pow2629; // pow(trace_generator, (safe_div((safe_mult(16139, global_values.trace_length)), 16384))). + let pow2631 = pow32 + * pow2630; // pow(trace_generator, (safe_div((safe_mult(64557, global_values.trace_length)), 65536))). + let pow2632 = pow32 + * pow2631; // pow(trace_generator, (safe_div((safe_mult(32279, global_values.trace_length)), 32768))). + let pow2633 = pow32 + * pow2632; // pow(trace_generator, (safe_div((safe_mult(64559, global_values.trace_length)), 65536))). + let pow2634 = pow32 + * pow2633; // pow(trace_generator, (safe_div((safe_mult(4035, global_values.trace_length)), 4096))). + let pow2635 = pow32 + * pow2634; // pow(trace_generator, (safe_div((safe_mult(64561, global_values.trace_length)), 65536))). + let pow2636 = pow32 + * pow2635; // pow(trace_generator, (safe_div((safe_mult(32281, global_values.trace_length)), 32768))). + let pow2637 = pow32 + * pow2636; // pow(trace_generator, (safe_div((safe_mult(64563, global_values.trace_length)), 65536))). + let pow2638 = pow32 + * pow2637; // pow(trace_generator, (safe_div((safe_mult(16141, global_values.trace_length)), 16384))). + let pow2639 = pow32 + * pow2638; // pow(trace_generator, (safe_div((safe_mult(64565, global_values.trace_length)), 65536))). + let pow2640 = pow32 + * pow2639; // pow(trace_generator, (safe_div((safe_mult(32283, global_values.trace_length)), 32768))). + let pow2641 = pow32 + * pow2640; // pow(trace_generator, (safe_div((safe_mult(64567, global_values.trace_length)), 65536))). + let pow2642 = pow32 + * pow2641; // pow(trace_generator, (safe_div((safe_mult(8071, global_values.trace_length)), 8192))). + let pow2643 = pow32 + * pow2642; // pow(trace_generator, (safe_div((safe_mult(64569, global_values.trace_length)), 65536))). + let pow2644 = pow32 + * pow2643; // pow(trace_generator, (safe_div((safe_mult(32285, global_values.trace_length)), 32768))). + let pow2645 = pow32 + * pow2644; // pow(trace_generator, (safe_div((safe_mult(64571, global_values.trace_length)), 65536))). + let pow2646 = pow32 + * pow2645; // pow(trace_generator, (safe_div((safe_mult(16143, global_values.trace_length)), 16384))). + let pow2647 = pow32 + * pow2646; // pow(trace_generator, (safe_div((safe_mult(64573, global_values.trace_length)), 65536))). + let pow2648 = pow41 + * pow2647; // pow(trace_generator, (safe_div((safe_mult(1009, global_values.trace_length)), 1024))). + let pow2649 = pow32 + * pow2648; // pow(trace_generator, (safe_div((safe_mult(64577, global_values.trace_length)), 65536))). + let pow2650 = pow32 + * pow2649; // pow(trace_generator, (safe_div((safe_mult(32289, global_values.trace_length)), 32768))). + let pow2651 = pow32 + * pow2650; // pow(trace_generator, (safe_div((safe_mult(64579, global_values.trace_length)), 65536))). + let pow2652 = pow32 + * pow2651; // pow(trace_generator, (safe_div((safe_mult(16145, global_values.trace_length)), 16384))). + let pow2653 = pow32 + * pow2652; // pow(trace_generator, (safe_div((safe_mult(64581, global_values.trace_length)), 65536))). + let pow2654 = pow32 + * pow2653; // pow(trace_generator, (safe_div((safe_mult(32291, global_values.trace_length)), 32768))). + let pow2655 = pow32 + * pow2654; // pow(trace_generator, (safe_div((safe_mult(64583, global_values.trace_length)), 65536))). + let pow2656 = pow32 + * pow2655; // pow(trace_generator, (safe_div((safe_mult(8073, global_values.trace_length)), 8192))). + let pow2657 = pow32 + * pow2656; // pow(trace_generator, (safe_div((safe_mult(64585, global_values.trace_length)), 65536))). + let pow2658 = pow32 + * pow2657; // pow(trace_generator, (safe_div((safe_mult(32293, global_values.trace_length)), 32768))). + let pow2659 = pow32 + * pow2658; // pow(trace_generator, (safe_div((safe_mult(64587, global_values.trace_length)), 65536))). + let pow2660 = pow32 + * pow2659; // pow(trace_generator, (safe_div((safe_mult(16147, global_values.trace_length)), 16384))). + let pow2661 = pow32 + * pow2660; // pow(trace_generator, (safe_div((safe_mult(64589, global_values.trace_length)), 65536))). + let pow2662 = pow32 + * pow2661; // pow(trace_generator, (safe_div((safe_mult(32295, global_values.trace_length)), 32768))). + let pow2663 = pow32 + * pow2662; // pow(trace_generator, (safe_div((safe_mult(64591, global_values.trace_length)), 65536))). + let pow2664 = pow32 + * pow2663; // pow(trace_generator, (safe_div((safe_mult(4037, global_values.trace_length)), 4096))). + let pow2665 = pow32 + * pow2664; // pow(trace_generator, (safe_div((safe_mult(64593, global_values.trace_length)), 65536))). + let pow2666 = pow32 + * pow2665; // pow(trace_generator, (safe_div((safe_mult(32297, global_values.trace_length)), 32768))). + let pow2667 = pow32 + * pow2666; // pow(trace_generator, (safe_div((safe_mult(64595, global_values.trace_length)), 65536))). + let pow2668 = pow32 + * pow2667; // pow(trace_generator, (safe_div((safe_mult(16149, global_values.trace_length)), 16384))). + let pow2669 = pow32 + * pow2668; // pow(trace_generator, (safe_div((safe_mult(64597, global_values.trace_length)), 65536))). + let pow2670 = pow32 + * pow2669; // pow(trace_generator, (safe_div((safe_mult(32299, global_values.trace_length)), 32768))). + let pow2671 = pow32 + * pow2670; // pow(trace_generator, (safe_div((safe_mult(64599, global_values.trace_length)), 65536))). + let pow2672 = pow32 + * pow2671; // pow(trace_generator, (safe_div((safe_mult(8075, global_values.trace_length)), 8192))). + let pow2673 = pow32 + * pow2672; // pow(trace_generator, (safe_div((safe_mult(64601, global_values.trace_length)), 65536))). + let pow2674 = pow32 + * pow2673; // pow(trace_generator, (safe_div((safe_mult(32301, global_values.trace_length)), 32768))). + let pow2675 = pow32 + * pow2674; // pow(trace_generator, (safe_div((safe_mult(64603, global_values.trace_length)), 65536))). + let pow2676 = pow32 + * pow2675; // pow(trace_generator, (safe_div((safe_mult(16151, global_values.trace_length)), 16384))). + let pow2677 = pow32 + * pow2676; // pow(trace_generator, (safe_div((safe_mult(64605, global_values.trace_length)), 65536))). + let pow2678 = pow41 + * pow2677; // pow(trace_generator, (safe_div((safe_mult(2019, global_values.trace_length)), 2048))). + let pow2679 = pow32 + * pow2678; // pow(trace_generator, (safe_div((safe_mult(64609, global_values.trace_length)), 65536))). + let pow2680 = pow32 + * pow2679; // pow(trace_generator, (safe_div((safe_mult(32305, global_values.trace_length)), 32768))). + let pow2681 = pow32 + * pow2680; // pow(trace_generator, (safe_div((safe_mult(64611, global_values.trace_length)), 65536))). + let pow2682 = pow32 + * pow2681; // pow(trace_generator, (safe_div((safe_mult(16153, global_values.trace_length)), 16384))). + let pow2683 = pow32 + * pow2682; // pow(trace_generator, (safe_div((safe_mult(64613, global_values.trace_length)), 65536))). + let pow2684 = pow32 + * pow2683; // pow(trace_generator, (safe_div((safe_mult(32307, global_values.trace_length)), 32768))). + let pow2685 = pow32 + * pow2684; // pow(trace_generator, (safe_div((safe_mult(64615, global_values.trace_length)), 65536))). + let pow2686 = pow32 + * pow2685; // pow(trace_generator, (safe_div((safe_mult(8077, global_values.trace_length)), 8192))). + let pow2687 = pow32 + * pow2686; // pow(trace_generator, (safe_div((safe_mult(64617, global_values.trace_length)), 65536))). + let pow2688 = pow32 + * pow2687; // pow(trace_generator, (safe_div((safe_mult(32309, global_values.trace_length)), 32768))). + let pow2689 = pow32 + * pow2688; // pow(trace_generator, (safe_div((safe_mult(64619, global_values.trace_length)), 65536))). + let pow2690 = pow32 + * pow2689; // pow(trace_generator, (safe_div((safe_mult(16155, global_values.trace_length)), 16384))). + let pow2691 = pow32 + * pow2690; // pow(trace_generator, (safe_div((safe_mult(64621, global_values.trace_length)), 65536))). + let pow2692 = pow32 + * pow2691; // pow(trace_generator, (safe_div((safe_mult(32311, global_values.trace_length)), 32768))). + let pow2693 = pow32 + * pow2692; // pow(trace_generator, (safe_div((safe_mult(64623, global_values.trace_length)), 65536))). + let pow2694 = pow32 + * pow2693; // pow(trace_generator, (safe_div((safe_mult(4039, global_values.trace_length)), 4096))). + let pow2695 = pow32 + * pow2694; // pow(trace_generator, (safe_div((safe_mult(64625, global_values.trace_length)), 65536))). + let pow2696 = pow32 + * pow2695; // pow(trace_generator, (safe_div((safe_mult(32313, global_values.trace_length)), 32768))). + let pow2697 = pow32 + * pow2696; // pow(trace_generator, (safe_div((safe_mult(64627, global_values.trace_length)), 65536))). + let pow2698 = pow32 + * pow2697; // pow(trace_generator, (safe_div((safe_mult(16157, global_values.trace_length)), 16384))). + let pow2699 = pow32 + * pow2698; // pow(trace_generator, (safe_div((safe_mult(64629, global_values.trace_length)), 65536))). + let pow2700 = pow32 + * pow2699; // pow(trace_generator, (safe_div((safe_mult(32315, global_values.trace_length)), 32768))). + let pow2701 = pow32 + * pow2700; // pow(trace_generator, (safe_div((safe_mult(64631, global_values.trace_length)), 65536))). + let pow2702 = pow32 + * pow2701; // pow(trace_generator, (safe_div((safe_mult(8079, global_values.trace_length)), 8192))). + let pow2703 = pow32 + * pow2702; // pow(trace_generator, (safe_div((safe_mult(64633, global_values.trace_length)), 65536))). + let pow2704 = pow32 + * pow2703; // pow(trace_generator, (safe_div((safe_mult(32317, global_values.trace_length)), 32768))). + let pow2705 = pow32 + * pow2704; // pow(trace_generator, (safe_div((safe_mult(64635, global_values.trace_length)), 65536))). + let pow2706 = pow32 + * pow2705; // pow(trace_generator, (safe_div((safe_mult(16159, global_values.trace_length)), 16384))). + let pow2707 = pow32 + * pow2706; // pow(trace_generator, (safe_div((safe_mult(64637, global_values.trace_length)), 65536))). + let pow2708 = pow41 + * pow2707; // pow(trace_generator, (safe_div((safe_mult(505, global_values.trace_length)), 512))). + let pow2709 = pow32 + * pow2708; // pow(trace_generator, (safe_div((safe_mult(64641, global_values.trace_length)), 65536))). + let pow2710 = pow32 + * pow2709; // pow(trace_generator, (safe_div((safe_mult(32321, global_values.trace_length)), 32768))). + let pow2711 = pow32 + * pow2710; // pow(trace_generator, (safe_div((safe_mult(64643, global_values.trace_length)), 65536))). + let pow2712 = pow32 + * pow2711; // pow(trace_generator, (safe_div((safe_mult(16161, global_values.trace_length)), 16384))). + let pow2713 = pow32 + * pow2712; // pow(trace_generator, (safe_div((safe_mult(64645, global_values.trace_length)), 65536))). + let pow2714 = pow32 + * pow2713; // pow(trace_generator, (safe_div((safe_mult(32323, global_values.trace_length)), 32768))). + let pow2715 = pow32 + * pow2714; // pow(trace_generator, (safe_div((safe_mult(64647, global_values.trace_length)), 65536))). + let pow2716 = pow32 + * pow2715; // pow(trace_generator, (safe_div((safe_mult(8081, global_values.trace_length)), 8192))). + let pow2717 = pow32 + * pow2716; // pow(trace_generator, (safe_div((safe_mult(64649, global_values.trace_length)), 65536))). + let pow2718 = pow32 + * pow2717; // pow(trace_generator, (safe_div((safe_mult(32325, global_values.trace_length)), 32768))). + let pow2719 = pow32 + * pow2718; // pow(trace_generator, (safe_div((safe_mult(64651, global_values.trace_length)), 65536))). + let pow2720 = pow32 + * pow2719; // pow(trace_generator, (safe_div((safe_mult(16163, global_values.trace_length)), 16384))). + let pow2721 = pow32 + * pow2720; // pow(trace_generator, (safe_div((safe_mult(64653, global_values.trace_length)), 65536))). + let pow2722 = pow32 + * pow2721; // pow(trace_generator, (safe_div((safe_mult(32327, global_values.trace_length)), 32768))). + let pow2723 = pow32 + * pow2722; // pow(trace_generator, (safe_div((safe_mult(64655, global_values.trace_length)), 65536))). + let pow2724 = pow32 + * pow2723; // pow(trace_generator, (safe_div((safe_mult(4041, global_values.trace_length)), 4096))). + let pow2725 = pow32 + * pow2724; // pow(trace_generator, (safe_div((safe_mult(64657, global_values.trace_length)), 65536))). + let pow2726 = pow32 + * pow2725; // pow(trace_generator, (safe_div((safe_mult(32329, global_values.trace_length)), 32768))). + let pow2727 = pow32 + * pow2726; // pow(trace_generator, (safe_div((safe_mult(64659, global_values.trace_length)), 65536))). + let pow2728 = pow32 + * pow2727; // pow(trace_generator, (safe_div((safe_mult(16165, global_values.trace_length)), 16384))). + let pow2729 = pow32 + * pow2728; // pow(trace_generator, (safe_div((safe_mult(64661, global_values.trace_length)), 65536))). + let pow2730 = pow32 + * pow2729; // pow(trace_generator, (safe_div((safe_mult(32331, global_values.trace_length)), 32768))). + let pow2731 = pow32 + * pow2730; // pow(trace_generator, (safe_div((safe_mult(64663, global_values.trace_length)), 65536))). + let pow2732 = pow32 + * pow2731; // pow(trace_generator, (safe_div((safe_mult(8083, global_values.trace_length)), 8192))). + let pow2733 = pow32 + * pow2732; // pow(trace_generator, (safe_div((safe_mult(64665, global_values.trace_length)), 65536))). + let pow2734 = pow32 + * pow2733; // pow(trace_generator, (safe_div((safe_mult(32333, global_values.trace_length)), 32768))). + let pow2735 = pow32 + * pow2734; // pow(trace_generator, (safe_div((safe_mult(64667, global_values.trace_length)), 65536))). + let pow2736 = pow32 + * pow2735; // pow(trace_generator, (safe_div((safe_mult(16167, global_values.trace_length)), 16384))). + let pow2737 = pow32 + * pow2736; // pow(trace_generator, (safe_div((safe_mult(64669, global_values.trace_length)), 65536))). + let pow2738 = pow41 + * pow2737; // pow(trace_generator, (safe_div((safe_mult(2021, global_values.trace_length)), 2048))). + let pow2739 = pow32 + * pow2738; // pow(trace_generator, (safe_div((safe_mult(64673, global_values.trace_length)), 65536))). + let pow2740 = pow32 + * pow2739; // pow(trace_generator, (safe_div((safe_mult(32337, global_values.trace_length)), 32768))). + let pow2741 = pow32 + * pow2740; // pow(trace_generator, (safe_div((safe_mult(64675, global_values.trace_length)), 65536))). + let pow2742 = pow32 + * pow2741; // pow(trace_generator, (safe_div((safe_mult(16169, global_values.trace_length)), 16384))). + let pow2743 = pow32 + * pow2742; // pow(trace_generator, (safe_div((safe_mult(64677, global_values.trace_length)), 65536))). + let pow2744 = pow32 + * pow2743; // pow(trace_generator, (safe_div((safe_mult(32339, global_values.trace_length)), 32768))). + let pow2745 = pow32 + * pow2744; // pow(trace_generator, (safe_div((safe_mult(64679, global_values.trace_length)), 65536))). + let pow2746 = pow32 + * pow2745; // pow(trace_generator, (safe_div((safe_mult(8085, global_values.trace_length)), 8192))). + let pow2747 = pow32 + * pow2746; // pow(trace_generator, (safe_div((safe_mult(64681, global_values.trace_length)), 65536))). + let pow2748 = pow32 + * pow2747; // pow(trace_generator, (safe_div((safe_mult(32341, global_values.trace_length)), 32768))). + let pow2749 = pow32 + * pow2748; // pow(trace_generator, (safe_div((safe_mult(64683, global_values.trace_length)), 65536))). + let pow2750 = pow32 + * pow2749; // pow(trace_generator, (safe_div((safe_mult(16171, global_values.trace_length)), 16384))). + let pow2751 = pow32 + * pow2750; // pow(trace_generator, (safe_div((safe_mult(64685, global_values.trace_length)), 65536))). + let pow2752 = pow32 + * pow2751; // pow(trace_generator, (safe_div((safe_mult(32343, global_values.trace_length)), 32768))). + let pow2753 = pow32 + * pow2752; // pow(trace_generator, (safe_div((safe_mult(64687, global_values.trace_length)), 65536))). + let pow2754 = pow32 + * pow2753; // pow(trace_generator, (safe_div((safe_mult(4043, global_values.trace_length)), 4096))). + let pow2755 = pow32 + * pow2754; // pow(trace_generator, (safe_div((safe_mult(64689, global_values.trace_length)), 65536))). + let pow2756 = pow32 + * pow2755; // pow(trace_generator, (safe_div((safe_mult(32345, global_values.trace_length)), 32768))). + let pow2757 = pow32 + * pow2756; // pow(trace_generator, (safe_div((safe_mult(64691, global_values.trace_length)), 65536))). + let pow2758 = pow32 + * pow2757; // pow(trace_generator, (safe_div((safe_mult(16173, global_values.trace_length)), 16384))). + let pow2759 = pow32 + * pow2758; // pow(trace_generator, (safe_div((safe_mult(64693, global_values.trace_length)), 65536))). + let pow2760 = pow32 + * pow2759; // pow(trace_generator, (safe_div((safe_mult(32347, global_values.trace_length)), 32768))). + let pow2761 = pow32 + * pow2760; // pow(trace_generator, (safe_div((safe_mult(64695, global_values.trace_length)), 65536))). + let pow2762 = pow32 + * pow2761; // pow(trace_generator, (safe_div((safe_mult(8087, global_values.trace_length)), 8192))). + let pow2763 = pow32 + * pow2762; // pow(trace_generator, (safe_div((safe_mult(64697, global_values.trace_length)), 65536))). + let pow2764 = pow32 + * pow2763; // pow(trace_generator, (safe_div((safe_mult(32349, global_values.trace_length)), 32768))). + let pow2765 = pow32 + * pow2764; // pow(trace_generator, (safe_div((safe_mult(64699, global_values.trace_length)), 65536))). + let pow2766 = pow32 + * pow2765; // pow(trace_generator, (safe_div((safe_mult(16175, global_values.trace_length)), 16384))). + let pow2767 = pow32 + * pow2766; // pow(trace_generator, (safe_div((safe_mult(64701, global_values.trace_length)), 65536))). + let pow2768 = pow41 + * pow2767; // pow(trace_generator, (safe_div((safe_mult(1011, global_values.trace_length)), 1024))). + let pow2769 = pow32 + * pow2768; // pow(trace_generator, (safe_div((safe_mult(64705, global_values.trace_length)), 65536))). + let pow2770 = pow32 + * pow2769; // pow(trace_generator, (safe_div((safe_mult(32353, global_values.trace_length)), 32768))). + let pow2771 = pow32 + * pow2770; // pow(trace_generator, (safe_div((safe_mult(64707, global_values.trace_length)), 65536))). + let pow2772 = pow32 + * pow2771; // pow(trace_generator, (safe_div((safe_mult(16177, global_values.trace_length)), 16384))). + let pow2773 = pow32 + * pow2772; // pow(trace_generator, (safe_div((safe_mult(64709, global_values.trace_length)), 65536))). + let pow2774 = pow32 + * pow2773; // pow(trace_generator, (safe_div((safe_mult(32355, global_values.trace_length)), 32768))). + let pow2775 = pow32 + * pow2774; // pow(trace_generator, (safe_div((safe_mult(64711, global_values.trace_length)), 65536))). + let pow2776 = pow32 + * pow2775; // pow(trace_generator, (safe_div((safe_mult(8089, global_values.trace_length)), 8192))). + let pow2777 = pow32 + * pow2776; // pow(trace_generator, (safe_div((safe_mult(64713, global_values.trace_length)), 65536))). + let pow2778 = pow32 + * pow2777; // pow(trace_generator, (safe_div((safe_mult(32357, global_values.trace_length)), 32768))). + let pow2779 = pow32 + * pow2778; // pow(trace_generator, (safe_div((safe_mult(64715, global_values.trace_length)), 65536))). + let pow2780 = pow32 + * pow2779; // pow(trace_generator, (safe_div((safe_mult(16179, global_values.trace_length)), 16384))). + let pow2781 = pow32 + * pow2780; // pow(trace_generator, (safe_div((safe_mult(64717, global_values.trace_length)), 65536))). + let pow2782 = pow32 + * pow2781; // pow(trace_generator, (safe_div((safe_mult(32359, global_values.trace_length)), 32768))). + let pow2783 = pow32 + * pow2782; // pow(trace_generator, (safe_div((safe_mult(64719, global_values.trace_length)), 65536))). + let pow2784 = pow32 + * pow2783; // pow(trace_generator, (safe_div((safe_mult(4045, global_values.trace_length)), 4096))). + let pow2785 = pow32 + * pow2784; // pow(trace_generator, (safe_div((safe_mult(64721, global_values.trace_length)), 65536))). + let pow2786 = pow32 + * pow2785; // pow(trace_generator, (safe_div((safe_mult(32361, global_values.trace_length)), 32768))). + let pow2787 = pow32 + * pow2786; // pow(trace_generator, (safe_div((safe_mult(64723, global_values.trace_length)), 65536))). + let pow2788 = pow32 + * pow2787; // pow(trace_generator, (safe_div((safe_mult(16181, global_values.trace_length)), 16384))). + let pow2789 = pow32 + * pow2788; // pow(trace_generator, (safe_div((safe_mult(64725, global_values.trace_length)), 65536))). + let pow2790 = pow32 + * pow2789; // pow(trace_generator, (safe_div((safe_mult(32363, global_values.trace_length)), 32768))). + let pow2791 = pow32 + * pow2790; // pow(trace_generator, (safe_div((safe_mult(64727, global_values.trace_length)), 65536))). + let pow2792 = pow32 + * pow2791; // pow(trace_generator, (safe_div((safe_mult(8091, global_values.trace_length)), 8192))). + let pow2793 = pow32 + * pow2792; // pow(trace_generator, (safe_div((safe_mult(64729, global_values.trace_length)), 65536))). + let pow2794 = pow32 + * pow2793; // pow(trace_generator, (safe_div((safe_mult(32365, global_values.trace_length)), 32768))). + let pow2795 = pow32 + * pow2794; // pow(trace_generator, (safe_div((safe_mult(64731, global_values.trace_length)), 65536))). + let pow2796 = pow32 + * pow2795; // pow(trace_generator, (safe_div((safe_mult(16183, global_values.trace_length)), 16384))). + let pow2797 = pow32 + * pow2796; // pow(trace_generator, (safe_div((safe_mult(64733, global_values.trace_length)), 65536))). + let pow2798 = pow41 + * pow2797; // pow(trace_generator, (safe_div((safe_mult(2023, global_values.trace_length)), 2048))). + let pow2799 = pow32 + * pow2798; // pow(trace_generator, (safe_div((safe_mult(64737, global_values.trace_length)), 65536))). + let pow2800 = pow32 + * pow2799; // pow(trace_generator, (safe_div((safe_mult(32369, global_values.trace_length)), 32768))). + let pow2801 = pow32 + * pow2800; // pow(trace_generator, (safe_div((safe_mult(64739, global_values.trace_length)), 65536))). + let pow2802 = pow32 + * pow2801; // pow(trace_generator, (safe_div((safe_mult(16185, global_values.trace_length)), 16384))). + let pow2803 = pow32 + * pow2802; // pow(trace_generator, (safe_div((safe_mult(64741, global_values.trace_length)), 65536))). + let pow2804 = pow32 + * pow2803; // pow(trace_generator, (safe_div((safe_mult(32371, global_values.trace_length)), 32768))). + let pow2805 = pow32 + * pow2804; // pow(trace_generator, (safe_div((safe_mult(64743, global_values.trace_length)), 65536))). + let pow2806 = pow32 + * pow2805; // pow(trace_generator, (safe_div((safe_mult(8093, global_values.trace_length)), 8192))). + let pow2807 = pow32 + * pow2806; // pow(trace_generator, (safe_div((safe_mult(64745, global_values.trace_length)), 65536))). + let pow2808 = pow32 + * pow2807; // pow(trace_generator, (safe_div((safe_mult(32373, global_values.trace_length)), 32768))). + let pow2809 = pow32 + * pow2808; // pow(trace_generator, (safe_div((safe_mult(64747, global_values.trace_length)), 65536))). + let pow2810 = pow32 + * pow2809; // pow(trace_generator, (safe_div((safe_mult(16187, global_values.trace_length)), 16384))). + let pow2811 = pow32 + * pow2810; // pow(trace_generator, (safe_div((safe_mult(64749, global_values.trace_length)), 65536))). + let pow2812 = pow32 + * pow2811; // pow(trace_generator, (safe_div((safe_mult(32375, global_values.trace_length)), 32768))). + let pow2813 = pow32 + * pow2812; // pow(trace_generator, (safe_div((safe_mult(64751, global_values.trace_length)), 65536))). + let pow2814 = pow32 + * pow2813; // pow(trace_generator, (safe_div((safe_mult(4047, global_values.trace_length)), 4096))). + let pow2815 = pow32 + * pow2814; // pow(trace_generator, (safe_div((safe_mult(64753, global_values.trace_length)), 65536))). + let pow2816 = pow32 + * pow2815; // pow(trace_generator, (safe_div((safe_mult(32377, global_values.trace_length)), 32768))). + let pow2817 = pow32 + * pow2816; // pow(trace_generator, (safe_div((safe_mult(64755, global_values.trace_length)), 65536))). + let pow2818 = pow32 + * pow2817; // pow(trace_generator, (safe_div((safe_mult(16189, global_values.trace_length)), 16384))). + let pow2819 = pow32 + * pow2818; // pow(trace_generator, (safe_div((safe_mult(64757, global_values.trace_length)), 65536))). + let pow2820 = pow32 + * pow2819; // pow(trace_generator, (safe_div((safe_mult(32379, global_values.trace_length)), 32768))). + let pow2821 = pow32 + * pow2820; // pow(trace_generator, (safe_div((safe_mult(64759, global_values.trace_length)), 65536))). + let pow2822 = pow32 + * pow2821; // pow(trace_generator, (safe_div((safe_mult(8095, global_values.trace_length)), 8192))). + let pow2823 = pow32 + * pow2822; // pow(trace_generator, (safe_div((safe_mult(64761, global_values.trace_length)), 65536))). + let pow2824 = pow32 + * pow2823; // pow(trace_generator, (safe_div((safe_mult(32381, global_values.trace_length)), 32768))). + let pow2825 = pow32 + * pow2824; // pow(trace_generator, (safe_div((safe_mult(64763, global_values.trace_length)), 65536))). + let pow2826 = pow32 + * pow2825; // pow(trace_generator, (safe_div((safe_mult(16191, global_values.trace_length)), 16384))). + let pow2827 = pow32 + * pow2826; // pow(trace_generator, (safe_div((safe_mult(64765, global_values.trace_length)), 65536))). + let pow2828 = pow41 + * pow2827; // pow(trace_generator, (safe_div((safe_mult(253, global_values.trace_length)), 256))). + let pow2829 = pow32 + * pow2828; // pow(trace_generator, (safe_div((safe_mult(64769, global_values.trace_length)), 65536))). + let pow2830 = pow32 + * pow2829; // pow(trace_generator, (safe_div((safe_mult(32385, global_values.trace_length)), 32768))). + let pow2831 = pow32 + * pow2830; // pow(trace_generator, (safe_div((safe_mult(64771, global_values.trace_length)), 65536))). + let pow2832 = pow32 + * pow2831; // pow(trace_generator, (safe_div((safe_mult(16193, global_values.trace_length)), 16384))). + let pow2833 = pow32 + * pow2832; // pow(trace_generator, (safe_div((safe_mult(64773, global_values.trace_length)), 65536))). + let pow2834 = pow32 + * pow2833; // pow(trace_generator, (safe_div((safe_mult(32387, global_values.trace_length)), 32768))). + let pow2835 = pow32 + * pow2834; // pow(trace_generator, (safe_div((safe_mult(64775, global_values.trace_length)), 65536))). + let pow2836 = pow32 + * pow2835; // pow(trace_generator, (safe_div((safe_mult(8097, global_values.trace_length)), 8192))). + let pow2837 = pow32 + * pow2836; // pow(trace_generator, (safe_div((safe_mult(64777, global_values.trace_length)), 65536))). + let pow2838 = pow32 + * pow2837; // pow(trace_generator, (safe_div((safe_mult(32389, global_values.trace_length)), 32768))). + let pow2839 = pow32 + * pow2838; // pow(trace_generator, (safe_div((safe_mult(64779, global_values.trace_length)), 65536))). + let pow2840 = pow32 + * pow2839; // pow(trace_generator, (safe_div((safe_mult(16195, global_values.trace_length)), 16384))). + let pow2841 = pow32 + * pow2840; // pow(trace_generator, (safe_div((safe_mult(64781, global_values.trace_length)), 65536))). + let pow2842 = pow32 + * pow2841; // pow(trace_generator, (safe_div((safe_mult(32391, global_values.trace_length)), 32768))). + let pow2843 = pow32 + * pow2842; // pow(trace_generator, (safe_div((safe_mult(64783, global_values.trace_length)), 65536))). + let pow2844 = pow32 + * pow2843; // pow(trace_generator, (safe_div((safe_mult(4049, global_values.trace_length)), 4096))). + let pow2845 = pow32 + * pow2844; // pow(trace_generator, (safe_div((safe_mult(64785, global_values.trace_length)), 65536))). + let pow2846 = pow32 + * pow2845; // pow(trace_generator, (safe_div((safe_mult(32393, global_values.trace_length)), 32768))). + let pow2847 = pow32 + * pow2846; // pow(trace_generator, (safe_div((safe_mult(64787, global_values.trace_length)), 65536))). + let pow2848 = pow32 + * pow2847; // pow(trace_generator, (safe_div((safe_mult(16197, global_values.trace_length)), 16384))). + let pow2849 = pow32 + * pow2848; // pow(trace_generator, (safe_div((safe_mult(64789, global_values.trace_length)), 65536))). + let pow2850 = pow32 + * pow2849; // pow(trace_generator, (safe_div((safe_mult(32395, global_values.trace_length)), 32768))). + let pow2851 = pow32 + * pow2850; // pow(trace_generator, (safe_div((safe_mult(64791, global_values.trace_length)), 65536))). + let pow2852 = pow32 + * pow2851; // pow(trace_generator, (safe_div((safe_mult(8099, global_values.trace_length)), 8192))). + let pow2853 = pow32 + * pow2852; // pow(trace_generator, (safe_div((safe_mult(64793, global_values.trace_length)), 65536))). + let pow2854 = pow32 + * pow2853; // pow(trace_generator, (safe_div((safe_mult(32397, global_values.trace_length)), 32768))). + let pow2855 = pow32 + * pow2854; // pow(trace_generator, (safe_div((safe_mult(64795, global_values.trace_length)), 65536))). + let pow2856 = pow32 + * pow2855; // pow(trace_generator, (safe_div((safe_mult(16199, global_values.trace_length)), 16384))). + let pow2857 = pow32 + * pow2856; // pow(trace_generator, (safe_div((safe_mult(64797, global_values.trace_length)), 65536))). + let pow2858 = pow41 + * pow2857; // pow(trace_generator, (safe_div((safe_mult(2025, global_values.trace_length)), 2048))). + let pow2859 = pow32 + * pow2858; // pow(trace_generator, (safe_div((safe_mult(64801, global_values.trace_length)), 65536))). + let pow2860 = pow32 + * pow2859; // pow(trace_generator, (safe_div((safe_mult(32401, global_values.trace_length)), 32768))). + let pow2861 = pow32 + * pow2860; // pow(trace_generator, (safe_div((safe_mult(64803, global_values.trace_length)), 65536))). + let pow2862 = pow32 + * pow2861; // pow(trace_generator, (safe_div((safe_mult(16201, global_values.trace_length)), 16384))). + let pow2863 = pow32 + * pow2862; // pow(trace_generator, (safe_div((safe_mult(64805, global_values.trace_length)), 65536))). + let pow2864 = pow32 + * pow2863; // pow(trace_generator, (safe_div((safe_mult(32403, global_values.trace_length)), 32768))). + let pow2865 = pow32 + * pow2864; // pow(trace_generator, (safe_div((safe_mult(64807, global_values.trace_length)), 65536))). + let pow2866 = pow32 + * pow2865; // pow(trace_generator, (safe_div((safe_mult(8101, global_values.trace_length)), 8192))). + let pow2867 = pow32 + * pow2866; // pow(trace_generator, (safe_div((safe_mult(64809, global_values.trace_length)), 65536))). + let pow2868 = pow32 + * pow2867; // pow(trace_generator, (safe_div((safe_mult(32405, global_values.trace_length)), 32768))). + let pow2869 = pow32 + * pow2868; // pow(trace_generator, (safe_div((safe_mult(64811, global_values.trace_length)), 65536))). + let pow2870 = pow32 + * pow2869; // pow(trace_generator, (safe_div((safe_mult(16203, global_values.trace_length)), 16384))). + let pow2871 = pow32 + * pow2870; // pow(trace_generator, (safe_div((safe_mult(64813, global_values.trace_length)), 65536))). + let pow2872 = pow32 + * pow2871; // pow(trace_generator, (safe_div((safe_mult(32407, global_values.trace_length)), 32768))). + let pow2873 = pow32 + * pow2872; // pow(trace_generator, (safe_div((safe_mult(64815, global_values.trace_length)), 65536))). + let pow2874 = pow32 + * pow2873; // pow(trace_generator, (safe_div((safe_mult(4051, global_values.trace_length)), 4096))). + let pow2875 = pow32 + * pow2874; // pow(trace_generator, (safe_div((safe_mult(64817, global_values.trace_length)), 65536))). + let pow2876 = pow32 + * pow2875; // pow(trace_generator, (safe_div((safe_mult(32409, global_values.trace_length)), 32768))). + let pow2877 = pow32 + * pow2876; // pow(trace_generator, (safe_div((safe_mult(64819, global_values.trace_length)), 65536))). + let pow2878 = pow32 + * pow2877; // pow(trace_generator, (safe_div((safe_mult(16205, global_values.trace_length)), 16384))). + let pow2879 = pow32 + * pow2878; // pow(trace_generator, (safe_div((safe_mult(64821, global_values.trace_length)), 65536))). + let pow2880 = pow32 + * pow2879; // pow(trace_generator, (safe_div((safe_mult(32411, global_values.trace_length)), 32768))). + let pow2881 = pow32 + * pow2880; // pow(trace_generator, (safe_div((safe_mult(64823, global_values.trace_length)), 65536))). + let pow2882 = pow32 + * pow2881; // pow(trace_generator, (safe_div((safe_mult(8103, global_values.trace_length)), 8192))). + let pow2883 = pow32 + * pow2882; // pow(trace_generator, (safe_div((safe_mult(64825, global_values.trace_length)), 65536))). + let pow2884 = pow32 + * pow2883; // pow(trace_generator, (safe_div((safe_mult(32413, global_values.trace_length)), 32768))). + let pow2885 = pow32 + * pow2884; // pow(trace_generator, (safe_div((safe_mult(64827, global_values.trace_length)), 65536))). + let pow2886 = pow32 + * pow2885; // pow(trace_generator, (safe_div((safe_mult(16207, global_values.trace_length)), 16384))). + let pow2887 = pow32 + * pow2886; // pow(trace_generator, (safe_div((safe_mult(64829, global_values.trace_length)), 65536))). + let pow2888 = pow41 + * pow2887; // pow(trace_generator, (safe_div((safe_mult(1013, global_values.trace_length)), 1024))). + let pow2889 = pow32 + * pow2888; // pow(trace_generator, (safe_div((safe_mult(64833, global_values.trace_length)), 65536))). + let pow2890 = pow32 + * pow2889; // pow(trace_generator, (safe_div((safe_mult(32417, global_values.trace_length)), 32768))). + let pow2891 = pow32 + * pow2890; // pow(trace_generator, (safe_div((safe_mult(64835, global_values.trace_length)), 65536))). + let pow2892 = pow32 + * pow2891; // pow(trace_generator, (safe_div((safe_mult(16209, global_values.trace_length)), 16384))). + let pow2893 = pow32 + * pow2892; // pow(trace_generator, (safe_div((safe_mult(64837, global_values.trace_length)), 65536))). + let pow2894 = pow32 + * pow2893; // pow(trace_generator, (safe_div((safe_mult(32419, global_values.trace_length)), 32768))). + let pow2895 = pow32 + * pow2894; // pow(trace_generator, (safe_div((safe_mult(64839, global_values.trace_length)), 65536))). + let pow2896 = pow32 + * pow2895; // pow(trace_generator, (safe_div((safe_mult(8105, global_values.trace_length)), 8192))). + let pow2897 = pow32 + * pow2896; // pow(trace_generator, (safe_div((safe_mult(64841, global_values.trace_length)), 65536))). + let pow2898 = pow32 + * pow2897; // pow(trace_generator, (safe_div((safe_mult(32421, global_values.trace_length)), 32768))). + let pow2899 = pow32 + * pow2898; // pow(trace_generator, (safe_div((safe_mult(64843, global_values.trace_length)), 65536))). + let pow2900 = pow32 + * pow2899; // pow(trace_generator, (safe_div((safe_mult(16211, global_values.trace_length)), 16384))). + let pow2901 = pow32 + * pow2900; // pow(trace_generator, (safe_div((safe_mult(64845, global_values.trace_length)), 65536))). + let pow2902 = pow32 + * pow2901; // pow(trace_generator, (safe_div((safe_mult(32423, global_values.trace_length)), 32768))). + let pow2903 = pow32 + * pow2902; // pow(trace_generator, (safe_div((safe_mult(64847, global_values.trace_length)), 65536))). + let pow2904 = pow32 + * pow2903; // pow(trace_generator, (safe_div((safe_mult(4053, global_values.trace_length)), 4096))). + let pow2905 = pow32 + * pow2904; // pow(trace_generator, (safe_div((safe_mult(64849, global_values.trace_length)), 65536))). + let pow2906 = pow32 + * pow2905; // pow(trace_generator, (safe_div((safe_mult(32425, global_values.trace_length)), 32768))). + let pow2907 = pow32 + * pow2906; // pow(trace_generator, (safe_div((safe_mult(64851, global_values.trace_length)), 65536))). + let pow2908 = pow32 + * pow2907; // pow(trace_generator, (safe_div((safe_mult(16213, global_values.trace_length)), 16384))). + let pow2909 = pow32 + * pow2908; // pow(trace_generator, (safe_div((safe_mult(64853, global_values.trace_length)), 65536))). + let pow2910 = pow32 + * pow2909; // pow(trace_generator, (safe_div((safe_mult(32427, global_values.trace_length)), 32768))). + let pow2911 = pow32 + * pow2910; // pow(trace_generator, (safe_div((safe_mult(64855, global_values.trace_length)), 65536))). + let pow2912 = pow32 + * pow2911; // pow(trace_generator, (safe_div((safe_mult(8107, global_values.trace_length)), 8192))). + let pow2913 = pow32 + * pow2912; // pow(trace_generator, (safe_div((safe_mult(64857, global_values.trace_length)), 65536))). + let pow2914 = pow32 + * pow2913; // pow(trace_generator, (safe_div((safe_mult(32429, global_values.trace_length)), 32768))). + let pow2915 = pow32 + * pow2914; // pow(trace_generator, (safe_div((safe_mult(64859, global_values.trace_length)), 65536))). + let pow2916 = pow32 + * pow2915; // pow(trace_generator, (safe_div((safe_mult(16215, global_values.trace_length)), 16384))). + let pow2917 = pow32 + * pow2916; // pow(trace_generator, (safe_div((safe_mult(64861, global_values.trace_length)), 65536))). + let pow2918 = pow41 + * pow2917; // pow(trace_generator, (safe_div((safe_mult(2027, global_values.trace_length)), 2048))). + let pow2919 = pow32 + * pow2918; // pow(trace_generator, (safe_div((safe_mult(64865, global_values.trace_length)), 65536))). + let pow2920 = pow32 + * pow2919; // pow(trace_generator, (safe_div((safe_mult(32433, global_values.trace_length)), 32768))). + let pow2921 = pow32 + * pow2920; // pow(trace_generator, (safe_div((safe_mult(64867, global_values.trace_length)), 65536))). + let pow2922 = pow32 + * pow2921; // pow(trace_generator, (safe_div((safe_mult(16217, global_values.trace_length)), 16384))). + let pow2923 = pow32 + * pow2922; // pow(trace_generator, (safe_div((safe_mult(64869, global_values.trace_length)), 65536))). + let pow2924 = pow32 + * pow2923; // pow(trace_generator, (safe_div((safe_mult(32435, global_values.trace_length)), 32768))). + let pow2925 = pow32 + * pow2924; // pow(trace_generator, (safe_div((safe_mult(64871, global_values.trace_length)), 65536))). + let pow2926 = pow32 + * pow2925; // pow(trace_generator, (safe_div((safe_mult(8109, global_values.trace_length)), 8192))). + let pow2927 = pow32 + * pow2926; // pow(trace_generator, (safe_div((safe_mult(64873, global_values.trace_length)), 65536))). + let pow2928 = pow32 + * pow2927; // pow(trace_generator, (safe_div((safe_mult(32437, global_values.trace_length)), 32768))). + let pow2929 = pow32 + * pow2928; // pow(trace_generator, (safe_div((safe_mult(64875, global_values.trace_length)), 65536))). + let pow2930 = pow32 + * pow2929; // pow(trace_generator, (safe_div((safe_mult(16219, global_values.trace_length)), 16384))). + let pow2931 = pow32 + * pow2930; // pow(trace_generator, (safe_div((safe_mult(64877, global_values.trace_length)), 65536))). + let pow2932 = pow32 + * pow2931; // pow(trace_generator, (safe_div((safe_mult(32439, global_values.trace_length)), 32768))). + let pow2933 = pow32 + * pow2932; // pow(trace_generator, (safe_div((safe_mult(64879, global_values.trace_length)), 65536))). + let pow2934 = pow32 + * pow2933; // pow(trace_generator, (safe_div((safe_mult(4055, global_values.trace_length)), 4096))). + let pow2935 = pow32 + * pow2934; // pow(trace_generator, (safe_div((safe_mult(64881, global_values.trace_length)), 65536))). + let pow2936 = pow32 + * pow2935; // pow(trace_generator, (safe_div((safe_mult(32441, global_values.trace_length)), 32768))). + let pow2937 = pow32 + * pow2936; // pow(trace_generator, (safe_div((safe_mult(64883, global_values.trace_length)), 65536))). + let pow2938 = pow32 + * pow2937; // pow(trace_generator, (safe_div((safe_mult(16221, global_values.trace_length)), 16384))). + let pow2939 = pow32 + * pow2938; // pow(trace_generator, (safe_div((safe_mult(64885, global_values.trace_length)), 65536))). + let pow2940 = pow32 + * pow2939; // pow(trace_generator, (safe_div((safe_mult(32443, global_values.trace_length)), 32768))). + let pow2941 = pow32 + * pow2940; // pow(trace_generator, (safe_div((safe_mult(64887, global_values.trace_length)), 65536))). + let pow2942 = pow32 + * pow2941; // pow(trace_generator, (safe_div((safe_mult(8111, global_values.trace_length)), 8192))). + let pow2943 = pow32 + * pow2942; // pow(trace_generator, (safe_div((safe_mult(64889, global_values.trace_length)), 65536))). + let pow2944 = pow32 + * pow2943; // pow(trace_generator, (safe_div((safe_mult(32445, global_values.trace_length)), 32768))). + let pow2945 = pow32 + * pow2944; // pow(trace_generator, (safe_div((safe_mult(64891, global_values.trace_length)), 65536))). + let pow2946 = pow32 + * pow2945; // pow(trace_generator, (safe_div((safe_mult(16223, global_values.trace_length)), 16384))). + let pow2947 = pow32 + * pow2946; // pow(trace_generator, (safe_div((safe_mult(64893, global_values.trace_length)), 65536))). + let pow2948 = pow41 + * pow2947; // pow(trace_generator, (safe_div((safe_mult(507, global_values.trace_length)), 512))). + let pow2949 = pow32 + * pow2948; // pow(trace_generator, (safe_div((safe_mult(64897, global_values.trace_length)), 65536))). + let pow2950 = pow32 + * pow2949; // pow(trace_generator, (safe_div((safe_mult(32449, global_values.trace_length)), 32768))). + let pow2951 = pow32 + * pow2950; // pow(trace_generator, (safe_div((safe_mult(64899, global_values.trace_length)), 65536))). + let pow2952 = pow32 + * pow2951; // pow(trace_generator, (safe_div((safe_mult(16225, global_values.trace_length)), 16384))). + let pow2953 = pow32 + * pow2952; // pow(trace_generator, (safe_div((safe_mult(64901, global_values.trace_length)), 65536))). + let pow2954 = pow32 + * pow2953; // pow(trace_generator, (safe_div((safe_mult(32451, global_values.trace_length)), 32768))). + let pow2955 = pow32 + * pow2954; // pow(trace_generator, (safe_div((safe_mult(64903, global_values.trace_length)), 65536))). + let pow2956 = pow32 + * pow2955; // pow(trace_generator, (safe_div((safe_mult(8113, global_values.trace_length)), 8192))). + let pow2957 = pow32 + * pow2956; // pow(trace_generator, (safe_div((safe_mult(64905, global_values.trace_length)), 65536))). + let pow2958 = pow32 + * pow2957; // pow(trace_generator, (safe_div((safe_mult(32453, global_values.trace_length)), 32768))). + let pow2959 = pow32 + * pow2958; // pow(trace_generator, (safe_div((safe_mult(64907, global_values.trace_length)), 65536))). + let pow2960 = pow32 + * pow2959; // pow(trace_generator, (safe_div((safe_mult(16227, global_values.trace_length)), 16384))). + let pow2961 = pow32 + * pow2960; // pow(trace_generator, (safe_div((safe_mult(64909, global_values.trace_length)), 65536))). + let pow2962 = pow32 + * pow2961; // pow(trace_generator, (safe_div((safe_mult(32455, global_values.trace_length)), 32768))). + let pow2963 = pow32 + * pow2962; // pow(trace_generator, (safe_div((safe_mult(64911, global_values.trace_length)), 65536))). + let pow2964 = pow32 + * pow2963; // pow(trace_generator, (safe_div((safe_mult(4057, global_values.trace_length)), 4096))). + let pow2965 = pow32 + * pow2964; // pow(trace_generator, (safe_div((safe_mult(64913, global_values.trace_length)), 65536))). + let pow2966 = pow32 + * pow2965; // pow(trace_generator, (safe_div((safe_mult(32457, global_values.trace_length)), 32768))). + let pow2967 = pow32 + * pow2966; // pow(trace_generator, (safe_div((safe_mult(64915, global_values.trace_length)), 65536))). + let pow2968 = pow32 + * pow2967; // pow(trace_generator, (safe_div((safe_mult(16229, global_values.trace_length)), 16384))). + let pow2969 = pow32 + * pow2968; // pow(trace_generator, (safe_div((safe_mult(64917, global_values.trace_length)), 65536))). + let pow2970 = pow32 + * pow2969; // pow(trace_generator, (safe_div((safe_mult(32459, global_values.trace_length)), 32768))). + let pow2971 = pow32 + * pow2970; // pow(trace_generator, (safe_div((safe_mult(64919, global_values.trace_length)), 65536))). + let pow2972 = pow32 + * pow2971; // pow(trace_generator, (safe_div((safe_mult(8115, global_values.trace_length)), 8192))). + let pow2973 = pow32 + * pow2972; // pow(trace_generator, (safe_div((safe_mult(64921, global_values.trace_length)), 65536))). + let pow2974 = pow32 + * pow2973; // pow(trace_generator, (safe_div((safe_mult(32461, global_values.trace_length)), 32768))). + let pow2975 = pow32 + * pow2974; // pow(trace_generator, (safe_div((safe_mult(64923, global_values.trace_length)), 65536))). + let pow2976 = pow32 + * pow2975; // pow(trace_generator, (safe_div((safe_mult(16231, global_values.trace_length)), 16384))). + let pow2977 = pow32 + * pow2976; // pow(trace_generator, (safe_div((safe_mult(64925, global_values.trace_length)), 65536))). + let pow2978 = pow41 + * pow2977; // pow(trace_generator, (safe_div((safe_mult(2029, global_values.trace_length)), 2048))). + let pow2979 = pow32 + * pow2978; // pow(trace_generator, (safe_div((safe_mult(64929, global_values.trace_length)), 65536))). + let pow2980 = pow32 + * pow2979; // pow(trace_generator, (safe_div((safe_mult(32465, global_values.trace_length)), 32768))). + let pow2981 = pow32 + * pow2980; // pow(trace_generator, (safe_div((safe_mult(64931, global_values.trace_length)), 65536))). + let pow2982 = pow32 + * pow2981; // pow(trace_generator, (safe_div((safe_mult(16233, global_values.trace_length)), 16384))). + let pow2983 = pow32 + * pow2982; // pow(trace_generator, (safe_div((safe_mult(64933, global_values.trace_length)), 65536))). + let pow2984 = pow32 + * pow2983; // pow(trace_generator, (safe_div((safe_mult(32467, global_values.trace_length)), 32768))). + let pow2985 = pow32 + * pow2984; // pow(trace_generator, (safe_div((safe_mult(64935, global_values.trace_length)), 65536))). + let pow2986 = pow32 + * pow2985; // pow(trace_generator, (safe_div((safe_mult(8117, global_values.trace_length)), 8192))). + let pow2987 = pow32 + * pow2986; // pow(trace_generator, (safe_div((safe_mult(64937, global_values.trace_length)), 65536))). + let pow2988 = pow32 + * pow2987; // pow(trace_generator, (safe_div((safe_mult(32469, global_values.trace_length)), 32768))). + let pow2989 = pow32 + * pow2988; // pow(trace_generator, (safe_div((safe_mult(64939, global_values.trace_length)), 65536))). + let pow2990 = pow32 + * pow2989; // pow(trace_generator, (safe_div((safe_mult(16235, global_values.trace_length)), 16384))). + let pow2991 = pow32 + * pow2990; // pow(trace_generator, (safe_div((safe_mult(64941, global_values.trace_length)), 65536))). + let pow2992 = pow32 + * pow2991; // pow(trace_generator, (safe_div((safe_mult(32471, global_values.trace_length)), 32768))). + let pow2993 = pow32 + * pow2992; // pow(trace_generator, (safe_div((safe_mult(64943, global_values.trace_length)), 65536))). + let pow2994 = pow32 + * pow2993; // pow(trace_generator, (safe_div((safe_mult(4059, global_values.trace_length)), 4096))). + let pow2995 = pow32 + * pow2994; // pow(trace_generator, (safe_div((safe_mult(64945, global_values.trace_length)), 65536))). + let pow2996 = pow32 + * pow2995; // pow(trace_generator, (safe_div((safe_mult(32473, global_values.trace_length)), 32768))). + let pow2997 = pow32 + * pow2996; // pow(trace_generator, (safe_div((safe_mult(64947, global_values.trace_length)), 65536))). + let pow2998 = pow32 + * pow2997; // pow(trace_generator, (safe_div((safe_mult(16237, global_values.trace_length)), 16384))). + let pow2999 = pow32 + * pow2998; // pow(trace_generator, (safe_div((safe_mult(64949, global_values.trace_length)), 65536))). + let pow3000 = pow32 + * pow2999; // pow(trace_generator, (safe_div((safe_mult(32475, global_values.trace_length)), 32768))). + let pow3001 = pow32 + * pow3000; // pow(trace_generator, (safe_div((safe_mult(64951, global_values.trace_length)), 65536))). + let pow3002 = pow32 + * pow3001; // pow(trace_generator, (safe_div((safe_mult(8119, global_values.trace_length)), 8192))). + let pow3003 = pow32 + * pow3002; // pow(trace_generator, (safe_div((safe_mult(64953, global_values.trace_length)), 65536))). + let pow3004 = pow32 + * pow3003; // pow(trace_generator, (safe_div((safe_mult(32477, global_values.trace_length)), 32768))). + let pow3005 = pow32 + * pow3004; // pow(trace_generator, (safe_div((safe_mult(64955, global_values.trace_length)), 65536))). + let pow3006 = pow32 + * pow3005; // pow(trace_generator, (safe_div((safe_mult(16239, global_values.trace_length)), 16384))). + let pow3007 = pow32 + * pow3006; // pow(trace_generator, (safe_div((safe_mult(64957, global_values.trace_length)), 65536))). + let pow3008 = pow41 + * pow3007; // pow(trace_generator, (safe_div((safe_mult(1015, global_values.trace_length)), 1024))). + let pow3009 = pow32 + * pow3008; // pow(trace_generator, (safe_div((safe_mult(64961, global_values.trace_length)), 65536))). + let pow3010 = pow32 + * pow3009; // pow(trace_generator, (safe_div((safe_mult(32481, global_values.trace_length)), 32768))). + let pow3011 = pow32 + * pow3010; // pow(trace_generator, (safe_div((safe_mult(64963, global_values.trace_length)), 65536))). + let pow3012 = pow32 + * pow3011; // pow(trace_generator, (safe_div((safe_mult(16241, global_values.trace_length)), 16384))). + let pow3013 = pow32 + * pow3012; // pow(trace_generator, (safe_div((safe_mult(64965, global_values.trace_length)), 65536))). + let pow3014 = pow32 + * pow3013; // pow(trace_generator, (safe_div((safe_mult(32483, global_values.trace_length)), 32768))). + let pow3015 = pow32 + * pow3014; // pow(trace_generator, (safe_div((safe_mult(64967, global_values.trace_length)), 65536))). + let pow3016 = pow32 + * pow3015; // pow(trace_generator, (safe_div((safe_mult(8121, global_values.trace_length)), 8192))). + let pow3017 = pow32 + * pow3016; // pow(trace_generator, (safe_div((safe_mult(64969, global_values.trace_length)), 65536))). + let pow3018 = pow32 + * pow3017; // pow(trace_generator, (safe_div((safe_mult(32485, global_values.trace_length)), 32768))). + let pow3019 = pow32 + * pow3018; // pow(trace_generator, (safe_div((safe_mult(64971, global_values.trace_length)), 65536))). + let pow3020 = pow32 + * pow3019; // pow(trace_generator, (safe_div((safe_mult(16243, global_values.trace_length)), 16384))). + let pow3021 = pow32 + * pow3020; // pow(trace_generator, (safe_div((safe_mult(64973, global_values.trace_length)), 65536))). + let pow3022 = pow32 + * pow3021; // pow(trace_generator, (safe_div((safe_mult(32487, global_values.trace_length)), 32768))). + let pow3023 = pow32 + * pow3022; // pow(trace_generator, (safe_div((safe_mult(64975, global_values.trace_length)), 65536))). + let pow3024 = pow32 + * pow3023; // pow(trace_generator, (safe_div((safe_mult(4061, global_values.trace_length)), 4096))). + let pow3025 = pow32 + * pow3024; // pow(trace_generator, (safe_div((safe_mult(64977, global_values.trace_length)), 65536))). + let pow3026 = pow32 + * pow3025; // pow(trace_generator, (safe_div((safe_mult(32489, global_values.trace_length)), 32768))). + let pow3027 = pow32 + * pow3026; // pow(trace_generator, (safe_div((safe_mult(64979, global_values.trace_length)), 65536))). + let pow3028 = pow32 + * pow3027; // pow(trace_generator, (safe_div((safe_mult(16245, global_values.trace_length)), 16384))). + let pow3029 = pow32 + * pow3028; // pow(trace_generator, (safe_div((safe_mult(64981, global_values.trace_length)), 65536))). + let pow3030 = pow32 + * pow3029; // pow(trace_generator, (safe_div((safe_mult(32491, global_values.trace_length)), 32768))). + let pow3031 = pow32 + * pow3030; // pow(trace_generator, (safe_div((safe_mult(64983, global_values.trace_length)), 65536))). + let pow3032 = pow32 + * pow3031; // pow(trace_generator, (safe_div((safe_mult(8123, global_values.trace_length)), 8192))). + let pow3033 = pow32 + * pow3032; // pow(trace_generator, (safe_div((safe_mult(64985, global_values.trace_length)), 65536))). + let pow3034 = pow32 + * pow3033; // pow(trace_generator, (safe_div((safe_mult(32493, global_values.trace_length)), 32768))). + let pow3035 = pow32 + * pow3034; // pow(trace_generator, (safe_div((safe_mult(64987, global_values.trace_length)), 65536))). + let pow3036 = pow32 + * pow3035; // pow(trace_generator, (safe_div((safe_mult(16247, global_values.trace_length)), 16384))). + let pow3037 = pow32 + * pow3036; // pow(trace_generator, (safe_div((safe_mult(64989, global_values.trace_length)), 65536))). + let pow3038 = pow41 + * pow3037; // pow(trace_generator, (safe_div((safe_mult(2031, global_values.trace_length)), 2048))). + let pow3039 = pow32 + * pow3038; // pow(trace_generator, (safe_div((safe_mult(64993, global_values.trace_length)), 65536))). + let pow3040 = pow32 + * pow3039; // pow(trace_generator, (safe_div((safe_mult(32497, global_values.trace_length)), 32768))). + let pow3041 = pow32 + * pow3040; // pow(trace_generator, (safe_div((safe_mult(64995, global_values.trace_length)), 65536))). + let pow3042 = pow32 + * pow3041; // pow(trace_generator, (safe_div((safe_mult(16249, global_values.trace_length)), 16384))). + let pow3043 = pow32 + * pow3042; // pow(trace_generator, (safe_div((safe_mult(64997, global_values.trace_length)), 65536))). + let pow3044 = pow32 + * pow3043; // pow(trace_generator, (safe_div((safe_mult(32499, global_values.trace_length)), 32768))). + let pow3045 = pow32 + * pow3044; // pow(trace_generator, (safe_div((safe_mult(64999, global_values.trace_length)), 65536))). + let pow3046 = pow32 + * pow3045; // pow(trace_generator, (safe_div((safe_mult(8125, global_values.trace_length)), 8192))). + let pow3047 = pow32 + * pow3046; // pow(trace_generator, (safe_div((safe_mult(65001, global_values.trace_length)), 65536))). + let pow3048 = pow32 + * pow3047; // pow(trace_generator, (safe_div((safe_mult(32501, global_values.trace_length)), 32768))). + let pow3049 = pow32 + * pow3048; // pow(trace_generator, (safe_div((safe_mult(65003, global_values.trace_length)), 65536))). + let pow3050 = pow32 + * pow3049; // pow(trace_generator, (safe_div((safe_mult(16251, global_values.trace_length)), 16384))). + let pow3051 = pow32 + * pow3050; // pow(trace_generator, (safe_div((safe_mult(65005, global_values.trace_length)), 65536))). + let pow3052 = pow32 + * pow3051; // pow(trace_generator, (safe_div((safe_mult(32503, global_values.trace_length)), 32768))). + let pow3053 = pow32 + * pow3052; // pow(trace_generator, (safe_div((safe_mult(65007, global_values.trace_length)), 65536))). + let pow3054 = pow32 + * pow3053; // pow(trace_generator, (safe_div((safe_mult(4063, global_values.trace_length)), 4096))). + let pow3055 = pow32 + * pow3054; // pow(trace_generator, (safe_div((safe_mult(65009, global_values.trace_length)), 65536))). + let pow3056 = pow32 + * pow3055; // pow(trace_generator, (safe_div((safe_mult(32505, global_values.trace_length)), 32768))). + let pow3057 = pow32 + * pow3056; // pow(trace_generator, (safe_div((safe_mult(65011, global_values.trace_length)), 65536))). + let pow3058 = pow32 + * pow3057; // pow(trace_generator, (safe_div((safe_mult(16253, global_values.trace_length)), 16384))). + let pow3059 = pow32 + * pow3058; // pow(trace_generator, (safe_div((safe_mult(65013, global_values.trace_length)), 65536))). + let pow3060 = pow32 + * pow3059; // pow(trace_generator, (safe_div((safe_mult(32507, global_values.trace_length)), 32768))). + let pow3061 = pow32 + * pow3060; // pow(trace_generator, (safe_div((safe_mult(65015, global_values.trace_length)), 65536))). + let pow3062 = pow32 + * pow3061; // pow(trace_generator, (safe_div((safe_mult(8127, global_values.trace_length)), 8192))). + let pow3063 = pow32 + * pow3062; // pow(trace_generator, (safe_div((safe_mult(65017, global_values.trace_length)), 65536))). + let pow3064 = pow32 + * pow3063; // pow(trace_generator, (safe_div((safe_mult(32509, global_values.trace_length)), 32768))). + let pow3065 = pow32 + * pow3064; // pow(trace_generator, (safe_div((safe_mult(65019, global_values.trace_length)), 65536))). + let pow3066 = pow32 + * pow3065; // pow(trace_generator, (safe_div((safe_mult(16255, global_values.trace_length)), 16384))). + let pow3067 = pow32 + * pow3066; // pow(trace_generator, (safe_div((safe_mult(65021, global_values.trace_length)), 65536))). + let pow3068 = pow41 + * pow3067; // pow(trace_generator, (safe_div((safe_mult(127, global_values.trace_length)), 128))). + let pow3069 = pow32 + * pow3068; // pow(trace_generator, (safe_div((safe_mult(65025, global_values.trace_length)), 65536))). + let pow3070 = pow32 + * pow3069; // pow(trace_generator, (safe_div((safe_mult(32513, global_values.trace_length)), 32768))). + let pow3071 = pow32 + * pow3070; // pow(trace_generator, (safe_div((safe_mult(65027, global_values.trace_length)), 65536))). + let pow3072 = pow32 + * pow3071; // pow(trace_generator, (safe_div((safe_mult(16257, global_values.trace_length)), 16384))). + let pow3073 = pow32 + * pow3072; // pow(trace_generator, (safe_div((safe_mult(65029, global_values.trace_length)), 65536))). + let pow3074 = pow32 + * pow3073; // pow(trace_generator, (safe_div((safe_mult(32515, global_values.trace_length)), 32768))). + let pow3075 = pow32 + * pow3074; // pow(trace_generator, (safe_div((safe_mult(65031, global_values.trace_length)), 65536))). + let pow3076 = pow32 + * pow3075; // pow(trace_generator, (safe_div((safe_mult(8129, global_values.trace_length)), 8192))). + let pow3077 = pow32 + * pow3076; // pow(trace_generator, (safe_div((safe_mult(65033, global_values.trace_length)), 65536))). + let pow3078 = pow32 + * pow3077; // pow(trace_generator, (safe_div((safe_mult(32517, global_values.trace_length)), 32768))). + let pow3079 = pow32 + * pow3078; // pow(trace_generator, (safe_div((safe_mult(65035, global_values.trace_length)), 65536))). + let pow3080 = pow32 + * pow3079; // pow(trace_generator, (safe_div((safe_mult(16259, global_values.trace_length)), 16384))). + let pow3081 = pow32 + * pow3080; // pow(trace_generator, (safe_div((safe_mult(65037, global_values.trace_length)), 65536))). + let pow3082 = pow32 + * pow3081; // pow(trace_generator, (safe_div((safe_mult(32519, global_values.trace_length)), 32768))). + let pow3083 = pow32 + * pow3082; // pow(trace_generator, (safe_div((safe_mult(65039, global_values.trace_length)), 65536))). + let pow3084 = pow32 + * pow3083; // pow(trace_generator, (safe_div((safe_mult(4065, global_values.trace_length)), 4096))). + let pow3085 = pow32 + * pow3084; // pow(trace_generator, (safe_div((safe_mult(65041, global_values.trace_length)), 65536))). + let pow3086 = pow32 + * pow3085; // pow(trace_generator, (safe_div((safe_mult(32521, global_values.trace_length)), 32768))). + let pow3087 = pow32 + * pow3086; // pow(trace_generator, (safe_div((safe_mult(65043, global_values.trace_length)), 65536))). + let pow3088 = pow32 + * pow3087; // pow(trace_generator, (safe_div((safe_mult(16261, global_values.trace_length)), 16384))). + let pow3089 = pow32 + * pow3088; // pow(trace_generator, (safe_div((safe_mult(65045, global_values.trace_length)), 65536))). + let pow3090 = pow32 + * pow3089; // pow(trace_generator, (safe_div((safe_mult(32523, global_values.trace_length)), 32768))). + let pow3091 = pow32 + * pow3090; // pow(trace_generator, (safe_div((safe_mult(65047, global_values.trace_length)), 65536))). + let pow3092 = pow32 + * pow3091; // pow(trace_generator, (safe_div((safe_mult(8131, global_values.trace_length)), 8192))). + let pow3093 = pow32 + * pow3092; // pow(trace_generator, (safe_div((safe_mult(65049, global_values.trace_length)), 65536))). + let pow3094 = pow32 + * pow3093; // pow(trace_generator, (safe_div((safe_mult(32525, global_values.trace_length)), 32768))). + let pow3095 = pow32 + * pow3094; // pow(trace_generator, (safe_div((safe_mult(65051, global_values.trace_length)), 65536))). + let pow3096 = pow32 + * pow3095; // pow(trace_generator, (safe_div((safe_mult(16263, global_values.trace_length)), 16384))). + let pow3097 = pow32 + * pow3096; // pow(trace_generator, (safe_div((safe_mult(65053, global_values.trace_length)), 65536))). + let pow3098 = pow41 + * pow3097; // pow(trace_generator, (safe_div((safe_mult(2033, global_values.trace_length)), 2048))). + let pow3099 = pow32 + * pow3098; // pow(trace_generator, (safe_div((safe_mult(65057, global_values.trace_length)), 65536))). + let pow3100 = pow32 + * pow3099; // pow(trace_generator, (safe_div((safe_mult(32529, global_values.trace_length)), 32768))). + let pow3101 = pow32 + * pow3100; // pow(trace_generator, (safe_div((safe_mult(65059, global_values.trace_length)), 65536))). + let pow3102 = pow32 + * pow3101; // pow(trace_generator, (safe_div((safe_mult(16265, global_values.trace_length)), 16384))). + let pow3103 = pow32 + * pow3102; // pow(trace_generator, (safe_div((safe_mult(65061, global_values.trace_length)), 65536))). + let pow3104 = pow32 + * pow3103; // pow(trace_generator, (safe_div((safe_mult(32531, global_values.trace_length)), 32768))). + let pow3105 = pow32 + * pow3104; // pow(trace_generator, (safe_div((safe_mult(65063, global_values.trace_length)), 65536))). + let pow3106 = pow32 + * pow3105; // pow(trace_generator, (safe_div((safe_mult(8133, global_values.trace_length)), 8192))). + let pow3107 = pow32 + * pow3106; // pow(trace_generator, (safe_div((safe_mult(65065, global_values.trace_length)), 65536))). + let pow3108 = pow32 + * pow3107; // pow(trace_generator, (safe_div((safe_mult(32533, global_values.trace_length)), 32768))). + let pow3109 = pow32 + * pow3108; // pow(trace_generator, (safe_div((safe_mult(65067, global_values.trace_length)), 65536))). + let pow3110 = pow32 + * pow3109; // pow(trace_generator, (safe_div((safe_mult(16267, global_values.trace_length)), 16384))). + let pow3111 = pow32 + * pow3110; // pow(trace_generator, (safe_div((safe_mult(65069, global_values.trace_length)), 65536))). + let pow3112 = pow32 + * pow3111; // pow(trace_generator, (safe_div((safe_mult(32535, global_values.trace_length)), 32768))). + let pow3113 = pow32 + * pow3112; // pow(trace_generator, (safe_div((safe_mult(65071, global_values.trace_length)), 65536))). + let pow3114 = pow32 + * pow3113; // pow(trace_generator, (safe_div((safe_mult(4067, global_values.trace_length)), 4096))). + let pow3115 = pow32 + * pow3114; // pow(trace_generator, (safe_div((safe_mult(65073, global_values.trace_length)), 65536))). + let pow3116 = pow32 + * pow3115; // pow(trace_generator, (safe_div((safe_mult(32537, global_values.trace_length)), 32768))). + let pow3117 = pow32 + * pow3116; // pow(trace_generator, (safe_div((safe_mult(65075, global_values.trace_length)), 65536))). + let pow3118 = pow32 + * pow3117; // pow(trace_generator, (safe_div((safe_mult(16269, global_values.trace_length)), 16384))). + let pow3119 = pow32 + * pow3118; // pow(trace_generator, (safe_div((safe_mult(65077, global_values.trace_length)), 65536))). + let pow3120 = pow32 + * pow3119; // pow(trace_generator, (safe_div((safe_mult(32539, global_values.trace_length)), 32768))). + let pow3121 = pow32 + * pow3120; // pow(trace_generator, (safe_div((safe_mult(65079, global_values.trace_length)), 65536))). + let pow3122 = pow32 + * pow3121; // pow(trace_generator, (safe_div((safe_mult(8135, global_values.trace_length)), 8192))). + let pow3123 = pow32 + * pow3122; // pow(trace_generator, (safe_div((safe_mult(65081, global_values.trace_length)), 65536))). + let pow3124 = pow32 + * pow3123; // pow(trace_generator, (safe_div((safe_mult(32541, global_values.trace_length)), 32768))). + let pow3125 = pow32 + * pow3124; // pow(trace_generator, (safe_div((safe_mult(65083, global_values.trace_length)), 65536))). + let pow3126 = pow32 + * pow3125; // pow(trace_generator, (safe_div((safe_mult(16271, global_values.trace_length)), 16384))). + let pow3127 = pow32 + * pow3126; // pow(trace_generator, (safe_div((safe_mult(65085, global_values.trace_length)), 65536))). + let pow3128 = pow41 + * pow3127; // pow(trace_generator, (safe_div((safe_mult(1017, global_values.trace_length)), 1024))). + let pow3129 = pow32 + * pow3128; // pow(trace_generator, (safe_div((safe_mult(65089, global_values.trace_length)), 65536))). + let pow3130 = pow32 + * pow3129; // pow(trace_generator, (safe_div((safe_mult(32545, global_values.trace_length)), 32768))). + let pow3131 = pow32 + * pow3130; // pow(trace_generator, (safe_div((safe_mult(65091, global_values.trace_length)), 65536))). + let pow3132 = pow32 + * pow3131; // pow(trace_generator, (safe_div((safe_mult(16273, global_values.trace_length)), 16384))). + let pow3133 = pow32 + * pow3132; // pow(trace_generator, (safe_div((safe_mult(65093, global_values.trace_length)), 65536))). + let pow3134 = pow32 + * pow3133; // pow(trace_generator, (safe_div((safe_mult(32547, global_values.trace_length)), 32768))). + let pow3135 = pow32 + * pow3134; // pow(trace_generator, (safe_div((safe_mult(65095, global_values.trace_length)), 65536))). + let pow3136 = pow32 + * pow3135; // pow(trace_generator, (safe_div((safe_mult(8137, global_values.trace_length)), 8192))). + let pow3137 = pow32 + * pow3136; // pow(trace_generator, (safe_div((safe_mult(65097, global_values.trace_length)), 65536))). + let pow3138 = pow32 + * pow3137; // pow(trace_generator, (safe_div((safe_mult(32549, global_values.trace_length)), 32768))). + let pow3139 = pow32 + * pow3138; // pow(trace_generator, (safe_div((safe_mult(65099, global_values.trace_length)), 65536))). + let pow3140 = pow32 + * pow3139; // pow(trace_generator, (safe_div((safe_mult(16275, global_values.trace_length)), 16384))). + let pow3141 = pow32 + * pow3140; // pow(trace_generator, (safe_div((safe_mult(65101, global_values.trace_length)), 65536))). + let pow3142 = pow32 + * pow3141; // pow(trace_generator, (safe_div((safe_mult(32551, global_values.trace_length)), 32768))). + let pow3143 = pow32 + * pow3142; // pow(trace_generator, (safe_div((safe_mult(65103, global_values.trace_length)), 65536))). + let pow3144 = pow32 + * pow3143; // pow(trace_generator, (safe_div((safe_mult(4069, global_values.trace_length)), 4096))). + let pow3145 = pow32 + * pow3144; // pow(trace_generator, (safe_div((safe_mult(65105, global_values.trace_length)), 65536))). + let pow3146 = pow32 + * pow3145; // pow(trace_generator, (safe_div((safe_mult(32553, global_values.trace_length)), 32768))). + let pow3147 = pow32 + * pow3146; // pow(trace_generator, (safe_div((safe_mult(65107, global_values.trace_length)), 65536))). + let pow3148 = pow32 + * pow3147; // pow(trace_generator, (safe_div((safe_mult(16277, global_values.trace_length)), 16384))). + let pow3149 = pow32 + * pow3148; // pow(trace_generator, (safe_div((safe_mult(65109, global_values.trace_length)), 65536))). + let pow3150 = pow32 + * pow3149; // pow(trace_generator, (safe_div((safe_mult(32555, global_values.trace_length)), 32768))). + let pow3151 = pow32 + * pow3150; // pow(trace_generator, (safe_div((safe_mult(65111, global_values.trace_length)), 65536))). + let pow3152 = pow32 + * pow3151; // pow(trace_generator, (safe_div((safe_mult(8139, global_values.trace_length)), 8192))). + let pow3153 = pow32 + * pow3152; // pow(trace_generator, (safe_div((safe_mult(65113, global_values.trace_length)), 65536))). + let pow3154 = pow32 + * pow3153; // pow(trace_generator, (safe_div((safe_mult(32557, global_values.trace_length)), 32768))). + let pow3155 = pow32 + * pow3154; // pow(trace_generator, (safe_div((safe_mult(65115, global_values.trace_length)), 65536))). + let pow3156 = pow32 + * pow3155; // pow(trace_generator, (safe_div((safe_mult(16279, global_values.trace_length)), 16384))). + let pow3157 = pow32 + * pow3156; // pow(trace_generator, (safe_div((safe_mult(65117, global_values.trace_length)), 65536))). + let pow3158 = pow41 + * pow3157; // pow(trace_generator, (safe_div((safe_mult(2035, global_values.trace_length)), 2048))). + let pow3159 = pow32 + * pow3158; // pow(trace_generator, (safe_div((safe_mult(65121, global_values.trace_length)), 65536))). + let pow3160 = pow32 + * pow3159; // pow(trace_generator, (safe_div((safe_mult(32561, global_values.trace_length)), 32768))). + let pow3161 = pow32 + * pow3160; // pow(trace_generator, (safe_div((safe_mult(65123, global_values.trace_length)), 65536))). + let pow3162 = pow32 + * pow3161; // pow(trace_generator, (safe_div((safe_mult(16281, global_values.trace_length)), 16384))). + let pow3163 = pow32 + * pow3162; // pow(trace_generator, (safe_div((safe_mult(65125, global_values.trace_length)), 65536))). + let pow3164 = pow32 + * pow3163; // pow(trace_generator, (safe_div((safe_mult(32563, global_values.trace_length)), 32768))). + let pow3165 = pow32 + * pow3164; // pow(trace_generator, (safe_div((safe_mult(65127, global_values.trace_length)), 65536))). + let pow3166 = pow32 + * pow3165; // pow(trace_generator, (safe_div((safe_mult(8141, global_values.trace_length)), 8192))). + let pow3167 = pow32 + * pow3166; // pow(trace_generator, (safe_div((safe_mult(65129, global_values.trace_length)), 65536))). + let pow3168 = pow32 + * pow3167; // pow(trace_generator, (safe_div((safe_mult(32565, global_values.trace_length)), 32768))). + let pow3169 = pow32 + * pow3168; // pow(trace_generator, (safe_div((safe_mult(65131, global_values.trace_length)), 65536))). + let pow3170 = pow32 + * pow3169; // pow(trace_generator, (safe_div((safe_mult(16283, global_values.trace_length)), 16384))). + let pow3171 = pow32 + * pow3170; // pow(trace_generator, (safe_div((safe_mult(65133, global_values.trace_length)), 65536))). + let pow3172 = pow32 + * pow3171; // pow(trace_generator, (safe_div((safe_mult(32567, global_values.trace_length)), 32768))). + let pow3173 = pow32 + * pow3172; // pow(trace_generator, (safe_div((safe_mult(65135, global_values.trace_length)), 65536))). + let pow3174 = pow32 + * pow3173; // pow(trace_generator, (safe_div((safe_mult(4071, global_values.trace_length)), 4096))). + let pow3175 = pow32 + * pow3174; // pow(trace_generator, (safe_div((safe_mult(65137, global_values.trace_length)), 65536))). + let pow3176 = pow32 + * pow3175; // pow(trace_generator, (safe_div((safe_mult(32569, global_values.trace_length)), 32768))). + let pow3177 = pow32 + * pow3176; // pow(trace_generator, (safe_div((safe_mult(65139, global_values.trace_length)), 65536))). + let pow3178 = pow32 + * pow3177; // pow(trace_generator, (safe_div((safe_mult(16285, global_values.trace_length)), 16384))). + let pow3179 = pow32 + * pow3178; // pow(trace_generator, (safe_div((safe_mult(65141, global_values.trace_length)), 65536))). + let pow3180 = pow32 + * pow3179; // pow(trace_generator, (safe_div((safe_mult(32571, global_values.trace_length)), 32768))). + let pow3181 = pow32 + * pow3180; // pow(trace_generator, (safe_div((safe_mult(65143, global_values.trace_length)), 65536))). + let pow3182 = pow32 + * pow3181; // pow(trace_generator, (safe_div((safe_mult(8143, global_values.trace_length)), 8192))). + let pow3183 = pow32 + * pow3182; // pow(trace_generator, (safe_div((safe_mult(65145, global_values.trace_length)), 65536))). + let pow3184 = pow32 + * pow3183; // pow(trace_generator, (safe_div((safe_mult(32573, global_values.trace_length)), 32768))). + let pow3185 = pow32 + * pow3184; // pow(trace_generator, (safe_div((safe_mult(65147, global_values.trace_length)), 65536))). + let pow3186 = pow32 + * pow3185; // pow(trace_generator, (safe_div((safe_mult(16287, global_values.trace_length)), 16384))). + let pow3187 = pow32 + * pow3186; // pow(trace_generator, (safe_div((safe_mult(65149, global_values.trace_length)), 65536))). + let pow3188 = pow41 + * pow3187; // pow(trace_generator, (safe_div((safe_mult(509, global_values.trace_length)), 512))). + let pow3189 = pow32 + * pow3188; // pow(trace_generator, (safe_div((safe_mult(65153, global_values.trace_length)), 65536))). + let pow3190 = pow32 + * pow3189; // pow(trace_generator, (safe_div((safe_mult(32577, global_values.trace_length)), 32768))). + let pow3191 = pow32 + * pow3190; // pow(trace_generator, (safe_div((safe_mult(65155, global_values.trace_length)), 65536))). + let pow3192 = pow32 + * pow3191; // pow(trace_generator, (safe_div((safe_mult(16289, global_values.trace_length)), 16384))). + let pow3193 = pow32 + * pow3192; // pow(trace_generator, (safe_div((safe_mult(65157, global_values.trace_length)), 65536))). + let pow3194 = pow32 + * pow3193; // pow(trace_generator, (safe_div((safe_mult(32579, global_values.trace_length)), 32768))). + let pow3195 = pow32 + * pow3194; // pow(trace_generator, (safe_div((safe_mult(65159, global_values.trace_length)), 65536))). + let pow3196 = pow32 + * pow3195; // pow(trace_generator, (safe_div((safe_mult(8145, global_values.trace_length)), 8192))). + let pow3197 = pow32 + * pow3196; // pow(trace_generator, (safe_div((safe_mult(65161, global_values.trace_length)), 65536))). + let pow3198 = pow32 + * pow3197; // pow(trace_generator, (safe_div((safe_mult(32581, global_values.trace_length)), 32768))). + let pow3199 = pow32 + * pow3198; // pow(trace_generator, (safe_div((safe_mult(65163, global_values.trace_length)), 65536))). + let pow3200 = pow32 + * pow3199; // pow(trace_generator, (safe_div((safe_mult(16291, global_values.trace_length)), 16384))). + let pow3201 = pow32 + * pow3200; // pow(trace_generator, (safe_div((safe_mult(65165, global_values.trace_length)), 65536))). + let pow3202 = pow32 + * pow3201; // pow(trace_generator, (safe_div((safe_mult(32583, global_values.trace_length)), 32768))). + let pow3203 = pow32 + * pow3202; // pow(trace_generator, (safe_div((safe_mult(65167, global_values.trace_length)), 65536))). + let pow3204 = pow32 + * pow3203; // pow(trace_generator, (safe_div((safe_mult(4073, global_values.trace_length)), 4096))). + let pow3205 = pow32 + * pow3204; // pow(trace_generator, (safe_div((safe_mult(65169, global_values.trace_length)), 65536))). + let pow3206 = pow32 + * pow3205; // pow(trace_generator, (safe_div((safe_mult(32585, global_values.trace_length)), 32768))). + let pow3207 = pow32 + * pow3206; // pow(trace_generator, (safe_div((safe_mult(65171, global_values.trace_length)), 65536))). + let pow3208 = pow32 + * pow3207; // pow(trace_generator, (safe_div((safe_mult(16293, global_values.trace_length)), 16384))). + let pow3209 = pow32 + * pow3208; // pow(trace_generator, (safe_div((safe_mult(65173, global_values.trace_length)), 65536))). + let pow3210 = pow32 + * pow3209; // pow(trace_generator, (safe_div((safe_mult(32587, global_values.trace_length)), 32768))). + let pow3211 = pow32 + * pow3210; // pow(trace_generator, (safe_div((safe_mult(65175, global_values.trace_length)), 65536))). + let pow3212 = pow32 + * pow3211; // pow(trace_generator, (safe_div((safe_mult(8147, global_values.trace_length)), 8192))). + let pow3213 = pow32 + * pow3212; // pow(trace_generator, (safe_div((safe_mult(65177, global_values.trace_length)), 65536))). + let pow3214 = pow32 + * pow3213; // pow(trace_generator, (safe_div((safe_mult(32589, global_values.trace_length)), 32768))). + let pow3215 = pow32 + * pow3214; // pow(trace_generator, (safe_div((safe_mult(65179, global_values.trace_length)), 65536))). + let pow3216 = pow32 + * pow3215; // pow(trace_generator, (safe_div((safe_mult(16295, global_values.trace_length)), 16384))). + let pow3217 = pow32 + * pow3216; // pow(trace_generator, (safe_div((safe_mult(65181, global_values.trace_length)), 65536))). + let pow3218 = pow41 + * pow3217; // pow(trace_generator, (safe_div((safe_mult(2037, global_values.trace_length)), 2048))). + let pow3219 = pow32 + * pow3218; // pow(trace_generator, (safe_div((safe_mult(65185, global_values.trace_length)), 65536))). + let pow3220 = pow32 + * pow3219; // pow(trace_generator, (safe_div((safe_mult(32593, global_values.trace_length)), 32768))). + let pow3221 = pow32 + * pow3220; // pow(trace_generator, (safe_div((safe_mult(65187, global_values.trace_length)), 65536))). + let pow3222 = pow32 + * pow3221; // pow(trace_generator, (safe_div((safe_mult(16297, global_values.trace_length)), 16384))). + let pow3223 = pow32 + * pow3222; // pow(trace_generator, (safe_div((safe_mult(65189, global_values.trace_length)), 65536))). + let pow3224 = pow32 + * pow3223; // pow(trace_generator, (safe_div((safe_mult(32595, global_values.trace_length)), 32768))). + let pow3225 = pow32 + * pow3224; // pow(trace_generator, (safe_div((safe_mult(65191, global_values.trace_length)), 65536))). + let pow3226 = pow32 + * pow3225; // pow(trace_generator, (safe_div((safe_mult(8149, global_values.trace_length)), 8192))). + let pow3227 = pow32 + * pow3226; // pow(trace_generator, (safe_div((safe_mult(65193, global_values.trace_length)), 65536))). + let pow3228 = pow32 + * pow3227; // pow(trace_generator, (safe_div((safe_mult(32597, global_values.trace_length)), 32768))). + let pow3229 = pow32 + * pow3228; // pow(trace_generator, (safe_div((safe_mult(65195, global_values.trace_length)), 65536))). + let pow3230 = pow32 + * pow3229; // pow(trace_generator, (safe_div((safe_mult(16299, global_values.trace_length)), 16384))). + let pow3231 = pow32 + * pow3230; // pow(trace_generator, (safe_div((safe_mult(65197, global_values.trace_length)), 65536))). + let pow3232 = pow32 + * pow3231; // pow(trace_generator, (safe_div((safe_mult(32599, global_values.trace_length)), 32768))). + let pow3233 = pow32 + * pow3232; // pow(trace_generator, (safe_div((safe_mult(65199, global_values.trace_length)), 65536))). + let pow3234 = pow32 + * pow3233; // pow(trace_generator, (safe_div((safe_mult(4075, global_values.trace_length)), 4096))). + let pow3235 = pow32 + * pow3234; // pow(trace_generator, (safe_div((safe_mult(65201, global_values.trace_length)), 65536))). + let pow3236 = pow32 + * pow3235; // pow(trace_generator, (safe_div((safe_mult(32601, global_values.trace_length)), 32768))). + let pow3237 = pow32 + * pow3236; // pow(trace_generator, (safe_div((safe_mult(65203, global_values.trace_length)), 65536))). + let pow3238 = pow32 + * pow3237; // pow(trace_generator, (safe_div((safe_mult(16301, global_values.trace_length)), 16384))). + let pow3239 = pow32 + * pow3238; // pow(trace_generator, (safe_div((safe_mult(65205, global_values.trace_length)), 65536))). + let pow3240 = pow32 + * pow3239; // pow(trace_generator, (safe_div((safe_mult(32603, global_values.trace_length)), 32768))). + let pow3241 = pow32 + * pow3240; // pow(trace_generator, (safe_div((safe_mult(65207, global_values.trace_length)), 65536))). + let pow3242 = pow32 + * pow3241; // pow(trace_generator, (safe_div((safe_mult(8151, global_values.trace_length)), 8192))). + let pow3243 = pow32 + * pow3242; // pow(trace_generator, (safe_div((safe_mult(65209, global_values.trace_length)), 65536))). + let pow3244 = pow32 + * pow3243; // pow(trace_generator, (safe_div((safe_mult(32605, global_values.trace_length)), 32768))). + let pow3245 = pow32 + * pow3244; // pow(trace_generator, (safe_div((safe_mult(65211, global_values.trace_length)), 65536))). + let pow3246 = pow32 + * pow3245; // pow(trace_generator, (safe_div((safe_mult(16303, global_values.trace_length)), 16384))). + let pow3247 = pow32 + * pow3246; // pow(trace_generator, (safe_div((safe_mult(65213, global_values.trace_length)), 65536))). + let pow3248 = pow41 + * pow3247; // pow(trace_generator, (safe_div((safe_mult(1019, global_values.trace_length)), 1024))). + let pow3249 = pow32 + * pow3248; // pow(trace_generator, (safe_div((safe_mult(65217, global_values.trace_length)), 65536))). + let pow3250 = pow32 + * pow3249; // pow(trace_generator, (safe_div((safe_mult(32609, global_values.trace_length)), 32768))). + let pow3251 = pow32 + * pow3250; // pow(trace_generator, (safe_div((safe_mult(65219, global_values.trace_length)), 65536))). + let pow3252 = pow32 + * pow3251; // pow(trace_generator, (safe_div((safe_mult(16305, global_values.trace_length)), 16384))). + let pow3253 = pow32 + * pow3252; // pow(trace_generator, (safe_div((safe_mult(65221, global_values.trace_length)), 65536))). + let pow3254 = pow32 + * pow3253; // pow(trace_generator, (safe_div((safe_mult(32611, global_values.trace_length)), 32768))). + let pow3255 = pow32 + * pow3254; // pow(trace_generator, (safe_div((safe_mult(65223, global_values.trace_length)), 65536))). + let pow3256 = pow32 + * pow3255; // pow(trace_generator, (safe_div((safe_mult(8153, global_values.trace_length)), 8192))). + let pow3257 = pow32 + * pow3256; // pow(trace_generator, (safe_div((safe_mult(65225, global_values.trace_length)), 65536))). + let pow3258 = pow32 + * pow3257; // pow(trace_generator, (safe_div((safe_mult(32613, global_values.trace_length)), 32768))). + let pow3259 = pow32 + * pow3258; // pow(trace_generator, (safe_div((safe_mult(65227, global_values.trace_length)), 65536))). + let pow3260 = pow32 + * pow3259; // pow(trace_generator, (safe_div((safe_mult(16307, global_values.trace_length)), 16384))). + let pow3261 = pow32 + * pow3260; // pow(trace_generator, (safe_div((safe_mult(65229, global_values.trace_length)), 65536))). + let pow3262 = pow32 + * pow3261; // pow(trace_generator, (safe_div((safe_mult(32615, global_values.trace_length)), 32768))). + let pow3263 = pow32 + * pow3262; // pow(trace_generator, (safe_div((safe_mult(65231, global_values.trace_length)), 65536))). + let pow3264 = pow32 + * pow3263; // pow(trace_generator, (safe_div((safe_mult(4077, global_values.trace_length)), 4096))). + let pow3265 = pow32 + * pow3264; // pow(trace_generator, (safe_div((safe_mult(65233, global_values.trace_length)), 65536))). + let pow3266 = pow32 + * pow3265; // pow(trace_generator, (safe_div((safe_mult(32617, global_values.trace_length)), 32768))). + let pow3267 = pow32 + * pow3266; // pow(trace_generator, (safe_div((safe_mult(65235, global_values.trace_length)), 65536))). + let pow3268 = pow32 + * pow3267; // pow(trace_generator, (safe_div((safe_mult(16309, global_values.trace_length)), 16384))). + let pow3269 = pow32 + * pow3268; // pow(trace_generator, (safe_div((safe_mult(65237, global_values.trace_length)), 65536))). + let pow3270 = pow32 + * pow3269; // pow(trace_generator, (safe_div((safe_mult(32619, global_values.trace_length)), 32768))). + let pow3271 = pow32 + * pow3270; // pow(trace_generator, (safe_div((safe_mult(65239, global_values.trace_length)), 65536))). + let pow3272 = pow32 + * pow3271; // pow(trace_generator, (safe_div((safe_mult(8155, global_values.trace_length)), 8192))). + let pow3273 = pow32 + * pow3272; // pow(trace_generator, (safe_div((safe_mult(65241, global_values.trace_length)), 65536))). + let pow3274 = pow32 + * pow3273; // pow(trace_generator, (safe_div((safe_mult(32621, global_values.trace_length)), 32768))). + let pow3275 = pow32 + * pow3274; // pow(trace_generator, (safe_div((safe_mult(65243, global_values.trace_length)), 65536))). + let pow3276 = pow32 + * pow3275; // pow(trace_generator, (safe_div((safe_mult(16311, global_values.trace_length)), 16384))). + let pow3277 = pow32 + * pow3276; // pow(trace_generator, (safe_div((safe_mult(65245, global_values.trace_length)), 65536))). + let pow3278 = pow41 + * pow3277; // pow(trace_generator, (safe_div((safe_mult(2039, global_values.trace_length)), 2048))). + let pow3279 = pow32 + * pow3278; // pow(trace_generator, (safe_div((safe_mult(65249, global_values.trace_length)), 65536))). + let pow3280 = pow32 + * pow3279; // pow(trace_generator, (safe_div((safe_mult(32625, global_values.trace_length)), 32768))). + let pow3281 = pow32 + * pow3280; // pow(trace_generator, (safe_div((safe_mult(65251, global_values.trace_length)), 65536))). + let pow3282 = pow32 + * pow3281; // pow(trace_generator, (safe_div((safe_mult(16313, global_values.trace_length)), 16384))). + let pow3283 = pow32 + * pow3282; // pow(trace_generator, (safe_div((safe_mult(65253, global_values.trace_length)), 65536))). + let pow3284 = pow32 + * pow3283; // pow(trace_generator, (safe_div((safe_mult(32627, global_values.trace_length)), 32768))). + let pow3285 = pow32 + * pow3284; // pow(trace_generator, (safe_div((safe_mult(65255, global_values.trace_length)), 65536))). + let pow3286 = pow32 + * pow3285; // pow(trace_generator, (safe_div((safe_mult(8157, global_values.trace_length)), 8192))). + let pow3287 = pow32 + * pow3286; // pow(trace_generator, (safe_div((safe_mult(65257, global_values.trace_length)), 65536))). + let pow3288 = pow32 + * pow3287; // pow(trace_generator, (safe_div((safe_mult(32629, global_values.trace_length)), 32768))). + let pow3289 = pow32 + * pow3288; // pow(trace_generator, (safe_div((safe_mult(65259, global_values.trace_length)), 65536))). + let pow3290 = pow32 + * pow3289; // pow(trace_generator, (safe_div((safe_mult(16315, global_values.trace_length)), 16384))). + let pow3291 = pow32 + * pow3290; // pow(trace_generator, (safe_div((safe_mult(65261, global_values.trace_length)), 65536))). + let pow3292 = pow32 + * pow3291; // pow(trace_generator, (safe_div((safe_mult(32631, global_values.trace_length)), 32768))). + let pow3293 = pow32 + * pow3292; // pow(trace_generator, (safe_div((safe_mult(65263, global_values.trace_length)), 65536))). + let pow3294 = pow32 + * pow3293; // pow(trace_generator, (safe_div((safe_mult(4079, global_values.trace_length)), 4096))). + let pow3295 = pow32 + * pow3294; // pow(trace_generator, (safe_div((safe_mult(65265, global_values.trace_length)), 65536))). + let pow3296 = pow32 + * pow3295; // pow(trace_generator, (safe_div((safe_mult(32633, global_values.trace_length)), 32768))). + let pow3297 = pow32 + * pow3296; // pow(trace_generator, (safe_div((safe_mult(65267, global_values.trace_length)), 65536))). + let pow3298 = pow32 + * pow3297; // pow(trace_generator, (safe_div((safe_mult(16317, global_values.trace_length)), 16384))). + let pow3299 = pow32 + * pow3298; // pow(trace_generator, (safe_div((safe_mult(65269, global_values.trace_length)), 65536))). + let pow3300 = pow32 + * pow3299; // pow(trace_generator, (safe_div((safe_mult(32635, global_values.trace_length)), 32768))). + let pow3301 = pow32 + * pow3300; // pow(trace_generator, (safe_div((safe_mult(65271, global_values.trace_length)), 65536))). + let pow3302 = pow32 + * pow3301; // pow(trace_generator, (safe_div((safe_mult(8159, global_values.trace_length)), 8192))). + let pow3303 = pow32 + * pow3302; // pow(trace_generator, (safe_div((safe_mult(65273, global_values.trace_length)), 65536))). + let pow3304 = pow32 + * pow3303; // pow(trace_generator, (safe_div((safe_mult(32637, global_values.trace_length)), 32768))). + let pow3305 = pow32 + * pow3304; // pow(trace_generator, (safe_div((safe_mult(65275, global_values.trace_length)), 65536))). + let pow3306 = pow32 + * pow3305; // pow(trace_generator, (safe_div((safe_mult(16319, global_values.trace_length)), 16384))). + let pow3307 = pow32 + * pow3306; // pow(trace_generator, (safe_div((safe_mult(65277, global_values.trace_length)), 65536))). + let pow3308 = pow41 + * pow3307; // pow(trace_generator, (safe_div((safe_mult(255, global_values.trace_length)), 256))). + let pow3309 = pow32 + * pow3308; // pow(trace_generator, (safe_div((safe_mult(65281, global_values.trace_length)), 65536))). + let pow3310 = pow32 + * pow3309; // pow(trace_generator, (safe_div((safe_mult(32641, global_values.trace_length)), 32768))). + let pow3311 = pow32 + * pow3310; // pow(trace_generator, (safe_div((safe_mult(65283, global_values.trace_length)), 65536))). + let pow3312 = pow32 + * pow3311; // pow(trace_generator, (safe_div((safe_mult(16321, global_values.trace_length)), 16384))). + let pow3313 = pow32 + * pow3312; // pow(trace_generator, (safe_div((safe_mult(65285, global_values.trace_length)), 65536))). + let pow3314 = pow32 + * pow3313; // pow(trace_generator, (safe_div((safe_mult(32643, global_values.trace_length)), 32768))). + let pow3315 = pow32 + * pow3314; // pow(trace_generator, (safe_div((safe_mult(65287, global_values.trace_length)), 65536))). + let pow3316 = pow32 + * pow3315; // pow(trace_generator, (safe_div((safe_mult(8161, global_values.trace_length)), 8192))). + let pow3317 = pow32 + * pow3316; // pow(trace_generator, (safe_div((safe_mult(65289, global_values.trace_length)), 65536))). + let pow3318 = pow32 + * pow3317; // pow(trace_generator, (safe_div((safe_mult(32645, global_values.trace_length)), 32768))). + let pow3319 = pow32 + * pow3318; // pow(trace_generator, (safe_div((safe_mult(65291, global_values.trace_length)), 65536))). + let pow3320 = pow32 + * pow3319; // pow(trace_generator, (safe_div((safe_mult(16323, global_values.trace_length)), 16384))). + let pow3321 = pow32 + * pow3320; // pow(trace_generator, (safe_div((safe_mult(65293, global_values.trace_length)), 65536))). + let pow3322 = pow32 + * pow3321; // pow(trace_generator, (safe_div((safe_mult(32647, global_values.trace_length)), 32768))). + let pow3323 = pow32 + * pow3322; // pow(trace_generator, (safe_div((safe_mult(65295, global_values.trace_length)), 65536))). + let pow3324 = pow32 + * pow3323; // pow(trace_generator, (safe_div((safe_mult(4081, global_values.trace_length)), 4096))). + let pow3325 = pow32 + * pow3324; // pow(trace_generator, (safe_div((safe_mult(65297, global_values.trace_length)), 65536))). + let pow3326 = pow32 + * pow3325; // pow(trace_generator, (safe_div((safe_mult(32649, global_values.trace_length)), 32768))). + let pow3327 = pow32 + * pow3326; // pow(trace_generator, (safe_div((safe_mult(65299, global_values.trace_length)), 65536))). + let pow3328 = pow32 + * pow3327; // pow(trace_generator, (safe_div((safe_mult(16325, global_values.trace_length)), 16384))). + let pow3329 = pow32 + * pow3328; // pow(trace_generator, (safe_div((safe_mult(65301, global_values.trace_length)), 65536))). + let pow3330 = pow32 + * pow3329; // pow(trace_generator, (safe_div((safe_mult(32651, global_values.trace_length)), 32768))). + let pow3331 = pow32 + * pow3330; // pow(trace_generator, (safe_div((safe_mult(65303, global_values.trace_length)), 65536))). + let pow3332 = pow32 + * pow3331; // pow(trace_generator, (safe_div((safe_mult(8163, global_values.trace_length)), 8192))). + let pow3333 = pow32 + * pow3332; // pow(trace_generator, (safe_div((safe_mult(65305, global_values.trace_length)), 65536))). + let pow3334 = pow32 + * pow3333; // pow(trace_generator, (safe_div((safe_mult(32653, global_values.trace_length)), 32768))). + let pow3335 = pow32 + * pow3334; // pow(trace_generator, (safe_div((safe_mult(65307, global_values.trace_length)), 65536))). + let pow3336 = pow32 + * pow3335; // pow(trace_generator, (safe_div((safe_mult(16327, global_values.trace_length)), 16384))). + let pow3337 = pow32 + * pow3336; // pow(trace_generator, (safe_div((safe_mult(65309, global_values.trace_length)), 65536))). + let pow3338 = pow41 + * pow3337; // pow(trace_generator, (safe_div((safe_mult(2041, global_values.trace_length)), 2048))). + let pow3339 = pow32 + * pow3338; // pow(trace_generator, (safe_div((safe_mult(65313, global_values.trace_length)), 65536))). + let pow3340 = pow32 + * pow3339; // pow(trace_generator, (safe_div((safe_mult(32657, global_values.trace_length)), 32768))). + let pow3341 = pow32 + * pow3340; // pow(trace_generator, (safe_div((safe_mult(65315, global_values.trace_length)), 65536))). + let pow3342 = pow32 + * pow3341; // pow(trace_generator, (safe_div((safe_mult(16329, global_values.trace_length)), 16384))). + let pow3343 = pow32 + * pow3342; // pow(trace_generator, (safe_div((safe_mult(65317, global_values.trace_length)), 65536))). + let pow3344 = pow32 + * pow3343; // pow(trace_generator, (safe_div((safe_mult(32659, global_values.trace_length)), 32768))). + let pow3345 = pow32 + * pow3344; // pow(trace_generator, (safe_div((safe_mult(65319, global_values.trace_length)), 65536))). + let pow3346 = pow32 + * pow3345; // pow(trace_generator, (safe_div((safe_mult(8165, global_values.trace_length)), 8192))). + let pow3347 = pow32 + * pow3346; // pow(trace_generator, (safe_div((safe_mult(65321, global_values.trace_length)), 65536))). + let pow3348 = pow32 + * pow3347; // pow(trace_generator, (safe_div((safe_mult(32661, global_values.trace_length)), 32768))). + let pow3349 = pow32 + * pow3348; // pow(trace_generator, (safe_div((safe_mult(65323, global_values.trace_length)), 65536))). + let pow3350 = pow32 + * pow3349; // pow(trace_generator, (safe_div((safe_mult(16331, global_values.trace_length)), 16384))). + let pow3351 = pow32 + * pow3350; // pow(trace_generator, (safe_div((safe_mult(65325, global_values.trace_length)), 65536))). + let pow3352 = pow32 + * pow3351; // pow(trace_generator, (safe_div((safe_mult(32663, global_values.trace_length)), 32768))). + let pow3353 = pow32 + * pow3352; // pow(trace_generator, (safe_div((safe_mult(65327, global_values.trace_length)), 65536))). + let pow3354 = pow32 + * pow3353; // pow(trace_generator, (safe_div((safe_mult(4083, global_values.trace_length)), 4096))). + let pow3355 = pow32 + * pow3354; // pow(trace_generator, (safe_div((safe_mult(65329, global_values.trace_length)), 65536))). + let pow3356 = pow32 + * pow3355; // pow(trace_generator, (safe_div((safe_mult(32665, global_values.trace_length)), 32768))). + let pow3357 = pow32 + * pow3356; // pow(trace_generator, (safe_div((safe_mult(65331, global_values.trace_length)), 65536))). + let pow3358 = pow32 + * pow3357; // pow(trace_generator, (safe_div((safe_mult(16333, global_values.trace_length)), 16384))). + let pow3359 = pow32 + * pow3358; // pow(trace_generator, (safe_div((safe_mult(65333, global_values.trace_length)), 65536))). + let pow3360 = pow32 + * pow3359; // pow(trace_generator, (safe_div((safe_mult(32667, global_values.trace_length)), 32768))). + let pow3361 = pow32 + * pow3360; // pow(trace_generator, (safe_div((safe_mult(65335, global_values.trace_length)), 65536))). + let pow3362 = pow32 + * pow3361; // pow(trace_generator, (safe_div((safe_mult(8167, global_values.trace_length)), 8192))). + let pow3363 = pow32 + * pow3362; // pow(trace_generator, (safe_div((safe_mult(65337, global_values.trace_length)), 65536))). + let pow3364 = pow32 + * pow3363; // pow(trace_generator, (safe_div((safe_mult(32669, global_values.trace_length)), 32768))). + let pow3365 = pow32 + * pow3364; // pow(trace_generator, (safe_div((safe_mult(65339, global_values.trace_length)), 65536))). + let pow3366 = pow32 + * pow3365; // pow(trace_generator, (safe_div((safe_mult(16335, global_values.trace_length)), 16384))). + let pow3367 = pow32 + * pow3366; // pow(trace_generator, (safe_div((safe_mult(65341, global_values.trace_length)), 65536))). + let pow3368 = pow41 + * pow3367; // pow(trace_generator, (safe_div((safe_mult(1021, global_values.trace_length)), 1024))). + + // Compute domains. + let domain0 = pow14 - 1; + let domain1 = pow13 - 1; + let domain2 = pow12 - 1; + let domain3 = pow11 - 1; + let domain4 = pow10 - pow2473; + let domain5 = pow10 - 1; + let domain6 = pow9 - 1; + let domain7 = pow8 - 1; + let domain8 = pow7 - 1; + let domain9 = pow7 - pow3308; + let domain10 = pow7 - pow2588; + let temp = pow7 - pow824; + let domain11 = temp * (domain8); + let domain12 = pow7 - pow2073; + let domain13 = pow6 - pow1671; + let domain14 = pow6 - 1; + let domain15 = pow6 - pow2549; + let temp = pow6 - pow1955; + let temp = temp * (pow6 - pow2025); + let temp = temp * (pow6 - pow2073); + let temp = temp * (pow6 - pow2121); + let temp = temp * (pow6 - pow2169); + let temp = temp * (pow6 - pow2245); + let temp = temp * (pow6 - pow2321); + let temp = temp * (pow6 - pow2397); + let temp = temp * (pow6 - pow2473); + let domain16 = temp * (domain15); + let temp = pow6 - pow2512; + let temp = temp * (pow6 - pow2588); + let domain17 = temp * (domain15); + let temp = pow6 - pow1767; + let temp = temp * (pow6 - pow1815); + let temp = temp * (pow6 - pow1885); + let domain18 = temp * (domain16); + let domain19 = pow5 - pow2073; + let domain20 = pow5 - 1; + let temp = pow5 - pow793; + let temp = temp * (pow5 - pow824); + let temp = temp * (pow5 - pow863); + let temp = temp * (pow5 - pow894); + let temp = temp * (pow5 - pow933); + let temp = temp * (pow5 - pow964); + let temp = temp * (pow5 - pow988); + let temp = temp * (pow5 - pow1012); + let temp = temp * (pow5 - pow1036); + let temp = temp * (pow5 - pow1060); + let temp = temp * (pow5 - pow1099); + let temp = temp * (pow5 - pow1130); + let temp = temp * (pow5 - pow1169); + let temp = temp * (pow5 - pow1200); + let temp = temp * (pow5 - pow1239); + let domain21 = temp * (domain20); + let domain22 = pow4 - 1; + let temp = pow3 - 1; + let temp = temp * (pow3 - pow100); + let temp = temp * (pow3 - pow160); + let temp = temp * (pow3 - pow220); + let temp = temp * (pow3 - pow280); + let temp = temp * (pow3 - pow340); + let temp = temp * (pow3 - pow400); + let domain23 = temp * (pow3 - pow460); + let temp = pow3 - pow520; + let temp = temp * (pow3 - pow580); + let temp = temp * (pow3 - pow640); + let temp = temp * (pow3 - pow700); + let temp = temp * (pow3 - pow760); + let temp = temp * (pow3 - pow790); + let temp = temp * (pow3 - pow791); + let temp = temp * (pow3 - pow792); + let temp = temp * (pow3 - pow793); + let temp = temp * (pow3 - pow817); + let temp = temp * (pow3 - pow818); + let temp = temp * (pow3 - pow819); + let temp = temp * (pow3 - pow820); + let temp = temp * (pow3 - pow821); + let temp = temp * (pow3 - pow822); + let temp = temp * (pow3 - pow823); + let domain24 = temp * (domain23); + let temp = pow3 - pow1060; + let temp = temp * (pow3 - pow1084); + let temp = temp * (pow3 - pow1085); + let temp = temp * (pow3 - pow1086); + let temp = temp * (pow3 - pow1087); + let temp = temp * (pow3 - pow1088); + let temp = temp * (pow3 - pow1089); + let temp = temp * (pow3 - pow1090); + let temp = temp * (pow3 - pow1091); + let temp = temp * (pow3 - pow1092); + let temp = temp * (pow3 - pow1093); + let temp = temp * (pow3 - pow1094); + let temp = temp * (pow3 - pow1095); + let temp = temp * (pow3 - pow1096); + let temp = temp * (pow3 - pow1097); + let temp = temp * (pow3 - pow1098); + let temp = temp * (pow3 - pow1099); + let temp = temp * (pow3 - pow1123); + let temp = temp * (pow3 - pow1124); + let temp = temp * (pow3 - pow1125); + let temp = temp * (pow3 - pow1126); + let temp = temp * (pow3 - pow1127); + let temp = temp * (pow3 - pow1128); + let temp = temp * (pow3 - pow1129); + let temp = temp * (pow3 - pow1366); + let temp = temp * (pow3 - pow1390); + let temp = temp * (pow3 - pow1391); + let temp = temp * (pow3 - pow1392); + let temp = temp * (pow3 - pow1393); + let temp = temp * (pow3 - pow1394); + let temp = temp * (pow3 - pow1395); + let temp = temp * (pow3 - pow1396); + let temp = temp * (pow3 - pow1397); + let temp = temp * (pow3 - pow1398); + let temp = temp * (pow3 - pow1399); + let temp = temp * (pow3 - pow1400); + let temp = temp * (pow3 - pow1401); + let temp = temp * (pow3 - pow1402); + let temp = temp * (pow3 - pow1403); + let temp = temp * (pow3 - pow1404); + let temp = temp * (pow3 - pow1405); + let temp = temp * (pow3 - pow1429); + let temp = temp * (pow3 - pow1430); + let temp = temp * (pow3 - pow1431); + let temp = temp * (pow3 - pow1432); + let temp = temp * (pow3 - pow1433); + let temp = temp * (pow3 - pow1434); + let temp = temp * (pow3 - pow1435); + let temp = temp * (pow3 - pow1624); + let temp = temp * (pow3 - pow1625); + let temp = temp * (pow3 - pow1626); + let temp = temp * (pow3 - pow1627); + let temp = temp * (pow3 - pow1628); + let temp = temp * (pow3 - pow1629); + let temp = temp * (pow3 - pow1630); + let temp = temp * (pow3 - pow1631); + let temp = temp * (pow3 - pow1632); + let temp = temp * (pow3 - pow1633); + let temp = temp * (pow3 - pow1634); + let temp = temp * (pow3 - pow1635); + let temp = temp * (pow3 - pow1636); + let temp = temp * (pow3 - pow1637); + let temp = temp * (pow3 - pow1638); + let temp = temp * (pow3 - pow1639); + let temp = temp * (pow3 - pow1640); + let temp = temp * (pow3 - pow1664); + let temp = temp * (pow3 - pow1665); + let temp = temp * (pow3 - pow1666); + let temp = temp * (pow3 - pow1667); + let temp = temp * (pow3 - pow1668); + let temp = temp * (pow3 - pow1669); + let temp = temp * (pow3 - pow1670); + let temp = temp * (pow3 - pow1815); + let temp = temp * (pow3 - pow1839); + let temp = temp * (pow3 - pow1840); + let temp = temp * (pow3 - pow1841); + let temp = temp * (pow3 - pow1842); + let temp = temp * (pow3 - pow1843); + let temp = temp * (pow3 - pow1844); + let temp = temp * (pow3 - pow1845); + let temp = temp * (pow3 - pow1846); + let temp = temp * (pow3 - pow1847); + let temp = temp * (pow3 - pow1848); + let temp = temp * (pow3 - pow1849); + let temp = temp * (pow3 - pow1850); + let temp = temp * (pow3 - pow1851); + let temp = temp * (pow3 - pow1852); + let temp = temp * (pow3 - pow1853); + let temp = temp * (pow3 - pow1854); + let temp = temp * (pow3 - pow1878); + let temp = temp * (pow3 - pow1879); + let temp = temp * (pow3 - pow1880); + let temp = temp * (pow3 - pow1881); + let temp = temp * (pow3 - pow1882); + let temp = temp * (pow3 - pow1883); + let temp = temp * (pow3 - pow1884); + let domain25 = temp * (domain24); + let temp = pow3 - pow824; + let temp = temp * (pow3 - pow848); + let temp = temp * (pow3 - pow849); + let temp = temp * (pow3 - pow850); + let temp = temp * (pow3 - pow851); + let temp = temp * (pow3 - pow852); + let temp = temp * (pow3 - pow853); + let temp = temp * (pow3 - pow854); + let temp = temp * (pow3 - pow855); + let temp = temp * (pow3 - pow856); + let temp = temp * (pow3 - pow857); + let temp = temp * (pow3 - pow858); + let temp = temp * (pow3 - pow859); + let temp = temp * (pow3 - pow860); + let temp = temp * (pow3 - pow861); + let temp = temp * (pow3 - pow862); + let temp = temp * (pow3 - pow863); + let temp = temp * (pow3 - pow887); + let temp = temp * (pow3 - pow888); + let temp = temp * (pow3 - pow889); + let temp = temp * (pow3 - pow890); + let temp = temp * (pow3 - pow891); + let temp = temp * (pow3 - pow892); + let temp = temp * (pow3 - pow893); + let temp = temp * (pow3 - pow894); + let temp = temp * (pow3 - pow918); + let temp = temp * (pow3 - pow919); + let temp = temp * (pow3 - pow920); + let temp = temp * (pow3 - pow921); + let temp = temp * (pow3 - pow922); + let temp = temp * (pow3 - pow923); + let temp = temp * (pow3 - pow924); + let temp = temp * (pow3 - pow925); + let temp = temp * (pow3 - pow926); + let temp = temp * (pow3 - pow927); + let temp = temp * (pow3 - pow928); + let temp = temp * (pow3 - pow929); + let temp = temp * (pow3 - pow930); + let temp = temp * (pow3 - pow931); + let temp = temp * (pow3 - pow932); + let temp = temp * (pow3 - pow933); + let temp = temp * (pow3 - pow957); + let temp = temp * (pow3 - pow958); + let temp = temp * (pow3 - pow959); + let temp = temp * (pow3 - pow960); + let temp = temp * (pow3 - pow961); + let temp = temp * (pow3 - pow962); + let temp = temp * (pow3 - pow963); + let temp = temp * (pow3 - pow1130); + let temp = temp * (pow3 - pow1154); + let temp = temp * (pow3 - pow1155); + let temp = temp * (pow3 - pow1156); + let temp = temp * (pow3 - pow1157); + let temp = temp * (pow3 - pow1158); + let temp = temp * (pow3 - pow1159); + let temp = temp * (pow3 - pow1160); + let temp = temp * (pow3 - pow1161); + let temp = temp * (pow3 - pow1162); + let temp = temp * (pow3 - pow1163); + let temp = temp * (pow3 - pow1164); + let temp = temp * (pow3 - pow1165); + let temp = temp * (pow3 - pow1166); + let temp = temp * (pow3 - pow1167); + let temp = temp * (pow3 - pow1168); + let temp = temp * (pow3 - pow1169); + let temp = temp * (pow3 - pow1193); + let temp = temp * (pow3 - pow1194); + let temp = temp * (pow3 - pow1195); + let temp = temp * (pow3 - pow1196); + let temp = temp * (pow3 - pow1197); + let temp = temp * (pow3 - pow1198); + let temp = temp * (pow3 - pow1199); + let temp = temp * (pow3 - pow1200); + let temp = temp * (pow3 - pow1224); + let temp = temp * (pow3 - pow1225); + let temp = temp * (pow3 - pow1226); + let temp = temp * (pow3 - pow1227); + let temp = temp * (pow3 - pow1228); + let temp = temp * (pow3 - pow1229); + let temp = temp * (pow3 - pow1230); + let temp = temp * (pow3 - pow1231); + let temp = temp * (pow3 - pow1232); + let temp = temp * (pow3 - pow1233); + let temp = temp * (pow3 - pow1234); + let temp = temp * (pow3 - pow1235); + let temp = temp * (pow3 - pow1236); + let temp = temp * (pow3 - pow1237); + let temp = temp * (pow3 - pow1238); + let temp = temp * (pow3 - pow1239); + let temp = temp * (pow3 - pow1263); + let temp = temp * (pow3 - pow1264); + let temp = temp * (pow3 - pow1265); + let temp = temp * (pow3 - pow1266); + let temp = temp * (pow3 - pow1267); + let temp = temp * (pow3 - pow1268); + let temp = temp * (pow3 - pow1269); + let temp = temp * (pow3 - pow1436); + let temp = temp * (pow3 - pow1460); + let temp = temp * (pow3 - pow1461); + let temp = temp * (pow3 - pow1462); + let temp = temp * (pow3 - pow1463); + let temp = temp * (pow3 - pow1464); + let temp = temp * (pow3 - pow1465); + let temp = temp * (pow3 - pow1466); + let temp = temp * (pow3 - pow1467); + let temp = temp * (pow3 - pow1468); + let temp = temp * (pow3 - pow1469); + let temp = temp * (pow3 - pow1470); + let temp = temp * (pow3 - pow1471); + let temp = temp * (pow3 - pow1472); + let temp = temp * (pow3 - pow1473); + let temp = temp * (pow3 - pow1474); + let temp = temp * (pow3 - pow1475); + let temp = temp * (pow3 - pow1499); + let temp = temp * (pow3 - pow1500); + let temp = temp * (pow3 - pow1501); + let temp = temp * (pow3 - pow1502); + let temp = temp * (pow3 - pow1503); + let temp = temp * (pow3 - pow1504); + let temp = temp * (pow3 - pow1505); + let temp = temp * (pow3 - pow1506); + let temp = temp * (pow3 - pow1530); + let temp = temp * (pow3 - pow1531); + let temp = temp * (pow3 - pow1532); + let temp = temp * (pow3 - pow1533); + let temp = temp * (pow3 - pow1534); + let temp = temp * (pow3 - pow1535); + let temp = temp * (pow3 - pow1536); + let temp = temp * (pow3 - pow1537); + let temp = temp * (pow3 - pow1538); + let temp = temp * (pow3 - pow1539); + let temp = temp * (pow3 - pow1540); + let temp = temp * (pow3 - pow1541); + let temp = temp * (pow3 - pow1542); + let temp = temp * (pow3 - pow1543); + let temp = temp * (pow3 - pow1544); + let temp = temp * (pow3 - pow1545); + let temp = temp * (pow3 - pow1569); + let temp = temp * (pow3 - pow1570); + let temp = temp * (pow3 - pow1571); + let temp = temp * (pow3 - pow1572); + let temp = temp * (pow3 - pow1573); + let temp = temp * (pow3 - pow1574); + let temp = temp * (pow3 - pow1575); + let temp = temp * (pow3 - pow1671); + let temp = temp * (pow3 - pow1672); + let temp = temp * (pow3 - pow1673); + let temp = temp * (pow3 - pow1674); + let temp = temp * (pow3 - pow1675); + let temp = temp * (pow3 - pow1676); + let temp = temp * (pow3 - pow1677); + let temp = temp * (pow3 - pow1678); + let temp = temp * (pow3 - pow1679); + let temp = temp * (pow3 - pow1680); + let temp = temp * (pow3 - pow1681); + let temp = temp * (pow3 - pow1682); + let temp = temp * (pow3 - pow1683); + let temp = temp * (pow3 - pow1684); + let temp = temp * (pow3 - pow1685); + let temp = temp * (pow3 - pow1686); + let temp = temp * (pow3 - pow1687); + let temp = temp * (pow3 - pow1688); + let temp = temp * (pow3 - pow1689); + let temp = temp * (pow3 - pow1690); + let temp = temp * (pow3 - pow1691); + let temp = temp * (pow3 - pow1692); + let temp = temp * (pow3 - pow1693); + let temp = temp * (pow3 - pow1694); + let temp = temp * (pow3 - pow1695); + let temp = temp * (pow3 - pow1696); + let temp = temp * (pow3 - pow1697); + let temp = temp * (pow3 - pow1698); + let temp = temp * (pow3 - pow1699); + let temp = temp * (pow3 - pow1700); + let temp = temp * (pow3 - pow1701); + let temp = temp * (pow3 - pow1702); + let temp = temp * (pow3 - pow1703); + let temp = temp * (pow3 - pow1704); + let temp = temp * (pow3 - pow1705); + let temp = temp * (pow3 - pow1706); + let temp = temp * (pow3 - pow1707); + let temp = temp * (pow3 - pow1708); + let temp = temp * (pow3 - pow1709); + let temp = temp * (pow3 - pow1710); + let temp = temp * (pow3 - pow1711); + let temp = temp * (pow3 - pow1712); + let temp = temp * (pow3 - pow1713); + let temp = temp * (pow3 - pow1714); + let temp = temp * (pow3 - pow1715); + let temp = temp * (pow3 - pow1716); + let temp = temp * (pow3 - pow1717); + let temp = temp * (pow3 - pow1718); + let temp = temp * (pow3 - pow1885); + let temp = temp * (pow3 - pow1909); + let temp = temp * (pow3 - pow1910); + let temp = temp * (pow3 - pow1911); + let temp = temp * (pow3 - pow1912); + let temp = temp * (pow3 - pow1913); + let temp = temp * (pow3 - pow1914); + let temp = temp * (pow3 - pow1915); + let temp = temp * (pow3 - pow1916); + let temp = temp * (pow3 - pow1917); + let temp = temp * (pow3 - pow1918); + let temp = temp * (pow3 - pow1919); + let temp = temp * (pow3 - pow1920); + let temp = temp * (pow3 - pow1921); + let temp = temp * (pow3 - pow1922); + let temp = temp * (pow3 - pow1923); + let temp = temp * (pow3 - pow1924); + let temp = temp * (pow3 - pow1948); + let temp = temp * (pow3 - pow1949); + let temp = temp * (pow3 - pow1950); + let temp = temp * (pow3 - pow1951); + let temp = temp * (pow3 - pow1952); + let temp = temp * (pow3 - pow1953); + let temp = temp * (pow3 - pow1954); + let temp = temp * (pow3 - pow1955); + let temp = temp * (pow3 - pow1979); + let temp = temp * (pow3 - pow1980); + let temp = temp * (pow3 - pow1981); + let temp = temp * (pow3 - pow1982); + let temp = temp * (pow3 - pow1983); + let temp = temp * (pow3 - pow1984); + let temp = temp * (pow3 - pow1985); + let temp = temp * (pow3 - pow1986); + let temp = temp * (pow3 - pow1987); + let temp = temp * (pow3 - pow1988); + let temp = temp * (pow3 - pow1989); + let temp = temp * (pow3 - pow1990); + let temp = temp * (pow3 - pow1991); + let temp = temp * (pow3 - pow1992); + let temp = temp * (pow3 - pow1993); + let temp = temp * (pow3 - pow1994); + let temp = temp * (pow3 - pow2018); + let temp = temp * (pow3 - pow2019); + let temp = temp * (pow3 - pow2020); + let temp = temp * (pow3 - pow2021); + let temp = temp * (pow3 - pow2022); + let temp = temp * (pow3 - pow2023); + let temp = temp * (pow3 - pow2024); + let domain26 = temp * (domain25); + let domain27 = pow2 - pow3308; + let domain28 = pow2 - pow2584; + let domain29 = pow2 - 1; + let domain30 = pow2 - pow2588; + let domain31 = pow1 - pow3308; + let domain32 = pow1 - pow2584; + let domain33 = pow1 - 1; + let domain34 = pow0 - 1; + let temp = pow0 - pow32; + let domain35 = temp * (domain34); + let temp = pow0 - pow25; + let temp = temp * (pow0 - pow26); + let temp = temp * (pow0 - pow27); + let temp = temp * (pow0 - pow28); + let temp = temp * (pow0 - pow29); + let temp = temp * (pow0 - pow30); + let temp = temp * (pow0 - pow31); + let temp = temp * (pow0 - pow33); + let temp = temp * (pow0 - pow34); + let temp = temp * (pow0 - pow35); + let temp = temp * (pow0 - pow36); + let temp = temp * (pow0 - pow37); + let temp = temp * (pow0 - pow38); + let temp = temp * (pow0 - pow39); + let domain36 = temp * (domain35); + let temp = pow0 - pow40; + let temp = temp * (pow0 - pow41); + let temp = temp * (pow0 - pow42); + let temp = temp * (pow0 - pow43); + let temp = temp * (pow0 - pow44); + let temp = temp * (pow0 - pow45); + let domain37 = temp * (domain35); + let temp = pow0 - pow46; + let temp = temp * (pow0 - pow47); + let temp = temp * (pow0 - pow48); + let temp = temp * (pow0 - pow49); + let temp = temp * (pow0 - pow50); + let temp = temp * (pow0 - pow51); + let temp = temp * (pow0 - pow52); + let temp = temp * (pow0 - pow53); + let temp = temp * (pow0 - pow54); + let temp = temp * (pow0 - pow55); + let temp = temp * (pow0 - pow56); + let temp = temp * (pow0 - pow57); + let temp = temp * (pow0 - pow58); + let temp = temp * (pow0 - pow59); + let temp = temp * (pow0 - pow60); + let temp = temp * (pow0 - pow61); + let domain38 = temp * (domain37); + let temp = pow0 - pow62; + let temp = temp * (pow0 - pow63); + let temp = temp * (pow0 - pow64); + let temp = temp * (pow0 - pow65); + let temp = temp * (pow0 - pow66); + let temp = temp * (pow0 - pow67); + let domain39 = temp * (domain38); + let temp = pow0 - pow68; + let temp = temp * (pow0 - pow69); + let domain40 = temp * (domain39); + let temp = pow0 - pow70; + let temp = temp * (pow0 - pow100); + let temp = temp * (pow0 - pow130); + let temp = temp * (pow0 - pow160); + let temp = temp * (pow0 - pow190); + let temp = temp * (pow0 - pow220); + let temp = temp * (pow0 - pow250); + let temp = temp * (pow0 - pow280); + let temp = temp * (pow0 - pow310); + let temp = temp * (pow0 - pow340); + let temp = temp * (pow0 - pow370); + let temp = temp * (pow0 - pow400); + let temp = temp * (pow0 - pow430); + let temp = temp * (pow0 - pow460); + let temp = temp * (pow0 - pow490); + let temp = temp * (pow0 - pow520); + let temp = temp * (pow0 - pow550); + let temp = temp * (pow0 - pow580); + let temp = temp * (pow0 - pow610); + let temp = temp * (pow0 - pow640); + let temp = temp * (pow0 - pow670); + let temp = temp * (pow0 - pow700); + let temp = temp * (pow0 - pow730); + let domain41 = temp * (pow0 - pow760); + let temp = pow0 - pow71; + let temp = temp * (pow0 - pow101); + let temp = temp * (pow0 - pow131); + let temp = temp * (pow0 - pow161); + let temp = temp * (pow0 - pow191); + let temp = temp * (pow0 - pow221); + let temp = temp * (pow0 - pow251); + let temp = temp * (pow0 - pow281); + let temp = temp * (pow0 - pow311); + let temp = temp * (pow0 - pow341); + let temp = temp * (pow0 - pow371); + let temp = temp * (pow0 - pow401); + let temp = temp * (pow0 - pow431); + let temp = temp * (pow0 - pow461); + let temp = temp * (pow0 - pow491); + let temp = temp * (pow0 - pow521); + let temp = temp * (pow0 - pow551); + let temp = temp * (pow0 - pow581); + let temp = temp * (pow0 - pow611); + let temp = temp * (pow0 - pow641); + let temp = temp * (pow0 - pow671); + let temp = temp * (pow0 - pow701); + let temp = temp * (pow0 - pow731); + let temp = temp * (pow0 - pow761); + let domain42 = temp * (domain41); + let temp = domain35; + let domain43 = temp * (domain42); + let temp = pow0 - pow72; + let temp = temp * (pow0 - pow73); + let temp = temp * (pow0 - pow74); + let temp = temp * (pow0 - pow75); + let temp = temp * (pow0 - pow76); + let temp = temp * (pow0 - pow77); + let temp = temp * (pow0 - pow78); + let temp = temp * (pow0 - pow79); + let temp = temp * (pow0 - pow80); + let temp = temp * (pow0 - pow81); + let temp = temp * (pow0 - pow82); + let temp = temp * (pow0 - pow83); + let temp = temp * (pow0 - pow84); + let temp = temp * (pow0 - pow85); + let temp = temp * (pow0 - pow86); + let temp = temp * (pow0 - pow87); + let temp = temp * (pow0 - pow88); + let temp = temp * (pow0 - pow89); + let temp = temp * (pow0 - pow90); + let temp = temp * (pow0 - pow91); + let temp = temp * (pow0 - pow92); + let temp = temp * (pow0 - pow93); + let temp = temp * (pow0 - pow94); + let temp = temp * (pow0 - pow95); + let temp = temp * (pow0 - pow96); + let temp = temp * (pow0 - pow97); + let temp = temp * (pow0 - pow98); + let temp = temp * (pow0 - pow99); + let temp = temp * (pow0 - pow102); + let temp = temp * (pow0 - pow103); + let temp = temp * (pow0 - pow104); + let temp = temp * (pow0 - pow105); + let temp = temp * (pow0 - pow106); + let temp = temp * (pow0 - pow107); + let temp = temp * (pow0 - pow108); + let temp = temp * (pow0 - pow109); + let temp = temp * (pow0 - pow110); + let temp = temp * (pow0 - pow111); + let temp = temp * (pow0 - pow112); + let temp = temp * (pow0 - pow113); + let temp = temp * (pow0 - pow114); + let temp = temp * (pow0 - pow115); + let temp = temp * (pow0 - pow116); + let temp = temp * (pow0 - pow117); + let temp = temp * (pow0 - pow118); + let temp = temp * (pow0 - pow119); + let temp = temp * (pow0 - pow120); + let temp = temp * (pow0 - pow121); + let temp = temp * (pow0 - pow122); + let temp = temp * (pow0 - pow123); + let temp = temp * (pow0 - pow124); + let temp = temp * (pow0 - pow125); + let temp = temp * (pow0 - pow126); + let temp = temp * (pow0 - pow127); + let temp = temp * (pow0 - pow128); + let temp = temp * (pow0 - pow129); + let temp = temp * (pow0 - pow132); + let temp = temp * (pow0 - pow133); + let temp = temp * (pow0 - pow134); + let temp = temp * (pow0 - pow135); + let temp = temp * (pow0 - pow136); + let temp = temp * (pow0 - pow137); + let temp = temp * (pow0 - pow138); + let temp = temp * (pow0 - pow139); + let temp = temp * (pow0 - pow140); + let temp = temp * (pow0 - pow141); + let temp = temp * (pow0 - pow142); + let temp = temp * (pow0 - pow143); + let temp = temp * (pow0 - pow144); + let temp = temp * (pow0 - pow145); + let temp = temp * (pow0 - pow146); + let temp = temp * (pow0 - pow147); + let temp = temp * (pow0 - pow148); + let temp = temp * (pow0 - pow149); + let temp = temp * (pow0 - pow150); + let temp = temp * (pow0 - pow151); + let temp = temp * (pow0 - pow152); + let temp = temp * (pow0 - pow153); + let temp = temp * (pow0 - pow154); + let temp = temp * (pow0 - pow155); + let temp = temp * (pow0 - pow156); + let temp = temp * (pow0 - pow157); + let temp = temp * (pow0 - pow158); + let temp = temp * (pow0 - pow159); + let temp = temp * (pow0 - pow162); + let temp = temp * (pow0 - pow163); + let temp = temp * (pow0 - pow164); + let temp = temp * (pow0 - pow165); + let temp = temp * (pow0 - pow166); + let temp = temp * (pow0 - pow167); + let temp = temp * (pow0 - pow168); + let temp = temp * (pow0 - pow169); + let temp = temp * (pow0 - pow170); + let temp = temp * (pow0 - pow171); + let temp = temp * (pow0 - pow172); + let temp = temp * (pow0 - pow173); + let temp = temp * (pow0 - pow174); + let temp = temp * (pow0 - pow175); + let temp = temp * (pow0 - pow176); + let temp = temp * (pow0 - pow177); + let temp = temp * (pow0 - pow178); + let temp = temp * (pow0 - pow179); + let temp = temp * (pow0 - pow180); + let temp = temp * (pow0 - pow181); + let temp = temp * (pow0 - pow182); + let temp = temp * (pow0 - pow183); + let temp = temp * (pow0 - pow184); + let temp = temp * (pow0 - pow185); + let temp = temp * (pow0 - pow186); + let temp = temp * (pow0 - pow187); + let temp = temp * (pow0 - pow188); + let temp = temp * (pow0 - pow189); + let temp = temp * (pow0 - pow192); + let temp = temp * (pow0 - pow193); + let temp = temp * (pow0 - pow194); + let temp = temp * (pow0 - pow195); + let temp = temp * (pow0 - pow196); + let temp = temp * (pow0 - pow197); + let temp = temp * (pow0 - pow198); + let temp = temp * (pow0 - pow199); + let temp = temp * (pow0 - pow200); + let temp = temp * (pow0 - pow201); + let temp = temp * (pow0 - pow202); + let temp = temp * (pow0 - pow203); + let temp = temp * (pow0 - pow204); + let temp = temp * (pow0 - pow205); + let temp = temp * (pow0 - pow206); + let temp = temp * (pow0 - pow207); + let temp = temp * (pow0 - pow208); + let temp = temp * (pow0 - pow209); + let temp = temp * (pow0 - pow210); + let temp = temp * (pow0 - pow211); + let temp = temp * (pow0 - pow212); + let temp = temp * (pow0 - pow213); + let temp = temp * (pow0 - pow214); + let temp = temp * (pow0 - pow215); + let temp = temp * (pow0 - pow216); + let temp = temp * (pow0 - pow217); + let temp = temp * (pow0 - pow218); + let temp = temp * (pow0 - pow219); + let temp = temp * (pow0 - pow222); + let temp = temp * (pow0 - pow223); + let temp = temp * (pow0 - pow224); + let temp = temp * (pow0 - pow225); + let temp = temp * (pow0 - pow226); + let temp = temp * (pow0 - pow227); + let temp = temp * (pow0 - pow228); + let temp = temp * (pow0 - pow229); + let temp = temp * (pow0 - pow230); + let temp = temp * (pow0 - pow231); + let temp = temp * (pow0 - pow232); + let temp = temp * (pow0 - pow233); + let temp = temp * (pow0 - pow234); + let temp = temp * (pow0 - pow235); + let temp = temp * (pow0 - pow236); + let temp = temp * (pow0 - pow237); + let temp = temp * (pow0 - pow238); + let temp = temp * (pow0 - pow239); + let temp = temp * (pow0 - pow240); + let temp = temp * (pow0 - pow241); + let temp = temp * (pow0 - pow242); + let temp = temp * (pow0 - pow243); + let temp = temp * (pow0 - pow244); + let temp = temp * (pow0 - pow245); + let temp = temp * (pow0 - pow246); + let temp = temp * (pow0 - pow247); + let temp = temp * (pow0 - pow248); + let temp = temp * (pow0 - pow249); + let temp = temp * (pow0 - pow252); + let temp = temp * (pow0 - pow253); + let temp = temp * (pow0 - pow254); + let temp = temp * (pow0 - pow255); + let temp = temp * (pow0 - pow256); + let temp = temp * (pow0 - pow257); + let temp = temp * (pow0 - pow258); + let temp = temp * (pow0 - pow259); + let temp = temp * (pow0 - pow260); + let temp = temp * (pow0 - pow261); + let temp = temp * (pow0 - pow262); + let temp = temp * (pow0 - pow263); + let temp = temp * (pow0 - pow264); + let temp = temp * (pow0 - pow265); + let temp = temp * (pow0 - pow266); + let temp = temp * (pow0 - pow267); + let temp = temp * (pow0 - pow268); + let temp = temp * (pow0 - pow269); + let temp = temp * (pow0 - pow270); + let temp = temp * (pow0 - pow271); + let temp = temp * (pow0 - pow272); + let temp = temp * (pow0 - pow273); + let temp = temp * (pow0 - pow274); + let temp = temp * (pow0 - pow275); + let temp = temp * (pow0 - pow276); + let temp = temp * (pow0 - pow277); + let temp = temp * (pow0 - pow278); + let temp = temp * (pow0 - pow279); + let temp = temp * (pow0 - pow282); + let temp = temp * (pow0 - pow283); + let temp = temp * (pow0 - pow284); + let temp = temp * (pow0 - pow285); + let temp = temp * (pow0 - pow286); + let temp = temp * (pow0 - pow287); + let temp = temp * (pow0 - pow288); + let temp = temp * (pow0 - pow289); + let temp = temp * (pow0 - pow290); + let temp = temp * (pow0 - pow291); + let temp = temp * (pow0 - pow292); + let temp = temp * (pow0 - pow293); + let temp = temp * (pow0 - pow294); + let temp = temp * (pow0 - pow295); + let temp = temp * (pow0 - pow296); + let temp = temp * (pow0 - pow297); + let temp = temp * (pow0 - pow298); + let temp = temp * (pow0 - pow299); + let temp = temp * (pow0 - pow300); + let temp = temp * (pow0 - pow301); + let temp = temp * (pow0 - pow302); + let temp = temp * (pow0 - pow303); + let temp = temp * (pow0 - pow304); + let temp = temp * (pow0 - pow305); + let temp = temp * (pow0 - pow306); + let temp = temp * (pow0 - pow307); + let temp = temp * (pow0 - pow308); + let temp = temp * (pow0 - pow309); + let temp = temp * (pow0 - pow312); + let temp = temp * (pow0 - pow313); + let temp = temp * (pow0 - pow314); + let temp = temp * (pow0 - pow315); + let temp = temp * (pow0 - pow316); + let temp = temp * (pow0 - pow317); + let temp = temp * (pow0 - pow318); + let temp = temp * (pow0 - pow319); + let temp = temp * (pow0 - pow320); + let temp = temp * (pow0 - pow321); + let temp = temp * (pow0 - pow322); + let temp = temp * (pow0 - pow323); + let temp = temp * (pow0 - pow324); + let temp = temp * (pow0 - pow325); + let temp = temp * (pow0 - pow326); + let temp = temp * (pow0 - pow327); + let temp = temp * (pow0 - pow328); + let temp = temp * (pow0 - pow329); + let temp = temp * (pow0 - pow330); + let temp = temp * (pow0 - pow331); + let temp = temp * (pow0 - pow332); + let temp = temp * (pow0 - pow333); + let temp = temp * (pow0 - pow334); + let temp = temp * (pow0 - pow335); + let temp = temp * (pow0 - pow336); + let temp = temp * (pow0 - pow337); + let temp = temp * (pow0 - pow338); + let temp = temp * (pow0 - pow339); + let temp = temp * (pow0 - pow342); + let temp = temp * (pow0 - pow343); + let temp = temp * (pow0 - pow344); + let temp = temp * (pow0 - pow345); + let temp = temp * (pow0 - pow346); + let temp = temp * (pow0 - pow347); + let temp = temp * (pow0 - pow348); + let temp = temp * (pow0 - pow349); + let temp = temp * (pow0 - pow350); + let temp = temp * (pow0 - pow351); + let temp = temp * (pow0 - pow352); + let temp = temp * (pow0 - pow353); + let temp = temp * (pow0 - pow354); + let temp = temp * (pow0 - pow355); + let temp = temp * (pow0 - pow356); + let temp = temp * (pow0 - pow357); + let temp = temp * (pow0 - pow358); + let temp = temp * (pow0 - pow359); + let temp = temp * (pow0 - pow360); + let temp = temp * (pow0 - pow361); + let temp = temp * (pow0 - pow362); + let temp = temp * (pow0 - pow363); + let temp = temp * (pow0 - pow364); + let temp = temp * (pow0 - pow365); + let temp = temp * (pow0 - pow366); + let temp = temp * (pow0 - pow367); + let temp = temp * (pow0 - pow368); + let temp = temp * (pow0 - pow369); + let temp = temp * (pow0 - pow372); + let temp = temp * (pow0 - pow373); + let temp = temp * (pow0 - pow374); + let temp = temp * (pow0 - pow375); + let temp = temp * (pow0 - pow376); + let temp = temp * (pow0 - pow377); + let temp = temp * (pow0 - pow378); + let temp = temp * (pow0 - pow379); + let temp = temp * (pow0 - pow380); + let temp = temp * (pow0 - pow381); + let temp = temp * (pow0 - pow382); + let temp = temp * (pow0 - pow383); + let temp = temp * (pow0 - pow384); + let temp = temp * (pow0 - pow385); + let temp = temp * (pow0 - pow386); + let temp = temp * (pow0 - pow387); + let temp = temp * (pow0 - pow388); + let temp = temp * (pow0 - pow389); + let temp = temp * (pow0 - pow390); + let temp = temp * (pow0 - pow391); + let temp = temp * (pow0 - pow392); + let temp = temp * (pow0 - pow393); + let temp = temp * (pow0 - pow394); + let temp = temp * (pow0 - pow395); + let temp = temp * (pow0 - pow396); + let temp = temp * (pow0 - pow397); + let temp = temp * (pow0 - pow398); + let temp = temp * (pow0 - pow399); + let temp = temp * (pow0 - pow402); + let temp = temp * (pow0 - pow403); + let temp = temp * (pow0 - pow404); + let temp = temp * (pow0 - pow405); + let temp = temp * (pow0 - pow406); + let temp = temp * (pow0 - pow407); + let temp = temp * (pow0 - pow408); + let temp = temp * (pow0 - pow409); + let temp = temp * (pow0 - pow410); + let temp = temp * (pow0 - pow411); + let temp = temp * (pow0 - pow412); + let temp = temp * (pow0 - pow413); + let temp = temp * (pow0 - pow414); + let temp = temp * (pow0 - pow415); + let temp = temp * (pow0 - pow416); + let temp = temp * (pow0 - pow417); + let temp = temp * (pow0 - pow418); + let temp = temp * (pow0 - pow419); + let temp = temp * (pow0 - pow420); + let temp = temp * (pow0 - pow421); + let temp = temp * (pow0 - pow422); + let temp = temp * (pow0 - pow423); + let temp = temp * (pow0 - pow424); + let temp = temp * (pow0 - pow425); + let temp = temp * (pow0 - pow426); + let temp = temp * (pow0 - pow427); + let temp = temp * (pow0 - pow428); + let temp = temp * (pow0 - pow429); + let temp = temp * (pow0 - pow432); + let temp = temp * (pow0 - pow433); + let temp = temp * (pow0 - pow434); + let temp = temp * (pow0 - pow435); + let temp = temp * (pow0 - pow436); + let temp = temp * (pow0 - pow437); + let temp = temp * (pow0 - pow438); + let temp = temp * (pow0 - pow439); + let temp = temp * (pow0 - pow440); + let temp = temp * (pow0 - pow441); + let temp = temp * (pow0 - pow442); + let temp = temp * (pow0 - pow443); + let temp = temp * (pow0 - pow444); + let temp = temp * (pow0 - pow445); + let temp = temp * (pow0 - pow446); + let temp = temp * (pow0 - pow447); + let temp = temp * (pow0 - pow448); + let temp = temp * (pow0 - pow449); + let temp = temp * (pow0 - pow450); + let temp = temp * (pow0 - pow451); + let temp = temp * (pow0 - pow452); + let temp = temp * (pow0 - pow453); + let temp = temp * (pow0 - pow454); + let temp = temp * (pow0 - pow455); + let temp = temp * (pow0 - pow456); + let temp = temp * (pow0 - pow457); + let temp = temp * (pow0 - pow458); + let temp = temp * (pow0 - pow459); + let temp = temp * (pow0 - pow462); + let temp = temp * (pow0 - pow463); + let temp = temp * (pow0 - pow464); + let temp = temp * (pow0 - pow465); + let temp = temp * (pow0 - pow466); + let temp = temp * (pow0 - pow467); + let temp = temp * (pow0 - pow468); + let temp = temp * (pow0 - pow469); + let temp = temp * (pow0 - pow470); + let temp = temp * (pow0 - pow471); + let temp = temp * (pow0 - pow472); + let temp = temp * (pow0 - pow473); + let temp = temp * (pow0 - pow474); + let temp = temp * (pow0 - pow475); + let temp = temp * (pow0 - pow476); + let temp = temp * (pow0 - pow477); + let temp = temp * (pow0 - pow478); + let temp = temp * (pow0 - pow479); + let temp = temp * (pow0 - pow480); + let temp = temp * (pow0 - pow481); + let temp = temp * (pow0 - pow482); + let temp = temp * (pow0 - pow483); + let temp = temp * (pow0 - pow484); + let temp = temp * (pow0 - pow485); + let temp = temp * (pow0 - pow486); + let temp = temp * (pow0 - pow487); + let temp = temp * (pow0 - pow488); + let temp = temp * (pow0 - pow489); + let temp = temp * (pow0 - pow492); + let temp = temp * (pow0 - pow493); + let temp = temp * (pow0 - pow494); + let temp = temp * (pow0 - pow495); + let temp = temp * (pow0 - pow496); + let temp = temp * (pow0 - pow497); + let temp = temp * (pow0 - pow498); + let temp = temp * (pow0 - pow499); + let temp = temp * (pow0 - pow500); + let temp = temp * (pow0 - pow501); + let temp = temp * (pow0 - pow502); + let temp = temp * (pow0 - pow503); + let temp = temp * (pow0 - pow504); + let temp = temp * (pow0 - pow505); + let temp = temp * (pow0 - pow506); + let temp = temp * (pow0 - pow507); + let temp = temp * (pow0 - pow508); + let temp = temp * (pow0 - pow509); + let temp = temp * (pow0 - pow510); + let temp = temp * (pow0 - pow511); + let temp = temp * (pow0 - pow512); + let temp = temp * (pow0 - pow513); + let temp = temp * (pow0 - pow514); + let temp = temp * (pow0 - pow515); + let temp = temp * (pow0 - pow516); + let temp = temp * (pow0 - pow517); + let temp = temp * (pow0 - pow518); + let temp = temp * (pow0 - pow519); + let temp = temp * (pow0 - pow522); + let temp = temp * (pow0 - pow523); + let temp = temp * (pow0 - pow524); + let temp = temp * (pow0 - pow525); + let temp = temp * (pow0 - pow526); + let temp = temp * (pow0 - pow527); + let temp = temp * (pow0 - pow528); + let temp = temp * (pow0 - pow529); + let temp = temp * (pow0 - pow530); + let temp = temp * (pow0 - pow531); + let temp = temp * (pow0 - pow532); + let temp = temp * (pow0 - pow533); + let temp = temp * (pow0 - pow534); + let temp = temp * (pow0 - pow535); + let temp = temp * (pow0 - pow536); + let temp = temp * (pow0 - pow537); + let temp = temp * (pow0 - pow538); + let temp = temp * (pow0 - pow539); + let temp = temp * (pow0 - pow540); + let temp = temp * (pow0 - pow541); + let temp = temp * (pow0 - pow542); + let temp = temp * (pow0 - pow543); + let temp = temp * (pow0 - pow544); + let temp = temp * (pow0 - pow545); + let temp = temp * (pow0 - pow546); + let temp = temp * (pow0 - pow547); + let temp = temp * (pow0 - pow548); + let temp = temp * (pow0 - pow549); + let temp = temp * (pow0 - pow552); + let temp = temp * (pow0 - pow553); + let temp = temp * (pow0 - pow554); + let temp = temp * (pow0 - pow555); + let temp = temp * (pow0 - pow556); + let temp = temp * (pow0 - pow557); + let temp = temp * (pow0 - pow558); + let temp = temp * (pow0 - pow559); + let temp = temp * (pow0 - pow560); + let temp = temp * (pow0 - pow561); + let temp = temp * (pow0 - pow562); + let temp = temp * (pow0 - pow563); + let temp = temp * (pow0 - pow564); + let temp = temp * (pow0 - pow565); + let temp = temp * (pow0 - pow566); + let temp = temp * (pow0 - pow567); + let temp = temp * (pow0 - pow568); + let temp = temp * (pow0 - pow569); + let temp = temp * (pow0 - pow570); + let temp = temp * (pow0 - pow571); + let temp = temp * (pow0 - pow572); + let temp = temp * (pow0 - pow573); + let temp = temp * (pow0 - pow574); + let temp = temp * (pow0 - pow575); + let temp = temp * (pow0 - pow576); + let temp = temp * (pow0 - pow577); + let temp = temp * (pow0 - pow578); + let temp = temp * (pow0 - pow579); + let temp = temp * (pow0 - pow582); + let temp = temp * (pow0 - pow583); + let temp = temp * (pow0 - pow584); + let temp = temp * (pow0 - pow585); + let temp = temp * (pow0 - pow586); + let temp = temp * (pow0 - pow587); + let temp = temp * (pow0 - pow588); + let temp = temp * (pow0 - pow589); + let temp = temp * (pow0 - pow590); + let temp = temp * (pow0 - pow591); + let temp = temp * (pow0 - pow592); + let temp = temp * (pow0 - pow593); + let temp = temp * (pow0 - pow594); + let temp = temp * (pow0 - pow595); + let temp = temp * (pow0 - pow596); + let temp = temp * (pow0 - pow597); + let temp = temp * (pow0 - pow598); + let temp = temp * (pow0 - pow599); + let temp = temp * (pow0 - pow600); + let temp = temp * (pow0 - pow601); + let temp = temp * (pow0 - pow602); + let temp = temp * (pow0 - pow603); + let temp = temp * (pow0 - pow604); + let temp = temp * (pow0 - pow605); + let temp = temp * (pow0 - pow606); + let temp = temp * (pow0 - pow607); + let temp = temp * (pow0 - pow608); + let temp = temp * (pow0 - pow609); + let temp = temp * (pow0 - pow612); + let temp = temp * (pow0 - pow613); + let temp = temp * (pow0 - pow614); + let temp = temp * (pow0 - pow615); + let temp = temp * (pow0 - pow616); + let temp = temp * (pow0 - pow617); + let temp = temp * (pow0 - pow618); + let temp = temp * (pow0 - pow619); + let temp = temp * (pow0 - pow620); + let temp = temp * (pow0 - pow621); + let temp = temp * (pow0 - pow622); + let temp = temp * (pow0 - pow623); + let temp = temp * (pow0 - pow624); + let temp = temp * (pow0 - pow625); + let temp = temp * (pow0 - pow626); + let temp = temp * (pow0 - pow627); + let temp = temp * (pow0 - pow628); + let temp = temp * (pow0 - pow629); + let temp = temp * (pow0 - pow630); + let temp = temp * (pow0 - pow631); + let temp = temp * (pow0 - pow632); + let temp = temp * (pow0 - pow633); + let temp = temp * (pow0 - pow634); + let temp = temp * (pow0 - pow635); + let temp = temp * (pow0 - pow636); + let temp = temp * (pow0 - pow637); + let temp = temp * (pow0 - pow638); + let temp = temp * (pow0 - pow639); + let temp = temp * (pow0 - pow642); + let temp = temp * (pow0 - pow643); + let temp = temp * (pow0 - pow644); + let temp = temp * (pow0 - pow645); + let temp = temp * (pow0 - pow646); + let temp = temp * (pow0 - pow647); + let temp = temp * (pow0 - pow648); + let temp = temp * (pow0 - pow649); + let temp = temp * (pow0 - pow650); + let temp = temp * (pow0 - pow651); + let temp = temp * (pow0 - pow652); + let temp = temp * (pow0 - pow653); + let temp = temp * (pow0 - pow654); + let temp = temp * (pow0 - pow655); + let temp = temp * (pow0 - pow656); + let temp = temp * (pow0 - pow657); + let temp = temp * (pow0 - pow658); + let temp = temp * (pow0 - pow659); + let temp = temp * (pow0 - pow660); + let temp = temp * (pow0 - pow661); + let temp = temp * (pow0 - pow662); + let temp = temp * (pow0 - pow663); + let temp = temp * (pow0 - pow664); + let temp = temp * (pow0 - pow665); + let temp = temp * (pow0 - pow666); + let temp = temp * (pow0 - pow667); + let temp = temp * (pow0 - pow668); + let temp = temp * (pow0 - pow669); + let temp = temp * (pow0 - pow672); + let temp = temp * (pow0 - pow673); + let temp = temp * (pow0 - pow674); + let temp = temp * (pow0 - pow675); + let temp = temp * (pow0 - pow676); + let temp = temp * (pow0 - pow677); + let temp = temp * (pow0 - pow678); + let temp = temp * (pow0 - pow679); + let temp = temp * (pow0 - pow680); + let temp = temp * (pow0 - pow681); + let temp = temp * (pow0 - pow682); + let temp = temp * (pow0 - pow683); + let temp = temp * (pow0 - pow684); + let temp = temp * (pow0 - pow685); + let temp = temp * (pow0 - pow686); + let temp = temp * (pow0 - pow687); + let temp = temp * (pow0 - pow688); + let temp = temp * (pow0 - pow689); + let temp = temp * (pow0 - pow690); + let temp = temp * (pow0 - pow691); + let temp = temp * (pow0 - pow692); + let temp = temp * (pow0 - pow693); + let temp = temp * (pow0 - pow694); + let temp = temp * (pow0 - pow695); + let temp = temp * (pow0 - pow696); + let temp = temp * (pow0 - pow697); + let temp = temp * (pow0 - pow698); + let temp = temp * (pow0 - pow699); + let temp = temp * (pow0 - pow702); + let temp = temp * (pow0 - pow703); + let temp = temp * (pow0 - pow704); + let temp = temp * (pow0 - pow705); + let temp = temp * (pow0 - pow706); + let temp = temp * (pow0 - pow707); + let temp = temp * (pow0 - pow708); + let temp = temp * (pow0 - pow709); + let temp = temp * (pow0 - pow710); + let temp = temp * (pow0 - pow711); + let temp = temp * (pow0 - pow712); + let temp = temp * (pow0 - pow713); + let temp = temp * (pow0 - pow714); + let temp = temp * (pow0 - pow715); + let temp = temp * (pow0 - pow716); + let temp = temp * (pow0 - pow717); + let temp = temp * (pow0 - pow718); + let temp = temp * (pow0 - pow719); + let temp = temp * (pow0 - pow720); + let temp = temp * (pow0 - pow721); + let temp = temp * (pow0 - pow722); + let temp = temp * (pow0 - pow723); + let temp = temp * (pow0 - pow724); + let temp = temp * (pow0 - pow725); + let temp = temp * (pow0 - pow726); + let temp = temp * (pow0 - pow727); + let temp = temp * (pow0 - pow728); + let temp = temp * (pow0 - pow729); + let temp = temp * (pow0 - pow732); + let temp = temp * (pow0 - pow733); + let temp = temp * (pow0 - pow734); + let temp = temp * (pow0 - pow735); + let temp = temp * (pow0 - pow736); + let temp = temp * (pow0 - pow737); + let temp = temp * (pow0 - pow738); + let temp = temp * (pow0 - pow739); + let temp = temp * (pow0 - pow740); + let temp = temp * (pow0 - pow741); + let temp = temp * (pow0 - pow742); + let temp = temp * (pow0 - pow743); + let temp = temp * (pow0 - pow744); + let temp = temp * (pow0 - pow745); + let temp = temp * (pow0 - pow746); + let temp = temp * (pow0 - pow747); + let temp = temp * (pow0 - pow748); + let temp = temp * (pow0 - pow749); + let temp = temp * (pow0 - pow750); + let temp = temp * (pow0 - pow751); + let temp = temp * (pow0 - pow752); + let temp = temp * (pow0 - pow753); + let temp = temp * (pow0 - pow754); + let temp = temp * (pow0 - pow755); + let temp = temp * (pow0 - pow756); + let temp = temp * (pow0 - pow757); + let temp = temp * (pow0 - pow758); + let temp = temp * (pow0 - pow759); + let temp = temp * (pow0 - pow762); + let temp = temp * (pow0 - pow763); + let temp = temp * (pow0 - pow764); + let temp = temp * (pow0 - pow765); + let temp = temp * (pow0 - pow766); + let temp = temp * (pow0 - pow767); + let temp = temp * (pow0 - pow768); + let temp = temp * (pow0 - pow769); + let temp = temp * (pow0 - pow770); + let temp = temp * (pow0 - pow771); + let temp = temp * (pow0 - pow772); + let temp = temp * (pow0 - pow773); + let temp = temp * (pow0 - pow774); + let temp = temp * (pow0 - pow775); + let temp = temp * (pow0 - pow776); + let temp = temp * (pow0 - pow777); + let temp = temp * (pow0 - pow778); + let temp = temp * (pow0 - pow779); + let temp = temp * (pow0 - pow780); + let temp = temp * (pow0 - pow781); + let temp = temp * (pow0 - pow782); + let temp = temp * (pow0 - pow783); + let temp = temp * (pow0 - pow784); + let temp = temp * (pow0 - pow785); + let temp = temp * (pow0 - pow786); + let temp = temp * (pow0 - pow787); + let temp = temp * (pow0 - pow788); + let temp = temp * (pow0 - pow789); + let temp = temp * (domain39); + let domain44 = temp * (domain42); + let temp = domain34; + let domain45 = temp * (domain41); + let domain46 = pow0 - pow2588; + let temp = pow3 - pow2169; + let temp = temp * (pow3 - pow2245); + let temp = temp * (pow3 - pow2321); + let temp = temp * (pow3 - pow2397); + let temp = temp * (pow3 - pow2473); + let temp = temp * (pow3 - pow2549); + let temp = temp * (pow0 - pow2618); + let temp = temp * (pow0 - pow2648); + let temp = temp * (pow0 - pow2678); + let temp = temp * (pow0 - pow2708); + let temp = temp * (pow0 - pow2738); + let temp = temp * (pow0 - pow2768); + let temp = temp * (pow0 - pow2798); + let temp = temp * (pow0 - pow2828); + let temp = temp * (pow0 - pow2858); + let temp = temp * (pow0 - pow2888); + let temp = temp * (pow0 - pow2918); + let temp = temp * (pow0 - pow2948); + let temp = temp * (pow0 - pow2978); + let temp = temp * (pow0 - pow3008); + let temp = temp * (pow0 - pow3038); + let temp = temp * (pow0 - pow3068); + let temp = temp * (pow0 - pow3098); + let temp = temp * (pow0 - pow3128); + let temp = temp * (pow0 - pow3158); + let temp = temp * (pow0 - pow3188); + let temp = temp * (pow0 - pow3218); + let temp = temp * (pow0 - pow3248); + let temp = temp * (pow0 - pow3278); + let temp = temp * (pow0 - pow3308); + let domain47 = temp * (domain46); + let domain48 = pow0 - pow2589; + let temp = pow3 - pow2193; + let temp = temp * (pow3 - pow2269); + let temp = temp * (pow3 - pow2345); + let temp = temp * (pow3 - pow2421); + let temp = temp * (pow3 - pow2497); + let temp = temp * (pow3 - pow2573); + let temp = temp * (pow0 - pow2619); + let temp = temp * (pow0 - pow2649); + let temp = temp * (pow0 - pow2679); + let temp = temp * (pow0 - pow2709); + let temp = temp * (pow0 - pow2739); + let temp = temp * (pow0 - pow2769); + let temp = temp * (pow0 - pow2799); + let temp = temp * (pow0 - pow2829); + let temp = temp * (pow0 - pow2859); + let temp = temp * (pow0 - pow2889); + let temp = temp * (pow0 - pow2919); + let temp = temp * (pow0 - pow2949); + let temp = temp * (pow0 - pow2979); + let temp = temp * (pow0 - pow3009); + let temp = temp * (pow0 - pow3039); + let temp = temp * (pow0 - pow3069); + let temp = temp * (pow0 - pow3099); + let temp = temp * (pow0 - pow3129); + let temp = temp * (pow0 - pow3159); + let temp = temp * (pow0 - pow3189); + let temp = temp * (pow0 - pow3219); + let temp = temp * (pow0 - pow3249); + let temp = temp * (pow0 - pow3279); + let temp = temp * (pow0 - pow3309); + let temp = temp * (pow0 - pow3338); + let temp = temp * (pow0 - pow3339); + let temp = temp * (domain47); + let domain49 = temp * (domain48); + let temp = pow0 - pow2590; + let temp = temp * (pow0 - pow2591); + let temp = temp * (pow0 - pow2592); + let temp = temp * (pow0 - pow2593); + let temp = temp * (pow0 - pow2594); + let domain50 = temp * (pow0 - pow2595); + let temp = pow0 - pow2596; + let temp = temp * (pow0 - pow2597); + let temp = temp * (pow0 - pow2598); + let temp = temp * (pow0 - pow2599); + let temp = temp * (pow0 - pow2600); + let temp = temp * (pow0 - pow2601); + let temp = temp * (pow0 - pow2602); + let temp = temp * (pow0 - pow2603); + let temp = temp * (pow0 - pow2604); + let temp = temp * (pow0 - pow2605); + let temp = temp * (pow0 - pow2606); + let temp = temp * (pow0 - pow2607); + let temp = temp * (pow0 - pow2608); + let temp = temp * (pow0 - pow2609); + let temp = temp * (pow0 - pow2610); + let temp = temp * (pow0 - pow2611); + let domain51 = temp * (domain50); + let temp = pow7 - pow2473; + let temp = temp * (pow7 - pow2549); + let temp = temp * (pow3 - pow2194); + let temp = temp * (pow3 - pow2195); + let temp = temp * (pow3 - pow2196); + let temp = temp * (pow3 - pow2197); + let temp = temp * (pow3 - pow2198); + let temp = temp * (pow3 - pow2199); + let temp = temp * (pow3 - pow2200); + let temp = temp * (pow3 - pow2201); + let temp = temp * (pow3 - pow2202); + let temp = temp * (pow3 - pow2203); + let temp = temp * (pow3 - pow2204); + let temp = temp * (pow3 - pow2205); + let temp = temp * (pow3 - pow2206); + let temp = temp * (pow3 - pow2207); + let temp = temp * (pow3 - pow2208); + let temp = temp * (pow3 - pow2232); + let temp = temp * (pow3 - pow2233); + let temp = temp * (pow3 - pow2234); + let temp = temp * (pow3 - pow2235); + let temp = temp * (pow3 - pow2236); + let temp = temp * (pow3 - pow2237); + let temp = temp * (pow3 - pow2238); + let temp = temp * (pow3 - pow2239); + let temp = temp * (pow3 - pow2240); + let temp = temp * (pow3 - pow2241); + let temp = temp * (pow3 - pow2242); + let temp = temp * (pow3 - pow2243); + let temp = temp * (pow3 - pow2244); + let temp = temp * (pow3 - pow2270); + let temp = temp * (pow3 - pow2271); + let temp = temp * (pow3 - pow2272); + let temp = temp * (pow3 - pow2273); + let temp = temp * (pow3 - pow2274); + let temp = temp * (pow3 - pow2275); + let temp = temp * (pow3 - pow2276); + let temp = temp * (pow3 - pow2277); + let temp = temp * (pow3 - pow2278); + let temp = temp * (pow3 - pow2279); + let temp = temp * (pow3 - pow2280); + let temp = temp * (pow3 - pow2281); + let temp = temp * (pow3 - pow2282); + let temp = temp * (pow3 - pow2283); + let temp = temp * (pow3 - pow2284); + let temp = temp * (pow3 - pow2308); + let temp = temp * (pow3 - pow2309); + let temp = temp * (pow3 - pow2310); + let temp = temp * (pow3 - pow2311); + let temp = temp * (pow3 - pow2312); + let temp = temp * (pow3 - pow2313); + let temp = temp * (pow3 - pow2314); + let temp = temp * (pow3 - pow2315); + let temp = temp * (pow3 - pow2316); + let temp = temp * (pow3 - pow2317); + let temp = temp * (pow3 - pow2318); + let temp = temp * (pow3 - pow2319); + let temp = temp * (pow3 - pow2320); + let temp = temp * (pow3 - pow2346); + let temp = temp * (pow3 - pow2347); + let temp = temp * (pow3 - pow2348); + let temp = temp * (pow3 - pow2349); + let temp = temp * (pow3 - pow2350); + let temp = temp * (pow3 - pow2351); + let temp = temp * (pow3 - pow2352); + let temp = temp * (pow3 - pow2353); + let temp = temp * (pow3 - pow2354); + let temp = temp * (pow3 - pow2355); + let temp = temp * (pow3 - pow2356); + let temp = temp * (pow3 - pow2357); + let temp = temp * (pow3 - pow2358); + let temp = temp * (pow3 - pow2359); + let temp = temp * (pow3 - pow2360); + let temp = temp * (pow3 - pow2384); + let temp = temp * (pow3 - pow2385); + let temp = temp * (pow3 - pow2386); + let temp = temp * (pow3 - pow2387); + let temp = temp * (pow3 - pow2388); + let temp = temp * (pow3 - pow2389); + let temp = temp * (pow3 - pow2390); + let temp = temp * (pow3 - pow2391); + let temp = temp * (pow3 - pow2392); + let temp = temp * (pow3 - pow2393); + let temp = temp * (pow3 - pow2394); + let temp = temp * (pow3 - pow2395); + let temp = temp * (pow3 - pow2396); + let temp = temp * (pow3 - pow2422); + let temp = temp * (pow3 - pow2423); + let temp = temp * (pow3 - pow2424); + let temp = temp * (pow3 - pow2425); + let temp = temp * (pow3 - pow2426); + let temp = temp * (pow3 - pow2427); + let temp = temp * (pow3 - pow2428); + let temp = temp * (pow3 - pow2429); + let temp = temp * (pow3 - pow2430); + let temp = temp * (pow3 - pow2431); + let temp = temp * (pow3 - pow2432); + let temp = temp * (pow3 - pow2433); + let temp = temp * (pow3 - pow2434); + let temp = temp * (pow3 - pow2435); + let temp = temp * (pow3 - pow2436); + let temp = temp * (pow3 - pow2460); + let temp = temp * (pow3 - pow2461); + let temp = temp * (pow3 - pow2462); + let temp = temp * (pow3 - pow2463); + let temp = temp * (pow3 - pow2464); + let temp = temp * (pow3 - pow2465); + let temp = temp * (pow3 - pow2466); + let temp = temp * (pow3 - pow2467); + let temp = temp * (pow3 - pow2468); + let temp = temp * (pow3 - pow2469); + let temp = temp * (pow3 - pow2470); + let temp = temp * (pow3 - pow2471); + let temp = temp * (pow3 - pow2472); + let temp = temp * (pow3 - pow2498); + let temp = temp * (pow3 - pow2499); + let temp = temp * (pow3 - pow2500); + let temp = temp * (pow3 - pow2501); + let temp = temp * (pow3 - pow2502); + let temp = temp * (pow3 - pow2503); + let temp = temp * (pow3 - pow2504); + let temp = temp * (pow3 - pow2505); + let temp = temp * (pow3 - pow2506); + let temp = temp * (pow3 - pow2507); + let temp = temp * (pow3 - pow2508); + let temp = temp * (pow3 - pow2509); + let temp = temp * (pow3 - pow2510); + let temp = temp * (pow3 - pow2511); + let temp = temp * (pow3 - pow2512); + let temp = temp * (pow3 - pow2536); + let temp = temp * (pow3 - pow2537); + let temp = temp * (pow3 - pow2538); + let temp = temp * (pow3 - pow2539); + let temp = temp * (pow3 - pow2540); + let temp = temp * (pow3 - pow2541); + let temp = temp * (pow3 - pow2542); + let temp = temp * (pow3 - pow2543); + let temp = temp * (pow3 - pow2544); + let temp = temp * (pow3 - pow2545); + let temp = temp * (pow3 - pow2546); + let temp = temp * (pow3 - pow2547); + let temp = temp * (pow3 - pow2548); + let temp = temp * (pow3 - pow2574); + let temp = temp * (pow3 - pow2575); + let temp = temp * (pow3 - pow2576); + let temp = temp * (pow3 - pow2577); + let temp = temp * (pow3 - pow2578); + let temp = temp * (pow3 - pow2579); + let temp = temp * (pow3 - pow2580); + let temp = temp * (pow3 - pow2581); + let temp = temp * (pow3 - pow2582); + let temp = temp * (pow3 - pow2583); + let temp = temp * (pow3 - pow2584); + let temp = temp * (pow3 - pow2585); + let temp = temp * (pow3 - pow2586); + let temp = temp * (pow3 - pow2587); + let temp = temp * (pow3 - pow2588); + let temp = temp * (pow3 - pow2648); + let temp = temp * (pow3 - pow2708); + let temp = temp * (pow3 - pow2768); + let temp = temp * (pow3 - pow2828); + let temp = temp * (pow3 - pow2888); + let temp = temp * (pow3 - pow2948); + let temp = temp * (pow3 - pow3008); + let temp = temp * (pow3 - pow3068); + let temp = temp * (pow3 - pow3128); + let temp = temp * (pow3 - pow3188); + let temp = temp * (pow3 - pow3248); + let temp = temp * (pow3 - pow3308); + let temp = temp * (pow3 - pow3368); + let temp = temp * (pow0 - pow2612); + let temp = temp * (pow0 - pow2613); + let temp = temp * (pow0 - pow2614); + let temp = temp * (pow0 - pow2615); + let temp = temp * (pow0 - pow2616); + let temp = temp * (pow0 - pow2617); + let temp = temp * (pow0 - pow2620); + let temp = temp * (pow0 - pow2621); + let temp = temp * (pow0 - pow2622); + let temp = temp * (pow0 - pow2623); + let temp = temp * (pow0 - pow2624); + let temp = temp * (pow0 - pow2625); + let temp = temp * (pow0 - pow2626); + let temp = temp * (pow0 - pow2627); + let temp = temp * (pow0 - pow2628); + let temp = temp * (pow0 - pow2629); + let temp = temp * (pow0 - pow2630); + let temp = temp * (pow0 - pow2631); + let temp = temp * (pow0 - pow2632); + let temp = temp * (pow0 - pow2633); + let temp = temp * (pow0 - pow2634); + let temp = temp * (pow0 - pow2635); + let temp = temp * (pow0 - pow2636); + let temp = temp * (pow0 - pow2637); + let temp = temp * (pow0 - pow2638); + let temp = temp * (pow0 - pow2639); + let temp = temp * (pow0 - pow2640); + let temp = temp * (pow0 - pow2641); + let temp = temp * (pow0 - pow2642); + let temp = temp * (pow0 - pow2643); + let temp = temp * (pow0 - pow2644); + let temp = temp * (pow0 - pow2645); + let temp = temp * (pow0 - pow2646); + let temp = temp * (pow0 - pow2647); + let temp = temp * (pow0 - pow2650); + let temp = temp * (pow0 - pow2651); + let temp = temp * (pow0 - pow2652); + let temp = temp * (pow0 - pow2653); + let temp = temp * (pow0 - pow2654); + let temp = temp * (pow0 - pow2655); + let temp = temp * (pow0 - pow2656); + let temp = temp * (pow0 - pow2657); + let temp = temp * (pow0 - pow2658); + let temp = temp * (pow0 - pow2659); + let temp = temp * (pow0 - pow2660); + let temp = temp * (pow0 - pow2661); + let temp = temp * (pow0 - pow2662); + let temp = temp * (pow0 - pow2663); + let temp = temp * (pow0 - pow2664); + let temp = temp * (pow0 - pow2665); + let temp = temp * (pow0 - pow2666); + let temp = temp * (pow0 - pow2667); + let temp = temp * (pow0 - pow2668); + let temp = temp * (pow0 - pow2669); + let temp = temp * (pow0 - pow2670); + let temp = temp * (pow0 - pow2671); + let temp = temp * (pow0 - pow2672); + let temp = temp * (pow0 - pow2673); + let temp = temp * (pow0 - pow2674); + let temp = temp * (pow0 - pow2675); + let temp = temp * (pow0 - pow2676); + let temp = temp * (pow0 - pow2677); + let temp = temp * (pow0 - pow2680); + let temp = temp * (pow0 - pow2681); + let temp = temp * (pow0 - pow2682); + let temp = temp * (pow0 - pow2683); + let temp = temp * (pow0 - pow2684); + let temp = temp * (pow0 - pow2685); + let temp = temp * (pow0 - pow2686); + let temp = temp * (pow0 - pow2687); + let temp = temp * (pow0 - pow2688); + let temp = temp * (pow0 - pow2689); + let temp = temp * (pow0 - pow2690); + let temp = temp * (pow0 - pow2691); + let temp = temp * (pow0 - pow2692); + let temp = temp * (pow0 - pow2693); + let temp = temp * (pow0 - pow2694); + let temp = temp * (pow0 - pow2695); + let temp = temp * (pow0 - pow2696); + let temp = temp * (pow0 - pow2697); + let temp = temp * (pow0 - pow2698); + let temp = temp * (pow0 - pow2699); + let temp = temp * (pow0 - pow2700); + let temp = temp * (pow0 - pow2701); + let temp = temp * (pow0 - pow2702); + let temp = temp * (pow0 - pow2703); + let temp = temp * (pow0 - pow2704); + let temp = temp * (pow0 - pow2705); + let temp = temp * (pow0 - pow2706); + let temp = temp * (pow0 - pow2707); + let temp = temp * (pow0 - pow2710); + let temp = temp * (pow0 - pow2711); + let temp = temp * (pow0 - pow2712); + let temp = temp * (pow0 - pow2713); + let temp = temp * (pow0 - pow2714); + let temp = temp * (pow0 - pow2715); + let temp = temp * (pow0 - pow2716); + let temp = temp * (pow0 - pow2717); + let temp = temp * (pow0 - pow2718); + let temp = temp * (pow0 - pow2719); + let temp = temp * (pow0 - pow2720); + let temp = temp * (pow0 - pow2721); + let temp = temp * (pow0 - pow2722); + let temp = temp * (pow0 - pow2723); + let temp = temp * (pow0 - pow2724); + let temp = temp * (pow0 - pow2725); + let temp = temp * (pow0 - pow2726); + let temp = temp * (pow0 - pow2727); + let temp = temp * (pow0 - pow2728); + let temp = temp * (pow0 - pow2729); + let temp = temp * (pow0 - pow2730); + let temp = temp * (pow0 - pow2731); + let temp = temp * (pow0 - pow2732); + let temp = temp * (pow0 - pow2733); + let temp = temp * (pow0 - pow2734); + let temp = temp * (pow0 - pow2735); + let temp = temp * (pow0 - pow2736); + let temp = temp * (pow0 - pow2737); + let temp = temp * (pow0 - pow2740); + let temp = temp * (pow0 - pow2741); + let temp = temp * (pow0 - pow2742); + let temp = temp * (pow0 - pow2743); + let temp = temp * (pow0 - pow2744); + let temp = temp * (pow0 - pow2745); + let temp = temp * (pow0 - pow2746); + let temp = temp * (pow0 - pow2747); + let temp = temp * (pow0 - pow2748); + let temp = temp * (pow0 - pow2749); + let temp = temp * (pow0 - pow2750); + let temp = temp * (pow0 - pow2751); + let temp = temp * (pow0 - pow2752); + let temp = temp * (pow0 - pow2753); + let temp = temp * (pow0 - pow2754); + let temp = temp * (pow0 - pow2755); + let temp = temp * (pow0 - pow2756); + let temp = temp * (pow0 - pow2757); + let temp = temp * (pow0 - pow2758); + let temp = temp * (pow0 - pow2759); + let temp = temp * (pow0 - pow2760); + let temp = temp * (pow0 - pow2761); + let temp = temp * (pow0 - pow2762); + let temp = temp * (pow0 - pow2763); + let temp = temp * (pow0 - pow2764); + let temp = temp * (pow0 - pow2765); + let temp = temp * (pow0 - pow2766); + let temp = temp * (pow0 - pow2767); + let temp = temp * (pow0 - pow2770); + let temp = temp * (pow0 - pow2771); + let temp = temp * (pow0 - pow2772); + let temp = temp * (pow0 - pow2773); + let temp = temp * (pow0 - pow2774); + let temp = temp * (pow0 - pow2775); + let temp = temp * (pow0 - pow2776); + let temp = temp * (pow0 - pow2777); + let temp = temp * (pow0 - pow2778); + let temp = temp * (pow0 - pow2779); + let temp = temp * (pow0 - pow2780); + let temp = temp * (pow0 - pow2781); + let temp = temp * (pow0 - pow2782); + let temp = temp * (pow0 - pow2783); + let temp = temp * (pow0 - pow2784); + let temp = temp * (pow0 - pow2785); + let temp = temp * (pow0 - pow2786); + let temp = temp * (pow0 - pow2787); + let temp = temp * (pow0 - pow2788); + let temp = temp * (pow0 - pow2789); + let temp = temp * (pow0 - pow2790); + let temp = temp * (pow0 - pow2791); + let temp = temp * (pow0 - pow2792); + let temp = temp * (pow0 - pow2793); + let temp = temp * (pow0 - pow2794); + let temp = temp * (pow0 - pow2795); + let temp = temp * (pow0 - pow2796); + let temp = temp * (pow0 - pow2797); + let temp = temp * (pow0 - pow2800); + let temp = temp * (pow0 - pow2801); + let temp = temp * (pow0 - pow2802); + let temp = temp * (pow0 - pow2803); + let temp = temp * (pow0 - pow2804); + let temp = temp * (pow0 - pow2805); + let temp = temp * (pow0 - pow2806); + let temp = temp * (pow0 - pow2807); + let temp = temp * (pow0 - pow2808); + let temp = temp * (pow0 - pow2809); + let temp = temp * (pow0 - pow2810); + let temp = temp * (pow0 - pow2811); + let temp = temp * (pow0 - pow2812); + let temp = temp * (pow0 - pow2813); + let temp = temp * (pow0 - pow2814); + let temp = temp * (pow0 - pow2815); + let temp = temp * (pow0 - pow2816); + let temp = temp * (pow0 - pow2817); + let temp = temp * (pow0 - pow2818); + let temp = temp * (pow0 - pow2819); + let temp = temp * (pow0 - pow2820); + let temp = temp * (pow0 - pow2821); + let temp = temp * (pow0 - pow2822); + let temp = temp * (pow0 - pow2823); + let temp = temp * (pow0 - pow2824); + let temp = temp * (pow0 - pow2825); + let temp = temp * (pow0 - pow2826); + let temp = temp * (pow0 - pow2827); + let temp = temp * (pow0 - pow2830); + let temp = temp * (pow0 - pow2831); + let temp = temp * (pow0 - pow2832); + let temp = temp * (pow0 - pow2833); + let temp = temp * (pow0 - pow2834); + let temp = temp * (pow0 - pow2835); + let temp = temp * (pow0 - pow2836); + let temp = temp * (pow0 - pow2837); + let temp = temp * (pow0 - pow2838); + let temp = temp * (pow0 - pow2839); + let temp = temp * (pow0 - pow2840); + let temp = temp * (pow0 - pow2841); + let temp = temp * (pow0 - pow2842); + let temp = temp * (pow0 - pow2843); + let temp = temp * (pow0 - pow2844); + let temp = temp * (pow0 - pow2845); + let temp = temp * (pow0 - pow2846); + let temp = temp * (pow0 - pow2847); + let temp = temp * (pow0 - pow2848); + let temp = temp * (pow0 - pow2849); + let temp = temp * (pow0 - pow2850); + let temp = temp * (pow0 - pow2851); + let temp = temp * (pow0 - pow2852); + let temp = temp * (pow0 - pow2853); + let temp = temp * (pow0 - pow2854); + let temp = temp * (pow0 - pow2855); + let temp = temp * (pow0 - pow2856); + let temp = temp * (pow0 - pow2857); + let temp = temp * (pow0 - pow2860); + let temp = temp * (pow0 - pow2861); + let temp = temp * (pow0 - pow2862); + let temp = temp * (pow0 - pow2863); + let temp = temp * (pow0 - pow2864); + let temp = temp * (pow0 - pow2865); + let temp = temp * (pow0 - pow2866); + let temp = temp * (pow0 - pow2867); + let temp = temp * (pow0 - pow2868); + let temp = temp * (pow0 - pow2869); + let temp = temp * (pow0 - pow2870); + let temp = temp * (pow0 - pow2871); + let temp = temp * (pow0 - pow2872); + let temp = temp * (pow0 - pow2873); + let temp = temp * (pow0 - pow2874); + let temp = temp * (pow0 - pow2875); + let temp = temp * (pow0 - pow2876); + let temp = temp * (pow0 - pow2877); + let temp = temp * (pow0 - pow2878); + let temp = temp * (pow0 - pow2879); + let temp = temp * (pow0 - pow2880); + let temp = temp * (pow0 - pow2881); + let temp = temp * (pow0 - pow2882); + let temp = temp * (pow0 - pow2883); + let temp = temp * (pow0 - pow2884); + let temp = temp * (pow0 - pow2885); + let temp = temp * (pow0 - pow2886); + let temp = temp * (pow0 - pow2887); + let temp = temp * (pow0 - pow2890); + let temp = temp * (pow0 - pow2891); + let temp = temp * (pow0 - pow2892); + let temp = temp * (pow0 - pow2893); + let temp = temp * (pow0 - pow2894); + let temp = temp * (pow0 - pow2895); + let temp = temp * (pow0 - pow2896); + let temp = temp * (pow0 - pow2897); + let temp = temp * (pow0 - pow2898); + let temp = temp * (pow0 - pow2899); + let temp = temp * (pow0 - pow2900); + let temp = temp * (pow0 - pow2901); + let temp = temp * (pow0 - pow2902); + let temp = temp * (pow0 - pow2903); + let temp = temp * (pow0 - pow2904); + let temp = temp * (pow0 - pow2905); + let temp = temp * (pow0 - pow2906); + let temp = temp * (pow0 - pow2907); + let temp = temp * (pow0 - pow2908); + let temp = temp * (pow0 - pow2909); + let temp = temp * (pow0 - pow2910); + let temp = temp * (pow0 - pow2911); + let temp = temp * (pow0 - pow2912); + let temp = temp * (pow0 - pow2913); + let temp = temp * (pow0 - pow2914); + let temp = temp * (pow0 - pow2915); + let temp = temp * (pow0 - pow2916); + let temp = temp * (pow0 - pow2917); + let temp = temp * (pow0 - pow2920); + let temp = temp * (pow0 - pow2921); + let temp = temp * (pow0 - pow2922); + let temp = temp * (pow0 - pow2923); + let temp = temp * (pow0 - pow2924); + let temp = temp * (pow0 - pow2925); + let temp = temp * (pow0 - pow2926); + let temp = temp * (pow0 - pow2927); + let temp = temp * (pow0 - pow2928); + let temp = temp * (pow0 - pow2929); + let temp = temp * (pow0 - pow2930); + let temp = temp * (pow0 - pow2931); + let temp = temp * (pow0 - pow2932); + let temp = temp * (pow0 - pow2933); + let temp = temp * (pow0 - pow2934); + let temp = temp * (pow0 - pow2935); + let temp = temp * (pow0 - pow2936); + let temp = temp * (pow0 - pow2937); + let temp = temp * (pow0 - pow2938); + let temp = temp * (pow0 - pow2939); + let temp = temp * (pow0 - pow2940); + let temp = temp * (pow0 - pow2941); + let temp = temp * (pow0 - pow2942); + let temp = temp * (pow0 - pow2943); + let temp = temp * (pow0 - pow2944); + let temp = temp * (pow0 - pow2945); + let temp = temp * (pow0 - pow2946); + let temp = temp * (pow0 - pow2947); + let temp = temp * (pow0 - pow2950); + let temp = temp * (pow0 - pow2951); + let temp = temp * (pow0 - pow2952); + let temp = temp * (pow0 - pow2953); + let temp = temp * (pow0 - pow2954); + let temp = temp * (pow0 - pow2955); + let temp = temp * (pow0 - pow2956); + let temp = temp * (pow0 - pow2957); + let temp = temp * (pow0 - pow2958); + let temp = temp * (pow0 - pow2959); + let temp = temp * (pow0 - pow2960); + let temp = temp * (pow0 - pow2961); + let temp = temp * (pow0 - pow2962); + let temp = temp * (pow0 - pow2963); + let temp = temp * (pow0 - pow2964); + let temp = temp * (pow0 - pow2965); + let temp = temp * (pow0 - pow2966); + let temp = temp * (pow0 - pow2967); + let temp = temp * (pow0 - pow2968); + let temp = temp * (pow0 - pow2969); + let temp = temp * (pow0 - pow2970); + let temp = temp * (pow0 - pow2971); + let temp = temp * (pow0 - pow2972); + let temp = temp * (pow0 - pow2973); + let temp = temp * (pow0 - pow2974); + let temp = temp * (pow0 - pow2975); + let temp = temp * (pow0 - pow2976); + let temp = temp * (pow0 - pow2977); + let temp = temp * (pow0 - pow2980); + let temp = temp * (pow0 - pow2981); + let temp = temp * (pow0 - pow2982); + let temp = temp * (pow0 - pow2983); + let temp = temp * (pow0 - pow2984); + let temp = temp * (pow0 - pow2985); + let temp = temp * (pow0 - pow2986); + let temp = temp * (pow0 - pow2987); + let temp = temp * (pow0 - pow2988); + let temp = temp * (pow0 - pow2989); + let temp = temp * (pow0 - pow2990); + let temp = temp * (pow0 - pow2991); + let temp = temp * (pow0 - pow2992); + let temp = temp * (pow0 - pow2993); + let temp = temp * (pow0 - pow2994); + let temp = temp * (pow0 - pow2995); + let temp = temp * (pow0 - pow2996); + let temp = temp * (pow0 - pow2997); + let temp = temp * (pow0 - pow2998); + let temp = temp * (pow0 - pow2999); + let temp = temp * (pow0 - pow3000); + let temp = temp * (pow0 - pow3001); + let temp = temp * (pow0 - pow3002); + let temp = temp * (pow0 - pow3003); + let temp = temp * (pow0 - pow3004); + let temp = temp * (pow0 - pow3005); + let temp = temp * (pow0 - pow3006); + let temp = temp * (pow0 - pow3007); + let temp = temp * (pow0 - pow3010); + let temp = temp * (pow0 - pow3011); + let temp = temp * (pow0 - pow3012); + let temp = temp * (pow0 - pow3013); + let temp = temp * (pow0 - pow3014); + let temp = temp * (pow0 - pow3015); + let temp = temp * (pow0 - pow3016); + let temp = temp * (pow0 - pow3017); + let temp = temp * (pow0 - pow3018); + let temp = temp * (pow0 - pow3019); + let temp = temp * (pow0 - pow3020); + let temp = temp * (pow0 - pow3021); + let temp = temp * (pow0 - pow3022); + let temp = temp * (pow0 - pow3023); + let temp = temp * (pow0 - pow3024); + let temp = temp * (pow0 - pow3025); + let temp = temp * (pow0 - pow3026); + let temp = temp * (pow0 - pow3027); + let temp = temp * (pow0 - pow3028); + let temp = temp * (pow0 - pow3029); + let temp = temp * (pow0 - pow3030); + let temp = temp * (pow0 - pow3031); + let temp = temp * (pow0 - pow3032); + let temp = temp * (pow0 - pow3033); + let temp = temp * (pow0 - pow3034); + let temp = temp * (pow0 - pow3035); + let temp = temp * (pow0 - pow3036); + let temp = temp * (pow0 - pow3037); + let temp = temp * (pow0 - pow3040); + let temp = temp * (pow0 - pow3041); + let temp = temp * (pow0 - pow3042); + let temp = temp * (pow0 - pow3043); + let temp = temp * (pow0 - pow3044); + let temp = temp * (pow0 - pow3045); + let temp = temp * (pow0 - pow3046); + let temp = temp * (pow0 - pow3047); + let temp = temp * (pow0 - pow3048); + let temp = temp * (pow0 - pow3049); + let temp = temp * (pow0 - pow3050); + let temp = temp * (pow0 - pow3051); + let temp = temp * (pow0 - pow3052); + let temp = temp * (pow0 - pow3053); + let temp = temp * (pow0 - pow3054); + let temp = temp * (pow0 - pow3055); + let temp = temp * (pow0 - pow3056); + let temp = temp * (pow0 - pow3057); + let temp = temp * (pow0 - pow3058); + let temp = temp * (pow0 - pow3059); + let temp = temp * (pow0 - pow3060); + let temp = temp * (pow0 - pow3061); + let temp = temp * (pow0 - pow3062); + let temp = temp * (pow0 - pow3063); + let temp = temp * (pow0 - pow3064); + let temp = temp * (pow0 - pow3065); + let temp = temp * (pow0 - pow3066); + let temp = temp * (pow0 - pow3067); + let temp = temp * (pow0 - pow3070); + let temp = temp * (pow0 - pow3071); + let temp = temp * (pow0 - pow3072); + let temp = temp * (pow0 - pow3073); + let temp = temp * (pow0 - pow3074); + let temp = temp * (pow0 - pow3075); + let temp = temp * (pow0 - pow3076); + let temp = temp * (pow0 - pow3077); + let temp = temp * (pow0 - pow3078); + let temp = temp * (pow0 - pow3079); + let temp = temp * (pow0 - pow3080); + let temp = temp * (pow0 - pow3081); + let temp = temp * (pow0 - pow3082); + let temp = temp * (pow0 - pow3083); + let temp = temp * (pow0 - pow3084); + let temp = temp * (pow0 - pow3085); + let temp = temp * (pow0 - pow3086); + let temp = temp * (pow0 - pow3087); + let temp = temp * (pow0 - pow3088); + let temp = temp * (pow0 - pow3089); + let temp = temp * (pow0 - pow3090); + let temp = temp * (pow0 - pow3091); + let temp = temp * (pow0 - pow3092); + let temp = temp * (pow0 - pow3093); + let temp = temp * (pow0 - pow3094); + let temp = temp * (pow0 - pow3095); + let temp = temp * (pow0 - pow3096); + let temp = temp * (pow0 - pow3097); + let temp = temp * (pow0 - pow3100); + let temp = temp * (pow0 - pow3101); + let temp = temp * (pow0 - pow3102); + let temp = temp * (pow0 - pow3103); + let temp = temp * (pow0 - pow3104); + let temp = temp * (pow0 - pow3105); + let temp = temp * (pow0 - pow3106); + let temp = temp * (pow0 - pow3107); + let temp = temp * (pow0 - pow3108); + let temp = temp * (pow0 - pow3109); + let temp = temp * (pow0 - pow3110); + let temp = temp * (pow0 - pow3111); + let temp = temp * (pow0 - pow3112); + let temp = temp * (pow0 - pow3113); + let temp = temp * (pow0 - pow3114); + let temp = temp * (pow0 - pow3115); + let temp = temp * (pow0 - pow3116); + let temp = temp * (pow0 - pow3117); + let temp = temp * (pow0 - pow3118); + let temp = temp * (pow0 - pow3119); + let temp = temp * (pow0 - pow3120); + let temp = temp * (pow0 - pow3121); + let temp = temp * (pow0 - pow3122); + let temp = temp * (pow0 - pow3123); + let temp = temp * (pow0 - pow3124); + let temp = temp * (pow0 - pow3125); + let temp = temp * (pow0 - pow3126); + let temp = temp * (pow0 - pow3127); + let temp = temp * (pow0 - pow3130); + let temp = temp * (pow0 - pow3131); + let temp = temp * (pow0 - pow3132); + let temp = temp * (pow0 - pow3133); + let temp = temp * (pow0 - pow3134); + let temp = temp * (pow0 - pow3135); + let temp = temp * (pow0 - pow3136); + let temp = temp * (pow0 - pow3137); + let temp = temp * (pow0 - pow3138); + let temp = temp * (pow0 - pow3139); + let temp = temp * (pow0 - pow3140); + let temp = temp * (pow0 - pow3141); + let temp = temp * (pow0 - pow3142); + let temp = temp * (pow0 - pow3143); + let temp = temp * (pow0 - pow3144); + let temp = temp * (pow0 - pow3145); + let temp = temp * (pow0 - pow3146); + let temp = temp * (pow0 - pow3147); + let temp = temp * (pow0 - pow3148); + let temp = temp * (pow0 - pow3149); + let temp = temp * (pow0 - pow3150); + let temp = temp * (pow0 - pow3151); + let temp = temp * (pow0 - pow3152); + let temp = temp * (pow0 - pow3153); + let temp = temp * (pow0 - pow3154); + let temp = temp * (pow0 - pow3155); + let temp = temp * (pow0 - pow3156); + let temp = temp * (pow0 - pow3157); + let temp = temp * (pow0 - pow3160); + let temp = temp * (pow0 - pow3161); + let temp = temp * (pow0 - pow3162); + let temp = temp * (pow0 - pow3163); + let temp = temp * (pow0 - pow3164); + let temp = temp * (pow0 - pow3165); + let temp = temp * (pow0 - pow3166); + let temp = temp * (pow0 - pow3167); + let temp = temp * (pow0 - pow3168); + let temp = temp * (pow0 - pow3169); + let temp = temp * (pow0 - pow3170); + let temp = temp * (pow0 - pow3171); + let temp = temp * (pow0 - pow3172); + let temp = temp * (pow0 - pow3173); + let temp = temp * (pow0 - pow3174); + let temp = temp * (pow0 - pow3175); + let temp = temp * (pow0 - pow3176); + let temp = temp * (pow0 - pow3177); + let temp = temp * (pow0 - pow3178); + let temp = temp * (pow0 - pow3179); + let temp = temp * (pow0 - pow3180); + let temp = temp * (pow0 - pow3181); + let temp = temp * (pow0 - pow3182); + let temp = temp * (pow0 - pow3183); + let temp = temp * (pow0 - pow3184); + let temp = temp * (pow0 - pow3185); + let temp = temp * (pow0 - pow3186); + let temp = temp * (pow0 - pow3187); + let temp = temp * (pow0 - pow3190); + let temp = temp * (pow0 - pow3191); + let temp = temp * (pow0 - pow3192); + let temp = temp * (pow0 - pow3193); + let temp = temp * (pow0 - pow3194); + let temp = temp * (pow0 - pow3195); + let temp = temp * (pow0 - pow3196); + let temp = temp * (pow0 - pow3197); + let temp = temp * (pow0 - pow3198); + let temp = temp * (pow0 - pow3199); + let temp = temp * (pow0 - pow3200); + let temp = temp * (pow0 - pow3201); + let temp = temp * (pow0 - pow3202); + let temp = temp * (pow0 - pow3203); + let temp = temp * (pow0 - pow3204); + let temp = temp * (pow0 - pow3205); + let temp = temp * (pow0 - pow3206); + let temp = temp * (pow0 - pow3207); + let temp = temp * (pow0 - pow3208); + let temp = temp * (pow0 - pow3209); + let temp = temp * (pow0 - pow3210); + let temp = temp * (pow0 - pow3211); + let temp = temp * (pow0 - pow3212); + let temp = temp * (pow0 - pow3213); + let temp = temp * (pow0 - pow3214); + let temp = temp * (pow0 - pow3215); + let temp = temp * (pow0 - pow3216); + let temp = temp * (pow0 - pow3217); + let temp = temp * (pow0 - pow3220); + let temp = temp * (pow0 - pow3221); + let temp = temp * (pow0 - pow3222); + let temp = temp * (pow0 - pow3223); + let temp = temp * (pow0 - pow3224); + let temp = temp * (pow0 - pow3225); + let temp = temp * (pow0 - pow3226); + let temp = temp * (pow0 - pow3227); + let temp = temp * (pow0 - pow3228); + let temp = temp * (pow0 - pow3229); + let temp = temp * (pow0 - pow3230); + let temp = temp * (pow0 - pow3231); + let temp = temp * (pow0 - pow3232); + let temp = temp * (pow0 - pow3233); + let temp = temp * (pow0 - pow3234); + let temp = temp * (pow0 - pow3235); + let temp = temp * (pow0 - pow3236); + let temp = temp * (pow0 - pow3237); + let temp = temp * (pow0 - pow3238); + let temp = temp * (pow0 - pow3239); + let temp = temp * (pow0 - pow3240); + let temp = temp * (pow0 - pow3241); + let temp = temp * (pow0 - pow3242); + let temp = temp * (pow0 - pow3243); + let temp = temp * (pow0 - pow3244); + let temp = temp * (pow0 - pow3245); + let temp = temp * (pow0 - pow3246); + let temp = temp * (pow0 - pow3247); + let temp = temp * (pow0 - pow3250); + let temp = temp * (pow0 - pow3251); + let temp = temp * (pow0 - pow3252); + let temp = temp * (pow0 - pow3253); + let temp = temp * (pow0 - pow3254); + let temp = temp * (pow0 - pow3255); + let temp = temp * (pow0 - pow3256); + let temp = temp * (pow0 - pow3257); + let temp = temp * (pow0 - pow3258); + let temp = temp * (pow0 - pow3259); + let temp = temp * (pow0 - pow3260); + let temp = temp * (pow0 - pow3261); + let temp = temp * (pow0 - pow3262); + let temp = temp * (pow0 - pow3263); + let temp = temp * (pow0 - pow3264); + let temp = temp * (pow0 - pow3265); + let temp = temp * (pow0 - pow3266); + let temp = temp * (pow0 - pow3267); + let temp = temp * (pow0 - pow3268); + let temp = temp * (pow0 - pow3269); + let temp = temp * (pow0 - pow3270); + let temp = temp * (pow0 - pow3271); + let temp = temp * (pow0 - pow3272); + let temp = temp * (pow0 - pow3273); + let temp = temp * (pow0 - pow3274); + let temp = temp * (pow0 - pow3275); + let temp = temp * (pow0 - pow3276); + let temp = temp * (pow0 - pow3277); + let temp = temp * (pow0 - pow3280); + let temp = temp * (pow0 - pow3281); + let temp = temp * (pow0 - pow3282); + let temp = temp * (pow0 - pow3283); + let temp = temp * (pow0 - pow3284); + let temp = temp * (pow0 - pow3285); + let temp = temp * (pow0 - pow3286); + let temp = temp * (pow0 - pow3287); + let temp = temp * (pow0 - pow3288); + let temp = temp * (pow0 - pow3289); + let temp = temp * (pow0 - pow3290); + let temp = temp * (pow0 - pow3291); + let temp = temp * (pow0 - pow3292); + let temp = temp * (pow0 - pow3293); + let temp = temp * (pow0 - pow3294); + let temp = temp * (pow0 - pow3295); + let temp = temp * (pow0 - pow3296); + let temp = temp * (pow0 - pow3297); + let temp = temp * (pow0 - pow3298); + let temp = temp * (pow0 - pow3299); + let temp = temp * (pow0 - pow3300); + let temp = temp * (pow0 - pow3301); + let temp = temp * (pow0 - pow3302); + let temp = temp * (pow0 - pow3303); + let temp = temp * (pow0 - pow3304); + let temp = temp * (pow0 - pow3305); + let temp = temp * (pow0 - pow3306); + let temp = temp * (pow0 - pow3307); + let temp = temp * (pow0 - pow3310); + let temp = temp * (pow0 - pow3311); + let temp = temp * (pow0 - pow3312); + let temp = temp * (pow0 - pow3313); + let temp = temp * (pow0 - pow3314); + let temp = temp * (pow0 - pow3315); + let temp = temp * (pow0 - pow3316); + let temp = temp * (pow0 - pow3317); + let temp = temp * (pow0 - pow3318); + let temp = temp * (pow0 - pow3319); + let temp = temp * (pow0 - pow3320); + let temp = temp * (pow0 - pow3321); + let temp = temp * (pow0 - pow3322); + let temp = temp * (pow0 - pow3323); + let temp = temp * (pow0 - pow3324); + let temp = temp * (pow0 - pow3325); + let temp = temp * (pow0 - pow3326); + let temp = temp * (pow0 - pow3327); + let temp = temp * (pow0 - pow3328); + let temp = temp * (pow0 - pow3329); + let temp = temp * (pow0 - pow3330); + let temp = temp * (pow0 - pow3331); + let temp = temp * (pow0 - pow3332); + let temp = temp * (pow0 - pow3333); + let temp = temp * (pow0 - pow3334); + let temp = temp * (pow0 - pow3335); + let temp = temp * (pow0 - pow3336); + let temp = temp * (pow0 - pow3337); + let temp = temp * (pow0 - pow3340); + let temp = temp * (pow0 - pow3341); + let temp = temp * (pow0 - pow3342); + let temp = temp * (pow0 - pow3343); + let temp = temp * (pow0 - pow3344); + let temp = temp * (pow0 - pow3345); + let temp = temp * (pow0 - pow3346); + let temp = temp * (pow0 - pow3347); + let temp = temp * (pow0 - pow3348); + let temp = temp * (pow0 - pow3349); + let temp = temp * (pow0 - pow3350); + let temp = temp * (pow0 - pow3351); + let temp = temp * (pow0 - pow3352); + let temp = temp * (pow0 - pow3353); + let temp = temp * (pow0 - pow3354); + let temp = temp * (pow0 - pow3355); + let temp = temp * (pow0 - pow3356); + let temp = temp * (pow0 - pow3357); + let temp = temp * (pow0 - pow3358); + let temp = temp * (pow0 - pow3359); + let temp = temp * (pow0 - pow3360); + let temp = temp * (pow0 - pow3361); + let temp = temp * (pow0 - pow3362); + let temp = temp * (pow0 - pow3363); + let temp = temp * (pow0 - pow3364); + let temp = temp * (pow0 - pow3365); + let temp = temp * (pow0 - pow3366); + let temp = temp * (pow0 - pow3367); + let temp = temp * (domain49); + let domain52 = temp * (domain51); + let temp = pow3 - pow2121; + let domain53 = temp * (domain47); + let temp = domain46; + let domain54 = temp * (domain48); + let temp = domain51; + let domain55 = temp * (domain54); + let temp = pow0 - pow793; + let temp = temp * (pow0 - pow794); + let temp = temp * (pow0 - pow795); + let temp = temp * (pow0 - pow796); + let temp = temp * (pow0 - pow797); + let temp = temp * (pow0 - pow798); + let temp = temp * (pow0 - pow799); + let domain56 = temp * (pow0 - pow800); + let temp = pow0 - pow801; + let temp = temp * (pow0 - pow802); + let temp = temp * (pow0 - pow803); + let temp = temp * (pow0 - pow804); + let temp = temp * (pow0 - pow805); + let temp = temp * (pow0 - pow806); + let temp = temp * (pow0 - pow807); + let temp = temp * (pow0 - pow808); + let temp = temp * (pow0 - pow809); + let temp = temp * (pow0 - pow810); + let temp = temp * (pow0 - pow811); + let temp = temp * (pow0 - pow812); + let temp = temp * (pow0 - pow813); + let temp = temp * (pow0 - pow814); + let temp = temp * (pow0 - pow815); + let temp = temp * (pow0 - pow816); + let temp = temp * (domain38); + let domain57 = temp * (domain56); + let temp = pow0 - pow2549; + let temp = temp * (pow0 - pow2550); + let temp = temp * (pow0 - pow2551); + let temp = temp * (pow0 - pow2552); + let temp = temp * (pow0 - pow2553); + let temp = temp * (pow0 - pow2554); + let temp = temp * (pow0 - pow2555); + let domain58 = temp * (pow0 - pow2556); + let temp = pow0 - pow2557; + let temp = temp * (pow0 - pow2558); + let temp = temp * (pow0 - pow2559); + let temp = temp * (pow0 - pow2560); + let temp = temp * (pow0 - pow2561); + let temp = temp * (pow0 - pow2562); + let temp = temp * (pow0 - pow2563); + let temp = temp * (pow0 - pow2564); + let temp = temp * (pow0 - pow2565); + let temp = temp * (pow0 - pow2566); + let temp = temp * (pow0 - pow2567); + let temp = temp * (pow0 - pow2568); + let temp = temp * (pow0 - pow2569); + let temp = temp * (pow0 - pow2570); + let temp = temp * (pow0 - pow2571); + let temp = temp * (pow0 - pow2572); + let temp = temp * (domain55); + let domain59 = temp * (domain58); + let temp = pow0 - pow2512; + let temp = temp * (pow0 - pow2513); + let temp = temp * (pow0 - pow2514); + let temp = temp * (pow0 - pow2515); + let temp = temp * (pow0 - pow2516); + let temp = temp * (pow0 - pow2517); + let temp = temp * (pow0 - pow2518); + let domain60 = temp * (pow0 - pow2519); + let temp = pow0 - pow2397; + let temp = temp * (pow0 - pow2398); + let temp = temp * (pow0 - pow2399); + let temp = temp * (pow0 - pow2400); + let temp = temp * (pow0 - pow2401); + let temp = temp * (pow0 - pow2402); + let temp = temp * (pow0 - pow2403); + let temp = temp * (pow0 - pow2404); + let temp = temp * (pow0 - pow2436); + let temp = temp * (pow0 - pow2437); + let temp = temp * (pow0 - pow2438); + let temp = temp * (pow0 - pow2439); + let temp = temp * (pow0 - pow2440); + let temp = temp * (pow0 - pow2441); + let temp = temp * (pow0 - pow2442); + let temp = temp * (pow0 - pow2443); + let temp = temp * (pow0 - pow2473); + let temp = temp * (pow0 - pow2474); + let temp = temp * (pow0 - pow2475); + let temp = temp * (pow0 - pow2476); + let temp = temp * (pow0 - pow2477); + let temp = temp * (pow0 - pow2478); + let temp = temp * (pow0 - pow2479); + let temp = temp * (pow0 - pow2480); + let domain61 = temp * (domain60); + let temp = pow0 - pow2520; + let temp = temp * (pow0 - pow2521); + let temp = temp * (pow0 - pow2522); + let temp = temp * (pow0 - pow2523); + let temp = temp * (pow0 - pow2524); + let temp = temp * (pow0 - pow2525); + let temp = temp * (pow0 - pow2526); + let temp = temp * (pow0 - pow2527); + let temp = temp * (pow0 - pow2528); + let temp = temp * (pow0 - pow2529); + let temp = temp * (pow0 - pow2530); + let temp = temp * (pow0 - pow2531); + let temp = temp * (pow0 - pow2532); + let temp = temp * (pow0 - pow2533); + let temp = temp * (pow0 - pow2534); + let temp = temp * (pow0 - pow2535); + let domain62 = temp * (domain59); + let temp = pow0 - pow2405; + let temp = temp * (pow0 - pow2406); + let temp = temp * (pow0 - pow2407); + let temp = temp * (pow0 - pow2408); + let temp = temp * (pow0 - pow2409); + let temp = temp * (pow0 - pow2410); + let temp = temp * (pow0 - pow2411); + let temp = temp * (pow0 - pow2412); + let temp = temp * (pow0 - pow2413); + let temp = temp * (pow0 - pow2414); + let temp = temp * (pow0 - pow2415); + let temp = temp * (pow0 - pow2416); + let temp = temp * (pow0 - pow2417); + let temp = temp * (pow0 - pow2418); + let temp = temp * (pow0 - pow2419); + let temp = temp * (pow0 - pow2420); + let temp = temp * (pow0 - pow2444); + let temp = temp * (pow0 - pow2445); + let temp = temp * (pow0 - pow2446); + let temp = temp * (pow0 - pow2447); + let temp = temp * (pow0 - pow2448); + let temp = temp * (pow0 - pow2449); + let temp = temp * (pow0 - pow2450); + let temp = temp * (pow0 - pow2451); + let temp = temp * (pow0 - pow2452); + let temp = temp * (pow0 - pow2453); + let temp = temp * (pow0 - pow2454); + let temp = temp * (pow0 - pow2455); + let temp = temp * (pow0 - pow2456); + let temp = temp * (pow0 - pow2457); + let temp = temp * (pow0 - pow2458); + let temp = temp * (pow0 - pow2459); + let temp = temp * (pow0 - pow2481); + let temp = temp * (pow0 - pow2482); + let temp = temp * (pow0 - pow2483); + let temp = temp * (pow0 - pow2484); + let temp = temp * (pow0 - pow2485); + let temp = temp * (pow0 - pow2486); + let temp = temp * (pow0 - pow2487); + let temp = temp * (pow0 - pow2488); + let temp = temp * (pow0 - pow2489); + let temp = temp * (pow0 - pow2490); + let temp = temp * (pow0 - pow2491); + let temp = temp * (pow0 - pow2492); + let temp = temp * (pow0 - pow2493); + let temp = temp * (pow0 - pow2494); + let temp = temp * (pow0 - pow2495); + let temp = temp * (pow0 - pow2496); + let temp = temp * (domain61); + let domain63 = temp * (domain62); + let temp = pow0 - pow2321; + let temp = temp * (pow0 - pow2322); + let temp = temp * (pow0 - pow2323); + let temp = temp * (pow0 - pow2324); + let temp = temp * (pow0 - pow2325); + let temp = temp * (pow0 - pow2326); + let temp = temp * (pow0 - pow2327); + let temp = temp * (pow0 - pow2328); + let temp = temp * (pow0 - pow2360); + let temp = temp * (pow0 - pow2361); + let temp = temp * (pow0 - pow2362); + let temp = temp * (pow0 - pow2363); + let temp = temp * (pow0 - pow2364); + let temp = temp * (pow0 - pow2365); + let temp = temp * (pow0 - pow2366); + let domain64 = temp * (pow0 - pow2367); + let temp = pow0 - pow2284; + let temp = temp * (pow0 - pow2285); + let temp = temp * (pow0 - pow2286); + let temp = temp * (pow0 - pow2287); + let temp = temp * (pow0 - pow2288); + let temp = temp * (pow0 - pow2289); + let temp = temp * (pow0 - pow2290); + let temp = temp * (pow0 - pow2291); + let domain65 = temp * (domain64); + let temp = pow0 - pow2245; + let temp = temp * (pow0 - pow2246); + let temp = temp * (pow0 - pow2247); + let temp = temp * (pow0 - pow2248); + let temp = temp * (pow0 - pow2249); + let temp = temp * (pow0 - pow2250); + let temp = temp * (pow0 - pow2251); + let temp = temp * (pow0 - pow2252); + let domain66 = temp * (domain65); + let temp = pow0 - pow2329; + let temp = temp * (pow0 - pow2330); + let temp = temp * (pow0 - pow2331); + let temp = temp * (pow0 - pow2332); + let temp = temp * (pow0 - pow2333); + let temp = temp * (pow0 - pow2334); + let temp = temp * (pow0 - pow2335); + let temp = temp * (pow0 - pow2336); + let temp = temp * (pow0 - pow2337); + let temp = temp * (pow0 - pow2338); + let temp = temp * (pow0 - pow2339); + let temp = temp * (pow0 - pow2340); + let temp = temp * (pow0 - pow2341); + let temp = temp * (pow0 - pow2342); + let temp = temp * (pow0 - pow2343); + let temp = temp * (pow0 - pow2344); + let temp = temp * (pow0 - pow2368); + let temp = temp * (pow0 - pow2369); + let temp = temp * (pow0 - pow2370); + let temp = temp * (pow0 - pow2371); + let temp = temp * (pow0 - pow2372); + let temp = temp * (pow0 - pow2373); + let temp = temp * (pow0 - pow2374); + let temp = temp * (pow0 - pow2375); + let temp = temp * (pow0 - pow2376); + let temp = temp * (pow0 - pow2377); + let temp = temp * (pow0 - pow2378); + let temp = temp * (pow0 - pow2379); + let temp = temp * (pow0 - pow2380); + let temp = temp * (pow0 - pow2381); + let temp = temp * (pow0 - pow2382); + let temp = temp * (pow0 - pow2383); + let domain67 = temp * (domain63); + let temp = pow0 - pow2253; + let temp = temp * (pow0 - pow2254); + let temp = temp * (pow0 - pow2255); + let temp = temp * (pow0 - pow2256); + let temp = temp * (pow0 - pow2257); + let temp = temp * (pow0 - pow2258); + let temp = temp * (pow0 - pow2259); + let temp = temp * (pow0 - pow2260); + let temp = temp * (pow0 - pow2261); + let temp = temp * (pow0 - pow2262); + let temp = temp * (pow0 - pow2263); + let temp = temp * (pow0 - pow2264); + let temp = temp * (pow0 - pow2265); + let temp = temp * (pow0 - pow2266); + let temp = temp * (pow0 - pow2267); + let temp = temp * (pow0 - pow2268); + let temp = temp * (pow0 - pow2292); + let temp = temp * (pow0 - pow2293); + let temp = temp * (pow0 - pow2294); + let temp = temp * (pow0 - pow2295); + let temp = temp * (pow0 - pow2296); + let temp = temp * (pow0 - pow2297); + let temp = temp * (pow0 - pow2298); + let temp = temp * (pow0 - pow2299); + let temp = temp * (pow0 - pow2300); + let temp = temp * (pow0 - pow2301); + let temp = temp * (pow0 - pow2302); + let temp = temp * (pow0 - pow2303); + let temp = temp * (pow0 - pow2304); + let temp = temp * (pow0 - pow2305); + let temp = temp * (pow0 - pow2306); + let temp = temp * (pow0 - pow2307); + let temp = temp * (domain66); + let domain68 = temp * (domain67); + let temp = pow0 - pow2121; + let temp = temp * (pow0 - pow2123); + let temp = temp * (pow0 - pow2125); + let temp = temp * (pow0 - pow2127); + let temp = temp * (pow0 - pow2129); + let temp = temp * (pow0 - pow2131); + let temp = temp * (pow0 - pow2133); + let temp = temp * (pow0 - pow2135); + let temp = temp * (pow0 - pow2122); + let temp = temp * (pow0 - pow2124); + let temp = temp * (pow0 - pow2126); + let temp = temp * (pow0 - pow2128); + let temp = temp * (pow0 - pow2130); + let temp = temp * (pow0 - pow2132); + let temp = temp * (pow0 - pow2134); + let temp = temp * (pow0 - pow2152); + let temp = temp * (pow0 - pow2169); + let temp = temp * (pow0 - pow2170); + let temp = temp * (pow0 - pow2171); + let temp = temp * (pow0 - pow2172); + let temp = temp * (pow0 - pow2173); + let temp = temp * (pow0 - pow2174); + let temp = temp * (pow0 - pow2175); + let temp = temp * (pow0 - pow2176); + let temp = temp * (pow0 - pow2208); + let temp = temp * (pow0 - pow2209); + let temp = temp * (pow0 - pow2210); + let temp = temp * (pow0 - pow2211); + let temp = temp * (pow0 - pow2212); + let temp = temp * (pow0 - pow2213); + let temp = temp * (pow0 - pow2214); + let domain69 = temp * (pow0 - pow2215); + let temp = pow0 - pow2097; + let temp = temp * (pow0 - pow2098); + let temp = temp * (pow0 - pow2099); + let temp = temp * (pow0 - pow2100); + let temp = temp * (pow0 - pow2101); + let temp = temp * (pow0 - pow2102); + let temp = temp * (pow0 - pow2103); + let temp = temp * (pow0 - pow2104); + let domain70 = temp * (domain69); + let temp = pow0 - pow2025; + let temp = temp * (pow0 - pow2027); + let temp = temp * (pow0 - pow2029); + let temp = temp * (pow0 - pow2031); + let temp = temp * (pow0 - pow2033); + let temp = temp * (pow0 - pow2035); + let temp = temp * (pow0 - pow2037); + let temp = temp * (pow0 - pow2039); + let temp = temp * (pow0 - pow2026); + let temp = temp * (pow0 - pow2028); + let temp = temp * (pow0 - pow2030); + let temp = temp * (pow0 - pow2032); + let temp = temp * (pow0 - pow2034); + let temp = temp * (pow0 - pow2036); + let temp = temp * (pow0 - pow2038); + let temp = temp * (pow0 - pow2056); + let temp = temp * (pow0 - pow2073); + let temp = temp * (pow0 - pow2074); + let temp = temp * (pow0 - pow2075); + let temp = temp * (pow0 - pow2076); + let temp = temp * (pow0 - pow2077); + let temp = temp * (pow0 - pow2078); + let temp = temp * (pow0 - pow2079); + let temp = temp * (pow0 - pow2080); + let domain71 = temp * (domain70); + let temp = pow0 - pow1994; + let temp = temp * (pow0 - pow1995); + let temp = temp * (pow0 - pow1996); + let temp = temp * (pow0 - pow1997); + let temp = temp * (pow0 - pow1998); + let temp = temp * (pow0 - pow1999); + let temp = temp * (pow0 - pow2000); + let temp = temp * (pow0 - pow2001); + let domain72 = temp * (domain71); + let temp = pow0 - pow1955; + let temp = temp * (pow0 - pow1956); + let temp = temp * (pow0 - pow1957); + let temp = temp * (pow0 - pow1958); + let temp = temp * (pow0 - pow1959); + let temp = temp * (pow0 - pow1960); + let temp = temp * (pow0 - pow1961); + let temp = temp * (pow0 - pow1962); + let domain73 = temp * (domain72); + let temp = pow0 - pow2136; + let temp = temp * (pow0 - pow2137); + let temp = temp * (pow0 - pow2138); + let temp = temp * (pow0 - pow2139); + let temp = temp * (pow0 - pow2140); + let temp = temp * (pow0 - pow2141); + let temp = temp * (pow0 - pow2142); + let temp = temp * (pow0 - pow2143); + let temp = temp * (pow0 - pow2144); + let temp = temp * (pow0 - pow2145); + let temp = temp * (pow0 - pow2146); + let temp = temp * (pow0 - pow2147); + let temp = temp * (pow0 - pow2148); + let temp = temp * (pow0 - pow2149); + let temp = temp * (pow0 - pow2150); + let temp = temp * (pow0 - pow2151); + let temp = temp * (pow0 - pow2153); + let temp = temp * (pow0 - pow2154); + let temp = temp * (pow0 - pow2155); + let temp = temp * (pow0 - pow2156); + let temp = temp * (pow0 - pow2157); + let temp = temp * (pow0 - pow2158); + let temp = temp * (pow0 - pow2159); + let temp = temp * (pow0 - pow2160); + let temp = temp * (pow0 - pow2161); + let temp = temp * (pow0 - pow2162); + let temp = temp * (pow0 - pow2163); + let temp = temp * (pow0 - pow2164); + let temp = temp * (pow0 - pow2165); + let temp = temp * (pow0 - pow2166); + let temp = temp * (pow0 - pow2167); + let temp = temp * (pow0 - pow2168); + let temp = temp * (pow0 - pow2177); + let temp = temp * (pow0 - pow2178); + let temp = temp * (pow0 - pow2179); + let temp = temp * (pow0 - pow2180); + let temp = temp * (pow0 - pow2181); + let temp = temp * (pow0 - pow2182); + let temp = temp * (pow0 - pow2183); + let temp = temp * (pow0 - pow2184); + let temp = temp * (pow0 - pow2185); + let temp = temp * (pow0 - pow2186); + let temp = temp * (pow0 - pow2187); + let temp = temp * (pow0 - pow2188); + let temp = temp * (pow0 - pow2189); + let temp = temp * (pow0 - pow2190); + let temp = temp * (pow0 - pow2191); + let temp = temp * (pow0 - pow2192); + let temp = temp * (pow0 - pow2216); + let temp = temp * (pow0 - pow2217); + let temp = temp * (pow0 - pow2218); + let temp = temp * (pow0 - pow2219); + let temp = temp * (pow0 - pow2220); + let temp = temp * (pow0 - pow2221); + let temp = temp * (pow0 - pow2222); + let temp = temp * (pow0 - pow2223); + let temp = temp * (pow0 - pow2224); + let temp = temp * (pow0 - pow2225); + let temp = temp * (pow0 - pow2226); + let temp = temp * (pow0 - pow2227); + let temp = temp * (pow0 - pow2228); + let temp = temp * (pow0 - pow2229); + let temp = temp * (pow0 - pow2230); + let temp = temp * (pow0 - pow2231); + let domain74 = temp * (domain68); + let temp = pow0 - pow2105; + let temp = temp * (pow0 - pow2106); + let temp = temp * (pow0 - pow2107); + let temp = temp * (pow0 - pow2108); + let temp = temp * (pow0 - pow2109); + let temp = temp * (pow0 - pow2110); + let temp = temp * (pow0 - pow2111); + let temp = temp * (pow0 - pow2112); + let temp = temp * (pow0 - pow2113); + let temp = temp * (pow0 - pow2114); + let temp = temp * (pow0 - pow2115); + let temp = temp * (pow0 - pow2116); + let temp = temp * (pow0 - pow2117); + let temp = temp * (pow0 - pow2118); + let temp = temp * (pow0 - pow2119); + let temp = temp * (pow0 - pow2120); + let domain75 = temp * (domain74); + let temp = pow0 - pow2040; + let temp = temp * (pow0 - pow2041); + let temp = temp * (pow0 - pow2042); + let temp = temp * (pow0 - pow2043); + let temp = temp * (pow0 - pow2044); + let temp = temp * (pow0 - pow2045); + let temp = temp * (pow0 - pow2046); + let temp = temp * (pow0 - pow2047); + let temp = temp * (pow0 - pow2048); + let temp = temp * (pow0 - pow2049); + let temp = temp * (pow0 - pow2050); + let temp = temp * (pow0 - pow2051); + let temp = temp * (pow0 - pow2052); + let temp = temp * (pow0 - pow2053); + let temp = temp * (pow0 - pow2054); + let temp = temp * (pow0 - pow2055); + let temp = temp * (pow0 - pow2057); + let temp = temp * (pow0 - pow2058); + let temp = temp * (pow0 - pow2059); + let temp = temp * (pow0 - pow2060); + let temp = temp * (pow0 - pow2061); + let temp = temp * (pow0 - pow2062); + let temp = temp * (pow0 - pow2063); + let temp = temp * (pow0 - pow2064); + let temp = temp * (pow0 - pow2065); + let temp = temp * (pow0 - pow2066); + let temp = temp * (pow0 - pow2067); + let temp = temp * (pow0 - pow2068); + let temp = temp * (pow0 - pow2069); + let temp = temp * (pow0 - pow2070); + let temp = temp * (pow0 - pow2071); + let temp = temp * (pow0 - pow2072); + let temp = temp * (pow0 - pow2081); + let temp = temp * (pow0 - pow2082); + let temp = temp * (pow0 - pow2083); + let temp = temp * (pow0 - pow2084); + let temp = temp * (pow0 - pow2085); + let temp = temp * (pow0 - pow2086); + let temp = temp * (pow0 - pow2087); + let temp = temp * (pow0 - pow2088); + let temp = temp * (pow0 - pow2089); + let temp = temp * (pow0 - pow2090); + let temp = temp * (pow0 - pow2091); + let temp = temp * (pow0 - pow2092); + let temp = temp * (pow0 - pow2093); + let temp = temp * (pow0 - pow2094); + let temp = temp * (pow0 - pow2095); + let temp = temp * (pow0 - pow2096); + let domain76 = temp * (domain75); + let temp = pow0 - pow2002; + let temp = temp * (pow0 - pow2003); + let temp = temp * (pow0 - pow2004); + let temp = temp * (pow0 - pow2005); + let temp = temp * (pow0 - pow2006); + let temp = temp * (pow0 - pow2007); + let temp = temp * (pow0 - pow2008); + let temp = temp * (pow0 - pow2009); + let temp = temp * (pow0 - pow2010); + let temp = temp * (pow0 - pow2011); + let temp = temp * (pow0 - pow2012); + let temp = temp * (pow0 - pow2013); + let temp = temp * (pow0 - pow2014); + let temp = temp * (pow0 - pow2015); + let temp = temp * (pow0 - pow2016); + let temp = temp * (pow0 - pow2017); + let domain77 = temp * (domain76); + let temp = pow0 - pow1963; + let temp = temp * (pow0 - pow1964); + let temp = temp * (pow0 - pow1965); + let temp = temp * (pow0 - pow1966); + let temp = temp * (pow0 - pow1967); + let temp = temp * (pow0 - pow1968); + let temp = temp * (pow0 - pow1969); + let temp = temp * (pow0 - pow1970); + let temp = temp * (pow0 - pow1971); + let temp = temp * (pow0 - pow1972); + let temp = temp * (pow0 - pow1973); + let temp = temp * (pow0 - pow1974); + let temp = temp * (pow0 - pow1975); + let temp = temp * (pow0 - pow1976); + let temp = temp * (pow0 - pow1977); + let temp = temp * (pow0 - pow1978); + let temp = temp * (domain73); + let domain78 = temp * (domain77); + let temp = pow0 - pow1924; + let temp = temp * (pow0 - pow1925); + let temp = temp * (pow0 - pow1926); + let temp = temp * (pow0 - pow1927); + let temp = temp * (pow0 - pow1928); + let temp = temp * (pow0 - pow1929); + let temp = temp * (pow0 - pow1930); + let domain79 = temp * (pow0 - pow1931); + let temp = pow0 - pow1932; + let temp = temp * (pow0 - pow1933); + let temp = temp * (pow0 - pow1934); + let temp = temp * (pow0 - pow1935); + let temp = temp * (pow0 - pow1936); + let temp = temp * (pow0 - pow1937); + let temp = temp * (pow0 - pow1938); + let temp = temp * (pow0 - pow1939); + let temp = temp * (pow0 - pow1940); + let temp = temp * (pow0 - pow1941); + let temp = temp * (pow0 - pow1942); + let temp = temp * (pow0 - pow1943); + let temp = temp * (pow0 - pow1944); + let temp = temp * (pow0 - pow1945); + let temp = temp * (pow0 - pow1946); + let temp = temp * (pow0 - pow1947); + let temp = temp * (domain78); + let domain80 = temp * (domain79); + let temp = pow0 - pow1854; + let temp = temp * (pow0 - pow1855); + let temp = temp * (pow0 - pow1856); + let temp = temp * (pow0 - pow1857); + let temp = temp * (pow0 - pow1858); + let temp = temp * (pow0 - pow1859); + let temp = temp * (pow0 - pow1860); + let temp = temp * (pow0 - pow1861); + let temp = temp * (pow0 - pow1885); + let temp = temp * (pow0 - pow1886); + let temp = temp * (pow0 - pow1887); + let temp = temp * (pow0 - pow1888); + let temp = temp * (pow0 - pow1889); + let temp = temp * (pow0 - pow1890); + let temp = temp * (pow0 - pow1891); + let domain81 = temp * (pow0 - pow1892); + let temp = pow0 - pow1791; + let temp = temp * (pow0 - pow1792); + let temp = temp * (pow0 - pow1793); + let temp = temp * (pow0 - pow1794); + let temp = temp * (pow0 - pow1795); + let temp = temp * (pow0 - pow1796); + let temp = temp * (pow0 - pow1797); + let temp = temp * (pow0 - pow1798); + let temp = temp * (pow0 - pow1815); + let temp = temp * (pow0 - pow1816); + let temp = temp * (pow0 - pow1817); + let temp = temp * (pow0 - pow1818); + let temp = temp * (pow0 - pow1819); + let temp = temp * (pow0 - pow1820); + let temp = temp * (pow0 - pow1821); + let temp = temp * (pow0 - pow1822); + let domain82 = temp * (domain81); + let temp = pow0 - pow1799; + let temp = temp * (pow0 - pow1800); + let temp = temp * (pow0 - pow1801); + let temp = temp * (pow0 - pow1802); + let temp = temp * (pow0 - pow1803); + let temp = temp * (pow0 - pow1804); + let temp = temp * (pow0 - pow1805); + let temp = temp * (pow0 - pow1806); + let temp = temp * (pow0 - pow1807); + let temp = temp * (pow0 - pow1808); + let temp = temp * (pow0 - pow1809); + let temp = temp * (pow0 - pow1810); + let temp = temp * (pow0 - pow1811); + let temp = temp * (pow0 - pow1812); + let temp = temp * (pow0 - pow1813); + let temp = temp * (pow0 - pow1814); + let temp = temp * (pow0 - pow1823); + let temp = temp * (pow0 - pow1824); + let temp = temp * (pow0 - pow1825); + let temp = temp * (pow0 - pow1826); + let temp = temp * (pow0 - pow1827); + let temp = temp * (pow0 - pow1828); + let temp = temp * (pow0 - pow1829); + let temp = temp * (pow0 - pow1830); + let temp = temp * (pow0 - pow1831); + let temp = temp * (pow0 - pow1832); + let temp = temp * (pow0 - pow1833); + let temp = temp * (pow0 - pow1834); + let temp = temp * (pow0 - pow1835); + let temp = temp * (pow0 - pow1836); + let temp = temp * (pow0 - pow1837); + let temp = temp * (pow0 - pow1838); + let temp = temp * (pow0 - pow1862); + let temp = temp * (pow0 - pow1863); + let temp = temp * (pow0 - pow1864); + let temp = temp * (pow0 - pow1865); + let temp = temp * (pow0 - pow1866); + let temp = temp * (pow0 - pow1867); + let temp = temp * (pow0 - pow1868); + let temp = temp * (pow0 - pow1869); + let temp = temp * (pow0 - pow1870); + let temp = temp * (pow0 - pow1871); + let temp = temp * (pow0 - pow1872); + let temp = temp * (pow0 - pow1873); + let temp = temp * (pow0 - pow1874); + let temp = temp * (pow0 - pow1875); + let temp = temp * (pow0 - pow1876); + let temp = temp * (pow0 - pow1877); + let temp = temp * (pow0 - pow1893); + let temp = temp * (pow0 - pow1894); + let temp = temp * (pow0 - pow1895); + let temp = temp * (pow0 - pow1896); + let temp = temp * (pow0 - pow1897); + let temp = temp * (pow0 - pow1898); + let temp = temp * (pow0 - pow1899); + let temp = temp * (pow0 - pow1900); + let temp = temp * (pow0 - pow1901); + let temp = temp * (pow0 - pow1902); + let temp = temp * (pow0 - pow1903); + let temp = temp * (pow0 - pow1904); + let temp = temp * (pow0 - pow1905); + let temp = temp * (pow0 - pow1906); + let temp = temp * (pow0 - pow1907); + let temp = temp * (pow0 - pow1908); + let temp = temp * (domain80); + let domain83 = temp * (domain82); + let temp = pow0 - pow1743; + let temp = temp * (pow0 - pow1744); + let temp = temp * (pow0 - pow1745); + let temp = temp * (pow0 - pow1746); + let temp = temp * (pow0 - pow1747); + let temp = temp * (pow0 - pow1748); + let temp = temp * (pow0 - pow1749); + let temp = temp * (pow0 - pow1750); + let temp = temp * (pow0 - pow1751); + let temp = temp * (pow0 - pow1752); + let temp = temp * (pow0 - pow1753); + let temp = temp * (pow0 - pow1754); + let temp = temp * (pow0 - pow1755); + let temp = temp * (pow0 - pow1756); + let temp = temp * (pow0 - pow1757); + let temp = temp * (pow0 - pow1758); + let temp = temp * (pow0 - pow1759); + let temp = temp * (pow0 - pow1760); + let temp = temp * (pow0 - pow1761); + let temp = temp * (pow0 - pow1762); + let temp = temp * (pow0 - pow1763); + let temp = temp * (pow0 - pow1764); + let temp = temp * (pow0 - pow1765); + let temp = temp * (pow0 - pow1766); + let temp = temp * (pow0 - pow1767); + let temp = temp * (pow0 - pow1768); + let temp = temp * (pow0 - pow1769); + let temp = temp * (pow0 - pow1770); + let temp = temp * (pow0 - pow1771); + let temp = temp * (pow0 - pow1772); + let temp = temp * (pow0 - pow1773); + let temp = temp * (pow0 - pow1774); + let temp = temp * (pow0 - pow1775); + let temp = temp * (pow0 - pow1776); + let temp = temp * (pow0 - pow1777); + let temp = temp * (pow0 - pow1778); + let temp = temp * (pow0 - pow1779); + let temp = temp * (pow0 - pow1780); + let temp = temp * (pow0 - pow1781); + let temp = temp * (pow0 - pow1782); + let temp = temp * (pow0 - pow1783); + let temp = temp * (pow0 - pow1784); + let temp = temp * (pow0 - pow1785); + let temp = temp * (pow0 - pow1786); + let temp = temp * (pow0 - pow1787); + let temp = temp * (pow0 - pow1788); + let temp = temp * (pow0 - pow1789); + let temp = temp * (pow0 - pow1790); + let domain84 = temp * (domain83); + let temp = pow0 - pow1719; + let temp = temp * (pow0 - pow1720); + let temp = temp * (pow0 - pow1721); + let temp = temp * (pow0 - pow1722); + let temp = temp * (pow0 - pow1723); + let temp = temp * (pow0 - pow1724); + let temp = temp * (pow0 - pow1725); + let temp = temp * (pow0 - pow1726); + let temp = temp * (pow0 - pow1727); + let temp = temp * (pow0 - pow1728); + let temp = temp * (pow0 - pow1729); + let temp = temp * (pow0 - pow1730); + let temp = temp * (pow0 - pow1731); + let temp = temp * (pow0 - pow1732); + let temp = temp * (pow0 - pow1733); + let temp = temp * (pow0 - pow1734); + let temp = temp * (pow0 - pow1735); + let temp = temp * (pow0 - pow1736); + let temp = temp * (pow0 - pow1737); + let temp = temp * (pow0 - pow1738); + let temp = temp * (pow0 - pow1739); + let temp = temp * (pow0 - pow1740); + let temp = temp * (pow0 - pow1741); + let temp = temp * (pow0 - pow1742); + let domain85 = temp * (domain84); + let temp = pow0 - pow824; + let temp = temp * (pow0 - pow825); + let temp = temp * (pow0 - pow826); + let temp = temp * (pow0 - pow827); + let temp = temp * (pow0 - pow828); + let temp = temp * (pow0 - pow829); + let temp = temp * (pow0 - pow830); + let domain86 = temp * (pow0 - pow831); + let temp = pow0 - pow863; + let temp = temp * (pow0 - pow864); + let temp = temp * (pow0 - pow865); + let temp = temp * (pow0 - pow866); + let temp = temp * (pow0 - pow867); + let temp = temp * (pow0 - pow868); + let temp = temp * (pow0 - pow869); + let domain87 = temp * (pow0 - pow870); + let temp = pow0 - pow894; + let temp = temp * (pow0 - pow895); + let temp = temp * (pow0 - pow896); + let temp = temp * (pow0 - pow897); + let temp = temp * (pow0 - pow898); + let temp = temp * (pow0 - pow899); + let temp = temp * (pow0 - pow900); + let temp = temp * (pow0 - pow901); + let temp = temp * (pow0 - pow933); + let temp = temp * (pow0 - pow934); + let temp = temp * (pow0 - pow935); + let temp = temp * (pow0 - pow936); + let temp = temp * (pow0 - pow937); + let temp = temp * (pow0 - pow938); + let temp = temp * (pow0 - pow939); + let temp = temp * (pow0 - pow940); + let temp = temp * (domain86); + let domain88 = temp * (domain87); + let temp = pow0 - pow832; + let temp = temp * (pow0 - pow833); + let temp = temp * (pow0 - pow834); + let temp = temp * (pow0 - pow835); + let temp = temp * (pow0 - pow836); + let temp = temp * (pow0 - pow837); + let temp = temp * (pow0 - pow838); + let temp = temp * (pow0 - pow839); + let temp = temp * (pow0 - pow840); + let temp = temp * (pow0 - pow841); + let temp = temp * (pow0 - pow842); + let temp = temp * (pow0 - pow843); + let temp = temp * (pow0 - pow844); + let temp = temp * (pow0 - pow845); + let temp = temp * (pow0 - pow846); + let temp = temp * (pow0 - pow847); + let domain89 = temp * (domain57); + let temp = pow0 - pow871; + let temp = temp * (pow0 - pow872); + let temp = temp * (pow0 - pow873); + let temp = temp * (pow0 - pow874); + let temp = temp * (pow0 - pow875); + let temp = temp * (pow0 - pow876); + let temp = temp * (pow0 - pow877); + let temp = temp * (pow0 - pow878); + let temp = temp * (pow0 - pow879); + let temp = temp * (pow0 - pow880); + let temp = temp * (pow0 - pow881); + let temp = temp * (pow0 - pow882); + let temp = temp * (pow0 - pow883); + let temp = temp * (pow0 - pow884); + let temp = temp * (pow0 - pow885); + let domain90 = temp * (pow0 - pow886); + let temp = pow0 - pow902; + let temp = temp * (pow0 - pow903); + let temp = temp * (pow0 - pow904); + let temp = temp * (pow0 - pow905); + let temp = temp * (pow0 - pow906); + let temp = temp * (pow0 - pow907); + let temp = temp * (pow0 - pow908); + let temp = temp * (pow0 - pow909); + let temp = temp * (pow0 - pow910); + let temp = temp * (pow0 - pow911); + let temp = temp * (pow0 - pow912); + let temp = temp * (pow0 - pow913); + let temp = temp * (pow0 - pow914); + let temp = temp * (pow0 - pow915); + let temp = temp * (pow0 - pow916); + let temp = temp * (pow0 - pow917); + let temp = temp * (pow0 - pow941); + let temp = temp * (pow0 - pow942); + let temp = temp * (pow0 - pow943); + let temp = temp * (pow0 - pow944); + let temp = temp * (pow0 - pow945); + let temp = temp * (pow0 - pow946); + let temp = temp * (pow0 - pow947); + let temp = temp * (pow0 - pow948); + let temp = temp * (pow0 - pow949); + let temp = temp * (pow0 - pow950); + let temp = temp * (pow0 - pow951); + let temp = temp * (pow0 - pow952); + let temp = temp * (pow0 - pow953); + let temp = temp * (pow0 - pow954); + let temp = temp * (pow0 - pow955); + let temp = temp * (pow0 - pow956); + let temp = temp * (domain88); + let temp = temp * (domain89); + let domain91 = temp * (domain90); + let temp = pow0 - pow988; + let temp = temp * (pow0 - pow989); + let temp = temp * (pow0 - pow990); + let temp = temp * (pow0 - pow991); + let temp = temp * (pow0 - pow992); + let temp = temp * (pow0 - pow993); + let temp = temp * (pow0 - pow994); + let domain92 = temp * (pow0 - pow995); + let temp = pow0 - pow964; + let temp = temp * (pow0 - pow965); + let temp = temp * (pow0 - pow966); + let temp = temp * (pow0 - pow967); + let temp = temp * (pow0 - pow968); + let temp = temp * (pow0 - pow969); + let temp = temp * (pow0 - pow970); + let temp = temp * (pow0 - pow971); + let domain93 = temp * (domain92); + let temp = pow0 - pow1012; + let temp = temp * (pow0 - pow1013); + let temp = temp * (pow0 - pow1014); + let temp = temp * (pow0 - pow1015); + let temp = temp * (pow0 - pow1016); + let temp = temp * (pow0 - pow1017); + let temp = temp * (pow0 - pow1018); + let temp = temp * (pow0 - pow1019); + let domain94 = temp * (domain93); + let temp = pow0 - pow1036; + let temp = temp * (pow0 - pow1037); + let temp = temp * (pow0 - pow1038); + let temp = temp * (pow0 - pow1039); + let temp = temp * (pow0 - pow1040); + let temp = temp * (pow0 - pow1041); + let temp = temp * (pow0 - pow1042); + let temp = temp * (pow0 - pow1043); + let domain95 = temp * (domain94); + let temp = pow0 - pow996; + let temp = temp * (pow0 - pow997); + let temp = temp * (pow0 - pow998); + let temp = temp * (pow0 - pow999); + let temp = temp * (pow0 - pow1000); + let temp = temp * (pow0 - pow1001); + let temp = temp * (pow0 - pow1002); + let temp = temp * (pow0 - pow1003); + let temp = temp * (pow0 - pow1004); + let temp = temp * (pow0 - pow1005); + let temp = temp * (pow0 - pow1006); + let temp = temp * (pow0 - pow1007); + let temp = temp * (pow0 - pow1008); + let temp = temp * (pow0 - pow1009); + let temp = temp * (pow0 - pow1010); + let domain96 = temp * (pow0 - pow1011); + let temp = pow0 - pow972; + let temp = temp * (pow0 - pow973); + let temp = temp * (pow0 - pow974); + let temp = temp * (pow0 - pow975); + let temp = temp * (pow0 - pow976); + let temp = temp * (pow0 - pow977); + let temp = temp * (pow0 - pow978); + let temp = temp * (pow0 - pow979); + let temp = temp * (pow0 - pow980); + let temp = temp * (pow0 - pow981); + let temp = temp * (pow0 - pow982); + let temp = temp * (pow0 - pow983); + let temp = temp * (pow0 - pow984); + let temp = temp * (pow0 - pow985); + let temp = temp * (pow0 - pow986); + let temp = temp * (pow0 - pow987); + let temp = temp * (domain91); + let domain97 = temp * (domain96); + let temp = pow0 - pow1020; + let temp = temp * (pow0 - pow1021); + let temp = temp * (pow0 - pow1022); + let temp = temp * (pow0 - pow1023); + let temp = temp * (pow0 - pow1024); + let temp = temp * (pow0 - pow1025); + let temp = temp * (pow0 - pow1026); + let temp = temp * (pow0 - pow1027); + let temp = temp * (pow0 - pow1028); + let temp = temp * (pow0 - pow1029); + let temp = temp * (pow0 - pow1030); + let temp = temp * (pow0 - pow1031); + let temp = temp * (pow0 - pow1032); + let temp = temp * (pow0 - pow1033); + let temp = temp * (pow0 - pow1034); + let temp = temp * (pow0 - pow1035); + let temp = temp * (pow0 - pow1044); + let temp = temp * (pow0 - pow1045); + let temp = temp * (pow0 - pow1046); + let temp = temp * (pow0 - pow1047); + let temp = temp * (pow0 - pow1048); + let temp = temp * (pow0 - pow1049); + let temp = temp * (pow0 - pow1050); + let temp = temp * (pow0 - pow1051); + let temp = temp * (pow0 - pow1052); + let temp = temp * (pow0 - pow1053); + let temp = temp * (pow0 - pow1054); + let temp = temp * (pow0 - pow1055); + let temp = temp * (pow0 - pow1056); + let temp = temp * (pow0 - pow1057); + let temp = temp * (pow0 - pow1058); + let temp = temp * (pow0 - pow1059); + let temp = temp * (domain95); + let domain98 = temp * (domain97); + let temp = pow0 - pow1060; + let temp = temp * (pow0 - pow1061); + let temp = temp * (pow0 - pow1062); + let temp = temp * (pow0 - pow1063); + let temp = temp * (pow0 - pow1064); + let temp = temp * (pow0 - pow1065); + let temp = temp * (pow0 - pow1066); + let temp = temp * (pow0 - pow1067); + let temp = temp * (pow0 - pow1099); + let temp = temp * (pow0 - pow1100); + let temp = temp * (pow0 - pow1101); + let temp = temp * (pow0 - pow1102); + let temp = temp * (pow0 - pow1103); + let temp = temp * (pow0 - pow1104); + let temp = temp * (pow0 - pow1105); + let temp = temp * (pow0 - pow1106); + let temp = temp * (pow0 - pow1130); + let temp = temp * (pow0 - pow1131); + let temp = temp * (pow0 - pow1132); + let temp = temp * (pow0 - pow1133); + let temp = temp * (pow0 - pow1134); + let temp = temp * (pow0 - pow1135); + let temp = temp * (pow0 - pow1136); + let temp = temp * (pow0 - pow1137); + let temp = temp * (pow0 - pow1169); + let temp = temp * (pow0 - pow1170); + let temp = temp * (pow0 - pow1171); + let temp = temp * (pow0 - pow1172); + let temp = temp * (pow0 - pow1173); + let temp = temp * (pow0 - pow1174); + let temp = temp * (pow0 - pow1175); + let domain99 = temp * (pow0 - pow1176); + let temp = pow0 - pow1200; + let temp = temp * (pow0 - pow1201); + let temp = temp * (pow0 - pow1202); + let temp = temp * (pow0 - pow1203); + let temp = temp * (pow0 - pow1204); + let temp = temp * (pow0 - pow1205); + let temp = temp * (pow0 - pow1206); + let temp = temp * (pow0 - pow1207); + let domain100 = temp * (domain99); + let temp = pow0 - pow1239; + let temp = temp * (pow0 - pow1240); + let temp = temp * (pow0 - pow1241); + let temp = temp * (pow0 - pow1242); + let temp = temp * (pow0 - pow1243); + let temp = temp * (pow0 - pow1244); + let temp = temp * (pow0 - pow1245); + let domain101 = temp * (pow0 - pow1246); + let temp = pow0 - pow1270; + let temp = temp * (pow0 - pow1274); + let temp = temp * (pow0 - pow1278); + let temp = temp * (pow0 - pow1282); + let temp = temp * (pow0 - pow1286); + let temp = temp * (pow0 - pow1290); + let temp = temp * (pow0 - pow1294); + let temp = temp * (pow0 - pow1298); + let temp = temp * (pow0 - pow1271); + let temp = temp * (pow0 - pow1275); + let temp = temp * (pow0 - pow1279); + let temp = temp * (pow0 - pow1283); + let temp = temp * (pow0 - pow1287); + let temp = temp * (pow0 - pow1291); + let temp = temp * (pow0 - pow1295); + let temp = temp * (pow0 - pow1300); + let temp = temp * (domain100); + let domain102 = temp * (domain101); + let temp = pow0 - pow1272; + let temp = temp * (pow0 - pow1276); + let temp = temp * (pow0 - pow1280); + let temp = temp * (pow0 - pow1284); + let temp = temp * (pow0 - pow1288); + let temp = temp * (pow0 - pow1292); + let temp = temp * (pow0 - pow1296); + let temp = temp * (pow0 - pow1302); + let domain103 = temp * (domain102); + let temp = pow0 - pow1273; + let temp = temp * (pow0 - pow1277); + let temp = temp * (pow0 - pow1281); + let temp = temp * (pow0 - pow1285); + let temp = temp * (pow0 - pow1289); + let temp = temp * (pow0 - pow1293); + let temp = temp * (pow0 - pow1297); + let temp = temp * (pow0 - pow1304); + let domain104 = temp * (domain103); + let temp = pow0 - pow1068; + let temp = temp * (pow0 - pow1069); + let temp = temp * (pow0 - pow1070); + let temp = temp * (pow0 - pow1071); + let temp = temp * (pow0 - pow1072); + let temp = temp * (pow0 - pow1073); + let temp = temp * (pow0 - pow1074); + let temp = temp * (pow0 - pow1075); + let temp = temp * (pow0 - pow1076); + let temp = temp * (pow0 - pow1077); + let temp = temp * (pow0 - pow1078); + let temp = temp * (pow0 - pow1079); + let temp = temp * (pow0 - pow1080); + let temp = temp * (pow0 - pow1081); + let temp = temp * (pow0 - pow1082); + let temp = temp * (pow0 - pow1083); + let temp = temp * (pow0 - pow1107); + let temp = temp * (pow0 - pow1108); + let temp = temp * (pow0 - pow1109); + let temp = temp * (pow0 - pow1110); + let temp = temp * (pow0 - pow1111); + let temp = temp * (pow0 - pow1112); + let temp = temp * (pow0 - pow1113); + let temp = temp * (pow0 - pow1114); + let temp = temp * (pow0 - pow1115); + let temp = temp * (pow0 - pow1116); + let temp = temp * (pow0 - pow1117); + let temp = temp * (pow0 - pow1118); + let temp = temp * (pow0 - pow1119); + let temp = temp * (pow0 - pow1120); + let temp = temp * (pow0 - pow1121); + let temp = temp * (pow0 - pow1122); + let temp = temp * (pow0 - pow1138); + let temp = temp * (pow0 - pow1139); + let temp = temp * (pow0 - pow1140); + let temp = temp * (pow0 - pow1141); + let temp = temp * (pow0 - pow1142); + let temp = temp * (pow0 - pow1143); + let temp = temp * (pow0 - pow1144); + let temp = temp * (pow0 - pow1145); + let temp = temp * (pow0 - pow1146); + let temp = temp * (pow0 - pow1147); + let temp = temp * (pow0 - pow1148); + let temp = temp * (pow0 - pow1149); + let temp = temp * (pow0 - pow1150); + let temp = temp * (pow0 - pow1151); + let temp = temp * (pow0 - pow1152); + let temp = temp * (pow0 - pow1153); + let temp = temp * (pow0 - pow1177); + let temp = temp * (pow0 - pow1178); + let temp = temp * (pow0 - pow1179); + let temp = temp * (pow0 - pow1180); + let temp = temp * (pow0 - pow1181); + let temp = temp * (pow0 - pow1182); + let temp = temp * (pow0 - pow1183); + let temp = temp * (pow0 - pow1184); + let temp = temp * (pow0 - pow1185); + let temp = temp * (pow0 - pow1186); + let temp = temp * (pow0 - pow1187); + let temp = temp * (pow0 - pow1188); + let temp = temp * (pow0 - pow1189); + let temp = temp * (pow0 - pow1190); + let temp = temp * (pow0 - pow1191); + let temp = temp * (pow0 - pow1192); + let domain105 = temp * (domain98); + let temp = pow0 - pow1208; + let temp = temp * (pow0 - pow1209); + let temp = temp * (pow0 - pow1210); + let temp = temp * (pow0 - pow1211); + let temp = temp * (pow0 - pow1212); + let temp = temp * (pow0 - pow1213); + let temp = temp * (pow0 - pow1214); + let temp = temp * (pow0 - pow1215); + let temp = temp * (pow0 - pow1216); + let temp = temp * (pow0 - pow1217); + let temp = temp * (pow0 - pow1218); + let temp = temp * (pow0 - pow1219); + let temp = temp * (pow0 - pow1220); + let temp = temp * (pow0 - pow1221); + let temp = temp * (pow0 - pow1222); + let temp = temp * (pow0 - pow1223); + let domain106 = temp * (domain105); + let temp = pow0 - pow1247; + let temp = temp * (pow0 - pow1248); + let temp = temp * (pow0 - pow1249); + let temp = temp * (pow0 - pow1250); + let temp = temp * (pow0 - pow1251); + let temp = temp * (pow0 - pow1252); + let temp = temp * (pow0 - pow1253); + let temp = temp * (pow0 - pow1254); + let temp = temp * (pow0 - pow1255); + let temp = temp * (pow0 - pow1256); + let temp = temp * (pow0 - pow1257); + let temp = temp * (pow0 - pow1258); + let temp = temp * (pow0 - pow1259); + let temp = temp * (pow0 - pow1260); + let temp = temp * (pow0 - pow1261); + let domain107 = temp * (pow0 - pow1262); + let temp = pow0 - pow1299; + let temp = temp * (pow0 - pow1306); + let temp = temp * (pow0 - pow1310); + let temp = temp * (pow0 - pow1314); + let temp = temp * (pow0 - pow1318); + let temp = temp * (pow0 - pow1322); + let temp = temp * (pow0 - pow1326); + let temp = temp * (pow0 - pow1330); + let temp = temp * (pow0 - pow1334); + let temp = temp * (pow0 - pow1338); + let temp = temp * (pow0 - pow1342); + let temp = temp * (pow0 - pow1346); + let temp = temp * (pow0 - pow1350); + let temp = temp * (pow0 - pow1354); + let temp = temp * (pow0 - pow1358); + let temp = temp * (pow0 - pow1362); + let temp = temp * (pow0 - pow1301); + let temp = temp * (pow0 - pow1307); + let temp = temp * (pow0 - pow1311); + let temp = temp * (pow0 - pow1315); + let temp = temp * (pow0 - pow1319); + let temp = temp * (pow0 - pow1323); + let temp = temp * (pow0 - pow1327); + let temp = temp * (pow0 - pow1331); + let temp = temp * (pow0 - pow1335); + let temp = temp * (pow0 - pow1339); + let temp = temp * (pow0 - pow1343); + let temp = temp * (pow0 - pow1347); + let temp = temp * (pow0 - pow1351); + let temp = temp * (pow0 - pow1355); + let temp = temp * (pow0 - pow1359); + let temp = temp * (pow0 - pow1363); + let temp = temp * (domain106); + let domain108 = temp * (domain107); + let temp = pow0 - pow1303; + let temp = temp * (pow0 - pow1308); + let temp = temp * (pow0 - pow1312); + let temp = temp * (pow0 - pow1316); + let temp = temp * (pow0 - pow1320); + let temp = temp * (pow0 - pow1324); + let temp = temp * (pow0 - pow1328); + let temp = temp * (pow0 - pow1332); + let temp = temp * (pow0 - pow1336); + let temp = temp * (pow0 - pow1340); + let temp = temp * (pow0 - pow1344); + let temp = temp * (pow0 - pow1348); + let temp = temp * (pow0 - pow1352); + let temp = temp * (pow0 - pow1356); + let temp = temp * (pow0 - pow1360); + let temp = temp * (pow0 - pow1364); + let domain109 = temp * (domain108); + let temp = pow0 - pow1305; + let temp = temp * (pow0 - pow1309); + let temp = temp * (pow0 - pow1313); + let temp = temp * (pow0 - pow1317); + let temp = temp * (pow0 - pow1321); + let temp = temp * (pow0 - pow1325); + let temp = temp * (pow0 - pow1329); + let temp = temp * (pow0 - pow1333); + let temp = temp * (pow0 - pow1337); + let temp = temp * (pow0 - pow1341); + let temp = temp * (pow0 - pow1345); + let temp = temp * (pow0 - pow1349); + let temp = temp * (pow0 - pow1353); + let temp = temp * (pow0 - pow1357); + let temp = temp * (pow0 - pow1361); + let temp = temp * (pow0 - pow1365); + let temp = temp * (domain104); + let domain110 = temp * (domain109); + let temp = pow0 - pow1366; + let temp = temp * (pow0 - pow1367); + let temp = temp * (pow0 - pow1368); + let temp = temp * (pow0 - pow1369); + let temp = temp * (pow0 - pow1370); + let temp = temp * (pow0 - pow1371); + let temp = temp * (pow0 - pow1372); + let domain111 = temp * (pow0 - pow1373); + let temp = pow0 - pow1374; + let temp = temp * (pow0 - pow1375); + let temp = temp * (pow0 - pow1376); + let temp = temp * (pow0 - pow1377); + let temp = temp * (pow0 - pow1378); + let temp = temp * (pow0 - pow1379); + let temp = temp * (pow0 - pow1380); + let temp = temp * (pow0 - pow1381); + let temp = temp * (pow0 - pow1382); + let temp = temp * (pow0 - pow1383); + let temp = temp * (pow0 - pow1384); + let temp = temp * (pow0 - pow1385); + let temp = temp * (pow0 - pow1386); + let temp = temp * (pow0 - pow1387); + let temp = temp * (pow0 - pow1388); + let temp = temp * (pow0 - pow1389); + let temp = temp * (domain110); + let domain112 = temp * (domain111); + let temp = pow0 - pow1405; + let temp = temp * (pow0 - pow1406); + let temp = temp * (pow0 - pow1407); + let temp = temp * (pow0 - pow1408); + let temp = temp * (pow0 - pow1409); + let temp = temp * (pow0 - pow1410); + let temp = temp * (pow0 - pow1411); + let temp = temp * (pow0 - pow1412); + let temp = temp * (pow0 - pow1436); + let temp = temp * (pow0 - pow1437); + let temp = temp * (pow0 - pow1438); + let temp = temp * (pow0 - pow1439); + let temp = temp * (pow0 - pow1440); + let temp = temp * (pow0 - pow1441); + let temp = temp * (pow0 - pow1442); + let domain113 = temp * (pow0 - pow1443); + let temp = pow0 - pow1475; + let temp = temp * (pow0 - pow1476); + let temp = temp * (pow0 - pow1477); + let temp = temp * (pow0 - pow1478); + let temp = temp * (pow0 - pow1479); + let temp = temp * (pow0 - pow1480); + let temp = temp * (pow0 - pow1481); + let temp = temp * (pow0 - pow1482); + let temp = temp * (pow0 - pow1506); + let temp = temp * (pow0 - pow1507); + let temp = temp * (pow0 - pow1508); + let temp = temp * (pow0 - pow1509); + let temp = temp * (pow0 - pow1510); + let temp = temp * (pow0 - pow1511); + let temp = temp * (pow0 - pow1512); + let temp = temp * (pow0 - pow1513); + let domain114 = temp * (domain113); + let temp = pow0 - pow1413; + let temp = temp * (pow0 - pow1414); + let temp = temp * (pow0 - pow1415); + let temp = temp * (pow0 - pow1416); + let temp = temp * (pow0 - pow1417); + let temp = temp * (pow0 - pow1418); + let temp = temp * (pow0 - pow1419); + let temp = temp * (pow0 - pow1420); + let temp = temp * (pow0 - pow1421); + let temp = temp * (pow0 - pow1422); + let temp = temp * (pow0 - pow1423); + let temp = temp * (pow0 - pow1424); + let temp = temp * (pow0 - pow1425); + let temp = temp * (pow0 - pow1426); + let temp = temp * (pow0 - pow1427); + let temp = temp * (pow0 - pow1428); + let temp = temp * (pow0 - pow1444); + let temp = temp * (pow0 - pow1445); + let temp = temp * (pow0 - pow1446); + let temp = temp * (pow0 - pow1447); + let temp = temp * (pow0 - pow1448); + let temp = temp * (pow0 - pow1449); + let temp = temp * (pow0 - pow1450); + let temp = temp * (pow0 - pow1451); + let temp = temp * (pow0 - pow1452); + let temp = temp * (pow0 - pow1453); + let temp = temp * (pow0 - pow1454); + let temp = temp * (pow0 - pow1455); + let temp = temp * (pow0 - pow1456); + let temp = temp * (pow0 - pow1457); + let temp = temp * (pow0 - pow1458); + let temp = temp * (pow0 - pow1459); + let temp = temp * (pow0 - pow1483); + let temp = temp * (pow0 - pow1484); + let temp = temp * (pow0 - pow1485); + let temp = temp * (pow0 - pow1486); + let temp = temp * (pow0 - pow1487); + let temp = temp * (pow0 - pow1488); + let temp = temp * (pow0 - pow1489); + let temp = temp * (pow0 - pow1490); + let temp = temp * (pow0 - pow1491); + let temp = temp * (pow0 - pow1492); + let temp = temp * (pow0 - pow1493); + let temp = temp * (pow0 - pow1494); + let temp = temp * (pow0 - pow1495); + let temp = temp * (pow0 - pow1496); + let temp = temp * (pow0 - pow1497); + let temp = temp * (pow0 - pow1498); + let temp = temp * (pow0 - pow1514); + let temp = temp * (pow0 - pow1515); + let temp = temp * (pow0 - pow1516); + let temp = temp * (pow0 - pow1517); + let temp = temp * (pow0 - pow1518); + let temp = temp * (pow0 - pow1519); + let temp = temp * (pow0 - pow1520); + let temp = temp * (pow0 - pow1521); + let temp = temp * (pow0 - pow1522); + let temp = temp * (pow0 - pow1523); + let temp = temp * (pow0 - pow1524); + let temp = temp * (pow0 - pow1525); + let temp = temp * (pow0 - pow1526); + let temp = temp * (pow0 - pow1527); + let temp = temp * (pow0 - pow1528); + let temp = temp * (pow0 - pow1529); + let temp = temp * (domain112); + let domain115 = temp * (domain114); + let temp = pow0 - pow1545; + let temp = temp * (pow0 - pow1546); + let temp = temp * (pow0 - pow1547); + let temp = temp * (pow0 - pow1548); + let temp = temp * (pow0 - pow1549); + let temp = temp * (pow0 - pow1550); + let temp = temp * (pow0 - pow1551); + let temp = temp * (pow0 - pow1552); + let temp = temp * (pow0 - pow1553); + let temp = temp * (pow0 - pow1554); + let temp = temp * (pow0 - pow1555); + let temp = temp * (pow0 - pow1556); + let temp = temp * (pow0 - pow1557); + let temp = temp * (pow0 - pow1558); + let temp = temp * (pow0 - pow1559); + let temp = temp * (pow0 - pow1560); + let temp = temp * (pow0 - pow1561); + let temp = temp * (pow0 - pow1562); + let temp = temp * (pow0 - pow1563); + let temp = temp * (pow0 - pow1564); + let temp = temp * (pow0 - pow1565); + let temp = temp * (pow0 - pow1566); + let temp = temp * (pow0 - pow1567); + let temp = temp * (pow0 - pow1568); + let temp = temp * (pow0 - pow1576); + let temp = temp * (pow0 - pow1578); + let temp = temp * (pow0 - pow1580); + let temp = temp * (pow0 - pow1582); + let temp = temp * (pow0 - pow1584); + let temp = temp * (pow0 - pow1586); + let temp = temp * (pow0 - pow1588); + let temp = temp * (pow0 - pow1590); + let temp = temp * (pow0 - pow1592); + let temp = temp * (pow0 - pow1594); + let temp = temp * (pow0 - pow1596); + let temp = temp * (pow0 - pow1598); + let temp = temp * (pow0 - pow1600); + let temp = temp * (pow0 - pow1602); + let temp = temp * (pow0 - pow1604); + let temp = temp * (pow0 - pow1606); + let temp = temp * (pow0 - pow1607); + let temp = temp * (pow0 - pow1608); + let temp = temp * (pow0 - pow1609); + let temp = temp * (pow0 - pow1610); + let temp = temp * (pow0 - pow1611); + let temp = temp * (pow0 - pow1612); + let temp = temp * (pow0 - pow1613); + let temp = temp * (pow0 - pow1614); + let domain116 = temp * (domain115); + let temp = pow0 - pow1577; + let temp = temp * (pow0 - pow1579); + let temp = temp * (pow0 - pow1581); + let temp = temp * (pow0 - pow1583); + let temp = temp * (pow0 - pow1585); + let temp = temp * (pow0 - pow1587); + let temp = temp * (pow0 - pow1589); + let temp = temp * (pow0 - pow1591); + let temp = temp * (pow0 - pow1593); + let temp = temp * (pow0 - pow1595); + let temp = temp * (pow0 - pow1597); + let temp = temp * (pow0 - pow1599); + let temp = temp * (pow0 - pow1601); + let temp = temp * (pow0 - pow1603); + let temp = temp * (pow0 - pow1605); + let temp = temp * (pow0 - pow1615); + let temp = temp * (pow0 - pow1616); + let temp = temp * (pow0 - pow1617); + let temp = temp * (pow0 - pow1618); + let temp = temp * (pow0 - pow1619); + let temp = temp * (pow0 - pow1620); + let temp = temp * (pow0 - pow1621); + let temp = temp * (pow0 - pow1622); + let temp = temp * (pow0 - pow1623); + let domain117 = temp * (domain116); + let temp = domain37; + let domain118 = temp * (domain56); + let temp = domain88; + let domain119 = temp * (domain118); + let temp = domain94; + let domain120 = temp * (domain119); + let temp = domain50; + let temp = temp * (domain54); + let domain121 = temp * (domain58); + let temp = domain61; + let domain122 = temp * (domain121); + let temp = domain65; + let domain123 = temp * (domain122); + let temp = domain60; + let domain124 = temp * (domain62); + let temp = domain86; + let domain125 = temp * (domain89); + let temp = domain95; + let temp = temp * (domain104); + let temp = temp * (domain111); + let domain126 = temp * (domain119); + let temp = domain114; + let domain127 = temp * (domain126); + let temp = domain66; + let temp = temp * (domain73); + let temp = temp * (domain79); + let domain128 = temp * (domain122); + let temp = domain82; + let domain129 = temp * (domain128); + let temp = domain113; + let domain130 = temp * (domain126); + let temp = domain81; + let domain131 = temp * (domain128); + let temp = domain103; + let domain132 = temp * (domain109); + let temp = domain72; + let domain133 = temp * (domain77); + let temp = domain70; + let domain134 = temp * (domain75); + let temp = domain100; + let domain135 = temp * (domain106); + let temp = domain64; + let domain136 = temp * (domain67); + let temp = domain93; + let domain137 = temp * (domain97); + let temp = domain71; + let domain138 = temp * (domain76); + let temp = domain102; + let domain139 = temp * (domain108); + let temp = domain69; + let domain140 = temp * (domain74); + let temp = domain99; + let domain141 = temp * (domain105); + let temp = pow0 - pow1640; + let temp = temp * (pow0 - pow1641); + let temp = temp * (pow0 - pow1642); + let temp = temp * (pow0 - pow1643); + let temp = temp * (pow0 - pow1644); + let temp = temp * (pow0 - pow1645); + let temp = temp * (pow0 - pow1646); + let temp = temp * (pow0 - pow1647); + let temp = temp * (pow0 - pow1648); + let temp = temp * (pow0 - pow1649); + let temp = temp * (pow0 - pow1650); + let temp = temp * (pow0 - pow1651); + let temp = temp * (pow0 - pow1652); + let temp = temp * (pow0 - pow1653); + let temp = temp * (pow0 - pow1654); + let temp = temp * (pow0 - pow1655); + let temp = temp * (pow0 - pow1656); + let temp = temp * (pow0 - pow1657); + let temp = temp * (pow0 - pow1658); + let temp = temp * (pow0 - pow1659); + let temp = temp * (pow0 - pow1660); + let temp = temp * (pow0 - pow1661); + let temp = temp * (pow0 - pow1662); + let temp = temp * (pow0 - pow1663); + let temp = temp * (domain55); + let temp = temp * (domain57); + let temp = temp * (domain87); + let temp = temp * (domain90); + let temp = temp * (domain92); + let temp = temp * (domain96); + let temp = temp * (domain101); + let domain142 = temp * (domain107); + let domain143 = point - pow24; + let domain144 = point - 1; + let domain145 = point - pow23; + let domain146 = point - pow22; + let domain147 = point - pow21; + let domain148 = point - pow20; + let domain149 = point - pow19; + let domain150 = point - pow18; + let domain151 = point - pow17; + let domain152 = point - pow16; + let domain153 = point - pow15; + + // Fetch mask variables. + let column0_row0 = *mask_values.pop_front().unwrap(); + let column0_row1 = *mask_values.pop_front().unwrap(); + let column0_row2 = *mask_values.pop_front().unwrap(); + let column0_row3 = *mask_values.pop_front().unwrap(); + let column0_row4 = *mask_values.pop_front().unwrap(); + let column0_row5 = *mask_values.pop_front().unwrap(); + let column0_row6 = *mask_values.pop_front().unwrap(); + let column0_row7 = *mask_values.pop_front().unwrap(); + let column0_row8 = *mask_values.pop_front().unwrap(); + let column0_row9 = *mask_values.pop_front().unwrap(); + let column0_row10 = *mask_values.pop_front().unwrap(); + let column0_row11 = *mask_values.pop_front().unwrap(); + let column0_row12 = *mask_values.pop_front().unwrap(); + let column0_row13 = *mask_values.pop_front().unwrap(); + let column0_row14 = *mask_values.pop_front().unwrap(); + let column0_row15 = *mask_values.pop_front().unwrap(); + let column1_row0 = *mask_values.pop_front().unwrap(); + let column1_row1 = *mask_values.pop_front().unwrap(); + let column1_row2 = *mask_values.pop_front().unwrap(); + let column1_row4 = *mask_values.pop_front().unwrap(); + let column1_row6 = *mask_values.pop_front().unwrap(); + let column1_row8 = *mask_values.pop_front().unwrap(); + let column1_row12 = *mask_values.pop_front().unwrap(); + let column1_row16 = *mask_values.pop_front().unwrap(); + let column1_row32 = *mask_values.pop_front().unwrap(); + let column1_row48 = *mask_values.pop_front().unwrap(); + let column1_row64 = *mask_values.pop_front().unwrap(); + let column1_row80 = *mask_values.pop_front().unwrap(); + let column1_row96 = *mask_values.pop_front().unwrap(); + let column1_row112 = *mask_values.pop_front().unwrap(); + let column1_row128 = *mask_values.pop_front().unwrap(); + let column1_row144 = *mask_values.pop_front().unwrap(); + let column1_row160 = *mask_values.pop_front().unwrap(); + let column1_row176 = *mask_values.pop_front().unwrap(); + let column1_row192 = *mask_values.pop_front().unwrap(); + let column1_row193 = *mask_values.pop_front().unwrap(); + let column1_row196 = *mask_values.pop_front().unwrap(); + let column1_row208 = *mask_values.pop_front().unwrap(); + let column1_row224 = *mask_values.pop_front().unwrap(); + let column1_row240 = *mask_values.pop_front().unwrap(); + let column1_row256 = *mask_values.pop_front().unwrap(); + let column1_row257 = *mask_values.pop_front().unwrap(); + let column1_row260 = *mask_values.pop_front().unwrap(); + let column1_row264 = *mask_values.pop_front().unwrap(); + let column1_row449 = *mask_values.pop_front().unwrap(); + let column1_row512 = *mask_values.pop_front().unwrap(); + let column1_row513 = *mask_values.pop_front().unwrap(); + let column1_row516 = *mask_values.pop_front().unwrap(); + let column1_row520 = *mask_values.pop_front().unwrap(); + let column1_row704 = *mask_values.pop_front().unwrap(); + let column1_row705 = *mask_values.pop_front().unwrap(); + let column1_row720 = *mask_values.pop_front().unwrap(); + let column1_row736 = *mask_values.pop_front().unwrap(); + let column1_row752 = *mask_values.pop_front().unwrap(); + let column1_row768 = *mask_values.pop_front().unwrap(); + let column1_row769 = *mask_values.pop_front().unwrap(); + let column1_row770 = *mask_values.pop_front().unwrap(); + let column1_row772 = *mask_values.pop_front().unwrap(); + let column1_row774 = *mask_values.pop_front().unwrap(); + let column1_row776 = *mask_values.pop_front().unwrap(); + let column1_row780 = *mask_values.pop_front().unwrap(); + let column1_row960 = *mask_values.pop_front().unwrap(); + let column1_row961 = *mask_values.pop_front().unwrap(); + let column1_row976 = *mask_values.pop_front().unwrap(); + let column1_row992 = *mask_values.pop_front().unwrap(); + let column1_row1008 = *mask_values.pop_front().unwrap(); + let column1_row1025 = *mask_values.pop_front().unwrap(); + let column1_row1026 = *mask_values.pop_front().unwrap(); + let column1_row1028 = *mask_values.pop_front().unwrap(); + let column1_row1030 = *mask_values.pop_front().unwrap(); + let column1_row1036 = *mask_values.pop_front().unwrap(); + let column1_row1217 = *mask_values.pop_front().unwrap(); + let column1_row1281 = *mask_values.pop_front().unwrap(); + let column1_row1284 = *mask_values.pop_front().unwrap(); + let column1_row1473 = *mask_values.pop_front().unwrap(); + let column1_row1537 = *mask_values.pop_front().unwrap(); + let column1_row1540 = *mask_values.pop_front().unwrap(); + let column1_row1729 = *mask_values.pop_front().unwrap(); + let column1_row1793 = *mask_values.pop_front().unwrap(); + let column1_row1796 = *mask_values.pop_front().unwrap(); + let column1_row1985 = *mask_values.pop_front().unwrap(); + let column1_row2049 = *mask_values.pop_front().unwrap(); + let column1_row2052 = *mask_values.pop_front().unwrap(); + let column1_row2116 = *mask_values.pop_front().unwrap(); + let column1_row2180 = *mask_values.pop_front().unwrap(); + let column1_row2241 = *mask_values.pop_front().unwrap(); + let column1_row2305 = *mask_values.pop_front().unwrap(); + let column1_row2308 = *mask_values.pop_front().unwrap(); + let column1_row2497 = *mask_values.pop_front().unwrap(); + let column1_row2561 = *mask_values.pop_front().unwrap(); + let column1_row2564 = *mask_values.pop_front().unwrap(); + let column1_row2753 = *mask_values.pop_front().unwrap(); + let column1_row2817 = *mask_values.pop_front().unwrap(); + let column1_row2820 = *mask_values.pop_front().unwrap(); + let column1_row3009 = *mask_values.pop_front().unwrap(); + let column1_row3073 = *mask_values.pop_front().unwrap(); + let column1_row3076 = *mask_values.pop_front().unwrap(); + let column1_row3329 = *mask_values.pop_front().unwrap(); + let column1_row3332 = *mask_values.pop_front().unwrap(); + let column1_row3585 = *mask_values.pop_front().unwrap(); + let column1_row3588 = *mask_values.pop_front().unwrap(); + let column1_row3652 = *mask_values.pop_front().unwrap(); + let column1_row3716 = *mask_values.pop_front().unwrap(); + let column1_row3841 = *mask_values.pop_front().unwrap(); + let column1_row3844 = *mask_values.pop_front().unwrap(); + let column1_row3908 = *mask_values.pop_front().unwrap(); + let column1_row3972 = *mask_values.pop_front().unwrap(); + let column1_row4097 = *mask_values.pop_front().unwrap(); + let column1_row4100 = *mask_values.pop_front().unwrap(); + let column1_row4353 = *mask_values.pop_front().unwrap(); + let column1_row4356 = *mask_values.pop_front().unwrap(); + let column1_row4609 = *mask_values.pop_front().unwrap(); + let column1_row4612 = *mask_values.pop_front().unwrap(); + let column1_row4865 = *mask_values.pop_front().unwrap(); + let column1_row4868 = *mask_values.pop_front().unwrap(); + let column1_row5121 = *mask_values.pop_front().unwrap(); + let column1_row5124 = *mask_values.pop_front().unwrap(); + let column1_row5377 = *mask_values.pop_front().unwrap(); + let column1_row5380 = *mask_values.pop_front().unwrap(); + let column1_row5441 = *mask_values.pop_front().unwrap(); + let column1_row5444 = *mask_values.pop_front().unwrap(); + let column1_row5505 = *mask_values.pop_front().unwrap(); + let column1_row5508 = *mask_values.pop_front().unwrap(); + let column1_row5633 = *mask_values.pop_front().unwrap(); + let column1_row5636 = *mask_values.pop_front().unwrap(); + let column1_row5697 = *mask_values.pop_front().unwrap(); + let column1_row5761 = *mask_values.pop_front().unwrap(); + let column1_row5889 = *mask_values.pop_front().unwrap(); + let column1_row5892 = *mask_values.pop_front().unwrap(); + let column1_row5953 = *mask_values.pop_front().unwrap(); + let column1_row6017 = *mask_values.pop_front().unwrap(); + let column1_row6145 = *mask_values.pop_front().unwrap(); + let column1_row6148 = *mask_values.pop_front().unwrap(); + let column1_row6209 = *mask_values.pop_front().unwrap(); + let column1_row6273 = *mask_values.pop_front().unwrap(); + let column1_row6401 = *mask_values.pop_front().unwrap(); + let column1_row6402 = *mask_values.pop_front().unwrap(); + let column1_row6404 = *mask_values.pop_front().unwrap(); + let column1_row6406 = *mask_values.pop_front().unwrap(); + let column1_row6468 = *mask_values.pop_front().unwrap(); + let column1_row6470 = *mask_values.pop_front().unwrap(); + let column1_row6532 = *mask_values.pop_front().unwrap(); + let column1_row6534 = *mask_values.pop_front().unwrap(); + let column1_row6593 = *mask_values.pop_front().unwrap(); + let column1_row6594 = *mask_values.pop_front().unwrap(); + let column1_row6596 = *mask_values.pop_front().unwrap(); + let column1_row6598 = *mask_values.pop_front().unwrap(); + let column1_row6658 = *mask_values.pop_front().unwrap(); + let column1_row6660 = *mask_values.pop_front().unwrap(); + let column1_row6722 = *mask_values.pop_front().unwrap(); + let column1_row6724 = *mask_values.pop_front().unwrap(); + let column1_row6785 = *mask_values.pop_front().unwrap(); + let column1_row6786 = *mask_values.pop_front().unwrap(); + let column1_row6788 = *mask_values.pop_front().unwrap(); + let column1_row6790 = *mask_values.pop_front().unwrap(); + let column1_row6977 = *mask_values.pop_front().unwrap(); + let column1_row6978 = *mask_values.pop_front().unwrap(); + let column1_row6980 = *mask_values.pop_front().unwrap(); + let column1_row6982 = *mask_values.pop_front().unwrap(); + let column1_row7169 = *mask_values.pop_front().unwrap(); + let column1_row7170 = *mask_values.pop_front().unwrap(); + let column1_row7172 = *mask_values.pop_front().unwrap(); + let column1_row7174 = *mask_values.pop_front().unwrap(); + let column1_row7361 = *mask_values.pop_front().unwrap(); + let column1_row7362 = *mask_values.pop_front().unwrap(); + let column1_row7364 = *mask_values.pop_front().unwrap(); + let column1_row7366 = *mask_values.pop_front().unwrap(); + let column1_row7553 = *mask_values.pop_front().unwrap(); + let column1_row7554 = *mask_values.pop_front().unwrap(); + let column1_row7556 = *mask_values.pop_front().unwrap(); + let column1_row7558 = *mask_values.pop_front().unwrap(); + let column1_row7745 = *mask_values.pop_front().unwrap(); + let column1_row7746 = *mask_values.pop_front().unwrap(); + let column1_row7748 = *mask_values.pop_front().unwrap(); + let column1_row7750 = *mask_values.pop_front().unwrap(); + let column1_row7937 = *mask_values.pop_front().unwrap(); + let column1_row7938 = *mask_values.pop_front().unwrap(); + let column1_row7940 = *mask_values.pop_front().unwrap(); + let column1_row7942 = *mask_values.pop_front().unwrap(); + let column1_row8193 = *mask_values.pop_front().unwrap(); + let column1_row8194 = *mask_values.pop_front().unwrap(); + let column1_row8198 = *mask_values.pop_front().unwrap(); + let column1_row8204 = *mask_values.pop_front().unwrap(); + let column1_row8449 = *mask_values.pop_front().unwrap(); + let column1_row8705 = *mask_values.pop_front().unwrap(); + let column1_row10753 = *mask_values.pop_front().unwrap(); + let column1_row15942 = *mask_values.pop_front().unwrap(); + let column1_row16900 = *mask_values.pop_front().unwrap(); + let column1_row18881 = *mask_values.pop_front().unwrap(); + let column1_row19137 = *mask_values.pop_front().unwrap(); + let column1_row19393 = *mask_values.pop_front().unwrap(); + let column1_row22529 = *mask_values.pop_front().unwrap(); + let column1_row22593 = *mask_values.pop_front().unwrap(); + let column1_row22657 = *mask_values.pop_front().unwrap(); + let column1_row22786 = *mask_values.pop_front().unwrap(); + let column1_row24577 = *mask_values.pop_front().unwrap(); + let column1_row24578 = *mask_values.pop_front().unwrap(); + let column1_row24582 = *mask_values.pop_front().unwrap(); + let column1_row24588 = *mask_values.pop_front().unwrap(); + let column1_row24833 = *mask_values.pop_front().unwrap(); + let column1_row25089 = *mask_values.pop_front().unwrap(); + let column1_row26369 = *mask_values.pop_front().unwrap(); + let column1_row30212 = *mask_values.pop_front().unwrap(); + let column1_row30978 = *mask_values.pop_front().unwrap(); + let column1_row31169 = *mask_values.pop_front().unwrap(); + let column1_row51969 = *mask_values.pop_front().unwrap(); + let column1_row55937 = *mask_values.pop_front().unwrap(); + let column1_row57345 = *mask_values.pop_front().unwrap(); + let column1_row57346 = *mask_values.pop_front().unwrap(); + let column1_row57350 = *mask_values.pop_front().unwrap(); + let column1_row57356 = *mask_values.pop_front().unwrap(); + let column1_row57601 = *mask_values.pop_front().unwrap(); + let column1_row57857 = *mask_values.pop_front().unwrap(); + let column1_row68865 = *mask_values.pop_front().unwrap(); + let column1_row71428 = *mask_values.pop_front().unwrap(); + let column1_row71942 = *mask_values.pop_front().unwrap(); + let column1_row73474 = *mask_values.pop_front().unwrap(); + let column1_row75780 = *mask_values.pop_front().unwrap(); + let column1_row75844 = *mask_values.pop_front().unwrap(); + let column1_row75908 = *mask_values.pop_front().unwrap(); + let column1_row80134 = *mask_values.pop_front().unwrap(); + let column1_row80198 = *mask_values.pop_front().unwrap(); + let column1_row80262 = *mask_values.pop_front().unwrap(); + let column1_row86273 = *mask_values.pop_front().unwrap(); + let column1_row89281 = *mask_values.pop_front().unwrap(); + let column1_row115713 = *mask_values.pop_front().unwrap(); + let column1_row122244 = *mask_values.pop_front().unwrap(); + let column1_row122881 = *mask_values.pop_front().unwrap(); + let column1_row122882 = *mask_values.pop_front().unwrap(); + let column1_row122886 = *mask_values.pop_front().unwrap(); + let column1_row122892 = *mask_values.pop_front().unwrap(); + let column1_row123137 = *mask_values.pop_front().unwrap(); + let column1_row123393 = *mask_values.pop_front().unwrap(); + let column1_row127489 = *mask_values.pop_front().unwrap(); + let column1_row130433 = *mask_values.pop_front().unwrap(); + let column1_row151041 = *mask_values.pop_front().unwrap(); + let column1_row155398 = *mask_values.pop_front().unwrap(); + let column1_row159748 = *mask_values.pop_front().unwrap(); + let column1_row162052 = *mask_values.pop_front().unwrap(); + let column1_row165377 = *mask_values.pop_front().unwrap(); + let column1_row165380 = *mask_values.pop_front().unwrap(); + let column1_row170244 = *mask_values.pop_front().unwrap(); + let column1_row171398 = *mask_values.pop_front().unwrap(); + let column1_row172801 = *mask_values.pop_front().unwrap(); + let column1_row175108 = *mask_values.pop_front().unwrap(); + let column1_row178433 = *mask_values.pop_front().unwrap(); + let column1_row178434 = *mask_values.pop_front().unwrap(); + let column1_row192260 = *mask_values.pop_front().unwrap(); + let column1_row192324 = *mask_values.pop_front().unwrap(); + let column1_row192388 = *mask_values.pop_front().unwrap(); + let column1_row195010 = *mask_values.pop_front().unwrap(); + let column1_row195074 = *mask_values.pop_front().unwrap(); + let column1_row195138 = *mask_values.pop_front().unwrap(); + let column1_row207873 = *mask_values.pop_front().unwrap(); + let column1_row208388 = *mask_values.pop_front().unwrap(); + let column1_row208452 = *mask_values.pop_front().unwrap(); + let column1_row208516 = *mask_values.pop_front().unwrap(); + let column1_row211396 = *mask_values.pop_front().unwrap(); + let column1_row211460 = *mask_values.pop_front().unwrap(); + let column1_row211524 = *mask_values.pop_front().unwrap(); + let column1_row212740 = *mask_values.pop_front().unwrap(); + let column1_row225025 = *mask_values.pop_front().unwrap(); + let column1_row228161 = *mask_values.pop_front().unwrap(); + let column1_row230657 = *mask_values.pop_front().unwrap(); + let column1_row230660 = *mask_values.pop_front().unwrap(); + let column1_row235970 = *mask_values.pop_front().unwrap(); + let column1_row236930 = *mask_values.pop_front().unwrap(); + let column1_row253953 = *mask_values.pop_front().unwrap(); + let column1_row253954 = *mask_values.pop_front().unwrap(); + let column1_row253958 = *mask_values.pop_front().unwrap(); + let column1_row253964 = *mask_values.pop_front().unwrap(); + let column1_row254209 = *mask_values.pop_front().unwrap(); + let column1_row254465 = *mask_values.pop_front().unwrap(); + let column1_row295684 = *mask_values.pop_front().unwrap(); + let column1_row299009 = *mask_values.pop_front().unwrap(); + let column1_row301318 = *mask_values.pop_front().unwrap(); + let column1_row302081 = *mask_values.pop_front().unwrap(); + let column1_row304132 = *mask_values.pop_front().unwrap(); + let column1_row309700 = *mask_values.pop_front().unwrap(); + let column1_row320449 = *mask_values.pop_front().unwrap(); + let column1_row320705 = *mask_values.pop_front().unwrap(); + let column1_row320961 = *mask_values.pop_front().unwrap(); + let column1_row322820 = *mask_values.pop_front().unwrap(); + let column1_row325121 = *mask_values.pop_front().unwrap(); + let column1_row325185 = *mask_values.pop_front().unwrap(); + let column1_row325249 = *mask_values.pop_front().unwrap(); + let column1_row325894 = *mask_values.pop_front().unwrap(); + let column1_row337601 = *mask_values.pop_front().unwrap(); + let column1_row337857 = *mask_values.pop_front().unwrap(); + let column1_row338113 = *mask_values.pop_front().unwrap(); + let column1_row341761 = *mask_values.pop_front().unwrap(); + let column1_row341825 = *mask_values.pop_front().unwrap(); + let column1_row341889 = *mask_values.pop_front().unwrap(); + let column1_row352769 = *mask_values.pop_front().unwrap(); + let column1_row356868 = *mask_values.pop_front().unwrap(); + let column1_row358662 = *mask_values.pop_front().unwrap(); + let column1_row359622 = *mask_values.pop_front().unwrap(); + let column1_row360705 = *mask_values.pop_front().unwrap(); + let column1_row362756 = *mask_values.pop_front().unwrap(); + let column1_row367044 = *mask_values.pop_front().unwrap(); + let column1_row367810 = *mask_values.pop_front().unwrap(); + let column1_row370689 = *mask_values.pop_front().unwrap(); + let column1_row376388 = *mask_values.pop_front().unwrap(); + let column1_row381956 = *mask_values.pop_front().unwrap(); + let column1_row383426 = *mask_values.pop_front().unwrap(); + let column1_row405764 = *mask_values.pop_front().unwrap(); + let column1_row407810 = *mask_values.pop_front().unwrap(); + let column1_row415748 = *mask_values.pop_front().unwrap(); + let column1_row416196 = *mask_values.pop_front().unwrap(); + let column1_row445188 = *mask_values.pop_front().unwrap(); + let column1_row448772 = *mask_values.pop_front().unwrap(); + let column1_row450753 = *mask_values.pop_front().unwrap(); + let column1_row451009 = *mask_values.pop_front().unwrap(); + let column1_row451265 = *mask_values.pop_front().unwrap(); + let column1_row455937 = *mask_values.pop_front().unwrap(); + let column1_row456001 = *mask_values.pop_front().unwrap(); + let column1_row456065 = *mask_values.pop_front().unwrap(); + let column1_row463617 = *mask_values.pop_front().unwrap(); + let column1_row463620 = *mask_values.pop_front().unwrap(); + let column1_row465348 = *mask_values.pop_front().unwrap(); + let column1_row466497 = *mask_values.pop_front().unwrap(); + let column1_row476932 = *mask_values.pop_front().unwrap(); + let column1_row481538 = *mask_values.pop_front().unwrap(); + let column1_row502017 = *mask_values.pop_front().unwrap(); + let column1_row502276 = *mask_values.pop_front().unwrap(); + let column1_row506306 = *mask_values.pop_front().unwrap(); + let column1_row507458 = *mask_values.pop_front().unwrap(); + let column1_row513025 = *mask_values.pop_front().unwrap(); + let column1_row513284 = *mask_values.pop_front().unwrap(); + let column1_row513348 = *mask_values.pop_front().unwrap(); + let column1_row513412 = *mask_values.pop_front().unwrap(); + let column1_row514308 = *mask_values.pop_front().unwrap(); + let column1_row514372 = *mask_values.pop_front().unwrap(); + let column1_row514436 = *mask_values.pop_front().unwrap(); + let column1_row515841 = *mask_values.pop_front().unwrap(); + let column1_row516097 = *mask_values.pop_front().unwrap(); + let column1_row516098 = *mask_values.pop_front().unwrap(); + let column1_row516100 = *mask_values.pop_front().unwrap(); + let column1_row516102 = *mask_values.pop_front().unwrap(); + let column1_row516108 = *mask_values.pop_front().unwrap(); + let column1_row516292 = *mask_values.pop_front().unwrap(); + let column1_row516353 = *mask_values.pop_front().unwrap(); + let column1_row516356 = *mask_values.pop_front().unwrap(); + let column1_row516609 = *mask_values.pop_front().unwrap(); + let column1_row522498 = *mask_values.pop_front().unwrap(); + let column1_row522500 = *mask_values.pop_front().unwrap(); + let column1_row522502 = *mask_values.pop_front().unwrap(); + let column1_row522690 = *mask_values.pop_front().unwrap(); + let column1_row522692 = *mask_values.pop_front().unwrap(); + let column2_row0 = *mask_values.pop_front().unwrap(); + let column2_row1 = *mask_values.pop_front().unwrap(); + let column3_row0 = *mask_values.pop_front().unwrap(); + let column3_row1 = *mask_values.pop_front().unwrap(); + let column3_row255 = *mask_values.pop_front().unwrap(); + let column3_row256 = *mask_values.pop_front().unwrap(); + let column3_row511 = *mask_values.pop_front().unwrap(); + let column4_row0 = *mask_values.pop_front().unwrap(); + let column4_row1 = *mask_values.pop_front().unwrap(); + let column4_row255 = *mask_values.pop_front().unwrap(); + let column4_row256 = *mask_values.pop_front().unwrap(); + let column5_row0 = *mask_values.pop_front().unwrap(); + let column5_row1 = *mask_values.pop_front().unwrap(); + let column5_row192 = *mask_values.pop_front().unwrap(); + let column5_row193 = *mask_values.pop_front().unwrap(); + let column5_row196 = *mask_values.pop_front().unwrap(); + let column5_row197 = *mask_values.pop_front().unwrap(); + let column5_row251 = *mask_values.pop_front().unwrap(); + let column5_row252 = *mask_values.pop_front().unwrap(); + let column5_row256 = *mask_values.pop_front().unwrap(); + let column6_row0 = *mask_values.pop_front().unwrap(); + let column6_row255 = *mask_values.pop_front().unwrap(); + let column7_row0 = *mask_values.pop_front().unwrap(); + let column7_row1 = *mask_values.pop_front().unwrap(); + let column7_row2 = *mask_values.pop_front().unwrap(); + let column7_row3 = *mask_values.pop_front().unwrap(); + let column7_row4 = *mask_values.pop_front().unwrap(); + let column7_row5 = *mask_values.pop_front().unwrap(); + let column7_row6 = *mask_values.pop_front().unwrap(); + let column7_row7 = *mask_values.pop_front().unwrap(); + let column7_row8 = *mask_values.pop_front().unwrap(); + let column7_row9 = *mask_values.pop_front().unwrap(); + let column7_row10 = *mask_values.pop_front().unwrap(); + let column7_row11 = *mask_values.pop_front().unwrap(); + let column7_row12 = *mask_values.pop_front().unwrap(); + let column7_row13 = *mask_values.pop_front().unwrap(); + let column7_row14 = *mask_values.pop_front().unwrap(); + let column7_row15 = *mask_values.pop_front().unwrap(); + let column7_row16144 = *mask_values.pop_front().unwrap(); + let column7_row16145 = *mask_values.pop_front().unwrap(); + let column7_row16146 = *mask_values.pop_front().unwrap(); + let column7_row16147 = *mask_values.pop_front().unwrap(); + let column7_row16148 = *mask_values.pop_front().unwrap(); + let column7_row16149 = *mask_values.pop_front().unwrap(); + let column7_row16150 = *mask_values.pop_front().unwrap(); + let column7_row16151 = *mask_values.pop_front().unwrap(); + let column7_row16160 = *mask_values.pop_front().unwrap(); + let column7_row16161 = *mask_values.pop_front().unwrap(); + let column7_row16162 = *mask_values.pop_front().unwrap(); + let column7_row16163 = *mask_values.pop_front().unwrap(); + let column7_row16164 = *mask_values.pop_front().unwrap(); + let column7_row16165 = *mask_values.pop_front().unwrap(); + let column7_row16166 = *mask_values.pop_front().unwrap(); + let column7_row16167 = *mask_values.pop_front().unwrap(); + let column7_row16176 = *mask_values.pop_front().unwrap(); + let column7_row16192 = *mask_values.pop_front().unwrap(); + let column7_row16208 = *mask_values.pop_front().unwrap(); + let column7_row16224 = *mask_values.pop_front().unwrap(); + let column7_row16240 = *mask_values.pop_front().unwrap(); + let column7_row16256 = *mask_values.pop_front().unwrap(); + let column7_row16272 = *mask_values.pop_front().unwrap(); + let column7_row16288 = *mask_values.pop_front().unwrap(); + let column7_row16304 = *mask_values.pop_front().unwrap(); + let column7_row16320 = *mask_values.pop_front().unwrap(); + let column7_row16336 = *mask_values.pop_front().unwrap(); + let column7_row16352 = *mask_values.pop_front().unwrap(); + let column7_row16368 = *mask_values.pop_front().unwrap(); + let column7_row16384 = *mask_values.pop_front().unwrap(); + let column7_row32768 = *mask_values.pop_front().unwrap(); + let column7_row65536 = *mask_values.pop_front().unwrap(); + let column7_row98304 = *mask_values.pop_front().unwrap(); + let column7_row131072 = *mask_values.pop_front().unwrap(); + let column7_row163840 = *mask_values.pop_front().unwrap(); + let column7_row196608 = *mask_values.pop_front().unwrap(); + let column7_row229376 = *mask_values.pop_front().unwrap(); + let column7_row262144 = *mask_values.pop_front().unwrap(); + let column7_row294912 = *mask_values.pop_front().unwrap(); + let column7_row327680 = *mask_values.pop_front().unwrap(); + let column7_row360448 = *mask_values.pop_front().unwrap(); + let column7_row393216 = *mask_values.pop_front().unwrap(); + let column7_row425984 = *mask_values.pop_front().unwrap(); + let column7_row458752 = *mask_values.pop_front().unwrap(); + let column7_row491520 = *mask_values.pop_front().unwrap(); + let column8_row0 = *mask_values.pop_front().unwrap(); + let column8_row1 = *mask_values.pop_front().unwrap(); + let column8_row2 = *mask_values.pop_front().unwrap(); + let column8_row3 = *mask_values.pop_front().unwrap(); + let column8_row4 = *mask_values.pop_front().unwrap(); + let column8_row5 = *mask_values.pop_front().unwrap(); + let column8_row6 = *mask_values.pop_front().unwrap(); + let column8_row7 = *mask_values.pop_front().unwrap(); + let column8_row8 = *mask_values.pop_front().unwrap(); + let column8_row9 = *mask_values.pop_front().unwrap(); + let column8_row12 = *mask_values.pop_front().unwrap(); + let column8_row13 = *mask_values.pop_front().unwrap(); + let column8_row16 = *mask_values.pop_front().unwrap(); + let column8_row38 = *mask_values.pop_front().unwrap(); + let column8_row39 = *mask_values.pop_front().unwrap(); + let column8_row70 = *mask_values.pop_front().unwrap(); + let column8_row71 = *mask_values.pop_front().unwrap(); + let column8_row102 = *mask_values.pop_front().unwrap(); + let column8_row103 = *mask_values.pop_front().unwrap(); + let column8_row134 = *mask_values.pop_front().unwrap(); + let column8_row135 = *mask_values.pop_front().unwrap(); + let column8_row166 = *mask_values.pop_front().unwrap(); + let column8_row167 = *mask_values.pop_front().unwrap(); + let column8_row198 = *mask_values.pop_front().unwrap(); + let column8_row199 = *mask_values.pop_front().unwrap(); + let column8_row262 = *mask_values.pop_front().unwrap(); + let column8_row263 = *mask_values.pop_front().unwrap(); + let column8_row294 = *mask_values.pop_front().unwrap(); + let column8_row295 = *mask_values.pop_front().unwrap(); + let column8_row326 = *mask_values.pop_front().unwrap(); + let column8_row358 = *mask_values.pop_front().unwrap(); + let column8_row359 = *mask_values.pop_front().unwrap(); + let column8_row390 = *mask_values.pop_front().unwrap(); + let column8_row391 = *mask_values.pop_front().unwrap(); + let column8_row422 = *mask_values.pop_front().unwrap(); + let column8_row423 = *mask_values.pop_front().unwrap(); + let column8_row454 = *mask_values.pop_front().unwrap(); + let column8_row518 = *mask_values.pop_front().unwrap(); + let column8_row711 = *mask_values.pop_front().unwrap(); + let column8_row902 = *mask_values.pop_front().unwrap(); + let column8_row903 = *mask_values.pop_front().unwrap(); + let column8_row966 = *mask_values.pop_front().unwrap(); + let column8_row967 = *mask_values.pop_front().unwrap(); + let column8_row1222 = *mask_values.pop_front().unwrap(); + let column8_row1414 = *mask_values.pop_front().unwrap(); + let column8_row1415 = *mask_values.pop_front().unwrap(); + let column8_row2438 = *mask_values.pop_front().unwrap(); + let column8_row2439 = *mask_values.pop_front().unwrap(); + let column8_row3462 = *mask_values.pop_front().unwrap(); + let column8_row3463 = *mask_values.pop_front().unwrap(); + let column8_row4486 = *mask_values.pop_front().unwrap(); + let column8_row4487 = *mask_values.pop_front().unwrap(); + let column8_row5511 = *mask_values.pop_front().unwrap(); + let column8_row6534 = *mask_values.pop_front().unwrap(); + let column8_row6535 = *mask_values.pop_front().unwrap(); + let column8_row7559 = *mask_values.pop_front().unwrap(); + let column8_row8582 = *mask_values.pop_front().unwrap(); + let column8_row8583 = *mask_values.pop_front().unwrap(); + let column8_row9607 = *mask_values.pop_front().unwrap(); + let column8_row10630 = *mask_values.pop_front().unwrap(); + let column8_row10631 = *mask_values.pop_front().unwrap(); + let column8_row11655 = *mask_values.pop_front().unwrap(); + let column8_row12678 = *mask_values.pop_front().unwrap(); + let column8_row12679 = *mask_values.pop_front().unwrap(); + let column8_row13703 = *mask_values.pop_front().unwrap(); + let column8_row14726 = *mask_values.pop_front().unwrap(); + let column8_row14727 = *mask_values.pop_front().unwrap(); + let column8_row15751 = *mask_values.pop_front().unwrap(); + let column8_row16774 = *mask_values.pop_front().unwrap(); + let column8_row16775 = *mask_values.pop_front().unwrap(); + let column8_row17799 = *mask_values.pop_front().unwrap(); + let column8_row19847 = *mask_values.pop_front().unwrap(); + let column8_row21895 = *mask_values.pop_front().unwrap(); + let column8_row23943 = *mask_values.pop_front().unwrap(); + let column8_row24966 = *mask_values.pop_front().unwrap(); + let column8_row25991 = *mask_values.pop_front().unwrap(); + let column8_row28039 = *mask_values.pop_front().unwrap(); + let column8_row30087 = *mask_values.pop_front().unwrap(); + let column8_row32135 = *mask_values.pop_front().unwrap(); + let column8_row33158 = *mask_values.pop_front().unwrap(); + let column9_row0 = *mask_values.pop_front().unwrap(); + let column9_row1 = *mask_values.pop_front().unwrap(); + let column9_row2 = *mask_values.pop_front().unwrap(); + let column9_row3 = *mask_values.pop_front().unwrap(); + let column10_row0 = *mask_values.pop_front().unwrap(); + let column10_row1 = *mask_values.pop_front().unwrap(); + let column10_row2 = *mask_values.pop_front().unwrap(); + let column10_row3 = *mask_values.pop_front().unwrap(); + let column10_row4 = *mask_values.pop_front().unwrap(); + let column10_row5 = *mask_values.pop_front().unwrap(); + let column10_row6 = *mask_values.pop_front().unwrap(); + let column10_row7 = *mask_values.pop_front().unwrap(); + let column10_row8 = *mask_values.pop_front().unwrap(); + let column10_row9 = *mask_values.pop_front().unwrap(); + let column10_row12 = *mask_values.pop_front().unwrap(); + let column10_row13 = *mask_values.pop_front().unwrap(); + let column10_row17 = *mask_values.pop_front().unwrap(); + let column10_row19 = *mask_values.pop_front().unwrap(); + let column10_row21 = *mask_values.pop_front().unwrap(); + let column10_row25 = *mask_values.pop_front().unwrap(); + let column10_row44 = *mask_values.pop_front().unwrap(); + let column10_row71 = *mask_values.pop_front().unwrap(); + let column10_row76 = *mask_values.pop_front().unwrap(); + let column10_row108 = *mask_values.pop_front().unwrap(); + let column10_row135 = *mask_values.pop_front().unwrap(); + let column10_row140 = *mask_values.pop_front().unwrap(); + let column10_row172 = *mask_values.pop_front().unwrap(); + let column10_row204 = *mask_values.pop_front().unwrap(); + let column10_row236 = *mask_values.pop_front().unwrap(); + let column10_row243 = *mask_values.pop_front().unwrap(); + let column10_row251 = *mask_values.pop_front().unwrap(); + let column10_row259 = *mask_values.pop_front().unwrap(); + let column10_row275 = *mask_values.pop_front().unwrap(); + let column10_row489 = *mask_values.pop_front().unwrap(); + let column10_row497 = *mask_values.pop_front().unwrap(); + let column10_row499 = *mask_values.pop_front().unwrap(); + let column10_row505 = *mask_values.pop_front().unwrap(); + let column10_row507 = *mask_values.pop_front().unwrap(); + let column10_row2055 = *mask_values.pop_front().unwrap(); + let column10_row2119 = *mask_values.pop_front().unwrap(); + let column10_row2183 = *mask_values.pop_front().unwrap(); + let column10_row4103 = *mask_values.pop_front().unwrap(); + let column10_row4167 = *mask_values.pop_front().unwrap(); + let column10_row4231 = *mask_values.pop_front().unwrap(); + let column10_row6403 = *mask_values.pop_front().unwrap(); + let column10_row6419 = *mask_values.pop_front().unwrap(); + let column10_row7811 = *mask_values.pop_front().unwrap(); + let column10_row8003 = *mask_values.pop_front().unwrap(); + let column10_row8067 = *mask_values.pop_front().unwrap(); + let column10_row8131 = *mask_values.pop_front().unwrap(); + let column10_row8195 = *mask_values.pop_front().unwrap(); + let column10_row8199 = *mask_values.pop_front().unwrap(); + let column10_row8211 = *mask_values.pop_front().unwrap(); + let column10_row8435 = *mask_values.pop_front().unwrap(); + let column10_row8443 = *mask_values.pop_front().unwrap(); + let column10_row10247 = *mask_values.pop_front().unwrap(); + let column10_row12295 = *mask_values.pop_front().unwrap(); + let column10_row16003 = *mask_values.pop_front().unwrap(); + let column10_row16195 = *mask_values.pop_front().unwrap(); + let column10_row24195 = *mask_values.pop_front().unwrap(); + let column10_row32387 = *mask_values.pop_front().unwrap(); + let column10_row66307 = *mask_values.pop_front().unwrap(); + let column10_row66323 = *mask_values.pop_front().unwrap(); + let column10_row67591 = *mask_values.pop_front().unwrap(); + let column10_row75783 = *mask_values.pop_front().unwrap(); + let column10_row75847 = *mask_values.pop_front().unwrap(); + let column10_row75911 = *mask_values.pop_front().unwrap(); + let column10_row132611 = *mask_values.pop_front().unwrap(); + let column10_row132627 = *mask_values.pop_front().unwrap(); + let column10_row159751 = *mask_values.pop_front().unwrap(); + let column10_row167943 = *mask_values.pop_front().unwrap(); + let column10_row179843 = *mask_values.pop_front().unwrap(); + let column10_row196419 = *mask_values.pop_front().unwrap(); + let column10_row196483 = *mask_values.pop_front().unwrap(); + let column10_row196547 = *mask_values.pop_front().unwrap(); + let column10_row198915 = *mask_values.pop_front().unwrap(); + let column10_row198931 = *mask_values.pop_front().unwrap(); + let column10_row204807 = *mask_values.pop_front().unwrap(); + let column10_row204871 = *mask_values.pop_front().unwrap(); + let column10_row204935 = *mask_values.pop_front().unwrap(); + let column10_row237379 = *mask_values.pop_front().unwrap(); + let column10_row265219 = *mask_values.pop_front().unwrap(); + let column10_row265235 = *mask_values.pop_front().unwrap(); + let column10_row296967 = *mask_values.pop_front().unwrap(); + let column10_row303111 = *mask_values.pop_front().unwrap(); + let column10_row321543 = *mask_values.pop_front().unwrap(); + let column10_row331523 = *mask_values.pop_front().unwrap(); + let column10_row331539 = *mask_values.pop_front().unwrap(); + let column10_row354311 = *mask_values.pop_front().unwrap(); + let column10_row360455 = *mask_values.pop_front().unwrap(); + let column10_row384835 = *mask_values.pop_front().unwrap(); + let column10_row397827 = *mask_values.pop_front().unwrap(); + let column10_row397843 = *mask_values.pop_front().unwrap(); + let column10_row409219 = *mask_values.pop_front().unwrap(); + let column10_row409607 = *mask_values.pop_front().unwrap(); + let column10_row446471 = *mask_values.pop_front().unwrap(); + let column10_row458759 = *mask_values.pop_front().unwrap(); + let column10_row464131 = *mask_values.pop_front().unwrap(); + let column10_row464147 = *mask_values.pop_front().unwrap(); + let column10_row482947 = *mask_values.pop_front().unwrap(); + let column10_row507715 = *mask_values.pop_front().unwrap(); + let column10_row512007 = *mask_values.pop_front().unwrap(); + let column10_row512071 = *mask_values.pop_front().unwrap(); + let column10_row512135 = *mask_values.pop_front().unwrap(); + let column10_row516099 = *mask_values.pop_front().unwrap(); + let column10_row516115 = *mask_values.pop_front().unwrap(); + let column10_row516339 = *mask_values.pop_front().unwrap(); + let column10_row516347 = *mask_values.pop_front().unwrap(); + let column10_row520199 = *mask_values.pop_front().unwrap(); + let column11_row0 = *mask_values.pop_front().unwrap(); + let column11_row1 = *mask_values.pop_front().unwrap(); + let column11_row2 = *mask_values.pop_front().unwrap(); + let column11_row3 = *mask_values.pop_front().unwrap(); + let column11_row4 = *mask_values.pop_front().unwrap(); + let column11_row5 = *mask_values.pop_front().unwrap(); + let column11_row6 = *mask_values.pop_front().unwrap(); + let column11_row7 = *mask_values.pop_front().unwrap(); + let column11_row8 = *mask_values.pop_front().unwrap(); + let column11_row9 = *mask_values.pop_front().unwrap(); + let column11_row10 = *mask_values.pop_front().unwrap(); + let column11_row11 = *mask_values.pop_front().unwrap(); + let column11_row12 = *mask_values.pop_front().unwrap(); + let column11_row13 = *mask_values.pop_front().unwrap(); + let column11_row14 = *mask_values.pop_front().unwrap(); + let column11_row16 = *mask_values.pop_front().unwrap(); + let column11_row17 = *mask_values.pop_front().unwrap(); + let column11_row19 = *mask_values.pop_front().unwrap(); + let column11_row21 = *mask_values.pop_front().unwrap(); + let column11_row22 = *mask_values.pop_front().unwrap(); + let column11_row24 = *mask_values.pop_front().unwrap(); + let column11_row25 = *mask_values.pop_front().unwrap(); + let column11_row27 = *mask_values.pop_front().unwrap(); + let column11_row29 = *mask_values.pop_front().unwrap(); + let column11_row30 = *mask_values.pop_front().unwrap(); + let column11_row33 = *mask_values.pop_front().unwrap(); + let column11_row35 = *mask_values.pop_front().unwrap(); + let column11_row37 = *mask_values.pop_front().unwrap(); + let column11_row38 = *mask_values.pop_front().unwrap(); + let column11_row41 = *mask_values.pop_front().unwrap(); + let column11_row43 = *mask_values.pop_front().unwrap(); + let column11_row45 = *mask_values.pop_front().unwrap(); + let column11_row46 = *mask_values.pop_front().unwrap(); + let column11_row49 = *mask_values.pop_front().unwrap(); + let column11_row51 = *mask_values.pop_front().unwrap(); + let column11_row53 = *mask_values.pop_front().unwrap(); + let column11_row54 = *mask_values.pop_front().unwrap(); + let column11_row57 = *mask_values.pop_front().unwrap(); + let column11_row59 = *mask_values.pop_front().unwrap(); + let column11_row61 = *mask_values.pop_front().unwrap(); + let column11_row65 = *mask_values.pop_front().unwrap(); + let column11_row69 = *mask_values.pop_front().unwrap(); + let column11_row71 = *mask_values.pop_front().unwrap(); + let column11_row73 = *mask_values.pop_front().unwrap(); + let column11_row77 = *mask_values.pop_front().unwrap(); + let column11_row81 = *mask_values.pop_front().unwrap(); + let column11_row85 = *mask_values.pop_front().unwrap(); + let column11_row89 = *mask_values.pop_front().unwrap(); + let column11_row91 = *mask_values.pop_front().unwrap(); + let column11_row97 = *mask_values.pop_front().unwrap(); + let column11_row101 = *mask_values.pop_front().unwrap(); + let column11_row105 = *mask_values.pop_front().unwrap(); + let column11_row109 = *mask_values.pop_front().unwrap(); + let column11_row113 = *mask_values.pop_front().unwrap(); + let column11_row117 = *mask_values.pop_front().unwrap(); + let column11_row123 = *mask_values.pop_front().unwrap(); + let column11_row155 = *mask_values.pop_front().unwrap(); + let column11_row187 = *mask_values.pop_front().unwrap(); + let column11_row195 = *mask_values.pop_front().unwrap(); + let column11_row205 = *mask_values.pop_front().unwrap(); + let column11_row219 = *mask_values.pop_front().unwrap(); + let column11_row221 = *mask_values.pop_front().unwrap(); + let column11_row237 = *mask_values.pop_front().unwrap(); + let column11_row245 = *mask_values.pop_front().unwrap(); + let column11_row253 = *mask_values.pop_front().unwrap(); + let column11_row269 = *mask_values.pop_front().unwrap(); + let column11_row301 = *mask_values.pop_front().unwrap(); + let column11_row309 = *mask_values.pop_front().unwrap(); + let column11_row310 = *mask_values.pop_front().unwrap(); + let column11_row318 = *mask_values.pop_front().unwrap(); + let column11_row326 = *mask_values.pop_front().unwrap(); + let column11_row334 = *mask_values.pop_front().unwrap(); + let column11_row342 = *mask_values.pop_front().unwrap(); + let column11_row350 = *mask_values.pop_front().unwrap(); + let column11_row451 = *mask_values.pop_front().unwrap(); + let column11_row461 = *mask_values.pop_front().unwrap(); + let column11_row477 = *mask_values.pop_front().unwrap(); + let column11_row493 = *mask_values.pop_front().unwrap(); + let column11_row501 = *mask_values.pop_front().unwrap(); + let column11_row509 = *mask_values.pop_front().unwrap(); + let column11_row12309 = *mask_values.pop_front().unwrap(); + let column11_row12373 = *mask_values.pop_front().unwrap(); + let column11_row12565 = *mask_values.pop_front().unwrap(); + let column11_row12629 = *mask_values.pop_front().unwrap(); + let column11_row16085 = *mask_values.pop_front().unwrap(); + let column11_row16149 = *mask_values.pop_front().unwrap(); + let column11_row16325 = *mask_values.pop_front().unwrap(); + let column11_row16331 = *mask_values.pop_front().unwrap(); + let column11_row16337 = *mask_values.pop_front().unwrap(); + let column11_row16339 = *mask_values.pop_front().unwrap(); + let column11_row16355 = *mask_values.pop_front().unwrap(); + let column11_row16357 = *mask_values.pop_front().unwrap(); + let column11_row16363 = *mask_values.pop_front().unwrap(); + let column11_row16369 = *mask_values.pop_front().unwrap(); + let column11_row16371 = *mask_values.pop_front().unwrap(); + let column11_row16385 = *mask_values.pop_front().unwrap(); + let column11_row16417 = *mask_values.pop_front().unwrap(); + let column11_row32647 = *mask_values.pop_front().unwrap(); + let column11_row32667 = *mask_values.pop_front().unwrap(); + let column11_row32715 = *mask_values.pop_front().unwrap(); + let column11_row32721 = *mask_values.pop_front().unwrap(); + let column11_row32731 = *mask_values.pop_front().unwrap(); + let column11_row32747 = *mask_values.pop_front().unwrap(); + let column11_row32753 = *mask_values.pop_front().unwrap(); + let column11_row32763 = *mask_values.pop_front().unwrap(); + let column12_inter1_row0 = *mask_values.pop_front().unwrap(); + let column12_inter1_row1 = *mask_values.pop_front().unwrap(); + let column13_inter1_row0 = *mask_values.pop_front().unwrap(); + let column13_inter1_row1 = *mask_values.pop_front().unwrap(); + let column14_inter1_row0 = *mask_values.pop_front().unwrap(); + let column14_inter1_row1 = *mask_values.pop_front().unwrap(); + let column14_inter1_row2 = *mask_values.pop_front().unwrap(); + let column14_inter1_row5 = *mask_values.pop_front().unwrap(); + + // Compute intermediate values. + let cpu_decode_opcode_range_check_bit_0 = column0_row0 - (column0_row1 + column0_row1); + let cpu_decode_opcode_range_check_bit_2 = column0_row2 - (column0_row3 + column0_row3); + let cpu_decode_opcode_range_check_bit_4 = column0_row4 - (column0_row5 + column0_row5); + let cpu_decode_opcode_range_check_bit_3 = column0_row3 - (column0_row4 + column0_row4); + let cpu_decode_flag_op1_base_op0_0 = 1 + - (cpu_decode_opcode_range_check_bit_2 + + cpu_decode_opcode_range_check_bit_4 + + cpu_decode_opcode_range_check_bit_3); + let cpu_decode_opcode_range_check_bit_5 = column0_row5 - (column0_row6 + column0_row6); + let cpu_decode_opcode_range_check_bit_6 = column0_row6 - (column0_row7 + column0_row7); + let cpu_decode_opcode_range_check_bit_9 = column0_row9 - (column0_row10 + column0_row10); + let cpu_decode_flag_res_op1_0 = 1 + - (cpu_decode_opcode_range_check_bit_5 + + cpu_decode_opcode_range_check_bit_6 + + cpu_decode_opcode_range_check_bit_9); + let cpu_decode_opcode_range_check_bit_7 = column0_row7 - (column0_row8 + column0_row8); + let cpu_decode_opcode_range_check_bit_8 = column0_row8 - (column0_row9 + column0_row9); + let cpu_decode_flag_pc_update_regular_0 = 1 + - (cpu_decode_opcode_range_check_bit_7 + + cpu_decode_opcode_range_check_bit_8 + + cpu_decode_opcode_range_check_bit_9); + let cpu_decode_opcode_range_check_bit_12 = column0_row12 - (column0_row13 + column0_row13); + let cpu_decode_opcode_range_check_bit_13 = column0_row13 - (column0_row14 + column0_row14); + let cpu_decode_fp_update_regular_0 = 1 + - (cpu_decode_opcode_range_check_bit_12 + cpu_decode_opcode_range_check_bit_13); + let cpu_decode_opcode_range_check_bit_1 = column0_row1 - (column0_row2 + column0_row2); + let npc_reg_0 = column8_row0 + cpu_decode_opcode_range_check_bit_2 + 1; + let cpu_decode_opcode_range_check_bit_10 = column0_row10 - (column0_row11 + column0_row11); + let cpu_decode_opcode_range_check_bit_11 = column0_row11 - (column0_row12 + column0_row12); + let cpu_decode_opcode_range_check_bit_14 = column0_row14 - (column0_row15 + column0_row15); + let memory_address_diff_0 = column9_row2 - column9_row0; + let range_check16_diff_0 = column10_row6 - column10_row2; + let pedersen_hash0_ec_subset_sum_bit_0 = column5_row0 - (column5_row1 + column5_row1); + let pedersen_hash0_ec_subset_sum_bit_neg_0 = 1 - pedersen_hash0_ec_subset_sum_bit_0; + let range_check_builtin_value0_0 = column10_row12; + let range_check_builtin_value1_0 = range_check_builtin_value0_0 * global_values.offset_size + + column10_row44; + let range_check_builtin_value2_0 = range_check_builtin_value1_0 * global_values.offset_size + + column10_row76; + let range_check_builtin_value3_0 = range_check_builtin_value2_0 * global_values.offset_size + + column10_row108; + let range_check_builtin_value4_0 = range_check_builtin_value3_0 * global_values.offset_size + + column10_row140; + let range_check_builtin_value5_0 = range_check_builtin_value4_0 * global_values.offset_size + + column10_row172; + let range_check_builtin_value6_0 = range_check_builtin_value5_0 * global_values.offset_size + + column10_row204; + let range_check_builtin_value7_0 = range_check_builtin_value6_0 * global_values.offset_size + + column10_row236; + let ecdsa_signature0_doubling_key_x_squared = column11_row1 * column11_row1; + let ecdsa_signature0_exponentiate_generator_bit_0 = column11_row59 + - (column11_row187 + column11_row187); + let ecdsa_signature0_exponentiate_generator_bit_neg_0 = 1 + - ecdsa_signature0_exponentiate_generator_bit_0; + let ecdsa_signature0_exponentiate_key_bit_0 = column11_row9 - (column11_row73 + column11_row73); + let ecdsa_signature0_exponentiate_key_bit_neg_0 = 1 - ecdsa_signature0_exponentiate_key_bit_0; + let bitwise_sum_var_0_0 = column1_row0 + + column1_row16 * 2 + + column1_row32 * 4 + + column1_row48 * 8 + + column1_row64 * 18446744073709551616 + + column1_row80 * 36893488147419103232 + + column1_row96 * 73786976294838206464 + + column1_row112 * 147573952589676412928; + let bitwise_sum_var_8_0 = column1_row128 * 340282366920938463463374607431768211456 + + column1_row144 * 680564733841876926926749214863536422912 + + column1_row160 * 1361129467683753853853498429727072845824 + + column1_row176 * 2722258935367507707706996859454145691648 + + column1_row192 * 6277101735386680763835789423207666416102355444464034512896 + + column1_row208 * 12554203470773361527671578846415332832204710888928069025792 + + column1_row224 * 25108406941546723055343157692830665664409421777856138051584 + + column1_row240 * 50216813883093446110686315385661331328818843555712276103168; + let ec_op_doubling_q_x_squared_0 = column11_row41 * column11_row41; + let ec_op_ec_subset_sum_bit_0 = column11_row21 - (column11_row85 + column11_row85); + let ec_op_ec_subset_sum_bit_neg_0 = 1 - ec_op_ec_subset_sum_bit_0; + let keccak_keccak_parse_to_diluted_sum_words_over_instances0_0 = column10_row3 + - column10_row66307 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances0_2 = column10_row19 + - column10_row66323 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances1_0 = column10_row66307 + - column10_row132611 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances1_2 = column10_row66323 + - column10_row132627 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances2_0 = column10_row132611 + - column10_row198915 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances2_2 = column10_row132627 + - column10_row198931 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances3_0 = column10_row198915 + - column10_row265219 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances3_2 = column10_row198931 + - column10_row265235 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances4_0 = column10_row265219 + - column10_row331523 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances4_2 = column10_row265235 + - column10_row331539 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances5_0 = column10_row331523 + - column10_row397827 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances5_2 = column10_row331539 + - column10_row397843 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances6_0 = column10_row397827 + - column10_row464131 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances6_2 = column10_row397843 + - column10_row464147 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances7_0 = column10_row464131 + - column10_row6403 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_sum_words_over_instances7_2 = column10_row464147 + - column10_row6419 * 1606938044258990275541962092341162602522202993782792835301376; + let keccak_keccak_parse_to_diluted_partial_diluted1_0 = column10_row516099 + - (column10_row259 + column10_row259); + let keccak_keccak_parse_to_diluted_partial_diluted1_2 = column10_row516115 + - (column10_row275 + column10_row275); + let keccak_keccak_parse_to_diluted_bit_other1_0 = + keccak_keccak_parse_to_diluted_partial_diluted1_2 + - 16 * keccak_keccak_parse_to_diluted_partial_diluted1_0; + let keccak_keccak_parse_to_diluted_partial_diluted1_30 = column10_row516339 + - (column10_row499 + column10_row499); + let keccak_keccak_parse_to_diluted_partial_diluted1_31 = column10_row516347 + - (column10_row507 + column10_row507); + let keccak_keccak_parse_to_diluted_partial_diluted0_0 = column10_row3 + - (column10_row8195 + column10_row8195); + let keccak_keccak_parse_to_diluted_partial_diluted0_2 = column10_row19 + - (column10_row8211 + column10_row8211); + let keccak_keccak_parse_to_diluted_bit_other0_0 = + keccak_keccak_parse_to_diluted_partial_diluted0_2 + - 16 * keccak_keccak_parse_to_diluted_partial_diluted0_0; + let keccak_keccak_parse_to_diluted_partial_diluted0_30 = column10_row243 + - (column10_row8435 + column10_row8435); + let keccak_keccak_parse_to_diluted_partial_diluted0_31 = column10_row251 + - (column10_row8443 + column10_row8443); + let keccak_keccak_sum_parities0_0 = column1_row6594 + column10_row8003; + let keccak_keccak_sum_parities1_0 = column1_row6404 + column10_row4103; + let keccak_keccak_sum_parities1_64512 = column1_row522500 + column10_row520199; + let keccak_keccak_sum_parities2_0 = column1_row6402 + column10_row7811; + let keccak_keccak_sum_parities2_2048 = column1_row22786 + column10_row24195; + let keccak_keccak_sum_parities3_0 = column1_row6406 + column10_row2055; + let keccak_keccak_sum_parities3_36864 = column1_row301318 + column10_row296967; + let keccak_keccak_sum_parities4_0 = column1_row6596 + column10_row7; + let keccak_keccak_sum_parities4_37888 = column1_row309700 + column10_row303111; + let keccak_keccak_sum_parities0_28672 = column1_row235970 + column10_row237379; + let keccak_keccak_sum_parities1_20480 = column1_row170244 + column10_row167943; + let keccak_keccak_sum_parities2_59392 = column1_row481538 + column10_row482947; + let keccak_keccak_sum_parities3_8 = column1_row6470 + column10_row2119; + let keccak_keccak_sum_parities3_16 = column1_row6534 + column10_row2183; + let keccak_keccak_sum_parities3_9216 = column1_row80134 + column10_row75783; + let keccak_keccak_sum_parities3_9224 = column1_row80198 + column10_row75847; + let keccak_keccak_sum_parities3_9232 = column1_row80262 + column10_row75911; + let keccak_keccak_sum_parities4_45056 = column1_row367044 + column10_row360455; + let keccak_keccak_sum_parities0_62464 = column1_row506306 + column10_row507715; + let keccak_keccak_sum_parities1_55296 = column1_row448772 + column10_row446471; + let keccak_keccak_sum_parities2_21504 = column1_row178434 + column10_row179843; + let keccak_keccak_sum_parities3_39936 = column1_row325894 + column10_row321543; + let keccak_keccak_sum_parities4_8 = column1_row6660 + column10_row71; + let keccak_keccak_sum_parities4_16 = column1_row6724 + column10_row135; + let keccak_keccak_sum_parities4_25600 = column1_row211396 + column10_row204807; + let keccak_keccak_sum_parities4_25608 = column1_row211460 + column10_row204871; + let keccak_keccak_sum_parities4_25616 = column1_row211524 + column10_row204935; + let keccak_keccak_sum_parities0_8 = column1_row6658 + column10_row8067; + let keccak_keccak_sum_parities0_16 = column1_row6722 + column10_row8131; + let keccak_keccak_sum_parities0_23552 = column1_row195010 + column10_row196419; + let keccak_keccak_sum_parities0_23560 = column1_row195074 + column10_row196483; + let keccak_keccak_sum_parities0_23568 = column1_row195138 + column10_row196547; + let keccak_keccak_sum_parities1_19456 = column1_row162052 + column10_row159751; + let keccak_keccak_sum_parities2_50176 = column1_row407810 + column10_row409219; + let keccak_keccak_sum_parities3_44032 = column1_row358662 + column10_row354311; + let keccak_keccak_sum_parities4_57344 = column1_row465348 + column10_row458759; + let keccak_keccak_sum_parities0_47104 = column1_row383426 + column10_row384835; + let keccak_keccak_sum_parities1_8 = column1_row6468 + column10_row4167; + let keccak_keccak_sum_parities1_16 = column1_row6532 + column10_row4231; + let keccak_keccak_sum_parities1_63488 = column1_row514308 + column10_row512007; + let keccak_keccak_sum_parities1_63496 = column1_row514372 + column10_row512071; + let keccak_keccak_sum_parities1_63504 = column1_row514436 + column10_row512135; + let keccak_keccak_sum_parities2_3072 = column1_row30978 + column10_row32387; + let keccak_keccak_sum_parities3_8192 = column1_row71942 + column10_row67591; + let keccak_keccak_sum_parities4_51200 = column1_row416196 + column10_row409607; + let keccak_keccak_after_theta_rho_pi_xor_one_32 = 1229782938247303441 - column1_row257; + let keccak_keccak_after_theta_rho_pi_xor_one_1056 = 1229782938247303441 - column1_row8449; + let keccak_keccak_after_theta_rho_pi_xor_one_3104 = 1229782938247303441 - column1_row24833; + let keccak_keccak_after_theta_rho_pi_xor_one_7200 = 1229782938247303441 - column1_row57601; + let keccak_keccak_after_theta_rho_pi_xor_one_15392 = 1229782938247303441 - column1_row123137; + let keccak_keccak_after_theta_rho_pi_xor_one_31776 = 1229782938247303441 - column1_row254209; + let keccak_keccak_after_theta_rho_pi_xor_one_64544 = 1229782938247303441 - column1_row516353; + let keccak_keccak_after_theta_rho_pi_xor_one_0 = 1229782938247303441 - column1_row1; + let keccak_keccak_after_theta_rho_pi_xor_one_128 = 1229782938247303441 - column1_row1025; + let poseidon_poseidon_full_rounds_state0_cubed_0 = column11_row53 * column11_row29; + let poseidon_poseidon_full_rounds_state1_cubed_0 = column11_row13 * column11_row61; + let poseidon_poseidon_full_rounds_state2_cubed_0 = column11_row45 * column11_row3; + let poseidon_poseidon_full_rounds_state0_cubed_7 = column11_row501 * column11_row477; + let poseidon_poseidon_full_rounds_state1_cubed_7 = column11_row461 * column11_row509; + let poseidon_poseidon_full_rounds_state2_cubed_7 = column11_row493 * column11_row451; + let poseidon_poseidon_full_rounds_state0_cubed_3 = column11_row245 * column11_row221; + let poseidon_poseidon_full_rounds_state1_cubed_3 = column11_row205 * column11_row253; + let poseidon_poseidon_full_rounds_state2_cubed_3 = column11_row237 * column11_row195; + let poseidon_poseidon_partial_rounds_state0_cubed_0 = column10_row1 * column10_row5; + let poseidon_poseidon_partial_rounds_state0_cubed_1 = column10_row9 * column10_row13; + let poseidon_poseidon_partial_rounds_state0_cubed_2 = column10_row17 * column10_row21; + let poseidon_poseidon_partial_rounds_state1_cubed_0 = column11_row6 * column11_row14; + let poseidon_poseidon_partial_rounds_state1_cubed_1 = column11_row22 * column11_row30; + let poseidon_poseidon_partial_rounds_state1_cubed_2 = column11_row38 * column11_row46; + let poseidon_poseidon_partial_rounds_state1_cubed_19 = column11_row310 * column11_row318; + let poseidon_poseidon_partial_rounds_state1_cubed_20 = column11_row326 * column11_row334; + let poseidon_poseidon_partial_rounds_state1_cubed_21 = column11_row342 * column11_row350; + + // Sum constraints. + let mut total_sum = 0; + let mut value = 0; + + // Constraint: cpu/decode/opcode_range_check/bit. + value = + (cpu_decode_opcode_range_check_bit_0 * cpu_decode_opcode_range_check_bit_0 + - cpu_decode_opcode_range_check_bit_0) + * domain4 + / domain0; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/decode/opcode_range_check/zero. + value = (column0_row0) / domain4; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/decode/opcode_range_check_input. + value = + (column8_row1 + - (((column0_row0 * global_values.offset_size + column10_row4) + * global_values.offset_size + + column10_row8) + * global_values.offset_size + + column10_row0)) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/decode/flag_op1_base_op0_bit. + value = + (cpu_decode_flag_op1_base_op0_0 * cpu_decode_flag_op1_base_op0_0 + - cpu_decode_flag_op1_base_op0_0) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/decode/flag_res_op1_bit. + value = (cpu_decode_flag_res_op1_0 * cpu_decode_flag_res_op1_0 - cpu_decode_flag_res_op1_0) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/decode/flag_pc_update_regular_bit. + value = + (cpu_decode_flag_pc_update_regular_0 * cpu_decode_flag_pc_update_regular_0 + - cpu_decode_flag_pc_update_regular_0) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/decode/fp_update_regular_bit. + value = + (cpu_decode_fp_update_regular_0 * cpu_decode_fp_update_regular_0 + - cpu_decode_fp_update_regular_0) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/operands/mem_dst_addr. + value = + (column8_row8 + + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_0 * column11_row8 + + (1 - cpu_decode_opcode_range_check_bit_0) * column11_row0 + + column10_row0)) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/operands/mem0_addr. + value = + (column8_row4 + + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_1 * column11_row8 + + (1 - cpu_decode_opcode_range_check_bit_1) * column11_row0 + + column10_row8)) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/operands/mem1_addr. + value = + (column8_row12 + + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_2 * column8_row0 + + cpu_decode_opcode_range_check_bit_4 * column11_row0 + + cpu_decode_opcode_range_check_bit_3 * column11_row8 + + cpu_decode_flag_op1_base_op0_0 * column8_row5 + + column10_row4)) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/operands/ops_mul. + value = (column11_row4 - column8_row5 * column8_row13) / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/operands/res. + value = + ((1 - cpu_decode_opcode_range_check_bit_9) * column11_row12 + - (cpu_decode_opcode_range_check_bit_5 * (column8_row5 + column8_row13) + + cpu_decode_opcode_range_check_bit_6 * column11_row4 + + cpu_decode_flag_res_op1_0 * column8_row13)) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/update_registers/update_pc/tmp0. + value = (column11_row2 - cpu_decode_opcode_range_check_bit_9 * column8_row9) + * domain143 + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/update_registers/update_pc/tmp1. + value = (column11_row10 - column11_row2 * column11_row12) * domain143 / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/update_registers/update_pc/pc_cond_negative. + value = + ((1 - cpu_decode_opcode_range_check_bit_9) * column8_row16 + + column11_row2 * (column8_row16 - (column8_row0 + column8_row13)) + - (cpu_decode_flag_pc_update_regular_0 * npc_reg_0 + + cpu_decode_opcode_range_check_bit_7 * column11_row12 + + cpu_decode_opcode_range_check_bit_8 * (column8_row0 + column11_row12))) + * domain143 + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/update_registers/update_pc/pc_cond_positive. + value = ((column11_row10 - cpu_decode_opcode_range_check_bit_9) * (column8_row16 - npc_reg_0)) + * domain143 + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/update_registers/update_ap/ap_update. + value = + (column11_row16 + - (column11_row0 + + cpu_decode_opcode_range_check_bit_10 * column11_row12 + + cpu_decode_opcode_range_check_bit_11 + + cpu_decode_opcode_range_check_bit_12 * 2)) + * domain143 + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/update_registers/update_fp/fp_update. + value = + (column11_row24 + - (cpu_decode_fp_update_regular_0 * column11_row8 + + cpu_decode_opcode_range_check_bit_13 * column8_row9 + + cpu_decode_opcode_range_check_bit_12 * (column11_row0 + 2))) + * domain143 + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/call/push_fp. + value = (cpu_decode_opcode_range_check_bit_12 * (column8_row9 - column11_row8)) / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/call/push_pc. + value = + (cpu_decode_opcode_range_check_bit_12 + * (column8_row5 - (column8_row0 + cpu_decode_opcode_range_check_bit_2 + 1))) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/call/off0. + value = + (cpu_decode_opcode_range_check_bit_12 * (column10_row0 - global_values.half_offset_size)) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/call/off1. + value = + (cpu_decode_opcode_range_check_bit_12 + * (column10_row8 - (global_values.half_offset_size + 1))) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/call/flags. + value = + (cpu_decode_opcode_range_check_bit_12 + * (cpu_decode_opcode_range_check_bit_12 + + cpu_decode_opcode_range_check_bit_12 + + 1 + + 1 + - (cpu_decode_opcode_range_check_bit_0 + cpu_decode_opcode_range_check_bit_1 + 4))) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/ret/off0. + value = + (cpu_decode_opcode_range_check_bit_13 + * (column10_row0 + 2 - global_values.half_offset_size)) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/ret/off2. + value = + (cpu_decode_opcode_range_check_bit_13 + * (column10_row4 + 1 - global_values.half_offset_size)) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/ret/flags. + value = + (cpu_decode_opcode_range_check_bit_13 + * (cpu_decode_opcode_range_check_bit_7 + + cpu_decode_opcode_range_check_bit_0 + + cpu_decode_opcode_range_check_bit_3 + + cpu_decode_flag_res_op1_0 + - 4)) + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: cpu/opcodes/assert_eq/assert_eq. + value = (cpu_decode_opcode_range_check_bit_14 * (column8_row9 - column11_row12)) / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: initial_ap. + value = (column11_row0 - global_values.initial_ap) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: initial_fp. + value = (column11_row8 - global_values.initial_ap) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: initial_pc. + value = (column8_row0 - global_values.initial_pc) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: final_ap. + value = (column11_row0 - global_values.final_ap) / domain143; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: final_fp. + value = (column11_row8 - global_values.initial_ap) / domain143; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: final_pc. + value = (column8_row0 - global_values.final_pc) / domain143; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: memory/multi_column_perm/perm/init0. + value = + ((global_values.memory_multi_column_perm_perm_interaction_elm + - (column9_row0 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column9_row1)) + * column14_inter1_row0 + + column8_row0 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column8_row1 + - global_values.memory_multi_column_perm_perm_interaction_elm) + / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: memory/multi_column_perm/perm/step0. + value = + ((global_values.memory_multi_column_perm_perm_interaction_elm + - (column9_row2 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column9_row3)) + * column14_inter1_row2 + - (global_values.memory_multi_column_perm_perm_interaction_elm + - (column8_row2 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column8_row3)) + * column14_inter1_row0) + * domain145 + / domain1; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: memory/multi_column_perm/perm/last. + value = (column14_inter1_row0 - global_values.memory_multi_column_perm_perm_public_memory_prod) + / domain145; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: memory/diff_is_bit. + value = (memory_address_diff_0 * memory_address_diff_0 - memory_address_diff_0) + * domain145 + / domain1; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: memory/is_func. + value = ((memory_address_diff_0 - 1) * (column9_row1 - column9_row3)) * domain145 / domain1; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: memory/initial_addr. + value = (column9_row0 - 1) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: public_memory_addr_zero. + value = (column8_row2) / domain3; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: public_memory_value_zero. + value = (column8_row3) / domain3; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check16/perm/init0. + value = + ((global_values.range_check16_perm_interaction_elm - column10_row2) * column14_inter1_row1 + + column10_row0 + - global_values.range_check16_perm_interaction_elm) + / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check16/perm/step0. + value = + ((global_values.range_check16_perm_interaction_elm - column10_row6) * column14_inter1_row5 + - (global_values.range_check16_perm_interaction_elm - column10_row4) + * column14_inter1_row1) + * domain146 + / domain2; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check16/perm/last. + value = (column14_inter1_row1 - global_values.range_check16_perm_public_memory_prod) + / domain146; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check16/diff_is_bit. + value = (range_check16_diff_0 * range_check16_diff_0 - range_check16_diff_0) + * domain146 + / domain2; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check16/minimum. + value = (column10_row2 - global_values.range_check_min) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check16/maximum. + value = (column10_row2 - global_values.range_check_max) / domain146; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/permutation/init0. + value = + ((global_values.diluted_check_permutation_interaction_elm - column2_row0) + * column13_inter1_row0 + + column1_row0 + - global_values.diluted_check_permutation_interaction_elm) + / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/permutation/step0. + value = + ((global_values.diluted_check_permutation_interaction_elm - column2_row1) + * column13_inter1_row1 + - (global_values.diluted_check_permutation_interaction_elm - column1_row1) + * column13_inter1_row0) + * domain147 + / domain0; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/permutation/last. + value = (column13_inter1_row0 - global_values.diluted_check_permutation_public_memory_prod) + / domain147; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/init. + value = (column12_inter1_row0 - 1) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/first_element. + value = (column2_row0 - global_values.diluted_check_first_elm) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/step. + value = + (column12_inter1_row1 + - (column12_inter1_row0 + * (1 + global_values.diluted_check_interaction_z * (column2_row1 - column2_row0)) + + global_values.diluted_check_interaction_alpha + * (column2_row1 - column2_row0) + * (column2_row1 - column2_row0))) + * domain147 + / domain0; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: diluted_check/last. + value = (column12_inter1_row0 - global_values.diluted_check_final_cum_val) / domain147; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/last_one_is_zero. + value = (column11_row71 * (column5_row0 - (column5_row1 + column5_row1))) / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones0. + value = + (column11_row71 + * (column5_row1 + - 3138550867693340381917894711603833208051177722232017256448 * column5_row192)) + / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit192. + value = (column11_row71 - column6_row255 * (column5_row192 - (column5_row193 + column5_row193))) + / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones192. + value = (column6_row255 * (column5_row193 - 8 * column5_row196)) / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit196. + value = + (column6_row255 + - (column5_row251 - (column5_row252 + column5_row252)) + * (column5_row196 - (column5_row197 + column5_row197))) + / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones196. + value = + ((column5_row251 - (column5_row252 + column5_row252)) + * (column5_row197 - 18014398509481984 * column5_row251)) + / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/booleanity_test. + value = (pedersen_hash0_ec_subset_sum_bit_0 * (pedersen_hash0_ec_subset_sum_bit_0 - 1)) + * domain9 + / domain0; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_extraction_end. + value = (column5_row0) / domain10; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/zeros_tail. + value = (column5_row0) / domain9; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/slope. + value = + (pedersen_hash0_ec_subset_sum_bit_0 * (column4_row0 - global_values.pedersen_points_y) + - column6_row0 * (column3_row0 - global_values.pedersen_points_x)) + * domain9 + / domain0; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/x. + value = + (column6_row0 * column6_row0 + - pedersen_hash0_ec_subset_sum_bit_0 + * (column3_row0 + global_values.pedersen_points_x + column3_row1)) + * domain9 + / domain0; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/y. + value = + (pedersen_hash0_ec_subset_sum_bit_0 * (column4_row0 + column4_row1) + - column6_row0 * (column3_row0 - column3_row1)) + * domain9 + / domain0; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/copy_point/x. + value = (pedersen_hash0_ec_subset_sum_bit_neg_0 * (column3_row1 - column3_row0)) + * domain9 + / domain0; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/ec_subset_sum/copy_point/y. + value = (pedersen_hash0_ec_subset_sum_bit_neg_0 * (column4_row1 - column4_row0)) + * domain9 + / domain0; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/copy_point/x. + value = (column3_row256 - column3_row255) * domain13 / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/copy_point/y. + value = (column4_row256 - column4_row255) * domain13 / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/init/x. + value = (column3_row0 - global_values.pedersen_shift_point.x) / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/hash0/init/y. + value = (column4_row0 - global_values.pedersen_shift_point.y) / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/input0_value0. + value = (column8_row7 - column5_row0) / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/input0_addr. + value = (column8_row518 - (column8_row134 + 1)) * domain148 / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/init_addr. + value = (column8_row6 - global_values.initial_pedersen_addr) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/input1_value0. + value = (column8_row263 - column5_row256) / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/input1_addr. + value = (column8_row262 - (column8_row6 + 1)) / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/output_value0. + value = (column8_row135 - column3_row511) / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: pedersen/output_addr. + value = (column8_row134 - (column8_row262 + 1)) / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check_builtin/value. + value = (range_check_builtin_value7_0 - column8_row71) / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check_builtin/addr_step. + value = (column8_row326 - (column8_row70 + 1)) * domain149 / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: range_check_builtin/init_addr. + value = (column8_row70 - global_values.initial_range_check_addr) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/doubling_key/slope. + value = + (ecdsa_signature0_doubling_key_x_squared + + ecdsa_signature0_doubling_key_x_squared + + ecdsa_signature0_doubling_key_x_squared + + global_values.ecdsa_sig_config.alpha + - (column11_row33 + column11_row33) * column11_row35) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/doubling_key/x. + value = (column11_row35 * column11_row35 - (column11_row1 + column11_row1 + column11_row65)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/doubling_key/y. + value = (column11_row33 + column11_row97 - column11_row35 * (column11_row1 - column11_row65)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/booleanity_test. + value = + (ecdsa_signature0_exponentiate_generator_bit_0 + * (ecdsa_signature0_exponentiate_generator_bit_0 - 1)) + * domain31 + / domain7; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/bit_extraction_end. + value = (column11_row59) / domain32; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/zeros_tail. + value = (column11_row59) / domain31; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/slope. + value = + (ecdsa_signature0_exponentiate_generator_bit_0 + * (column11_row91 - global_values.ecdsa_generator_points_y) + - column11_row123 * (column11_row27 - global_values.ecdsa_generator_points_x)) + * domain31 + / domain7; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x. + value = + (column11_row123 * column11_row123 + - ecdsa_signature0_exponentiate_generator_bit_0 + * (column11_row27 + global_values.ecdsa_generator_points_x + column11_row155)) + * domain31 + / domain7; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/y. + value = + (ecdsa_signature0_exponentiate_generator_bit_0 * (column11_row91 + column11_row219) + - column11_row123 * (column11_row27 - column11_row155)) + * domain31 + / domain7; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x_diff_inv. + value = (column11_row7 * (column11_row27 - global_values.ecdsa_generator_points_x) - 1) + * domain31 + / domain7; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/x. + value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 * (column11_row155 - column11_row27)) + * domain31 + / domain7; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/y. + value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 * (column11_row219 - column11_row91)) + * domain31 + / domain7; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/booleanity_test. + value = + (ecdsa_signature0_exponentiate_key_bit_0 * (ecdsa_signature0_exponentiate_key_bit_0 - 1)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/bit_extraction_end. + value = (column11_row9) / domain28; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/zeros_tail. + value = (column11_row9) / domain27; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/slope. + value = + (ecdsa_signature0_exponentiate_key_bit_0 * (column11_row49 - column11_row33) + - column11_row19 * (column11_row17 - column11_row1)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/x. + value = + (column11_row19 * column11_row19 + - ecdsa_signature0_exponentiate_key_bit_0 + * (column11_row17 + column11_row1 + column11_row81)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/y. + value = + (ecdsa_signature0_exponentiate_key_bit_0 * (column11_row49 + column11_row113) + - column11_row19 * (column11_row17 - column11_row81)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/x_diff_inv. + value = (column11_row51 * (column11_row17 - column11_row1) - 1) * domain27 / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/copy_point/x. + value = (ecdsa_signature0_exponentiate_key_bit_neg_0 * (column11_row81 - column11_row17)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/exponentiate_key/copy_point/y. + value = (ecdsa_signature0_exponentiate_key_bit_neg_0 * (column11_row113 - column11_row49)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/init_gen/x. + value = (column11_row27 - global_values.ecdsa_sig_config.shift_point.x) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/init_gen/y. + value = (column11_row91 + global_values.ecdsa_sig_config.shift_point.y) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/init_key/x. + value = (column11_row17 - global_values.ecdsa_sig_config.shift_point.x) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/init_key/y. + value = (column11_row49 - global_values.ecdsa_sig_config.shift_point.y) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/add_results/slope. + value = + (column11_row32731 + - (column11_row16369 + column11_row32763 * (column11_row32667 - column11_row16337))) + / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/add_results/x. + value = + (column11_row32763 * column11_row32763 + - (column11_row32667 + column11_row16337 + column11_row16385)) + / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/add_results/y. + value = + (column11_row32731 + + column11_row16417 + - column11_row32763 * (column11_row32667 - column11_row16385)) + / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/add_results/x_diff_inv. + value = (column11_row32647 * (column11_row32667 - column11_row16337) - 1) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/extract_r/slope. + value = + (column11_row32753 + + global_values.ecdsa_sig_config.shift_point.y + - column11_row16331 + * (column11_row32721 - global_values.ecdsa_sig_config.shift_point.x)) + / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/extract_r/x. + value = + (column11_row16331 * column11_row16331 + - (column11_row32721 + global_values.ecdsa_sig_config.shift_point.x + column11_row9)) + / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/extract_r/x_diff_inv. + value = + (column11_row32715 * (column11_row32721 - global_values.ecdsa_sig_config.shift_point.x) - 1) + / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/z_nonzero. + value = (column11_row59 * column11_row16363 - 1) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/r_and_w_nonzero. + value = (column11_row9 * column11_row16355 - 1) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/q_on_curve/x_squared. + value = (column11_row32747 - column11_row1 * column11_row1) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/signature0/q_on_curve/on_curve. + value = + (column11_row33 * column11_row33 + - (column11_row1 * column11_row32747 + + global_values.ecdsa_sig_config.alpha * column11_row1 + + global_values.ecdsa_sig_config.beta)) + / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/init_addr. + value = (column8_row390 - global_values.initial_ecdsa_addr) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/message_addr. + value = (column8_row16774 - (column8_row390 + 1)) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/pubkey_addr. + value = (column8_row33158 - (column8_row16774 + 1)) * domain150 / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/message_value0. + value = (column8_row16775 - column11_row59) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ecdsa/pubkey_value0. + value = (column8_row391 - column11_row1) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/init_var_pool_addr. + value = (column8_row198 - global_values.initial_bitwise_addr) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/step_var_pool_addr. + value = (column8_row454 - (column8_row198 + 1)) * domain19 / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/x_or_y_addr. + value = (column8_row902 - (column8_row966 + 1)) / domain20; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/next_var_pool_addr. + value = (column8_row1222 - (column8_row902 + 1)) * domain151 / domain20; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/partition. + value = (bitwise_sum_var_0_0 + bitwise_sum_var_8_0 - column8_row199) / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/or_is_and_plus_xor. + value = (column8_row903 - (column8_row711 + column8_row967)) / domain20; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/addition_is_xor_with_and. + value = (column1_row0 + column1_row256 - (column1_row768 + column1_row512 + column1_row512)) + / domain21; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/unique_unpacking192. + value = ((column1_row704 + column1_row960) * 16 - column1_row8) / domain20; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/unique_unpacking193. + value = ((column1_row720 + column1_row976) * 16 - column1_row520) / domain20; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/unique_unpacking194. + value = ((column1_row736 + column1_row992) * 16 - column1_row264) / domain20; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: bitwise/unique_unpacking195. + value = ((column1_row752 + column1_row1008) * 256 - column1_row776) / domain20; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/init_addr. + value = (column8_row8582 - global_values.initial_ec_op_addr) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/p_x_addr. + value = (column8_row24966 - (column8_row8582 + 7)) * domain152 / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/p_y_addr. + value = (column8_row4486 - (column8_row8582 + 1)) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/q_x_addr. + value = (column8_row12678 - (column8_row4486 + 1)) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/q_y_addr. + value = (column8_row2438 - (column8_row12678 + 1)) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/m_addr. + value = (column8_row10630 - (column8_row2438 + 1)) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/r_x_addr. + value = (column8_row6534 - (column8_row10630 + 1)) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/r_y_addr. + value = (column8_row14726 - (column8_row6534 + 1)) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/doubling_q/slope. + value = + (ec_op_doubling_q_x_squared_0 + + ec_op_doubling_q_x_squared_0 + + ec_op_doubling_q_x_squared_0 + + global_values.ec_op_curve_config.alpha + - (column11_row25 + column11_row25) * column11_row57) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/doubling_q/x. + value = (column11_row57 * column11_row57 - (column11_row41 + column11_row41 + column11_row105)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/doubling_q/y. + value = (column11_row25 + column11_row89 - column11_row57 * (column11_row41 - column11_row105)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/get_q_x. + value = (column8_row12679 - column11_row41) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/get_q_y. + value = (column8_row2439 - column11_row25) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/last_one_is_zero. + value = (column11_row16371 * (column11_row21 - (column11_row85 + column11_row85))) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones0. + value = + (column11_row16371 + * (column11_row85 + - 3138550867693340381917894711603833208051177722232017256448 * column11_row12309)) + / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/cumulative_bit192. + value = + (column11_row16371 + - column11_row16339 * (column11_row12309 - (column11_row12373 + column11_row12373))) + / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones192. + value = (column11_row16339 * (column11_row12373 - 8 * column11_row12565)) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/cumulative_bit196. + value = + (column11_row16339 + - (column11_row16085 - (column11_row16149 + column11_row16149)) + * (column11_row12565 - (column11_row12629 + column11_row12629))) + / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones196. + value = + ((column11_row16085 - (column11_row16149 + column11_row16149)) + * (column11_row12629 - 18014398509481984 * column11_row16085)) + / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/booleanity_test. + value = (ec_op_ec_subset_sum_bit_0 * (ec_op_ec_subset_sum_bit_0 - 1)) * domain27 / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/bit_extraction_end. + value = (column11_row21) / domain30; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/zeros_tail. + value = (column11_row21) / domain27; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/add_points/slope. + value = + (ec_op_ec_subset_sum_bit_0 * (column11_row37 - column11_row25) + - column11_row11 * (column11_row5 - column11_row41)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/add_points/x. + value = + (column11_row11 * column11_row11 + - ec_op_ec_subset_sum_bit_0 * (column11_row5 + column11_row41 + column11_row69)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/add_points/y. + value = + (ec_op_ec_subset_sum_bit_0 * (column11_row37 + column11_row101) + - column11_row11 * (column11_row5 - column11_row69)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/add_points/x_diff_inv. + value = (column11_row43 * (column11_row5 - column11_row41) - 1) * domain27 / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/copy_point/x. + value = (ec_op_ec_subset_sum_bit_neg_0 * (column11_row69 - column11_row5)) * domain27 / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/ec_subset_sum/copy_point/y. + value = (ec_op_ec_subset_sum_bit_neg_0 * (column11_row101 - column11_row37)) + * domain27 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/get_m. + value = (column11_row21 - column8_row10631) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/get_p_x. + value = (column8_row8583 - column11_row5) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/get_p_y. + value = (column8_row4487 - column11_row37) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/set_r_x. + value = (column8_row6535 - column11_row16325) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: ec_op/set_r_y. + value = (column8_row14727 - column11_row16357) / domain29; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/init_input_output_addr. + value = (column8_row1414 - global_values.initial_keccak_addr) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/addr_input_output_step. + value = (column8_row3462 - (column8_row1414 + 1)) * domain153 / domain22; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w0. + value = (column8_row1415 - column7_row0) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w1. + value = (column8_row3463 - column7_row1) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w2. + value = (column8_row5511 - column7_row2) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w3. + value = (column8_row7559 - column7_row3) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w4. + value = (column8_row9607 - column7_row4) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w5. + value = (column8_row11655 - column7_row5) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w6. + value = (column8_row13703 - column7_row6) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w7. + value = (column8_row15751 - column7_row7) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w0. + value = (column8_row17799 - column7_row8) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w1. + value = (column8_row19847 - column7_row9) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w2. + value = (column8_row21895 - column7_row10) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w3. + value = (column8_row23943 - column7_row11) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w4. + value = (column8_row25991 - column7_row12) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w5. + value = (column8_row28039 - column7_row13) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w6. + value = (column8_row30087 - column7_row14) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w7. + value = (column8_row32135 - column7_row15) / domain33; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final0. + value = (column7_row0 - column7_row16144) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final1. + value = (column7_row32768 - column7_row16160) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final2. + value = (column7_row65536 - column7_row16176) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final3. + value = (column7_row98304 - column7_row16192) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final4. + value = (column7_row131072 - column7_row16208) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final5. + value = (column7_row163840 - column7_row16224) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final6. + value = (column7_row196608 - column7_row16240) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final7. + value = (column7_row229376 - column7_row16256) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final8. + value = (column7_row262144 - column7_row16272) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final9. + value = (column7_row294912 - column7_row16288) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final10. + value = (column7_row327680 - column7_row16304) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final11. + value = (column7_row360448 - column7_row16320) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final12. + value = (column7_row393216 - column7_row16336) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final13. + value = (column7_row425984 - column7_row16352) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final14. + value = (column7_row458752 - column7_row16368) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final15. + value = (column7_row491520 - column7_row16384) / domain36; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/start_accumulation. + value = (column10_row6403) / domain40; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation0. + value = (column7_row16144 - keccak_keccak_parse_to_diluted_sum_words_over_instances0_0) + / domain35; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations0. + value = + (column7_row16160 + + keccak_keccak_parse_to_diluted_sum_words_over_instances0_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances0_2) + / domain39; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation1. + value = (column7_row16145 - keccak_keccak_parse_to_diluted_sum_words_over_instances1_0) + / domain35; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations1. + value = + (column7_row16161 + + keccak_keccak_parse_to_diluted_sum_words_over_instances1_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances1_2) + / domain39; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation2. + value = (column7_row16146 - keccak_keccak_parse_to_diluted_sum_words_over_instances2_0) + / domain35; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations2. + value = + (column7_row16162 + + keccak_keccak_parse_to_diluted_sum_words_over_instances2_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances2_2) + / domain39; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation3. + value = (column7_row16147 - keccak_keccak_parse_to_diluted_sum_words_over_instances3_0) + / domain35; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations3. + value = + (column7_row16163 + + keccak_keccak_parse_to_diluted_sum_words_over_instances3_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances3_2) + / domain39; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation4. + value = (column7_row16148 - keccak_keccak_parse_to_diluted_sum_words_over_instances4_0) + / domain35; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations4. + value = + (column7_row16164 + + keccak_keccak_parse_to_diluted_sum_words_over_instances4_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances4_2) + / domain39; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation5. + value = (column7_row16149 - keccak_keccak_parse_to_diluted_sum_words_over_instances5_0) + / domain35; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations5. + value = + (column7_row16165 + + keccak_keccak_parse_to_diluted_sum_words_over_instances5_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances5_2) + / domain39; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation6. + value = (column7_row16150 - keccak_keccak_parse_to_diluted_sum_words_over_instances6_0) + / domain35; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations6. + value = + (column7_row16166 + + keccak_keccak_parse_to_diluted_sum_words_over_instances6_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances6_2) + / domain39; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation7. + value = (column7_row16151 - keccak_keccak_parse_to_diluted_sum_words_over_instances7_0) + / domain35; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations7. + value = + (column7_row16167 + + keccak_keccak_parse_to_diluted_sum_words_over_instances7_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances7_2) + / domain39; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/extract_bit_first_invocation1. + value = + (keccak_keccak_parse_to_diluted_partial_diluted1_0 + * keccak_keccak_parse_to_diluted_partial_diluted1_0 + - keccak_keccak_parse_to_diluted_partial_diluted1_0) + / domain43; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/extract_bit_other_invocations1. + value = + (keccak_keccak_parse_to_diluted_bit_other1_0 * keccak_keccak_parse_to_diluted_bit_other1_0 + - keccak_keccak_parse_to_diluted_bit_other1_0) + / domain44; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/to_diluted0_p1. + value = (keccak_keccak_parse_to_diluted_partial_diluted1_30 - column1_row516100) / domain45; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/to_diluted1_p1. + value = (keccak_keccak_parse_to_diluted_partial_diluted1_31 - column1_row516292) / domain45; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/extract_bit_first_invocation0. + value = + (keccak_keccak_parse_to_diluted_partial_diluted0_0 + * keccak_keccak_parse_to_diluted_partial_diluted0_0 + - keccak_keccak_parse_to_diluted_partial_diluted0_0) + * domain49 + / domain11; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/extract_bit_other_invocations0. + value = + (keccak_keccak_parse_to_diluted_bit_other0_0 * keccak_keccak_parse_to_diluted_bit_other0_0 + - keccak_keccak_parse_to_diluted_bit_other0_0) + * domain52 + / domain3; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/to_diluted0_p0. + value = (keccak_keccak_parse_to_diluted_partial_diluted0_30 - column1_row4) + * domain53 + / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parse_to_diluted/to_diluted1_p0. + value = (keccak_keccak_parse_to_diluted_partial_diluted0_31 - column1_row196) + * domain53 + / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parity0. + value = + (column1_row4 + + column1_row1284 + + column1_row2564 + + column1_row3844 + + column1_row5124 + - (column1_row6404 + column1_row6598 + column1_row6598 + column1_row6978 * 4)) + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parity1. + value = + (column1_row260 + + column1_row1540 + + column1_row2820 + + column1_row4100 + + column1_row5380 + - (column1_row6402 + column1_row6788 + column1_row6788 + column1_row6982 * 4)) + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parity2. + value = + (column1_row516 + + column1_row1796 + + column1_row3076 + + column1_row4356 + + column1_row5636 + - (column1_row6406 + column1_row6786 + column1_row6786 + column1_row7172 * 4)) + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parity3. + value = + (column1_row772 + + column1_row2052 + + column1_row3332 + + column1_row4612 + + column1_row5892 + - (column1_row6596 + column1_row6790 + column1_row6790 + column1_row7170 * 4)) + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/parity4. + value = + (column1_row1028 + + column1_row2308 + + column1_row3588 + + column1_row4868 + + column1_row6148 + - (column1_row6594 + column1_row6980 + column1_row6980 + column1_row7174 * 4)) + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/rotate_parity0/n0. + value = (column10_row7 - column1_row522500) / domain38; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/rotate_parity0/n1. + value = (column10_row8199 - column1_row6404) * domain55 / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/rotate_parity1/n0. + value = (column10_row8003 - column1_row522498) / domain38; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/rotate_parity1/n1. + value = (column10_row16195 - column1_row6402) * domain55 / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/rotate_parity2/n0. + value = (column10_row4103 - column1_row522502) / domain38; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/rotate_parity2/n1. + value = (column10_row12295 - column1_row6406) * domain55 / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/rotate_parity3/n0. + value = (column10_row7811 - column1_row522692) / domain38; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/rotate_parity3/n1. + value = (column10_row16003 - column1_row6596) * domain55 / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/rotate_parity4/n0. + value = (column10_row2055 - column1_row522690) / domain38; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/rotate_parity4/n1. + value = (column10_row10247 - column1_row6594) * domain55 / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j0. + value = + (keccak_keccak_sum_parities0_0 + + column1_row4 + - (column1_row1 + column1_row7364 + column1_row7364)) + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j1/n0. + value = + (keccak_keccak_sum_parities1_0 + + column1_row260 + - (column1_row10753 + column1_row15942 + column1_row15942)) + * domain55 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j1/n1. + value = + (keccak_keccak_sum_parities1_64512 + + column1_row516356 + - (column1_row2561 + column1_row7750 + column1_row7750)) + / domain38; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j2/n0. + value = + (keccak_keccak_sum_parities2_0 + + column1_row516 + - (column1_row513025 + column1_row515841 + column1_row515841)) + / domain57; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j2/n1. + value = + (keccak_keccak_sum_parities2_2048 + + column1_row16900 + - (column1_row5121 + column1_row7937 + column1_row7937)) + * domain59 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j3/n0. + value = + (keccak_keccak_sum_parities3_0 + + column1_row772 + - (column1_row230657 + column1_row236930 + column1_row236930)) + * domain85 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j3/n1. + value = + (keccak_keccak_sum_parities3_36864 + + column1_row295684 + - (column1_row1281 + column1_row7554 + column1_row7554)) + / domain117; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j4/n0. + value = + (keccak_keccak_sum_parities4_0 + + column1_row1028 + - (column1_row225025 + column1_row228161 + column1_row228161)) + * domain84 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j4/n1. + value = + (keccak_keccak_sum_parities4_37888 + + column1_row304132 + - (column1_row3841 + column1_row6977 + column1_row6977)) + / domain116; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j0/n0. + value = + (keccak_keccak_sum_parities0_0 + + column1_row1284 + - (column1_row299009 + column1_row302081 + column1_row302081)) + / domain117; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j0/n1. + value = + (keccak_keccak_sum_parities0_28672 + + column1_row230660 + - (column1_row4097 + column1_row7169 + column1_row7169)) + * domain85 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j1/n0. + value = + (keccak_keccak_sum_parities1_0 + + column1_row1540 + - (column1_row360705 + column1_row367810 + column1_row367810)) + / domain110; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j1/n1. + value = + (keccak_keccak_sum_parities1_20480 + + column1_row165380 + - (column1_row257 + column1_row7362 + column1_row7362)) + * domain78 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j2/n0. + value = + (keccak_keccak_sum_parities2_0 + + column1_row1796 + - (column1_row51969 + column1_row55937 + column1_row55937)) + * domain63 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j2/n1. + value = + (keccak_keccak_sum_parities2_59392 + + column1_row476932 + - (column1_row2817 + column1_row6785 + column1_row6785)) + / domain91; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n0. + value = + (keccak_keccak_sum_parities3_0 + + column1_row2052 + - (column1_row455937 + column1_row450753 + column1_row450753)) + / domain120; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n1. + value = + (keccak_keccak_sum_parities3_8 + + column1_row2116 + - (column1_row456001 + column1_row451009 + column1_row451009)) + / domain120; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n2. + value = + (keccak_keccak_sum_parities3_16 + + column1_row2180 + - (column1_row456065 + column1_row451265 + column1_row451265)) + / domain120; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n3. + value = + (keccak_keccak_sum_parities3_9216 + + column1_row75780 + - (column1_row5377 + column1_row193 + column1_row193)) + * domain123 + / domain23; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n4. + value = + (keccak_keccak_sum_parities3_9224 + + column1_row75844 + - (column1_row5441 + column1_row449 + column1_row449)) + * domain123 + / domain23; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n5. + value = + (keccak_keccak_sum_parities3_9232 + + column1_row75908 + - (column1_row5505 + column1_row705 + column1_row705)) + * domain123 + / domain23; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j4/n0. + value = + (keccak_keccak_sum_parities4_0 + + column1_row2308 + - (column1_row165377 + column1_row171398 + column1_row171398)) + * domain78 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j4/n1. + value = + (keccak_keccak_sum_parities4_45056 + + column1_row362756 + - (column1_row1537 + column1_row7558 + column1_row7558)) + / domain110; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j0/n0. + value = + (keccak_keccak_sum_parities0_0 + + column1_row2564 + - (column1_row26369 + column1_row31169 + column1_row31169)) + * domain124 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j0/n1. + value = + (keccak_keccak_sum_parities0_62464 + + column1_row502276 + - (column1_row1793 + column1_row6593 + column1_row6593)) + / domain125; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j1/n0. + value = + (keccak_keccak_sum_parities1_0 + + column1_row2820 + - (column1_row86273 + column1_row89281 + column1_row89281)) + * domain68 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j1/n1. + value = + (keccak_keccak_sum_parities1_55296 + + column1_row445188 + - (column1_row4353 + column1_row7361 + column1_row7361)) + / domain98; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j2/n0. + value = + (keccak_keccak_sum_parities2_0 + + column1_row3076 + - (column1_row352769 + column1_row359622 + column1_row359622)) + / domain112; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j2/n1. + value = + (keccak_keccak_sum_parities2_21504 + + column1_row175108 + - (column1_row513 + column1_row7366 + column1_row7366)) + * domain80 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j3/n0. + value = + (keccak_keccak_sum_parities3_0 + + column1_row3332 + - (column1_row207873 + column1_row212740 + column1_row212740)) + * domain83 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j3/n1. + value = + (keccak_keccak_sum_parities3_39936 + + column1_row322820 + - (column1_row3073 + column1_row7940 + column1_row7940)) + / domain115; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n0. + value = + (keccak_keccak_sum_parities4_0 + + column1_row3588 + - (column1_row325121 + column1_row320449 + column1_row320449)) + / domain127; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n1. + value = + (keccak_keccak_sum_parities4_8 + + column1_row3652 + - (column1_row325185 + column1_row320705 + column1_row320705)) + / domain127; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n2. + value = + (keccak_keccak_sum_parities4_16 + + column1_row3716 + - (column1_row325249 + column1_row320961 + column1_row320961)) + / domain127; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n3. + value = + (keccak_keccak_sum_parities4_25600 + + column1_row208388 + - (column1_row5633 + column1_row961 + column1_row961)) + * domain129 + / domain23; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n4. + value = + (keccak_keccak_sum_parities4_25608 + + column1_row208452 + - (column1_row5697 + column1_row1217 + column1_row1217)) + * domain129 + / domain23; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n5. + value = + (keccak_keccak_sum_parities4_25616 + + column1_row208516 + - (column1_row5761 + column1_row1473 + column1_row1473)) + * domain129 + / domain23; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n0. + value = + (keccak_keccak_sum_parities0_0 + + column1_row3844 + - (column1_row341761 + column1_row337601 + column1_row337601)) + / domain130; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n1. + value = + (keccak_keccak_sum_parities0_8 + + column1_row3908 + - (column1_row341825 + column1_row337857 + column1_row337857)) + / domain130; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n2. + value = + (keccak_keccak_sum_parities0_16 + + column1_row3972 + - (column1_row341889 + column1_row338113 + column1_row338113)) + / domain130; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n3. + value = + (keccak_keccak_sum_parities0_23552 + + column1_row192260 + - (column1_row5889 + column1_row1729 + column1_row1729)) + * domain131 + / domain23; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n4. + value = + (keccak_keccak_sum_parities0_23560 + + column1_row192324 + - (column1_row5953 + column1_row1985 + column1_row1985)) + * domain131 + / domain23; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n5. + value = + (keccak_keccak_sum_parities0_23568 + + column1_row192388 + - (column1_row6017 + column1_row2241 + column1_row2241)) + * domain131 + / domain23; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j1/n0. + value = + (keccak_keccak_sum_parities1_0 + + column1_row4100 + - (column1_row370689 + column1_row376388 + column1_row376388)) + / domain132; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j1/n1. + value = + (keccak_keccak_sum_parities1_19456 + + column1_row159748 + - (column1_row2049 + column1_row7748 + column1_row7748)) + * domain133 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j2/n0. + value = + (keccak_keccak_sum_parities2_0 + + column1_row4356 + - (column1_row127489 + column1_row130433 + column1_row130433)) + * domain134 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j2/n1. + value = + (keccak_keccak_sum_parities2_50176 + + column1_row405764 + - (column1_row4609 + column1_row7553 + column1_row7553)) + / domain135; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j3/n0. + value = + (keccak_keccak_sum_parities3_0 + + column1_row4612 + - (column1_row172801 + column1_row178433 + column1_row178433)) + * domain80 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j3/n1. + value = + (keccak_keccak_sum_parities3_44032 + + column1_row356868 + - (column1_row769 + column1_row6401 + column1_row6401)) + / domain112; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j4/n0. + value = + (keccak_keccak_sum_parities4_0 + + column1_row4868 + - (column1_row68865 + column1_row73474 + column1_row73474)) + * domain136 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j4/n1. + value = + (keccak_keccak_sum_parities4_57344 + + column1_row463620 + - (column1_row3329 + column1_row7938 + column1_row7938)) + / domain137; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j0/n0. + value = + (keccak_keccak_sum_parities0_0 + + column1_row5124 + - (column1_row151041 + column1_row155398 + column1_row155398)) + * domain138 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j0/n1. + value = + (keccak_keccak_sum_parities0_47104 + + column1_row381956 + - (column1_row3585 + column1_row7942 + column1_row7942)) + / domain139; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n0. + value = + (keccak_keccak_sum_parities1_0 + + column1_row5380 + - (column1_row22529 + column1_row18881 + column1_row18881)) + * domain121 + / domain23; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n1. + value = + (keccak_keccak_sum_parities1_8 + + column1_row5444 + - (column1_row22593 + column1_row19137 + column1_row19137)) + * domain121 + / domain23; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n2. + value = + (keccak_keccak_sum_parities1_16 + + column1_row5508 + - (column1_row22657 + column1_row19393 + column1_row19393)) + * domain121 + / domain23; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n3. + value = + (keccak_keccak_sum_parities1_63488 + + column1_row513284 + - (column1_row6145 + column1_row2497 + column1_row2497)) + / domain118; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n4. + value = + (keccak_keccak_sum_parities1_63496 + + column1_row513348 + - (column1_row6209 + column1_row2753 + column1_row2753)) + / domain118; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n5. + value = + (keccak_keccak_sum_parities1_63504 + + column1_row513412 + - (column1_row6273 + column1_row3009 + column1_row3009)) + / domain118; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j2/n0. + value = + (keccak_keccak_sum_parities2_0 + + column1_row5636 + - (column1_row502017 + column1_row507458 + column1_row507458)) + / domain125; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j2/n1. + value = + (keccak_keccak_sum_parities2_3072 + + column1_row30212 + - (column1_row2305 + column1_row7746 + column1_row7746)) + * domain124 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j3/n0. + value = + (keccak_keccak_sum_parities3_0 + + column1_row5892 + - (column1_row463617 + column1_row466497 + column1_row466497)) + / domain137; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j3/n1. + value = + (keccak_keccak_sum_parities3_8192 + + column1_row71428 + - (column1_row4865 + column1_row7745 + column1_row7745)) + * domain136 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j4/n0. + value = + (keccak_keccak_sum_parities4_0 + + column1_row6148 + - (column1_row115713 + column1_row122244 + column1_row122244)) + * domain140 + / domain24; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j4/n1. + value = + (keccak_keccak_sum_parities4_51200 + + column1_row415748 + - (column1_row1025 + column1_row7556 + column1_row7556)) + / domain141; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/chi_iota0. + value = + (global_values.keccak_keccak_keccak_round_key0 + + column1_row1 + + column1_row1 + + keccak_keccak_after_theta_rho_pi_xor_one_32 + + column1_row513 + - (column1_row2 + column1_row12 + column1_row12 + column1_row6 * 4)) + / domain38; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/chi_iota1. + value = + (global_values.keccak_keccak_keccak_round_key1 + + column1_row8193 + + column1_row8193 + + keccak_keccak_after_theta_rho_pi_xor_one_1056 + + column1_row8705 + - (column1_row8194 + column1_row8204 + column1_row8204 + column1_row8198 * 4)) + / domain38; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/chi_iota3. + value = + (global_values.keccak_keccak_keccak_round_key3 + + column1_row24577 + + column1_row24577 + + keccak_keccak_after_theta_rho_pi_xor_one_3104 + + column1_row25089 + - (column1_row24578 + column1_row24588 + column1_row24588 + column1_row24582 * 4)) + / domain38; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/chi_iota7. + value = + (global_values.keccak_keccak_keccak_round_key7 + + column1_row57345 + + column1_row57345 + + keccak_keccak_after_theta_rho_pi_xor_one_7200 + + column1_row57857 + - (column1_row57346 + column1_row57356 + column1_row57356 + column1_row57350 * 4)) + / domain38; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/chi_iota15. + value = + (global_values.keccak_keccak_keccak_round_key15 + + column1_row122881 + + column1_row122881 + + keccak_keccak_after_theta_rho_pi_xor_one_15392 + + column1_row123393 + - (column1_row122882 + column1_row122892 + column1_row122892 + column1_row122886 * 4)) + / domain38; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/chi_iota31. + value = + (global_values.keccak_keccak_keccak_round_key31 + + column1_row253953 + + column1_row253953 + + keccak_keccak_after_theta_rho_pi_xor_one_31776 + + column1_row254465 + - (column1_row253954 + column1_row253964 + column1_row253964 + column1_row253958 * 4)) + / domain38; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/chi_iota63. + value = + (global_values.keccak_keccak_keccak_round_key63 + + column1_row516097 + + column1_row516097 + + keccak_keccak_after_theta_rho_pi_xor_one_64544 + + column1_row516609 + - (column1_row516098 + column1_row516108 + column1_row516108 + column1_row516102 * 4)) + / domain38; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/chi0. + value = + (column1_row1 + + column1_row1 + + keccak_keccak_after_theta_rho_pi_xor_one_32 + + column1_row513 + - (column1_row2 + column1_row12 + column1_row12 + column1_row6 * 4)) + * domain142 + / domain26; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/chi1. + value = + (column1_row1025 + + column1_row1025 + + keccak_keccak_after_theta_rho_pi_xor_one_0 + + column1_row257 + - (column1_row1026 + column1_row1036 + column1_row1036 + column1_row1030 * 4)) + / domain25; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: keccak/keccak/chi2. + value = + (column1_row769 + + column1_row769 + + keccak_keccak_after_theta_rho_pi_xor_one_128 + + column1_row1 + - (column1_row770 + column1_row780 + column1_row780 + column1_row774 * 4)) + / domain25; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/param_0/init_input_output_addr. + value = (column8_row38 - global_values.initial_poseidon_addr) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/param_0/addr_input_output_step. + value = (column8_row294 - (column8_row38 + 3)) * domain149 / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/param_1/init_input_output_addr. + value = (column8_row166 - (global_values.initial_poseidon_addr + 1)) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/param_1/addr_input_output_step. + value = (column8_row422 - (column8_row166 + 3)) * domain149 / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/param_2/init_input_output_addr. + value = (column8_row102 - (global_values.initial_poseidon_addr + 2)) / domain144; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/param_2/addr_input_output_step. + value = (column8_row358 - (column8_row102 + 3)) * domain149 / domain8; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/full_rounds_state0_squaring. + value = (column11_row53 * column11_row53 - column11_row29) / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/full_rounds_state1_squaring. + value = (column11_row13 * column11_row13 - column11_row61) / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/full_rounds_state2_squaring. + value = (column11_row45 * column11_row45 - column11_row3) / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/partial_rounds_state0_squaring. + value = (column10_row1 * column10_row1 - column10_row5) / domain3; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/partial_rounds_state1_squaring. + value = (column11_row6 * column11_row6 - column11_row14) * domain16 / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/add_first_round_key0. + value = + (column8_row39 + + 2950795762459345168613727575620414179244544320470208355568817838579231751791 + - column11_row53) + / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/add_first_round_key1. + value = + (column8_row167 + + 1587446564224215276866294500450702039420286416111469274423465069420553242820 + - column11_row13) + / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/add_first_round_key2. + value = + (column8_row103 + + 1645965921169490687904413452218868659025437693527479459426157555728339600137 + - column11_row45) + / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/full_round0. + value = + (column11_row117 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state1_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + global_values.poseidon_poseidon_full_round_key0)) + * domain12 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/full_round1. + value = + (column11_row77 + + poseidon_poseidon_full_rounds_state1_cubed_0 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + global_values.poseidon_poseidon_full_round_key1)) + * domain12 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/full_round2. + value = + (column11_row109 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state1_cubed_0 + + global_values.poseidon_poseidon_full_round_key2)) + * domain12 + / domain6; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/last_full_round0. + value = + (column8_row295 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state1_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7)) + / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/last_full_round1. + value = + (column8_row423 + + poseidon_poseidon_full_rounds_state1_cubed_7 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7)) + / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/last_full_round2. + value = + (column8_row359 + + poseidon_poseidon_full_rounds_state2_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state1_cubed_7)) + / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/copy_partial_rounds0_i0. + value = (column10_row489 - column11_row6) / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/copy_partial_rounds0_i1. + value = (column10_row497 - column11_row22) / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/copy_partial_rounds0_i2. + value = (column10_row505 - column11_row38) / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/margin_full_to_partial0. + value = + (column10_row1 + + poseidon_poseidon_full_rounds_state2_cubed_3 + + poseidon_poseidon_full_rounds_state2_cubed_3 + - (poseidon_poseidon_full_rounds_state0_cubed_3 + + poseidon_poseidon_full_rounds_state1_cubed_3 + + 2121140748740143694053732746913428481442990369183417228688865837805149503386)) + / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/margin_full_to_partial1. + value = + (column10_row9 + - (3618502788666131213697322783095070105623107215331596699973092056135872020477 + * poseidon_poseidon_full_rounds_state1_cubed_3 + + 10 * poseidon_poseidon_full_rounds_state2_cubed_3 + + 4 * column10_row1 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state0_cubed_0 + + 2006642341318481906727563724340978325665491359415674592697055778067937914672)) + / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/margin_full_to_partial2. + value = + (column10_row17 + - (8 * poseidon_poseidon_full_rounds_state2_cubed_3 + + 4 * column10_row1 + + 6 * poseidon_poseidon_partial_rounds_state0_cubed_0 + + column10_row9 + + column10_row9 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state0_cubed_1 + + 427751140904099001132521606468025610873158555767197326325930641757709538586)) + / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/partial_round0. + value = + (column10_row25 + - (8 * poseidon_poseidon_partial_rounds_state0_cubed_0 + + 4 * column10_row9 + + 6 * poseidon_poseidon_partial_rounds_state0_cubed_1 + + column10_row17 + + column10_row17 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state0_cubed_2 + + global_values.poseidon_poseidon_partial_round_key0)) + * domain17 + / domain3; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/partial_round1. + value = + (column11_row54 + - (8 * poseidon_poseidon_partial_rounds_state1_cubed_0 + + 4 * column11_row22 + + 6 * poseidon_poseidon_partial_rounds_state1_cubed_1 + + column11_row38 + + column11_row38 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state1_cubed_2 + + global_values.poseidon_poseidon_partial_round_key1)) + * domain18 + / domain5; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/margin_partial_to_full0. + value = + (column11_row309 + - (16 * poseidon_poseidon_partial_rounds_state1_cubed_19 + + 8 * column11_row326 + + 16 * poseidon_poseidon_partial_rounds_state1_cubed_20 + + 6 * column11_row342 + + poseidon_poseidon_partial_rounds_state1_cubed_21 + + 560279373700919169769089400651532183647886248799764942664266404650165812023)) + / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/margin_partial_to_full1. + value = + (column11_row269 + - (4 * poseidon_poseidon_partial_rounds_state1_cubed_20 + + column11_row342 + + column11_row342 + + poseidon_poseidon_partial_rounds_state1_cubed_21 + + 1401754474293352309994371631695783042590401941592571735921592823982231996415)) + / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Constraint: poseidon/poseidon/margin_partial_to_full2. + value = + (column11_row301 + - (8 * poseidon_poseidon_partial_rounds_state1_cubed_19 + + 4 * column11_row326 + + 6 * poseidon_poseidon_partial_rounds_state1_cubed_20 + + column11_row342 + + column11_row342 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state1_cubed_21 + + 1246177936547655338400308396717835700699368047388302793172818304164989556526)) + / domain14; + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + total_sum +} + +#[cfg(feature: 'monolith')] +fn eval_oods_polynomial_inner( + mut column_values: Span, + mut oods_values: Span, + mut constraint_coefficients: Span, + point: felt252, + oods_point: felt252, + trace_generator: felt252, +) -> felt252 { + // Compute powers. + let pow0 = pow(trace_generator, 0); + let pow1 = pow(trace_generator, 446471); + let pow2 = pow(trace_generator, 397827); + let pow3 = pow(trace_generator, 384835); + let pow4 = pow(trace_generator, 321543); + let pow5 = pow(trace_generator, 132611); + let pow6 = pow(trace_generator, 66307); + let pow7 = pow(trace_generator, 3462); + let pow8 = pow(trace_generator, 515841); + let pow9 = pow(trace_generator, 513025); + let pow10 = pow(trace_generator, 506306); + let pow11 = pow(trace_generator, 502017); + let pow12 = pow(trace_generator, 476932); + let pow13 = pow(trace_generator, 455937); + let pow14 = pow(trace_generator, 450753); + let pow15 = pow(trace_generator, 448772); + let pow16 = pow(trace_generator, 445188); + let pow17 = pow(trace_generator, 383426); + let pow18 = pow(trace_generator, 381956); + let pow19 = pow(trace_generator, 376388); + let pow20 = pow(trace_generator, 370689); + let pow21 = pow(trace_generator, 341761); + let pow22 = pow(trace_generator, 337601); + let pow23 = pow(trace_generator, 325894); + let pow24 = pow(trace_generator, 325121); + let pow25 = pow(trace_generator, 320449); + let pow26 = pow(trace_generator, 304132); + let pow27 = pow(trace_generator, 228161); + let pow28 = pow(trace_generator, 225025); + let pow29 = pow(trace_generator, 212740); + let pow30 = pow(trace_generator, 211396); + let pow31 = pow(trace_generator, 208388); + let pow32 = pow(trace_generator, 207873); + let pow33 = pow(trace_generator, 195010); + let pow34 = pow(trace_generator, 192260); + let pow35 = pow(trace_generator, 178433); + let pow36 = pow(trace_generator, 175108); + let pow37 = pow(trace_generator, 172801); + let pow38 = pow(trace_generator, 162052); + let pow39 = pow(trace_generator, 159748); + let pow40 = pow(trace_generator, 155398); + let pow41 = pow(trace_generator, 151041); + let pow42 = pow(trace_generator, 130433); + let pow43 = pow(trace_generator, 127489); + let pow44 = pow(trace_generator, 115713); + let pow45 = pow(trace_generator, 89281); + let pow46 = pow(trace_generator, 86273); + let pow47 = pow(trace_generator, 75780); + let pow48 = pow(trace_generator, 55937); + let pow49 = pow6 * pow48; // pow(trace_generator, 122244). + let pow50 = pow(trace_generator, 51969); + let pow51 = pow(trace_generator, 31169); + let pow52 = pow(trace_generator, 26369); + let pow53 = pow(trace_generator, 1); + let pow54 = pow53 * pow53; // pow(trace_generator, 2). + let pow55 = pow53 * pow54; // pow(trace_generator, 3). + let pow56 = pow53 * pow55; // pow(trace_generator, 4). + let pow57 = pow53 * pow56; // pow(trace_generator, 5). + let pow58 = pow53 * pow57; // pow(trace_generator, 6). + let pow59 = pow53 * pow58; // pow(trace_generator, 7). + let pow60 = pow53 * pow59; // pow(trace_generator, 8). + let pow61 = pow53 * pow60; // pow(trace_generator, 9). + let pow62 = pow53 * pow61; // pow(trace_generator, 10). + let pow63 = pow53 * pow62; // pow(trace_generator, 11). + let pow64 = pow53 * pow63; // pow(trace_generator, 12). + let pow65 = pow53 * pow64; // pow(trace_generator, 13). + let pow66 = pow53 * pow65; // pow(trace_generator, 14). + let pow67 = pow53 * pow66; // pow(trace_generator, 15). + let pow68 = pow53 * pow67; // pow(trace_generator, 16). + let pow69 = pow5 * pow68; // pow(trace_generator, 132627). + let pow70 = pow6 * pow68; // pow(trace_generator, 66323). + let pow71 = pow53 * pow68; // pow(trace_generator, 17). + let pow72 = pow54 * pow71; // pow(trace_generator, 19). + let pow73 = pow54 * pow72; // pow(trace_generator, 21). + let pow74 = pow53 * pow73; // pow(trace_generator, 22). + let pow75 = pow54 * pow74; // pow(trace_generator, 24). + let pow76 = pow53 * pow75; // pow(trace_generator, 25). + let pow77 = pow54 * pow76; // pow(trace_generator, 27). + let pow78 = pow54 * pow77; // pow(trace_generator, 29). + let pow79 = pow53 * pow78; // pow(trace_generator, 30). + let pow80 = pow2 * pow68; // pow(trace_generator, 397843). + let pow81 = pow54 * pow79; // pow(trace_generator, 32). + let pow82 = pow53 * pow81; // pow(trace_generator, 33). + let pow83 = pow54 * pow82; // pow(trace_generator, 35). + let pow84 = pow54 * pow83; // pow(trace_generator, 37). + let pow85 = pow53 * pow84; // pow(trace_generator, 38). + let pow86 = pow53 * pow85; // pow(trace_generator, 39). + let pow87 = pow54 * pow86; // pow(trace_generator, 41). + let pow88 = pow54 * pow87; // pow(trace_generator, 43). + let pow89 = pow53 * pow88; // pow(trace_generator, 44). + let pow90 = pow53 * pow89; // pow(trace_generator, 45). + let pow91 = pow53 * pow90; // pow(trace_generator, 46). + let pow92 = pow54 * pow91; // pow(trace_generator, 48). + let pow93 = pow53 * pow92; // pow(trace_generator, 49). + let pow94 = pow54 * pow93; // pow(trace_generator, 51). + let pow95 = pow54 * pow94; // pow(trace_generator, 53). + let pow96 = pow53 * pow95; // pow(trace_generator, 54). + let pow97 = pow55 * pow96; // pow(trace_generator, 57). + let pow98 = pow54 * pow97; // pow(trace_generator, 59). + let pow99 = pow54 * pow98; // pow(trace_generator, 61). + let pow100 = pow55 * pow99; // pow(trace_generator, 64). + let pow101 = pow13 * pow100; // pow(trace_generator, 456001). + let pow102 = pow21 * pow100; // pow(trace_generator, 341825). + let pow103 = pow24 * pow100; // pow(trace_generator, 325185). + let pow104 = pow30 * pow100; // pow(trace_generator, 211460). + let pow105 = pow33 * pow100; // pow(trace_generator, 195074). + let pow106 = pow34 * pow100; // pow(trace_generator, 192324). + let pow107 = pow53 * pow100; // pow(trace_generator, 65). + let pow108 = pow56 * pow107; // pow(trace_generator, 69). + let pow109 = pow53 * pow108; // pow(trace_generator, 70). + let pow110 = pow53 * pow109; // pow(trace_generator, 71). + let pow111 = pow54 * pow110; // pow(trace_generator, 73). + let pow112 = pow55 * pow111; // pow(trace_generator, 76). + let pow113 = pow53 * pow112; // pow(trace_generator, 77). + let pow114 = pow55 * pow113; // pow(trace_generator, 80). + let pow115 = pow53 * pow114; // pow(trace_generator, 81). + let pow116 = pow56 * pow115; // pow(trace_generator, 85). + let pow117 = pow56 * pow116; // pow(trace_generator, 89). + let pow118 = pow54 * pow117; // pow(trace_generator, 91). + let pow119 = pow57 * pow118; // pow(trace_generator, 96). + let pow120 = pow53 * pow119; // pow(trace_generator, 97). + let pow121 = pow56 * pow120; // pow(trace_generator, 101). + let pow122 = pow53 * pow121; // pow(trace_generator, 102). + let pow123 = pow53 * pow122; // pow(trace_generator, 103). + let pow124 = pow54 * pow123; // pow(trace_generator, 105). + let pow125 = pow55 * pow124; // pow(trace_generator, 108). + let pow126 = pow53 * pow125; // pow(trace_generator, 109). + let pow127 = pow55 * pow126; // pow(trace_generator, 112). + let pow128 = pow53 * pow127; // pow(trace_generator, 113). + let pow129 = pow56 * pow128; // pow(trace_generator, 117). + let pow130 = pow58 * pow129; // pow(trace_generator, 123). + let pow131 = pow57 * pow130; // pow(trace_generator, 128). + let pow132 = pow13 * pow131; // pow(trace_generator, 456065). + let pow133 = pow21 * pow131; // pow(trace_generator, 341889). + let pow134 = pow24 * pow131; // pow(trace_generator, 325249). + let pow135 = pow30 * pow131; // pow(trace_generator, 211524). + let pow136 = pow33 * pow131; // pow(trace_generator, 195138). + let pow137 = pow34 * pow131; // pow(trace_generator, 192388). + let pow138 = pow58 * pow131; // pow(trace_generator, 134). + let pow139 = pow53 * pow138; // pow(trace_generator, 135). + let pow140 = pow57 * pow139; // pow(trace_generator, 140). + let pow141 = pow56 * pow140; // pow(trace_generator, 144). + let pow142 = pow63 * pow141; // pow(trace_generator, 155). + let pow143 = pow57 * pow142; // pow(trace_generator, 160). + let pow144 = pow58 * pow143; // pow(trace_generator, 166). + let pow145 = pow53 * pow144; // pow(trace_generator, 167). + let pow146 = pow57 * pow145; // pow(trace_generator, 172). + let pow147 = pow56 * pow146; // pow(trace_generator, 176). + let pow148 = pow63 * pow147; // pow(trace_generator, 187). + let pow149 = pow57 * pow148; // pow(trace_generator, 192). + let pow150 = pow53 * pow149; // pow(trace_generator, 193). + let pow151 = pow54 * pow150; // pow(trace_generator, 195). + let pow152 = pow53 * pow151; // pow(trace_generator, 196). + let pow153 = pow53 * pow152; // pow(trace_generator, 197). + let pow154 = pow53 * pow153; // pow(trace_generator, 198). + let pow155 = pow53 * pow154; // pow(trace_generator, 199). + let pow156 = pow57 * pow155; // pow(trace_generator, 204). + let pow157 = pow53 * pow156; // pow(trace_generator, 205). + let pow158 = pow55 * pow157; // pow(trace_generator, 208). + let pow159 = pow63 * pow158; // pow(trace_generator, 219). + let pow160 = pow54 * pow159; // pow(trace_generator, 221). + let pow161 = pow55 * pow160; // pow(trace_generator, 224). + let pow162 = pow64 * pow161; // pow(trace_generator, 236). + let pow163 = pow53 * pow162; // pow(trace_generator, 237). + let pow164 = pow55 * pow163; // pow(trace_generator, 240). + let pow165 = pow55 * pow164; // pow(trace_generator, 243). + let pow166 = pow54 * pow165; // pow(trace_generator, 245). + let pow167 = pow58 * pow166; // pow(trace_generator, 251). + let pow168 = pow53 * pow167; // pow(trace_generator, 252). + let pow169 = pow53 * pow168; // pow(trace_generator, 253). + let pow170 = pow54 * pow169; // pow(trace_generator, 255). + let pow171 = pow53 * pow170; // pow(trace_generator, 256). + let pow172 = pow14 * pow171; // pow(trace_generator, 451009). + let pow173 = pow22 * pow171; // pow(trace_generator, 337857). + let pow174 = pow25 * pow171; // pow(trace_generator, 320705). + let pow175 = pow53 * pow171; // pow(trace_generator, 257). + let pow176 = pow54 * pow175; // pow(trace_generator, 259). + let pow177 = pow11 * pow176; // pow(trace_generator, 502276). + let pow178 = pow53 * pow176; // pow(trace_generator, 260). + let pow179 = pow54 * pow178; // pow(trace_generator, 262). + let pow180 = pow53 * pow179; // pow(trace_generator, 263). + let pow181 = pow53 * pow180; // pow(trace_generator, 264). + let pow182 = pow57 * pow181; // pow(trace_generator, 269). + let pow183 = pow58 * pow182; // pow(trace_generator, 275). + let pow184 = pow72 * pow183; // pow(trace_generator, 294). + let pow185 = pow53 * pow184; // pow(trace_generator, 295). + let pow186 = pow58 * pow185; // pow(trace_generator, 301). + let pow187 = pow60 * pow186; // pow(trace_generator, 309). + let pow188 = pow53 * pow187; // pow(trace_generator, 310). + let pow189 = pow60 * pow188; // pow(trace_generator, 318). + let pow190 = pow60 * pow189; // pow(trace_generator, 326). + let pow191 = pow60 * pow190; // pow(trace_generator, 334). + let pow192 = pow60 * pow191; // pow(trace_generator, 342). + let pow193 = pow60 * pow192; // pow(trace_generator, 350). + let pow194 = pow60 * pow193; // pow(trace_generator, 358). + let pow195 = pow81 * pow194; // pow(trace_generator, 390). + let pow196 = pow81 * pow195; // pow(trace_generator, 422). + let pow197 = pow53 * pow194; // pow(trace_generator, 359). + let pow198 = pow53 * pow195; // pow(trace_generator, 391). + let pow199 = pow53 * pow196; // pow(trace_generator, 423). + let pow200 = pow77 * pow196; // pow(trace_generator, 449). + let pow201 = pow54 * pow200; // pow(trace_generator, 451). + let pow202 = pow55 * pow201; // pow(trace_generator, 454). + let pow203 = pow59 * pow202; // pow(trace_generator, 461). + let pow204 = pow68 * pow203; // pow(trace_generator, 477). + let pow205 = pow64 * pow204; // pow(trace_generator, 489). + let pow206 = pow56 * pow205; // pow(trace_generator, 493). + let pow207 = pow56 * pow206; // pow(trace_generator, 497). + let pow208 = pow54 * pow207; // pow(trace_generator, 499). + let pow209 = pow54 * pow208; // pow(trace_generator, 501). + let pow210 = pow56 * pow209; // pow(trace_generator, 505). + let pow211 = pow54 * pow210; // pow(trace_generator, 507). + let pow212 = pow54 * pow211; // pow(trace_generator, 509). + let pow213 = pow54 * pow212; // pow(trace_generator, 511). + let pow214 = pow53 * pow213; // pow(trace_generator, 512). + let pow215 = pow14 * pow214; // pow(trace_generator, 451265). + let pow216 = pow22 * pow214; // pow(trace_generator, 338113). + let pow217 = pow25 * pow214; // pow(trace_generator, 320961). + let pow218 = pow149 * pow214; // pow(trace_generator, 704). + let pow219 = pow53 * pow214; // pow(trace_generator, 513). + let pow220 = pow55 * pow219; // pow(trace_generator, 516). + let pow221 = pow54 * pow220; // pow(trace_generator, 518). + let pow222 = pow53 * pow218; // pow(trace_generator, 705). + let pow223 = pow54 * pow221; // pow(trace_generator, 520). + let pow224 = pow58 * pow222; // pow(trace_generator, 711). + let pow225 = pow61 * pow224; // pow(trace_generator, 720). + let pow226 = pow68 * pow225; // pow(trace_generator, 736). + let pow227 = pow68 * pow226; // pow(trace_generator, 752). + let pow228 = pow68 * pow227; // pow(trace_generator, 768). + let pow229 = pow53 * pow228; // pow(trace_generator, 769). + let pow230 = pow53 * pow229; // pow(trace_generator, 770). + let pow231 = pow54 * pow230; // pow(trace_generator, 772). + let pow232 = pow54 * pow231; // pow(trace_generator, 774). + let pow233 = pow54 * pow232; // pow(trace_generator, 776). + let pow234 = pow56 * pow233; // pow(trace_generator, 780). + let pow235 = pow131 * pow232; // pow(trace_generator, 902). + let pow236 = pow53 * pow235; // pow(trace_generator, 903). + let pow237 = pow97 * pow236; // pow(trace_generator, 960). + let pow238 = pow53 * pow237; // pow(trace_generator, 961). + let pow239 = pow57 * pow238; // pow(trace_generator, 966). + let pow240 = pow53 * pow239; // pow(trace_generator, 967). + let pow241 = pow61 * pow240; // pow(trace_generator, 976). + let pow242 = pow68 * pow241; // pow(trace_generator, 992). + let pow243 = pow68 * pow242; // pow(trace_generator, 1008). + let pow244 = pow71 * pow243; // pow(trace_generator, 1025). + let pow245 = pow53 * pow244; // pow(trace_generator, 1026). + let pow246 = pow54 * pow245; // pow(trace_generator, 1028). + let pow247 = pow54 * pow246; // pow(trace_generator, 1030). + let pow248 = pow58 * pow247; // pow(trace_generator, 1036). + let pow249 = pow148 * pow247; // pow(trace_generator, 1217). + let pow250 = pow57 * pow249; // pow(trace_generator, 1222). + let pow251 = pow149 * pow250; // pow(trace_generator, 1414). + let pow252 = pow98 * pow250; // pow(trace_generator, 1281). + let pow253 = pow136 * pow252; // pow(trace_generator, 196419). + let pow254 = pow98 * pow251; // pow(trace_generator, 1473). + let pow255 = pow33 * pow254; // pow(trace_generator, 196483). + let pow256 = pow55 * pow252; // pow(trace_generator, 1284). + let pow257 = pow100 * pow254; // pow(trace_generator, 1537). + let pow258 = pow149 * pow257; // pow(trace_generator, 1729). + let pow259 = pow55 * pow257; // pow(trace_generator, 1540). + let pow260 = pow100 * pow258; // pow(trace_generator, 1793). + let pow261 = pow149 * pow260; // pow(trace_generator, 1985). + let pow262 = pow55 * pow260; // pow(trace_generator, 1796). + let pow263 = pow100 * pow261; // pow(trace_generator, 2049). + let pow264 = pow55 * pow263; // pow(trace_generator, 2052). + let pow265 = pow55 * pow264; // pow(trace_generator, 2055). + let pow266 = pow99 * pow265; // pow(trace_generator, 2116). + let pow267 = pow33 * pow257; // pow(trace_generator, 196547). + let pow268 = pow53 * pow251; // pow(trace_generator, 1415). + let pow269 = pow55 * pow266; // pow(trace_generator, 2119). + let pow270 = pow99 * pow269; // pow(trace_generator, 2180). + let pow271 = pow55 * pow270; // pow(trace_generator, 2183). + let pow272 = pow99 * pow270; // pow(trace_generator, 2241). + let pow273 = pow100 * pow272; // pow(trace_generator, 2305). + let pow274 = pow55 * pow273; // pow(trace_generator, 2308). + let pow275 = pow153 * pow272; // pow(trace_generator, 2438). + let pow276 = pow98 * pow275; // pow(trace_generator, 2497). + let pow277 = pow100 * pow276; // pow(trace_generator, 2561). + let pow278 = pow149 * pow277; // pow(trace_generator, 2753). + let pow279 = pow55 * pow277; // pow(trace_generator, 2564). + let pow280 = pow100 * pow278; // pow(trace_generator, 2817). + let pow281 = pow149 * pow280; // pow(trace_generator, 3009). + let pow282 = pow55 * pow280; // pow(trace_generator, 2820). + let pow283 = pow100 * pow281; // pow(trace_generator, 3073). + let pow284 = pow55 * pow283; // pow(trace_generator, 3076). + let pow285 = pow169 * pow284; // pow(trace_generator, 3329). + let pow286 = pow55 * pow285; // pow(trace_generator, 3332). + let pow287 = pow7 * pow130; // pow(trace_generator, 3585). + let pow288 = pow55 * pow287; // pow(trace_generator, 3588). + let pow289 = pow100 * pow288; // pow(trace_generator, 3652). + let pow290 = pow169 * pow288; // pow(trace_generator, 3841). + let pow291 = pow105 * pow290; // pow(trace_generator, 198915). + let pow292 = pow68 * pow291; // pow(trace_generator, 198931). + let pow293 = pow7 * pow53; // pow(trace_generator, 3463). + let pow294 = pow100 * pow289; // pow(trace_generator, 3716). + let pow295 = pow55 * pow290; // pow(trace_generator, 3844). + let pow296 = pow169 * pow295; // pow(trace_generator, 4097). + let pow297 = pow100 * pow295; // pow(trace_generator, 3908). + let pow298 = pow100 * pow297; // pow(trace_generator, 3972). + let pow299 = pow55 * pow296; // pow(trace_generator, 4100). + let pow300 = pow169 * pow299; // pow(trace_generator, 4353). + let pow301 = pow39 * pow55; // pow(trace_generator, 159751). + let pow302 = pow55 * pow299; // pow(trace_generator, 4103). + let pow303 = pow55 * pow300; // pow(trace_generator, 4356). + let pow304 = pow7 * pow222; // pow(trace_generator, 4167). + let pow305 = pow7 * pow229; // pow(trace_generator, 4231). + let pow306 = pow170 * pow305; // pow(trace_generator, 4486). + let pow307 = pow7 * pow244; // pow(trace_generator, 4487). + let pow308 = pow130 * pow306; // pow(trace_generator, 4609). + let pow309 = pow55 * pow308; // pow(trace_generator, 4612). + let pow310 = pow169 * pow309; // pow(trace_generator, 4865). + let pow311 = pow55 * pow310; // pow(trace_generator, 4868). + let pow312 = pow169 * pow311; // pow(trace_generator, 5121). + let pow313 = pow55 * pow312; // pow(trace_generator, 5124). + let pow314 = pow169 * pow313; // pow(trace_generator, 5377). + let pow315 = pow55 * pow314; // pow(trace_generator, 5380). + let pow316 = pow99 * pow315; // pow(trace_generator, 5441). + let pow317 = pow55 * pow316; // pow(trace_generator, 5444). + let pow318 = pow99 * pow317; // pow(trace_generator, 5505). + let pow319 = pow131 * pow318; // pow(trace_generator, 5633). + let pow320 = pow35 * pow53; // pow(trace_generator, 178434). + let pow321 = pow320 * pow320; // pow(trace_generator, 356868). + let pow322 = pow55 * pow318; // pow(trace_generator, 5508). + let pow323 = pow55 * pow319; // pow(trace_generator, 5636). + let pow324 = pow99 * pow323; // pow(trace_generator, 5697). + let pow325 = pow100 * pow324; // pow(trace_generator, 5761). + let pow326 = pow131 * pow325; // pow(trace_generator, 5889). + let pow327 = pow55 * pow326; // pow(trace_generator, 5892). + let pow328 = pow99 * pow327; // pow(trace_generator, 5953). + let pow329 = pow100 * pow328; // pow(trace_generator, 6017). + let pow330 = pow131 * pow329; // pow(trace_generator, 6145). + let pow331 = pow55 * pow330; // pow(trace_generator, 6148). + let pow332 = pow99 * pow331; // pow(trace_generator, 6209). + let pow333 = pow100 * pow332; // pow(trace_generator, 6273). + let pow334 = pow11 * pow316; // pow(trace_generator, 507458). + let pow335 = pow131 * pow333; // pow(trace_generator, 6401). + let pow336 = pow7 * pow263; // pow(trace_generator, 5511). + let pow337 = pow53 * pow275; // pow(trace_generator, 2439). + let pow338 = pow53 * pow335; // pow(trace_generator, 6402). + let pow339 = pow53 * pow338; // pow(trace_generator, 6403). + let pow340 = pow24 * pow338; // pow(trace_generator, 331523). + let pow341 = pow68 * pow340; // pow(trace_generator, 331539). + let pow342 = pow53 * pow339; // pow(trace_generator, 6404). + let pow343 = pow54 * pow342; // pow(trace_generator, 6406). + let pow344 = pow65 * pow343; // pow(trace_generator, 6419). + let pow345 = pow93 * pow344; // pow(trace_generator, 6468). + let pow346 = pow100 * pow345; // pow(trace_generator, 6532). + let pow347 = pow54 * pow345; // pow(trace_generator, 6470). + let pow348 = pow54 * pow346; // pow(trace_generator, 6534). + let pow349 = pow7 * pow283; // pow(trace_generator, 6535). + let pow350 = pow98 * pow348; // pow(trace_generator, 6593). + let pow351 = pow53 * pow350; // pow(trace_generator, 6594). + let pow352 = pow100 * pow351; // pow(trace_generator, 6658). + let pow353 = pow100 * pow352; // pow(trace_generator, 6722). + let pow354 = pow54 * pow351; // pow(trace_generator, 6596). + let pow355 = pow54 * pow352; // pow(trace_generator, 6660). + let pow356 = pow54 * pow353; // pow(trace_generator, 6724). + let pow357 = pow54 * pow354; // pow(trace_generator, 6598). + let pow358 = pow99 * pow356; // pow(trace_generator, 6785). + let pow359 = pow53 * pow358; // pow(trace_generator, 6786). + let pow360 = pow54 * pow359; // pow(trace_generator, 6788). + let pow361 = pow54 * pow360; // pow(trace_generator, 6790). + let pow362 = pow148 * pow361; // pow(trace_generator, 6977). + let pow363 = pow53 * pow362; // pow(trace_generator, 6978). + let pow364 = pow54 * pow363; // pow(trace_generator, 6980). + let pow365 = pow9 * pow176; // pow(trace_generator, 513284). + let pow366 = pow54 * pow364; // pow(trace_generator, 6982). + let pow367 = pow148 * pow366; // pow(trace_generator, 7169). + let pow368 = pow53 * pow367; // pow(trace_generator, 7170). + let pow369 = pow54 * pow368; // pow(trace_generator, 7172). + let pow370 = pow54 * pow369; // pow(trace_generator, 7174). + let pow371 = pow148 * pow370; // pow(trace_generator, 7361). + let pow372 = pow53 * pow371; // pow(trace_generator, 7362). + let pow373 = pow54 * pow372; // pow(trace_generator, 7364). + let pow374 = pow54 * pow373; // pow(trace_generator, 7366). + let pow375 = pow148 * pow374; // pow(trace_generator, 7553). + let pow376 = pow53 * pow375; // pow(trace_generator, 7554). + let pow377 = pow284 * pow376; // pow(trace_generator, 10630). + let pow378 = pow130 * pow377; // pow(trace_generator, 10753). + let pow379 = pow54 * pow376; // pow(trace_generator, 7556). + let pow380 = pow54 * pow379; // pow(trace_generator, 7558). + let pow381 = pow7 * pow296; // pow(trace_generator, 7559). + let pow382 = pow148 * pow380; // pow(trace_generator, 7745). + let pow383 = pow53 * pow382; // pow(trace_generator, 7746). + let pow384 = pow54 * pow383; // pow(trace_generator, 7748). + let pow385 = pow54 * pow384; // pow(trace_generator, 7750). + let pow386 = pow148 * pow385; // pow(trace_generator, 7937). + let pow387 = pow2 * pow386; // pow(trace_generator, 405764). + let pow388 = pow53 * pow386; // pow(trace_generator, 7938). + let pow389 = pow54 * pow388; // pow(trace_generator, 7940). + let pow390 = pow99 * pow385; // pow(trace_generator, 7811). + let pow391 = pow54 * pow389; // pow(trace_generator, 7942). + let pow392 = pow167 * pow391; // pow(trace_generator, 8193). + let pow393 = pow53 * pow392; // pow(trace_generator, 8194). + let pow394 = pow346 * pow393; // pow(trace_generator, 14726). + let pow395 = pow99 * pow391; // pow(trace_generator, 8003). + let pow396 = pow100 * pow395; // pow(trace_generator, 8067). + let pow397 = pow100 * pow396; // pow(trace_generator, 8131). + let pow398 = pow384 * pow393; // pow(trace_generator, 15942). + let pow399 = pow201 * pow397; // pow(trace_generator, 8582). + let pow400 = pow7 * pow392; // pow(trace_generator, 11655). + let pow401 = pow7 * pow367; // pow(trace_generator, 10631). + let pow402 = pow53 * pow393; // pow(trace_generator, 8195). + let pow403 = pow55 * pow402; // pow(trace_generator, 8198). + let pow404 = pow296 * pow403; // pow(trace_generator, 12295). + let pow405 = pow66 * pow404; // pow(trace_generator, 12309). + let pow406 = pow100 * pow405; // pow(trace_generator, 12373). + let pow407 = pow149 * pow406; // pow(trace_generator, 12565). + let pow408 = pow100 * pow407; // pow(trace_generator, 12629). + let pow409 = pow93 * pow408; // pow(trace_generator, 12678). + let pow410 = pow244 * pow394; // pow(trace_generator, 15751). + let pow411 = pow191 * pow410; // pow(trace_generator, 16085). + let pow412 = pow53 * pow394; // pow(trace_generator, 14727). + let pow413 = pow244 * pow409; // pow(trace_generator, 13703). + let pow414 = pow53 * pow409; // pow(trace_generator, 12679). + let pow415 = pow7 * pow358; // pow(trace_generator, 10247). + let pow416 = pow53 * pow403; // pow(trace_generator, 8199). + let pow417 = pow57 * pow416; // pow(trace_generator, 8204). + let pow418 = pow98 * pow411; // pow(trace_generator, 16144). + let pow419 = pow53 * pow418; // pow(trace_generator, 16145). + let pow420 = pow53 * pow419; // pow(trace_generator, 16146). + let pow421 = pow59 * pow417; // pow(trace_generator, 8211). + let pow422 = pow161 * pow421; // pow(trace_generator, 8435). + let pow423 = pow60 * pow422; // pow(trace_generator, 8443). + let pow424 = pow58 * pow423; // pow(trace_generator, 8449). + let pow425 = pow7 * pow312; // pow(trace_generator, 8583). + let pow426 = pow99 * pow398; // pow(trace_generator, 16003). + let pow427 = pow53 * pow420; // pow(trace_generator, 16147). + let pow428 = pow53 * pow427; // pow(trace_generator, 16148). + let pow429 = pow130 * pow399; // pow(trace_generator, 8705). + let pow430 = pow7 * pow330; // pow(trace_generator, 9607). + let pow431 = pow53 * pow428; // pow(trace_generator, 16149). + let pow432 = pow53 * pow431; // pow(trace_generator, 16150). + let pow433 = pow53 * pow432; // pow(trace_generator, 16151). + let pow434 = pow61 * pow433; // pow(trace_generator, 16160). + let pow435 = pow53 * pow434; // pow(trace_generator, 16161). + let pow436 = pow53 * pow435; // pow(trace_generator, 16162). + let pow437 = pow53 * pow436; // pow(trace_generator, 16163). + let pow438 = pow53 * pow437; // pow(trace_generator, 16164). + let pow439 = pow53 * pow438; // pow(trace_generator, 16165). + let pow440 = pow53 * pow439; // pow(trace_generator, 16166). + let pow441 = pow53 * pow440; // pow(trace_generator, 16167). + let pow442 = pow61 * pow441; // pow(trace_generator, 16176). + let pow443 = pow68 * pow442; // pow(trace_generator, 16192). + let pow444 = pow31 * pow100; // pow(trace_generator, 208452). + let pow445 = pow55 * pow443; // pow(trace_generator, 16195). + let pow446 = pow65 * pow445; // pow(trace_generator, 16208). + let pow447 = pow68 * pow446; // pow(trace_generator, 16224). + let pow448 = pow68 * pow447; // pow(trace_generator, 16240). + let pow449 = pow68 * pow448; // pow(trace_generator, 16256). + let pow450 = pow31 * pow131; // pow(trace_generator, 208516). + let pow451 = pow68 * pow449; // pow(trace_generator, 16272). + let pow452 = pow68 * pow451; // pow(trace_generator, 16288). + let pow453 = pow68 * pow452; // pow(trace_generator, 16304). + let pow454 = pow68 * pow453; // pow(trace_generator, 16320). + let pow455 = pow57 * pow454; // pow(trace_generator, 16325). + let pow456 = pow58 * pow455; // pow(trace_generator, 16331). + let pow457 = pow57 * pow456; // pow(trace_generator, 16336). + let pow458 = pow53 * pow457; // pow(trace_generator, 16337). + let pow459 = pow54 * pow458; // pow(trace_generator, 16339). + let pow460 = pow65 * pow459; // pow(trace_generator, 16352). + let pow461 = pow55 * pow460; // pow(trace_generator, 16355). + let pow462 = pow54 * pow461; // pow(trace_generator, 16357). + let pow463 = pow58 * pow462; // pow(trace_generator, 16363). + let pow464 = pow57 * pow463; // pow(trace_generator, 16368). + let pow465 = pow453 * pow463; // pow(trace_generator, 32667). + let pow466 = pow53 * pow464; // pow(trace_generator, 16369). + let pow467 = pow54 * pow466; // pow(trace_generator, 16371). + let pow468 = pow65 * pow467; // pow(trace_generator, 16384). + let pow469 = pow195 * pow468; // pow(trace_generator, 16774). + let pow470 = pow312 * pow469; // pow(trace_generator, 21895). + let pow471 = pow392 * pow468; // pow(trace_generator, 24577). + let pow472 = pow330 * pow468; // pow(trace_generator, 22529). + let pow473 = pow100 * pow472; // pow(trace_generator, 22593). + let pow474 = pow100 * pow473; // pow(trace_generator, 22657). + let pow475 = pow276 * pow468; // pow(trace_generator, 18881). + let pow476 = pow171 * pow475; // pow(trace_generator, 19137). + let pow477 = pow171 * pow476; // pow(trace_generator, 19393). + let pow478 = pow220 * pow468; // pow(trace_generator, 16900). + let pow479 = pow53 * pow468; // pow(trace_generator, 16385). + let pow480 = pow53 * pow471; // pow(trace_generator, 24578). + let pow481 = pow150 * pow473; // pow(trace_generator, 22786). + let pow482 = pow56 * pow480; // pow(trace_generator, 24582). + let pow483 = pow58 * pow482; // pow(trace_generator, 24588). + let pow484 = pow166 * pow483; // pow(trace_generator, 24833). + let pow485 = pow270 * pow481; // pow(trace_generator, 24966). + let pow486 = pow130 * pow485; // pow(trace_generator, 25089). + let pow487 = pow52 * pow308; // pow(trace_generator, 30978). + let pow488 = pow81 * pow479; // pow(trace_generator, 16417). + let pow489 = pow53 * pow469; // pow(trace_generator, 16775). + let pow490 = pow251 * pow472; // pow(trace_generator, 23943). + let pow491 = pow168 * pow490; // pow(trace_generator, 24195). + let pow492 = pow51 * pow239; // pow(trace_generator, 32135). + let pow493 = pow168 * pow492; // pow(trace_generator, 32387). + let pow494 = pow178 * pow493; // pow(trace_generator, 32647). + let pow495 = pow312 * pow485; // pow(trace_generator, 30087). + let pow496 = pow7 * pow471; // pow(trace_generator, 28039). + let pow497 = pow7 * pow472; // pow(trace_generator, 25991). + let pow498 = pow92 * pow465; // pow(trace_generator, 32715). + let pow499 = pow58 * pow498; // pow(trace_generator, 32721). + let pow500 = pow62 * pow499; // pow(trace_generator, 32731). + let pow501 = pow68 * pow500; // pow(trace_generator, 32747). + let pow502 = pow58 * pow501; // pow(trace_generator, 32753). + let pow503 = pow62 * pow502; // pow(trace_generator, 32763). + let pow504 = pow57 * pow503; // pow(trace_generator, 32768). + let pow505 = pow504 * pow504; // pow(trace_generator, 65536). + let pow506 = pow504 * pow505; // pow(trace_generator, 98304). + let pow507 = pow504 * pow506; // pow(trace_generator, 131072). + let pow508 = pow504 * pow507; // pow(trace_generator, 163840). + let pow509 = pow426 * pow508; // pow(trace_generator, 179843). + let pow510 = pow39 * pow402; // pow(trace_generator, 167943). + let pow511 = pow380 * pow508; // pow(trace_generator, 171398). + let pow512 = pow342 * pow508; // pow(trace_generator, 170244). + let pow513 = pow257 * pow508; // pow(trace_generator, 165377). + let pow514 = pow55 * pow513; // pow(trace_generator, 165380). + let pow515 = pow99 * pow267; // pow(trace_generator, 196608). + let pow516 = pow504 * pow515; // pow(trace_generator, 229376). + let pow517 = pow320 * pow516; // pow(trace_generator, 407810). + let pow518 = pow388 * pow517; // pow(trace_generator, 415748). + let pow519 = pow351 * pow516; // pow(trace_generator, 235970). + let pow520 = pow252 * pow516; // pow(trace_generator, 230657). + let pow521 = pow237 * pow519; // pow(trace_generator, 236930). + let pow522 = pow200 * pow521; // pow(trace_generator, 237379). + let pow523 = pow55 * pow520; // pow(trace_generator, 230660). + let pow524 = pow30 * pow506; // pow(trace_generator, 309700). + let pow525 = pow6 * pow256; // pow(trace_generator, 67591). + let pow526 = pow343 * pow505; // pow(trace_generator, 71942). + let pow527 = pow47 * pow55; // pow(trace_generator, 75783). + let pow528 = pow47 * pow100; // pow(trace_generator, 75844). + let pow529 = pow6 * pow312; // pow(trace_generator, 71428). + let pow530 = pow285 * pow505; // pow(trace_generator, 68865). + let pow531 = pow308 * pow530; // pow(trace_generator, 73474). + let pow532 = pow355 * pow531; // pow(trace_generator, 80134). + let pow533 = pow100 * pow532; // pow(trace_generator, 80198). + let pow534 = pow100 * pow533; // pow(trace_generator, 80262). + let pow535 = pow55 * pow528; // pow(trace_generator, 75847). + let pow536 = pow47 * pow131; // pow(trace_generator, 75908). + let pow537 = pow55 * pow536; // pow(trace_generator, 75911). + let pow538 = pow1 * pow505; // pow(trace_generator, 512007). + let pow539 = pow195 * pow504; // pow(trace_generator, 33158). + let pow540 = pow471 * pow504; // pow(trace_generator, 57345). + let pow541 = pow471 * pow506; // pow(trace_generator, 122881). + let pow542 = pow50 * pow314; // pow(trace_generator, 57346). + let pow543 = pow44 * pow367; // pow(trace_generator, 122882). + let pow544 = pow56 * pow542; // pow(trace_generator, 57350). + let pow545 = pow56 * pow543; // pow(trace_generator, 122886). + let pow546 = pow58 * pow544; // pow(trace_generator, 57356). + let pow547 = pow58 * pow545; // pow(trace_generator, 122892). + let pow548 = pow166 * pow546; // pow(trace_generator, 57601). + let pow549 = pow171 * pow548; // pow(trace_generator, 57857). + let pow550 = pow166 * pow547; // pow(trace_generator, 123137). + let pow551 = pow171 * pow550; // pow(trace_generator, 123393). + let pow552 = pow32 * pow542; // pow(trace_generator, 265219). + let pow553 = pow548 * pow552; // pow(trace_generator, 322820). + let pow554 = pow68 * pow552; // pow(trace_generator, 265235). + let pow555 = pow471 * pow516; // pow(trace_generator, 253953). + let pow556 = pow53 * pow555; // pow(trace_generator, 253954). + let pow557 = pow56 * pow556; // pow(trace_generator, 253958). + let pow558 = pow58 * pow557; // pow(trace_generator, 253964). + let pow559 = pow166 * pow558; // pow(trace_generator, 254209). + let pow560 = pow40 * pow559; // pow(trace_generator, 409607). + let pow561 = pow171 * pow559; // pow(trace_generator, 254465). + let pow562 = pow23 * pow504; // pow(trace_generator, 358662). + let pow563 = pow237 * pow562; // pow(trace_generator, 359622). + let pow564 = pow4 * pow504; // pow(trace_generator, 354311). + let pow565 = pow504 * pow516; // pow(trace_generator, 262144). + let pow566 = pow504 * pow565; // pow(trace_generator, 294912). + let pow567 = pow6 * pow523; // pow(trace_generator, 296967). + let pow568 = pow367 * pow566; // pow(trace_generator, 302081). + let pow569 = pow343 * pow566; // pow(trace_generator, 301318). + let pow570 = pow296 * pow566; // pow(trace_generator, 299009). + let pow571 = pow231 * pow566; // pow(trace_generator, 295684). + let pow572 = pow504 * pow566; // pow(trace_generator, 327680). + let pow573 = pow486 * pow572; // pow(trace_generator, 352769). + let pow574 = pow504 * pow572; // pow(trace_generator, 360448). + let pow575 = pow59 * pow574; // pow(trace_generator, 360455). + let pow576 = pow504 * pow574; // pow(trace_generator, 393216). + let pow577 = pow426 * pow576; // pow(trace_generator, 409219). + let pow578 = pow362 * pow577; // pow(trace_generator, 416196). + let pow579 = pow504 * pow576; // pow(trace_generator, 425984). + let pow580 = pow504 * pow579; // pow(trace_generator, 458752). + let pow581 = pow481 * pow580; // pow(trace_generator, 481538). + let pow582 = pow491 * pow580; // pow(trace_generator, 482947). + let pow583 = pow382 * pow580; // pow(trace_generator, 466497). + let pow584 = pow310 * pow580; // pow(trace_generator, 463617). + let pow585 = pow55 * pow584; // pow(trace_generator, 463620). + let pow586 = pow13 * pow393; // pow(trace_generator, 464131). + let pow587 = pow68 * pow586; // pow(trace_generator, 464147). + let pow588 = pow504 * pow580; // pow(trace_generator, 491520). + let pow589 = pow175 * pow334; // pow(trace_generator, 507715). + let pow590 = pow100 * pow538; // pow(trace_generator, 512071). + let pow591 = pow100 * pow590; // pow(trace_generator, 512135). + let pow592 = pow100 * pow365; // pow(trace_generator, 513348). + let pow593 = pow15 * pow505; // pow(trace_generator, 514308). + let pow594 = pow100 * pow592; // pow(trace_generator, 513412). + let pow595 = pow100 * pow593; // pow(trace_generator, 514372). + let pow596 = pow100 * pow595; // pow(trace_generator, 514436). + let pow597 = pow8 * pow171; // pow(trace_generator, 516097). + let pow598 = pow8 * pow175; // pow(trace_generator, 516098). + let pow599 = pow53 * pow598; // pow(trace_generator, 516099). + let pow600 = pow8 * pow176; // pow(trace_generator, 516100). + let pow601 = pow8 * pow201; // pow(trace_generator, 516292). + let pow602 = pow54 * pow600; // pow(trace_generator, 516102). + let pow603 = pow58 * pow602; // pow(trace_generator, 516108). + let pow604 = pow59 * pow580; // pow(trace_generator, 458759). + let pow605 = pow59 * pow603; // pow(trace_generator, 516115). + let pow606 = pow161 * pow605; // pow(trace_generator, 516339). + let pow607 = pow60 * pow606; // pow(trace_generator, 516347). + let pow608 = pow8 * pow214; // pow(trace_generator, 516353). + let pow609 = pow55 * pow608; // pow(trace_generator, 516356). + let pow610 = pow8 * pow228; // pow(trace_generator, 516609). + let pow611 = pow10 * pow443; // pow(trace_generator, 522498). + let pow612 = pow10 * pow468; // pow(trace_generator, 522690). + let pow613 = pow38 * pow574; // pow(trace_generator, 522500). + let pow614 = pow54 * pow612; // pow(trace_generator, 522692). + let pow615 = pow23 * pow515; // pow(trace_generator, 522502). + let pow616 = pow372 * pow574; // pow(trace_generator, 367810). + let pow617 = pow354 * pow574; // pow(trace_generator, 367044). + let pow618 = pow249 * pow586; // pow(trace_generator, 465348). + let pow619 = pow274 * pow574; // pow(trace_generator, 362756). + let pow620 = pow175 * pow574; // pow(trace_generator, 360705). + let pow621 = pow329 * pow491; // pow(trace_generator, 30212). + let pow622 = pow7 * pow479; // pow(trace_generator, 19847). + let pow623 = pow244 * pow469; // pow(trace_generator, 17799). + let pow624 = pow291 * pow327; // pow(trace_generator, 204807). + let pow625 = pow100 * pow624; // pow(trace_generator, 204871). + let pow626 = pow100 * pow625; // pow(trace_generator, 204935). + let pow627 = pow247 * pow568; // pow(trace_generator, 303111). + let pow628 = pow9 * pow370; // pow(trace_generator, 520199). + + // Fetch columns. + let column0 = *column_values.pop_front().unwrap(); + let column1 = *column_values.pop_front().unwrap(); + let column2 = *column_values.pop_front().unwrap(); + let column3 = *column_values.pop_front().unwrap(); + let column4 = *column_values.pop_front().unwrap(); + let column5 = *column_values.pop_front().unwrap(); + let column6 = *column_values.pop_front().unwrap(); + let column7 = *column_values.pop_front().unwrap(); + let column8 = *column_values.pop_front().unwrap(); + let column9 = *column_values.pop_front().unwrap(); + let column10 = *column_values.pop_front().unwrap(); + let column11 = *column_values.pop_front().unwrap(); + let column12 = *column_values.pop_front().unwrap(); + let column13 = *column_values.pop_front().unwrap(); + let column14 = *column_values.pop_front().unwrap(); + + // Sum the OODS constraints on the trace polynomials. + let mut value = 0; + let mut total_sum = 0; + + let mut powers = array![ + pow0, + pow53, + pow54, + pow55, + pow56, + pow57, + pow58, + pow59, + pow60, + pow61, + pow62, + pow63, + pow64, + pow65, + pow66, + pow67 + ]; + + loop { + match powers.pop_front() { + Option::Some(pow) => { + value = (column0 - *oods_values.pop_front().unwrap()) / (point - pow * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + }, + Option::None => { break; } + }; + }; + + let mut powers = array![ + pow0, + pow53, + pow54, + pow56, + pow58, + pow60, + pow64, + pow68, + pow81, + pow92, + pow100, + pow114, + pow119, + pow127, + pow131, + pow141, + pow143, + pow147, + pow149, + pow150, + pow152, + pow158, + pow161, + pow164, + pow171, + pow175, + pow178, + pow181, + pow200, + pow214, + pow219, + pow220, + pow223, + pow218, + pow222, + pow225, + pow226, + pow227, + pow228, + pow229, + pow230, + pow231, + pow232, + pow233, + pow234, + pow237, + pow238, + pow241, + pow242, + pow243, + pow244, + pow245, + pow246, + pow247, + pow248, + pow249, + pow252, + pow256, + pow254, + pow257, + pow259, + pow258, + pow260, + pow262, + pow261, + pow263, + pow264, + pow266, + pow270, + pow272, + pow273, + pow274, + pow276, + pow277, + pow279, + pow278, + pow280, + pow282, + pow281, + pow283, + pow284, + pow285, + pow286, + pow287, + pow288, + pow289, + pow294, + pow290, + pow295, + pow297, + pow298, + pow296, + pow299, + pow300, + pow303, + pow308, + pow309, + pow310, + pow311, + pow312, + pow313, + pow314, + pow315, + pow316, + pow317, + pow318, + pow322, + pow319, + pow323, + pow324, + pow325, + pow326, + pow327, + pow328, + pow329, + pow330, + pow331, + pow332, + pow333, + pow335, + pow338, + pow342, + pow343, + pow345, + pow347, + pow346, + pow348, + pow350, + pow351, + pow354, + pow357, + pow352, + pow355, + pow353, + pow356, + pow358, + pow359, + pow360, + pow361, + pow362, + pow363, + pow364, + pow366, + pow367, + pow368, + pow369, + pow370, + pow371, + pow372, + pow373, + pow374, + pow375, + pow376, + pow379, + pow380, + pow382, + pow383, + pow384, + pow385, + pow386, + pow388, + pow389, + pow391, + pow392, + pow393, + pow403, + pow417, + pow424, + pow429, + pow378, + pow398, + pow478, + pow475, + pow476, + pow477, + pow472, + pow473, + pow474, + pow481, + pow471, + pow480, + pow482, + pow483, + pow484, + pow486, + pow52, + pow621, + pow487, + pow51, + pow50, + pow48, + pow540, + pow542, + pow544, + pow546, + pow548, + pow549, + pow530, + pow529, + pow526, + pow531, + pow47, + pow528, + pow536, + pow532, + pow533, + pow534, + pow46, + pow45, + pow44, + pow49, + pow541, + pow543, + pow545, + pow547, + pow550, + pow551, + pow43, + pow42, + pow41, + pow40, + pow39, + pow38, + pow513, + pow514, + pow512, + pow511, + pow37, + pow36, + pow35, + pow320, + pow34, + pow106, + pow137, + pow33, + pow105, + pow136, + pow32, + pow31, + pow444, + pow450, + pow30, + pow104, + pow135, + pow29, + pow28, + pow27, + pow520, + pow523, + pow519, + pow521, + pow555, + pow556, + pow557, + pow558, + pow559, + pow561, + pow571, + pow570, + pow569, + pow568, + pow26, + pow524, + pow25, + pow174, + pow217, + pow553, + pow24, + pow103, + pow134, + pow23, + pow22, + pow173, + pow216, + pow21, + pow102, + pow133, + pow573, + pow321, + pow562, + pow563, + pow620, + pow619, + pow617, + pow616, + pow20, + pow19, + pow18, + pow17, + pow387, + pow517, + pow518, + pow578, + pow16, + pow15, + pow14, + pow172, + pow215, + pow13, + pow101, + pow132, + pow584, + pow585, + pow618, + pow583, + pow12, + pow581, + pow11, + pow177, + pow10, + pow334, + pow9, + pow365, + pow592, + pow594, + pow593, + pow595, + pow596, + pow8, + pow597, + pow598, + pow600, + pow602, + pow603, + pow601, + pow608, + pow609, + pow610, + pow611, + pow613, + pow615, + pow612, + pow614 + ]; + + loop { + match powers.pop_front() { + Option::Some(pow) => { + value = (column1 - *oods_values.pop_front().unwrap()) / (point - pow * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + }, + Option::None => { break; } + }; + }; + + value = (column2 - *oods_values.pop_front().unwrap()) / (point - pow0 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column2 - *oods_values.pop_front().unwrap()) / (point - pow53 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column3 - *oods_values.pop_front().unwrap()) / (point - pow0 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column3 - *oods_values.pop_front().unwrap()) / (point - pow53 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column3 - *oods_values.pop_front().unwrap()) / (point - pow170 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column3 - *oods_values.pop_front().unwrap()) / (point - pow171 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column3 - *oods_values.pop_front().unwrap()) / (point - pow213 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column4 - *oods_values.pop_front().unwrap()) / (point - pow0 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column4 - *oods_values.pop_front().unwrap()) / (point - pow53 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column4 - *oods_values.pop_front().unwrap()) / (point - pow170 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column4 - *oods_values.pop_front().unwrap()) / (point - pow171 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column5 - *oods_values.pop_front().unwrap()) / (point - pow0 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column5 - *oods_values.pop_front().unwrap()) / (point - pow53 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column5 - *oods_values.pop_front().unwrap()) / (point - pow149 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column5 - *oods_values.pop_front().unwrap()) / (point - pow150 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column5 - *oods_values.pop_front().unwrap()) / (point - pow152 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column5 - *oods_values.pop_front().unwrap()) / (point - pow153 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column5 - *oods_values.pop_front().unwrap()) / (point - pow167 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column5 - *oods_values.pop_front().unwrap()) / (point - pow168 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column5 - *oods_values.pop_front().unwrap()) / (point - pow171 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column6 - *oods_values.pop_front().unwrap()) / (point - pow0 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column6 - *oods_values.pop_front().unwrap()) / (point - pow170 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + let mut powers = array![ + pow0, + pow53, + pow54, + pow55, + pow56, + pow57, + pow58, + pow59, + pow60, + pow61, + pow62, + pow63, + pow64, + pow65, + pow66, + pow67, + pow418, + pow419, + pow420, + pow427, + pow428, + pow431, + pow432, + pow433, + pow434, + pow435, + pow436, + pow437, + pow438, + pow439, + pow440, + pow441, + pow442, + pow443, + pow446, + pow447, + pow448, + pow449, + pow451, + pow452, + pow453, + pow454, + pow457, + pow460, + pow464, + pow468, + pow504, + pow505, + pow506, + pow507, + pow508, + pow515, + pow516, + pow565, + pow566, + pow572, + pow574, + pow576, + pow579, + pow580, + pow588 + ]; + + loop { + match powers.pop_front() { + Option::Some(pow) => { + value = (column7 - *oods_values.pop_front().unwrap()) / (point - pow * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + }, + Option::None => { break; } + }; + }; + + let mut powers = array![ + pow0, + pow53, + pow54, + pow55, + pow56, + pow57, + pow58, + pow59, + pow60, + pow61, + pow64, + pow65, + pow68, + pow85, + pow86, + pow109, + pow110, + pow122, + pow123, + pow138, + pow139, + pow144, + pow145, + pow154, + pow155, + pow179, + pow180, + pow184, + pow185, + pow190, + pow194, + pow197, + pow195, + pow198, + pow196, + pow199, + pow202, + pow221, + pow224, + pow235, + pow236, + pow239, + pow240, + pow250, + pow251, + pow268, + pow275, + pow337, + pow7, + pow293, + pow306, + pow307, + pow336, + pow348, + pow349, + pow381, + pow399, + pow425, + pow430, + pow377, + pow401, + pow400, + pow409, + pow414, + pow413, + pow394, + pow412, + pow410, + pow469, + pow489, + pow623, + pow622, + pow470, + pow490, + pow485, + pow497, + pow496, + pow495, + pow492, + pow539 + ]; + + loop { + match powers.pop_front() { + Option::Some(pow) => { + value = (column8 - *oods_values.pop_front().unwrap()) / (point - pow * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + }, + Option::None => { break; } + }; + }; + + value = (column9 - *oods_values.pop_front().unwrap()) / (point - pow0 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column9 - *oods_values.pop_front().unwrap()) / (point - pow53 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column9 - *oods_values.pop_front().unwrap()) / (point - pow54 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column9 - *oods_values.pop_front().unwrap()) / (point - pow55 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + let mut powers = array![ + pow0, + pow53, + pow54, + pow55, + pow56, + pow57, + pow58, + pow59, + pow60, + pow61, + pow64, + pow65, + pow71, + pow72, + pow73, + pow76, + pow89, + pow110, + pow112, + pow125, + pow139, + pow140, + pow146, + pow156, + pow162, + pow165, + pow167, + pow176, + pow183, + pow205, + pow207, + pow208, + pow210, + pow211, + pow265, + pow269, + pow271, + pow302, + pow304, + pow305, + pow339, + pow344, + pow390, + pow395, + pow396, + pow397, + pow402, + pow416, + pow421, + pow422, + pow423, + pow415, + pow404, + pow426, + pow445, + pow491, + pow493, + pow6, + pow70, + pow525, + pow527, + pow535, + pow537, + pow5, + pow69, + pow301, + pow510, + pow509, + pow253, + pow255, + pow267, + pow291, + pow292, + pow624, + pow625, + pow626, + pow522, + pow552, + pow554, + pow567, + pow627, + pow4, + pow340, + pow341, + pow564, + pow575, + pow3, + pow2, + pow80, + pow577, + pow560, + pow1, + pow604, + pow586, + pow587, + pow582, + pow589, + pow538, + pow590, + pow591, + pow599, + pow605, + pow606, + pow607, + pow628 + ]; + + loop { + match powers.pop_front() { + Option::Some(pow) => { + value = (column10 - *oods_values.pop_front().unwrap()) / (point - pow * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + }, + Option::None => { break; } + }; + }; + + let mut powers = array![ + pow0, + pow53, + pow54, + pow55, + pow56, + pow57, + pow58, + pow59, + pow60, + pow61, + pow62, + pow63, + pow64, + pow65, + pow66, + pow68, + pow71, + pow72, + pow73, + pow74, + pow75, + pow76, + pow77, + pow78, + pow79, + pow82, + pow83, + pow84, + pow85, + pow87, + pow88, + pow90, + pow91, + pow93, + pow94, + pow95, + pow96, + pow97, + pow98, + pow99, + pow107, + pow108, + pow110, + pow111, + pow113, + pow115, + pow116, + pow117, + pow118, + pow120, + pow121, + pow124, + pow126, + pow128, + pow129, + pow130, + pow142, + pow148, + pow151, + pow157, + pow159, + pow160, + pow163, + pow166, + pow169, + pow182, + pow186, + pow187, + pow188, + pow189, + pow190, + pow191, + pow192, + pow193, + pow201, + pow203, + pow204, + pow206, + pow209, + pow212, + pow405, + pow406, + pow407, + pow408, + pow411, + pow431, + pow455, + pow456, + pow458, + pow459, + pow461, + pow462, + pow463, + pow466, + pow467, + pow479, + pow488, + pow494, + pow465, + pow498, + pow499, + pow500, + pow501, + pow502, + pow503, + ]; + + loop { + match powers.pop_front() { + Option::Some(pow) => { + value = (column11 - *oods_values.pop_front().unwrap()) / (point - pow * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + }, + Option::None => { break; } + }; + }; + + value = (column12 - *oods_values.pop_front().unwrap()) / (point - pow0 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column12 - *oods_values.pop_front().unwrap()) / (point - pow53 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column13 - *oods_values.pop_front().unwrap()) / (point - pow0 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column13 - *oods_values.pop_front().unwrap()) / (point - pow53 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column14 - *oods_values.pop_front().unwrap()) / (point - pow0 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column14 - *oods_values.pop_front().unwrap()) / (point - pow53 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column14 - *oods_values.pop_front().unwrap()) / (point - pow54 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (column14 - *oods_values.pop_front().unwrap()) / (point - pow57 * oods_point); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + // Sum the OODS boundary constraints on the composition polynomials. + let oods_point_to_deg = pow(oods_point, CONSTRAINT_DEGREE.into()); + + value = (*column_values.pop_front().unwrap() - *oods_values.pop_front().unwrap()) + / (point - oods_point_to_deg); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + value = (*column_values.pop_front().unwrap() - *oods_values.pop_front().unwrap()) + / (point - oods_point_to_deg); + total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; + + assert(736 == MASK_SIZE + CONSTRAINT_DEGREE, 'Invalid value'); + total_sum +} + +#[cfg(feature: 'split')] +fn eval_composition_polynomial_inner_part1( mut mask_values: Span, mut constraint_coefficients: Span, point: felt252, @@ -5902,14 +21031,13 @@ fn eval_composition_polynomial_inner_part1( let ecdsa_signature0_exponentiate_generator_bit_neg_0 = 1 - ecdsa_signature0_exponentiate_generator_bit_0; let ecdsa_signature0_exponentiate_key_bit_0 = column11_row9 - (column11_row73 + column11_row73); - + // Sum constraints. let total_sum = 0; - + // Constraint: cpu/decode/opcode_range_check/bit. - let value = - (cpu_decode_opcode_range_check_bit_0 * cpu_decode_opcode_range_check_bit_0 - - cpu_decode_opcode_range_check_bit_0) + let value = (cpu_decode_opcode_range_check_bit_0 * cpu_decode_opcode_range_check_bit_0 + - cpu_decode_opcode_range_check_bit_0) * domain4 / domain0; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -5919,20 +21047,17 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/decode/opcode_range_check_input. - let value = - (column8_row1 - - (((column0_row0 * global_values.offset_size + column10_row4) - * global_values.offset_size - + column10_row8) - * global_values.offset_size - + column10_row0)) + let value = (column8_row1 + - (((column0_row0 * global_values.offset_size + column10_row4) * global_values.offset_size + + column10_row8) + * global_values.offset_size + + column10_row0)) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/decode/flag_op1_base_op0_bit. - let value = - (cpu_decode_flag_op1_base_op0_0 * cpu_decode_flag_op1_base_op0_0 - - cpu_decode_flag_op1_base_op0_0) + let value = (cpu_decode_flag_op1_base_op0_0 * cpu_decode_flag_op1_base_op0_0 + - cpu_decode_flag_op1_base_op0_0) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -5942,48 +21067,43 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/decode/flag_pc_update_regular_bit. - let value = - (cpu_decode_flag_pc_update_regular_0 * cpu_decode_flag_pc_update_regular_0 - - cpu_decode_flag_pc_update_regular_0) + let value = (cpu_decode_flag_pc_update_regular_0 * cpu_decode_flag_pc_update_regular_0 + - cpu_decode_flag_pc_update_regular_0) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/decode/fp_update_regular_bit. - let value = - (cpu_decode_fp_update_regular_0 * cpu_decode_fp_update_regular_0 - - cpu_decode_fp_update_regular_0) + let value = (cpu_decode_fp_update_regular_0 * cpu_decode_fp_update_regular_0 + - cpu_decode_fp_update_regular_0) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/operands/mem_dst_addr. - let value = - (column8_row8 - + global_values.half_offset_size - - (cpu_decode_opcode_range_check_bit_0 * column11_row8 - + (1 - cpu_decode_opcode_range_check_bit_0) * column11_row0 - + column10_row0)) + let value = (column8_row8 + + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_0 * column11_row8 + + (1 - cpu_decode_opcode_range_check_bit_0) * column11_row0 + + column10_row0)) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/operands/mem0_addr. - let value = - (column8_row4 - + global_values.half_offset_size - - (cpu_decode_opcode_range_check_bit_1 * column11_row8 - + (1 - cpu_decode_opcode_range_check_bit_1) * column11_row0 - + column10_row8)) + let value = (column8_row4 + + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_1 * column11_row8 + + (1 - cpu_decode_opcode_range_check_bit_1) * column11_row0 + + column10_row8)) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/operands/mem1_addr. - let value = - (column8_row12 - + global_values.half_offset_size - - (cpu_decode_opcode_range_check_bit_2 * column8_row0 - + cpu_decode_opcode_range_check_bit_4 * column11_row0 - + cpu_decode_opcode_range_check_bit_3 * column11_row8 - + cpu_decode_flag_op1_base_op0_0 * column8_row5 - + column10_row4)) + let value = (column8_row12 + + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_2 * column8_row0 + + cpu_decode_opcode_range_check_bit_4 * column11_row0 + + cpu_decode_opcode_range_check_bit_3 * column11_row8 + + cpu_decode_flag_op1_base_op0_0 * column8_row5 + + column10_row4)) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -5992,11 +21112,10 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/operands/res. - let value = - ((1 - cpu_decode_opcode_range_check_bit_9) * column11_row12 - - (cpu_decode_opcode_range_check_bit_5 * (column8_row5 + column8_row13) - + cpu_decode_opcode_range_check_bit_6 * column11_row4 - + cpu_decode_flag_res_op1_0 * column8_row13)) + let value = ((1 - cpu_decode_opcode_range_check_bit_9) * column11_row12 + - (cpu_decode_opcode_range_check_bit_5 * (column8_row5 + column8_row13) + + cpu_decode_opcode_range_check_bit_6 * column11_row4 + + cpu_decode_flag_res_op1_0 * column8_row13)) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6011,39 +21130,37 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/update_registers/update_pc/pc_cond_negative. - let value = - ((1 - cpu_decode_opcode_range_check_bit_9) * column8_row16 - + column11_row2 * (column8_row16 - (column8_row0 + column8_row13)) - - (cpu_decode_flag_pc_update_regular_0 * npc_reg_0 - + cpu_decode_opcode_range_check_bit_7 * column11_row12 - + cpu_decode_opcode_range_check_bit_8 * (column8_row0 + column11_row12))) + let value = ((1 - cpu_decode_opcode_range_check_bit_9) * column8_row16 + + column11_row2 * (column8_row16 - (column8_row0 + column8_row13)) + - (cpu_decode_flag_pc_update_regular_0 * npc_reg_0 + + cpu_decode_opcode_range_check_bit_7 * column11_row12 + + cpu_decode_opcode_range_check_bit_8 * (column8_row0 + column11_row12))) * domain143 / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/update_registers/update_pc/pc_cond_positive. - let value = ((column11_row10 - cpu_decode_opcode_range_check_bit_9) * (column8_row16 - npc_reg_0)) + let value = ((column11_row10 - cpu_decode_opcode_range_check_bit_9) + * (column8_row16 - npc_reg_0)) * domain143 / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/update_registers/update_ap/ap_update. - let value = - (column11_row16 - - (column11_row0 - + cpu_decode_opcode_range_check_bit_10 * column11_row12 - + cpu_decode_opcode_range_check_bit_11 - + cpu_decode_opcode_range_check_bit_12 * 2)) + let value = (column11_row16 + - (column11_row0 + + cpu_decode_opcode_range_check_bit_10 * column11_row12 + + cpu_decode_opcode_range_check_bit_11 + + cpu_decode_opcode_range_check_bit_12 * 2)) * domain143 / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/update_registers/update_fp/fp_update. - let value = - (column11_row24 - - (cpu_decode_fp_update_regular_0 * column11_row8 - + cpu_decode_opcode_range_check_bit_13 * column8_row9 - + cpu_decode_opcode_range_check_bit_12 * (column11_row0 + 2))) + let value = (column11_row24 + - (cpu_decode_fp_update_regular_0 * column11_row8 + + cpu_decode_opcode_range_check_bit_13 * column8_row9 + + cpu_decode_opcode_range_check_bit_12 * (column11_row0 + 2))) * domain143 / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6053,58 +21170,52 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/opcodes/call/push_pc. - let value = - (cpu_decode_opcode_range_check_bit_12 - * (column8_row5 - (column8_row0 + cpu_decode_opcode_range_check_bit_2 + 1))) + let value = (cpu_decode_opcode_range_check_bit_12 + * (column8_row5 - (column8_row0 + cpu_decode_opcode_range_check_bit_2 + 1))) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/opcodes/call/off0. - let value = - (cpu_decode_opcode_range_check_bit_12 * (column10_row0 - global_values.half_offset_size)) + let value = (cpu_decode_opcode_range_check_bit_12 + * (column10_row0 - global_values.half_offset_size)) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/opcodes/call/off1. - let value = - (cpu_decode_opcode_range_check_bit_12 - * (column10_row8 - (global_values.half_offset_size + 1))) + let value = (cpu_decode_opcode_range_check_bit_12 + * (column10_row8 - (global_values.half_offset_size + 1))) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/opcodes/call/flags. - let value = - (cpu_decode_opcode_range_check_bit_12 - * (cpu_decode_opcode_range_check_bit_12 - + cpu_decode_opcode_range_check_bit_12 - + 1 - + 1 - - (cpu_decode_opcode_range_check_bit_0 + cpu_decode_opcode_range_check_bit_1 + 4))) + let value = (cpu_decode_opcode_range_check_bit_12 + * (cpu_decode_opcode_range_check_bit_12 + + cpu_decode_opcode_range_check_bit_12 + + 1 + + 1 + - (cpu_decode_opcode_range_check_bit_0 + cpu_decode_opcode_range_check_bit_1 + 4))) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/opcodes/ret/off0. - let value = - (cpu_decode_opcode_range_check_bit_13 - * (column10_row0 + 2 - global_values.half_offset_size)) + let value = (cpu_decode_opcode_range_check_bit_13 + * (column10_row0 + 2 - global_values.half_offset_size)) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/opcodes/ret/off2. - let value = - (cpu_decode_opcode_range_check_bit_13 - * (column10_row4 + 1 - global_values.half_offset_size)) + let value = (cpu_decode_opcode_range_check_bit_13 + * (column10_row4 + 1 - global_values.half_offset_size)) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: cpu/opcodes/ret/flags. - let value = - (cpu_decode_opcode_range_check_bit_13 - * (cpu_decode_opcode_range_check_bit_7 - + cpu_decode_opcode_range_check_bit_0 - + cpu_decode_opcode_range_check_bit_3 - + cpu_decode_flag_res_op1_0 - - 4)) + let value = (cpu_decode_opcode_range_check_bit_13 + * (cpu_decode_opcode_range_check_bit_7 + + cpu_decode_opcode_range_check_bit_0 + + cpu_decode_opcode_range_check_bit_3 + + cpu_decode_flag_res_op1_0 + - 4)) / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6137,33 +21248,32 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: memory/multi_column_perm/perm/init0. - let value = - ((global_values.memory_multi_column_perm_perm_interaction_elm - - (column9_row0 - + global_values.memory_multi_column_perm_hash_interaction_elm0 * column9_row1)) - * column14_inter1_row0 - + column8_row0 - + global_values.memory_multi_column_perm_hash_interaction_elm0 * column8_row1 - - global_values.memory_multi_column_perm_perm_interaction_elm) + let value = ((global_values.memory_multi_column_perm_perm_interaction_elm + - (column9_row0 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column9_row1)) + * column14_inter1_row0 + + column8_row0 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column8_row1 + - global_values.memory_multi_column_perm_perm_interaction_elm) / domain144; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: memory/multi_column_perm/perm/step0. - let value = - ((global_values.memory_multi_column_perm_perm_interaction_elm - - (column9_row2 - + global_values.memory_multi_column_perm_hash_interaction_elm0 * column9_row3)) - * column14_inter1_row2 - - (global_values.memory_multi_column_perm_perm_interaction_elm - - (column8_row2 - + global_values.memory_multi_column_perm_hash_interaction_elm0 * column8_row3)) - * column14_inter1_row0) + let value = ((global_values.memory_multi_column_perm_perm_interaction_elm + - (column9_row2 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column9_row3)) + * column14_inter1_row2 + - (global_values.memory_multi_column_perm_perm_interaction_elm + - (column8_row2 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column8_row3)) + * column14_inter1_row0) * domain145 / domain1; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: memory/multi_column_perm/perm/last. - let value = (column14_inter1_row0 - global_values.memory_multi_column_perm_perm_public_memory_prod) + let value = (column14_inter1_row0 + - global_values.memory_multi_column_perm_perm_public_memory_prod) / domain145; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6190,18 +21300,17 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: range_check16/perm/init0. - let value = - ((global_values.range_check16_perm_interaction_elm - column10_row2) * column14_inter1_row1 - + column10_row0 - - global_values.range_check16_perm_interaction_elm) + let value = ((global_values.range_check16_perm_interaction_elm - column10_row2) + * column14_inter1_row1 + + column10_row0 + - global_values.range_check16_perm_interaction_elm) / domain144; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: range_check16/perm/step0. - let value = - ((global_values.range_check16_perm_interaction_elm - column10_row6) * column14_inter1_row5 - - (global_values.range_check16_perm_interaction_elm - column10_row4) - * column14_inter1_row1) + let value = ((global_values.range_check16_perm_interaction_elm - column10_row6) + * column14_inter1_row5 + - (global_values.range_check16_perm_interaction_elm - column10_row4) * column14_inter1_row1) * domain146 / domain2; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6226,20 +21335,18 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: diluted_check/permutation/init0. - let value = - ((global_values.diluted_check_permutation_interaction_elm - column2_row0) - * column13_inter1_row0 - + column1_row0 - - global_values.diluted_check_permutation_interaction_elm) + let value = ((global_values.diluted_check_permutation_interaction_elm - column2_row0) + * column13_inter1_row0 + + column1_row0 + - global_values.diluted_check_permutation_interaction_elm) / domain144; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: diluted_check/permutation/step0. - let value = - ((global_values.diluted_check_permutation_interaction_elm - column2_row1) - * column13_inter1_row1 - - (global_values.diluted_check_permutation_interaction_elm - column1_row1) - * column13_inter1_row0) + let value = ((global_values.diluted_check_permutation_interaction_elm - column2_row1) + * column13_inter1_row1 + - (global_values.diluted_check_permutation_interaction_elm - column1_row1) + * column13_inter1_row0) * domain147 / domain0; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6258,13 +21365,12 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: diluted_check/step. - let value = - (column12_inter1_row1 - - (column12_inter1_row0 - * (1 + global_values.diluted_check_interaction_z * (column2_row1 - column2_row0)) - + global_values.diluted_check_interaction_alpha - * (column2_row1 - column2_row0) - * (column2_row1 - column2_row0))) + let value = (column12_inter1_row1 + - (column12_inter1_row0 + * (1 + global_values.diluted_check_interaction_z * (column2_row1 - column2_row0)) + + global_values.diluted_check_interaction_alpha + * (column2_row1 - column2_row0) + * (column2_row1 - column2_row0))) * domain147 / domain0; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6278,15 +21384,15 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones0. - let value = - (column11_row71 - * (column5_row1 - - 3138550867693340381917894711603833208051177722232017256448 * column5_row192)) + let value = (column11_row71 + * (column5_row1 + - 3138550867693340381917894711603833208051177722232017256448 * column5_row192)) / domain8; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit192. - let value = (column11_row71 - column6_row255 * (column5_row192 - (column5_row193 + column5_row193))) + let value = (column11_row71 + - column6_row255 * (column5_row192 - (column5_row193 + column5_row193))) / domain8; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6295,17 +21401,15 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit196. - let value = - (column6_row255 - - (column5_row251 - (column5_row252 + column5_row252)) - * (column5_row196 - (column5_row197 + column5_row197))) + let value = (column6_row255 + - (column5_row251 - (column5_row252 + column5_row252)) + * (column5_row196 - (column5_row197 + column5_row197))) / domain8; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones196. - let value = - ((column5_row251 - (column5_row252 + column5_row252)) - * (column5_row197 - 18014398509481984 * column5_row251)) + let value = ((column5_row251 - (column5_row252 + column5_row252)) + * (column5_row197 - 18014398509481984 * column5_row251)) / domain8; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6324,26 +21428,24 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: pedersen/hash0/ec_subset_sum/add_points/slope. - let value = - (pedersen_hash0_ec_subset_sum_bit_0 * (column4_row0 - global_values.pedersen_points_y) - - column6_row0 * (column3_row0 - global_values.pedersen_points_x)) + let value = (pedersen_hash0_ec_subset_sum_bit_0 + * (column4_row0 - global_values.pedersen_points_y) + - column6_row0 * (column3_row0 - global_values.pedersen_points_x)) * domain9 / domain0; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: pedersen/hash0/ec_subset_sum/add_points/x. - let value = - (column6_row0 * column6_row0 - - pedersen_hash0_ec_subset_sum_bit_0 - * (column3_row0 + global_values.pedersen_points_x + column3_row1)) + let value = (column6_row0 * column6_row0 + - pedersen_hash0_ec_subset_sum_bit_0 + * (column3_row0 + global_values.pedersen_points_x + column3_row1)) * domain9 / domain0; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: pedersen/hash0/ec_subset_sum/add_points/y. - let value = - (pedersen_hash0_ec_subset_sum_bit_0 * (column4_row0 + column4_row1) - - column6_row0 * (column3_row0 - column3_row1)) + let value = (pedersen_hash0_ec_subset_sum_bit_0 * (column4_row0 + column4_row1) + - column6_row0 * (column3_row0 - column3_row1)) * domain9 / domain0; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6417,12 +21519,11 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/doubling_key/slope. - let value = - (ecdsa_signature0_doubling_key_x_squared - + ecdsa_signature0_doubling_key_x_squared - + ecdsa_signature0_doubling_key_x_squared - + global_values.ecdsa_sig_config.alpha - - (column11_row33 + column11_row33) * column11_row35) + let value = (ecdsa_signature0_doubling_key_x_squared + + ecdsa_signature0_doubling_key_x_squared + + ecdsa_signature0_doubling_key_x_squared + + global_values.ecdsa_sig_config.alpha + - (column11_row33 + column11_row33) * column11_row35) * domain27 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6434,15 +21535,16 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/doubling_key/y. - let value = (column11_row33 + column11_row97 - column11_row35 * (column11_row1 - column11_row65)) + let value = (column11_row33 + + column11_row97 + - column11_row35 * (column11_row1 - column11_row65)) * domain27 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/exponentiate_generator/booleanity_test. - let value = - (ecdsa_signature0_exponentiate_generator_bit_0 - * (ecdsa_signature0_exponentiate_generator_bit_0 - 1)) + let value = (ecdsa_signature0_exponentiate_generator_bit_0 + * (ecdsa_signature0_exponentiate_generator_bit_0 - 1)) * domain31 / domain7; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6456,27 +21558,24 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/exponentiate_generator/add_points/slope. - let value = - (ecdsa_signature0_exponentiate_generator_bit_0 - * (column11_row91 - global_values.ecdsa_generator_points_y) - - column11_row123 * (column11_row27 - global_values.ecdsa_generator_points_x)) + let value = (ecdsa_signature0_exponentiate_generator_bit_0 + * (column11_row91 - global_values.ecdsa_generator_points_y) + - column11_row123 * (column11_row27 - global_values.ecdsa_generator_points_x)) * domain31 / domain7; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x. - let value = - (column11_row123 * column11_row123 - - ecdsa_signature0_exponentiate_generator_bit_0 - * (column11_row27 + global_values.ecdsa_generator_points_x + column11_row155)) + let value = (column11_row123 * column11_row123 + - ecdsa_signature0_exponentiate_generator_bit_0 + * (column11_row27 + global_values.ecdsa_generator_points_x + column11_row155)) * domain31 / domain7; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/exponentiate_generator/add_points/y. - let value = - (ecdsa_signature0_exponentiate_generator_bit_0 * (column11_row91 + column11_row219) - - column11_row123 * (column11_row27 - column11_row155)) + let value = (ecdsa_signature0_exponentiate_generator_bit_0 * (column11_row91 + column11_row219) + - column11_row123 * (column11_row27 - column11_row155)) * domain31 / domain7; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6488,20 +21587,22 @@ fn eval_composition_polynomial_inner_part1( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/x. - let value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 * (column11_row155 - column11_row27)) + let value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 + * (column11_row155 - column11_row27)) * domain31 / domain7; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/y. - let value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 * (column11_row219 - column11_row91)) + let value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 + * (column11_row219 - column11_row91)) * domain31 / domain7; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/exponentiate_key/booleanity_test. - let value = - (ecdsa_signature0_exponentiate_key_bit_0 * (ecdsa_signature0_exponentiate_key_bit_0 - 1)) + let value = (ecdsa_signature0_exponentiate_key_bit_0 + * (ecdsa_signature0_exponentiate_key_bit_0 - 1)) * domain27 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -6509,6 +21610,7 @@ fn eval_composition_polynomial_inner_part1( total_sum } +#[cfg(feature: 'split')] fn eval_composition_polynomial_inner_part2( mut mask_values: Span, mut constraint_coefficients: Span, @@ -12452,7 +27554,7 @@ fn eval_composition_polynomial_inner_part2( let ec_op_ec_subset_sum_bit_neg_0 = 1 - ec_op_ec_subset_sum_bit_0; let total_sum = 0; - + // Constraint: ecdsa/signature0/exponentiate_key/bit_extraction_end. let value = (column11_row9) / domain28; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -12462,26 +27564,23 @@ fn eval_composition_polynomial_inner_part2( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/exponentiate_key/add_points/slope. - let value = - (ecdsa_signature0_exponentiate_key_bit_0 * (column11_row49 - column11_row33) - - column11_row19 * (column11_row17 - column11_row1)) + let value = (ecdsa_signature0_exponentiate_key_bit_0 * (column11_row49 - column11_row33) + - column11_row19 * (column11_row17 - column11_row1)) * domain27 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/exponentiate_key/add_points/x. - let value = - (column11_row19 * column11_row19 - - ecdsa_signature0_exponentiate_key_bit_0 - * (column11_row17 + column11_row1 + column11_row81)) + let value = (column11_row19 * column11_row19 + - ecdsa_signature0_exponentiate_key_bit_0 + * (column11_row17 + column11_row1 + column11_row81)) * domain27 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/exponentiate_key/add_points/y. - let value = - (ecdsa_signature0_exponentiate_key_bit_0 * (column11_row49 + column11_row113) - - column11_row19 * (column11_row17 - column11_row81)) + let value = (ecdsa_signature0_exponentiate_key_bit_0 * (column11_row49 + column11_row113) + - column11_row19 * (column11_row17 - column11_row81)) * domain27 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -12519,24 +27618,21 @@ fn eval_composition_polynomial_inner_part2( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/add_results/slope. - let value = - (column11_row32731 - - (column11_row16369 + column11_row32763 * (column11_row32667 - column11_row16337))) + let value = (column11_row32731 + - (column11_row16369 + column11_row32763 * (column11_row32667 - column11_row16337))) / domain33; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/add_results/x. - let value = - (column11_row32763 * column11_row32763 - - (column11_row32667 + column11_row16337 + column11_row16385)) + let value = (column11_row32763 * column11_row32763 + - (column11_row32667 + column11_row16337 + column11_row16385)) / domain33; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/add_results/y. - let value = - (column11_row32731 - + column11_row16417 - - column11_row32763 * (column11_row32667 - column11_row16385)) + let value = (column11_row32731 + + column11_row16417 + - column11_row32763 * (column11_row32667 - column11_row16385)) / domain33; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -12545,24 +27641,22 @@ fn eval_composition_polynomial_inner_part2( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/extract_r/slope. - let value = - (column11_row32753 - + global_values.ecdsa_sig_config.shift_point.y - - column11_row16331 - * (column11_row32721 - global_values.ecdsa_sig_config.shift_point.x)) + let value = (column11_row32753 + + global_values.ecdsa_sig_config.shift_point.y + - column11_row16331 * (column11_row32721 - global_values.ecdsa_sig_config.shift_point.x)) / domain33; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/extract_r/x. - let value = - (column11_row16331 * column11_row16331 - - (column11_row32721 + global_values.ecdsa_sig_config.shift_point.x + column11_row9)) + let value = (column11_row16331 * column11_row16331 + - (column11_row32721 + global_values.ecdsa_sig_config.shift_point.x + column11_row9)) / domain33; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/extract_r/x_diff_inv. - let value = - (column11_row32715 * (column11_row32721 - global_values.ecdsa_sig_config.shift_point.x) - 1) + let value = (column11_row32715 + * (column11_row32721 - global_values.ecdsa_sig_config.shift_point.x) + - 1) / domain33; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -12579,11 +27673,10 @@ fn eval_composition_polynomial_inner_part2( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ecdsa/signature0/q_on_curve/on_curve. - let value = - (column11_row33 * column11_row33 - - (column11_row1 * column11_row32747 - + global_values.ecdsa_sig_config.alpha * column11_row1 - + global_values.ecdsa_sig_config.beta)) + let value = (column11_row33 * column11_row33 + - (column11_row1 * column11_row32747 + + global_values.ecdsa_sig_config.alpha * column11_row1 + + global_values.ecdsa_sig_config.beta)) / domain33; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -12685,24 +27778,26 @@ fn eval_composition_polynomial_inner_part2( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ec_op/doubling_q/slope. - let value = - (ec_op_doubling_q_x_squared_0 - + ec_op_doubling_q_x_squared_0 - + ec_op_doubling_q_x_squared_0 - + global_values.ec_op_curve_config.alpha - - (column11_row25 + column11_row25) * column11_row57) + let value = (ec_op_doubling_q_x_squared_0 + + ec_op_doubling_q_x_squared_0 + + ec_op_doubling_q_x_squared_0 + + global_values.ec_op_curve_config.alpha + - (column11_row25 + column11_row25) * column11_row57) * domain27 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ec_op/doubling_q/x. - let value = (column11_row57 * column11_row57 - (column11_row41 + column11_row41 + column11_row105)) + let value = (column11_row57 * column11_row57 + - (column11_row41 + column11_row41 + column11_row105)) * domain27 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ec_op/doubling_q/y. - let value = (column11_row25 + column11_row89 - column11_row57 * (column11_row41 - column11_row105)) + let value = (column11_row25 + + column11_row89 + - column11_row57 * (column11_row41 - column11_row105)) * domain27 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -12716,21 +27811,20 @@ fn eval_composition_polynomial_inner_part2( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ec_op/ec_subset_sum/bit_unpacking/last_one_is_zero. - let value = (column11_row16371 * (column11_row21 - (column11_row85 + column11_row85))) / domain29; + let value = (column11_row16371 * (column11_row21 - (column11_row85 + column11_row85))) + / domain29; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones0. - let value = - (column11_row16371 - * (column11_row85 - - 3138550867693340381917894711603833208051177722232017256448 * column11_row12309)) + let value = (column11_row16371 + * (column11_row85 + - 3138550867693340381917894711603833208051177722232017256448 * column11_row12309)) / domain29; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ec_op/ec_subset_sum/bit_unpacking/cumulative_bit192. - let value = - (column11_row16371 - - column11_row16339 * (column11_row12309 - (column11_row12373 + column11_row12373))) + let value = (column11_row16371 + - column11_row16339 * (column11_row12309 - (column11_row12373 + column11_row12373))) / domain29; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -12739,17 +27833,15 @@ fn eval_composition_polynomial_inner_part2( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ec_op/ec_subset_sum/bit_unpacking/cumulative_bit196. - let value = - (column11_row16339 - - (column11_row16085 - (column11_row16149 + column11_row16149)) - * (column11_row12565 - (column11_row12629 + column11_row12629))) + let value = (column11_row16339 + - (column11_row16085 - (column11_row16149 + column11_row16149)) + * (column11_row12565 - (column11_row12629 + column11_row12629))) / domain29; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones196. - let value = - ((column11_row16085 - (column11_row16149 + column11_row16149)) - * (column11_row12629 - 18014398509481984 * column11_row16085)) + let value = ((column11_row16085 - (column11_row16149 + column11_row16149)) + * (column11_row12629 - 18014398509481984 * column11_row16085)) / domain29; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -12766,25 +27858,22 @@ fn eval_composition_polynomial_inner_part2( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ec_op/ec_subset_sum/add_points/slope. - let value = - (ec_op_ec_subset_sum_bit_0 * (column11_row37 - column11_row25) - - column11_row11 * (column11_row5 - column11_row41)) + let value = (ec_op_ec_subset_sum_bit_0 * (column11_row37 - column11_row25) + - column11_row11 * (column11_row5 - column11_row41)) * domain27 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ec_op/ec_subset_sum/add_points/x. - let value = - (column11_row11 * column11_row11 - - ec_op_ec_subset_sum_bit_0 * (column11_row5 + column11_row41 + column11_row69)) + let value = (column11_row11 * column11_row11 + - ec_op_ec_subset_sum_bit_0 * (column11_row5 + column11_row41 + column11_row69)) * domain27 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ec_op/ec_subset_sum/add_points/y. - let value = - (ec_op_ec_subset_sum_bit_0 * (column11_row37 + column11_row101) - - column11_row11 * (column11_row5 - column11_row69)) + let value = (ec_op_ec_subset_sum_bit_0 * (column11_row37 + column11_row101) + - column11_row11 * (column11_row5 - column11_row69)) * domain27 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -12794,7 +27883,9 @@ fn eval_composition_polynomial_inner_part2( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ec_op/ec_subset_sum/copy_point/x. - let value = (ec_op_ec_subset_sum_bit_neg_0 * (column11_row69 - column11_row5)) * domain27 / domain6; + let value = (ec_op_ec_subset_sum_bit_neg_0 * (column11_row69 - column11_row5)) + * domain27 + / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: ec_op/ec_subset_sum/copy_point/y. @@ -12938,6 +28029,7 @@ fn eval_composition_polynomial_inner_part2( total_sum } +#[cfg(feature: 'split')] fn eval_composition_polynomial_inner_part3( mut mask_values: Span, mut constraint_coefficients: Span, @@ -21293,7 +36385,7 @@ fn eval_composition_polynomial_inner_part3( - (column10_row8443 + column10_row8443); let total_sum = 0; - + // Constraint: keccak/keccak/parse_to_diluted/reshape_final10. let value = (column7_row327680 - column7_row16304) / domain36; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -21328,10 +36420,9 @@ fn eval_composition_polynomial_inner_part3( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations0. - let value = - (column7_row16160 - + keccak_keccak_parse_to_diluted_sum_words_over_instances0_0 * 16 - - keccak_keccak_parse_to_diluted_sum_words_over_instances0_2) + let value = (column7_row16160 + + keccak_keccak_parse_to_diluted_sum_words_over_instances0_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances0_2) / domain39; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -21341,10 +36432,9 @@ fn eval_composition_polynomial_inner_part3( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations1. - let value = - (column7_row16161 - + keccak_keccak_parse_to_diluted_sum_words_over_instances1_0 * 16 - - keccak_keccak_parse_to_diluted_sum_words_over_instances1_2) + let value = (column7_row16161 + + keccak_keccak_parse_to_diluted_sum_words_over_instances1_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances1_2) / domain39; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -21354,10 +36444,9 @@ fn eval_composition_polynomial_inner_part3( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations2. - let value = - (column7_row16162 - + keccak_keccak_parse_to_diluted_sum_words_over_instances2_0 * 16 - - keccak_keccak_parse_to_diluted_sum_words_over_instances2_2) + let value = (column7_row16162 + + keccak_keccak_parse_to_diluted_sum_words_over_instances2_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances2_2) / domain39; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -21367,10 +36456,9 @@ fn eval_composition_polynomial_inner_part3( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations3. - let value = - (column7_row16163 - + keccak_keccak_parse_to_diluted_sum_words_over_instances3_0 * 16 - - keccak_keccak_parse_to_diluted_sum_words_over_instances3_2) + let value = (column7_row16163 + + keccak_keccak_parse_to_diluted_sum_words_over_instances3_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances3_2) / domain39; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -21380,10 +36468,9 @@ fn eval_composition_polynomial_inner_part3( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations4. - let value = - (column7_row16164 - + keccak_keccak_parse_to_diluted_sum_words_over_instances4_0 * 16 - - keccak_keccak_parse_to_diluted_sum_words_over_instances4_2) + let value = (column7_row16164 + + keccak_keccak_parse_to_diluted_sum_words_over_instances4_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances4_2) / domain39; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -21393,10 +36480,9 @@ fn eval_composition_polynomial_inner_part3( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations5. - let value = - (column7_row16165 - + keccak_keccak_parse_to_diluted_sum_words_over_instances5_0 * 16 - - keccak_keccak_parse_to_diluted_sum_words_over_instances5_2) + let value = (column7_row16165 + + keccak_keccak_parse_to_diluted_sum_words_over_instances5_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances5_2) / domain39; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -21406,10 +36492,9 @@ fn eval_composition_polynomial_inner_part3( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations6. - let value = - (column7_row16166 - + keccak_keccak_parse_to_diluted_sum_words_over_instances6_0 * 16 - - keccak_keccak_parse_to_diluted_sum_words_over_instances6_2) + let value = (column7_row16166 + + keccak_keccak_parse_to_diluted_sum_words_over_instances6_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances6_2) / domain39; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -21419,25 +36504,23 @@ fn eval_composition_polynomial_inner_part3( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations7. - let value = - (column7_row16167 - + keccak_keccak_parse_to_diluted_sum_words_over_instances7_0 * 16 - - keccak_keccak_parse_to_diluted_sum_words_over_instances7_2) + let value = (column7_row16167 + + keccak_keccak_parse_to_diluted_sum_words_over_instances7_0 * 16 + - keccak_keccak_parse_to_diluted_sum_words_over_instances7_2) / domain39; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parse_to_diluted/extract_bit_first_invocation1. - let value = - (keccak_keccak_parse_to_diluted_partial_diluted1_0 - * keccak_keccak_parse_to_diluted_partial_diluted1_0 - - keccak_keccak_parse_to_diluted_partial_diluted1_0) + let value = (keccak_keccak_parse_to_diluted_partial_diluted1_0 + * keccak_keccak_parse_to_diluted_partial_diluted1_0 + - keccak_keccak_parse_to_diluted_partial_diluted1_0) / domain43; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parse_to_diluted/extract_bit_other_invocations1. - let value = - (keccak_keccak_parse_to_diluted_bit_other1_0 * keccak_keccak_parse_to_diluted_bit_other1_0 - - keccak_keccak_parse_to_diluted_bit_other1_0) + let value = (keccak_keccak_parse_to_diluted_bit_other1_0 + * keccak_keccak_parse_to_diluted_bit_other1_0 + - keccak_keccak_parse_to_diluted_bit_other1_0) / domain44; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -21450,18 +36533,17 @@ fn eval_composition_polynomial_inner_part3( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parse_to_diluted/extract_bit_first_invocation0. - let value = - (keccak_keccak_parse_to_diluted_partial_diluted0_0 - * keccak_keccak_parse_to_diluted_partial_diluted0_0 - - keccak_keccak_parse_to_diluted_partial_diluted0_0) + let value = (keccak_keccak_parse_to_diluted_partial_diluted0_0 + * keccak_keccak_parse_to_diluted_partial_diluted0_0 + - keccak_keccak_parse_to_diluted_partial_diluted0_0) * domain49 / domain11; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parse_to_diluted/extract_bit_other_invocations0. - let value = - (keccak_keccak_parse_to_diluted_bit_other0_0 * keccak_keccak_parse_to_diluted_bit_other0_0 - - keccak_keccak_parse_to_diluted_bit_other0_0) + let value = (keccak_keccak_parse_to_diluted_bit_other0_0 + * keccak_keccak_parse_to_diluted_bit_other0_0 + - keccak_keccak_parse_to_diluted_bit_other0_0) * domain52 / domain3; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -21479,41 +36561,39 @@ fn eval_composition_polynomial_inner_part3( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parity0. - let value = - (column1_row4 - + column1_row1284 - + column1_row2564 - + column1_row3844 - + column1_row5124 - - (column1_row6404 + column1_row6598 + column1_row6598 + column1_row6978 * 4)) + let value = (column1_row4 + + column1_row1284 + + column1_row2564 + + column1_row3844 + + column1_row5124 + - (column1_row6404 + column1_row6598 + column1_row6598 + column1_row6978 * 4)) / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parity1. - let value = - (column1_row260 - + column1_row1540 - + column1_row2820 - + column1_row4100 - + column1_row5380 - - (column1_row6402 + column1_row6788 + column1_row6788 + column1_row6982 * 4)) + let value = (column1_row260 + + column1_row1540 + + column1_row2820 + + column1_row4100 + + column1_row5380 + - (column1_row6402 + column1_row6788 + column1_row6788 + column1_row6982 * 4)) / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parity2. - let value = - (column1_row516 - + column1_row1796 - + column1_row3076 - + column1_row4356 - + column1_row5636 - - (column1_row6406 + column1_row6786 + column1_row6786 + column1_row7172 * 4)) + let value = (column1_row516 + + column1_row1796 + + column1_row3076 + + column1_row4356 + + column1_row5636 + - (column1_row6406 + column1_row6786 + column1_row6786 + column1_row7172 * 4)) / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; total_sum } +#[cfg(feature: 'split')] fn eval_composition_polynomial_inner_part4( mut mask_values: Span, mut constraint_coefficients: Span, @@ -28339,26 +43419,24 @@ fn eval_composition_polynomial_inner_part4( let keccak_keccak_sum_parities3_9216 = column1_row80134 + column10_row75783; let total_sum = 0; - + // Constraint: keccak/keccak/parity3. - let value = - (column1_row772 - + column1_row2052 - + column1_row3332 - + column1_row4612 - + column1_row5892 - - (column1_row6596 + column1_row6790 + column1_row6790 + column1_row7170 * 4)) + let value = (column1_row772 + + column1_row2052 + + column1_row3332 + + column1_row4612 + + column1_row5892 + - (column1_row6596 + column1_row6790 + column1_row6790 + column1_row7170 * 4)) / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/parity4. - let value = - (column1_row1028 - + column1_row2308 - + column1_row3588 - + column1_row4868 - + column1_row6148 - - (column1_row6594 + column1_row6980 + column1_row6980 + column1_row7174 * 4)) + let value = (column1_row1028 + + column1_row2308 + + column1_row3588 + + column1_row4868 + + column1_row6148 + - (column1_row6594 + column1_row6980 + column1_row6980 + column1_row7174 * 4)) / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -28403,161 +43481,142 @@ fn eval_composition_polynomial_inner_part4( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i0_j0. - let value = - (keccak_keccak_sum_parities0_0 - + column1_row4 - - (column1_row1 + column1_row7364 + column1_row7364)) + let value = (keccak_keccak_sum_parities0_0 + + column1_row4 + - (column1_row1 + column1_row7364 + column1_row7364)) / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i0_j1/n0. - let value = - (keccak_keccak_sum_parities1_0 - + column1_row260 - - (column1_row10753 + column1_row15942 + column1_row15942)) + let value = (keccak_keccak_sum_parities1_0 + + column1_row260 + - (column1_row10753 + column1_row15942 + column1_row15942)) * domain55 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i0_j1/n1. - let value = - (keccak_keccak_sum_parities1_64512 - + column1_row516356 - - (column1_row2561 + column1_row7750 + column1_row7750)) + let value = (keccak_keccak_sum_parities1_64512 + + column1_row516356 + - (column1_row2561 + column1_row7750 + column1_row7750)) / domain38; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i0_j2/n0. - let value = - (keccak_keccak_sum_parities2_0 - + column1_row516 - - (column1_row513025 + column1_row515841 + column1_row515841)) + let value = (keccak_keccak_sum_parities2_0 + + column1_row516 + - (column1_row513025 + column1_row515841 + column1_row515841)) / domain57; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i0_j2/n1. - let value = - (keccak_keccak_sum_parities2_2048 - + column1_row16900 - - (column1_row5121 + column1_row7937 + column1_row7937)) + let value = (keccak_keccak_sum_parities2_2048 + + column1_row16900 + - (column1_row5121 + column1_row7937 + column1_row7937)) * domain59 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i0_j3/n0. - let value = - (keccak_keccak_sum_parities3_0 - + column1_row772 - - (column1_row230657 + column1_row236930 + column1_row236930)) + let value = (keccak_keccak_sum_parities3_0 + + column1_row772 + - (column1_row230657 + column1_row236930 + column1_row236930)) * domain85 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i0_j3/n1. - let value = - (keccak_keccak_sum_parities3_36864 - + column1_row295684 - - (column1_row1281 + column1_row7554 + column1_row7554)) + let value = (keccak_keccak_sum_parities3_36864 + + column1_row295684 + - (column1_row1281 + column1_row7554 + column1_row7554)) / domain117; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i0_j4/n0. - let value = - (keccak_keccak_sum_parities4_0 - + column1_row1028 - - (column1_row225025 + column1_row228161 + column1_row228161)) + let value = (keccak_keccak_sum_parities4_0 + + column1_row1028 + - (column1_row225025 + column1_row228161 + column1_row228161)) * domain84 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i0_j4/n1. - let value = - (keccak_keccak_sum_parities4_37888 - + column1_row304132 - - (column1_row3841 + column1_row6977 + column1_row6977)) + let value = (keccak_keccak_sum_parities4_37888 + + column1_row304132 + - (column1_row3841 + column1_row6977 + column1_row6977)) / domain116; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i1_j0/n0. - let value = - (keccak_keccak_sum_parities0_0 - + column1_row1284 - - (column1_row299009 + column1_row302081 + column1_row302081)) + let value = (keccak_keccak_sum_parities0_0 + + column1_row1284 + - (column1_row299009 + column1_row302081 + column1_row302081)) / domain117; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i1_j0/n1. - let value = - (keccak_keccak_sum_parities0_28672 - + column1_row230660 - - (column1_row4097 + column1_row7169 + column1_row7169)) + let value = (keccak_keccak_sum_parities0_28672 + + column1_row230660 + - (column1_row4097 + column1_row7169 + column1_row7169)) * domain85 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i1_j1/n0. - let value = - (keccak_keccak_sum_parities1_0 - + column1_row1540 - - (column1_row360705 + column1_row367810 + column1_row367810)) + let value = (keccak_keccak_sum_parities1_0 + + column1_row1540 + - (column1_row360705 + column1_row367810 + column1_row367810)) / domain110; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i1_j1/n1. - let value = - (keccak_keccak_sum_parities1_20480 - + column1_row165380 - - (column1_row257 + column1_row7362 + column1_row7362)) + let value = (keccak_keccak_sum_parities1_20480 + + column1_row165380 + - (column1_row257 + column1_row7362 + column1_row7362)) * domain78 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i1_j2/n0. - let value = - (keccak_keccak_sum_parities2_0 - + column1_row1796 - - (column1_row51969 + column1_row55937 + column1_row55937)) + let value = (keccak_keccak_sum_parities2_0 + + column1_row1796 + - (column1_row51969 + column1_row55937 + column1_row55937)) * domain63 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i1_j2/n1. - let value = - (keccak_keccak_sum_parities2_59392 - + column1_row476932 - - (column1_row2817 + column1_row6785 + column1_row6785)) + let value = (keccak_keccak_sum_parities2_59392 + + column1_row476932 + - (column1_row2817 + column1_row6785 + column1_row6785)) / domain91; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n0. - let value = - (keccak_keccak_sum_parities3_0 - + column1_row2052 - - (column1_row455937 + column1_row450753 + column1_row450753)) + let value = (keccak_keccak_sum_parities3_0 + + column1_row2052 + - (column1_row455937 + column1_row450753 + column1_row450753)) / domain120; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n1. - let value = - (keccak_keccak_sum_parities3_8 - + column1_row2116 - - (column1_row456001 + column1_row451009 + column1_row451009)) + let value = (keccak_keccak_sum_parities3_8 + + column1_row2116 + - (column1_row456001 + column1_row451009 + column1_row451009)) / domain120; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n2. - let value = - (keccak_keccak_sum_parities3_16 - + column1_row2180 - - (column1_row456065 + column1_row451265 + column1_row451265)) + let value = (keccak_keccak_sum_parities3_16 + + column1_row2180 + - (column1_row456065 + column1_row451265 + column1_row451265)) / domain120; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n3. - let value = - (keccak_keccak_sum_parities3_9216 - + column1_row75780 - - (column1_row5377 + column1_row193 + column1_row193)) + let value = (keccak_keccak_sum_parities3_9216 + + column1_row75780 + - (column1_row5377 + column1_row193 + column1_row193)) * domain123 / domain23; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -28565,6 +43624,7 @@ fn eval_composition_polynomial_inner_part4( total_sum } +#[cfg(feature: 'split')] fn eval_composition_polynomial_inner_part5( mut mask_values: Span, mut constraint_coefficients: Span, @@ -35045,223 +50105,199 @@ fn eval_composition_polynomial_inner_part5( let keccak_keccak_sum_parities0_23568 = column1_row195138 + column10_row196547; let total_sum = 0; - + // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n4. - let value = - (keccak_keccak_sum_parities3_9224 - + column1_row75844 - - (column1_row5441 + column1_row449 + column1_row449)) + let value = (keccak_keccak_sum_parities3_9224 + + column1_row75844 + - (column1_row5441 + column1_row449 + column1_row449)) * domain123 / domain23; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n5. - let value = - (keccak_keccak_sum_parities3_9232 - + column1_row75908 - - (column1_row5505 + column1_row705 + column1_row705)) + let value = (keccak_keccak_sum_parities3_9232 + + column1_row75908 + - (column1_row5505 + column1_row705 + column1_row705)) * domain123 / domain23; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i1_j4/n0. - let value = - (keccak_keccak_sum_parities4_0 - + column1_row2308 - - (column1_row165377 + column1_row171398 + column1_row171398)) + let value = (keccak_keccak_sum_parities4_0 + + column1_row2308 + - (column1_row165377 + column1_row171398 + column1_row171398)) * domain78 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i1_j4/n1. - let value = - (keccak_keccak_sum_parities4_45056 - + column1_row362756 - - (column1_row1537 + column1_row7558 + column1_row7558)) + let value = (keccak_keccak_sum_parities4_45056 + + column1_row362756 + - (column1_row1537 + column1_row7558 + column1_row7558)) / domain110; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j0/n0. - let value = - (keccak_keccak_sum_parities0_0 - + column1_row2564 - - (column1_row26369 + column1_row31169 + column1_row31169)) + let value = (keccak_keccak_sum_parities0_0 + + column1_row2564 + - (column1_row26369 + column1_row31169 + column1_row31169)) * domain124 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j0/n1. - let value = - (keccak_keccak_sum_parities0_62464 - + column1_row502276 - - (column1_row1793 + column1_row6593 + column1_row6593)) + let value = (keccak_keccak_sum_parities0_62464 + + column1_row502276 + - (column1_row1793 + column1_row6593 + column1_row6593)) / domain125; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j1/n0. - let value = - (keccak_keccak_sum_parities1_0 - + column1_row2820 - - (column1_row86273 + column1_row89281 + column1_row89281)) + let value = (keccak_keccak_sum_parities1_0 + + column1_row2820 + - (column1_row86273 + column1_row89281 + column1_row89281)) * domain68 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j1/n1. - let value = - (keccak_keccak_sum_parities1_55296 - + column1_row445188 - - (column1_row4353 + column1_row7361 + column1_row7361)) + let value = (keccak_keccak_sum_parities1_55296 + + column1_row445188 + - (column1_row4353 + column1_row7361 + column1_row7361)) / domain98; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j2/n0. - let value = - (keccak_keccak_sum_parities2_0 - + column1_row3076 - - (column1_row352769 + column1_row359622 + column1_row359622)) + let value = (keccak_keccak_sum_parities2_0 + + column1_row3076 + - (column1_row352769 + column1_row359622 + column1_row359622)) / domain112; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j2/n1. - let value = - (keccak_keccak_sum_parities2_21504 - + column1_row175108 - - (column1_row513 + column1_row7366 + column1_row7366)) + let value = (keccak_keccak_sum_parities2_21504 + + column1_row175108 + - (column1_row513 + column1_row7366 + column1_row7366)) * domain80 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j3/n0. - let value = - (keccak_keccak_sum_parities3_0 - + column1_row3332 - - (column1_row207873 + column1_row212740 + column1_row212740)) + let value = (keccak_keccak_sum_parities3_0 + + column1_row3332 + - (column1_row207873 + column1_row212740 + column1_row212740)) * domain83 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j3/n1. - let value = - (keccak_keccak_sum_parities3_39936 - + column1_row322820 - - (column1_row3073 + column1_row7940 + column1_row7940)) + let value = (keccak_keccak_sum_parities3_39936 + + column1_row322820 + - (column1_row3073 + column1_row7940 + column1_row7940)) / domain115; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n0. - let value = - (keccak_keccak_sum_parities4_0 - + column1_row3588 - - (column1_row325121 + column1_row320449 + column1_row320449)) + let value = (keccak_keccak_sum_parities4_0 + + column1_row3588 + - (column1_row325121 + column1_row320449 + column1_row320449)) / domain127; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n1. - let value = - (keccak_keccak_sum_parities4_8 - + column1_row3652 - - (column1_row325185 + column1_row320705 + column1_row320705)) + let value = (keccak_keccak_sum_parities4_8 + + column1_row3652 + - (column1_row325185 + column1_row320705 + column1_row320705)) / domain127; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n2. - let value = - (keccak_keccak_sum_parities4_16 - + column1_row3716 - - (column1_row325249 + column1_row320961 + column1_row320961)) + let value = (keccak_keccak_sum_parities4_16 + + column1_row3716 + - (column1_row325249 + column1_row320961 + column1_row320961)) / domain127; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n3. - let value = - (keccak_keccak_sum_parities4_25600 - + column1_row208388 - - (column1_row5633 + column1_row961 + column1_row961)) + let value = (keccak_keccak_sum_parities4_25600 + + column1_row208388 + - (column1_row5633 + column1_row961 + column1_row961)) * domain129 / domain23; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n4. - let value = - (keccak_keccak_sum_parities4_25608 - + column1_row208452 - - (column1_row5697 + column1_row1217 + column1_row1217)) + let value = (keccak_keccak_sum_parities4_25608 + + column1_row208452 + - (column1_row5697 + column1_row1217 + column1_row1217)) * domain129 / domain23; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n5. - let value = - (keccak_keccak_sum_parities4_25616 - + column1_row208516 - - (column1_row5761 + column1_row1473 + column1_row1473)) + let value = (keccak_keccak_sum_parities4_25616 + + column1_row208516 + - (column1_row5761 + column1_row1473 + column1_row1473)) * domain129 / domain23; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n0. - let value = - (keccak_keccak_sum_parities0_0 - + column1_row3844 - - (column1_row341761 + column1_row337601 + column1_row337601)) + let value = (keccak_keccak_sum_parities0_0 + + column1_row3844 + - (column1_row341761 + column1_row337601 + column1_row337601)) / domain130; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n1. - let value = - (keccak_keccak_sum_parities0_8 - + column1_row3908 - - (column1_row341825 + column1_row337857 + column1_row337857)) + let value = (keccak_keccak_sum_parities0_8 + + column1_row3908 + - (column1_row341825 + column1_row337857 + column1_row337857)) / domain130; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n2. - let value = - (keccak_keccak_sum_parities0_16 - + column1_row3972 - - (column1_row341889 + column1_row338113 + column1_row338113)) + let value = (keccak_keccak_sum_parities0_16 + + column1_row3972 + - (column1_row341889 + column1_row338113 + column1_row338113)) / domain130; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n3. - let value = - (keccak_keccak_sum_parities0_23552 - + column1_row192260 - - (column1_row5889 + column1_row1729 + column1_row1729)) + let value = (keccak_keccak_sum_parities0_23552 + + column1_row192260 + - (column1_row5889 + column1_row1729 + column1_row1729)) * domain131 / domain23; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n4. - let value = - (keccak_keccak_sum_parities0_23560 - + column1_row192324 - - (column1_row5953 + column1_row1985 + column1_row1985)) + let value = (keccak_keccak_sum_parities0_23560 + + column1_row192324 + - (column1_row5953 + column1_row1985 + column1_row1985)) * domain131 / domain23; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n5. - let value = - (keccak_keccak_sum_parities0_23568 - + column1_row192388 - - (column1_row6017 + column1_row2241 + column1_row2241)) + let value = (keccak_keccak_sum_parities0_23568 + + column1_row192388 + - (column1_row6017 + column1_row2241 + column1_row2241)) * domain131 / domain23; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i3_j1/n0. - let value = - (keccak_keccak_sum_parities1_0 - + column1_row4100 - - (column1_row370689 + column1_row376388 + column1_row376388)) + let value = (keccak_keccak_sum_parities1_0 + + column1_row4100 + - (column1_row370689 + column1_row376388 + column1_row376388)) / domain132; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; total_sum } +#[cfg(feature: 'split')] fn eval_composition_polynomial_inner_part6( mut mask_values: Span, mut constraint_coefficients: Span, @@ -41495,233 +56531,209 @@ fn eval_composition_polynomial_inner_part6( let keccak_keccak_after_theta_rho_pi_xor_one_7200 = 1229782938247303441 - column1_row57601; let total_sum = 0; - + // Constraint: keccak/keccak/theta_rho_pi_i3_j1/n1. - let value = - (keccak_keccak_sum_parities1_19456 - + column1_row159748 - - (column1_row2049 + column1_row7748 + column1_row7748)) + let value = (keccak_keccak_sum_parities1_19456 + + column1_row159748 + - (column1_row2049 + column1_row7748 + column1_row7748)) * domain133 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i3_j2/n0. - let value = - (keccak_keccak_sum_parities2_0 - + column1_row4356 - - (column1_row127489 + column1_row130433 + column1_row130433)) + let value = (keccak_keccak_sum_parities2_0 + + column1_row4356 + - (column1_row127489 + column1_row130433 + column1_row130433)) * domain134 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i3_j2/n1. - let value = - (keccak_keccak_sum_parities2_50176 - + column1_row405764 - - (column1_row4609 + column1_row7553 + column1_row7553)) + let value = (keccak_keccak_sum_parities2_50176 + + column1_row405764 + - (column1_row4609 + column1_row7553 + column1_row7553)) / domain135; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i3_j3/n0. - let value = - (keccak_keccak_sum_parities3_0 - + column1_row4612 - - (column1_row172801 + column1_row178433 + column1_row178433)) + let value = (keccak_keccak_sum_parities3_0 + + column1_row4612 + - (column1_row172801 + column1_row178433 + column1_row178433)) * domain80 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i3_j3/n1. - let value = - (keccak_keccak_sum_parities3_44032 - + column1_row356868 - - (column1_row769 + column1_row6401 + column1_row6401)) + let value = (keccak_keccak_sum_parities3_44032 + + column1_row356868 + - (column1_row769 + column1_row6401 + column1_row6401)) / domain112; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i3_j4/n0. - let value = - (keccak_keccak_sum_parities4_0 - + column1_row4868 - - (column1_row68865 + column1_row73474 + column1_row73474)) + let value = (keccak_keccak_sum_parities4_0 + + column1_row4868 + - (column1_row68865 + column1_row73474 + column1_row73474)) * domain136 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i3_j4/n1. - let value = - (keccak_keccak_sum_parities4_57344 - + column1_row463620 - - (column1_row3329 + column1_row7938 + column1_row7938)) + let value = (keccak_keccak_sum_parities4_57344 + + column1_row463620 + - (column1_row3329 + column1_row7938 + column1_row7938)) / domain137; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j0/n0. - let value = - (keccak_keccak_sum_parities0_0 - + column1_row5124 - - (column1_row151041 + column1_row155398 + column1_row155398)) + let value = (keccak_keccak_sum_parities0_0 + + column1_row5124 + - (column1_row151041 + column1_row155398 + column1_row155398)) * domain138 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j0/n1. - let value = - (keccak_keccak_sum_parities0_47104 - + column1_row381956 - - (column1_row3585 + column1_row7942 + column1_row7942)) + let value = (keccak_keccak_sum_parities0_47104 + + column1_row381956 + - (column1_row3585 + column1_row7942 + column1_row7942)) / domain139; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n0. - let value = - (keccak_keccak_sum_parities1_0 - + column1_row5380 - - (column1_row22529 + column1_row18881 + column1_row18881)) + let value = (keccak_keccak_sum_parities1_0 + + column1_row5380 + - (column1_row22529 + column1_row18881 + column1_row18881)) * domain121 / domain23; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n1. - let value = - (keccak_keccak_sum_parities1_8 - + column1_row5444 - - (column1_row22593 + column1_row19137 + column1_row19137)) + let value = (keccak_keccak_sum_parities1_8 + + column1_row5444 + - (column1_row22593 + column1_row19137 + column1_row19137)) * domain121 / domain23; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n2. - let value = - (keccak_keccak_sum_parities1_16 - + column1_row5508 - - (column1_row22657 + column1_row19393 + column1_row19393)) + let value = (keccak_keccak_sum_parities1_16 + + column1_row5508 + - (column1_row22657 + column1_row19393 + column1_row19393)) * domain121 / domain23; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n3. - let value = - (keccak_keccak_sum_parities1_63488 - + column1_row513284 - - (column1_row6145 + column1_row2497 + column1_row2497)) + let value = (keccak_keccak_sum_parities1_63488 + + column1_row513284 + - (column1_row6145 + column1_row2497 + column1_row2497)) / domain118; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n4. - let value = - (keccak_keccak_sum_parities1_63496 - + column1_row513348 - - (column1_row6209 + column1_row2753 + column1_row2753)) + let value = (keccak_keccak_sum_parities1_63496 + + column1_row513348 + - (column1_row6209 + column1_row2753 + column1_row2753)) / domain118; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n5. - let value = - (keccak_keccak_sum_parities1_63504 - + column1_row513412 - - (column1_row6273 + column1_row3009 + column1_row3009)) + let value = (keccak_keccak_sum_parities1_63504 + + column1_row513412 + - (column1_row6273 + column1_row3009 + column1_row3009)) / domain118; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j2/n0. - let value = - (keccak_keccak_sum_parities2_0 - + column1_row5636 - - (column1_row502017 + column1_row507458 + column1_row507458)) + let value = (keccak_keccak_sum_parities2_0 + + column1_row5636 + - (column1_row502017 + column1_row507458 + column1_row507458)) / domain125; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j2/n1. - let value = - (keccak_keccak_sum_parities2_3072 - + column1_row30212 - - (column1_row2305 + column1_row7746 + column1_row7746)) + let value = (keccak_keccak_sum_parities2_3072 + + column1_row30212 + - (column1_row2305 + column1_row7746 + column1_row7746)) * domain124 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j3/n0. - let value = - (keccak_keccak_sum_parities3_0 - + column1_row5892 - - (column1_row463617 + column1_row466497 + column1_row466497)) + let value = (keccak_keccak_sum_parities3_0 + + column1_row5892 + - (column1_row463617 + column1_row466497 + column1_row466497)) / domain137; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j3/n1. - let value = - (keccak_keccak_sum_parities3_8192 - + column1_row71428 - - (column1_row4865 + column1_row7745 + column1_row7745)) + let value = (keccak_keccak_sum_parities3_8192 + + column1_row71428 + - (column1_row4865 + column1_row7745 + column1_row7745)) * domain136 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j4/n0. - let value = - (keccak_keccak_sum_parities4_0 - + column1_row6148 - - (column1_row115713 + column1_row122244 + column1_row122244)) + let value = (keccak_keccak_sum_parities4_0 + + column1_row6148 + - (column1_row115713 + column1_row122244 + column1_row122244)) * domain140 / domain24; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/theta_rho_pi_i4_j4/n1. - let value = - (keccak_keccak_sum_parities4_51200 - + column1_row415748 - - (column1_row1025 + column1_row7556 + column1_row7556)) + let value = (keccak_keccak_sum_parities4_51200 + + column1_row415748 + - (column1_row1025 + column1_row7556 + column1_row7556)) / domain141; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/chi_iota0. - let value = - (global_values.keccak_keccak_keccak_round_key0 - + column1_row1 - + column1_row1 - + keccak_keccak_after_theta_rho_pi_xor_one_32 - + column1_row513 - - (column1_row2 + column1_row12 + column1_row12 + column1_row6 * 4)) + let value = (global_values.keccak_keccak_keccak_round_key0 + + column1_row1 + + column1_row1 + + keccak_keccak_after_theta_rho_pi_xor_one_32 + + column1_row513 + - (column1_row2 + column1_row12 + column1_row12 + column1_row6 * 4)) / domain38; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/chi_iota1. - let value = - (global_values.keccak_keccak_keccak_round_key1 - + column1_row8193 - + column1_row8193 - + keccak_keccak_after_theta_rho_pi_xor_one_1056 - + column1_row8705 - - (column1_row8194 + column1_row8204 + column1_row8204 + column1_row8198 * 4)) + let value = (global_values.keccak_keccak_keccak_round_key1 + + column1_row8193 + + column1_row8193 + + keccak_keccak_after_theta_rho_pi_xor_one_1056 + + column1_row8705 + - (column1_row8194 + column1_row8204 + column1_row8204 + column1_row8198 * 4)) / domain38; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/chi_iota3. - let value = - (global_values.keccak_keccak_keccak_round_key3 - + column1_row24577 - + column1_row24577 - + keccak_keccak_after_theta_rho_pi_xor_one_3104 - + column1_row25089 - - (column1_row24578 + column1_row24588 + column1_row24588 + column1_row24582 * 4)) + let value = (global_values.keccak_keccak_keccak_round_key3 + + column1_row24577 + + column1_row24577 + + keccak_keccak_after_theta_rho_pi_xor_one_3104 + + column1_row25089 + - (column1_row24578 + column1_row24588 + column1_row24588 + column1_row24582 * 4)) / domain38; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/chi_iota7. - let value = - (global_values.keccak_keccak_keccak_round_key7 - + column1_row57345 - + column1_row57345 - + keccak_keccak_after_theta_rho_pi_xor_one_7200 - + column1_row57857 - - (column1_row57346 + column1_row57356 + column1_row57356 + column1_row57350 * 4)) + let value = (global_values.keccak_keccak_keccak_round_key7 + + column1_row57345 + + column1_row57345 + + keccak_keccak_after_theta_rho_pi_xor_one_7200 + + column1_row57857 + - (column1_row57346 + column1_row57356 + column1_row57356 + column1_row57350 * 4)) / domain38; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; total_sum } +#[cfg(feature: 'split')] fn eval_composition_polynomial_inner_part7( mut mask_values: Span, mut constraint_coefficients: Span, @@ -46781,66 +61793,60 @@ fn eval_composition_polynomial_inner_part7( let total_sum = 0; // Constraint: keccak/keccak/chi_iota15. - let value = - (global_values.keccak_keccak_keccak_round_key15 - + column1_row122881 - + column1_row122881 - + keccak_keccak_after_theta_rho_pi_xor_one_15392 - + column1_row123393 - - (column1_row122882 + column1_row122892 + column1_row122892 + column1_row122886 * 4)) + let value = (global_values.keccak_keccak_keccak_round_key15 + + column1_row122881 + + column1_row122881 + + keccak_keccak_after_theta_rho_pi_xor_one_15392 + + column1_row123393 + - (column1_row122882 + column1_row122892 + column1_row122892 + column1_row122886 * 4)) / domain38; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/chi_iota31. - let value = - (global_values.keccak_keccak_keccak_round_key31 - + column1_row253953 - + column1_row253953 - + keccak_keccak_after_theta_rho_pi_xor_one_31776 - + column1_row254465 - - (column1_row253954 + column1_row253964 + column1_row253964 + column1_row253958 * 4)) + let value = (global_values.keccak_keccak_keccak_round_key31 + + column1_row253953 + + column1_row253953 + + keccak_keccak_after_theta_rho_pi_xor_one_31776 + + column1_row254465 + - (column1_row253954 + column1_row253964 + column1_row253964 + column1_row253958 * 4)) / domain38; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/chi_iota63. - let value = - (global_values.keccak_keccak_keccak_round_key63 - + column1_row516097 - + column1_row516097 - + keccak_keccak_after_theta_rho_pi_xor_one_64544 - + column1_row516609 - - (column1_row516098 + column1_row516108 + column1_row516108 + column1_row516102 * 4)) + let value = (global_values.keccak_keccak_keccak_round_key63 + + column1_row516097 + + column1_row516097 + + keccak_keccak_after_theta_rho_pi_xor_one_64544 + + column1_row516609 + - (column1_row516098 + column1_row516108 + column1_row516108 + column1_row516102 * 4)) / domain38; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/chi0. - let value = - (column1_row1 - + column1_row1 - + keccak_keccak_after_theta_rho_pi_xor_one_32 - + column1_row513 - - (column1_row2 + column1_row12 + column1_row12 + column1_row6 * 4)) + let value = (column1_row1 + + column1_row1 + + keccak_keccak_after_theta_rho_pi_xor_one_32 + + column1_row513 + - (column1_row2 + column1_row12 + column1_row12 + column1_row6 * 4)) * domain142 / domain26; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/chi1. - let value = - (column1_row1025 - + column1_row1025 - + keccak_keccak_after_theta_rho_pi_xor_one_0 - + column1_row257 - - (column1_row1026 + column1_row1036 + column1_row1036 + column1_row1030 * 4)) + let value = (column1_row1025 + + column1_row1025 + + keccak_keccak_after_theta_rho_pi_xor_one_0 + + column1_row257 + - (column1_row1026 + column1_row1036 + column1_row1036 + column1_row1030 * 4)) / domain25; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: keccak/keccak/chi2. - let value = - (column1_row769 - + column1_row769 - + keccak_keccak_after_theta_rho_pi_xor_one_128 - + column1_row1 - - (column1_row770 + column1_row780 + column1_row780 + column1_row774 * 4)) + let value = (column1_row769 + + column1_row769 + + keccak_keccak_after_theta_rho_pi_xor_one_128 + + column1_row1 + - (column1_row770 + column1_row780 + column1_row780 + column1_row774 * 4)) / domain25; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -46889,92 +61895,83 @@ fn eval_composition_polynomial_inner_part7( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/add_first_round_key0. - let value = - (column8_row39 - + 2950795762459345168613727575620414179244544320470208355568817838579231751791 - - column11_row53) + let value = (column8_row39 + + 2950795762459345168613727575620414179244544320470208355568817838579231751791 + - column11_row53) / domain14; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/add_first_round_key1. - let value = - (column8_row167 - + 1587446564224215276866294500450702039420286416111469274423465069420553242820 - - column11_row13) + let value = (column8_row167 + + 1587446564224215276866294500450702039420286416111469274423465069420553242820 + - column11_row13) / domain14; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/add_first_round_key2. - let value = - (column8_row103 - + 1645965921169490687904413452218868659025437693527479459426157555728339600137 - - column11_row45) + let value = (column8_row103 + + 1645965921169490687904413452218868659025437693527479459426157555728339600137 + - column11_row45) / domain14; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/full_round0. - let value = - (column11_row117 - - (poseidon_poseidon_full_rounds_state0_cubed_0 - + poseidon_poseidon_full_rounds_state0_cubed_0 - + poseidon_poseidon_full_rounds_state0_cubed_0 - + poseidon_poseidon_full_rounds_state1_cubed_0 - + poseidon_poseidon_full_rounds_state2_cubed_0 - + global_values.poseidon_poseidon_full_round_key0)) + let value = (column11_row117 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state1_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + global_values.poseidon_poseidon_full_round_key0)) * domain12 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/full_round1. - let value = - (column11_row77 - + poseidon_poseidon_full_rounds_state1_cubed_0 - - (poseidon_poseidon_full_rounds_state0_cubed_0 - + poseidon_poseidon_full_rounds_state2_cubed_0 - + global_values.poseidon_poseidon_full_round_key1)) + let value = (column11_row77 + + poseidon_poseidon_full_rounds_state1_cubed_0 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + global_values.poseidon_poseidon_full_round_key1)) * domain12 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/full_round2. - let value = - (column11_row109 - + poseidon_poseidon_full_rounds_state2_cubed_0 - + poseidon_poseidon_full_rounds_state2_cubed_0 - - (poseidon_poseidon_full_rounds_state0_cubed_0 - + poseidon_poseidon_full_rounds_state1_cubed_0 - + global_values.poseidon_poseidon_full_round_key2)) + let value = (column11_row109 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state1_cubed_0 + + global_values.poseidon_poseidon_full_round_key2)) * domain12 / domain6; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/last_full_round0. - let value = - (column8_row295 - - (poseidon_poseidon_full_rounds_state0_cubed_7 - + poseidon_poseidon_full_rounds_state0_cubed_7 - + poseidon_poseidon_full_rounds_state0_cubed_7 - + poseidon_poseidon_full_rounds_state1_cubed_7 - + poseidon_poseidon_full_rounds_state2_cubed_7)) + let value = (column8_row295 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state1_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7)) / domain14; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/last_full_round1. - let value = - (column8_row423 - + poseidon_poseidon_full_rounds_state1_cubed_7 - - (poseidon_poseidon_full_rounds_state0_cubed_7 - + poseidon_poseidon_full_rounds_state2_cubed_7)) + let value = (column8_row423 + + poseidon_poseidon_full_rounds_state1_cubed_7 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7)) / domain14; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/last_full_round2. - let value = - (column8_row359 - + poseidon_poseidon_full_rounds_state2_cubed_7 - + poseidon_poseidon_full_rounds_state2_cubed_7 - - (poseidon_poseidon_full_rounds_state0_cubed_7 - + poseidon_poseidon_full_rounds_state1_cubed_7)) + let value = (column8_row359 + + poseidon_poseidon_full_rounds_state2_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state1_cubed_7)) / domain14; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; @@ -46991,113 +61988,106 @@ fn eval_composition_polynomial_inner_part7( let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/margin_full_to_partial0. - let value = - (column10_row1 - + poseidon_poseidon_full_rounds_state2_cubed_3 - + poseidon_poseidon_full_rounds_state2_cubed_3 - - (poseidon_poseidon_full_rounds_state0_cubed_3 - + poseidon_poseidon_full_rounds_state1_cubed_3 - + 2121140748740143694053732746913428481442990369183417228688865837805149503386)) + let value = (column10_row1 + + poseidon_poseidon_full_rounds_state2_cubed_3 + + poseidon_poseidon_full_rounds_state2_cubed_3 + - (poseidon_poseidon_full_rounds_state0_cubed_3 + + poseidon_poseidon_full_rounds_state1_cubed_3 + + 2121140748740143694053732746913428481442990369183417228688865837805149503386)) / domain14; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/margin_full_to_partial1. - let value = - (column10_row9 - - (3618502788666131213697322783095070105623107215331596699973092056135872020477 - * poseidon_poseidon_full_rounds_state1_cubed_3 - + 10 * poseidon_poseidon_full_rounds_state2_cubed_3 - + 4 * column10_row1 - + 3618502788666131213697322783095070105623107215331596699973092056135872020479 - * poseidon_poseidon_partial_rounds_state0_cubed_0 - + 2006642341318481906727563724340978325665491359415674592697055778067937914672)) + let value = (column10_row9 + - (3618502788666131213697322783095070105623107215331596699973092056135872020477 + * poseidon_poseidon_full_rounds_state1_cubed_3 + + 10 * poseidon_poseidon_full_rounds_state2_cubed_3 + + 4 * column10_row1 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state0_cubed_0 + + 2006642341318481906727563724340978325665491359415674592697055778067937914672)) / domain14; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/margin_full_to_partial2. - let value = - (column10_row17 - - (8 * poseidon_poseidon_full_rounds_state2_cubed_3 - + 4 * column10_row1 - + 6 * poseidon_poseidon_partial_rounds_state0_cubed_0 - + column10_row9 - + column10_row9 - + 3618502788666131213697322783095070105623107215331596699973092056135872020479 - * poseidon_poseidon_partial_rounds_state0_cubed_1 - + 427751140904099001132521606468025610873158555767197326325930641757709538586)) + let value = (column10_row17 + - (8 * poseidon_poseidon_full_rounds_state2_cubed_3 + + 4 * column10_row1 + + 6 * poseidon_poseidon_partial_rounds_state0_cubed_0 + + column10_row9 + + column10_row9 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state0_cubed_1 + + 427751140904099001132521606468025610873158555767197326325930641757709538586)) / domain14; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/partial_round0. - let value = - (column10_row25 - - (8 * poseidon_poseidon_partial_rounds_state0_cubed_0 - + 4 * column10_row9 - + 6 * poseidon_poseidon_partial_rounds_state0_cubed_1 - + column10_row17 - + column10_row17 - + 3618502788666131213697322783095070105623107215331596699973092056135872020479 - * poseidon_poseidon_partial_rounds_state0_cubed_2 - + global_values.poseidon_poseidon_partial_round_key0)) + let value = (column10_row25 + - (8 * poseidon_poseidon_partial_rounds_state0_cubed_0 + + 4 * column10_row9 + + 6 * poseidon_poseidon_partial_rounds_state0_cubed_1 + + column10_row17 + + column10_row17 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state0_cubed_2 + + global_values.poseidon_poseidon_partial_round_key0)) * domain17 / domain3; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/partial_round1. - let value = - (column11_row54 - - (8 * poseidon_poseidon_partial_rounds_state1_cubed_0 - + 4 * column11_row22 - + 6 * poseidon_poseidon_partial_rounds_state1_cubed_1 - + column11_row38 - + column11_row38 - + 3618502788666131213697322783095070105623107215331596699973092056135872020479 - * poseidon_poseidon_partial_rounds_state1_cubed_2 - + global_values.poseidon_poseidon_partial_round_key1)) + let value = (column11_row54 + - (8 * poseidon_poseidon_partial_rounds_state1_cubed_0 + + 4 * column11_row22 + + 6 * poseidon_poseidon_partial_rounds_state1_cubed_1 + + column11_row38 + + column11_row38 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state1_cubed_2 + + global_values.poseidon_poseidon_partial_round_key1)) * domain18 / domain5; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/margin_partial_to_full0. - let value = - (column11_row309 - - (16 * poseidon_poseidon_partial_rounds_state1_cubed_19 - + 8 * column11_row326 - + 16 * poseidon_poseidon_partial_rounds_state1_cubed_20 - + 6 * column11_row342 - + poseidon_poseidon_partial_rounds_state1_cubed_21 - + 560279373700919169769089400651532183647886248799764942664266404650165812023)) + let value = (column11_row309 + - (16 * poseidon_poseidon_partial_rounds_state1_cubed_19 + + 8 * column11_row326 + + 16 * poseidon_poseidon_partial_rounds_state1_cubed_20 + + 6 * column11_row342 + + poseidon_poseidon_partial_rounds_state1_cubed_21 + + 560279373700919169769089400651532183647886248799764942664266404650165812023)) / domain14; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/margin_partial_to_full1. - let value = - (column11_row269 - - (4 * poseidon_poseidon_partial_rounds_state1_cubed_20 - + column11_row342 - + column11_row342 - + poseidon_poseidon_partial_rounds_state1_cubed_21 - + 1401754474293352309994371631695783042590401941592571735921592823982231996415)) + let value = (column11_row269 + - (4 * poseidon_poseidon_partial_rounds_state1_cubed_20 + + column11_row342 + + column11_row342 + + poseidon_poseidon_partial_rounds_state1_cubed_21 + + 1401754474293352309994371631695783042590401941592571735921592823982231996415)) / domain14; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; // Constraint: poseidon/poseidon/margin_partial_to_full2. - let value = - (column11_row301 - - (8 * poseidon_poseidon_partial_rounds_state1_cubed_19 - + 4 * column11_row326 - + 6 * poseidon_poseidon_partial_rounds_state1_cubed_20 - + column11_row342 - + column11_row342 - + 3618502788666131213697322783095070105623107215331596699973092056135872020479 - * poseidon_poseidon_partial_rounds_state1_cubed_21 - + 1246177936547655338400308396717835700699368047388302793172818304164989556526)) + let value = (column11_row301 + - (8 * poseidon_poseidon_partial_rounds_state1_cubed_19 + + 4 * column11_row326 + + 6 * poseidon_poseidon_partial_rounds_state1_cubed_20 + + column11_row342 + + column11_row342 + + 3618502788666131213697322783095070105623107215331596699973092056135872020479 + * poseidon_poseidon_partial_rounds_state1_cubed_21 + + 1246177936547655338400308396717835700699368047388302793172818304164989556526)) / domain14; let total_sum = total_sum + *constraint_coefficients.pop_front().unwrap() * value; total_sum } +#[cfg(feature: 'split')] fn eval_oods_polynomial_inner_part1( mut column_values: Span, mut oods_values: Span, @@ -48136,6 +63126,7 @@ fn eval_oods_polynomial_inner_part1( total_sum } +#[cfg(feature: 'split')] fn eval_oods_polynomial_inner_part2( mut column_values: Span, mut oods_values: Span, diff --git a/src/air/layouts/starknet_with_keccak/contract.cairo b/src/air/layouts/starknet_with_keccak/contract.cairo index e49dbbc45..3e5032108 100644 --- a/src/air/layouts/starknet_with_keccak/contract.cairo +++ b/src/air/layouts/starknet_with_keccak/contract.cairo @@ -1,8 +1,7 @@ use cairo_verifier::air::layouts::starknet_with_keccak::global_values::GlobalValues; - #[starknet::interface] -trait IStarknetWithKeccakLayoutContract1parts { +trait ILayoutCompositionContract { fn eval_composition_polynomial_inner( self: @ContractState, mask_values: Span, @@ -14,28 +13,7 @@ trait IStarknetWithKeccakLayoutContract1parts { } #[starknet::interface] -trait IStarknetWithKeccakLayoutContract1 { - fn eval_composition_polynomial_inner( - ref self: ContractState, - mask_values: Span, - constraint_coefficients: Span, - point: felt252, - trace_generator: felt252, - global_values: GlobalValues - ) -> felt252; - - fn register_evaluation( - ref self: ContractState, - mask_values: Span, - constraint_coefficients: Span, - point: felt252, - trace_generator: felt252, - global_values: GlobalValues - ); -} - -#[starknet::interface] -trait IStarknetWithKeccakLayoutContract2parts { +trait ILayoutOodsContract { fn eval_oods_polynomial_inner( self: @ContractState, column_values: Span, @@ -47,232 +25,114 @@ trait IStarknetWithKeccakLayoutContract2parts { ) -> felt252; } -#[starknet::interface] -trait IStarknetWithKeccakLayoutContract2 { - fn eval_oods_polynomial_inner( - ref self: ContractState, - column_values: Span, - oods_values: Span, - constraint_coefficients: Span, - point: felt252, - oods_point: felt252, - trace_generator: felt252, - ) -> felt252; - - fn register_evaluation( - ref self: ContractState, - column_values: Span, - oods_values: Span, - constraint_coefficients: Span, - point: felt252, - oods_point: felt252, - trace_generator: felt252, - ); -} - #[starknet::contract] -mod StarknetWithKeccakLayoutContract1 { - use super::{ - IStarknetWithKeccakLayoutContract1, - IStarknetWithKeccakLayoutContract1partsDispatcher, - IStarknetWithKeccakLayoutContract1partsDispatcherTrait, - }; - use cairo_verifier::air::layouts::starknet_with_keccak::global_values::GlobalValues; +mod LayoutCompositionContract { + use super::ILayoutCompositionContract; + use cairo_verifier::air::layouts::starknet_with_keccak::{global_values::GlobalValues,}; use starknet::ContractAddress; - use core::poseidon::{Poseidon, PoseidonImpl, HashStateImpl}; #[storage] struct Storage { - contracts: LegacyMap::, - contracts_count: felt252, - registered: LegacyMap>, - } - - #[constructor] - fn constructor(ref self: ContractState, contracts: Array) { - let n: felt252 = contracts.len().into(); - self.contracts_count.write(n); - let mut i = 0; - loop { - if i.into() == n { - break; - } - self.contracts.write(i.into(), *contracts.at(i)); - i += 1; - }; + continuation_contracts: Array, } #[abi(embed_v0)] - impl StarknetWithKeccakLayoutContract1 of IStarknetWithKeccakLayoutContract1 { - fn register_evaluation( - ref self: ContractState, - mask_values: Span, - constraint_coefficients: Span, - point: felt252, - trace_generator: felt252, - global_values: GlobalValues - ) { - let mut total_sum = 0; - let mut i: u32 = 0; - let n: felt252 = self.contracts_count.read().into(); - let begin = array![ - 0, - 95, - 195, - 229, - 260, - 285, - 310, - ].span(); - let length = array![ - 95, - 100, - 34, - 31, - 25, - 25, - 37, - ].span(); - let result = loop { - if i.into() == n { - break total_sum; - } - - let contract = IStarknetWithKeccakLayoutContract1partsDispatcher { - contract_address: self.contracts.read(i.into()) - }; - let coeffs = constraint_coefficients.slice(*begin.at(i), *length.at(i)); - total_sum += contract.eval_composition_polynomial_inner(mask_values, coeffs, point, trace_generator, global_values); - i += 1; - }; - - let hash = self._hash(mask_values, constraint_coefficients, point, trace_generator, global_values); - - self.registered.write(hash, Option::Some(result)); - } - + impl LayoutCompositionContract of ILayoutCompositionContract { fn eval_composition_polynomial_inner( - ref self: ContractState, + self: @ContractState, mask_values: Span, constraint_coefficients: Span, point: felt252, trace_generator: felt252, global_values: GlobalValues ) -> felt252 { - let hash = self._hash(mask_values, constraint_coefficients, point, trace_generator, global_values); - let mut result = self.registered.read(hash); - if result.is_none() { - self.register_evaluation(mask_values, constraint_coefficients, point, trace_generator, global_values); - result = self.registered.read(hash); + let mut total_sum = ILayoutCompositionContractDispatcher { + contract_address: continuation_contracts[0] } - result.unwrap() - } - } - - #[generate_trait] - impl InternalLayoutContractState of InternalLayoutContractTrait { - fn _hash( - self: @ContractState, - mut mask_values: Span, - mut constraint_coefficients: Span, - point: felt252, - trace_generator: felt252, - global_values: GlobalValues - ) -> felt252 { - let mut hash = PoseidonImpl::new(); - hash = hash.update(mask_values.len().into()); - loop { - match mask_values.pop_front() { - Option::Some(x) => { - hash = hash.update(*x); - }, - Option::None => { - break; - } - }; - }; - hash = hash.update(constraint_coefficients.len().into()); - loop { - match constraint_coefficients.pop_front() { - Option::Some(x) => { - hash = hash.update(*x); - }, - Option::None => { - break; - } - }; - }; - hash.update(point) - .update(trace_generator) - .update(global_values.trace_length) - .update(global_values.initial_pc) - .update(global_values.final_pc) - .update(global_values.initial_ap) - .update(global_values.final_ap) - .update(global_values.initial_pedersen_addr) - .update(global_values.initial_range_check_addr) - .update(global_values.initial_ecdsa_addr) - .update(global_values.initial_bitwise_addr) - .update(global_values.initial_ec_op_addr) - .update(global_values.initial_keccak_addr) - .update(global_values.initial_poseidon_addr) - .update(global_values.range_check_min) - .update(global_values.range_check_max) - .update(global_values.offset_size) - .update(global_values.half_offset_size) - .update(global_values.pedersen_shift_point.x) - .update(global_values.pedersen_shift_point.y) - .update(global_values.ecdsa_sig_config.alpha) - .update(global_values.ecdsa_sig_config.beta) - .update(global_values.ecdsa_sig_config.shift_point.x) - .update(global_values.ecdsa_sig_config.shift_point.y) - .update(global_values.ec_op_curve_config.alpha) - .update(global_values.ec_op_curve_config.beta) - .update(global_values.pedersen_points_x) - .update(global_values.pedersen_points_y) - .update(global_values.ecdsa_generator_points_x) - .update(global_values.ecdsa_generator_points_y) - .update(global_values.keccak_keccak_keccak_round_key0) - .update(global_values.keccak_keccak_keccak_round_key1) - .update(global_values.keccak_keccak_keccak_round_key3) - .update(global_values.keccak_keccak_keccak_round_key7) - .update(global_values.keccak_keccak_keccak_round_key15) - .update(global_values.keccak_keccak_keccak_round_key31) - .update(global_values.keccak_keccak_keccak_round_key63) - .update(global_values.poseidon_poseidon_full_round_key0) - .update(global_values.poseidon_poseidon_full_round_key1) - .update(global_values.poseidon_poseidon_full_round_key2) - .update(global_values.poseidon_poseidon_partial_round_key0) - .update(global_values.poseidon_poseidon_partial_round_key1) - .update(global_values.memory_multi_column_perm_perm_interaction_elm) - .update(global_values.memory_multi_column_perm_hash_interaction_elm0) - .update(global_values.range_check16_perm_interaction_elm) - .update(global_values.diluted_check_permutation_interaction_elm) - .update(global_values.diluted_check_interaction_z) - .update(global_values.diluted_check_interaction_alpha) - .update(global_values.memory_multi_column_perm_perm_public_memory_prod) - .update(global_values.range_check16_perm_public_memory_prod) - .update(global_values.diluted_check_first_elm) - .update(global_values.diluted_check_permutation_public_memory_prod) - .update(global_values.diluted_check_final_cum_val) - .finalize() + .eval_composition_polynomial_inner( + mask_values, + constraint_coefficients.slice(0, 95), + point, + trace_generator, + global_values + ); + + total_sum += + ILayoutCompositionContractDispatcher { contract_address: continuation_contracts[1] } + .eval_composition_polynomial_inner( + mask_values, + constraint_coefficients.slice(95, 100), + point, + trace_generator, + global_values + ); + + total_sum += + ILayoutCompositionContractDispatcher { contract_address: continuation_contracts[2] } + .eval_composition_polynomial_inner( + mask_values, + constraint_coefficients.slice(195, 34), + point, + trace_generator, + global_values + ); + + total_sum += + ILayoutCompositionContractDispatcher { contract_address: continuation_contracts[3] } + .eval_composition_polynomial_inner( + mask_values, + constraint_coefficients.slice(229, 31), + point, + trace_generator, + global_values + ); + + total_sum += + ILayoutCompositionContractDispatcher { contract_address: continuation_contracts[4] } + .eval_composition_polynomial_inner( + mask_values, + constraint_coefficients.slice(260, 25), + point, + trace_generator, + global_values + ); + + total_sum += + ILayoutCompositionContractDispatcher { contract_address: continuation_contracts[5] } + .eval_composition_polynomial_inner( + mask_values, + constraint_coefficients.slice(285, 25), + point, + trace_generator, + global_values + ); + + total_sum += + ILayoutCompositionContractDispatcher { contract_address: continuation_contracts[6] } + .eval_composition_polynomial_inner( + mask_values, + constraint_coefficients.slice(310, 37), + point, + trace_generator, + global_values + ); + total_sum } } } #[starknet::contract] -mod StarknetWithKeccakLayoutContract1part1 { - use super::IStarknetWithKeccakLayoutContract1parts; +mod LayoutCompositionContract1 { + use super::ILayoutCompositionContract; use cairo_verifier::air::layouts::starknet_with_keccak::{ - global_values::GlobalValues, - autogenerated::eval_composition_polynomial_inner_part1, + global_values::GlobalValues, autogenerated::eval_composition_polynomial_inner_part_1, }; #[storage] struct Storage {} #[abi(embed_v0)] - impl StarknetWithKeccakLayoutContract1part1 of IStarknetWithKeccakLayoutContract1parts { + impl LayoutCompositionContract of ILayoutCompositionContract { fn eval_composition_polynomial_inner( self: @ContractState, mask_values: Span, @@ -281,30 +141,25 @@ mod StarknetWithKeccakLayoutContract1part1 { trace_generator: felt252, global_values: GlobalValues ) -> felt252 { - eval_composition_polynomial_inner_part1( - mask_values, - constraint_coefficients, - point, - trace_generator, - global_values + eval_composition_polynomial_inner_part_1( + mask_values, constraint_coefficients, point, trace_generator, global_values ) } } } #[starknet::contract] -mod StarknetWithKeccakLayoutContract1part2 { - use super::IStarknetWithKeccakLayoutContract1parts; +mod LayoutCompositionContract2 { + use super::ILayoutCompositionContract; use cairo_verifier::air::layouts::starknet_with_keccak::{ - global_values::GlobalValues, - autogenerated::eval_composition_polynomial_inner_part2, + global_values::GlobalValues, autogenerated::eval_composition_polynomial_inner_part_2, }; #[storage] struct Storage {} #[abi(embed_v0)] - impl StarknetWithKeccakLayoutContract1part2 of IStarknetWithKeccakLayoutContract1parts { + impl LayoutCompositionContract of ILayoutCompositionContract { fn eval_composition_polynomial_inner( self: @ContractState, mask_values: Span, @@ -313,30 +168,25 @@ mod StarknetWithKeccakLayoutContract1part2 { trace_generator: felt252, global_values: GlobalValues ) -> felt252 { - eval_composition_polynomial_inner_part2( - mask_values, - constraint_coefficients, - point, - trace_generator, - global_values + eval_composition_polynomial_inner_part_2( + mask_values, constraint_coefficients, point, trace_generator, global_values ) } } } #[starknet::contract] -mod StarknetWithKeccakLayoutContract1part3 { - use super::IStarknetWithKeccakLayoutContract1parts; +mod LayoutCompositionContract3 { + use super::ILayoutCompositionContract; use cairo_verifier::air::layouts::starknet_with_keccak::{ - global_values::GlobalValues, - autogenerated::eval_composition_polynomial_inner_part3, + global_values::GlobalValues, autogenerated::eval_composition_polynomial_inner_part_3, }; #[storage] struct Storage {} #[abi(embed_v0)] - impl StarknetWithKeccakLayoutContract1part3 of IStarknetWithKeccakLayoutContract1parts { + impl LayoutCompositionContract of ILayoutCompositionContract { fn eval_composition_polynomial_inner( self: @ContractState, mask_values: Span, @@ -345,30 +195,25 @@ mod StarknetWithKeccakLayoutContract1part3 { trace_generator: felt252, global_values: GlobalValues ) -> felt252 { - eval_composition_polynomial_inner_part3( - mask_values, - constraint_coefficients, - point, - trace_generator, - global_values + eval_composition_polynomial_inner_part_3( + mask_values, constraint_coefficients, point, trace_generator, global_values ) } } } #[starknet::contract] -mod StarknetWithKeccakLayoutContract1part4 { - use super::IStarknetWithKeccakLayoutContract1parts; +mod LayoutCompositionContract4 { + use super::ILayoutCompositionContract; use cairo_verifier::air::layouts::starknet_with_keccak::{ - global_values::GlobalValues, - autogenerated::eval_composition_polynomial_inner_part4, + global_values::GlobalValues, autogenerated::eval_composition_polynomial_inner_part_4, }; #[storage] struct Storage {} #[abi(embed_v0)] - impl StarknetWithKeccakLayoutContract1part4 of IStarknetWithKeccakLayoutContract1parts { + impl LayoutCompositionContract of ILayoutCompositionContract { fn eval_composition_polynomial_inner( self: @ContractState, mask_values: Span, @@ -377,30 +222,25 @@ mod StarknetWithKeccakLayoutContract1part4 { trace_generator: felt252, global_values: GlobalValues ) -> felt252 { - eval_composition_polynomial_inner_part4( - mask_values, - constraint_coefficients, - point, - trace_generator, - global_values + eval_composition_polynomial_inner_part_4( + mask_values, constraint_coefficients, point, trace_generator, global_values ) } } } #[starknet::contract] -mod StarknetWithKeccakLayoutContract1part5 { - use super::IStarknetWithKeccakLayoutContract1parts; +mod LayoutCompositionContract5 { + use super::ILayoutCompositionContract; use cairo_verifier::air::layouts::starknet_with_keccak::{ - global_values::GlobalValues, - autogenerated::eval_composition_polynomial_inner_part5, + global_values::GlobalValues, autogenerated::eval_composition_polynomial_inner_part_5, }; #[storage] struct Storage {} #[abi(embed_v0)] - impl StarknetWithKeccakLayoutContract1part5 of IStarknetWithKeccakLayoutContract1parts { + impl LayoutCompositionContract of ILayoutCompositionContract { fn eval_composition_polynomial_inner( self: @ContractState, mask_values: Span, @@ -409,30 +249,25 @@ mod StarknetWithKeccakLayoutContract1part5 { trace_generator: felt252, global_values: GlobalValues ) -> felt252 { - eval_composition_polynomial_inner_part5( - mask_values, - constraint_coefficients, - point, - trace_generator, - global_values + eval_composition_polynomial_inner_part_5( + mask_values, constraint_coefficients, point, trace_generator, global_values ) } } } #[starknet::contract] -mod StarknetWithKeccakLayoutContract1part6 { - use super::IStarknetWithKeccakLayoutContract1parts; +mod LayoutCompositionContract6 { + use super::ILayoutCompositionContract; use cairo_verifier::air::layouts::starknet_with_keccak::{ - global_values::GlobalValues, - autogenerated::eval_composition_polynomial_inner_part6, + global_values::GlobalValues, autogenerated::eval_composition_polynomial_inner_part_6, }; #[storage] struct Storage {} #[abi(embed_v0)] - impl StarknetWithKeccakLayoutContract1part6 of IStarknetWithKeccakLayoutContract1parts { + impl LayoutCompositionContract of ILayoutCompositionContract { fn eval_composition_polynomial_inner( self: @ContractState, mask_values: Span, @@ -441,30 +276,25 @@ mod StarknetWithKeccakLayoutContract1part6 { trace_generator: felt252, global_values: GlobalValues ) -> felt252 { - eval_composition_polynomial_inner_part6( - mask_values, - constraint_coefficients, - point, - trace_generator, - global_values + eval_composition_polynomial_inner_part_6( + mask_values, constraint_coefficients, point, trace_generator, global_values ) } } } #[starknet::contract] -mod StarknetWithKeccakLayoutContract1part7 { - use super::IStarknetWithKeccakLayoutContract1parts; +mod LayoutCompositionContract7 { + use super::ILayoutCompositionContract; use cairo_verifier::air::layouts::starknet_with_keccak::{ - global_values::GlobalValues, - autogenerated::eval_composition_polynomial_inner_part7, + global_values::GlobalValues, autogenerated::eval_composition_polynomial_inner_part_7, }; #[storage] struct Storage {} #[abi(embed_v0)] - impl StarknetWithKeccakLayoutContract1part7 of IStarknetWithKeccakLayoutContract1parts { + impl LayoutCompositionContract of ILayoutCompositionContract { fn eval_composition_polynomial_inner( self: @ContractState, mask_values: Span, @@ -473,30 +303,25 @@ mod StarknetWithKeccakLayoutContract1part7 { trace_generator: felt252, global_values: GlobalValues ) -> felt252 { - eval_composition_polynomial_inner_part7( - mask_values, - constraint_coefficients, - point, - trace_generator, - global_values + eval_composition_polynomial_inner_part_7( + mask_values, constraint_coefficients, point, trace_generator, global_values ) } } } #[starknet::contract] -mod StarknetWithKeccakLayoutContract2part1 { - use super::IStarknetWithKeccakLayoutContract2parts; - use cairo_verifier::air::layouts::starknet_with_keccak::{ - global_values::GlobalValues, - autogenerated::eval_oods_polynomial_inner_part1, - }; +mod LayoutOodsContract1 { + use super::ILayoutOodsContract; + use cairo_verifier::air::layouts::starknet_with_keccak::{global_values::GlobalValues,}; #[storage] - struct Storage {} + struct Storage { + continuation_contracts: Array, + } #[abi(embed_v0)] - impl StarknetWithKeccakLayoutContract2part1 of IStarknetWithKeccakLayoutContract2parts { + impl LayoutOodsContract of ILayoutOodsContract { fn eval_oods_polynomial_inner( self: @ContractState, column_values: Span, @@ -506,31 +331,46 @@ mod StarknetWithKeccakLayoutContract2part1 { oods_point: felt252, trace_generator: felt252, ) -> felt252 { - eval_oods_polynomial_inner_part1( - column_values, - oods_values, - constraint_coefficients, - point, - oods_point, - trace_generator, - ) + let mut total_sum = ILayoutOodsContractDispatcher { + contract_address: continuation_contracts[0] + } + .eval_oods_polynomial_inner( + column_values, + oods_values.slice(0, 349), + constraint_coefficients.slice(0, 349), + point, + oods_point, + trace_generator, + ); + + total_sum += + ILayoutOodsContractDispatcher { contract_address: continuation_contracts[1] } + .eval_oods_polynomial_inner( + column_values, + oods_values.slice(349, oods_values.len() - 349), + constraint_coefficients.slice(349, constraint_coefficients.len() - 349), + point, + oods_point, + trace_generator, + ); + + total_sum } } } #[starknet::contract] -mod StarknetWithKeccakLayoutContract2part2 { - use super::IStarknetWithKeccakLayoutContract2parts; +mod LayoutOodsContract1 { + use super::ILayoutOodsContract; use cairo_verifier::air::layouts::starknet_with_keccak::{ - global_values::GlobalValues, - autogenerated::eval_oods_polynomial_inner_part2, + global_values::GlobalValues, autogenerated::eval_oods_polynomial_inner_part_1, }; #[storage] struct Storage {} #[abi(embed_v0)] - impl StarknetWithKeccakLayoutContract2part2 of IStarknetWithKeccakLayoutContract2parts { + impl LayoutOodsContract of ILayoutOodsContract { fn eval_oods_polynomial_inner( self: @ContractState, column_values: Span, @@ -540,7 +380,7 @@ mod StarknetWithKeccakLayoutContract2part2 { oods_point: felt252, trace_generator: felt252, ) -> felt252 { - eval_oods_polynomial_inner_part2( + eval_oods_polynomial_inner_part_1( column_values, oods_values, constraint_coefficients, @@ -553,55 +393,19 @@ mod StarknetWithKeccakLayoutContract2part2 { } #[starknet::contract] -mod StarknetWithKeccakLayoutContract2 { - use super::{IStarknetWithKeccakLayoutContract2, IStarknetWithKeccakLayoutContract2partsDispatcher, IStarknetWithKeccakLayoutContract2partsDispatcherTrait}; - use cairo_verifier::air::layouts::starknet_with_keccak::global_values::GlobalValues; - use starknet::ContractAddress; - use core::poseidon::{Poseidon, PoseidonImpl, HashStateImpl}; +mod LayoutOodsContract2 { + use super::ILayoutOodsContract; + use cairo_verifier::air::layouts::starknet_with_keccak::{ + global_values::GlobalValues, autogenerated::eval_oods_polynomial_inner_part_2, + }; #[storage] - struct Storage { - contract_address_1: ContractAddress, - contract_address_2: ContractAddress, - registered: LegacyMap>, - } - - #[constructor] - fn constructor(ref self: ContractState, contract_address_1: ContractAddress, contract_address_2: ContractAddress) { - self.contract_address_1.write(contract_address_1); - self.contract_address_2.write(contract_address_2); - } + struct Storage {} #[abi(embed_v0)] - impl StarknetWithKeccakLayoutContract2 of IStarknetWithKeccakLayoutContract2 { - fn register_evaluation( - ref self: ContractState, - column_values: Span, - oods_values: Span, - constraint_coefficients: Span, - point: felt252, - oods_point: felt252, - trace_generator: felt252, - ) { - let coeffs1 = constraint_coefficients.slice(0, 349); - let coeffs2 = constraint_coefficients.slice(349, constraint_coefficients.len() - 349); - let oods1 = oods_values.slice(0, 349); - let oods2 = oods_values.slice(349, oods_values.len() - 349); - - let sum1 = IStarknetWithKeccakLayoutContract2partsDispatcher { - contract_address: self.contract_address_1.read() - }.eval_oods_polynomial_inner(column_values, oods1, coeffs1, point, oods_point, trace_generator); - let sum2 = IStarknetWithKeccakLayoutContract2partsDispatcher { - contract_address: self.contract_address_2.read() - }.eval_oods_polynomial_inner(column_values, oods2, coeffs2, point, oods_point, trace_generator); - - let hash = self._hash(column_values, oods_values, constraint_coefficients, point, oods_point, trace_generator); - - self.registered.write(hash, Option::Some(sum1 + sum2)); - } - + impl LayoutOodsContract of ILayoutOodsContract { fn eval_oods_polynomial_inner( - ref self: ContractState, + self: @ContractState, column_values: Span, oods_values: Span, constraint_coefficients: Span, @@ -609,65 +413,14 @@ mod StarknetWithKeccakLayoutContract2 { oods_point: felt252, trace_generator: felt252, ) -> felt252 { - let hash = self._hash(column_values, oods_values, constraint_coefficients, point, oods_point, trace_generator); - let mut result = self.registered.read(hash); - if result.is_none() { - self.register_evaluation(column_values, oods_values, constraint_coefficients, point, oods_point, trace_generator); - result = self.registered.read(hash); - } - result.unwrap() - } - } - - #[generate_trait] - impl InternalLayoutContractState of InternalLayoutContractTrait { - fn _hash( - self: @ContractState, - mut column_values: Span, - mut oods_values: Span, - mut constraint_coefficients: Span, - point: felt252, - oods_point: felt252, - trace_generator: felt252, - ) -> felt252 { - let mut hash = PoseidonImpl::new(); - hash = hash.update(column_values.len().into()); - loop { - match column_values.pop_front() { - Option::Some(x) => { - hash = hash.update(*x); - }, - Option::None => { - break; - } - }; - }; - hash = hash.update(oods_values.len().into()); - loop { - match oods_values.pop_front() { - Option::Some(x) => { - hash = hash.update(*x); - }, - Option::None => { - break; - } - }; - }; - hash = hash.update(constraint_coefficients.len().into()); - loop { - match constraint_coefficients.pop_front() { - Option::Some(x) => { - hash = hash.update(*x); - }, - Option::None => { - break; - } - }; - }; - hash.update(point) - .update(oods_point) - .update(trace_generator) - .finalize() + eval_oods_polynomial_inner_part_2( + column_values, + oods_values, + constraint_coefficients, + point, + oods_point, + trace_generator, + ) } } }